1 /*** Autogenerated by WIDL 6.4 from include/sapi53.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 __sapi53_h__
17 #define __sapi53_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 __ISpEnginePronunciation_FWD_DEFINED__
374 #define __ISpEnginePronunciation_FWD_DEFINED__
375 typedef interface ISpEnginePronunciation ISpEnginePronunciation;
376 #ifdef __cplusplus
377 interface ISpEnginePronunciation;
378 #endif /* __cplusplus */
379 #endif
380 
381 #ifndef __ISpDisplayAlternates_FWD_DEFINED__
382 #define __ISpDisplayAlternates_FWD_DEFINED__
383 typedef interface ISpDisplayAlternates ISpDisplayAlternates;
384 #ifdef __cplusplus
385 interface ISpDisplayAlternates;
386 #endif /* __cplusplus */
387 #endif
388 
389 #ifndef __ISpeechDataKey_FWD_DEFINED__
390 #define __ISpeechDataKey_FWD_DEFINED__
391 typedef interface ISpeechDataKey ISpeechDataKey;
392 #ifdef __cplusplus
393 interface ISpeechDataKey;
394 #endif /* __cplusplus */
395 #endif
396 
397 #ifndef __ISpeechObjectToken_FWD_DEFINED__
398 #define __ISpeechObjectToken_FWD_DEFINED__
399 typedef interface ISpeechObjectToken ISpeechObjectToken;
400 #ifdef __cplusplus
401 interface ISpeechObjectToken;
402 #endif /* __cplusplus */
403 #endif
404 
405 #ifndef __ISpeechObjectTokens_FWD_DEFINED__
406 #define __ISpeechObjectTokens_FWD_DEFINED__
407 typedef interface ISpeechObjectTokens ISpeechObjectTokens;
408 #ifdef __cplusplus
409 interface ISpeechObjectTokens;
410 #endif /* __cplusplus */
411 #endif
412 
413 #ifndef __ISpeechObjectTokenCategory_FWD_DEFINED__
414 #define __ISpeechObjectTokenCategory_FWD_DEFINED__
415 typedef interface ISpeechObjectTokenCategory ISpeechObjectTokenCategory;
416 #ifdef __cplusplus
417 interface ISpeechObjectTokenCategory;
418 #endif /* __cplusplus */
419 #endif
420 
421 #ifndef __ISpeechAudioFormat_FWD_DEFINED__
422 #define __ISpeechAudioFormat_FWD_DEFINED__
423 typedef interface ISpeechAudioFormat ISpeechAudioFormat;
424 #ifdef __cplusplus
425 interface ISpeechAudioFormat;
426 #endif /* __cplusplus */
427 #endif
428 
429 #ifndef __ISpeechBaseStream_FWD_DEFINED__
430 #define __ISpeechBaseStream_FWD_DEFINED__
431 typedef interface ISpeechBaseStream ISpeechBaseStream;
432 #ifdef __cplusplus
433 interface ISpeechBaseStream;
434 #endif /* __cplusplus */
435 #endif
436 
437 #ifndef __ISpeechAudio_FWD_DEFINED__
438 #define __ISpeechAudio_FWD_DEFINED__
439 typedef interface ISpeechAudio ISpeechAudio;
440 #ifdef __cplusplus
441 interface ISpeechAudio;
442 #endif /* __cplusplus */
443 #endif
444 
445 #ifndef __ISpeechMMSysAudio_FWD_DEFINED__
446 #define __ISpeechMMSysAudio_FWD_DEFINED__
447 typedef interface ISpeechMMSysAudio ISpeechMMSysAudio;
448 #ifdef __cplusplus
449 interface ISpeechMMSysAudio;
450 #endif /* __cplusplus */
451 #endif
452 
453 #ifndef __ISpeechFileStream_FWD_DEFINED__
454 #define __ISpeechFileStream_FWD_DEFINED__
455 typedef interface ISpeechFileStream ISpeechFileStream;
456 #ifdef __cplusplus
457 interface ISpeechFileStream;
458 #endif /* __cplusplus */
459 #endif
460 
461 #ifndef __ISpeechCustomStream_FWD_DEFINED__
462 #define __ISpeechCustomStream_FWD_DEFINED__
463 typedef interface ISpeechCustomStream ISpeechCustomStream;
464 #ifdef __cplusplus
465 interface ISpeechCustomStream;
466 #endif /* __cplusplus */
467 #endif
468 
469 #ifndef __ISpeechMemoryStream_FWD_DEFINED__
470 #define __ISpeechMemoryStream_FWD_DEFINED__
471 typedef interface ISpeechMemoryStream ISpeechMemoryStream;
472 #ifdef __cplusplus
473 interface ISpeechMemoryStream;
474 #endif /* __cplusplus */
475 #endif
476 
477 #ifndef __ISpeechAudioStatus_FWD_DEFINED__
478 #define __ISpeechAudioStatus_FWD_DEFINED__
479 typedef interface ISpeechAudioStatus ISpeechAudioStatus;
480 #ifdef __cplusplus
481 interface ISpeechAudioStatus;
482 #endif /* __cplusplus */
483 #endif
484 
485 #ifndef __ISpeechAudioBufferInfo_FWD_DEFINED__
486 #define __ISpeechAudioBufferInfo_FWD_DEFINED__
487 typedef interface ISpeechAudioBufferInfo ISpeechAudioBufferInfo;
488 #ifdef __cplusplus
489 interface ISpeechAudioBufferInfo;
490 #endif /* __cplusplus */
491 #endif
492 
493 #ifndef __ISpeechWaveFormatEx_FWD_DEFINED__
494 #define __ISpeechWaveFormatEx_FWD_DEFINED__
495 typedef interface ISpeechWaveFormatEx ISpeechWaveFormatEx;
496 #ifdef __cplusplus
497 interface ISpeechWaveFormatEx;
498 #endif /* __cplusplus */
499 #endif
500 
501 #ifndef __ISpeechVoice_FWD_DEFINED__
502 #define __ISpeechVoice_FWD_DEFINED__
503 typedef interface ISpeechVoice ISpeechVoice;
504 #ifdef __cplusplus
505 interface ISpeechVoice;
506 #endif /* __cplusplus */
507 #endif
508 
509 #ifndef __ISpeechVoiceStatus_FWD_DEFINED__
510 #define __ISpeechVoiceStatus_FWD_DEFINED__
511 typedef interface ISpeechVoiceStatus ISpeechVoiceStatus;
512 #ifdef __cplusplus
513 interface ISpeechVoiceStatus;
514 #endif /* __cplusplus */
515 #endif
516 
517 #ifndef ___ISpeechVoiceEvents_FWD_DEFINED__
518 #define ___ISpeechVoiceEvents_FWD_DEFINED__
519 typedef interface _ISpeechVoiceEvents _ISpeechVoiceEvents;
520 #ifdef __cplusplus
521 interface _ISpeechVoiceEvents;
522 #endif /* __cplusplus */
523 #endif
524 
525 #ifndef __ISpeechRecognizer_FWD_DEFINED__
526 #define __ISpeechRecognizer_FWD_DEFINED__
527 typedef interface ISpeechRecognizer ISpeechRecognizer;
528 #ifdef __cplusplus
529 interface ISpeechRecognizer;
530 #endif /* __cplusplus */
531 #endif
532 
533 #ifndef __ISpeechRecognizerStatus_FWD_DEFINED__
534 #define __ISpeechRecognizerStatus_FWD_DEFINED__
535 typedef interface ISpeechRecognizerStatus ISpeechRecognizerStatus;
536 #ifdef __cplusplus
537 interface ISpeechRecognizerStatus;
538 #endif /* __cplusplus */
539 #endif
540 
541 #ifndef __ISpeechRecoContext_FWD_DEFINED__
542 #define __ISpeechRecoContext_FWD_DEFINED__
543 typedef interface ISpeechRecoContext ISpeechRecoContext;
544 #ifdef __cplusplus
545 interface ISpeechRecoContext;
546 #endif /* __cplusplus */
547 #endif
548 
549 #ifndef __ISpeechRecoGrammar_FWD_DEFINED__
550 #define __ISpeechRecoGrammar_FWD_DEFINED__
551 typedef interface ISpeechRecoGrammar ISpeechRecoGrammar;
552 #ifdef __cplusplus
553 interface ISpeechRecoGrammar;
554 #endif /* __cplusplus */
555 #endif
556 
557 #ifndef ___ISpeechRecoContextEvents_FWD_DEFINED__
558 #define ___ISpeechRecoContextEvents_FWD_DEFINED__
559 typedef interface _ISpeechRecoContextEvents _ISpeechRecoContextEvents;
560 #ifdef __cplusplus
561 interface _ISpeechRecoContextEvents;
562 #endif /* __cplusplus */
563 #endif
564 
565 #ifndef __ISpeechGrammarRule_FWD_DEFINED__
566 #define __ISpeechGrammarRule_FWD_DEFINED__
567 typedef interface ISpeechGrammarRule ISpeechGrammarRule;
568 #ifdef __cplusplus
569 interface ISpeechGrammarRule;
570 #endif /* __cplusplus */
571 #endif
572 
573 #ifndef __ISpeechGrammarRules_FWD_DEFINED__
574 #define __ISpeechGrammarRules_FWD_DEFINED__
575 typedef interface ISpeechGrammarRules ISpeechGrammarRules;
576 #ifdef __cplusplus
577 interface ISpeechGrammarRules;
578 #endif /* __cplusplus */
579 #endif
580 
581 #ifndef __ISpeechGrammarRuleState_FWD_DEFINED__
582 #define __ISpeechGrammarRuleState_FWD_DEFINED__
583 typedef interface ISpeechGrammarRuleState ISpeechGrammarRuleState;
584 #ifdef __cplusplus
585 interface ISpeechGrammarRuleState;
586 #endif /* __cplusplus */
587 #endif
588 
589 #ifndef __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
590 #define __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
591 typedef interface ISpeechGrammarRuleStateTransitions ISpeechGrammarRuleStateTransitions;
592 #ifdef __cplusplus
593 interface ISpeechGrammarRuleStateTransitions;
594 #endif /* __cplusplus */
595 #endif
596 
597 #ifndef __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
598 #define __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
599 typedef interface ISpeechGrammarRuleStateTransition ISpeechGrammarRuleStateTransition;
600 #ifdef __cplusplus
601 interface ISpeechGrammarRuleStateTransition;
602 #endif /* __cplusplus */
603 #endif
604 
605 #ifndef __ISpeechTextSelectionInformation_FWD_DEFINED__
606 #define __ISpeechTextSelectionInformation_FWD_DEFINED__
607 typedef interface ISpeechTextSelectionInformation ISpeechTextSelectionInformation;
608 #ifdef __cplusplus
609 interface ISpeechTextSelectionInformation;
610 #endif /* __cplusplus */
611 #endif
612 
613 #ifndef __ISpeechRecoResult_FWD_DEFINED__
614 #define __ISpeechRecoResult_FWD_DEFINED__
615 typedef interface ISpeechRecoResult ISpeechRecoResult;
616 #ifdef __cplusplus
617 interface ISpeechRecoResult;
618 #endif /* __cplusplus */
619 #endif
620 
621 #ifndef __ISpeechXMLRecoResult_FWD_DEFINED__
622 #define __ISpeechXMLRecoResult_FWD_DEFINED__
623 typedef interface ISpeechXMLRecoResult ISpeechXMLRecoResult;
624 #ifdef __cplusplus
625 interface ISpeechXMLRecoResult;
626 #endif /* __cplusplus */
627 #endif
628 
629 #ifndef __ISpeechRecoResult2_FWD_DEFINED__
630 #define __ISpeechRecoResult2_FWD_DEFINED__
631 typedef interface ISpeechRecoResult2 ISpeechRecoResult2;
632 #ifdef __cplusplus
633 interface ISpeechRecoResult2;
634 #endif /* __cplusplus */
635 #endif
636 
637 #ifndef __ISpeechRecoResultDispatch_FWD_DEFINED__
638 #define __ISpeechRecoResultDispatch_FWD_DEFINED__
639 typedef interface ISpeechRecoResultDispatch ISpeechRecoResultDispatch;
640 #ifdef __cplusplus
641 interface ISpeechRecoResultDispatch;
642 #endif /* __cplusplus */
643 #endif
644 
645 #ifndef __ISpeechPhraseInfoBuilder_FWD_DEFINED__
646 #define __ISpeechPhraseInfoBuilder_FWD_DEFINED__
647 typedef interface ISpeechPhraseInfoBuilder ISpeechPhraseInfoBuilder;
648 #ifdef __cplusplus
649 interface ISpeechPhraseInfoBuilder;
650 #endif /* __cplusplus */
651 #endif
652 
653 #ifndef __ISpeechRecoResultTimes_FWD_DEFINED__
654 #define __ISpeechRecoResultTimes_FWD_DEFINED__
655 typedef interface ISpeechRecoResultTimes ISpeechRecoResultTimes;
656 #ifdef __cplusplus
657 interface ISpeechRecoResultTimes;
658 #endif /* __cplusplus */
659 #endif
660 
661 #ifndef __ISpeechPhraseAlternate_FWD_DEFINED__
662 #define __ISpeechPhraseAlternate_FWD_DEFINED__
663 typedef interface ISpeechPhraseAlternate ISpeechPhraseAlternate;
664 #ifdef __cplusplus
665 interface ISpeechPhraseAlternate;
666 #endif /* __cplusplus */
667 #endif
668 
669 #ifndef __ISpeechPhraseAlternates_FWD_DEFINED__
670 #define __ISpeechPhraseAlternates_FWD_DEFINED__
671 typedef interface ISpeechPhraseAlternates ISpeechPhraseAlternates;
672 #ifdef __cplusplus
673 interface ISpeechPhraseAlternates;
674 #endif /* __cplusplus */
675 #endif
676 
677 #ifndef __ISpeechPhraseInfo_FWD_DEFINED__
678 #define __ISpeechPhraseInfo_FWD_DEFINED__
679 typedef interface ISpeechPhraseInfo ISpeechPhraseInfo;
680 #ifdef __cplusplus
681 interface ISpeechPhraseInfo;
682 #endif /* __cplusplus */
683 #endif
684 
685 #ifndef __ISpeechPhraseElement_FWD_DEFINED__
686 #define __ISpeechPhraseElement_FWD_DEFINED__
687 typedef interface ISpeechPhraseElement ISpeechPhraseElement;
688 #ifdef __cplusplus
689 interface ISpeechPhraseElement;
690 #endif /* __cplusplus */
691 #endif
692 
693 #ifndef __ISpeechPhraseElements_FWD_DEFINED__
694 #define __ISpeechPhraseElements_FWD_DEFINED__
695 typedef interface ISpeechPhraseElements ISpeechPhraseElements;
696 #ifdef __cplusplus
697 interface ISpeechPhraseElements;
698 #endif /* __cplusplus */
699 #endif
700 
701 #ifndef __ISpeechPhraseReplacement_FWD_DEFINED__
702 #define __ISpeechPhraseReplacement_FWD_DEFINED__
703 typedef interface ISpeechPhraseReplacement ISpeechPhraseReplacement;
704 #ifdef __cplusplus
705 interface ISpeechPhraseReplacement;
706 #endif /* __cplusplus */
707 #endif
708 
709 #ifndef __ISpeechPhraseReplacements_FWD_DEFINED__
710 #define __ISpeechPhraseReplacements_FWD_DEFINED__
711 typedef interface ISpeechPhraseReplacements ISpeechPhraseReplacements;
712 #ifdef __cplusplus
713 interface ISpeechPhraseReplacements;
714 #endif /* __cplusplus */
715 #endif
716 
717 #ifndef __ISpeechPhraseProperty_FWD_DEFINED__
718 #define __ISpeechPhraseProperty_FWD_DEFINED__
719 typedef interface ISpeechPhraseProperty ISpeechPhraseProperty;
720 #ifdef __cplusplus
721 interface ISpeechPhraseProperty;
722 #endif /* __cplusplus */
723 #endif
724 
725 #ifndef __ISpeechPhraseProperties_FWD_DEFINED__
726 #define __ISpeechPhraseProperties_FWD_DEFINED__
727 typedef interface ISpeechPhraseProperties ISpeechPhraseProperties;
728 #ifdef __cplusplus
729 interface ISpeechPhraseProperties;
730 #endif /* __cplusplus */
731 #endif
732 
733 #ifndef __ISpeechPhraseRule_FWD_DEFINED__
734 #define __ISpeechPhraseRule_FWD_DEFINED__
735 typedef interface ISpeechPhraseRule ISpeechPhraseRule;
736 #ifdef __cplusplus
737 interface ISpeechPhraseRule;
738 #endif /* __cplusplus */
739 #endif
740 
741 #ifndef __ISpeechPhraseRules_FWD_DEFINED__
742 #define __ISpeechPhraseRules_FWD_DEFINED__
743 typedef interface ISpeechPhraseRules ISpeechPhraseRules;
744 #ifdef __cplusplus
745 interface ISpeechPhraseRules;
746 #endif /* __cplusplus */
747 #endif
748 
749 #ifndef __ISpeechLexiconWords_FWD_DEFINED__
750 #define __ISpeechLexiconWords_FWD_DEFINED__
751 typedef interface ISpeechLexiconWords ISpeechLexiconWords;
752 #ifdef __cplusplus
753 interface ISpeechLexiconWords;
754 #endif /* __cplusplus */
755 #endif
756 
757 #ifndef __ISpeechLexicon_FWD_DEFINED__
758 #define __ISpeechLexicon_FWD_DEFINED__
759 typedef interface ISpeechLexicon ISpeechLexicon;
760 #ifdef __cplusplus
761 interface ISpeechLexicon;
762 #endif /* __cplusplus */
763 #endif
764 
765 #ifndef __ISpeechLexiconWord_FWD_DEFINED__
766 #define __ISpeechLexiconWord_FWD_DEFINED__
767 typedef interface ISpeechLexiconWord ISpeechLexiconWord;
768 #ifdef __cplusplus
769 interface ISpeechLexiconWord;
770 #endif /* __cplusplus */
771 #endif
772 
773 #ifndef __ISpeechLexiconPronunciations_FWD_DEFINED__
774 #define __ISpeechLexiconPronunciations_FWD_DEFINED__
775 typedef interface ISpeechLexiconPronunciations ISpeechLexiconPronunciations;
776 #ifdef __cplusplus
777 interface ISpeechLexiconPronunciations;
778 #endif /* __cplusplus */
779 #endif
780 
781 #ifndef __ISpeechLexiconPronunciation_FWD_DEFINED__
782 #define __ISpeechLexiconPronunciation_FWD_DEFINED__
783 typedef interface ISpeechLexiconPronunciation ISpeechLexiconPronunciation;
784 #ifdef __cplusplus
785 interface ISpeechLexiconPronunciation;
786 #endif /* __cplusplus */
787 #endif
788 
789 #ifndef __ISpeechPhoneConverter_FWD_DEFINED__
790 #define __ISpeechPhoneConverter_FWD_DEFINED__
791 typedef interface ISpeechPhoneConverter ISpeechPhoneConverter;
792 #ifdef __cplusplus
793 interface ISpeechPhoneConverter;
794 #endif /* __cplusplus */
795 #endif
796 
797 #ifndef __SpNotifyTranslator_FWD_DEFINED__
798 #define __SpNotifyTranslator_FWD_DEFINED__
799 #ifdef __cplusplus
800 typedef class SpNotifyTranslator SpNotifyTranslator;
801 #else
802 typedef struct SpNotifyTranslator SpNotifyTranslator;
803 #endif /* defined __cplusplus */
804 #endif /* defined __SpNotifyTranslator_FWD_DEFINED__ */
805 
806 #ifndef __SpObjectTokenCategory_FWD_DEFINED__
807 #define __SpObjectTokenCategory_FWD_DEFINED__
808 #ifdef __cplusplus
809 typedef class SpObjectTokenCategory SpObjectTokenCategory;
810 #else
811 typedef struct SpObjectTokenCategory SpObjectTokenCategory;
812 #endif /* defined __cplusplus */
813 #endif /* defined __SpObjectTokenCategory_FWD_DEFINED__ */
814 
815 #ifndef __SpObjectToken_FWD_DEFINED__
816 #define __SpObjectToken_FWD_DEFINED__
817 #ifdef __cplusplus
818 typedef class SpObjectToken SpObjectToken;
819 #else
820 typedef struct SpObjectToken SpObjectToken;
821 #endif /* defined __cplusplus */
822 #endif /* defined __SpObjectToken_FWD_DEFINED__ */
823 
824 #ifndef __SpResourceManager_FWD_DEFINED__
825 #define __SpResourceManager_FWD_DEFINED__
826 #ifdef __cplusplus
827 typedef class SpResourceManager SpResourceManager;
828 #else
829 typedef struct SpResourceManager SpResourceManager;
830 #endif /* defined __cplusplus */
831 #endif /* defined __SpResourceManager_FWD_DEFINED__ */
832 
833 #ifndef __SpStreamFormatConverter_FWD_DEFINED__
834 #define __SpStreamFormatConverter_FWD_DEFINED__
835 #ifdef __cplusplus
836 typedef class SpStreamFormatConverter SpStreamFormatConverter;
837 #else
838 typedef struct SpStreamFormatConverter SpStreamFormatConverter;
839 #endif /* defined __cplusplus */
840 #endif /* defined __SpStreamFormatConverter_FWD_DEFINED__ */
841 
842 #ifndef __SpMMAudioEnum_FWD_DEFINED__
843 #define __SpMMAudioEnum_FWD_DEFINED__
844 #ifdef __cplusplus
845 typedef class SpMMAudioEnum SpMMAudioEnum;
846 #else
847 typedef struct SpMMAudioEnum SpMMAudioEnum;
848 #endif /* defined __cplusplus */
849 #endif /* defined __SpMMAudioEnum_FWD_DEFINED__ */
850 
851 #ifndef __SpMMAudioIn_FWD_DEFINED__
852 #define __SpMMAudioIn_FWD_DEFINED__
853 #ifdef __cplusplus
854 typedef class SpMMAudioIn SpMMAudioIn;
855 #else
856 typedef struct SpMMAudioIn SpMMAudioIn;
857 #endif /* defined __cplusplus */
858 #endif /* defined __SpMMAudioIn_FWD_DEFINED__ */
859 
860 #ifndef __SpMMAudioOut_FWD_DEFINED__
861 #define __SpMMAudioOut_FWD_DEFINED__
862 #ifdef __cplusplus
863 typedef class SpMMAudioOut SpMMAudioOut;
864 #else
865 typedef struct SpMMAudioOut SpMMAudioOut;
866 #endif /* defined __cplusplus */
867 #endif /* defined __SpMMAudioOut_FWD_DEFINED__ */
868 
869 #ifndef __SpStream_FWD_DEFINED__
870 #define __SpStream_FWD_DEFINED__
871 #ifdef __cplusplus
872 typedef class SpStream SpStream;
873 #else
874 typedef struct SpStream SpStream;
875 #endif /* defined __cplusplus */
876 #endif /* defined __SpStream_FWD_DEFINED__ */
877 
878 #ifndef __SpVoice_FWD_DEFINED__
879 #define __SpVoice_FWD_DEFINED__
880 #ifdef __cplusplus
881 typedef class SpVoice SpVoice;
882 #else
883 typedef struct SpVoice SpVoice;
884 #endif /* defined __cplusplus */
885 #endif /* defined __SpVoice_FWD_DEFINED__ */
886 
887 #ifndef __SpSharedRecoContext_FWD_DEFINED__
888 #define __SpSharedRecoContext_FWD_DEFINED__
889 #ifdef __cplusplus
890 typedef class SpSharedRecoContext SpSharedRecoContext;
891 #else
892 typedef struct SpSharedRecoContext SpSharedRecoContext;
893 #endif /* defined __cplusplus */
894 #endif /* defined __SpSharedRecoContext_FWD_DEFINED__ */
895 
896 #ifndef __SpInprocRecognizer_FWD_DEFINED__
897 #define __SpInprocRecognizer_FWD_DEFINED__
898 #ifdef __cplusplus
899 typedef class SpInprocRecognizer SpInprocRecognizer;
900 #else
901 typedef struct SpInprocRecognizer SpInprocRecognizer;
902 #endif /* defined __cplusplus */
903 #endif /* defined __SpInprocRecognizer_FWD_DEFINED__ */
904 
905 #ifndef __SpSharedRecognizer_FWD_DEFINED__
906 #define __SpSharedRecognizer_FWD_DEFINED__
907 #ifdef __cplusplus
908 typedef class SpSharedRecognizer SpSharedRecognizer;
909 #else
910 typedef struct SpSharedRecognizer SpSharedRecognizer;
911 #endif /* defined __cplusplus */
912 #endif /* defined __SpSharedRecognizer_FWD_DEFINED__ */
913 
914 #ifndef __SpLexicon_FWD_DEFINED__
915 #define __SpLexicon_FWD_DEFINED__
916 #ifdef __cplusplus
917 typedef class SpLexicon SpLexicon;
918 #else
919 typedef struct SpLexicon SpLexicon;
920 #endif /* defined __cplusplus */
921 #endif /* defined __SpLexicon_FWD_DEFINED__ */
922 
923 #ifndef __SpUnCompressedLexicon_FWD_DEFINED__
924 #define __SpUnCompressedLexicon_FWD_DEFINED__
925 #ifdef __cplusplus
926 typedef class SpUnCompressedLexicon SpUnCompressedLexicon;
927 #else
928 typedef struct SpUnCompressedLexicon SpUnCompressedLexicon;
929 #endif /* defined __cplusplus */
930 #endif /* defined __SpUnCompressedLexicon_FWD_DEFINED__ */
931 
932 #ifndef __SpCompressedLexicon_FWD_DEFINED__
933 #define __SpCompressedLexicon_FWD_DEFINED__
934 #ifdef __cplusplus
935 typedef class SpCompressedLexicon SpCompressedLexicon;
936 #else
937 typedef struct SpCompressedLexicon SpCompressedLexicon;
938 #endif /* defined __cplusplus */
939 #endif /* defined __SpCompressedLexicon_FWD_DEFINED__ */
940 
941 #ifndef __SpShortcut_FWD_DEFINED__
942 #define __SpShortcut_FWD_DEFINED__
943 #ifdef __cplusplus
944 typedef class SpShortcut SpShortcut;
945 #else
946 typedef struct SpShortcut SpShortcut;
947 #endif /* defined __cplusplus */
948 #endif /* defined __SpShortcut_FWD_DEFINED__ */
949 
950 #ifndef __SpPhoneConverter_FWD_DEFINED__
951 #define __SpPhoneConverter_FWD_DEFINED__
952 #ifdef __cplusplus
953 typedef class SpPhoneConverter SpPhoneConverter;
954 #else
955 typedef struct SpPhoneConverter SpPhoneConverter;
956 #endif /* defined __cplusplus */
957 #endif /* defined __SpPhoneConverter_FWD_DEFINED__ */
958 
959 #ifndef __SpPhoneticAlphabetConverter_FWD_DEFINED__
960 #define __SpPhoneticAlphabetConverter_FWD_DEFINED__
961 #ifdef __cplusplus
962 typedef class SpPhoneticAlphabetConverter SpPhoneticAlphabetConverter;
963 #else
964 typedef struct SpPhoneticAlphabetConverter SpPhoneticAlphabetConverter;
965 #endif /* defined __cplusplus */
966 #endif /* defined __SpPhoneticAlphabetConverter_FWD_DEFINED__ */
967 
968 #ifndef __SpNullPhoneConverter_FWD_DEFINED__
969 #define __SpNullPhoneConverter_FWD_DEFINED__
970 #ifdef __cplusplus
971 typedef class SpNullPhoneConverter SpNullPhoneConverter;
972 #else
973 typedef struct SpNullPhoneConverter SpNullPhoneConverter;
974 #endif /* defined __cplusplus */
975 #endif /* defined __SpNullPhoneConverter_FWD_DEFINED__ */
976 
977 #ifndef __SpTextSelectionInformation_FWD_DEFINED__
978 #define __SpTextSelectionInformation_FWD_DEFINED__
979 #ifdef __cplusplus
980 typedef class SpTextSelectionInformation SpTextSelectionInformation;
981 #else
982 typedef struct SpTextSelectionInformation SpTextSelectionInformation;
983 #endif /* defined __cplusplus */
984 #endif /* defined __SpTextSelectionInformation_FWD_DEFINED__ */
985 
986 #ifndef __SpPhraseInfoBuilder_FWD_DEFINED__
987 #define __SpPhraseInfoBuilder_FWD_DEFINED__
988 #ifdef __cplusplus
989 typedef class SpPhraseInfoBuilder SpPhraseInfoBuilder;
990 #else
991 typedef struct SpPhraseInfoBuilder SpPhraseInfoBuilder;
992 #endif /* defined __cplusplus */
993 #endif /* defined __SpPhraseInfoBuilder_FWD_DEFINED__ */
994 
995 #ifndef __SpAudioFormat_FWD_DEFINED__
996 #define __SpAudioFormat_FWD_DEFINED__
997 #ifdef __cplusplus
998 typedef class SpAudioFormat SpAudioFormat;
999 #else
1000 typedef struct SpAudioFormat SpAudioFormat;
1001 #endif /* defined __cplusplus */
1002 #endif /* defined __SpAudioFormat_FWD_DEFINED__ */
1003 
1004 #ifndef __SpWaveFormatEx_FWD_DEFINED__
1005 #define __SpWaveFormatEx_FWD_DEFINED__
1006 #ifdef __cplusplus
1007 typedef class SpWaveFormatEx SpWaveFormatEx;
1008 #else
1009 typedef struct SpWaveFormatEx SpWaveFormatEx;
1010 #endif /* defined __cplusplus */
1011 #endif /* defined __SpWaveFormatEx_FWD_DEFINED__ */
1012 
1013 #ifndef __SpInProcRecoContext_FWD_DEFINED__
1014 #define __SpInProcRecoContext_FWD_DEFINED__
1015 #ifdef __cplusplus
1016 typedef class SpInProcRecoContext SpInProcRecoContext;
1017 #else
1018 typedef struct SpInProcRecoContext SpInProcRecoContext;
1019 #endif /* defined __cplusplus */
1020 #endif /* defined __SpInProcRecoContext_FWD_DEFINED__ */
1021 
1022 #ifndef __SpCustomStream_FWD_DEFINED__
1023 #define __SpCustomStream_FWD_DEFINED__
1024 #ifdef __cplusplus
1025 typedef class SpCustomStream SpCustomStream;
1026 #else
1027 typedef struct SpCustomStream SpCustomStream;
1028 #endif /* defined __cplusplus */
1029 #endif /* defined __SpCustomStream_FWD_DEFINED__ */
1030 
1031 #ifndef __SpFileStream_FWD_DEFINED__
1032 #define __SpFileStream_FWD_DEFINED__
1033 #ifdef __cplusplus
1034 typedef class SpFileStream SpFileStream;
1035 #else
1036 typedef struct SpFileStream SpFileStream;
1037 #endif /* defined __cplusplus */
1038 #endif /* defined __SpFileStream_FWD_DEFINED__ */
1039 
1040 #ifndef __SpMemoryStream_FWD_DEFINED__
1041 #define __SpMemoryStream_FWD_DEFINED__
1042 #ifdef __cplusplus
1043 typedef class SpMemoryStream SpMemoryStream;
1044 #else
1045 typedef struct SpMemoryStream SpMemoryStream;
1046 #endif /* defined __cplusplus */
1047 #endif /* defined __SpMemoryStream_FWD_DEFINED__ */
1048 
1049 /* Headers for imported files */
1050 
1051 #include <oaidl.h>
1052 #include <ocidl.h>
1053 
1054 #ifdef __cplusplus
1055 extern "C" {
1056 #endif
1057 
1058 #ifndef _SAPI_VER
1059 #error "you have to include <sapi.h> header before this."
1060 #endif
1061 #if 0
1062 typedef struct WAVEFORMATEX {
1063     WORD wFormatTag;
1064     WORD nChannels;
1065     DWORD nSamplesPerSec;
1066     DWORD nAvgBytesPerSec;
1067     WORD nBlockAlign;
1068     WORD wBitsPerSample;
1069     WORD cbSize;
1070 } WAVEFORMATEX;
1071 #endif
1072 #ifndef __ISpNotifySource_FWD_DEFINED__
1073 #define __ISpNotifySource_FWD_DEFINED__
1074 typedef interface ISpNotifySource ISpNotifySource;
1075 #ifdef __cplusplus
1076 interface ISpNotifySource;
1077 #endif /* __cplusplus */
1078 #endif
1079 
1080 #ifndef __ISpNotifySink_FWD_DEFINED__
1081 #define __ISpNotifySink_FWD_DEFINED__
1082 typedef interface ISpNotifySink ISpNotifySink;
1083 #ifdef __cplusplus
1084 interface ISpNotifySink;
1085 #endif /* __cplusplus */
1086 #endif
1087 
1088 #ifndef __ISpNotifyTranslator_FWD_DEFINED__
1089 #define __ISpNotifyTranslator_FWD_DEFINED__
1090 typedef interface ISpNotifyTranslator ISpNotifyTranslator;
1091 #ifdef __cplusplus
1092 interface ISpNotifyTranslator;
1093 #endif /* __cplusplus */
1094 #endif
1095 
1096 #ifndef __ISpDataKey_FWD_DEFINED__
1097 #define __ISpDataKey_FWD_DEFINED__
1098 typedef interface ISpDataKey ISpDataKey;
1099 #ifdef __cplusplus
1100 interface ISpDataKey;
1101 #endif /* __cplusplus */
1102 #endif
1103 
1104 #ifndef __ISpObjectTokenCategory_FWD_DEFINED__
1105 #define __ISpObjectTokenCategory_FWD_DEFINED__
1106 typedef interface ISpObjectTokenCategory ISpObjectTokenCategory;
1107 #ifdef __cplusplus
1108 interface ISpObjectTokenCategory;
1109 #endif /* __cplusplus */
1110 #endif
1111 
1112 #ifndef __ISpObjectToken_FWD_DEFINED__
1113 #define __ISpObjectToken_FWD_DEFINED__
1114 typedef interface ISpObjectToken ISpObjectToken;
1115 #ifdef __cplusplus
1116 interface ISpObjectToken;
1117 #endif /* __cplusplus */
1118 #endif
1119 
1120 #ifndef __IEnumSpObjectTokens_FWD_DEFINED__
1121 #define __IEnumSpObjectTokens_FWD_DEFINED__
1122 typedef interface IEnumSpObjectTokens IEnumSpObjectTokens;
1123 #ifdef __cplusplus
1124 interface IEnumSpObjectTokens;
1125 #endif /* __cplusplus */
1126 #endif
1127 
1128 #ifndef __ISpObjectWithToken_FWD_DEFINED__
1129 #define __ISpObjectWithToken_FWD_DEFINED__
1130 typedef interface ISpObjectWithToken ISpObjectWithToken;
1131 #ifdef __cplusplus
1132 interface ISpObjectWithToken;
1133 #endif /* __cplusplus */
1134 #endif
1135 
1136 #ifndef __ISpResourceManager_FWD_DEFINED__
1137 #define __ISpResourceManager_FWD_DEFINED__
1138 typedef interface ISpResourceManager ISpResourceManager;
1139 #ifdef __cplusplus
1140 interface ISpResourceManager;
1141 #endif /* __cplusplus */
1142 #endif
1143 
1144 #ifndef __ISpEventSource_FWD_DEFINED__
1145 #define __ISpEventSource_FWD_DEFINED__
1146 typedef interface ISpEventSource ISpEventSource;
1147 #ifdef __cplusplus
1148 interface ISpEventSource;
1149 #endif /* __cplusplus */
1150 #endif
1151 
1152 #ifndef __ISpEventSink_FWD_DEFINED__
1153 #define __ISpEventSink_FWD_DEFINED__
1154 typedef interface ISpEventSink ISpEventSink;
1155 #ifdef __cplusplus
1156 interface ISpEventSink;
1157 #endif /* __cplusplus */
1158 #endif
1159 
1160 #ifndef __ISpStreamFormat_FWD_DEFINED__
1161 #define __ISpStreamFormat_FWD_DEFINED__
1162 typedef interface ISpStreamFormat ISpStreamFormat;
1163 #ifdef __cplusplus
1164 interface ISpStreamFormat;
1165 #endif /* __cplusplus */
1166 #endif
1167 
1168 #ifndef __ISpStream_FWD_DEFINED__
1169 #define __ISpStream_FWD_DEFINED__
1170 typedef interface ISpStream ISpStream;
1171 #ifdef __cplusplus
1172 interface ISpStream;
1173 #endif /* __cplusplus */
1174 #endif
1175 
1176 #ifndef __ISpStreamFormatConverter_FWD_DEFINED__
1177 #define __ISpStreamFormatConverter_FWD_DEFINED__
1178 typedef interface ISpStreamFormatConverter ISpStreamFormatConverter;
1179 #ifdef __cplusplus
1180 interface ISpStreamFormatConverter;
1181 #endif /* __cplusplus */
1182 #endif
1183 
1184 #ifndef __ISpAudio_FWD_DEFINED__
1185 #define __ISpAudio_FWD_DEFINED__
1186 typedef interface ISpAudio ISpAudio;
1187 #ifdef __cplusplus
1188 interface ISpAudio;
1189 #endif /* __cplusplus */
1190 #endif
1191 
1192 #ifndef __ISpMMSysAudio_FWD_DEFINED__
1193 #define __ISpMMSysAudio_FWD_DEFINED__
1194 typedef interface ISpMMSysAudio ISpMMSysAudio;
1195 #ifdef __cplusplus
1196 interface ISpMMSysAudio;
1197 #endif /* __cplusplus */
1198 #endif
1199 
1200 #ifndef __ISpTranscript_FWD_DEFINED__
1201 #define __ISpTranscript_FWD_DEFINED__
1202 typedef interface ISpTranscript ISpTranscript;
1203 #ifdef __cplusplus
1204 interface ISpTranscript;
1205 #endif /* __cplusplus */
1206 #endif
1207 
1208 #ifndef __ISpVoice_FWD_DEFINED__
1209 #define __ISpVoice_FWD_DEFINED__
1210 typedef interface ISpVoice ISpVoice;
1211 #ifdef __cplusplus
1212 interface ISpVoice;
1213 #endif /* __cplusplus */
1214 #endif
1215 
1216 #ifndef __ISpRecoResult_FWD_DEFINED__
1217 #define __ISpRecoResult_FWD_DEFINED__
1218 typedef interface ISpRecoResult ISpRecoResult;
1219 #ifdef __cplusplus
1220 interface ISpRecoResult;
1221 #endif /* __cplusplus */
1222 #endif
1223 
1224 #ifndef __ISpRecoContext_FWD_DEFINED__
1225 #define __ISpRecoContext_FWD_DEFINED__
1226 typedef interface ISpRecoContext ISpRecoContext;
1227 #ifdef __cplusplus
1228 interface ISpRecoContext;
1229 #endif /* __cplusplus */
1230 #endif
1231 
1232 #ifndef __ISpRecognizer_FWD_DEFINED__
1233 #define __ISpRecognizer_FWD_DEFINED__
1234 typedef interface ISpRecognizer ISpRecognizer;
1235 #ifdef __cplusplus
1236 interface ISpRecognizer;
1237 #endif /* __cplusplus */
1238 #endif
1239 
1240 #ifndef __ISpProperties_FWD_DEFINED__
1241 #define __ISpProperties_FWD_DEFINED__
1242 typedef interface ISpProperties ISpProperties;
1243 #ifdef __cplusplus
1244 interface ISpProperties;
1245 #endif /* __cplusplus */
1246 #endif
1247 
1248 #ifndef __ISpLexicon_FWD_DEFINED__
1249 #define __ISpLexicon_FWD_DEFINED__
1250 typedef interface ISpLexicon ISpLexicon;
1251 #ifdef __cplusplus
1252 interface ISpLexicon;
1253 #endif /* __cplusplus */
1254 #endif
1255 
1256 #ifndef __ISpPhoneConverter_FWD_DEFINED__
1257 #define __ISpPhoneConverter_FWD_DEFINED__
1258 typedef interface ISpPhoneConverter ISpPhoneConverter;
1259 #ifdef __cplusplus
1260 interface ISpPhoneConverter;
1261 #endif /* __cplusplus */
1262 #endif
1263 
1264 #ifndef __ISpPhrase_FWD_DEFINED__
1265 #define __ISpPhrase_FWD_DEFINED__
1266 typedef interface ISpPhrase ISpPhrase;
1267 #ifdef __cplusplus
1268 interface ISpPhrase;
1269 #endif /* __cplusplus */
1270 #endif
1271 
1272 #ifndef __ISpRecoContext2_FWD_DEFINED__
1273 #define __ISpRecoContext2_FWD_DEFINED__
1274 typedef interface ISpRecoContext2 ISpRecoContext2;
1275 #ifdef __cplusplus
1276 interface ISpRecoContext2;
1277 #endif /* __cplusplus */
1278 #endif
1279 
1280 #ifndef __ISpRecognizer2_FWD_DEFINED__
1281 #define __ISpRecognizer2_FWD_DEFINED__
1282 typedef interface ISpRecognizer2 ISpRecognizer2;
1283 #ifdef __cplusplus
1284 interface ISpRecognizer2;
1285 #endif /* __cplusplus */
1286 #endif
1287 
1288 #ifndef __ISpShortcut_FWD_DEFINED__
1289 #define __ISpShortcut_FWD_DEFINED__
1290 typedef interface ISpShortcut ISpShortcut;
1291 #ifdef __cplusplus
1292 interface ISpShortcut;
1293 #endif /* __cplusplus */
1294 #endif
1295 
1296 #ifndef __ISpPhoneticAlphabetConverter_FWD_DEFINED__
1297 #define __ISpPhoneticAlphabetConverter_FWD_DEFINED__
1298 typedef interface ISpPhoneticAlphabetConverter ISpPhoneticAlphabetConverter;
1299 #ifdef __cplusplus
1300 interface ISpPhoneticAlphabetConverter;
1301 #endif /* __cplusplus */
1302 #endif
1303 
1304 #ifndef __ISpPhoneticAlphabetSelection_FWD_DEFINED__
1305 #define __ISpPhoneticAlphabetSelection_FWD_DEFINED__
1306 typedef interface ISpPhoneticAlphabetSelection ISpPhoneticAlphabetSelection;
1307 #ifdef __cplusplus
1308 interface ISpPhoneticAlphabetSelection;
1309 #endif /* __cplusplus */
1310 #endif
1311 
1312 #ifndef __ISpRecoGrammar2_FWD_DEFINED__
1313 #define __ISpRecoGrammar2_FWD_DEFINED__
1314 typedef interface ISpRecoGrammar2 ISpRecoGrammar2;
1315 #ifdef __cplusplus
1316 interface ISpRecoGrammar2;
1317 #endif /* __cplusplus */
1318 #endif
1319 
1320 #ifndef __ISpeechResourceLoader_FWD_DEFINED__
1321 #define __ISpeechResourceLoader_FWD_DEFINED__
1322 typedef interface ISpeechResourceLoader ISpeechResourceLoader;
1323 #ifdef __cplusplus
1324 interface ISpeechResourceLoader;
1325 #endif /* __cplusplus */
1326 #endif
1327 
1328 typedef enum SPDATAKEYLOCATION {
1329     SPDKL_DefaultLocation = 0,
1330     SPDKL_CurrentUser = 1,
1331     SPDKL_LocalMachine = 2,
1332     SPDKL_CurrentConfig = 5
1333 } SPDATAKEYLOCATION;
1334 typedef enum SPSTREAMFORMAT {
1335     SPSF_Default = -1,
1336     SPSF_NoAssignedFormat = 0,
1337     SPSF_Text = 1,
1338     SPSF_NonStandardFormat = 2,
1339     SPSF_ExtendedAudioFormat = 3,
1340     SPSF_8kHz8BitMono = 4,
1341     SPSF_8kHz8BitStereo = 5,
1342     SPSF_8kHz16BitMono = 6,
1343     SPSF_8kHz16BitStereo = 7,
1344     SPSF_11kHz8BitMono = 8,
1345     SPSF_11kHz8BitStereo = 9,
1346     SPSF_11kHz16BitMono = 10,
1347     SPSF_11kHz16BitStereo = 11,
1348     SPSF_12kHz8BitMono = 12,
1349     SPSF_12kHz8BitStereo = 13,
1350     SPSF_12kHz16BitMono = 14,
1351     SPSF_12kHz16BitStereo = 15,
1352     SPSF_16kHz8BitMono = 16,
1353     SPSF_16kHz8BitStereo = 17,
1354     SPSF_16kHz16BitMono = 18,
1355     SPSF_16kHz16BitStereo = 19,
1356     SPSF_22kHz8BitMono = 20,
1357     SPSF_22kHz8BitStereo = 21,
1358     SPSF_22kHz16BitMono = 22,
1359     SPSF_22kHz16BitStereo = 23,
1360     SPSF_24kHz8BitMono = 24,
1361     SPSF_24kHz8BitStereo = 25,
1362     SPSF_24kHz16BitMono = 26,
1363     SPSF_24kHz16BitStereo = 27,
1364     SPSF_32kHz8BitMono = 28,
1365     SPSF_32kHz8BitStereo = 29,
1366     SPSF_32kHz16BitMono = 30,
1367     SPSF_32kHz16BitStereo = 31,
1368     SPSF_44kHz8BitMono = 32,
1369     SPSF_44kHz8BitStereo = 33,
1370     SPSF_44kHz16BitMono = 34,
1371     SPSF_44kHz16BitStereo = 35,
1372     SPSF_48kHz8BitMono = 36,
1373     SPSF_48kHz8BitStereo = 37,
1374     SPSF_48kHz16BitMono = 38,
1375     SPSF_48kHz16BitStereo = 39,
1376     SPSF_TrueSpeech_8kHz1BitMono = 40,
1377     SPSF_CCITT_ALaw_8kHzMono = 41,
1378     SPSF_CCITT_ALaw_8kHzStereo = 42,
1379     SPSF_CCITT_ALaw_11kHzMono = 43,
1380     SPSF_CCITT_ALaw_11kHzStereo = 44,
1381     SPSF_CCITT_ALaw_22kHzMono = 45,
1382     SPSF_CCITT_ALaw_22kHzStereo = 46,
1383     SPSF_CCITT_ALaw_44kHzMono = 47,
1384     SPSF_CCITT_ALaw_44kHzStereo = 48,
1385     SPSF_CCITT_uLaw_8kHzMono = 49,
1386     SPSF_CCITT_uLaw_8kHzStereo = 50,
1387     SPSF_CCITT_uLaw_11kHzMono = 51,
1388     SPSF_CCITT_uLaw_11kHzStereo = 52,
1389     SPSF_CCITT_uLaw_22kHzMono = 53,
1390     SPSF_CCITT_uLaw_22kHzStereo = 54,
1391     SPSF_CCITT_uLaw_44kHzMono = 55,
1392     SPSF_CCITT_uLaw_44kHzStereo = 56,
1393     SPSF_ADPCM_8kHzMono = 57,
1394     SPSF_ADPCM_8kHzStereo = 58,
1395     SPSF_ADPCM_11kHzMono = 59,
1396     SPSF_ADPCM_11kHzStereo = 60,
1397     SPSF_ADPCM_22kHzMono = 61,
1398     SPSF_ADPCM_22kHzStereo = 62,
1399     SPSF_ADPCM_44kHzMono = 63,
1400     SPSF_ADPCM_44kHzStereo = 64,
1401     SPSF_GSM610_8kHzMono = 65,
1402     SPSF_GSM610_11kHzMono = 66,
1403     SPSF_GSM610_22kHzMono = 67,
1404     SPSF_GSM610_44kHzMono = 68,
1405     SPSF_NUM_FORMATS = 69
1406 } SPSTREAMFORMAT;
1407 typedef enum SPEVENTLPARAMTYPE {
1408     SPET_LPARAM_IS_UNDEFINED = 0,
1409     SPET_LPARAM_IS_TOKEN = 1,
1410     SPET_LPARAM_IS_OBJECT = 2,
1411     SPET_LPARAM_IS_POINTER = 3,
1412     SPET_LPARAM_IS_STRING = 4
1413 } SPEVENTLPARAMTYPE;
1414 typedef enum SPEVENTENUM {
1415     SPEI_UNDEFINED = 0,
1416     SPEI_START_INPUT_STREAM = 1,
1417     SPEI_END_INPUT_STREAM = 2,
1418     SPEI_VOICE_CHANGE = 3,
1419     SPEI_TTS_BOOKMARK = 4,
1420     SPEI_WORD_BOUNDARY = 5,
1421     SPEI_PHONEME = 6,
1422     SPEI_SENTENCE_BOUNDARY = 7,
1423     SPEI_VISEME = 8,
1424     SPEI_TTS_AUDIO_LEVEL = 9,
1425     SPEI_TTS_PRIVATE = 15,
1426     SPEI_MIN_TTS = 1,
1427     SPEI_MAX_TTS = 15,
1428     SPEI_END_SR_STREAM = 34,
1429     SPEI_SOUND_START = 35,
1430     SPEI_SOUND_END = 36,
1431     SPEI_PHRASE_START = 37,
1432     SPEI_RECOGNITION = 38,
1433     SPEI_HYPOTHESIS = 39,
1434     SPEI_SR_BOOKMARK = 40,
1435     SPEI_PROPERTY_NUM_CHANGE = 41,
1436     SPEI_PROPERTY_STRING_CHANGE = 42,
1437     SPEI_FALSE_RECOGNITION = 43,
1438     SPEI_INTERFERENCE = 44,
1439     SPEI_REQUEST_UI = 45,
1440     SPEI_RECO_STATE_CHANGE = 46,
1441     SPEI_ADAPTATION = 47,
1442     SPEI_START_SR_STREAM = 48,
1443     SPEI_RECO_OTHER_CONTEXT = 49,
1444     SPEI_SR_AUDIO_LEVEL = 50,
1445     SPEI_SR_RETAINEDAUDIO = 51,
1446     SPEI_SR_PRIVATE = 52,
1447     SPEI_RESERVED4 = 53,
1448     SPEI_RESERVED5 = 54,
1449     SPEI_RESERVED6 = 55,
1450     SPEI_MIN_SR = 34,
1451     SPEI_MAX_SR = 55,
1452     SPEI_RESERVED1 = 30,
1453     SPEI_RESERVED2 = 33,
1454     SPEI_RESERVED3 = 63
1455 } SPEVENTENUM;
1456 typedef enum SPINTERFERENCE {
1457     SPINTERFERENCE_NONE = 0,
1458     SPINTERFERENCE_NOISE = 1,
1459     SPINTERFERENCE_NOSIGNAL = 2,
1460     SPINTERFERENCE_TOOLOUD = 3,
1461     SPINTERFERENCE_TOOQUIET = 4,
1462     SPINTERFERENCE_TOOFAST = 5,
1463     SPINTERFERENCE_TOOSLOW = 6,
1464     SPINTERFERENCE_LATENCY_WARNING = 7,
1465     SPINTERFERENCE_LATENCY_TRUNCATE_BEGIN = 8,
1466     SPINTERFERENCE_LATENCY_TRUNCATE_END = 9
1467 } SPINTERFERENCE;
1468 typedef enum SPENDSRSTREAMFLAGS {
1469     SPESF_NONE = 0,
1470     SPESF_STREAM_RELEASED = 1,
1471     SPESF_EMULATED = 2
1472 } SPENDSRSTREAMFLAGS;
1473 typedef enum SPVFEATURE {
1474     SPVFEATURE_STRESSED = 1,
1475     SPVFEATURE_EMPHASIS = 2
1476 } SPVFEATURE;
1477 typedef enum SPVISEMES {
1478     SP_VISEME_0 = 0,
1479     SP_VISEME_1 = 1,
1480     SP_VISEME_2 = 2,
1481     SP_VISEME_3 = 3,
1482     SP_VISEME_4 = 4,
1483     SP_VISEME_5 = 5,
1484     SP_VISEME_6 = 6,
1485     SP_VISEME_7 = 7,
1486     SP_VISEME_8 = 8,
1487     SP_VISEME_9 = 9,
1488     SP_VISEME_10 = 10,
1489     SP_VISEME_11 = 11,
1490     SP_VISEME_12 = 12,
1491     SP_VISEME_13 = 13,
1492     SP_VISEME_14 = 14,
1493     SP_VISEME_15 = 15,
1494     SP_VISEME_16 = 16,
1495     SP_VISEME_17 = 17,
1496     SP_VISEME_18 = 18,
1497     SP_VISEME_19 = 19,
1498     SP_VISEME_20 = 20,
1499     SP_VISEME_21 = 21
1500 } SPVISEMES;
1501 typedef enum SPFILEMODE {
1502     SPFM_OPEN_READONLY = 0,
1503     SPFM_OPEN_READWRITE = 1,
1504     SPFM_CREATE = 2,
1505     SPFM_CREATE_ALWAYS = 3,
1506     SPFM_NUM_MODES = 4
1507 } SPFILEMODE;
1508 typedef enum _SPAUDIOSTATE {
1509     SPAS_CLOSED = 0,
1510     SPAS_STOP = 1,
1511     SPAS_PAUSE = 2,
1512     SPAS_RUN = 3
1513 } SPAUDIOSTATE;
1514 typedef enum SPDISPLYATTRIBUTES {
1515     SPAF_ONE_TRAILING_SPACE = 0x2,
1516     SPAF_TWO_TRAILING_SPACES = 0x4,
1517     SPAF_CONSUME_LEADING_SPACES = 0x8,
1518     SPAF_BUFFER_POSITION = 0x10,
1519     SPAF_ALL = 0x1f,
1520     SPAF_USER_SPECIFIED = 0x80
1521 } SPDISPLAYATTRIBUTES;
1522 typedef enum SPPHRASEPROPERTYUNIONTYPE {
1523     SPPPUT_UNUSED = 0,
1524     SPPPUT_ARRAY_INDEX = 1
1525 } SPPHRASEPROPERTYUNIONTYPE;
1526 typedef enum SPSEMANTICFORMAT {
1527     SPSMF_SAPI_PROPERTIES = 0,
1528     SPSMF_SRGS_SEMANTICINTERPRETATION_MS = 1,
1529     SPSMF_SRGS_SAPIPROPERTIES = 2,
1530     SPSMF_UPS = 4,
1531     SPSMF_SRGS_SEMANTICINTERPRETATION_W3C = 8
1532 } SPSEMANTICFORMAT;
1533 typedef enum SPRECOEVENTFLAGS {
1534     SPREF_AutoPause = 0x1,
1535     SPREF_Emulated = 0x2,
1536     SPREF_SMLTimeout = 0x4,
1537     SPREF_ExtendableParse = 0x8,
1538     SPREF_ReSent = 0x10,
1539     SPREF_Hypothesis = 0x20,
1540     SPREF_FalseRecognition = 0x40
1541 } SPRECOEVENTFLAGS;
1542 typedef enum SPPARTOFSPEECH {
1543     SPPS_NotOverriden = -1,
1544     SPPS_Unknown = 0,
1545     SPPS_Noun = 0x1000,
1546     SPPS_Verb = 0x2000,
1547     SPPS_Modifier = 0x3000,
1548     SPPS_Function = 0x4000,
1549     SPPS_Interjection = 0x5000,
1550     SPPS_Noncontent = 0x6000,
1551     SPPS_LMA = 0x7000,
1552     SPPS_SuppressWord = 0xf000
1553 } SPPARTOFSPEECH;
1554 typedef enum SPLEXICONTYPE {
1555     eLEXTYPE_USER = 0x1,
1556     eLEXTYPE_APP = 0x2,
1557     eLEXTYPE_VENDORLEXICON = 0x4,
1558     eLEXTYPE_LETTERTOSOUND = 0x8,
1559     eLEXTYPE_MORPHOLOGY = 0x10,
1560     eLEXTYPE_RESERVED4 = 0x20,
1561     eLEXTYPE_USER_SHORTCUT = 0x40,
1562     eLEXTYPE_RESERVED6 = 0x80,
1563     eLEXTYPE_RESERVED7 = 0x100,
1564     eLEXTYPE_RESERVED8 = 0x200,
1565     eLEXTYPE_RESERVED9 = 0x400,
1566     eLEXTYPE_RESERVED10 = 0x800,
1567     eLEXTYPE_PRIVATE1 = 0x1000,
1568     eLEXTYPE_PRIVATE2 = 0x2000,
1569     eLEXTYPE_PRIVATE3 = 0x4000,
1570     eLEXTYPE_PRIVATE4 = 0x8000,
1571     eLEXTYPE_PRIVATE5 = 0x10000,
1572     eLEXTYPE_PRIVATE6 = 0x20000,
1573     eLEXTYPE_PRIVATE7 = 0x40000,
1574     eLEXTYPE_PRIVATE8 = 0x80000,
1575     eLEXTYPE_PRIVATE9 = 0x100000,
1576     eLEXTYPE_PRIVATE10 = 0x200000,
1577     eLEXTYPE_PRIVATE11 = 0x400000,
1578     eLEXTYPE_PRIVATE12 = 0x800000,
1579     eLEXTYPE_PRIVATE13 = 0x1000000,
1580     eLEXTYPE_PRIVATE14 = 0x2000000,
1581     eLEXTYPE_PRIVATE15 = 0x4000000,
1582     eLEXTYPE_PRIVATE16 = 0x8000000,
1583     eLEXTYPE_PRIVATE17 = 0x10000000,
1584     eLEXTYPE_PRIVATE18 = 0x20000000,
1585     eLEXTYPE_PRIVATE19 = 0x40000000,
1586     eLEXTYPE_PRIVATE20 = 0x80000000
1587 } SPLEXICONTYPE;
1588 typedef enum SPWORDTYPE {
1589     eWORDTYPE_ADDED = 1,
1590     eWORDTYPE_DELETED = 2
1591 } SPWORDTYPE;
1592 typedef enum SPPRONUNCIATIONFLAGS {
1593     ePRONFLAG_USED = 1
1594 } SPPRONUNCIATIONFLAGS;
1595 typedef enum SPSHORTCUTTYPE {
1596     SPSHT_NotOverriden = -1,
1597     SPSHT_Unknown = 0,
1598     SPSHT_EMAIL = 0x1000,
1599     SPSHT_OTHER = 0x2000,
1600     SPPS_RESERVED1 = 0x3000,
1601     SPPS_RESERVED2 = 0x4000,
1602     SPPS_RESERVED3 = 0x5000,
1603     SPPS_RESERVED4 = 0xf000
1604 } SPSHORTCUTTYPE;
1605 typedef enum SPVALUETYPE {
1606     SPDF_PROPERTY = 0x1,
1607     SPDF_REPLACEMENT = 0x2,
1608     SPDF_RULE = 0x4,
1609     SPDF_DISPLAYTEXT = 0x8,
1610     SPDF_LEXICALFORM = 0x10,
1611     SPDF_PRONUNCIATION = 0x20,
1612     SPDF_AUDIO = 0x40,
1613     SPDF_ALTERNATES = 0x80,
1614     SPDF_ALL = 0xff
1615 } SPVALUETYPE;
1616 typedef enum SPPHRASERNG {
1617     SPPR_ALL_ELEMENTS = -1
1618 } SPPHRASERNG;
1619 typedef enum SPVACTIONS {
1620     SPVA_Speak = 0,
1621     SPVA_Silence = 1,
1622     SPVA_Pronounce = 2,
1623     SPVA_Bookmark = 3,
1624     SPVA_SpellOut = 4,
1625     SPVA_Section = 5,
1626     SPVA_ParseUnknownTag = 6
1627 } SPVACTIONS;
1628 typedef enum SPRUNSTATE {
1629     SPRS_DONE = 1,
1630     SPRS_IS_SPEAKING = 2
1631 } SPRUNSTATE;
1632 typedef enum SPVLIMITS {
1633     SPMIN_VOLUME = 0,
1634     SPMAX_VOLUME = 100,
1635     SPMIN_RATE = -10,
1636     SPMAX_RATE = 10
1637 } SPVLIMITS;
1638 typedef enum SPVPRIORITY {
1639     SPVPRI_NORMAL = 0,
1640     SPVPRI_ALERT = 1,
1641     SPVPRI_OVER = 2
1642 } SPVPRIORITY;
1643 EXTERN_C const GUID SPDFID_Text;
1644 EXTERN_C const GUID SPDFID_WaveFormatEx;
1645 
1646 #define SP_LOW_CONFIDENCE (-1)
1647 
1648 #define SP_NORMAL_CONFIDENCE (0)
1649 
1650 #define SP_HIGH_CONFIDENCE (+1)
1651 
1652 #define DEFAULT_WEIGHT (1)
1653 
1654 #define SP_MAX_WORD_LENGTH (128)
1655 
1656 #define SP_MAX_PRON_LENGTH (384)
1657 
1658 #define SP_EMULATE_RESULT (0x40000000)
1659 
1660 
1661 #ifdef __cplusplus
1662 interface ISpNotifyCallback {
1663   virtual HRESULT STDMETHODCALLTYPE NotifyCallback(WPARAM wParam, LPARAM lParam) = 0;
1664 };
1665 #else
1666 typedef void *ISpNotifyCallback;
1667 #endif
1668 #if 0
1669 typedef void *SPNOTIFYCALLBACK;
1670 #else
1671 typedef void __stdcall SPNOTIFYCALLBACK(WPARAM wParam, LPARAM lParam);
1672 #endif
1673 /*****************************************************************************
1674  * ISpNotifySource interface
1675  */
1676 #ifndef __ISpNotifySource_INTERFACE_DEFINED__
1677 #define __ISpNotifySource_INTERFACE_DEFINED__
1678 
1679 DEFINE_GUID(IID_ISpNotifySource, 0x5eff4aef, 0x8487, 0x11d2, 0x96,0x1c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
1680 #if defined(__cplusplus) && !defined(CINTERFACE)
1681 MIDL_INTERFACE("5eff4aef-8487-11d2-961c-00c04f8ee628")
1682 ISpNotifySource : public IUnknown
1683 {
1684     virtual HRESULT STDMETHODCALLTYPE SetNotifySink(
1685         ISpNotifySink *pNotifySink) = 0;
1686 
1687     virtual HRESULT STDMETHODCALLTYPE SetNotifyWindowMessage(
1688         HWND hWnd,
1689         UINT Msg,
1690         WPARAM wParam,
1691         LPARAM lParam) = 0;
1692 
1693     virtual HRESULT STDMETHODCALLTYPE SetNotifyCallbackFunction(
1694         SPNOTIFYCALLBACK *pfnCallback,
1695         WPARAM wParam,
1696         LPARAM lParam) = 0;
1697 
1698     virtual HRESULT STDMETHODCALLTYPE SetNotifyCallbackInterface(
1699         ISpNotifyCallback *pSpCallback,
1700         WPARAM wParam,
1701         LPARAM lParam) = 0;
1702 
1703     virtual HRESULT STDMETHODCALLTYPE SetNotifyWin32Event(
1704         ) = 0;
1705 
1706     virtual HRESULT STDMETHODCALLTYPE WaitForNotifyEvent(
1707         DWORD dwMilliseconds) = 0;
1708 
1709     virtual HANDLE STDMETHODCALLTYPE GetNotifyEventHandle(
1710         ) = 0;
1711 
1712 };
1713 #ifdef __CRT_UUID_DECL
1714 __CRT_UUID_DECL(ISpNotifySource, 0x5eff4aef, 0x8487, 0x11d2, 0x96,0x1c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
1715 #endif
1716 #else
1717 typedef struct ISpNotifySourceVtbl {
1718     BEGIN_INTERFACE
1719 
1720     /*** IUnknown methods ***/
1721     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1722         ISpNotifySource *This,
1723         REFIID riid,
1724         void **ppvObject);
1725 
1726     ULONG (STDMETHODCALLTYPE *AddRef)(
1727         ISpNotifySource *This);
1728 
1729     ULONG (STDMETHODCALLTYPE *Release)(
1730         ISpNotifySource *This);
1731 
1732     /*** ISpNotifySource methods ***/
1733     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
1734         ISpNotifySource *This,
1735         ISpNotifySink *pNotifySink);
1736 
1737     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
1738         ISpNotifySource *This,
1739         HWND hWnd,
1740         UINT Msg,
1741         WPARAM wParam,
1742         LPARAM lParam);
1743 
1744     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
1745         ISpNotifySource *This,
1746         SPNOTIFYCALLBACK *pfnCallback,
1747         WPARAM wParam,
1748         LPARAM lParam);
1749 
1750     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
1751         ISpNotifySource *This,
1752         ISpNotifyCallback *pSpCallback,
1753         WPARAM wParam,
1754         LPARAM lParam);
1755 
1756     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
1757         ISpNotifySource *This);
1758 
1759     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
1760         ISpNotifySource *This,
1761         DWORD dwMilliseconds);
1762 
1763     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
1764         ISpNotifySource *This);
1765 
1766     END_INTERFACE
1767 } ISpNotifySourceVtbl;
1768 
1769 interface ISpNotifySource {
1770     CONST_VTBL ISpNotifySourceVtbl* lpVtbl;
1771 };
1772 
1773 #ifdef COBJMACROS
1774 #ifndef WIDL_C_INLINE_WRAPPERS
1775 /*** IUnknown methods ***/
1776 #define ISpNotifySource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1777 #define ISpNotifySource_AddRef(This) (This)->lpVtbl->AddRef(This)
1778 #define ISpNotifySource_Release(This) (This)->lpVtbl->Release(This)
1779 /*** ISpNotifySource methods ***/
1780 #define ISpNotifySource_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
1781 #define ISpNotifySource_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
1782 #define ISpNotifySource_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
1783 #define ISpNotifySource_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
1784 #define ISpNotifySource_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
1785 #define ISpNotifySource_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
1786 #define ISpNotifySource_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
1787 #else
1788 /*** IUnknown methods ***/
1789 static FORCEINLINE HRESULT ISpNotifySource_QueryInterface(ISpNotifySource* This,REFIID riid,void **ppvObject) {
1790     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1791 }
1792 static FORCEINLINE ULONG ISpNotifySource_AddRef(ISpNotifySource* This) {
1793     return This->lpVtbl->AddRef(This);
1794 }
1795 static FORCEINLINE ULONG ISpNotifySource_Release(ISpNotifySource* This) {
1796     return This->lpVtbl->Release(This);
1797 }
1798 /*** ISpNotifySource methods ***/
1799 static FORCEINLINE HRESULT ISpNotifySource_SetNotifySink(ISpNotifySource* This,ISpNotifySink *pNotifySink) {
1800     return This->lpVtbl->SetNotifySink(This,pNotifySink);
1801 }
1802 static FORCEINLINE HRESULT ISpNotifySource_SetNotifyWindowMessage(ISpNotifySource* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
1803     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
1804 }
1805 static FORCEINLINE HRESULT ISpNotifySource_SetNotifyCallbackFunction(ISpNotifySource* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
1806     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
1807 }
1808 static FORCEINLINE HRESULT ISpNotifySource_SetNotifyCallbackInterface(ISpNotifySource* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
1809     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
1810 }
1811 static FORCEINLINE HRESULT ISpNotifySource_SetNotifyWin32Event(ISpNotifySource* This) {
1812     return This->lpVtbl->SetNotifyWin32Event(This);
1813 }
1814 static FORCEINLINE HRESULT ISpNotifySource_WaitForNotifyEvent(ISpNotifySource* This,DWORD dwMilliseconds) {
1815     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
1816 }
1817 static FORCEINLINE HANDLE ISpNotifySource_GetNotifyEventHandle(ISpNotifySource* This) {
1818     return This->lpVtbl->GetNotifyEventHandle(This);
1819 }
1820 #endif
1821 #endif
1822 
1823 #endif
1824 
1825 
1826 #endif  /* __ISpNotifySource_INTERFACE_DEFINED__ */
1827 
1828 /*****************************************************************************
1829  * ISpNotifySink interface
1830  */
1831 #ifndef __ISpNotifySink_INTERFACE_DEFINED__
1832 #define __ISpNotifySink_INTERFACE_DEFINED__
1833 
1834 DEFINE_GUID(IID_ISpNotifySink, 0x259684dc, 0x37c3, 0x11d2, 0x96,0x03, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
1835 #if defined(__cplusplus) && !defined(CINTERFACE)
1836 MIDL_INTERFACE("259684dc-37c3-11d2-9603-00c04f8ee628")
1837 ISpNotifySink : public IUnknown
1838 {
1839     virtual HRESULT STDMETHODCALLTYPE Notify(
1840         ) = 0;
1841 
1842 };
1843 #ifdef __CRT_UUID_DECL
1844 __CRT_UUID_DECL(ISpNotifySink, 0x259684dc, 0x37c3, 0x11d2, 0x96,0x03, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
1845 #endif
1846 #else
1847 typedef struct ISpNotifySinkVtbl {
1848     BEGIN_INTERFACE
1849 
1850     /*** IUnknown methods ***/
1851     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1852         ISpNotifySink *This,
1853         REFIID riid,
1854         void **ppvObject);
1855 
1856     ULONG (STDMETHODCALLTYPE *AddRef)(
1857         ISpNotifySink *This);
1858 
1859     ULONG (STDMETHODCALLTYPE *Release)(
1860         ISpNotifySink *This);
1861 
1862     /*** ISpNotifySink methods ***/
1863     HRESULT (STDMETHODCALLTYPE *Notify)(
1864         ISpNotifySink *This);
1865 
1866     END_INTERFACE
1867 } ISpNotifySinkVtbl;
1868 
1869 interface ISpNotifySink {
1870     CONST_VTBL ISpNotifySinkVtbl* lpVtbl;
1871 };
1872 
1873 #ifdef COBJMACROS
1874 #ifndef WIDL_C_INLINE_WRAPPERS
1875 /*** IUnknown methods ***/
1876 #define ISpNotifySink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1877 #define ISpNotifySink_AddRef(This) (This)->lpVtbl->AddRef(This)
1878 #define ISpNotifySink_Release(This) (This)->lpVtbl->Release(This)
1879 /*** ISpNotifySink methods ***/
1880 #define ISpNotifySink_Notify(This) (This)->lpVtbl->Notify(This)
1881 #else
1882 /*** IUnknown methods ***/
1883 static FORCEINLINE HRESULT ISpNotifySink_QueryInterface(ISpNotifySink* This,REFIID riid,void **ppvObject) {
1884     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1885 }
1886 static FORCEINLINE ULONG ISpNotifySink_AddRef(ISpNotifySink* This) {
1887     return This->lpVtbl->AddRef(This);
1888 }
1889 static FORCEINLINE ULONG ISpNotifySink_Release(ISpNotifySink* This) {
1890     return This->lpVtbl->Release(This);
1891 }
1892 /*** ISpNotifySink methods ***/
1893 static FORCEINLINE HRESULT ISpNotifySink_Notify(ISpNotifySink* This) {
1894     return This->lpVtbl->Notify(This);
1895 }
1896 #endif
1897 #endif
1898 
1899 #endif
1900 
1901 
1902 #endif  /* __ISpNotifySink_INTERFACE_DEFINED__ */
1903 
1904 /*****************************************************************************
1905  * ISpNotifyTranslator interface
1906  */
1907 #ifndef __ISpNotifyTranslator_INTERFACE_DEFINED__
1908 #define __ISpNotifyTranslator_INTERFACE_DEFINED__
1909 
1910 DEFINE_GUID(IID_ISpNotifyTranslator, 0xaca16614, 0x5d3d, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
1911 #if defined(__cplusplus) && !defined(CINTERFACE)
1912 MIDL_INTERFACE("aca16614-5d3d-11d2-960e-00c04f8ee628")
1913 ISpNotifyTranslator : public ISpNotifySink
1914 {
1915     virtual HRESULT STDMETHODCALLTYPE InitWindowMessage(
1916         HWND hWnd,
1917         UINT Msg,
1918         WPARAM wParam,
1919         LPARAM lParam) = 0;
1920 
1921     virtual HRESULT STDMETHODCALLTYPE InitCallback(
1922         SPNOTIFYCALLBACK *pfnCallback,
1923         WPARAM wParam,
1924         LPARAM lParam) = 0;
1925 
1926     virtual HRESULT STDMETHODCALLTYPE InitSpNotifyCallback(
1927         ISpNotifyCallback *pSpCallback,
1928         WPARAM wParam,
1929         LPARAM lParam) = 0;
1930 
1931     virtual HRESULT STDMETHODCALLTYPE InitWin32Event(
1932         HANDLE hEvent,
1933         WINBOOL fCloseHandleOnRelease) = 0;
1934 
1935     virtual HRESULT STDMETHODCALLTYPE Wait(
1936         DWORD dwMilliseconds) = 0;
1937 
1938     virtual HANDLE STDMETHODCALLTYPE GetEventHandle(
1939         ) = 0;
1940 
1941 };
1942 #ifdef __CRT_UUID_DECL
1943 __CRT_UUID_DECL(ISpNotifyTranslator, 0xaca16614, 0x5d3d, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
1944 #endif
1945 #else
1946 typedef struct ISpNotifyTranslatorVtbl {
1947     BEGIN_INTERFACE
1948 
1949     /*** IUnknown methods ***/
1950     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1951         ISpNotifyTranslator *This,
1952         REFIID riid,
1953         void **ppvObject);
1954 
1955     ULONG (STDMETHODCALLTYPE *AddRef)(
1956         ISpNotifyTranslator *This);
1957 
1958     ULONG (STDMETHODCALLTYPE *Release)(
1959         ISpNotifyTranslator *This);
1960 
1961     /*** ISpNotifySink methods ***/
1962     HRESULT (STDMETHODCALLTYPE *Notify)(
1963         ISpNotifyTranslator *This);
1964 
1965     /*** ISpNotifyTranslator methods ***/
1966     HRESULT (STDMETHODCALLTYPE *InitWindowMessage)(
1967         ISpNotifyTranslator *This,
1968         HWND hWnd,
1969         UINT Msg,
1970         WPARAM wParam,
1971         LPARAM lParam);
1972 
1973     HRESULT (STDMETHODCALLTYPE *InitCallback)(
1974         ISpNotifyTranslator *This,
1975         SPNOTIFYCALLBACK *pfnCallback,
1976         WPARAM wParam,
1977         LPARAM lParam);
1978 
1979     HRESULT (STDMETHODCALLTYPE *InitSpNotifyCallback)(
1980         ISpNotifyTranslator *This,
1981         ISpNotifyCallback *pSpCallback,
1982         WPARAM wParam,
1983         LPARAM lParam);
1984 
1985     HRESULT (STDMETHODCALLTYPE *InitWin32Event)(
1986         ISpNotifyTranslator *This,
1987         HANDLE hEvent,
1988         WINBOOL fCloseHandleOnRelease);
1989 
1990     HRESULT (STDMETHODCALLTYPE *Wait)(
1991         ISpNotifyTranslator *This,
1992         DWORD dwMilliseconds);
1993 
1994     HANDLE (STDMETHODCALLTYPE *GetEventHandle)(
1995         ISpNotifyTranslator *This);
1996 
1997     END_INTERFACE
1998 } ISpNotifyTranslatorVtbl;
1999 
2000 interface ISpNotifyTranslator {
2001     CONST_VTBL ISpNotifyTranslatorVtbl* lpVtbl;
2002 };
2003 
2004 #ifdef COBJMACROS
2005 #ifndef WIDL_C_INLINE_WRAPPERS
2006 /*** IUnknown methods ***/
2007 #define ISpNotifyTranslator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2008 #define ISpNotifyTranslator_AddRef(This) (This)->lpVtbl->AddRef(This)
2009 #define ISpNotifyTranslator_Release(This) (This)->lpVtbl->Release(This)
2010 /*** ISpNotifySink methods ***/
2011 #define ISpNotifyTranslator_Notify(This) (This)->lpVtbl->Notify(This)
2012 /*** ISpNotifyTranslator methods ***/
2013 #define ISpNotifyTranslator_InitWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->InitWindowMessage(This,hWnd,Msg,wParam,lParam)
2014 #define ISpNotifyTranslator_InitCallback(This,pfnCallback,wParam,lParam) (This)->lpVtbl->InitCallback(This,pfnCallback,wParam,lParam)
2015 #define ISpNotifyTranslator_InitSpNotifyCallback(This,pSpCallback,wParam,lParam) (This)->lpVtbl->InitSpNotifyCallback(This,pSpCallback,wParam,lParam)
2016 #define ISpNotifyTranslator_InitWin32Event(This,hEvent,fCloseHandleOnRelease) (This)->lpVtbl->InitWin32Event(This,hEvent,fCloseHandleOnRelease)
2017 #define ISpNotifyTranslator_Wait(This,dwMilliseconds) (This)->lpVtbl->Wait(This,dwMilliseconds)
2018 #define ISpNotifyTranslator_GetEventHandle(This) (This)->lpVtbl->GetEventHandle(This)
2019 #else
2020 /*** IUnknown methods ***/
2021 static FORCEINLINE HRESULT ISpNotifyTranslator_QueryInterface(ISpNotifyTranslator* This,REFIID riid,void **ppvObject) {
2022     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2023 }
2024 static FORCEINLINE ULONG ISpNotifyTranslator_AddRef(ISpNotifyTranslator* This) {
2025     return This->lpVtbl->AddRef(This);
2026 }
2027 static FORCEINLINE ULONG ISpNotifyTranslator_Release(ISpNotifyTranslator* This) {
2028     return This->lpVtbl->Release(This);
2029 }
2030 /*** ISpNotifySink methods ***/
2031 static FORCEINLINE HRESULT ISpNotifyTranslator_Notify(ISpNotifyTranslator* This) {
2032     return This->lpVtbl->Notify(This);
2033 }
2034 /*** ISpNotifyTranslator methods ***/
2035 static FORCEINLINE HRESULT ISpNotifyTranslator_InitWindowMessage(ISpNotifyTranslator* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
2036     return This->lpVtbl->InitWindowMessage(This,hWnd,Msg,wParam,lParam);
2037 }
2038 static FORCEINLINE HRESULT ISpNotifyTranslator_InitCallback(ISpNotifyTranslator* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
2039     return This->lpVtbl->InitCallback(This,pfnCallback,wParam,lParam);
2040 }
2041 static FORCEINLINE HRESULT ISpNotifyTranslator_InitSpNotifyCallback(ISpNotifyTranslator* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
2042     return This->lpVtbl->InitSpNotifyCallback(This,pSpCallback,wParam,lParam);
2043 }
2044 static FORCEINLINE HRESULT ISpNotifyTranslator_InitWin32Event(ISpNotifyTranslator* This,HANDLE hEvent,WINBOOL fCloseHandleOnRelease) {
2045     return This->lpVtbl->InitWin32Event(This,hEvent,fCloseHandleOnRelease);
2046 }
2047 static FORCEINLINE HRESULT ISpNotifyTranslator_Wait(ISpNotifyTranslator* This,DWORD dwMilliseconds) {
2048     return This->lpVtbl->Wait(This,dwMilliseconds);
2049 }
2050 static FORCEINLINE HANDLE ISpNotifyTranslator_GetEventHandle(ISpNotifyTranslator* This) {
2051     return This->lpVtbl->GetEventHandle(This);
2052 }
2053 #endif
2054 #endif
2055 
2056 #endif
2057 
2058 
2059 #endif  /* __ISpNotifyTranslator_INTERFACE_DEFINED__ */
2060 
2061 /*****************************************************************************
2062  * ISpDataKey interface
2063  */
2064 #ifndef __ISpDataKey_INTERFACE_DEFINED__
2065 #define __ISpDataKey_INTERFACE_DEFINED__
2066 
2067 DEFINE_GUID(IID_ISpDataKey, 0x14056581, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
2068 #if defined(__cplusplus) && !defined(CINTERFACE)
2069 MIDL_INTERFACE("14056581-e16c-11d2-bb90-00c04f8ee6c0")
2070 ISpDataKey : public IUnknown
2071 {
2072     virtual HRESULT STDMETHODCALLTYPE SetData(
2073         LPCWSTR pszValueName,
2074         ULONG cbData,
2075         const BYTE *pData) = 0;
2076 
2077     virtual HRESULT STDMETHODCALLTYPE GetData(
2078         LPCWSTR pszValueName,
2079         ULONG *pcbData,
2080         BYTE *pData) = 0;
2081 
2082     virtual HRESULT STDMETHODCALLTYPE SetStringValue(
2083         LPCWSTR pszValueName,
2084         LPCWSTR pszValue) = 0;
2085 
2086     virtual HRESULT STDMETHODCALLTYPE GetStringValue(
2087         LPCWSTR pszValueName,
2088         LPWSTR *ppszValue) = 0;
2089 
2090     virtual HRESULT STDMETHODCALLTYPE SetDWORD(
2091         LPCWSTR pszValueName,
2092         DWORD dwValue) = 0;
2093 
2094     virtual HRESULT STDMETHODCALLTYPE GetDWORD(
2095         LPCWSTR pszValueName,
2096         DWORD *pdwValue) = 0;
2097 
2098     virtual HRESULT STDMETHODCALLTYPE OpenKey(
2099         LPCWSTR pszSubKeyName,
2100         ISpDataKey **ppSubKey) = 0;
2101 
2102     virtual HRESULT STDMETHODCALLTYPE CreateKey(
2103         LPCWSTR pszSubKey,
2104         ISpDataKey **ppSubKey) = 0;
2105 
2106     virtual HRESULT STDMETHODCALLTYPE DeleteKey(
2107         LPCWSTR pszSubKey) = 0;
2108 
2109     virtual HRESULT STDMETHODCALLTYPE DeleteValue(
2110         LPCWSTR pszValueName) = 0;
2111 
2112     virtual HRESULT STDMETHODCALLTYPE EnumKeys(
2113         ULONG Index,
2114         LPWSTR *ppszSubKeyName) = 0;
2115 
2116     virtual HRESULT STDMETHODCALLTYPE EnumValues(
2117         ULONG Index,
2118         LPWSTR *ppszValueName) = 0;
2119 
2120 };
2121 #ifdef __CRT_UUID_DECL
2122 __CRT_UUID_DECL(ISpDataKey, 0x14056581, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
2123 #endif
2124 #else
2125 typedef struct ISpDataKeyVtbl {
2126     BEGIN_INTERFACE
2127 
2128     /*** IUnknown methods ***/
2129     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2130         ISpDataKey *This,
2131         REFIID riid,
2132         void **ppvObject);
2133 
2134     ULONG (STDMETHODCALLTYPE *AddRef)(
2135         ISpDataKey *This);
2136 
2137     ULONG (STDMETHODCALLTYPE *Release)(
2138         ISpDataKey *This);
2139 
2140     /*** ISpDataKey methods ***/
2141     HRESULT (STDMETHODCALLTYPE *SetData)(
2142         ISpDataKey *This,
2143         LPCWSTR pszValueName,
2144         ULONG cbData,
2145         const BYTE *pData);
2146 
2147     HRESULT (STDMETHODCALLTYPE *GetData)(
2148         ISpDataKey *This,
2149         LPCWSTR pszValueName,
2150         ULONG *pcbData,
2151         BYTE *pData);
2152 
2153     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
2154         ISpDataKey *This,
2155         LPCWSTR pszValueName,
2156         LPCWSTR pszValue);
2157 
2158     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
2159         ISpDataKey *This,
2160         LPCWSTR pszValueName,
2161         LPWSTR *ppszValue);
2162 
2163     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
2164         ISpDataKey *This,
2165         LPCWSTR pszValueName,
2166         DWORD dwValue);
2167 
2168     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
2169         ISpDataKey *This,
2170         LPCWSTR pszValueName,
2171         DWORD *pdwValue);
2172 
2173     HRESULT (STDMETHODCALLTYPE *OpenKey)(
2174         ISpDataKey *This,
2175         LPCWSTR pszSubKeyName,
2176         ISpDataKey **ppSubKey);
2177 
2178     HRESULT (STDMETHODCALLTYPE *CreateKey)(
2179         ISpDataKey *This,
2180         LPCWSTR pszSubKey,
2181         ISpDataKey **ppSubKey);
2182 
2183     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
2184         ISpDataKey *This,
2185         LPCWSTR pszSubKey);
2186 
2187     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
2188         ISpDataKey *This,
2189         LPCWSTR pszValueName);
2190 
2191     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
2192         ISpDataKey *This,
2193         ULONG Index,
2194         LPWSTR *ppszSubKeyName);
2195 
2196     HRESULT (STDMETHODCALLTYPE *EnumValues)(
2197         ISpDataKey *This,
2198         ULONG Index,
2199         LPWSTR *ppszValueName);
2200 
2201     END_INTERFACE
2202 } ISpDataKeyVtbl;
2203 
2204 interface ISpDataKey {
2205     CONST_VTBL ISpDataKeyVtbl* lpVtbl;
2206 };
2207 
2208 #ifdef COBJMACROS
2209 #ifndef WIDL_C_INLINE_WRAPPERS
2210 /*** IUnknown methods ***/
2211 #define ISpDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2212 #define ISpDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
2213 #define ISpDataKey_Release(This) (This)->lpVtbl->Release(This)
2214 /*** ISpDataKey methods ***/
2215 #define ISpDataKey_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
2216 #define ISpDataKey_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
2217 #define ISpDataKey_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
2218 #define ISpDataKey_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
2219 #define ISpDataKey_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
2220 #define ISpDataKey_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
2221 #define ISpDataKey_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
2222 #define ISpDataKey_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
2223 #define ISpDataKey_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
2224 #define ISpDataKey_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
2225 #define ISpDataKey_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
2226 #define ISpDataKey_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
2227 #else
2228 /*** IUnknown methods ***/
2229 static FORCEINLINE HRESULT ISpDataKey_QueryInterface(ISpDataKey* This,REFIID riid,void **ppvObject) {
2230     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2231 }
2232 static FORCEINLINE ULONG ISpDataKey_AddRef(ISpDataKey* This) {
2233     return This->lpVtbl->AddRef(This);
2234 }
2235 static FORCEINLINE ULONG ISpDataKey_Release(ISpDataKey* This) {
2236     return This->lpVtbl->Release(This);
2237 }
2238 /*** ISpDataKey methods ***/
2239 static FORCEINLINE HRESULT ISpDataKey_SetData(ISpDataKey* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
2240     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
2241 }
2242 static FORCEINLINE HRESULT ISpDataKey_GetData(ISpDataKey* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
2243     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
2244 }
2245 static FORCEINLINE HRESULT ISpDataKey_SetStringValue(ISpDataKey* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
2246     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
2247 }
2248 static FORCEINLINE HRESULT ISpDataKey_GetStringValue(ISpDataKey* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
2249     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
2250 }
2251 static FORCEINLINE HRESULT ISpDataKey_SetDWORD(ISpDataKey* This,LPCWSTR pszValueName,DWORD dwValue) {
2252     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
2253 }
2254 static FORCEINLINE HRESULT ISpDataKey_GetDWORD(ISpDataKey* This,LPCWSTR pszValueName,DWORD *pdwValue) {
2255     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
2256 }
2257 static FORCEINLINE HRESULT ISpDataKey_OpenKey(ISpDataKey* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
2258     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
2259 }
2260 static FORCEINLINE HRESULT ISpDataKey_CreateKey(ISpDataKey* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
2261     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
2262 }
2263 static FORCEINLINE HRESULT ISpDataKey_DeleteKey(ISpDataKey* This,LPCWSTR pszSubKey) {
2264     return This->lpVtbl->DeleteKey(This,pszSubKey);
2265 }
2266 static FORCEINLINE HRESULT ISpDataKey_DeleteValue(ISpDataKey* This,LPCWSTR pszValueName) {
2267     return This->lpVtbl->DeleteValue(This,pszValueName);
2268 }
2269 static FORCEINLINE HRESULT ISpDataKey_EnumKeys(ISpDataKey* This,ULONG Index,LPWSTR *ppszSubKeyName) {
2270     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
2271 }
2272 static FORCEINLINE HRESULT ISpDataKey_EnumValues(ISpDataKey* This,ULONG Index,LPWSTR *ppszValueName) {
2273     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
2274 }
2275 #endif
2276 #endif
2277 
2278 #endif
2279 
2280 
2281 #endif  /* __ISpDataKey_INTERFACE_DEFINED__ */
2282 
2283 /*****************************************************************************
2284  * ISpObjectWithToken interface
2285  */
2286 #ifndef __ISpObjectWithToken_INTERFACE_DEFINED__
2287 #define __ISpObjectWithToken_INTERFACE_DEFINED__
2288 
2289 DEFINE_GUID(IID_ISpObjectWithToken, 0x5b559f40, 0xe952, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
2290 #if defined(__cplusplus) && !defined(CINTERFACE)
2291 MIDL_INTERFACE("5b559f40-e952-11d2-bb91-00c04f8ee6c0")
2292 ISpObjectWithToken : public IUnknown
2293 {
2294     virtual HRESULT STDMETHODCALLTYPE SetObjectToken(
2295         ISpObjectToken *pToken) = 0;
2296 
2297     virtual HRESULT STDMETHODCALLTYPE GetObjectToken(
2298         ISpObjectToken **ppToken) = 0;
2299 
2300 };
2301 #ifdef __CRT_UUID_DECL
2302 __CRT_UUID_DECL(ISpObjectWithToken, 0x5b559f40, 0xe952, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
2303 #endif
2304 #else
2305 typedef struct ISpObjectWithTokenVtbl {
2306     BEGIN_INTERFACE
2307 
2308     /*** IUnknown methods ***/
2309     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2310         ISpObjectWithToken *This,
2311         REFIID riid,
2312         void **ppvObject);
2313 
2314     ULONG (STDMETHODCALLTYPE *AddRef)(
2315         ISpObjectWithToken *This);
2316 
2317     ULONG (STDMETHODCALLTYPE *Release)(
2318         ISpObjectWithToken *This);
2319 
2320     /*** ISpObjectWithToken methods ***/
2321     HRESULT (STDMETHODCALLTYPE *SetObjectToken)(
2322         ISpObjectWithToken *This,
2323         ISpObjectToken *pToken);
2324 
2325     HRESULT (STDMETHODCALLTYPE *GetObjectToken)(
2326         ISpObjectWithToken *This,
2327         ISpObjectToken **ppToken);
2328 
2329     END_INTERFACE
2330 } ISpObjectWithTokenVtbl;
2331 
2332 interface ISpObjectWithToken {
2333     CONST_VTBL ISpObjectWithTokenVtbl* lpVtbl;
2334 };
2335 
2336 #ifdef COBJMACROS
2337 #ifndef WIDL_C_INLINE_WRAPPERS
2338 /*** IUnknown methods ***/
2339 #define ISpObjectWithToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2340 #define ISpObjectWithToken_AddRef(This) (This)->lpVtbl->AddRef(This)
2341 #define ISpObjectWithToken_Release(This) (This)->lpVtbl->Release(This)
2342 /*** ISpObjectWithToken methods ***/
2343 #define ISpObjectWithToken_SetObjectToken(This,pToken) (This)->lpVtbl->SetObjectToken(This,pToken)
2344 #define ISpObjectWithToken_GetObjectToken(This,ppToken) (This)->lpVtbl->GetObjectToken(This,ppToken)
2345 #else
2346 /*** IUnknown methods ***/
2347 static FORCEINLINE HRESULT ISpObjectWithToken_QueryInterface(ISpObjectWithToken* This,REFIID riid,void **ppvObject) {
2348     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2349 }
2350 static FORCEINLINE ULONG ISpObjectWithToken_AddRef(ISpObjectWithToken* This) {
2351     return This->lpVtbl->AddRef(This);
2352 }
2353 static FORCEINLINE ULONG ISpObjectWithToken_Release(ISpObjectWithToken* This) {
2354     return This->lpVtbl->Release(This);
2355 }
2356 /*** ISpObjectWithToken methods ***/
2357 static FORCEINLINE HRESULT ISpObjectWithToken_SetObjectToken(ISpObjectWithToken* This,ISpObjectToken *pToken) {
2358     return This->lpVtbl->SetObjectToken(This,pToken);
2359 }
2360 static FORCEINLINE HRESULT ISpObjectWithToken_GetObjectToken(ISpObjectWithToken* This,ISpObjectToken **ppToken) {
2361     return This->lpVtbl->GetObjectToken(This,ppToken);
2362 }
2363 #endif
2364 #endif
2365 
2366 #endif
2367 
2368 
2369 #endif  /* __ISpObjectWithToken_INTERFACE_DEFINED__ */
2370 
2371 /*****************************************************************************
2372  * IEnumSpObjectTokens interface
2373  */
2374 #ifndef __IEnumSpObjectTokens_INTERFACE_DEFINED__
2375 #define __IEnumSpObjectTokens_INTERFACE_DEFINED__
2376 
2377 DEFINE_GUID(IID_IEnumSpObjectTokens, 0x06b64f9e, 0x7fda, 0x11d2, 0xb4,0xf2, 0x00,0xc0,0x4f,0x79,0x73,0x96);
2378 #if defined(__cplusplus) && !defined(CINTERFACE)
2379 MIDL_INTERFACE("06b64f9e-7fda-11d2-b4f2-00c04f797396")
2380 IEnumSpObjectTokens : public IUnknown
2381 {
2382     virtual HRESULT STDMETHODCALLTYPE Next(
2383         ULONG celt,
2384         ISpObjectToken **pelt,
2385         ULONG *pceltFetched) = 0;
2386 
2387     virtual HRESULT STDMETHODCALLTYPE Skip(
2388         ULONG celt) = 0;
2389 
2390     virtual HRESULT STDMETHODCALLTYPE Reset(
2391         ) = 0;
2392 
2393     virtual HRESULT STDMETHODCALLTYPE Clone(
2394         IEnumSpObjectTokens **ppEnum) = 0;
2395 
2396     virtual HRESULT STDMETHODCALLTYPE Item(
2397         ULONG Index,
2398         ISpObjectToken **ppToken) = 0;
2399 
2400     virtual HRESULT STDMETHODCALLTYPE GetCount(
2401         ULONG *pCount) = 0;
2402 
2403 };
2404 #ifdef __CRT_UUID_DECL
2405 __CRT_UUID_DECL(IEnumSpObjectTokens, 0x06b64f9e, 0x7fda, 0x11d2, 0xb4,0xf2, 0x00,0xc0,0x4f,0x79,0x73,0x96)
2406 #endif
2407 #else
2408 typedef struct IEnumSpObjectTokensVtbl {
2409     BEGIN_INTERFACE
2410 
2411     /*** IUnknown methods ***/
2412     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2413         IEnumSpObjectTokens *This,
2414         REFIID riid,
2415         void **ppvObject);
2416 
2417     ULONG (STDMETHODCALLTYPE *AddRef)(
2418         IEnumSpObjectTokens *This);
2419 
2420     ULONG (STDMETHODCALLTYPE *Release)(
2421         IEnumSpObjectTokens *This);
2422 
2423     /*** IEnumSpObjectTokens methods ***/
2424     HRESULT (STDMETHODCALLTYPE *Next)(
2425         IEnumSpObjectTokens *This,
2426         ULONG celt,
2427         ISpObjectToken **pelt,
2428         ULONG *pceltFetched);
2429 
2430     HRESULT (STDMETHODCALLTYPE *Skip)(
2431         IEnumSpObjectTokens *This,
2432         ULONG celt);
2433 
2434     HRESULT (STDMETHODCALLTYPE *Reset)(
2435         IEnumSpObjectTokens *This);
2436 
2437     HRESULT (STDMETHODCALLTYPE *Clone)(
2438         IEnumSpObjectTokens *This,
2439         IEnumSpObjectTokens **ppEnum);
2440 
2441     HRESULT (STDMETHODCALLTYPE *Item)(
2442         IEnumSpObjectTokens *This,
2443         ULONG Index,
2444         ISpObjectToken **ppToken);
2445 
2446     HRESULT (STDMETHODCALLTYPE *GetCount)(
2447         IEnumSpObjectTokens *This,
2448         ULONG *pCount);
2449 
2450     END_INTERFACE
2451 } IEnumSpObjectTokensVtbl;
2452 
2453 interface IEnumSpObjectTokens {
2454     CONST_VTBL IEnumSpObjectTokensVtbl* lpVtbl;
2455 };
2456 
2457 #ifdef COBJMACROS
2458 #ifndef WIDL_C_INLINE_WRAPPERS
2459 /*** IUnknown methods ***/
2460 #define IEnumSpObjectTokens_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2461 #define IEnumSpObjectTokens_AddRef(This) (This)->lpVtbl->AddRef(This)
2462 #define IEnumSpObjectTokens_Release(This) (This)->lpVtbl->Release(This)
2463 /*** IEnumSpObjectTokens methods ***/
2464 #define IEnumSpObjectTokens_Next(This,celt,pelt,pceltFetched) (This)->lpVtbl->Next(This,celt,pelt,pceltFetched)
2465 #define IEnumSpObjectTokens_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
2466 #define IEnumSpObjectTokens_Reset(This) (This)->lpVtbl->Reset(This)
2467 #define IEnumSpObjectTokens_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
2468 #define IEnumSpObjectTokens_Item(This,Index,ppToken) (This)->lpVtbl->Item(This,Index,ppToken)
2469 #define IEnumSpObjectTokens_GetCount(This,pCount) (This)->lpVtbl->GetCount(This,pCount)
2470 #else
2471 /*** IUnknown methods ***/
2472 static FORCEINLINE HRESULT IEnumSpObjectTokens_QueryInterface(IEnumSpObjectTokens* This,REFIID riid,void **ppvObject) {
2473     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2474 }
2475 static FORCEINLINE ULONG IEnumSpObjectTokens_AddRef(IEnumSpObjectTokens* This) {
2476     return This->lpVtbl->AddRef(This);
2477 }
2478 static FORCEINLINE ULONG IEnumSpObjectTokens_Release(IEnumSpObjectTokens* This) {
2479     return This->lpVtbl->Release(This);
2480 }
2481 /*** IEnumSpObjectTokens methods ***/
2482 static FORCEINLINE HRESULT IEnumSpObjectTokens_Next(IEnumSpObjectTokens* This,ULONG celt,ISpObjectToken **pelt,ULONG *pceltFetched) {
2483     return This->lpVtbl->Next(This,celt,pelt,pceltFetched);
2484 }
2485 static FORCEINLINE HRESULT IEnumSpObjectTokens_Skip(IEnumSpObjectTokens* This,ULONG celt) {
2486     return This->lpVtbl->Skip(This,celt);
2487 }
2488 static FORCEINLINE HRESULT IEnumSpObjectTokens_Reset(IEnumSpObjectTokens* This) {
2489     return This->lpVtbl->Reset(This);
2490 }
2491 static FORCEINLINE HRESULT IEnumSpObjectTokens_Clone(IEnumSpObjectTokens* This,IEnumSpObjectTokens **ppEnum) {
2492     return This->lpVtbl->Clone(This,ppEnum);
2493 }
2494 static FORCEINLINE HRESULT IEnumSpObjectTokens_Item(IEnumSpObjectTokens* This,ULONG Index,ISpObjectToken **ppToken) {
2495     return This->lpVtbl->Item(This,Index,ppToken);
2496 }
2497 static FORCEINLINE HRESULT IEnumSpObjectTokens_GetCount(IEnumSpObjectTokens* This,ULONG *pCount) {
2498     return This->lpVtbl->GetCount(This,pCount);
2499 }
2500 #endif
2501 #endif
2502 
2503 #endif
2504 
2505 
2506 #endif  /* __IEnumSpObjectTokens_INTERFACE_DEFINED__ */
2507 
2508 /*****************************************************************************
2509  * ISpRegDataKey interface
2510  */
2511 #ifndef __ISpRegDataKey_INTERFACE_DEFINED__
2512 #define __ISpRegDataKey_INTERFACE_DEFINED__
2513 
2514 DEFINE_GUID(IID_ISpRegDataKey, 0x92a66e2b, 0xc830, 0x4149, 0x83,0xdf, 0x6f,0xc2,0xba,0x1e,0x7a,0x5b);
2515 #if defined(__cplusplus) && !defined(CINTERFACE)
2516 MIDL_INTERFACE("92a66e2b-c830-4149-83df-6fc2ba1e7a5b")
2517 ISpRegDataKey : public ISpDataKey
2518 {
2519     virtual HRESULT STDMETHODCALLTYPE SetKey(
2520         HKEY hkey,
2521         WINBOOL fReadOnly) = 0;
2522 
2523 };
2524 #ifdef __CRT_UUID_DECL
2525 __CRT_UUID_DECL(ISpRegDataKey, 0x92a66e2b, 0xc830, 0x4149, 0x83,0xdf, 0x6f,0xc2,0xba,0x1e,0x7a,0x5b)
2526 #endif
2527 #else
2528 typedef struct ISpRegDataKeyVtbl {
2529     BEGIN_INTERFACE
2530 
2531     /*** IUnknown methods ***/
2532     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2533         ISpRegDataKey *This,
2534         REFIID riid,
2535         void **ppvObject);
2536 
2537     ULONG (STDMETHODCALLTYPE *AddRef)(
2538         ISpRegDataKey *This);
2539 
2540     ULONG (STDMETHODCALLTYPE *Release)(
2541         ISpRegDataKey *This);
2542 
2543     /*** ISpDataKey methods ***/
2544     HRESULT (STDMETHODCALLTYPE *SetData)(
2545         ISpRegDataKey *This,
2546         LPCWSTR pszValueName,
2547         ULONG cbData,
2548         const BYTE *pData);
2549 
2550     HRESULT (STDMETHODCALLTYPE *GetData)(
2551         ISpRegDataKey *This,
2552         LPCWSTR pszValueName,
2553         ULONG *pcbData,
2554         BYTE *pData);
2555 
2556     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
2557         ISpRegDataKey *This,
2558         LPCWSTR pszValueName,
2559         LPCWSTR pszValue);
2560 
2561     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
2562         ISpRegDataKey *This,
2563         LPCWSTR pszValueName,
2564         LPWSTR *ppszValue);
2565 
2566     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
2567         ISpRegDataKey *This,
2568         LPCWSTR pszValueName,
2569         DWORD dwValue);
2570 
2571     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
2572         ISpRegDataKey *This,
2573         LPCWSTR pszValueName,
2574         DWORD *pdwValue);
2575 
2576     HRESULT (STDMETHODCALLTYPE *OpenKey)(
2577         ISpRegDataKey *This,
2578         LPCWSTR pszSubKeyName,
2579         ISpDataKey **ppSubKey);
2580 
2581     HRESULT (STDMETHODCALLTYPE *CreateKey)(
2582         ISpRegDataKey *This,
2583         LPCWSTR pszSubKey,
2584         ISpDataKey **ppSubKey);
2585 
2586     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
2587         ISpRegDataKey *This,
2588         LPCWSTR pszSubKey);
2589 
2590     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
2591         ISpRegDataKey *This,
2592         LPCWSTR pszValueName);
2593 
2594     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
2595         ISpRegDataKey *This,
2596         ULONG Index,
2597         LPWSTR *ppszSubKeyName);
2598 
2599     HRESULT (STDMETHODCALLTYPE *EnumValues)(
2600         ISpRegDataKey *This,
2601         ULONG Index,
2602         LPWSTR *ppszValueName);
2603 
2604     /*** ISpRegDataKey methods ***/
2605     HRESULT (STDMETHODCALLTYPE *SetKey)(
2606         ISpRegDataKey *This,
2607         HKEY hkey,
2608         WINBOOL fReadOnly);
2609 
2610     END_INTERFACE
2611 } ISpRegDataKeyVtbl;
2612 
2613 interface ISpRegDataKey {
2614     CONST_VTBL ISpRegDataKeyVtbl* lpVtbl;
2615 };
2616 
2617 #ifdef COBJMACROS
2618 #ifndef WIDL_C_INLINE_WRAPPERS
2619 /*** IUnknown methods ***/
2620 #define ISpRegDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2621 #define ISpRegDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
2622 #define ISpRegDataKey_Release(This) (This)->lpVtbl->Release(This)
2623 /*** ISpDataKey methods ***/
2624 #define ISpRegDataKey_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
2625 #define ISpRegDataKey_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
2626 #define ISpRegDataKey_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
2627 #define ISpRegDataKey_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
2628 #define ISpRegDataKey_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
2629 #define ISpRegDataKey_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
2630 #define ISpRegDataKey_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
2631 #define ISpRegDataKey_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
2632 #define ISpRegDataKey_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
2633 #define ISpRegDataKey_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
2634 #define ISpRegDataKey_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
2635 #define ISpRegDataKey_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
2636 /*** ISpRegDataKey methods ***/
2637 #define ISpRegDataKey_SetKey(This,hkey,fReadOnly) (This)->lpVtbl->SetKey(This,hkey,fReadOnly)
2638 #else
2639 /*** IUnknown methods ***/
2640 static FORCEINLINE HRESULT ISpRegDataKey_QueryInterface(ISpRegDataKey* This,REFIID riid,void **ppvObject) {
2641     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2642 }
2643 static FORCEINLINE ULONG ISpRegDataKey_AddRef(ISpRegDataKey* This) {
2644     return This->lpVtbl->AddRef(This);
2645 }
2646 static FORCEINLINE ULONG ISpRegDataKey_Release(ISpRegDataKey* This) {
2647     return This->lpVtbl->Release(This);
2648 }
2649 /*** ISpDataKey methods ***/
2650 static FORCEINLINE HRESULT ISpRegDataKey_SetData(ISpRegDataKey* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
2651     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
2652 }
2653 static FORCEINLINE HRESULT ISpRegDataKey_GetData(ISpRegDataKey* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
2654     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
2655 }
2656 static FORCEINLINE HRESULT ISpRegDataKey_SetStringValue(ISpRegDataKey* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
2657     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
2658 }
2659 static FORCEINLINE HRESULT ISpRegDataKey_GetStringValue(ISpRegDataKey* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
2660     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
2661 }
2662 static FORCEINLINE HRESULT ISpRegDataKey_SetDWORD(ISpRegDataKey* This,LPCWSTR pszValueName,DWORD dwValue) {
2663     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
2664 }
2665 static FORCEINLINE HRESULT ISpRegDataKey_GetDWORD(ISpRegDataKey* This,LPCWSTR pszValueName,DWORD *pdwValue) {
2666     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
2667 }
2668 static FORCEINLINE HRESULT ISpRegDataKey_OpenKey(ISpRegDataKey* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
2669     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
2670 }
2671 static FORCEINLINE HRESULT ISpRegDataKey_CreateKey(ISpRegDataKey* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
2672     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
2673 }
2674 static FORCEINLINE HRESULT ISpRegDataKey_DeleteKey(ISpRegDataKey* This,LPCWSTR pszSubKey) {
2675     return This->lpVtbl->DeleteKey(This,pszSubKey);
2676 }
2677 static FORCEINLINE HRESULT ISpRegDataKey_DeleteValue(ISpRegDataKey* This,LPCWSTR pszValueName) {
2678     return This->lpVtbl->DeleteValue(This,pszValueName);
2679 }
2680 static FORCEINLINE HRESULT ISpRegDataKey_EnumKeys(ISpRegDataKey* This,ULONG Index,LPWSTR *ppszSubKeyName) {
2681     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
2682 }
2683 static FORCEINLINE HRESULT ISpRegDataKey_EnumValues(ISpRegDataKey* This,ULONG Index,LPWSTR *ppszValueName) {
2684     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
2685 }
2686 /*** ISpRegDataKey methods ***/
2687 static FORCEINLINE HRESULT ISpRegDataKey_SetKey(ISpRegDataKey* This,HKEY hkey,WINBOOL fReadOnly) {
2688     return This->lpVtbl->SetKey(This,hkey,fReadOnly);
2689 }
2690 #endif
2691 #endif
2692 
2693 #endif
2694 
2695 
2696 #endif  /* __ISpRegDataKey_INTERFACE_DEFINED__ */
2697 
2698 /*****************************************************************************
2699  * ISpObjectTokenCategory interface
2700  */
2701 #ifndef __ISpObjectTokenCategory_INTERFACE_DEFINED__
2702 #define __ISpObjectTokenCategory_INTERFACE_DEFINED__
2703 
2704 DEFINE_GUID(IID_ISpObjectTokenCategory, 0x2d3d3845, 0x39af, 0x4850, 0xbb,0xf9, 0x40,0xb4,0x97,0x80,0x01,0x1d);
2705 #if defined(__cplusplus) && !defined(CINTERFACE)
2706 MIDL_INTERFACE("2d3d3845-39af-4850-bbf9-40b49780011d")
2707 ISpObjectTokenCategory : public ISpDataKey
2708 {
2709     virtual HRESULT STDMETHODCALLTYPE SetId(
2710         LPCWSTR pszCategoryId,
2711         WINBOOL fCreateIfNotExist) = 0;
2712 
2713     virtual HRESULT STDMETHODCALLTYPE GetId(
2714         LPWSTR *ppszCoMemCategoryId) = 0;
2715 
2716     virtual HRESULT STDMETHODCALLTYPE GetDataKey(
2717         SPDATAKEYLOCATION spdkl,
2718         ISpDataKey **ppDataKey) = 0;
2719 
2720     virtual HRESULT STDMETHODCALLTYPE EnumTokens(
2721         LPCWSTR pzsReqAttribs,
2722         LPCWSTR pszOptAttribs,
2723         IEnumSpObjectTokens **ppEnum) = 0;
2724 
2725     virtual HRESULT STDMETHODCALLTYPE SetDefaultTokenId(
2726         LPCWSTR pszTokenId) = 0;
2727 
2728     virtual HRESULT STDMETHODCALLTYPE GetDefaultTokenId(
2729         LPWSTR *ppszCoMemTokenId) = 0;
2730 
2731 };
2732 #ifdef __CRT_UUID_DECL
2733 __CRT_UUID_DECL(ISpObjectTokenCategory, 0x2d3d3845, 0x39af, 0x4850, 0xbb,0xf9, 0x40,0xb4,0x97,0x80,0x01,0x1d)
2734 #endif
2735 #else
2736 typedef struct ISpObjectTokenCategoryVtbl {
2737     BEGIN_INTERFACE
2738 
2739     /*** IUnknown methods ***/
2740     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2741         ISpObjectTokenCategory *This,
2742         REFIID riid,
2743         void **ppvObject);
2744 
2745     ULONG (STDMETHODCALLTYPE *AddRef)(
2746         ISpObjectTokenCategory *This);
2747 
2748     ULONG (STDMETHODCALLTYPE *Release)(
2749         ISpObjectTokenCategory *This);
2750 
2751     /*** ISpDataKey methods ***/
2752     HRESULT (STDMETHODCALLTYPE *SetData)(
2753         ISpObjectTokenCategory *This,
2754         LPCWSTR pszValueName,
2755         ULONG cbData,
2756         const BYTE *pData);
2757 
2758     HRESULT (STDMETHODCALLTYPE *GetData)(
2759         ISpObjectTokenCategory *This,
2760         LPCWSTR pszValueName,
2761         ULONG *pcbData,
2762         BYTE *pData);
2763 
2764     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
2765         ISpObjectTokenCategory *This,
2766         LPCWSTR pszValueName,
2767         LPCWSTR pszValue);
2768 
2769     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
2770         ISpObjectTokenCategory *This,
2771         LPCWSTR pszValueName,
2772         LPWSTR *ppszValue);
2773 
2774     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
2775         ISpObjectTokenCategory *This,
2776         LPCWSTR pszValueName,
2777         DWORD dwValue);
2778 
2779     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
2780         ISpObjectTokenCategory *This,
2781         LPCWSTR pszValueName,
2782         DWORD *pdwValue);
2783 
2784     HRESULT (STDMETHODCALLTYPE *OpenKey)(
2785         ISpObjectTokenCategory *This,
2786         LPCWSTR pszSubKeyName,
2787         ISpDataKey **ppSubKey);
2788 
2789     HRESULT (STDMETHODCALLTYPE *CreateKey)(
2790         ISpObjectTokenCategory *This,
2791         LPCWSTR pszSubKey,
2792         ISpDataKey **ppSubKey);
2793 
2794     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
2795         ISpObjectTokenCategory *This,
2796         LPCWSTR pszSubKey);
2797 
2798     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
2799         ISpObjectTokenCategory *This,
2800         LPCWSTR pszValueName);
2801 
2802     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
2803         ISpObjectTokenCategory *This,
2804         ULONG Index,
2805         LPWSTR *ppszSubKeyName);
2806 
2807     HRESULT (STDMETHODCALLTYPE *EnumValues)(
2808         ISpObjectTokenCategory *This,
2809         ULONG Index,
2810         LPWSTR *ppszValueName);
2811 
2812     /*** ISpObjectTokenCategory methods ***/
2813     HRESULT (STDMETHODCALLTYPE *SetId)(
2814         ISpObjectTokenCategory *This,
2815         LPCWSTR pszCategoryId,
2816         WINBOOL fCreateIfNotExist);
2817 
2818     HRESULT (STDMETHODCALLTYPE *GetId)(
2819         ISpObjectTokenCategory *This,
2820         LPWSTR *ppszCoMemCategoryId);
2821 
2822     HRESULT (STDMETHODCALLTYPE *GetDataKey)(
2823         ISpObjectTokenCategory *This,
2824         SPDATAKEYLOCATION spdkl,
2825         ISpDataKey **ppDataKey);
2826 
2827     HRESULT (STDMETHODCALLTYPE *EnumTokens)(
2828         ISpObjectTokenCategory *This,
2829         LPCWSTR pzsReqAttribs,
2830         LPCWSTR pszOptAttribs,
2831         IEnumSpObjectTokens **ppEnum);
2832 
2833     HRESULT (STDMETHODCALLTYPE *SetDefaultTokenId)(
2834         ISpObjectTokenCategory *This,
2835         LPCWSTR pszTokenId);
2836 
2837     HRESULT (STDMETHODCALLTYPE *GetDefaultTokenId)(
2838         ISpObjectTokenCategory *This,
2839         LPWSTR *ppszCoMemTokenId);
2840 
2841     END_INTERFACE
2842 } ISpObjectTokenCategoryVtbl;
2843 
2844 interface ISpObjectTokenCategory {
2845     CONST_VTBL ISpObjectTokenCategoryVtbl* lpVtbl;
2846 };
2847 
2848 #ifdef COBJMACROS
2849 #ifndef WIDL_C_INLINE_WRAPPERS
2850 /*** IUnknown methods ***/
2851 #define ISpObjectTokenCategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2852 #define ISpObjectTokenCategory_AddRef(This) (This)->lpVtbl->AddRef(This)
2853 #define ISpObjectTokenCategory_Release(This) (This)->lpVtbl->Release(This)
2854 /*** ISpDataKey methods ***/
2855 #define ISpObjectTokenCategory_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
2856 #define ISpObjectTokenCategory_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
2857 #define ISpObjectTokenCategory_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
2858 #define ISpObjectTokenCategory_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
2859 #define ISpObjectTokenCategory_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
2860 #define ISpObjectTokenCategory_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
2861 #define ISpObjectTokenCategory_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
2862 #define ISpObjectTokenCategory_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
2863 #define ISpObjectTokenCategory_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
2864 #define ISpObjectTokenCategory_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
2865 #define ISpObjectTokenCategory_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
2866 #define ISpObjectTokenCategory_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
2867 /*** ISpObjectTokenCategory methods ***/
2868 #define ISpObjectTokenCategory_SetId(This,pszCategoryId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,fCreateIfNotExist)
2869 #define ISpObjectTokenCategory_GetId(This,ppszCoMemCategoryId) (This)->lpVtbl->GetId(This,ppszCoMemCategoryId)
2870 #define ISpObjectTokenCategory_GetDataKey(This,spdkl,ppDataKey) (This)->lpVtbl->GetDataKey(This,spdkl,ppDataKey)
2871 #define ISpObjectTokenCategory_EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum) (This)->lpVtbl->EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum)
2872 #define ISpObjectTokenCategory_SetDefaultTokenId(This,pszTokenId) (This)->lpVtbl->SetDefaultTokenId(This,pszTokenId)
2873 #define ISpObjectTokenCategory_GetDefaultTokenId(This,ppszCoMemTokenId) (This)->lpVtbl->GetDefaultTokenId(This,ppszCoMemTokenId)
2874 #else
2875 /*** IUnknown methods ***/
2876 static FORCEINLINE HRESULT ISpObjectTokenCategory_QueryInterface(ISpObjectTokenCategory* This,REFIID riid,void **ppvObject) {
2877     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2878 }
2879 static FORCEINLINE ULONG ISpObjectTokenCategory_AddRef(ISpObjectTokenCategory* This) {
2880     return This->lpVtbl->AddRef(This);
2881 }
2882 static FORCEINLINE ULONG ISpObjectTokenCategory_Release(ISpObjectTokenCategory* This) {
2883     return This->lpVtbl->Release(This);
2884 }
2885 /*** ISpDataKey methods ***/
2886 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetData(ISpObjectTokenCategory* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
2887     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
2888 }
2889 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetData(ISpObjectTokenCategory* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
2890     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
2891 }
2892 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetStringValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
2893     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
2894 }
2895 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetStringValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
2896     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
2897 }
2898 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetDWORD(ISpObjectTokenCategory* This,LPCWSTR pszValueName,DWORD dwValue) {
2899     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
2900 }
2901 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetDWORD(ISpObjectTokenCategory* This,LPCWSTR pszValueName,DWORD *pdwValue) {
2902     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
2903 }
2904 static FORCEINLINE HRESULT ISpObjectTokenCategory_OpenKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
2905     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
2906 }
2907 static FORCEINLINE HRESULT ISpObjectTokenCategory_CreateKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
2908     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
2909 }
2910 static FORCEINLINE HRESULT ISpObjectTokenCategory_DeleteKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKey) {
2911     return This->lpVtbl->DeleteKey(This,pszSubKey);
2912 }
2913 static FORCEINLINE HRESULT ISpObjectTokenCategory_DeleteValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName) {
2914     return This->lpVtbl->DeleteValue(This,pszValueName);
2915 }
2916 static FORCEINLINE HRESULT ISpObjectTokenCategory_EnumKeys(ISpObjectTokenCategory* This,ULONG Index,LPWSTR *ppszSubKeyName) {
2917     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
2918 }
2919 static FORCEINLINE HRESULT ISpObjectTokenCategory_EnumValues(ISpObjectTokenCategory* This,ULONG Index,LPWSTR *ppszValueName) {
2920     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
2921 }
2922 /*** ISpObjectTokenCategory methods ***/
2923 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetId(ISpObjectTokenCategory* This,LPCWSTR pszCategoryId,WINBOOL fCreateIfNotExist) {
2924     return This->lpVtbl->SetId(This,pszCategoryId,fCreateIfNotExist);
2925 }
2926 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetId(ISpObjectTokenCategory* This,LPWSTR *ppszCoMemCategoryId) {
2927     return This->lpVtbl->GetId(This,ppszCoMemCategoryId);
2928 }
2929 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetDataKey(ISpObjectTokenCategory* This,SPDATAKEYLOCATION spdkl,ISpDataKey **ppDataKey) {
2930     return This->lpVtbl->GetDataKey(This,spdkl,ppDataKey);
2931 }
2932 static FORCEINLINE HRESULT ISpObjectTokenCategory_EnumTokens(ISpObjectTokenCategory* This,LPCWSTR pzsReqAttribs,LPCWSTR pszOptAttribs,IEnumSpObjectTokens **ppEnum) {
2933     return This->lpVtbl->EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum);
2934 }
2935 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetDefaultTokenId(ISpObjectTokenCategory* This,LPCWSTR pszTokenId) {
2936     return This->lpVtbl->SetDefaultTokenId(This,pszTokenId);
2937 }
2938 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetDefaultTokenId(ISpObjectTokenCategory* This,LPWSTR *ppszCoMemTokenId) {
2939     return This->lpVtbl->GetDefaultTokenId(This,ppszCoMemTokenId);
2940 }
2941 #endif
2942 #endif
2943 
2944 #endif
2945 
2946 
2947 #endif  /* __ISpObjectTokenCategory_INTERFACE_DEFINED__ */
2948 
2949 /*****************************************************************************
2950  * ISpObjectToken interface
2951  */
2952 #ifndef __ISpObjectToken_INTERFACE_DEFINED__
2953 #define __ISpObjectToken_INTERFACE_DEFINED__
2954 
2955 DEFINE_GUID(IID_ISpObjectToken, 0x14056589, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
2956 #if defined(__cplusplus) && !defined(CINTERFACE)
2957 MIDL_INTERFACE("14056589-e16c-11d2-bb90-00c04f8ee6c0")
2958 ISpObjectToken : public ISpDataKey
2959 {
2960     virtual HRESULT STDMETHODCALLTYPE SetId(
2961         LPCWSTR pszCategoryId,
2962         LPCWSTR pszTokenId,
2963         WINBOOL fCreateIfNotExist) = 0;
2964 
2965     virtual HRESULT STDMETHODCALLTYPE GetId(
2966         LPWSTR *ppszCoMemTokenId) = 0;
2967 
2968     virtual HRESULT STDMETHODCALLTYPE GetCategory(
2969         ISpObjectTokenCategory **ppTokenCategory) = 0;
2970 
2971     virtual HRESULT STDMETHODCALLTYPE CreateInstance(
2972         IUnknown *pUnkOuter,
2973         DWORD dwClsContext,
2974         REFIID riid,
2975         void **ppvObject) = 0;
2976 
2977     virtual HRESULT STDMETHODCALLTYPE GetStorageFileName(
2978         REFCLSID clsidCaller,
2979         LPCWSTR pszValueName,
2980         LPCWSTR pszFileNameSpecifier,
2981         ULONG nFolder,
2982         LPWSTR *ppszFilePath) = 0;
2983 
2984     virtual HRESULT STDMETHODCALLTYPE RemoveStorageFileName(
2985         REFCLSID clsidCaller,
2986         LPCWSTR pszKeyName,
2987         WINBOOL fDeleteFile) = 0;
2988 
2989     virtual HRESULT STDMETHODCALLTYPE Remove(
2990         const CLSID *pclsidCaller) = 0;
2991 
2992     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
2993         LPCWSTR pszTypeOfUI,
2994         void *pvExtraData,
2995         ULONG cbExtraData,
2996         IUnknown *punkObject,
2997         WINBOOL *pfSupported) = 0;
2998 
2999     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
3000         HWND hwndParent,
3001         LPCWSTR pszTitle,
3002         LPCWSTR pszTypeOfUI,
3003         void *pvExtraData,
3004         ULONG cbExtraData,
3005         IUnknown *punkObject) = 0;
3006 
3007     virtual HRESULT STDMETHODCALLTYPE MatchesAttributes(
3008         LPCWSTR pszAttributes,
3009         WINBOOL *pfMatches) = 0;
3010 
3011 };
3012 #ifdef __CRT_UUID_DECL
3013 __CRT_UUID_DECL(ISpObjectToken, 0x14056589, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
3014 #endif
3015 #else
3016 typedef struct ISpObjectTokenVtbl {
3017     BEGIN_INTERFACE
3018 
3019     /*** IUnknown methods ***/
3020     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3021         ISpObjectToken *This,
3022         REFIID riid,
3023         void **ppvObject);
3024 
3025     ULONG (STDMETHODCALLTYPE *AddRef)(
3026         ISpObjectToken *This);
3027 
3028     ULONG (STDMETHODCALLTYPE *Release)(
3029         ISpObjectToken *This);
3030 
3031     /*** ISpDataKey methods ***/
3032     HRESULT (STDMETHODCALLTYPE *SetData)(
3033         ISpObjectToken *This,
3034         LPCWSTR pszValueName,
3035         ULONG cbData,
3036         const BYTE *pData);
3037 
3038     HRESULT (STDMETHODCALLTYPE *GetData)(
3039         ISpObjectToken *This,
3040         LPCWSTR pszValueName,
3041         ULONG *pcbData,
3042         BYTE *pData);
3043 
3044     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
3045         ISpObjectToken *This,
3046         LPCWSTR pszValueName,
3047         LPCWSTR pszValue);
3048 
3049     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
3050         ISpObjectToken *This,
3051         LPCWSTR pszValueName,
3052         LPWSTR *ppszValue);
3053 
3054     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
3055         ISpObjectToken *This,
3056         LPCWSTR pszValueName,
3057         DWORD dwValue);
3058 
3059     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
3060         ISpObjectToken *This,
3061         LPCWSTR pszValueName,
3062         DWORD *pdwValue);
3063 
3064     HRESULT (STDMETHODCALLTYPE *OpenKey)(
3065         ISpObjectToken *This,
3066         LPCWSTR pszSubKeyName,
3067         ISpDataKey **ppSubKey);
3068 
3069     HRESULT (STDMETHODCALLTYPE *CreateKey)(
3070         ISpObjectToken *This,
3071         LPCWSTR pszSubKey,
3072         ISpDataKey **ppSubKey);
3073 
3074     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
3075         ISpObjectToken *This,
3076         LPCWSTR pszSubKey);
3077 
3078     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
3079         ISpObjectToken *This,
3080         LPCWSTR pszValueName);
3081 
3082     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
3083         ISpObjectToken *This,
3084         ULONG Index,
3085         LPWSTR *ppszSubKeyName);
3086 
3087     HRESULT (STDMETHODCALLTYPE *EnumValues)(
3088         ISpObjectToken *This,
3089         ULONG Index,
3090         LPWSTR *ppszValueName);
3091 
3092     /*** ISpObjectToken methods ***/
3093     HRESULT (STDMETHODCALLTYPE *SetId)(
3094         ISpObjectToken *This,
3095         LPCWSTR pszCategoryId,
3096         LPCWSTR pszTokenId,
3097         WINBOOL fCreateIfNotExist);
3098 
3099     HRESULT (STDMETHODCALLTYPE *GetId)(
3100         ISpObjectToken *This,
3101         LPWSTR *ppszCoMemTokenId);
3102 
3103     HRESULT (STDMETHODCALLTYPE *GetCategory)(
3104         ISpObjectToken *This,
3105         ISpObjectTokenCategory **ppTokenCategory);
3106 
3107     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
3108         ISpObjectToken *This,
3109         IUnknown *pUnkOuter,
3110         DWORD dwClsContext,
3111         REFIID riid,
3112         void **ppvObject);
3113 
3114     HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
3115         ISpObjectToken *This,
3116         REFCLSID clsidCaller,
3117         LPCWSTR pszValueName,
3118         LPCWSTR pszFileNameSpecifier,
3119         ULONG nFolder,
3120         LPWSTR *ppszFilePath);
3121 
3122     HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
3123         ISpObjectToken *This,
3124         REFCLSID clsidCaller,
3125         LPCWSTR pszKeyName,
3126         WINBOOL fDeleteFile);
3127 
3128     HRESULT (STDMETHODCALLTYPE *Remove)(
3129         ISpObjectToken *This,
3130         const CLSID *pclsidCaller);
3131 
3132     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
3133         ISpObjectToken *This,
3134         LPCWSTR pszTypeOfUI,
3135         void *pvExtraData,
3136         ULONG cbExtraData,
3137         IUnknown *punkObject,
3138         WINBOOL *pfSupported);
3139 
3140     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
3141         ISpObjectToken *This,
3142         HWND hwndParent,
3143         LPCWSTR pszTitle,
3144         LPCWSTR pszTypeOfUI,
3145         void *pvExtraData,
3146         ULONG cbExtraData,
3147         IUnknown *punkObject);
3148 
3149     HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
3150         ISpObjectToken *This,
3151         LPCWSTR pszAttributes,
3152         WINBOOL *pfMatches);
3153 
3154     END_INTERFACE
3155 } ISpObjectTokenVtbl;
3156 
3157 interface ISpObjectToken {
3158     CONST_VTBL ISpObjectTokenVtbl* lpVtbl;
3159 };
3160 
3161 #ifdef COBJMACROS
3162 #ifndef WIDL_C_INLINE_WRAPPERS
3163 /*** IUnknown methods ***/
3164 #define ISpObjectToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3165 #define ISpObjectToken_AddRef(This) (This)->lpVtbl->AddRef(This)
3166 #define ISpObjectToken_Release(This) (This)->lpVtbl->Release(This)
3167 /*** ISpDataKey methods ***/
3168 #define ISpObjectToken_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
3169 #define ISpObjectToken_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
3170 #define ISpObjectToken_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
3171 #define ISpObjectToken_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
3172 #define ISpObjectToken_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
3173 #define ISpObjectToken_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
3174 #define ISpObjectToken_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
3175 #define ISpObjectToken_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
3176 #define ISpObjectToken_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
3177 #define ISpObjectToken_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
3178 #define ISpObjectToken_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
3179 #define ISpObjectToken_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
3180 /*** ISpObjectToken methods ***/
3181 #define ISpObjectToken_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
3182 #define ISpObjectToken_GetId(This,ppszCoMemTokenId) (This)->lpVtbl->GetId(This,ppszCoMemTokenId)
3183 #define ISpObjectToken_GetCategory(This,ppTokenCategory) (This)->lpVtbl->GetCategory(This,ppTokenCategory)
3184 #define ISpObjectToken_CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
3185 #define ISpObjectToken_GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath) (This)->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
3186 #define ISpObjectToken_RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
3187 #define ISpObjectToken_Remove(This,pclsidCaller) (This)->lpVtbl->Remove(This,pclsidCaller)
3188 #define ISpObjectToken_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
3189 #define ISpObjectToken_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
3190 #define ISpObjectToken_MatchesAttributes(This,pszAttributes,pfMatches) (This)->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches)
3191 #else
3192 /*** IUnknown methods ***/
3193 static FORCEINLINE HRESULT ISpObjectToken_QueryInterface(ISpObjectToken* This,REFIID riid,void **ppvObject) {
3194     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3195 }
3196 static FORCEINLINE ULONG ISpObjectToken_AddRef(ISpObjectToken* This) {
3197     return This->lpVtbl->AddRef(This);
3198 }
3199 static FORCEINLINE ULONG ISpObjectToken_Release(ISpObjectToken* This) {
3200     return This->lpVtbl->Release(This);
3201 }
3202 /*** ISpDataKey methods ***/
3203 static FORCEINLINE HRESULT ISpObjectToken_SetData(ISpObjectToken* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
3204     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
3205 }
3206 static FORCEINLINE HRESULT ISpObjectToken_GetData(ISpObjectToken* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
3207     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
3208 }
3209 static FORCEINLINE HRESULT ISpObjectToken_SetStringValue(ISpObjectToken* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
3210     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
3211 }
3212 static FORCEINLINE HRESULT ISpObjectToken_GetStringValue(ISpObjectToken* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
3213     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
3214 }
3215 static FORCEINLINE HRESULT ISpObjectToken_SetDWORD(ISpObjectToken* This,LPCWSTR pszValueName,DWORD dwValue) {
3216     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
3217 }
3218 static FORCEINLINE HRESULT ISpObjectToken_GetDWORD(ISpObjectToken* This,LPCWSTR pszValueName,DWORD *pdwValue) {
3219     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
3220 }
3221 static FORCEINLINE HRESULT ISpObjectToken_OpenKey(ISpObjectToken* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
3222     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
3223 }
3224 static FORCEINLINE HRESULT ISpObjectToken_CreateKey(ISpObjectToken* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
3225     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
3226 }
3227 static FORCEINLINE HRESULT ISpObjectToken_DeleteKey(ISpObjectToken* This,LPCWSTR pszSubKey) {
3228     return This->lpVtbl->DeleteKey(This,pszSubKey);
3229 }
3230 static FORCEINLINE HRESULT ISpObjectToken_DeleteValue(ISpObjectToken* This,LPCWSTR pszValueName) {
3231     return This->lpVtbl->DeleteValue(This,pszValueName);
3232 }
3233 static FORCEINLINE HRESULT ISpObjectToken_EnumKeys(ISpObjectToken* This,ULONG Index,LPWSTR *ppszSubKeyName) {
3234     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
3235 }
3236 static FORCEINLINE HRESULT ISpObjectToken_EnumValues(ISpObjectToken* This,ULONG Index,LPWSTR *ppszValueName) {
3237     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
3238 }
3239 /*** ISpObjectToken methods ***/
3240 static FORCEINLINE HRESULT ISpObjectToken_SetId(ISpObjectToken* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,WINBOOL fCreateIfNotExist) {
3241     return This->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist);
3242 }
3243 static FORCEINLINE HRESULT ISpObjectToken_GetId(ISpObjectToken* This,LPWSTR *ppszCoMemTokenId) {
3244     return This->lpVtbl->GetId(This,ppszCoMemTokenId);
3245 }
3246 static FORCEINLINE HRESULT ISpObjectToken_GetCategory(ISpObjectToken* This,ISpObjectTokenCategory **ppTokenCategory) {
3247     return This->lpVtbl->GetCategory(This,ppTokenCategory);
3248 }
3249 static FORCEINLINE HRESULT ISpObjectToken_CreateInstance(ISpObjectToken* This,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,void **ppvObject) {
3250     return This->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject);
3251 }
3252 static FORCEINLINE HRESULT ISpObjectToken_GetStorageFileName(ISpObjectToken* This,REFCLSID clsidCaller,LPCWSTR pszValueName,LPCWSTR pszFileNameSpecifier,ULONG nFolder,LPWSTR *ppszFilePath) {
3253     return This->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath);
3254 }
3255 static FORCEINLINE HRESULT ISpObjectToken_RemoveStorageFileName(ISpObjectToken* This,REFCLSID clsidCaller,LPCWSTR pszKeyName,WINBOOL fDeleteFile) {
3256     return This->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile);
3257 }
3258 static FORCEINLINE HRESULT ISpObjectToken_Remove(ISpObjectToken* This,const CLSID *pclsidCaller) {
3259     return This->lpVtbl->Remove(This,pclsidCaller);
3260 }
3261 static FORCEINLINE HRESULT ISpObjectToken_IsUISupported(ISpObjectToken* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject,WINBOOL *pfSupported) {
3262     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported);
3263 }
3264 static FORCEINLINE HRESULT ISpObjectToken_DisplayUI(ISpObjectToken* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject) {
3265     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject);
3266 }
3267 static FORCEINLINE HRESULT ISpObjectToken_MatchesAttributes(ISpObjectToken* This,LPCWSTR pszAttributes,WINBOOL *pfMatches) {
3268     return This->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches);
3269 }
3270 #endif
3271 #endif
3272 
3273 #endif
3274 
3275 
3276 #endif  /* __ISpObjectToken_INTERFACE_DEFINED__ */
3277 
3278 /*****************************************************************************
3279  * ISpObjectTokenInit interface
3280  */
3281 #ifndef __ISpObjectTokenInit_INTERFACE_DEFINED__
3282 #define __ISpObjectTokenInit_INTERFACE_DEFINED__
3283 
3284 DEFINE_GUID(IID_ISpObjectTokenInit, 0xb8aab0cf, 0x346f, 0x49d8, 0x94,0x99, 0xc8,0xb0,0x3f,0x16,0x1d,0x51);
3285 #if defined(__cplusplus) && !defined(CINTERFACE)
3286 MIDL_INTERFACE("b8aab0cf-346f-49d8-9499-c8b03f161d51")
3287 ISpObjectTokenInit : public ISpObjectToken
3288 {
3289     virtual HRESULT STDMETHODCALLTYPE InitFromDataKey(
3290         LPCWSTR pszCategoryId,
3291         LPCWSTR pszTokenId,
3292         ISpDataKey *pDataKey) = 0;
3293 
3294 };
3295 #ifdef __CRT_UUID_DECL
3296 __CRT_UUID_DECL(ISpObjectTokenInit, 0xb8aab0cf, 0x346f, 0x49d8, 0x94,0x99, 0xc8,0xb0,0x3f,0x16,0x1d,0x51)
3297 #endif
3298 #else
3299 typedef struct ISpObjectTokenInitVtbl {
3300     BEGIN_INTERFACE
3301 
3302     /*** IUnknown methods ***/
3303     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3304         ISpObjectTokenInit *This,
3305         REFIID riid,
3306         void **ppvObject);
3307 
3308     ULONG (STDMETHODCALLTYPE *AddRef)(
3309         ISpObjectTokenInit *This);
3310 
3311     ULONG (STDMETHODCALLTYPE *Release)(
3312         ISpObjectTokenInit *This);
3313 
3314     /*** ISpDataKey methods ***/
3315     HRESULT (STDMETHODCALLTYPE *SetData)(
3316         ISpObjectTokenInit *This,
3317         LPCWSTR pszValueName,
3318         ULONG cbData,
3319         const BYTE *pData);
3320 
3321     HRESULT (STDMETHODCALLTYPE *GetData)(
3322         ISpObjectTokenInit *This,
3323         LPCWSTR pszValueName,
3324         ULONG *pcbData,
3325         BYTE *pData);
3326 
3327     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
3328         ISpObjectTokenInit *This,
3329         LPCWSTR pszValueName,
3330         LPCWSTR pszValue);
3331 
3332     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
3333         ISpObjectTokenInit *This,
3334         LPCWSTR pszValueName,
3335         LPWSTR *ppszValue);
3336 
3337     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
3338         ISpObjectTokenInit *This,
3339         LPCWSTR pszValueName,
3340         DWORD dwValue);
3341 
3342     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
3343         ISpObjectTokenInit *This,
3344         LPCWSTR pszValueName,
3345         DWORD *pdwValue);
3346 
3347     HRESULT (STDMETHODCALLTYPE *OpenKey)(
3348         ISpObjectTokenInit *This,
3349         LPCWSTR pszSubKeyName,
3350         ISpDataKey **ppSubKey);
3351 
3352     HRESULT (STDMETHODCALLTYPE *CreateKey)(
3353         ISpObjectTokenInit *This,
3354         LPCWSTR pszSubKey,
3355         ISpDataKey **ppSubKey);
3356 
3357     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
3358         ISpObjectTokenInit *This,
3359         LPCWSTR pszSubKey);
3360 
3361     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
3362         ISpObjectTokenInit *This,
3363         LPCWSTR pszValueName);
3364 
3365     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
3366         ISpObjectTokenInit *This,
3367         ULONG Index,
3368         LPWSTR *ppszSubKeyName);
3369 
3370     HRESULT (STDMETHODCALLTYPE *EnumValues)(
3371         ISpObjectTokenInit *This,
3372         ULONG Index,
3373         LPWSTR *ppszValueName);
3374 
3375     /*** ISpObjectToken methods ***/
3376     HRESULT (STDMETHODCALLTYPE *SetId)(
3377         ISpObjectTokenInit *This,
3378         LPCWSTR pszCategoryId,
3379         LPCWSTR pszTokenId,
3380         WINBOOL fCreateIfNotExist);
3381 
3382     HRESULT (STDMETHODCALLTYPE *GetId)(
3383         ISpObjectTokenInit *This,
3384         LPWSTR *ppszCoMemTokenId);
3385 
3386     HRESULT (STDMETHODCALLTYPE *GetCategory)(
3387         ISpObjectTokenInit *This,
3388         ISpObjectTokenCategory **ppTokenCategory);
3389 
3390     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
3391         ISpObjectTokenInit *This,
3392         IUnknown *pUnkOuter,
3393         DWORD dwClsContext,
3394         REFIID riid,
3395         void **ppvObject);
3396 
3397     HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
3398         ISpObjectTokenInit *This,
3399         REFCLSID clsidCaller,
3400         LPCWSTR pszValueName,
3401         LPCWSTR pszFileNameSpecifier,
3402         ULONG nFolder,
3403         LPWSTR *ppszFilePath);
3404 
3405     HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
3406         ISpObjectTokenInit *This,
3407         REFCLSID clsidCaller,
3408         LPCWSTR pszKeyName,
3409         WINBOOL fDeleteFile);
3410 
3411     HRESULT (STDMETHODCALLTYPE *Remove)(
3412         ISpObjectTokenInit *This,
3413         const CLSID *pclsidCaller);
3414 
3415     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
3416         ISpObjectTokenInit *This,
3417         LPCWSTR pszTypeOfUI,
3418         void *pvExtraData,
3419         ULONG cbExtraData,
3420         IUnknown *punkObject,
3421         WINBOOL *pfSupported);
3422 
3423     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
3424         ISpObjectTokenInit *This,
3425         HWND hwndParent,
3426         LPCWSTR pszTitle,
3427         LPCWSTR pszTypeOfUI,
3428         void *pvExtraData,
3429         ULONG cbExtraData,
3430         IUnknown *punkObject);
3431 
3432     HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
3433         ISpObjectTokenInit *This,
3434         LPCWSTR pszAttributes,
3435         WINBOOL *pfMatches);
3436 
3437     /*** ISpObjectTokenInit methods ***/
3438     HRESULT (STDMETHODCALLTYPE *InitFromDataKey)(
3439         ISpObjectTokenInit *This,
3440         LPCWSTR pszCategoryId,
3441         LPCWSTR pszTokenId,
3442         ISpDataKey *pDataKey);
3443 
3444     END_INTERFACE
3445 } ISpObjectTokenInitVtbl;
3446 
3447 interface ISpObjectTokenInit {
3448     CONST_VTBL ISpObjectTokenInitVtbl* lpVtbl;
3449 };
3450 
3451 #ifdef COBJMACROS
3452 #ifndef WIDL_C_INLINE_WRAPPERS
3453 /*** IUnknown methods ***/
3454 #define ISpObjectTokenInit_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3455 #define ISpObjectTokenInit_AddRef(This) (This)->lpVtbl->AddRef(This)
3456 #define ISpObjectTokenInit_Release(This) (This)->lpVtbl->Release(This)
3457 /*** ISpDataKey methods ***/
3458 #define ISpObjectTokenInit_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
3459 #define ISpObjectTokenInit_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
3460 #define ISpObjectTokenInit_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
3461 #define ISpObjectTokenInit_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
3462 #define ISpObjectTokenInit_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
3463 #define ISpObjectTokenInit_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
3464 #define ISpObjectTokenInit_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
3465 #define ISpObjectTokenInit_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
3466 #define ISpObjectTokenInit_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
3467 #define ISpObjectTokenInit_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
3468 #define ISpObjectTokenInit_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
3469 #define ISpObjectTokenInit_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
3470 /*** ISpObjectToken methods ***/
3471 #define ISpObjectTokenInit_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
3472 #define ISpObjectTokenInit_GetId(This,ppszCoMemTokenId) (This)->lpVtbl->GetId(This,ppszCoMemTokenId)
3473 #define ISpObjectTokenInit_GetCategory(This,ppTokenCategory) (This)->lpVtbl->GetCategory(This,ppTokenCategory)
3474 #define ISpObjectTokenInit_CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
3475 #define ISpObjectTokenInit_GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath) (This)->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
3476 #define ISpObjectTokenInit_RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
3477 #define ISpObjectTokenInit_Remove(This,pclsidCaller) (This)->lpVtbl->Remove(This,pclsidCaller)
3478 #define ISpObjectTokenInit_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
3479 #define ISpObjectTokenInit_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
3480 #define ISpObjectTokenInit_MatchesAttributes(This,pszAttributes,pfMatches) (This)->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches)
3481 /*** ISpObjectTokenInit methods ***/
3482 #define ISpObjectTokenInit_InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey) (This)->lpVtbl->InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey)
3483 #else
3484 /*** IUnknown methods ***/
3485 static FORCEINLINE HRESULT ISpObjectTokenInit_QueryInterface(ISpObjectTokenInit* This,REFIID riid,void **ppvObject) {
3486     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3487 }
3488 static FORCEINLINE ULONG ISpObjectTokenInit_AddRef(ISpObjectTokenInit* This) {
3489     return This->lpVtbl->AddRef(This);
3490 }
3491 static FORCEINLINE ULONG ISpObjectTokenInit_Release(ISpObjectTokenInit* This) {
3492     return This->lpVtbl->Release(This);
3493 }
3494 /*** ISpDataKey methods ***/
3495 static FORCEINLINE HRESULT ISpObjectTokenInit_SetData(ISpObjectTokenInit* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
3496     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
3497 }
3498 static FORCEINLINE HRESULT ISpObjectTokenInit_GetData(ISpObjectTokenInit* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
3499     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
3500 }
3501 static FORCEINLINE HRESULT ISpObjectTokenInit_SetStringValue(ISpObjectTokenInit* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
3502     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
3503 }
3504 static FORCEINLINE HRESULT ISpObjectTokenInit_GetStringValue(ISpObjectTokenInit* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
3505     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
3506 }
3507 static FORCEINLINE HRESULT ISpObjectTokenInit_SetDWORD(ISpObjectTokenInit* This,LPCWSTR pszValueName,DWORD dwValue) {
3508     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
3509 }
3510 static FORCEINLINE HRESULT ISpObjectTokenInit_GetDWORD(ISpObjectTokenInit* This,LPCWSTR pszValueName,DWORD *pdwValue) {
3511     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
3512 }
3513 static FORCEINLINE HRESULT ISpObjectTokenInit_OpenKey(ISpObjectTokenInit* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
3514     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
3515 }
3516 static FORCEINLINE HRESULT ISpObjectTokenInit_CreateKey(ISpObjectTokenInit* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
3517     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
3518 }
3519 static FORCEINLINE HRESULT ISpObjectTokenInit_DeleteKey(ISpObjectTokenInit* This,LPCWSTR pszSubKey) {
3520     return This->lpVtbl->DeleteKey(This,pszSubKey);
3521 }
3522 static FORCEINLINE HRESULT ISpObjectTokenInit_DeleteValue(ISpObjectTokenInit* This,LPCWSTR pszValueName) {
3523     return This->lpVtbl->DeleteValue(This,pszValueName);
3524 }
3525 static FORCEINLINE HRESULT ISpObjectTokenInit_EnumKeys(ISpObjectTokenInit* This,ULONG Index,LPWSTR *ppszSubKeyName) {
3526     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
3527 }
3528 static FORCEINLINE HRESULT ISpObjectTokenInit_EnumValues(ISpObjectTokenInit* This,ULONG Index,LPWSTR *ppszValueName) {
3529     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
3530 }
3531 /*** ISpObjectToken methods ***/
3532 static FORCEINLINE HRESULT ISpObjectTokenInit_SetId(ISpObjectTokenInit* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,WINBOOL fCreateIfNotExist) {
3533     return This->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist);
3534 }
3535 static FORCEINLINE HRESULT ISpObjectTokenInit_GetId(ISpObjectTokenInit* This,LPWSTR *ppszCoMemTokenId) {
3536     return This->lpVtbl->GetId(This,ppszCoMemTokenId);
3537 }
3538 static FORCEINLINE HRESULT ISpObjectTokenInit_GetCategory(ISpObjectTokenInit* This,ISpObjectTokenCategory **ppTokenCategory) {
3539     return This->lpVtbl->GetCategory(This,ppTokenCategory);
3540 }
3541 static FORCEINLINE HRESULT ISpObjectTokenInit_CreateInstance(ISpObjectTokenInit* This,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,void **ppvObject) {
3542     return This->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject);
3543 }
3544 static FORCEINLINE HRESULT ISpObjectTokenInit_GetStorageFileName(ISpObjectTokenInit* This,REFCLSID clsidCaller,LPCWSTR pszValueName,LPCWSTR pszFileNameSpecifier,ULONG nFolder,LPWSTR *ppszFilePath) {
3545     return This->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath);
3546 }
3547 static FORCEINLINE HRESULT ISpObjectTokenInit_RemoveStorageFileName(ISpObjectTokenInit* This,REFCLSID clsidCaller,LPCWSTR pszKeyName,WINBOOL fDeleteFile) {
3548     return This->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile);
3549 }
3550 static FORCEINLINE HRESULT ISpObjectTokenInit_Remove(ISpObjectTokenInit* This,const CLSID *pclsidCaller) {
3551     return This->lpVtbl->Remove(This,pclsidCaller);
3552 }
3553 static FORCEINLINE HRESULT ISpObjectTokenInit_IsUISupported(ISpObjectTokenInit* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject,WINBOOL *pfSupported) {
3554     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported);
3555 }
3556 static FORCEINLINE HRESULT ISpObjectTokenInit_DisplayUI(ISpObjectTokenInit* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject) {
3557     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject);
3558 }
3559 static FORCEINLINE HRESULT ISpObjectTokenInit_MatchesAttributes(ISpObjectTokenInit* This,LPCWSTR pszAttributes,WINBOOL *pfMatches) {
3560     return This->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches);
3561 }
3562 /*** ISpObjectTokenInit methods ***/
3563 static FORCEINLINE HRESULT ISpObjectTokenInit_InitFromDataKey(ISpObjectTokenInit* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,ISpDataKey *pDataKey) {
3564     return This->lpVtbl->InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey);
3565 }
3566 #endif
3567 #endif
3568 
3569 #endif
3570 
3571 
3572 #endif  /* __ISpObjectTokenInit_INTERFACE_DEFINED__ */
3573 
3574 /*****************************************************************************
3575  * ISpResourceManager interface
3576  */
3577 #ifndef __ISpResourceManager_INTERFACE_DEFINED__
3578 #define __ISpResourceManager_INTERFACE_DEFINED__
3579 
3580 DEFINE_GUID(IID_ISpResourceManager, 0x93384e18, 0x5014, 0x43d5, 0xad,0xbb, 0xa7,0x8e,0x05,0x59,0x26,0xbd);
3581 #if defined(__cplusplus) && !defined(CINTERFACE)
3582 MIDL_INTERFACE("93384e18-5014-43d5-adbb-a78e055926bd")
3583 ISpResourceManager : public IServiceProvider
3584 {
3585     virtual HRESULT STDMETHODCALLTYPE SetObject(
3586         REFGUID guidServiceId,
3587         IUnknown *pUnkObject) = 0;
3588 
3589     virtual HRESULT STDMETHODCALLTYPE GetObject(
3590         REFGUID guidServiceId,
3591         REFCLSID ObjectCLSID,
3592         REFIID ObjectIID,
3593         WINBOOL fReleaseWhenLastExternalRefReleased,
3594         void **ppObject) = 0;
3595 
3596 };
3597 #ifdef __CRT_UUID_DECL
3598 __CRT_UUID_DECL(ISpResourceManager, 0x93384e18, 0x5014, 0x43d5, 0xad,0xbb, 0xa7,0x8e,0x05,0x59,0x26,0xbd)
3599 #endif
3600 #else
3601 typedef struct ISpResourceManagerVtbl {
3602     BEGIN_INTERFACE
3603 
3604     /*** IUnknown methods ***/
3605     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3606         ISpResourceManager *This,
3607         REFIID riid,
3608         void **ppvObject);
3609 
3610     ULONG (STDMETHODCALLTYPE *AddRef)(
3611         ISpResourceManager *This);
3612 
3613     ULONG (STDMETHODCALLTYPE *Release)(
3614         ISpResourceManager *This);
3615 
3616     /*** IServiceProvider methods ***/
3617     HRESULT (STDMETHODCALLTYPE *QueryService)(
3618         ISpResourceManager *This,
3619         REFGUID guidService,
3620         REFIID riid,
3621         void **ppvObject);
3622 
3623     /*** ISpResourceManager methods ***/
3624     HRESULT (STDMETHODCALLTYPE *SetObject)(
3625         ISpResourceManager *This,
3626         REFGUID guidServiceId,
3627         IUnknown *pUnkObject);
3628 
3629     HRESULT (STDMETHODCALLTYPE *GetObject)(
3630         ISpResourceManager *This,
3631         REFGUID guidServiceId,
3632         REFCLSID ObjectCLSID,
3633         REFIID ObjectIID,
3634         WINBOOL fReleaseWhenLastExternalRefReleased,
3635         void **ppObject);
3636 
3637     END_INTERFACE
3638 } ISpResourceManagerVtbl;
3639 
3640 interface ISpResourceManager {
3641     CONST_VTBL ISpResourceManagerVtbl* lpVtbl;
3642 };
3643 
3644 #ifdef COBJMACROS
3645 #ifndef WIDL_C_INLINE_WRAPPERS
3646 /*** IUnknown methods ***/
3647 #define ISpResourceManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3648 #define ISpResourceManager_AddRef(This) (This)->lpVtbl->AddRef(This)
3649 #define ISpResourceManager_Release(This) (This)->lpVtbl->Release(This)
3650 /*** IServiceProvider methods ***/
3651 #define ISpResourceManager_QueryService(This,guidService,riid,ppvObject) (This)->lpVtbl->QueryService(This,guidService,riid,ppvObject)
3652 /*** ISpResourceManager methods ***/
3653 #define ISpResourceManager_SetObject(This,guidServiceId,pUnkObject) (This)->lpVtbl->SetObject(This,guidServiceId,pUnkObject)
3654 #define ISpResourceManager_GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject) (This)->lpVtbl->GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject)
3655 #else
3656 /*** IUnknown methods ***/
3657 static FORCEINLINE HRESULT ISpResourceManager_QueryInterface(ISpResourceManager* This,REFIID riid,void **ppvObject) {
3658     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3659 }
3660 static FORCEINLINE ULONG ISpResourceManager_AddRef(ISpResourceManager* This) {
3661     return This->lpVtbl->AddRef(This);
3662 }
3663 static FORCEINLINE ULONG ISpResourceManager_Release(ISpResourceManager* This) {
3664     return This->lpVtbl->Release(This);
3665 }
3666 /*** IServiceProvider methods ***/
3667 static FORCEINLINE HRESULT ISpResourceManager_QueryService(ISpResourceManager* This,REFGUID guidService,REFIID riid,void **ppvObject) {
3668     return This->lpVtbl->QueryService(This,guidService,riid,ppvObject);
3669 }
3670 /*** ISpResourceManager methods ***/
3671 static FORCEINLINE HRESULT ISpResourceManager_SetObject(ISpResourceManager* This,REFGUID guidServiceId,IUnknown *pUnkObject) {
3672     return This->lpVtbl->SetObject(This,guidServiceId,pUnkObject);
3673 }
3674 static FORCEINLINE HRESULT ISpResourceManager_GetObject(ISpResourceManager* This,REFGUID guidServiceId,REFCLSID ObjectCLSID,REFIID ObjectIID,WINBOOL fReleaseWhenLastExternalRefReleased,void **ppObject) {
3675     return This->lpVtbl->GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject);
3676 }
3677 #endif
3678 #endif
3679 
3680 #endif
3681 
3682 
3683 #endif  /* __ISpResourceManager_INTERFACE_DEFINED__ */
3684 
3685 #if 0
3686 typedef struct SPEVENT {
3687     WORD eEventId;
3688     WORD elParamType;
3689     ULONG ulStreamNum;
3690     ULONGLONG ullAudioStreamOffset;
3691     WPARAM wParam;
3692     LPARAM lParam;
3693 } SPEVENT;
3694 typedef struct SPSERIALIZEDEVENT {
3695     WORD eEventId;
3696     WORD elParamType;
3697     ULONG ulStreamNum;
3698     ULONGLONG ullAudioStreamOffset;
3699     ULONG SerializedwParam;
3700     LONG SerializedlParam;
3701 } SPSERIALIZEDEVENT;
3702 typedef struct SPSERIALIZEDEVENT64 {
3703     WORD eEventId;
3704     WORD elParamType;
3705     ULONG ulStreamNum;
3706     ULONGLONG ullAudioStreamOffset;
3707     ULONGLONG SerializedwParam;
3708     LONGLONG SerializedlParam;
3709 } SPSERIALIZEDEVENT64;
3710 #else
3711 typedef struct SPEVENT {
3712   SPEVENTENUM eEventId : 16;
3713   SPEVENTLPARAMTYPE elParamType : 16;
3714   ULONG ulStreamNum;
3715   ULONGLONG ullAudioStreamOffset;
3716   WPARAM      wParam;
3717   LPARAM      lParam;
3718 } SPEVENT;
3719 
3720 typedef struct SPSERIALIZEDEVENT {
3721   SPEVENTENUM eEventId : 16;
3722   SPEVENTLPARAMTYPE elParamType : 16;
3723   ULONG ulStreamNum;
3724   ULONGLONG ullAudioStreamOffset;
3725   ULONG SerializedwParam;
3726   LONG SerializedlParam;
3727 } SPSERIALIZEDEVENT;
3728 
3729 typedef struct SPSERIALIZEDEVENT64 {
3730   SPEVENTENUM eEventId : 16;
3731   SPEVENTLPARAMTYPE elParamType : 16;
3732   ULONG ulStreamNum;
3733   ULONGLONG ullAudioStreamOffset;
3734   ULONGLONG SerializedwParam;
3735   LONGLONG SerializedlParam;
3736 } SPSERIALIZEDEVENT64;
3737 #endif
3738 #if 0
3739 typedef struct SPEVENTEX {
3740     WORD eEventId;
3741     WORD elParamType;
3742     ULONG ulStreamNum;
3743     ULONGLONG ullAudioStreamOffset;
3744     WPARAM wParam;
3745     LPARAM lParam;
3746     ULONGLONG ullAudioTimeOffset;
3747 } SPEVENTEX;
3748 #else
3749 typedef struct SPEVENTEX {
3750   SPEVENTENUM eEventId : 16;
3751   SPEVENTLPARAMTYPE elParamType : 16;
3752   ULONG ulStreamNum;
3753   ULONGLONG ullAudioStreamOffset;
3754   WPARAM wParam;
3755   LPARAM lParam;
3756   ULONGLONG ullAudioTimeOffset;
3757 } SPEVENTEX;
3758 #endif
3759 typedef struct SPEVENTSOURCEINFO {
3760     ULONGLONG ullEventInterest;
3761     ULONGLONG ullQueuedInterest;
3762     ULONG ulCount;
3763 } SPEVENTSOURCEINFO;
3764 /*****************************************************************************
3765  * ISpEventSource interface
3766  */
3767 #ifndef __ISpEventSource_INTERFACE_DEFINED__
3768 #define __ISpEventSource_INTERFACE_DEFINED__
3769 
3770 DEFINE_GUID(IID_ISpEventSource, 0xbe7a9cce, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
3771 #if defined(__cplusplus) && !defined(CINTERFACE)
3772 MIDL_INTERFACE("be7a9cce-5f9e-11d2-960f-00c04f8ee628")
3773 ISpEventSource : public ISpNotifySource
3774 {
3775     virtual HRESULT STDMETHODCALLTYPE SetInterest(
3776         ULONGLONG ullEventInterest,
3777         ULONGLONG ullQueuedInterest) = 0;
3778 
3779     virtual HRESULT STDMETHODCALLTYPE GetEvents(
3780         ULONG ulCount,
3781         SPEVENT *pEventArray,
3782         ULONG *pulFetched) = 0;
3783 
3784     virtual HRESULT STDMETHODCALLTYPE GetInfo(
3785         SPEVENTSOURCEINFO *pInfo) = 0;
3786 
3787 };
3788 #ifdef __CRT_UUID_DECL
3789 __CRT_UUID_DECL(ISpEventSource, 0xbe7a9cce, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
3790 #endif
3791 #else
3792 typedef struct ISpEventSourceVtbl {
3793     BEGIN_INTERFACE
3794 
3795     /*** IUnknown methods ***/
3796     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3797         ISpEventSource *This,
3798         REFIID riid,
3799         void **ppvObject);
3800 
3801     ULONG (STDMETHODCALLTYPE *AddRef)(
3802         ISpEventSource *This);
3803 
3804     ULONG (STDMETHODCALLTYPE *Release)(
3805         ISpEventSource *This);
3806 
3807     /*** ISpNotifySource methods ***/
3808     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
3809         ISpEventSource *This,
3810         ISpNotifySink *pNotifySink);
3811 
3812     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
3813         ISpEventSource *This,
3814         HWND hWnd,
3815         UINT Msg,
3816         WPARAM wParam,
3817         LPARAM lParam);
3818 
3819     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
3820         ISpEventSource *This,
3821         SPNOTIFYCALLBACK *pfnCallback,
3822         WPARAM wParam,
3823         LPARAM lParam);
3824 
3825     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
3826         ISpEventSource *This,
3827         ISpNotifyCallback *pSpCallback,
3828         WPARAM wParam,
3829         LPARAM lParam);
3830 
3831     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
3832         ISpEventSource *This);
3833 
3834     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
3835         ISpEventSource *This,
3836         DWORD dwMilliseconds);
3837 
3838     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
3839         ISpEventSource *This);
3840 
3841     /*** ISpEventSource methods ***/
3842     HRESULT (STDMETHODCALLTYPE *SetInterest)(
3843         ISpEventSource *This,
3844         ULONGLONG ullEventInterest,
3845         ULONGLONG ullQueuedInterest);
3846 
3847     HRESULT (STDMETHODCALLTYPE *GetEvents)(
3848         ISpEventSource *This,
3849         ULONG ulCount,
3850         SPEVENT *pEventArray,
3851         ULONG *pulFetched);
3852 
3853     HRESULT (STDMETHODCALLTYPE *GetInfo)(
3854         ISpEventSource *This,
3855         SPEVENTSOURCEINFO *pInfo);
3856 
3857     END_INTERFACE
3858 } ISpEventSourceVtbl;
3859 
3860 interface ISpEventSource {
3861     CONST_VTBL ISpEventSourceVtbl* lpVtbl;
3862 };
3863 
3864 #ifdef COBJMACROS
3865 #ifndef WIDL_C_INLINE_WRAPPERS
3866 /*** IUnknown methods ***/
3867 #define ISpEventSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3868 #define ISpEventSource_AddRef(This) (This)->lpVtbl->AddRef(This)
3869 #define ISpEventSource_Release(This) (This)->lpVtbl->Release(This)
3870 /*** ISpNotifySource methods ***/
3871 #define ISpEventSource_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
3872 #define ISpEventSource_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
3873 #define ISpEventSource_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
3874 #define ISpEventSource_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
3875 #define ISpEventSource_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
3876 #define ISpEventSource_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
3877 #define ISpEventSource_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
3878 /*** ISpEventSource methods ***/
3879 #define ISpEventSource_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
3880 #define ISpEventSource_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
3881 #define ISpEventSource_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
3882 #else
3883 /*** IUnknown methods ***/
3884 static FORCEINLINE HRESULT ISpEventSource_QueryInterface(ISpEventSource* This,REFIID riid,void **ppvObject) {
3885     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3886 }
3887 static FORCEINLINE ULONG ISpEventSource_AddRef(ISpEventSource* This) {
3888     return This->lpVtbl->AddRef(This);
3889 }
3890 static FORCEINLINE ULONG ISpEventSource_Release(ISpEventSource* This) {
3891     return This->lpVtbl->Release(This);
3892 }
3893 /*** ISpNotifySource methods ***/
3894 static FORCEINLINE HRESULT ISpEventSource_SetNotifySink(ISpEventSource* This,ISpNotifySink *pNotifySink) {
3895     return This->lpVtbl->SetNotifySink(This,pNotifySink);
3896 }
3897 static FORCEINLINE HRESULT ISpEventSource_SetNotifyWindowMessage(ISpEventSource* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
3898     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
3899 }
3900 static FORCEINLINE HRESULT ISpEventSource_SetNotifyCallbackFunction(ISpEventSource* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
3901     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
3902 }
3903 static FORCEINLINE HRESULT ISpEventSource_SetNotifyCallbackInterface(ISpEventSource* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
3904     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
3905 }
3906 static FORCEINLINE HRESULT ISpEventSource_SetNotifyWin32Event(ISpEventSource* This) {
3907     return This->lpVtbl->SetNotifyWin32Event(This);
3908 }
3909 static FORCEINLINE HRESULT ISpEventSource_WaitForNotifyEvent(ISpEventSource* This,DWORD dwMilliseconds) {
3910     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
3911 }
3912 static FORCEINLINE HANDLE ISpEventSource_GetNotifyEventHandle(ISpEventSource* This) {
3913     return This->lpVtbl->GetNotifyEventHandle(This);
3914 }
3915 /*** ISpEventSource methods ***/
3916 static FORCEINLINE HRESULT ISpEventSource_SetInterest(ISpEventSource* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
3917     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
3918 }
3919 static FORCEINLINE HRESULT ISpEventSource_GetEvents(ISpEventSource* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
3920     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
3921 }
3922 static FORCEINLINE HRESULT ISpEventSource_GetInfo(ISpEventSource* This,SPEVENTSOURCEINFO *pInfo) {
3923     return This->lpVtbl->GetInfo(This,pInfo);
3924 }
3925 #endif
3926 #endif
3927 
3928 #endif
3929 
3930 
3931 #endif  /* __ISpEventSource_INTERFACE_DEFINED__ */
3932 
3933 /*****************************************************************************
3934  * ISpEventSource2 interface
3935  */
3936 #ifndef __ISpEventSource2_INTERFACE_DEFINED__
3937 #define __ISpEventSource2_INTERFACE_DEFINED__
3938 
3939 DEFINE_GUID(IID_ISpEventSource2, 0x2373a435, 0x6a4b, 0x429e, 0xa6,0xac, 0xd4,0x23,0x1a,0x61,0x97,0x5b);
3940 #if defined(__cplusplus) && !defined(CINTERFACE)
3941 MIDL_INTERFACE("2373a435-6a4b-429e-a6ac-d4231a61975b")
3942 ISpEventSource2 : public ISpEventSource
3943 {
3944     virtual HRESULT STDMETHODCALLTYPE GetEventsEx(
3945         ULONG ulCount,
3946         SPEVENTEX *pEventArray,
3947         ULONG *pulFetched) = 0;
3948 
3949 };
3950 #ifdef __CRT_UUID_DECL
3951 __CRT_UUID_DECL(ISpEventSource2, 0x2373a435, 0x6a4b, 0x429e, 0xa6,0xac, 0xd4,0x23,0x1a,0x61,0x97,0x5b)
3952 #endif
3953 #else
3954 typedef struct ISpEventSource2Vtbl {
3955     BEGIN_INTERFACE
3956 
3957     /*** IUnknown methods ***/
3958     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3959         ISpEventSource2 *This,
3960         REFIID riid,
3961         void **ppvObject);
3962 
3963     ULONG (STDMETHODCALLTYPE *AddRef)(
3964         ISpEventSource2 *This);
3965 
3966     ULONG (STDMETHODCALLTYPE *Release)(
3967         ISpEventSource2 *This);
3968 
3969     /*** ISpNotifySource methods ***/
3970     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
3971         ISpEventSource2 *This,
3972         ISpNotifySink *pNotifySink);
3973 
3974     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
3975         ISpEventSource2 *This,
3976         HWND hWnd,
3977         UINT Msg,
3978         WPARAM wParam,
3979         LPARAM lParam);
3980 
3981     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
3982         ISpEventSource2 *This,
3983         SPNOTIFYCALLBACK *pfnCallback,
3984         WPARAM wParam,
3985         LPARAM lParam);
3986 
3987     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
3988         ISpEventSource2 *This,
3989         ISpNotifyCallback *pSpCallback,
3990         WPARAM wParam,
3991         LPARAM lParam);
3992 
3993     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
3994         ISpEventSource2 *This);
3995 
3996     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
3997         ISpEventSource2 *This,
3998         DWORD dwMilliseconds);
3999 
4000     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
4001         ISpEventSource2 *This);
4002 
4003     /*** ISpEventSource methods ***/
4004     HRESULT (STDMETHODCALLTYPE *SetInterest)(
4005         ISpEventSource2 *This,
4006         ULONGLONG ullEventInterest,
4007         ULONGLONG ullQueuedInterest);
4008 
4009     HRESULT (STDMETHODCALLTYPE *GetEvents)(
4010         ISpEventSource2 *This,
4011         ULONG ulCount,
4012         SPEVENT *pEventArray,
4013         ULONG *pulFetched);
4014 
4015     HRESULT (STDMETHODCALLTYPE *GetInfo)(
4016         ISpEventSource2 *This,
4017         SPEVENTSOURCEINFO *pInfo);
4018 
4019     /*** ISpEventSource2 methods ***/
4020     HRESULT (STDMETHODCALLTYPE *GetEventsEx)(
4021         ISpEventSource2 *This,
4022         ULONG ulCount,
4023         SPEVENTEX *pEventArray,
4024         ULONG *pulFetched);
4025 
4026     END_INTERFACE
4027 } ISpEventSource2Vtbl;
4028 
4029 interface ISpEventSource2 {
4030     CONST_VTBL ISpEventSource2Vtbl* lpVtbl;
4031 };
4032 
4033 #ifdef COBJMACROS
4034 #ifndef WIDL_C_INLINE_WRAPPERS
4035 /*** IUnknown methods ***/
4036 #define ISpEventSource2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4037 #define ISpEventSource2_AddRef(This) (This)->lpVtbl->AddRef(This)
4038 #define ISpEventSource2_Release(This) (This)->lpVtbl->Release(This)
4039 /*** ISpNotifySource methods ***/
4040 #define ISpEventSource2_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
4041 #define ISpEventSource2_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
4042 #define ISpEventSource2_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
4043 #define ISpEventSource2_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
4044 #define ISpEventSource2_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
4045 #define ISpEventSource2_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
4046 #define ISpEventSource2_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
4047 /*** ISpEventSource methods ***/
4048 #define ISpEventSource2_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
4049 #define ISpEventSource2_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
4050 #define ISpEventSource2_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
4051 /*** ISpEventSource2 methods ***/
4052 #define ISpEventSource2_GetEventsEx(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEventsEx(This,ulCount,pEventArray,pulFetched)
4053 #else
4054 /*** IUnknown methods ***/
4055 static FORCEINLINE HRESULT ISpEventSource2_QueryInterface(ISpEventSource2* This,REFIID riid,void **ppvObject) {
4056     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4057 }
4058 static FORCEINLINE ULONG ISpEventSource2_AddRef(ISpEventSource2* This) {
4059     return This->lpVtbl->AddRef(This);
4060 }
4061 static FORCEINLINE ULONG ISpEventSource2_Release(ISpEventSource2* This) {
4062     return This->lpVtbl->Release(This);
4063 }
4064 /*** ISpNotifySource methods ***/
4065 static FORCEINLINE HRESULT ISpEventSource2_SetNotifySink(ISpEventSource2* This,ISpNotifySink *pNotifySink) {
4066     return This->lpVtbl->SetNotifySink(This,pNotifySink);
4067 }
4068 static FORCEINLINE HRESULT ISpEventSource2_SetNotifyWindowMessage(ISpEventSource2* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
4069     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
4070 }
4071 static FORCEINLINE HRESULT ISpEventSource2_SetNotifyCallbackFunction(ISpEventSource2* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
4072     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
4073 }
4074 static FORCEINLINE HRESULT ISpEventSource2_SetNotifyCallbackInterface(ISpEventSource2* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
4075     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
4076 }
4077 static FORCEINLINE HRESULT ISpEventSource2_SetNotifyWin32Event(ISpEventSource2* This) {
4078     return This->lpVtbl->SetNotifyWin32Event(This);
4079 }
4080 static FORCEINLINE HRESULT ISpEventSource2_WaitForNotifyEvent(ISpEventSource2* This,DWORD dwMilliseconds) {
4081     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
4082 }
4083 static FORCEINLINE HANDLE ISpEventSource2_GetNotifyEventHandle(ISpEventSource2* This) {
4084     return This->lpVtbl->GetNotifyEventHandle(This);
4085 }
4086 /*** ISpEventSource methods ***/
4087 static FORCEINLINE HRESULT ISpEventSource2_SetInterest(ISpEventSource2* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
4088     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
4089 }
4090 static FORCEINLINE HRESULT ISpEventSource2_GetEvents(ISpEventSource2* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
4091     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
4092 }
4093 static FORCEINLINE HRESULT ISpEventSource2_GetInfo(ISpEventSource2* This,SPEVENTSOURCEINFO *pInfo) {
4094     return This->lpVtbl->GetInfo(This,pInfo);
4095 }
4096 /*** ISpEventSource2 methods ***/
4097 static FORCEINLINE HRESULT ISpEventSource2_GetEventsEx(ISpEventSource2* This,ULONG ulCount,SPEVENTEX *pEventArray,ULONG *pulFetched) {
4098     return This->lpVtbl->GetEventsEx(This,ulCount,pEventArray,pulFetched);
4099 }
4100 #endif
4101 #endif
4102 
4103 #endif
4104 
4105 
4106 #endif  /* __ISpEventSource2_INTERFACE_DEFINED__ */
4107 
4108 /*****************************************************************************
4109  * ISpEventSink interface
4110  */
4111 #ifndef __ISpEventSink_INTERFACE_DEFINED__
4112 #define __ISpEventSink_INTERFACE_DEFINED__
4113 
4114 DEFINE_GUID(IID_ISpEventSink, 0xbe7a9cc9, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
4115 #if defined(__cplusplus) && !defined(CINTERFACE)
4116 MIDL_INTERFACE("be7a9cc9-5f9e-11d2-960f-00c04f8ee628")
4117 ISpEventSink : public IUnknown
4118 {
4119     virtual HRESULT STDMETHODCALLTYPE AddEvents(
4120         const SPEVENT *pEventArray,
4121         ULONG ulCount) = 0;
4122 
4123     virtual HRESULT STDMETHODCALLTYPE GetEventInterest(
4124         ULONGLONG *pullEventInterest) = 0;
4125 
4126 };
4127 #ifdef __CRT_UUID_DECL
4128 __CRT_UUID_DECL(ISpEventSink, 0xbe7a9cc9, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
4129 #endif
4130 #else
4131 typedef struct ISpEventSinkVtbl {
4132     BEGIN_INTERFACE
4133 
4134     /*** IUnknown methods ***/
4135     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4136         ISpEventSink *This,
4137         REFIID riid,
4138         void **ppvObject);
4139 
4140     ULONG (STDMETHODCALLTYPE *AddRef)(
4141         ISpEventSink *This);
4142 
4143     ULONG (STDMETHODCALLTYPE *Release)(
4144         ISpEventSink *This);
4145 
4146     /*** ISpEventSink methods ***/
4147     HRESULT (STDMETHODCALLTYPE *AddEvents)(
4148         ISpEventSink *This,
4149         const SPEVENT *pEventArray,
4150         ULONG ulCount);
4151 
4152     HRESULT (STDMETHODCALLTYPE *GetEventInterest)(
4153         ISpEventSink *This,
4154         ULONGLONG *pullEventInterest);
4155 
4156     END_INTERFACE
4157 } ISpEventSinkVtbl;
4158 
4159 interface ISpEventSink {
4160     CONST_VTBL ISpEventSinkVtbl* lpVtbl;
4161 };
4162 
4163 #ifdef COBJMACROS
4164 #ifndef WIDL_C_INLINE_WRAPPERS
4165 /*** IUnknown methods ***/
4166 #define ISpEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4167 #define ISpEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
4168 #define ISpEventSink_Release(This) (This)->lpVtbl->Release(This)
4169 /*** ISpEventSink methods ***/
4170 #define ISpEventSink_AddEvents(This,pEventArray,ulCount) (This)->lpVtbl->AddEvents(This,pEventArray,ulCount)
4171 #define ISpEventSink_GetEventInterest(This,pullEventInterest) (This)->lpVtbl->GetEventInterest(This,pullEventInterest)
4172 #else
4173 /*** IUnknown methods ***/
4174 static FORCEINLINE HRESULT ISpEventSink_QueryInterface(ISpEventSink* This,REFIID riid,void **ppvObject) {
4175     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4176 }
4177 static FORCEINLINE ULONG ISpEventSink_AddRef(ISpEventSink* This) {
4178     return This->lpVtbl->AddRef(This);
4179 }
4180 static FORCEINLINE ULONG ISpEventSink_Release(ISpEventSink* This) {
4181     return This->lpVtbl->Release(This);
4182 }
4183 /*** ISpEventSink methods ***/
4184 static FORCEINLINE HRESULT ISpEventSink_AddEvents(ISpEventSink* This,const SPEVENT *pEventArray,ULONG ulCount) {
4185     return This->lpVtbl->AddEvents(This,pEventArray,ulCount);
4186 }
4187 static FORCEINLINE HRESULT ISpEventSink_GetEventInterest(ISpEventSink* This,ULONGLONG *pullEventInterest) {
4188     return This->lpVtbl->GetEventInterest(This,pullEventInterest);
4189 }
4190 #endif
4191 #endif
4192 
4193 #endif
4194 
4195 
4196 #endif  /* __ISpEventSink_INTERFACE_DEFINED__ */
4197 
4198 /*****************************************************************************
4199  * ISpStreamFormat interface
4200  */
4201 #ifndef __ISpStreamFormat_INTERFACE_DEFINED__
4202 #define __ISpStreamFormat_INTERFACE_DEFINED__
4203 
4204 DEFINE_GUID(IID_ISpStreamFormat, 0xbed530be, 0x2606, 0x4f4d, 0xa1,0xc0, 0x54,0xc5,0xcd,0xa5,0x56,0x6f);
4205 #if defined(__cplusplus) && !defined(CINTERFACE)
4206 MIDL_INTERFACE("bed530be-2606-4f4d-a1c0-54c5cda5566f")
4207 ISpStreamFormat : public IStream
4208 {
4209     virtual HRESULT STDMETHODCALLTYPE GetFormat(
4210         GUID *pguidFormatId,
4211         WAVEFORMATEX **ppCoMemWaveFormatEx) = 0;
4212 
4213 };
4214 #ifdef __CRT_UUID_DECL
4215 __CRT_UUID_DECL(ISpStreamFormat, 0xbed530be, 0x2606, 0x4f4d, 0xa1,0xc0, 0x54,0xc5,0xcd,0xa5,0x56,0x6f)
4216 #endif
4217 #else
4218 typedef struct ISpStreamFormatVtbl {
4219     BEGIN_INTERFACE
4220 
4221     /*** IUnknown methods ***/
4222     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4223         ISpStreamFormat *This,
4224         REFIID riid,
4225         void **ppvObject);
4226 
4227     ULONG (STDMETHODCALLTYPE *AddRef)(
4228         ISpStreamFormat *This);
4229 
4230     ULONG (STDMETHODCALLTYPE *Release)(
4231         ISpStreamFormat *This);
4232 
4233     /*** ISequentialStream methods ***/
4234     HRESULT (STDMETHODCALLTYPE *Read)(
4235         ISpStreamFormat *This,
4236         void *pv,
4237         ULONG cb,
4238         ULONG *pcbRead);
4239 
4240     HRESULT (STDMETHODCALLTYPE *Write)(
4241         ISpStreamFormat *This,
4242         const void *pv,
4243         ULONG cb,
4244         ULONG *pcbWritten);
4245 
4246     /*** IStream methods ***/
4247     HRESULT (STDMETHODCALLTYPE *Seek)(
4248         ISpStreamFormat *This,
4249         LARGE_INTEGER dlibMove,
4250         DWORD dwOrigin,
4251         ULARGE_INTEGER *plibNewPosition);
4252 
4253     HRESULT (STDMETHODCALLTYPE *SetSize)(
4254         ISpStreamFormat *This,
4255         ULARGE_INTEGER libNewSize);
4256 
4257     HRESULT (STDMETHODCALLTYPE *CopyTo)(
4258         ISpStreamFormat *This,
4259         IStream *pstm,
4260         ULARGE_INTEGER cb,
4261         ULARGE_INTEGER *pcbRead,
4262         ULARGE_INTEGER *pcbWritten);
4263 
4264     HRESULT (STDMETHODCALLTYPE *Commit)(
4265         ISpStreamFormat *This,
4266         DWORD grfCommitFlags);
4267 
4268     HRESULT (STDMETHODCALLTYPE *Revert)(
4269         ISpStreamFormat *This);
4270 
4271     HRESULT (STDMETHODCALLTYPE *LockRegion)(
4272         ISpStreamFormat *This,
4273         ULARGE_INTEGER libOffset,
4274         ULARGE_INTEGER cb,
4275         DWORD dwLockType);
4276 
4277     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
4278         ISpStreamFormat *This,
4279         ULARGE_INTEGER libOffset,
4280         ULARGE_INTEGER cb,
4281         DWORD dwLockType);
4282 
4283     HRESULT (STDMETHODCALLTYPE *Stat)(
4284         ISpStreamFormat *This,
4285         STATSTG *pstatstg,
4286         DWORD grfStatFlag);
4287 
4288     HRESULT (STDMETHODCALLTYPE *Clone)(
4289         ISpStreamFormat *This,
4290         IStream **ppstm);
4291 
4292     /*** ISpStreamFormat methods ***/
4293     HRESULT (STDMETHODCALLTYPE *GetFormat)(
4294         ISpStreamFormat *This,
4295         GUID *pguidFormatId,
4296         WAVEFORMATEX **ppCoMemWaveFormatEx);
4297 
4298     END_INTERFACE
4299 } ISpStreamFormatVtbl;
4300 
4301 interface ISpStreamFormat {
4302     CONST_VTBL ISpStreamFormatVtbl* lpVtbl;
4303 };
4304 
4305 #ifdef COBJMACROS
4306 #ifndef WIDL_C_INLINE_WRAPPERS
4307 /*** IUnknown methods ***/
4308 #define ISpStreamFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4309 #define ISpStreamFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
4310 #define ISpStreamFormat_Release(This) (This)->lpVtbl->Release(This)
4311 /*** ISequentialStream methods ***/
4312 #define ISpStreamFormat_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
4313 #define ISpStreamFormat_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
4314 /*** IStream methods ***/
4315 #define ISpStreamFormat_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
4316 #define ISpStreamFormat_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
4317 #define ISpStreamFormat_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
4318 #define ISpStreamFormat_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
4319 #define ISpStreamFormat_Revert(This) (This)->lpVtbl->Revert(This)
4320 #define ISpStreamFormat_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
4321 #define ISpStreamFormat_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
4322 #define ISpStreamFormat_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
4323 #define ISpStreamFormat_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
4324 /*** ISpStreamFormat methods ***/
4325 #define ISpStreamFormat_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
4326 #else
4327 /*** IUnknown methods ***/
4328 static FORCEINLINE HRESULT ISpStreamFormat_QueryInterface(ISpStreamFormat* This,REFIID riid,void **ppvObject) {
4329     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4330 }
4331 static FORCEINLINE ULONG ISpStreamFormat_AddRef(ISpStreamFormat* This) {
4332     return This->lpVtbl->AddRef(This);
4333 }
4334 static FORCEINLINE ULONG ISpStreamFormat_Release(ISpStreamFormat* This) {
4335     return This->lpVtbl->Release(This);
4336 }
4337 /*** ISequentialStream methods ***/
4338 static FORCEINLINE HRESULT ISpStreamFormat_Read(ISpStreamFormat* This,void *pv,ULONG cb,ULONG *pcbRead) {
4339     return This->lpVtbl->Read(This,pv,cb,pcbRead);
4340 }
4341 static FORCEINLINE HRESULT ISpStreamFormat_Write(ISpStreamFormat* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
4342     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
4343 }
4344 /*** IStream methods ***/
4345 static FORCEINLINE HRESULT ISpStreamFormat_Seek(ISpStreamFormat* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
4346     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
4347 }
4348 static FORCEINLINE HRESULT ISpStreamFormat_SetSize(ISpStreamFormat* This,ULARGE_INTEGER libNewSize) {
4349     return This->lpVtbl->SetSize(This,libNewSize);
4350 }
4351 static FORCEINLINE HRESULT ISpStreamFormat_CopyTo(ISpStreamFormat* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
4352     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
4353 }
4354 static FORCEINLINE HRESULT ISpStreamFormat_Commit(ISpStreamFormat* This,DWORD grfCommitFlags) {
4355     return This->lpVtbl->Commit(This,grfCommitFlags);
4356 }
4357 static FORCEINLINE HRESULT ISpStreamFormat_Revert(ISpStreamFormat* This) {
4358     return This->lpVtbl->Revert(This);
4359 }
4360 static FORCEINLINE HRESULT ISpStreamFormat_LockRegion(ISpStreamFormat* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4361     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
4362 }
4363 static FORCEINLINE HRESULT ISpStreamFormat_UnlockRegion(ISpStreamFormat* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4364     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
4365 }
4366 static FORCEINLINE HRESULT ISpStreamFormat_Stat(ISpStreamFormat* This,STATSTG *pstatstg,DWORD grfStatFlag) {
4367     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
4368 }
4369 static FORCEINLINE HRESULT ISpStreamFormat_Clone(ISpStreamFormat* This,IStream **ppstm) {
4370     return This->lpVtbl->Clone(This,ppstm);
4371 }
4372 /*** ISpStreamFormat methods ***/
4373 static FORCEINLINE HRESULT ISpStreamFormat_GetFormat(ISpStreamFormat* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
4374     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
4375 }
4376 #endif
4377 #endif
4378 
4379 #endif
4380 
4381 
4382 #endif  /* __ISpStreamFormat_INTERFACE_DEFINED__ */
4383 
4384 /*****************************************************************************
4385  * ISpStream interface
4386  */
4387 #ifndef __ISpStream_INTERFACE_DEFINED__
4388 #define __ISpStream_INTERFACE_DEFINED__
4389 
4390 DEFINE_GUID(IID_ISpStream, 0x12e3cca9, 0x7518, 0x44c5, 0xa5,0xe7, 0xba,0x5a,0x79,0xcb,0x92,0x9e);
4391 #if defined(__cplusplus) && !defined(CINTERFACE)
4392 MIDL_INTERFACE("12e3cca9-7518-44c5-a5e7-ba5a79cb929e")
4393 ISpStream : public ISpStreamFormat
4394 {
4395     virtual HRESULT STDMETHODCALLTYPE SetBaseStream(
4396         IStream *pStream,
4397         REFGUID rguidFormat,
4398         const WAVEFORMATEX *pWaveFormatEx) = 0;
4399 
4400     virtual HRESULT STDMETHODCALLTYPE GetBaseStream(
4401         IStream **ppStream) = 0;
4402 
4403     virtual HRESULT STDMETHODCALLTYPE BindToFile(
4404         LPCWSTR pszFileName,
4405         SPFILEMODE eMode,
4406         const GUID *pFormatId,
4407         const WAVEFORMATEX *pWaveFormatEx,
4408         ULONGLONG ullEventInterest) = 0;
4409 
4410     virtual HRESULT STDMETHODCALLTYPE Close(
4411         ) = 0;
4412 
4413 };
4414 #ifdef __CRT_UUID_DECL
4415 __CRT_UUID_DECL(ISpStream, 0x12e3cca9, 0x7518, 0x44c5, 0xa5,0xe7, 0xba,0x5a,0x79,0xcb,0x92,0x9e)
4416 #endif
4417 #else
4418 typedef struct ISpStreamVtbl {
4419     BEGIN_INTERFACE
4420 
4421     /*** IUnknown methods ***/
4422     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4423         ISpStream *This,
4424         REFIID riid,
4425         void **ppvObject);
4426 
4427     ULONG (STDMETHODCALLTYPE *AddRef)(
4428         ISpStream *This);
4429 
4430     ULONG (STDMETHODCALLTYPE *Release)(
4431         ISpStream *This);
4432 
4433     /*** ISequentialStream methods ***/
4434     HRESULT (STDMETHODCALLTYPE *Read)(
4435         ISpStream *This,
4436         void *pv,
4437         ULONG cb,
4438         ULONG *pcbRead);
4439 
4440     HRESULT (STDMETHODCALLTYPE *Write)(
4441         ISpStream *This,
4442         const void *pv,
4443         ULONG cb,
4444         ULONG *pcbWritten);
4445 
4446     /*** IStream methods ***/
4447     HRESULT (STDMETHODCALLTYPE *Seek)(
4448         ISpStream *This,
4449         LARGE_INTEGER dlibMove,
4450         DWORD dwOrigin,
4451         ULARGE_INTEGER *plibNewPosition);
4452 
4453     HRESULT (STDMETHODCALLTYPE *SetSize)(
4454         ISpStream *This,
4455         ULARGE_INTEGER libNewSize);
4456 
4457     HRESULT (STDMETHODCALLTYPE *CopyTo)(
4458         ISpStream *This,
4459         IStream *pstm,
4460         ULARGE_INTEGER cb,
4461         ULARGE_INTEGER *pcbRead,
4462         ULARGE_INTEGER *pcbWritten);
4463 
4464     HRESULT (STDMETHODCALLTYPE *Commit)(
4465         ISpStream *This,
4466         DWORD grfCommitFlags);
4467 
4468     HRESULT (STDMETHODCALLTYPE *Revert)(
4469         ISpStream *This);
4470 
4471     HRESULT (STDMETHODCALLTYPE *LockRegion)(
4472         ISpStream *This,
4473         ULARGE_INTEGER libOffset,
4474         ULARGE_INTEGER cb,
4475         DWORD dwLockType);
4476 
4477     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
4478         ISpStream *This,
4479         ULARGE_INTEGER libOffset,
4480         ULARGE_INTEGER cb,
4481         DWORD dwLockType);
4482 
4483     HRESULT (STDMETHODCALLTYPE *Stat)(
4484         ISpStream *This,
4485         STATSTG *pstatstg,
4486         DWORD grfStatFlag);
4487 
4488     HRESULT (STDMETHODCALLTYPE *Clone)(
4489         ISpStream *This,
4490         IStream **ppstm);
4491 
4492     /*** ISpStreamFormat methods ***/
4493     HRESULT (STDMETHODCALLTYPE *GetFormat)(
4494         ISpStream *This,
4495         GUID *pguidFormatId,
4496         WAVEFORMATEX **ppCoMemWaveFormatEx);
4497 
4498     /*** ISpStream methods ***/
4499     HRESULT (STDMETHODCALLTYPE *SetBaseStream)(
4500         ISpStream *This,
4501         IStream *pStream,
4502         REFGUID rguidFormat,
4503         const WAVEFORMATEX *pWaveFormatEx);
4504 
4505     HRESULT (STDMETHODCALLTYPE *GetBaseStream)(
4506         ISpStream *This,
4507         IStream **ppStream);
4508 
4509     HRESULT (STDMETHODCALLTYPE *BindToFile)(
4510         ISpStream *This,
4511         LPCWSTR pszFileName,
4512         SPFILEMODE eMode,
4513         const GUID *pFormatId,
4514         const WAVEFORMATEX *pWaveFormatEx,
4515         ULONGLONG ullEventInterest);
4516 
4517     HRESULT (STDMETHODCALLTYPE *Close)(
4518         ISpStream *This);
4519 
4520     END_INTERFACE
4521 } ISpStreamVtbl;
4522 
4523 interface ISpStream {
4524     CONST_VTBL ISpStreamVtbl* lpVtbl;
4525 };
4526 
4527 #ifdef COBJMACROS
4528 #ifndef WIDL_C_INLINE_WRAPPERS
4529 /*** IUnknown methods ***/
4530 #define ISpStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4531 #define ISpStream_AddRef(This) (This)->lpVtbl->AddRef(This)
4532 #define ISpStream_Release(This) (This)->lpVtbl->Release(This)
4533 /*** ISequentialStream methods ***/
4534 #define ISpStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
4535 #define ISpStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
4536 /*** IStream methods ***/
4537 #define ISpStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
4538 #define ISpStream_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
4539 #define ISpStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
4540 #define ISpStream_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
4541 #define ISpStream_Revert(This) (This)->lpVtbl->Revert(This)
4542 #define ISpStream_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
4543 #define ISpStream_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
4544 #define ISpStream_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
4545 #define ISpStream_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
4546 /*** ISpStreamFormat methods ***/
4547 #define ISpStream_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
4548 /*** ISpStream methods ***/
4549 #define ISpStream_SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx) (This)->lpVtbl->SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx)
4550 #define ISpStream_GetBaseStream(This,ppStream) (This)->lpVtbl->GetBaseStream(This,ppStream)
4551 #define ISpStream_BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest) (This)->lpVtbl->BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest)
4552 #define ISpStream_Close(This) (This)->lpVtbl->Close(This)
4553 #else
4554 /*** IUnknown methods ***/
4555 static FORCEINLINE HRESULT ISpStream_QueryInterface(ISpStream* This,REFIID riid,void **ppvObject) {
4556     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4557 }
4558 static FORCEINLINE ULONG ISpStream_AddRef(ISpStream* This) {
4559     return This->lpVtbl->AddRef(This);
4560 }
4561 static FORCEINLINE ULONG ISpStream_Release(ISpStream* This) {
4562     return This->lpVtbl->Release(This);
4563 }
4564 /*** ISequentialStream methods ***/
4565 static FORCEINLINE HRESULT ISpStream_Read(ISpStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
4566     return This->lpVtbl->Read(This,pv,cb,pcbRead);
4567 }
4568 static FORCEINLINE HRESULT ISpStream_Write(ISpStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
4569     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
4570 }
4571 /*** IStream methods ***/
4572 static FORCEINLINE HRESULT ISpStream_Seek(ISpStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
4573     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
4574 }
4575 static FORCEINLINE HRESULT ISpStream_SetSize(ISpStream* This,ULARGE_INTEGER libNewSize) {
4576     return This->lpVtbl->SetSize(This,libNewSize);
4577 }
4578 static FORCEINLINE HRESULT ISpStream_CopyTo(ISpStream* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
4579     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
4580 }
4581 static FORCEINLINE HRESULT ISpStream_Commit(ISpStream* This,DWORD grfCommitFlags) {
4582     return This->lpVtbl->Commit(This,grfCommitFlags);
4583 }
4584 static FORCEINLINE HRESULT ISpStream_Revert(ISpStream* This) {
4585     return This->lpVtbl->Revert(This);
4586 }
4587 static FORCEINLINE HRESULT ISpStream_LockRegion(ISpStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4588     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
4589 }
4590 static FORCEINLINE HRESULT ISpStream_UnlockRegion(ISpStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4591     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
4592 }
4593 static FORCEINLINE HRESULT ISpStream_Stat(ISpStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
4594     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
4595 }
4596 static FORCEINLINE HRESULT ISpStream_Clone(ISpStream* This,IStream **ppstm) {
4597     return This->lpVtbl->Clone(This,ppstm);
4598 }
4599 /*** ISpStreamFormat methods ***/
4600 static FORCEINLINE HRESULT ISpStream_GetFormat(ISpStream* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
4601     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
4602 }
4603 /*** ISpStream methods ***/
4604 static FORCEINLINE HRESULT ISpStream_SetBaseStream(ISpStream* This,IStream *pStream,REFGUID rguidFormat,const WAVEFORMATEX *pWaveFormatEx) {
4605     return This->lpVtbl->SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx);
4606 }
4607 static FORCEINLINE HRESULT ISpStream_GetBaseStream(ISpStream* This,IStream **ppStream) {
4608     return This->lpVtbl->GetBaseStream(This,ppStream);
4609 }
4610 static FORCEINLINE HRESULT ISpStream_BindToFile(ISpStream* This,LPCWSTR pszFileName,SPFILEMODE eMode,const GUID *pFormatId,const WAVEFORMATEX *pWaveFormatEx,ULONGLONG ullEventInterest) {
4611     return This->lpVtbl->BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest);
4612 }
4613 static FORCEINLINE HRESULT ISpStream_Close(ISpStream* This) {
4614     return This->lpVtbl->Close(This);
4615 }
4616 #endif
4617 #endif
4618 
4619 #endif
4620 
4621 
4622 #endif  /* __ISpStream_INTERFACE_DEFINED__ */
4623 
4624 /*****************************************************************************
4625  * ISpStreamFormatConverter interface
4626  */
4627 #ifndef __ISpStreamFormatConverter_INTERFACE_DEFINED__
4628 #define __ISpStreamFormatConverter_INTERFACE_DEFINED__
4629 
4630 DEFINE_GUID(IID_ISpStreamFormatConverter, 0x678a932c, 0xea71, 0x4446, 0x9b,0x41, 0x78,0xfd,0xa6,0x28,0x0a,0x29);
4631 #if defined(__cplusplus) && !defined(CINTERFACE)
4632 MIDL_INTERFACE("678a932c-ea71-4446-9b41-78fda6280a29")
4633 ISpStreamFormatConverter : public ISpStreamFormat
4634 {
4635     virtual HRESULT STDMETHODCALLTYPE SetBaseStream(
4636         ISpStreamFormat *pStream,
4637         WINBOOL fSetFormatToBaseStreamFormat,
4638         WINBOOL fWriteToBaseStream) = 0;
4639 
4640     virtual HRESULT STDMETHODCALLTYPE GetBaseStream(
4641         ISpStreamFormat **ppStream) = 0;
4642 
4643     virtual HRESULT STDMETHODCALLTYPE SetFormat(
4644         REFGUID rguidFormatIdOfConvertedStream,
4645         const WAVEFORMATEX *pWaveFormatExOfConvertedStream) = 0;
4646 
4647     virtual HRESULT STDMETHODCALLTYPE ResetSeekPosition(
4648         ) = 0;
4649 
4650     virtual HRESULT STDMETHODCALLTYPE ScaleConvertedToBaseOffset(
4651         ULONGLONG ullOffsetConvertedStream,
4652         ULONGLONG *pullOffsetBaseStream) = 0;
4653 
4654     virtual HRESULT STDMETHODCALLTYPE ScaleBaseToConvertedOffset(
4655         ULONGLONG ullOffsetBaseStream,
4656         ULONGLONG *pullOffsetConvertedStream) = 0;
4657 
4658 };
4659 #ifdef __CRT_UUID_DECL
4660 __CRT_UUID_DECL(ISpStreamFormatConverter, 0x678a932c, 0xea71, 0x4446, 0x9b,0x41, 0x78,0xfd,0xa6,0x28,0x0a,0x29)
4661 #endif
4662 #else
4663 typedef struct ISpStreamFormatConverterVtbl {
4664     BEGIN_INTERFACE
4665 
4666     /*** IUnknown methods ***/
4667     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4668         ISpStreamFormatConverter *This,
4669         REFIID riid,
4670         void **ppvObject);
4671 
4672     ULONG (STDMETHODCALLTYPE *AddRef)(
4673         ISpStreamFormatConverter *This);
4674 
4675     ULONG (STDMETHODCALLTYPE *Release)(
4676         ISpStreamFormatConverter *This);
4677 
4678     /*** ISequentialStream methods ***/
4679     HRESULT (STDMETHODCALLTYPE *Read)(
4680         ISpStreamFormatConverter *This,
4681         void *pv,
4682         ULONG cb,
4683         ULONG *pcbRead);
4684 
4685     HRESULT (STDMETHODCALLTYPE *Write)(
4686         ISpStreamFormatConverter *This,
4687         const void *pv,
4688         ULONG cb,
4689         ULONG *pcbWritten);
4690 
4691     /*** IStream methods ***/
4692     HRESULT (STDMETHODCALLTYPE *Seek)(
4693         ISpStreamFormatConverter *This,
4694         LARGE_INTEGER dlibMove,
4695         DWORD dwOrigin,
4696         ULARGE_INTEGER *plibNewPosition);
4697 
4698     HRESULT (STDMETHODCALLTYPE *SetSize)(
4699         ISpStreamFormatConverter *This,
4700         ULARGE_INTEGER libNewSize);
4701 
4702     HRESULT (STDMETHODCALLTYPE *CopyTo)(
4703         ISpStreamFormatConverter *This,
4704         IStream *pstm,
4705         ULARGE_INTEGER cb,
4706         ULARGE_INTEGER *pcbRead,
4707         ULARGE_INTEGER *pcbWritten);
4708 
4709     HRESULT (STDMETHODCALLTYPE *Commit)(
4710         ISpStreamFormatConverter *This,
4711         DWORD grfCommitFlags);
4712 
4713     HRESULT (STDMETHODCALLTYPE *Revert)(
4714         ISpStreamFormatConverter *This);
4715 
4716     HRESULT (STDMETHODCALLTYPE *LockRegion)(
4717         ISpStreamFormatConverter *This,
4718         ULARGE_INTEGER libOffset,
4719         ULARGE_INTEGER cb,
4720         DWORD dwLockType);
4721 
4722     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
4723         ISpStreamFormatConverter *This,
4724         ULARGE_INTEGER libOffset,
4725         ULARGE_INTEGER cb,
4726         DWORD dwLockType);
4727 
4728     HRESULT (STDMETHODCALLTYPE *Stat)(
4729         ISpStreamFormatConverter *This,
4730         STATSTG *pstatstg,
4731         DWORD grfStatFlag);
4732 
4733     HRESULT (STDMETHODCALLTYPE *Clone)(
4734         ISpStreamFormatConverter *This,
4735         IStream **ppstm);
4736 
4737     /*** ISpStreamFormat methods ***/
4738     HRESULT (STDMETHODCALLTYPE *GetFormat)(
4739         ISpStreamFormatConverter *This,
4740         GUID *pguidFormatId,
4741         WAVEFORMATEX **ppCoMemWaveFormatEx);
4742 
4743     /*** ISpStreamFormatConverter methods ***/
4744     HRESULT (STDMETHODCALLTYPE *SetBaseStream)(
4745         ISpStreamFormatConverter *This,
4746         ISpStreamFormat *pStream,
4747         WINBOOL fSetFormatToBaseStreamFormat,
4748         WINBOOL fWriteToBaseStream);
4749 
4750     HRESULT (STDMETHODCALLTYPE *GetBaseStream)(
4751         ISpStreamFormatConverter *This,
4752         ISpStreamFormat **ppStream);
4753 
4754     HRESULT (STDMETHODCALLTYPE *SetFormat)(
4755         ISpStreamFormatConverter *This,
4756         REFGUID rguidFormatIdOfConvertedStream,
4757         const WAVEFORMATEX *pWaveFormatExOfConvertedStream);
4758 
4759     HRESULT (STDMETHODCALLTYPE *ResetSeekPosition)(
4760         ISpStreamFormatConverter *This);
4761 
4762     HRESULT (STDMETHODCALLTYPE *ScaleConvertedToBaseOffset)(
4763         ISpStreamFormatConverter *This,
4764         ULONGLONG ullOffsetConvertedStream,
4765         ULONGLONG *pullOffsetBaseStream);
4766 
4767     HRESULT (STDMETHODCALLTYPE *ScaleBaseToConvertedOffset)(
4768         ISpStreamFormatConverter *This,
4769         ULONGLONG ullOffsetBaseStream,
4770         ULONGLONG *pullOffsetConvertedStream);
4771 
4772     END_INTERFACE
4773 } ISpStreamFormatConverterVtbl;
4774 
4775 interface ISpStreamFormatConverter {
4776     CONST_VTBL ISpStreamFormatConverterVtbl* lpVtbl;
4777 };
4778 
4779 #ifdef COBJMACROS
4780 #ifndef WIDL_C_INLINE_WRAPPERS
4781 /*** IUnknown methods ***/
4782 #define ISpStreamFormatConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4783 #define ISpStreamFormatConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
4784 #define ISpStreamFormatConverter_Release(This) (This)->lpVtbl->Release(This)
4785 /*** ISequentialStream methods ***/
4786 #define ISpStreamFormatConverter_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
4787 #define ISpStreamFormatConverter_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
4788 /*** IStream methods ***/
4789 #define ISpStreamFormatConverter_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
4790 #define ISpStreamFormatConverter_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
4791 #define ISpStreamFormatConverter_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
4792 #define ISpStreamFormatConverter_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
4793 #define ISpStreamFormatConverter_Revert(This) (This)->lpVtbl->Revert(This)
4794 #define ISpStreamFormatConverter_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
4795 #define ISpStreamFormatConverter_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
4796 #define ISpStreamFormatConverter_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
4797 #define ISpStreamFormatConverter_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
4798 /*** ISpStreamFormat methods ***/
4799 #define ISpStreamFormatConverter_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
4800 /*** ISpStreamFormatConverter methods ***/
4801 #define ISpStreamFormatConverter_SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream) (This)->lpVtbl->SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream)
4802 #define ISpStreamFormatConverter_GetBaseStream(This,ppStream) (This)->lpVtbl->GetBaseStream(This,ppStream)
4803 #define ISpStreamFormatConverter_SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream) (This)->lpVtbl->SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream)
4804 #define ISpStreamFormatConverter_ResetSeekPosition(This) (This)->lpVtbl->ResetSeekPosition(This)
4805 #define ISpStreamFormatConverter_ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream) (This)->lpVtbl->ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream)
4806 #define ISpStreamFormatConverter_ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream) (This)->lpVtbl->ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream)
4807 #else
4808 /*** IUnknown methods ***/
4809 static FORCEINLINE HRESULT ISpStreamFormatConverter_QueryInterface(ISpStreamFormatConverter* This,REFIID riid,void **ppvObject) {
4810     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4811 }
4812 static FORCEINLINE ULONG ISpStreamFormatConverter_AddRef(ISpStreamFormatConverter* This) {
4813     return This->lpVtbl->AddRef(This);
4814 }
4815 static FORCEINLINE ULONG ISpStreamFormatConverter_Release(ISpStreamFormatConverter* This) {
4816     return This->lpVtbl->Release(This);
4817 }
4818 /*** ISequentialStream methods ***/
4819 static FORCEINLINE HRESULT ISpStreamFormatConverter_Read(ISpStreamFormatConverter* This,void *pv,ULONG cb,ULONG *pcbRead) {
4820     return This->lpVtbl->Read(This,pv,cb,pcbRead);
4821 }
4822 static FORCEINLINE HRESULT ISpStreamFormatConverter_Write(ISpStreamFormatConverter* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
4823     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
4824 }
4825 /*** IStream methods ***/
4826 static FORCEINLINE HRESULT ISpStreamFormatConverter_Seek(ISpStreamFormatConverter* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
4827     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
4828 }
4829 static FORCEINLINE HRESULT ISpStreamFormatConverter_SetSize(ISpStreamFormatConverter* This,ULARGE_INTEGER libNewSize) {
4830     return This->lpVtbl->SetSize(This,libNewSize);
4831 }
4832 static FORCEINLINE HRESULT ISpStreamFormatConverter_CopyTo(ISpStreamFormatConverter* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
4833     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
4834 }
4835 static FORCEINLINE HRESULT ISpStreamFormatConverter_Commit(ISpStreamFormatConverter* This,DWORD grfCommitFlags) {
4836     return This->lpVtbl->Commit(This,grfCommitFlags);
4837 }
4838 static FORCEINLINE HRESULT ISpStreamFormatConverter_Revert(ISpStreamFormatConverter* This) {
4839     return This->lpVtbl->Revert(This);
4840 }
4841 static FORCEINLINE HRESULT ISpStreamFormatConverter_LockRegion(ISpStreamFormatConverter* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4842     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
4843 }
4844 static FORCEINLINE HRESULT ISpStreamFormatConverter_UnlockRegion(ISpStreamFormatConverter* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4845     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
4846 }
4847 static FORCEINLINE HRESULT ISpStreamFormatConverter_Stat(ISpStreamFormatConverter* This,STATSTG *pstatstg,DWORD grfStatFlag) {
4848     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
4849 }
4850 static FORCEINLINE HRESULT ISpStreamFormatConverter_Clone(ISpStreamFormatConverter* This,IStream **ppstm) {
4851     return This->lpVtbl->Clone(This,ppstm);
4852 }
4853 /*** ISpStreamFormat methods ***/
4854 static FORCEINLINE HRESULT ISpStreamFormatConverter_GetFormat(ISpStreamFormatConverter* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
4855     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
4856 }
4857 /*** ISpStreamFormatConverter methods ***/
4858 static FORCEINLINE HRESULT ISpStreamFormatConverter_SetBaseStream(ISpStreamFormatConverter* This,ISpStreamFormat *pStream,WINBOOL fSetFormatToBaseStreamFormat,WINBOOL fWriteToBaseStream) {
4859     return This->lpVtbl->SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream);
4860 }
4861 static FORCEINLINE HRESULT ISpStreamFormatConverter_GetBaseStream(ISpStreamFormatConverter* This,ISpStreamFormat **ppStream) {
4862     return This->lpVtbl->GetBaseStream(This,ppStream);
4863 }
4864 static FORCEINLINE HRESULT ISpStreamFormatConverter_SetFormat(ISpStreamFormatConverter* This,REFGUID rguidFormatIdOfConvertedStream,const WAVEFORMATEX *pWaveFormatExOfConvertedStream) {
4865     return This->lpVtbl->SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream);
4866 }
4867 static FORCEINLINE HRESULT ISpStreamFormatConverter_ResetSeekPosition(ISpStreamFormatConverter* This) {
4868     return This->lpVtbl->ResetSeekPosition(This);
4869 }
4870 static FORCEINLINE HRESULT ISpStreamFormatConverter_ScaleConvertedToBaseOffset(ISpStreamFormatConverter* This,ULONGLONG ullOffsetConvertedStream,ULONGLONG *pullOffsetBaseStream) {
4871     return This->lpVtbl->ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream);
4872 }
4873 static FORCEINLINE HRESULT ISpStreamFormatConverter_ScaleBaseToConvertedOffset(ISpStreamFormatConverter* This,ULONGLONG ullOffsetBaseStream,ULONGLONG *pullOffsetConvertedStream) {
4874     return This->lpVtbl->ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream);
4875 }
4876 #endif
4877 #endif
4878 
4879 #endif
4880 
4881 
4882 #endif  /* __ISpStreamFormatConverter_INTERFACE_DEFINED__ */
4883 
4884 typedef struct SPAUDIOSTATUS {
4885     LONG cbFreeBuffSpace;
4886     ULONG cbNonBlockingIO;
4887     SPAUDIOSTATE State;
4888     ULONGLONG CurSeekPos;
4889     ULONGLONG CurDevicePos;
4890     DWORD dwAudioLevel;
4891     DWORD dwReserved2;
4892 } SPAUDIOSTATUS;
4893 typedef struct SPAUDIOBUFFERINFO {
4894     ULONG ulMsMinNotification;
4895     ULONG ulMsBufferSize;
4896     ULONG ulMsEventBias;
4897 } SPAUDIOBUFFERINFO;
4898 /*****************************************************************************
4899  * ISpAudio interface
4900  */
4901 #ifndef __ISpAudio_INTERFACE_DEFINED__
4902 #define __ISpAudio_INTERFACE_DEFINED__
4903 
4904 DEFINE_GUID(IID_ISpAudio, 0xc05c768f, 0xfae8, 0x4ec2, 0x8e,0x07, 0x33,0x83,0x21,0xc1,0x24,0x52);
4905 #if defined(__cplusplus) && !defined(CINTERFACE)
4906 MIDL_INTERFACE("c05c768f-fae8-4ec2-8e07-338321c12452")
4907 ISpAudio : public ISpStreamFormat
4908 {
4909     virtual HRESULT STDMETHODCALLTYPE SetState(
4910         SPAUDIOSTATE NewState,
4911         ULONGLONG ullReserved) = 0;
4912 
4913     virtual HRESULT STDMETHODCALLTYPE SetFormat(
4914         REFGUID rguidFmtId,
4915         const WAVEFORMATEX *pWaveFormatEx) = 0;
4916 
4917     virtual HRESULT STDMETHODCALLTYPE GetStatus(
4918         SPAUDIOSTATUS *pStatus) = 0;
4919 
4920     virtual HRESULT STDMETHODCALLTYPE SetBufferInfo(
4921         const SPAUDIOBUFFERINFO *pBuffInfo) = 0;
4922 
4923     virtual HRESULT STDMETHODCALLTYPE GetBufferInfo(
4924         SPAUDIOBUFFERINFO *pBuffInfo) = 0;
4925 
4926     virtual HRESULT STDMETHODCALLTYPE GetDefaultFormat(
4927         GUID *pFormatId,
4928         WAVEFORMATEX **ppCoMemWaveFormatEx) = 0;
4929 
4930     virtual HANDLE STDMETHODCALLTYPE EventHandle(
4931         ) = 0;
4932 
4933     virtual HRESULT STDMETHODCALLTYPE GetVolumeLevel(
4934         ULONG *pLevel) = 0;
4935 
4936     virtual HRESULT STDMETHODCALLTYPE SetVolumeLevel(
4937         ULONG Level) = 0;
4938 
4939     virtual HRESULT STDMETHODCALLTYPE GetBufferNotifySize(
4940         ULONG *pcbSize) = 0;
4941 
4942     virtual HRESULT STDMETHODCALLTYPE SetBufferNotifySize(
4943         ULONG cbSize) = 0;
4944 
4945 };
4946 #ifdef __CRT_UUID_DECL
4947 __CRT_UUID_DECL(ISpAudio, 0xc05c768f, 0xfae8, 0x4ec2, 0x8e,0x07, 0x33,0x83,0x21,0xc1,0x24,0x52)
4948 #endif
4949 #else
4950 typedef struct ISpAudioVtbl {
4951     BEGIN_INTERFACE
4952 
4953     /*** IUnknown methods ***/
4954     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4955         ISpAudio *This,
4956         REFIID riid,
4957         void **ppvObject);
4958 
4959     ULONG (STDMETHODCALLTYPE *AddRef)(
4960         ISpAudio *This);
4961 
4962     ULONG (STDMETHODCALLTYPE *Release)(
4963         ISpAudio *This);
4964 
4965     /*** ISequentialStream methods ***/
4966     HRESULT (STDMETHODCALLTYPE *Read)(
4967         ISpAudio *This,
4968         void *pv,
4969         ULONG cb,
4970         ULONG *pcbRead);
4971 
4972     HRESULT (STDMETHODCALLTYPE *Write)(
4973         ISpAudio *This,
4974         const void *pv,
4975         ULONG cb,
4976         ULONG *pcbWritten);
4977 
4978     /*** IStream methods ***/
4979     HRESULT (STDMETHODCALLTYPE *Seek)(
4980         ISpAudio *This,
4981         LARGE_INTEGER dlibMove,
4982         DWORD dwOrigin,
4983         ULARGE_INTEGER *plibNewPosition);
4984 
4985     HRESULT (STDMETHODCALLTYPE *SetSize)(
4986         ISpAudio *This,
4987         ULARGE_INTEGER libNewSize);
4988 
4989     HRESULT (STDMETHODCALLTYPE *CopyTo)(
4990         ISpAudio *This,
4991         IStream *pstm,
4992         ULARGE_INTEGER cb,
4993         ULARGE_INTEGER *pcbRead,
4994         ULARGE_INTEGER *pcbWritten);
4995 
4996     HRESULT (STDMETHODCALLTYPE *Commit)(
4997         ISpAudio *This,
4998         DWORD grfCommitFlags);
4999 
5000     HRESULT (STDMETHODCALLTYPE *Revert)(
5001         ISpAudio *This);
5002 
5003     HRESULT (STDMETHODCALLTYPE *LockRegion)(
5004         ISpAudio *This,
5005         ULARGE_INTEGER libOffset,
5006         ULARGE_INTEGER cb,
5007         DWORD dwLockType);
5008 
5009     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
5010         ISpAudio *This,
5011         ULARGE_INTEGER libOffset,
5012         ULARGE_INTEGER cb,
5013         DWORD dwLockType);
5014 
5015     HRESULT (STDMETHODCALLTYPE *Stat)(
5016         ISpAudio *This,
5017         STATSTG *pstatstg,
5018         DWORD grfStatFlag);
5019 
5020     HRESULT (STDMETHODCALLTYPE *Clone)(
5021         ISpAudio *This,
5022         IStream **ppstm);
5023 
5024     /*** ISpStreamFormat methods ***/
5025     HRESULT (STDMETHODCALLTYPE *GetFormat)(
5026         ISpAudio *This,
5027         GUID *pguidFormatId,
5028         WAVEFORMATEX **ppCoMemWaveFormatEx);
5029 
5030     /*** ISpAudio methods ***/
5031     HRESULT (STDMETHODCALLTYPE *SetState)(
5032         ISpAudio *This,
5033         SPAUDIOSTATE NewState,
5034         ULONGLONG ullReserved);
5035 
5036     HRESULT (STDMETHODCALLTYPE *SetFormat)(
5037         ISpAudio *This,
5038         REFGUID rguidFmtId,
5039         const WAVEFORMATEX *pWaveFormatEx);
5040 
5041     HRESULT (STDMETHODCALLTYPE *GetStatus)(
5042         ISpAudio *This,
5043         SPAUDIOSTATUS *pStatus);
5044 
5045     HRESULT (STDMETHODCALLTYPE *SetBufferInfo)(
5046         ISpAudio *This,
5047         const SPAUDIOBUFFERINFO *pBuffInfo);
5048 
5049     HRESULT (STDMETHODCALLTYPE *GetBufferInfo)(
5050         ISpAudio *This,
5051         SPAUDIOBUFFERINFO *pBuffInfo);
5052 
5053     HRESULT (STDMETHODCALLTYPE *GetDefaultFormat)(
5054         ISpAudio *This,
5055         GUID *pFormatId,
5056         WAVEFORMATEX **ppCoMemWaveFormatEx);
5057 
5058     HANDLE (STDMETHODCALLTYPE *EventHandle)(
5059         ISpAudio *This);
5060 
5061     HRESULT (STDMETHODCALLTYPE *GetVolumeLevel)(
5062         ISpAudio *This,
5063         ULONG *pLevel);
5064 
5065     HRESULT (STDMETHODCALLTYPE *SetVolumeLevel)(
5066         ISpAudio *This,
5067         ULONG Level);
5068 
5069     HRESULT (STDMETHODCALLTYPE *GetBufferNotifySize)(
5070         ISpAudio *This,
5071         ULONG *pcbSize);
5072 
5073     HRESULT (STDMETHODCALLTYPE *SetBufferNotifySize)(
5074         ISpAudio *This,
5075         ULONG cbSize);
5076 
5077     END_INTERFACE
5078 } ISpAudioVtbl;
5079 
5080 interface ISpAudio {
5081     CONST_VTBL ISpAudioVtbl* lpVtbl;
5082 };
5083 
5084 #ifdef COBJMACROS
5085 #ifndef WIDL_C_INLINE_WRAPPERS
5086 /*** IUnknown methods ***/
5087 #define ISpAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5088 #define ISpAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
5089 #define ISpAudio_Release(This) (This)->lpVtbl->Release(This)
5090 /*** ISequentialStream methods ***/
5091 #define ISpAudio_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
5092 #define ISpAudio_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
5093 /*** IStream methods ***/
5094 #define ISpAudio_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
5095 #define ISpAudio_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
5096 #define ISpAudio_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
5097 #define ISpAudio_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
5098 #define ISpAudio_Revert(This) (This)->lpVtbl->Revert(This)
5099 #define ISpAudio_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
5100 #define ISpAudio_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
5101 #define ISpAudio_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
5102 #define ISpAudio_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
5103 /*** ISpStreamFormat methods ***/
5104 #define ISpAudio_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
5105 /*** ISpAudio methods ***/
5106 #define ISpAudio_SetState(This,NewState,ullReserved) (This)->lpVtbl->SetState(This,NewState,ullReserved)
5107 #define ISpAudio_SetFormat(This,rguidFmtId,pWaveFormatEx) (This)->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx)
5108 #define ISpAudio_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
5109 #define ISpAudio_SetBufferInfo(This,pBuffInfo) (This)->lpVtbl->SetBufferInfo(This,pBuffInfo)
5110 #define ISpAudio_GetBufferInfo(This,pBuffInfo) (This)->lpVtbl->GetBufferInfo(This,pBuffInfo)
5111 #define ISpAudio_GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx)
5112 #define ISpAudio_EventHandle(This) (This)->lpVtbl->EventHandle(This)
5113 #define ISpAudio_GetVolumeLevel(This,pLevel) (This)->lpVtbl->GetVolumeLevel(This,pLevel)
5114 #define ISpAudio_SetVolumeLevel(This,Level) (This)->lpVtbl->SetVolumeLevel(This,Level)
5115 #define ISpAudio_GetBufferNotifySize(This,pcbSize) (This)->lpVtbl->GetBufferNotifySize(This,pcbSize)
5116 #define ISpAudio_SetBufferNotifySize(This,cbSize) (This)->lpVtbl->SetBufferNotifySize(This,cbSize)
5117 #else
5118 /*** IUnknown methods ***/
5119 static FORCEINLINE HRESULT ISpAudio_QueryInterface(ISpAudio* This,REFIID riid,void **ppvObject) {
5120     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5121 }
5122 static FORCEINLINE ULONG ISpAudio_AddRef(ISpAudio* This) {
5123     return This->lpVtbl->AddRef(This);
5124 }
5125 static FORCEINLINE ULONG ISpAudio_Release(ISpAudio* This) {
5126     return This->lpVtbl->Release(This);
5127 }
5128 /*** ISequentialStream methods ***/
5129 static FORCEINLINE HRESULT ISpAudio_Read(ISpAudio* This,void *pv,ULONG cb,ULONG *pcbRead) {
5130     return This->lpVtbl->Read(This,pv,cb,pcbRead);
5131 }
5132 static FORCEINLINE HRESULT ISpAudio_Write(ISpAudio* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
5133     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
5134 }
5135 /*** IStream methods ***/
5136 static FORCEINLINE HRESULT ISpAudio_Seek(ISpAudio* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
5137     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
5138 }
5139 static FORCEINLINE HRESULT ISpAudio_SetSize(ISpAudio* This,ULARGE_INTEGER libNewSize) {
5140     return This->lpVtbl->SetSize(This,libNewSize);
5141 }
5142 static FORCEINLINE HRESULT ISpAudio_CopyTo(ISpAudio* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
5143     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
5144 }
5145 static FORCEINLINE HRESULT ISpAudio_Commit(ISpAudio* This,DWORD grfCommitFlags) {
5146     return This->lpVtbl->Commit(This,grfCommitFlags);
5147 }
5148 static FORCEINLINE HRESULT ISpAudio_Revert(ISpAudio* This) {
5149     return This->lpVtbl->Revert(This);
5150 }
5151 static FORCEINLINE HRESULT ISpAudio_LockRegion(ISpAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
5152     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
5153 }
5154 static FORCEINLINE HRESULT ISpAudio_UnlockRegion(ISpAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
5155     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
5156 }
5157 static FORCEINLINE HRESULT ISpAudio_Stat(ISpAudio* This,STATSTG *pstatstg,DWORD grfStatFlag) {
5158     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
5159 }
5160 static FORCEINLINE HRESULT ISpAudio_Clone(ISpAudio* This,IStream **ppstm) {
5161     return This->lpVtbl->Clone(This,ppstm);
5162 }
5163 /*** ISpStreamFormat methods ***/
5164 static FORCEINLINE HRESULT ISpAudio_GetFormat(ISpAudio* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
5165     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
5166 }
5167 /*** ISpAudio methods ***/
5168 static FORCEINLINE HRESULT ISpAudio_SetState(ISpAudio* This,SPAUDIOSTATE NewState,ULONGLONG ullReserved) {
5169     return This->lpVtbl->SetState(This,NewState,ullReserved);
5170 }
5171 static FORCEINLINE HRESULT ISpAudio_SetFormat(ISpAudio* This,REFGUID rguidFmtId,const WAVEFORMATEX *pWaveFormatEx) {
5172     return This->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx);
5173 }
5174 static FORCEINLINE HRESULT ISpAudio_GetStatus(ISpAudio* This,SPAUDIOSTATUS *pStatus) {
5175     return This->lpVtbl->GetStatus(This,pStatus);
5176 }
5177 static FORCEINLINE HRESULT ISpAudio_SetBufferInfo(ISpAudio* This,const SPAUDIOBUFFERINFO *pBuffInfo) {
5178     return This->lpVtbl->SetBufferInfo(This,pBuffInfo);
5179 }
5180 static FORCEINLINE HRESULT ISpAudio_GetBufferInfo(ISpAudio* This,SPAUDIOBUFFERINFO *pBuffInfo) {
5181     return This->lpVtbl->GetBufferInfo(This,pBuffInfo);
5182 }
5183 static FORCEINLINE HRESULT ISpAudio_GetDefaultFormat(ISpAudio* This,GUID *pFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
5184     return This->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx);
5185 }
5186 static FORCEINLINE HANDLE ISpAudio_EventHandle(ISpAudio* This) {
5187     return This->lpVtbl->EventHandle(This);
5188 }
5189 static FORCEINLINE HRESULT ISpAudio_GetVolumeLevel(ISpAudio* This,ULONG *pLevel) {
5190     return This->lpVtbl->GetVolumeLevel(This,pLevel);
5191 }
5192 static FORCEINLINE HRESULT ISpAudio_SetVolumeLevel(ISpAudio* This,ULONG Level) {
5193     return This->lpVtbl->SetVolumeLevel(This,Level);
5194 }
5195 static FORCEINLINE HRESULT ISpAudio_GetBufferNotifySize(ISpAudio* This,ULONG *pcbSize) {
5196     return This->lpVtbl->GetBufferNotifySize(This,pcbSize);
5197 }
5198 static FORCEINLINE HRESULT ISpAudio_SetBufferNotifySize(ISpAudio* This,ULONG cbSize) {
5199     return This->lpVtbl->SetBufferNotifySize(This,cbSize);
5200 }
5201 #endif
5202 #endif
5203 
5204 #endif
5205 
5206 
5207 #endif  /* __ISpAudio_INTERFACE_DEFINED__ */
5208 
5209 /*****************************************************************************
5210  * ISpMMSysAudio interface
5211  */
5212 #ifndef __ISpMMSysAudio_INTERFACE_DEFINED__
5213 #define __ISpMMSysAudio_INTERFACE_DEFINED__
5214 
5215 DEFINE_GUID(IID_ISpMMSysAudio, 0x15806f6e, 0x1d70, 0x4b48, 0x98,0xe6, 0x3b,0x1a,0x00,0x75,0x09,0xab);
5216 #if defined(__cplusplus) && !defined(CINTERFACE)
5217 MIDL_INTERFACE("15806f6e-1d70-4b48-98e6-3b1a007509ab")
5218 ISpMMSysAudio : public ISpAudio
5219 {
5220     virtual HRESULT STDMETHODCALLTYPE GetDeviceId(
5221         UINT *puDeviceId) = 0;
5222 
5223     virtual HRESULT STDMETHODCALLTYPE SetDeviceId(
5224         UINT uDeviceId) = 0;
5225 
5226     virtual HRESULT STDMETHODCALLTYPE GetMMHandle(
5227         void **pHandle) = 0;
5228 
5229     virtual HRESULT STDMETHODCALLTYPE GetLineId(
5230         UINT *puLineId) = 0;
5231 
5232     virtual HRESULT STDMETHODCALLTYPE SetLineId(
5233         UINT uLineId) = 0;
5234 
5235 };
5236 #ifdef __CRT_UUID_DECL
5237 __CRT_UUID_DECL(ISpMMSysAudio, 0x15806f6e, 0x1d70, 0x4b48, 0x98,0xe6, 0x3b,0x1a,0x00,0x75,0x09,0xab)
5238 #endif
5239 #else
5240 typedef struct ISpMMSysAudioVtbl {
5241     BEGIN_INTERFACE
5242 
5243     /*** IUnknown methods ***/
5244     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5245         ISpMMSysAudio *This,
5246         REFIID riid,
5247         void **ppvObject);
5248 
5249     ULONG (STDMETHODCALLTYPE *AddRef)(
5250         ISpMMSysAudio *This);
5251 
5252     ULONG (STDMETHODCALLTYPE *Release)(
5253         ISpMMSysAudio *This);
5254 
5255     /*** ISequentialStream methods ***/
5256     HRESULT (STDMETHODCALLTYPE *Read)(
5257         ISpMMSysAudio *This,
5258         void *pv,
5259         ULONG cb,
5260         ULONG *pcbRead);
5261 
5262     HRESULT (STDMETHODCALLTYPE *Write)(
5263         ISpMMSysAudio *This,
5264         const void *pv,
5265         ULONG cb,
5266         ULONG *pcbWritten);
5267 
5268     /*** IStream methods ***/
5269     HRESULT (STDMETHODCALLTYPE *Seek)(
5270         ISpMMSysAudio *This,
5271         LARGE_INTEGER dlibMove,
5272         DWORD dwOrigin,
5273         ULARGE_INTEGER *plibNewPosition);
5274 
5275     HRESULT (STDMETHODCALLTYPE *SetSize)(
5276         ISpMMSysAudio *This,
5277         ULARGE_INTEGER libNewSize);
5278 
5279     HRESULT (STDMETHODCALLTYPE *CopyTo)(
5280         ISpMMSysAudio *This,
5281         IStream *pstm,
5282         ULARGE_INTEGER cb,
5283         ULARGE_INTEGER *pcbRead,
5284         ULARGE_INTEGER *pcbWritten);
5285 
5286     HRESULT (STDMETHODCALLTYPE *Commit)(
5287         ISpMMSysAudio *This,
5288         DWORD grfCommitFlags);
5289 
5290     HRESULT (STDMETHODCALLTYPE *Revert)(
5291         ISpMMSysAudio *This);
5292 
5293     HRESULT (STDMETHODCALLTYPE *LockRegion)(
5294         ISpMMSysAudio *This,
5295         ULARGE_INTEGER libOffset,
5296         ULARGE_INTEGER cb,
5297         DWORD dwLockType);
5298 
5299     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
5300         ISpMMSysAudio *This,
5301         ULARGE_INTEGER libOffset,
5302         ULARGE_INTEGER cb,
5303         DWORD dwLockType);
5304 
5305     HRESULT (STDMETHODCALLTYPE *Stat)(
5306         ISpMMSysAudio *This,
5307         STATSTG *pstatstg,
5308         DWORD grfStatFlag);
5309 
5310     HRESULT (STDMETHODCALLTYPE *Clone)(
5311         ISpMMSysAudio *This,
5312         IStream **ppstm);
5313 
5314     /*** ISpStreamFormat methods ***/
5315     HRESULT (STDMETHODCALLTYPE *GetFormat)(
5316         ISpMMSysAudio *This,
5317         GUID *pguidFormatId,
5318         WAVEFORMATEX **ppCoMemWaveFormatEx);
5319 
5320     /*** ISpAudio methods ***/
5321     HRESULT (STDMETHODCALLTYPE *SetState)(
5322         ISpMMSysAudio *This,
5323         SPAUDIOSTATE NewState,
5324         ULONGLONG ullReserved);
5325 
5326     HRESULT (STDMETHODCALLTYPE *SetFormat)(
5327         ISpMMSysAudio *This,
5328         REFGUID rguidFmtId,
5329         const WAVEFORMATEX *pWaveFormatEx);
5330 
5331     HRESULT (STDMETHODCALLTYPE *GetStatus)(
5332         ISpMMSysAudio *This,
5333         SPAUDIOSTATUS *pStatus);
5334 
5335     HRESULT (STDMETHODCALLTYPE *SetBufferInfo)(
5336         ISpMMSysAudio *This,
5337         const SPAUDIOBUFFERINFO *pBuffInfo);
5338 
5339     HRESULT (STDMETHODCALLTYPE *GetBufferInfo)(
5340         ISpMMSysAudio *This,
5341         SPAUDIOBUFFERINFO *pBuffInfo);
5342 
5343     HRESULT (STDMETHODCALLTYPE *GetDefaultFormat)(
5344         ISpMMSysAudio *This,
5345         GUID *pFormatId,
5346         WAVEFORMATEX **ppCoMemWaveFormatEx);
5347 
5348     HANDLE (STDMETHODCALLTYPE *EventHandle)(
5349         ISpMMSysAudio *This);
5350 
5351     HRESULT (STDMETHODCALLTYPE *GetVolumeLevel)(
5352         ISpMMSysAudio *This,
5353         ULONG *pLevel);
5354 
5355     HRESULT (STDMETHODCALLTYPE *SetVolumeLevel)(
5356         ISpMMSysAudio *This,
5357         ULONG Level);
5358 
5359     HRESULT (STDMETHODCALLTYPE *GetBufferNotifySize)(
5360         ISpMMSysAudio *This,
5361         ULONG *pcbSize);
5362 
5363     HRESULT (STDMETHODCALLTYPE *SetBufferNotifySize)(
5364         ISpMMSysAudio *This,
5365         ULONG cbSize);
5366 
5367     /*** ISpMMSysAudio methods ***/
5368     HRESULT (STDMETHODCALLTYPE *GetDeviceId)(
5369         ISpMMSysAudio *This,
5370         UINT *puDeviceId);
5371 
5372     HRESULT (STDMETHODCALLTYPE *SetDeviceId)(
5373         ISpMMSysAudio *This,
5374         UINT uDeviceId);
5375 
5376     HRESULT (STDMETHODCALLTYPE *GetMMHandle)(
5377         ISpMMSysAudio *This,
5378         void **pHandle);
5379 
5380     HRESULT (STDMETHODCALLTYPE *GetLineId)(
5381         ISpMMSysAudio *This,
5382         UINT *puLineId);
5383 
5384     HRESULT (STDMETHODCALLTYPE *SetLineId)(
5385         ISpMMSysAudio *This,
5386         UINT uLineId);
5387 
5388     END_INTERFACE
5389 } ISpMMSysAudioVtbl;
5390 
5391 interface ISpMMSysAudio {
5392     CONST_VTBL ISpMMSysAudioVtbl* lpVtbl;
5393 };
5394 
5395 #ifdef COBJMACROS
5396 #ifndef WIDL_C_INLINE_WRAPPERS
5397 /*** IUnknown methods ***/
5398 #define ISpMMSysAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5399 #define ISpMMSysAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
5400 #define ISpMMSysAudio_Release(This) (This)->lpVtbl->Release(This)
5401 /*** ISequentialStream methods ***/
5402 #define ISpMMSysAudio_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
5403 #define ISpMMSysAudio_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
5404 /*** IStream methods ***/
5405 #define ISpMMSysAudio_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
5406 #define ISpMMSysAudio_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
5407 #define ISpMMSysAudio_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
5408 #define ISpMMSysAudio_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
5409 #define ISpMMSysAudio_Revert(This) (This)->lpVtbl->Revert(This)
5410 #define ISpMMSysAudio_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
5411 #define ISpMMSysAudio_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
5412 #define ISpMMSysAudio_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
5413 #define ISpMMSysAudio_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
5414 /*** ISpStreamFormat methods ***/
5415 #define ISpMMSysAudio_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
5416 /*** ISpAudio methods ***/
5417 #define ISpMMSysAudio_SetState(This,NewState,ullReserved) (This)->lpVtbl->SetState(This,NewState,ullReserved)
5418 #define ISpMMSysAudio_SetFormat(This,rguidFmtId,pWaveFormatEx) (This)->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx)
5419 #define ISpMMSysAudio_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
5420 #define ISpMMSysAudio_SetBufferInfo(This,pBuffInfo) (This)->lpVtbl->SetBufferInfo(This,pBuffInfo)
5421 #define ISpMMSysAudio_GetBufferInfo(This,pBuffInfo) (This)->lpVtbl->GetBufferInfo(This,pBuffInfo)
5422 #define ISpMMSysAudio_GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx)
5423 #define ISpMMSysAudio_EventHandle(This) (This)->lpVtbl->EventHandle(This)
5424 #define ISpMMSysAudio_GetVolumeLevel(This,pLevel) (This)->lpVtbl->GetVolumeLevel(This,pLevel)
5425 #define ISpMMSysAudio_SetVolumeLevel(This,Level) (This)->lpVtbl->SetVolumeLevel(This,Level)
5426 #define ISpMMSysAudio_GetBufferNotifySize(This,pcbSize) (This)->lpVtbl->GetBufferNotifySize(This,pcbSize)
5427 #define ISpMMSysAudio_SetBufferNotifySize(This,cbSize) (This)->lpVtbl->SetBufferNotifySize(This,cbSize)
5428 /*** ISpMMSysAudio methods ***/
5429 #define ISpMMSysAudio_GetDeviceId(This,puDeviceId) (This)->lpVtbl->GetDeviceId(This,puDeviceId)
5430 #define ISpMMSysAudio_SetDeviceId(This,uDeviceId) (This)->lpVtbl->SetDeviceId(This,uDeviceId)
5431 #define ISpMMSysAudio_GetMMHandle(This,pHandle) (This)->lpVtbl->GetMMHandle(This,pHandle)
5432 #define ISpMMSysAudio_GetLineId(This,puLineId) (This)->lpVtbl->GetLineId(This,puLineId)
5433 #define ISpMMSysAudio_SetLineId(This,uLineId) (This)->lpVtbl->SetLineId(This,uLineId)
5434 #else
5435 /*** IUnknown methods ***/
5436 static FORCEINLINE HRESULT ISpMMSysAudio_QueryInterface(ISpMMSysAudio* This,REFIID riid,void **ppvObject) {
5437     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5438 }
5439 static FORCEINLINE ULONG ISpMMSysAudio_AddRef(ISpMMSysAudio* This) {
5440     return This->lpVtbl->AddRef(This);
5441 }
5442 static FORCEINLINE ULONG ISpMMSysAudio_Release(ISpMMSysAudio* This) {
5443     return This->lpVtbl->Release(This);
5444 }
5445 /*** ISequentialStream methods ***/
5446 static FORCEINLINE HRESULT ISpMMSysAudio_Read(ISpMMSysAudio* This,void *pv,ULONG cb,ULONG *pcbRead) {
5447     return This->lpVtbl->Read(This,pv,cb,pcbRead);
5448 }
5449 static FORCEINLINE HRESULT ISpMMSysAudio_Write(ISpMMSysAudio* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
5450     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
5451 }
5452 /*** IStream methods ***/
5453 static FORCEINLINE HRESULT ISpMMSysAudio_Seek(ISpMMSysAudio* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
5454     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
5455 }
5456 static FORCEINLINE HRESULT ISpMMSysAudio_SetSize(ISpMMSysAudio* This,ULARGE_INTEGER libNewSize) {
5457     return This->lpVtbl->SetSize(This,libNewSize);
5458 }
5459 static FORCEINLINE HRESULT ISpMMSysAudio_CopyTo(ISpMMSysAudio* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
5460     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
5461 }
5462 static FORCEINLINE HRESULT ISpMMSysAudio_Commit(ISpMMSysAudio* This,DWORD grfCommitFlags) {
5463     return This->lpVtbl->Commit(This,grfCommitFlags);
5464 }
5465 static FORCEINLINE HRESULT ISpMMSysAudio_Revert(ISpMMSysAudio* This) {
5466     return This->lpVtbl->Revert(This);
5467 }
5468 static FORCEINLINE HRESULT ISpMMSysAudio_LockRegion(ISpMMSysAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
5469     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
5470 }
5471 static FORCEINLINE HRESULT ISpMMSysAudio_UnlockRegion(ISpMMSysAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
5472     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
5473 }
5474 static FORCEINLINE HRESULT ISpMMSysAudio_Stat(ISpMMSysAudio* This,STATSTG *pstatstg,DWORD grfStatFlag) {
5475     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
5476 }
5477 static FORCEINLINE HRESULT ISpMMSysAudio_Clone(ISpMMSysAudio* This,IStream **ppstm) {
5478     return This->lpVtbl->Clone(This,ppstm);
5479 }
5480 /*** ISpStreamFormat methods ***/
5481 static FORCEINLINE HRESULT ISpMMSysAudio_GetFormat(ISpMMSysAudio* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
5482     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
5483 }
5484 /*** ISpAudio methods ***/
5485 static FORCEINLINE HRESULT ISpMMSysAudio_SetState(ISpMMSysAudio* This,SPAUDIOSTATE NewState,ULONGLONG ullReserved) {
5486     return This->lpVtbl->SetState(This,NewState,ullReserved);
5487 }
5488 static FORCEINLINE HRESULT ISpMMSysAudio_SetFormat(ISpMMSysAudio* This,REFGUID rguidFmtId,const WAVEFORMATEX *pWaveFormatEx) {
5489     return This->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx);
5490 }
5491 static FORCEINLINE HRESULT ISpMMSysAudio_GetStatus(ISpMMSysAudio* This,SPAUDIOSTATUS *pStatus) {
5492     return This->lpVtbl->GetStatus(This,pStatus);
5493 }
5494 static FORCEINLINE HRESULT ISpMMSysAudio_SetBufferInfo(ISpMMSysAudio* This,const SPAUDIOBUFFERINFO *pBuffInfo) {
5495     return This->lpVtbl->SetBufferInfo(This,pBuffInfo);
5496 }
5497 static FORCEINLINE HRESULT ISpMMSysAudio_GetBufferInfo(ISpMMSysAudio* This,SPAUDIOBUFFERINFO *pBuffInfo) {
5498     return This->lpVtbl->GetBufferInfo(This,pBuffInfo);
5499 }
5500 static FORCEINLINE HRESULT ISpMMSysAudio_GetDefaultFormat(ISpMMSysAudio* This,GUID *pFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
5501     return This->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx);
5502 }
5503 static FORCEINLINE HANDLE ISpMMSysAudio_EventHandle(ISpMMSysAudio* This) {
5504     return This->lpVtbl->EventHandle(This);
5505 }
5506 static FORCEINLINE HRESULT ISpMMSysAudio_GetVolumeLevel(ISpMMSysAudio* This,ULONG *pLevel) {
5507     return This->lpVtbl->GetVolumeLevel(This,pLevel);
5508 }
5509 static FORCEINLINE HRESULT ISpMMSysAudio_SetVolumeLevel(ISpMMSysAudio* This,ULONG Level) {
5510     return This->lpVtbl->SetVolumeLevel(This,Level);
5511 }
5512 static FORCEINLINE HRESULT ISpMMSysAudio_GetBufferNotifySize(ISpMMSysAudio* This,ULONG *pcbSize) {
5513     return This->lpVtbl->GetBufferNotifySize(This,pcbSize);
5514 }
5515 static FORCEINLINE HRESULT ISpMMSysAudio_SetBufferNotifySize(ISpMMSysAudio* This,ULONG cbSize) {
5516     return This->lpVtbl->SetBufferNotifySize(This,cbSize);
5517 }
5518 /*** ISpMMSysAudio methods ***/
5519 static FORCEINLINE HRESULT ISpMMSysAudio_GetDeviceId(ISpMMSysAudio* This,UINT *puDeviceId) {
5520     return This->lpVtbl->GetDeviceId(This,puDeviceId);
5521 }
5522 static FORCEINLINE HRESULT ISpMMSysAudio_SetDeviceId(ISpMMSysAudio* This,UINT uDeviceId) {
5523     return This->lpVtbl->SetDeviceId(This,uDeviceId);
5524 }
5525 static FORCEINLINE HRESULT ISpMMSysAudio_GetMMHandle(ISpMMSysAudio* This,void **pHandle) {
5526     return This->lpVtbl->GetMMHandle(This,pHandle);
5527 }
5528 static FORCEINLINE HRESULT ISpMMSysAudio_GetLineId(ISpMMSysAudio* This,UINT *puLineId) {
5529     return This->lpVtbl->GetLineId(This,puLineId);
5530 }
5531 static FORCEINLINE HRESULT ISpMMSysAudio_SetLineId(ISpMMSysAudio* This,UINT uLineId) {
5532     return This->lpVtbl->SetLineId(This,uLineId);
5533 }
5534 #endif
5535 #endif
5536 
5537 #endif
5538 
5539 
5540 #endif  /* __ISpMMSysAudio_INTERFACE_DEFINED__ */
5541 
5542 /*****************************************************************************
5543  * ISpTranscript interface
5544  */
5545 #ifndef __ISpTranscript_INTERFACE_DEFINED__
5546 #define __ISpTranscript_INTERFACE_DEFINED__
5547 
5548 DEFINE_GUID(IID_ISpTranscript, 0x10f63bce, 0x201a, 0x11d3, 0xac,0x70, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
5549 #if defined(__cplusplus) && !defined(CINTERFACE)
5550 MIDL_INTERFACE("10f63bce-201a-11d3-ac70-00c04f8ee6c0")
5551 ISpTranscript : public IUnknown
5552 {
5553     virtual HRESULT STDMETHODCALLTYPE GetTranscript(
5554         LPWSTR *ppszTranscript) = 0;
5555 
5556     virtual HRESULT STDMETHODCALLTYPE AppendTranscript(
5557         LPCWSTR pszTranscript) = 0;
5558 
5559 };
5560 #ifdef __CRT_UUID_DECL
5561 __CRT_UUID_DECL(ISpTranscript, 0x10f63bce, 0x201a, 0x11d3, 0xac,0x70, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
5562 #endif
5563 #else
5564 typedef struct ISpTranscriptVtbl {
5565     BEGIN_INTERFACE
5566 
5567     /*** IUnknown methods ***/
5568     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5569         ISpTranscript *This,
5570         REFIID riid,
5571         void **ppvObject);
5572 
5573     ULONG (STDMETHODCALLTYPE *AddRef)(
5574         ISpTranscript *This);
5575 
5576     ULONG (STDMETHODCALLTYPE *Release)(
5577         ISpTranscript *This);
5578 
5579     /*** ISpTranscript methods ***/
5580     HRESULT (STDMETHODCALLTYPE *GetTranscript)(
5581         ISpTranscript *This,
5582         LPWSTR *ppszTranscript);
5583 
5584     HRESULT (STDMETHODCALLTYPE *AppendTranscript)(
5585         ISpTranscript *This,
5586         LPCWSTR pszTranscript);
5587 
5588     END_INTERFACE
5589 } ISpTranscriptVtbl;
5590 
5591 interface ISpTranscript {
5592     CONST_VTBL ISpTranscriptVtbl* lpVtbl;
5593 };
5594 
5595 #ifdef COBJMACROS
5596 #ifndef WIDL_C_INLINE_WRAPPERS
5597 /*** IUnknown methods ***/
5598 #define ISpTranscript_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5599 #define ISpTranscript_AddRef(This) (This)->lpVtbl->AddRef(This)
5600 #define ISpTranscript_Release(This) (This)->lpVtbl->Release(This)
5601 /*** ISpTranscript methods ***/
5602 #define ISpTranscript_GetTranscript(This,ppszTranscript) (This)->lpVtbl->GetTranscript(This,ppszTranscript)
5603 #define ISpTranscript_AppendTranscript(This,pszTranscript) (This)->lpVtbl->AppendTranscript(This,pszTranscript)
5604 #else
5605 /*** IUnknown methods ***/
5606 static FORCEINLINE HRESULT ISpTranscript_QueryInterface(ISpTranscript* This,REFIID riid,void **ppvObject) {
5607     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5608 }
5609 static FORCEINLINE ULONG ISpTranscript_AddRef(ISpTranscript* This) {
5610     return This->lpVtbl->AddRef(This);
5611 }
5612 static FORCEINLINE ULONG ISpTranscript_Release(ISpTranscript* This) {
5613     return This->lpVtbl->Release(This);
5614 }
5615 /*** ISpTranscript methods ***/
5616 static FORCEINLINE HRESULT ISpTranscript_GetTranscript(ISpTranscript* This,LPWSTR *ppszTranscript) {
5617     return This->lpVtbl->GetTranscript(This,ppszTranscript);
5618 }
5619 static FORCEINLINE HRESULT ISpTranscript_AppendTranscript(ISpTranscript* This,LPCWSTR pszTranscript) {
5620     return This->lpVtbl->AppendTranscript(This,pszTranscript);
5621 }
5622 #endif
5623 #endif
5624 
5625 #endif
5626 
5627 
5628 #endif  /* __ISpTranscript_INTERFACE_DEFINED__ */
5629 
5630 typedef WCHAR SPPHONEID;
5631 typedef LPWSTR PSPPHONEID;
5632 typedef LPCWSTR PCSPPHONEID;
5633 typedef struct SPPHRASEELEMENT {
5634     ULONG ulAudioTimeOffset;
5635     ULONG ulAudioSizeTime;
5636     ULONG ulAudioStreamOffset;
5637     ULONG ulAudioSizeBytes;
5638     ULONG ulRetainedStreamOffset;
5639     ULONG ulRetainedSizeBytes;
5640     LPCWSTR pszDisplayText;
5641     LPCWSTR pszLexicalForm;
5642     const SPPHONEID *pszPronunciation;
5643     BYTE bDisplayAttributes;
5644     signed char RequiredConfidence;
5645     signed char ActualConfidence;
5646     BYTE Reserved;
5647     float SREngineConfidence;
5648 } SPPHRASEELEMENT;
5649 typedef struct SPPHRASERULE SPPHRASERULE;
5650 typedef struct SPPHRASEPROPERTY SPPHRASEPROPERTY;
5651 struct SPPHRASERULE {
5652     LPCWSTR pszName;
5653     ULONG ulId;
5654     ULONG ulFirstElement;
5655     ULONG ulCountOfElements;
5656     const SPPHRASERULE *pNextSibling;
5657     const SPPHRASERULE *pFirstChild;
5658     float SREngineConfidence;
5659     signed char Confidence;
5660 };
5661 struct SPPHRASEPROPERTY {
5662     LPCWSTR pszName;
5663     __C89_NAMELESS union {
5664         ULONG ulId;
5665         __C89_NAMELESS struct {
5666             byte bType;
5667             byte bReserved;
5668             unsigned short usArrayIndex;
5669         } __C89_NAMELESSSTRUCTNAME;
5670     } __C89_NAMELESSUNIONNAME;
5671     LPCWSTR pszValue;
5672     VARIANT vValue;
5673     ULONG ulFirstElement;
5674     ULONG ulCountOfElements;
5675     const SPPHRASEPROPERTY *pNextSibling;
5676     const SPPHRASEPROPERTY *pFirstChild;
5677     float SREngineConfidence;
5678     signed char Confidence;
5679 };
5680 typedef struct SPPHRASEREPLACEMENT {
5681     BYTE bDisplayAttributes;
5682     LPCWSTR pszReplacementText;
5683     ULONG ulFirstElement;
5684     ULONG ulCountOfElements;
5685 } SPPHRASEREPLACEMENT;
5686 typedef struct SPSEMANTICERRORINFO {
5687     ULONG ulLineNumber;
5688     LPWSTR pszScriptLine;
5689     LPWSTR pszSource;
5690     LPWSTR pszDescription;
5691     HRESULT hrResultCode;
5692 } SPSEMANTICERRORINFO;
5693 typedef struct SPPHRASE_50 {
5694     ULONG cbSize;
5695     WORD LangID;
5696     WORD wHomophoneGroupId;
5697     ULONGLONG ullGrammarID;
5698     ULONGLONG ftStartTime;
5699     ULONGLONG ullAudioStreamPosition;
5700     ULONG ulAudioSizeBytes;
5701     ULONG ulRetainedSizeBytes;
5702     ULONG ulAudioSizeTime;
5703     SPPHRASERULE Rule;
5704     const SPPHRASEPROPERTY *pProperties;
5705     const SPPHRASEELEMENT *pElements;
5706     ULONG cReplacements;
5707     const SPPHRASEREPLACEMENT *pReplacements;
5708     GUID SREngineID;
5709     ULONG ulSREnginePrivateDataSize;
5710     const BYTE *pSREnginePrivateData;
5711 } SPPHRASE_50;
5712 #define SP_SPPHRASESIZE_500 sizeof (SPPHRASE_50)
5713 #ifdef __cplusplus
5714 typedef struct SPPHRASE : public SPPHRASE_50 {
5715   LPWSTR pSML;
5716   SPSEMANTICERRORINFO* pSemanticErrorInfo;
5717 } SPPHRASE;
5718 #else
5719 typedef struct SPPHRASE {
5720     ULONG cbSize;
5721     WORD LangID;
5722     WORD wHomophoneGroupId;
5723     ULONGLONG ullGrammarID;
5724     ULONGLONG ftStartTime;
5725     ULONGLONG ullAudioStreamPosition;
5726     ULONG ulAudioSizeBytes;
5727     ULONG ulRetainedSizeBytes;
5728     ULONG ulAudioSizeTime;
5729     SPPHRASERULE Rule;
5730     const SPPHRASEPROPERTY *pProperties;
5731     const SPPHRASEELEMENT *pElements;
5732     ULONG cReplacements;
5733     const SPPHRASEREPLACEMENT *pReplacements;
5734     GUID SREngineID;
5735     ULONG ulSREnginePrivateDataSize;
5736     const BYTE *pSREnginePrivateData;
5737     LPWSTR pSML;
5738     SPSEMANTICERRORINFO *pSemanticErrorInfo;
5739 } SPPHRASE;
5740 #endif
5741 typedef struct SPSERIALIZEDPHRASE {
5742     ULONG ulSerializedSize;
5743 } SPSERIALIZEDPHRASE;
5744 typedef struct SPRULE {
5745     LPCWSTR pszRuleName;
5746     ULONG ulRuleId;
5747     DWORD dwAttributes;
5748 } SPRULE;
5749 typedef struct SPBINARYGRAMMAR {
5750     ULONG ulTotalSerializedSize;
5751 } SPBINARYGRAMMAR;
5752 #if 0
5753 typedef void *SPSTATEHANDLE;
5754 #else
5755 DECLARE_HANDLE(SPSTATEHANDLE);
5756 #endif
5757 typedef struct SPWORDPRONUNCIATION {
5758     struct SPWORDPRONUNCIATION *pNextWordPronunciation;
5759     SPLEXICONTYPE eLexiconType;
5760     WORD LangID;
5761     WORD wPronunciationFlags;
5762     SPPARTOFSPEECH ePartOfSpeech;
5763     SPPHONEID szPronunciation[1];
5764 } SPWORDPRONUNCIATION;
5765 typedef struct SPWORDPRONUNCIATIONLIST {
5766     ULONG ulSize;
5767     BYTE *pvBuffer;
5768     SPWORDPRONUNCIATION *pFirstWordPronunciation;
5769 } SPWORDPRONUNCIATIONLIST;
5770 typedef struct SPWORD {
5771     struct SPWORD *pNextWord;
5772     WORD LangID;
5773     WORD wReserved;
5774     SPWORDTYPE eWordType;
5775     LPWSTR pszWord;
5776     SPWORDPRONUNCIATION *pFirstWordPronunciation;
5777 } SPWORD;
5778 typedef struct SPWORDLIST {
5779     ULONG ulSize;
5780     BYTE *pvBuffer;
5781     SPWORD *pFirstWord;
5782 } SPWORDLIST;
5783 /*****************************************************************************
5784  * ISpLexicon interface
5785  */
5786 #ifndef __ISpLexicon_INTERFACE_DEFINED__
5787 #define __ISpLexicon_INTERFACE_DEFINED__
5788 
5789 DEFINE_GUID(IID_ISpLexicon, 0xda41a7c2, 0x5383, 0x4db2, 0x91,0x6b, 0x6c,0x17,0x19,0xe3,0xdb,0x58);
5790 #if defined(__cplusplus) && !defined(CINTERFACE)
5791 MIDL_INTERFACE("da41a7c2-5383-4db2-916b-6c1719e3db58")
5792 ISpLexicon : public IUnknown
5793 {
5794     virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
5795         LPCWSTR pszWord,
5796         WORD LangID,
5797         DWORD dwFlags,
5798         SPWORDPRONUNCIATIONLIST *pWordPronunciationList) = 0;
5799 
5800     virtual HRESULT STDMETHODCALLTYPE AddPronunciation(
5801         LPCWSTR pszWord,
5802         WORD LangID,
5803         SPPARTOFSPEECH ePartOfSpeech,
5804         PCSPPHONEID pszPronunciation) = 0;
5805 
5806     virtual HRESULT STDMETHODCALLTYPE RemovePronunciation(
5807         LPCWSTR pszWord,
5808         WORD LangID,
5809         SPPARTOFSPEECH ePartOfSpeech,
5810         PCSPPHONEID pszPronunciation) = 0;
5811 
5812     virtual HRESULT STDMETHODCALLTYPE GetGeneration(
5813         DWORD *pdwGeneration) = 0;
5814 
5815     virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
5816         DWORD dwFlags,
5817         DWORD *pdwGeneration,
5818         SPWORDLIST *pWordList) = 0;
5819 
5820     virtual HRESULT STDMETHODCALLTYPE GetWords(
5821         DWORD dwFlags,
5822         DWORD *pdwGeneration,
5823         DWORD *pdwCookie,
5824         SPWORDLIST *pWordList) = 0;
5825 
5826 };
5827 #ifdef __CRT_UUID_DECL
5828 __CRT_UUID_DECL(ISpLexicon, 0xda41a7c2, 0x5383, 0x4db2, 0x91,0x6b, 0x6c,0x17,0x19,0xe3,0xdb,0x58)
5829 #endif
5830 #else
5831 typedef struct ISpLexiconVtbl {
5832     BEGIN_INTERFACE
5833 
5834     /*** IUnknown methods ***/
5835     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5836         ISpLexicon *This,
5837         REFIID riid,
5838         void **ppvObject);
5839 
5840     ULONG (STDMETHODCALLTYPE *AddRef)(
5841         ISpLexicon *This);
5842 
5843     ULONG (STDMETHODCALLTYPE *Release)(
5844         ISpLexicon *This);
5845 
5846     /*** ISpLexicon methods ***/
5847     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
5848         ISpLexicon *This,
5849         LPCWSTR pszWord,
5850         WORD LangID,
5851         DWORD dwFlags,
5852         SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
5853 
5854     HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
5855         ISpLexicon *This,
5856         LPCWSTR pszWord,
5857         WORD LangID,
5858         SPPARTOFSPEECH ePartOfSpeech,
5859         PCSPPHONEID pszPronunciation);
5860 
5861     HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
5862         ISpLexicon *This,
5863         LPCWSTR pszWord,
5864         WORD LangID,
5865         SPPARTOFSPEECH ePartOfSpeech,
5866         PCSPPHONEID pszPronunciation);
5867 
5868     HRESULT (STDMETHODCALLTYPE *GetGeneration)(
5869         ISpLexicon *This,
5870         DWORD *pdwGeneration);
5871 
5872     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
5873         ISpLexicon *This,
5874         DWORD dwFlags,
5875         DWORD *pdwGeneration,
5876         SPWORDLIST *pWordList);
5877 
5878     HRESULT (STDMETHODCALLTYPE *GetWords)(
5879         ISpLexicon *This,
5880         DWORD dwFlags,
5881         DWORD *pdwGeneration,
5882         DWORD *pdwCookie,
5883         SPWORDLIST *pWordList);
5884 
5885     END_INTERFACE
5886 } ISpLexiconVtbl;
5887 
5888 interface ISpLexicon {
5889     CONST_VTBL ISpLexiconVtbl* lpVtbl;
5890 };
5891 
5892 #ifdef COBJMACROS
5893 #ifndef WIDL_C_INLINE_WRAPPERS
5894 /*** IUnknown methods ***/
5895 #define ISpLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5896 #define ISpLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
5897 #define ISpLexicon_Release(This) (This)->lpVtbl->Release(This)
5898 /*** ISpLexicon methods ***/
5899 #define ISpLexicon_GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList)
5900 #define ISpLexicon_AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
5901 #define ISpLexicon_RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
5902 #define ISpLexicon_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
5903 #define ISpLexicon_GetGenerationChange(This,dwFlags,pdwGeneration,pWordList) (This)->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList)
5904 #define ISpLexicon_GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList)
5905 #else
5906 /*** IUnknown methods ***/
5907 static FORCEINLINE HRESULT ISpLexicon_QueryInterface(ISpLexicon* This,REFIID riid,void **ppvObject) {
5908     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5909 }
5910 static FORCEINLINE ULONG ISpLexicon_AddRef(ISpLexicon* This) {
5911     return This->lpVtbl->AddRef(This);
5912 }
5913 static FORCEINLINE ULONG ISpLexicon_Release(ISpLexicon* This) {
5914     return This->lpVtbl->Release(This);
5915 }
5916 /*** ISpLexicon methods ***/
5917 static FORCEINLINE HRESULT ISpLexicon_GetPronunciations(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,DWORD dwFlags,SPWORDPRONUNCIATIONLIST *pWordPronunciationList) {
5918     return This->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList);
5919 }
5920 static FORCEINLINE HRESULT ISpLexicon_AddPronunciation(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
5921     return This->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
5922 }
5923 static FORCEINLINE HRESULT ISpLexicon_RemovePronunciation(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
5924     return This->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
5925 }
5926 static FORCEINLINE HRESULT ISpLexicon_GetGeneration(ISpLexicon* This,DWORD *pdwGeneration) {
5927     return This->lpVtbl->GetGeneration(This,pdwGeneration);
5928 }
5929 static FORCEINLINE HRESULT ISpLexicon_GetGenerationChange(ISpLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
5930     return This->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList);
5931 }
5932 static FORCEINLINE HRESULT ISpLexicon_GetWords(ISpLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
5933     return This->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList);
5934 }
5935 #endif
5936 #endif
5937 
5938 #endif
5939 
5940 
5941 #endif  /* __ISpLexicon_INTERFACE_DEFINED__ */
5942 
5943 /*****************************************************************************
5944  * ISpContainerLexicon interface
5945  */
5946 #ifndef __ISpContainerLexicon_INTERFACE_DEFINED__
5947 #define __ISpContainerLexicon_INTERFACE_DEFINED__
5948 
5949 DEFINE_GUID(IID_ISpContainerLexicon, 0x8565572f, 0xc094, 0x41cc, 0xb5,0x6e, 0x10,0xbd,0x9c,0x3f,0xf0,0x44);
5950 #if defined(__cplusplus) && !defined(CINTERFACE)
5951 MIDL_INTERFACE("8565572f-c094-41cc-b56e-10bd9c3ff044")
5952 ISpContainerLexicon : public ISpLexicon
5953 {
5954     virtual HRESULT STDMETHODCALLTYPE AddLexicon(
5955         ISpLexicon *pAddLexicon,
5956         DWORD dwFlags) = 0;
5957 
5958 };
5959 #ifdef __CRT_UUID_DECL
5960 __CRT_UUID_DECL(ISpContainerLexicon, 0x8565572f, 0xc094, 0x41cc, 0xb5,0x6e, 0x10,0xbd,0x9c,0x3f,0xf0,0x44)
5961 #endif
5962 #else
5963 typedef struct ISpContainerLexiconVtbl {
5964     BEGIN_INTERFACE
5965 
5966     /*** IUnknown methods ***/
5967     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5968         ISpContainerLexicon *This,
5969         REFIID riid,
5970         void **ppvObject);
5971 
5972     ULONG (STDMETHODCALLTYPE *AddRef)(
5973         ISpContainerLexicon *This);
5974 
5975     ULONG (STDMETHODCALLTYPE *Release)(
5976         ISpContainerLexicon *This);
5977 
5978     /*** ISpLexicon methods ***/
5979     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
5980         ISpContainerLexicon *This,
5981         LPCWSTR pszWord,
5982         WORD LangID,
5983         DWORD dwFlags,
5984         SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
5985 
5986     HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
5987         ISpContainerLexicon *This,
5988         LPCWSTR pszWord,
5989         WORD LangID,
5990         SPPARTOFSPEECH ePartOfSpeech,
5991         PCSPPHONEID pszPronunciation);
5992 
5993     HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
5994         ISpContainerLexicon *This,
5995         LPCWSTR pszWord,
5996         WORD LangID,
5997         SPPARTOFSPEECH ePartOfSpeech,
5998         PCSPPHONEID pszPronunciation);
5999 
6000     HRESULT (STDMETHODCALLTYPE *GetGeneration)(
6001         ISpContainerLexicon *This,
6002         DWORD *pdwGeneration);
6003 
6004     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
6005         ISpContainerLexicon *This,
6006         DWORD dwFlags,
6007         DWORD *pdwGeneration,
6008         SPWORDLIST *pWordList);
6009 
6010     HRESULT (STDMETHODCALLTYPE *GetWords)(
6011         ISpContainerLexicon *This,
6012         DWORD dwFlags,
6013         DWORD *pdwGeneration,
6014         DWORD *pdwCookie,
6015         SPWORDLIST *pWordList);
6016 
6017     /*** ISpContainerLexicon methods ***/
6018     HRESULT (STDMETHODCALLTYPE *AddLexicon)(
6019         ISpContainerLexicon *This,
6020         ISpLexicon *pAddLexicon,
6021         DWORD dwFlags);
6022 
6023     END_INTERFACE
6024 } ISpContainerLexiconVtbl;
6025 
6026 interface ISpContainerLexicon {
6027     CONST_VTBL ISpContainerLexiconVtbl* lpVtbl;
6028 };
6029 
6030 #ifdef COBJMACROS
6031 #ifndef WIDL_C_INLINE_WRAPPERS
6032 /*** IUnknown methods ***/
6033 #define ISpContainerLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6034 #define ISpContainerLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
6035 #define ISpContainerLexicon_Release(This) (This)->lpVtbl->Release(This)
6036 /*** ISpLexicon methods ***/
6037 #define ISpContainerLexicon_GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList)
6038 #define ISpContainerLexicon_AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
6039 #define ISpContainerLexicon_RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
6040 #define ISpContainerLexicon_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
6041 #define ISpContainerLexicon_GetGenerationChange(This,dwFlags,pdwGeneration,pWordList) (This)->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList)
6042 #define ISpContainerLexicon_GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList)
6043 /*** ISpContainerLexicon methods ***/
6044 #define ISpContainerLexicon_AddLexicon(This,pAddLexicon,dwFlags) (This)->lpVtbl->AddLexicon(This,pAddLexicon,dwFlags)
6045 #else
6046 /*** IUnknown methods ***/
6047 static FORCEINLINE HRESULT ISpContainerLexicon_QueryInterface(ISpContainerLexicon* This,REFIID riid,void **ppvObject) {
6048     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6049 }
6050 static FORCEINLINE ULONG ISpContainerLexicon_AddRef(ISpContainerLexicon* This) {
6051     return This->lpVtbl->AddRef(This);
6052 }
6053 static FORCEINLINE ULONG ISpContainerLexicon_Release(ISpContainerLexicon* This) {
6054     return This->lpVtbl->Release(This);
6055 }
6056 /*** ISpLexicon methods ***/
6057 static FORCEINLINE HRESULT ISpContainerLexicon_GetPronunciations(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,DWORD dwFlags,SPWORDPRONUNCIATIONLIST *pWordPronunciationList) {
6058     return This->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList);
6059 }
6060 static FORCEINLINE HRESULT ISpContainerLexicon_AddPronunciation(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
6061     return This->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
6062 }
6063 static FORCEINLINE HRESULT ISpContainerLexicon_RemovePronunciation(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
6064     return This->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
6065 }
6066 static FORCEINLINE HRESULT ISpContainerLexicon_GetGeneration(ISpContainerLexicon* This,DWORD *pdwGeneration) {
6067     return This->lpVtbl->GetGeneration(This,pdwGeneration);
6068 }
6069 static FORCEINLINE HRESULT ISpContainerLexicon_GetGenerationChange(ISpContainerLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
6070     return This->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList);
6071 }
6072 static FORCEINLINE HRESULT ISpContainerLexicon_GetWords(ISpContainerLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
6073     return This->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList);
6074 }
6075 /*** ISpContainerLexicon methods ***/
6076 static FORCEINLINE HRESULT ISpContainerLexicon_AddLexicon(ISpContainerLexicon* This,ISpLexicon *pAddLexicon,DWORD dwFlags) {
6077     return This->lpVtbl->AddLexicon(This,pAddLexicon,dwFlags);
6078 }
6079 #endif
6080 #endif
6081 
6082 #endif
6083 
6084 
6085 #endif  /* __ISpContainerLexicon_INTERFACE_DEFINED__ */
6086 
6087 typedef struct SPSHORTCUTPAIR {
6088     struct SPSHORTCUTPAIR *pNextSHORTCUTPAIR;
6089     WORD LangID;
6090     SPSHORTCUTTYPE shType;
6091     LPWSTR pszDisplay;
6092     LPWSTR pszSpoken;
6093 } SPSHORTCUTPAIR;
6094 typedef struct SPSHORTCUTPAIRLIST {
6095     ULONG ulSize;
6096     BYTE *pvBuffer;
6097     SPSHORTCUTPAIR *pFirstShortcutPair;
6098 } SPSHORTCUTPAIRLIST;
6099 /*****************************************************************************
6100  * ISpShortcut interface
6101  */
6102 #ifndef __ISpShortcut_INTERFACE_DEFINED__
6103 #define __ISpShortcut_INTERFACE_DEFINED__
6104 
6105 DEFINE_GUID(IID_ISpShortcut, 0x3df681e2, 0xea56, 0x11d9, 0x8b,0xde, 0xf6,0x6b,0xad,0x1e,0x3f,0x3a);
6106 #if defined(__cplusplus) && !defined(CINTERFACE)
6107 MIDL_INTERFACE("3df681e2-ea56-11d9-8bde-f66bad1e3f3a")
6108 ISpShortcut : public IUnknown
6109 {
6110     virtual HRESULT STDMETHODCALLTYPE AddShortcut(
6111         LPCWSTR pszDisplay,
6112         WORD LangID,
6113         LPCWSTR pszSpoken,
6114         SPSHORTCUTTYPE shType) = 0;
6115 
6116     virtual HRESULT STDMETHODCALLTYPE RemoveShortcut(
6117         LPCWSTR pszDisplay,
6118         WORD LangID,
6119         LPCWSTR pszSpoken,
6120         SPSHORTCUTTYPE shType) = 0;
6121 
6122     virtual HRESULT STDMETHODCALLTYPE GetShortcuts(
6123         WORD LangID,
6124         SPSHORTCUTPAIRLIST *pShortcutpairList) = 0;
6125 
6126     virtual HRESULT STDMETHODCALLTYPE GetGeneration(
6127         DWORD *pdwGeneration) = 0;
6128 
6129     virtual HRESULT STDMETHODCALLTYPE GetWordsFromGenerationChange(
6130         DWORD *pdwGeneration,
6131         SPWORDLIST *pWordList) = 0;
6132 
6133     virtual HRESULT STDMETHODCALLTYPE GetWords(
6134         DWORD *pdwGeneration,
6135         DWORD *pdwCookie,
6136         SPWORDLIST *pWordList) = 0;
6137 
6138     virtual HRESULT STDMETHODCALLTYPE GetShortcutsForGeneration(
6139         DWORD *pdwGeneration,
6140         DWORD *pdwCookie,
6141         SPSHORTCUTPAIRLIST *pShortcutpairList) = 0;
6142 
6143     virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
6144         DWORD *pdwGeneration,
6145         SPSHORTCUTPAIRLIST *pShortcutpairList) = 0;
6146 
6147 };
6148 #ifdef __CRT_UUID_DECL
6149 __CRT_UUID_DECL(ISpShortcut, 0x3df681e2, 0xea56, 0x11d9, 0x8b,0xde, 0xf6,0x6b,0xad,0x1e,0x3f,0x3a)
6150 #endif
6151 #else
6152 typedef struct ISpShortcutVtbl {
6153     BEGIN_INTERFACE
6154 
6155     /*** IUnknown methods ***/
6156     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6157         ISpShortcut *This,
6158         REFIID riid,
6159         void **ppvObject);
6160 
6161     ULONG (STDMETHODCALLTYPE *AddRef)(
6162         ISpShortcut *This);
6163 
6164     ULONG (STDMETHODCALLTYPE *Release)(
6165         ISpShortcut *This);
6166 
6167     /*** ISpShortcut methods ***/
6168     HRESULT (STDMETHODCALLTYPE *AddShortcut)(
6169         ISpShortcut *This,
6170         LPCWSTR pszDisplay,
6171         WORD LangID,
6172         LPCWSTR pszSpoken,
6173         SPSHORTCUTTYPE shType);
6174 
6175     HRESULT (STDMETHODCALLTYPE *RemoveShortcut)(
6176         ISpShortcut *This,
6177         LPCWSTR pszDisplay,
6178         WORD LangID,
6179         LPCWSTR pszSpoken,
6180         SPSHORTCUTTYPE shType);
6181 
6182     HRESULT (STDMETHODCALLTYPE *GetShortcuts)(
6183         ISpShortcut *This,
6184         WORD LangID,
6185         SPSHORTCUTPAIRLIST *pShortcutpairList);
6186 
6187     HRESULT (STDMETHODCALLTYPE *GetGeneration)(
6188         ISpShortcut *This,
6189         DWORD *pdwGeneration);
6190 
6191     HRESULT (STDMETHODCALLTYPE *GetWordsFromGenerationChange)(
6192         ISpShortcut *This,
6193         DWORD *pdwGeneration,
6194         SPWORDLIST *pWordList);
6195 
6196     HRESULT (STDMETHODCALLTYPE *GetWords)(
6197         ISpShortcut *This,
6198         DWORD *pdwGeneration,
6199         DWORD *pdwCookie,
6200         SPWORDLIST *pWordList);
6201 
6202     HRESULT (STDMETHODCALLTYPE *GetShortcutsForGeneration)(
6203         ISpShortcut *This,
6204         DWORD *pdwGeneration,
6205         DWORD *pdwCookie,
6206         SPSHORTCUTPAIRLIST *pShortcutpairList);
6207 
6208     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
6209         ISpShortcut *This,
6210         DWORD *pdwGeneration,
6211         SPSHORTCUTPAIRLIST *pShortcutpairList);
6212 
6213     END_INTERFACE
6214 } ISpShortcutVtbl;
6215 
6216 interface ISpShortcut {
6217     CONST_VTBL ISpShortcutVtbl* lpVtbl;
6218 };
6219 
6220 #ifdef COBJMACROS
6221 #ifndef WIDL_C_INLINE_WRAPPERS
6222 /*** IUnknown methods ***/
6223 #define ISpShortcut_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6224 #define ISpShortcut_AddRef(This) (This)->lpVtbl->AddRef(This)
6225 #define ISpShortcut_Release(This) (This)->lpVtbl->Release(This)
6226 /*** ISpShortcut methods ***/
6227 #define ISpShortcut_AddShortcut(This,pszDisplay,LangID,pszSpoken,shType) (This)->lpVtbl->AddShortcut(This,pszDisplay,LangID,pszSpoken,shType)
6228 #define ISpShortcut_RemoveShortcut(This,pszDisplay,LangID,pszSpoken,shType) (This)->lpVtbl->RemoveShortcut(This,pszDisplay,LangID,pszSpoken,shType)
6229 #define ISpShortcut_GetShortcuts(This,LangID,pShortcutpairList) (This)->lpVtbl->GetShortcuts(This,LangID,pShortcutpairList)
6230 #define ISpShortcut_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
6231 #define ISpShortcut_GetWordsFromGenerationChange(This,pdwGeneration,pWordList) (This)->lpVtbl->GetWordsFromGenerationChange(This,pdwGeneration,pWordList)
6232 #define ISpShortcut_GetWords(This,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,pdwGeneration,pdwCookie,pWordList)
6233 #define ISpShortcut_GetShortcutsForGeneration(This,pdwGeneration,pdwCookie,pShortcutpairList) (This)->lpVtbl->GetShortcutsForGeneration(This,pdwGeneration,pdwCookie,pShortcutpairList)
6234 #define ISpShortcut_GetGenerationChange(This,pdwGeneration,pShortcutpairList) (This)->lpVtbl->GetGenerationChange(This,pdwGeneration,pShortcutpairList)
6235 #else
6236 /*** IUnknown methods ***/
6237 static FORCEINLINE HRESULT ISpShortcut_QueryInterface(ISpShortcut* This,REFIID riid,void **ppvObject) {
6238     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6239 }
6240 static FORCEINLINE ULONG ISpShortcut_AddRef(ISpShortcut* This) {
6241     return This->lpVtbl->AddRef(This);
6242 }
6243 static FORCEINLINE ULONG ISpShortcut_Release(ISpShortcut* This) {
6244     return This->lpVtbl->Release(This);
6245 }
6246 /*** ISpShortcut methods ***/
6247 static FORCEINLINE HRESULT ISpShortcut_AddShortcut(ISpShortcut* This,LPCWSTR pszDisplay,WORD LangID,LPCWSTR pszSpoken,SPSHORTCUTTYPE shType) {
6248     return This->lpVtbl->AddShortcut(This,pszDisplay,LangID,pszSpoken,shType);
6249 }
6250 static FORCEINLINE HRESULT ISpShortcut_RemoveShortcut(ISpShortcut* This,LPCWSTR pszDisplay,WORD LangID,LPCWSTR pszSpoken,SPSHORTCUTTYPE shType) {
6251     return This->lpVtbl->RemoveShortcut(This,pszDisplay,LangID,pszSpoken,shType);
6252 }
6253 static FORCEINLINE HRESULT ISpShortcut_GetShortcuts(ISpShortcut* This,WORD LangID,SPSHORTCUTPAIRLIST *pShortcutpairList) {
6254     return This->lpVtbl->GetShortcuts(This,LangID,pShortcutpairList);
6255 }
6256 static FORCEINLINE HRESULT ISpShortcut_GetGeneration(ISpShortcut* This,DWORD *pdwGeneration) {
6257     return This->lpVtbl->GetGeneration(This,pdwGeneration);
6258 }
6259 static FORCEINLINE HRESULT ISpShortcut_GetWordsFromGenerationChange(ISpShortcut* This,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
6260     return This->lpVtbl->GetWordsFromGenerationChange(This,pdwGeneration,pWordList);
6261 }
6262 static FORCEINLINE HRESULT ISpShortcut_GetWords(ISpShortcut* This,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
6263     return This->lpVtbl->GetWords(This,pdwGeneration,pdwCookie,pWordList);
6264 }
6265 static FORCEINLINE HRESULT ISpShortcut_GetShortcutsForGeneration(ISpShortcut* This,DWORD *pdwGeneration,DWORD *pdwCookie,SPSHORTCUTPAIRLIST *pShortcutpairList) {
6266     return This->lpVtbl->GetShortcutsForGeneration(This,pdwGeneration,pdwCookie,pShortcutpairList);
6267 }
6268 static FORCEINLINE HRESULT ISpShortcut_GetGenerationChange(ISpShortcut* This,DWORD *pdwGeneration,SPSHORTCUTPAIRLIST *pShortcutpairList) {
6269     return This->lpVtbl->GetGenerationChange(This,pdwGeneration,pShortcutpairList);
6270 }
6271 #endif
6272 #endif
6273 
6274 #endif
6275 
6276 
6277 #endif  /* __ISpShortcut_INTERFACE_DEFINED__ */
6278 
6279 /*****************************************************************************
6280  * ISpPhoneConverter interface
6281  */
6282 #ifndef __ISpPhoneConverter_INTERFACE_DEFINED__
6283 #define __ISpPhoneConverter_INTERFACE_DEFINED__
6284 
6285 DEFINE_GUID(IID_ISpPhoneConverter, 0x8445c581, 0x0cac, 0x4a38, 0xab,0xfe, 0x9b,0x2c,0xe2,0x82,0x64,0x55);
6286 #if defined(__cplusplus) && !defined(CINTERFACE)
6287 MIDL_INTERFACE("8445c581-0cac-4a38-abfe-9b2ce2826455")
6288 ISpPhoneConverter : public ISpObjectWithToken
6289 {
6290     virtual HRESULT STDMETHODCALLTYPE PhoneToId(
6291         LPCWSTR pszPhone,
6292         SPPHONEID *pId) = 0;
6293 
6294     virtual HRESULT STDMETHODCALLTYPE IdToPhone(
6295         PCSPPHONEID pId,
6296         WCHAR *pszPhone) = 0;
6297 
6298 };
6299 #ifdef __CRT_UUID_DECL
6300 __CRT_UUID_DECL(ISpPhoneConverter, 0x8445c581, 0x0cac, 0x4a38, 0xab,0xfe, 0x9b,0x2c,0xe2,0x82,0x64,0x55)
6301 #endif
6302 #else
6303 typedef struct ISpPhoneConverterVtbl {
6304     BEGIN_INTERFACE
6305 
6306     /*** IUnknown methods ***/
6307     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6308         ISpPhoneConverter *This,
6309         REFIID riid,
6310         void **ppvObject);
6311 
6312     ULONG (STDMETHODCALLTYPE *AddRef)(
6313         ISpPhoneConverter *This);
6314 
6315     ULONG (STDMETHODCALLTYPE *Release)(
6316         ISpPhoneConverter *This);
6317 
6318     /*** ISpObjectWithToken methods ***/
6319     HRESULT (STDMETHODCALLTYPE *SetObjectToken)(
6320         ISpPhoneConverter *This,
6321         ISpObjectToken *pToken);
6322 
6323     HRESULT (STDMETHODCALLTYPE *GetObjectToken)(
6324         ISpPhoneConverter *This,
6325         ISpObjectToken **ppToken);
6326 
6327     /*** ISpPhoneConverter methods ***/
6328     HRESULT (STDMETHODCALLTYPE *PhoneToId)(
6329         ISpPhoneConverter *This,
6330         LPCWSTR pszPhone,
6331         SPPHONEID *pId);
6332 
6333     HRESULT (STDMETHODCALLTYPE *IdToPhone)(
6334         ISpPhoneConverter *This,
6335         PCSPPHONEID pId,
6336         WCHAR *pszPhone);
6337 
6338     END_INTERFACE
6339 } ISpPhoneConverterVtbl;
6340 
6341 interface ISpPhoneConverter {
6342     CONST_VTBL ISpPhoneConverterVtbl* lpVtbl;
6343 };
6344 
6345 #ifdef COBJMACROS
6346 #ifndef WIDL_C_INLINE_WRAPPERS
6347 /*** IUnknown methods ***/
6348 #define ISpPhoneConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6349 #define ISpPhoneConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
6350 #define ISpPhoneConverter_Release(This) (This)->lpVtbl->Release(This)
6351 /*** ISpObjectWithToken methods ***/
6352 #define ISpPhoneConverter_SetObjectToken(This,pToken) (This)->lpVtbl->SetObjectToken(This,pToken)
6353 #define ISpPhoneConverter_GetObjectToken(This,ppToken) (This)->lpVtbl->GetObjectToken(This,ppToken)
6354 /*** ISpPhoneConverter methods ***/
6355 #define ISpPhoneConverter_PhoneToId(This,pszPhone,pId) (This)->lpVtbl->PhoneToId(This,pszPhone,pId)
6356 #define ISpPhoneConverter_IdToPhone(This,pId,pszPhone) (This)->lpVtbl->IdToPhone(This,pId,pszPhone)
6357 #else
6358 /*** IUnknown methods ***/
6359 static FORCEINLINE HRESULT ISpPhoneConverter_QueryInterface(ISpPhoneConverter* This,REFIID riid,void **ppvObject) {
6360     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6361 }
6362 static FORCEINLINE ULONG ISpPhoneConverter_AddRef(ISpPhoneConverter* This) {
6363     return This->lpVtbl->AddRef(This);
6364 }
6365 static FORCEINLINE ULONG ISpPhoneConverter_Release(ISpPhoneConverter* This) {
6366     return This->lpVtbl->Release(This);
6367 }
6368 /*** ISpObjectWithToken methods ***/
6369 static FORCEINLINE HRESULT ISpPhoneConverter_SetObjectToken(ISpPhoneConverter* This,ISpObjectToken *pToken) {
6370     return This->lpVtbl->SetObjectToken(This,pToken);
6371 }
6372 static FORCEINLINE HRESULT ISpPhoneConverter_GetObjectToken(ISpPhoneConverter* This,ISpObjectToken **ppToken) {
6373     return This->lpVtbl->GetObjectToken(This,ppToken);
6374 }
6375 /*** ISpPhoneConverter methods ***/
6376 static FORCEINLINE HRESULT ISpPhoneConverter_PhoneToId(ISpPhoneConverter* This,LPCWSTR pszPhone,SPPHONEID *pId) {
6377     return This->lpVtbl->PhoneToId(This,pszPhone,pId);
6378 }
6379 static FORCEINLINE HRESULT ISpPhoneConverter_IdToPhone(ISpPhoneConverter* This,PCSPPHONEID pId,WCHAR *pszPhone) {
6380     return This->lpVtbl->IdToPhone(This,pId,pszPhone);
6381 }
6382 #endif
6383 #endif
6384 
6385 #endif
6386 
6387 
6388 #endif  /* __ISpPhoneConverter_INTERFACE_DEFINED__ */
6389 
6390 /*****************************************************************************
6391  * ISpPhoneticAlphabetConverter interface
6392  */
6393 #ifndef __ISpPhoneticAlphabetConverter_INTERFACE_DEFINED__
6394 #define __ISpPhoneticAlphabetConverter_INTERFACE_DEFINED__
6395 
6396 DEFINE_GUID(IID_ISpPhoneticAlphabetConverter, 0x133adcd4, 0x19b4, 0x4020, 0x9f,0xdc, 0x84,0x2e,0x78,0x25,0x3b,0x17);
6397 #if defined(__cplusplus) && !defined(CINTERFACE)
6398 MIDL_INTERFACE("133adcd4-19b4-4020-9fdc-842e78253b17")
6399 ISpPhoneticAlphabetConverter : public IUnknown
6400 {
6401     virtual HRESULT STDMETHODCALLTYPE GetLangId(
6402         WORD *pLangID) = 0;
6403 
6404     virtual HRESULT STDMETHODCALLTYPE SetLangId(
6405         WORD LangID) = 0;
6406 
6407     virtual HRESULT STDMETHODCALLTYPE SAPI2UPS(
6408         const SPPHONEID *pszSAPIId,
6409         SPPHONEID *pszUPSId,
6410         DWORD cMaxLength) = 0;
6411 
6412     virtual HRESULT STDMETHODCALLTYPE UPS2SAPI(
6413         const SPPHONEID *pszUPSId,
6414         SPPHONEID *pszSAPIId,
6415         DWORD cMaxLength) = 0;
6416 
6417     virtual HRESULT STDMETHODCALLTYPE GetMaxConvertLength(
6418         DWORD cSrcLength,
6419         WINBOOL bSAPI2UPS,
6420         DWORD *pcMaxDestLength) = 0;
6421 
6422 };
6423 #ifdef __CRT_UUID_DECL
6424 __CRT_UUID_DECL(ISpPhoneticAlphabetConverter, 0x133adcd4, 0x19b4, 0x4020, 0x9f,0xdc, 0x84,0x2e,0x78,0x25,0x3b,0x17)
6425 #endif
6426 #else
6427 typedef struct ISpPhoneticAlphabetConverterVtbl {
6428     BEGIN_INTERFACE
6429 
6430     /*** IUnknown methods ***/
6431     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6432         ISpPhoneticAlphabetConverter *This,
6433         REFIID riid,
6434         void **ppvObject);
6435 
6436     ULONG (STDMETHODCALLTYPE *AddRef)(
6437         ISpPhoneticAlphabetConverter *This);
6438 
6439     ULONG (STDMETHODCALLTYPE *Release)(
6440         ISpPhoneticAlphabetConverter *This);
6441 
6442     /*** ISpPhoneticAlphabetConverter methods ***/
6443     HRESULT (STDMETHODCALLTYPE *GetLangId)(
6444         ISpPhoneticAlphabetConverter *This,
6445         WORD *pLangID);
6446 
6447     HRESULT (STDMETHODCALLTYPE *SetLangId)(
6448         ISpPhoneticAlphabetConverter *This,
6449         WORD LangID);
6450 
6451     HRESULT (STDMETHODCALLTYPE *SAPI2UPS)(
6452         ISpPhoneticAlphabetConverter *This,
6453         const SPPHONEID *pszSAPIId,
6454         SPPHONEID *pszUPSId,
6455         DWORD cMaxLength);
6456 
6457     HRESULT (STDMETHODCALLTYPE *UPS2SAPI)(
6458         ISpPhoneticAlphabetConverter *This,
6459         const SPPHONEID *pszUPSId,
6460         SPPHONEID *pszSAPIId,
6461         DWORD cMaxLength);
6462 
6463     HRESULT (STDMETHODCALLTYPE *GetMaxConvertLength)(
6464         ISpPhoneticAlphabetConverter *This,
6465         DWORD cSrcLength,
6466         WINBOOL bSAPI2UPS,
6467         DWORD *pcMaxDestLength);
6468 
6469     END_INTERFACE
6470 } ISpPhoneticAlphabetConverterVtbl;
6471 
6472 interface ISpPhoneticAlphabetConverter {
6473     CONST_VTBL ISpPhoneticAlphabetConverterVtbl* lpVtbl;
6474 };
6475 
6476 #ifdef COBJMACROS
6477 #ifndef WIDL_C_INLINE_WRAPPERS
6478 /*** IUnknown methods ***/
6479 #define ISpPhoneticAlphabetConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6480 #define ISpPhoneticAlphabetConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
6481 #define ISpPhoneticAlphabetConverter_Release(This) (This)->lpVtbl->Release(This)
6482 /*** ISpPhoneticAlphabetConverter methods ***/
6483 #define ISpPhoneticAlphabetConverter_GetLangId(This,pLangID) (This)->lpVtbl->GetLangId(This,pLangID)
6484 #define ISpPhoneticAlphabetConverter_SetLangId(This,LangID) (This)->lpVtbl->SetLangId(This,LangID)
6485 #define ISpPhoneticAlphabetConverter_SAPI2UPS(This,pszSAPIId,pszUPSId,cMaxLength) (This)->lpVtbl->SAPI2UPS(This,pszSAPIId,pszUPSId,cMaxLength)
6486 #define ISpPhoneticAlphabetConverter_UPS2SAPI(This,pszUPSId,pszSAPIId,cMaxLength) (This)->lpVtbl->UPS2SAPI(This,pszUPSId,pszSAPIId,cMaxLength)
6487 #define ISpPhoneticAlphabetConverter_GetMaxConvertLength(This,cSrcLength,bSAPI2UPS,pcMaxDestLength) (This)->lpVtbl->GetMaxConvertLength(This,cSrcLength,bSAPI2UPS,pcMaxDestLength)
6488 #else
6489 /*** IUnknown methods ***/
6490 static FORCEINLINE HRESULT ISpPhoneticAlphabetConverter_QueryInterface(ISpPhoneticAlphabetConverter* This,REFIID riid,void **ppvObject) {
6491     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6492 }
6493 static FORCEINLINE ULONG ISpPhoneticAlphabetConverter_AddRef(ISpPhoneticAlphabetConverter* This) {
6494     return This->lpVtbl->AddRef(This);
6495 }
6496 static FORCEINLINE ULONG ISpPhoneticAlphabetConverter_Release(ISpPhoneticAlphabetConverter* This) {
6497     return This->lpVtbl->Release(This);
6498 }
6499 /*** ISpPhoneticAlphabetConverter methods ***/
6500 static FORCEINLINE HRESULT ISpPhoneticAlphabetConverter_GetLangId(ISpPhoneticAlphabetConverter* This,WORD *pLangID) {
6501     return This->lpVtbl->GetLangId(This,pLangID);
6502 }
6503 static FORCEINLINE HRESULT ISpPhoneticAlphabetConverter_SetLangId(ISpPhoneticAlphabetConverter* This,WORD LangID) {
6504     return This->lpVtbl->SetLangId(This,LangID);
6505 }
6506 static FORCEINLINE HRESULT ISpPhoneticAlphabetConverter_SAPI2UPS(ISpPhoneticAlphabetConverter* This,const SPPHONEID *pszSAPIId,SPPHONEID *pszUPSId,DWORD cMaxLength) {
6507     return This->lpVtbl->SAPI2UPS(This,pszSAPIId,pszUPSId,cMaxLength);
6508 }
6509 static FORCEINLINE HRESULT ISpPhoneticAlphabetConverter_UPS2SAPI(ISpPhoneticAlphabetConverter* This,const SPPHONEID *pszUPSId,SPPHONEID *pszSAPIId,DWORD cMaxLength) {
6510     return This->lpVtbl->UPS2SAPI(This,pszUPSId,pszSAPIId,cMaxLength);
6511 }
6512 static FORCEINLINE HRESULT ISpPhoneticAlphabetConverter_GetMaxConvertLength(ISpPhoneticAlphabetConverter* This,DWORD cSrcLength,WINBOOL bSAPI2UPS,DWORD *pcMaxDestLength) {
6513     return This->lpVtbl->GetMaxConvertLength(This,cSrcLength,bSAPI2UPS,pcMaxDestLength);
6514 }
6515 #endif
6516 #endif
6517 
6518 #endif
6519 
6520 
6521 #endif  /* __ISpPhoneticAlphabetConverter_INTERFACE_DEFINED__ */
6522 
6523 /*****************************************************************************
6524  * ISpPhoneticAlphabetSelection interface
6525  */
6526 #ifndef __ISpPhoneticAlphabetSelection_INTERFACE_DEFINED__
6527 #define __ISpPhoneticAlphabetSelection_INTERFACE_DEFINED__
6528 
6529 DEFINE_GUID(IID_ISpPhoneticAlphabetSelection, 0xb2745efd, 0x42ce, 0x48ca, 0x81,0xf1, 0xa9,0x6e,0x02,0x53,0x8a,0x90);
6530 #if defined(__cplusplus) && !defined(CINTERFACE)
6531 MIDL_INTERFACE("b2745efd-42ce-48ca-81f1-a96e02538a90")
6532 ISpPhoneticAlphabetSelection : public IUnknown
6533 {
6534     virtual HRESULT STDMETHODCALLTYPE IsAlphabetUPS(
6535         WINBOOL *pfIsUPS) = 0;
6536 
6537     virtual HRESULT STDMETHODCALLTYPE SetAlphabetToUPS(
6538         WINBOOL fForceUPS) = 0;
6539 
6540 };
6541 #ifdef __CRT_UUID_DECL
6542 __CRT_UUID_DECL(ISpPhoneticAlphabetSelection, 0xb2745efd, 0x42ce, 0x48ca, 0x81,0xf1, 0xa9,0x6e,0x02,0x53,0x8a,0x90)
6543 #endif
6544 #else
6545 typedef struct ISpPhoneticAlphabetSelectionVtbl {
6546     BEGIN_INTERFACE
6547 
6548     /*** IUnknown methods ***/
6549     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6550         ISpPhoneticAlphabetSelection *This,
6551         REFIID riid,
6552         void **ppvObject);
6553 
6554     ULONG (STDMETHODCALLTYPE *AddRef)(
6555         ISpPhoneticAlphabetSelection *This);
6556 
6557     ULONG (STDMETHODCALLTYPE *Release)(
6558         ISpPhoneticAlphabetSelection *This);
6559 
6560     /*** ISpPhoneticAlphabetSelection methods ***/
6561     HRESULT (STDMETHODCALLTYPE *IsAlphabetUPS)(
6562         ISpPhoneticAlphabetSelection *This,
6563         WINBOOL *pfIsUPS);
6564 
6565     HRESULT (STDMETHODCALLTYPE *SetAlphabetToUPS)(
6566         ISpPhoneticAlphabetSelection *This,
6567         WINBOOL fForceUPS);
6568 
6569     END_INTERFACE
6570 } ISpPhoneticAlphabetSelectionVtbl;
6571 
6572 interface ISpPhoneticAlphabetSelection {
6573     CONST_VTBL ISpPhoneticAlphabetSelectionVtbl* lpVtbl;
6574 };
6575 
6576 #ifdef COBJMACROS
6577 #ifndef WIDL_C_INLINE_WRAPPERS
6578 /*** IUnknown methods ***/
6579 #define ISpPhoneticAlphabetSelection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6580 #define ISpPhoneticAlphabetSelection_AddRef(This) (This)->lpVtbl->AddRef(This)
6581 #define ISpPhoneticAlphabetSelection_Release(This) (This)->lpVtbl->Release(This)
6582 /*** ISpPhoneticAlphabetSelection methods ***/
6583 #define ISpPhoneticAlphabetSelection_IsAlphabetUPS(This,pfIsUPS) (This)->lpVtbl->IsAlphabetUPS(This,pfIsUPS)
6584 #define ISpPhoneticAlphabetSelection_SetAlphabetToUPS(This,fForceUPS) (This)->lpVtbl->SetAlphabetToUPS(This,fForceUPS)
6585 #else
6586 /*** IUnknown methods ***/
6587 static FORCEINLINE HRESULT ISpPhoneticAlphabetSelection_QueryInterface(ISpPhoneticAlphabetSelection* This,REFIID riid,void **ppvObject) {
6588     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6589 }
6590 static FORCEINLINE ULONG ISpPhoneticAlphabetSelection_AddRef(ISpPhoneticAlphabetSelection* This) {
6591     return This->lpVtbl->AddRef(This);
6592 }
6593 static FORCEINLINE ULONG ISpPhoneticAlphabetSelection_Release(ISpPhoneticAlphabetSelection* This) {
6594     return This->lpVtbl->Release(This);
6595 }
6596 /*** ISpPhoneticAlphabetSelection methods ***/
6597 static FORCEINLINE HRESULT ISpPhoneticAlphabetSelection_IsAlphabetUPS(ISpPhoneticAlphabetSelection* This,WINBOOL *pfIsUPS) {
6598     return This->lpVtbl->IsAlphabetUPS(This,pfIsUPS);
6599 }
6600 static FORCEINLINE HRESULT ISpPhoneticAlphabetSelection_SetAlphabetToUPS(ISpPhoneticAlphabetSelection* This,WINBOOL fForceUPS) {
6601     return This->lpVtbl->SetAlphabetToUPS(This,fForceUPS);
6602 }
6603 #endif
6604 #endif
6605 
6606 #endif
6607 
6608 
6609 #endif  /* __ISpPhoneticAlphabetSelection_INTERFACE_DEFINED__ */
6610 
6611 typedef struct SPVPITCH {
6612     LONG MiddleAdj;
6613     LONG RangeAdj;
6614 } SPVPITCH;
6615 typedef struct SPVCONTEXT {
6616     LPCWSTR pCategory;
6617     LPCWSTR pBefore;
6618     LPCWSTR pAfter;
6619 } SPVCONTEXT;
6620 typedef struct SPVSTATE {
6621     SPVACTIONS eAction;
6622     WORD LangID;
6623     WORD wReserved;
6624     LONG EmphAdj;
6625     LONG RateAdj;
6626     ULONG Volume;
6627     SPVPITCH PitchAdj;
6628     ULONG SilenceMSecs;
6629     SPPHONEID *pPhoneIds;
6630     SPPARTOFSPEECH ePartOfSpeech;
6631     SPVCONTEXT Context;
6632 } SPVSTATE;
6633 typedef struct SPVOICESTATUS {
6634     ULONG ulCurrentStream;
6635     ULONG ulLastStreamQueued;
6636     HRESULT hrLastResult;
6637     DWORD dwRunningState;
6638     ULONG ulInputWordPos;
6639     ULONG ulInputWordLen;
6640     ULONG ulInputSentPos;
6641     ULONG ulInputSentLen;
6642     LONG lBookmarkId;
6643     SPPHONEID PhonemeId;
6644     SPVISEMES VisemeId;
6645     DWORD dwReserved1;
6646     DWORD dwReserved2;
6647 } SPVOICESTATUS;
6648 typedef enum SPEAKFLAGS {
6649     SPF_DEFAULT = 0,
6650     SPF_ASYNC = 1,
6651     SPF_PURGEBEFORESPEAK = 2,
6652     SPF_IS_FILENAME = 4,
6653     SPF_IS_XML = 8,
6654     SPF_IS_NOT_XML = 0x10,
6655     SPF_PERSIST_XML = 0x20,
6656     SPF_NLP_SPEAK_PUNC = 0x40,
6657     SPF_PARSE_SAPI = 0x80,
6658     SPF_PARSE_SSML = 0x100,
6659     SPF_PARSE_AUTODETECT = 0,
6660     SPF_NLP_MASK = SPF_NLP_SPEAK_PUNC,
6661     SPF_PARSE_MASK = SPF_PARSE_SAPI | SPF_PARSE_SSML,
6662     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,
6663     SPF_UNUSED_FLAGS = ~SPF_VOICE_MASK
6664 } SPEAKFLAGS;
6665 /*****************************************************************************
6666  * ISpVoice interface
6667  */
6668 #ifndef __ISpVoice_INTERFACE_DEFINED__
6669 #define __ISpVoice_INTERFACE_DEFINED__
6670 
6671 DEFINE_GUID(IID_ISpVoice, 0x6c44df74, 0x72b9, 0x4992, 0xa1,0xec, 0xef,0x99,0x6e,0x04,0x22,0xd4);
6672 #if defined(__cplusplus) && !defined(CINTERFACE)
6673 MIDL_INTERFACE("6c44df74-72b9-4992-a1ec-ef996e0422d4")
6674 ISpVoice : public ISpEventSource
6675 {
6676     virtual HRESULT STDMETHODCALLTYPE SetOutput(
6677         IUnknown *pUnkOutput,
6678         WINBOOL fAllowFormatChanges) = 0;
6679 
6680     virtual HRESULT STDMETHODCALLTYPE GetOutputObjectToken(
6681         ISpObjectToken **ppObjectToken) = 0;
6682 
6683     virtual HRESULT STDMETHODCALLTYPE GetOutputStream(
6684         ISpStreamFormat **ppStream) = 0;
6685 
6686     virtual HRESULT STDMETHODCALLTYPE Pause(
6687         ) = 0;
6688 
6689     virtual HRESULT STDMETHODCALLTYPE Resume(
6690         ) = 0;
6691 
6692     virtual HRESULT STDMETHODCALLTYPE SetVoice(
6693         ISpObjectToken *pToken) = 0;
6694 
6695     virtual HRESULT STDMETHODCALLTYPE GetVoice(
6696         ISpObjectToken **ppToken) = 0;
6697 
6698     virtual HRESULT STDMETHODCALLTYPE Speak(
6699         LPCWSTR pwcs,
6700         DWORD dwFlags,
6701         ULONG *pulStreamNumber) = 0;
6702 
6703     virtual HRESULT STDMETHODCALLTYPE SpeakStream(
6704         IStream *pStream,
6705         DWORD dwFlags,
6706         ULONG *pulStreamNumber) = 0;
6707 
6708     virtual HRESULT STDMETHODCALLTYPE GetStatus(
6709         SPVOICESTATUS *pStatus,
6710         LPWSTR *ppszLastBookmark) = 0;
6711 
6712     virtual HRESULT STDMETHODCALLTYPE Skip(
6713         LPCWSTR pItemType,
6714         LONG lNumItems,
6715         ULONG *pulNumSkipped) = 0;
6716 
6717     virtual HRESULT STDMETHODCALLTYPE SetPriority(
6718         SPVPRIORITY ePriority) = 0;
6719 
6720     virtual HRESULT STDMETHODCALLTYPE GetPriority(
6721         SPVPRIORITY *pePriority) = 0;
6722 
6723     virtual HRESULT STDMETHODCALLTYPE SetAlertBoundary(
6724         SPEVENTENUM eBoundary) = 0;
6725 
6726     virtual HRESULT STDMETHODCALLTYPE GetAlertBoundary(
6727         SPEVENTENUM *peBoundary) = 0;
6728 
6729     virtual HRESULT STDMETHODCALLTYPE SetRate(
6730         LONG RateAdjust) = 0;
6731 
6732     virtual HRESULT STDMETHODCALLTYPE GetRate(
6733         LONG *pRateAdjust) = 0;
6734 
6735     virtual HRESULT STDMETHODCALLTYPE SetVolume(
6736         USHORT usVolume) = 0;
6737 
6738     virtual HRESULT STDMETHODCALLTYPE GetVolume(
6739         USHORT *pusVolume) = 0;
6740 
6741     virtual HRESULT STDMETHODCALLTYPE WaitUntilDone(
6742         ULONG msTimeout) = 0;
6743 
6744     virtual HRESULT STDMETHODCALLTYPE SetSyncSpeakTimeout(
6745         ULONG msTimeout) = 0;
6746 
6747     virtual HRESULT STDMETHODCALLTYPE GetSyncSpeakTimeout(
6748         ULONG *pmsTimeout) = 0;
6749 
6750     virtual HANDLE STDMETHODCALLTYPE SpeakCompleteEvent(
6751         ) = 0;
6752 
6753     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
6754         LPCWSTR pszTypeOfUI,
6755         void *pvExtraData,
6756         ULONG cbExtraData,
6757         WINBOOL *pfSupported) = 0;
6758 
6759     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
6760         HWND hwndParent,
6761         LPCWSTR pszTitle,
6762         LPCWSTR pszTypeOfUI,
6763         void *pvExtraData,
6764         ULONG cbExtraData) = 0;
6765 
6766 };
6767 #ifdef __CRT_UUID_DECL
6768 __CRT_UUID_DECL(ISpVoice, 0x6c44df74, 0x72b9, 0x4992, 0xa1,0xec, 0xef,0x99,0x6e,0x04,0x22,0xd4)
6769 #endif
6770 #else
6771 typedef struct ISpVoiceVtbl {
6772     BEGIN_INTERFACE
6773 
6774     /*** IUnknown methods ***/
6775     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6776         ISpVoice *This,
6777         REFIID riid,
6778         void **ppvObject);
6779 
6780     ULONG (STDMETHODCALLTYPE *AddRef)(
6781         ISpVoice *This);
6782 
6783     ULONG (STDMETHODCALLTYPE *Release)(
6784         ISpVoice *This);
6785 
6786     /*** ISpNotifySource methods ***/
6787     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
6788         ISpVoice *This,
6789         ISpNotifySink *pNotifySink);
6790 
6791     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
6792         ISpVoice *This,
6793         HWND hWnd,
6794         UINT Msg,
6795         WPARAM wParam,
6796         LPARAM lParam);
6797 
6798     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
6799         ISpVoice *This,
6800         SPNOTIFYCALLBACK *pfnCallback,
6801         WPARAM wParam,
6802         LPARAM lParam);
6803 
6804     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
6805         ISpVoice *This,
6806         ISpNotifyCallback *pSpCallback,
6807         WPARAM wParam,
6808         LPARAM lParam);
6809 
6810     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
6811         ISpVoice *This);
6812 
6813     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
6814         ISpVoice *This,
6815         DWORD dwMilliseconds);
6816 
6817     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
6818         ISpVoice *This);
6819 
6820     /*** ISpEventSource methods ***/
6821     HRESULT (STDMETHODCALLTYPE *SetInterest)(
6822         ISpVoice *This,
6823         ULONGLONG ullEventInterest,
6824         ULONGLONG ullQueuedInterest);
6825 
6826     HRESULT (STDMETHODCALLTYPE *GetEvents)(
6827         ISpVoice *This,
6828         ULONG ulCount,
6829         SPEVENT *pEventArray,
6830         ULONG *pulFetched);
6831 
6832     HRESULT (STDMETHODCALLTYPE *GetInfo)(
6833         ISpVoice *This,
6834         SPEVENTSOURCEINFO *pInfo);
6835 
6836     /*** ISpVoice methods ***/
6837     HRESULT (STDMETHODCALLTYPE *SetOutput)(
6838         ISpVoice *This,
6839         IUnknown *pUnkOutput,
6840         WINBOOL fAllowFormatChanges);
6841 
6842     HRESULT (STDMETHODCALLTYPE *GetOutputObjectToken)(
6843         ISpVoice *This,
6844         ISpObjectToken **ppObjectToken);
6845 
6846     HRESULT (STDMETHODCALLTYPE *GetOutputStream)(
6847         ISpVoice *This,
6848         ISpStreamFormat **ppStream);
6849 
6850     HRESULT (STDMETHODCALLTYPE *Pause)(
6851         ISpVoice *This);
6852 
6853     HRESULT (STDMETHODCALLTYPE *Resume)(
6854         ISpVoice *This);
6855 
6856     HRESULT (STDMETHODCALLTYPE *SetVoice)(
6857         ISpVoice *This,
6858         ISpObjectToken *pToken);
6859 
6860     HRESULT (STDMETHODCALLTYPE *GetVoice)(
6861         ISpVoice *This,
6862         ISpObjectToken **ppToken);
6863 
6864     HRESULT (STDMETHODCALLTYPE *Speak)(
6865         ISpVoice *This,
6866         LPCWSTR pwcs,
6867         DWORD dwFlags,
6868         ULONG *pulStreamNumber);
6869 
6870     HRESULT (STDMETHODCALLTYPE *SpeakStream)(
6871         ISpVoice *This,
6872         IStream *pStream,
6873         DWORD dwFlags,
6874         ULONG *pulStreamNumber);
6875 
6876     HRESULT (STDMETHODCALLTYPE *GetStatus)(
6877         ISpVoice *This,
6878         SPVOICESTATUS *pStatus,
6879         LPWSTR *ppszLastBookmark);
6880 
6881     HRESULT (STDMETHODCALLTYPE *Skip)(
6882         ISpVoice *This,
6883         LPCWSTR pItemType,
6884         LONG lNumItems,
6885         ULONG *pulNumSkipped);
6886 
6887     HRESULT (STDMETHODCALLTYPE *SetPriority)(
6888         ISpVoice *This,
6889         SPVPRIORITY ePriority);
6890 
6891     HRESULT (STDMETHODCALLTYPE *GetPriority)(
6892         ISpVoice *This,
6893         SPVPRIORITY *pePriority);
6894 
6895     HRESULT (STDMETHODCALLTYPE *SetAlertBoundary)(
6896         ISpVoice *This,
6897         SPEVENTENUM eBoundary);
6898 
6899     HRESULT (STDMETHODCALLTYPE *GetAlertBoundary)(
6900         ISpVoice *This,
6901         SPEVENTENUM *peBoundary);
6902 
6903     HRESULT (STDMETHODCALLTYPE *SetRate)(
6904         ISpVoice *This,
6905         LONG RateAdjust);
6906 
6907     HRESULT (STDMETHODCALLTYPE *GetRate)(
6908         ISpVoice *This,
6909         LONG *pRateAdjust);
6910 
6911     HRESULT (STDMETHODCALLTYPE *SetVolume)(
6912         ISpVoice *This,
6913         USHORT usVolume);
6914 
6915     HRESULT (STDMETHODCALLTYPE *GetVolume)(
6916         ISpVoice *This,
6917         USHORT *pusVolume);
6918 
6919     HRESULT (STDMETHODCALLTYPE *WaitUntilDone)(
6920         ISpVoice *This,
6921         ULONG msTimeout);
6922 
6923     HRESULT (STDMETHODCALLTYPE *SetSyncSpeakTimeout)(
6924         ISpVoice *This,
6925         ULONG msTimeout);
6926 
6927     HRESULT (STDMETHODCALLTYPE *GetSyncSpeakTimeout)(
6928         ISpVoice *This,
6929         ULONG *pmsTimeout);
6930 
6931     HANDLE (STDMETHODCALLTYPE *SpeakCompleteEvent)(
6932         ISpVoice *This);
6933 
6934     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
6935         ISpVoice *This,
6936         LPCWSTR pszTypeOfUI,
6937         void *pvExtraData,
6938         ULONG cbExtraData,
6939         WINBOOL *pfSupported);
6940 
6941     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
6942         ISpVoice *This,
6943         HWND hwndParent,
6944         LPCWSTR pszTitle,
6945         LPCWSTR pszTypeOfUI,
6946         void *pvExtraData,
6947         ULONG cbExtraData);
6948 
6949     END_INTERFACE
6950 } ISpVoiceVtbl;
6951 
6952 interface ISpVoice {
6953     CONST_VTBL ISpVoiceVtbl* lpVtbl;
6954 };
6955 
6956 #ifdef COBJMACROS
6957 #ifndef WIDL_C_INLINE_WRAPPERS
6958 /*** IUnknown methods ***/
6959 #define ISpVoice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6960 #define ISpVoice_AddRef(This) (This)->lpVtbl->AddRef(This)
6961 #define ISpVoice_Release(This) (This)->lpVtbl->Release(This)
6962 /*** ISpNotifySource methods ***/
6963 #define ISpVoice_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
6964 #define ISpVoice_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
6965 #define ISpVoice_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
6966 #define ISpVoice_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
6967 #define ISpVoice_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
6968 #define ISpVoice_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
6969 #define ISpVoice_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
6970 /*** ISpEventSource methods ***/
6971 #define ISpVoice_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
6972 #define ISpVoice_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
6973 #define ISpVoice_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
6974 /*** ISpVoice methods ***/
6975 #define ISpVoice_SetOutput(This,pUnkOutput,fAllowFormatChanges) (This)->lpVtbl->SetOutput(This,pUnkOutput,fAllowFormatChanges)
6976 #define ISpVoice_GetOutputObjectToken(This,ppObjectToken) (This)->lpVtbl->GetOutputObjectToken(This,ppObjectToken)
6977 #define ISpVoice_GetOutputStream(This,ppStream) (This)->lpVtbl->GetOutputStream(This,ppStream)
6978 #define ISpVoice_Pause(This) (This)->lpVtbl->Pause(This)
6979 #define ISpVoice_Resume(This) (This)->lpVtbl->Resume(This)
6980 #define ISpVoice_SetVoice(This,pToken) (This)->lpVtbl->SetVoice(This,pToken)
6981 #define ISpVoice_GetVoice(This,ppToken) (This)->lpVtbl->GetVoice(This,ppToken)
6982 #define ISpVoice_Speak(This,pwcs,dwFlags,pulStreamNumber) (This)->lpVtbl->Speak(This,pwcs,dwFlags,pulStreamNumber)
6983 #define ISpVoice_SpeakStream(This,pStream,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakStream(This,pStream,dwFlags,pulStreamNumber)
6984 #define ISpVoice_GetStatus(This,pStatus,ppszLastBookmark) (This)->lpVtbl->GetStatus(This,pStatus,ppszLastBookmark)
6985 #define ISpVoice_Skip(This,pItemType,lNumItems,pulNumSkipped) (This)->lpVtbl->Skip(This,pItemType,lNumItems,pulNumSkipped)
6986 #define ISpVoice_SetPriority(This,ePriority) (This)->lpVtbl->SetPriority(This,ePriority)
6987 #define ISpVoice_GetPriority(This,pePriority) (This)->lpVtbl->GetPriority(This,pePriority)
6988 #define ISpVoice_SetAlertBoundary(This,eBoundary) (This)->lpVtbl->SetAlertBoundary(This,eBoundary)
6989 #define ISpVoice_GetAlertBoundary(This,peBoundary) (This)->lpVtbl->GetAlertBoundary(This,peBoundary)
6990 #define ISpVoice_SetRate(This,RateAdjust) (This)->lpVtbl->SetRate(This,RateAdjust)
6991 #define ISpVoice_GetRate(This,pRateAdjust) (This)->lpVtbl->GetRate(This,pRateAdjust)
6992 #define ISpVoice_SetVolume(This,usVolume) (This)->lpVtbl->SetVolume(This,usVolume)
6993 #define ISpVoice_GetVolume(This,pusVolume) (This)->lpVtbl->GetVolume(This,pusVolume)
6994 #define ISpVoice_WaitUntilDone(This,msTimeout) (This)->lpVtbl->WaitUntilDone(This,msTimeout)
6995 #define ISpVoice_SetSyncSpeakTimeout(This,msTimeout) (This)->lpVtbl->SetSyncSpeakTimeout(This,msTimeout)
6996 #define ISpVoice_GetSyncSpeakTimeout(This,pmsTimeout) (This)->lpVtbl->GetSyncSpeakTimeout(This,pmsTimeout)
6997 #define ISpVoice_SpeakCompleteEvent(This) (This)->lpVtbl->SpeakCompleteEvent(This)
6998 #define ISpVoice_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported)
6999 #define ISpVoice_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData)
7000 #else
7001 /*** IUnknown methods ***/
7002 static FORCEINLINE HRESULT ISpVoice_QueryInterface(ISpVoice* This,REFIID riid,void **ppvObject) {
7003     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7004 }
7005 static FORCEINLINE ULONG ISpVoice_AddRef(ISpVoice* This) {
7006     return This->lpVtbl->AddRef(This);
7007 }
7008 static FORCEINLINE ULONG ISpVoice_Release(ISpVoice* This) {
7009     return This->lpVtbl->Release(This);
7010 }
7011 /*** ISpNotifySource methods ***/
7012 static FORCEINLINE HRESULT ISpVoice_SetNotifySink(ISpVoice* This,ISpNotifySink *pNotifySink) {
7013     return This->lpVtbl->SetNotifySink(This,pNotifySink);
7014 }
7015 static FORCEINLINE HRESULT ISpVoice_SetNotifyWindowMessage(ISpVoice* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
7016     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
7017 }
7018 static FORCEINLINE HRESULT ISpVoice_SetNotifyCallbackFunction(ISpVoice* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
7019     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
7020 }
7021 static FORCEINLINE HRESULT ISpVoice_SetNotifyCallbackInterface(ISpVoice* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
7022     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
7023 }
7024 static FORCEINLINE HRESULT ISpVoice_SetNotifyWin32Event(ISpVoice* This) {
7025     return This->lpVtbl->SetNotifyWin32Event(This);
7026 }
7027 static FORCEINLINE HRESULT ISpVoice_WaitForNotifyEvent(ISpVoice* This,DWORD dwMilliseconds) {
7028     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
7029 }
7030 static FORCEINLINE HANDLE ISpVoice_GetNotifyEventHandle(ISpVoice* This) {
7031     return This->lpVtbl->GetNotifyEventHandle(This);
7032 }
7033 /*** ISpEventSource methods ***/
7034 static FORCEINLINE HRESULT ISpVoice_SetInterest(ISpVoice* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
7035     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
7036 }
7037 static FORCEINLINE HRESULT ISpVoice_GetEvents(ISpVoice* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
7038     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
7039 }
7040 static FORCEINLINE HRESULT ISpVoice_GetInfo(ISpVoice* This,SPEVENTSOURCEINFO *pInfo) {
7041     return This->lpVtbl->GetInfo(This,pInfo);
7042 }
7043 /*** ISpVoice methods ***/
7044 static FORCEINLINE HRESULT ISpVoice_SetOutput(ISpVoice* This,IUnknown *pUnkOutput,WINBOOL fAllowFormatChanges) {
7045     return This->lpVtbl->SetOutput(This,pUnkOutput,fAllowFormatChanges);
7046 }
7047 static FORCEINLINE HRESULT ISpVoice_GetOutputObjectToken(ISpVoice* This,ISpObjectToken **ppObjectToken) {
7048     return This->lpVtbl->GetOutputObjectToken(This,ppObjectToken);
7049 }
7050 static FORCEINLINE HRESULT ISpVoice_GetOutputStream(ISpVoice* This,ISpStreamFormat **ppStream) {
7051     return This->lpVtbl->GetOutputStream(This,ppStream);
7052 }
7053 static FORCEINLINE HRESULT ISpVoice_Pause(ISpVoice* This) {
7054     return This->lpVtbl->Pause(This);
7055 }
7056 static FORCEINLINE HRESULT ISpVoice_Resume(ISpVoice* This) {
7057     return This->lpVtbl->Resume(This);
7058 }
7059 static FORCEINLINE HRESULT ISpVoice_SetVoice(ISpVoice* This,ISpObjectToken *pToken) {
7060     return This->lpVtbl->SetVoice(This,pToken);
7061 }
7062 static FORCEINLINE HRESULT ISpVoice_GetVoice(ISpVoice* This,ISpObjectToken **ppToken) {
7063     return This->lpVtbl->GetVoice(This,ppToken);
7064 }
7065 static FORCEINLINE HRESULT ISpVoice_Speak(ISpVoice* This,LPCWSTR pwcs,DWORD dwFlags,ULONG *pulStreamNumber) {
7066     return This->lpVtbl->Speak(This,pwcs,dwFlags,pulStreamNumber);
7067 }
7068 static FORCEINLINE HRESULT ISpVoice_SpeakStream(ISpVoice* This,IStream *pStream,DWORD dwFlags,ULONG *pulStreamNumber) {
7069     return This->lpVtbl->SpeakStream(This,pStream,dwFlags,pulStreamNumber);
7070 }
7071 static FORCEINLINE HRESULT ISpVoice_GetStatus(ISpVoice* This,SPVOICESTATUS *pStatus,LPWSTR *ppszLastBookmark) {
7072     return This->lpVtbl->GetStatus(This,pStatus,ppszLastBookmark);
7073 }
7074 static FORCEINLINE HRESULT ISpVoice_Skip(ISpVoice* This,LPCWSTR pItemType,LONG lNumItems,ULONG *pulNumSkipped) {
7075     return This->lpVtbl->Skip(This,pItemType,lNumItems,pulNumSkipped);
7076 }
7077 static FORCEINLINE HRESULT ISpVoice_SetPriority(ISpVoice* This,SPVPRIORITY ePriority) {
7078     return This->lpVtbl->SetPriority(This,ePriority);
7079 }
7080 static FORCEINLINE HRESULT ISpVoice_GetPriority(ISpVoice* This,SPVPRIORITY *pePriority) {
7081     return This->lpVtbl->GetPriority(This,pePriority);
7082 }
7083 static FORCEINLINE HRESULT ISpVoice_SetAlertBoundary(ISpVoice* This,SPEVENTENUM eBoundary) {
7084     return This->lpVtbl->SetAlertBoundary(This,eBoundary);
7085 }
7086 static FORCEINLINE HRESULT ISpVoice_GetAlertBoundary(ISpVoice* This,SPEVENTENUM *peBoundary) {
7087     return This->lpVtbl->GetAlertBoundary(This,peBoundary);
7088 }
7089 static FORCEINLINE HRESULT ISpVoice_SetRate(ISpVoice* This,LONG RateAdjust) {
7090     return This->lpVtbl->SetRate(This,RateAdjust);
7091 }
7092 static FORCEINLINE HRESULT ISpVoice_GetRate(ISpVoice* This,LONG *pRateAdjust) {
7093     return This->lpVtbl->GetRate(This,pRateAdjust);
7094 }
7095 static FORCEINLINE HRESULT ISpVoice_SetVolume(ISpVoice* This,USHORT usVolume) {
7096     return This->lpVtbl->SetVolume(This,usVolume);
7097 }
7098 static FORCEINLINE HRESULT ISpVoice_GetVolume(ISpVoice* This,USHORT *pusVolume) {
7099     return This->lpVtbl->GetVolume(This,pusVolume);
7100 }
7101 static FORCEINLINE HRESULT ISpVoice_WaitUntilDone(ISpVoice* This,ULONG msTimeout) {
7102     return This->lpVtbl->WaitUntilDone(This,msTimeout);
7103 }
7104 static FORCEINLINE HRESULT ISpVoice_SetSyncSpeakTimeout(ISpVoice* This,ULONG msTimeout) {
7105     return This->lpVtbl->SetSyncSpeakTimeout(This,msTimeout);
7106 }
7107 static FORCEINLINE HRESULT ISpVoice_GetSyncSpeakTimeout(ISpVoice* This,ULONG *pmsTimeout) {
7108     return This->lpVtbl->GetSyncSpeakTimeout(This,pmsTimeout);
7109 }
7110 static FORCEINLINE HANDLE ISpVoice_SpeakCompleteEvent(ISpVoice* This) {
7111     return This->lpVtbl->SpeakCompleteEvent(This);
7112 }
7113 static FORCEINLINE HRESULT ISpVoice_IsUISupported(ISpVoice* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,WINBOOL *pfSupported) {
7114     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported);
7115 }
7116 static FORCEINLINE HRESULT ISpVoice_DisplayUI(ISpVoice* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData) {
7117     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData);
7118 }
7119 #endif
7120 #endif
7121 
7122 #endif
7123 
7124 
7125 #endif  /* __ISpVoice_INTERFACE_DEFINED__ */
7126 
7127 /*****************************************************************************
7128  * ISpPhrase interface
7129  */
7130 #ifndef __ISpPhrase_INTERFACE_DEFINED__
7131 #define __ISpPhrase_INTERFACE_DEFINED__
7132 
7133 DEFINE_GUID(IID_ISpPhrase, 0x1a5c0354, 0xb621, 0x4b5a, 0x87,0x91, 0xd3,0x06,0xed,0x37,0x9e,0x53);
7134 #if defined(__cplusplus) && !defined(CINTERFACE)
7135 MIDL_INTERFACE("1a5c0354-b621-4b5a-8791-d306ed379e53")
7136 ISpPhrase : public IUnknown
7137 {
7138     virtual HRESULT STDMETHODCALLTYPE GetPhrase(
7139         SPPHRASE **ppCoMemPhrase) = 0;
7140 
7141     virtual HRESULT STDMETHODCALLTYPE GetSerializedPhrase(
7142         SPSERIALIZEDPHRASE **ppCoMemPhrase) = 0;
7143 
7144     virtual HRESULT STDMETHODCALLTYPE GetText(
7145         ULONG ulStart,
7146         ULONG ulCount,
7147         WINBOOL fUseTextReplacements,
7148         LPWSTR *ppszCoMemText,
7149         BYTE *pbDisplayAttributes) = 0;
7150 
7151     virtual HRESULT STDMETHODCALLTYPE Discard(
7152         DWORD dwValueTypes) = 0;
7153 
7154 };
7155 #ifdef __CRT_UUID_DECL
7156 __CRT_UUID_DECL(ISpPhrase, 0x1a5c0354, 0xb621, 0x4b5a, 0x87,0x91, 0xd3,0x06,0xed,0x37,0x9e,0x53)
7157 #endif
7158 #else
7159 typedef struct ISpPhraseVtbl {
7160     BEGIN_INTERFACE
7161 
7162     /*** IUnknown methods ***/
7163     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7164         ISpPhrase *This,
7165         REFIID riid,
7166         void **ppvObject);
7167 
7168     ULONG (STDMETHODCALLTYPE *AddRef)(
7169         ISpPhrase *This);
7170 
7171     ULONG (STDMETHODCALLTYPE *Release)(
7172         ISpPhrase *This);
7173 
7174     /*** ISpPhrase methods ***/
7175     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
7176         ISpPhrase *This,
7177         SPPHRASE **ppCoMemPhrase);
7178 
7179     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
7180         ISpPhrase *This,
7181         SPSERIALIZEDPHRASE **ppCoMemPhrase);
7182 
7183     HRESULT (STDMETHODCALLTYPE *GetText)(
7184         ISpPhrase *This,
7185         ULONG ulStart,
7186         ULONG ulCount,
7187         WINBOOL fUseTextReplacements,
7188         LPWSTR *ppszCoMemText,
7189         BYTE *pbDisplayAttributes);
7190 
7191     HRESULT (STDMETHODCALLTYPE *Discard)(
7192         ISpPhrase *This,
7193         DWORD dwValueTypes);
7194 
7195     END_INTERFACE
7196 } ISpPhraseVtbl;
7197 
7198 interface ISpPhrase {
7199     CONST_VTBL ISpPhraseVtbl* lpVtbl;
7200 };
7201 
7202 #ifdef COBJMACROS
7203 #ifndef WIDL_C_INLINE_WRAPPERS
7204 /*** IUnknown methods ***/
7205 #define ISpPhrase_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7206 #define ISpPhrase_AddRef(This) (This)->lpVtbl->AddRef(This)
7207 #define ISpPhrase_Release(This) (This)->lpVtbl->Release(This)
7208 /*** ISpPhrase methods ***/
7209 #define ISpPhrase_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
7210 #define ISpPhrase_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
7211 #define ISpPhrase_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
7212 #define ISpPhrase_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
7213 #else
7214 /*** IUnknown methods ***/
7215 static FORCEINLINE HRESULT ISpPhrase_QueryInterface(ISpPhrase* This,REFIID riid,void **ppvObject) {
7216     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7217 }
7218 static FORCEINLINE ULONG ISpPhrase_AddRef(ISpPhrase* This) {
7219     return This->lpVtbl->AddRef(This);
7220 }
7221 static FORCEINLINE ULONG ISpPhrase_Release(ISpPhrase* This) {
7222     return This->lpVtbl->Release(This);
7223 }
7224 /*** ISpPhrase methods ***/
7225 static FORCEINLINE HRESULT ISpPhrase_GetPhrase(ISpPhrase* This,SPPHRASE **ppCoMemPhrase) {
7226     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
7227 }
7228 static FORCEINLINE HRESULT ISpPhrase_GetSerializedPhrase(ISpPhrase* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
7229     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
7230 }
7231 static FORCEINLINE HRESULT ISpPhrase_GetText(ISpPhrase* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
7232     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
7233 }
7234 static FORCEINLINE HRESULT ISpPhrase_Discard(ISpPhrase* This,DWORD dwValueTypes) {
7235     return This->lpVtbl->Discard(This,dwValueTypes);
7236 }
7237 #endif
7238 #endif
7239 
7240 #endif
7241 
7242 
7243 #endif  /* __ISpPhrase_INTERFACE_DEFINED__ */
7244 
7245 /*****************************************************************************
7246  * ISpPhraseAlt interface
7247  */
7248 #ifndef __ISpPhraseAlt_INTERFACE_DEFINED__
7249 #define __ISpPhraseAlt_INTERFACE_DEFINED__
7250 
7251 DEFINE_GUID(IID_ISpPhraseAlt, 0x8fcebc98, 0x4e49, 0x4067, 0x9c,0x6c, 0xd8,0x6a,0x0e,0x09,0x2e,0x3d);
7252 #if defined(__cplusplus) && !defined(CINTERFACE)
7253 MIDL_INTERFACE("8fcebc98-4e49-4067-9c6c-d86a0e092e3d")
7254 ISpPhraseAlt : public ISpPhrase
7255 {
7256     virtual HRESULT STDMETHODCALLTYPE GetAltInfo(
7257         ISpPhrase **ppParent,
7258         ULONG *pulStartElementInParent,
7259         ULONG *pcElementsInParent,
7260         ULONG *pcElementsInAlt) = 0;
7261 
7262     virtual HRESULT STDMETHODCALLTYPE Commit(
7263         ) = 0;
7264 
7265 };
7266 #ifdef __CRT_UUID_DECL
7267 __CRT_UUID_DECL(ISpPhraseAlt, 0x8fcebc98, 0x4e49, 0x4067, 0x9c,0x6c, 0xd8,0x6a,0x0e,0x09,0x2e,0x3d)
7268 #endif
7269 #else
7270 typedef struct ISpPhraseAltVtbl {
7271     BEGIN_INTERFACE
7272 
7273     /*** IUnknown methods ***/
7274     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7275         ISpPhraseAlt *This,
7276         REFIID riid,
7277         void **ppvObject);
7278 
7279     ULONG (STDMETHODCALLTYPE *AddRef)(
7280         ISpPhraseAlt *This);
7281 
7282     ULONG (STDMETHODCALLTYPE *Release)(
7283         ISpPhraseAlt *This);
7284 
7285     /*** ISpPhrase methods ***/
7286     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
7287         ISpPhraseAlt *This,
7288         SPPHRASE **ppCoMemPhrase);
7289 
7290     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
7291         ISpPhraseAlt *This,
7292         SPSERIALIZEDPHRASE **ppCoMemPhrase);
7293 
7294     HRESULT (STDMETHODCALLTYPE *GetText)(
7295         ISpPhraseAlt *This,
7296         ULONG ulStart,
7297         ULONG ulCount,
7298         WINBOOL fUseTextReplacements,
7299         LPWSTR *ppszCoMemText,
7300         BYTE *pbDisplayAttributes);
7301 
7302     HRESULT (STDMETHODCALLTYPE *Discard)(
7303         ISpPhraseAlt *This,
7304         DWORD dwValueTypes);
7305 
7306     /*** ISpPhraseAlt methods ***/
7307     HRESULT (STDMETHODCALLTYPE *GetAltInfo)(
7308         ISpPhraseAlt *This,
7309         ISpPhrase **ppParent,
7310         ULONG *pulStartElementInParent,
7311         ULONG *pcElementsInParent,
7312         ULONG *pcElementsInAlt);
7313 
7314     HRESULT (STDMETHODCALLTYPE *Commit)(
7315         ISpPhraseAlt *This);
7316 
7317     END_INTERFACE
7318 } ISpPhraseAltVtbl;
7319 
7320 interface ISpPhraseAlt {
7321     CONST_VTBL ISpPhraseAltVtbl* lpVtbl;
7322 };
7323 
7324 #ifdef COBJMACROS
7325 #ifndef WIDL_C_INLINE_WRAPPERS
7326 /*** IUnknown methods ***/
7327 #define ISpPhraseAlt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7328 #define ISpPhraseAlt_AddRef(This) (This)->lpVtbl->AddRef(This)
7329 #define ISpPhraseAlt_Release(This) (This)->lpVtbl->Release(This)
7330 /*** ISpPhrase methods ***/
7331 #define ISpPhraseAlt_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
7332 #define ISpPhraseAlt_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
7333 #define ISpPhraseAlt_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
7334 #define ISpPhraseAlt_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
7335 /*** ISpPhraseAlt methods ***/
7336 #define ISpPhraseAlt_GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt) (This)->lpVtbl->GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt)
7337 #define ISpPhraseAlt_Commit(This) (This)->lpVtbl->Commit(This)
7338 #else
7339 /*** IUnknown methods ***/
7340 static FORCEINLINE HRESULT ISpPhraseAlt_QueryInterface(ISpPhraseAlt* This,REFIID riid,void **ppvObject) {
7341     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7342 }
7343 static FORCEINLINE ULONG ISpPhraseAlt_AddRef(ISpPhraseAlt* This) {
7344     return This->lpVtbl->AddRef(This);
7345 }
7346 static FORCEINLINE ULONG ISpPhraseAlt_Release(ISpPhraseAlt* This) {
7347     return This->lpVtbl->Release(This);
7348 }
7349 /*** ISpPhrase methods ***/
7350 static FORCEINLINE HRESULT ISpPhraseAlt_GetPhrase(ISpPhraseAlt* This,SPPHRASE **ppCoMemPhrase) {
7351     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
7352 }
7353 static FORCEINLINE HRESULT ISpPhraseAlt_GetSerializedPhrase(ISpPhraseAlt* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
7354     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
7355 }
7356 static FORCEINLINE HRESULT ISpPhraseAlt_GetText(ISpPhraseAlt* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
7357     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
7358 }
7359 static FORCEINLINE HRESULT ISpPhraseAlt_Discard(ISpPhraseAlt* This,DWORD dwValueTypes) {
7360     return This->lpVtbl->Discard(This,dwValueTypes);
7361 }
7362 /*** ISpPhraseAlt methods ***/
7363 static FORCEINLINE HRESULT ISpPhraseAlt_GetAltInfo(ISpPhraseAlt* This,ISpPhrase **ppParent,ULONG *pulStartElementInParent,ULONG *pcElementsInParent,ULONG *pcElementsInAlt) {
7364     return This->lpVtbl->GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt);
7365 }
7366 static FORCEINLINE HRESULT ISpPhraseAlt_Commit(ISpPhraseAlt* This) {
7367     return This->lpVtbl->Commit(This);
7368 }
7369 #endif
7370 #endif
7371 
7372 #endif
7373 
7374 
7375 #endif  /* __ISpPhraseAlt_INTERFACE_DEFINED__ */
7376 
7377 typedef enum SPXMLRESULTOPTIONS {
7378     SPXRO_SML = 0,
7379     SPXRO_Alternates_SML = 1
7380 } SPXMLRESULTOPTIONS;
7381 /*****************************************************************************
7382  * ISpPhrase2 interface
7383  */
7384 #ifndef __ISpPhrase2_INTERFACE_DEFINED__
7385 #define __ISpPhrase2_INTERFACE_DEFINED__
7386 
7387 DEFINE_GUID(IID_ISpPhrase2, 0xf264da52, 0xe457, 0x4696, 0xb8,0x56, 0xa7,0x37,0xb7,0x17,0xaf,0x79);
7388 #if defined(__cplusplus) && !defined(CINTERFACE)
7389 MIDL_INTERFACE("f264da52-e457-4696-b856-a737b717af79")
7390 ISpPhrase2 : public ISpPhrase
7391 {
7392     virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
7393         LPWSTR *ppszCoMemXMLResult,
7394         SPXMLRESULTOPTIONS Options) = 0;
7395 
7396     virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
7397         SPSEMANTICERRORINFO *pSemanticErrorInfo) = 0;
7398 
7399     virtual HRESULT STDMETHODCALLTYPE GetAudio(
7400         ULONG ulStartElement,
7401         ULONG cElements,
7402         ISpStreamFormat **ppStream) = 0;
7403 
7404 };
7405 #ifdef __CRT_UUID_DECL
7406 __CRT_UUID_DECL(ISpPhrase2, 0xf264da52, 0xe457, 0x4696, 0xb8,0x56, 0xa7,0x37,0xb7,0x17,0xaf,0x79)
7407 #endif
7408 #else
7409 typedef struct ISpPhrase2Vtbl {
7410     BEGIN_INTERFACE
7411 
7412     /*** IUnknown methods ***/
7413     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7414         ISpPhrase2 *This,
7415         REFIID riid,
7416         void **ppvObject);
7417 
7418     ULONG (STDMETHODCALLTYPE *AddRef)(
7419         ISpPhrase2 *This);
7420 
7421     ULONG (STDMETHODCALLTYPE *Release)(
7422         ISpPhrase2 *This);
7423 
7424     /*** ISpPhrase methods ***/
7425     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
7426         ISpPhrase2 *This,
7427         SPPHRASE **ppCoMemPhrase);
7428 
7429     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
7430         ISpPhrase2 *This,
7431         SPSERIALIZEDPHRASE **ppCoMemPhrase);
7432 
7433     HRESULT (STDMETHODCALLTYPE *GetText)(
7434         ISpPhrase2 *This,
7435         ULONG ulStart,
7436         ULONG ulCount,
7437         WINBOOL fUseTextReplacements,
7438         LPWSTR *ppszCoMemText,
7439         BYTE *pbDisplayAttributes);
7440 
7441     HRESULT (STDMETHODCALLTYPE *Discard)(
7442         ISpPhrase2 *This,
7443         DWORD dwValueTypes);
7444 
7445     /*** ISpPhrase2 methods ***/
7446     HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
7447         ISpPhrase2 *This,
7448         LPWSTR *ppszCoMemXMLResult,
7449         SPXMLRESULTOPTIONS Options);
7450 
7451     HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
7452         ISpPhrase2 *This,
7453         SPSEMANTICERRORINFO *pSemanticErrorInfo);
7454 
7455     HRESULT (STDMETHODCALLTYPE *GetAudio)(
7456         ISpPhrase2 *This,
7457         ULONG ulStartElement,
7458         ULONG cElements,
7459         ISpStreamFormat **ppStream);
7460 
7461     END_INTERFACE
7462 } ISpPhrase2Vtbl;
7463 
7464 interface ISpPhrase2 {
7465     CONST_VTBL ISpPhrase2Vtbl* lpVtbl;
7466 };
7467 
7468 #ifdef COBJMACROS
7469 #ifndef WIDL_C_INLINE_WRAPPERS
7470 /*** IUnknown methods ***/
7471 #define ISpPhrase2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7472 #define ISpPhrase2_AddRef(This) (This)->lpVtbl->AddRef(This)
7473 #define ISpPhrase2_Release(This) (This)->lpVtbl->Release(This)
7474 /*** ISpPhrase methods ***/
7475 #define ISpPhrase2_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
7476 #define ISpPhrase2_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
7477 #define ISpPhrase2_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
7478 #define ISpPhrase2_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
7479 /*** ISpPhrase2 methods ***/
7480 #define ISpPhrase2_GetXMLResult(This,ppszCoMemXMLResult,Options) (This)->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options)
7481 #define ISpPhrase2_GetXMLErrorInfo(This,pSemanticErrorInfo) (This)->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo)
7482 #define ISpPhrase2_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
7483 #else
7484 /*** IUnknown methods ***/
7485 static FORCEINLINE HRESULT ISpPhrase2_QueryInterface(ISpPhrase2* This,REFIID riid,void **ppvObject) {
7486     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7487 }
7488 static FORCEINLINE ULONG ISpPhrase2_AddRef(ISpPhrase2* This) {
7489     return This->lpVtbl->AddRef(This);
7490 }
7491 static FORCEINLINE ULONG ISpPhrase2_Release(ISpPhrase2* This) {
7492     return This->lpVtbl->Release(This);
7493 }
7494 /*** ISpPhrase methods ***/
7495 static FORCEINLINE HRESULT ISpPhrase2_GetPhrase(ISpPhrase2* This,SPPHRASE **ppCoMemPhrase) {
7496     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
7497 }
7498 static FORCEINLINE HRESULT ISpPhrase2_GetSerializedPhrase(ISpPhrase2* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
7499     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
7500 }
7501 static FORCEINLINE HRESULT ISpPhrase2_GetText(ISpPhrase2* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
7502     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
7503 }
7504 static FORCEINLINE HRESULT ISpPhrase2_Discard(ISpPhrase2* This,DWORD dwValueTypes) {
7505     return This->lpVtbl->Discard(This,dwValueTypes);
7506 }
7507 /*** ISpPhrase2 methods ***/
7508 static FORCEINLINE HRESULT ISpPhrase2_GetXMLResult(ISpPhrase2* This,LPWSTR *ppszCoMemXMLResult,SPXMLRESULTOPTIONS Options) {
7509     return This->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options);
7510 }
7511 static FORCEINLINE HRESULT ISpPhrase2_GetXMLErrorInfo(ISpPhrase2* This,SPSEMANTICERRORINFO *pSemanticErrorInfo) {
7512     return This->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo);
7513 }
7514 static FORCEINLINE HRESULT ISpPhrase2_GetAudio(ISpPhrase2* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
7515     return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
7516 }
7517 #endif
7518 #endif
7519 
7520 #endif
7521 
7522 
7523 #endif  /* __ISpPhrase2_INTERFACE_DEFINED__ */
7524 
7525 typedef struct SPRECORESULTTIMES {
7526     FILETIME ftStreamTime;
7527     ULONGLONG ullLength;
7528     DWORD dwTickCount;
7529     ULONGLONG ullStart;
7530 } SPRECORESULTTIMES;
7531 typedef struct SPSERIALIZEDRESULT {
7532     ULONG ulSerializedSize;
7533 } SPSERIALIZEDRESULT;
7534 /*****************************************************************************
7535  * ISpRecoResult interface
7536  */
7537 #ifndef __ISpRecoResult_INTERFACE_DEFINED__
7538 #define __ISpRecoResult_INTERFACE_DEFINED__
7539 
7540 DEFINE_GUID(IID_ISpRecoResult, 0x20b053be, 0xe235, 0x43cd, 0x9a,0x2a, 0x8d,0x17,0xa4,0x8b,0x78,0x42);
7541 #if defined(__cplusplus) && !defined(CINTERFACE)
7542 MIDL_INTERFACE("20b053be-e235-43cd-9a2a-8d17a48b7842")
7543 ISpRecoResult : public ISpPhrase
7544 {
7545     virtual HRESULT STDMETHODCALLTYPE GetResultTimes(
7546         SPRECORESULTTIMES *pTimes) = 0;
7547 
7548     virtual HRESULT STDMETHODCALLTYPE GetAlternates(
7549         ULONG ulStartElement,
7550         ULONG cElements,
7551         ULONG ulRequestCount,
7552         ISpPhraseAlt **ppPhrases,
7553         ULONG *pcPhrasesReturned) = 0;
7554 
7555     virtual HRESULT STDMETHODCALLTYPE GetAudio(
7556         ULONG ulStartElement,
7557         ULONG cElements,
7558         ISpStreamFormat **ppStream) = 0;
7559 
7560     virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
7561         ULONG ulStartElement,
7562         ULONG cElements,
7563         DWORD dwFlags,
7564         ULONG *pulStreamNumber) = 0;
7565 
7566     virtual HRESULT STDMETHODCALLTYPE Serialize(
7567         SPSERIALIZEDRESULT **ppCoMemSerializedResult) = 0;
7568 
7569     virtual HRESULT STDMETHODCALLTYPE ScaleAudio(
7570         const GUID *pAudioFormatId,
7571         const WAVEFORMATEX *pWaveFormatEx) = 0;
7572 
7573     virtual HRESULT STDMETHODCALLTYPE GetRecoContext(
7574         ISpRecoContext **ppRecoContext) = 0;
7575 
7576 };
7577 #ifdef __CRT_UUID_DECL
7578 __CRT_UUID_DECL(ISpRecoResult, 0x20b053be, 0xe235, 0x43cd, 0x9a,0x2a, 0x8d,0x17,0xa4,0x8b,0x78,0x42)
7579 #endif
7580 #else
7581 typedef struct ISpRecoResultVtbl {
7582     BEGIN_INTERFACE
7583 
7584     /*** IUnknown methods ***/
7585     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7586         ISpRecoResult *This,
7587         REFIID riid,
7588         void **ppvObject);
7589 
7590     ULONG (STDMETHODCALLTYPE *AddRef)(
7591         ISpRecoResult *This);
7592 
7593     ULONG (STDMETHODCALLTYPE *Release)(
7594         ISpRecoResult *This);
7595 
7596     /*** ISpPhrase methods ***/
7597     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
7598         ISpRecoResult *This,
7599         SPPHRASE **ppCoMemPhrase);
7600 
7601     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
7602         ISpRecoResult *This,
7603         SPSERIALIZEDPHRASE **ppCoMemPhrase);
7604 
7605     HRESULT (STDMETHODCALLTYPE *GetText)(
7606         ISpRecoResult *This,
7607         ULONG ulStart,
7608         ULONG ulCount,
7609         WINBOOL fUseTextReplacements,
7610         LPWSTR *ppszCoMemText,
7611         BYTE *pbDisplayAttributes);
7612 
7613     HRESULT (STDMETHODCALLTYPE *Discard)(
7614         ISpRecoResult *This,
7615         DWORD dwValueTypes);
7616 
7617     /*** ISpRecoResult methods ***/
7618     HRESULT (STDMETHODCALLTYPE *GetResultTimes)(
7619         ISpRecoResult *This,
7620         SPRECORESULTTIMES *pTimes);
7621 
7622     HRESULT (STDMETHODCALLTYPE *GetAlternates)(
7623         ISpRecoResult *This,
7624         ULONG ulStartElement,
7625         ULONG cElements,
7626         ULONG ulRequestCount,
7627         ISpPhraseAlt **ppPhrases,
7628         ULONG *pcPhrasesReturned);
7629 
7630     HRESULT (STDMETHODCALLTYPE *GetAudio)(
7631         ISpRecoResult *This,
7632         ULONG ulStartElement,
7633         ULONG cElements,
7634         ISpStreamFormat **ppStream);
7635 
7636     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
7637         ISpRecoResult *This,
7638         ULONG ulStartElement,
7639         ULONG cElements,
7640         DWORD dwFlags,
7641         ULONG *pulStreamNumber);
7642 
7643     HRESULT (STDMETHODCALLTYPE *Serialize)(
7644         ISpRecoResult *This,
7645         SPSERIALIZEDRESULT **ppCoMemSerializedResult);
7646 
7647     HRESULT (STDMETHODCALLTYPE *ScaleAudio)(
7648         ISpRecoResult *This,
7649         const GUID *pAudioFormatId,
7650         const WAVEFORMATEX *pWaveFormatEx);
7651 
7652     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
7653         ISpRecoResult *This,
7654         ISpRecoContext **ppRecoContext);
7655 
7656     END_INTERFACE
7657 } ISpRecoResultVtbl;
7658 
7659 interface ISpRecoResult {
7660     CONST_VTBL ISpRecoResultVtbl* lpVtbl;
7661 };
7662 
7663 #ifdef COBJMACROS
7664 #ifndef WIDL_C_INLINE_WRAPPERS
7665 /*** IUnknown methods ***/
7666 #define ISpRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7667 #define ISpRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
7668 #define ISpRecoResult_Release(This) (This)->lpVtbl->Release(This)
7669 /*** ISpPhrase methods ***/
7670 #define ISpRecoResult_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
7671 #define ISpRecoResult_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
7672 #define ISpRecoResult_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
7673 #define ISpRecoResult_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
7674 /*** ISpRecoResult methods ***/
7675 #define ISpRecoResult_GetResultTimes(This,pTimes) (This)->lpVtbl->GetResultTimes(This,pTimes)
7676 #define ISpRecoResult_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned) (This)->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
7677 #define ISpRecoResult_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
7678 #define ISpRecoResult_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
7679 #define ISpRecoResult_Serialize(This,ppCoMemSerializedResult) (This)->lpVtbl->Serialize(This,ppCoMemSerializedResult)
7680 #define ISpRecoResult_ScaleAudio(This,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
7681 #define ISpRecoResult_GetRecoContext(This,ppRecoContext) (This)->lpVtbl->GetRecoContext(This,ppRecoContext)
7682 #else
7683 /*** IUnknown methods ***/
7684 static FORCEINLINE HRESULT ISpRecoResult_QueryInterface(ISpRecoResult* This,REFIID riid,void **ppvObject) {
7685     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7686 }
7687 static FORCEINLINE ULONG ISpRecoResult_AddRef(ISpRecoResult* This) {
7688     return This->lpVtbl->AddRef(This);
7689 }
7690 static FORCEINLINE ULONG ISpRecoResult_Release(ISpRecoResult* This) {
7691     return This->lpVtbl->Release(This);
7692 }
7693 /*** ISpPhrase methods ***/
7694 static FORCEINLINE HRESULT ISpRecoResult_GetPhrase(ISpRecoResult* This,SPPHRASE **ppCoMemPhrase) {
7695     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
7696 }
7697 static FORCEINLINE HRESULT ISpRecoResult_GetSerializedPhrase(ISpRecoResult* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
7698     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
7699 }
7700 static FORCEINLINE HRESULT ISpRecoResult_GetText(ISpRecoResult* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
7701     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
7702 }
7703 static FORCEINLINE HRESULT ISpRecoResult_Discard(ISpRecoResult* This,DWORD dwValueTypes) {
7704     return This->lpVtbl->Discard(This,dwValueTypes);
7705 }
7706 /*** ISpRecoResult methods ***/
7707 static FORCEINLINE HRESULT ISpRecoResult_GetResultTimes(ISpRecoResult* This,SPRECORESULTTIMES *pTimes) {
7708     return This->lpVtbl->GetResultTimes(This,pTimes);
7709 }
7710 static FORCEINLINE HRESULT ISpRecoResult_GetAlternates(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,ULONG ulRequestCount,ISpPhraseAlt **ppPhrases,ULONG *pcPhrasesReturned) {
7711     return This->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned);
7712 }
7713 static FORCEINLINE HRESULT ISpRecoResult_GetAudio(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
7714     return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
7715 }
7716 static FORCEINLINE HRESULT ISpRecoResult_SpeakAudio(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,DWORD dwFlags,ULONG *pulStreamNumber) {
7717     return This->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber);
7718 }
7719 static FORCEINLINE HRESULT ISpRecoResult_Serialize(ISpRecoResult* This,SPSERIALIZEDRESULT **ppCoMemSerializedResult) {
7720     return This->lpVtbl->Serialize(This,ppCoMemSerializedResult);
7721 }
7722 static FORCEINLINE HRESULT ISpRecoResult_ScaleAudio(ISpRecoResult* This,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
7723     return This->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx);
7724 }
7725 static FORCEINLINE HRESULT ISpRecoResult_GetRecoContext(ISpRecoResult* This,ISpRecoContext **ppRecoContext) {
7726     return This->lpVtbl->GetRecoContext(This,ppRecoContext);
7727 }
7728 #endif
7729 #endif
7730 
7731 #endif
7732 
7733 
7734 #endif  /* __ISpRecoResult_INTERFACE_DEFINED__ */
7735 
7736 typedef enum SPCOMMITFLAGS {
7737     SPCF_NONE = 0,
7738     SPCF_ADD_TO_USER_LEXICON = 1 << 0,
7739     SPCF_DEFINITE_CORRECTION = 1 << 1
7740 } SPCOMMITFLAGS;
7741 /*****************************************************************************
7742  * ISpRecoResult2 interface
7743  */
7744 #ifndef __ISpRecoResult2_INTERFACE_DEFINED__
7745 #define __ISpRecoResult2_INTERFACE_DEFINED__
7746 
7747 DEFINE_GUID(IID_ISpRecoResult2, 0x27cac6c4, 0x88f2, 0x41f2, 0x88,0x17, 0x0c,0x95,0xe5,0x9f,0x1e,0x6e);
7748 #if defined(__cplusplus) && !defined(CINTERFACE)
7749 MIDL_INTERFACE("27cac6c4-88f2-41f2-8817-0c95e59f1e6e")
7750 ISpRecoResult2 : public ISpRecoResult
7751 {
7752     virtual HRESULT STDMETHODCALLTYPE CommitAlternate(
7753         ISpPhraseAlt *pPhraseAlt,
7754         ISpRecoResult **ppNewResult) = 0;
7755 
7756     virtual HRESULT STDMETHODCALLTYPE CommitText(
7757         ULONG ulStartElement,
7758         ULONG cElements,
7759         LPCWSTR pszCorrectedData,
7760         DWORD eCommitFlags) = 0;
7761 
7762     virtual HRESULT STDMETHODCALLTYPE SetTextFeedback(
7763         LPCWSTR pszFeedback,
7764         WINBOOL fSuccessful) = 0;
7765 
7766 };
7767 #ifdef __CRT_UUID_DECL
7768 __CRT_UUID_DECL(ISpRecoResult2, 0x27cac6c4, 0x88f2, 0x41f2, 0x88,0x17, 0x0c,0x95,0xe5,0x9f,0x1e,0x6e)
7769 #endif
7770 #else
7771 typedef struct ISpRecoResult2Vtbl {
7772     BEGIN_INTERFACE
7773 
7774     /*** IUnknown methods ***/
7775     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7776         ISpRecoResult2 *This,
7777         REFIID riid,
7778         void **ppvObject);
7779 
7780     ULONG (STDMETHODCALLTYPE *AddRef)(
7781         ISpRecoResult2 *This);
7782 
7783     ULONG (STDMETHODCALLTYPE *Release)(
7784         ISpRecoResult2 *This);
7785 
7786     /*** ISpPhrase methods ***/
7787     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
7788         ISpRecoResult2 *This,
7789         SPPHRASE **ppCoMemPhrase);
7790 
7791     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
7792         ISpRecoResult2 *This,
7793         SPSERIALIZEDPHRASE **ppCoMemPhrase);
7794 
7795     HRESULT (STDMETHODCALLTYPE *GetText)(
7796         ISpRecoResult2 *This,
7797         ULONG ulStart,
7798         ULONG ulCount,
7799         WINBOOL fUseTextReplacements,
7800         LPWSTR *ppszCoMemText,
7801         BYTE *pbDisplayAttributes);
7802 
7803     HRESULT (STDMETHODCALLTYPE *Discard)(
7804         ISpRecoResult2 *This,
7805         DWORD dwValueTypes);
7806 
7807     /*** ISpRecoResult methods ***/
7808     HRESULT (STDMETHODCALLTYPE *GetResultTimes)(
7809         ISpRecoResult2 *This,
7810         SPRECORESULTTIMES *pTimes);
7811 
7812     HRESULT (STDMETHODCALLTYPE *GetAlternates)(
7813         ISpRecoResult2 *This,
7814         ULONG ulStartElement,
7815         ULONG cElements,
7816         ULONG ulRequestCount,
7817         ISpPhraseAlt **ppPhrases,
7818         ULONG *pcPhrasesReturned);
7819 
7820     HRESULT (STDMETHODCALLTYPE *GetAudio)(
7821         ISpRecoResult2 *This,
7822         ULONG ulStartElement,
7823         ULONG cElements,
7824         ISpStreamFormat **ppStream);
7825 
7826     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
7827         ISpRecoResult2 *This,
7828         ULONG ulStartElement,
7829         ULONG cElements,
7830         DWORD dwFlags,
7831         ULONG *pulStreamNumber);
7832 
7833     HRESULT (STDMETHODCALLTYPE *Serialize)(
7834         ISpRecoResult2 *This,
7835         SPSERIALIZEDRESULT **ppCoMemSerializedResult);
7836 
7837     HRESULT (STDMETHODCALLTYPE *ScaleAudio)(
7838         ISpRecoResult2 *This,
7839         const GUID *pAudioFormatId,
7840         const WAVEFORMATEX *pWaveFormatEx);
7841 
7842     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
7843         ISpRecoResult2 *This,
7844         ISpRecoContext **ppRecoContext);
7845 
7846     /*** ISpRecoResult2 methods ***/
7847     HRESULT (STDMETHODCALLTYPE *CommitAlternate)(
7848         ISpRecoResult2 *This,
7849         ISpPhraseAlt *pPhraseAlt,
7850         ISpRecoResult **ppNewResult);
7851 
7852     HRESULT (STDMETHODCALLTYPE *CommitText)(
7853         ISpRecoResult2 *This,
7854         ULONG ulStartElement,
7855         ULONG cElements,
7856         LPCWSTR pszCorrectedData,
7857         DWORD eCommitFlags);
7858 
7859     HRESULT (STDMETHODCALLTYPE *SetTextFeedback)(
7860         ISpRecoResult2 *This,
7861         LPCWSTR pszFeedback,
7862         WINBOOL fSuccessful);
7863 
7864     END_INTERFACE
7865 } ISpRecoResult2Vtbl;
7866 
7867 interface ISpRecoResult2 {
7868     CONST_VTBL ISpRecoResult2Vtbl* lpVtbl;
7869 };
7870 
7871 #ifdef COBJMACROS
7872 #ifndef WIDL_C_INLINE_WRAPPERS
7873 /*** IUnknown methods ***/
7874 #define ISpRecoResult2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7875 #define ISpRecoResult2_AddRef(This) (This)->lpVtbl->AddRef(This)
7876 #define ISpRecoResult2_Release(This) (This)->lpVtbl->Release(This)
7877 /*** ISpPhrase methods ***/
7878 #define ISpRecoResult2_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
7879 #define ISpRecoResult2_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
7880 #define ISpRecoResult2_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
7881 #define ISpRecoResult2_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
7882 /*** ISpRecoResult methods ***/
7883 #define ISpRecoResult2_GetResultTimes(This,pTimes) (This)->lpVtbl->GetResultTimes(This,pTimes)
7884 #define ISpRecoResult2_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned) (This)->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
7885 #define ISpRecoResult2_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
7886 #define ISpRecoResult2_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
7887 #define ISpRecoResult2_Serialize(This,ppCoMemSerializedResult) (This)->lpVtbl->Serialize(This,ppCoMemSerializedResult)
7888 #define ISpRecoResult2_ScaleAudio(This,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
7889 #define ISpRecoResult2_GetRecoContext(This,ppRecoContext) (This)->lpVtbl->GetRecoContext(This,ppRecoContext)
7890 /*** ISpRecoResult2 methods ***/
7891 #define ISpRecoResult2_CommitAlternate(This,pPhraseAlt,ppNewResult) (This)->lpVtbl->CommitAlternate(This,pPhraseAlt,ppNewResult)
7892 #define ISpRecoResult2_CommitText(This,ulStartElement,cElements,pszCorrectedData,eCommitFlags) (This)->lpVtbl->CommitText(This,ulStartElement,cElements,pszCorrectedData,eCommitFlags)
7893 #define ISpRecoResult2_SetTextFeedback(This,pszFeedback,fSuccessful) (This)->lpVtbl->SetTextFeedback(This,pszFeedback,fSuccessful)
7894 #else
7895 /*** IUnknown methods ***/
7896 static FORCEINLINE HRESULT ISpRecoResult2_QueryInterface(ISpRecoResult2* This,REFIID riid,void **ppvObject) {
7897     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7898 }
7899 static FORCEINLINE ULONG ISpRecoResult2_AddRef(ISpRecoResult2* This) {
7900     return This->lpVtbl->AddRef(This);
7901 }
7902 static FORCEINLINE ULONG ISpRecoResult2_Release(ISpRecoResult2* This) {
7903     return This->lpVtbl->Release(This);
7904 }
7905 /*** ISpPhrase methods ***/
7906 static FORCEINLINE HRESULT ISpRecoResult2_GetPhrase(ISpRecoResult2* This,SPPHRASE **ppCoMemPhrase) {
7907     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
7908 }
7909 static FORCEINLINE HRESULT ISpRecoResult2_GetSerializedPhrase(ISpRecoResult2* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
7910     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
7911 }
7912 static FORCEINLINE HRESULT ISpRecoResult2_GetText(ISpRecoResult2* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
7913     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
7914 }
7915 static FORCEINLINE HRESULT ISpRecoResult2_Discard(ISpRecoResult2* This,DWORD dwValueTypes) {
7916     return This->lpVtbl->Discard(This,dwValueTypes);
7917 }
7918 /*** ISpRecoResult methods ***/
7919 static FORCEINLINE HRESULT ISpRecoResult2_GetResultTimes(ISpRecoResult2* This,SPRECORESULTTIMES *pTimes) {
7920     return This->lpVtbl->GetResultTimes(This,pTimes);
7921 }
7922 static FORCEINLINE HRESULT ISpRecoResult2_GetAlternates(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,ULONG ulRequestCount,ISpPhraseAlt **ppPhrases,ULONG *pcPhrasesReturned) {
7923     return This->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned);
7924 }
7925 static FORCEINLINE HRESULT ISpRecoResult2_GetAudio(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
7926     return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
7927 }
7928 static FORCEINLINE HRESULT ISpRecoResult2_SpeakAudio(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,DWORD dwFlags,ULONG *pulStreamNumber) {
7929     return This->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber);
7930 }
7931 static FORCEINLINE HRESULT ISpRecoResult2_Serialize(ISpRecoResult2* This,SPSERIALIZEDRESULT **ppCoMemSerializedResult) {
7932     return This->lpVtbl->Serialize(This,ppCoMemSerializedResult);
7933 }
7934 static FORCEINLINE HRESULT ISpRecoResult2_ScaleAudio(ISpRecoResult2* This,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
7935     return This->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx);
7936 }
7937 static FORCEINLINE HRESULT ISpRecoResult2_GetRecoContext(ISpRecoResult2* This,ISpRecoContext **ppRecoContext) {
7938     return This->lpVtbl->GetRecoContext(This,ppRecoContext);
7939 }
7940 /*** ISpRecoResult2 methods ***/
7941 static FORCEINLINE HRESULT ISpRecoResult2_CommitAlternate(ISpRecoResult2* This,ISpPhraseAlt *pPhraseAlt,ISpRecoResult **ppNewResult) {
7942     return This->lpVtbl->CommitAlternate(This,pPhraseAlt,ppNewResult);
7943 }
7944 static FORCEINLINE HRESULT ISpRecoResult2_CommitText(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,LPCWSTR pszCorrectedData,DWORD eCommitFlags) {
7945     return This->lpVtbl->CommitText(This,ulStartElement,cElements,pszCorrectedData,eCommitFlags);
7946 }
7947 static FORCEINLINE HRESULT ISpRecoResult2_SetTextFeedback(ISpRecoResult2* This,LPCWSTR pszFeedback,WINBOOL fSuccessful) {
7948     return This->lpVtbl->SetTextFeedback(This,pszFeedback,fSuccessful);
7949 }
7950 #endif
7951 #endif
7952 
7953 #endif
7954 
7955 
7956 #endif  /* __ISpRecoResult2_INTERFACE_DEFINED__ */
7957 
7958 /*****************************************************************************
7959  * ISpXMLRecoResult interface
7960  */
7961 #ifndef __ISpXMLRecoResult_INTERFACE_DEFINED__
7962 #define __ISpXMLRecoResult_INTERFACE_DEFINED__
7963 
7964 DEFINE_GUID(IID_ISpXMLRecoResult, 0xae39362b, 0x45a8, 0x4074, 0x9b,0x9e, 0xcc,0xf4,0x9a,0xa2,0xd0,0xb6);
7965 #if defined(__cplusplus) && !defined(CINTERFACE)
7966 MIDL_INTERFACE("ae39362b-45a8-4074-9b9e-ccf49aa2d0b6")
7967 ISpXMLRecoResult : public ISpRecoResult
7968 {
7969     virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
7970         LPWSTR *ppszCoMemXMLResult,
7971         SPXMLRESULTOPTIONS Options) = 0;
7972 
7973     virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
7974         SPSEMANTICERRORINFO *pSemanticErrorInfo) = 0;
7975 
7976 };
7977 #ifdef __CRT_UUID_DECL
7978 __CRT_UUID_DECL(ISpXMLRecoResult, 0xae39362b, 0x45a8, 0x4074, 0x9b,0x9e, 0xcc,0xf4,0x9a,0xa2,0xd0,0xb6)
7979 #endif
7980 #else
7981 typedef struct ISpXMLRecoResultVtbl {
7982     BEGIN_INTERFACE
7983 
7984     /*** IUnknown methods ***/
7985     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7986         ISpXMLRecoResult *This,
7987         REFIID riid,
7988         void **ppvObject);
7989 
7990     ULONG (STDMETHODCALLTYPE *AddRef)(
7991         ISpXMLRecoResult *This);
7992 
7993     ULONG (STDMETHODCALLTYPE *Release)(
7994         ISpXMLRecoResult *This);
7995 
7996     /*** ISpPhrase methods ***/
7997     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
7998         ISpXMLRecoResult *This,
7999         SPPHRASE **ppCoMemPhrase);
8000 
8001     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
8002         ISpXMLRecoResult *This,
8003         SPSERIALIZEDPHRASE **ppCoMemPhrase);
8004 
8005     HRESULT (STDMETHODCALLTYPE *GetText)(
8006         ISpXMLRecoResult *This,
8007         ULONG ulStart,
8008         ULONG ulCount,
8009         WINBOOL fUseTextReplacements,
8010         LPWSTR *ppszCoMemText,
8011         BYTE *pbDisplayAttributes);
8012 
8013     HRESULT (STDMETHODCALLTYPE *Discard)(
8014         ISpXMLRecoResult *This,
8015         DWORD dwValueTypes);
8016 
8017     /*** ISpRecoResult methods ***/
8018     HRESULT (STDMETHODCALLTYPE *GetResultTimes)(
8019         ISpXMLRecoResult *This,
8020         SPRECORESULTTIMES *pTimes);
8021 
8022     HRESULT (STDMETHODCALLTYPE *GetAlternates)(
8023         ISpXMLRecoResult *This,
8024         ULONG ulStartElement,
8025         ULONG cElements,
8026         ULONG ulRequestCount,
8027         ISpPhraseAlt **ppPhrases,
8028         ULONG *pcPhrasesReturned);
8029 
8030     HRESULT (STDMETHODCALLTYPE *GetAudio)(
8031         ISpXMLRecoResult *This,
8032         ULONG ulStartElement,
8033         ULONG cElements,
8034         ISpStreamFormat **ppStream);
8035 
8036     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
8037         ISpXMLRecoResult *This,
8038         ULONG ulStartElement,
8039         ULONG cElements,
8040         DWORD dwFlags,
8041         ULONG *pulStreamNumber);
8042 
8043     HRESULT (STDMETHODCALLTYPE *Serialize)(
8044         ISpXMLRecoResult *This,
8045         SPSERIALIZEDRESULT **ppCoMemSerializedResult);
8046 
8047     HRESULT (STDMETHODCALLTYPE *ScaleAudio)(
8048         ISpXMLRecoResult *This,
8049         const GUID *pAudioFormatId,
8050         const WAVEFORMATEX *pWaveFormatEx);
8051 
8052     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
8053         ISpXMLRecoResult *This,
8054         ISpRecoContext **ppRecoContext);
8055 
8056     /*** ISpXMLRecoResult methods ***/
8057     HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
8058         ISpXMLRecoResult *This,
8059         LPWSTR *ppszCoMemXMLResult,
8060         SPXMLRESULTOPTIONS Options);
8061 
8062     HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
8063         ISpXMLRecoResult *This,
8064         SPSEMANTICERRORINFO *pSemanticErrorInfo);
8065 
8066     END_INTERFACE
8067 } ISpXMLRecoResultVtbl;
8068 
8069 interface ISpXMLRecoResult {
8070     CONST_VTBL ISpXMLRecoResultVtbl* lpVtbl;
8071 };
8072 
8073 #ifdef COBJMACROS
8074 #ifndef WIDL_C_INLINE_WRAPPERS
8075 /*** IUnknown methods ***/
8076 #define ISpXMLRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8077 #define ISpXMLRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
8078 #define ISpXMLRecoResult_Release(This) (This)->lpVtbl->Release(This)
8079 /*** ISpPhrase methods ***/
8080 #define ISpXMLRecoResult_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
8081 #define ISpXMLRecoResult_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
8082 #define ISpXMLRecoResult_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
8083 #define ISpXMLRecoResult_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
8084 /*** ISpRecoResult methods ***/
8085 #define ISpXMLRecoResult_GetResultTimes(This,pTimes) (This)->lpVtbl->GetResultTimes(This,pTimes)
8086 #define ISpXMLRecoResult_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned) (This)->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
8087 #define ISpXMLRecoResult_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
8088 #define ISpXMLRecoResult_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
8089 #define ISpXMLRecoResult_Serialize(This,ppCoMemSerializedResult) (This)->lpVtbl->Serialize(This,ppCoMemSerializedResult)
8090 #define ISpXMLRecoResult_ScaleAudio(This,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
8091 #define ISpXMLRecoResult_GetRecoContext(This,ppRecoContext) (This)->lpVtbl->GetRecoContext(This,ppRecoContext)
8092 /*** ISpXMLRecoResult methods ***/
8093 #define ISpXMLRecoResult_GetXMLResult(This,ppszCoMemXMLResult,Options) (This)->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options)
8094 #define ISpXMLRecoResult_GetXMLErrorInfo(This,pSemanticErrorInfo) (This)->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo)
8095 #else
8096 /*** IUnknown methods ***/
8097 static FORCEINLINE HRESULT ISpXMLRecoResult_QueryInterface(ISpXMLRecoResult* This,REFIID riid,void **ppvObject) {
8098     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8099 }
8100 static FORCEINLINE ULONG ISpXMLRecoResult_AddRef(ISpXMLRecoResult* This) {
8101     return This->lpVtbl->AddRef(This);
8102 }
8103 static FORCEINLINE ULONG ISpXMLRecoResult_Release(ISpXMLRecoResult* This) {
8104     return This->lpVtbl->Release(This);
8105 }
8106 /*** ISpPhrase methods ***/
8107 static FORCEINLINE HRESULT ISpXMLRecoResult_GetPhrase(ISpXMLRecoResult* This,SPPHRASE **ppCoMemPhrase) {
8108     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
8109 }
8110 static FORCEINLINE HRESULT ISpXMLRecoResult_GetSerializedPhrase(ISpXMLRecoResult* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
8111     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
8112 }
8113 static FORCEINLINE HRESULT ISpXMLRecoResult_GetText(ISpXMLRecoResult* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
8114     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
8115 }
8116 static FORCEINLINE HRESULT ISpXMLRecoResult_Discard(ISpXMLRecoResult* This,DWORD dwValueTypes) {
8117     return This->lpVtbl->Discard(This,dwValueTypes);
8118 }
8119 /*** ISpRecoResult methods ***/
8120 static FORCEINLINE HRESULT ISpXMLRecoResult_GetResultTimes(ISpXMLRecoResult* This,SPRECORESULTTIMES *pTimes) {
8121     return This->lpVtbl->GetResultTimes(This,pTimes);
8122 }
8123 static FORCEINLINE HRESULT ISpXMLRecoResult_GetAlternates(ISpXMLRecoResult* This,ULONG ulStartElement,ULONG cElements,ULONG ulRequestCount,ISpPhraseAlt **ppPhrases,ULONG *pcPhrasesReturned) {
8124     return This->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned);
8125 }
8126 static FORCEINLINE HRESULT ISpXMLRecoResult_GetAudio(ISpXMLRecoResult* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
8127     return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
8128 }
8129 static FORCEINLINE HRESULT ISpXMLRecoResult_SpeakAudio(ISpXMLRecoResult* This,ULONG ulStartElement,ULONG cElements,DWORD dwFlags,ULONG *pulStreamNumber) {
8130     return This->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber);
8131 }
8132 static FORCEINLINE HRESULT ISpXMLRecoResult_Serialize(ISpXMLRecoResult* This,SPSERIALIZEDRESULT **ppCoMemSerializedResult) {
8133     return This->lpVtbl->Serialize(This,ppCoMemSerializedResult);
8134 }
8135 static FORCEINLINE HRESULT ISpXMLRecoResult_ScaleAudio(ISpXMLRecoResult* This,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
8136     return This->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx);
8137 }
8138 static FORCEINLINE HRESULT ISpXMLRecoResult_GetRecoContext(ISpXMLRecoResult* This,ISpRecoContext **ppRecoContext) {
8139     return This->lpVtbl->GetRecoContext(This,ppRecoContext);
8140 }
8141 /*** ISpXMLRecoResult methods ***/
8142 static FORCEINLINE HRESULT ISpXMLRecoResult_GetXMLResult(ISpXMLRecoResult* This,LPWSTR *ppszCoMemXMLResult,SPXMLRESULTOPTIONS Options) {
8143     return This->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options);
8144 }
8145 static FORCEINLINE HRESULT ISpXMLRecoResult_GetXMLErrorInfo(ISpXMLRecoResult* This,SPSEMANTICERRORINFO *pSemanticErrorInfo) {
8146     return This->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo);
8147 }
8148 #endif
8149 #endif
8150 
8151 #endif
8152 
8153 
8154 #endif  /* __ISpXMLRecoResult_INTERFACE_DEFINED__ */
8155 
8156 typedef struct tagSPTEXTSELECTIONINFO {
8157     ULONG ulStartActiveOffset;
8158     ULONG cchActiveChars;
8159     ULONG ulStartSelection;
8160     ULONG cchSelection;
8161 } SPTEXTSELECTIONINFO;
8162 typedef enum SPWORDPRONOUNCEABLE {
8163     SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE = 0,
8164     SPWP_UNKNOWN_WORD_PRONOUNCEABLE = 1,
8165     SPWP_KNOWN_WORD_PRONOUNCEABLE = 2
8166 } SPWORDPRONOUNCEABLE;
8167 typedef enum SPGRAMMARSTATE {
8168     SPGS_DISABLED = 0,
8169     SPGS_ENABLED = 1,
8170     SPGS_EXCLUSIVE = 3
8171 } SPGRAMMARSTATE;
8172 typedef enum SPCONTEXTSTATE {
8173     SPCS_DISABLED = 0,
8174     SPCS_ENABLED = 1
8175 } SPCONTEXTSTATE;
8176 typedef enum SPRULESTATE {
8177     SPRS_INACTIVE = 0,
8178     SPRS_ACTIVE = 1,
8179     SPRS_ACTIVE_WITH_AUTO_PAUSE = 3,
8180     SPRS_ACTIVE_USER_DELIMITED = 4
8181 } SPRULESTATE;
8182 #define SP_STREAMPOS_ASAP (0)
8183 
8184 #define SP_STREAMPOS_REALTIME (-1)
8185 
8186 #define SPRULETRANS_TEXTBUFFER (SPSTATEHANDLE) (-1)
8187 #define SPRULETRANS_WILDCARD (SPSTATEHANDLE) (-2)
8188 #define SPRULETRANS_DICTATION (SPSTATEHANDLE) (-3)
8189 typedef enum SPGRAMMARWORDTYPE {
8190     SPWT_DISPLAY = 0,
8191     SPWT_LEXICAL = 1,
8192     SPWT_PRONUNCIATION = 2,
8193     SPWT_LEXICAL_NO_SPECIAL_CHARS = 3
8194 } SPGRAMMARWORDTYPE;
8195 typedef struct tagSPPROPERTYINFO {
8196     LPCWSTR pszName;
8197     ULONG ulId;
8198     LPCWSTR pszValue;
8199     VARIANT vValue;
8200 } SPPROPERTYINFO;
8201 typedef enum SPCFGRULEATTRIBUTES {
8202     SPRAF_TopLevel = 0x1,
8203     SPRAF_Active = 0x2,
8204     SPRAF_Export = 0x4,
8205     SPRAF_Import = 0x8,
8206     SPRAF_Interpreter = 0x10,
8207     SPRAF_Dynamic = 0x20,
8208     SPRAF_Root = 0x40,
8209     SPRAF_AutoPause = 0x10000,
8210     SPRAF_UserDelimited = 0x20000
8211 } SPCFGRULEATTRIBUTES;
8212 /*****************************************************************************
8213  * ISpGrammarBuilder interface
8214  */
8215 #ifndef __ISpGrammarBuilder_INTERFACE_DEFINED__
8216 #define __ISpGrammarBuilder_INTERFACE_DEFINED__
8217 
8218 DEFINE_GUID(IID_ISpGrammarBuilder, 0x8137828f, 0x591a, 0x4a42, 0xbe,0x58, 0x49,0xea,0x7e,0xba,0xac,0x68);
8219 #if defined(__cplusplus) && !defined(CINTERFACE)
8220 MIDL_INTERFACE("8137828f-591a-4a42-be58-49ea7ebaac68")
8221 ISpGrammarBuilder : public IUnknown
8222 {
8223     virtual HRESULT STDMETHODCALLTYPE ResetGrammar(
8224         WORD NewLanguage) = 0;
8225 
8226     virtual HRESULT STDMETHODCALLTYPE GetRule(
8227         LPCWSTR pszRuleName,
8228         DWORD dwRuleId,
8229         DWORD dwAttributes,
8230         WINBOOL fCreateIfNotExist,
8231         SPSTATEHANDLE *phInitialState) = 0;
8232 
8233     virtual HRESULT STDMETHODCALLTYPE ClearRule(
8234         SPSTATEHANDLE hState) = 0;
8235 
8236     virtual HRESULT STDMETHODCALLTYPE CreateNewState(
8237         SPSTATEHANDLE hState,
8238         SPSTATEHANDLE *phState) = 0;
8239 
8240     virtual HRESULT STDMETHODCALLTYPE AddWordTransition(
8241         SPSTATEHANDLE hFromState,
8242         SPSTATEHANDLE hToState,
8243         LPCWSTR psz,
8244         LPCWSTR pszSeparators,
8245         SPGRAMMARWORDTYPE eWordType,
8246         float Weight,
8247         const SPPROPERTYINFO *pPropInfo) = 0;
8248 
8249     virtual HRESULT STDMETHODCALLTYPE AddRuleTransition(
8250         SPSTATEHANDLE hFromState,
8251         SPSTATEHANDLE hToState,
8252         SPSTATEHANDLE hRule,
8253         float Weight,
8254         const SPPROPERTYINFO *pPropInfo) = 0;
8255 
8256     virtual HRESULT STDMETHODCALLTYPE AddResource(
8257         SPSTATEHANDLE hRuleState,
8258         LPCWSTR pszResourceName,
8259         LPCWSTR pszResourceValue) = 0;
8260 
8261     virtual HRESULT STDMETHODCALLTYPE Commit(
8262         DWORD dwReserved) = 0;
8263 
8264 };
8265 #ifdef __CRT_UUID_DECL
8266 __CRT_UUID_DECL(ISpGrammarBuilder, 0x8137828f, 0x591a, 0x4a42, 0xbe,0x58, 0x49,0xea,0x7e,0xba,0xac,0x68)
8267 #endif
8268 #else
8269 typedef struct ISpGrammarBuilderVtbl {
8270     BEGIN_INTERFACE
8271 
8272     /*** IUnknown methods ***/
8273     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8274         ISpGrammarBuilder *This,
8275         REFIID riid,
8276         void **ppvObject);
8277 
8278     ULONG (STDMETHODCALLTYPE *AddRef)(
8279         ISpGrammarBuilder *This);
8280 
8281     ULONG (STDMETHODCALLTYPE *Release)(
8282         ISpGrammarBuilder *This);
8283 
8284     /*** ISpGrammarBuilder methods ***/
8285     HRESULT (STDMETHODCALLTYPE *ResetGrammar)(
8286         ISpGrammarBuilder *This,
8287         WORD NewLanguage);
8288 
8289     HRESULT (STDMETHODCALLTYPE *GetRule)(
8290         ISpGrammarBuilder *This,
8291         LPCWSTR pszRuleName,
8292         DWORD dwRuleId,
8293         DWORD dwAttributes,
8294         WINBOOL fCreateIfNotExist,
8295         SPSTATEHANDLE *phInitialState);
8296 
8297     HRESULT (STDMETHODCALLTYPE *ClearRule)(
8298         ISpGrammarBuilder *This,
8299         SPSTATEHANDLE hState);
8300 
8301     HRESULT (STDMETHODCALLTYPE *CreateNewState)(
8302         ISpGrammarBuilder *This,
8303         SPSTATEHANDLE hState,
8304         SPSTATEHANDLE *phState);
8305 
8306     HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
8307         ISpGrammarBuilder *This,
8308         SPSTATEHANDLE hFromState,
8309         SPSTATEHANDLE hToState,
8310         LPCWSTR psz,
8311         LPCWSTR pszSeparators,
8312         SPGRAMMARWORDTYPE eWordType,
8313         float Weight,
8314         const SPPROPERTYINFO *pPropInfo);
8315 
8316     HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
8317         ISpGrammarBuilder *This,
8318         SPSTATEHANDLE hFromState,
8319         SPSTATEHANDLE hToState,
8320         SPSTATEHANDLE hRule,
8321         float Weight,
8322         const SPPROPERTYINFO *pPropInfo);
8323 
8324     HRESULT (STDMETHODCALLTYPE *AddResource)(
8325         ISpGrammarBuilder *This,
8326         SPSTATEHANDLE hRuleState,
8327         LPCWSTR pszResourceName,
8328         LPCWSTR pszResourceValue);
8329 
8330     HRESULT (STDMETHODCALLTYPE *Commit)(
8331         ISpGrammarBuilder *This,
8332         DWORD dwReserved);
8333 
8334     END_INTERFACE
8335 } ISpGrammarBuilderVtbl;
8336 
8337 interface ISpGrammarBuilder {
8338     CONST_VTBL ISpGrammarBuilderVtbl* lpVtbl;
8339 };
8340 
8341 #ifdef COBJMACROS
8342 #ifndef WIDL_C_INLINE_WRAPPERS
8343 /*** IUnknown methods ***/
8344 #define ISpGrammarBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8345 #define ISpGrammarBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
8346 #define ISpGrammarBuilder_Release(This) (This)->lpVtbl->Release(This)
8347 /*** ISpGrammarBuilder methods ***/
8348 #define ISpGrammarBuilder_ResetGrammar(This,NewLanguage) (This)->lpVtbl->ResetGrammar(This,NewLanguage)
8349 #define ISpGrammarBuilder_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState) (This)->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
8350 #define ISpGrammarBuilder_ClearRule(This,hState) (This)->lpVtbl->ClearRule(This,hState)
8351 #define ISpGrammarBuilder_CreateNewState(This,hState,phState) (This)->lpVtbl->CreateNewState(This,hState,phState)
8352 #define ISpGrammarBuilder_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo) (This)->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
8353 #define ISpGrammarBuilder_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo) (This)->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
8354 #define ISpGrammarBuilder_AddResource(This,hRuleState,pszResourceName,pszResourceValue) (This)->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue)
8355 #define ISpGrammarBuilder_Commit(This,dwReserved) (This)->lpVtbl->Commit(This,dwReserved)
8356 #else
8357 /*** IUnknown methods ***/
8358 static FORCEINLINE HRESULT ISpGrammarBuilder_QueryInterface(ISpGrammarBuilder* This,REFIID riid,void **ppvObject) {
8359     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8360 }
8361 static FORCEINLINE ULONG ISpGrammarBuilder_AddRef(ISpGrammarBuilder* This) {
8362     return This->lpVtbl->AddRef(This);
8363 }
8364 static FORCEINLINE ULONG ISpGrammarBuilder_Release(ISpGrammarBuilder* This) {
8365     return This->lpVtbl->Release(This);
8366 }
8367 /*** ISpGrammarBuilder methods ***/
8368 static FORCEINLINE HRESULT ISpGrammarBuilder_ResetGrammar(ISpGrammarBuilder* This,WORD NewLanguage) {
8369     return This->lpVtbl->ResetGrammar(This,NewLanguage);
8370 }
8371 static FORCEINLINE HRESULT ISpGrammarBuilder_GetRule(ISpGrammarBuilder* This,LPCWSTR pszRuleName,DWORD dwRuleId,DWORD dwAttributes,WINBOOL fCreateIfNotExist,SPSTATEHANDLE *phInitialState) {
8372     return This->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState);
8373 }
8374 static FORCEINLINE HRESULT ISpGrammarBuilder_ClearRule(ISpGrammarBuilder* This,SPSTATEHANDLE hState) {
8375     return This->lpVtbl->ClearRule(This,hState);
8376 }
8377 static FORCEINLINE HRESULT ISpGrammarBuilder_CreateNewState(ISpGrammarBuilder* This,SPSTATEHANDLE hState,SPSTATEHANDLE *phState) {
8378     return This->lpVtbl->CreateNewState(This,hState,phState);
8379 }
8380 static FORCEINLINE HRESULT ISpGrammarBuilder_AddWordTransition(ISpGrammarBuilder* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,LPCWSTR pszSeparators,SPGRAMMARWORDTYPE eWordType,float Weight,const SPPROPERTYINFO *pPropInfo) {
8381     return This->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo);
8382 }
8383 static FORCEINLINE HRESULT ISpGrammarBuilder_AddRuleTransition(ISpGrammarBuilder* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,SPSTATEHANDLE hRule,float Weight,const SPPROPERTYINFO *pPropInfo) {
8384     return This->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo);
8385 }
8386 static FORCEINLINE HRESULT ISpGrammarBuilder_AddResource(ISpGrammarBuilder* This,SPSTATEHANDLE hRuleState,LPCWSTR pszResourceName,LPCWSTR pszResourceValue) {
8387     return This->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue);
8388 }
8389 static FORCEINLINE HRESULT ISpGrammarBuilder_Commit(ISpGrammarBuilder* This,DWORD dwReserved) {
8390     return This->lpVtbl->Commit(This,dwReserved);
8391 }
8392 #endif
8393 #endif
8394 
8395 #endif
8396 
8397 
8398 #endif  /* __ISpGrammarBuilder_INTERFACE_DEFINED__ */
8399 
8400 typedef enum SPLOADOPTIONS {
8401     SPLO_STATIC = 0,
8402     SPLO_DYNAMIC = 1
8403 } SPLOADOPTIONS;
8404 /*****************************************************************************
8405  * ISpRecoGrammar interface
8406  */
8407 #ifndef __ISpRecoGrammar_INTERFACE_DEFINED__
8408 #define __ISpRecoGrammar_INTERFACE_DEFINED__
8409 
8410 DEFINE_GUID(IID_ISpRecoGrammar, 0x2177db29, 0x7f45, 0x47d0, 0x85,0x54, 0x06,0x7e,0x91,0xc8,0x05,0x02);
8411 #if defined(__cplusplus) && !defined(CINTERFACE)
8412 MIDL_INTERFACE("2177db29-7f45-47d0-8554-067e91c80502")
8413 ISpRecoGrammar : public ISpGrammarBuilder
8414 {
8415     virtual HRESULT STDMETHODCALLTYPE GetGrammarId(
8416         ULONGLONG *pullGrammarId) = 0;
8417 
8418     virtual HRESULT STDMETHODCALLTYPE GetRecoContext(
8419         ISpRecoContext **ppRecoCtxt) = 0;
8420 
8421     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromFile(
8422         LPCWSTR pszFileName,
8423         SPLOADOPTIONS Options) = 0;
8424 
8425     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromObject(
8426         REFCLSID rcid,
8427         LPCWSTR pszGrammarName,
8428         SPLOADOPTIONS Options) = 0;
8429 
8430     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromResource(
8431         HMODULE hModule,
8432         LPCWSTR pszResourceName,
8433         LPCWSTR pszResourceType,
8434         WORD wLanguage,
8435         SPLOADOPTIONS Options) = 0;
8436 
8437     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromMemory(
8438         const SPBINARYGRAMMAR *pGrammar,
8439         SPLOADOPTIONS Options) = 0;
8440 
8441     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromProprietaryGrammar(
8442         REFGUID rguidParam,
8443         LPCWSTR pszStringParam,
8444         const void *pvDataPrarm,
8445         ULONG cbDataSize,
8446         SPLOADOPTIONS Options) = 0;
8447 
8448     virtual HRESULT STDMETHODCALLTYPE SetRuleState(
8449         LPCWSTR pszName,
8450         void *pReserved,
8451         SPRULESTATE NewState) = 0;
8452 
8453     virtual HRESULT STDMETHODCALLTYPE SetRuleIdState(
8454         ULONG ulRuleId,
8455         SPRULESTATE NewState) = 0;
8456 
8457     virtual HRESULT STDMETHODCALLTYPE LoadDictation(
8458         LPCWSTR pszTopicName,
8459         SPLOADOPTIONS Options) = 0;
8460 
8461     virtual HRESULT STDMETHODCALLTYPE UnloadDictation(
8462         ) = 0;
8463 
8464     virtual HRESULT STDMETHODCALLTYPE SetDictationState(
8465         SPRULESTATE NewState) = 0;
8466 
8467     virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData(
8468         const WCHAR *pText,
8469         ULONG cchText,
8470         const SPTEXTSELECTIONINFO *pInfo) = 0;
8471 
8472     virtual HRESULT STDMETHODCALLTYPE SetTextSelection(
8473         const SPTEXTSELECTIONINFO *pInfo) = 0;
8474 
8475     virtual HRESULT STDMETHODCALLTYPE IsPronounceable(
8476         LPCWSTR pszWord,
8477         SPWORDPRONOUNCEABLE *pWordPronounceable) = 0;
8478 
8479     virtual HRESULT STDMETHODCALLTYPE SetGrammarState(
8480         SPGRAMMARSTATE eGrammarState) = 0;
8481 
8482     virtual HRESULT STDMETHODCALLTYPE SaveCmd(
8483         IStream *pStream,
8484         LPWSTR *ppszCoMemErrorText) = 0;
8485 
8486     virtual HRESULT STDMETHODCALLTYPE GetGrammarState(
8487         SPGRAMMARSTATE *peGrammarState) = 0;
8488 
8489 };
8490 #ifdef __CRT_UUID_DECL
8491 __CRT_UUID_DECL(ISpRecoGrammar, 0x2177db29, 0x7f45, 0x47d0, 0x85,0x54, 0x06,0x7e,0x91,0xc8,0x05,0x02)
8492 #endif
8493 #else
8494 typedef struct ISpRecoGrammarVtbl {
8495     BEGIN_INTERFACE
8496 
8497     /*** IUnknown methods ***/
8498     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8499         ISpRecoGrammar *This,
8500         REFIID riid,
8501         void **ppvObject);
8502 
8503     ULONG (STDMETHODCALLTYPE *AddRef)(
8504         ISpRecoGrammar *This);
8505 
8506     ULONG (STDMETHODCALLTYPE *Release)(
8507         ISpRecoGrammar *This);
8508 
8509     /*** ISpGrammarBuilder methods ***/
8510     HRESULT (STDMETHODCALLTYPE *ResetGrammar)(
8511         ISpRecoGrammar *This,
8512         WORD NewLanguage);
8513 
8514     HRESULT (STDMETHODCALLTYPE *GetRule)(
8515         ISpRecoGrammar *This,
8516         LPCWSTR pszRuleName,
8517         DWORD dwRuleId,
8518         DWORD dwAttributes,
8519         WINBOOL fCreateIfNotExist,
8520         SPSTATEHANDLE *phInitialState);
8521 
8522     HRESULT (STDMETHODCALLTYPE *ClearRule)(
8523         ISpRecoGrammar *This,
8524         SPSTATEHANDLE hState);
8525 
8526     HRESULT (STDMETHODCALLTYPE *CreateNewState)(
8527         ISpRecoGrammar *This,
8528         SPSTATEHANDLE hState,
8529         SPSTATEHANDLE *phState);
8530 
8531     HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
8532         ISpRecoGrammar *This,
8533         SPSTATEHANDLE hFromState,
8534         SPSTATEHANDLE hToState,
8535         LPCWSTR psz,
8536         LPCWSTR pszSeparators,
8537         SPGRAMMARWORDTYPE eWordType,
8538         float Weight,
8539         const SPPROPERTYINFO *pPropInfo);
8540 
8541     HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
8542         ISpRecoGrammar *This,
8543         SPSTATEHANDLE hFromState,
8544         SPSTATEHANDLE hToState,
8545         SPSTATEHANDLE hRule,
8546         float Weight,
8547         const SPPROPERTYINFO *pPropInfo);
8548 
8549     HRESULT (STDMETHODCALLTYPE *AddResource)(
8550         ISpRecoGrammar *This,
8551         SPSTATEHANDLE hRuleState,
8552         LPCWSTR pszResourceName,
8553         LPCWSTR pszResourceValue);
8554 
8555     HRESULT (STDMETHODCALLTYPE *Commit)(
8556         ISpRecoGrammar *This,
8557         DWORD dwReserved);
8558 
8559     /*** ISpRecoGrammar methods ***/
8560     HRESULT (STDMETHODCALLTYPE *GetGrammarId)(
8561         ISpRecoGrammar *This,
8562         ULONGLONG *pullGrammarId);
8563 
8564     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
8565         ISpRecoGrammar *This,
8566         ISpRecoContext **ppRecoCtxt);
8567 
8568     HRESULT (STDMETHODCALLTYPE *LoadCmdFromFile)(
8569         ISpRecoGrammar *This,
8570         LPCWSTR pszFileName,
8571         SPLOADOPTIONS Options);
8572 
8573     HRESULT (STDMETHODCALLTYPE *LoadCmdFromObject)(
8574         ISpRecoGrammar *This,
8575         REFCLSID rcid,
8576         LPCWSTR pszGrammarName,
8577         SPLOADOPTIONS Options);
8578 
8579     HRESULT (STDMETHODCALLTYPE *LoadCmdFromResource)(
8580         ISpRecoGrammar *This,
8581         HMODULE hModule,
8582         LPCWSTR pszResourceName,
8583         LPCWSTR pszResourceType,
8584         WORD wLanguage,
8585         SPLOADOPTIONS Options);
8586 
8587     HRESULT (STDMETHODCALLTYPE *LoadCmdFromMemory)(
8588         ISpRecoGrammar *This,
8589         const SPBINARYGRAMMAR *pGrammar,
8590         SPLOADOPTIONS Options);
8591 
8592     HRESULT (STDMETHODCALLTYPE *LoadCmdFromProprietaryGrammar)(
8593         ISpRecoGrammar *This,
8594         REFGUID rguidParam,
8595         LPCWSTR pszStringParam,
8596         const void *pvDataPrarm,
8597         ULONG cbDataSize,
8598         SPLOADOPTIONS Options);
8599 
8600     HRESULT (STDMETHODCALLTYPE *SetRuleState)(
8601         ISpRecoGrammar *This,
8602         LPCWSTR pszName,
8603         void *pReserved,
8604         SPRULESTATE NewState);
8605 
8606     HRESULT (STDMETHODCALLTYPE *SetRuleIdState)(
8607         ISpRecoGrammar *This,
8608         ULONG ulRuleId,
8609         SPRULESTATE NewState);
8610 
8611     HRESULT (STDMETHODCALLTYPE *LoadDictation)(
8612         ISpRecoGrammar *This,
8613         LPCWSTR pszTopicName,
8614         SPLOADOPTIONS Options);
8615 
8616     HRESULT (STDMETHODCALLTYPE *UnloadDictation)(
8617         ISpRecoGrammar *This);
8618 
8619     HRESULT (STDMETHODCALLTYPE *SetDictationState)(
8620         ISpRecoGrammar *This,
8621         SPRULESTATE NewState);
8622 
8623     HRESULT (STDMETHODCALLTYPE *SetWordSequenceData)(
8624         ISpRecoGrammar *This,
8625         const WCHAR *pText,
8626         ULONG cchText,
8627         const SPTEXTSELECTIONINFO *pInfo);
8628 
8629     HRESULT (STDMETHODCALLTYPE *SetTextSelection)(
8630         ISpRecoGrammar *This,
8631         const SPTEXTSELECTIONINFO *pInfo);
8632 
8633     HRESULT (STDMETHODCALLTYPE *IsPronounceable)(
8634         ISpRecoGrammar *This,
8635         LPCWSTR pszWord,
8636         SPWORDPRONOUNCEABLE *pWordPronounceable);
8637 
8638     HRESULT (STDMETHODCALLTYPE *SetGrammarState)(
8639         ISpRecoGrammar *This,
8640         SPGRAMMARSTATE eGrammarState);
8641 
8642     HRESULT (STDMETHODCALLTYPE *SaveCmd)(
8643         ISpRecoGrammar *This,
8644         IStream *pStream,
8645         LPWSTR *ppszCoMemErrorText);
8646 
8647     HRESULT (STDMETHODCALLTYPE *GetGrammarState)(
8648         ISpRecoGrammar *This,
8649         SPGRAMMARSTATE *peGrammarState);
8650 
8651     END_INTERFACE
8652 } ISpRecoGrammarVtbl;
8653 
8654 interface ISpRecoGrammar {
8655     CONST_VTBL ISpRecoGrammarVtbl* lpVtbl;
8656 };
8657 
8658 #ifdef COBJMACROS
8659 #ifndef WIDL_C_INLINE_WRAPPERS
8660 /*** IUnknown methods ***/
8661 #define ISpRecoGrammar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8662 #define ISpRecoGrammar_AddRef(This) (This)->lpVtbl->AddRef(This)
8663 #define ISpRecoGrammar_Release(This) (This)->lpVtbl->Release(This)
8664 /*** ISpGrammarBuilder methods ***/
8665 #define ISpRecoGrammar_ResetGrammar(This,NewLanguage) (This)->lpVtbl->ResetGrammar(This,NewLanguage)
8666 #define ISpRecoGrammar_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState) (This)->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
8667 #define ISpRecoGrammar_ClearRule(This,hState) (This)->lpVtbl->ClearRule(This,hState)
8668 #define ISpRecoGrammar_CreateNewState(This,hState,phState) (This)->lpVtbl->CreateNewState(This,hState,phState)
8669 #define ISpRecoGrammar_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo) (This)->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
8670 #define ISpRecoGrammar_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo) (This)->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
8671 #define ISpRecoGrammar_AddResource(This,hRuleState,pszResourceName,pszResourceValue) (This)->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue)
8672 #define ISpRecoGrammar_Commit(This,dwReserved) (This)->lpVtbl->Commit(This,dwReserved)
8673 /*** ISpRecoGrammar methods ***/
8674 #define ISpRecoGrammar_GetGrammarId(This,pullGrammarId) (This)->lpVtbl->GetGrammarId(This,pullGrammarId)
8675 #define ISpRecoGrammar_GetRecoContext(This,ppRecoCtxt) (This)->lpVtbl->GetRecoContext(This,ppRecoCtxt)
8676 #define ISpRecoGrammar_LoadCmdFromFile(This,pszFileName,Options) (This)->lpVtbl->LoadCmdFromFile(This,pszFileName,Options)
8677 #define ISpRecoGrammar_LoadCmdFromObject(This,rcid,pszGrammarName,Options) (This)->lpVtbl->LoadCmdFromObject(This,rcid,pszGrammarName,Options)
8678 #define ISpRecoGrammar_LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options) (This)->lpVtbl->LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options)
8679 #define ISpRecoGrammar_LoadCmdFromMemory(This,pGrammar,Options) (This)->lpVtbl->LoadCmdFromMemory(This,pGrammar,Options)
8680 #define ISpRecoGrammar_LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options) (This)->lpVtbl->LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options)
8681 #define ISpRecoGrammar_SetRuleState(This,pszName,pReserved,NewState) (This)->lpVtbl->SetRuleState(This,pszName,pReserved,NewState)
8682 #define ISpRecoGrammar_SetRuleIdState(This,ulRuleId,NewState) (This)->lpVtbl->SetRuleIdState(This,ulRuleId,NewState)
8683 #define ISpRecoGrammar_LoadDictation(This,pszTopicName,Options) (This)->lpVtbl->LoadDictation(This,pszTopicName,Options)
8684 #define ISpRecoGrammar_UnloadDictation(This) (This)->lpVtbl->UnloadDictation(This)
8685 #define ISpRecoGrammar_SetDictationState(This,NewState) (This)->lpVtbl->SetDictationState(This,NewState)
8686 #define ISpRecoGrammar_SetWordSequenceData(This,pText,cchText,pInfo) (This)->lpVtbl->SetWordSequenceData(This,pText,cchText,pInfo)
8687 #define ISpRecoGrammar_SetTextSelection(This,pInfo) (This)->lpVtbl->SetTextSelection(This,pInfo)
8688 #define ISpRecoGrammar_IsPronounceable(This,pszWord,pWordPronounceable) (This)->lpVtbl->IsPronounceable(This,pszWord,pWordPronounceable)
8689 #define ISpRecoGrammar_SetGrammarState(This,eGrammarState) (This)->lpVtbl->SetGrammarState(This,eGrammarState)
8690 #define ISpRecoGrammar_SaveCmd(This,pStream,ppszCoMemErrorText) (This)->lpVtbl->SaveCmd(This,pStream,ppszCoMemErrorText)
8691 #define ISpRecoGrammar_GetGrammarState(This,peGrammarState) (This)->lpVtbl->GetGrammarState(This,peGrammarState)
8692 #else
8693 /*** IUnknown methods ***/
8694 static FORCEINLINE HRESULT ISpRecoGrammar_QueryInterface(ISpRecoGrammar* This,REFIID riid,void **ppvObject) {
8695     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8696 }
8697 static FORCEINLINE ULONG ISpRecoGrammar_AddRef(ISpRecoGrammar* This) {
8698     return This->lpVtbl->AddRef(This);
8699 }
8700 static FORCEINLINE ULONG ISpRecoGrammar_Release(ISpRecoGrammar* This) {
8701     return This->lpVtbl->Release(This);
8702 }
8703 /*** ISpGrammarBuilder methods ***/
8704 static FORCEINLINE HRESULT ISpRecoGrammar_ResetGrammar(ISpRecoGrammar* This,WORD NewLanguage) {
8705     return This->lpVtbl->ResetGrammar(This,NewLanguage);
8706 }
8707 static FORCEINLINE HRESULT ISpRecoGrammar_GetRule(ISpRecoGrammar* This,LPCWSTR pszRuleName,DWORD dwRuleId,DWORD dwAttributes,WINBOOL fCreateIfNotExist,SPSTATEHANDLE *phInitialState) {
8708     return This->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState);
8709 }
8710 static FORCEINLINE HRESULT ISpRecoGrammar_ClearRule(ISpRecoGrammar* This,SPSTATEHANDLE hState) {
8711     return This->lpVtbl->ClearRule(This,hState);
8712 }
8713 static FORCEINLINE HRESULT ISpRecoGrammar_CreateNewState(ISpRecoGrammar* This,SPSTATEHANDLE hState,SPSTATEHANDLE *phState) {
8714     return This->lpVtbl->CreateNewState(This,hState,phState);
8715 }
8716 static FORCEINLINE HRESULT ISpRecoGrammar_AddWordTransition(ISpRecoGrammar* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,LPCWSTR pszSeparators,SPGRAMMARWORDTYPE eWordType,float Weight,const SPPROPERTYINFO *pPropInfo) {
8717     return This->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo);
8718 }
8719 static FORCEINLINE HRESULT ISpRecoGrammar_AddRuleTransition(ISpRecoGrammar* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,SPSTATEHANDLE hRule,float Weight,const SPPROPERTYINFO *pPropInfo) {
8720     return This->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo);
8721 }
8722 static FORCEINLINE HRESULT ISpRecoGrammar_AddResource(ISpRecoGrammar* This,SPSTATEHANDLE hRuleState,LPCWSTR pszResourceName,LPCWSTR pszResourceValue) {
8723     return This->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue);
8724 }
8725 static FORCEINLINE HRESULT ISpRecoGrammar_Commit(ISpRecoGrammar* This,DWORD dwReserved) {
8726     return This->lpVtbl->Commit(This,dwReserved);
8727 }
8728 /*** ISpRecoGrammar methods ***/
8729 static FORCEINLINE HRESULT ISpRecoGrammar_GetGrammarId(ISpRecoGrammar* This,ULONGLONG *pullGrammarId) {
8730     return This->lpVtbl->GetGrammarId(This,pullGrammarId);
8731 }
8732 static FORCEINLINE HRESULT ISpRecoGrammar_GetRecoContext(ISpRecoGrammar* This,ISpRecoContext **ppRecoCtxt) {
8733     return This->lpVtbl->GetRecoContext(This,ppRecoCtxt);
8734 }
8735 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromFile(ISpRecoGrammar* This,LPCWSTR pszFileName,SPLOADOPTIONS Options) {
8736     return This->lpVtbl->LoadCmdFromFile(This,pszFileName,Options);
8737 }
8738 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromObject(ISpRecoGrammar* This,REFCLSID rcid,LPCWSTR pszGrammarName,SPLOADOPTIONS Options) {
8739     return This->lpVtbl->LoadCmdFromObject(This,rcid,pszGrammarName,Options);
8740 }
8741 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromResource(ISpRecoGrammar* This,HMODULE hModule,LPCWSTR pszResourceName,LPCWSTR pszResourceType,WORD wLanguage,SPLOADOPTIONS Options) {
8742     return This->lpVtbl->LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options);
8743 }
8744 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromMemory(ISpRecoGrammar* This,const SPBINARYGRAMMAR *pGrammar,SPLOADOPTIONS Options) {
8745     return This->lpVtbl->LoadCmdFromMemory(This,pGrammar,Options);
8746 }
8747 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromProprietaryGrammar(ISpRecoGrammar* This,REFGUID rguidParam,LPCWSTR pszStringParam,const void *pvDataPrarm,ULONG cbDataSize,SPLOADOPTIONS Options) {
8748     return This->lpVtbl->LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options);
8749 }
8750 static FORCEINLINE HRESULT ISpRecoGrammar_SetRuleState(ISpRecoGrammar* This,LPCWSTR pszName,void *pReserved,SPRULESTATE NewState) {
8751     return This->lpVtbl->SetRuleState(This,pszName,pReserved,NewState);
8752 }
8753 static FORCEINLINE HRESULT ISpRecoGrammar_SetRuleIdState(ISpRecoGrammar* This,ULONG ulRuleId,SPRULESTATE NewState) {
8754     return This->lpVtbl->SetRuleIdState(This,ulRuleId,NewState);
8755 }
8756 static FORCEINLINE HRESULT ISpRecoGrammar_LoadDictation(ISpRecoGrammar* This,LPCWSTR pszTopicName,SPLOADOPTIONS Options) {
8757     return This->lpVtbl->LoadDictation(This,pszTopicName,Options);
8758 }
8759 static FORCEINLINE HRESULT ISpRecoGrammar_UnloadDictation(ISpRecoGrammar* This) {
8760     return This->lpVtbl->UnloadDictation(This);
8761 }
8762 static FORCEINLINE HRESULT ISpRecoGrammar_SetDictationState(ISpRecoGrammar* This,SPRULESTATE NewState) {
8763     return This->lpVtbl->SetDictationState(This,NewState);
8764 }
8765 static FORCEINLINE HRESULT ISpRecoGrammar_SetWordSequenceData(ISpRecoGrammar* This,const WCHAR *pText,ULONG cchText,const SPTEXTSELECTIONINFO *pInfo) {
8766     return This->lpVtbl->SetWordSequenceData(This,pText,cchText,pInfo);
8767 }
8768 static FORCEINLINE HRESULT ISpRecoGrammar_SetTextSelection(ISpRecoGrammar* This,const SPTEXTSELECTIONINFO *pInfo) {
8769     return This->lpVtbl->SetTextSelection(This,pInfo);
8770 }
8771 static FORCEINLINE HRESULT ISpRecoGrammar_IsPronounceable(ISpRecoGrammar* This,LPCWSTR pszWord,SPWORDPRONOUNCEABLE *pWordPronounceable) {
8772     return This->lpVtbl->IsPronounceable(This,pszWord,pWordPronounceable);
8773 }
8774 static FORCEINLINE HRESULT ISpRecoGrammar_SetGrammarState(ISpRecoGrammar* This,SPGRAMMARSTATE eGrammarState) {
8775     return This->lpVtbl->SetGrammarState(This,eGrammarState);
8776 }
8777 static FORCEINLINE HRESULT ISpRecoGrammar_SaveCmd(ISpRecoGrammar* This,IStream *pStream,LPWSTR *ppszCoMemErrorText) {
8778     return This->lpVtbl->SaveCmd(This,pStream,ppszCoMemErrorText);
8779 }
8780 static FORCEINLINE HRESULT ISpRecoGrammar_GetGrammarState(ISpRecoGrammar* This,SPGRAMMARSTATE *peGrammarState) {
8781     return This->lpVtbl->GetGrammarState(This,peGrammarState);
8782 }
8783 #endif
8784 #endif
8785 
8786 #endif
8787 
8788 
8789 #endif  /* __ISpRecoGrammar_INTERFACE_DEFINED__ */
8790 
8791 typedef enum SPMATCHINGMODE {
8792     AllWords = 0,
8793     Subsequence = 1,
8794     OrderedSubset = 3,
8795     SubsequenceContentRequired = 5,
8796     OrderedSubsetContentRequired = 7
8797 } SPMATCHINGMODE;
8798 typedef enum PHONETICALPHABET {
8799     PA_Ipa = 0,
8800     PA_Ups = 1,
8801     PA_Sapi = 2
8802 } PHONETICALPHABET;
8803 /*****************************************************************************
8804  * ISpGrammarBuilder2 interface
8805  */
8806 #ifndef __ISpGrammarBuilder2_INTERFACE_DEFINED__
8807 #define __ISpGrammarBuilder2_INTERFACE_DEFINED__
8808 
8809 DEFINE_GUID(IID_ISpGrammarBuilder2, 0x8ab10026, 0x20cc, 0x4b20, 0x8c,0x22, 0xa4,0x9c,0x9b,0xa7,0x8f,0x60);
8810 #if defined(__cplusplus) && !defined(CINTERFACE)
8811 MIDL_INTERFACE("8ab10026-20cc-4b20-8c22-a49c9ba78f60")
8812 ISpGrammarBuilder2 : public IUnknown
8813 {
8814     virtual HRESULT STDMETHODCALLTYPE AddTextSubset(
8815         SPSTATEHANDLE hFromState,
8816         SPSTATEHANDLE hToState,
8817         LPCWSTR psz,
8818         SPMATCHINGMODE eMatchMode) = 0;
8819 
8820     virtual HRESULT STDMETHODCALLTYPE SetPhoneticAlphabet(
8821         PHONETICALPHABET phoneticALphabet) = 0;
8822 
8823 };
8824 #ifdef __CRT_UUID_DECL
8825 __CRT_UUID_DECL(ISpGrammarBuilder2, 0x8ab10026, 0x20cc, 0x4b20, 0x8c,0x22, 0xa4,0x9c,0x9b,0xa7,0x8f,0x60)
8826 #endif
8827 #else
8828 typedef struct ISpGrammarBuilder2Vtbl {
8829     BEGIN_INTERFACE
8830 
8831     /*** IUnknown methods ***/
8832     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8833         ISpGrammarBuilder2 *This,
8834         REFIID riid,
8835         void **ppvObject);
8836 
8837     ULONG (STDMETHODCALLTYPE *AddRef)(
8838         ISpGrammarBuilder2 *This);
8839 
8840     ULONG (STDMETHODCALLTYPE *Release)(
8841         ISpGrammarBuilder2 *This);
8842 
8843     /*** ISpGrammarBuilder2 methods ***/
8844     HRESULT (STDMETHODCALLTYPE *AddTextSubset)(
8845         ISpGrammarBuilder2 *This,
8846         SPSTATEHANDLE hFromState,
8847         SPSTATEHANDLE hToState,
8848         LPCWSTR psz,
8849         SPMATCHINGMODE eMatchMode);
8850 
8851     HRESULT (STDMETHODCALLTYPE *SetPhoneticAlphabet)(
8852         ISpGrammarBuilder2 *This,
8853         PHONETICALPHABET phoneticALphabet);
8854 
8855     END_INTERFACE
8856 } ISpGrammarBuilder2Vtbl;
8857 
8858 interface ISpGrammarBuilder2 {
8859     CONST_VTBL ISpGrammarBuilder2Vtbl* lpVtbl;
8860 };
8861 
8862 #ifdef COBJMACROS
8863 #ifndef WIDL_C_INLINE_WRAPPERS
8864 /*** IUnknown methods ***/
8865 #define ISpGrammarBuilder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8866 #define ISpGrammarBuilder2_AddRef(This) (This)->lpVtbl->AddRef(This)
8867 #define ISpGrammarBuilder2_Release(This) (This)->lpVtbl->Release(This)
8868 /*** ISpGrammarBuilder2 methods ***/
8869 #define ISpGrammarBuilder2_AddTextSubset(This,hFromState,hToState,psz,eMatchMode) (This)->lpVtbl->AddTextSubset(This,hFromState,hToState,psz,eMatchMode)
8870 #define ISpGrammarBuilder2_SetPhoneticAlphabet(This,phoneticALphabet) (This)->lpVtbl->SetPhoneticAlphabet(This,phoneticALphabet)
8871 #else
8872 /*** IUnknown methods ***/
8873 static FORCEINLINE HRESULT ISpGrammarBuilder2_QueryInterface(ISpGrammarBuilder2* This,REFIID riid,void **ppvObject) {
8874     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8875 }
8876 static FORCEINLINE ULONG ISpGrammarBuilder2_AddRef(ISpGrammarBuilder2* This) {
8877     return This->lpVtbl->AddRef(This);
8878 }
8879 static FORCEINLINE ULONG ISpGrammarBuilder2_Release(ISpGrammarBuilder2* This) {
8880     return This->lpVtbl->Release(This);
8881 }
8882 /*** ISpGrammarBuilder2 methods ***/
8883 static FORCEINLINE HRESULT ISpGrammarBuilder2_AddTextSubset(ISpGrammarBuilder2* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,SPMATCHINGMODE eMatchMode) {
8884     return This->lpVtbl->AddTextSubset(This,hFromState,hToState,psz,eMatchMode);
8885 }
8886 static FORCEINLINE HRESULT ISpGrammarBuilder2_SetPhoneticAlphabet(ISpGrammarBuilder2* This,PHONETICALPHABET phoneticALphabet) {
8887     return This->lpVtbl->SetPhoneticAlphabet(This,phoneticALphabet);
8888 }
8889 #endif
8890 #endif
8891 
8892 #endif
8893 
8894 
8895 #endif  /* __ISpGrammarBuilder2_INTERFACE_DEFINED__ */
8896 
8897 #define SPRP_NORMAL 0
8898 /*****************************************************************************
8899  * ISpRecoGrammar2 interface
8900  */
8901 #ifndef __ISpRecoGrammar2_INTERFACE_DEFINED__
8902 #define __ISpRecoGrammar2_INTERFACE_DEFINED__
8903 
8904 DEFINE_GUID(IID_ISpRecoGrammar2, 0x4b37bc9e, 0x9ed6, 0x44a3, 0x93,0xd3, 0x18,0xf0,0x22,0xb7,0x9e,0xc3);
8905 #if defined(__cplusplus) && !defined(CINTERFACE)
8906 MIDL_INTERFACE("4b37bc9e-9ed6-44a3-93d3-18f022b79ec3")
8907 ISpRecoGrammar2 : public IUnknown
8908 {
8909     virtual HRESULT STDMETHODCALLTYPE GetRules(
8910         SPRULE **ppCoMemRules,
8911         UINT *puNumRules) = 0;
8912 
8913     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromFile2(
8914         LPCWSTR pszFileName,
8915         SPLOADOPTIONS Options,
8916         LPCWSTR pszSharingUri,
8917         LPCWSTR pszBaseUri) = 0;
8918 
8919     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromMemory2(
8920         const SPBINARYGRAMMAR *pGrammar,
8921         SPLOADOPTIONS Options,
8922         LPCWSTR pszSharingUri,
8923         LPCWSTR pszBaseUri) = 0;
8924 
8925     virtual HRESULT STDMETHODCALLTYPE SetRulePriority(
8926         LPCWSTR pszRuleName,
8927         ULONG ulRuleId,
8928         int nRulePriority) = 0;
8929 
8930     virtual HRESULT STDMETHODCALLTYPE SetRuleWeight(
8931         LPCWSTR pszRuleName,
8932         ULONG ulRuleId,
8933         float flWeight) = 0;
8934 
8935     virtual HRESULT STDMETHODCALLTYPE SetDictationWeight(
8936         float flWeight) = 0;
8937 
8938     virtual HRESULT STDMETHODCALLTYPE SetGrammarLoader(
8939         ISpeechResourceLoader *pLoader) = 0;
8940 
8941     virtual HRESULT STDMETHODCALLTYPE SetSMLSecurityManager(
8942         IInternetSecurityManager *pSMLSecurityManager) = 0;
8943 
8944 };
8945 #ifdef __CRT_UUID_DECL
8946 __CRT_UUID_DECL(ISpRecoGrammar2, 0x4b37bc9e, 0x9ed6, 0x44a3, 0x93,0xd3, 0x18,0xf0,0x22,0xb7,0x9e,0xc3)
8947 #endif
8948 #else
8949 typedef struct ISpRecoGrammar2Vtbl {
8950     BEGIN_INTERFACE
8951 
8952     /*** IUnknown methods ***/
8953     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8954         ISpRecoGrammar2 *This,
8955         REFIID riid,
8956         void **ppvObject);
8957 
8958     ULONG (STDMETHODCALLTYPE *AddRef)(
8959         ISpRecoGrammar2 *This);
8960 
8961     ULONG (STDMETHODCALLTYPE *Release)(
8962         ISpRecoGrammar2 *This);
8963 
8964     /*** ISpRecoGrammar2 methods ***/
8965     HRESULT (STDMETHODCALLTYPE *GetRules)(
8966         ISpRecoGrammar2 *This,
8967         SPRULE **ppCoMemRules,
8968         UINT *puNumRules);
8969 
8970     HRESULT (STDMETHODCALLTYPE *LoadCmdFromFile2)(
8971         ISpRecoGrammar2 *This,
8972         LPCWSTR pszFileName,
8973         SPLOADOPTIONS Options,
8974         LPCWSTR pszSharingUri,
8975         LPCWSTR pszBaseUri);
8976 
8977     HRESULT (STDMETHODCALLTYPE *LoadCmdFromMemory2)(
8978         ISpRecoGrammar2 *This,
8979         const SPBINARYGRAMMAR *pGrammar,
8980         SPLOADOPTIONS Options,
8981         LPCWSTR pszSharingUri,
8982         LPCWSTR pszBaseUri);
8983 
8984     HRESULT (STDMETHODCALLTYPE *SetRulePriority)(
8985         ISpRecoGrammar2 *This,
8986         LPCWSTR pszRuleName,
8987         ULONG ulRuleId,
8988         int nRulePriority);
8989 
8990     HRESULT (STDMETHODCALLTYPE *SetRuleWeight)(
8991         ISpRecoGrammar2 *This,
8992         LPCWSTR pszRuleName,
8993         ULONG ulRuleId,
8994         float flWeight);
8995 
8996     HRESULT (STDMETHODCALLTYPE *SetDictationWeight)(
8997         ISpRecoGrammar2 *This,
8998         float flWeight);
8999 
9000     HRESULT (STDMETHODCALLTYPE *SetGrammarLoader)(
9001         ISpRecoGrammar2 *This,
9002         ISpeechResourceLoader *pLoader);
9003 
9004     HRESULT (STDMETHODCALLTYPE *SetSMLSecurityManager)(
9005         ISpRecoGrammar2 *This,
9006         IInternetSecurityManager *pSMLSecurityManager);
9007 
9008     END_INTERFACE
9009 } ISpRecoGrammar2Vtbl;
9010 
9011 interface ISpRecoGrammar2 {
9012     CONST_VTBL ISpRecoGrammar2Vtbl* lpVtbl;
9013 };
9014 
9015 #ifdef COBJMACROS
9016 #ifndef WIDL_C_INLINE_WRAPPERS
9017 /*** IUnknown methods ***/
9018 #define ISpRecoGrammar2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9019 #define ISpRecoGrammar2_AddRef(This) (This)->lpVtbl->AddRef(This)
9020 #define ISpRecoGrammar2_Release(This) (This)->lpVtbl->Release(This)
9021 /*** ISpRecoGrammar2 methods ***/
9022 #define ISpRecoGrammar2_GetRules(This,ppCoMemRules,puNumRules) (This)->lpVtbl->GetRules(This,ppCoMemRules,puNumRules)
9023 #define ISpRecoGrammar2_LoadCmdFromFile2(This,pszFileName,Options,pszSharingUri,pszBaseUri) (This)->lpVtbl->LoadCmdFromFile2(This,pszFileName,Options,pszSharingUri,pszBaseUri)
9024 #define ISpRecoGrammar2_LoadCmdFromMemory2(This,pGrammar,Options,pszSharingUri,pszBaseUri) (This)->lpVtbl->LoadCmdFromMemory2(This,pGrammar,Options,pszSharingUri,pszBaseUri)
9025 #define ISpRecoGrammar2_SetRulePriority(This,pszRuleName,ulRuleId,nRulePriority) (This)->lpVtbl->SetRulePriority(This,pszRuleName,ulRuleId,nRulePriority)
9026 #define ISpRecoGrammar2_SetRuleWeight(This,pszRuleName,ulRuleId,flWeight) (This)->lpVtbl->SetRuleWeight(This,pszRuleName,ulRuleId,flWeight)
9027 #define ISpRecoGrammar2_SetDictationWeight(This,flWeight) (This)->lpVtbl->SetDictationWeight(This,flWeight)
9028 #define ISpRecoGrammar2_SetGrammarLoader(This,pLoader) (This)->lpVtbl->SetGrammarLoader(This,pLoader)
9029 #define ISpRecoGrammar2_SetSMLSecurityManager(This,pSMLSecurityManager) (This)->lpVtbl->SetSMLSecurityManager(This,pSMLSecurityManager)
9030 #else
9031 /*** IUnknown methods ***/
9032 static FORCEINLINE HRESULT ISpRecoGrammar2_QueryInterface(ISpRecoGrammar2* This,REFIID riid,void **ppvObject) {
9033     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9034 }
9035 static FORCEINLINE ULONG ISpRecoGrammar2_AddRef(ISpRecoGrammar2* This) {
9036     return This->lpVtbl->AddRef(This);
9037 }
9038 static FORCEINLINE ULONG ISpRecoGrammar2_Release(ISpRecoGrammar2* This) {
9039     return This->lpVtbl->Release(This);
9040 }
9041 /*** ISpRecoGrammar2 methods ***/
9042 static FORCEINLINE HRESULT ISpRecoGrammar2_GetRules(ISpRecoGrammar2* This,SPRULE **ppCoMemRules,UINT *puNumRules) {
9043     return This->lpVtbl->GetRules(This,ppCoMemRules,puNumRules);
9044 }
9045 static FORCEINLINE HRESULT ISpRecoGrammar2_LoadCmdFromFile2(ISpRecoGrammar2* This,LPCWSTR pszFileName,SPLOADOPTIONS Options,LPCWSTR pszSharingUri,LPCWSTR pszBaseUri) {
9046     return This->lpVtbl->LoadCmdFromFile2(This,pszFileName,Options,pszSharingUri,pszBaseUri);
9047 }
9048 static FORCEINLINE HRESULT ISpRecoGrammar2_LoadCmdFromMemory2(ISpRecoGrammar2* This,const SPBINARYGRAMMAR *pGrammar,SPLOADOPTIONS Options,LPCWSTR pszSharingUri,LPCWSTR pszBaseUri) {
9049     return This->lpVtbl->LoadCmdFromMemory2(This,pGrammar,Options,pszSharingUri,pszBaseUri);
9050 }
9051 static FORCEINLINE HRESULT ISpRecoGrammar2_SetRulePriority(ISpRecoGrammar2* This,LPCWSTR pszRuleName,ULONG ulRuleId,int nRulePriority) {
9052     return This->lpVtbl->SetRulePriority(This,pszRuleName,ulRuleId,nRulePriority);
9053 }
9054 static FORCEINLINE HRESULT ISpRecoGrammar2_SetRuleWeight(ISpRecoGrammar2* This,LPCWSTR pszRuleName,ULONG ulRuleId,float flWeight) {
9055     return This->lpVtbl->SetRuleWeight(This,pszRuleName,ulRuleId,flWeight);
9056 }
9057 static FORCEINLINE HRESULT ISpRecoGrammar2_SetDictationWeight(ISpRecoGrammar2* This,float flWeight) {
9058     return This->lpVtbl->SetDictationWeight(This,flWeight);
9059 }
9060 static FORCEINLINE HRESULT ISpRecoGrammar2_SetGrammarLoader(ISpRecoGrammar2* This,ISpeechResourceLoader *pLoader) {
9061     return This->lpVtbl->SetGrammarLoader(This,pLoader);
9062 }
9063 static FORCEINLINE HRESULT ISpRecoGrammar2_SetSMLSecurityManager(ISpRecoGrammar2* This,IInternetSecurityManager *pSMLSecurityManager) {
9064     return This->lpVtbl->SetSMLSecurityManager(This,pSMLSecurityManager);
9065 }
9066 #endif
9067 #endif
9068 
9069 #endif
9070 
9071 
9072 #endif  /* __ISpRecoGrammar2_INTERFACE_DEFINED__ */
9073 
9074 /*****************************************************************************
9075  * ISpeechResourceLoader interface
9076  */
9077 #ifndef __ISpeechResourceLoader_INTERFACE_DEFINED__
9078 #define __ISpeechResourceLoader_INTERFACE_DEFINED__
9079 
9080 DEFINE_GUID(IID_ISpeechResourceLoader, 0xb9ac5783, 0xfcd0, 0x4b21, 0xb1,0x19, 0xb4,0xf8,0xda,0x8f,0xd2,0xc3);
9081 #if defined(__cplusplus) && !defined(CINTERFACE)
9082 MIDL_INTERFACE("b9ac5783-fcd0-4b21-b119-b4f8da8fd2c3")
9083 ISpeechResourceLoader : public IDispatch
9084 {
9085     virtual HRESULT STDMETHODCALLTYPE LoadResource(
9086         BSTR bstrResourceUri,
9087         VARIANT_BOOL fAlwaysReload,
9088         IUnknown **pStream,
9089         BSTR *pbstrMIMEType,
9090         VARIANT_BOOL *pfModified,
9091         BSTR *pbstrRedirectUrl) = 0;
9092 
9093     virtual HRESULT STDMETHODCALLTYPE GetLocalCopy(
9094         BSTR bstrResourceUri,
9095         BSTR *pbstrLocalPath,
9096         BSTR *pbstrMIMEType,
9097         BSTR *pbstrRedirectUrl) = 0;
9098 
9099     virtual HRESULT STDMETHODCALLTYPE ReleaseLocalCopy(
9100         BSTR pbstrLocalPath) = 0;
9101 
9102 };
9103 #ifdef __CRT_UUID_DECL
9104 __CRT_UUID_DECL(ISpeechResourceLoader, 0xb9ac5783, 0xfcd0, 0x4b21, 0xb1,0x19, 0xb4,0xf8,0xda,0x8f,0xd2,0xc3)
9105 #endif
9106 #else
9107 typedef struct ISpeechResourceLoaderVtbl {
9108     BEGIN_INTERFACE
9109 
9110     /*** IUnknown methods ***/
9111     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9112         ISpeechResourceLoader *This,
9113         REFIID riid,
9114         void **ppvObject);
9115 
9116     ULONG (STDMETHODCALLTYPE *AddRef)(
9117         ISpeechResourceLoader *This);
9118 
9119     ULONG (STDMETHODCALLTYPE *Release)(
9120         ISpeechResourceLoader *This);
9121 
9122     /*** IDispatch methods ***/
9123     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
9124         ISpeechResourceLoader *This,
9125         UINT *pctinfo);
9126 
9127     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
9128         ISpeechResourceLoader *This,
9129         UINT iTInfo,
9130         LCID lcid,
9131         ITypeInfo **ppTInfo);
9132 
9133     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
9134         ISpeechResourceLoader *This,
9135         REFIID riid,
9136         LPOLESTR *rgszNames,
9137         UINT cNames,
9138         LCID lcid,
9139         DISPID *rgDispId);
9140 
9141     HRESULT (STDMETHODCALLTYPE *Invoke)(
9142         ISpeechResourceLoader *This,
9143         DISPID dispIdMember,
9144         REFIID riid,
9145         LCID lcid,
9146         WORD wFlags,
9147         DISPPARAMS *pDispParams,
9148         VARIANT *pVarResult,
9149         EXCEPINFO *pExcepInfo,
9150         UINT *puArgErr);
9151 
9152     /*** ISpeechResourceLoader methods ***/
9153     HRESULT (STDMETHODCALLTYPE *LoadResource)(
9154         ISpeechResourceLoader *This,
9155         BSTR bstrResourceUri,
9156         VARIANT_BOOL fAlwaysReload,
9157         IUnknown **pStream,
9158         BSTR *pbstrMIMEType,
9159         VARIANT_BOOL *pfModified,
9160         BSTR *pbstrRedirectUrl);
9161 
9162     HRESULT (STDMETHODCALLTYPE *GetLocalCopy)(
9163         ISpeechResourceLoader *This,
9164         BSTR bstrResourceUri,
9165         BSTR *pbstrLocalPath,
9166         BSTR *pbstrMIMEType,
9167         BSTR *pbstrRedirectUrl);
9168 
9169     HRESULT (STDMETHODCALLTYPE *ReleaseLocalCopy)(
9170         ISpeechResourceLoader *This,
9171         BSTR pbstrLocalPath);
9172 
9173     END_INTERFACE
9174 } ISpeechResourceLoaderVtbl;
9175 
9176 interface ISpeechResourceLoader {
9177     CONST_VTBL ISpeechResourceLoaderVtbl* lpVtbl;
9178 };
9179 
9180 #ifdef COBJMACROS
9181 #ifndef WIDL_C_INLINE_WRAPPERS
9182 /*** IUnknown methods ***/
9183 #define ISpeechResourceLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9184 #define ISpeechResourceLoader_AddRef(This) (This)->lpVtbl->AddRef(This)
9185 #define ISpeechResourceLoader_Release(This) (This)->lpVtbl->Release(This)
9186 /*** IDispatch methods ***/
9187 #define ISpeechResourceLoader_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
9188 #define ISpeechResourceLoader_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
9189 #define ISpeechResourceLoader_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
9190 #define ISpeechResourceLoader_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
9191 /*** ISpeechResourceLoader methods ***/
9192 #define ISpeechResourceLoader_LoadResource(This,bstrResourceUri,fAlwaysReload,pStream,pbstrMIMEType,pfModified,pbstrRedirectUrl) (This)->lpVtbl->LoadResource(This,bstrResourceUri,fAlwaysReload,pStream,pbstrMIMEType,pfModified,pbstrRedirectUrl)
9193 #define ISpeechResourceLoader_GetLocalCopy(This,bstrResourceUri,pbstrLocalPath,pbstrMIMEType,pbstrRedirectUrl) (This)->lpVtbl->GetLocalCopy(This,bstrResourceUri,pbstrLocalPath,pbstrMIMEType,pbstrRedirectUrl)
9194 #define ISpeechResourceLoader_ReleaseLocalCopy(This,pbstrLocalPath) (This)->lpVtbl->ReleaseLocalCopy(This,pbstrLocalPath)
9195 #else
9196 /*** IUnknown methods ***/
9197 static FORCEINLINE HRESULT ISpeechResourceLoader_QueryInterface(ISpeechResourceLoader* This,REFIID riid,void **ppvObject) {
9198     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9199 }
9200 static FORCEINLINE ULONG ISpeechResourceLoader_AddRef(ISpeechResourceLoader* This) {
9201     return This->lpVtbl->AddRef(This);
9202 }
9203 static FORCEINLINE ULONG ISpeechResourceLoader_Release(ISpeechResourceLoader* This) {
9204     return This->lpVtbl->Release(This);
9205 }
9206 /*** IDispatch methods ***/
9207 static FORCEINLINE HRESULT ISpeechResourceLoader_GetTypeInfoCount(ISpeechResourceLoader* This,UINT *pctinfo) {
9208     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
9209 }
9210 static FORCEINLINE HRESULT ISpeechResourceLoader_GetTypeInfo(ISpeechResourceLoader* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
9211     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
9212 }
9213 static FORCEINLINE HRESULT ISpeechResourceLoader_GetIDsOfNames(ISpeechResourceLoader* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
9214     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
9215 }
9216 static FORCEINLINE HRESULT ISpeechResourceLoader_Invoke(ISpeechResourceLoader* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
9217     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
9218 }
9219 /*** ISpeechResourceLoader methods ***/
9220 static FORCEINLINE HRESULT ISpeechResourceLoader_LoadResource(ISpeechResourceLoader* This,BSTR bstrResourceUri,VARIANT_BOOL fAlwaysReload,IUnknown **pStream,BSTR *pbstrMIMEType,VARIANT_BOOL *pfModified,BSTR *pbstrRedirectUrl) {
9221     return This->lpVtbl->LoadResource(This,bstrResourceUri,fAlwaysReload,pStream,pbstrMIMEType,pfModified,pbstrRedirectUrl);
9222 }
9223 static FORCEINLINE HRESULT ISpeechResourceLoader_GetLocalCopy(ISpeechResourceLoader* This,BSTR bstrResourceUri,BSTR *pbstrLocalPath,BSTR *pbstrMIMEType,BSTR *pbstrRedirectUrl) {
9224     return This->lpVtbl->GetLocalCopy(This,bstrResourceUri,pbstrLocalPath,pbstrMIMEType,pbstrRedirectUrl);
9225 }
9226 static FORCEINLINE HRESULT ISpeechResourceLoader_ReleaseLocalCopy(ISpeechResourceLoader* This,BSTR pbstrLocalPath) {
9227     return This->lpVtbl->ReleaseLocalCopy(This,pbstrLocalPath);
9228 }
9229 #endif
9230 #endif
9231 
9232 #endif
9233 
9234 
9235 #endif  /* __ISpeechResourceLoader_INTERFACE_DEFINED__ */
9236 
9237 typedef struct SPRECOCONTEXTSTATUS {
9238     SPINTERFERENCE eInterference;
9239     WCHAR szRequestTypeOfUI[255];
9240     DWORD dwReserved1;
9241     DWORD dwReserved2;
9242 } SPRECOCONTEXTSTATUS;
9243 typedef enum SPBOOKMARKOPTIONS {
9244     SPBO_NONE = 0,
9245     SPBO_PAUSE = 0x1,
9246     SPBO_AHEAD = 0x2,
9247     SPBO_TIME_UNITS = 0x4
9248 } SPBOOKMARKOPTIONS;
9249 typedef enum SPAUDIOOPTIONS {
9250     SPAO_NONE = 0,
9251     SPAO_RETAIN_AUDIO = 0x1
9252 } SPAUDIOOPTIONS;
9253 /*****************************************************************************
9254  * ISpRecoContext interface
9255  */
9256 #ifndef __ISpRecoContext_INTERFACE_DEFINED__
9257 #define __ISpRecoContext_INTERFACE_DEFINED__
9258 
9259 DEFINE_GUID(IID_ISpRecoContext, 0xf740a62f, 0x7c15, 0x489e, 0x82,0x34, 0x94,0x0a,0x33,0xd9,0x27,0x2d);
9260 #if defined(__cplusplus) && !defined(CINTERFACE)
9261 MIDL_INTERFACE("f740a62f-7c15-489e-8234-940a33d9272d")
9262 ISpRecoContext : public ISpEventSource
9263 {
9264     virtual HRESULT STDMETHODCALLTYPE GetRecognizer(
9265         ISpRecognizer **ppRecognizer) = 0;
9266 
9267     virtual HRESULT STDMETHODCALLTYPE CreateGrammar(
9268         ULONGLONG ullGrammarId,
9269         ISpRecoGrammar **ppGrammar) = 0;
9270 
9271     virtual HRESULT STDMETHODCALLTYPE GetStatus(
9272         SPRECOCONTEXTSTATUS *pStatus) = 0;
9273 
9274     virtual HRESULT STDMETHODCALLTYPE GetMaxAlternates(
9275         ULONG *pcAlternates) = 0;
9276 
9277     virtual HRESULT STDMETHODCALLTYPE SetMaxAlternates(
9278         ULONG cAlternates) = 0;
9279 
9280     virtual HRESULT STDMETHODCALLTYPE SetAudioOptions(
9281         SPAUDIOOPTIONS Options,
9282         const GUID *pAudioFormatId,
9283         const WAVEFORMATEX *pWaveFormatEx) = 0;
9284 
9285     virtual HRESULT STDMETHODCALLTYPE GetAudioOptions(
9286         SPAUDIOOPTIONS *pOptions,
9287         GUID *pAudioFormatId,
9288         WAVEFORMATEX **ppCoMemWFEX) = 0;
9289 
9290     virtual HRESULT STDMETHODCALLTYPE DeserializeResult(
9291         const SPSERIALIZEDRESULT *pSerializedResult,
9292         ISpRecoResult **ppResult) = 0;
9293 
9294     virtual HRESULT STDMETHODCALLTYPE Bookmark(
9295         SPBOOKMARKOPTIONS Options,
9296         ULONGLONG ullStreamPosition,
9297         LPARAM lparamEvent) = 0;
9298 
9299     virtual HRESULT STDMETHODCALLTYPE SetAdaptationData(
9300         LPCWSTR pAdaptationData,
9301         const ULONG cch) = 0;
9302 
9303     virtual HRESULT STDMETHODCALLTYPE Pause(
9304         DWORD dwReserved) = 0;
9305 
9306     virtual HRESULT STDMETHODCALLTYPE Resume(
9307         DWORD dwReserved) = 0;
9308 
9309     virtual HRESULT STDMETHODCALLTYPE SetVoice(
9310         ISpVoice *pVoice,
9311         WINBOOL fAllowFormatChanges) = 0;
9312 
9313     virtual HRESULT STDMETHODCALLTYPE GetVoice(
9314         ISpVoice **ppVoice) = 0;
9315 
9316     virtual HRESULT STDMETHODCALLTYPE SetVoicePurgeEvent(
9317         ULONGLONG ullEventInterest) = 0;
9318 
9319     virtual HRESULT STDMETHODCALLTYPE GetVoicePurgeEvent(
9320         ULONGLONG *pullEventInterest) = 0;
9321 
9322     virtual HRESULT STDMETHODCALLTYPE SetContextState(
9323         SPCONTEXTSTATE eContextState) = 0;
9324 
9325     virtual HRESULT STDMETHODCALLTYPE GetContextState(
9326         SPCONTEXTSTATE *peContextState) = 0;
9327 
9328 };
9329 #ifdef __CRT_UUID_DECL
9330 __CRT_UUID_DECL(ISpRecoContext, 0xf740a62f, 0x7c15, 0x489e, 0x82,0x34, 0x94,0x0a,0x33,0xd9,0x27,0x2d)
9331 #endif
9332 #else
9333 typedef struct ISpRecoContextVtbl {
9334     BEGIN_INTERFACE
9335 
9336     /*** IUnknown methods ***/
9337     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9338         ISpRecoContext *This,
9339         REFIID riid,
9340         void **ppvObject);
9341 
9342     ULONG (STDMETHODCALLTYPE *AddRef)(
9343         ISpRecoContext *This);
9344 
9345     ULONG (STDMETHODCALLTYPE *Release)(
9346         ISpRecoContext *This);
9347 
9348     /*** ISpNotifySource methods ***/
9349     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
9350         ISpRecoContext *This,
9351         ISpNotifySink *pNotifySink);
9352 
9353     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
9354         ISpRecoContext *This,
9355         HWND hWnd,
9356         UINT Msg,
9357         WPARAM wParam,
9358         LPARAM lParam);
9359 
9360     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
9361         ISpRecoContext *This,
9362         SPNOTIFYCALLBACK *pfnCallback,
9363         WPARAM wParam,
9364         LPARAM lParam);
9365 
9366     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
9367         ISpRecoContext *This,
9368         ISpNotifyCallback *pSpCallback,
9369         WPARAM wParam,
9370         LPARAM lParam);
9371 
9372     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
9373         ISpRecoContext *This);
9374 
9375     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
9376         ISpRecoContext *This,
9377         DWORD dwMilliseconds);
9378 
9379     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
9380         ISpRecoContext *This);
9381 
9382     /*** ISpEventSource methods ***/
9383     HRESULT (STDMETHODCALLTYPE *SetInterest)(
9384         ISpRecoContext *This,
9385         ULONGLONG ullEventInterest,
9386         ULONGLONG ullQueuedInterest);
9387 
9388     HRESULT (STDMETHODCALLTYPE *GetEvents)(
9389         ISpRecoContext *This,
9390         ULONG ulCount,
9391         SPEVENT *pEventArray,
9392         ULONG *pulFetched);
9393 
9394     HRESULT (STDMETHODCALLTYPE *GetInfo)(
9395         ISpRecoContext *This,
9396         SPEVENTSOURCEINFO *pInfo);
9397 
9398     /*** ISpRecoContext methods ***/
9399     HRESULT (STDMETHODCALLTYPE *GetRecognizer)(
9400         ISpRecoContext *This,
9401         ISpRecognizer **ppRecognizer);
9402 
9403     HRESULT (STDMETHODCALLTYPE *CreateGrammar)(
9404         ISpRecoContext *This,
9405         ULONGLONG ullGrammarId,
9406         ISpRecoGrammar **ppGrammar);
9407 
9408     HRESULT (STDMETHODCALLTYPE *GetStatus)(
9409         ISpRecoContext *This,
9410         SPRECOCONTEXTSTATUS *pStatus);
9411 
9412     HRESULT (STDMETHODCALLTYPE *GetMaxAlternates)(
9413         ISpRecoContext *This,
9414         ULONG *pcAlternates);
9415 
9416     HRESULT (STDMETHODCALLTYPE *SetMaxAlternates)(
9417         ISpRecoContext *This,
9418         ULONG cAlternates);
9419 
9420     HRESULT (STDMETHODCALLTYPE *SetAudioOptions)(
9421         ISpRecoContext *This,
9422         SPAUDIOOPTIONS Options,
9423         const GUID *pAudioFormatId,
9424         const WAVEFORMATEX *pWaveFormatEx);
9425 
9426     HRESULT (STDMETHODCALLTYPE *GetAudioOptions)(
9427         ISpRecoContext *This,
9428         SPAUDIOOPTIONS *pOptions,
9429         GUID *pAudioFormatId,
9430         WAVEFORMATEX **ppCoMemWFEX);
9431 
9432     HRESULT (STDMETHODCALLTYPE *DeserializeResult)(
9433         ISpRecoContext *This,
9434         const SPSERIALIZEDRESULT *pSerializedResult,
9435         ISpRecoResult **ppResult);
9436 
9437     HRESULT (STDMETHODCALLTYPE *Bookmark)(
9438         ISpRecoContext *This,
9439         SPBOOKMARKOPTIONS Options,
9440         ULONGLONG ullStreamPosition,
9441         LPARAM lparamEvent);
9442 
9443     HRESULT (STDMETHODCALLTYPE *SetAdaptationData)(
9444         ISpRecoContext *This,
9445         LPCWSTR pAdaptationData,
9446         const ULONG cch);
9447 
9448     HRESULT (STDMETHODCALLTYPE *Pause)(
9449         ISpRecoContext *This,
9450         DWORD dwReserved);
9451 
9452     HRESULT (STDMETHODCALLTYPE *Resume)(
9453         ISpRecoContext *This,
9454         DWORD dwReserved);
9455 
9456     HRESULT (STDMETHODCALLTYPE *SetVoice)(
9457         ISpRecoContext *This,
9458         ISpVoice *pVoice,
9459         WINBOOL fAllowFormatChanges);
9460 
9461     HRESULT (STDMETHODCALLTYPE *GetVoice)(
9462         ISpRecoContext *This,
9463         ISpVoice **ppVoice);
9464 
9465     HRESULT (STDMETHODCALLTYPE *SetVoicePurgeEvent)(
9466         ISpRecoContext *This,
9467         ULONGLONG ullEventInterest);
9468 
9469     HRESULT (STDMETHODCALLTYPE *GetVoicePurgeEvent)(
9470         ISpRecoContext *This,
9471         ULONGLONG *pullEventInterest);
9472 
9473     HRESULT (STDMETHODCALLTYPE *SetContextState)(
9474         ISpRecoContext *This,
9475         SPCONTEXTSTATE eContextState);
9476 
9477     HRESULT (STDMETHODCALLTYPE *GetContextState)(
9478         ISpRecoContext *This,
9479         SPCONTEXTSTATE *peContextState);
9480 
9481     END_INTERFACE
9482 } ISpRecoContextVtbl;
9483 
9484 interface ISpRecoContext {
9485     CONST_VTBL ISpRecoContextVtbl* lpVtbl;
9486 };
9487 
9488 #ifdef COBJMACROS
9489 #ifndef WIDL_C_INLINE_WRAPPERS
9490 /*** IUnknown methods ***/
9491 #define ISpRecoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9492 #define ISpRecoContext_AddRef(This) (This)->lpVtbl->AddRef(This)
9493 #define ISpRecoContext_Release(This) (This)->lpVtbl->Release(This)
9494 /*** ISpNotifySource methods ***/
9495 #define ISpRecoContext_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
9496 #define ISpRecoContext_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
9497 #define ISpRecoContext_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
9498 #define ISpRecoContext_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
9499 #define ISpRecoContext_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
9500 #define ISpRecoContext_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
9501 #define ISpRecoContext_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
9502 /*** ISpEventSource methods ***/
9503 #define ISpRecoContext_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
9504 #define ISpRecoContext_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
9505 #define ISpRecoContext_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
9506 /*** ISpRecoContext methods ***/
9507 #define ISpRecoContext_GetRecognizer(This,ppRecognizer) (This)->lpVtbl->GetRecognizer(This,ppRecognizer)
9508 #define ISpRecoContext_CreateGrammar(This,ullGrammarId,ppGrammar) (This)->lpVtbl->CreateGrammar(This,ullGrammarId,ppGrammar)
9509 #define ISpRecoContext_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
9510 #define ISpRecoContext_GetMaxAlternates(This,pcAlternates) (This)->lpVtbl->GetMaxAlternates(This,pcAlternates)
9511 #define ISpRecoContext_SetMaxAlternates(This,cAlternates) (This)->lpVtbl->SetMaxAlternates(This,cAlternates)
9512 #define ISpRecoContext_SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx)
9513 #define ISpRecoContext_GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX) (This)->lpVtbl->GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX)
9514 #define ISpRecoContext_DeserializeResult(This,pSerializedResult,ppResult) (This)->lpVtbl->DeserializeResult(This,pSerializedResult,ppResult)
9515 #define ISpRecoContext_Bookmark(This,Options,ullStreamPosition,lparamEvent) (This)->lpVtbl->Bookmark(This,Options,ullStreamPosition,lparamEvent)
9516 #define ISpRecoContext_SetAdaptationData(This,pAdaptationData,cch) (This)->lpVtbl->SetAdaptationData(This,pAdaptationData,cch)
9517 #define ISpRecoContext_Pause(This,dwReserved) (This)->lpVtbl->Pause(This,dwReserved)
9518 #define ISpRecoContext_Resume(This,dwReserved) (This)->lpVtbl->Resume(This,dwReserved)
9519 #define ISpRecoContext_SetVoice(This,pVoice,fAllowFormatChanges) (This)->lpVtbl->SetVoice(This,pVoice,fAllowFormatChanges)
9520 #define ISpRecoContext_GetVoice(This,ppVoice) (This)->lpVtbl->GetVoice(This,ppVoice)
9521 #define ISpRecoContext_SetVoicePurgeEvent(This,ullEventInterest) (This)->lpVtbl->SetVoicePurgeEvent(This,ullEventInterest)
9522 #define ISpRecoContext_GetVoicePurgeEvent(This,pullEventInterest) (This)->lpVtbl->GetVoicePurgeEvent(This,pullEventInterest)
9523 #define ISpRecoContext_SetContextState(This,eContextState) (This)->lpVtbl->SetContextState(This,eContextState)
9524 #define ISpRecoContext_GetContextState(This,peContextState) (This)->lpVtbl->GetContextState(This,peContextState)
9525 #else
9526 /*** IUnknown methods ***/
9527 static FORCEINLINE HRESULT ISpRecoContext_QueryInterface(ISpRecoContext* This,REFIID riid,void **ppvObject) {
9528     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9529 }
9530 static FORCEINLINE ULONG ISpRecoContext_AddRef(ISpRecoContext* This) {
9531     return This->lpVtbl->AddRef(This);
9532 }
9533 static FORCEINLINE ULONG ISpRecoContext_Release(ISpRecoContext* This) {
9534     return This->lpVtbl->Release(This);
9535 }
9536 /*** ISpNotifySource methods ***/
9537 static FORCEINLINE HRESULT ISpRecoContext_SetNotifySink(ISpRecoContext* This,ISpNotifySink *pNotifySink) {
9538     return This->lpVtbl->SetNotifySink(This,pNotifySink);
9539 }
9540 static FORCEINLINE HRESULT ISpRecoContext_SetNotifyWindowMessage(ISpRecoContext* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
9541     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
9542 }
9543 static FORCEINLINE HRESULT ISpRecoContext_SetNotifyCallbackFunction(ISpRecoContext* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
9544     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
9545 }
9546 static FORCEINLINE HRESULT ISpRecoContext_SetNotifyCallbackInterface(ISpRecoContext* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
9547     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
9548 }
9549 static FORCEINLINE HRESULT ISpRecoContext_SetNotifyWin32Event(ISpRecoContext* This) {
9550     return This->lpVtbl->SetNotifyWin32Event(This);
9551 }
9552 static FORCEINLINE HRESULT ISpRecoContext_WaitForNotifyEvent(ISpRecoContext* This,DWORD dwMilliseconds) {
9553     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
9554 }
9555 static FORCEINLINE HANDLE ISpRecoContext_GetNotifyEventHandle(ISpRecoContext* This) {
9556     return This->lpVtbl->GetNotifyEventHandle(This);
9557 }
9558 /*** ISpEventSource methods ***/
9559 static FORCEINLINE HRESULT ISpRecoContext_SetInterest(ISpRecoContext* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
9560     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
9561 }
9562 static FORCEINLINE HRESULT ISpRecoContext_GetEvents(ISpRecoContext* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
9563     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
9564 }
9565 static FORCEINLINE HRESULT ISpRecoContext_GetInfo(ISpRecoContext* This,SPEVENTSOURCEINFO *pInfo) {
9566     return This->lpVtbl->GetInfo(This,pInfo);
9567 }
9568 /*** ISpRecoContext methods ***/
9569 static FORCEINLINE HRESULT ISpRecoContext_GetRecognizer(ISpRecoContext* This,ISpRecognizer **ppRecognizer) {
9570     return This->lpVtbl->GetRecognizer(This,ppRecognizer);
9571 }
9572 static FORCEINLINE HRESULT ISpRecoContext_CreateGrammar(ISpRecoContext* This,ULONGLONG ullGrammarId,ISpRecoGrammar **ppGrammar) {
9573     return This->lpVtbl->CreateGrammar(This,ullGrammarId,ppGrammar);
9574 }
9575 static FORCEINLINE HRESULT ISpRecoContext_GetStatus(ISpRecoContext* This,SPRECOCONTEXTSTATUS *pStatus) {
9576     return This->lpVtbl->GetStatus(This,pStatus);
9577 }
9578 static FORCEINLINE HRESULT ISpRecoContext_GetMaxAlternates(ISpRecoContext* This,ULONG *pcAlternates) {
9579     return This->lpVtbl->GetMaxAlternates(This,pcAlternates);
9580 }
9581 static FORCEINLINE HRESULT ISpRecoContext_SetMaxAlternates(ISpRecoContext* This,ULONG cAlternates) {
9582     return This->lpVtbl->SetMaxAlternates(This,cAlternates);
9583 }
9584 static FORCEINLINE HRESULT ISpRecoContext_SetAudioOptions(ISpRecoContext* This,SPAUDIOOPTIONS Options,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
9585     return This->lpVtbl->SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx);
9586 }
9587 static FORCEINLINE HRESULT ISpRecoContext_GetAudioOptions(ISpRecoContext* This,SPAUDIOOPTIONS *pOptions,GUID *pAudioFormatId,WAVEFORMATEX **ppCoMemWFEX) {
9588     return This->lpVtbl->GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX);
9589 }
9590 static FORCEINLINE HRESULT ISpRecoContext_DeserializeResult(ISpRecoContext* This,const SPSERIALIZEDRESULT *pSerializedResult,ISpRecoResult **ppResult) {
9591     return This->lpVtbl->DeserializeResult(This,pSerializedResult,ppResult);
9592 }
9593 static FORCEINLINE HRESULT ISpRecoContext_Bookmark(ISpRecoContext* This,SPBOOKMARKOPTIONS Options,ULONGLONG ullStreamPosition,LPARAM lparamEvent) {
9594     return This->lpVtbl->Bookmark(This,Options,ullStreamPosition,lparamEvent);
9595 }
9596 static FORCEINLINE HRESULT ISpRecoContext_SetAdaptationData(ISpRecoContext* This,LPCWSTR pAdaptationData,const ULONG cch) {
9597     return This->lpVtbl->SetAdaptationData(This,pAdaptationData,cch);
9598 }
9599 static FORCEINLINE HRESULT ISpRecoContext_Pause(ISpRecoContext* This,DWORD dwReserved) {
9600     return This->lpVtbl->Pause(This,dwReserved);
9601 }
9602 static FORCEINLINE HRESULT ISpRecoContext_Resume(ISpRecoContext* This,DWORD dwReserved) {
9603     return This->lpVtbl->Resume(This,dwReserved);
9604 }
9605 static FORCEINLINE HRESULT ISpRecoContext_SetVoice(ISpRecoContext* This,ISpVoice *pVoice,WINBOOL fAllowFormatChanges) {
9606     return This->lpVtbl->SetVoice(This,pVoice,fAllowFormatChanges);
9607 }
9608 static FORCEINLINE HRESULT ISpRecoContext_GetVoice(ISpRecoContext* This,ISpVoice **ppVoice) {
9609     return This->lpVtbl->GetVoice(This,ppVoice);
9610 }
9611 static FORCEINLINE HRESULT ISpRecoContext_SetVoicePurgeEvent(ISpRecoContext* This,ULONGLONG ullEventInterest) {
9612     return This->lpVtbl->SetVoicePurgeEvent(This,ullEventInterest);
9613 }
9614 static FORCEINLINE HRESULT ISpRecoContext_GetVoicePurgeEvent(ISpRecoContext* This,ULONGLONG *pullEventInterest) {
9615     return This->lpVtbl->GetVoicePurgeEvent(This,pullEventInterest);
9616 }
9617 static FORCEINLINE HRESULT ISpRecoContext_SetContextState(ISpRecoContext* This,SPCONTEXTSTATE eContextState) {
9618     return This->lpVtbl->SetContextState(This,eContextState);
9619 }
9620 static FORCEINLINE HRESULT ISpRecoContext_GetContextState(ISpRecoContext* This,SPCONTEXTSTATE *peContextState) {
9621     return This->lpVtbl->GetContextState(This,peContextState);
9622 }
9623 #endif
9624 #endif
9625 
9626 #endif
9627 
9628 
9629 #endif  /* __ISpRecoContext_INTERFACE_DEFINED__ */
9630 
9631 typedef enum SPGRAMMAROPTIONS {
9632     SPGO_SAPI = 0x1,
9633     SPGO_SRGS = 0x2,
9634     SPGO_UPS = 0x4,
9635     SPGO_SRGS_MS_SCRIPT = 0x8,
9636     SPGO_FILE = 0x10,
9637     SPGO_HTTP = 0x20,
9638     SPGO_RES = 0x40,
9639     SPGO_OBJECT = 0x80,
9640     SPGO_SRGS_W3C_SCRIPT = 0x100,
9641     SPGO_SRGS_STG_SCRIPT = 0x200,
9642     SPGO_SRGS_SCRIPT = ((SPGO_SRGS | SPGO_SRGS_MS_SCRIPT) | SPGO_SRGS_W3C_SCRIPT) | SPGO_SRGS_STG_SCRIPT,
9643     SPGO_DEFAULT = 0x3fb,
9644     SPGO_ALL = 0x3ff
9645 } SPGRAMMAROPTIONS;
9646 typedef enum SPADAPTATIONSETTINGS {
9647     SPADS_Default = 0x0,
9648     SPADS_CurrentRecognizer = 0x1,
9649     SPADS_RecoProfile = 0x2,
9650     SPADS_Immediate = 0x4,
9651     SPADS_Reset = 0x8,
9652     SPADS_HighVolumeDataSource = 0x10
9653 } SPADAPTATIONSETTINGS;
9654 typedef enum SPADAPTATIONRELEVANCE {
9655     SPAR_Unknown = 0,
9656     SPAR_Low = 1,
9657     SPAR_Medium = 2,
9658     SPAR_High = 3
9659 } SPADAPTATIONRELEVANCE;
9660 /*****************************************************************************
9661  * ISpRecoContext2 interface
9662  */
9663 #ifndef __ISpRecoContext2_INTERFACE_DEFINED__
9664 #define __ISpRecoContext2_INTERFACE_DEFINED__
9665 
9666 DEFINE_GUID(IID_ISpRecoContext2, 0xbead311c, 0x52ff, 0x437f, 0x94,0x64, 0x6b,0x21,0x05,0x4c,0xa7,0x3d);
9667 #if defined(__cplusplus) && !defined(CINTERFACE)
9668 MIDL_INTERFACE("bead311c-52ff-437f-9464-6b21054ca73d")
9669 ISpRecoContext2 : public IUnknown
9670 {
9671     virtual HRESULT STDMETHODCALLTYPE SetGrammarOptions(
9672         DWORD eGrammarOptions) = 0;
9673 
9674     virtual HRESULT STDMETHODCALLTYPE GetGrammarOptions(
9675         DWORD *peGrammarOptions) = 0;
9676 
9677     virtual HRESULT STDMETHODCALLTYPE SetAdaptationData2(
9678         LPCWSTR pAdaptationData,
9679         const ULONG cch,
9680         LPCWSTR pTopicName,
9681         DWORD eAdaptationSettings,
9682         SPADAPTATIONRELEVANCE eRelevance) = 0;
9683 
9684 };
9685 #ifdef __CRT_UUID_DECL
9686 __CRT_UUID_DECL(ISpRecoContext2, 0xbead311c, 0x52ff, 0x437f, 0x94,0x64, 0x6b,0x21,0x05,0x4c,0xa7,0x3d)
9687 #endif
9688 #else
9689 typedef struct ISpRecoContext2Vtbl {
9690     BEGIN_INTERFACE
9691 
9692     /*** IUnknown methods ***/
9693     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9694         ISpRecoContext2 *This,
9695         REFIID riid,
9696         void **ppvObject);
9697 
9698     ULONG (STDMETHODCALLTYPE *AddRef)(
9699         ISpRecoContext2 *This);
9700 
9701     ULONG (STDMETHODCALLTYPE *Release)(
9702         ISpRecoContext2 *This);
9703 
9704     /*** ISpRecoContext2 methods ***/
9705     HRESULT (STDMETHODCALLTYPE *SetGrammarOptions)(
9706         ISpRecoContext2 *This,
9707         DWORD eGrammarOptions);
9708 
9709     HRESULT (STDMETHODCALLTYPE *GetGrammarOptions)(
9710         ISpRecoContext2 *This,
9711         DWORD *peGrammarOptions);
9712 
9713     HRESULT (STDMETHODCALLTYPE *SetAdaptationData2)(
9714         ISpRecoContext2 *This,
9715         LPCWSTR pAdaptationData,
9716         const ULONG cch,
9717         LPCWSTR pTopicName,
9718         DWORD eAdaptationSettings,
9719         SPADAPTATIONRELEVANCE eRelevance);
9720 
9721     END_INTERFACE
9722 } ISpRecoContext2Vtbl;
9723 
9724 interface ISpRecoContext2 {
9725     CONST_VTBL ISpRecoContext2Vtbl* lpVtbl;
9726 };
9727 
9728 #ifdef COBJMACROS
9729 #ifndef WIDL_C_INLINE_WRAPPERS
9730 /*** IUnknown methods ***/
9731 #define ISpRecoContext2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9732 #define ISpRecoContext2_AddRef(This) (This)->lpVtbl->AddRef(This)
9733 #define ISpRecoContext2_Release(This) (This)->lpVtbl->Release(This)
9734 /*** ISpRecoContext2 methods ***/
9735 #define ISpRecoContext2_SetGrammarOptions(This,eGrammarOptions) (This)->lpVtbl->SetGrammarOptions(This,eGrammarOptions)
9736 #define ISpRecoContext2_GetGrammarOptions(This,peGrammarOptions) (This)->lpVtbl->GetGrammarOptions(This,peGrammarOptions)
9737 #define ISpRecoContext2_SetAdaptationData2(This,pAdaptationData,cch,pTopicName,eAdaptationSettings,eRelevance) (This)->lpVtbl->SetAdaptationData2(This,pAdaptationData,cch,pTopicName,eAdaptationSettings,eRelevance)
9738 #else
9739 /*** IUnknown methods ***/
9740 static FORCEINLINE HRESULT ISpRecoContext2_QueryInterface(ISpRecoContext2* This,REFIID riid,void **ppvObject) {
9741     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9742 }
9743 static FORCEINLINE ULONG ISpRecoContext2_AddRef(ISpRecoContext2* This) {
9744     return This->lpVtbl->AddRef(This);
9745 }
9746 static FORCEINLINE ULONG ISpRecoContext2_Release(ISpRecoContext2* This) {
9747     return This->lpVtbl->Release(This);
9748 }
9749 /*** ISpRecoContext2 methods ***/
9750 static FORCEINLINE HRESULT ISpRecoContext2_SetGrammarOptions(ISpRecoContext2* This,DWORD eGrammarOptions) {
9751     return This->lpVtbl->SetGrammarOptions(This,eGrammarOptions);
9752 }
9753 static FORCEINLINE HRESULT ISpRecoContext2_GetGrammarOptions(ISpRecoContext2* This,DWORD *peGrammarOptions) {
9754     return This->lpVtbl->GetGrammarOptions(This,peGrammarOptions);
9755 }
9756 static FORCEINLINE HRESULT ISpRecoContext2_SetAdaptationData2(ISpRecoContext2* This,LPCWSTR pAdaptationData,const ULONG cch,LPCWSTR pTopicName,DWORD eAdaptationSettings,SPADAPTATIONRELEVANCE eRelevance) {
9757     return This->lpVtbl->SetAdaptationData2(This,pAdaptationData,cch,pTopicName,eAdaptationSettings,eRelevance);
9758 }
9759 #endif
9760 #endif
9761 
9762 #endif
9763 
9764 
9765 #endif  /* __ISpRecoContext2_INTERFACE_DEFINED__ */
9766 
9767 /*****************************************************************************
9768  * ISpProperties interface
9769  */
9770 #ifndef __ISpProperties_INTERFACE_DEFINED__
9771 #define __ISpProperties_INTERFACE_DEFINED__
9772 
9773 DEFINE_GUID(IID_ISpProperties, 0x5b4fb971, 0xb115, 0x4de1, 0xad,0x97, 0xe4,0x82,0xe3,0xbf,0x6e,0xe4);
9774 #if defined(__cplusplus) && !defined(CINTERFACE)
9775 MIDL_INTERFACE("5b4fb971-b115-4de1-ad97-e482e3bf6ee4")
9776 ISpProperties : public IUnknown
9777 {
9778     virtual HRESULT STDMETHODCALLTYPE SetPropertyNum(
9779         LPCWSTR pName,
9780         LONG lValue) = 0;
9781 
9782     virtual HRESULT STDMETHODCALLTYPE GetPropertyNum(
9783         LPCWSTR pName,
9784         LONG *plValue) = 0;
9785 
9786     virtual HRESULT STDMETHODCALLTYPE SetPropertyString(
9787         LPCWSTR pName,
9788         LPCWSTR pValue) = 0;
9789 
9790     virtual HRESULT STDMETHODCALLTYPE GetPropertyString(
9791         LPCWSTR pName,
9792         LPWSTR *ppCoMemValue) = 0;
9793 
9794 };
9795 #ifdef __CRT_UUID_DECL
9796 __CRT_UUID_DECL(ISpProperties, 0x5b4fb971, 0xb115, 0x4de1, 0xad,0x97, 0xe4,0x82,0xe3,0xbf,0x6e,0xe4)
9797 #endif
9798 #else
9799 typedef struct ISpPropertiesVtbl {
9800     BEGIN_INTERFACE
9801 
9802     /*** IUnknown methods ***/
9803     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9804         ISpProperties *This,
9805         REFIID riid,
9806         void **ppvObject);
9807 
9808     ULONG (STDMETHODCALLTYPE *AddRef)(
9809         ISpProperties *This);
9810 
9811     ULONG (STDMETHODCALLTYPE *Release)(
9812         ISpProperties *This);
9813 
9814     /*** ISpProperties methods ***/
9815     HRESULT (STDMETHODCALLTYPE *SetPropertyNum)(
9816         ISpProperties *This,
9817         LPCWSTR pName,
9818         LONG lValue);
9819 
9820     HRESULT (STDMETHODCALLTYPE *GetPropertyNum)(
9821         ISpProperties *This,
9822         LPCWSTR pName,
9823         LONG *plValue);
9824 
9825     HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
9826         ISpProperties *This,
9827         LPCWSTR pName,
9828         LPCWSTR pValue);
9829 
9830     HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
9831         ISpProperties *This,
9832         LPCWSTR pName,
9833         LPWSTR *ppCoMemValue);
9834 
9835     END_INTERFACE
9836 } ISpPropertiesVtbl;
9837 
9838 interface ISpProperties {
9839     CONST_VTBL ISpPropertiesVtbl* lpVtbl;
9840 };
9841 
9842 #ifdef COBJMACROS
9843 #ifndef WIDL_C_INLINE_WRAPPERS
9844 /*** IUnknown methods ***/
9845 #define ISpProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9846 #define ISpProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
9847 #define ISpProperties_Release(This) (This)->lpVtbl->Release(This)
9848 /*** ISpProperties methods ***/
9849 #define ISpProperties_SetPropertyNum(This,pName,lValue) (This)->lpVtbl->SetPropertyNum(This,pName,lValue)
9850 #define ISpProperties_GetPropertyNum(This,pName,plValue) (This)->lpVtbl->GetPropertyNum(This,pName,plValue)
9851 #define ISpProperties_SetPropertyString(This,pName,pValue) (This)->lpVtbl->SetPropertyString(This,pName,pValue)
9852 #define ISpProperties_GetPropertyString(This,pName,ppCoMemValue) (This)->lpVtbl->GetPropertyString(This,pName,ppCoMemValue)
9853 #else
9854 /*** IUnknown methods ***/
9855 static FORCEINLINE HRESULT ISpProperties_QueryInterface(ISpProperties* This,REFIID riid,void **ppvObject) {
9856     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9857 }
9858 static FORCEINLINE ULONG ISpProperties_AddRef(ISpProperties* This) {
9859     return This->lpVtbl->AddRef(This);
9860 }
9861 static FORCEINLINE ULONG ISpProperties_Release(ISpProperties* This) {
9862     return This->lpVtbl->Release(This);
9863 }
9864 /*** ISpProperties methods ***/
9865 static FORCEINLINE HRESULT ISpProperties_SetPropertyNum(ISpProperties* This,LPCWSTR pName,LONG lValue) {
9866     return This->lpVtbl->SetPropertyNum(This,pName,lValue);
9867 }
9868 static FORCEINLINE HRESULT ISpProperties_GetPropertyNum(ISpProperties* This,LPCWSTR pName,LONG *plValue) {
9869     return This->lpVtbl->GetPropertyNum(This,pName,plValue);
9870 }
9871 static FORCEINLINE HRESULT ISpProperties_SetPropertyString(ISpProperties* This,LPCWSTR pName,LPCWSTR pValue) {
9872     return This->lpVtbl->SetPropertyString(This,pName,pValue);
9873 }
9874 static FORCEINLINE HRESULT ISpProperties_GetPropertyString(ISpProperties* This,LPCWSTR pName,LPWSTR *ppCoMemValue) {
9875     return This->lpVtbl->GetPropertyString(This,pName,ppCoMemValue);
9876 }
9877 #endif
9878 #endif
9879 
9880 #endif
9881 
9882 
9883 #endif  /* __ISpProperties_INTERFACE_DEFINED__ */
9884 
9885 #define SP_MAX_LANGIDS (20)
9886 
9887 typedef struct SPRECOGNIZERSTATUS {
9888     SPAUDIOSTATUS AudioStatus;
9889     ULONGLONG ullRecognitionStreamPos;
9890     ULONG ulStreamNumber;
9891     ULONG ulNumActive;
9892     CLSID clsidEngine;
9893     ULONG cLangIDs;
9894     WORD aLangID[20];
9895     ULONGLONG ullRecognitionStreamTime;
9896 } SPRECOGNIZERSTATUS;
9897 typedef enum SPWAVEFORMATTYPE {
9898     SPWF_INPUT = 0,
9899     SPWF_SRENGINE = 1
9900 } SPSTREAMFORMATTYPE;
9901 typedef enum SPRECOSTATE {
9902     SPRST_INACTIVE = 0,
9903     SPRST_ACTIVE = 1,
9904     SPRST_ACTIVE_ALWAYS = 2,
9905     SPRST_INACTIVE_WITH_PURGE = 3,
9906     SPRST_NUM_STATES = 4
9907 } SPRECOSTATE;
9908 /*****************************************************************************
9909  * ISpRecognizer interface
9910  */
9911 #ifndef __ISpRecognizer_INTERFACE_DEFINED__
9912 #define __ISpRecognizer_INTERFACE_DEFINED__
9913 
9914 DEFINE_GUID(IID_ISpRecognizer, 0xc2b5f241, 0xdaa0, 0x4507, 0x9e,0x16, 0x5a,0x1e,0xaa,0x2b,0x7a,0x5c);
9915 #if defined(__cplusplus) && !defined(CINTERFACE)
9916 MIDL_INTERFACE("c2b5f241-daa0-4507-9e16-5a1eaa2b7a5c")
9917 ISpRecognizer : public ISpProperties
9918 {
9919     virtual HRESULT STDMETHODCALLTYPE SetRecognizer(
9920         ISpObjectToken *pRecognizer) = 0;
9921 
9922     virtual HRESULT STDMETHODCALLTYPE GetRecognizer(
9923         ISpObjectToken **ppRecognizer) = 0;
9924 
9925     virtual HRESULT STDMETHODCALLTYPE SetInput(
9926         IUnknown *pUnkInput,
9927         WINBOOL fAllowFormatChanges) = 0;
9928 
9929     virtual HRESULT STDMETHODCALLTYPE GetInputObjectToken(
9930         ISpObjectToken **ppToken) = 0;
9931 
9932     virtual HRESULT STDMETHODCALLTYPE GetInputStream(
9933         ISpStreamFormat **ppStream) = 0;
9934 
9935     virtual HRESULT STDMETHODCALLTYPE CreateRecoContext(
9936         ISpRecoContext **ppNewCtxt) = 0;
9937 
9938     virtual HRESULT STDMETHODCALLTYPE GetRecoProfile(
9939         ISpObjectToken **ppToken) = 0;
9940 
9941     virtual HRESULT STDMETHODCALLTYPE SetRecoProfile(
9942         ISpObjectToken *pToken) = 0;
9943 
9944     virtual HRESULT STDMETHODCALLTYPE IsSharedInstance(
9945         ) = 0;
9946 
9947     virtual HRESULT STDMETHODCALLTYPE GetRecoState(
9948         SPRECOSTATE *pState) = 0;
9949 
9950     virtual HRESULT STDMETHODCALLTYPE SetRecoState(
9951         SPRECOSTATE NewState) = 0;
9952 
9953     virtual HRESULT STDMETHODCALLTYPE GetStatus(
9954         SPRECOGNIZERSTATUS *pStatus) = 0;
9955 
9956     virtual HRESULT STDMETHODCALLTYPE GetFormat(
9957         SPSTREAMFORMATTYPE WaveFormatType,
9958         GUID *pFormatId,
9959         WAVEFORMATEX **ppCoMemWFEX) = 0;
9960 
9961     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
9962         LPCWSTR pszTypeOfUI,
9963         void *pvExtraData,
9964         ULONG cbExtraData,
9965         WINBOOL *pfSupported) = 0;
9966 
9967     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
9968         HWND hwndParent,
9969         LPCWSTR pszTitle,
9970         LPCWSTR pszTypeOfUI,
9971         void *pvExtraData,
9972         ULONG cbExtraData) = 0;
9973 
9974     virtual HRESULT STDMETHODCALLTYPE EmulateRecognition(
9975         ISpPhrase *pPhrase) = 0;
9976 
9977 };
9978 #ifdef __CRT_UUID_DECL
9979 __CRT_UUID_DECL(ISpRecognizer, 0xc2b5f241, 0xdaa0, 0x4507, 0x9e,0x16, 0x5a,0x1e,0xaa,0x2b,0x7a,0x5c)
9980 #endif
9981 #else
9982 typedef struct ISpRecognizerVtbl {
9983     BEGIN_INTERFACE
9984 
9985     /*** IUnknown methods ***/
9986     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9987         ISpRecognizer *This,
9988         REFIID riid,
9989         void **ppvObject);
9990 
9991     ULONG (STDMETHODCALLTYPE *AddRef)(
9992         ISpRecognizer *This);
9993 
9994     ULONG (STDMETHODCALLTYPE *Release)(
9995         ISpRecognizer *This);
9996 
9997     /*** ISpProperties methods ***/
9998     HRESULT (STDMETHODCALLTYPE *SetPropertyNum)(
9999         ISpRecognizer *This,
10000         LPCWSTR pName,
10001         LONG lValue);
10002 
10003     HRESULT (STDMETHODCALLTYPE *GetPropertyNum)(
10004         ISpRecognizer *This,
10005         LPCWSTR pName,
10006         LONG *plValue);
10007 
10008     HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
10009         ISpRecognizer *This,
10010         LPCWSTR pName,
10011         LPCWSTR pValue);
10012 
10013     HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
10014         ISpRecognizer *This,
10015         LPCWSTR pName,
10016         LPWSTR *ppCoMemValue);
10017 
10018     /*** ISpRecognizer methods ***/
10019     HRESULT (STDMETHODCALLTYPE *SetRecognizer)(
10020         ISpRecognizer *This,
10021         ISpObjectToken *pRecognizer);
10022 
10023     HRESULT (STDMETHODCALLTYPE *GetRecognizer)(
10024         ISpRecognizer *This,
10025         ISpObjectToken **ppRecognizer);
10026 
10027     HRESULT (STDMETHODCALLTYPE *SetInput)(
10028         ISpRecognizer *This,
10029         IUnknown *pUnkInput,
10030         WINBOOL fAllowFormatChanges);
10031 
10032     HRESULT (STDMETHODCALLTYPE *GetInputObjectToken)(
10033         ISpRecognizer *This,
10034         ISpObjectToken **ppToken);
10035 
10036     HRESULT (STDMETHODCALLTYPE *GetInputStream)(
10037         ISpRecognizer *This,
10038         ISpStreamFormat **ppStream);
10039 
10040     HRESULT (STDMETHODCALLTYPE *CreateRecoContext)(
10041         ISpRecognizer *This,
10042         ISpRecoContext **ppNewCtxt);
10043 
10044     HRESULT (STDMETHODCALLTYPE *GetRecoProfile)(
10045         ISpRecognizer *This,
10046         ISpObjectToken **ppToken);
10047 
10048     HRESULT (STDMETHODCALLTYPE *SetRecoProfile)(
10049         ISpRecognizer *This,
10050         ISpObjectToken *pToken);
10051 
10052     HRESULT (STDMETHODCALLTYPE *IsSharedInstance)(
10053         ISpRecognizer *This);
10054 
10055     HRESULT (STDMETHODCALLTYPE *GetRecoState)(
10056         ISpRecognizer *This,
10057         SPRECOSTATE *pState);
10058 
10059     HRESULT (STDMETHODCALLTYPE *SetRecoState)(
10060         ISpRecognizer *This,
10061         SPRECOSTATE NewState);
10062 
10063     HRESULT (STDMETHODCALLTYPE *GetStatus)(
10064         ISpRecognizer *This,
10065         SPRECOGNIZERSTATUS *pStatus);
10066 
10067     HRESULT (STDMETHODCALLTYPE *GetFormat)(
10068         ISpRecognizer *This,
10069         SPSTREAMFORMATTYPE WaveFormatType,
10070         GUID *pFormatId,
10071         WAVEFORMATEX **ppCoMemWFEX);
10072 
10073     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
10074         ISpRecognizer *This,
10075         LPCWSTR pszTypeOfUI,
10076         void *pvExtraData,
10077         ULONG cbExtraData,
10078         WINBOOL *pfSupported);
10079 
10080     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
10081         ISpRecognizer *This,
10082         HWND hwndParent,
10083         LPCWSTR pszTitle,
10084         LPCWSTR pszTypeOfUI,
10085         void *pvExtraData,
10086         ULONG cbExtraData);
10087 
10088     HRESULT (STDMETHODCALLTYPE *EmulateRecognition)(
10089         ISpRecognizer *This,
10090         ISpPhrase *pPhrase);
10091 
10092     END_INTERFACE
10093 } ISpRecognizerVtbl;
10094 
10095 interface ISpRecognizer {
10096     CONST_VTBL ISpRecognizerVtbl* lpVtbl;
10097 };
10098 
10099 #ifdef COBJMACROS
10100 #ifndef WIDL_C_INLINE_WRAPPERS
10101 /*** IUnknown methods ***/
10102 #define ISpRecognizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10103 #define ISpRecognizer_AddRef(This) (This)->lpVtbl->AddRef(This)
10104 #define ISpRecognizer_Release(This) (This)->lpVtbl->Release(This)
10105 /*** ISpProperties methods ***/
10106 #define ISpRecognizer_SetPropertyNum(This,pName,lValue) (This)->lpVtbl->SetPropertyNum(This,pName,lValue)
10107 #define ISpRecognizer_GetPropertyNum(This,pName,plValue) (This)->lpVtbl->GetPropertyNum(This,pName,plValue)
10108 #define ISpRecognizer_SetPropertyString(This,pName,pValue) (This)->lpVtbl->SetPropertyString(This,pName,pValue)
10109 #define ISpRecognizer_GetPropertyString(This,pName,ppCoMemValue) (This)->lpVtbl->GetPropertyString(This,pName,ppCoMemValue)
10110 /*** ISpRecognizer methods ***/
10111 #define ISpRecognizer_SetRecognizer(This,pRecognizer) (This)->lpVtbl->SetRecognizer(This,pRecognizer)
10112 #define ISpRecognizer_GetRecognizer(This,ppRecognizer) (This)->lpVtbl->GetRecognizer(This,ppRecognizer)
10113 #define ISpRecognizer_SetInput(This,pUnkInput,fAllowFormatChanges) (This)->lpVtbl->SetInput(This,pUnkInput,fAllowFormatChanges)
10114 #define ISpRecognizer_GetInputObjectToken(This,ppToken) (This)->lpVtbl->GetInputObjectToken(This,ppToken)
10115 #define ISpRecognizer_GetInputStream(This,ppStream) (This)->lpVtbl->GetInputStream(This,ppStream)
10116 #define ISpRecognizer_CreateRecoContext(This,ppNewCtxt) (This)->lpVtbl->CreateRecoContext(This,ppNewCtxt)
10117 #define ISpRecognizer_GetRecoProfile(This,ppToken) (This)->lpVtbl->GetRecoProfile(This,ppToken)
10118 #define ISpRecognizer_SetRecoProfile(This,pToken) (This)->lpVtbl->SetRecoProfile(This,pToken)
10119 #define ISpRecognizer_IsSharedInstance(This) (This)->lpVtbl->IsSharedInstance(This)
10120 #define ISpRecognizer_GetRecoState(This,pState) (This)->lpVtbl->GetRecoState(This,pState)
10121 #define ISpRecognizer_SetRecoState(This,NewState) (This)->lpVtbl->SetRecoState(This,NewState)
10122 #define ISpRecognizer_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
10123 #define ISpRecognizer_GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX) (This)->lpVtbl->GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX)
10124 #define ISpRecognizer_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported)
10125 #define ISpRecognizer_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData)
10126 #define ISpRecognizer_EmulateRecognition(This,pPhrase) (This)->lpVtbl->EmulateRecognition(This,pPhrase)
10127 #else
10128 /*** IUnknown methods ***/
10129 static FORCEINLINE HRESULT ISpRecognizer_QueryInterface(ISpRecognizer* This,REFIID riid,void **ppvObject) {
10130     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10131 }
10132 static FORCEINLINE ULONG ISpRecognizer_AddRef(ISpRecognizer* This) {
10133     return This->lpVtbl->AddRef(This);
10134 }
10135 static FORCEINLINE ULONG ISpRecognizer_Release(ISpRecognizer* This) {
10136     return This->lpVtbl->Release(This);
10137 }
10138 /*** ISpProperties methods ***/
10139 static FORCEINLINE HRESULT ISpRecognizer_SetPropertyNum(ISpRecognizer* This,LPCWSTR pName,LONG lValue) {
10140     return This->lpVtbl->SetPropertyNum(This,pName,lValue);
10141 }
10142 static FORCEINLINE HRESULT ISpRecognizer_GetPropertyNum(ISpRecognizer* This,LPCWSTR pName,LONG *plValue) {
10143     return This->lpVtbl->GetPropertyNum(This,pName,plValue);
10144 }
10145 static FORCEINLINE HRESULT ISpRecognizer_SetPropertyString(ISpRecognizer* This,LPCWSTR pName,LPCWSTR pValue) {
10146     return This->lpVtbl->SetPropertyString(This,pName,pValue);
10147 }
10148 static FORCEINLINE HRESULT ISpRecognizer_GetPropertyString(ISpRecognizer* This,LPCWSTR pName,LPWSTR *ppCoMemValue) {
10149     return This->lpVtbl->GetPropertyString(This,pName,ppCoMemValue);
10150 }
10151 /*** ISpRecognizer methods ***/
10152 static FORCEINLINE HRESULT ISpRecognizer_SetRecognizer(ISpRecognizer* This,ISpObjectToken *pRecognizer) {
10153     return This->lpVtbl->SetRecognizer(This,pRecognizer);
10154 }
10155 static FORCEINLINE HRESULT ISpRecognizer_GetRecognizer(ISpRecognizer* This,ISpObjectToken **ppRecognizer) {
10156     return This->lpVtbl->GetRecognizer(This,ppRecognizer);
10157 }
10158 static FORCEINLINE HRESULT ISpRecognizer_SetInput(ISpRecognizer* This,IUnknown *pUnkInput,WINBOOL fAllowFormatChanges) {
10159     return This->lpVtbl->SetInput(This,pUnkInput,fAllowFormatChanges);
10160 }
10161 static FORCEINLINE HRESULT ISpRecognizer_GetInputObjectToken(ISpRecognizer* This,ISpObjectToken **ppToken) {
10162     return This->lpVtbl->GetInputObjectToken(This,ppToken);
10163 }
10164 static FORCEINLINE HRESULT ISpRecognizer_GetInputStream(ISpRecognizer* This,ISpStreamFormat **ppStream) {
10165     return This->lpVtbl->GetInputStream(This,ppStream);
10166 }
10167 static FORCEINLINE HRESULT ISpRecognizer_CreateRecoContext(ISpRecognizer* This,ISpRecoContext **ppNewCtxt) {
10168     return This->lpVtbl->CreateRecoContext(This,ppNewCtxt);
10169 }
10170 static FORCEINLINE HRESULT ISpRecognizer_GetRecoProfile(ISpRecognizer* This,ISpObjectToken **ppToken) {
10171     return This->lpVtbl->GetRecoProfile(This,ppToken);
10172 }
10173 static FORCEINLINE HRESULT ISpRecognizer_SetRecoProfile(ISpRecognizer* This,ISpObjectToken *pToken) {
10174     return This->lpVtbl->SetRecoProfile(This,pToken);
10175 }
10176 static FORCEINLINE HRESULT ISpRecognizer_IsSharedInstance(ISpRecognizer* This) {
10177     return This->lpVtbl->IsSharedInstance(This);
10178 }
10179 static FORCEINLINE HRESULT ISpRecognizer_GetRecoState(ISpRecognizer* This,SPRECOSTATE *pState) {
10180     return This->lpVtbl->GetRecoState(This,pState);
10181 }
10182 static FORCEINLINE HRESULT ISpRecognizer_SetRecoState(ISpRecognizer* This,SPRECOSTATE NewState) {
10183     return This->lpVtbl->SetRecoState(This,NewState);
10184 }
10185 static FORCEINLINE HRESULT ISpRecognizer_GetStatus(ISpRecognizer* This,SPRECOGNIZERSTATUS *pStatus) {
10186     return This->lpVtbl->GetStatus(This,pStatus);
10187 }
10188 static FORCEINLINE HRESULT ISpRecognizer_GetFormat(ISpRecognizer* This,SPSTREAMFORMATTYPE WaveFormatType,GUID *pFormatId,WAVEFORMATEX **ppCoMemWFEX) {
10189     return This->lpVtbl->GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX);
10190 }
10191 static FORCEINLINE HRESULT ISpRecognizer_IsUISupported(ISpRecognizer* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,WINBOOL *pfSupported) {
10192     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported);
10193 }
10194 static FORCEINLINE HRESULT ISpRecognizer_DisplayUI(ISpRecognizer* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData) {
10195     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData);
10196 }
10197 static FORCEINLINE HRESULT ISpRecognizer_EmulateRecognition(ISpRecognizer* This,ISpPhrase *pPhrase) {
10198     return This->lpVtbl->EmulateRecognition(This,pPhrase);
10199 }
10200 #endif
10201 #endif
10202 
10203 #endif
10204 
10205 
10206 #endif  /* __ISpRecognizer_INTERFACE_DEFINED__ */
10207 
10208 /*****************************************************************************
10209  * ISpSerializeState interface
10210  */
10211 #ifndef __ISpSerializeState_INTERFACE_DEFINED__
10212 #define __ISpSerializeState_INTERFACE_DEFINED__
10213 
10214 DEFINE_GUID(IID_ISpSerializeState, 0x21b501a0, 0x0ec7, 0x46c9, 0x92,0xc3, 0xa2,0xbc,0x78,0x4c,0x54,0xb9);
10215 #if defined(__cplusplus) && !defined(CINTERFACE)
10216 MIDL_INTERFACE("21b501a0-0ec7-46c9-92c3-a2bc784c54b9")
10217 ISpSerializeState : public IUnknown
10218 {
10219     virtual HRESULT STDMETHODCALLTYPE GetSerializedState(
10220         BYTE **ppbData,
10221         ULONG *pulSize,
10222         DWORD dwReserved) = 0;
10223 
10224     virtual HRESULT STDMETHODCALLTYPE SetSerializedState(
10225         BYTE *pbData,
10226         ULONG ulSize,
10227         DWORD dwReserved) = 0;
10228 
10229 };
10230 #ifdef __CRT_UUID_DECL
10231 __CRT_UUID_DECL(ISpSerializeState, 0x21b501a0, 0x0ec7, 0x46c9, 0x92,0xc3, 0xa2,0xbc,0x78,0x4c,0x54,0xb9)
10232 #endif
10233 #else
10234 typedef struct ISpSerializeStateVtbl {
10235     BEGIN_INTERFACE
10236 
10237     /*** IUnknown methods ***/
10238     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10239         ISpSerializeState *This,
10240         REFIID riid,
10241         void **ppvObject);
10242 
10243     ULONG (STDMETHODCALLTYPE *AddRef)(
10244         ISpSerializeState *This);
10245 
10246     ULONG (STDMETHODCALLTYPE *Release)(
10247         ISpSerializeState *This);
10248 
10249     /*** ISpSerializeState methods ***/
10250     HRESULT (STDMETHODCALLTYPE *GetSerializedState)(
10251         ISpSerializeState *This,
10252         BYTE **ppbData,
10253         ULONG *pulSize,
10254         DWORD dwReserved);
10255 
10256     HRESULT (STDMETHODCALLTYPE *SetSerializedState)(
10257         ISpSerializeState *This,
10258         BYTE *pbData,
10259         ULONG ulSize,
10260         DWORD dwReserved);
10261 
10262     END_INTERFACE
10263 } ISpSerializeStateVtbl;
10264 
10265 interface ISpSerializeState {
10266     CONST_VTBL ISpSerializeStateVtbl* lpVtbl;
10267 };
10268 
10269 #ifdef COBJMACROS
10270 #ifndef WIDL_C_INLINE_WRAPPERS
10271 /*** IUnknown methods ***/
10272 #define ISpSerializeState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10273 #define ISpSerializeState_AddRef(This) (This)->lpVtbl->AddRef(This)
10274 #define ISpSerializeState_Release(This) (This)->lpVtbl->Release(This)
10275 /*** ISpSerializeState methods ***/
10276 #define ISpSerializeState_GetSerializedState(This,ppbData,pulSize,dwReserved) (This)->lpVtbl->GetSerializedState(This,ppbData,pulSize,dwReserved)
10277 #define ISpSerializeState_SetSerializedState(This,pbData,ulSize,dwReserved) (This)->lpVtbl->SetSerializedState(This,pbData,ulSize,dwReserved)
10278 #else
10279 /*** IUnknown methods ***/
10280 static FORCEINLINE HRESULT ISpSerializeState_QueryInterface(ISpSerializeState* This,REFIID riid,void **ppvObject) {
10281     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10282 }
10283 static FORCEINLINE ULONG ISpSerializeState_AddRef(ISpSerializeState* This) {
10284     return This->lpVtbl->AddRef(This);
10285 }
10286 static FORCEINLINE ULONG ISpSerializeState_Release(ISpSerializeState* This) {
10287     return This->lpVtbl->Release(This);
10288 }
10289 /*** ISpSerializeState methods ***/
10290 static FORCEINLINE HRESULT ISpSerializeState_GetSerializedState(ISpSerializeState* This,BYTE **ppbData,ULONG *pulSize,DWORD dwReserved) {
10291     return This->lpVtbl->GetSerializedState(This,ppbData,pulSize,dwReserved);
10292 }
10293 static FORCEINLINE HRESULT ISpSerializeState_SetSerializedState(ISpSerializeState* This,BYTE *pbData,ULONG ulSize,DWORD dwReserved) {
10294     return This->lpVtbl->SetSerializedState(This,pbData,ulSize,dwReserved);
10295 }
10296 #endif
10297 #endif
10298 
10299 #endif
10300 
10301 
10302 #endif  /* __ISpSerializeState_INTERFACE_DEFINED__ */
10303 
10304 /*****************************************************************************
10305  * ISpRecognizer2 interface
10306  */
10307 #ifndef __ISpRecognizer2_INTERFACE_DEFINED__
10308 #define __ISpRecognizer2_INTERFACE_DEFINED__
10309 
10310 DEFINE_GUID(IID_ISpRecognizer2, 0x8fc6d974, 0xc81e, 0x4098, 0x93,0xc5, 0x01,0x47,0xf6,0x1e,0xd4,0xd3);
10311 #if defined(__cplusplus) && !defined(CINTERFACE)
10312 MIDL_INTERFACE("8fc6d974-c81e-4098-93c5-0147f61ed4d3")
10313 ISpRecognizer2 : public IUnknown
10314 {
10315     virtual HRESULT STDMETHODCALLTYPE EmulateRecognitionEx(
10316         ISpPhrase *pPhrase,
10317         DWORD dwCompareFlags) = 0;
10318 
10319     virtual HRESULT STDMETHODCALLTYPE SetTrainingState(
10320         WINBOOL fDoingTraining,
10321         WINBOOL fAdaptFromTrainingData) = 0;
10322 
10323     virtual HRESULT STDMETHODCALLTYPE ResetAcousticModelAdaptation(
10324         ) = 0;
10325 
10326 };
10327 #ifdef __CRT_UUID_DECL
10328 __CRT_UUID_DECL(ISpRecognizer2, 0x8fc6d974, 0xc81e, 0x4098, 0x93,0xc5, 0x01,0x47,0xf6,0x1e,0xd4,0xd3)
10329 #endif
10330 #else
10331 typedef struct ISpRecognizer2Vtbl {
10332     BEGIN_INTERFACE
10333 
10334     /*** IUnknown methods ***/
10335     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10336         ISpRecognizer2 *This,
10337         REFIID riid,
10338         void **ppvObject);
10339 
10340     ULONG (STDMETHODCALLTYPE *AddRef)(
10341         ISpRecognizer2 *This);
10342 
10343     ULONG (STDMETHODCALLTYPE *Release)(
10344         ISpRecognizer2 *This);
10345 
10346     /*** ISpRecognizer2 methods ***/
10347     HRESULT (STDMETHODCALLTYPE *EmulateRecognitionEx)(
10348         ISpRecognizer2 *This,
10349         ISpPhrase *pPhrase,
10350         DWORD dwCompareFlags);
10351 
10352     HRESULT (STDMETHODCALLTYPE *SetTrainingState)(
10353         ISpRecognizer2 *This,
10354         WINBOOL fDoingTraining,
10355         WINBOOL fAdaptFromTrainingData);
10356 
10357     HRESULT (STDMETHODCALLTYPE *ResetAcousticModelAdaptation)(
10358         ISpRecognizer2 *This);
10359 
10360     END_INTERFACE
10361 } ISpRecognizer2Vtbl;
10362 
10363 interface ISpRecognizer2 {
10364     CONST_VTBL ISpRecognizer2Vtbl* lpVtbl;
10365 };
10366 
10367 #ifdef COBJMACROS
10368 #ifndef WIDL_C_INLINE_WRAPPERS
10369 /*** IUnknown methods ***/
10370 #define ISpRecognizer2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10371 #define ISpRecognizer2_AddRef(This) (This)->lpVtbl->AddRef(This)
10372 #define ISpRecognizer2_Release(This) (This)->lpVtbl->Release(This)
10373 /*** ISpRecognizer2 methods ***/
10374 #define ISpRecognizer2_EmulateRecognitionEx(This,pPhrase,dwCompareFlags) (This)->lpVtbl->EmulateRecognitionEx(This,pPhrase,dwCompareFlags)
10375 #define ISpRecognizer2_SetTrainingState(This,fDoingTraining,fAdaptFromTrainingData) (This)->lpVtbl->SetTrainingState(This,fDoingTraining,fAdaptFromTrainingData)
10376 #define ISpRecognizer2_ResetAcousticModelAdaptation(This) (This)->lpVtbl->ResetAcousticModelAdaptation(This)
10377 #else
10378 /*** IUnknown methods ***/
10379 static FORCEINLINE HRESULT ISpRecognizer2_QueryInterface(ISpRecognizer2* This,REFIID riid,void **ppvObject) {
10380     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10381 }
10382 static FORCEINLINE ULONG ISpRecognizer2_AddRef(ISpRecognizer2* This) {
10383     return This->lpVtbl->AddRef(This);
10384 }
10385 static FORCEINLINE ULONG ISpRecognizer2_Release(ISpRecognizer2* This) {
10386     return This->lpVtbl->Release(This);
10387 }
10388 /*** ISpRecognizer2 methods ***/
10389 static FORCEINLINE HRESULT ISpRecognizer2_EmulateRecognitionEx(ISpRecognizer2* This,ISpPhrase *pPhrase,DWORD dwCompareFlags) {
10390     return This->lpVtbl->EmulateRecognitionEx(This,pPhrase,dwCompareFlags);
10391 }
10392 static FORCEINLINE HRESULT ISpRecognizer2_SetTrainingState(ISpRecognizer2* This,WINBOOL fDoingTraining,WINBOOL fAdaptFromTrainingData) {
10393     return This->lpVtbl->SetTrainingState(This,fDoingTraining,fAdaptFromTrainingData);
10394 }
10395 static FORCEINLINE HRESULT ISpRecognizer2_ResetAcousticModelAdaptation(ISpRecognizer2* This) {
10396     return This->lpVtbl->ResetAcousticModelAdaptation(This);
10397 }
10398 #endif
10399 #endif
10400 
10401 #endif
10402 
10403 
10404 #endif  /* __ISpRecognizer2_INTERFACE_DEFINED__ */
10405 
10406 typedef struct SPNORMALIZATIONLIST {
10407     ULONG ulSize;
10408     WCHAR **ppszzNormalizedList;
10409 } SPNORMALIZATIONLIST;
10410 /*****************************************************************************
10411  * ISpEnginePronunciation interface
10412  */
10413 #ifndef __ISpEnginePronunciation_INTERFACE_DEFINED__
10414 #define __ISpEnginePronunciation_INTERFACE_DEFINED__
10415 
10416 DEFINE_GUID(IID_ISpEnginePronunciation, 0xc360ce4b, 0x76d1, 0x4214, 0xad,0x68, 0x52,0x65,0x7d,0x50,0x83,0xda);
10417 #if defined(__cplusplus) && !defined(CINTERFACE)
10418 MIDL_INTERFACE("c360ce4b-76d1-4214-ad68-52657d5083da")
10419 ISpEnginePronunciation : public IUnknown
10420 {
10421     virtual HRESULT STDMETHODCALLTYPE Normalize(
10422         LPCWSTR pszWord,
10423         LPCWSTR pszLeftContext,
10424         LPCWSTR pszRightContext,
10425         WORD LangID,
10426         SPNORMALIZATIONLIST *pNormalizationList) = 0;
10427 
10428     virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
10429         LPCWSTR pszWord,
10430         LPCWSTR pszLeftContext,
10431         LPCWSTR pszRightContext,
10432         WORD LangID,
10433         SPWORDPRONUNCIATIONLIST *pEnginePronunciationList) = 0;
10434 
10435 };
10436 #ifdef __CRT_UUID_DECL
10437 __CRT_UUID_DECL(ISpEnginePronunciation, 0xc360ce4b, 0x76d1, 0x4214, 0xad,0x68, 0x52,0x65,0x7d,0x50,0x83,0xda)
10438 #endif
10439 #else
10440 typedef struct ISpEnginePronunciationVtbl {
10441     BEGIN_INTERFACE
10442 
10443     /*** IUnknown methods ***/
10444     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10445         ISpEnginePronunciation *This,
10446         REFIID riid,
10447         void **ppvObject);
10448 
10449     ULONG (STDMETHODCALLTYPE *AddRef)(
10450         ISpEnginePronunciation *This);
10451 
10452     ULONG (STDMETHODCALLTYPE *Release)(
10453         ISpEnginePronunciation *This);
10454 
10455     /*** ISpEnginePronunciation methods ***/
10456     HRESULT (STDMETHODCALLTYPE *Normalize)(
10457         ISpEnginePronunciation *This,
10458         LPCWSTR pszWord,
10459         LPCWSTR pszLeftContext,
10460         LPCWSTR pszRightContext,
10461         WORD LangID,
10462         SPNORMALIZATIONLIST *pNormalizationList);
10463 
10464     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
10465         ISpEnginePronunciation *This,
10466         LPCWSTR pszWord,
10467         LPCWSTR pszLeftContext,
10468         LPCWSTR pszRightContext,
10469         WORD LangID,
10470         SPWORDPRONUNCIATIONLIST *pEnginePronunciationList);
10471 
10472     END_INTERFACE
10473 } ISpEnginePronunciationVtbl;
10474 
10475 interface ISpEnginePronunciation {
10476     CONST_VTBL ISpEnginePronunciationVtbl* lpVtbl;
10477 };
10478 
10479 #ifdef COBJMACROS
10480 #ifndef WIDL_C_INLINE_WRAPPERS
10481 /*** IUnknown methods ***/
10482 #define ISpEnginePronunciation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10483 #define ISpEnginePronunciation_AddRef(This) (This)->lpVtbl->AddRef(This)
10484 #define ISpEnginePronunciation_Release(This) (This)->lpVtbl->Release(This)
10485 /*** ISpEnginePronunciation methods ***/
10486 #define ISpEnginePronunciation_Normalize(This,pszWord,pszLeftContext,pszRightContext,LangID,pNormalizationList) (This)->lpVtbl->Normalize(This,pszWord,pszLeftContext,pszRightContext,LangID,pNormalizationList)
10487 #define ISpEnginePronunciation_GetPronunciations(This,pszWord,pszLeftContext,pszRightContext,LangID,pEnginePronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,pszLeftContext,pszRightContext,LangID,pEnginePronunciationList)
10488 #else
10489 /*** IUnknown methods ***/
10490 static FORCEINLINE HRESULT ISpEnginePronunciation_QueryInterface(ISpEnginePronunciation* This,REFIID riid,void **ppvObject) {
10491     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10492 }
10493 static FORCEINLINE ULONG ISpEnginePronunciation_AddRef(ISpEnginePronunciation* This) {
10494     return This->lpVtbl->AddRef(This);
10495 }
10496 static FORCEINLINE ULONG ISpEnginePronunciation_Release(ISpEnginePronunciation* This) {
10497     return This->lpVtbl->Release(This);
10498 }
10499 /*** ISpEnginePronunciation methods ***/
10500 static FORCEINLINE HRESULT ISpEnginePronunciation_Normalize(ISpEnginePronunciation* This,LPCWSTR pszWord,LPCWSTR pszLeftContext,LPCWSTR pszRightContext,WORD LangID,SPNORMALIZATIONLIST *pNormalizationList) {
10501     return This->lpVtbl->Normalize(This,pszWord,pszLeftContext,pszRightContext,LangID,pNormalizationList);
10502 }
10503 static FORCEINLINE HRESULT ISpEnginePronunciation_GetPronunciations(ISpEnginePronunciation* This,LPCWSTR pszWord,LPCWSTR pszLeftContext,LPCWSTR pszRightContext,WORD LangID,SPWORDPRONUNCIATIONLIST *pEnginePronunciationList) {
10504     return This->lpVtbl->GetPronunciations(This,pszWord,pszLeftContext,pszRightContext,LangID,pEnginePronunciationList);
10505 }
10506 #endif
10507 #endif
10508 
10509 #endif
10510 
10511 
10512 #endif  /* __ISpEnginePronunciation_INTERFACE_DEFINED__ */
10513 
10514 typedef struct SPDISPLAYTOKEN {
10515     const WCHAR *pszLexical;
10516     const WCHAR *pszDisplay;
10517     BYTE bDisplayAttributes;
10518 } SPDISPLAYTOKEN;
10519 typedef struct SPDISPLAYPHRASE {
10520     ULONG ulNumTokens;
10521     SPDISPLAYTOKEN *pTokens;
10522 } SPDISPLAYPHRASE;
10523 /*****************************************************************************
10524  * ISpDisplayAlternates interface
10525  */
10526 #ifndef __ISpDisplayAlternates_INTERFACE_DEFINED__
10527 #define __ISpDisplayAlternates_INTERFACE_DEFINED__
10528 
10529 DEFINE_GUID(IID_ISpDisplayAlternates, 0xc8d7c7e2, 0x0dde, 0x44b7, 0xaf,0xe3, 0xb0,0xc9,0x91,0xfb,0xeb,0x5e);
10530 #if defined(__cplusplus) && !defined(CINTERFACE)
10531 MIDL_INTERFACE("c8d7c7e2-0dde-44b7-afe3-b0c991fbeb5e")
10532 ISpDisplayAlternates : public IUnknown
10533 {
10534     virtual HRESULT STDMETHODCALLTYPE GetDisplayAlternates(
10535         const SPDISPLAYPHRASE *pPhrase,
10536         ULONG cRequestCount,
10537         SPDISPLAYPHRASE **ppCoMemPhrases,
10538         ULONG *pcPhrasesReturned) = 0;
10539 
10540     virtual HRESULT STDMETHODCALLTYPE SetFullStopTrailSpace(
10541         ULONG ulTrailSpace) = 0;
10542 
10543 };
10544 #ifdef __CRT_UUID_DECL
10545 __CRT_UUID_DECL(ISpDisplayAlternates, 0xc8d7c7e2, 0x0dde, 0x44b7, 0xaf,0xe3, 0xb0,0xc9,0x91,0xfb,0xeb,0x5e)
10546 #endif
10547 #else
10548 typedef struct ISpDisplayAlternatesVtbl {
10549     BEGIN_INTERFACE
10550 
10551     /*** IUnknown methods ***/
10552     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10553         ISpDisplayAlternates *This,
10554         REFIID riid,
10555         void **ppvObject);
10556 
10557     ULONG (STDMETHODCALLTYPE *AddRef)(
10558         ISpDisplayAlternates *This);
10559 
10560     ULONG (STDMETHODCALLTYPE *Release)(
10561         ISpDisplayAlternates *This);
10562 
10563     /*** ISpDisplayAlternates methods ***/
10564     HRESULT (STDMETHODCALLTYPE *GetDisplayAlternates)(
10565         ISpDisplayAlternates *This,
10566         const SPDISPLAYPHRASE *pPhrase,
10567         ULONG cRequestCount,
10568         SPDISPLAYPHRASE **ppCoMemPhrases,
10569         ULONG *pcPhrasesReturned);
10570 
10571     HRESULT (STDMETHODCALLTYPE *SetFullStopTrailSpace)(
10572         ISpDisplayAlternates *This,
10573         ULONG ulTrailSpace);
10574 
10575     END_INTERFACE
10576 } ISpDisplayAlternatesVtbl;
10577 
10578 interface ISpDisplayAlternates {
10579     CONST_VTBL ISpDisplayAlternatesVtbl* lpVtbl;
10580 };
10581 
10582 #ifdef COBJMACROS
10583 #ifndef WIDL_C_INLINE_WRAPPERS
10584 /*** IUnknown methods ***/
10585 #define ISpDisplayAlternates_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10586 #define ISpDisplayAlternates_AddRef(This) (This)->lpVtbl->AddRef(This)
10587 #define ISpDisplayAlternates_Release(This) (This)->lpVtbl->Release(This)
10588 /*** ISpDisplayAlternates methods ***/
10589 #define ISpDisplayAlternates_GetDisplayAlternates(This,pPhrase,cRequestCount,ppCoMemPhrases,pcPhrasesReturned) (This)->lpVtbl->GetDisplayAlternates(This,pPhrase,cRequestCount,ppCoMemPhrases,pcPhrasesReturned)
10590 #define ISpDisplayAlternates_SetFullStopTrailSpace(This,ulTrailSpace) (This)->lpVtbl->SetFullStopTrailSpace(This,ulTrailSpace)
10591 #else
10592 /*** IUnknown methods ***/
10593 static FORCEINLINE HRESULT ISpDisplayAlternates_QueryInterface(ISpDisplayAlternates* This,REFIID riid,void **ppvObject) {
10594     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10595 }
10596 static FORCEINLINE ULONG ISpDisplayAlternates_AddRef(ISpDisplayAlternates* This) {
10597     return This->lpVtbl->AddRef(This);
10598 }
10599 static FORCEINLINE ULONG ISpDisplayAlternates_Release(ISpDisplayAlternates* This) {
10600     return This->lpVtbl->Release(This);
10601 }
10602 /*** ISpDisplayAlternates methods ***/
10603 static FORCEINLINE HRESULT ISpDisplayAlternates_GetDisplayAlternates(ISpDisplayAlternates* This,const SPDISPLAYPHRASE *pPhrase,ULONG cRequestCount,SPDISPLAYPHRASE **ppCoMemPhrases,ULONG *pcPhrasesReturned) {
10604     return This->lpVtbl->GetDisplayAlternates(This,pPhrase,cRequestCount,ppCoMemPhrases,pcPhrasesReturned);
10605 }
10606 static FORCEINLINE HRESULT ISpDisplayAlternates_SetFullStopTrailSpace(ISpDisplayAlternates* This,ULONG ulTrailSpace) {
10607     return This->lpVtbl->SetFullStopTrailSpace(This,ulTrailSpace);
10608 }
10609 #endif
10610 #endif
10611 
10612 #endif
10613 
10614 
10615 #endif  /* __ISpDisplayAlternates_INTERFACE_DEFINED__ */
10616 
10617 #ifndef __SpeechLib_LIBRARY_DEFINED__
10618 #define __SpeechLib_LIBRARY_DEFINED__
10619 
10620 DEFINE_GUID(LIBID_SpeechLib, 0xc866ca3a, 0x32f7, 0x11d2, 0x96,0x02, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
10621 
10622 #ifndef __ISpeechDataKey_FWD_DEFINED__
10623 #define __ISpeechDataKey_FWD_DEFINED__
10624 typedef interface ISpeechDataKey ISpeechDataKey;
10625 #ifdef __cplusplus
10626 interface ISpeechDataKey;
10627 #endif /* __cplusplus */
10628 #endif
10629 
10630 #ifndef __ISpeechObjectToken_FWD_DEFINED__
10631 #define __ISpeechObjectToken_FWD_DEFINED__
10632 typedef interface ISpeechObjectToken ISpeechObjectToken;
10633 #ifdef __cplusplus
10634 interface ISpeechObjectToken;
10635 #endif /* __cplusplus */
10636 #endif
10637 
10638 #ifndef __ISpeechObjectTokens_FWD_DEFINED__
10639 #define __ISpeechObjectTokens_FWD_DEFINED__
10640 typedef interface ISpeechObjectTokens ISpeechObjectTokens;
10641 #ifdef __cplusplus
10642 interface ISpeechObjectTokens;
10643 #endif /* __cplusplus */
10644 #endif
10645 
10646 #ifndef __ISpeechObjectTokenCategory_FWD_DEFINED__
10647 #define __ISpeechObjectTokenCategory_FWD_DEFINED__
10648 typedef interface ISpeechObjectTokenCategory ISpeechObjectTokenCategory;
10649 #ifdef __cplusplus
10650 interface ISpeechObjectTokenCategory;
10651 #endif /* __cplusplus */
10652 #endif
10653 
10654 #ifndef __ISpeechAudioBufferInfo_FWD_DEFINED__
10655 #define __ISpeechAudioBufferInfo_FWD_DEFINED__
10656 typedef interface ISpeechAudioBufferInfo ISpeechAudioBufferInfo;
10657 #ifdef __cplusplus
10658 interface ISpeechAudioBufferInfo;
10659 #endif /* __cplusplus */
10660 #endif
10661 
10662 #ifndef __ISpeechAudioStatus_FWD_DEFINED__
10663 #define __ISpeechAudioStatus_FWD_DEFINED__
10664 typedef interface ISpeechAudioStatus ISpeechAudioStatus;
10665 #ifdef __cplusplus
10666 interface ISpeechAudioStatus;
10667 #endif /* __cplusplus */
10668 #endif
10669 
10670 #ifndef __ISpeechAudioFormat_FWD_DEFINED__
10671 #define __ISpeechAudioFormat_FWD_DEFINED__
10672 typedef interface ISpeechAudioFormat ISpeechAudioFormat;
10673 #ifdef __cplusplus
10674 interface ISpeechAudioFormat;
10675 #endif /* __cplusplus */
10676 #endif
10677 
10678 #ifndef __ISpeechWaveFormatEx_FWD_DEFINED__
10679 #define __ISpeechWaveFormatEx_FWD_DEFINED__
10680 typedef interface ISpeechWaveFormatEx ISpeechWaveFormatEx;
10681 #ifdef __cplusplus
10682 interface ISpeechWaveFormatEx;
10683 #endif /* __cplusplus */
10684 #endif
10685 
10686 #ifndef __ISpeechBaseStream_FWD_DEFINED__
10687 #define __ISpeechBaseStream_FWD_DEFINED__
10688 typedef interface ISpeechBaseStream ISpeechBaseStream;
10689 #ifdef __cplusplus
10690 interface ISpeechBaseStream;
10691 #endif /* __cplusplus */
10692 #endif
10693 
10694 #ifndef __ISpeechFileStream_FWD_DEFINED__
10695 #define __ISpeechFileStream_FWD_DEFINED__
10696 typedef interface ISpeechFileStream ISpeechFileStream;
10697 #ifdef __cplusplus
10698 interface ISpeechFileStream;
10699 #endif /* __cplusplus */
10700 #endif
10701 
10702 #ifndef __ISpeechMemoryStream_FWD_DEFINED__
10703 #define __ISpeechMemoryStream_FWD_DEFINED__
10704 typedef interface ISpeechMemoryStream ISpeechMemoryStream;
10705 #ifdef __cplusplus
10706 interface ISpeechMemoryStream;
10707 #endif /* __cplusplus */
10708 #endif
10709 
10710 #ifndef __ISpeechCustomStream_FWD_DEFINED__
10711 #define __ISpeechCustomStream_FWD_DEFINED__
10712 typedef interface ISpeechCustomStream ISpeechCustomStream;
10713 #ifdef __cplusplus
10714 interface ISpeechCustomStream;
10715 #endif /* __cplusplus */
10716 #endif
10717 
10718 #ifndef __ISpeechAudio_FWD_DEFINED__
10719 #define __ISpeechAudio_FWD_DEFINED__
10720 typedef interface ISpeechAudio ISpeechAudio;
10721 #ifdef __cplusplus
10722 interface ISpeechAudio;
10723 #endif /* __cplusplus */
10724 #endif
10725 
10726 #ifndef __ISpeechMMSysAudio_FWD_DEFINED__
10727 #define __ISpeechMMSysAudio_FWD_DEFINED__
10728 typedef interface ISpeechMMSysAudio ISpeechMMSysAudio;
10729 #ifdef __cplusplus
10730 interface ISpeechMMSysAudio;
10731 #endif /* __cplusplus */
10732 #endif
10733 
10734 #ifndef __ISpeechVoice_FWD_DEFINED__
10735 #define __ISpeechVoice_FWD_DEFINED__
10736 typedef interface ISpeechVoice ISpeechVoice;
10737 #ifdef __cplusplus
10738 interface ISpeechVoice;
10739 #endif /* __cplusplus */
10740 #endif
10741 
10742 #ifndef __ISpeechVoiceStatus_FWD_DEFINED__
10743 #define __ISpeechVoiceStatus_FWD_DEFINED__
10744 typedef interface ISpeechVoiceStatus ISpeechVoiceStatus;
10745 #ifdef __cplusplus
10746 interface ISpeechVoiceStatus;
10747 #endif /* __cplusplus */
10748 #endif
10749 
10750 #ifndef ___ISpeechVoiceEvents_FWD_DEFINED__
10751 #define ___ISpeechVoiceEvents_FWD_DEFINED__
10752 typedef interface _ISpeechVoiceEvents _ISpeechVoiceEvents;
10753 #ifdef __cplusplus
10754 interface _ISpeechVoiceEvents;
10755 #endif /* __cplusplus */
10756 #endif
10757 
10758 #ifndef __ISpeechRecognizer_FWD_DEFINED__
10759 #define __ISpeechRecognizer_FWD_DEFINED__
10760 typedef interface ISpeechRecognizer ISpeechRecognizer;
10761 #ifdef __cplusplus
10762 interface ISpeechRecognizer;
10763 #endif /* __cplusplus */
10764 #endif
10765 
10766 #ifndef __ISpeechRecognizerStatus_FWD_DEFINED__
10767 #define __ISpeechRecognizerStatus_FWD_DEFINED__
10768 typedef interface ISpeechRecognizerStatus ISpeechRecognizerStatus;
10769 #ifdef __cplusplus
10770 interface ISpeechRecognizerStatus;
10771 #endif /* __cplusplus */
10772 #endif
10773 
10774 #ifndef __ISpeechRecoContext_FWD_DEFINED__
10775 #define __ISpeechRecoContext_FWD_DEFINED__
10776 typedef interface ISpeechRecoContext ISpeechRecoContext;
10777 #ifdef __cplusplus
10778 interface ISpeechRecoContext;
10779 #endif /* __cplusplus */
10780 #endif
10781 
10782 #ifndef __ISpeechRecoGrammar_FWD_DEFINED__
10783 #define __ISpeechRecoGrammar_FWD_DEFINED__
10784 typedef interface ISpeechRecoGrammar ISpeechRecoGrammar;
10785 #ifdef __cplusplus
10786 interface ISpeechRecoGrammar;
10787 #endif /* __cplusplus */
10788 #endif
10789 
10790 #ifndef ___ISpeechRecoContextEvents_FWD_DEFINED__
10791 #define ___ISpeechRecoContextEvents_FWD_DEFINED__
10792 typedef interface _ISpeechRecoContextEvents _ISpeechRecoContextEvents;
10793 #ifdef __cplusplus
10794 interface _ISpeechRecoContextEvents;
10795 #endif /* __cplusplus */
10796 #endif
10797 
10798 #ifndef __ISpeechGrammarRule_FWD_DEFINED__
10799 #define __ISpeechGrammarRule_FWD_DEFINED__
10800 typedef interface ISpeechGrammarRule ISpeechGrammarRule;
10801 #ifdef __cplusplus
10802 interface ISpeechGrammarRule;
10803 #endif /* __cplusplus */
10804 #endif
10805 
10806 #ifndef __ISpeechGrammarRules_FWD_DEFINED__
10807 #define __ISpeechGrammarRules_FWD_DEFINED__
10808 typedef interface ISpeechGrammarRules ISpeechGrammarRules;
10809 #ifdef __cplusplus
10810 interface ISpeechGrammarRules;
10811 #endif /* __cplusplus */
10812 #endif
10813 
10814 #ifndef __ISpeechGrammarRuleState_FWD_DEFINED__
10815 #define __ISpeechGrammarRuleState_FWD_DEFINED__
10816 typedef interface ISpeechGrammarRuleState ISpeechGrammarRuleState;
10817 #ifdef __cplusplus
10818 interface ISpeechGrammarRuleState;
10819 #endif /* __cplusplus */
10820 #endif
10821 
10822 #ifndef __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
10823 #define __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
10824 typedef interface ISpeechGrammarRuleStateTransition ISpeechGrammarRuleStateTransition;
10825 #ifdef __cplusplus
10826 interface ISpeechGrammarRuleStateTransition;
10827 #endif /* __cplusplus */
10828 #endif
10829 
10830 #ifndef __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
10831 #define __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
10832 typedef interface ISpeechGrammarRuleStateTransitions ISpeechGrammarRuleStateTransitions;
10833 #ifdef __cplusplus
10834 interface ISpeechGrammarRuleStateTransitions;
10835 #endif /* __cplusplus */
10836 #endif
10837 
10838 #ifndef __ISpeechTextSelectionInformation_FWD_DEFINED__
10839 #define __ISpeechTextSelectionInformation_FWD_DEFINED__
10840 typedef interface ISpeechTextSelectionInformation ISpeechTextSelectionInformation;
10841 #ifdef __cplusplus
10842 interface ISpeechTextSelectionInformation;
10843 #endif /* __cplusplus */
10844 #endif
10845 
10846 #ifndef __ISpeechRecoResult_FWD_DEFINED__
10847 #define __ISpeechRecoResult_FWD_DEFINED__
10848 typedef interface ISpeechRecoResult ISpeechRecoResult;
10849 #ifdef __cplusplus
10850 interface ISpeechRecoResult;
10851 #endif /* __cplusplus */
10852 #endif
10853 
10854 #ifndef __ISpeechRecoResult2_FWD_DEFINED__
10855 #define __ISpeechRecoResult2_FWD_DEFINED__
10856 typedef interface ISpeechRecoResult2 ISpeechRecoResult2;
10857 #ifdef __cplusplus
10858 interface ISpeechRecoResult2;
10859 #endif /* __cplusplus */
10860 #endif
10861 
10862 #ifndef __ISpeechRecoResultTimes_FWD_DEFINED__
10863 #define __ISpeechRecoResultTimes_FWD_DEFINED__
10864 typedef interface ISpeechRecoResultTimes ISpeechRecoResultTimes;
10865 #ifdef __cplusplus
10866 interface ISpeechRecoResultTimes;
10867 #endif /* __cplusplus */
10868 #endif
10869 
10870 #ifndef __ISpeechPhraseAlternate_FWD_DEFINED__
10871 #define __ISpeechPhraseAlternate_FWD_DEFINED__
10872 typedef interface ISpeechPhraseAlternate ISpeechPhraseAlternate;
10873 #ifdef __cplusplus
10874 interface ISpeechPhraseAlternate;
10875 #endif /* __cplusplus */
10876 #endif
10877 
10878 #ifndef __ISpeechPhraseAlternates_FWD_DEFINED__
10879 #define __ISpeechPhraseAlternates_FWD_DEFINED__
10880 typedef interface ISpeechPhraseAlternates ISpeechPhraseAlternates;
10881 #ifdef __cplusplus
10882 interface ISpeechPhraseAlternates;
10883 #endif /* __cplusplus */
10884 #endif
10885 
10886 #ifndef __ISpeechPhraseInfo_FWD_DEFINED__
10887 #define __ISpeechPhraseInfo_FWD_DEFINED__
10888 typedef interface ISpeechPhraseInfo ISpeechPhraseInfo;
10889 #ifdef __cplusplus
10890 interface ISpeechPhraseInfo;
10891 #endif /* __cplusplus */
10892 #endif
10893 
10894 #ifndef __ISpeechPhraseElement_FWD_DEFINED__
10895 #define __ISpeechPhraseElement_FWD_DEFINED__
10896 typedef interface ISpeechPhraseElement ISpeechPhraseElement;
10897 #ifdef __cplusplus
10898 interface ISpeechPhraseElement;
10899 #endif /* __cplusplus */
10900 #endif
10901 
10902 #ifndef __ISpeechPhraseElements_FWD_DEFINED__
10903 #define __ISpeechPhraseElements_FWD_DEFINED__
10904 typedef interface ISpeechPhraseElements ISpeechPhraseElements;
10905 #ifdef __cplusplus
10906 interface ISpeechPhraseElements;
10907 #endif /* __cplusplus */
10908 #endif
10909 
10910 #ifndef __ISpeechPhraseReplacement_FWD_DEFINED__
10911 #define __ISpeechPhraseReplacement_FWD_DEFINED__
10912 typedef interface ISpeechPhraseReplacement ISpeechPhraseReplacement;
10913 #ifdef __cplusplus
10914 interface ISpeechPhraseReplacement;
10915 #endif /* __cplusplus */
10916 #endif
10917 
10918 #ifndef __ISpeechPhraseReplacements_FWD_DEFINED__
10919 #define __ISpeechPhraseReplacements_FWD_DEFINED__
10920 typedef interface ISpeechPhraseReplacements ISpeechPhraseReplacements;
10921 #ifdef __cplusplus
10922 interface ISpeechPhraseReplacements;
10923 #endif /* __cplusplus */
10924 #endif
10925 
10926 #ifndef __ISpeechPhraseProperty_FWD_DEFINED__
10927 #define __ISpeechPhraseProperty_FWD_DEFINED__
10928 typedef interface ISpeechPhraseProperty ISpeechPhraseProperty;
10929 #ifdef __cplusplus
10930 interface ISpeechPhraseProperty;
10931 #endif /* __cplusplus */
10932 #endif
10933 
10934 #ifndef __ISpeechPhraseProperties_FWD_DEFINED__
10935 #define __ISpeechPhraseProperties_FWD_DEFINED__
10936 typedef interface ISpeechPhraseProperties ISpeechPhraseProperties;
10937 #ifdef __cplusplus
10938 interface ISpeechPhraseProperties;
10939 #endif /* __cplusplus */
10940 #endif
10941 
10942 #ifndef __ISpeechPhraseRule_FWD_DEFINED__
10943 #define __ISpeechPhraseRule_FWD_DEFINED__
10944 typedef interface ISpeechPhraseRule ISpeechPhraseRule;
10945 #ifdef __cplusplus
10946 interface ISpeechPhraseRule;
10947 #endif /* __cplusplus */
10948 #endif
10949 
10950 #ifndef __ISpeechPhraseRules_FWD_DEFINED__
10951 #define __ISpeechPhraseRules_FWD_DEFINED__
10952 typedef interface ISpeechPhraseRules ISpeechPhraseRules;
10953 #ifdef __cplusplus
10954 interface ISpeechPhraseRules;
10955 #endif /* __cplusplus */
10956 #endif
10957 
10958 #ifndef __ISpeechLexicon_FWD_DEFINED__
10959 #define __ISpeechLexicon_FWD_DEFINED__
10960 typedef interface ISpeechLexicon ISpeechLexicon;
10961 #ifdef __cplusplus
10962 interface ISpeechLexicon;
10963 #endif /* __cplusplus */
10964 #endif
10965 
10966 #ifndef __ISpeechLexiconWords_FWD_DEFINED__
10967 #define __ISpeechLexiconWords_FWD_DEFINED__
10968 typedef interface ISpeechLexiconWords ISpeechLexiconWords;
10969 #ifdef __cplusplus
10970 interface ISpeechLexiconWords;
10971 #endif /* __cplusplus */
10972 #endif
10973 
10974 #ifndef __ISpeechLexiconWord_FWD_DEFINED__
10975 #define __ISpeechLexiconWord_FWD_DEFINED__
10976 typedef interface ISpeechLexiconWord ISpeechLexiconWord;
10977 #ifdef __cplusplus
10978 interface ISpeechLexiconWord;
10979 #endif /* __cplusplus */
10980 #endif
10981 
10982 #ifndef __ISpeechLexiconPronunciations_FWD_DEFINED__
10983 #define __ISpeechLexiconPronunciations_FWD_DEFINED__
10984 typedef interface ISpeechLexiconPronunciations ISpeechLexiconPronunciations;
10985 #ifdef __cplusplus
10986 interface ISpeechLexiconPronunciations;
10987 #endif /* __cplusplus */
10988 #endif
10989 
10990 #ifndef __ISpeechLexiconPronunciation_FWD_DEFINED__
10991 #define __ISpeechLexiconPronunciation_FWD_DEFINED__
10992 typedef interface ISpeechLexiconPronunciation ISpeechLexiconPronunciation;
10993 #ifdef __cplusplus
10994 interface ISpeechLexiconPronunciation;
10995 #endif /* __cplusplus */
10996 #endif
10997 
10998 typedef LONG SpeechLanguageId;
10999 #define __SpeechStringConstants_MODULE_DEFINED__
11000 typedef enum DISPID_SpeechDataKey {
11001     DISPID_SDKSetBinaryValue = 1,
11002     DISPID_SDKGetBinaryValue = 2,
11003     DISPID_SDKSetStringValue = 3,
11004     DISPID_SDKGetStringValue = 4,
11005     DISPID_SDKSetLongValue = 5,
11006     DISPID_SDKGetlongValue = 6,
11007     DISPID_SDKOpenKey = 7,
11008     DISPID_SDKCreateKey = 8,
11009     DISPID_SDKDeleteKey = 9,
11010     DISPID_SDKDeleteValue = 10,
11011     DISPID_SDKEnumKeys = 11,
11012     DISPID_SDKEnumValues = 12
11013 } DISPID_SpeechDataKey;
11014 typedef enum DISPID_SpeechObjectToken {
11015     DISPID_SOTId = 1,
11016     DISPID_SOTDataKey = 2,
11017     DISPID_SOTCategory = 3,
11018     DISPID_SOTGetDescription = 4,
11019     DISPID_SOTSetId = 5,
11020     DISPID_SOTGetAttribute = 6,
11021     DISPID_SOTCreateInstance = 7,
11022     DISPID_SOTRemove = 8,
11023     DISPID_SOTGetStorageFileName = 9,
11024     DISPID_SOTRemoveStorageFileName = 10,
11025     DISPID_SOTIsUISupported = 11,
11026     DISPID_SOTDisplayUI = 12,
11027     DISPID_SOTMatchesAttributes = 13
11028 } DISPID_SpeechObjectToken;
11029 typedef enum SpeechDataKeyLocation {
11030     SDKLDefaultLocation = SPDKL_DefaultLocation,
11031     SDKLCurrentUser = SPDKL_CurrentUser,
11032     SDKLLocalMachine = SPDKL_LocalMachine,
11033     SDKLCurrentConfig = SPDKL_CurrentConfig
11034 } SpeechDataKeyLocation;
11035 typedef enum SpeechTokenContext {
11036     STCInprocServer = CLSCTX_INPROC_SERVER,
11037     STCInprocHandler = CLSCTX_INPROC_HANDLER,
11038     STCLocalServer = CLSCTX_LOCAL_SERVER,
11039     STCRemoteServer = CLSCTX_REMOTE_SERVER,
11040     STCAll = ((CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER) | CLSCTX_LOCAL_SERVER) | CLSCTX_REMOTE_SERVER
11041 } SpeechTokenContext;
11042 typedef enum SpeechTokenShellFolder {
11043     STSF_AppData = 0x1a,
11044     STSF_LocalAppData = 0x1c,
11045     STSF_CommonAppData = 0x23,
11046     STSF_FlagCreate = 0x8000
11047 } SpeechTokenShellFolder;
11048 typedef enum DISPID_SpeechObjectTokens {
11049     DISPID_SOTsCount = 1,
11050     DISPID_SOTsItem = DISPID_VALUE,
11051     DISPID_SOTs_NewEnum = DISPID_NEWENUM
11052 } DISPID_SpeechObjectTokens;
11053 typedef enum DISPID_SpeechObjectTokenCategory {
11054     DISPID_SOTCId = 1,
11055     DISPID_SOTCDefault = 2,
11056     DISPID_SOTCSetId = 3,
11057     DISPID_SOTCGetDataKey = 4,
11058     DISPID_SOTCEnumerateTokens = 5
11059 } DISPID_SpeechObjectTokenCategory;
11060 /*****************************************************************************
11061  * ISpeechDataKey interface
11062  */
11063 #ifndef __ISpeechDataKey_INTERFACE_DEFINED__
11064 #define __ISpeechDataKey_INTERFACE_DEFINED__
11065 
11066 DEFINE_GUID(IID_ISpeechDataKey, 0xce17c09b, 0x4efa, 0x44d5, 0xa4,0xc9, 0x59,0xd9,0x58,0x5a,0xb0,0xcd);
11067 #if defined(__cplusplus) && !defined(CINTERFACE)
11068 MIDL_INTERFACE("ce17c09b-4efa-44d5-a4c9-59d9585ab0cd")
11069 ISpeechDataKey : public IDispatch
11070 {
11071     virtual HRESULT STDMETHODCALLTYPE SetBinaryValue(
11072         const BSTR ValueName,
11073         VARIANT Value) = 0;
11074 
11075     virtual HRESULT STDMETHODCALLTYPE GetBinaryValue(
11076         const BSTR ValueName,
11077         VARIANT *Value) = 0;
11078 
11079     virtual HRESULT STDMETHODCALLTYPE SetStringValue(
11080         const BSTR ValueName,
11081         const BSTR Value) = 0;
11082 
11083     virtual HRESULT STDMETHODCALLTYPE GetStringValue(
11084         const BSTR ValueName,
11085         BSTR *Value) = 0;
11086 
11087     virtual HRESULT STDMETHODCALLTYPE SetLongValue(
11088         const BSTR ValueName,
11089         LONG Value) = 0;
11090 
11091     virtual HRESULT STDMETHODCALLTYPE GetLongValue(
11092         const BSTR ValueName,
11093         LONG *Value) = 0;
11094 
11095     virtual HRESULT STDMETHODCALLTYPE OpenKey(
11096         const BSTR SubKeyName,
11097         ISpeechDataKey **SubKey) = 0;
11098 
11099     virtual HRESULT STDMETHODCALLTYPE CreateKey(
11100         const BSTR SubKeyName,
11101         ISpeechDataKey **SubKey) = 0;
11102 
11103     virtual HRESULT STDMETHODCALLTYPE DeleteKey(
11104         const BSTR SubKeyName) = 0;
11105 
11106     virtual HRESULT STDMETHODCALLTYPE DeleteValue(
11107         const BSTR ValueName) = 0;
11108 
11109     virtual HRESULT STDMETHODCALLTYPE EnumKeys(
11110         LONG Index,
11111         BSTR *SubKeyName) = 0;
11112 
11113     virtual HRESULT STDMETHODCALLTYPE EnumValues(
11114         LONG Index,
11115         BSTR *ValueName) = 0;
11116 
11117 };
11118 #ifdef __CRT_UUID_DECL
11119 __CRT_UUID_DECL(ISpeechDataKey, 0xce17c09b, 0x4efa, 0x44d5, 0xa4,0xc9, 0x59,0xd9,0x58,0x5a,0xb0,0xcd)
11120 #endif
11121 #else
11122 typedef struct ISpeechDataKeyVtbl {
11123     BEGIN_INTERFACE
11124 
11125     /*** IUnknown methods ***/
11126     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11127         ISpeechDataKey *This,
11128         REFIID riid,
11129         void **ppvObject);
11130 
11131     ULONG (STDMETHODCALLTYPE *AddRef)(
11132         ISpeechDataKey *This);
11133 
11134     ULONG (STDMETHODCALLTYPE *Release)(
11135         ISpeechDataKey *This);
11136 
11137     /*** IDispatch methods ***/
11138     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
11139         ISpeechDataKey *This,
11140         UINT *pctinfo);
11141 
11142     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
11143         ISpeechDataKey *This,
11144         UINT iTInfo,
11145         LCID lcid,
11146         ITypeInfo **ppTInfo);
11147 
11148     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
11149         ISpeechDataKey *This,
11150         REFIID riid,
11151         LPOLESTR *rgszNames,
11152         UINT cNames,
11153         LCID lcid,
11154         DISPID *rgDispId);
11155 
11156     HRESULT (STDMETHODCALLTYPE *Invoke)(
11157         ISpeechDataKey *This,
11158         DISPID dispIdMember,
11159         REFIID riid,
11160         LCID lcid,
11161         WORD wFlags,
11162         DISPPARAMS *pDispParams,
11163         VARIANT *pVarResult,
11164         EXCEPINFO *pExcepInfo,
11165         UINT *puArgErr);
11166 
11167     /*** ISpeechDataKey methods ***/
11168     HRESULT (STDMETHODCALLTYPE *SetBinaryValue)(
11169         ISpeechDataKey *This,
11170         const BSTR ValueName,
11171         VARIANT Value);
11172 
11173     HRESULT (STDMETHODCALLTYPE *GetBinaryValue)(
11174         ISpeechDataKey *This,
11175         const BSTR ValueName,
11176         VARIANT *Value);
11177 
11178     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
11179         ISpeechDataKey *This,
11180         const BSTR ValueName,
11181         const BSTR Value);
11182 
11183     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
11184         ISpeechDataKey *This,
11185         const BSTR ValueName,
11186         BSTR *Value);
11187 
11188     HRESULT (STDMETHODCALLTYPE *SetLongValue)(
11189         ISpeechDataKey *This,
11190         const BSTR ValueName,
11191         LONG Value);
11192 
11193     HRESULT (STDMETHODCALLTYPE *GetLongValue)(
11194         ISpeechDataKey *This,
11195         const BSTR ValueName,
11196         LONG *Value);
11197 
11198     HRESULT (STDMETHODCALLTYPE *OpenKey)(
11199         ISpeechDataKey *This,
11200         const BSTR SubKeyName,
11201         ISpeechDataKey **SubKey);
11202 
11203     HRESULT (STDMETHODCALLTYPE *CreateKey)(
11204         ISpeechDataKey *This,
11205         const BSTR SubKeyName,
11206         ISpeechDataKey **SubKey);
11207 
11208     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
11209         ISpeechDataKey *This,
11210         const BSTR SubKeyName);
11211 
11212     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
11213         ISpeechDataKey *This,
11214         const BSTR ValueName);
11215 
11216     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
11217         ISpeechDataKey *This,
11218         LONG Index,
11219         BSTR *SubKeyName);
11220 
11221     HRESULT (STDMETHODCALLTYPE *EnumValues)(
11222         ISpeechDataKey *This,
11223         LONG Index,
11224         BSTR *ValueName);
11225 
11226     END_INTERFACE
11227 } ISpeechDataKeyVtbl;
11228 
11229 interface ISpeechDataKey {
11230     CONST_VTBL ISpeechDataKeyVtbl* lpVtbl;
11231 };
11232 
11233 #ifdef COBJMACROS
11234 #ifndef WIDL_C_INLINE_WRAPPERS
11235 /*** IUnknown methods ***/
11236 #define ISpeechDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11237 #define ISpeechDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
11238 #define ISpeechDataKey_Release(This) (This)->lpVtbl->Release(This)
11239 /*** IDispatch methods ***/
11240 #define ISpeechDataKey_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
11241 #define ISpeechDataKey_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
11242 #define ISpeechDataKey_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
11243 #define ISpeechDataKey_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
11244 /*** ISpeechDataKey methods ***/
11245 #define ISpeechDataKey_SetBinaryValue(This,ValueName,Value) (This)->lpVtbl->SetBinaryValue(This,ValueName,Value)
11246 #define ISpeechDataKey_GetBinaryValue(This,ValueName,Value) (This)->lpVtbl->GetBinaryValue(This,ValueName,Value)
11247 #define ISpeechDataKey_SetStringValue(This,ValueName,Value) (This)->lpVtbl->SetStringValue(This,ValueName,Value)
11248 #define ISpeechDataKey_GetStringValue(This,ValueName,Value) (This)->lpVtbl->GetStringValue(This,ValueName,Value)
11249 #define ISpeechDataKey_SetLongValue(This,ValueName,Value) (This)->lpVtbl->SetLongValue(This,ValueName,Value)
11250 #define ISpeechDataKey_GetLongValue(This,ValueName,Value) (This)->lpVtbl->GetLongValue(This,ValueName,Value)
11251 #define ISpeechDataKey_OpenKey(This,SubKeyName,SubKey) (This)->lpVtbl->OpenKey(This,SubKeyName,SubKey)
11252 #define ISpeechDataKey_CreateKey(This,SubKeyName,SubKey) (This)->lpVtbl->CreateKey(This,SubKeyName,SubKey)
11253 #define ISpeechDataKey_DeleteKey(This,SubKeyName) (This)->lpVtbl->DeleteKey(This,SubKeyName)
11254 #define ISpeechDataKey_DeleteValue(This,ValueName) (This)->lpVtbl->DeleteValue(This,ValueName)
11255 #define ISpeechDataKey_EnumKeys(This,Index,SubKeyName) (This)->lpVtbl->EnumKeys(This,Index,SubKeyName)
11256 #define ISpeechDataKey_EnumValues(This,Index,ValueName) (This)->lpVtbl->EnumValues(This,Index,ValueName)
11257 #else
11258 /*** IUnknown methods ***/
11259 static FORCEINLINE HRESULT ISpeechDataKey_QueryInterface(ISpeechDataKey* This,REFIID riid,void **ppvObject) {
11260     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11261 }
11262 static FORCEINLINE ULONG ISpeechDataKey_AddRef(ISpeechDataKey* This) {
11263     return This->lpVtbl->AddRef(This);
11264 }
11265 static FORCEINLINE ULONG ISpeechDataKey_Release(ISpeechDataKey* This) {
11266     return This->lpVtbl->Release(This);
11267 }
11268 /*** IDispatch methods ***/
11269 static FORCEINLINE HRESULT ISpeechDataKey_GetTypeInfoCount(ISpeechDataKey* This,UINT *pctinfo) {
11270     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
11271 }
11272 static FORCEINLINE HRESULT ISpeechDataKey_GetTypeInfo(ISpeechDataKey* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
11273     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
11274 }
11275 static FORCEINLINE HRESULT ISpeechDataKey_GetIDsOfNames(ISpeechDataKey* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
11276     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
11277 }
11278 static FORCEINLINE HRESULT ISpeechDataKey_Invoke(ISpeechDataKey* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
11279     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
11280 }
11281 /*** ISpeechDataKey methods ***/
11282 static FORCEINLINE HRESULT ISpeechDataKey_SetBinaryValue(ISpeechDataKey* This,const BSTR ValueName,VARIANT Value) {
11283     return This->lpVtbl->SetBinaryValue(This,ValueName,Value);
11284 }
11285 static FORCEINLINE HRESULT ISpeechDataKey_GetBinaryValue(ISpeechDataKey* This,const BSTR ValueName,VARIANT *Value) {
11286     return This->lpVtbl->GetBinaryValue(This,ValueName,Value);
11287 }
11288 static FORCEINLINE HRESULT ISpeechDataKey_SetStringValue(ISpeechDataKey* This,const BSTR ValueName,const BSTR Value) {
11289     return This->lpVtbl->SetStringValue(This,ValueName,Value);
11290 }
11291 static FORCEINLINE HRESULT ISpeechDataKey_GetStringValue(ISpeechDataKey* This,const BSTR ValueName,BSTR *Value) {
11292     return This->lpVtbl->GetStringValue(This,ValueName,Value);
11293 }
11294 static FORCEINLINE HRESULT ISpeechDataKey_SetLongValue(ISpeechDataKey* This,const BSTR ValueName,LONG Value) {
11295     return This->lpVtbl->SetLongValue(This,ValueName,Value);
11296 }
11297 static FORCEINLINE HRESULT ISpeechDataKey_GetLongValue(ISpeechDataKey* This,const BSTR ValueName,LONG *Value) {
11298     return This->lpVtbl->GetLongValue(This,ValueName,Value);
11299 }
11300 static FORCEINLINE HRESULT ISpeechDataKey_OpenKey(ISpeechDataKey* This,const BSTR SubKeyName,ISpeechDataKey **SubKey) {
11301     return This->lpVtbl->OpenKey(This,SubKeyName,SubKey);
11302 }
11303 static FORCEINLINE HRESULT ISpeechDataKey_CreateKey(ISpeechDataKey* This,const BSTR SubKeyName,ISpeechDataKey **SubKey) {
11304     return This->lpVtbl->CreateKey(This,SubKeyName,SubKey);
11305 }
11306 static FORCEINLINE HRESULT ISpeechDataKey_DeleteKey(ISpeechDataKey* This,const BSTR SubKeyName) {
11307     return This->lpVtbl->DeleteKey(This,SubKeyName);
11308 }
11309 static FORCEINLINE HRESULT ISpeechDataKey_DeleteValue(ISpeechDataKey* This,const BSTR ValueName) {
11310     return This->lpVtbl->DeleteValue(This,ValueName);
11311 }
11312 static FORCEINLINE HRESULT ISpeechDataKey_EnumKeys(ISpeechDataKey* This,LONG Index,BSTR *SubKeyName) {
11313     return This->lpVtbl->EnumKeys(This,Index,SubKeyName);
11314 }
11315 static FORCEINLINE HRESULT ISpeechDataKey_EnumValues(ISpeechDataKey* This,LONG Index,BSTR *ValueName) {
11316     return This->lpVtbl->EnumValues(This,Index,ValueName);
11317 }
11318 #endif
11319 #endif
11320 
11321 #endif
11322 
11323 
11324 #endif  /* __ISpeechDataKey_INTERFACE_DEFINED__ */
11325 
11326 /*****************************************************************************
11327  * ISpeechObjectToken interface
11328  */
11329 #ifndef __ISpeechObjectToken_INTERFACE_DEFINED__
11330 #define __ISpeechObjectToken_INTERFACE_DEFINED__
11331 
11332 DEFINE_GUID(IID_ISpeechObjectToken, 0xc74a3adc, 0xb727, 0x4500, 0xa8,0x4a, 0xb5,0x26,0x72,0x1c,0x8b,0x8c);
11333 #if defined(__cplusplus) && !defined(CINTERFACE)
11334 MIDL_INTERFACE("c74a3adc-b727-4500-a84a-b526721c8b8c")
11335 ISpeechObjectToken : public IDispatch
11336 {
11337     virtual HRESULT STDMETHODCALLTYPE get_Id(
11338         BSTR *ObjectId) = 0;
11339 
11340     virtual HRESULT STDMETHODCALLTYPE get_DataKey(
11341         ISpeechDataKey **DataKey) = 0;
11342 
11343     virtual HRESULT STDMETHODCALLTYPE get_Category(
11344         ISpeechObjectTokenCategory **Category) = 0;
11345 
11346     virtual HRESULT STDMETHODCALLTYPE GetDescription(
11347         LONG Locale,
11348         BSTR *Description) = 0;
11349 
11350     virtual HRESULT STDMETHODCALLTYPE SetId(
11351         BSTR Id,
11352         BSTR CategoryID = L"",
11353         VARIANT_BOOL CreateIfNotExist = 0) = 0;
11354 
11355     virtual HRESULT STDMETHODCALLTYPE GetAttribute(
11356         BSTR AttributeName,
11357         BSTR *AttributeValue) = 0;
11358 
11359     virtual HRESULT STDMETHODCALLTYPE CreateInstance(
11360         IUnknown *pUnkOuter,
11361         SpeechTokenContext ClsContext,
11362         IUnknown **Object) = 0;
11363 
11364     virtual HRESULT STDMETHODCALLTYPE Remove(
11365         BSTR ObjectStorageCLSID) = 0;
11366 
11367     virtual HRESULT STDMETHODCALLTYPE GetStorageFileName(
11368         BSTR ObjectStorageCLSID,
11369         BSTR KeyName,
11370         BSTR FileName,
11371         SpeechTokenShellFolder Folder,
11372         BSTR *FilePath) = 0;
11373 
11374     virtual HRESULT STDMETHODCALLTYPE RemoveStorageFileName(
11375         BSTR ObjectStorageCLSID,
11376         BSTR KeyName,
11377         VARIANT_BOOL DeleteFile) = 0;
11378 
11379     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
11380         const BSTR TypeOfUI,
11381         const VARIANT *ExtraData,
11382         IUnknown *Object,
11383         VARIANT_BOOL *Supported) = 0;
11384 
11385     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
11386         LONG hWnd,
11387         BSTR Title,
11388         const BSTR TypeOfUI,
11389         const VARIANT *ExtraData = 0,
11390         IUnknown *Object = 0) = 0;
11391 
11392     virtual HRESULT STDMETHODCALLTYPE MatchesAttributes(
11393         BSTR Attributes,
11394         VARIANT_BOOL *Matches) = 0;
11395 
11396 };
11397 #ifdef __CRT_UUID_DECL
11398 __CRT_UUID_DECL(ISpeechObjectToken, 0xc74a3adc, 0xb727, 0x4500, 0xa8,0x4a, 0xb5,0x26,0x72,0x1c,0x8b,0x8c)
11399 #endif
11400 #else
11401 typedef struct ISpeechObjectTokenVtbl {
11402     BEGIN_INTERFACE
11403 
11404     /*** IUnknown methods ***/
11405     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11406         ISpeechObjectToken *This,
11407         REFIID riid,
11408         void **ppvObject);
11409 
11410     ULONG (STDMETHODCALLTYPE *AddRef)(
11411         ISpeechObjectToken *This);
11412 
11413     ULONG (STDMETHODCALLTYPE *Release)(
11414         ISpeechObjectToken *This);
11415 
11416     /*** IDispatch methods ***/
11417     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
11418         ISpeechObjectToken *This,
11419         UINT *pctinfo);
11420 
11421     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
11422         ISpeechObjectToken *This,
11423         UINT iTInfo,
11424         LCID lcid,
11425         ITypeInfo **ppTInfo);
11426 
11427     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
11428         ISpeechObjectToken *This,
11429         REFIID riid,
11430         LPOLESTR *rgszNames,
11431         UINT cNames,
11432         LCID lcid,
11433         DISPID *rgDispId);
11434 
11435     HRESULT (STDMETHODCALLTYPE *Invoke)(
11436         ISpeechObjectToken *This,
11437         DISPID dispIdMember,
11438         REFIID riid,
11439         LCID lcid,
11440         WORD wFlags,
11441         DISPPARAMS *pDispParams,
11442         VARIANT *pVarResult,
11443         EXCEPINFO *pExcepInfo,
11444         UINT *puArgErr);
11445 
11446     /*** ISpeechObjectToken methods ***/
11447     HRESULT (STDMETHODCALLTYPE *get_Id)(
11448         ISpeechObjectToken *This,
11449         BSTR *ObjectId);
11450 
11451     HRESULT (STDMETHODCALLTYPE *get_DataKey)(
11452         ISpeechObjectToken *This,
11453         ISpeechDataKey **DataKey);
11454 
11455     HRESULT (STDMETHODCALLTYPE *get_Category)(
11456         ISpeechObjectToken *This,
11457         ISpeechObjectTokenCategory **Category);
11458 
11459     HRESULT (STDMETHODCALLTYPE *GetDescription)(
11460         ISpeechObjectToken *This,
11461         LONG Locale,
11462         BSTR *Description);
11463 
11464     HRESULT (STDMETHODCALLTYPE *SetId)(
11465         ISpeechObjectToken *This,
11466         BSTR Id,
11467         BSTR CategoryID,
11468         VARIANT_BOOL CreateIfNotExist);
11469 
11470     HRESULT (STDMETHODCALLTYPE *GetAttribute)(
11471         ISpeechObjectToken *This,
11472         BSTR AttributeName,
11473         BSTR *AttributeValue);
11474 
11475     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
11476         ISpeechObjectToken *This,
11477         IUnknown *pUnkOuter,
11478         SpeechTokenContext ClsContext,
11479         IUnknown **Object);
11480 
11481     HRESULT (STDMETHODCALLTYPE *Remove)(
11482         ISpeechObjectToken *This,
11483         BSTR ObjectStorageCLSID);
11484 
11485     HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
11486         ISpeechObjectToken *This,
11487         BSTR ObjectStorageCLSID,
11488         BSTR KeyName,
11489         BSTR FileName,
11490         SpeechTokenShellFolder Folder,
11491         BSTR *FilePath);
11492 
11493     HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
11494         ISpeechObjectToken *This,
11495         BSTR ObjectStorageCLSID,
11496         BSTR KeyName,
11497         VARIANT_BOOL DeleteFile);
11498 
11499     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
11500         ISpeechObjectToken *This,
11501         const BSTR TypeOfUI,
11502         const VARIANT *ExtraData,
11503         IUnknown *Object,
11504         VARIANT_BOOL *Supported);
11505 
11506     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
11507         ISpeechObjectToken *This,
11508         LONG hWnd,
11509         BSTR Title,
11510         const BSTR TypeOfUI,
11511         const VARIANT *ExtraData,
11512         IUnknown *Object);
11513 
11514     HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
11515         ISpeechObjectToken *This,
11516         BSTR Attributes,
11517         VARIANT_BOOL *Matches);
11518 
11519     END_INTERFACE
11520 } ISpeechObjectTokenVtbl;
11521 
11522 interface ISpeechObjectToken {
11523     CONST_VTBL ISpeechObjectTokenVtbl* lpVtbl;
11524 };
11525 
11526 #ifdef COBJMACROS
11527 #ifndef WIDL_C_INLINE_WRAPPERS
11528 /*** IUnknown methods ***/
11529 #define ISpeechObjectToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11530 #define ISpeechObjectToken_AddRef(This) (This)->lpVtbl->AddRef(This)
11531 #define ISpeechObjectToken_Release(This) (This)->lpVtbl->Release(This)
11532 /*** IDispatch methods ***/
11533 #define ISpeechObjectToken_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
11534 #define ISpeechObjectToken_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
11535 #define ISpeechObjectToken_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
11536 #define ISpeechObjectToken_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
11537 /*** ISpeechObjectToken methods ***/
11538 #define ISpeechObjectToken_get_Id(This,ObjectId) (This)->lpVtbl->get_Id(This,ObjectId)
11539 #define ISpeechObjectToken_get_DataKey(This,DataKey) (This)->lpVtbl->get_DataKey(This,DataKey)
11540 #define ISpeechObjectToken_get_Category(This,Category) (This)->lpVtbl->get_Category(This,Category)
11541 #define ISpeechObjectToken_GetDescription(This,Locale,Description) (This)->lpVtbl->GetDescription(This,Locale,Description)
11542 #define ISpeechObjectToken_SetId(This,Id,CategoryID,CreateIfNotExist) (This)->lpVtbl->SetId(This,Id,CategoryID,CreateIfNotExist)
11543 #define ISpeechObjectToken_GetAttribute(This,AttributeName,AttributeValue) (This)->lpVtbl->GetAttribute(This,AttributeName,AttributeValue)
11544 #define ISpeechObjectToken_CreateInstance(This,pUnkOuter,ClsContext,Object) (This)->lpVtbl->CreateInstance(This,pUnkOuter,ClsContext,Object)
11545 #define ISpeechObjectToken_Remove(This,ObjectStorageCLSID) (This)->lpVtbl->Remove(This,ObjectStorageCLSID)
11546 #define ISpeechObjectToken_GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath) (This)->lpVtbl->GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath)
11547 #define ISpeechObjectToken_RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile)
11548 #define ISpeechObjectToken_IsUISupported(This,TypeOfUI,ExtraData,Object,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Object,Supported)
11549 #define ISpeechObjectToken_DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object) (This)->lpVtbl->DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object)
11550 #define ISpeechObjectToken_MatchesAttributes(This,Attributes,Matches) (This)->lpVtbl->MatchesAttributes(This,Attributes,Matches)
11551 #else
11552 /*** IUnknown methods ***/
11553 static FORCEINLINE HRESULT ISpeechObjectToken_QueryInterface(ISpeechObjectToken* This,REFIID riid,void **ppvObject) {
11554     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11555 }
11556 static FORCEINLINE ULONG ISpeechObjectToken_AddRef(ISpeechObjectToken* This) {
11557     return This->lpVtbl->AddRef(This);
11558 }
11559 static FORCEINLINE ULONG ISpeechObjectToken_Release(ISpeechObjectToken* This) {
11560     return This->lpVtbl->Release(This);
11561 }
11562 /*** IDispatch methods ***/
11563 static FORCEINLINE HRESULT ISpeechObjectToken_GetTypeInfoCount(ISpeechObjectToken* This,UINT *pctinfo) {
11564     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
11565 }
11566 static FORCEINLINE HRESULT ISpeechObjectToken_GetTypeInfo(ISpeechObjectToken* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
11567     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
11568 }
11569 static FORCEINLINE HRESULT ISpeechObjectToken_GetIDsOfNames(ISpeechObjectToken* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
11570     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
11571 }
11572 static FORCEINLINE HRESULT ISpeechObjectToken_Invoke(ISpeechObjectToken* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
11573     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
11574 }
11575 /*** ISpeechObjectToken methods ***/
11576 static FORCEINLINE HRESULT ISpeechObjectToken_get_Id(ISpeechObjectToken* This,BSTR *ObjectId) {
11577     return This->lpVtbl->get_Id(This,ObjectId);
11578 }
11579 static FORCEINLINE HRESULT ISpeechObjectToken_get_DataKey(ISpeechObjectToken* This,ISpeechDataKey **DataKey) {
11580     return This->lpVtbl->get_DataKey(This,DataKey);
11581 }
11582 static FORCEINLINE HRESULT ISpeechObjectToken_get_Category(ISpeechObjectToken* This,ISpeechObjectTokenCategory **Category) {
11583     return This->lpVtbl->get_Category(This,Category);
11584 }
11585 static FORCEINLINE HRESULT ISpeechObjectToken_GetDescription(ISpeechObjectToken* This,LONG Locale,BSTR *Description) {
11586     return This->lpVtbl->GetDescription(This,Locale,Description);
11587 }
11588 static FORCEINLINE HRESULT ISpeechObjectToken_SetId(ISpeechObjectToken* This,BSTR Id,BSTR CategoryID,VARIANT_BOOL CreateIfNotExist) {
11589     return This->lpVtbl->SetId(This,Id,CategoryID,CreateIfNotExist);
11590 }
11591 static FORCEINLINE HRESULT ISpeechObjectToken_GetAttribute(ISpeechObjectToken* This,BSTR AttributeName,BSTR *AttributeValue) {
11592     return This->lpVtbl->GetAttribute(This,AttributeName,AttributeValue);
11593 }
11594 static FORCEINLINE HRESULT ISpeechObjectToken_CreateInstance(ISpeechObjectToken* This,IUnknown *pUnkOuter,SpeechTokenContext ClsContext,IUnknown **Object) {
11595     return This->lpVtbl->CreateInstance(This,pUnkOuter,ClsContext,Object);
11596 }
11597 static FORCEINLINE HRESULT ISpeechObjectToken_Remove(ISpeechObjectToken* This,BSTR ObjectStorageCLSID) {
11598     return This->lpVtbl->Remove(This,ObjectStorageCLSID);
11599 }
11600 static FORCEINLINE HRESULT ISpeechObjectToken_GetStorageFileName(ISpeechObjectToken* This,BSTR ObjectStorageCLSID,BSTR KeyName,BSTR FileName,SpeechTokenShellFolder Folder,BSTR *FilePath) {
11601     return This->lpVtbl->GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath);
11602 }
11603 static FORCEINLINE HRESULT ISpeechObjectToken_RemoveStorageFileName(ISpeechObjectToken* This,BSTR ObjectStorageCLSID,BSTR KeyName,VARIANT_BOOL DeleteFile) {
11604     return This->lpVtbl->RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile);
11605 }
11606 static FORCEINLINE HRESULT ISpeechObjectToken_IsUISupported(ISpeechObjectToken* This,const BSTR TypeOfUI,const VARIANT *ExtraData,IUnknown *Object,VARIANT_BOOL *Supported) {
11607     return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Object,Supported);
11608 }
11609 static FORCEINLINE HRESULT ISpeechObjectToken_DisplayUI(ISpeechObjectToken* This,LONG hWnd,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData,IUnknown *Object) {
11610     return This->lpVtbl->DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object);
11611 }
11612 static FORCEINLINE HRESULT ISpeechObjectToken_MatchesAttributes(ISpeechObjectToken* This,BSTR Attributes,VARIANT_BOOL *Matches) {
11613     return This->lpVtbl->MatchesAttributes(This,Attributes,Matches);
11614 }
11615 #endif
11616 #endif
11617 
11618 #endif
11619 
11620 
11621 #endif  /* __ISpeechObjectToken_INTERFACE_DEFINED__ */
11622 
11623 /*****************************************************************************
11624  * ISpeechObjectTokens interface
11625  */
11626 #ifndef __ISpeechObjectTokens_INTERFACE_DEFINED__
11627 #define __ISpeechObjectTokens_INTERFACE_DEFINED__
11628 
11629 DEFINE_GUID(IID_ISpeechObjectTokens, 0x9285b776, 0x2e7b, 0x4bc0, 0xb5,0x3e, 0x58,0x0e,0xb6,0xfa,0x96,0x7f);
11630 #if defined(__cplusplus) && !defined(CINTERFACE)
11631 MIDL_INTERFACE("9285b776-2e7b-4bc0-b53e-580eb6fa967f")
11632 ISpeechObjectTokens : public IDispatch
11633 {
11634     virtual HRESULT STDMETHODCALLTYPE get_Count(
11635         LONG *Count) = 0;
11636 
11637     virtual HRESULT STDMETHODCALLTYPE Item(
11638         LONG Index,
11639         ISpeechObjectToken **Token) = 0;
11640 
11641     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
11642         IUnknown **ppEnumVARIANT) = 0;
11643 
11644 };
11645 #ifdef __CRT_UUID_DECL
11646 __CRT_UUID_DECL(ISpeechObjectTokens, 0x9285b776, 0x2e7b, 0x4bc0, 0xb5,0x3e, 0x58,0x0e,0xb6,0xfa,0x96,0x7f)
11647 #endif
11648 #else
11649 typedef struct ISpeechObjectTokensVtbl {
11650     BEGIN_INTERFACE
11651 
11652     /*** IUnknown methods ***/
11653     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11654         ISpeechObjectTokens *This,
11655         REFIID riid,
11656         void **ppvObject);
11657 
11658     ULONG (STDMETHODCALLTYPE *AddRef)(
11659         ISpeechObjectTokens *This);
11660 
11661     ULONG (STDMETHODCALLTYPE *Release)(
11662         ISpeechObjectTokens *This);
11663 
11664     /*** IDispatch methods ***/
11665     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
11666         ISpeechObjectTokens *This,
11667         UINT *pctinfo);
11668 
11669     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
11670         ISpeechObjectTokens *This,
11671         UINT iTInfo,
11672         LCID lcid,
11673         ITypeInfo **ppTInfo);
11674 
11675     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
11676         ISpeechObjectTokens *This,
11677         REFIID riid,
11678         LPOLESTR *rgszNames,
11679         UINT cNames,
11680         LCID lcid,
11681         DISPID *rgDispId);
11682 
11683     HRESULT (STDMETHODCALLTYPE *Invoke)(
11684         ISpeechObjectTokens *This,
11685         DISPID dispIdMember,
11686         REFIID riid,
11687         LCID lcid,
11688         WORD wFlags,
11689         DISPPARAMS *pDispParams,
11690         VARIANT *pVarResult,
11691         EXCEPINFO *pExcepInfo,
11692         UINT *puArgErr);
11693 
11694     /*** ISpeechObjectTokens methods ***/
11695     HRESULT (STDMETHODCALLTYPE *get_Count)(
11696         ISpeechObjectTokens *This,
11697         LONG *Count);
11698 
11699     HRESULT (STDMETHODCALLTYPE *Item)(
11700         ISpeechObjectTokens *This,
11701         LONG Index,
11702         ISpeechObjectToken **Token);
11703 
11704     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
11705         ISpeechObjectTokens *This,
11706         IUnknown **ppEnumVARIANT);
11707 
11708     END_INTERFACE
11709 } ISpeechObjectTokensVtbl;
11710 
11711 interface ISpeechObjectTokens {
11712     CONST_VTBL ISpeechObjectTokensVtbl* lpVtbl;
11713 };
11714 
11715 #ifdef COBJMACROS
11716 #ifndef WIDL_C_INLINE_WRAPPERS
11717 /*** IUnknown methods ***/
11718 #define ISpeechObjectTokens_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11719 #define ISpeechObjectTokens_AddRef(This) (This)->lpVtbl->AddRef(This)
11720 #define ISpeechObjectTokens_Release(This) (This)->lpVtbl->Release(This)
11721 /*** IDispatch methods ***/
11722 #define ISpeechObjectTokens_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
11723 #define ISpeechObjectTokens_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
11724 #define ISpeechObjectTokens_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
11725 #define ISpeechObjectTokens_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
11726 /*** ISpeechObjectTokens methods ***/
11727 #define ISpeechObjectTokens_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
11728 #define ISpeechObjectTokens_Item(This,Index,Token) (This)->lpVtbl->Item(This,Index,Token)
11729 #define ISpeechObjectTokens_get__NewEnum(This,ppEnumVARIANT) (This)->lpVtbl->get__NewEnum(This,ppEnumVARIANT)
11730 #else
11731 /*** IUnknown methods ***/
11732 static FORCEINLINE HRESULT ISpeechObjectTokens_QueryInterface(ISpeechObjectTokens* This,REFIID riid,void **ppvObject) {
11733     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11734 }
11735 static FORCEINLINE ULONG ISpeechObjectTokens_AddRef(ISpeechObjectTokens* This) {
11736     return This->lpVtbl->AddRef(This);
11737 }
11738 static FORCEINLINE ULONG ISpeechObjectTokens_Release(ISpeechObjectTokens* This) {
11739     return This->lpVtbl->Release(This);
11740 }
11741 /*** IDispatch methods ***/
11742 static FORCEINLINE HRESULT ISpeechObjectTokens_GetTypeInfoCount(ISpeechObjectTokens* This,UINT *pctinfo) {
11743     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
11744 }
11745 static FORCEINLINE HRESULT ISpeechObjectTokens_GetTypeInfo(ISpeechObjectTokens* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
11746     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
11747 }
11748 static FORCEINLINE HRESULT ISpeechObjectTokens_GetIDsOfNames(ISpeechObjectTokens* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
11749     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
11750 }
11751 static FORCEINLINE HRESULT ISpeechObjectTokens_Invoke(ISpeechObjectTokens* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
11752     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
11753 }
11754 /*** ISpeechObjectTokens methods ***/
11755 static FORCEINLINE HRESULT ISpeechObjectTokens_get_Count(ISpeechObjectTokens* This,LONG *Count) {
11756     return This->lpVtbl->get_Count(This,Count);
11757 }
11758 static FORCEINLINE HRESULT ISpeechObjectTokens_Item(ISpeechObjectTokens* This,LONG Index,ISpeechObjectToken **Token) {
11759     return This->lpVtbl->Item(This,Index,Token);
11760 }
11761 static FORCEINLINE HRESULT ISpeechObjectTokens_get__NewEnum(ISpeechObjectTokens* This,IUnknown **ppEnumVARIANT) {
11762     return This->lpVtbl->get__NewEnum(This,ppEnumVARIANT);
11763 }
11764 #endif
11765 #endif
11766 
11767 #endif
11768 
11769 
11770 #endif  /* __ISpeechObjectTokens_INTERFACE_DEFINED__ */
11771 
11772 /*****************************************************************************
11773  * ISpeechObjectTokenCategory interface
11774  */
11775 #ifndef __ISpeechObjectTokenCategory_INTERFACE_DEFINED__
11776 #define __ISpeechObjectTokenCategory_INTERFACE_DEFINED__
11777 
11778 DEFINE_GUID(IID_ISpeechObjectTokenCategory, 0xca7eac50, 0x2d01, 0x4145, 0x86,0xd4, 0x5a,0xe7,0xd7,0x0f,0x44,0x69);
11779 #if defined(__cplusplus) && !defined(CINTERFACE)
11780 MIDL_INTERFACE("ca7eac50-2d01-4145-86d4-5ae7d70f4469")
11781 ISpeechObjectTokenCategory : public IDispatch
11782 {
11783     virtual HRESULT STDMETHODCALLTYPE get_Id(
11784         BSTR *Id) = 0;
11785 
11786     virtual HRESULT STDMETHODCALLTYPE put_Default(
11787         const BSTR TokenId) = 0;
11788 
11789     virtual HRESULT STDMETHODCALLTYPE get_Default(
11790         BSTR *TokenId) = 0;
11791 
11792     virtual HRESULT STDMETHODCALLTYPE SetId(
11793         const BSTR Id,
11794         VARIANT_BOOL CreateIfNotExist = 0) = 0;
11795 
11796     virtual HRESULT STDMETHODCALLTYPE GetDataKey(
11797         SpeechDataKeyLocation Location,
11798         ISpeechDataKey **DataKey) = 0;
11799 
11800     virtual HRESULT STDMETHODCALLTYPE EnumerateTokens(
11801         BSTR RequiredAttributes,
11802         BSTR OptionalAttributes,
11803         ISpeechObjectTokens **Tokens) = 0;
11804 
11805 };
11806 #ifdef __CRT_UUID_DECL
11807 __CRT_UUID_DECL(ISpeechObjectTokenCategory, 0xca7eac50, 0x2d01, 0x4145, 0x86,0xd4, 0x5a,0xe7,0xd7,0x0f,0x44,0x69)
11808 #endif
11809 #else
11810 typedef struct ISpeechObjectTokenCategoryVtbl {
11811     BEGIN_INTERFACE
11812 
11813     /*** IUnknown methods ***/
11814     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11815         ISpeechObjectTokenCategory *This,
11816         REFIID riid,
11817         void **ppvObject);
11818 
11819     ULONG (STDMETHODCALLTYPE *AddRef)(
11820         ISpeechObjectTokenCategory *This);
11821 
11822     ULONG (STDMETHODCALLTYPE *Release)(
11823         ISpeechObjectTokenCategory *This);
11824 
11825     /*** IDispatch methods ***/
11826     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
11827         ISpeechObjectTokenCategory *This,
11828         UINT *pctinfo);
11829 
11830     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
11831         ISpeechObjectTokenCategory *This,
11832         UINT iTInfo,
11833         LCID lcid,
11834         ITypeInfo **ppTInfo);
11835 
11836     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
11837         ISpeechObjectTokenCategory *This,
11838         REFIID riid,
11839         LPOLESTR *rgszNames,
11840         UINT cNames,
11841         LCID lcid,
11842         DISPID *rgDispId);
11843 
11844     HRESULT (STDMETHODCALLTYPE *Invoke)(
11845         ISpeechObjectTokenCategory *This,
11846         DISPID dispIdMember,
11847         REFIID riid,
11848         LCID lcid,
11849         WORD wFlags,
11850         DISPPARAMS *pDispParams,
11851         VARIANT *pVarResult,
11852         EXCEPINFO *pExcepInfo,
11853         UINT *puArgErr);
11854 
11855     /*** ISpeechObjectTokenCategory methods ***/
11856     HRESULT (STDMETHODCALLTYPE *get_Id)(
11857         ISpeechObjectTokenCategory *This,
11858         BSTR *Id);
11859 
11860     HRESULT (STDMETHODCALLTYPE *put_Default)(
11861         ISpeechObjectTokenCategory *This,
11862         const BSTR TokenId);
11863 
11864     HRESULT (STDMETHODCALLTYPE *get_Default)(
11865         ISpeechObjectTokenCategory *This,
11866         BSTR *TokenId);
11867 
11868     HRESULT (STDMETHODCALLTYPE *SetId)(
11869         ISpeechObjectTokenCategory *This,
11870         const BSTR Id,
11871         VARIANT_BOOL CreateIfNotExist);
11872 
11873     HRESULT (STDMETHODCALLTYPE *GetDataKey)(
11874         ISpeechObjectTokenCategory *This,
11875         SpeechDataKeyLocation Location,
11876         ISpeechDataKey **DataKey);
11877 
11878     HRESULT (STDMETHODCALLTYPE *EnumerateTokens)(
11879         ISpeechObjectTokenCategory *This,
11880         BSTR RequiredAttributes,
11881         BSTR OptionalAttributes,
11882         ISpeechObjectTokens **Tokens);
11883 
11884     END_INTERFACE
11885 } ISpeechObjectTokenCategoryVtbl;
11886 
11887 interface ISpeechObjectTokenCategory {
11888     CONST_VTBL ISpeechObjectTokenCategoryVtbl* lpVtbl;
11889 };
11890 
11891 #ifdef COBJMACROS
11892 #ifndef WIDL_C_INLINE_WRAPPERS
11893 /*** IUnknown methods ***/
11894 #define ISpeechObjectTokenCategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11895 #define ISpeechObjectTokenCategory_AddRef(This) (This)->lpVtbl->AddRef(This)
11896 #define ISpeechObjectTokenCategory_Release(This) (This)->lpVtbl->Release(This)
11897 /*** IDispatch methods ***/
11898 #define ISpeechObjectTokenCategory_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
11899 #define ISpeechObjectTokenCategory_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
11900 #define ISpeechObjectTokenCategory_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
11901 #define ISpeechObjectTokenCategory_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
11902 /*** ISpeechObjectTokenCategory methods ***/
11903 #define ISpeechObjectTokenCategory_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
11904 #define ISpeechObjectTokenCategory_put_Default(This,TokenId) (This)->lpVtbl->put_Default(This,TokenId)
11905 #define ISpeechObjectTokenCategory_get_Default(This,TokenId) (This)->lpVtbl->get_Default(This,TokenId)
11906 #define ISpeechObjectTokenCategory_SetId(This,Id,CreateIfNotExist) (This)->lpVtbl->SetId(This,Id,CreateIfNotExist)
11907 #define ISpeechObjectTokenCategory_GetDataKey(This,Location,DataKey) (This)->lpVtbl->GetDataKey(This,Location,DataKey)
11908 #define ISpeechObjectTokenCategory_EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens) (This)->lpVtbl->EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens)
11909 #else
11910 /*** IUnknown methods ***/
11911 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_QueryInterface(ISpeechObjectTokenCategory* This,REFIID riid,void **ppvObject) {
11912     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11913 }
11914 static FORCEINLINE ULONG ISpeechObjectTokenCategory_AddRef(ISpeechObjectTokenCategory* This) {
11915     return This->lpVtbl->AddRef(This);
11916 }
11917 static FORCEINLINE ULONG ISpeechObjectTokenCategory_Release(ISpeechObjectTokenCategory* This) {
11918     return This->lpVtbl->Release(This);
11919 }
11920 /*** IDispatch methods ***/
11921 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_GetTypeInfoCount(ISpeechObjectTokenCategory* This,UINT *pctinfo) {
11922     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
11923 }
11924 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_GetTypeInfo(ISpeechObjectTokenCategory* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
11925     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
11926 }
11927 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_GetIDsOfNames(ISpeechObjectTokenCategory* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
11928     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
11929 }
11930 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_Invoke(ISpeechObjectTokenCategory* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
11931     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
11932 }
11933 /*** ISpeechObjectTokenCategory methods ***/
11934 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_get_Id(ISpeechObjectTokenCategory* This,BSTR *Id) {
11935     return This->lpVtbl->get_Id(This,Id);
11936 }
11937 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_put_Default(ISpeechObjectTokenCategory* This,const BSTR TokenId) {
11938     return This->lpVtbl->put_Default(This,TokenId);
11939 }
11940 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_get_Default(ISpeechObjectTokenCategory* This,BSTR *TokenId) {
11941     return This->lpVtbl->get_Default(This,TokenId);
11942 }
11943 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_SetId(ISpeechObjectTokenCategory* This,const BSTR Id,VARIANT_BOOL CreateIfNotExist) {
11944     return This->lpVtbl->SetId(This,Id,CreateIfNotExist);
11945 }
11946 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_GetDataKey(ISpeechObjectTokenCategory* This,SpeechDataKeyLocation Location,ISpeechDataKey **DataKey) {
11947     return This->lpVtbl->GetDataKey(This,Location,DataKey);
11948 }
11949 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_EnumerateTokens(ISpeechObjectTokenCategory* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **Tokens) {
11950     return This->lpVtbl->EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens);
11951 }
11952 #endif
11953 #endif
11954 
11955 #endif
11956 
11957 
11958 #endif  /* __ISpeechObjectTokenCategory_INTERFACE_DEFINED__ */
11959 
11960 typedef enum SpeechAudioFormatType {
11961     SAFTDefault = -1,
11962     SAFTNoAssignedFormat = 0,
11963     SAFTText = 1,
11964     SAFTNonStandardFormat = 2,
11965     SAFTExtendedAudioFormat = 3,
11966     SAFT8kHz8BitMono = 4,
11967     SAFT8kHz8BitStereo = 5,
11968     SAFT8kHz16BitMono = 6,
11969     SAFT8kHz16BitStereo = 7,
11970     SAFT11kHz8BitMono = 8,
11971     SAFT11kHz8BitStereo = 9,
11972     SAFT11kHz16BitMono = 10,
11973     SAFT11kHz16BitStereo = 11,
11974     SAFT12kHz8BitMono = 12,
11975     SAFT12kHz8BitStereo = 13,
11976     SAFT12kHz16BitMono = 14,
11977     SAFT12kHz16BitStereo = 15,
11978     SAFT16kHz8BitMono = 16,
11979     SAFT16kHz8BitStereo = 17,
11980     SAFT16kHz16BitMono = 18,
11981     SAFT16kHz16BitStereo = 19,
11982     SAFT22kHz8BitMono = 20,
11983     SAFT22kHz8BitStereo = 21,
11984     SAFT22kHz16BitMono = 22,
11985     SAFT22kHz16BitStereo = 23,
11986     SAFT24kHz8BitMono = 24,
11987     SAFT24kHz8BitStereo = 25,
11988     SAFT24kHz16BitMono = 26,
11989     SAFT24kHz16BitStereo = 27,
11990     SAFT32kHz8BitMono = 28,
11991     SAFT32kHz8BitStereo = 29,
11992     SAFT32kHz16BitMono = 30,
11993     SAFT32kHz16BitStereo = 31,
11994     SAFT44kHz8BitMono = 32,
11995     SAFT44kHz8BitStereo = 33,
11996     SAFT44kHz16BitMono = 34,
11997     SAFT44kHz16BitStereo = 35,
11998     SAFT48kHz8BitMono = 36,
11999     SAFT48kHz8BitStereo = 37,
12000     SAFT48kHz16BitMono = 38,
12001     SAFT48kHz16BitStereo = 39,
12002     SAFTTrueSpeech_8kHz1BitMono = 40,
12003     SAFTCCITT_ALaw_8kHzMono = 41,
12004     SAFTCCITT_ALaw_8kHzStereo = 42,
12005     SAFTCCITT_ALaw_11kHzMono = 43,
12006     SAFTCCITT_ALaw_11kHzStereo = 44,
12007     SAFTCCITT_ALaw_22kHzMono = 45,
12008     SAFTCCITT_ALaw_22kHzStereo = 46,
12009     SAFTCCITT_ALaw_44kHzMono = 47,
12010     SAFTCCITT_ALaw_44kHzStereo = 48,
12011     SAFTCCITT_uLaw_8kHzMono = 49,
12012     SAFTCCITT_uLaw_8kHzStereo = 50,
12013     SAFTCCITT_uLaw_11kHzMono = 51,
12014     SAFTCCITT_uLaw_11kHzStereo = 52,
12015     SAFTCCITT_uLaw_22kHzMono = 53,
12016     SAFTCCITT_uLaw_22kHzStereo = 54,
12017     SAFTCCITT_uLaw_44kHzMono = 55,
12018     SAFTCCITT_uLaw_44kHzStereo = 56,
12019     SAFTADPCM_8kHzMono = 57,
12020     SAFTADPCM_8kHzStereo = 58,
12021     SAFTADPCM_11kHzMono = 59,
12022     SAFTADPCM_11kHzStereo = 60,
12023     SAFTADPCM_22kHzMono = 61,
12024     SAFTADPCM_22kHzStereo = 62,
12025     SAFTADPCM_44kHzMono = 63,
12026     SAFTADPCM_44kHzStereo = 64,
12027     SAFTGSM610_8kHzMono = 65,
12028     SAFTGSM610_11kHzMono = 66,
12029     SAFTGSM610_22kHzMono = 67,
12030     SAFTGSM610_44kHzMono = 68
12031 } SpeechAudioFormatType;
12032 typedef enum DISPID_SpeechAudioFormat {
12033     DISPID_SAFType = 1,
12034     DISPID_SAFGuid = 2,
12035     DISPID_SAFGetWaveFormatEx = 3,
12036     DISPID_SAFSetWaveFormatEx = 4
12037 } DISPID_SpeechAudioFormat;
12038 typedef enum DISPID_SpeechBaseStream {
12039     DISPID_SBSFormat = 1,
12040     DISPID_SBSRead = 2,
12041     DISPID_SBSWrite = 3,
12042     DISPID_SBSSeek = 4
12043 } DISPID_SpeechBaseStream;
12044 typedef enum SpeechStreamSeekPositionType {
12045     SSSPTRelativeToStart = STREAM_SEEK_SET,
12046     SSSPTRelativeToCurrentPosition = STREAM_SEEK_CUR,
12047     SSSPTRelativeToEnd = STREAM_SEEK_END
12048 } SpeechStreamSeekPositionType;
12049 typedef enum DISPID_SpeechAudio {
12050     DISPID_SAStatus = 200,
12051     DISPID_SABufferInfo = 201,
12052     DISPID_SADefaultFormat = 202,
12053     DISPID_SAVolume = 203,
12054     DISPID_SABufferNotifySize = 204,
12055     DISPID_SAEventHandle = 205,
12056     DISPID_SASetState = 206
12057 } DISPID_SpeechAudio;
12058 typedef enum SpeechAudioState {
12059     SASClosed = SPAS_CLOSED,
12060     SASStop = SPAS_STOP,
12061     SASPause = SPAS_PAUSE,
12062     SASRun = SPAS_RUN
12063 } SpeechAudioState;
12064 typedef enum DISPID_SpeechMMSysAudio {
12065     DISPID_SMSADeviceId = 300,
12066     DISPID_SMSALineId = 301,
12067     DISPID_SMSAMMHandle = 302
12068 } DISPID_SpeechMMSysAudio;
12069 typedef enum DISPID_SpeechFileStream {
12070     DISPID_SFSOpen = 100,
12071     DISPID_SFSClose = 101
12072 } DISPID_SpeechFileStream;
12073 typedef enum SpeechStreamFileMode {
12074     SSFMOpenForRead = SPFM_OPEN_READONLY,
12075     SSFMOpenReadWrite = SPFM_OPEN_READWRITE,
12076     SSFMCreate = SPFM_CREATE,
12077     SSFMCreateForWrite = SPFM_CREATE_ALWAYS
12078 } SpeechStreamFileMode;
12079 typedef enum DISPID_SpeechCustomStream {
12080     DISPID_SCSBaseStream = 100
12081 } DISPID_SpeechCustomStream;
12082 typedef enum DISPID_SpeechMemoryStream {
12083     DISPID_SMSSetData = 100,
12084     DISPID_SMSGetData = 101
12085 } DISPID_SpeechMemoryStream;
12086 typedef enum DISPID_SpeechAudioStatus {
12087     DISPID_SASFreeBufferSpace = 1,
12088     DISPID_SASNonBlockingIO = 2,
12089     DISPID_SASState = 3,
12090     DISPID_SASCurrentSeekPosition = 4,
12091     DISPID_SASCurrentDevicePosition = 5
12092 } DISPID_SpeechAudioStatus;
12093 typedef enum DISPID_SpeechAudioBufferInfo {
12094     DISPID_SABIMinNotification = 1,
12095     DISPID_SABIBufferSize = 2,
12096     DISPID_SABIEventBias = 3
12097 } DISPID_SpeechAudioBufferInfo;
12098 typedef enum DISPID_SpeechWaveFormatEx {
12099     DISPID_SWFEFormatTag = 1,
12100     DISPID_SWFEChannels = 2,
12101     DISPID_SWFESamplesPerSec = 3,
12102     DISPID_SWFEAvgBytesPerSec = 4,
12103     DISPID_SWFEBlockAlign = 5,
12104     DISPID_SWFEBitsPerSample = 6,
12105     DISPID_SWFEExtraData = 7
12106 } DISPID_SpeechWaveFormatEx;
12107 typedef enum DISPID_SpeechVoice {
12108     DISPID_SVStatus = 1,
12109     DISPID_SVVoice = 2,
12110     DISPID_SVAudioOutput = 3,
12111     DISPID_SVAudioOutputStream = 4,
12112     DISPID_SVRate = 5,
12113     DISPID_SVVolume = 6,
12114     DISPID_SVAllowAudioOuputFormatChangesOnNextSet = 7,
12115     DISPID_SVEventInterests = 8,
12116     DISPID_SVPriority = 9,
12117     DISPID_SVAlertBoundary = 10,
12118     DISPID_SVSyncronousSpeakTimeout = 11,
12119     DISPID_SVSpeak = 12,
12120     DISPID_SVSpeakStream = 13,
12121     DISPID_SVPause = 14,
12122     DISPID_SVResume = 15,
12123     DISPID_SVSkip = 16,
12124     DISPID_SVGetVoices = 17,
12125     DISPID_SVGetAudioOutputs = 18,
12126     DISPID_SVWaitUntilDone = 19,
12127     DISPID_SVSpeakCompleteEvent = 20,
12128     DISPID_SVIsUISupported = 21,
12129     DISPID_SVDisplayUI = 22
12130 } DISPID_SpeechVoice;
12131 typedef enum SpeechVoicePriority {
12132     SVPNormal = SPVPRI_NORMAL,
12133     SVPAlert = SPVPRI_ALERT,
12134     SVPOver = SPVPRI_OVER
12135 } SpeechVoicePriority;
12136 typedef enum SpeechVoiceSpeakFlags {
12137     SVSFDefault = SPF_DEFAULT,
12138     SVSFlagsAsync = SPF_ASYNC,
12139     SVSFPurgeBeforeSpeak = SPF_PURGEBEFORESPEAK,
12140     SVSFIsFilename = SPF_IS_FILENAME,
12141     SVSFIsXML = SPF_IS_XML,
12142     SVSFIsNotXML = SPF_IS_NOT_XML,
12143     SVSFPersistXML = SPF_PERSIST_XML,
12144     SVSFNLPSpeakPunc = SPF_NLP_SPEAK_PUNC,
12145     SVSFParseSapi = SPF_PARSE_SAPI,
12146     SVSFParseSsml = SPF_PARSE_SSML,
12147     SVSFParseAutodetect = SPF_PARSE_AUTODETECT,
12148     SVSFNLPMask = SPF_NLP_MASK,
12149     SVSFParseMask = SPF_PARSE_MASK,
12150     SVSFVoiceMask = SPF_VOICE_MASK,
12151     SVSFUnusedFlags = SPF_UNUSED_FLAGS
12152 } SpeechVoiceSpeakFlags;
12153 typedef enum SpeechVoiceEvents {
12154     SVEStartInputStream = 0x2,
12155     SVEEndInputStream = 0x4,
12156     SVEVoiceChange = 0x8,
12157     SVEBookmark = 0x10,
12158     SVEWordBoundary = 0x20,
12159     SVEPhoneme = 0x40,
12160     SVESentenceBoundary = 0x80,
12161     SVEViseme = 0x100,
12162     SVEAudioLevel = 0x200,
12163     SVEPrivate = 0x8000,
12164     SVEAllEvents = 0x83fe
12165 } SpeechVoiceEvents;
12166 typedef enum DISPID_SpeechVoiceStatus {
12167     DISPID_SVSCurrentStreamNumber = 1,
12168     DISPID_SVSLastStreamNumberQueued = 2,
12169     DISPID_SVSLastResult = 3,
12170     DISPID_SVSRunningState = 4,
12171     DISPID_SVSInputWordPosition = 5,
12172     DISPID_SVSInputWordLength = 6,
12173     DISPID_SVSInputSentencePosition = 7,
12174     DISPID_SVSInputSentenceLength = 8,
12175     DISPID_SVSLastBookmark = 9,
12176     DISPID_SVSLastBookmarkId = 10,
12177     DISPID_SVSPhonemeId = 11,
12178     DISPID_SVSVisemeId = 12
12179 } DISPID_SpeechVoiceStatus;
12180 typedef enum SpeechRunState {
12181     SRSEDone = SPRS_DONE,
12182     SRSEIsSpeaking = SPRS_IS_SPEAKING
12183 } SpeechRunState;
12184 /*****************************************************************************
12185  * ISpeechAudioFormat interface
12186  */
12187 #ifndef __ISpeechAudioFormat_INTERFACE_DEFINED__
12188 #define __ISpeechAudioFormat_INTERFACE_DEFINED__
12189 
12190 DEFINE_GUID(IID_ISpeechAudioFormat, 0xe6e9c590, 0x3e18, 0x40e3, 0x82,0x99, 0x06,0x1f,0x98,0xbd,0xe7,0xc7);
12191 #if defined(__cplusplus) && !defined(CINTERFACE)
12192 MIDL_INTERFACE("e6e9c590-3e18-40e3-8299-061f98bde7c7")
12193 ISpeechAudioFormat : public IDispatch
12194 {
12195     virtual HRESULT STDMETHODCALLTYPE get_Type(
12196         SpeechAudioFormatType *AudioFormat) = 0;
12197 
12198     virtual HRESULT STDMETHODCALLTYPE put_Type(
12199         SpeechAudioFormatType AudioFormat) = 0;
12200 
12201     virtual HRESULT STDMETHODCALLTYPE get_Guid(
12202         BSTR *Guid) = 0;
12203 
12204     virtual HRESULT STDMETHODCALLTYPE put_Guid(
12205         BSTR Guid) = 0;
12206 
12207     virtual HRESULT STDMETHODCALLTYPE GetWaveFormatEx(
12208         ISpeechWaveFormatEx **SpeechWaveFormatEx) = 0;
12209 
12210     virtual HRESULT STDMETHODCALLTYPE SetWaveFormatEx(
12211         ISpeechWaveFormatEx *SpeechWaveFormatEx) = 0;
12212 
12213 };
12214 #ifdef __CRT_UUID_DECL
12215 __CRT_UUID_DECL(ISpeechAudioFormat, 0xe6e9c590, 0x3e18, 0x40e3, 0x82,0x99, 0x06,0x1f,0x98,0xbd,0xe7,0xc7)
12216 #endif
12217 #else
12218 typedef struct ISpeechAudioFormatVtbl {
12219     BEGIN_INTERFACE
12220 
12221     /*** IUnknown methods ***/
12222     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12223         ISpeechAudioFormat *This,
12224         REFIID riid,
12225         void **ppvObject);
12226 
12227     ULONG (STDMETHODCALLTYPE *AddRef)(
12228         ISpeechAudioFormat *This);
12229 
12230     ULONG (STDMETHODCALLTYPE *Release)(
12231         ISpeechAudioFormat *This);
12232 
12233     /*** IDispatch methods ***/
12234     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
12235         ISpeechAudioFormat *This,
12236         UINT *pctinfo);
12237 
12238     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
12239         ISpeechAudioFormat *This,
12240         UINT iTInfo,
12241         LCID lcid,
12242         ITypeInfo **ppTInfo);
12243 
12244     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
12245         ISpeechAudioFormat *This,
12246         REFIID riid,
12247         LPOLESTR *rgszNames,
12248         UINT cNames,
12249         LCID lcid,
12250         DISPID *rgDispId);
12251 
12252     HRESULT (STDMETHODCALLTYPE *Invoke)(
12253         ISpeechAudioFormat *This,
12254         DISPID dispIdMember,
12255         REFIID riid,
12256         LCID lcid,
12257         WORD wFlags,
12258         DISPPARAMS *pDispParams,
12259         VARIANT *pVarResult,
12260         EXCEPINFO *pExcepInfo,
12261         UINT *puArgErr);
12262 
12263     /*** ISpeechAudioFormat methods ***/
12264     HRESULT (STDMETHODCALLTYPE *get_Type)(
12265         ISpeechAudioFormat *This,
12266         SpeechAudioFormatType *AudioFormat);
12267 
12268     HRESULT (STDMETHODCALLTYPE *put_Type)(
12269         ISpeechAudioFormat *This,
12270         SpeechAudioFormatType AudioFormat);
12271 
12272     HRESULT (STDMETHODCALLTYPE *get_Guid)(
12273         ISpeechAudioFormat *This,
12274         BSTR *Guid);
12275 
12276     HRESULT (STDMETHODCALLTYPE *put_Guid)(
12277         ISpeechAudioFormat *This,
12278         BSTR Guid);
12279 
12280     HRESULT (STDMETHODCALLTYPE *GetWaveFormatEx)(
12281         ISpeechAudioFormat *This,
12282         ISpeechWaveFormatEx **SpeechWaveFormatEx);
12283 
12284     HRESULT (STDMETHODCALLTYPE *SetWaveFormatEx)(
12285         ISpeechAudioFormat *This,
12286         ISpeechWaveFormatEx *SpeechWaveFormatEx);
12287 
12288     END_INTERFACE
12289 } ISpeechAudioFormatVtbl;
12290 
12291 interface ISpeechAudioFormat {
12292     CONST_VTBL ISpeechAudioFormatVtbl* lpVtbl;
12293 };
12294 
12295 #ifdef COBJMACROS
12296 #ifndef WIDL_C_INLINE_WRAPPERS
12297 /*** IUnknown methods ***/
12298 #define ISpeechAudioFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12299 #define ISpeechAudioFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
12300 #define ISpeechAudioFormat_Release(This) (This)->lpVtbl->Release(This)
12301 /*** IDispatch methods ***/
12302 #define ISpeechAudioFormat_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
12303 #define ISpeechAudioFormat_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
12304 #define ISpeechAudioFormat_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
12305 #define ISpeechAudioFormat_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
12306 /*** ISpeechAudioFormat methods ***/
12307 #define ISpeechAudioFormat_get_Type(This,AudioFormat) (This)->lpVtbl->get_Type(This,AudioFormat)
12308 #define ISpeechAudioFormat_put_Type(This,AudioFormat) (This)->lpVtbl->put_Type(This,AudioFormat)
12309 #define ISpeechAudioFormat_get_Guid(This,Guid) (This)->lpVtbl->get_Guid(This,Guid)
12310 #define ISpeechAudioFormat_put_Guid(This,Guid) (This)->lpVtbl->put_Guid(This,Guid)
12311 #define ISpeechAudioFormat_GetWaveFormatEx(This,SpeechWaveFormatEx) (This)->lpVtbl->GetWaveFormatEx(This,SpeechWaveFormatEx)
12312 #define ISpeechAudioFormat_SetWaveFormatEx(This,SpeechWaveFormatEx) (This)->lpVtbl->SetWaveFormatEx(This,SpeechWaveFormatEx)
12313 #else
12314 /*** IUnknown methods ***/
12315 static FORCEINLINE HRESULT ISpeechAudioFormat_QueryInterface(ISpeechAudioFormat* This,REFIID riid,void **ppvObject) {
12316     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12317 }
12318 static FORCEINLINE ULONG ISpeechAudioFormat_AddRef(ISpeechAudioFormat* This) {
12319     return This->lpVtbl->AddRef(This);
12320 }
12321 static FORCEINLINE ULONG ISpeechAudioFormat_Release(ISpeechAudioFormat* This) {
12322     return This->lpVtbl->Release(This);
12323 }
12324 /*** IDispatch methods ***/
12325 static FORCEINLINE HRESULT ISpeechAudioFormat_GetTypeInfoCount(ISpeechAudioFormat* This,UINT *pctinfo) {
12326     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
12327 }
12328 static FORCEINLINE HRESULT ISpeechAudioFormat_GetTypeInfo(ISpeechAudioFormat* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
12329     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
12330 }
12331 static FORCEINLINE HRESULT ISpeechAudioFormat_GetIDsOfNames(ISpeechAudioFormat* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
12332     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
12333 }
12334 static FORCEINLINE HRESULT ISpeechAudioFormat_Invoke(ISpeechAudioFormat* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
12335     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
12336 }
12337 /*** ISpeechAudioFormat methods ***/
12338 static FORCEINLINE HRESULT ISpeechAudioFormat_get_Type(ISpeechAudioFormat* This,SpeechAudioFormatType *AudioFormat) {
12339     return This->lpVtbl->get_Type(This,AudioFormat);
12340 }
12341 static FORCEINLINE HRESULT ISpeechAudioFormat_put_Type(ISpeechAudioFormat* This,SpeechAudioFormatType AudioFormat) {
12342     return This->lpVtbl->put_Type(This,AudioFormat);
12343 }
12344 static FORCEINLINE HRESULT ISpeechAudioFormat_get_Guid(ISpeechAudioFormat* This,BSTR *Guid) {
12345     return This->lpVtbl->get_Guid(This,Guid);
12346 }
12347 static FORCEINLINE HRESULT ISpeechAudioFormat_put_Guid(ISpeechAudioFormat* This,BSTR Guid) {
12348     return This->lpVtbl->put_Guid(This,Guid);
12349 }
12350 static FORCEINLINE HRESULT ISpeechAudioFormat_GetWaveFormatEx(ISpeechAudioFormat* This,ISpeechWaveFormatEx **SpeechWaveFormatEx) {
12351     return This->lpVtbl->GetWaveFormatEx(This,SpeechWaveFormatEx);
12352 }
12353 static FORCEINLINE HRESULT ISpeechAudioFormat_SetWaveFormatEx(ISpeechAudioFormat* This,ISpeechWaveFormatEx *SpeechWaveFormatEx) {
12354     return This->lpVtbl->SetWaveFormatEx(This,SpeechWaveFormatEx);
12355 }
12356 #endif
12357 #endif
12358 
12359 #endif
12360 
12361 
12362 #endif  /* __ISpeechAudioFormat_INTERFACE_DEFINED__ */
12363 
12364 /*****************************************************************************
12365  * ISpeechBaseStream interface
12366  */
12367 #ifndef __ISpeechBaseStream_INTERFACE_DEFINED__
12368 #define __ISpeechBaseStream_INTERFACE_DEFINED__
12369 
12370 DEFINE_GUID(IID_ISpeechBaseStream, 0x6450336f, 0x7d49, 0x4ced, 0x80,0x97, 0x49,0xd6,0xde,0xe3,0x72,0x94);
12371 #if defined(__cplusplus) && !defined(CINTERFACE)
12372 MIDL_INTERFACE("6450336f-7d49-4ced-8097-49d6dee37294")
12373 ISpeechBaseStream : public IDispatch
12374 {
12375     virtual HRESULT STDMETHODCALLTYPE get_Format(
12376         ISpeechAudioFormat **AudioFormat) = 0;
12377 
12378     virtual HRESULT STDMETHODCALLTYPE putref_Format(
12379         ISpeechAudioFormat *AudioFormat) = 0;
12380 
12381     virtual HRESULT STDMETHODCALLTYPE Read(
12382         VARIANT *Buffer,
12383         LONG NumberOfBytes,
12384         LONG *BytesRead) = 0;
12385 
12386     virtual HRESULT STDMETHODCALLTYPE Write(
12387         VARIANT Buffer,
12388         LONG *BytesWritten) = 0;
12389 
12390     virtual HRESULT STDMETHODCALLTYPE Seek(
12391         VARIANT Position,
12392         SpeechStreamSeekPositionType Origin,
12393         VARIANT *NewPosition) = 0;
12394 
12395 };
12396 #ifdef __CRT_UUID_DECL
12397 __CRT_UUID_DECL(ISpeechBaseStream, 0x6450336f, 0x7d49, 0x4ced, 0x80,0x97, 0x49,0xd6,0xde,0xe3,0x72,0x94)
12398 #endif
12399 #else
12400 typedef struct ISpeechBaseStreamVtbl {
12401     BEGIN_INTERFACE
12402 
12403     /*** IUnknown methods ***/
12404     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12405         ISpeechBaseStream *This,
12406         REFIID riid,
12407         void **ppvObject);
12408 
12409     ULONG (STDMETHODCALLTYPE *AddRef)(
12410         ISpeechBaseStream *This);
12411 
12412     ULONG (STDMETHODCALLTYPE *Release)(
12413         ISpeechBaseStream *This);
12414 
12415     /*** IDispatch methods ***/
12416     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
12417         ISpeechBaseStream *This,
12418         UINT *pctinfo);
12419 
12420     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
12421         ISpeechBaseStream *This,
12422         UINT iTInfo,
12423         LCID lcid,
12424         ITypeInfo **ppTInfo);
12425 
12426     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
12427         ISpeechBaseStream *This,
12428         REFIID riid,
12429         LPOLESTR *rgszNames,
12430         UINT cNames,
12431         LCID lcid,
12432         DISPID *rgDispId);
12433 
12434     HRESULT (STDMETHODCALLTYPE *Invoke)(
12435         ISpeechBaseStream *This,
12436         DISPID dispIdMember,
12437         REFIID riid,
12438         LCID lcid,
12439         WORD wFlags,
12440         DISPPARAMS *pDispParams,
12441         VARIANT *pVarResult,
12442         EXCEPINFO *pExcepInfo,
12443         UINT *puArgErr);
12444 
12445     /*** ISpeechBaseStream methods ***/
12446     HRESULT (STDMETHODCALLTYPE *get_Format)(
12447         ISpeechBaseStream *This,
12448         ISpeechAudioFormat **AudioFormat);
12449 
12450     HRESULT (STDMETHODCALLTYPE *putref_Format)(
12451         ISpeechBaseStream *This,
12452         ISpeechAudioFormat *AudioFormat);
12453 
12454     HRESULT (STDMETHODCALLTYPE *Read)(
12455         ISpeechBaseStream *This,
12456         VARIANT *Buffer,
12457         LONG NumberOfBytes,
12458         LONG *BytesRead);
12459 
12460     HRESULT (STDMETHODCALLTYPE *Write)(
12461         ISpeechBaseStream *This,
12462         VARIANT Buffer,
12463         LONG *BytesWritten);
12464 
12465     HRESULT (STDMETHODCALLTYPE *Seek)(
12466         ISpeechBaseStream *This,
12467         VARIANT Position,
12468         SpeechStreamSeekPositionType Origin,
12469         VARIANT *NewPosition);
12470 
12471     END_INTERFACE
12472 } ISpeechBaseStreamVtbl;
12473 
12474 interface ISpeechBaseStream {
12475     CONST_VTBL ISpeechBaseStreamVtbl* lpVtbl;
12476 };
12477 
12478 #ifdef COBJMACROS
12479 #ifndef WIDL_C_INLINE_WRAPPERS
12480 /*** IUnknown methods ***/
12481 #define ISpeechBaseStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12482 #define ISpeechBaseStream_AddRef(This) (This)->lpVtbl->AddRef(This)
12483 #define ISpeechBaseStream_Release(This) (This)->lpVtbl->Release(This)
12484 /*** IDispatch methods ***/
12485 #define ISpeechBaseStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
12486 #define ISpeechBaseStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
12487 #define ISpeechBaseStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
12488 #define ISpeechBaseStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
12489 /*** ISpeechBaseStream methods ***/
12490 #define ISpeechBaseStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
12491 #define ISpeechBaseStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
12492 #define ISpeechBaseStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
12493 #define ISpeechBaseStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
12494 #define ISpeechBaseStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
12495 #else
12496 /*** IUnknown methods ***/
12497 static FORCEINLINE HRESULT ISpeechBaseStream_QueryInterface(ISpeechBaseStream* This,REFIID riid,void **ppvObject) {
12498     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12499 }
12500 static FORCEINLINE ULONG ISpeechBaseStream_AddRef(ISpeechBaseStream* This) {
12501     return This->lpVtbl->AddRef(This);
12502 }
12503 static FORCEINLINE ULONG ISpeechBaseStream_Release(ISpeechBaseStream* This) {
12504     return This->lpVtbl->Release(This);
12505 }
12506 /*** IDispatch methods ***/
12507 static FORCEINLINE HRESULT ISpeechBaseStream_GetTypeInfoCount(ISpeechBaseStream* This,UINT *pctinfo) {
12508     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
12509 }
12510 static FORCEINLINE HRESULT ISpeechBaseStream_GetTypeInfo(ISpeechBaseStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
12511     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
12512 }
12513 static FORCEINLINE HRESULT ISpeechBaseStream_GetIDsOfNames(ISpeechBaseStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
12514     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
12515 }
12516 static FORCEINLINE HRESULT ISpeechBaseStream_Invoke(ISpeechBaseStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
12517     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
12518 }
12519 /*** ISpeechBaseStream methods ***/
12520 static FORCEINLINE HRESULT ISpeechBaseStream_get_Format(ISpeechBaseStream* This,ISpeechAudioFormat **AudioFormat) {
12521     return This->lpVtbl->get_Format(This,AudioFormat);
12522 }
12523 static FORCEINLINE HRESULT ISpeechBaseStream_putref_Format(ISpeechBaseStream* This,ISpeechAudioFormat *AudioFormat) {
12524     return This->lpVtbl->putref_Format(This,AudioFormat);
12525 }
12526 static FORCEINLINE HRESULT ISpeechBaseStream_Read(ISpeechBaseStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
12527     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
12528 }
12529 static FORCEINLINE HRESULT ISpeechBaseStream_Write(ISpeechBaseStream* This,VARIANT Buffer,LONG *BytesWritten) {
12530     return This->lpVtbl->Write(This,Buffer,BytesWritten);
12531 }
12532 static FORCEINLINE HRESULT ISpeechBaseStream_Seek(ISpeechBaseStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
12533     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
12534 }
12535 #endif
12536 #endif
12537 
12538 #endif
12539 
12540 
12541 #endif  /* __ISpeechBaseStream_INTERFACE_DEFINED__ */
12542 
12543 /*****************************************************************************
12544  * ISpeechAudio interface
12545  */
12546 #ifndef __ISpeechAudio_INTERFACE_DEFINED__
12547 #define __ISpeechAudio_INTERFACE_DEFINED__
12548 
12549 DEFINE_GUID(IID_ISpeechAudio, 0xcff8e175, 0x019e, 0x11d3, 0xa0,0x8e, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5);
12550 #if defined(__cplusplus) && !defined(CINTERFACE)
12551 MIDL_INTERFACE("cff8e175-019e-11d3-a08e-00c04f8ef9b5")
12552 ISpeechAudio : public ISpeechBaseStream
12553 {
12554     virtual HRESULT STDMETHODCALLTYPE get_Status(
12555         ISpeechAudioStatus **Status) = 0;
12556 
12557     virtual HRESULT STDMETHODCALLTYPE get_BufferInfo(
12558         ISpeechAudioBufferInfo **BufferInfo) = 0;
12559 
12560     virtual HRESULT STDMETHODCALLTYPE get_DefaultFormat(
12561         ISpeechAudioFormat **StreamFormat) = 0;
12562 
12563     virtual HRESULT STDMETHODCALLTYPE get_Volume(
12564         LONG *Volume) = 0;
12565 
12566     virtual HRESULT STDMETHODCALLTYPE put_Volume(
12567         LONG Volume) = 0;
12568 
12569     virtual HRESULT STDMETHODCALLTYPE get_BufferNotifySize(
12570         LONG *BufferNotifySize) = 0;
12571 
12572     virtual HRESULT STDMETHODCALLTYPE put_BufferNotifySize(
12573         LONG BufferNotifySize) = 0;
12574 
12575     virtual HRESULT STDMETHODCALLTYPE get_EventHandle(
12576         LONG *EventHandle) = 0;
12577 
12578     virtual HRESULT STDMETHODCALLTYPE SetState(
12579         SpeechAudioState State) = 0;
12580 
12581 };
12582 #ifdef __CRT_UUID_DECL
12583 __CRT_UUID_DECL(ISpeechAudio, 0xcff8e175, 0x019e, 0x11d3, 0xa0,0x8e, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5)
12584 #endif
12585 #else
12586 typedef struct ISpeechAudioVtbl {
12587     BEGIN_INTERFACE
12588 
12589     /*** IUnknown methods ***/
12590     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12591         ISpeechAudio *This,
12592         REFIID riid,
12593         void **ppvObject);
12594 
12595     ULONG (STDMETHODCALLTYPE *AddRef)(
12596         ISpeechAudio *This);
12597 
12598     ULONG (STDMETHODCALLTYPE *Release)(
12599         ISpeechAudio *This);
12600 
12601     /*** IDispatch methods ***/
12602     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
12603         ISpeechAudio *This,
12604         UINT *pctinfo);
12605 
12606     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
12607         ISpeechAudio *This,
12608         UINT iTInfo,
12609         LCID lcid,
12610         ITypeInfo **ppTInfo);
12611 
12612     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
12613         ISpeechAudio *This,
12614         REFIID riid,
12615         LPOLESTR *rgszNames,
12616         UINT cNames,
12617         LCID lcid,
12618         DISPID *rgDispId);
12619 
12620     HRESULT (STDMETHODCALLTYPE *Invoke)(
12621         ISpeechAudio *This,
12622         DISPID dispIdMember,
12623         REFIID riid,
12624         LCID lcid,
12625         WORD wFlags,
12626         DISPPARAMS *pDispParams,
12627         VARIANT *pVarResult,
12628         EXCEPINFO *pExcepInfo,
12629         UINT *puArgErr);
12630 
12631     /*** ISpeechBaseStream methods ***/
12632     HRESULT (STDMETHODCALLTYPE *get_Format)(
12633         ISpeechAudio *This,
12634         ISpeechAudioFormat **AudioFormat);
12635 
12636     HRESULT (STDMETHODCALLTYPE *putref_Format)(
12637         ISpeechAudio *This,
12638         ISpeechAudioFormat *AudioFormat);
12639 
12640     HRESULT (STDMETHODCALLTYPE *Read)(
12641         ISpeechAudio *This,
12642         VARIANT *Buffer,
12643         LONG NumberOfBytes,
12644         LONG *BytesRead);
12645 
12646     HRESULT (STDMETHODCALLTYPE *Write)(
12647         ISpeechAudio *This,
12648         VARIANT Buffer,
12649         LONG *BytesWritten);
12650 
12651     HRESULT (STDMETHODCALLTYPE *Seek)(
12652         ISpeechAudio *This,
12653         VARIANT Position,
12654         SpeechStreamSeekPositionType Origin,
12655         VARIANT *NewPosition);
12656 
12657     /*** ISpeechAudio methods ***/
12658     HRESULT (STDMETHODCALLTYPE *get_Status)(
12659         ISpeechAudio *This,
12660         ISpeechAudioStatus **Status);
12661 
12662     HRESULT (STDMETHODCALLTYPE *get_BufferInfo)(
12663         ISpeechAudio *This,
12664         ISpeechAudioBufferInfo **BufferInfo);
12665 
12666     HRESULT (STDMETHODCALLTYPE *get_DefaultFormat)(
12667         ISpeechAudio *This,
12668         ISpeechAudioFormat **StreamFormat);
12669 
12670     HRESULT (STDMETHODCALLTYPE *get_Volume)(
12671         ISpeechAudio *This,
12672         LONG *Volume);
12673 
12674     HRESULT (STDMETHODCALLTYPE *put_Volume)(
12675         ISpeechAudio *This,
12676         LONG Volume);
12677 
12678     HRESULT (STDMETHODCALLTYPE *get_BufferNotifySize)(
12679         ISpeechAudio *This,
12680         LONG *BufferNotifySize);
12681 
12682     HRESULT (STDMETHODCALLTYPE *put_BufferNotifySize)(
12683         ISpeechAudio *This,
12684         LONG BufferNotifySize);
12685 
12686     HRESULT (STDMETHODCALLTYPE *get_EventHandle)(
12687         ISpeechAudio *This,
12688         LONG *EventHandle);
12689 
12690     HRESULT (STDMETHODCALLTYPE *SetState)(
12691         ISpeechAudio *This,
12692         SpeechAudioState State);
12693 
12694     END_INTERFACE
12695 } ISpeechAudioVtbl;
12696 
12697 interface ISpeechAudio {
12698     CONST_VTBL ISpeechAudioVtbl* lpVtbl;
12699 };
12700 
12701 #ifdef COBJMACROS
12702 #ifndef WIDL_C_INLINE_WRAPPERS
12703 /*** IUnknown methods ***/
12704 #define ISpeechAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12705 #define ISpeechAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
12706 #define ISpeechAudio_Release(This) (This)->lpVtbl->Release(This)
12707 /*** IDispatch methods ***/
12708 #define ISpeechAudio_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
12709 #define ISpeechAudio_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
12710 #define ISpeechAudio_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
12711 #define ISpeechAudio_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
12712 /*** ISpeechBaseStream methods ***/
12713 #define ISpeechAudio_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
12714 #define ISpeechAudio_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
12715 #define ISpeechAudio_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
12716 #define ISpeechAudio_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
12717 #define ISpeechAudio_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
12718 /*** ISpeechAudio methods ***/
12719 #define ISpeechAudio_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
12720 #define ISpeechAudio_get_BufferInfo(This,BufferInfo) (This)->lpVtbl->get_BufferInfo(This,BufferInfo)
12721 #define ISpeechAudio_get_DefaultFormat(This,StreamFormat) (This)->lpVtbl->get_DefaultFormat(This,StreamFormat)
12722 #define ISpeechAudio_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
12723 #define ISpeechAudio_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
12724 #define ISpeechAudio_get_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->get_BufferNotifySize(This,BufferNotifySize)
12725 #define ISpeechAudio_put_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->put_BufferNotifySize(This,BufferNotifySize)
12726 #define ISpeechAudio_get_EventHandle(This,EventHandle) (This)->lpVtbl->get_EventHandle(This,EventHandle)
12727 #define ISpeechAudio_SetState(This,State) (This)->lpVtbl->SetState(This,State)
12728 #else
12729 /*** IUnknown methods ***/
12730 static FORCEINLINE HRESULT ISpeechAudio_QueryInterface(ISpeechAudio* This,REFIID riid,void **ppvObject) {
12731     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12732 }
12733 static FORCEINLINE ULONG ISpeechAudio_AddRef(ISpeechAudio* This) {
12734     return This->lpVtbl->AddRef(This);
12735 }
12736 static FORCEINLINE ULONG ISpeechAudio_Release(ISpeechAudio* This) {
12737     return This->lpVtbl->Release(This);
12738 }
12739 /*** IDispatch methods ***/
12740 static FORCEINLINE HRESULT ISpeechAudio_GetTypeInfoCount(ISpeechAudio* This,UINT *pctinfo) {
12741     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
12742 }
12743 static FORCEINLINE HRESULT ISpeechAudio_GetTypeInfo(ISpeechAudio* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
12744     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
12745 }
12746 static FORCEINLINE HRESULT ISpeechAudio_GetIDsOfNames(ISpeechAudio* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
12747     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
12748 }
12749 static FORCEINLINE HRESULT ISpeechAudio_Invoke(ISpeechAudio* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
12750     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
12751 }
12752 /*** ISpeechBaseStream methods ***/
12753 static FORCEINLINE HRESULT ISpeechAudio_get_Format(ISpeechAudio* This,ISpeechAudioFormat **AudioFormat) {
12754     return This->lpVtbl->get_Format(This,AudioFormat);
12755 }
12756 static FORCEINLINE HRESULT ISpeechAudio_putref_Format(ISpeechAudio* This,ISpeechAudioFormat *AudioFormat) {
12757     return This->lpVtbl->putref_Format(This,AudioFormat);
12758 }
12759 static FORCEINLINE HRESULT ISpeechAudio_Read(ISpeechAudio* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
12760     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
12761 }
12762 static FORCEINLINE HRESULT ISpeechAudio_Write(ISpeechAudio* This,VARIANT Buffer,LONG *BytesWritten) {
12763     return This->lpVtbl->Write(This,Buffer,BytesWritten);
12764 }
12765 static FORCEINLINE HRESULT ISpeechAudio_Seek(ISpeechAudio* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
12766     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
12767 }
12768 /*** ISpeechAudio methods ***/
12769 static FORCEINLINE HRESULT ISpeechAudio_get_Status(ISpeechAudio* This,ISpeechAudioStatus **Status) {
12770     return This->lpVtbl->get_Status(This,Status);
12771 }
12772 static FORCEINLINE HRESULT ISpeechAudio_get_BufferInfo(ISpeechAudio* This,ISpeechAudioBufferInfo **BufferInfo) {
12773     return This->lpVtbl->get_BufferInfo(This,BufferInfo);
12774 }
12775 static FORCEINLINE HRESULT ISpeechAudio_get_DefaultFormat(ISpeechAudio* This,ISpeechAudioFormat **StreamFormat) {
12776     return This->lpVtbl->get_DefaultFormat(This,StreamFormat);
12777 }
12778 static FORCEINLINE HRESULT ISpeechAudio_get_Volume(ISpeechAudio* This,LONG *Volume) {
12779     return This->lpVtbl->get_Volume(This,Volume);
12780 }
12781 static FORCEINLINE HRESULT ISpeechAudio_put_Volume(ISpeechAudio* This,LONG Volume) {
12782     return This->lpVtbl->put_Volume(This,Volume);
12783 }
12784 static FORCEINLINE HRESULT ISpeechAudio_get_BufferNotifySize(ISpeechAudio* This,LONG *BufferNotifySize) {
12785     return This->lpVtbl->get_BufferNotifySize(This,BufferNotifySize);
12786 }
12787 static FORCEINLINE HRESULT ISpeechAudio_put_BufferNotifySize(ISpeechAudio* This,LONG BufferNotifySize) {
12788     return This->lpVtbl->put_BufferNotifySize(This,BufferNotifySize);
12789 }
12790 static FORCEINLINE HRESULT ISpeechAudio_get_EventHandle(ISpeechAudio* This,LONG *EventHandle) {
12791     return This->lpVtbl->get_EventHandle(This,EventHandle);
12792 }
12793 static FORCEINLINE HRESULT ISpeechAudio_SetState(ISpeechAudio* This,SpeechAudioState State) {
12794     return This->lpVtbl->SetState(This,State);
12795 }
12796 #endif
12797 #endif
12798 
12799 #endif
12800 
12801 
12802 #endif  /* __ISpeechAudio_INTERFACE_DEFINED__ */
12803 
12804 /*****************************************************************************
12805  * ISpeechMMSysAudio interface
12806  */
12807 #ifndef __ISpeechMMSysAudio_INTERFACE_DEFINED__
12808 #define __ISpeechMMSysAudio_INTERFACE_DEFINED__
12809 
12810 DEFINE_GUID(IID_ISpeechMMSysAudio, 0x3c76af6d, 0x1fd7, 0x4831, 0x81,0xd1, 0x3b,0x71,0xd5,0xa1,0x3c,0x44);
12811 #if defined(__cplusplus) && !defined(CINTERFACE)
12812 MIDL_INTERFACE("3c76af6d-1fd7-4831-81d1-3b71d5a13c44")
12813 ISpeechMMSysAudio : public ISpeechAudio
12814 {
12815     virtual HRESULT STDMETHODCALLTYPE get_DeviceId(
12816         LONG *DeviceId) = 0;
12817 
12818     virtual HRESULT STDMETHODCALLTYPE put_DeviceId(
12819         LONG DeviceId) = 0;
12820 
12821     virtual HRESULT STDMETHODCALLTYPE get_LineId(
12822         LONG *LineId) = 0;
12823 
12824     virtual HRESULT STDMETHODCALLTYPE put_LineId(
12825         LONG LineId) = 0;
12826 
12827     virtual HRESULT STDMETHODCALLTYPE get_MMHandle(
12828         LONG *Handle) = 0;
12829 
12830 };
12831 #ifdef __CRT_UUID_DECL
12832 __CRT_UUID_DECL(ISpeechMMSysAudio, 0x3c76af6d, 0x1fd7, 0x4831, 0x81,0xd1, 0x3b,0x71,0xd5,0xa1,0x3c,0x44)
12833 #endif
12834 #else
12835 typedef struct ISpeechMMSysAudioVtbl {
12836     BEGIN_INTERFACE
12837 
12838     /*** IUnknown methods ***/
12839     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12840         ISpeechMMSysAudio *This,
12841         REFIID riid,
12842         void **ppvObject);
12843 
12844     ULONG (STDMETHODCALLTYPE *AddRef)(
12845         ISpeechMMSysAudio *This);
12846 
12847     ULONG (STDMETHODCALLTYPE *Release)(
12848         ISpeechMMSysAudio *This);
12849 
12850     /*** IDispatch methods ***/
12851     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
12852         ISpeechMMSysAudio *This,
12853         UINT *pctinfo);
12854 
12855     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
12856         ISpeechMMSysAudio *This,
12857         UINT iTInfo,
12858         LCID lcid,
12859         ITypeInfo **ppTInfo);
12860 
12861     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
12862         ISpeechMMSysAudio *This,
12863         REFIID riid,
12864         LPOLESTR *rgszNames,
12865         UINT cNames,
12866         LCID lcid,
12867         DISPID *rgDispId);
12868 
12869     HRESULT (STDMETHODCALLTYPE *Invoke)(
12870         ISpeechMMSysAudio *This,
12871         DISPID dispIdMember,
12872         REFIID riid,
12873         LCID lcid,
12874         WORD wFlags,
12875         DISPPARAMS *pDispParams,
12876         VARIANT *pVarResult,
12877         EXCEPINFO *pExcepInfo,
12878         UINT *puArgErr);
12879 
12880     /*** ISpeechBaseStream methods ***/
12881     HRESULT (STDMETHODCALLTYPE *get_Format)(
12882         ISpeechMMSysAudio *This,
12883         ISpeechAudioFormat **AudioFormat);
12884 
12885     HRESULT (STDMETHODCALLTYPE *putref_Format)(
12886         ISpeechMMSysAudio *This,
12887         ISpeechAudioFormat *AudioFormat);
12888 
12889     HRESULT (STDMETHODCALLTYPE *Read)(
12890         ISpeechMMSysAudio *This,
12891         VARIANT *Buffer,
12892         LONG NumberOfBytes,
12893         LONG *BytesRead);
12894 
12895     HRESULT (STDMETHODCALLTYPE *Write)(
12896         ISpeechMMSysAudio *This,
12897         VARIANT Buffer,
12898         LONG *BytesWritten);
12899 
12900     HRESULT (STDMETHODCALLTYPE *Seek)(
12901         ISpeechMMSysAudio *This,
12902         VARIANT Position,
12903         SpeechStreamSeekPositionType Origin,
12904         VARIANT *NewPosition);
12905 
12906     /*** ISpeechAudio methods ***/
12907     HRESULT (STDMETHODCALLTYPE *get_Status)(
12908         ISpeechMMSysAudio *This,
12909         ISpeechAudioStatus **Status);
12910 
12911     HRESULT (STDMETHODCALLTYPE *get_BufferInfo)(
12912         ISpeechMMSysAudio *This,
12913         ISpeechAudioBufferInfo **BufferInfo);
12914 
12915     HRESULT (STDMETHODCALLTYPE *get_DefaultFormat)(
12916         ISpeechMMSysAudio *This,
12917         ISpeechAudioFormat **StreamFormat);
12918 
12919     HRESULT (STDMETHODCALLTYPE *get_Volume)(
12920         ISpeechMMSysAudio *This,
12921         LONG *Volume);
12922 
12923     HRESULT (STDMETHODCALLTYPE *put_Volume)(
12924         ISpeechMMSysAudio *This,
12925         LONG Volume);
12926 
12927     HRESULT (STDMETHODCALLTYPE *get_BufferNotifySize)(
12928         ISpeechMMSysAudio *This,
12929         LONG *BufferNotifySize);
12930 
12931     HRESULT (STDMETHODCALLTYPE *put_BufferNotifySize)(
12932         ISpeechMMSysAudio *This,
12933         LONG BufferNotifySize);
12934 
12935     HRESULT (STDMETHODCALLTYPE *get_EventHandle)(
12936         ISpeechMMSysAudio *This,
12937         LONG *EventHandle);
12938 
12939     HRESULT (STDMETHODCALLTYPE *SetState)(
12940         ISpeechMMSysAudio *This,
12941         SpeechAudioState State);
12942 
12943     /*** ISpeechMMSysAudio methods ***/
12944     HRESULT (STDMETHODCALLTYPE *get_DeviceId)(
12945         ISpeechMMSysAudio *This,
12946         LONG *DeviceId);
12947 
12948     HRESULT (STDMETHODCALLTYPE *put_DeviceId)(
12949         ISpeechMMSysAudio *This,
12950         LONG DeviceId);
12951 
12952     HRESULT (STDMETHODCALLTYPE *get_LineId)(
12953         ISpeechMMSysAudio *This,
12954         LONG *LineId);
12955 
12956     HRESULT (STDMETHODCALLTYPE *put_LineId)(
12957         ISpeechMMSysAudio *This,
12958         LONG LineId);
12959 
12960     HRESULT (STDMETHODCALLTYPE *get_MMHandle)(
12961         ISpeechMMSysAudio *This,
12962         LONG *Handle);
12963 
12964     END_INTERFACE
12965 } ISpeechMMSysAudioVtbl;
12966 
12967 interface ISpeechMMSysAudio {
12968     CONST_VTBL ISpeechMMSysAudioVtbl* lpVtbl;
12969 };
12970 
12971 #ifdef COBJMACROS
12972 #ifndef WIDL_C_INLINE_WRAPPERS
12973 /*** IUnknown methods ***/
12974 #define ISpeechMMSysAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12975 #define ISpeechMMSysAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
12976 #define ISpeechMMSysAudio_Release(This) (This)->lpVtbl->Release(This)
12977 /*** IDispatch methods ***/
12978 #define ISpeechMMSysAudio_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
12979 #define ISpeechMMSysAudio_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
12980 #define ISpeechMMSysAudio_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
12981 #define ISpeechMMSysAudio_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
12982 /*** ISpeechBaseStream methods ***/
12983 #define ISpeechMMSysAudio_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
12984 #define ISpeechMMSysAudio_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
12985 #define ISpeechMMSysAudio_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
12986 #define ISpeechMMSysAudio_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
12987 #define ISpeechMMSysAudio_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
12988 /*** ISpeechAudio methods ***/
12989 #define ISpeechMMSysAudio_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
12990 #define ISpeechMMSysAudio_get_BufferInfo(This,BufferInfo) (This)->lpVtbl->get_BufferInfo(This,BufferInfo)
12991 #define ISpeechMMSysAudio_get_DefaultFormat(This,StreamFormat) (This)->lpVtbl->get_DefaultFormat(This,StreamFormat)
12992 #define ISpeechMMSysAudio_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
12993 #define ISpeechMMSysAudio_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
12994 #define ISpeechMMSysAudio_get_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->get_BufferNotifySize(This,BufferNotifySize)
12995 #define ISpeechMMSysAudio_put_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->put_BufferNotifySize(This,BufferNotifySize)
12996 #define ISpeechMMSysAudio_get_EventHandle(This,EventHandle) (This)->lpVtbl->get_EventHandle(This,EventHandle)
12997 #define ISpeechMMSysAudio_SetState(This,State) (This)->lpVtbl->SetState(This,State)
12998 /*** ISpeechMMSysAudio methods ***/
12999 #define ISpeechMMSysAudio_get_DeviceId(This,DeviceId) (This)->lpVtbl->get_DeviceId(This,DeviceId)
13000 #define ISpeechMMSysAudio_put_DeviceId(This,DeviceId) (This)->lpVtbl->put_DeviceId(This,DeviceId)
13001 #define ISpeechMMSysAudio_get_LineId(This,LineId) (This)->lpVtbl->get_LineId(This,LineId)
13002 #define ISpeechMMSysAudio_put_LineId(This,LineId) (This)->lpVtbl->put_LineId(This,LineId)
13003 #define ISpeechMMSysAudio_get_MMHandle(This,Handle) (This)->lpVtbl->get_MMHandle(This,Handle)
13004 #else
13005 /*** IUnknown methods ***/
13006 static FORCEINLINE HRESULT ISpeechMMSysAudio_QueryInterface(ISpeechMMSysAudio* This,REFIID riid,void **ppvObject) {
13007     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13008 }
13009 static FORCEINLINE ULONG ISpeechMMSysAudio_AddRef(ISpeechMMSysAudio* This) {
13010     return This->lpVtbl->AddRef(This);
13011 }
13012 static FORCEINLINE ULONG ISpeechMMSysAudio_Release(ISpeechMMSysAudio* This) {
13013     return This->lpVtbl->Release(This);
13014 }
13015 /*** IDispatch methods ***/
13016 static FORCEINLINE HRESULT ISpeechMMSysAudio_GetTypeInfoCount(ISpeechMMSysAudio* This,UINT *pctinfo) {
13017     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13018 }
13019 static FORCEINLINE HRESULT ISpeechMMSysAudio_GetTypeInfo(ISpeechMMSysAudio* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13020     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13021 }
13022 static FORCEINLINE HRESULT ISpeechMMSysAudio_GetIDsOfNames(ISpeechMMSysAudio* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13023     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13024 }
13025 static FORCEINLINE HRESULT ISpeechMMSysAudio_Invoke(ISpeechMMSysAudio* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13026     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13027 }
13028 /*** ISpeechBaseStream methods ***/
13029 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_Format(ISpeechMMSysAudio* This,ISpeechAudioFormat **AudioFormat) {
13030     return This->lpVtbl->get_Format(This,AudioFormat);
13031 }
13032 static FORCEINLINE HRESULT ISpeechMMSysAudio_putref_Format(ISpeechMMSysAudio* This,ISpeechAudioFormat *AudioFormat) {
13033     return This->lpVtbl->putref_Format(This,AudioFormat);
13034 }
13035 static FORCEINLINE HRESULT ISpeechMMSysAudio_Read(ISpeechMMSysAudio* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
13036     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
13037 }
13038 static FORCEINLINE HRESULT ISpeechMMSysAudio_Write(ISpeechMMSysAudio* This,VARIANT Buffer,LONG *BytesWritten) {
13039     return This->lpVtbl->Write(This,Buffer,BytesWritten);
13040 }
13041 static FORCEINLINE HRESULT ISpeechMMSysAudio_Seek(ISpeechMMSysAudio* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
13042     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
13043 }
13044 /*** ISpeechAudio methods ***/
13045 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_Status(ISpeechMMSysAudio* This,ISpeechAudioStatus **Status) {
13046     return This->lpVtbl->get_Status(This,Status);
13047 }
13048 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_BufferInfo(ISpeechMMSysAudio* This,ISpeechAudioBufferInfo **BufferInfo) {
13049     return This->lpVtbl->get_BufferInfo(This,BufferInfo);
13050 }
13051 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_DefaultFormat(ISpeechMMSysAudio* This,ISpeechAudioFormat **StreamFormat) {
13052     return This->lpVtbl->get_DefaultFormat(This,StreamFormat);
13053 }
13054 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_Volume(ISpeechMMSysAudio* This,LONG *Volume) {
13055     return This->lpVtbl->get_Volume(This,Volume);
13056 }
13057 static FORCEINLINE HRESULT ISpeechMMSysAudio_put_Volume(ISpeechMMSysAudio* This,LONG Volume) {
13058     return This->lpVtbl->put_Volume(This,Volume);
13059 }
13060 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_BufferNotifySize(ISpeechMMSysAudio* This,LONG *BufferNotifySize) {
13061     return This->lpVtbl->get_BufferNotifySize(This,BufferNotifySize);
13062 }
13063 static FORCEINLINE HRESULT ISpeechMMSysAudio_put_BufferNotifySize(ISpeechMMSysAudio* This,LONG BufferNotifySize) {
13064     return This->lpVtbl->put_BufferNotifySize(This,BufferNotifySize);
13065 }
13066 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_EventHandle(ISpeechMMSysAudio* This,LONG *EventHandle) {
13067     return This->lpVtbl->get_EventHandle(This,EventHandle);
13068 }
13069 static FORCEINLINE HRESULT ISpeechMMSysAudio_SetState(ISpeechMMSysAudio* This,SpeechAudioState State) {
13070     return This->lpVtbl->SetState(This,State);
13071 }
13072 /*** ISpeechMMSysAudio methods ***/
13073 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_DeviceId(ISpeechMMSysAudio* This,LONG *DeviceId) {
13074     return This->lpVtbl->get_DeviceId(This,DeviceId);
13075 }
13076 static FORCEINLINE HRESULT ISpeechMMSysAudio_put_DeviceId(ISpeechMMSysAudio* This,LONG DeviceId) {
13077     return This->lpVtbl->put_DeviceId(This,DeviceId);
13078 }
13079 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_LineId(ISpeechMMSysAudio* This,LONG *LineId) {
13080     return This->lpVtbl->get_LineId(This,LineId);
13081 }
13082 static FORCEINLINE HRESULT ISpeechMMSysAudio_put_LineId(ISpeechMMSysAudio* This,LONG LineId) {
13083     return This->lpVtbl->put_LineId(This,LineId);
13084 }
13085 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_MMHandle(ISpeechMMSysAudio* This,LONG *Handle) {
13086     return This->lpVtbl->get_MMHandle(This,Handle);
13087 }
13088 #endif
13089 #endif
13090 
13091 #endif
13092 
13093 
13094 #endif  /* __ISpeechMMSysAudio_INTERFACE_DEFINED__ */
13095 
13096 /*****************************************************************************
13097  * ISpeechFileStream interface
13098  */
13099 #ifndef __ISpeechFileStream_INTERFACE_DEFINED__
13100 #define __ISpeechFileStream_INTERFACE_DEFINED__
13101 
13102 DEFINE_GUID(IID_ISpeechFileStream, 0xaf67f125, 0xab39, 0x4e93, 0xb4,0xa2, 0xcc,0x2e,0x66,0xe1,0x82,0xa7);
13103 #if defined(__cplusplus) && !defined(CINTERFACE)
13104 MIDL_INTERFACE("af67f125-ab39-4e93-b4a2-cc2e66e182a7")
13105 ISpeechFileStream : public ISpeechBaseStream
13106 {
13107     virtual HRESULT STDMETHODCALLTYPE Open(
13108         BSTR FileName,
13109         SpeechStreamFileMode FileMode = SSFMOpenForRead,
13110         VARIANT_BOOL DoEvents = 0) = 0;
13111 
13112     virtual HRESULT STDMETHODCALLTYPE Close(
13113         ) = 0;
13114 
13115 };
13116 #ifdef __CRT_UUID_DECL
13117 __CRT_UUID_DECL(ISpeechFileStream, 0xaf67f125, 0xab39, 0x4e93, 0xb4,0xa2, 0xcc,0x2e,0x66,0xe1,0x82,0xa7)
13118 #endif
13119 #else
13120 typedef struct ISpeechFileStreamVtbl {
13121     BEGIN_INTERFACE
13122 
13123     /*** IUnknown methods ***/
13124     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13125         ISpeechFileStream *This,
13126         REFIID riid,
13127         void **ppvObject);
13128 
13129     ULONG (STDMETHODCALLTYPE *AddRef)(
13130         ISpeechFileStream *This);
13131 
13132     ULONG (STDMETHODCALLTYPE *Release)(
13133         ISpeechFileStream *This);
13134 
13135     /*** IDispatch methods ***/
13136     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13137         ISpeechFileStream *This,
13138         UINT *pctinfo);
13139 
13140     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13141         ISpeechFileStream *This,
13142         UINT iTInfo,
13143         LCID lcid,
13144         ITypeInfo **ppTInfo);
13145 
13146     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13147         ISpeechFileStream *This,
13148         REFIID riid,
13149         LPOLESTR *rgszNames,
13150         UINT cNames,
13151         LCID lcid,
13152         DISPID *rgDispId);
13153 
13154     HRESULT (STDMETHODCALLTYPE *Invoke)(
13155         ISpeechFileStream *This,
13156         DISPID dispIdMember,
13157         REFIID riid,
13158         LCID lcid,
13159         WORD wFlags,
13160         DISPPARAMS *pDispParams,
13161         VARIANT *pVarResult,
13162         EXCEPINFO *pExcepInfo,
13163         UINT *puArgErr);
13164 
13165     /*** ISpeechBaseStream methods ***/
13166     HRESULT (STDMETHODCALLTYPE *get_Format)(
13167         ISpeechFileStream *This,
13168         ISpeechAudioFormat **AudioFormat);
13169 
13170     HRESULT (STDMETHODCALLTYPE *putref_Format)(
13171         ISpeechFileStream *This,
13172         ISpeechAudioFormat *AudioFormat);
13173 
13174     HRESULT (STDMETHODCALLTYPE *Read)(
13175         ISpeechFileStream *This,
13176         VARIANT *Buffer,
13177         LONG NumberOfBytes,
13178         LONG *BytesRead);
13179 
13180     HRESULT (STDMETHODCALLTYPE *Write)(
13181         ISpeechFileStream *This,
13182         VARIANT Buffer,
13183         LONG *BytesWritten);
13184 
13185     HRESULT (STDMETHODCALLTYPE *Seek)(
13186         ISpeechFileStream *This,
13187         VARIANT Position,
13188         SpeechStreamSeekPositionType Origin,
13189         VARIANT *NewPosition);
13190 
13191     /*** ISpeechFileStream methods ***/
13192     HRESULT (STDMETHODCALLTYPE *Open)(
13193         ISpeechFileStream *This,
13194         BSTR FileName,
13195         SpeechStreamFileMode FileMode,
13196         VARIANT_BOOL DoEvents);
13197 
13198     HRESULT (STDMETHODCALLTYPE *Close)(
13199         ISpeechFileStream *This);
13200 
13201     END_INTERFACE
13202 } ISpeechFileStreamVtbl;
13203 
13204 interface ISpeechFileStream {
13205     CONST_VTBL ISpeechFileStreamVtbl* lpVtbl;
13206 };
13207 
13208 #ifdef COBJMACROS
13209 #ifndef WIDL_C_INLINE_WRAPPERS
13210 /*** IUnknown methods ***/
13211 #define ISpeechFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13212 #define ISpeechFileStream_AddRef(This) (This)->lpVtbl->AddRef(This)
13213 #define ISpeechFileStream_Release(This) (This)->lpVtbl->Release(This)
13214 /*** IDispatch methods ***/
13215 #define ISpeechFileStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13216 #define ISpeechFileStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13217 #define ISpeechFileStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13218 #define ISpeechFileStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13219 /*** ISpeechBaseStream methods ***/
13220 #define ISpeechFileStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
13221 #define ISpeechFileStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
13222 #define ISpeechFileStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
13223 #define ISpeechFileStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
13224 #define ISpeechFileStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
13225 /*** ISpeechFileStream methods ***/
13226 #define ISpeechFileStream_Open(This,FileName,FileMode,DoEvents) (This)->lpVtbl->Open(This,FileName,FileMode,DoEvents)
13227 #define ISpeechFileStream_Close(This) (This)->lpVtbl->Close(This)
13228 #else
13229 /*** IUnknown methods ***/
13230 static FORCEINLINE HRESULT ISpeechFileStream_QueryInterface(ISpeechFileStream* This,REFIID riid,void **ppvObject) {
13231     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13232 }
13233 static FORCEINLINE ULONG ISpeechFileStream_AddRef(ISpeechFileStream* This) {
13234     return This->lpVtbl->AddRef(This);
13235 }
13236 static FORCEINLINE ULONG ISpeechFileStream_Release(ISpeechFileStream* This) {
13237     return This->lpVtbl->Release(This);
13238 }
13239 /*** IDispatch methods ***/
13240 static FORCEINLINE HRESULT ISpeechFileStream_GetTypeInfoCount(ISpeechFileStream* This,UINT *pctinfo) {
13241     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13242 }
13243 static FORCEINLINE HRESULT ISpeechFileStream_GetTypeInfo(ISpeechFileStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13244     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13245 }
13246 static FORCEINLINE HRESULT ISpeechFileStream_GetIDsOfNames(ISpeechFileStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13247     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13248 }
13249 static FORCEINLINE HRESULT ISpeechFileStream_Invoke(ISpeechFileStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13250     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13251 }
13252 /*** ISpeechBaseStream methods ***/
13253 static FORCEINLINE HRESULT ISpeechFileStream_get_Format(ISpeechFileStream* This,ISpeechAudioFormat **AudioFormat) {
13254     return This->lpVtbl->get_Format(This,AudioFormat);
13255 }
13256 static FORCEINLINE HRESULT ISpeechFileStream_putref_Format(ISpeechFileStream* This,ISpeechAudioFormat *AudioFormat) {
13257     return This->lpVtbl->putref_Format(This,AudioFormat);
13258 }
13259 static FORCEINLINE HRESULT ISpeechFileStream_Read(ISpeechFileStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
13260     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
13261 }
13262 static FORCEINLINE HRESULT ISpeechFileStream_Write(ISpeechFileStream* This,VARIANT Buffer,LONG *BytesWritten) {
13263     return This->lpVtbl->Write(This,Buffer,BytesWritten);
13264 }
13265 static FORCEINLINE HRESULT ISpeechFileStream_Seek(ISpeechFileStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
13266     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
13267 }
13268 /*** ISpeechFileStream methods ***/
13269 static FORCEINLINE HRESULT ISpeechFileStream_Open(ISpeechFileStream* This,BSTR FileName,SpeechStreamFileMode FileMode,VARIANT_BOOL DoEvents) {
13270     return This->lpVtbl->Open(This,FileName,FileMode,DoEvents);
13271 }
13272 static FORCEINLINE HRESULT ISpeechFileStream_Close(ISpeechFileStream* This) {
13273     return This->lpVtbl->Close(This);
13274 }
13275 #endif
13276 #endif
13277 
13278 #endif
13279 
13280 
13281 #endif  /* __ISpeechFileStream_INTERFACE_DEFINED__ */
13282 
13283 /*****************************************************************************
13284  * ISpeechCustomStream interface
13285  */
13286 #ifndef __ISpeechCustomStream_INTERFACE_DEFINED__
13287 #define __ISpeechCustomStream_INTERFACE_DEFINED__
13288 
13289 DEFINE_GUID(IID_ISpeechCustomStream, 0x1a9e9f4f, 0x104f, 0x4db8, 0xa1,0x15, 0xef,0xd7,0xfd,0x0c,0x97,0xae);
13290 #if defined(__cplusplus) && !defined(CINTERFACE)
13291 MIDL_INTERFACE("1a9e9f4f-104f-4db8-a115-efd7fd0c97ae")
13292 ISpeechCustomStream : public ISpeechBaseStream
13293 {
13294     virtual HRESULT STDMETHODCALLTYPE get_BaseStream(
13295         IUnknown **ppUnkStream) = 0;
13296 
13297     virtual HRESULT STDMETHODCALLTYPE putref_BaseStream(
13298         IUnknown *pUnkStream) = 0;
13299 
13300 };
13301 #ifdef __CRT_UUID_DECL
13302 __CRT_UUID_DECL(ISpeechCustomStream, 0x1a9e9f4f, 0x104f, 0x4db8, 0xa1,0x15, 0xef,0xd7,0xfd,0x0c,0x97,0xae)
13303 #endif
13304 #else
13305 typedef struct ISpeechCustomStreamVtbl {
13306     BEGIN_INTERFACE
13307 
13308     /*** IUnknown methods ***/
13309     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13310         ISpeechCustomStream *This,
13311         REFIID riid,
13312         void **ppvObject);
13313 
13314     ULONG (STDMETHODCALLTYPE *AddRef)(
13315         ISpeechCustomStream *This);
13316 
13317     ULONG (STDMETHODCALLTYPE *Release)(
13318         ISpeechCustomStream *This);
13319 
13320     /*** IDispatch methods ***/
13321     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13322         ISpeechCustomStream *This,
13323         UINT *pctinfo);
13324 
13325     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13326         ISpeechCustomStream *This,
13327         UINT iTInfo,
13328         LCID lcid,
13329         ITypeInfo **ppTInfo);
13330 
13331     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13332         ISpeechCustomStream *This,
13333         REFIID riid,
13334         LPOLESTR *rgszNames,
13335         UINT cNames,
13336         LCID lcid,
13337         DISPID *rgDispId);
13338 
13339     HRESULT (STDMETHODCALLTYPE *Invoke)(
13340         ISpeechCustomStream *This,
13341         DISPID dispIdMember,
13342         REFIID riid,
13343         LCID lcid,
13344         WORD wFlags,
13345         DISPPARAMS *pDispParams,
13346         VARIANT *pVarResult,
13347         EXCEPINFO *pExcepInfo,
13348         UINT *puArgErr);
13349 
13350     /*** ISpeechBaseStream methods ***/
13351     HRESULT (STDMETHODCALLTYPE *get_Format)(
13352         ISpeechCustomStream *This,
13353         ISpeechAudioFormat **AudioFormat);
13354 
13355     HRESULT (STDMETHODCALLTYPE *putref_Format)(
13356         ISpeechCustomStream *This,
13357         ISpeechAudioFormat *AudioFormat);
13358 
13359     HRESULT (STDMETHODCALLTYPE *Read)(
13360         ISpeechCustomStream *This,
13361         VARIANT *Buffer,
13362         LONG NumberOfBytes,
13363         LONG *BytesRead);
13364 
13365     HRESULT (STDMETHODCALLTYPE *Write)(
13366         ISpeechCustomStream *This,
13367         VARIANT Buffer,
13368         LONG *BytesWritten);
13369 
13370     HRESULT (STDMETHODCALLTYPE *Seek)(
13371         ISpeechCustomStream *This,
13372         VARIANT Position,
13373         SpeechStreamSeekPositionType Origin,
13374         VARIANT *NewPosition);
13375 
13376     /*** ISpeechCustomStream methods ***/
13377     HRESULT (STDMETHODCALLTYPE *get_BaseStream)(
13378         ISpeechCustomStream *This,
13379         IUnknown **ppUnkStream);
13380 
13381     HRESULT (STDMETHODCALLTYPE *putref_BaseStream)(
13382         ISpeechCustomStream *This,
13383         IUnknown *pUnkStream);
13384 
13385     END_INTERFACE
13386 } ISpeechCustomStreamVtbl;
13387 
13388 interface ISpeechCustomStream {
13389     CONST_VTBL ISpeechCustomStreamVtbl* lpVtbl;
13390 };
13391 
13392 #ifdef COBJMACROS
13393 #ifndef WIDL_C_INLINE_WRAPPERS
13394 /*** IUnknown methods ***/
13395 #define ISpeechCustomStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13396 #define ISpeechCustomStream_AddRef(This) (This)->lpVtbl->AddRef(This)
13397 #define ISpeechCustomStream_Release(This) (This)->lpVtbl->Release(This)
13398 /*** IDispatch methods ***/
13399 #define ISpeechCustomStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13400 #define ISpeechCustomStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13401 #define ISpeechCustomStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13402 #define ISpeechCustomStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13403 /*** ISpeechBaseStream methods ***/
13404 #define ISpeechCustomStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
13405 #define ISpeechCustomStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
13406 #define ISpeechCustomStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
13407 #define ISpeechCustomStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
13408 #define ISpeechCustomStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
13409 /*** ISpeechCustomStream methods ***/
13410 #define ISpeechCustomStream_get_BaseStream(This,ppUnkStream) (This)->lpVtbl->get_BaseStream(This,ppUnkStream)
13411 #define ISpeechCustomStream_putref_BaseStream(This,pUnkStream) (This)->lpVtbl->putref_BaseStream(This,pUnkStream)
13412 #else
13413 /*** IUnknown methods ***/
13414 static FORCEINLINE HRESULT ISpeechCustomStream_QueryInterface(ISpeechCustomStream* This,REFIID riid,void **ppvObject) {
13415     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13416 }
13417 static FORCEINLINE ULONG ISpeechCustomStream_AddRef(ISpeechCustomStream* This) {
13418     return This->lpVtbl->AddRef(This);
13419 }
13420 static FORCEINLINE ULONG ISpeechCustomStream_Release(ISpeechCustomStream* This) {
13421     return This->lpVtbl->Release(This);
13422 }
13423 /*** IDispatch methods ***/
13424 static FORCEINLINE HRESULT ISpeechCustomStream_GetTypeInfoCount(ISpeechCustomStream* This,UINT *pctinfo) {
13425     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13426 }
13427 static FORCEINLINE HRESULT ISpeechCustomStream_GetTypeInfo(ISpeechCustomStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13428     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13429 }
13430 static FORCEINLINE HRESULT ISpeechCustomStream_GetIDsOfNames(ISpeechCustomStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13431     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13432 }
13433 static FORCEINLINE HRESULT ISpeechCustomStream_Invoke(ISpeechCustomStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13434     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13435 }
13436 /*** ISpeechBaseStream methods ***/
13437 static FORCEINLINE HRESULT ISpeechCustomStream_get_Format(ISpeechCustomStream* This,ISpeechAudioFormat **AudioFormat) {
13438     return This->lpVtbl->get_Format(This,AudioFormat);
13439 }
13440 static FORCEINLINE HRESULT ISpeechCustomStream_putref_Format(ISpeechCustomStream* This,ISpeechAudioFormat *AudioFormat) {
13441     return This->lpVtbl->putref_Format(This,AudioFormat);
13442 }
13443 static FORCEINLINE HRESULT ISpeechCustomStream_Read(ISpeechCustomStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
13444     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
13445 }
13446 static FORCEINLINE HRESULT ISpeechCustomStream_Write(ISpeechCustomStream* This,VARIANT Buffer,LONG *BytesWritten) {
13447     return This->lpVtbl->Write(This,Buffer,BytesWritten);
13448 }
13449 static FORCEINLINE HRESULT ISpeechCustomStream_Seek(ISpeechCustomStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
13450     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
13451 }
13452 /*** ISpeechCustomStream methods ***/
13453 static FORCEINLINE HRESULT ISpeechCustomStream_get_BaseStream(ISpeechCustomStream* This,IUnknown **ppUnkStream) {
13454     return This->lpVtbl->get_BaseStream(This,ppUnkStream);
13455 }
13456 static FORCEINLINE HRESULT ISpeechCustomStream_putref_BaseStream(ISpeechCustomStream* This,IUnknown *pUnkStream) {
13457     return This->lpVtbl->putref_BaseStream(This,pUnkStream);
13458 }
13459 #endif
13460 #endif
13461 
13462 #endif
13463 
13464 
13465 #endif  /* __ISpeechCustomStream_INTERFACE_DEFINED__ */
13466 
13467 /*****************************************************************************
13468  * ISpeechMemoryStream interface
13469  */
13470 #ifndef __ISpeechMemoryStream_INTERFACE_DEFINED__
13471 #define __ISpeechMemoryStream_INTERFACE_DEFINED__
13472 
13473 DEFINE_GUID(IID_ISpeechMemoryStream, 0xeeb14b68, 0x808b, 0x4abe, 0xa5,0xea, 0xb5,0x1d,0xa7,0x58,0x80,0x08);
13474 #if defined(__cplusplus) && !defined(CINTERFACE)
13475 MIDL_INTERFACE("eeb14b68-808b-4abe-a5ea-b51da7588008")
13476 ISpeechMemoryStream : public ISpeechBaseStream
13477 {
13478     virtual HRESULT STDMETHODCALLTYPE SetData(
13479         VARIANT Data) = 0;
13480 
13481     virtual HRESULT STDMETHODCALLTYPE GetData(
13482         VARIANT *pData) = 0;
13483 
13484 };
13485 #ifdef __CRT_UUID_DECL
13486 __CRT_UUID_DECL(ISpeechMemoryStream, 0xeeb14b68, 0x808b, 0x4abe, 0xa5,0xea, 0xb5,0x1d,0xa7,0x58,0x80,0x08)
13487 #endif
13488 #else
13489 typedef struct ISpeechMemoryStreamVtbl {
13490     BEGIN_INTERFACE
13491 
13492     /*** IUnknown methods ***/
13493     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13494         ISpeechMemoryStream *This,
13495         REFIID riid,
13496         void **ppvObject);
13497 
13498     ULONG (STDMETHODCALLTYPE *AddRef)(
13499         ISpeechMemoryStream *This);
13500 
13501     ULONG (STDMETHODCALLTYPE *Release)(
13502         ISpeechMemoryStream *This);
13503 
13504     /*** IDispatch methods ***/
13505     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13506         ISpeechMemoryStream *This,
13507         UINT *pctinfo);
13508 
13509     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13510         ISpeechMemoryStream *This,
13511         UINT iTInfo,
13512         LCID lcid,
13513         ITypeInfo **ppTInfo);
13514 
13515     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13516         ISpeechMemoryStream *This,
13517         REFIID riid,
13518         LPOLESTR *rgszNames,
13519         UINT cNames,
13520         LCID lcid,
13521         DISPID *rgDispId);
13522 
13523     HRESULT (STDMETHODCALLTYPE *Invoke)(
13524         ISpeechMemoryStream *This,
13525         DISPID dispIdMember,
13526         REFIID riid,
13527         LCID lcid,
13528         WORD wFlags,
13529         DISPPARAMS *pDispParams,
13530         VARIANT *pVarResult,
13531         EXCEPINFO *pExcepInfo,
13532         UINT *puArgErr);
13533 
13534     /*** ISpeechBaseStream methods ***/
13535     HRESULT (STDMETHODCALLTYPE *get_Format)(
13536         ISpeechMemoryStream *This,
13537         ISpeechAudioFormat **AudioFormat);
13538 
13539     HRESULT (STDMETHODCALLTYPE *putref_Format)(
13540         ISpeechMemoryStream *This,
13541         ISpeechAudioFormat *AudioFormat);
13542 
13543     HRESULT (STDMETHODCALLTYPE *Read)(
13544         ISpeechMemoryStream *This,
13545         VARIANT *Buffer,
13546         LONG NumberOfBytes,
13547         LONG *BytesRead);
13548 
13549     HRESULT (STDMETHODCALLTYPE *Write)(
13550         ISpeechMemoryStream *This,
13551         VARIANT Buffer,
13552         LONG *BytesWritten);
13553 
13554     HRESULT (STDMETHODCALLTYPE *Seek)(
13555         ISpeechMemoryStream *This,
13556         VARIANT Position,
13557         SpeechStreamSeekPositionType Origin,
13558         VARIANT *NewPosition);
13559 
13560     /*** ISpeechMemoryStream methods ***/
13561     HRESULT (STDMETHODCALLTYPE *SetData)(
13562         ISpeechMemoryStream *This,
13563         VARIANT Data);
13564 
13565     HRESULT (STDMETHODCALLTYPE *GetData)(
13566         ISpeechMemoryStream *This,
13567         VARIANT *pData);
13568 
13569     END_INTERFACE
13570 } ISpeechMemoryStreamVtbl;
13571 
13572 interface ISpeechMemoryStream {
13573     CONST_VTBL ISpeechMemoryStreamVtbl* lpVtbl;
13574 };
13575 
13576 #ifdef COBJMACROS
13577 #ifndef WIDL_C_INLINE_WRAPPERS
13578 /*** IUnknown methods ***/
13579 #define ISpeechMemoryStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13580 #define ISpeechMemoryStream_AddRef(This) (This)->lpVtbl->AddRef(This)
13581 #define ISpeechMemoryStream_Release(This) (This)->lpVtbl->Release(This)
13582 /*** IDispatch methods ***/
13583 #define ISpeechMemoryStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13584 #define ISpeechMemoryStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13585 #define ISpeechMemoryStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13586 #define ISpeechMemoryStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13587 /*** ISpeechBaseStream methods ***/
13588 #define ISpeechMemoryStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
13589 #define ISpeechMemoryStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
13590 #define ISpeechMemoryStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
13591 #define ISpeechMemoryStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
13592 #define ISpeechMemoryStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
13593 /*** ISpeechMemoryStream methods ***/
13594 #define ISpeechMemoryStream_SetData(This,Data) (This)->lpVtbl->SetData(This,Data)
13595 #define ISpeechMemoryStream_GetData(This,pData) (This)->lpVtbl->GetData(This,pData)
13596 #else
13597 /*** IUnknown methods ***/
13598 static FORCEINLINE HRESULT ISpeechMemoryStream_QueryInterface(ISpeechMemoryStream* This,REFIID riid,void **ppvObject) {
13599     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13600 }
13601 static FORCEINLINE ULONG ISpeechMemoryStream_AddRef(ISpeechMemoryStream* This) {
13602     return This->lpVtbl->AddRef(This);
13603 }
13604 static FORCEINLINE ULONG ISpeechMemoryStream_Release(ISpeechMemoryStream* This) {
13605     return This->lpVtbl->Release(This);
13606 }
13607 /*** IDispatch methods ***/
13608 static FORCEINLINE HRESULT ISpeechMemoryStream_GetTypeInfoCount(ISpeechMemoryStream* This,UINT *pctinfo) {
13609     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13610 }
13611 static FORCEINLINE HRESULT ISpeechMemoryStream_GetTypeInfo(ISpeechMemoryStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13612     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13613 }
13614 static FORCEINLINE HRESULT ISpeechMemoryStream_GetIDsOfNames(ISpeechMemoryStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13615     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13616 }
13617 static FORCEINLINE HRESULT ISpeechMemoryStream_Invoke(ISpeechMemoryStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13618     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13619 }
13620 /*** ISpeechBaseStream methods ***/
13621 static FORCEINLINE HRESULT ISpeechMemoryStream_get_Format(ISpeechMemoryStream* This,ISpeechAudioFormat **AudioFormat) {
13622     return This->lpVtbl->get_Format(This,AudioFormat);
13623 }
13624 static FORCEINLINE HRESULT ISpeechMemoryStream_putref_Format(ISpeechMemoryStream* This,ISpeechAudioFormat *AudioFormat) {
13625     return This->lpVtbl->putref_Format(This,AudioFormat);
13626 }
13627 static FORCEINLINE HRESULT ISpeechMemoryStream_Read(ISpeechMemoryStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
13628     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
13629 }
13630 static FORCEINLINE HRESULT ISpeechMemoryStream_Write(ISpeechMemoryStream* This,VARIANT Buffer,LONG *BytesWritten) {
13631     return This->lpVtbl->Write(This,Buffer,BytesWritten);
13632 }
13633 static FORCEINLINE HRESULT ISpeechMemoryStream_Seek(ISpeechMemoryStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
13634     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
13635 }
13636 /*** ISpeechMemoryStream methods ***/
13637 static FORCEINLINE HRESULT ISpeechMemoryStream_SetData(ISpeechMemoryStream* This,VARIANT Data) {
13638     return This->lpVtbl->SetData(This,Data);
13639 }
13640 static FORCEINLINE HRESULT ISpeechMemoryStream_GetData(ISpeechMemoryStream* This,VARIANT *pData) {
13641     return This->lpVtbl->GetData(This,pData);
13642 }
13643 #endif
13644 #endif
13645 
13646 #endif
13647 
13648 
13649 #endif  /* __ISpeechMemoryStream_INTERFACE_DEFINED__ */
13650 
13651 /*****************************************************************************
13652  * ISpeechAudioStatus interface
13653  */
13654 #ifndef __ISpeechAudioStatus_INTERFACE_DEFINED__
13655 #define __ISpeechAudioStatus_INTERFACE_DEFINED__
13656 
13657 DEFINE_GUID(IID_ISpeechAudioStatus, 0xc62d9c91, 0x7458, 0x47f6, 0x86,0x2d, 0x1e,0xf8,0x6f,0xb0,0xb2,0x78);
13658 #if defined(__cplusplus) && !defined(CINTERFACE)
13659 MIDL_INTERFACE("c62d9c91-7458-47f6-862d-1ef86fb0b278")
13660 ISpeechAudioStatus : public IDispatch
13661 {
13662     virtual HRESULT STDMETHODCALLTYPE get_FreeBufferSpace(
13663         LONG *FreeBufferSpace) = 0;
13664 
13665     virtual HRESULT STDMETHODCALLTYPE get_NonBlockingIO(
13666         LONG *NonBlockingIO) = 0;
13667 
13668     virtual HRESULT STDMETHODCALLTYPE get_State(
13669         SpeechAudioState *State) = 0;
13670 
13671     virtual HRESULT STDMETHODCALLTYPE get_CurrentSeekPosition(
13672         VARIANT *CurrentSeekPosition) = 0;
13673 
13674     virtual HRESULT STDMETHODCALLTYPE get_CurrentDevicePosition(
13675         VARIANT *CurrentDevicePosition) = 0;
13676 
13677 };
13678 #ifdef __CRT_UUID_DECL
13679 __CRT_UUID_DECL(ISpeechAudioStatus, 0xc62d9c91, 0x7458, 0x47f6, 0x86,0x2d, 0x1e,0xf8,0x6f,0xb0,0xb2,0x78)
13680 #endif
13681 #else
13682 typedef struct ISpeechAudioStatusVtbl {
13683     BEGIN_INTERFACE
13684 
13685     /*** IUnknown methods ***/
13686     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13687         ISpeechAudioStatus *This,
13688         REFIID riid,
13689         void **ppvObject);
13690 
13691     ULONG (STDMETHODCALLTYPE *AddRef)(
13692         ISpeechAudioStatus *This);
13693 
13694     ULONG (STDMETHODCALLTYPE *Release)(
13695         ISpeechAudioStatus *This);
13696 
13697     /*** IDispatch methods ***/
13698     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13699         ISpeechAudioStatus *This,
13700         UINT *pctinfo);
13701 
13702     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13703         ISpeechAudioStatus *This,
13704         UINT iTInfo,
13705         LCID lcid,
13706         ITypeInfo **ppTInfo);
13707 
13708     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13709         ISpeechAudioStatus *This,
13710         REFIID riid,
13711         LPOLESTR *rgszNames,
13712         UINT cNames,
13713         LCID lcid,
13714         DISPID *rgDispId);
13715 
13716     HRESULT (STDMETHODCALLTYPE *Invoke)(
13717         ISpeechAudioStatus *This,
13718         DISPID dispIdMember,
13719         REFIID riid,
13720         LCID lcid,
13721         WORD wFlags,
13722         DISPPARAMS *pDispParams,
13723         VARIANT *pVarResult,
13724         EXCEPINFO *pExcepInfo,
13725         UINT *puArgErr);
13726 
13727     /*** ISpeechAudioStatus methods ***/
13728     HRESULT (STDMETHODCALLTYPE *get_FreeBufferSpace)(
13729         ISpeechAudioStatus *This,
13730         LONG *FreeBufferSpace);
13731 
13732     HRESULT (STDMETHODCALLTYPE *get_NonBlockingIO)(
13733         ISpeechAudioStatus *This,
13734         LONG *NonBlockingIO);
13735 
13736     HRESULT (STDMETHODCALLTYPE *get_State)(
13737         ISpeechAudioStatus *This,
13738         SpeechAudioState *State);
13739 
13740     HRESULT (STDMETHODCALLTYPE *get_CurrentSeekPosition)(
13741         ISpeechAudioStatus *This,
13742         VARIANT *CurrentSeekPosition);
13743 
13744     HRESULT (STDMETHODCALLTYPE *get_CurrentDevicePosition)(
13745         ISpeechAudioStatus *This,
13746         VARIANT *CurrentDevicePosition);
13747 
13748     END_INTERFACE
13749 } ISpeechAudioStatusVtbl;
13750 
13751 interface ISpeechAudioStatus {
13752     CONST_VTBL ISpeechAudioStatusVtbl* lpVtbl;
13753 };
13754 
13755 #ifdef COBJMACROS
13756 #ifndef WIDL_C_INLINE_WRAPPERS
13757 /*** IUnknown methods ***/
13758 #define ISpeechAudioStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13759 #define ISpeechAudioStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
13760 #define ISpeechAudioStatus_Release(This) (This)->lpVtbl->Release(This)
13761 /*** IDispatch methods ***/
13762 #define ISpeechAudioStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13763 #define ISpeechAudioStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13764 #define ISpeechAudioStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13765 #define ISpeechAudioStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13766 /*** ISpeechAudioStatus methods ***/
13767 #define ISpeechAudioStatus_get_FreeBufferSpace(This,FreeBufferSpace) (This)->lpVtbl->get_FreeBufferSpace(This,FreeBufferSpace)
13768 #define ISpeechAudioStatus_get_NonBlockingIO(This,NonBlockingIO) (This)->lpVtbl->get_NonBlockingIO(This,NonBlockingIO)
13769 #define ISpeechAudioStatus_get_State(This,State) (This)->lpVtbl->get_State(This,State)
13770 #define ISpeechAudioStatus_get_CurrentSeekPosition(This,CurrentSeekPosition) (This)->lpVtbl->get_CurrentSeekPosition(This,CurrentSeekPosition)
13771 #define ISpeechAudioStatus_get_CurrentDevicePosition(This,CurrentDevicePosition) (This)->lpVtbl->get_CurrentDevicePosition(This,CurrentDevicePosition)
13772 #else
13773 /*** IUnknown methods ***/
13774 static FORCEINLINE HRESULT ISpeechAudioStatus_QueryInterface(ISpeechAudioStatus* This,REFIID riid,void **ppvObject) {
13775     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13776 }
13777 static FORCEINLINE ULONG ISpeechAudioStatus_AddRef(ISpeechAudioStatus* This) {
13778     return This->lpVtbl->AddRef(This);
13779 }
13780 static FORCEINLINE ULONG ISpeechAudioStatus_Release(ISpeechAudioStatus* This) {
13781     return This->lpVtbl->Release(This);
13782 }
13783 /*** IDispatch methods ***/
13784 static FORCEINLINE HRESULT ISpeechAudioStatus_GetTypeInfoCount(ISpeechAudioStatus* This,UINT *pctinfo) {
13785     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13786 }
13787 static FORCEINLINE HRESULT ISpeechAudioStatus_GetTypeInfo(ISpeechAudioStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13788     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13789 }
13790 static FORCEINLINE HRESULT ISpeechAudioStatus_GetIDsOfNames(ISpeechAudioStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13791     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13792 }
13793 static FORCEINLINE HRESULT ISpeechAudioStatus_Invoke(ISpeechAudioStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13794     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13795 }
13796 /*** ISpeechAudioStatus methods ***/
13797 static FORCEINLINE HRESULT ISpeechAudioStatus_get_FreeBufferSpace(ISpeechAudioStatus* This,LONG *FreeBufferSpace) {
13798     return This->lpVtbl->get_FreeBufferSpace(This,FreeBufferSpace);
13799 }
13800 static FORCEINLINE HRESULT ISpeechAudioStatus_get_NonBlockingIO(ISpeechAudioStatus* This,LONG *NonBlockingIO) {
13801     return This->lpVtbl->get_NonBlockingIO(This,NonBlockingIO);
13802 }
13803 static FORCEINLINE HRESULT ISpeechAudioStatus_get_State(ISpeechAudioStatus* This,SpeechAudioState *State) {
13804     return This->lpVtbl->get_State(This,State);
13805 }
13806 static FORCEINLINE HRESULT ISpeechAudioStatus_get_CurrentSeekPosition(ISpeechAudioStatus* This,VARIANT *CurrentSeekPosition) {
13807     return This->lpVtbl->get_CurrentSeekPosition(This,CurrentSeekPosition);
13808 }
13809 static FORCEINLINE HRESULT ISpeechAudioStatus_get_CurrentDevicePosition(ISpeechAudioStatus* This,VARIANT *CurrentDevicePosition) {
13810     return This->lpVtbl->get_CurrentDevicePosition(This,CurrentDevicePosition);
13811 }
13812 #endif
13813 #endif
13814 
13815 #endif
13816 
13817 
13818 #endif  /* __ISpeechAudioStatus_INTERFACE_DEFINED__ */
13819 
13820 /*****************************************************************************
13821  * ISpeechAudioBufferInfo interface
13822  */
13823 #ifndef __ISpeechAudioBufferInfo_INTERFACE_DEFINED__
13824 #define __ISpeechAudioBufferInfo_INTERFACE_DEFINED__
13825 
13826 DEFINE_GUID(IID_ISpeechAudioBufferInfo, 0x11b103d8, 0x1142, 0x4edf, 0xa0,0x93, 0x82,0xfb,0x39,0x15,0xf8,0xcc);
13827 #if defined(__cplusplus) && !defined(CINTERFACE)
13828 MIDL_INTERFACE("11b103d8-1142-4edf-a093-82fb3915f8cc")
13829 ISpeechAudioBufferInfo : public IDispatch
13830 {
13831     virtual HRESULT STDMETHODCALLTYPE get_MinNotification(
13832         LONG *MinNotification) = 0;
13833 
13834     virtual HRESULT STDMETHODCALLTYPE put_MinNotification(
13835         LONG MinNotification) = 0;
13836 
13837     virtual HRESULT STDMETHODCALLTYPE get_BufferSize(
13838         LONG *BufferSize) = 0;
13839 
13840     virtual HRESULT STDMETHODCALLTYPE put_BufferSize(
13841         LONG BufferSize) = 0;
13842 
13843     virtual HRESULT STDMETHODCALLTYPE get_EventBias(
13844         LONG *EventBias) = 0;
13845 
13846     virtual HRESULT STDMETHODCALLTYPE put_EventBias(
13847         LONG EventBias) = 0;
13848 
13849 };
13850 #ifdef __CRT_UUID_DECL
13851 __CRT_UUID_DECL(ISpeechAudioBufferInfo, 0x11b103d8, 0x1142, 0x4edf, 0xa0,0x93, 0x82,0xfb,0x39,0x15,0xf8,0xcc)
13852 #endif
13853 #else
13854 typedef struct ISpeechAudioBufferInfoVtbl {
13855     BEGIN_INTERFACE
13856 
13857     /*** IUnknown methods ***/
13858     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13859         ISpeechAudioBufferInfo *This,
13860         REFIID riid,
13861         void **ppvObject);
13862 
13863     ULONG (STDMETHODCALLTYPE *AddRef)(
13864         ISpeechAudioBufferInfo *This);
13865 
13866     ULONG (STDMETHODCALLTYPE *Release)(
13867         ISpeechAudioBufferInfo *This);
13868 
13869     /*** IDispatch methods ***/
13870     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13871         ISpeechAudioBufferInfo *This,
13872         UINT *pctinfo);
13873 
13874     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13875         ISpeechAudioBufferInfo *This,
13876         UINT iTInfo,
13877         LCID lcid,
13878         ITypeInfo **ppTInfo);
13879 
13880     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13881         ISpeechAudioBufferInfo *This,
13882         REFIID riid,
13883         LPOLESTR *rgszNames,
13884         UINT cNames,
13885         LCID lcid,
13886         DISPID *rgDispId);
13887 
13888     HRESULT (STDMETHODCALLTYPE *Invoke)(
13889         ISpeechAudioBufferInfo *This,
13890         DISPID dispIdMember,
13891         REFIID riid,
13892         LCID lcid,
13893         WORD wFlags,
13894         DISPPARAMS *pDispParams,
13895         VARIANT *pVarResult,
13896         EXCEPINFO *pExcepInfo,
13897         UINT *puArgErr);
13898 
13899     /*** ISpeechAudioBufferInfo methods ***/
13900     HRESULT (STDMETHODCALLTYPE *get_MinNotification)(
13901         ISpeechAudioBufferInfo *This,
13902         LONG *MinNotification);
13903 
13904     HRESULT (STDMETHODCALLTYPE *put_MinNotification)(
13905         ISpeechAudioBufferInfo *This,
13906         LONG MinNotification);
13907 
13908     HRESULT (STDMETHODCALLTYPE *get_BufferSize)(
13909         ISpeechAudioBufferInfo *This,
13910         LONG *BufferSize);
13911 
13912     HRESULT (STDMETHODCALLTYPE *put_BufferSize)(
13913         ISpeechAudioBufferInfo *This,
13914         LONG BufferSize);
13915 
13916     HRESULT (STDMETHODCALLTYPE *get_EventBias)(
13917         ISpeechAudioBufferInfo *This,
13918         LONG *EventBias);
13919 
13920     HRESULT (STDMETHODCALLTYPE *put_EventBias)(
13921         ISpeechAudioBufferInfo *This,
13922         LONG EventBias);
13923 
13924     END_INTERFACE
13925 } ISpeechAudioBufferInfoVtbl;
13926 
13927 interface ISpeechAudioBufferInfo {
13928     CONST_VTBL ISpeechAudioBufferInfoVtbl* lpVtbl;
13929 };
13930 
13931 #ifdef COBJMACROS
13932 #ifndef WIDL_C_INLINE_WRAPPERS
13933 /*** IUnknown methods ***/
13934 #define ISpeechAudioBufferInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13935 #define ISpeechAudioBufferInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
13936 #define ISpeechAudioBufferInfo_Release(This) (This)->lpVtbl->Release(This)
13937 /*** IDispatch methods ***/
13938 #define ISpeechAudioBufferInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13939 #define ISpeechAudioBufferInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13940 #define ISpeechAudioBufferInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13941 #define ISpeechAudioBufferInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13942 /*** ISpeechAudioBufferInfo methods ***/
13943 #define ISpeechAudioBufferInfo_get_MinNotification(This,MinNotification) (This)->lpVtbl->get_MinNotification(This,MinNotification)
13944 #define ISpeechAudioBufferInfo_put_MinNotification(This,MinNotification) (This)->lpVtbl->put_MinNotification(This,MinNotification)
13945 #define ISpeechAudioBufferInfo_get_BufferSize(This,BufferSize) (This)->lpVtbl->get_BufferSize(This,BufferSize)
13946 #define ISpeechAudioBufferInfo_put_BufferSize(This,BufferSize) (This)->lpVtbl->put_BufferSize(This,BufferSize)
13947 #define ISpeechAudioBufferInfo_get_EventBias(This,EventBias) (This)->lpVtbl->get_EventBias(This,EventBias)
13948 #define ISpeechAudioBufferInfo_put_EventBias(This,EventBias) (This)->lpVtbl->put_EventBias(This,EventBias)
13949 #else
13950 /*** IUnknown methods ***/
13951 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_QueryInterface(ISpeechAudioBufferInfo* This,REFIID riid,void **ppvObject) {
13952     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13953 }
13954 static FORCEINLINE ULONG ISpeechAudioBufferInfo_AddRef(ISpeechAudioBufferInfo* This) {
13955     return This->lpVtbl->AddRef(This);
13956 }
13957 static FORCEINLINE ULONG ISpeechAudioBufferInfo_Release(ISpeechAudioBufferInfo* This) {
13958     return This->lpVtbl->Release(This);
13959 }
13960 /*** IDispatch methods ***/
13961 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_GetTypeInfoCount(ISpeechAudioBufferInfo* This,UINT *pctinfo) {
13962     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13963 }
13964 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_GetTypeInfo(ISpeechAudioBufferInfo* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13965     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13966 }
13967 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_GetIDsOfNames(ISpeechAudioBufferInfo* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13968     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13969 }
13970 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_Invoke(ISpeechAudioBufferInfo* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13971     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13972 }
13973 /*** ISpeechAudioBufferInfo methods ***/
13974 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_get_MinNotification(ISpeechAudioBufferInfo* This,LONG *MinNotification) {
13975     return This->lpVtbl->get_MinNotification(This,MinNotification);
13976 }
13977 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_put_MinNotification(ISpeechAudioBufferInfo* This,LONG MinNotification) {
13978     return This->lpVtbl->put_MinNotification(This,MinNotification);
13979 }
13980 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_get_BufferSize(ISpeechAudioBufferInfo* This,LONG *BufferSize) {
13981     return This->lpVtbl->get_BufferSize(This,BufferSize);
13982 }
13983 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_put_BufferSize(ISpeechAudioBufferInfo* This,LONG BufferSize) {
13984     return This->lpVtbl->put_BufferSize(This,BufferSize);
13985 }
13986 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_get_EventBias(ISpeechAudioBufferInfo* This,LONG *EventBias) {
13987     return This->lpVtbl->get_EventBias(This,EventBias);
13988 }
13989 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_put_EventBias(ISpeechAudioBufferInfo* This,LONG EventBias) {
13990     return This->lpVtbl->put_EventBias(This,EventBias);
13991 }
13992 #endif
13993 #endif
13994 
13995 #endif
13996 
13997 
13998 #endif  /* __ISpeechAudioBufferInfo_INTERFACE_DEFINED__ */
13999 
14000 /*****************************************************************************
14001  * ISpeechWaveFormatEx interface
14002  */
14003 #ifndef __ISpeechWaveFormatEx_INTERFACE_DEFINED__
14004 #define __ISpeechWaveFormatEx_INTERFACE_DEFINED__
14005 
14006 DEFINE_GUID(IID_ISpeechWaveFormatEx, 0x7a1ef0d5, 0x1581, 0x4741, 0x88,0xe4, 0x20,0x9a,0x49,0xf1,0x1a,0x10);
14007 #if defined(__cplusplus) && !defined(CINTERFACE)
14008 MIDL_INTERFACE("7a1ef0d5-1581-4741-88e4-209a49f11a10")
14009 ISpeechWaveFormatEx : public IDispatch
14010 {
14011     virtual HRESULT STDMETHODCALLTYPE get_FormatTag(
14012         short *FormatTag) = 0;
14013 
14014     virtual HRESULT STDMETHODCALLTYPE put_FormatTag(
14015         short FormatTag) = 0;
14016 
14017     virtual HRESULT STDMETHODCALLTYPE get_Channels(
14018         short *Channels) = 0;
14019 
14020     virtual HRESULT STDMETHODCALLTYPE put_Channels(
14021         short Channels) = 0;
14022 
14023     virtual HRESULT STDMETHODCALLTYPE get_SamplesPerSec(
14024         LONG *SamplesPerSec) = 0;
14025 
14026     virtual HRESULT STDMETHODCALLTYPE put_SamplesPerSec(
14027         LONG SamplesPerSec) = 0;
14028 
14029     virtual HRESULT STDMETHODCALLTYPE get_AvgBytesPerSec(
14030         LONG *AvgBytesPerSec) = 0;
14031 
14032     virtual HRESULT STDMETHODCALLTYPE put_AvgBytesPerSec(
14033         LONG AvgBytesPerSec) = 0;
14034 
14035     virtual HRESULT STDMETHODCALLTYPE get_BlockAlign(
14036         short *BlockAlign) = 0;
14037 
14038     virtual HRESULT STDMETHODCALLTYPE put_BlockAlign(
14039         short BlockAlign) = 0;
14040 
14041     virtual HRESULT STDMETHODCALLTYPE get_BitsPerSample(
14042         short *BitsPerSample) = 0;
14043 
14044     virtual HRESULT STDMETHODCALLTYPE put_BitsPerSample(
14045         short BitsPerSample) = 0;
14046 
14047     virtual HRESULT STDMETHODCALLTYPE get_ExtraData(
14048         VARIANT *ExtraData) = 0;
14049 
14050     virtual HRESULT STDMETHODCALLTYPE put_ExtraData(
14051         VARIANT ExtraData) = 0;
14052 
14053 };
14054 #ifdef __CRT_UUID_DECL
14055 __CRT_UUID_DECL(ISpeechWaveFormatEx, 0x7a1ef0d5, 0x1581, 0x4741, 0x88,0xe4, 0x20,0x9a,0x49,0xf1,0x1a,0x10)
14056 #endif
14057 #else
14058 typedef struct ISpeechWaveFormatExVtbl {
14059     BEGIN_INTERFACE
14060 
14061     /*** IUnknown methods ***/
14062     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14063         ISpeechWaveFormatEx *This,
14064         REFIID riid,
14065         void **ppvObject);
14066 
14067     ULONG (STDMETHODCALLTYPE *AddRef)(
14068         ISpeechWaveFormatEx *This);
14069 
14070     ULONG (STDMETHODCALLTYPE *Release)(
14071         ISpeechWaveFormatEx *This);
14072 
14073     /*** IDispatch methods ***/
14074     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
14075         ISpeechWaveFormatEx *This,
14076         UINT *pctinfo);
14077 
14078     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
14079         ISpeechWaveFormatEx *This,
14080         UINT iTInfo,
14081         LCID lcid,
14082         ITypeInfo **ppTInfo);
14083 
14084     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
14085         ISpeechWaveFormatEx *This,
14086         REFIID riid,
14087         LPOLESTR *rgszNames,
14088         UINT cNames,
14089         LCID lcid,
14090         DISPID *rgDispId);
14091 
14092     HRESULT (STDMETHODCALLTYPE *Invoke)(
14093         ISpeechWaveFormatEx *This,
14094         DISPID dispIdMember,
14095         REFIID riid,
14096         LCID lcid,
14097         WORD wFlags,
14098         DISPPARAMS *pDispParams,
14099         VARIANT *pVarResult,
14100         EXCEPINFO *pExcepInfo,
14101         UINT *puArgErr);
14102 
14103     /*** ISpeechWaveFormatEx methods ***/
14104     HRESULT (STDMETHODCALLTYPE *get_FormatTag)(
14105         ISpeechWaveFormatEx *This,
14106         short *FormatTag);
14107 
14108     HRESULT (STDMETHODCALLTYPE *put_FormatTag)(
14109         ISpeechWaveFormatEx *This,
14110         short FormatTag);
14111 
14112     HRESULT (STDMETHODCALLTYPE *get_Channels)(
14113         ISpeechWaveFormatEx *This,
14114         short *Channels);
14115 
14116     HRESULT (STDMETHODCALLTYPE *put_Channels)(
14117         ISpeechWaveFormatEx *This,
14118         short Channels);
14119 
14120     HRESULT (STDMETHODCALLTYPE *get_SamplesPerSec)(
14121         ISpeechWaveFormatEx *This,
14122         LONG *SamplesPerSec);
14123 
14124     HRESULT (STDMETHODCALLTYPE *put_SamplesPerSec)(
14125         ISpeechWaveFormatEx *This,
14126         LONG SamplesPerSec);
14127 
14128     HRESULT (STDMETHODCALLTYPE *get_AvgBytesPerSec)(
14129         ISpeechWaveFormatEx *This,
14130         LONG *AvgBytesPerSec);
14131 
14132     HRESULT (STDMETHODCALLTYPE *put_AvgBytesPerSec)(
14133         ISpeechWaveFormatEx *This,
14134         LONG AvgBytesPerSec);
14135 
14136     HRESULT (STDMETHODCALLTYPE *get_BlockAlign)(
14137         ISpeechWaveFormatEx *This,
14138         short *BlockAlign);
14139 
14140     HRESULT (STDMETHODCALLTYPE *put_BlockAlign)(
14141         ISpeechWaveFormatEx *This,
14142         short BlockAlign);
14143 
14144     HRESULT (STDMETHODCALLTYPE *get_BitsPerSample)(
14145         ISpeechWaveFormatEx *This,
14146         short *BitsPerSample);
14147 
14148     HRESULT (STDMETHODCALLTYPE *put_BitsPerSample)(
14149         ISpeechWaveFormatEx *This,
14150         short BitsPerSample);
14151 
14152     HRESULT (STDMETHODCALLTYPE *get_ExtraData)(
14153         ISpeechWaveFormatEx *This,
14154         VARIANT *ExtraData);
14155 
14156     HRESULT (STDMETHODCALLTYPE *put_ExtraData)(
14157         ISpeechWaveFormatEx *This,
14158         VARIANT ExtraData);
14159 
14160     END_INTERFACE
14161 } ISpeechWaveFormatExVtbl;
14162 
14163 interface ISpeechWaveFormatEx {
14164     CONST_VTBL ISpeechWaveFormatExVtbl* lpVtbl;
14165 };
14166 
14167 #ifdef COBJMACROS
14168 #ifndef WIDL_C_INLINE_WRAPPERS
14169 /*** IUnknown methods ***/
14170 #define ISpeechWaveFormatEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14171 #define ISpeechWaveFormatEx_AddRef(This) (This)->lpVtbl->AddRef(This)
14172 #define ISpeechWaveFormatEx_Release(This) (This)->lpVtbl->Release(This)
14173 /*** IDispatch methods ***/
14174 #define ISpeechWaveFormatEx_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14175 #define ISpeechWaveFormatEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14176 #define ISpeechWaveFormatEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14177 #define ISpeechWaveFormatEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14178 /*** ISpeechWaveFormatEx methods ***/
14179 #define ISpeechWaveFormatEx_get_FormatTag(This,FormatTag) (This)->lpVtbl->get_FormatTag(This,FormatTag)
14180 #define ISpeechWaveFormatEx_put_FormatTag(This,FormatTag) (This)->lpVtbl->put_FormatTag(This,FormatTag)
14181 #define ISpeechWaveFormatEx_get_Channels(This,Channels) (This)->lpVtbl->get_Channels(This,Channels)
14182 #define ISpeechWaveFormatEx_put_Channels(This,Channels) (This)->lpVtbl->put_Channels(This,Channels)
14183 #define ISpeechWaveFormatEx_get_SamplesPerSec(This,SamplesPerSec) (This)->lpVtbl->get_SamplesPerSec(This,SamplesPerSec)
14184 #define ISpeechWaveFormatEx_put_SamplesPerSec(This,SamplesPerSec) (This)->lpVtbl->put_SamplesPerSec(This,SamplesPerSec)
14185 #define ISpeechWaveFormatEx_get_AvgBytesPerSec(This,AvgBytesPerSec) (This)->lpVtbl->get_AvgBytesPerSec(This,AvgBytesPerSec)
14186 #define ISpeechWaveFormatEx_put_AvgBytesPerSec(This,AvgBytesPerSec) (This)->lpVtbl->put_AvgBytesPerSec(This,AvgBytesPerSec)
14187 #define ISpeechWaveFormatEx_get_BlockAlign(This,BlockAlign) (This)->lpVtbl->get_BlockAlign(This,BlockAlign)
14188 #define ISpeechWaveFormatEx_put_BlockAlign(This,BlockAlign) (This)->lpVtbl->put_BlockAlign(This,BlockAlign)
14189 #define ISpeechWaveFormatEx_get_BitsPerSample(This,BitsPerSample) (This)->lpVtbl->get_BitsPerSample(This,BitsPerSample)
14190 #define ISpeechWaveFormatEx_put_BitsPerSample(This,BitsPerSample) (This)->lpVtbl->put_BitsPerSample(This,BitsPerSample)
14191 #define ISpeechWaveFormatEx_get_ExtraData(This,ExtraData) (This)->lpVtbl->get_ExtraData(This,ExtraData)
14192 #define ISpeechWaveFormatEx_put_ExtraData(This,ExtraData) (This)->lpVtbl->put_ExtraData(This,ExtraData)
14193 #else
14194 /*** IUnknown methods ***/
14195 static FORCEINLINE HRESULT ISpeechWaveFormatEx_QueryInterface(ISpeechWaveFormatEx* This,REFIID riid,void **ppvObject) {
14196     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14197 }
14198 static FORCEINLINE ULONG ISpeechWaveFormatEx_AddRef(ISpeechWaveFormatEx* This) {
14199     return This->lpVtbl->AddRef(This);
14200 }
14201 static FORCEINLINE ULONG ISpeechWaveFormatEx_Release(ISpeechWaveFormatEx* This) {
14202     return This->lpVtbl->Release(This);
14203 }
14204 /*** IDispatch methods ***/
14205 static FORCEINLINE HRESULT ISpeechWaveFormatEx_GetTypeInfoCount(ISpeechWaveFormatEx* This,UINT *pctinfo) {
14206     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14207 }
14208 static FORCEINLINE HRESULT ISpeechWaveFormatEx_GetTypeInfo(ISpeechWaveFormatEx* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14209     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14210 }
14211 static FORCEINLINE HRESULT ISpeechWaveFormatEx_GetIDsOfNames(ISpeechWaveFormatEx* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14212     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14213 }
14214 static FORCEINLINE HRESULT ISpeechWaveFormatEx_Invoke(ISpeechWaveFormatEx* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14215     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14216 }
14217 /*** ISpeechWaveFormatEx methods ***/
14218 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_FormatTag(ISpeechWaveFormatEx* This,short *FormatTag) {
14219     return This->lpVtbl->get_FormatTag(This,FormatTag);
14220 }
14221 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_FormatTag(ISpeechWaveFormatEx* This,short FormatTag) {
14222     return This->lpVtbl->put_FormatTag(This,FormatTag);
14223 }
14224 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_Channels(ISpeechWaveFormatEx* This,short *Channels) {
14225     return This->lpVtbl->get_Channels(This,Channels);
14226 }
14227 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_Channels(ISpeechWaveFormatEx* This,short Channels) {
14228     return This->lpVtbl->put_Channels(This,Channels);
14229 }
14230 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_SamplesPerSec(ISpeechWaveFormatEx* This,LONG *SamplesPerSec) {
14231     return This->lpVtbl->get_SamplesPerSec(This,SamplesPerSec);
14232 }
14233 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_SamplesPerSec(ISpeechWaveFormatEx* This,LONG SamplesPerSec) {
14234     return This->lpVtbl->put_SamplesPerSec(This,SamplesPerSec);
14235 }
14236 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_AvgBytesPerSec(ISpeechWaveFormatEx* This,LONG *AvgBytesPerSec) {
14237     return This->lpVtbl->get_AvgBytesPerSec(This,AvgBytesPerSec);
14238 }
14239 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_AvgBytesPerSec(ISpeechWaveFormatEx* This,LONG AvgBytesPerSec) {
14240     return This->lpVtbl->put_AvgBytesPerSec(This,AvgBytesPerSec);
14241 }
14242 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_BlockAlign(ISpeechWaveFormatEx* This,short *BlockAlign) {
14243     return This->lpVtbl->get_BlockAlign(This,BlockAlign);
14244 }
14245 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_BlockAlign(ISpeechWaveFormatEx* This,short BlockAlign) {
14246     return This->lpVtbl->put_BlockAlign(This,BlockAlign);
14247 }
14248 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_BitsPerSample(ISpeechWaveFormatEx* This,short *BitsPerSample) {
14249     return This->lpVtbl->get_BitsPerSample(This,BitsPerSample);
14250 }
14251 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_BitsPerSample(ISpeechWaveFormatEx* This,short BitsPerSample) {
14252     return This->lpVtbl->put_BitsPerSample(This,BitsPerSample);
14253 }
14254 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_ExtraData(ISpeechWaveFormatEx* This,VARIANT *ExtraData) {
14255     return This->lpVtbl->get_ExtraData(This,ExtraData);
14256 }
14257 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_ExtraData(ISpeechWaveFormatEx* This,VARIANT ExtraData) {
14258     return This->lpVtbl->put_ExtraData(This,ExtraData);
14259 }
14260 #endif
14261 #endif
14262 
14263 #endif
14264 
14265 
14266 #endif  /* __ISpeechWaveFormatEx_INTERFACE_DEFINED__ */
14267 
14268 /*****************************************************************************
14269  * ISpeechVoice interface
14270  */
14271 #ifndef __ISpeechVoice_INTERFACE_DEFINED__
14272 #define __ISpeechVoice_INTERFACE_DEFINED__
14273 
14274 DEFINE_GUID(IID_ISpeechVoice, 0x269316d8, 0x57bd, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96);
14275 #if defined(__cplusplus) && !defined(CINTERFACE)
14276 MIDL_INTERFACE("269316d8-57bd-11d2-9eee-00c04f797396")
14277 ISpeechVoice : public IDispatch
14278 {
14279     virtual HRESULT STDMETHODCALLTYPE get_Status(
14280         ISpeechVoiceStatus **Status) = 0;
14281 
14282     virtual HRESULT STDMETHODCALLTYPE get_Voice(
14283         ISpeechObjectToken **Voice) = 0;
14284 
14285     virtual HRESULT STDMETHODCALLTYPE putref_Voice(
14286         ISpeechObjectToken *Voice) = 0;
14287 
14288     virtual HRESULT STDMETHODCALLTYPE get_AudioOutput(
14289         ISpeechObjectToken **AudioOutput) = 0;
14290 
14291     virtual HRESULT STDMETHODCALLTYPE putref_AudioOutput(
14292         ISpeechObjectToken *AudioOutput) = 0;
14293 
14294     virtual HRESULT STDMETHODCALLTYPE get_AudioOutputStream(
14295         ISpeechBaseStream **AudioOutputStream) = 0;
14296 
14297     virtual HRESULT STDMETHODCALLTYPE putref_AudioOutputStream(
14298         ISpeechBaseStream *AudioOutputStream) = 0;
14299 
14300     virtual HRESULT STDMETHODCALLTYPE get_Rate(
14301         LONG *Rate) = 0;
14302 
14303     virtual HRESULT STDMETHODCALLTYPE put_Rate(
14304         LONG Rate) = 0;
14305 
14306     virtual HRESULT STDMETHODCALLTYPE get_Volume(
14307         LONG *Volume) = 0;
14308 
14309     virtual HRESULT STDMETHODCALLTYPE put_Volume(
14310         LONG Volume) = 0;
14311 
14312     virtual HRESULT STDMETHODCALLTYPE put_AllowAudioOutputFormatChangesOnNextSet(
14313         VARIANT_BOOL Allow) = 0;
14314 
14315     virtual HRESULT STDMETHODCALLTYPE get_AllowAudioOutputFormatChangesOnNextSet(
14316         VARIANT_BOOL *Allow) = 0;
14317 
14318     virtual HRESULT STDMETHODCALLTYPE get_EventInterests(
14319         SpeechVoiceEvents *EventInterestFlags) = 0;
14320 
14321     virtual HRESULT STDMETHODCALLTYPE put_EventInterests(
14322         SpeechVoiceEvents EventInterestFlags) = 0;
14323 
14324     virtual HRESULT STDMETHODCALLTYPE put_Priority(
14325         SpeechVoicePriority Priority) = 0;
14326 
14327     virtual HRESULT STDMETHODCALLTYPE get_Priority(
14328         SpeechVoicePriority *Priority) = 0;
14329 
14330     virtual HRESULT STDMETHODCALLTYPE put_AlertBoundary(
14331         SpeechVoiceEvents Boundary) = 0;
14332 
14333     virtual HRESULT STDMETHODCALLTYPE get_AlertBoundary(
14334         SpeechVoiceEvents *Boundary) = 0;
14335 
14336     virtual HRESULT STDMETHODCALLTYPE put_SynchronousSpeakTimeout(
14337         LONG msTimeout) = 0;
14338 
14339     virtual HRESULT STDMETHODCALLTYPE get_SynchronousSpeakTimeout(
14340         LONG *msTimeout) = 0;
14341 
14342     virtual HRESULT STDMETHODCALLTYPE Speak(
14343         BSTR Text,
14344         SpeechVoiceSpeakFlags Flags,
14345         LONG *StreamNumber) = 0;
14346 
14347     virtual HRESULT STDMETHODCALLTYPE SpeakStream(
14348         ISpeechBaseStream *Stream,
14349         SpeechVoiceSpeakFlags Flags,
14350         LONG *StreamNumber) = 0;
14351 
14352     virtual HRESULT STDMETHODCALLTYPE Pause(
14353         ) = 0;
14354 
14355     virtual HRESULT STDMETHODCALLTYPE Resume(
14356         ) = 0;
14357 
14358     virtual HRESULT STDMETHODCALLTYPE Skip(
14359         const BSTR Type,
14360         LONG NumItems,
14361         LONG *NumSkipped) = 0;
14362 
14363     virtual HRESULT STDMETHODCALLTYPE GetVoices(
14364         BSTR RequiredAttributes,
14365         BSTR OptionalAttributes,
14366         ISpeechObjectTokens **ObjectTokens) = 0;
14367 
14368     virtual HRESULT STDMETHODCALLTYPE GetAudioOutputs(
14369         BSTR RequiredAttributes,
14370         BSTR OptionalAttributes,
14371         ISpeechObjectTokens **ObjectTokens) = 0;
14372 
14373     virtual HRESULT STDMETHODCALLTYPE WaitUntilDone(
14374         LONG msTimeout,
14375         VARIANT_BOOL *Done) = 0;
14376 
14377     virtual HRESULT STDMETHODCALLTYPE SpeakCompleteEvent(
14378         LONG *Handle) = 0;
14379 
14380     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
14381         const BSTR TypeOfUI,
14382         const VARIANT *ExtraData,
14383         VARIANT_BOOL *Supported) = 0;
14384 
14385     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
14386         LONG hWndParent,
14387         BSTR Title,
14388         const BSTR TypeOfUI,
14389         const VARIANT *ExtraData = 0) = 0;
14390 
14391 };
14392 #ifdef __CRT_UUID_DECL
14393 __CRT_UUID_DECL(ISpeechVoice, 0x269316d8, 0x57bd, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96)
14394 #endif
14395 #else
14396 typedef struct ISpeechVoiceVtbl {
14397     BEGIN_INTERFACE
14398 
14399     /*** IUnknown methods ***/
14400     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14401         ISpeechVoice *This,
14402         REFIID riid,
14403         void **ppvObject);
14404 
14405     ULONG (STDMETHODCALLTYPE *AddRef)(
14406         ISpeechVoice *This);
14407 
14408     ULONG (STDMETHODCALLTYPE *Release)(
14409         ISpeechVoice *This);
14410 
14411     /*** IDispatch methods ***/
14412     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
14413         ISpeechVoice *This,
14414         UINT *pctinfo);
14415 
14416     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
14417         ISpeechVoice *This,
14418         UINT iTInfo,
14419         LCID lcid,
14420         ITypeInfo **ppTInfo);
14421 
14422     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
14423         ISpeechVoice *This,
14424         REFIID riid,
14425         LPOLESTR *rgszNames,
14426         UINT cNames,
14427         LCID lcid,
14428         DISPID *rgDispId);
14429 
14430     HRESULT (STDMETHODCALLTYPE *Invoke)(
14431         ISpeechVoice *This,
14432         DISPID dispIdMember,
14433         REFIID riid,
14434         LCID lcid,
14435         WORD wFlags,
14436         DISPPARAMS *pDispParams,
14437         VARIANT *pVarResult,
14438         EXCEPINFO *pExcepInfo,
14439         UINT *puArgErr);
14440 
14441     /*** ISpeechVoice methods ***/
14442     HRESULT (STDMETHODCALLTYPE *get_Status)(
14443         ISpeechVoice *This,
14444         ISpeechVoiceStatus **Status);
14445 
14446     HRESULT (STDMETHODCALLTYPE *get_Voice)(
14447         ISpeechVoice *This,
14448         ISpeechObjectToken **Voice);
14449 
14450     HRESULT (STDMETHODCALLTYPE *putref_Voice)(
14451         ISpeechVoice *This,
14452         ISpeechObjectToken *Voice);
14453 
14454     HRESULT (STDMETHODCALLTYPE *get_AudioOutput)(
14455         ISpeechVoice *This,
14456         ISpeechObjectToken **AudioOutput);
14457 
14458     HRESULT (STDMETHODCALLTYPE *putref_AudioOutput)(
14459         ISpeechVoice *This,
14460         ISpeechObjectToken *AudioOutput);
14461 
14462     HRESULT (STDMETHODCALLTYPE *get_AudioOutputStream)(
14463         ISpeechVoice *This,
14464         ISpeechBaseStream **AudioOutputStream);
14465 
14466     HRESULT (STDMETHODCALLTYPE *putref_AudioOutputStream)(
14467         ISpeechVoice *This,
14468         ISpeechBaseStream *AudioOutputStream);
14469 
14470     HRESULT (STDMETHODCALLTYPE *get_Rate)(
14471         ISpeechVoice *This,
14472         LONG *Rate);
14473 
14474     HRESULT (STDMETHODCALLTYPE *put_Rate)(
14475         ISpeechVoice *This,
14476         LONG Rate);
14477 
14478     HRESULT (STDMETHODCALLTYPE *get_Volume)(
14479         ISpeechVoice *This,
14480         LONG *Volume);
14481 
14482     HRESULT (STDMETHODCALLTYPE *put_Volume)(
14483         ISpeechVoice *This,
14484         LONG Volume);
14485 
14486     HRESULT (STDMETHODCALLTYPE *put_AllowAudioOutputFormatChangesOnNextSet)(
14487         ISpeechVoice *This,
14488         VARIANT_BOOL Allow);
14489 
14490     HRESULT (STDMETHODCALLTYPE *get_AllowAudioOutputFormatChangesOnNextSet)(
14491         ISpeechVoice *This,
14492         VARIANT_BOOL *Allow);
14493 
14494     HRESULT (STDMETHODCALLTYPE *get_EventInterests)(
14495         ISpeechVoice *This,
14496         SpeechVoiceEvents *EventInterestFlags);
14497 
14498     HRESULT (STDMETHODCALLTYPE *put_EventInterests)(
14499         ISpeechVoice *This,
14500         SpeechVoiceEvents EventInterestFlags);
14501 
14502     HRESULT (STDMETHODCALLTYPE *put_Priority)(
14503         ISpeechVoice *This,
14504         SpeechVoicePriority Priority);
14505 
14506     HRESULT (STDMETHODCALLTYPE *get_Priority)(
14507         ISpeechVoice *This,
14508         SpeechVoicePriority *Priority);
14509 
14510     HRESULT (STDMETHODCALLTYPE *put_AlertBoundary)(
14511         ISpeechVoice *This,
14512         SpeechVoiceEvents Boundary);
14513 
14514     HRESULT (STDMETHODCALLTYPE *get_AlertBoundary)(
14515         ISpeechVoice *This,
14516         SpeechVoiceEvents *Boundary);
14517 
14518     HRESULT (STDMETHODCALLTYPE *put_SynchronousSpeakTimeout)(
14519         ISpeechVoice *This,
14520         LONG msTimeout);
14521 
14522     HRESULT (STDMETHODCALLTYPE *get_SynchronousSpeakTimeout)(
14523         ISpeechVoice *This,
14524         LONG *msTimeout);
14525 
14526     HRESULT (STDMETHODCALLTYPE *Speak)(
14527         ISpeechVoice *This,
14528         BSTR Text,
14529         SpeechVoiceSpeakFlags Flags,
14530         LONG *StreamNumber);
14531 
14532     HRESULT (STDMETHODCALLTYPE *SpeakStream)(
14533         ISpeechVoice *This,
14534         ISpeechBaseStream *Stream,
14535         SpeechVoiceSpeakFlags Flags,
14536         LONG *StreamNumber);
14537 
14538     HRESULT (STDMETHODCALLTYPE *Pause)(
14539         ISpeechVoice *This);
14540 
14541     HRESULT (STDMETHODCALLTYPE *Resume)(
14542         ISpeechVoice *This);
14543 
14544     HRESULT (STDMETHODCALLTYPE *Skip)(
14545         ISpeechVoice *This,
14546         const BSTR Type,
14547         LONG NumItems,
14548         LONG *NumSkipped);
14549 
14550     HRESULT (STDMETHODCALLTYPE *GetVoices)(
14551         ISpeechVoice *This,
14552         BSTR RequiredAttributes,
14553         BSTR OptionalAttributes,
14554         ISpeechObjectTokens **ObjectTokens);
14555 
14556     HRESULT (STDMETHODCALLTYPE *GetAudioOutputs)(
14557         ISpeechVoice *This,
14558         BSTR RequiredAttributes,
14559         BSTR OptionalAttributes,
14560         ISpeechObjectTokens **ObjectTokens);
14561 
14562     HRESULT (STDMETHODCALLTYPE *WaitUntilDone)(
14563         ISpeechVoice *This,
14564         LONG msTimeout,
14565         VARIANT_BOOL *Done);
14566 
14567     HRESULT (STDMETHODCALLTYPE *SpeakCompleteEvent)(
14568         ISpeechVoice *This,
14569         LONG *Handle);
14570 
14571     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
14572         ISpeechVoice *This,
14573         const BSTR TypeOfUI,
14574         const VARIANT *ExtraData,
14575         VARIANT_BOOL *Supported);
14576 
14577     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
14578         ISpeechVoice *This,
14579         LONG hWndParent,
14580         BSTR Title,
14581         const BSTR TypeOfUI,
14582         const VARIANT *ExtraData);
14583 
14584     END_INTERFACE
14585 } ISpeechVoiceVtbl;
14586 
14587 interface ISpeechVoice {
14588     CONST_VTBL ISpeechVoiceVtbl* lpVtbl;
14589 };
14590 
14591 #ifdef COBJMACROS
14592 #ifndef WIDL_C_INLINE_WRAPPERS
14593 /*** IUnknown methods ***/
14594 #define ISpeechVoice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14595 #define ISpeechVoice_AddRef(This) (This)->lpVtbl->AddRef(This)
14596 #define ISpeechVoice_Release(This) (This)->lpVtbl->Release(This)
14597 /*** IDispatch methods ***/
14598 #define ISpeechVoice_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14599 #define ISpeechVoice_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14600 #define ISpeechVoice_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14601 #define ISpeechVoice_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14602 /*** ISpeechVoice methods ***/
14603 #define ISpeechVoice_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
14604 #define ISpeechVoice_get_Voice(This,Voice) (This)->lpVtbl->get_Voice(This,Voice)
14605 #define ISpeechVoice_putref_Voice(This,Voice) (This)->lpVtbl->putref_Voice(This,Voice)
14606 #define ISpeechVoice_get_AudioOutput(This,AudioOutput) (This)->lpVtbl->get_AudioOutput(This,AudioOutput)
14607 #define ISpeechVoice_putref_AudioOutput(This,AudioOutput) (This)->lpVtbl->putref_AudioOutput(This,AudioOutput)
14608 #define ISpeechVoice_get_AudioOutputStream(This,AudioOutputStream) (This)->lpVtbl->get_AudioOutputStream(This,AudioOutputStream)
14609 #define ISpeechVoice_putref_AudioOutputStream(This,AudioOutputStream) (This)->lpVtbl->putref_AudioOutputStream(This,AudioOutputStream)
14610 #define ISpeechVoice_get_Rate(This,Rate) (This)->lpVtbl->get_Rate(This,Rate)
14611 #define ISpeechVoice_put_Rate(This,Rate) (This)->lpVtbl->put_Rate(This,Rate)
14612 #define ISpeechVoice_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
14613 #define ISpeechVoice_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
14614 #define ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->put_AllowAudioOutputFormatChangesOnNextSet(This,Allow)
14615 #define ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->get_AllowAudioOutputFormatChangesOnNextSet(This,Allow)
14616 #define ISpeechVoice_get_EventInterests(This,EventInterestFlags) (This)->lpVtbl->get_EventInterests(This,EventInterestFlags)
14617 #define ISpeechVoice_put_EventInterests(This,EventInterestFlags) (This)->lpVtbl->put_EventInterests(This,EventInterestFlags)
14618 #define ISpeechVoice_put_Priority(This,Priority) (This)->lpVtbl->put_Priority(This,Priority)
14619 #define ISpeechVoice_get_Priority(This,Priority) (This)->lpVtbl->get_Priority(This,Priority)
14620 #define ISpeechVoice_put_AlertBoundary(This,Boundary) (This)->lpVtbl->put_AlertBoundary(This,Boundary)
14621 #define ISpeechVoice_get_AlertBoundary(This,Boundary) (This)->lpVtbl->get_AlertBoundary(This,Boundary)
14622 #define ISpeechVoice_put_SynchronousSpeakTimeout(This,msTimeout) (This)->lpVtbl->put_SynchronousSpeakTimeout(This,msTimeout)
14623 #define ISpeechVoice_get_SynchronousSpeakTimeout(This,msTimeout) (This)->lpVtbl->get_SynchronousSpeakTimeout(This,msTimeout)
14624 #define ISpeechVoice_Speak(This,Text,Flags,StreamNumber) (This)->lpVtbl->Speak(This,Text,Flags,StreamNumber)
14625 #define ISpeechVoice_SpeakStream(This,Stream,Flags,StreamNumber) (This)->lpVtbl->SpeakStream(This,Stream,Flags,StreamNumber)
14626 #define ISpeechVoice_Pause(This) (This)->lpVtbl->Pause(This)
14627 #define ISpeechVoice_Resume(This) (This)->lpVtbl->Resume(This)
14628 #define ISpeechVoice_Skip(This,Type,NumItems,NumSkipped) (This)->lpVtbl->Skip(This,Type,NumItems,NumSkipped)
14629 #define ISpeechVoice_GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
14630 #define ISpeechVoice_GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
14631 #define ISpeechVoice_WaitUntilDone(This,msTimeout,Done) (This)->lpVtbl->WaitUntilDone(This,msTimeout,Done)
14632 #define ISpeechVoice_SpeakCompleteEvent(This,Handle) (This)->lpVtbl->SpeakCompleteEvent(This,Handle)
14633 #define ISpeechVoice_IsUISupported(This,TypeOfUI,ExtraData,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported)
14634 #define ISpeechVoice_DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData) (This)->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData)
14635 #else
14636 /*** IUnknown methods ***/
14637 static FORCEINLINE HRESULT ISpeechVoice_QueryInterface(ISpeechVoice* This,REFIID riid,void **ppvObject) {
14638     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14639 }
14640 static FORCEINLINE ULONG ISpeechVoice_AddRef(ISpeechVoice* This) {
14641     return This->lpVtbl->AddRef(This);
14642 }
14643 static FORCEINLINE ULONG ISpeechVoice_Release(ISpeechVoice* This) {
14644     return This->lpVtbl->Release(This);
14645 }
14646 /*** IDispatch methods ***/
14647 static FORCEINLINE HRESULT ISpeechVoice_GetTypeInfoCount(ISpeechVoice* This,UINT *pctinfo) {
14648     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14649 }
14650 static FORCEINLINE HRESULT ISpeechVoice_GetTypeInfo(ISpeechVoice* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14651     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14652 }
14653 static FORCEINLINE HRESULT ISpeechVoice_GetIDsOfNames(ISpeechVoice* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14654     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14655 }
14656 static FORCEINLINE HRESULT ISpeechVoice_Invoke(ISpeechVoice* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14657     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14658 }
14659 /*** ISpeechVoice methods ***/
14660 static FORCEINLINE HRESULT ISpeechVoice_get_Status(ISpeechVoice* This,ISpeechVoiceStatus **Status) {
14661     return This->lpVtbl->get_Status(This,Status);
14662 }
14663 static FORCEINLINE HRESULT ISpeechVoice_get_Voice(ISpeechVoice* This,ISpeechObjectToken **Voice) {
14664     return This->lpVtbl->get_Voice(This,Voice);
14665 }
14666 static FORCEINLINE HRESULT ISpeechVoice_putref_Voice(ISpeechVoice* This,ISpeechObjectToken *Voice) {
14667     return This->lpVtbl->putref_Voice(This,Voice);
14668 }
14669 static FORCEINLINE HRESULT ISpeechVoice_get_AudioOutput(ISpeechVoice* This,ISpeechObjectToken **AudioOutput) {
14670     return This->lpVtbl->get_AudioOutput(This,AudioOutput);
14671 }
14672 static FORCEINLINE HRESULT ISpeechVoice_putref_AudioOutput(ISpeechVoice* This,ISpeechObjectToken *AudioOutput) {
14673     return This->lpVtbl->putref_AudioOutput(This,AudioOutput);
14674 }
14675 static FORCEINLINE HRESULT ISpeechVoice_get_AudioOutputStream(ISpeechVoice* This,ISpeechBaseStream **AudioOutputStream) {
14676     return This->lpVtbl->get_AudioOutputStream(This,AudioOutputStream);
14677 }
14678 static FORCEINLINE HRESULT ISpeechVoice_putref_AudioOutputStream(ISpeechVoice* This,ISpeechBaseStream *AudioOutputStream) {
14679     return This->lpVtbl->putref_AudioOutputStream(This,AudioOutputStream);
14680 }
14681 static FORCEINLINE HRESULT ISpeechVoice_get_Rate(ISpeechVoice* This,LONG *Rate) {
14682     return This->lpVtbl->get_Rate(This,Rate);
14683 }
14684 static FORCEINLINE HRESULT ISpeechVoice_put_Rate(ISpeechVoice* This,LONG Rate) {
14685     return This->lpVtbl->put_Rate(This,Rate);
14686 }
14687 static FORCEINLINE HRESULT ISpeechVoice_get_Volume(ISpeechVoice* This,LONG *Volume) {
14688     return This->lpVtbl->get_Volume(This,Volume);
14689 }
14690 static FORCEINLINE HRESULT ISpeechVoice_put_Volume(ISpeechVoice* This,LONG Volume) {
14691     return This->lpVtbl->put_Volume(This,Volume);
14692 }
14693 static FORCEINLINE HRESULT ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet(ISpeechVoice* This,VARIANT_BOOL Allow) {
14694     return This->lpVtbl->put_AllowAudioOutputFormatChangesOnNextSet(This,Allow);
14695 }
14696 static FORCEINLINE HRESULT ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet(ISpeechVoice* This,VARIANT_BOOL *Allow) {
14697     return This->lpVtbl->get_AllowAudioOutputFormatChangesOnNextSet(This,Allow);
14698 }
14699 static FORCEINLINE HRESULT ISpeechVoice_get_EventInterests(ISpeechVoice* This,SpeechVoiceEvents *EventInterestFlags) {
14700     return This->lpVtbl->get_EventInterests(This,EventInterestFlags);
14701 }
14702 static FORCEINLINE HRESULT ISpeechVoice_put_EventInterests(ISpeechVoice* This,SpeechVoiceEvents EventInterestFlags) {
14703     return This->lpVtbl->put_EventInterests(This,EventInterestFlags);
14704 }
14705 static FORCEINLINE HRESULT ISpeechVoice_put_Priority(ISpeechVoice* This,SpeechVoicePriority Priority) {
14706     return This->lpVtbl->put_Priority(This,Priority);
14707 }
14708 static FORCEINLINE HRESULT ISpeechVoice_get_Priority(ISpeechVoice* This,SpeechVoicePriority *Priority) {
14709     return This->lpVtbl->get_Priority(This,Priority);
14710 }
14711 static FORCEINLINE HRESULT ISpeechVoice_put_AlertBoundary(ISpeechVoice* This,SpeechVoiceEvents Boundary) {
14712     return This->lpVtbl->put_AlertBoundary(This,Boundary);
14713 }
14714 static FORCEINLINE HRESULT ISpeechVoice_get_AlertBoundary(ISpeechVoice* This,SpeechVoiceEvents *Boundary) {
14715     return This->lpVtbl->get_AlertBoundary(This,Boundary);
14716 }
14717 static FORCEINLINE HRESULT ISpeechVoice_put_SynchronousSpeakTimeout(ISpeechVoice* This,LONG msTimeout) {
14718     return This->lpVtbl->put_SynchronousSpeakTimeout(This,msTimeout);
14719 }
14720 static FORCEINLINE HRESULT ISpeechVoice_get_SynchronousSpeakTimeout(ISpeechVoice* This,LONG *msTimeout) {
14721     return This->lpVtbl->get_SynchronousSpeakTimeout(This,msTimeout);
14722 }
14723 static FORCEINLINE HRESULT ISpeechVoice_Speak(ISpeechVoice* This,BSTR Text,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
14724     return This->lpVtbl->Speak(This,Text,Flags,StreamNumber);
14725 }
14726 static FORCEINLINE HRESULT ISpeechVoice_SpeakStream(ISpeechVoice* This,ISpeechBaseStream *Stream,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
14727     return This->lpVtbl->SpeakStream(This,Stream,Flags,StreamNumber);
14728 }
14729 static FORCEINLINE HRESULT ISpeechVoice_Pause(ISpeechVoice* This) {
14730     return This->lpVtbl->Pause(This);
14731 }
14732 static FORCEINLINE HRESULT ISpeechVoice_Resume(ISpeechVoice* This) {
14733     return This->lpVtbl->Resume(This);
14734 }
14735 static FORCEINLINE HRESULT ISpeechVoice_Skip(ISpeechVoice* This,const BSTR Type,LONG NumItems,LONG *NumSkipped) {
14736     return This->lpVtbl->Skip(This,Type,NumItems,NumSkipped);
14737 }
14738 static FORCEINLINE HRESULT ISpeechVoice_GetVoices(ISpeechVoice* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
14739     return This->lpVtbl->GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
14740 }
14741 static FORCEINLINE HRESULT ISpeechVoice_GetAudioOutputs(ISpeechVoice* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
14742     return This->lpVtbl->GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
14743 }
14744 static FORCEINLINE HRESULT ISpeechVoice_WaitUntilDone(ISpeechVoice* This,LONG msTimeout,VARIANT_BOOL *Done) {
14745     return This->lpVtbl->WaitUntilDone(This,msTimeout,Done);
14746 }
14747 static FORCEINLINE HRESULT ISpeechVoice_SpeakCompleteEvent(ISpeechVoice* This,LONG *Handle) {
14748     return This->lpVtbl->SpeakCompleteEvent(This,Handle);
14749 }
14750 static FORCEINLINE HRESULT ISpeechVoice_IsUISupported(ISpeechVoice* This,const BSTR TypeOfUI,const VARIANT *ExtraData,VARIANT_BOOL *Supported) {
14751     return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported);
14752 }
14753 static FORCEINLINE HRESULT ISpeechVoice_DisplayUI(ISpeechVoice* This,LONG hWndParent,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData) {
14754     return This->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData);
14755 }
14756 #endif
14757 #endif
14758 
14759 #endif
14760 
14761 
14762 #endif  /* __ISpeechVoice_INTERFACE_DEFINED__ */
14763 
14764 /*****************************************************************************
14765  * ISpeechVoiceStatus interface
14766  */
14767 #ifndef __ISpeechVoiceStatus_INTERFACE_DEFINED__
14768 #define __ISpeechVoiceStatus_INTERFACE_DEFINED__
14769 
14770 DEFINE_GUID(IID_ISpeechVoiceStatus, 0x8be47b07, 0x57f6, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96);
14771 #if defined(__cplusplus) && !defined(CINTERFACE)
14772 MIDL_INTERFACE("8be47b07-57f6-11d2-9eee-00c04f797396")
14773 ISpeechVoiceStatus : public IDispatch
14774 {
14775     virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamNumber(
14776         LONG *StreamNumber) = 0;
14777 
14778     virtual HRESULT STDMETHODCALLTYPE get_LastStreamNumberQueued(
14779         LONG *StreamNumber) = 0;
14780 
14781     virtual HRESULT STDMETHODCALLTYPE get_LastHResult(
14782         LONG *HResult) = 0;
14783 
14784     virtual HRESULT STDMETHODCALLTYPE get_RunningState(
14785         SpeechRunState *State) = 0;
14786 
14787     virtual HRESULT STDMETHODCALLTYPE get_InputWordPosition(
14788         LONG *Position) = 0;
14789 
14790     virtual HRESULT STDMETHODCALLTYPE get_InputWordLength(
14791         LONG *Length) = 0;
14792 
14793     virtual HRESULT STDMETHODCALLTYPE get_InputSentencePosition(
14794         LONG *Position) = 0;
14795 
14796     virtual HRESULT STDMETHODCALLTYPE get_InputSentenceLength(
14797         LONG *Length) = 0;
14798 
14799     virtual HRESULT STDMETHODCALLTYPE get_LastBookmark(
14800         BSTR *Bookmark) = 0;
14801 
14802     virtual HRESULT STDMETHODCALLTYPE get_LastBookmarkId(
14803         LONG *BookmarkId) = 0;
14804 
14805     virtual HRESULT STDMETHODCALLTYPE get_PhonemeId(
14806         short *PhoneId) = 0;
14807 
14808     virtual HRESULT STDMETHODCALLTYPE get_VisemeId(
14809         short *VisemeId) = 0;
14810 
14811 };
14812 #ifdef __CRT_UUID_DECL
14813 __CRT_UUID_DECL(ISpeechVoiceStatus, 0x8be47b07, 0x57f6, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96)
14814 #endif
14815 #else
14816 typedef struct ISpeechVoiceStatusVtbl {
14817     BEGIN_INTERFACE
14818 
14819     /*** IUnknown methods ***/
14820     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14821         ISpeechVoiceStatus *This,
14822         REFIID riid,
14823         void **ppvObject);
14824 
14825     ULONG (STDMETHODCALLTYPE *AddRef)(
14826         ISpeechVoiceStatus *This);
14827 
14828     ULONG (STDMETHODCALLTYPE *Release)(
14829         ISpeechVoiceStatus *This);
14830 
14831     /*** IDispatch methods ***/
14832     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
14833         ISpeechVoiceStatus *This,
14834         UINT *pctinfo);
14835 
14836     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
14837         ISpeechVoiceStatus *This,
14838         UINT iTInfo,
14839         LCID lcid,
14840         ITypeInfo **ppTInfo);
14841 
14842     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
14843         ISpeechVoiceStatus *This,
14844         REFIID riid,
14845         LPOLESTR *rgszNames,
14846         UINT cNames,
14847         LCID lcid,
14848         DISPID *rgDispId);
14849 
14850     HRESULT (STDMETHODCALLTYPE *Invoke)(
14851         ISpeechVoiceStatus *This,
14852         DISPID dispIdMember,
14853         REFIID riid,
14854         LCID lcid,
14855         WORD wFlags,
14856         DISPPARAMS *pDispParams,
14857         VARIANT *pVarResult,
14858         EXCEPINFO *pExcepInfo,
14859         UINT *puArgErr);
14860 
14861     /*** ISpeechVoiceStatus methods ***/
14862     HRESULT (STDMETHODCALLTYPE *get_CurrentStreamNumber)(
14863         ISpeechVoiceStatus *This,
14864         LONG *StreamNumber);
14865 
14866     HRESULT (STDMETHODCALLTYPE *get_LastStreamNumberQueued)(
14867         ISpeechVoiceStatus *This,
14868         LONG *StreamNumber);
14869 
14870     HRESULT (STDMETHODCALLTYPE *get_LastHResult)(
14871         ISpeechVoiceStatus *This,
14872         LONG *HResult);
14873 
14874     HRESULT (STDMETHODCALLTYPE *get_RunningState)(
14875         ISpeechVoiceStatus *This,
14876         SpeechRunState *State);
14877 
14878     HRESULT (STDMETHODCALLTYPE *get_InputWordPosition)(
14879         ISpeechVoiceStatus *This,
14880         LONG *Position);
14881 
14882     HRESULT (STDMETHODCALLTYPE *get_InputWordLength)(
14883         ISpeechVoiceStatus *This,
14884         LONG *Length);
14885 
14886     HRESULT (STDMETHODCALLTYPE *get_InputSentencePosition)(
14887         ISpeechVoiceStatus *This,
14888         LONG *Position);
14889 
14890     HRESULT (STDMETHODCALLTYPE *get_InputSentenceLength)(
14891         ISpeechVoiceStatus *This,
14892         LONG *Length);
14893 
14894     HRESULT (STDMETHODCALLTYPE *get_LastBookmark)(
14895         ISpeechVoiceStatus *This,
14896         BSTR *Bookmark);
14897 
14898     HRESULT (STDMETHODCALLTYPE *get_LastBookmarkId)(
14899         ISpeechVoiceStatus *This,
14900         LONG *BookmarkId);
14901 
14902     HRESULT (STDMETHODCALLTYPE *get_PhonemeId)(
14903         ISpeechVoiceStatus *This,
14904         short *PhoneId);
14905 
14906     HRESULT (STDMETHODCALLTYPE *get_VisemeId)(
14907         ISpeechVoiceStatus *This,
14908         short *VisemeId);
14909 
14910     END_INTERFACE
14911 } ISpeechVoiceStatusVtbl;
14912 
14913 interface ISpeechVoiceStatus {
14914     CONST_VTBL ISpeechVoiceStatusVtbl* lpVtbl;
14915 };
14916 
14917 #ifdef COBJMACROS
14918 #ifndef WIDL_C_INLINE_WRAPPERS
14919 /*** IUnknown methods ***/
14920 #define ISpeechVoiceStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14921 #define ISpeechVoiceStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
14922 #define ISpeechVoiceStatus_Release(This) (This)->lpVtbl->Release(This)
14923 /*** IDispatch methods ***/
14924 #define ISpeechVoiceStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14925 #define ISpeechVoiceStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14926 #define ISpeechVoiceStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14927 #define ISpeechVoiceStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14928 /*** ISpeechVoiceStatus methods ***/
14929 #define ISpeechVoiceStatus_get_CurrentStreamNumber(This,StreamNumber) (This)->lpVtbl->get_CurrentStreamNumber(This,StreamNumber)
14930 #define ISpeechVoiceStatus_get_LastStreamNumberQueued(This,StreamNumber) (This)->lpVtbl->get_LastStreamNumberQueued(This,StreamNumber)
14931 #define ISpeechVoiceStatus_get_LastHResult(This,HResult) (This)->lpVtbl->get_LastHResult(This,HResult)
14932 #define ISpeechVoiceStatus_get_RunningState(This,State) (This)->lpVtbl->get_RunningState(This,State)
14933 #define ISpeechVoiceStatus_get_InputWordPosition(This,Position) (This)->lpVtbl->get_InputWordPosition(This,Position)
14934 #define ISpeechVoiceStatus_get_InputWordLength(This,Length) (This)->lpVtbl->get_InputWordLength(This,Length)
14935 #define ISpeechVoiceStatus_get_InputSentencePosition(This,Position) (This)->lpVtbl->get_InputSentencePosition(This,Position)
14936 #define ISpeechVoiceStatus_get_InputSentenceLength(This,Length) (This)->lpVtbl->get_InputSentenceLength(This,Length)
14937 #define ISpeechVoiceStatus_get_LastBookmark(This,Bookmark) (This)->lpVtbl->get_LastBookmark(This,Bookmark)
14938 #define ISpeechVoiceStatus_get_LastBookmarkId(This,BookmarkId) (This)->lpVtbl->get_LastBookmarkId(This,BookmarkId)
14939 #define ISpeechVoiceStatus_get_PhonemeId(This,PhoneId) (This)->lpVtbl->get_PhonemeId(This,PhoneId)
14940 #define ISpeechVoiceStatus_get_VisemeId(This,VisemeId) (This)->lpVtbl->get_VisemeId(This,VisemeId)
14941 #else
14942 /*** IUnknown methods ***/
14943 static FORCEINLINE HRESULT ISpeechVoiceStatus_QueryInterface(ISpeechVoiceStatus* This,REFIID riid,void **ppvObject) {
14944     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14945 }
14946 static FORCEINLINE ULONG ISpeechVoiceStatus_AddRef(ISpeechVoiceStatus* This) {
14947     return This->lpVtbl->AddRef(This);
14948 }
14949 static FORCEINLINE ULONG ISpeechVoiceStatus_Release(ISpeechVoiceStatus* This) {
14950     return This->lpVtbl->Release(This);
14951 }
14952 /*** IDispatch methods ***/
14953 static FORCEINLINE HRESULT ISpeechVoiceStatus_GetTypeInfoCount(ISpeechVoiceStatus* This,UINT *pctinfo) {
14954     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14955 }
14956 static FORCEINLINE HRESULT ISpeechVoiceStatus_GetTypeInfo(ISpeechVoiceStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14957     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14958 }
14959 static FORCEINLINE HRESULT ISpeechVoiceStatus_GetIDsOfNames(ISpeechVoiceStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14960     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14961 }
14962 static FORCEINLINE HRESULT ISpeechVoiceStatus_Invoke(ISpeechVoiceStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14963     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14964 }
14965 /*** ISpeechVoiceStatus methods ***/
14966 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_CurrentStreamNumber(ISpeechVoiceStatus* This,LONG *StreamNumber) {
14967     return This->lpVtbl->get_CurrentStreamNumber(This,StreamNumber);
14968 }
14969 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_LastStreamNumberQueued(ISpeechVoiceStatus* This,LONG *StreamNumber) {
14970     return This->lpVtbl->get_LastStreamNumberQueued(This,StreamNumber);
14971 }
14972 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_LastHResult(ISpeechVoiceStatus* This,LONG *HResult) {
14973     return This->lpVtbl->get_LastHResult(This,HResult);
14974 }
14975 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_RunningState(ISpeechVoiceStatus* This,SpeechRunState *State) {
14976     return This->lpVtbl->get_RunningState(This,State);
14977 }
14978 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_InputWordPosition(ISpeechVoiceStatus* This,LONG *Position) {
14979     return This->lpVtbl->get_InputWordPosition(This,Position);
14980 }
14981 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_InputWordLength(ISpeechVoiceStatus* This,LONG *Length) {
14982     return This->lpVtbl->get_InputWordLength(This,Length);
14983 }
14984 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_InputSentencePosition(ISpeechVoiceStatus* This,LONG *Position) {
14985     return This->lpVtbl->get_InputSentencePosition(This,Position);
14986 }
14987 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_InputSentenceLength(ISpeechVoiceStatus* This,LONG *Length) {
14988     return This->lpVtbl->get_InputSentenceLength(This,Length);
14989 }
14990 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_LastBookmark(ISpeechVoiceStatus* This,BSTR *Bookmark) {
14991     return This->lpVtbl->get_LastBookmark(This,Bookmark);
14992 }
14993 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_LastBookmarkId(ISpeechVoiceStatus* This,LONG *BookmarkId) {
14994     return This->lpVtbl->get_LastBookmarkId(This,BookmarkId);
14995 }
14996 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_PhonemeId(ISpeechVoiceStatus* This,short *PhoneId) {
14997     return This->lpVtbl->get_PhonemeId(This,PhoneId);
14998 }
14999 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_VisemeId(ISpeechVoiceStatus* This,short *VisemeId) {
15000     return This->lpVtbl->get_VisemeId(This,VisemeId);
15001 }
15002 #endif
15003 #endif
15004 
15005 #endif
15006 
15007 
15008 #endif  /* __ISpeechVoiceStatus_INTERFACE_DEFINED__ */
15009 
15010 typedef enum SpeechVisemeType {
15011     SVP_0 = 0,
15012     SVP_1 = 1,
15013     SVP_2 = 2,
15014     SVP_3 = 3,
15015     SVP_4 = 4,
15016     SVP_5 = 5,
15017     SVP_6 = 6,
15018     SVP_7 = 7,
15019     SVP_8 = 8,
15020     SVP_9 = 9,
15021     SVP_10 = 10,
15022     SVP_11 = 11,
15023     SVP_12 = 12,
15024     SVP_13 = 13,
15025     SVP_14 = 14,
15026     SVP_15 = 15,
15027     SVP_16 = 16,
15028     SVP_17 = 17,
15029     SVP_18 = 18,
15030     SVP_19 = 19,
15031     SVP_20 = 20,
15032     SVP_21 = 21
15033 } SpeechVisemeType;
15034 typedef enum SpeechVisemeFeature {
15035     SVF_None = 0,
15036     SVF_Stressed = SPVFEATURE_STRESSED,
15037     SVF_Emphasis = SPVFEATURE_EMPHASIS
15038 } SpeechVisemeFeature;
15039 typedef enum DISPID_SpeechVoiceEvent {
15040     DISPID_SVEStreamStart = 1,
15041     DISPID_SVEStreamEnd = 2,
15042     DISPID_SVEVoiceChange = 3,
15043     DISPID_SVEBookmark = 4,
15044     DISPID_SVEWord = 5,
15045     DISPID_SVEPhoneme = 6,
15046     DISPID_SVESentenceBoundary = 7,
15047     DISPID_SVEViseme = 8,
15048     DISPID_SVEAudioLevel = 9,
15049     DISPID_SVEEnginePrivate = 10
15050 } DISPID_SpeechVoiceEvent;
15051 typedef enum DISPID_SpeechRecognizer {
15052     DISPID_SRRecognizer = 1,
15053     DISPID_SRAllowAudioInputFormatChangesOnNextSet = 2,
15054     DISPID_SRAudioInput = 3,
15055     DISPID_SRAudioInputStream = 4,
15056     DISPID_SRIsShared = 5,
15057     DISPID_SRState = 6,
15058     DISPID_SRStatus = 7,
15059     DISPID_SRProfile = 8,
15060     DISPID_SREmulateRecognition = 9,
15061     DISPID_SRCreateRecoContext = 10,
15062     DISPID_SRGetFormat = 11,
15063     DISPID_SRSetPropertyNumber = 12,
15064     DISPID_SRGetPropertyNumber = 13,
15065     DISPID_SRSetPropertyString = 14,
15066     DISPID_SRGetPropertyString = 15,
15067     DISPID_SRIsUISupported = 16,
15068     DISPID_SRDisplayUI = 17,
15069     DISPID_SRGetRecognizers = 18,
15070     DISPID_SVGetAudioInputs = 19,
15071     DISPID_SVGetProfiles = 20
15072 } DISPID_SpeechRecognizer;
15073 typedef enum SpeechRecognizerState {
15074     SRSInactive = SPRST_INACTIVE,
15075     SRSActive = SPRST_ACTIVE,
15076     SRSActiveAlways = SPRST_ACTIVE_ALWAYS,
15077     SRSInactiveWithPurge = SPRST_INACTIVE_WITH_PURGE
15078 } SpeechRecognizerState;
15079 typedef enum SpeechDisplayAttributes {
15080     SDA_No_Trailing_Space = 0,
15081     SDA_One_Trailing_Space = SPAF_ONE_TRAILING_SPACE,
15082     SDA_Two_Trailing_Spaces = SPAF_TWO_TRAILING_SPACES,
15083     SDA_Consume_Leading_Spaces = SPAF_CONSUME_LEADING_SPACES
15084 } SpeechDisplayAttributes;
15085 typedef enum SpeechFormatType {
15086     SFTInput = SPWF_INPUT,
15087     SFTSREngine = SPWF_SRENGINE
15088 } SpeechFormatType;
15089 typedef enum DISPID_SpeechRecognizerStatus {
15090     DISPID_SRSAudioStatus = 1,
15091     DISPID_SRSCurrentStreamPosition = 2,
15092     DISPID_SRSCurrentStreamNumber = 3,
15093     DISPID_SRSNumberOfActiveRules = 4,
15094     DISPID_SRSClsidEngine = 5,
15095     DISPID_SRSSupportedLanguages = 6
15096 } DISPID_SpeechRecognizerStatus;
15097 typedef enum DISPID_SpeechRecoContext {
15098     DISPID_SRCRecognizer = 1,
15099     DISPID_SRCAudioInInterferenceStatus = 2,
15100     DISPID_SRCRequestedUIType = 3,
15101     DISPID_SRCVoice = 4,
15102     DISPID_SRAllowVoiceFormatMatchingOnNextSet = 5,
15103     DISPID_SRCVoicePurgeEvent = 6,
15104     DISPID_SRCEventInterests = 7,
15105     DISPID_SRCCmdMaxAlternates = 8,
15106     DISPID_SRCState = 9,
15107     DISPID_SRCRetainedAudio = 10,
15108     DISPID_SRCRetainedAudioFormat = 11,
15109     DISPID_SRCPause = 12,
15110     DISPID_SRCResume = 13,
15111     DISPID_SRCCreateGrammar = 14,
15112     DISPID_SRCCreateResultFromMemory = 15,
15113     DISPID_SRCBookmark = 16,
15114     DISPID_SRCSetAdaptationData = 17
15115 } DISPID_SpeechRecoContext;
15116 typedef enum SpeechRetainedAudioOptions {
15117     SRAONone = SPAO_NONE,
15118     SRAORetainAudio = SPAO_RETAIN_AUDIO
15119 } SpeechRetainedAudioOptions;
15120 typedef enum SpeechBookmarkOptions {
15121     SBONone = SPBO_NONE,
15122     SBOPause = SPBO_PAUSE
15123 } SpeechBookmarkOptions;
15124 typedef enum SpeechInterference {
15125     SINone = SPINTERFERENCE_NONE,
15126     SINoise = SPINTERFERENCE_NOISE,
15127     SINoSignal = SPINTERFERENCE_NOSIGNAL,
15128     SITooLoud = SPINTERFERENCE_TOOLOUD,
15129     SITooQuiet = SPINTERFERENCE_TOOQUIET,
15130     SITooFast = SPINTERFERENCE_TOOFAST,
15131     SITooSlow = SPINTERFERENCE_TOOSLOW
15132 } SpeechInterference;
15133 typedef enum SpeechRecoEvents {
15134     SREStreamEnd = 0x1,
15135     SRESoundStart = 0x2,
15136     SRESoundEnd = 0x4,
15137     SREPhraseStart = 0x8,
15138     SRERecognition = 0x10,
15139     SREHypothesis = 0x20,
15140     SREBookmark = 0x40,
15141     SREPropertyNumChange = 0x80,
15142     SREPropertyStringChange = 0x100,
15143     SREFalseRecognition = 0x200,
15144     SREInterference = 0x400,
15145     SRERequestUI = 0x800,
15146     SREStateChange = 0x1000,
15147     SREAdaptation = 0x2000,
15148     SREStreamStart = 0x4000,
15149     SRERecoOtherContext = 0x8000,
15150     SREAudioLevel = 0x10000,
15151     SREPrivate = 0x40000,
15152     SREAllEvents = 0x5ffff
15153 } SpeechRecoEvents;
15154 typedef enum SpeechRecoContextState {
15155     SRCS_Disabled = SPCS_DISABLED,
15156     SRCS_Enabled = SPCS_ENABLED
15157 } SpeechRecoContextState;
15158 typedef enum DISPIDSPRG {
15159     DISPID_SRGId = 1,
15160     DISPID_SRGRecoContext = 2,
15161     DISPID_SRGState = 3,
15162     DISPID_SRGRules = 4,
15163     DISPID_SRGReset = 5,
15164     DISPID_SRGCommit = 6,
15165     DISPID_SRGCmdLoadFromFile = 7,
15166     DISPID_SRGCmdLoadFromObject = 8,
15167     DISPID_SRGCmdLoadFromResource = 9,
15168     DISPID_SRGCmdLoadFromMemory = 10,
15169     DISPID_SRGCmdLoadFromProprietaryGrammar = 11,
15170     DISPID_SRGCmdSetRuleState = 12,
15171     DISPID_SRGCmdSetRuleIdState = 13,
15172     DISPID_SRGDictationLoad = 14,
15173     DISPID_SRGDictationUnload = 15,
15174     DISPID_SRGDictationSetState = 16,
15175     DISPID_SRGSetWordSequenceData = 17,
15176     DISPID_SRGSetTextSelection = 18,
15177     DISPID_SRGIsPronounceable = 19
15178 } DISPIDSPRG;
15179 typedef enum SpeechLoadOption {
15180     SLOStatic = SPLO_STATIC,
15181     SLODynamic = SPLO_DYNAMIC
15182 } SpeechLoadOption;
15183 typedef enum SpeechWordPronounceable {
15184     SWPUnknownWordUnpronounceable = SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE,
15185     SWPUnknownWordPronounceable = SPWP_UNKNOWN_WORD_PRONOUNCEABLE,
15186     SWPKnownWordPronounceable = SPWP_KNOWN_WORD_PRONOUNCEABLE
15187 } SpeechWordPronounceable;
15188 typedef enum SpeechGrammarState {
15189     SGSEnabled = SPGS_ENABLED,
15190     SGSDisabled = SPGS_DISABLED,
15191     SGSExclusive = SPGS_EXCLUSIVE
15192 } SpeechGrammarState;
15193 typedef enum SpeechRuleState {
15194     SGDSInactive = SPRS_INACTIVE,
15195     SGDSActive = SPRS_ACTIVE,
15196     SGDSActiveWithAutoPause = SPRS_ACTIVE_WITH_AUTO_PAUSE,
15197     SGDSActiveUserDelimited = SPRS_ACTIVE_USER_DELIMITED
15198 } SpeechRuleState;
15199 typedef enum SpeechRuleAttributes {
15200     SRATopLevel = SPRAF_TopLevel,
15201     SRADefaultToActive = SPRAF_Active,
15202     SRAExport = SPRAF_Export,
15203     SRAImport = SPRAF_Import,
15204     SRAInterpreter = SPRAF_Interpreter,
15205     SRADynamic = SPRAF_Dynamic,
15206     SRARoot = SPRAF_Root
15207 } SpeechRuleAttributes;
15208 typedef enum SpeechGrammarWordType {
15209     SGDisplay = SPWT_DISPLAY,
15210     SGLexical = SPWT_LEXICAL,
15211     SGPronounciation = SPWT_PRONUNCIATION,
15212     SGLexicalNoSpecialChars = SPWT_LEXICAL_NO_SPECIAL_CHARS
15213 } SpeechGrammarWordType;
15214 typedef enum DISPID_SpeechRecoContextEvents {
15215     DISPID_SRCEStartStream = 1,
15216     DISPID_SRCEEndStream = 2,
15217     DISPID_SRCEBookmark = 3,
15218     DISPID_SRCESoundStart = 4,
15219     DISPID_SRCESoundEnd = 5,
15220     DISPID_SRCEPhraseStart = 6,
15221     DISPID_SRCERecognition = 7,
15222     DISPID_SRCEHypothesis = 8,
15223     DISPID_SRCEPropertyNumberChange = 9,
15224     DISPID_SRCEPropertyStringChange = 10,
15225     DISPID_SRCEFalseRecognition = 11,
15226     DISPID_SRCEInterference = 12,
15227     DISPID_SRCERequestUI = 13,
15228     DISPID_SRCERecognizerStateChange = 14,
15229     DISPID_SRCEAdaptation = 15,
15230     DISPID_SRCERecognitionForOtherContext = 16,
15231     DISPID_SRCEAudioLevel = 17,
15232     DISPID_SRCEEnginePrivate = 18
15233 } DISPID_SpeechRecoContextEvents;
15234 typedef enum SpeechRecognitionType {
15235     SRTStandard = 0,
15236     SRTAutopause = SPREF_AutoPause,
15237     SRTEmulated = SPREF_Emulated,
15238     SRTSMLTimeout = SPREF_SMLTimeout,
15239     SRTExtendableParse = SPREF_ExtendableParse,
15240     SRTReSent = SPREF_ReSent
15241 } SpeechRecognitionType;
15242 typedef enum DISPID_SpeechGrammarRule {
15243     DISPID_SGRAttributes = 1,
15244     DISPID_SGRInitialState = 2,
15245     DISPID_SGRName = 3,
15246     DISPID_SGRId = 4,
15247     DISPID_SGRClear = 5,
15248     DISPID_SGRAddResource = 6,
15249     DISPID_SGRAddState = 7
15250 } DISPID_SpeechGrammarRule;
15251 typedef enum DISPID_SpeechGrammarRules {
15252     DISPID_SGRsCount = 1,
15253     DISPID_SGRsDynamic = 2,
15254     DISPID_SGRsAdd = 3,
15255     DISPID_SGRsCommit = 4,
15256     DISPID_SGRsCommitAndSave = 5,
15257     DISPID_SGRsFindRule = 6,
15258     DISPID_SGRsItem = DISPID_VALUE,
15259     DISPID_SGRs_NewEnum = DISPID_NEWENUM
15260 } DISPID_SpeechGrammarRules;
15261 typedef enum DISPID_SpeechGrammarRuleState {
15262     DISPID_SGRSRule = 1,
15263     DISPID_SGRSTransitions = 2,
15264     DISPID_SGRSAddWordTransition = 3,
15265     DISPID_SGRSAddRuleTransition = 4,
15266     DISPID_SGRSAddSpecialTransition = 5
15267 } DISPID_SpeechGrammarRuleState;
15268 typedef enum SpeechSpecialTransitionType {
15269     SSTTWildcard = 1,
15270     SSTTDictation = 2,
15271     SSTTTextBuffer = 3
15272 } SpeechSpecialTransitionType;
15273 typedef enum DISPID_SpeechGrammarRuleStateTransitions {
15274     DISPID_SGRSTsCount = 1,
15275     DISPID_SGRSTsItem = DISPID_VALUE,
15276     DISPID_SGRSTs_NewEnum = DISPID_NEWENUM
15277 } DISPID_SpeechGrammarRuleStateTransitions;
15278 typedef enum DISPID_SpeechGrammarRuleStateTransition {
15279     DISPID_SGRSTType = 1,
15280     DISPID_SGRSTText = 2,
15281     DISPID_SGRSTRule = 3,
15282     DISPID_SGRSTWeight = 4,
15283     DISPID_SGRSTPropertyName = 5,
15284     DISPID_SGRSTPropertyId = 6,
15285     DISPID_SGRSTPropertyValue = 7,
15286     DISPID_SGRSTNextState = 8
15287 } DISPID_SpeechGrammarRuleStateTransition;
15288 typedef enum SpeechGrammarRuleStateTransitionType {
15289     SGRSTTEpsilon = 0,
15290     SGRSTTWord = 1,
15291     SGRSTTRule = 2,
15292     SGRSTTDictation = 3,
15293     SGRSTTWildcard = 4,
15294     SGRSTTTextBuffer = 5
15295 } SpeechGrammarRuleStateTransitionType;
15296 typedef enum DISPIDSPTSI {
15297     DISPIDSPTSI_ActiveOffset = 1,
15298     DISPIDSPTSI_ActiveLength = 2,
15299     DISPIDSPTSI_SelectionOffset = 3,
15300     DISPIDSPTSI_SelectionLength = 4
15301 } DISPIDSPTSI;
15302 typedef enum DISPID_SpeechRecoResult {
15303     DISPID_SRRRecoContext = 1,
15304     DISPID_SRRTimes = 2,
15305     DISPID_SRRAudioFormat = 3,
15306     DISPID_SRRPhraseInfo = 4,
15307     DISPID_SRRAlternates = 5,
15308     DISPID_SRRAudio = 6,
15309     DISPID_SRRSpeakAudio = 7,
15310     DISPID_SRRSaveToMemory = 8,
15311     DISPID_SRRDiscardResultInfo = 9
15312 } DISPID_SpeechRecoResult;
15313 typedef enum SpeechDiscardType {
15314     SDTProperty = SPDF_PROPERTY,
15315     SDTReplacement = SPDF_REPLACEMENT,
15316     SDTRule = SPDF_RULE,
15317     SDTDisplayText = SPDF_DISPLAYTEXT,
15318     SDTLexicalForm = SPDF_LEXICALFORM,
15319     SDTPronunciation = SPDF_PRONUNCIATION,
15320     SDTAudio = SPDF_AUDIO,
15321     SDTAlternates = SPDF_ALTERNATES,
15322     SDTAll = SPDF_ALL
15323 } SpeechDiscardType;
15324 typedef enum SpeechEmulationCompareFlags {
15325     SECFIgnoreCase = 0x1,
15326     SECFIgnoreKanaType = 0x10000,
15327     SECFIgnoreWidth = 0x20000,
15328     SECFNoSpecialChars = 0x20000000,
15329     SECFEmulateResult = 0x40000000,
15330     SECFDefault = (SECFIgnoreCase | SECFIgnoreKanaType) | SECFIgnoreWidth
15331 } SpeechEmulationCompareFlags;
15332 typedef enum DISPID_SpeechXMLRecoResult {
15333     DISPID_SRRGetXMLResult = DISPID_SRRDiscardResultInfo + 1,
15334     DISPID_SRRGetXMLErrorInfo = DISPID_SRRGetXMLResult + 1
15335 } DISPID_SpeechXMLRecoResult;
15336 typedef enum DISPID_SpeechRecoResult2 {
15337     DISPID_SRRSetTextFeedback = DISPID_SRRGetXMLErrorInfo + 1
15338 } DISPID_SpeechRecoResult2;
15339 typedef enum DISPID_SpeechPhraseBuilder {
15340     DISPID_SPPBRestorePhraseFromMemory = 1
15341 } DISPID_SpeechPhraseBuilder;
15342 typedef enum DISPID_SpeechRecoResultTimes {
15343     DISPID_SRRTStreamTime = 1,
15344     DISPID_SRRTLength = 2,
15345     DISPID_SRRTTickCount = 3,
15346     DISPID_SRRTOffsetFromStart = 4
15347 } DISPID_SpeechRecoResultTimes;
15348 typedef enum DISPID_SpeechPhraseAlternate {
15349     DISPID_SPARecoResult = 1,
15350     DISPID_SPAStartElementInResult = 2,
15351     DISPID_SPANumberOfElementsInResult = 3,
15352     DISPID_SPAPhraseInfo = 4,
15353     DISPID_SPACommit = 5
15354 } DISPID_SpeechPhraseAlternate;
15355 typedef enum DISPID_SpeechPhraseAlternates {
15356     DISPID_SPAsCount = 1,
15357     DISPID_SPAsItem = DISPID_VALUE,
15358     DISPID_SPAs_NewEnum = DISPID_NEWENUM
15359 } DISPID_SpeechPhraseAlternates;
15360 typedef enum DISPID_SpeechPhraseInfo {
15361     DISPID_SPILanguageId = 1,
15362     DISPID_SPIGrammarId = 2,
15363     DISPID_SPIStartTime = 3,
15364     DISPID_SPIAudioStreamPosition = 4,
15365     DISPID_SPIAudioSizeBytes = 5,
15366     DISPID_SPIRetainedSizeBytes = 6,
15367     DISPID_SPIAudioSizeTime = 7,
15368     DISPID_SPIRule = 8,
15369     DISPID_SPIProperties = 9,
15370     DISPID_SPIElements = 10,
15371     DISPID_SPIReplacements = 11,
15372     DISPID_SPIEngineId = 12,
15373     DISPID_SPIEnginePrivateData = 13,
15374     DISPID_SPISaveToMemory = 14,
15375     DISPID_SPIGetText = 15,
15376     DISPID_SPIGetDisplayAttributes = 16
15377 } DISPID_SpeechPhraseInfo;
15378 typedef enum DISPID_SpeechPhraseElement {
15379     DISPID_SPEAudioTimeOffset = 1,
15380     DISPID_SPEAudioSizeTime = 2,
15381     DISPID_SPEAudioStreamOffset = 3,
15382     DISPID_SPEAudioSizeBytes = 4,
15383     DISPID_SPERetainedStreamOffset = 5,
15384     DISPID_SPERetainedSizeBytes = 6,
15385     DISPID_SPEDisplayText = 7,
15386     DISPID_SPELexicalForm = 8,
15387     DISPID_SPEPronunciation = 9,
15388     DISPID_SPEDisplayAttributes = 10,
15389     DISPID_SPERequiredConfidence = 11,
15390     DISPID_SPEActualConfidence = 12,
15391     DISPID_SPEEngineConfidence = 13
15392 } DISPID_SpeechPhraseElement;
15393 typedef enum SpeechEngineConfidence {
15394     SECLowConfidence = -1,
15395     SECNormalConfidence = 0,
15396     SECHighConfidence = 1
15397 } SpeechEngineConfidence;
15398 typedef enum DISPID_SpeechPhraseElements {
15399     DISPID_SPEsCount = 1,
15400     DISPID_SPEsItem = DISPID_VALUE,
15401     DISPID_SPEs_NewEnum = DISPID_NEWENUM
15402 } DISPID_SpeechPhraseElements;
15403 typedef enum DISPID_SpeechPhraseReplacement {
15404     DISPID_SPRDisplayAttributes = 1,
15405     DISPID_SPRText = 2,
15406     DISPID_SPRFirstElement = 3,
15407     DISPID_SPRNumberOfElements = 4
15408 } DISPID_SpeechPhraseReplacement;
15409 typedef enum DISPID_SpeechPhraseReplacements {
15410     DISPID_SPRsCount = 1,
15411     DISPID_SPRsItem = DISPID_VALUE,
15412     DISPID_SPRs_NewEnum = DISPID_NEWENUM
15413 } DISPID_SpeechPhraseReplacements;
15414 typedef enum DISPID_SpeechPhraseProperty {
15415     DISPID_SPPName = 1,
15416     DISPID_SPPId = 2,
15417     DISPID_SPPValue = 3,
15418     DISPID_SPPFirstElement = 4,
15419     DISPID_SPPNumberOfElements = 5,
15420     DISPID_SPPEngineConfidence = 6,
15421     DISPID_SPPConfidence = 7,
15422     DISPID_SPPParent = 8,
15423     DISPID_SPPChildren = 9
15424 } DISPID_SpeechPhraseProperty;
15425 typedef enum DISPID_SpeechPhraseProperties {
15426     DISPID_SPPsCount = 1,
15427     DISPID_SPPsItem = DISPID_VALUE,
15428     DISPID_SPPs_NewEnum = DISPID_NEWENUM
15429 } DISPID_SpeechPhraseProperties;
15430 typedef enum DISPID_SpeechPhraseRule {
15431     DISPID_SPRuleName = 1,
15432     DISPID_SPRuleId = 2,
15433     DISPID_SPRuleFirstElement = 3,
15434     DISPID_SPRuleNumberOfElements = 4,
15435     DISPID_SPRuleParent = 5,
15436     DISPID_SPRuleChildren = 6,
15437     DISPID_SPRuleConfidence = 7,
15438     DISPID_SPRuleEngineConfidence = 8
15439 } DISPID_SpeechPhraseRule;
15440 typedef enum DISPID_SpeechPhraseRules {
15441     DISPID_SPRulesCount = 1,
15442     DISPID_SPRulesItem = DISPID_VALUE,
15443     DISPID_SPRules_NewEnum = DISPID_NEWENUM
15444 } DISPID_SpeechPhraseRules;
15445 typedef enum DISPID_SpeechLexicon {
15446     DISPID_SLGenerationId = 1,
15447     DISPID_SLGetWords = 2,
15448     DISPID_SLAddPronunciation = 3,
15449     DISPID_SLAddPronunciationByPhoneIds = 4,
15450     DISPID_SLRemovePronunciation = 5,
15451     DISPID_SLRemovePronunciationByPhoneIds = 6,
15452     DISPID_SLGetPronunciations = 7,
15453     DISPID_SLGetGenerationChange = 8
15454 } DISPID_SpeechLexicon;
15455 typedef enum SpeechLexiconType {
15456     SLTUser = eLEXTYPE_USER,
15457     SLTApp = eLEXTYPE_APP
15458 } SpeechLexiconType;
15459 typedef enum SpeechPartOfSpeech {
15460     SPSNotOverriden = SPPS_NotOverriden,
15461     SPSUnknown = SPPS_Unknown,
15462     SPSNoun = SPPS_Noun,
15463     SPSVerb = SPPS_Verb,
15464     SPSModifier = SPPS_Modifier,
15465     SPSFunction = SPPS_Function,
15466     SPSInterjection = SPPS_Interjection,
15467     SPSLMA = SPPS_LMA,
15468     SPSSuppressWord = SPPS_SuppressWord
15469 } SpeechPartOfSpeech;
15470 typedef enum DISPID_SpeechLexiconWords {
15471     DISPID_SLWsCount = 1,
15472     DISPID_SLWsItem = DISPID_VALUE,
15473     DISPID_SLWs_NewEnum = DISPID_NEWENUM
15474 } DISPID_SpeechLexiconWords;
15475 typedef enum SpeechWordType {
15476     SWTAdded = eWORDTYPE_ADDED,
15477     SWTDeleted = eWORDTYPE_DELETED
15478 } SpeechWordType;
15479 typedef enum DISPID_SpeechLexiconWord {
15480     DISPID_SLWLangId = 1,
15481     DISPID_SLWType = 2,
15482     DISPID_SLWWord = 3,
15483     DISPID_SLWPronunciations = 4
15484 } DISPID_SpeechLexiconWord;
15485 typedef enum DISPID_SpeechLexiconProns {
15486     DISPID_SLPsCount = 1,
15487     DISPID_SLPsItem = DISPID_VALUE,
15488     DISPID_SLPs_NewEnum = DISPID_NEWENUM
15489 } DISPID_SpeechLexiconProns;
15490 typedef enum DISPID_SpeechLexiconPronunciation {
15491     DISPID_SLPType = 1,
15492     DISPID_SLPLangId = 2,
15493     DISPID_SLPPartOfSpeech = 3,
15494     DISPID_SLPPhoneIds = 4,
15495     DISPID_SLPSymbolic = 5
15496 } DISPID_SpeechLexiconPronunciation;
15497 typedef enum DISPID_SpeechPhoneConverter {
15498     DISPID_SPCLangId = 1,
15499     DISPID_SPCPhoneToId = 2,
15500     DISPID_SPCIdToPhone = 3
15501 } DISPID_SpeechPhoneConverter;
15502 /*****************************************************************************
15503  * _ISpeechVoiceEvents dispinterface
15504  */
15505 #ifndef ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__
15506 #define ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__
15507 
15508 DEFINE_GUID(DIID__ISpeechVoiceEvents, 0xa372acd1, 0x3bef, 0x4bbd, 0x8f,0xfb, 0xcb,0x3e,0x2b,0x41,0x6a,0xf8);
15509 #if defined(__cplusplus) && !defined(CINTERFACE)
15510 MIDL_INTERFACE("a372acd1-3bef-4bbd-8ffb-cb3e2b416af8")
15511 _ISpeechVoiceEvents : public IDispatch
15512 {
15513 };
15514 #ifdef __CRT_UUID_DECL
15515 __CRT_UUID_DECL(_ISpeechVoiceEvents, 0xa372acd1, 0x3bef, 0x4bbd, 0x8f,0xfb, 0xcb,0x3e,0x2b,0x41,0x6a,0xf8)
15516 #endif
15517 #else
15518 typedef struct _ISpeechVoiceEventsVtbl {
15519     BEGIN_INTERFACE
15520 
15521     /*** IUnknown methods ***/
15522     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15523         _ISpeechVoiceEvents *This,
15524         REFIID riid,
15525         void **ppvObject);
15526 
15527     ULONG (STDMETHODCALLTYPE *AddRef)(
15528         _ISpeechVoiceEvents *This);
15529 
15530     ULONG (STDMETHODCALLTYPE *Release)(
15531         _ISpeechVoiceEvents *This);
15532 
15533     /*** IDispatch methods ***/
15534     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15535         _ISpeechVoiceEvents *This,
15536         UINT *pctinfo);
15537 
15538     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15539         _ISpeechVoiceEvents *This,
15540         UINT iTInfo,
15541         LCID lcid,
15542         ITypeInfo **ppTInfo);
15543 
15544     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15545         _ISpeechVoiceEvents *This,
15546         REFIID riid,
15547         LPOLESTR *rgszNames,
15548         UINT cNames,
15549         LCID lcid,
15550         DISPID *rgDispId);
15551 
15552     HRESULT (STDMETHODCALLTYPE *Invoke)(
15553         _ISpeechVoiceEvents *This,
15554         DISPID dispIdMember,
15555         REFIID riid,
15556         LCID lcid,
15557         WORD wFlags,
15558         DISPPARAMS *pDispParams,
15559         VARIANT *pVarResult,
15560         EXCEPINFO *pExcepInfo,
15561         UINT *puArgErr);
15562 
15563     END_INTERFACE
15564 } _ISpeechVoiceEventsVtbl;
15565 
15566 interface _ISpeechVoiceEvents {
15567     CONST_VTBL _ISpeechVoiceEventsVtbl* lpVtbl;
15568 };
15569 
15570 #ifdef COBJMACROS
15571 #ifndef WIDL_C_INLINE_WRAPPERS
15572 /*** IUnknown methods ***/
15573 #define _ISpeechVoiceEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15574 #define _ISpeechVoiceEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
15575 #define _ISpeechVoiceEvents_Release(This) (This)->lpVtbl->Release(This)
15576 /*** IDispatch methods ***/
15577 #define _ISpeechVoiceEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
15578 #define _ISpeechVoiceEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
15579 #define _ISpeechVoiceEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
15580 #define _ISpeechVoiceEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
15581 #else
15582 /*** IUnknown methods ***/
15583 static FORCEINLINE HRESULT _ISpeechVoiceEvents_QueryInterface(_ISpeechVoiceEvents* This,REFIID riid,void **ppvObject) {
15584     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15585 }
15586 static FORCEINLINE ULONG _ISpeechVoiceEvents_AddRef(_ISpeechVoiceEvents* This) {
15587     return This->lpVtbl->AddRef(This);
15588 }
15589 static FORCEINLINE ULONG _ISpeechVoiceEvents_Release(_ISpeechVoiceEvents* This) {
15590     return This->lpVtbl->Release(This);
15591 }
15592 /*** IDispatch methods ***/
15593 static FORCEINLINE HRESULT _ISpeechVoiceEvents_GetTypeInfoCount(_ISpeechVoiceEvents* This,UINT *pctinfo) {
15594     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
15595 }
15596 static FORCEINLINE HRESULT _ISpeechVoiceEvents_GetTypeInfo(_ISpeechVoiceEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
15597     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
15598 }
15599 static FORCEINLINE HRESULT _ISpeechVoiceEvents_GetIDsOfNames(_ISpeechVoiceEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
15600     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
15601 }
15602 static FORCEINLINE HRESULT _ISpeechVoiceEvents_Invoke(_ISpeechVoiceEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
15603     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
15604 }
15605 #endif
15606 #endif
15607 
15608 #endif
15609 
15610 #endif  /* ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__ */
15611 
15612 /*****************************************************************************
15613  * ISpeechRecognizer interface
15614  */
15615 #ifndef __ISpeechRecognizer_INTERFACE_DEFINED__
15616 #define __ISpeechRecognizer_INTERFACE_DEFINED__
15617 
15618 DEFINE_GUID(IID_ISpeechRecognizer, 0x2d5f1c0c, 0xbd75, 0x4b08, 0x94,0x78, 0x3b,0x11,0xfe,0xa2,0x58,0x6c);
15619 #if defined(__cplusplus) && !defined(CINTERFACE)
15620 MIDL_INTERFACE("2d5f1c0c-bd75-4b08-9478-3b11fea2586c")
15621 ISpeechRecognizer : public IDispatch
15622 {
15623     virtual HRESULT STDMETHODCALLTYPE putref_Recognizer(
15624         ISpeechObjectToken *Recognizer) = 0;
15625 
15626     virtual HRESULT STDMETHODCALLTYPE get_Recognizer(
15627         ISpeechObjectToken **Recognizer) = 0;
15628 
15629     virtual HRESULT STDMETHODCALLTYPE put_AllowAudioInputFormatChangesOnNextSet(
15630         VARIANT_BOOL Allow) = 0;
15631 
15632     virtual HRESULT STDMETHODCALLTYPE get_AllowAudioInputFormatChangesOnNextSet(
15633         VARIANT_BOOL *Allow) = 0;
15634 
15635     virtual HRESULT STDMETHODCALLTYPE putref_AudioInput(
15636         ISpeechObjectToken *AudioInput = 0) = 0;
15637 
15638     virtual HRESULT STDMETHODCALLTYPE get_AudioInput(
15639         ISpeechObjectToken **AudioInput) = 0;
15640 
15641     virtual HRESULT STDMETHODCALLTYPE putref_AudioInputStream(
15642         ISpeechBaseStream *AudioInputStream = 0) = 0;
15643 
15644     virtual HRESULT STDMETHODCALLTYPE get_AudioInputStream(
15645         ISpeechBaseStream **AudioInputStream) = 0;
15646 
15647     virtual HRESULT STDMETHODCALLTYPE get_IsShared(
15648         VARIANT_BOOL *Shared) = 0;
15649 
15650     virtual HRESULT STDMETHODCALLTYPE put_State(
15651         SpeechRecognizerState State) = 0;
15652 
15653     virtual HRESULT STDMETHODCALLTYPE get_State(
15654         SpeechRecognizerState *State) = 0;
15655 
15656     virtual HRESULT STDMETHODCALLTYPE get_Status(
15657         ISpeechRecognizerStatus **Status) = 0;
15658 
15659     virtual HRESULT STDMETHODCALLTYPE putref_Profile(
15660         ISpeechObjectToken *Profile = 0) = 0;
15661 
15662     virtual HRESULT STDMETHODCALLTYPE get_Profile(
15663         ISpeechObjectToken **Profile) = 0;
15664 
15665     virtual HRESULT STDMETHODCALLTYPE EmulateRecognition(
15666         VARIANT TextElements,
15667         VARIANT *ElementDisplayAttributes = 0,
15668         LONG LanguageId = 0) = 0;
15669 
15670     virtual HRESULT STDMETHODCALLTYPE CreateRecoContext(
15671         ISpeechRecoContext **NewContext) = 0;
15672 
15673     virtual HRESULT STDMETHODCALLTYPE GetFormat(
15674         SpeechFormatType Type,
15675         ISpeechAudioFormat **Format) = 0;
15676 
15677     virtual HRESULT STDMETHODCALLTYPE SetPropertyNumber(
15678         const BSTR Name,
15679         LONG Value,
15680         VARIANT_BOOL *Supported) = 0;
15681 
15682     virtual HRESULT STDMETHODCALLTYPE GetPropertyNumber(
15683         const BSTR Name,
15684         LONG *Value,
15685         VARIANT_BOOL *Supported) = 0;
15686 
15687     virtual HRESULT STDMETHODCALLTYPE SetPropertyString(
15688         const BSTR Name,
15689         const BSTR Value,
15690         VARIANT_BOOL *Supported) = 0;
15691 
15692     virtual HRESULT STDMETHODCALLTYPE GetPropertyString(
15693         const BSTR Name,
15694         BSTR *Value,
15695         VARIANT_BOOL *Supported) = 0;
15696 
15697     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
15698         const BSTR TypeOfUI,
15699         const VARIANT *ExtraData,
15700         VARIANT_BOOL *Supported) = 0;
15701 
15702     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
15703         LONG hWndParent,
15704         BSTR Title,
15705         const BSTR TypeOfUI,
15706         const VARIANT *ExtraData = 0) = 0;
15707 
15708     virtual HRESULT STDMETHODCALLTYPE GetRecognizers(
15709         BSTR RequiredAttributes,
15710         BSTR OptionalAttributes,
15711         ISpeechObjectTokens **ObjectTokens) = 0;
15712 
15713     virtual HRESULT STDMETHODCALLTYPE GetAudioInputs(
15714         BSTR RequiredAttributes,
15715         BSTR OptionalAttributes,
15716         ISpeechObjectTokens **ObjectTokens) = 0;
15717 
15718     virtual HRESULT STDMETHODCALLTYPE GetProfiles(
15719         BSTR RequiredAttributes,
15720         BSTR OptionalAttributes,
15721         ISpeechObjectTokens **ObjectTokens) = 0;
15722 
15723 };
15724 #ifdef __CRT_UUID_DECL
15725 __CRT_UUID_DECL(ISpeechRecognizer, 0x2d5f1c0c, 0xbd75, 0x4b08, 0x94,0x78, 0x3b,0x11,0xfe,0xa2,0x58,0x6c)
15726 #endif
15727 #else
15728 typedef struct ISpeechRecognizerVtbl {
15729     BEGIN_INTERFACE
15730 
15731     /*** IUnknown methods ***/
15732     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15733         ISpeechRecognizer *This,
15734         REFIID riid,
15735         void **ppvObject);
15736 
15737     ULONG (STDMETHODCALLTYPE *AddRef)(
15738         ISpeechRecognizer *This);
15739 
15740     ULONG (STDMETHODCALLTYPE *Release)(
15741         ISpeechRecognizer *This);
15742 
15743     /*** IDispatch methods ***/
15744     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15745         ISpeechRecognizer *This,
15746         UINT *pctinfo);
15747 
15748     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15749         ISpeechRecognizer *This,
15750         UINT iTInfo,
15751         LCID lcid,
15752         ITypeInfo **ppTInfo);
15753 
15754     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15755         ISpeechRecognizer *This,
15756         REFIID riid,
15757         LPOLESTR *rgszNames,
15758         UINT cNames,
15759         LCID lcid,
15760         DISPID *rgDispId);
15761 
15762     HRESULT (STDMETHODCALLTYPE *Invoke)(
15763         ISpeechRecognizer *This,
15764         DISPID dispIdMember,
15765         REFIID riid,
15766         LCID lcid,
15767         WORD wFlags,
15768         DISPPARAMS *pDispParams,
15769         VARIANT *pVarResult,
15770         EXCEPINFO *pExcepInfo,
15771         UINT *puArgErr);
15772 
15773     /*** ISpeechRecognizer methods ***/
15774     HRESULT (STDMETHODCALLTYPE *putref_Recognizer)(
15775         ISpeechRecognizer *This,
15776         ISpeechObjectToken *Recognizer);
15777 
15778     HRESULT (STDMETHODCALLTYPE *get_Recognizer)(
15779         ISpeechRecognizer *This,
15780         ISpeechObjectToken **Recognizer);
15781 
15782     HRESULT (STDMETHODCALLTYPE *put_AllowAudioInputFormatChangesOnNextSet)(
15783         ISpeechRecognizer *This,
15784         VARIANT_BOOL Allow);
15785 
15786     HRESULT (STDMETHODCALLTYPE *get_AllowAudioInputFormatChangesOnNextSet)(
15787         ISpeechRecognizer *This,
15788         VARIANT_BOOL *Allow);
15789 
15790     HRESULT (STDMETHODCALLTYPE *putref_AudioInput)(
15791         ISpeechRecognizer *This,
15792         ISpeechObjectToken *AudioInput);
15793 
15794     HRESULT (STDMETHODCALLTYPE *get_AudioInput)(
15795         ISpeechRecognizer *This,
15796         ISpeechObjectToken **AudioInput);
15797 
15798     HRESULT (STDMETHODCALLTYPE *putref_AudioInputStream)(
15799         ISpeechRecognizer *This,
15800         ISpeechBaseStream *AudioInputStream);
15801 
15802     HRESULT (STDMETHODCALLTYPE *get_AudioInputStream)(
15803         ISpeechRecognizer *This,
15804         ISpeechBaseStream **AudioInputStream);
15805 
15806     HRESULT (STDMETHODCALLTYPE *get_IsShared)(
15807         ISpeechRecognizer *This,
15808         VARIANT_BOOL *Shared);
15809 
15810     HRESULT (STDMETHODCALLTYPE *put_State)(
15811         ISpeechRecognizer *This,
15812         SpeechRecognizerState State);
15813 
15814     HRESULT (STDMETHODCALLTYPE *get_State)(
15815         ISpeechRecognizer *This,
15816         SpeechRecognizerState *State);
15817 
15818     HRESULT (STDMETHODCALLTYPE *get_Status)(
15819         ISpeechRecognizer *This,
15820         ISpeechRecognizerStatus **Status);
15821 
15822     HRESULT (STDMETHODCALLTYPE *putref_Profile)(
15823         ISpeechRecognizer *This,
15824         ISpeechObjectToken *Profile);
15825 
15826     HRESULT (STDMETHODCALLTYPE *get_Profile)(
15827         ISpeechRecognizer *This,
15828         ISpeechObjectToken **Profile);
15829 
15830     HRESULT (STDMETHODCALLTYPE *EmulateRecognition)(
15831         ISpeechRecognizer *This,
15832         VARIANT TextElements,
15833         VARIANT *ElementDisplayAttributes,
15834         LONG LanguageId);
15835 
15836     HRESULT (STDMETHODCALLTYPE *CreateRecoContext)(
15837         ISpeechRecognizer *This,
15838         ISpeechRecoContext **NewContext);
15839 
15840     HRESULT (STDMETHODCALLTYPE *GetFormat)(
15841         ISpeechRecognizer *This,
15842         SpeechFormatType Type,
15843         ISpeechAudioFormat **Format);
15844 
15845     HRESULT (STDMETHODCALLTYPE *SetPropertyNumber)(
15846         ISpeechRecognizer *This,
15847         const BSTR Name,
15848         LONG Value,
15849         VARIANT_BOOL *Supported);
15850 
15851     HRESULT (STDMETHODCALLTYPE *GetPropertyNumber)(
15852         ISpeechRecognizer *This,
15853         const BSTR Name,
15854         LONG *Value,
15855         VARIANT_BOOL *Supported);
15856 
15857     HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
15858         ISpeechRecognizer *This,
15859         const BSTR Name,
15860         const BSTR Value,
15861         VARIANT_BOOL *Supported);
15862 
15863     HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
15864         ISpeechRecognizer *This,
15865         const BSTR Name,
15866         BSTR *Value,
15867         VARIANT_BOOL *Supported);
15868 
15869     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
15870         ISpeechRecognizer *This,
15871         const BSTR TypeOfUI,
15872         const VARIANT *ExtraData,
15873         VARIANT_BOOL *Supported);
15874 
15875     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
15876         ISpeechRecognizer *This,
15877         LONG hWndParent,
15878         BSTR Title,
15879         const BSTR TypeOfUI,
15880         const VARIANT *ExtraData);
15881 
15882     HRESULT (STDMETHODCALLTYPE *GetRecognizers)(
15883         ISpeechRecognizer *This,
15884         BSTR RequiredAttributes,
15885         BSTR OptionalAttributes,
15886         ISpeechObjectTokens **ObjectTokens);
15887 
15888     HRESULT (STDMETHODCALLTYPE *GetAudioInputs)(
15889         ISpeechRecognizer *This,
15890         BSTR RequiredAttributes,
15891         BSTR OptionalAttributes,
15892         ISpeechObjectTokens **ObjectTokens);
15893 
15894     HRESULT (STDMETHODCALLTYPE *GetProfiles)(
15895         ISpeechRecognizer *This,
15896         BSTR RequiredAttributes,
15897         BSTR OptionalAttributes,
15898         ISpeechObjectTokens **ObjectTokens);
15899 
15900     END_INTERFACE
15901 } ISpeechRecognizerVtbl;
15902 
15903 interface ISpeechRecognizer {
15904     CONST_VTBL ISpeechRecognizerVtbl* lpVtbl;
15905 };
15906 
15907 #ifdef COBJMACROS
15908 #ifndef WIDL_C_INLINE_WRAPPERS
15909 /*** IUnknown methods ***/
15910 #define ISpeechRecognizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15911 #define ISpeechRecognizer_AddRef(This) (This)->lpVtbl->AddRef(This)
15912 #define ISpeechRecognizer_Release(This) (This)->lpVtbl->Release(This)
15913 /*** IDispatch methods ***/
15914 #define ISpeechRecognizer_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
15915 #define ISpeechRecognizer_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
15916 #define ISpeechRecognizer_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
15917 #define ISpeechRecognizer_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
15918 /*** ISpeechRecognizer methods ***/
15919 #define ISpeechRecognizer_putref_Recognizer(This,Recognizer) (This)->lpVtbl->putref_Recognizer(This,Recognizer)
15920 #define ISpeechRecognizer_get_Recognizer(This,Recognizer) (This)->lpVtbl->get_Recognizer(This,Recognizer)
15921 #define ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->put_AllowAudioInputFormatChangesOnNextSet(This,Allow)
15922 #define ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->get_AllowAudioInputFormatChangesOnNextSet(This,Allow)
15923 #define ISpeechRecognizer_putref_AudioInput(This,AudioInput) (This)->lpVtbl->putref_AudioInput(This,AudioInput)
15924 #define ISpeechRecognizer_get_AudioInput(This,AudioInput) (This)->lpVtbl->get_AudioInput(This,AudioInput)
15925 #define ISpeechRecognizer_putref_AudioInputStream(This,AudioInputStream) (This)->lpVtbl->putref_AudioInputStream(This,AudioInputStream)
15926 #define ISpeechRecognizer_get_AudioInputStream(This,AudioInputStream) (This)->lpVtbl->get_AudioInputStream(This,AudioInputStream)
15927 #define ISpeechRecognizer_get_IsShared(This,Shared) (This)->lpVtbl->get_IsShared(This,Shared)
15928 #define ISpeechRecognizer_put_State(This,State) (This)->lpVtbl->put_State(This,State)
15929 #define ISpeechRecognizer_get_State(This,State) (This)->lpVtbl->get_State(This,State)
15930 #define ISpeechRecognizer_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
15931 #define ISpeechRecognizer_putref_Profile(This,Profile) (This)->lpVtbl->putref_Profile(This,Profile)
15932 #define ISpeechRecognizer_get_Profile(This,Profile) (This)->lpVtbl->get_Profile(This,Profile)
15933 #define ISpeechRecognizer_EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId) (This)->lpVtbl->EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId)
15934 #define ISpeechRecognizer_CreateRecoContext(This,NewContext) (This)->lpVtbl->CreateRecoContext(This,NewContext)
15935 #define ISpeechRecognizer_GetFormat(This,Type,Format) (This)->lpVtbl->GetFormat(This,Type,Format)
15936 #define ISpeechRecognizer_SetPropertyNumber(This,Name,Value,Supported) (This)->lpVtbl->SetPropertyNumber(This,Name,Value,Supported)
15937 #define ISpeechRecognizer_GetPropertyNumber(This,Name,Value,Supported) (This)->lpVtbl->GetPropertyNumber(This,Name,Value,Supported)
15938 #define ISpeechRecognizer_SetPropertyString(This,Name,Value,Supported) (This)->lpVtbl->SetPropertyString(This,Name,Value,Supported)
15939 #define ISpeechRecognizer_GetPropertyString(This,Name,Value,Supported) (This)->lpVtbl->GetPropertyString(This,Name,Value,Supported)
15940 #define ISpeechRecognizer_IsUISupported(This,TypeOfUI,ExtraData,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported)
15941 #define ISpeechRecognizer_DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData) (This)->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData)
15942 #define ISpeechRecognizer_GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
15943 #define ISpeechRecognizer_GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
15944 #define ISpeechRecognizer_GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
15945 #else
15946 /*** IUnknown methods ***/
15947 static FORCEINLINE HRESULT ISpeechRecognizer_QueryInterface(ISpeechRecognizer* This,REFIID riid,void **ppvObject) {
15948     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15949 }
15950 static FORCEINLINE ULONG ISpeechRecognizer_AddRef(ISpeechRecognizer* This) {
15951     return This->lpVtbl->AddRef(This);
15952 }
15953 static FORCEINLINE ULONG ISpeechRecognizer_Release(ISpeechRecognizer* This) {
15954     return This->lpVtbl->Release(This);
15955 }
15956 /*** IDispatch methods ***/
15957 static FORCEINLINE HRESULT ISpeechRecognizer_GetTypeInfoCount(ISpeechRecognizer* This,UINT *pctinfo) {
15958     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
15959 }
15960 static FORCEINLINE HRESULT ISpeechRecognizer_GetTypeInfo(ISpeechRecognizer* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
15961     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
15962 }
15963 static FORCEINLINE HRESULT ISpeechRecognizer_GetIDsOfNames(ISpeechRecognizer* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
15964     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
15965 }
15966 static FORCEINLINE HRESULT ISpeechRecognizer_Invoke(ISpeechRecognizer* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
15967     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
15968 }
15969 /*** ISpeechRecognizer methods ***/
15970 static FORCEINLINE HRESULT ISpeechRecognizer_putref_Recognizer(ISpeechRecognizer* This,ISpeechObjectToken *Recognizer) {
15971     return This->lpVtbl->putref_Recognizer(This,Recognizer);
15972 }
15973 static FORCEINLINE HRESULT ISpeechRecognizer_get_Recognizer(ISpeechRecognizer* This,ISpeechObjectToken **Recognizer) {
15974     return This->lpVtbl->get_Recognizer(This,Recognizer);
15975 }
15976 static FORCEINLINE HRESULT ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet(ISpeechRecognizer* This,VARIANT_BOOL Allow) {
15977     return This->lpVtbl->put_AllowAudioInputFormatChangesOnNextSet(This,Allow);
15978 }
15979 static FORCEINLINE HRESULT ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet(ISpeechRecognizer* This,VARIANT_BOOL *Allow) {
15980     return This->lpVtbl->get_AllowAudioInputFormatChangesOnNextSet(This,Allow);
15981 }
15982 static FORCEINLINE HRESULT ISpeechRecognizer_putref_AudioInput(ISpeechRecognizer* This,ISpeechObjectToken *AudioInput) {
15983     return This->lpVtbl->putref_AudioInput(This,AudioInput);
15984 }
15985 static FORCEINLINE HRESULT ISpeechRecognizer_get_AudioInput(ISpeechRecognizer* This,ISpeechObjectToken **AudioInput) {
15986     return This->lpVtbl->get_AudioInput(This,AudioInput);
15987 }
15988 static FORCEINLINE HRESULT ISpeechRecognizer_putref_AudioInputStream(ISpeechRecognizer* This,ISpeechBaseStream *AudioInputStream) {
15989     return This->lpVtbl->putref_AudioInputStream(This,AudioInputStream);
15990 }
15991 static FORCEINLINE HRESULT ISpeechRecognizer_get_AudioInputStream(ISpeechRecognizer* This,ISpeechBaseStream **AudioInputStream) {
15992     return This->lpVtbl->get_AudioInputStream(This,AudioInputStream);
15993 }
15994 static FORCEINLINE HRESULT ISpeechRecognizer_get_IsShared(ISpeechRecognizer* This,VARIANT_BOOL *Shared) {
15995     return This->lpVtbl->get_IsShared(This,Shared);
15996 }
15997 static FORCEINLINE HRESULT ISpeechRecognizer_put_State(ISpeechRecognizer* This,SpeechRecognizerState State) {
15998     return This->lpVtbl->put_State(This,State);
15999 }
16000 static FORCEINLINE HRESULT ISpeechRecognizer_get_State(ISpeechRecognizer* This,SpeechRecognizerState *State) {
16001     return This->lpVtbl->get_State(This,State);
16002 }
16003 static FORCEINLINE HRESULT ISpeechRecognizer_get_Status(ISpeechRecognizer* This,ISpeechRecognizerStatus **Status) {
16004     return This->lpVtbl->get_Status(This,Status);
16005 }
16006 static FORCEINLINE HRESULT ISpeechRecognizer_putref_Profile(ISpeechRecognizer* This,ISpeechObjectToken *Profile) {
16007     return This->lpVtbl->putref_Profile(This,Profile);
16008 }
16009 static FORCEINLINE HRESULT ISpeechRecognizer_get_Profile(ISpeechRecognizer* This,ISpeechObjectToken **Profile) {
16010     return This->lpVtbl->get_Profile(This,Profile);
16011 }
16012 static FORCEINLINE HRESULT ISpeechRecognizer_EmulateRecognition(ISpeechRecognizer* This,VARIANT TextElements,VARIANT *ElementDisplayAttributes,LONG LanguageId) {
16013     return This->lpVtbl->EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId);
16014 }
16015 static FORCEINLINE HRESULT ISpeechRecognizer_CreateRecoContext(ISpeechRecognizer* This,ISpeechRecoContext **NewContext) {
16016     return This->lpVtbl->CreateRecoContext(This,NewContext);
16017 }
16018 static FORCEINLINE HRESULT ISpeechRecognizer_GetFormat(ISpeechRecognizer* This,SpeechFormatType Type,ISpeechAudioFormat **Format) {
16019     return This->lpVtbl->GetFormat(This,Type,Format);
16020 }
16021 static FORCEINLINE HRESULT ISpeechRecognizer_SetPropertyNumber(ISpeechRecognizer* This,const BSTR Name,LONG Value,VARIANT_BOOL *Supported) {
16022     return This->lpVtbl->SetPropertyNumber(This,Name,Value,Supported);
16023 }
16024 static FORCEINLINE HRESULT ISpeechRecognizer_GetPropertyNumber(ISpeechRecognizer* This,const BSTR Name,LONG *Value,VARIANT_BOOL *Supported) {
16025     return This->lpVtbl->GetPropertyNumber(This,Name,Value,Supported);
16026 }
16027 static FORCEINLINE HRESULT ISpeechRecognizer_SetPropertyString(ISpeechRecognizer* This,const BSTR Name,const BSTR Value,VARIANT_BOOL *Supported) {
16028     return This->lpVtbl->SetPropertyString(This,Name,Value,Supported);
16029 }
16030 static FORCEINLINE HRESULT ISpeechRecognizer_GetPropertyString(ISpeechRecognizer* This,const BSTR Name,BSTR *Value,VARIANT_BOOL *Supported) {
16031     return This->lpVtbl->GetPropertyString(This,Name,Value,Supported);
16032 }
16033 static FORCEINLINE HRESULT ISpeechRecognizer_IsUISupported(ISpeechRecognizer* This,const BSTR TypeOfUI,const VARIANT *ExtraData,VARIANT_BOOL *Supported) {
16034     return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported);
16035 }
16036 static FORCEINLINE HRESULT ISpeechRecognizer_DisplayUI(ISpeechRecognizer* This,LONG hWndParent,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData) {
16037     return This->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData);
16038 }
16039 static FORCEINLINE HRESULT ISpeechRecognizer_GetRecognizers(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
16040     return This->lpVtbl->GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
16041 }
16042 static FORCEINLINE HRESULT ISpeechRecognizer_GetAudioInputs(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
16043     return This->lpVtbl->GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
16044 }
16045 static FORCEINLINE HRESULT ISpeechRecognizer_GetProfiles(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
16046     return This->lpVtbl->GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
16047 }
16048 #endif
16049 #endif
16050 
16051 #endif
16052 
16053 
16054 #endif  /* __ISpeechRecognizer_INTERFACE_DEFINED__ */
16055 
16056 /*****************************************************************************
16057  * ISpeechRecognizerStatus interface
16058  */
16059 #ifndef __ISpeechRecognizerStatus_INTERFACE_DEFINED__
16060 #define __ISpeechRecognizerStatus_INTERFACE_DEFINED__
16061 
16062 DEFINE_GUID(IID_ISpeechRecognizerStatus, 0xbff9e781, 0x53ec, 0x484e, 0xbb,0x8a, 0x0e,0x1b,0x55,0x51,0xe3,0x5c);
16063 #if defined(__cplusplus) && !defined(CINTERFACE)
16064 MIDL_INTERFACE("bff9e781-53ec-484e-bb8a-0e1b5551e35c")
16065 ISpeechRecognizerStatus : public IDispatch
16066 {
16067     virtual HRESULT STDMETHODCALLTYPE get_AudioStatus(
16068         ISpeechAudioStatus **AudioStatus) = 0;
16069 
16070     virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamPosition(
16071         VARIANT *pCurrentStreamPos) = 0;
16072 
16073     virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamNumber(
16074         LONG *StreamNumber) = 0;
16075 
16076     virtual HRESULT STDMETHODCALLTYPE get_NumberOfActiveRules(
16077         LONG *NumberOfActiveRules) = 0;
16078 
16079     virtual HRESULT STDMETHODCALLTYPE get_ClsidEngine(
16080         BSTR *ClsidEngine) = 0;
16081 
16082     virtual HRESULT STDMETHODCALLTYPE get_SupportedLanguages(
16083         VARIANT *SupportedLanguages) = 0;
16084 
16085 };
16086 #ifdef __CRT_UUID_DECL
16087 __CRT_UUID_DECL(ISpeechRecognizerStatus, 0xbff9e781, 0x53ec, 0x484e, 0xbb,0x8a, 0x0e,0x1b,0x55,0x51,0xe3,0x5c)
16088 #endif
16089 #else
16090 typedef struct ISpeechRecognizerStatusVtbl {
16091     BEGIN_INTERFACE
16092 
16093     /*** IUnknown methods ***/
16094     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16095         ISpeechRecognizerStatus *This,
16096         REFIID riid,
16097         void **ppvObject);
16098 
16099     ULONG (STDMETHODCALLTYPE *AddRef)(
16100         ISpeechRecognizerStatus *This);
16101 
16102     ULONG (STDMETHODCALLTYPE *Release)(
16103         ISpeechRecognizerStatus *This);
16104 
16105     /*** IDispatch methods ***/
16106     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16107         ISpeechRecognizerStatus *This,
16108         UINT *pctinfo);
16109 
16110     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16111         ISpeechRecognizerStatus *This,
16112         UINT iTInfo,
16113         LCID lcid,
16114         ITypeInfo **ppTInfo);
16115 
16116     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16117         ISpeechRecognizerStatus *This,
16118         REFIID riid,
16119         LPOLESTR *rgszNames,
16120         UINT cNames,
16121         LCID lcid,
16122         DISPID *rgDispId);
16123 
16124     HRESULT (STDMETHODCALLTYPE *Invoke)(
16125         ISpeechRecognizerStatus *This,
16126         DISPID dispIdMember,
16127         REFIID riid,
16128         LCID lcid,
16129         WORD wFlags,
16130         DISPPARAMS *pDispParams,
16131         VARIANT *pVarResult,
16132         EXCEPINFO *pExcepInfo,
16133         UINT *puArgErr);
16134 
16135     /*** ISpeechRecognizerStatus methods ***/
16136     HRESULT (STDMETHODCALLTYPE *get_AudioStatus)(
16137         ISpeechRecognizerStatus *This,
16138         ISpeechAudioStatus **AudioStatus);
16139 
16140     HRESULT (STDMETHODCALLTYPE *get_CurrentStreamPosition)(
16141         ISpeechRecognizerStatus *This,
16142         VARIANT *pCurrentStreamPos);
16143 
16144     HRESULT (STDMETHODCALLTYPE *get_CurrentStreamNumber)(
16145         ISpeechRecognizerStatus *This,
16146         LONG *StreamNumber);
16147 
16148     HRESULT (STDMETHODCALLTYPE *get_NumberOfActiveRules)(
16149         ISpeechRecognizerStatus *This,
16150         LONG *NumberOfActiveRules);
16151 
16152     HRESULT (STDMETHODCALLTYPE *get_ClsidEngine)(
16153         ISpeechRecognizerStatus *This,
16154         BSTR *ClsidEngine);
16155 
16156     HRESULT (STDMETHODCALLTYPE *get_SupportedLanguages)(
16157         ISpeechRecognizerStatus *This,
16158         VARIANT *SupportedLanguages);
16159 
16160     END_INTERFACE
16161 } ISpeechRecognizerStatusVtbl;
16162 
16163 interface ISpeechRecognizerStatus {
16164     CONST_VTBL ISpeechRecognizerStatusVtbl* lpVtbl;
16165 };
16166 
16167 #ifdef COBJMACROS
16168 #ifndef WIDL_C_INLINE_WRAPPERS
16169 /*** IUnknown methods ***/
16170 #define ISpeechRecognizerStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16171 #define ISpeechRecognizerStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
16172 #define ISpeechRecognizerStatus_Release(This) (This)->lpVtbl->Release(This)
16173 /*** IDispatch methods ***/
16174 #define ISpeechRecognizerStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16175 #define ISpeechRecognizerStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16176 #define ISpeechRecognizerStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16177 #define ISpeechRecognizerStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16178 /*** ISpeechRecognizerStatus methods ***/
16179 #define ISpeechRecognizerStatus_get_AudioStatus(This,AudioStatus) (This)->lpVtbl->get_AudioStatus(This,AudioStatus)
16180 #define ISpeechRecognizerStatus_get_CurrentStreamPosition(This,pCurrentStreamPos) (This)->lpVtbl->get_CurrentStreamPosition(This,pCurrentStreamPos)
16181 #define ISpeechRecognizerStatus_get_CurrentStreamNumber(This,StreamNumber) (This)->lpVtbl->get_CurrentStreamNumber(This,StreamNumber)
16182 #define ISpeechRecognizerStatus_get_NumberOfActiveRules(This,NumberOfActiveRules) (This)->lpVtbl->get_NumberOfActiveRules(This,NumberOfActiveRules)
16183 #define ISpeechRecognizerStatus_get_ClsidEngine(This,ClsidEngine) (This)->lpVtbl->get_ClsidEngine(This,ClsidEngine)
16184 #define ISpeechRecognizerStatus_get_SupportedLanguages(This,SupportedLanguages) (This)->lpVtbl->get_SupportedLanguages(This,SupportedLanguages)
16185 #else
16186 /*** IUnknown methods ***/
16187 static FORCEINLINE HRESULT ISpeechRecognizerStatus_QueryInterface(ISpeechRecognizerStatus* This,REFIID riid,void **ppvObject) {
16188     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16189 }
16190 static FORCEINLINE ULONG ISpeechRecognizerStatus_AddRef(ISpeechRecognizerStatus* This) {
16191     return This->lpVtbl->AddRef(This);
16192 }
16193 static FORCEINLINE ULONG ISpeechRecognizerStatus_Release(ISpeechRecognizerStatus* This) {
16194     return This->lpVtbl->Release(This);
16195 }
16196 /*** IDispatch methods ***/
16197 static FORCEINLINE HRESULT ISpeechRecognizerStatus_GetTypeInfoCount(ISpeechRecognizerStatus* This,UINT *pctinfo) {
16198     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16199 }
16200 static FORCEINLINE HRESULT ISpeechRecognizerStatus_GetTypeInfo(ISpeechRecognizerStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16201     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16202 }
16203 static FORCEINLINE HRESULT ISpeechRecognizerStatus_GetIDsOfNames(ISpeechRecognizerStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16204     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16205 }
16206 static FORCEINLINE HRESULT ISpeechRecognizerStatus_Invoke(ISpeechRecognizerStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16207     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16208 }
16209 /*** ISpeechRecognizerStatus methods ***/
16210 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_AudioStatus(ISpeechRecognizerStatus* This,ISpeechAudioStatus **AudioStatus) {
16211     return This->lpVtbl->get_AudioStatus(This,AudioStatus);
16212 }
16213 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_CurrentStreamPosition(ISpeechRecognizerStatus* This,VARIANT *pCurrentStreamPos) {
16214     return This->lpVtbl->get_CurrentStreamPosition(This,pCurrentStreamPos);
16215 }
16216 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_CurrentStreamNumber(ISpeechRecognizerStatus* This,LONG *StreamNumber) {
16217     return This->lpVtbl->get_CurrentStreamNumber(This,StreamNumber);
16218 }
16219 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_NumberOfActiveRules(ISpeechRecognizerStatus* This,LONG *NumberOfActiveRules) {
16220     return This->lpVtbl->get_NumberOfActiveRules(This,NumberOfActiveRules);
16221 }
16222 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_ClsidEngine(ISpeechRecognizerStatus* This,BSTR *ClsidEngine) {
16223     return This->lpVtbl->get_ClsidEngine(This,ClsidEngine);
16224 }
16225 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_SupportedLanguages(ISpeechRecognizerStatus* This,VARIANT *SupportedLanguages) {
16226     return This->lpVtbl->get_SupportedLanguages(This,SupportedLanguages);
16227 }
16228 #endif
16229 #endif
16230 
16231 #endif
16232 
16233 
16234 #endif  /* __ISpeechRecognizerStatus_INTERFACE_DEFINED__ */
16235 
16236 /*****************************************************************************
16237  * ISpeechRecoContext interface
16238  */
16239 #ifndef __ISpeechRecoContext_INTERFACE_DEFINED__
16240 #define __ISpeechRecoContext_INTERFACE_DEFINED__
16241 
16242 DEFINE_GUID(IID_ISpeechRecoContext, 0x580aa49d, 0x7e1e, 0x4809, 0xb8,0xe2, 0x57,0xda,0x80,0x61,0x04,0xb8);
16243 #if defined(__cplusplus) && !defined(CINTERFACE)
16244 MIDL_INTERFACE("580aa49d-7e1e-4809-b8e2-57da806104b8")
16245 ISpeechRecoContext : public IDispatch
16246 {
16247     virtual HRESULT STDMETHODCALLTYPE get_Recognizer(
16248         ISpeechRecognizer **Recognizer) = 0;
16249 
16250     virtual HRESULT STDMETHODCALLTYPE get_AudioInputInterferenceStatus(
16251         SpeechInterference *Interference) = 0;
16252 
16253     virtual HRESULT STDMETHODCALLTYPE get_RequestedUIType(
16254         BSTR *UIType) = 0;
16255 
16256     virtual HRESULT STDMETHODCALLTYPE putref_Voice(
16257         ISpeechVoice *Voice) = 0;
16258 
16259     virtual HRESULT STDMETHODCALLTYPE get_Voice(
16260         ISpeechVoice **Voice) = 0;
16261 
16262     virtual HRESULT STDMETHODCALLTYPE put_AllowVoiceFormatMatchingOnNextSet(
16263         VARIANT_BOOL Allow) = 0;
16264 
16265     virtual HRESULT STDMETHODCALLTYPE get_AllowVoiceFormatMatchingOnNextSet(
16266         VARIANT_BOOL *pAllow) = 0;
16267 
16268     virtual HRESULT STDMETHODCALLTYPE put_VoicePurgeEvent(
16269         SpeechRecoEvents EventInterest) = 0;
16270 
16271     virtual HRESULT STDMETHODCALLTYPE get_VoicePurgeEvent(
16272         SpeechRecoEvents *EventInterest) = 0;
16273 
16274     virtual HRESULT STDMETHODCALLTYPE put_EventInterests(
16275         SpeechRecoEvents EventInterest) = 0;
16276 
16277     virtual HRESULT STDMETHODCALLTYPE get_EventInterests(
16278         SpeechRecoEvents *EventInterest) = 0;
16279 
16280     virtual HRESULT STDMETHODCALLTYPE put_CmdMaxAlternates(
16281         LONG MaxAlternates) = 0;
16282 
16283     virtual HRESULT STDMETHODCALLTYPE get_CmdMaxAlternates(
16284         LONG *MaxAlternates) = 0;
16285 
16286     virtual HRESULT STDMETHODCALLTYPE put_State(
16287         SpeechRecoContextState State) = 0;
16288 
16289     virtual HRESULT STDMETHODCALLTYPE get_State(
16290         SpeechRecoContextState *State) = 0;
16291 
16292     virtual HRESULT STDMETHODCALLTYPE put_RetainedAudio(
16293         SpeechRetainedAudioOptions Option) = 0;
16294 
16295     virtual HRESULT STDMETHODCALLTYPE get_RetainedAudio(
16296         SpeechRetainedAudioOptions *Option) = 0;
16297 
16298     virtual HRESULT STDMETHODCALLTYPE putref_RetainedAudioFormat(
16299         ISpeechAudioFormat *Format) = 0;
16300 
16301     virtual HRESULT STDMETHODCALLTYPE get_RetainedAudioFormat(
16302         ISpeechAudioFormat **Format) = 0;
16303 
16304     virtual HRESULT STDMETHODCALLTYPE Pause(
16305         ) = 0;
16306 
16307     virtual HRESULT STDMETHODCALLTYPE Resume(
16308         ) = 0;
16309 
16310     virtual HRESULT STDMETHODCALLTYPE CreateGrammar(
16311         VARIANT GrammarId,
16312         ISpeechRecoGrammar **Grammar) = 0;
16313 
16314     virtual HRESULT STDMETHODCALLTYPE CreateResultFromMemory(
16315         VARIANT *ResultBlock,
16316         ISpeechRecoResult **Result) = 0;
16317 
16318     virtual HRESULT STDMETHODCALLTYPE Bookmark(
16319         SpeechBookmarkOptions Options,
16320         VARIANT StreamPos,
16321         VARIANT BookmarkId) = 0;
16322 
16323     virtual HRESULT STDMETHODCALLTYPE SetAdaptationData(
16324         BSTR AdaptationString) = 0;
16325 
16326 };
16327 #ifdef __CRT_UUID_DECL
16328 __CRT_UUID_DECL(ISpeechRecoContext, 0x580aa49d, 0x7e1e, 0x4809, 0xb8,0xe2, 0x57,0xda,0x80,0x61,0x04,0xb8)
16329 #endif
16330 #else
16331 typedef struct ISpeechRecoContextVtbl {
16332     BEGIN_INTERFACE
16333 
16334     /*** IUnknown methods ***/
16335     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16336         ISpeechRecoContext *This,
16337         REFIID riid,
16338         void **ppvObject);
16339 
16340     ULONG (STDMETHODCALLTYPE *AddRef)(
16341         ISpeechRecoContext *This);
16342 
16343     ULONG (STDMETHODCALLTYPE *Release)(
16344         ISpeechRecoContext *This);
16345 
16346     /*** IDispatch methods ***/
16347     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16348         ISpeechRecoContext *This,
16349         UINT *pctinfo);
16350 
16351     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16352         ISpeechRecoContext *This,
16353         UINT iTInfo,
16354         LCID lcid,
16355         ITypeInfo **ppTInfo);
16356 
16357     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16358         ISpeechRecoContext *This,
16359         REFIID riid,
16360         LPOLESTR *rgszNames,
16361         UINT cNames,
16362         LCID lcid,
16363         DISPID *rgDispId);
16364 
16365     HRESULT (STDMETHODCALLTYPE *Invoke)(
16366         ISpeechRecoContext *This,
16367         DISPID dispIdMember,
16368         REFIID riid,
16369         LCID lcid,
16370         WORD wFlags,
16371         DISPPARAMS *pDispParams,
16372         VARIANT *pVarResult,
16373         EXCEPINFO *pExcepInfo,
16374         UINT *puArgErr);
16375 
16376     /*** ISpeechRecoContext methods ***/
16377     HRESULT (STDMETHODCALLTYPE *get_Recognizer)(
16378         ISpeechRecoContext *This,
16379         ISpeechRecognizer **Recognizer);
16380 
16381     HRESULT (STDMETHODCALLTYPE *get_AudioInputInterferenceStatus)(
16382         ISpeechRecoContext *This,
16383         SpeechInterference *Interference);
16384 
16385     HRESULT (STDMETHODCALLTYPE *get_RequestedUIType)(
16386         ISpeechRecoContext *This,
16387         BSTR *UIType);
16388 
16389     HRESULT (STDMETHODCALLTYPE *putref_Voice)(
16390         ISpeechRecoContext *This,
16391         ISpeechVoice *Voice);
16392 
16393     HRESULT (STDMETHODCALLTYPE *get_Voice)(
16394         ISpeechRecoContext *This,
16395         ISpeechVoice **Voice);
16396 
16397     HRESULT (STDMETHODCALLTYPE *put_AllowVoiceFormatMatchingOnNextSet)(
16398         ISpeechRecoContext *This,
16399         VARIANT_BOOL Allow);
16400 
16401     HRESULT (STDMETHODCALLTYPE *get_AllowVoiceFormatMatchingOnNextSet)(
16402         ISpeechRecoContext *This,
16403         VARIANT_BOOL *pAllow);
16404 
16405     HRESULT (STDMETHODCALLTYPE *put_VoicePurgeEvent)(
16406         ISpeechRecoContext *This,
16407         SpeechRecoEvents EventInterest);
16408 
16409     HRESULT (STDMETHODCALLTYPE *get_VoicePurgeEvent)(
16410         ISpeechRecoContext *This,
16411         SpeechRecoEvents *EventInterest);
16412 
16413     HRESULT (STDMETHODCALLTYPE *put_EventInterests)(
16414         ISpeechRecoContext *This,
16415         SpeechRecoEvents EventInterest);
16416 
16417     HRESULT (STDMETHODCALLTYPE *get_EventInterests)(
16418         ISpeechRecoContext *This,
16419         SpeechRecoEvents *EventInterest);
16420 
16421     HRESULT (STDMETHODCALLTYPE *put_CmdMaxAlternates)(
16422         ISpeechRecoContext *This,
16423         LONG MaxAlternates);
16424 
16425     HRESULT (STDMETHODCALLTYPE *get_CmdMaxAlternates)(
16426         ISpeechRecoContext *This,
16427         LONG *MaxAlternates);
16428 
16429     HRESULT (STDMETHODCALLTYPE *put_State)(
16430         ISpeechRecoContext *This,
16431         SpeechRecoContextState State);
16432 
16433     HRESULT (STDMETHODCALLTYPE *get_State)(
16434         ISpeechRecoContext *This,
16435         SpeechRecoContextState *State);
16436 
16437     HRESULT (STDMETHODCALLTYPE *put_RetainedAudio)(
16438         ISpeechRecoContext *This,
16439         SpeechRetainedAudioOptions Option);
16440 
16441     HRESULT (STDMETHODCALLTYPE *get_RetainedAudio)(
16442         ISpeechRecoContext *This,
16443         SpeechRetainedAudioOptions *Option);
16444 
16445     HRESULT (STDMETHODCALLTYPE *putref_RetainedAudioFormat)(
16446         ISpeechRecoContext *This,
16447         ISpeechAudioFormat *Format);
16448 
16449     HRESULT (STDMETHODCALLTYPE *get_RetainedAudioFormat)(
16450         ISpeechRecoContext *This,
16451         ISpeechAudioFormat **Format);
16452 
16453     HRESULT (STDMETHODCALLTYPE *Pause)(
16454         ISpeechRecoContext *This);
16455 
16456     HRESULT (STDMETHODCALLTYPE *Resume)(
16457         ISpeechRecoContext *This);
16458 
16459     HRESULT (STDMETHODCALLTYPE *CreateGrammar)(
16460         ISpeechRecoContext *This,
16461         VARIANT GrammarId,
16462         ISpeechRecoGrammar **Grammar);
16463 
16464     HRESULT (STDMETHODCALLTYPE *CreateResultFromMemory)(
16465         ISpeechRecoContext *This,
16466         VARIANT *ResultBlock,
16467         ISpeechRecoResult **Result);
16468 
16469     HRESULT (STDMETHODCALLTYPE *Bookmark)(
16470         ISpeechRecoContext *This,
16471         SpeechBookmarkOptions Options,
16472         VARIANT StreamPos,
16473         VARIANT BookmarkId);
16474 
16475     HRESULT (STDMETHODCALLTYPE *SetAdaptationData)(
16476         ISpeechRecoContext *This,
16477         BSTR AdaptationString);
16478 
16479     END_INTERFACE
16480 } ISpeechRecoContextVtbl;
16481 
16482 interface ISpeechRecoContext {
16483     CONST_VTBL ISpeechRecoContextVtbl* lpVtbl;
16484 };
16485 
16486 #ifdef COBJMACROS
16487 #ifndef WIDL_C_INLINE_WRAPPERS
16488 /*** IUnknown methods ***/
16489 #define ISpeechRecoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16490 #define ISpeechRecoContext_AddRef(This) (This)->lpVtbl->AddRef(This)
16491 #define ISpeechRecoContext_Release(This) (This)->lpVtbl->Release(This)
16492 /*** IDispatch methods ***/
16493 #define ISpeechRecoContext_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16494 #define ISpeechRecoContext_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16495 #define ISpeechRecoContext_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16496 #define ISpeechRecoContext_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16497 /*** ISpeechRecoContext methods ***/
16498 #define ISpeechRecoContext_get_Recognizer(This,Recognizer) (This)->lpVtbl->get_Recognizer(This,Recognizer)
16499 #define ISpeechRecoContext_get_AudioInputInterferenceStatus(This,Interference) (This)->lpVtbl->get_AudioInputInterferenceStatus(This,Interference)
16500 #define ISpeechRecoContext_get_RequestedUIType(This,UIType) (This)->lpVtbl->get_RequestedUIType(This,UIType)
16501 #define ISpeechRecoContext_putref_Voice(This,Voice) (This)->lpVtbl->putref_Voice(This,Voice)
16502 #define ISpeechRecoContext_get_Voice(This,Voice) (This)->lpVtbl->get_Voice(This,Voice)
16503 #define ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet(This,Allow) (This)->lpVtbl->put_AllowVoiceFormatMatchingOnNextSet(This,Allow)
16504 #define ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet(This,pAllow) (This)->lpVtbl->get_AllowVoiceFormatMatchingOnNextSet(This,pAllow)
16505 #define ISpeechRecoContext_put_VoicePurgeEvent(This,EventInterest) (This)->lpVtbl->put_VoicePurgeEvent(This,EventInterest)
16506 #define ISpeechRecoContext_get_VoicePurgeEvent(This,EventInterest) (This)->lpVtbl->get_VoicePurgeEvent(This,EventInterest)
16507 #define ISpeechRecoContext_put_EventInterests(This,EventInterest) (This)->lpVtbl->put_EventInterests(This,EventInterest)
16508 #define ISpeechRecoContext_get_EventInterests(This,EventInterest) (This)->lpVtbl->get_EventInterests(This,EventInterest)
16509 #define ISpeechRecoContext_put_CmdMaxAlternates(This,MaxAlternates) (This)->lpVtbl->put_CmdMaxAlternates(This,MaxAlternates)
16510 #define ISpeechRecoContext_get_CmdMaxAlternates(This,MaxAlternates) (This)->lpVtbl->get_CmdMaxAlternates(This,MaxAlternates)
16511 #define ISpeechRecoContext_put_State(This,State) (This)->lpVtbl->put_State(This,State)
16512 #define ISpeechRecoContext_get_State(This,State) (This)->lpVtbl->get_State(This,State)
16513 #define ISpeechRecoContext_put_RetainedAudio(This,Option) (This)->lpVtbl->put_RetainedAudio(This,Option)
16514 #define ISpeechRecoContext_get_RetainedAudio(This,Option) (This)->lpVtbl->get_RetainedAudio(This,Option)
16515 #define ISpeechRecoContext_putref_RetainedAudioFormat(This,Format) (This)->lpVtbl->putref_RetainedAudioFormat(This,Format)
16516 #define ISpeechRecoContext_get_RetainedAudioFormat(This,Format) (This)->lpVtbl->get_RetainedAudioFormat(This,Format)
16517 #define ISpeechRecoContext_Pause(This) (This)->lpVtbl->Pause(This)
16518 #define ISpeechRecoContext_Resume(This) (This)->lpVtbl->Resume(This)
16519 #define ISpeechRecoContext_CreateGrammar(This,GrammarId,Grammar) (This)->lpVtbl->CreateGrammar(This,GrammarId,Grammar)
16520 #define ISpeechRecoContext_CreateResultFromMemory(This,ResultBlock,Result) (This)->lpVtbl->CreateResultFromMemory(This,ResultBlock,Result)
16521 #define ISpeechRecoContext_Bookmark(This,Options,StreamPos,BookmarkId) (This)->lpVtbl->Bookmark(This,Options,StreamPos,BookmarkId)
16522 #define ISpeechRecoContext_SetAdaptationData(This,AdaptationString) (This)->lpVtbl->SetAdaptationData(This,AdaptationString)
16523 #else
16524 /*** IUnknown methods ***/
16525 static FORCEINLINE HRESULT ISpeechRecoContext_QueryInterface(ISpeechRecoContext* This,REFIID riid,void **ppvObject) {
16526     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16527 }
16528 static FORCEINLINE ULONG ISpeechRecoContext_AddRef(ISpeechRecoContext* This) {
16529     return This->lpVtbl->AddRef(This);
16530 }
16531 static FORCEINLINE ULONG ISpeechRecoContext_Release(ISpeechRecoContext* This) {
16532     return This->lpVtbl->Release(This);
16533 }
16534 /*** IDispatch methods ***/
16535 static FORCEINLINE HRESULT ISpeechRecoContext_GetTypeInfoCount(ISpeechRecoContext* This,UINT *pctinfo) {
16536     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16537 }
16538 static FORCEINLINE HRESULT ISpeechRecoContext_GetTypeInfo(ISpeechRecoContext* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16539     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16540 }
16541 static FORCEINLINE HRESULT ISpeechRecoContext_GetIDsOfNames(ISpeechRecoContext* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16542     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16543 }
16544 static FORCEINLINE HRESULT ISpeechRecoContext_Invoke(ISpeechRecoContext* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16545     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16546 }
16547 /*** ISpeechRecoContext methods ***/
16548 static FORCEINLINE HRESULT ISpeechRecoContext_get_Recognizer(ISpeechRecoContext* This,ISpeechRecognizer **Recognizer) {
16549     return This->lpVtbl->get_Recognizer(This,Recognizer);
16550 }
16551 static FORCEINLINE HRESULT ISpeechRecoContext_get_AudioInputInterferenceStatus(ISpeechRecoContext* This,SpeechInterference *Interference) {
16552     return This->lpVtbl->get_AudioInputInterferenceStatus(This,Interference);
16553 }
16554 static FORCEINLINE HRESULT ISpeechRecoContext_get_RequestedUIType(ISpeechRecoContext* This,BSTR *UIType) {
16555     return This->lpVtbl->get_RequestedUIType(This,UIType);
16556 }
16557 static FORCEINLINE HRESULT ISpeechRecoContext_putref_Voice(ISpeechRecoContext* This,ISpeechVoice *Voice) {
16558     return This->lpVtbl->putref_Voice(This,Voice);
16559 }
16560 static FORCEINLINE HRESULT ISpeechRecoContext_get_Voice(ISpeechRecoContext* This,ISpeechVoice **Voice) {
16561     return This->lpVtbl->get_Voice(This,Voice);
16562 }
16563 static FORCEINLINE HRESULT ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet(ISpeechRecoContext* This,VARIANT_BOOL Allow) {
16564     return This->lpVtbl->put_AllowVoiceFormatMatchingOnNextSet(This,Allow);
16565 }
16566 static FORCEINLINE HRESULT ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet(ISpeechRecoContext* This,VARIANT_BOOL *pAllow) {
16567     return This->lpVtbl->get_AllowVoiceFormatMatchingOnNextSet(This,pAllow);
16568 }
16569 static FORCEINLINE HRESULT ISpeechRecoContext_put_VoicePurgeEvent(ISpeechRecoContext* This,SpeechRecoEvents EventInterest) {
16570     return This->lpVtbl->put_VoicePurgeEvent(This,EventInterest);
16571 }
16572 static FORCEINLINE HRESULT ISpeechRecoContext_get_VoicePurgeEvent(ISpeechRecoContext* This,SpeechRecoEvents *EventInterest) {
16573     return This->lpVtbl->get_VoicePurgeEvent(This,EventInterest);
16574 }
16575 static FORCEINLINE HRESULT ISpeechRecoContext_put_EventInterests(ISpeechRecoContext* This,SpeechRecoEvents EventInterest) {
16576     return This->lpVtbl->put_EventInterests(This,EventInterest);
16577 }
16578 static FORCEINLINE HRESULT ISpeechRecoContext_get_EventInterests(ISpeechRecoContext* This,SpeechRecoEvents *EventInterest) {
16579     return This->lpVtbl->get_EventInterests(This,EventInterest);
16580 }
16581 static FORCEINLINE HRESULT ISpeechRecoContext_put_CmdMaxAlternates(ISpeechRecoContext* This,LONG MaxAlternates) {
16582     return This->lpVtbl->put_CmdMaxAlternates(This,MaxAlternates);
16583 }
16584 static FORCEINLINE HRESULT ISpeechRecoContext_get_CmdMaxAlternates(ISpeechRecoContext* This,LONG *MaxAlternates) {
16585     return This->lpVtbl->get_CmdMaxAlternates(This,MaxAlternates);
16586 }
16587 static FORCEINLINE HRESULT ISpeechRecoContext_put_State(ISpeechRecoContext* This,SpeechRecoContextState State) {
16588     return This->lpVtbl->put_State(This,State);
16589 }
16590 static FORCEINLINE HRESULT ISpeechRecoContext_get_State(ISpeechRecoContext* This,SpeechRecoContextState *State) {
16591     return This->lpVtbl->get_State(This,State);
16592 }
16593 static FORCEINLINE HRESULT ISpeechRecoContext_put_RetainedAudio(ISpeechRecoContext* This,SpeechRetainedAudioOptions Option) {
16594     return This->lpVtbl->put_RetainedAudio(This,Option);
16595 }
16596 static FORCEINLINE HRESULT ISpeechRecoContext_get_RetainedAudio(ISpeechRecoContext* This,SpeechRetainedAudioOptions *Option) {
16597     return This->lpVtbl->get_RetainedAudio(This,Option);
16598 }
16599 static FORCEINLINE HRESULT ISpeechRecoContext_putref_RetainedAudioFormat(ISpeechRecoContext* This,ISpeechAudioFormat *Format) {
16600     return This->lpVtbl->putref_RetainedAudioFormat(This,Format);
16601 }
16602 static FORCEINLINE HRESULT ISpeechRecoContext_get_RetainedAudioFormat(ISpeechRecoContext* This,ISpeechAudioFormat **Format) {
16603     return This->lpVtbl->get_RetainedAudioFormat(This,Format);
16604 }
16605 static FORCEINLINE HRESULT ISpeechRecoContext_Pause(ISpeechRecoContext* This) {
16606     return This->lpVtbl->Pause(This);
16607 }
16608 static FORCEINLINE HRESULT ISpeechRecoContext_Resume(ISpeechRecoContext* This) {
16609     return This->lpVtbl->Resume(This);
16610 }
16611 static FORCEINLINE HRESULT ISpeechRecoContext_CreateGrammar(ISpeechRecoContext* This,VARIANT GrammarId,ISpeechRecoGrammar **Grammar) {
16612     return This->lpVtbl->CreateGrammar(This,GrammarId,Grammar);
16613 }
16614 static FORCEINLINE HRESULT ISpeechRecoContext_CreateResultFromMemory(ISpeechRecoContext* This,VARIANT *ResultBlock,ISpeechRecoResult **Result) {
16615     return This->lpVtbl->CreateResultFromMemory(This,ResultBlock,Result);
16616 }
16617 static FORCEINLINE HRESULT ISpeechRecoContext_Bookmark(ISpeechRecoContext* This,SpeechBookmarkOptions Options,VARIANT StreamPos,VARIANT BookmarkId) {
16618     return This->lpVtbl->Bookmark(This,Options,StreamPos,BookmarkId);
16619 }
16620 static FORCEINLINE HRESULT ISpeechRecoContext_SetAdaptationData(ISpeechRecoContext* This,BSTR AdaptationString) {
16621     return This->lpVtbl->SetAdaptationData(This,AdaptationString);
16622 }
16623 #endif
16624 #endif
16625 
16626 #endif
16627 
16628 
16629 #endif  /* __ISpeechRecoContext_INTERFACE_DEFINED__ */
16630 
16631 /*****************************************************************************
16632  * ISpeechRecoGrammar interface
16633  */
16634 #ifndef __ISpeechRecoGrammar_INTERFACE_DEFINED__
16635 #define __ISpeechRecoGrammar_INTERFACE_DEFINED__
16636 
16637 DEFINE_GUID(IID_ISpeechRecoGrammar, 0xb6d6f79f, 0x2158, 0x4e50, 0xb5,0xbc, 0x9a,0x9c,0xcd,0x85,0x2a,0x09);
16638 #if defined(__cplusplus) && !defined(CINTERFACE)
16639 MIDL_INTERFACE("b6d6f79f-2158-4e50-b5bc-9a9ccd852a09")
16640 ISpeechRecoGrammar : public IDispatch
16641 {
16642     virtual HRESULT STDMETHODCALLTYPE get_Id(
16643         VARIANT *Id) = 0;
16644 
16645     virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
16646         ISpeechRecoContext **RecoContext) = 0;
16647 
16648     virtual HRESULT STDMETHODCALLTYPE put_State(
16649         SpeechGrammarState State) = 0;
16650 
16651     virtual HRESULT STDMETHODCALLTYPE get_State(
16652         SpeechGrammarState *State) = 0;
16653 
16654     virtual HRESULT STDMETHODCALLTYPE get_Rules(
16655         ISpeechGrammarRules **Rules) = 0;
16656 
16657     virtual HRESULT STDMETHODCALLTYPE Reset(
16658         SpeechLanguageId NewLanguage = 0) = 0;
16659 
16660     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromFile(
16661         const BSTR FileName,
16662         SpeechLoadOption LoadOption = SLOStatic) = 0;
16663 
16664     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromObject(
16665         const BSTR ClassId,
16666         const BSTR GrammarName,
16667         SpeechLoadOption LoadOption = SLOStatic) = 0;
16668 
16669     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromResource(
16670         LONG hModule,
16671         VARIANT ResourceName,
16672         VARIANT ResourceType,
16673         SpeechLanguageId LanguageId,
16674         SpeechLoadOption LoadOption = SLOStatic) = 0;
16675 
16676     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromMemory(
16677         VARIANT GrammarData,
16678         SpeechLoadOption LoadOption = SLOStatic) = 0;
16679 
16680     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromProprietaryGrammar(
16681         const BSTR ProprietaryGuid,
16682         const BSTR ProprietaryString,
16683         VARIANT ProprietaryData,
16684         SpeechLoadOption LoadOption = SLOStatic) = 0;
16685 
16686     virtual HRESULT STDMETHODCALLTYPE CmdSetRuleState(
16687         const BSTR Name,
16688         SpeechRuleState State) = 0;
16689 
16690     virtual HRESULT STDMETHODCALLTYPE CmdSetRuleIdState(
16691         LONG RuleId,
16692         SpeechRuleState State) = 0;
16693 
16694     virtual HRESULT STDMETHODCALLTYPE DictationLoad(
16695         const BSTR TopicName = L"",
16696         SpeechLoadOption LoadOption = SLOStatic) = 0;
16697 
16698     virtual HRESULT STDMETHODCALLTYPE DictationUnload(
16699         ) = 0;
16700 
16701     virtual HRESULT STDMETHODCALLTYPE DictationSetState(
16702         SpeechRuleState State) = 0;
16703 
16704     virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData(
16705         const BSTR Text,
16706         LONG TextLength,
16707         ISpeechTextSelectionInformation *Info) = 0;
16708 
16709     virtual HRESULT STDMETHODCALLTYPE SetTextSelection(
16710         ISpeechTextSelectionInformation *Info) = 0;
16711 
16712     virtual HRESULT STDMETHODCALLTYPE IsPronounceable(
16713         const BSTR Word,
16714         SpeechWordPronounceable *WordPronounceable) = 0;
16715 
16716 };
16717 #ifdef __CRT_UUID_DECL
16718 __CRT_UUID_DECL(ISpeechRecoGrammar, 0xb6d6f79f, 0x2158, 0x4e50, 0xb5,0xbc, 0x9a,0x9c,0xcd,0x85,0x2a,0x09)
16719 #endif
16720 #else
16721 typedef struct ISpeechRecoGrammarVtbl {
16722     BEGIN_INTERFACE
16723 
16724     /*** IUnknown methods ***/
16725     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16726         ISpeechRecoGrammar *This,
16727         REFIID riid,
16728         void **ppvObject);
16729 
16730     ULONG (STDMETHODCALLTYPE *AddRef)(
16731         ISpeechRecoGrammar *This);
16732 
16733     ULONG (STDMETHODCALLTYPE *Release)(
16734         ISpeechRecoGrammar *This);
16735 
16736     /*** IDispatch methods ***/
16737     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16738         ISpeechRecoGrammar *This,
16739         UINT *pctinfo);
16740 
16741     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16742         ISpeechRecoGrammar *This,
16743         UINT iTInfo,
16744         LCID lcid,
16745         ITypeInfo **ppTInfo);
16746 
16747     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16748         ISpeechRecoGrammar *This,
16749         REFIID riid,
16750         LPOLESTR *rgszNames,
16751         UINT cNames,
16752         LCID lcid,
16753         DISPID *rgDispId);
16754 
16755     HRESULT (STDMETHODCALLTYPE *Invoke)(
16756         ISpeechRecoGrammar *This,
16757         DISPID dispIdMember,
16758         REFIID riid,
16759         LCID lcid,
16760         WORD wFlags,
16761         DISPPARAMS *pDispParams,
16762         VARIANT *pVarResult,
16763         EXCEPINFO *pExcepInfo,
16764         UINT *puArgErr);
16765 
16766     /*** ISpeechRecoGrammar methods ***/
16767     HRESULT (STDMETHODCALLTYPE *get_Id)(
16768         ISpeechRecoGrammar *This,
16769         VARIANT *Id);
16770 
16771     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
16772         ISpeechRecoGrammar *This,
16773         ISpeechRecoContext **RecoContext);
16774 
16775     HRESULT (STDMETHODCALLTYPE *put_State)(
16776         ISpeechRecoGrammar *This,
16777         SpeechGrammarState State);
16778 
16779     HRESULT (STDMETHODCALLTYPE *get_State)(
16780         ISpeechRecoGrammar *This,
16781         SpeechGrammarState *State);
16782 
16783     HRESULT (STDMETHODCALLTYPE *get_Rules)(
16784         ISpeechRecoGrammar *This,
16785         ISpeechGrammarRules **Rules);
16786 
16787     HRESULT (STDMETHODCALLTYPE *Reset)(
16788         ISpeechRecoGrammar *This,
16789         SpeechLanguageId NewLanguage);
16790 
16791     HRESULT (STDMETHODCALLTYPE *CmdLoadFromFile)(
16792         ISpeechRecoGrammar *This,
16793         const BSTR FileName,
16794         SpeechLoadOption LoadOption);
16795 
16796     HRESULT (STDMETHODCALLTYPE *CmdLoadFromObject)(
16797         ISpeechRecoGrammar *This,
16798         const BSTR ClassId,
16799         const BSTR GrammarName,
16800         SpeechLoadOption LoadOption);
16801 
16802     HRESULT (STDMETHODCALLTYPE *CmdLoadFromResource)(
16803         ISpeechRecoGrammar *This,
16804         LONG hModule,
16805         VARIANT ResourceName,
16806         VARIANT ResourceType,
16807         SpeechLanguageId LanguageId,
16808         SpeechLoadOption LoadOption);
16809 
16810     HRESULT (STDMETHODCALLTYPE *CmdLoadFromMemory)(
16811         ISpeechRecoGrammar *This,
16812         VARIANT GrammarData,
16813         SpeechLoadOption LoadOption);
16814 
16815     HRESULT (STDMETHODCALLTYPE *CmdLoadFromProprietaryGrammar)(
16816         ISpeechRecoGrammar *This,
16817         const BSTR ProprietaryGuid,
16818         const BSTR ProprietaryString,
16819         VARIANT ProprietaryData,
16820         SpeechLoadOption LoadOption);
16821 
16822     HRESULT (STDMETHODCALLTYPE *CmdSetRuleState)(
16823         ISpeechRecoGrammar *This,
16824         const BSTR Name,
16825         SpeechRuleState State);
16826 
16827     HRESULT (STDMETHODCALLTYPE *CmdSetRuleIdState)(
16828         ISpeechRecoGrammar *This,
16829         LONG RuleId,
16830         SpeechRuleState State);
16831 
16832     HRESULT (STDMETHODCALLTYPE *DictationLoad)(
16833         ISpeechRecoGrammar *This,
16834         const BSTR TopicName,
16835         SpeechLoadOption LoadOption);
16836 
16837     HRESULT (STDMETHODCALLTYPE *DictationUnload)(
16838         ISpeechRecoGrammar *This);
16839 
16840     HRESULT (STDMETHODCALLTYPE *DictationSetState)(
16841         ISpeechRecoGrammar *This,
16842         SpeechRuleState State);
16843 
16844     HRESULT (STDMETHODCALLTYPE *SetWordSequenceData)(
16845         ISpeechRecoGrammar *This,
16846         const BSTR Text,
16847         LONG TextLength,
16848         ISpeechTextSelectionInformation *Info);
16849 
16850     HRESULT (STDMETHODCALLTYPE *SetTextSelection)(
16851         ISpeechRecoGrammar *This,
16852         ISpeechTextSelectionInformation *Info);
16853 
16854     HRESULT (STDMETHODCALLTYPE *IsPronounceable)(
16855         ISpeechRecoGrammar *This,
16856         const BSTR Word,
16857         SpeechWordPronounceable *WordPronounceable);
16858 
16859     END_INTERFACE
16860 } ISpeechRecoGrammarVtbl;
16861 
16862 interface ISpeechRecoGrammar {
16863     CONST_VTBL ISpeechRecoGrammarVtbl* lpVtbl;
16864 };
16865 
16866 #ifdef COBJMACROS
16867 #ifndef WIDL_C_INLINE_WRAPPERS
16868 /*** IUnknown methods ***/
16869 #define ISpeechRecoGrammar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16870 #define ISpeechRecoGrammar_AddRef(This) (This)->lpVtbl->AddRef(This)
16871 #define ISpeechRecoGrammar_Release(This) (This)->lpVtbl->Release(This)
16872 /*** IDispatch methods ***/
16873 #define ISpeechRecoGrammar_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16874 #define ISpeechRecoGrammar_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16875 #define ISpeechRecoGrammar_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16876 #define ISpeechRecoGrammar_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16877 /*** ISpeechRecoGrammar methods ***/
16878 #define ISpeechRecoGrammar_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
16879 #define ISpeechRecoGrammar_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
16880 #define ISpeechRecoGrammar_put_State(This,State) (This)->lpVtbl->put_State(This,State)
16881 #define ISpeechRecoGrammar_get_State(This,State) (This)->lpVtbl->get_State(This,State)
16882 #define ISpeechRecoGrammar_get_Rules(This,Rules) (This)->lpVtbl->get_Rules(This,Rules)
16883 #define ISpeechRecoGrammar_Reset(This,NewLanguage) (This)->lpVtbl->Reset(This,NewLanguage)
16884 #define ISpeechRecoGrammar_CmdLoadFromFile(This,FileName,LoadOption) (This)->lpVtbl->CmdLoadFromFile(This,FileName,LoadOption)
16885 #define ISpeechRecoGrammar_CmdLoadFromObject(This,ClassId,GrammarName,LoadOption) (This)->lpVtbl->CmdLoadFromObject(This,ClassId,GrammarName,LoadOption)
16886 #define ISpeechRecoGrammar_CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption) (This)->lpVtbl->CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption)
16887 #define ISpeechRecoGrammar_CmdLoadFromMemory(This,GrammarData,LoadOption) (This)->lpVtbl->CmdLoadFromMemory(This,GrammarData,LoadOption)
16888 #define ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption) (This)->lpVtbl->CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption)
16889 #define ISpeechRecoGrammar_CmdSetRuleState(This,Name,State) (This)->lpVtbl->CmdSetRuleState(This,Name,State)
16890 #define ISpeechRecoGrammar_CmdSetRuleIdState(This,RuleId,State) (This)->lpVtbl->CmdSetRuleIdState(This,RuleId,State)
16891 #define ISpeechRecoGrammar_DictationLoad(This,TopicName,LoadOption) (This)->lpVtbl->DictationLoad(This,TopicName,LoadOption)
16892 #define ISpeechRecoGrammar_DictationUnload(This) (This)->lpVtbl->DictationUnload(This)
16893 #define ISpeechRecoGrammar_DictationSetState(This,State) (This)->lpVtbl->DictationSetState(This,State)
16894 #define ISpeechRecoGrammar_SetWordSequenceData(This,Text,TextLength,Info) (This)->lpVtbl->SetWordSequenceData(This,Text,TextLength,Info)
16895 #define ISpeechRecoGrammar_SetTextSelection(This,Info) (This)->lpVtbl->SetTextSelection(This,Info)
16896 #define ISpeechRecoGrammar_IsPronounceable(This,Word,WordPronounceable) (This)->lpVtbl->IsPronounceable(This,Word,WordPronounceable)
16897 #else
16898 /*** IUnknown methods ***/
16899 static FORCEINLINE HRESULT ISpeechRecoGrammar_QueryInterface(ISpeechRecoGrammar* This,REFIID riid,void **ppvObject) {
16900     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16901 }
16902 static FORCEINLINE ULONG ISpeechRecoGrammar_AddRef(ISpeechRecoGrammar* This) {
16903     return This->lpVtbl->AddRef(This);
16904 }
16905 static FORCEINLINE ULONG ISpeechRecoGrammar_Release(ISpeechRecoGrammar* This) {
16906     return This->lpVtbl->Release(This);
16907 }
16908 /*** IDispatch methods ***/
16909 static FORCEINLINE HRESULT ISpeechRecoGrammar_GetTypeInfoCount(ISpeechRecoGrammar* This,UINT *pctinfo) {
16910     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16911 }
16912 static FORCEINLINE HRESULT ISpeechRecoGrammar_GetTypeInfo(ISpeechRecoGrammar* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16913     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16914 }
16915 static FORCEINLINE HRESULT ISpeechRecoGrammar_GetIDsOfNames(ISpeechRecoGrammar* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16916     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16917 }
16918 static FORCEINLINE HRESULT ISpeechRecoGrammar_Invoke(ISpeechRecoGrammar* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16919     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16920 }
16921 /*** ISpeechRecoGrammar methods ***/
16922 static FORCEINLINE HRESULT ISpeechRecoGrammar_get_Id(ISpeechRecoGrammar* This,VARIANT *Id) {
16923     return This->lpVtbl->get_Id(This,Id);
16924 }
16925 static FORCEINLINE HRESULT ISpeechRecoGrammar_get_RecoContext(ISpeechRecoGrammar* This,ISpeechRecoContext **RecoContext) {
16926     return This->lpVtbl->get_RecoContext(This,RecoContext);
16927 }
16928 static FORCEINLINE HRESULT ISpeechRecoGrammar_put_State(ISpeechRecoGrammar* This,SpeechGrammarState State) {
16929     return This->lpVtbl->put_State(This,State);
16930 }
16931 static FORCEINLINE HRESULT ISpeechRecoGrammar_get_State(ISpeechRecoGrammar* This,SpeechGrammarState *State) {
16932     return This->lpVtbl->get_State(This,State);
16933 }
16934 static FORCEINLINE HRESULT ISpeechRecoGrammar_get_Rules(ISpeechRecoGrammar* This,ISpeechGrammarRules **Rules) {
16935     return This->lpVtbl->get_Rules(This,Rules);
16936 }
16937 static FORCEINLINE HRESULT ISpeechRecoGrammar_Reset(ISpeechRecoGrammar* This,SpeechLanguageId NewLanguage) {
16938     return This->lpVtbl->Reset(This,NewLanguage);
16939 }
16940 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromFile(ISpeechRecoGrammar* This,const BSTR FileName,SpeechLoadOption LoadOption) {
16941     return This->lpVtbl->CmdLoadFromFile(This,FileName,LoadOption);
16942 }
16943 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromObject(ISpeechRecoGrammar* This,const BSTR ClassId,const BSTR GrammarName,SpeechLoadOption LoadOption) {
16944     return This->lpVtbl->CmdLoadFromObject(This,ClassId,GrammarName,LoadOption);
16945 }
16946 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromResource(ISpeechRecoGrammar* This,LONG hModule,VARIANT ResourceName,VARIANT ResourceType,SpeechLanguageId LanguageId,SpeechLoadOption LoadOption) {
16947     return This->lpVtbl->CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption);
16948 }
16949 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromMemory(ISpeechRecoGrammar* This,VARIANT GrammarData,SpeechLoadOption LoadOption) {
16950     return This->lpVtbl->CmdLoadFromMemory(This,GrammarData,LoadOption);
16951 }
16952 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar(ISpeechRecoGrammar* This,const BSTR ProprietaryGuid,const BSTR ProprietaryString,VARIANT ProprietaryData,SpeechLoadOption LoadOption) {
16953     return This->lpVtbl->CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption);
16954 }
16955 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdSetRuleState(ISpeechRecoGrammar* This,const BSTR Name,SpeechRuleState State) {
16956     return This->lpVtbl->CmdSetRuleState(This,Name,State);
16957 }
16958 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdSetRuleIdState(ISpeechRecoGrammar* This,LONG RuleId,SpeechRuleState State) {
16959     return This->lpVtbl->CmdSetRuleIdState(This,RuleId,State);
16960 }
16961 static FORCEINLINE HRESULT ISpeechRecoGrammar_DictationLoad(ISpeechRecoGrammar* This,const BSTR TopicName,SpeechLoadOption LoadOption) {
16962     return This->lpVtbl->DictationLoad(This,TopicName,LoadOption);
16963 }
16964 static FORCEINLINE HRESULT ISpeechRecoGrammar_DictationUnload(ISpeechRecoGrammar* This) {
16965     return This->lpVtbl->DictationUnload(This);
16966 }
16967 static FORCEINLINE HRESULT ISpeechRecoGrammar_DictationSetState(ISpeechRecoGrammar* This,SpeechRuleState State) {
16968     return This->lpVtbl->DictationSetState(This,State);
16969 }
16970 static FORCEINLINE HRESULT ISpeechRecoGrammar_SetWordSequenceData(ISpeechRecoGrammar* This,const BSTR Text,LONG TextLength,ISpeechTextSelectionInformation *Info) {
16971     return This->lpVtbl->SetWordSequenceData(This,Text,TextLength,Info);
16972 }
16973 static FORCEINLINE HRESULT ISpeechRecoGrammar_SetTextSelection(ISpeechRecoGrammar* This,ISpeechTextSelectionInformation *Info) {
16974     return This->lpVtbl->SetTextSelection(This,Info);
16975 }
16976 static FORCEINLINE HRESULT ISpeechRecoGrammar_IsPronounceable(ISpeechRecoGrammar* This,const BSTR Word,SpeechWordPronounceable *WordPronounceable) {
16977     return This->lpVtbl->IsPronounceable(This,Word,WordPronounceable);
16978 }
16979 #endif
16980 #endif
16981 
16982 #endif
16983 
16984 
16985 #endif  /* __ISpeechRecoGrammar_INTERFACE_DEFINED__ */
16986 
16987 /*****************************************************************************
16988  * _ISpeechRecoContextEvents dispinterface
16989  */
16990 #ifndef ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__
16991 #define ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__
16992 
16993 DEFINE_GUID(DIID__ISpeechRecoContextEvents, 0x7b8fcb42, 0x0e9d, 0x4f00, 0xa0,0x48, 0x7b,0x04,0xd6,0x17,0x9d,0x3d);
16994 #if defined(__cplusplus) && !defined(CINTERFACE)
16995 MIDL_INTERFACE("7b8fcb42-0e9d-4f00-a048-7b04d6179d3d")
16996 _ISpeechRecoContextEvents : public IDispatch
16997 {
16998 };
16999 #ifdef __CRT_UUID_DECL
17000 __CRT_UUID_DECL(_ISpeechRecoContextEvents, 0x7b8fcb42, 0x0e9d, 0x4f00, 0xa0,0x48, 0x7b,0x04,0xd6,0x17,0x9d,0x3d)
17001 #endif
17002 #else
17003 typedef struct _ISpeechRecoContextEventsVtbl {
17004     BEGIN_INTERFACE
17005 
17006     /*** IUnknown methods ***/
17007     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17008         _ISpeechRecoContextEvents *This,
17009         REFIID riid,
17010         void **ppvObject);
17011 
17012     ULONG (STDMETHODCALLTYPE *AddRef)(
17013         _ISpeechRecoContextEvents *This);
17014 
17015     ULONG (STDMETHODCALLTYPE *Release)(
17016         _ISpeechRecoContextEvents *This);
17017 
17018     /*** IDispatch methods ***/
17019     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17020         _ISpeechRecoContextEvents *This,
17021         UINT *pctinfo);
17022 
17023     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17024         _ISpeechRecoContextEvents *This,
17025         UINT iTInfo,
17026         LCID lcid,
17027         ITypeInfo **ppTInfo);
17028 
17029     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17030         _ISpeechRecoContextEvents *This,
17031         REFIID riid,
17032         LPOLESTR *rgszNames,
17033         UINT cNames,
17034         LCID lcid,
17035         DISPID *rgDispId);
17036 
17037     HRESULT (STDMETHODCALLTYPE *Invoke)(
17038         _ISpeechRecoContextEvents *This,
17039         DISPID dispIdMember,
17040         REFIID riid,
17041         LCID lcid,
17042         WORD wFlags,
17043         DISPPARAMS *pDispParams,
17044         VARIANT *pVarResult,
17045         EXCEPINFO *pExcepInfo,
17046         UINT *puArgErr);
17047 
17048     END_INTERFACE
17049 } _ISpeechRecoContextEventsVtbl;
17050 
17051 interface _ISpeechRecoContextEvents {
17052     CONST_VTBL _ISpeechRecoContextEventsVtbl* lpVtbl;
17053 };
17054 
17055 #ifdef COBJMACROS
17056 #ifndef WIDL_C_INLINE_WRAPPERS
17057 /*** IUnknown methods ***/
17058 #define _ISpeechRecoContextEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17059 #define _ISpeechRecoContextEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
17060 #define _ISpeechRecoContextEvents_Release(This) (This)->lpVtbl->Release(This)
17061 /*** IDispatch methods ***/
17062 #define _ISpeechRecoContextEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17063 #define _ISpeechRecoContextEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17064 #define _ISpeechRecoContextEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17065 #define _ISpeechRecoContextEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17066 #else
17067 /*** IUnknown methods ***/
17068 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_QueryInterface(_ISpeechRecoContextEvents* This,REFIID riid,void **ppvObject) {
17069     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17070 }
17071 static FORCEINLINE ULONG _ISpeechRecoContextEvents_AddRef(_ISpeechRecoContextEvents* This) {
17072     return This->lpVtbl->AddRef(This);
17073 }
17074 static FORCEINLINE ULONG _ISpeechRecoContextEvents_Release(_ISpeechRecoContextEvents* This) {
17075     return This->lpVtbl->Release(This);
17076 }
17077 /*** IDispatch methods ***/
17078 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_GetTypeInfoCount(_ISpeechRecoContextEvents* This,UINT *pctinfo) {
17079     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17080 }
17081 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_GetTypeInfo(_ISpeechRecoContextEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17082     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17083 }
17084 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_GetIDsOfNames(_ISpeechRecoContextEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17085     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17086 }
17087 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_Invoke(_ISpeechRecoContextEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17088     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17089 }
17090 #endif
17091 #endif
17092 
17093 #endif
17094 
17095 #endif  /* ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__ */
17096 
17097 /*****************************************************************************
17098  * ISpeechGrammarRule interface
17099  */
17100 #ifndef __ISpeechGrammarRule_INTERFACE_DEFINED__
17101 #define __ISpeechGrammarRule_INTERFACE_DEFINED__
17102 
17103 DEFINE_GUID(IID_ISpeechGrammarRule, 0xafe719cf, 0x5dd1, 0x44f2, 0x99,0x9c, 0x7a,0x39,0x9f,0x1c,0xfc,0xcc);
17104 #if defined(__cplusplus) && !defined(CINTERFACE)
17105 MIDL_INTERFACE("afe719cf-5dd1-44f2-999c-7a399f1cfccc")
17106 ISpeechGrammarRule : public IDispatch
17107 {
17108     virtual HRESULT STDMETHODCALLTYPE get_Attributes(
17109         SpeechRuleAttributes *Attributes) = 0;
17110 
17111     virtual HRESULT STDMETHODCALLTYPE get_InitialState(
17112         ISpeechGrammarRuleState **State) = 0;
17113 
17114     virtual HRESULT STDMETHODCALLTYPE get_Name(
17115         BSTR *Name) = 0;
17116 
17117     virtual HRESULT STDMETHODCALLTYPE get_Id(
17118         LONG *Id) = 0;
17119 
17120     virtual HRESULT STDMETHODCALLTYPE Clear(
17121         ) = 0;
17122 
17123     virtual HRESULT STDMETHODCALLTYPE AddResource(
17124         const BSTR ResourceName,
17125         const BSTR ResourceValue) = 0;
17126 
17127     virtual HRESULT STDMETHODCALLTYPE AddState(
17128         ISpeechGrammarRuleState **State) = 0;
17129 
17130 };
17131 #ifdef __CRT_UUID_DECL
17132 __CRT_UUID_DECL(ISpeechGrammarRule, 0xafe719cf, 0x5dd1, 0x44f2, 0x99,0x9c, 0x7a,0x39,0x9f,0x1c,0xfc,0xcc)
17133 #endif
17134 #else
17135 typedef struct ISpeechGrammarRuleVtbl {
17136     BEGIN_INTERFACE
17137 
17138     /*** IUnknown methods ***/
17139     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17140         ISpeechGrammarRule *This,
17141         REFIID riid,
17142         void **ppvObject);
17143 
17144     ULONG (STDMETHODCALLTYPE *AddRef)(
17145         ISpeechGrammarRule *This);
17146 
17147     ULONG (STDMETHODCALLTYPE *Release)(
17148         ISpeechGrammarRule *This);
17149 
17150     /*** IDispatch methods ***/
17151     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17152         ISpeechGrammarRule *This,
17153         UINT *pctinfo);
17154 
17155     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17156         ISpeechGrammarRule *This,
17157         UINT iTInfo,
17158         LCID lcid,
17159         ITypeInfo **ppTInfo);
17160 
17161     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17162         ISpeechGrammarRule *This,
17163         REFIID riid,
17164         LPOLESTR *rgszNames,
17165         UINT cNames,
17166         LCID lcid,
17167         DISPID *rgDispId);
17168 
17169     HRESULT (STDMETHODCALLTYPE *Invoke)(
17170         ISpeechGrammarRule *This,
17171         DISPID dispIdMember,
17172         REFIID riid,
17173         LCID lcid,
17174         WORD wFlags,
17175         DISPPARAMS *pDispParams,
17176         VARIANT *pVarResult,
17177         EXCEPINFO *pExcepInfo,
17178         UINT *puArgErr);
17179 
17180     /*** ISpeechGrammarRule methods ***/
17181     HRESULT (STDMETHODCALLTYPE *get_Attributes)(
17182         ISpeechGrammarRule *This,
17183         SpeechRuleAttributes *Attributes);
17184 
17185     HRESULT (STDMETHODCALLTYPE *get_InitialState)(
17186         ISpeechGrammarRule *This,
17187         ISpeechGrammarRuleState **State);
17188 
17189     HRESULT (STDMETHODCALLTYPE *get_Name)(
17190         ISpeechGrammarRule *This,
17191         BSTR *Name);
17192 
17193     HRESULT (STDMETHODCALLTYPE *get_Id)(
17194         ISpeechGrammarRule *This,
17195         LONG *Id);
17196 
17197     HRESULT (STDMETHODCALLTYPE *Clear)(
17198         ISpeechGrammarRule *This);
17199 
17200     HRESULT (STDMETHODCALLTYPE *AddResource)(
17201         ISpeechGrammarRule *This,
17202         const BSTR ResourceName,
17203         const BSTR ResourceValue);
17204 
17205     HRESULT (STDMETHODCALLTYPE *AddState)(
17206         ISpeechGrammarRule *This,
17207         ISpeechGrammarRuleState **State);
17208 
17209     END_INTERFACE
17210 } ISpeechGrammarRuleVtbl;
17211 
17212 interface ISpeechGrammarRule {
17213     CONST_VTBL ISpeechGrammarRuleVtbl* lpVtbl;
17214 };
17215 
17216 #ifdef COBJMACROS
17217 #ifndef WIDL_C_INLINE_WRAPPERS
17218 /*** IUnknown methods ***/
17219 #define ISpeechGrammarRule_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17220 #define ISpeechGrammarRule_AddRef(This) (This)->lpVtbl->AddRef(This)
17221 #define ISpeechGrammarRule_Release(This) (This)->lpVtbl->Release(This)
17222 /*** IDispatch methods ***/
17223 #define ISpeechGrammarRule_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17224 #define ISpeechGrammarRule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17225 #define ISpeechGrammarRule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17226 #define ISpeechGrammarRule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17227 /*** ISpeechGrammarRule methods ***/
17228 #define ISpeechGrammarRule_get_Attributes(This,Attributes) (This)->lpVtbl->get_Attributes(This,Attributes)
17229 #define ISpeechGrammarRule_get_InitialState(This,State) (This)->lpVtbl->get_InitialState(This,State)
17230 #define ISpeechGrammarRule_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
17231 #define ISpeechGrammarRule_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
17232 #define ISpeechGrammarRule_Clear(This) (This)->lpVtbl->Clear(This)
17233 #define ISpeechGrammarRule_AddResource(This,ResourceName,ResourceValue) (This)->lpVtbl->AddResource(This,ResourceName,ResourceValue)
17234 #define ISpeechGrammarRule_AddState(This,State) (This)->lpVtbl->AddState(This,State)
17235 #else
17236 /*** IUnknown methods ***/
17237 static FORCEINLINE HRESULT ISpeechGrammarRule_QueryInterface(ISpeechGrammarRule* This,REFIID riid,void **ppvObject) {
17238     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17239 }
17240 static FORCEINLINE ULONG ISpeechGrammarRule_AddRef(ISpeechGrammarRule* This) {
17241     return This->lpVtbl->AddRef(This);
17242 }
17243 static FORCEINLINE ULONG ISpeechGrammarRule_Release(ISpeechGrammarRule* This) {
17244     return This->lpVtbl->Release(This);
17245 }
17246 /*** IDispatch methods ***/
17247 static FORCEINLINE HRESULT ISpeechGrammarRule_GetTypeInfoCount(ISpeechGrammarRule* This,UINT *pctinfo) {
17248     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17249 }
17250 static FORCEINLINE HRESULT ISpeechGrammarRule_GetTypeInfo(ISpeechGrammarRule* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17251     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17252 }
17253 static FORCEINLINE HRESULT ISpeechGrammarRule_GetIDsOfNames(ISpeechGrammarRule* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17254     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17255 }
17256 static FORCEINLINE HRESULT ISpeechGrammarRule_Invoke(ISpeechGrammarRule* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17257     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17258 }
17259 /*** ISpeechGrammarRule methods ***/
17260 static FORCEINLINE HRESULT ISpeechGrammarRule_get_Attributes(ISpeechGrammarRule* This,SpeechRuleAttributes *Attributes) {
17261     return This->lpVtbl->get_Attributes(This,Attributes);
17262 }
17263 static FORCEINLINE HRESULT ISpeechGrammarRule_get_InitialState(ISpeechGrammarRule* This,ISpeechGrammarRuleState **State) {
17264     return This->lpVtbl->get_InitialState(This,State);
17265 }
17266 static FORCEINLINE HRESULT ISpeechGrammarRule_get_Name(ISpeechGrammarRule* This,BSTR *Name) {
17267     return This->lpVtbl->get_Name(This,Name);
17268 }
17269 static FORCEINLINE HRESULT ISpeechGrammarRule_get_Id(ISpeechGrammarRule* This,LONG *Id) {
17270     return This->lpVtbl->get_Id(This,Id);
17271 }
17272 static FORCEINLINE HRESULT ISpeechGrammarRule_Clear(ISpeechGrammarRule* This) {
17273     return This->lpVtbl->Clear(This);
17274 }
17275 static FORCEINLINE HRESULT ISpeechGrammarRule_AddResource(ISpeechGrammarRule* This,const BSTR ResourceName,const BSTR ResourceValue) {
17276     return This->lpVtbl->AddResource(This,ResourceName,ResourceValue);
17277 }
17278 static FORCEINLINE HRESULT ISpeechGrammarRule_AddState(ISpeechGrammarRule* This,ISpeechGrammarRuleState **State) {
17279     return This->lpVtbl->AddState(This,State);
17280 }
17281 #endif
17282 #endif
17283 
17284 #endif
17285 
17286 
17287 #endif  /* __ISpeechGrammarRule_INTERFACE_DEFINED__ */
17288 
17289 /*****************************************************************************
17290  * ISpeechGrammarRules interface
17291  */
17292 #ifndef __ISpeechGrammarRules_INTERFACE_DEFINED__
17293 #define __ISpeechGrammarRules_INTERFACE_DEFINED__
17294 
17295 DEFINE_GUID(IID_ISpeechGrammarRules, 0x6ffa3b44, 0xfc2d, 0x40d1, 0x8a,0xfc, 0x32,0x91,0x1c,0x7f,0x1a,0xd1);
17296 #if defined(__cplusplus) && !defined(CINTERFACE)
17297 MIDL_INTERFACE("6ffa3b44-fc2d-40d1-8afc-32911c7f1ad1")
17298 ISpeechGrammarRules : public IDispatch
17299 {
17300     virtual HRESULT STDMETHODCALLTYPE get_Count(
17301         LONG *Count) = 0;
17302 
17303     virtual HRESULT STDMETHODCALLTYPE FindRule(
17304         VARIANT RuleNameOrId,
17305         ISpeechGrammarRule **Rule) = 0;
17306 
17307     virtual HRESULT STDMETHODCALLTYPE Item(
17308         LONG Index,
17309         ISpeechGrammarRule **Rule) = 0;
17310 
17311     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
17312         IUnknown **EnumVARIANT) = 0;
17313 
17314     virtual HRESULT STDMETHODCALLTYPE get_Dynamic(
17315         VARIANT_BOOL *Dynamic) = 0;
17316 
17317     virtual HRESULT STDMETHODCALLTYPE Add(
17318         BSTR RuleName,
17319         SpeechRuleAttributes Attributes,
17320         LONG RuleId,
17321         ISpeechGrammarRule **Rule) = 0;
17322 
17323     virtual HRESULT STDMETHODCALLTYPE Commit(
17324         ) = 0;
17325 
17326     virtual HRESULT STDMETHODCALLTYPE CommitAndSave(
17327         BSTR *ErrorText,
17328         VARIANT *SaveStream) = 0;
17329 
17330 };
17331 #ifdef __CRT_UUID_DECL
17332 __CRT_UUID_DECL(ISpeechGrammarRules, 0x6ffa3b44, 0xfc2d, 0x40d1, 0x8a,0xfc, 0x32,0x91,0x1c,0x7f,0x1a,0xd1)
17333 #endif
17334 #else
17335 typedef struct ISpeechGrammarRulesVtbl {
17336     BEGIN_INTERFACE
17337 
17338     /*** IUnknown methods ***/
17339     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17340         ISpeechGrammarRules *This,
17341         REFIID riid,
17342         void **ppvObject);
17343 
17344     ULONG (STDMETHODCALLTYPE *AddRef)(
17345         ISpeechGrammarRules *This);
17346 
17347     ULONG (STDMETHODCALLTYPE *Release)(
17348         ISpeechGrammarRules *This);
17349 
17350     /*** IDispatch methods ***/
17351     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17352         ISpeechGrammarRules *This,
17353         UINT *pctinfo);
17354 
17355     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17356         ISpeechGrammarRules *This,
17357         UINT iTInfo,
17358         LCID lcid,
17359         ITypeInfo **ppTInfo);
17360 
17361     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17362         ISpeechGrammarRules *This,
17363         REFIID riid,
17364         LPOLESTR *rgszNames,
17365         UINT cNames,
17366         LCID lcid,
17367         DISPID *rgDispId);
17368 
17369     HRESULT (STDMETHODCALLTYPE *Invoke)(
17370         ISpeechGrammarRules *This,
17371         DISPID dispIdMember,
17372         REFIID riid,
17373         LCID lcid,
17374         WORD wFlags,
17375         DISPPARAMS *pDispParams,
17376         VARIANT *pVarResult,
17377         EXCEPINFO *pExcepInfo,
17378         UINT *puArgErr);
17379 
17380     /*** ISpeechGrammarRules methods ***/
17381     HRESULT (STDMETHODCALLTYPE *get_Count)(
17382         ISpeechGrammarRules *This,
17383         LONG *Count);
17384 
17385     HRESULT (STDMETHODCALLTYPE *FindRule)(
17386         ISpeechGrammarRules *This,
17387         VARIANT RuleNameOrId,
17388         ISpeechGrammarRule **Rule);
17389 
17390     HRESULT (STDMETHODCALLTYPE *Item)(
17391         ISpeechGrammarRules *This,
17392         LONG Index,
17393         ISpeechGrammarRule **Rule);
17394 
17395     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
17396         ISpeechGrammarRules *This,
17397         IUnknown **EnumVARIANT);
17398 
17399     HRESULT (STDMETHODCALLTYPE *get_Dynamic)(
17400         ISpeechGrammarRules *This,
17401         VARIANT_BOOL *Dynamic);
17402 
17403     HRESULT (STDMETHODCALLTYPE *Add)(
17404         ISpeechGrammarRules *This,
17405         BSTR RuleName,
17406         SpeechRuleAttributes Attributes,
17407         LONG RuleId,
17408         ISpeechGrammarRule **Rule);
17409 
17410     HRESULT (STDMETHODCALLTYPE *Commit)(
17411         ISpeechGrammarRules *This);
17412 
17413     HRESULT (STDMETHODCALLTYPE *CommitAndSave)(
17414         ISpeechGrammarRules *This,
17415         BSTR *ErrorText,
17416         VARIANT *SaveStream);
17417 
17418     END_INTERFACE
17419 } ISpeechGrammarRulesVtbl;
17420 
17421 interface ISpeechGrammarRules {
17422     CONST_VTBL ISpeechGrammarRulesVtbl* lpVtbl;
17423 };
17424 
17425 #ifdef COBJMACROS
17426 #ifndef WIDL_C_INLINE_WRAPPERS
17427 /*** IUnknown methods ***/
17428 #define ISpeechGrammarRules_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17429 #define ISpeechGrammarRules_AddRef(This) (This)->lpVtbl->AddRef(This)
17430 #define ISpeechGrammarRules_Release(This) (This)->lpVtbl->Release(This)
17431 /*** IDispatch methods ***/
17432 #define ISpeechGrammarRules_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17433 #define ISpeechGrammarRules_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17434 #define ISpeechGrammarRules_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17435 #define ISpeechGrammarRules_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17436 /*** ISpeechGrammarRules methods ***/
17437 #define ISpeechGrammarRules_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
17438 #define ISpeechGrammarRules_FindRule(This,RuleNameOrId,Rule) (This)->lpVtbl->FindRule(This,RuleNameOrId,Rule)
17439 #define ISpeechGrammarRules_Item(This,Index,Rule) (This)->lpVtbl->Item(This,Index,Rule)
17440 #define ISpeechGrammarRules_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
17441 #define ISpeechGrammarRules_get_Dynamic(This,Dynamic) (This)->lpVtbl->get_Dynamic(This,Dynamic)
17442 #define ISpeechGrammarRules_Add(This,RuleName,Attributes,RuleId,Rule) (This)->lpVtbl->Add(This,RuleName,Attributes,RuleId,Rule)
17443 #define ISpeechGrammarRules_Commit(This) (This)->lpVtbl->Commit(This)
17444 #define ISpeechGrammarRules_CommitAndSave(This,ErrorText,SaveStream) (This)->lpVtbl->CommitAndSave(This,ErrorText,SaveStream)
17445 #else
17446 /*** IUnknown methods ***/
17447 static FORCEINLINE HRESULT ISpeechGrammarRules_QueryInterface(ISpeechGrammarRules* This,REFIID riid,void **ppvObject) {
17448     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17449 }
17450 static FORCEINLINE ULONG ISpeechGrammarRules_AddRef(ISpeechGrammarRules* This) {
17451     return This->lpVtbl->AddRef(This);
17452 }
17453 static FORCEINLINE ULONG ISpeechGrammarRules_Release(ISpeechGrammarRules* This) {
17454     return This->lpVtbl->Release(This);
17455 }
17456 /*** IDispatch methods ***/
17457 static FORCEINLINE HRESULT ISpeechGrammarRules_GetTypeInfoCount(ISpeechGrammarRules* This,UINT *pctinfo) {
17458     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17459 }
17460 static FORCEINLINE HRESULT ISpeechGrammarRules_GetTypeInfo(ISpeechGrammarRules* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17461     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17462 }
17463 static FORCEINLINE HRESULT ISpeechGrammarRules_GetIDsOfNames(ISpeechGrammarRules* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17464     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17465 }
17466 static FORCEINLINE HRESULT ISpeechGrammarRules_Invoke(ISpeechGrammarRules* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17467     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17468 }
17469 /*** ISpeechGrammarRules methods ***/
17470 static FORCEINLINE HRESULT ISpeechGrammarRules_get_Count(ISpeechGrammarRules* This,LONG *Count) {
17471     return This->lpVtbl->get_Count(This,Count);
17472 }
17473 static FORCEINLINE HRESULT ISpeechGrammarRules_FindRule(ISpeechGrammarRules* This,VARIANT RuleNameOrId,ISpeechGrammarRule **Rule) {
17474     return This->lpVtbl->FindRule(This,RuleNameOrId,Rule);
17475 }
17476 static FORCEINLINE HRESULT ISpeechGrammarRules_Item(ISpeechGrammarRules* This,LONG Index,ISpeechGrammarRule **Rule) {
17477     return This->lpVtbl->Item(This,Index,Rule);
17478 }
17479 static FORCEINLINE HRESULT ISpeechGrammarRules_get__NewEnum(ISpeechGrammarRules* This,IUnknown **EnumVARIANT) {
17480     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
17481 }
17482 static FORCEINLINE HRESULT ISpeechGrammarRules_get_Dynamic(ISpeechGrammarRules* This,VARIANT_BOOL *Dynamic) {
17483     return This->lpVtbl->get_Dynamic(This,Dynamic);
17484 }
17485 static FORCEINLINE HRESULT ISpeechGrammarRules_Add(ISpeechGrammarRules* This,BSTR RuleName,SpeechRuleAttributes Attributes,LONG RuleId,ISpeechGrammarRule **Rule) {
17486     return This->lpVtbl->Add(This,RuleName,Attributes,RuleId,Rule);
17487 }
17488 static FORCEINLINE HRESULT ISpeechGrammarRules_Commit(ISpeechGrammarRules* This) {
17489     return This->lpVtbl->Commit(This);
17490 }
17491 static FORCEINLINE HRESULT ISpeechGrammarRules_CommitAndSave(ISpeechGrammarRules* This,BSTR *ErrorText,VARIANT *SaveStream) {
17492     return This->lpVtbl->CommitAndSave(This,ErrorText,SaveStream);
17493 }
17494 #endif
17495 #endif
17496 
17497 #endif
17498 
17499 
17500 #endif  /* __ISpeechGrammarRules_INTERFACE_DEFINED__ */
17501 
17502 /*****************************************************************************
17503  * ISpeechGrammarRuleState interface
17504  */
17505 #ifndef __ISpeechGrammarRuleState_INTERFACE_DEFINED__
17506 #define __ISpeechGrammarRuleState_INTERFACE_DEFINED__
17507 
17508 DEFINE_GUID(IID_ISpeechGrammarRuleState, 0xd4286f2c, 0xee67, 0x45ae, 0xb9,0x28, 0x28,0xd6,0x95,0x36,0x2e,0xda);
17509 #if defined(__cplusplus) && !defined(CINTERFACE)
17510 MIDL_INTERFACE("d4286f2c-ee67-45ae-b928-28d695362eda")
17511 ISpeechGrammarRuleState : public IDispatch
17512 {
17513     virtual HRESULT STDMETHODCALLTYPE get_Rule(
17514         ISpeechGrammarRule **Rule) = 0;
17515 
17516     virtual HRESULT STDMETHODCALLTYPE get_Transitions(
17517         ISpeechGrammarRuleStateTransitions **Transitions) = 0;
17518 
17519     virtual HRESULT STDMETHODCALLTYPE AddWordTransition(
17520         ISpeechGrammarRuleState *DestState,
17521         const BSTR Words,
17522         const BSTR Separators = L" ",
17523         SpeechGrammarWordType Type = SGLexical,
17524         const BSTR PropertyName = L"",
17525         LONG PropertyId = 0,
17526         VARIANT *PropertyValue = 0,
17527         float Weight = 1) = 0;
17528 
17529     virtual HRESULT STDMETHODCALLTYPE AddRuleTransition(
17530         ISpeechGrammarRuleState *DestinationState,
17531         ISpeechGrammarRule *Rule,
17532         const BSTR PropertyName = L"",
17533         LONG PropertyId = 0,
17534         VARIANT *PropertyValue = 0,
17535         float Weight = 1) = 0;
17536 
17537     virtual HRESULT STDMETHODCALLTYPE AddSpecialTransition(
17538         ISpeechGrammarRuleState *DestinationState,
17539         SpeechSpecialTransitionType Type,
17540         const BSTR PropertyName = L"",
17541         LONG PropertyId = 0,
17542         VARIANT *PropertyValue = 0,
17543         float Weight = 1) = 0;
17544 
17545 };
17546 #ifdef __CRT_UUID_DECL
17547 __CRT_UUID_DECL(ISpeechGrammarRuleState, 0xd4286f2c, 0xee67, 0x45ae, 0xb9,0x28, 0x28,0xd6,0x95,0x36,0x2e,0xda)
17548 #endif
17549 #else
17550 typedef struct ISpeechGrammarRuleStateVtbl {
17551     BEGIN_INTERFACE
17552 
17553     /*** IUnknown methods ***/
17554     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17555         ISpeechGrammarRuleState *This,
17556         REFIID riid,
17557         void **ppvObject);
17558 
17559     ULONG (STDMETHODCALLTYPE *AddRef)(
17560         ISpeechGrammarRuleState *This);
17561 
17562     ULONG (STDMETHODCALLTYPE *Release)(
17563         ISpeechGrammarRuleState *This);
17564 
17565     /*** IDispatch methods ***/
17566     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17567         ISpeechGrammarRuleState *This,
17568         UINT *pctinfo);
17569 
17570     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17571         ISpeechGrammarRuleState *This,
17572         UINT iTInfo,
17573         LCID lcid,
17574         ITypeInfo **ppTInfo);
17575 
17576     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17577         ISpeechGrammarRuleState *This,
17578         REFIID riid,
17579         LPOLESTR *rgszNames,
17580         UINT cNames,
17581         LCID lcid,
17582         DISPID *rgDispId);
17583 
17584     HRESULT (STDMETHODCALLTYPE *Invoke)(
17585         ISpeechGrammarRuleState *This,
17586         DISPID dispIdMember,
17587         REFIID riid,
17588         LCID lcid,
17589         WORD wFlags,
17590         DISPPARAMS *pDispParams,
17591         VARIANT *pVarResult,
17592         EXCEPINFO *pExcepInfo,
17593         UINT *puArgErr);
17594 
17595     /*** ISpeechGrammarRuleState methods ***/
17596     HRESULT (STDMETHODCALLTYPE *get_Rule)(
17597         ISpeechGrammarRuleState *This,
17598         ISpeechGrammarRule **Rule);
17599 
17600     HRESULT (STDMETHODCALLTYPE *get_Transitions)(
17601         ISpeechGrammarRuleState *This,
17602         ISpeechGrammarRuleStateTransitions **Transitions);
17603 
17604     HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
17605         ISpeechGrammarRuleState *This,
17606         ISpeechGrammarRuleState *DestState,
17607         const BSTR Words,
17608         const BSTR Separators,
17609         SpeechGrammarWordType Type,
17610         const BSTR PropertyName,
17611         LONG PropertyId,
17612         VARIANT *PropertyValue,
17613         float Weight);
17614 
17615     HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
17616         ISpeechGrammarRuleState *This,
17617         ISpeechGrammarRuleState *DestinationState,
17618         ISpeechGrammarRule *Rule,
17619         const BSTR PropertyName,
17620         LONG PropertyId,
17621         VARIANT *PropertyValue,
17622         float Weight);
17623 
17624     HRESULT (STDMETHODCALLTYPE *AddSpecialTransition)(
17625         ISpeechGrammarRuleState *This,
17626         ISpeechGrammarRuleState *DestinationState,
17627         SpeechSpecialTransitionType Type,
17628         const BSTR PropertyName,
17629         LONG PropertyId,
17630         VARIANT *PropertyValue,
17631         float Weight);
17632 
17633     END_INTERFACE
17634 } ISpeechGrammarRuleStateVtbl;
17635 
17636 interface ISpeechGrammarRuleState {
17637     CONST_VTBL ISpeechGrammarRuleStateVtbl* lpVtbl;
17638 };
17639 
17640 #ifdef COBJMACROS
17641 #ifndef WIDL_C_INLINE_WRAPPERS
17642 /*** IUnknown methods ***/
17643 #define ISpeechGrammarRuleState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17644 #define ISpeechGrammarRuleState_AddRef(This) (This)->lpVtbl->AddRef(This)
17645 #define ISpeechGrammarRuleState_Release(This) (This)->lpVtbl->Release(This)
17646 /*** IDispatch methods ***/
17647 #define ISpeechGrammarRuleState_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17648 #define ISpeechGrammarRuleState_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17649 #define ISpeechGrammarRuleState_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17650 #define ISpeechGrammarRuleState_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17651 /*** ISpeechGrammarRuleState methods ***/
17652 #define ISpeechGrammarRuleState_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
17653 #define ISpeechGrammarRuleState_get_Transitions(This,Transitions) (This)->lpVtbl->get_Transitions(This,Transitions)
17654 #define ISpeechGrammarRuleState_AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight)
17655 #define ISpeechGrammarRuleState_AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight)
17656 #define ISpeechGrammarRuleState_AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight)
17657 #else
17658 /*** IUnknown methods ***/
17659 static FORCEINLINE HRESULT ISpeechGrammarRuleState_QueryInterface(ISpeechGrammarRuleState* This,REFIID riid,void **ppvObject) {
17660     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17661 }
17662 static FORCEINLINE ULONG ISpeechGrammarRuleState_AddRef(ISpeechGrammarRuleState* This) {
17663     return This->lpVtbl->AddRef(This);
17664 }
17665 static FORCEINLINE ULONG ISpeechGrammarRuleState_Release(ISpeechGrammarRuleState* This) {
17666     return This->lpVtbl->Release(This);
17667 }
17668 /*** IDispatch methods ***/
17669 static FORCEINLINE HRESULT ISpeechGrammarRuleState_GetTypeInfoCount(ISpeechGrammarRuleState* This,UINT *pctinfo) {
17670     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17671 }
17672 static FORCEINLINE HRESULT ISpeechGrammarRuleState_GetTypeInfo(ISpeechGrammarRuleState* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17673     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17674 }
17675 static FORCEINLINE HRESULT ISpeechGrammarRuleState_GetIDsOfNames(ISpeechGrammarRuleState* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17676     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17677 }
17678 static FORCEINLINE HRESULT ISpeechGrammarRuleState_Invoke(ISpeechGrammarRuleState* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17679     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17680 }
17681 /*** ISpeechGrammarRuleState methods ***/
17682 static FORCEINLINE HRESULT ISpeechGrammarRuleState_get_Rule(ISpeechGrammarRuleState* This,ISpeechGrammarRule **Rule) {
17683     return This->lpVtbl->get_Rule(This,Rule);
17684 }
17685 static FORCEINLINE HRESULT ISpeechGrammarRuleState_get_Transitions(ISpeechGrammarRuleState* This,ISpeechGrammarRuleStateTransitions **Transitions) {
17686     return This->lpVtbl->get_Transitions(This,Transitions);
17687 }
17688 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) {
17689     return This->lpVtbl->AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight);
17690 }
17691 static FORCEINLINE HRESULT ISpeechGrammarRuleState_AddRuleTransition(ISpeechGrammarRuleState* This,ISpeechGrammarRuleState *DestinationState,ISpeechGrammarRule *Rule,const BSTR PropertyName,LONG PropertyId,VARIANT *PropertyValue,float Weight) {
17692     return This->lpVtbl->AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight);
17693 }
17694 static FORCEINLINE HRESULT ISpeechGrammarRuleState_AddSpecialTransition(ISpeechGrammarRuleState* This,ISpeechGrammarRuleState *DestinationState,SpeechSpecialTransitionType Type,const BSTR PropertyName,LONG PropertyId,VARIANT *PropertyValue,float Weight) {
17695     return This->lpVtbl->AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight);
17696 }
17697 #endif
17698 #endif
17699 
17700 #endif
17701 
17702 
17703 #endif  /* __ISpeechGrammarRuleState_INTERFACE_DEFINED__ */
17704 
17705 /*****************************************************************************
17706  * ISpeechGrammarRuleStateTransitions interface
17707  */
17708 #ifndef __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__
17709 #define __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__
17710 
17711 DEFINE_GUID(IID_ISpeechGrammarRuleStateTransitions, 0xeabce657, 0x75bc, 0x44a2, 0xaa,0x7f, 0xc5,0x64,0x76,0x74,0x29,0x63);
17712 #if defined(__cplusplus) && !defined(CINTERFACE)
17713 MIDL_INTERFACE("eabce657-75bc-44a2-aa7f-c56476742963")
17714 ISpeechGrammarRuleStateTransitions : public IDispatch
17715 {
17716     virtual HRESULT STDMETHODCALLTYPE get_Count(
17717         LONG *Count) = 0;
17718 
17719     virtual HRESULT STDMETHODCALLTYPE Item(
17720         LONG Index,
17721         ISpeechGrammarRuleStateTransition **Transition) = 0;
17722 
17723     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
17724         IUnknown **EnumVARIANT) = 0;
17725 
17726 };
17727 #ifdef __CRT_UUID_DECL
17728 __CRT_UUID_DECL(ISpeechGrammarRuleStateTransitions, 0xeabce657, 0x75bc, 0x44a2, 0xaa,0x7f, 0xc5,0x64,0x76,0x74,0x29,0x63)
17729 #endif
17730 #else
17731 typedef struct ISpeechGrammarRuleStateTransitionsVtbl {
17732     BEGIN_INTERFACE
17733 
17734     /*** IUnknown methods ***/
17735     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17736         ISpeechGrammarRuleStateTransitions *This,
17737         REFIID riid,
17738         void **ppvObject);
17739 
17740     ULONG (STDMETHODCALLTYPE *AddRef)(
17741         ISpeechGrammarRuleStateTransitions *This);
17742 
17743     ULONG (STDMETHODCALLTYPE *Release)(
17744         ISpeechGrammarRuleStateTransitions *This);
17745 
17746     /*** IDispatch methods ***/
17747     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17748         ISpeechGrammarRuleStateTransitions *This,
17749         UINT *pctinfo);
17750 
17751     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17752         ISpeechGrammarRuleStateTransitions *This,
17753         UINT iTInfo,
17754         LCID lcid,
17755         ITypeInfo **ppTInfo);
17756 
17757     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17758         ISpeechGrammarRuleStateTransitions *This,
17759         REFIID riid,
17760         LPOLESTR *rgszNames,
17761         UINT cNames,
17762         LCID lcid,
17763         DISPID *rgDispId);
17764 
17765     HRESULT (STDMETHODCALLTYPE *Invoke)(
17766         ISpeechGrammarRuleStateTransitions *This,
17767         DISPID dispIdMember,
17768         REFIID riid,
17769         LCID lcid,
17770         WORD wFlags,
17771         DISPPARAMS *pDispParams,
17772         VARIANT *pVarResult,
17773         EXCEPINFO *pExcepInfo,
17774         UINT *puArgErr);
17775 
17776     /*** ISpeechGrammarRuleStateTransitions methods ***/
17777     HRESULT (STDMETHODCALLTYPE *get_Count)(
17778         ISpeechGrammarRuleStateTransitions *This,
17779         LONG *Count);
17780 
17781     HRESULT (STDMETHODCALLTYPE *Item)(
17782         ISpeechGrammarRuleStateTransitions *This,
17783         LONG Index,
17784         ISpeechGrammarRuleStateTransition **Transition);
17785 
17786     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
17787         ISpeechGrammarRuleStateTransitions *This,
17788         IUnknown **EnumVARIANT);
17789 
17790     END_INTERFACE
17791 } ISpeechGrammarRuleStateTransitionsVtbl;
17792 
17793 interface ISpeechGrammarRuleStateTransitions {
17794     CONST_VTBL ISpeechGrammarRuleStateTransitionsVtbl* lpVtbl;
17795 };
17796 
17797 #ifdef COBJMACROS
17798 #ifndef WIDL_C_INLINE_WRAPPERS
17799 /*** IUnknown methods ***/
17800 #define ISpeechGrammarRuleStateTransitions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17801 #define ISpeechGrammarRuleStateTransitions_AddRef(This) (This)->lpVtbl->AddRef(This)
17802 #define ISpeechGrammarRuleStateTransitions_Release(This) (This)->lpVtbl->Release(This)
17803 /*** IDispatch methods ***/
17804 #define ISpeechGrammarRuleStateTransitions_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17805 #define ISpeechGrammarRuleStateTransitions_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17806 #define ISpeechGrammarRuleStateTransitions_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17807 #define ISpeechGrammarRuleStateTransitions_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17808 /*** ISpeechGrammarRuleStateTransitions methods ***/
17809 #define ISpeechGrammarRuleStateTransitions_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
17810 #define ISpeechGrammarRuleStateTransitions_Item(This,Index,Transition) (This)->lpVtbl->Item(This,Index,Transition)
17811 #define ISpeechGrammarRuleStateTransitions_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
17812 #else
17813 /*** IUnknown methods ***/
17814 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_QueryInterface(ISpeechGrammarRuleStateTransitions* This,REFIID riid,void **ppvObject) {
17815     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17816 }
17817 static FORCEINLINE ULONG ISpeechGrammarRuleStateTransitions_AddRef(ISpeechGrammarRuleStateTransitions* This) {
17818     return This->lpVtbl->AddRef(This);
17819 }
17820 static FORCEINLINE ULONG ISpeechGrammarRuleStateTransitions_Release(ISpeechGrammarRuleStateTransitions* This) {
17821     return This->lpVtbl->Release(This);
17822 }
17823 /*** IDispatch methods ***/
17824 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_GetTypeInfoCount(ISpeechGrammarRuleStateTransitions* This,UINT *pctinfo) {
17825     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17826 }
17827 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_GetTypeInfo(ISpeechGrammarRuleStateTransitions* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17828     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17829 }
17830 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_GetIDsOfNames(ISpeechGrammarRuleStateTransitions* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17831     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17832 }
17833 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_Invoke(ISpeechGrammarRuleStateTransitions* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17834     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17835 }
17836 /*** ISpeechGrammarRuleStateTransitions methods ***/
17837 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_get_Count(ISpeechGrammarRuleStateTransitions* This,LONG *Count) {
17838     return This->lpVtbl->get_Count(This,Count);
17839 }
17840 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_Item(ISpeechGrammarRuleStateTransitions* This,LONG Index,ISpeechGrammarRuleStateTransition **Transition) {
17841     return This->lpVtbl->Item(This,Index,Transition);
17842 }
17843 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_get__NewEnum(ISpeechGrammarRuleStateTransitions* This,IUnknown **EnumVARIANT) {
17844     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
17845 }
17846 #endif
17847 #endif
17848 
17849 #endif
17850 
17851 
17852 #endif  /* __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__ */
17853 
17854 /*****************************************************************************
17855  * ISpeechGrammarRuleStateTransition interface
17856  */
17857 #ifndef __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__
17858 #define __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__
17859 
17860 DEFINE_GUID(IID_ISpeechGrammarRuleStateTransition, 0xcafd1db1, 0x41d1, 0x4a06, 0x98,0x63, 0xe2,0xe8,0x1d,0xa1,0x7a,0x9a);
17861 #if defined(__cplusplus) && !defined(CINTERFACE)
17862 MIDL_INTERFACE("cafd1db1-41d1-4a06-9863-e2e81da17a9a")
17863 ISpeechGrammarRuleStateTransition : public IDispatch
17864 {
17865     virtual HRESULT STDMETHODCALLTYPE get_Type(
17866         SpeechGrammarRuleStateTransitionType *Type) = 0;
17867 
17868     virtual HRESULT STDMETHODCALLTYPE get_Text(
17869         BSTR *Text) = 0;
17870 
17871     virtual HRESULT STDMETHODCALLTYPE get_Rule(
17872         ISpeechGrammarRule **Rule) = 0;
17873 
17874     virtual HRESULT STDMETHODCALLTYPE get_Weight(
17875         VARIANT *Weight) = 0;
17876 
17877     virtual HRESULT STDMETHODCALLTYPE get_PropertyName(
17878         BSTR *PropertyName) = 0;
17879 
17880     virtual HRESULT STDMETHODCALLTYPE get_PropertyId(
17881         LONG *PropertyId) = 0;
17882 
17883     virtual HRESULT STDMETHODCALLTYPE get_PropertyValue(
17884         VARIANT *PropertyValue) = 0;
17885 
17886     virtual HRESULT STDMETHODCALLTYPE get_NextState(
17887         ISpeechGrammarRuleState **NextState) = 0;
17888 
17889 };
17890 #ifdef __CRT_UUID_DECL
17891 __CRT_UUID_DECL(ISpeechGrammarRuleStateTransition, 0xcafd1db1, 0x41d1, 0x4a06, 0x98,0x63, 0xe2,0xe8,0x1d,0xa1,0x7a,0x9a)
17892 #endif
17893 #else
17894 typedef struct ISpeechGrammarRuleStateTransitionVtbl {
17895     BEGIN_INTERFACE
17896 
17897     /*** IUnknown methods ***/
17898     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17899         ISpeechGrammarRuleStateTransition *This,
17900         REFIID riid,
17901         void **ppvObject);
17902 
17903     ULONG (STDMETHODCALLTYPE *AddRef)(
17904         ISpeechGrammarRuleStateTransition *This);
17905 
17906     ULONG (STDMETHODCALLTYPE *Release)(
17907         ISpeechGrammarRuleStateTransition *This);
17908 
17909     /*** IDispatch methods ***/
17910     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17911         ISpeechGrammarRuleStateTransition *This,
17912         UINT *pctinfo);
17913 
17914     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17915         ISpeechGrammarRuleStateTransition *This,
17916         UINT iTInfo,
17917         LCID lcid,
17918         ITypeInfo **ppTInfo);
17919 
17920     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17921         ISpeechGrammarRuleStateTransition *This,
17922         REFIID riid,
17923         LPOLESTR *rgszNames,
17924         UINT cNames,
17925         LCID lcid,
17926         DISPID *rgDispId);
17927 
17928     HRESULT (STDMETHODCALLTYPE *Invoke)(
17929         ISpeechGrammarRuleStateTransition *This,
17930         DISPID dispIdMember,
17931         REFIID riid,
17932         LCID lcid,
17933         WORD wFlags,
17934         DISPPARAMS *pDispParams,
17935         VARIANT *pVarResult,
17936         EXCEPINFO *pExcepInfo,
17937         UINT *puArgErr);
17938 
17939     /*** ISpeechGrammarRuleStateTransition methods ***/
17940     HRESULT (STDMETHODCALLTYPE *get_Type)(
17941         ISpeechGrammarRuleStateTransition *This,
17942         SpeechGrammarRuleStateTransitionType *Type);
17943 
17944     HRESULT (STDMETHODCALLTYPE *get_Text)(
17945         ISpeechGrammarRuleStateTransition *This,
17946         BSTR *Text);
17947 
17948     HRESULT (STDMETHODCALLTYPE *get_Rule)(
17949         ISpeechGrammarRuleStateTransition *This,
17950         ISpeechGrammarRule **Rule);
17951 
17952     HRESULT (STDMETHODCALLTYPE *get_Weight)(
17953         ISpeechGrammarRuleStateTransition *This,
17954         VARIANT *Weight);
17955 
17956     HRESULT (STDMETHODCALLTYPE *get_PropertyName)(
17957         ISpeechGrammarRuleStateTransition *This,
17958         BSTR *PropertyName);
17959 
17960     HRESULT (STDMETHODCALLTYPE *get_PropertyId)(
17961         ISpeechGrammarRuleStateTransition *This,
17962         LONG *PropertyId);
17963 
17964     HRESULT (STDMETHODCALLTYPE *get_PropertyValue)(
17965         ISpeechGrammarRuleStateTransition *This,
17966         VARIANT *PropertyValue);
17967 
17968     HRESULT (STDMETHODCALLTYPE *get_NextState)(
17969         ISpeechGrammarRuleStateTransition *This,
17970         ISpeechGrammarRuleState **NextState);
17971 
17972     END_INTERFACE
17973 } ISpeechGrammarRuleStateTransitionVtbl;
17974 
17975 interface ISpeechGrammarRuleStateTransition {
17976     CONST_VTBL ISpeechGrammarRuleStateTransitionVtbl* lpVtbl;
17977 };
17978 
17979 #ifdef COBJMACROS
17980 #ifndef WIDL_C_INLINE_WRAPPERS
17981 /*** IUnknown methods ***/
17982 #define ISpeechGrammarRuleStateTransition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17983 #define ISpeechGrammarRuleStateTransition_AddRef(This) (This)->lpVtbl->AddRef(This)
17984 #define ISpeechGrammarRuleStateTransition_Release(This) (This)->lpVtbl->Release(This)
17985 /*** IDispatch methods ***/
17986 #define ISpeechGrammarRuleStateTransition_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17987 #define ISpeechGrammarRuleStateTransition_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17988 #define ISpeechGrammarRuleStateTransition_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17989 #define ISpeechGrammarRuleStateTransition_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17990 /*** ISpeechGrammarRuleStateTransition methods ***/
17991 #define ISpeechGrammarRuleStateTransition_get_Type(This,Type) (This)->lpVtbl->get_Type(This,Type)
17992 #define ISpeechGrammarRuleStateTransition_get_Text(This,Text) (This)->lpVtbl->get_Text(This,Text)
17993 #define ISpeechGrammarRuleStateTransition_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
17994 #define ISpeechGrammarRuleStateTransition_get_Weight(This,Weight) (This)->lpVtbl->get_Weight(This,Weight)
17995 #define ISpeechGrammarRuleStateTransition_get_PropertyName(This,PropertyName) (This)->lpVtbl->get_PropertyName(This,PropertyName)
17996 #define ISpeechGrammarRuleStateTransition_get_PropertyId(This,PropertyId) (This)->lpVtbl->get_PropertyId(This,PropertyId)
17997 #define ISpeechGrammarRuleStateTransition_get_PropertyValue(This,PropertyValue) (This)->lpVtbl->get_PropertyValue(This,PropertyValue)
17998 #define ISpeechGrammarRuleStateTransition_get_NextState(This,NextState) (This)->lpVtbl->get_NextState(This,NextState)
17999 #else
18000 /*** IUnknown methods ***/
18001 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_QueryInterface(ISpeechGrammarRuleStateTransition* This,REFIID riid,void **ppvObject) {
18002     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18003 }
18004 static FORCEINLINE ULONG ISpeechGrammarRuleStateTransition_AddRef(ISpeechGrammarRuleStateTransition* This) {
18005     return This->lpVtbl->AddRef(This);
18006 }
18007 static FORCEINLINE ULONG ISpeechGrammarRuleStateTransition_Release(ISpeechGrammarRuleStateTransition* This) {
18008     return This->lpVtbl->Release(This);
18009 }
18010 /*** IDispatch methods ***/
18011 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_GetTypeInfoCount(ISpeechGrammarRuleStateTransition* This,UINT *pctinfo) {
18012     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18013 }
18014 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_GetTypeInfo(ISpeechGrammarRuleStateTransition* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18015     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18016 }
18017 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_GetIDsOfNames(ISpeechGrammarRuleStateTransition* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18018     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18019 }
18020 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_Invoke(ISpeechGrammarRuleStateTransition* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18021     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18022 }
18023 /*** ISpeechGrammarRuleStateTransition methods ***/
18024 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_Type(ISpeechGrammarRuleStateTransition* This,SpeechGrammarRuleStateTransitionType *Type) {
18025     return This->lpVtbl->get_Type(This,Type);
18026 }
18027 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_Text(ISpeechGrammarRuleStateTransition* This,BSTR *Text) {
18028     return This->lpVtbl->get_Text(This,Text);
18029 }
18030 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_Rule(ISpeechGrammarRuleStateTransition* This,ISpeechGrammarRule **Rule) {
18031     return This->lpVtbl->get_Rule(This,Rule);
18032 }
18033 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_Weight(ISpeechGrammarRuleStateTransition* This,VARIANT *Weight) {
18034     return This->lpVtbl->get_Weight(This,Weight);
18035 }
18036 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_PropertyName(ISpeechGrammarRuleStateTransition* This,BSTR *PropertyName) {
18037     return This->lpVtbl->get_PropertyName(This,PropertyName);
18038 }
18039 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_PropertyId(ISpeechGrammarRuleStateTransition* This,LONG *PropertyId) {
18040     return This->lpVtbl->get_PropertyId(This,PropertyId);
18041 }
18042 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_PropertyValue(ISpeechGrammarRuleStateTransition* This,VARIANT *PropertyValue) {
18043     return This->lpVtbl->get_PropertyValue(This,PropertyValue);
18044 }
18045 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_NextState(ISpeechGrammarRuleStateTransition* This,ISpeechGrammarRuleState **NextState) {
18046     return This->lpVtbl->get_NextState(This,NextState);
18047 }
18048 #endif
18049 #endif
18050 
18051 #endif
18052 
18053 
18054 #endif  /* __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__ */
18055 
18056 /*****************************************************************************
18057  * ISpeechTextSelectionInformation interface
18058  */
18059 #ifndef __ISpeechTextSelectionInformation_INTERFACE_DEFINED__
18060 #define __ISpeechTextSelectionInformation_INTERFACE_DEFINED__
18061 
18062 DEFINE_GUID(IID_ISpeechTextSelectionInformation, 0x3b9c7e7a, 0x6eee, 0x4ded, 0x90,0x92, 0x11,0x65,0x72,0x79,0xad,0xbe);
18063 #if defined(__cplusplus) && !defined(CINTERFACE)
18064 MIDL_INTERFACE("3b9c7e7a-6eee-4ded-9092-11657279adbe")
18065 ISpeechTextSelectionInformation : public IDispatch
18066 {
18067     virtual HRESULT STDMETHODCALLTYPE put_ActiveOffset(
18068         LONG ActiveOffset) = 0;
18069 
18070     virtual HRESULT STDMETHODCALLTYPE get_ActiveOffset(
18071         LONG *ActiveOffset) = 0;
18072 
18073     virtual HRESULT STDMETHODCALLTYPE put_ActiveLength(
18074         LONG ActiveLength) = 0;
18075 
18076     virtual HRESULT STDMETHODCALLTYPE get_ActiveLength(
18077         LONG *ActiveLength) = 0;
18078 
18079     virtual HRESULT STDMETHODCALLTYPE put_SelectionOffset(
18080         LONG SelectionOffset) = 0;
18081 
18082     virtual HRESULT STDMETHODCALLTYPE get_SelectionOffset(
18083         LONG *SelectionOffset) = 0;
18084 
18085     virtual HRESULT STDMETHODCALLTYPE put_SelectionLength(
18086         LONG SelectionLength) = 0;
18087 
18088     virtual HRESULT STDMETHODCALLTYPE get_SelectionLength(
18089         LONG *SelectionLength) = 0;
18090 
18091 };
18092 #ifdef __CRT_UUID_DECL
18093 __CRT_UUID_DECL(ISpeechTextSelectionInformation, 0x3b9c7e7a, 0x6eee, 0x4ded, 0x90,0x92, 0x11,0x65,0x72,0x79,0xad,0xbe)
18094 #endif
18095 #else
18096 typedef struct ISpeechTextSelectionInformationVtbl {
18097     BEGIN_INTERFACE
18098 
18099     /*** IUnknown methods ***/
18100     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18101         ISpeechTextSelectionInformation *This,
18102         REFIID riid,
18103         void **ppvObject);
18104 
18105     ULONG (STDMETHODCALLTYPE *AddRef)(
18106         ISpeechTextSelectionInformation *This);
18107 
18108     ULONG (STDMETHODCALLTYPE *Release)(
18109         ISpeechTextSelectionInformation *This);
18110 
18111     /*** IDispatch methods ***/
18112     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18113         ISpeechTextSelectionInformation *This,
18114         UINT *pctinfo);
18115 
18116     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18117         ISpeechTextSelectionInformation *This,
18118         UINT iTInfo,
18119         LCID lcid,
18120         ITypeInfo **ppTInfo);
18121 
18122     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18123         ISpeechTextSelectionInformation *This,
18124         REFIID riid,
18125         LPOLESTR *rgszNames,
18126         UINT cNames,
18127         LCID lcid,
18128         DISPID *rgDispId);
18129 
18130     HRESULT (STDMETHODCALLTYPE *Invoke)(
18131         ISpeechTextSelectionInformation *This,
18132         DISPID dispIdMember,
18133         REFIID riid,
18134         LCID lcid,
18135         WORD wFlags,
18136         DISPPARAMS *pDispParams,
18137         VARIANT *pVarResult,
18138         EXCEPINFO *pExcepInfo,
18139         UINT *puArgErr);
18140 
18141     /*** ISpeechTextSelectionInformation methods ***/
18142     HRESULT (STDMETHODCALLTYPE *put_ActiveOffset)(
18143         ISpeechTextSelectionInformation *This,
18144         LONG ActiveOffset);
18145 
18146     HRESULT (STDMETHODCALLTYPE *get_ActiveOffset)(
18147         ISpeechTextSelectionInformation *This,
18148         LONG *ActiveOffset);
18149 
18150     HRESULT (STDMETHODCALLTYPE *put_ActiveLength)(
18151         ISpeechTextSelectionInformation *This,
18152         LONG ActiveLength);
18153 
18154     HRESULT (STDMETHODCALLTYPE *get_ActiveLength)(
18155         ISpeechTextSelectionInformation *This,
18156         LONG *ActiveLength);
18157 
18158     HRESULT (STDMETHODCALLTYPE *put_SelectionOffset)(
18159         ISpeechTextSelectionInformation *This,
18160         LONG SelectionOffset);
18161 
18162     HRESULT (STDMETHODCALLTYPE *get_SelectionOffset)(
18163         ISpeechTextSelectionInformation *This,
18164         LONG *SelectionOffset);
18165 
18166     HRESULT (STDMETHODCALLTYPE *put_SelectionLength)(
18167         ISpeechTextSelectionInformation *This,
18168         LONG SelectionLength);
18169 
18170     HRESULT (STDMETHODCALLTYPE *get_SelectionLength)(
18171         ISpeechTextSelectionInformation *This,
18172         LONG *SelectionLength);
18173 
18174     END_INTERFACE
18175 } ISpeechTextSelectionInformationVtbl;
18176 
18177 interface ISpeechTextSelectionInformation {
18178     CONST_VTBL ISpeechTextSelectionInformationVtbl* lpVtbl;
18179 };
18180 
18181 #ifdef COBJMACROS
18182 #ifndef WIDL_C_INLINE_WRAPPERS
18183 /*** IUnknown methods ***/
18184 #define ISpeechTextSelectionInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18185 #define ISpeechTextSelectionInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
18186 #define ISpeechTextSelectionInformation_Release(This) (This)->lpVtbl->Release(This)
18187 /*** IDispatch methods ***/
18188 #define ISpeechTextSelectionInformation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18189 #define ISpeechTextSelectionInformation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18190 #define ISpeechTextSelectionInformation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18191 #define ISpeechTextSelectionInformation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18192 /*** ISpeechTextSelectionInformation methods ***/
18193 #define ISpeechTextSelectionInformation_put_ActiveOffset(This,ActiveOffset) (This)->lpVtbl->put_ActiveOffset(This,ActiveOffset)
18194 #define ISpeechTextSelectionInformation_get_ActiveOffset(This,ActiveOffset) (This)->lpVtbl->get_ActiveOffset(This,ActiveOffset)
18195 #define ISpeechTextSelectionInformation_put_ActiveLength(This,ActiveLength) (This)->lpVtbl->put_ActiveLength(This,ActiveLength)
18196 #define ISpeechTextSelectionInformation_get_ActiveLength(This,ActiveLength) (This)->lpVtbl->get_ActiveLength(This,ActiveLength)
18197 #define ISpeechTextSelectionInformation_put_SelectionOffset(This,SelectionOffset) (This)->lpVtbl->put_SelectionOffset(This,SelectionOffset)
18198 #define ISpeechTextSelectionInformation_get_SelectionOffset(This,SelectionOffset) (This)->lpVtbl->get_SelectionOffset(This,SelectionOffset)
18199 #define ISpeechTextSelectionInformation_put_SelectionLength(This,SelectionLength) (This)->lpVtbl->put_SelectionLength(This,SelectionLength)
18200 #define ISpeechTextSelectionInformation_get_SelectionLength(This,SelectionLength) (This)->lpVtbl->get_SelectionLength(This,SelectionLength)
18201 #else
18202 /*** IUnknown methods ***/
18203 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_QueryInterface(ISpeechTextSelectionInformation* This,REFIID riid,void **ppvObject) {
18204     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18205 }
18206 static FORCEINLINE ULONG ISpeechTextSelectionInformation_AddRef(ISpeechTextSelectionInformation* This) {
18207     return This->lpVtbl->AddRef(This);
18208 }
18209 static FORCEINLINE ULONG ISpeechTextSelectionInformation_Release(ISpeechTextSelectionInformation* This) {
18210     return This->lpVtbl->Release(This);
18211 }
18212 /*** IDispatch methods ***/
18213 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_GetTypeInfoCount(ISpeechTextSelectionInformation* This,UINT *pctinfo) {
18214     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18215 }
18216 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_GetTypeInfo(ISpeechTextSelectionInformation* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18217     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18218 }
18219 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_GetIDsOfNames(ISpeechTextSelectionInformation* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18220     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18221 }
18222 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_Invoke(ISpeechTextSelectionInformation* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18223     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18224 }
18225 /*** ISpeechTextSelectionInformation methods ***/
18226 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_put_ActiveOffset(ISpeechTextSelectionInformation* This,LONG ActiveOffset) {
18227     return This->lpVtbl->put_ActiveOffset(This,ActiveOffset);
18228 }
18229 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_get_ActiveOffset(ISpeechTextSelectionInformation* This,LONG *ActiveOffset) {
18230     return This->lpVtbl->get_ActiveOffset(This,ActiveOffset);
18231 }
18232 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_put_ActiveLength(ISpeechTextSelectionInformation* This,LONG ActiveLength) {
18233     return This->lpVtbl->put_ActiveLength(This,ActiveLength);
18234 }
18235 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_get_ActiveLength(ISpeechTextSelectionInformation* This,LONG *ActiveLength) {
18236     return This->lpVtbl->get_ActiveLength(This,ActiveLength);
18237 }
18238 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_put_SelectionOffset(ISpeechTextSelectionInformation* This,LONG SelectionOffset) {
18239     return This->lpVtbl->put_SelectionOffset(This,SelectionOffset);
18240 }
18241 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_get_SelectionOffset(ISpeechTextSelectionInformation* This,LONG *SelectionOffset) {
18242     return This->lpVtbl->get_SelectionOffset(This,SelectionOffset);
18243 }
18244 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_put_SelectionLength(ISpeechTextSelectionInformation* This,LONG SelectionLength) {
18245     return This->lpVtbl->put_SelectionLength(This,SelectionLength);
18246 }
18247 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_get_SelectionLength(ISpeechTextSelectionInformation* This,LONG *SelectionLength) {
18248     return This->lpVtbl->get_SelectionLength(This,SelectionLength);
18249 }
18250 #endif
18251 #endif
18252 
18253 #endif
18254 
18255 
18256 #endif  /* __ISpeechTextSelectionInformation_INTERFACE_DEFINED__ */
18257 
18258 /*****************************************************************************
18259  * ISpeechRecoResult interface
18260  */
18261 #ifndef __ISpeechRecoResult_INTERFACE_DEFINED__
18262 #define __ISpeechRecoResult_INTERFACE_DEFINED__
18263 
18264 DEFINE_GUID(IID_ISpeechRecoResult, 0xed2879cf, 0xced9, 0x4ee6, 0xa5,0x34, 0xde,0x01,0x91,0xd5,0x46,0x8d);
18265 #if defined(__cplusplus) && !defined(CINTERFACE)
18266 MIDL_INTERFACE("ed2879cf-ced9-4ee6-a534-de0191d5468d")
18267 ISpeechRecoResult : public IDispatch
18268 {
18269     virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
18270         ISpeechRecoContext **RecoContext) = 0;
18271 
18272     virtual HRESULT STDMETHODCALLTYPE get_Times(
18273         ISpeechRecoResultTimes **Times) = 0;
18274 
18275     virtual HRESULT STDMETHODCALLTYPE putref_AudioFormat(
18276         ISpeechAudioFormat *Format) = 0;
18277 
18278     virtual HRESULT STDMETHODCALLTYPE get_AudioFormat(
18279         ISpeechAudioFormat **Format) = 0;
18280 
18281     virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
18282         ISpeechPhraseInfo **PhraseInfo) = 0;
18283 
18284     virtual HRESULT STDMETHODCALLTYPE Alternates(
18285         LONG RequestCount,
18286         LONG StartElement,
18287         LONG Elements,
18288         ISpeechPhraseAlternates **Alternates) = 0;
18289 
18290     virtual HRESULT STDMETHODCALLTYPE Audio(
18291         LONG StartElement,
18292         LONG Elements,
18293         ISpeechMemoryStream **Stream) = 0;
18294 
18295     virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
18296         LONG StartElement,
18297         LONG Elements,
18298         SpeechVoiceSpeakFlags Flags,
18299         LONG *StreamNumber) = 0;
18300 
18301     virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
18302         VARIANT *ResultBlock) = 0;
18303 
18304     virtual HRESULT STDMETHODCALLTYPE DiscardResultInfo(
18305         SpeechDiscardType ValueTypes) = 0;
18306 
18307 };
18308 #ifdef __CRT_UUID_DECL
18309 __CRT_UUID_DECL(ISpeechRecoResult, 0xed2879cf, 0xced9, 0x4ee6, 0xa5,0x34, 0xde,0x01,0x91,0xd5,0x46,0x8d)
18310 #endif
18311 #else
18312 typedef struct ISpeechRecoResultVtbl {
18313     BEGIN_INTERFACE
18314 
18315     /*** IUnknown methods ***/
18316     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18317         ISpeechRecoResult *This,
18318         REFIID riid,
18319         void **ppvObject);
18320 
18321     ULONG (STDMETHODCALLTYPE *AddRef)(
18322         ISpeechRecoResult *This);
18323 
18324     ULONG (STDMETHODCALLTYPE *Release)(
18325         ISpeechRecoResult *This);
18326 
18327     /*** IDispatch methods ***/
18328     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18329         ISpeechRecoResult *This,
18330         UINT *pctinfo);
18331 
18332     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18333         ISpeechRecoResult *This,
18334         UINT iTInfo,
18335         LCID lcid,
18336         ITypeInfo **ppTInfo);
18337 
18338     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18339         ISpeechRecoResult *This,
18340         REFIID riid,
18341         LPOLESTR *rgszNames,
18342         UINT cNames,
18343         LCID lcid,
18344         DISPID *rgDispId);
18345 
18346     HRESULT (STDMETHODCALLTYPE *Invoke)(
18347         ISpeechRecoResult *This,
18348         DISPID dispIdMember,
18349         REFIID riid,
18350         LCID lcid,
18351         WORD wFlags,
18352         DISPPARAMS *pDispParams,
18353         VARIANT *pVarResult,
18354         EXCEPINFO *pExcepInfo,
18355         UINT *puArgErr);
18356 
18357     /*** ISpeechRecoResult methods ***/
18358     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
18359         ISpeechRecoResult *This,
18360         ISpeechRecoContext **RecoContext);
18361 
18362     HRESULT (STDMETHODCALLTYPE *get_Times)(
18363         ISpeechRecoResult *This,
18364         ISpeechRecoResultTimes **Times);
18365 
18366     HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
18367         ISpeechRecoResult *This,
18368         ISpeechAudioFormat *Format);
18369 
18370     HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
18371         ISpeechRecoResult *This,
18372         ISpeechAudioFormat **Format);
18373 
18374     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
18375         ISpeechRecoResult *This,
18376         ISpeechPhraseInfo **PhraseInfo);
18377 
18378     HRESULT (STDMETHODCALLTYPE *Alternates)(
18379         ISpeechRecoResult *This,
18380         LONG RequestCount,
18381         LONG StartElement,
18382         LONG Elements,
18383         ISpeechPhraseAlternates **Alternates);
18384 
18385     HRESULT (STDMETHODCALLTYPE *Audio)(
18386         ISpeechRecoResult *This,
18387         LONG StartElement,
18388         LONG Elements,
18389         ISpeechMemoryStream **Stream);
18390 
18391     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
18392         ISpeechRecoResult *This,
18393         LONG StartElement,
18394         LONG Elements,
18395         SpeechVoiceSpeakFlags Flags,
18396         LONG *StreamNumber);
18397 
18398     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
18399         ISpeechRecoResult *This,
18400         VARIANT *ResultBlock);
18401 
18402     HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
18403         ISpeechRecoResult *This,
18404         SpeechDiscardType ValueTypes);
18405 
18406     END_INTERFACE
18407 } ISpeechRecoResultVtbl;
18408 
18409 interface ISpeechRecoResult {
18410     CONST_VTBL ISpeechRecoResultVtbl* lpVtbl;
18411 };
18412 
18413 #ifdef COBJMACROS
18414 #ifndef WIDL_C_INLINE_WRAPPERS
18415 /*** IUnknown methods ***/
18416 #define ISpeechRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18417 #define ISpeechRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
18418 #define ISpeechRecoResult_Release(This) (This)->lpVtbl->Release(This)
18419 /*** IDispatch methods ***/
18420 #define ISpeechRecoResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18421 #define ISpeechRecoResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18422 #define ISpeechRecoResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18423 #define ISpeechRecoResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18424 /*** ISpeechRecoResult methods ***/
18425 #define ISpeechRecoResult_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
18426 #define ISpeechRecoResult_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
18427 #define ISpeechRecoResult_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
18428 #define ISpeechRecoResult_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
18429 #define ISpeechRecoResult_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
18430 #define ISpeechRecoResult_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
18431 #define ISpeechRecoResult_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
18432 #define ISpeechRecoResult_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
18433 #define ISpeechRecoResult_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
18434 #define ISpeechRecoResult_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
18435 #else
18436 /*** IUnknown methods ***/
18437 static FORCEINLINE HRESULT ISpeechRecoResult_QueryInterface(ISpeechRecoResult* This,REFIID riid,void **ppvObject) {
18438     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18439 }
18440 static FORCEINLINE ULONG ISpeechRecoResult_AddRef(ISpeechRecoResult* This) {
18441     return This->lpVtbl->AddRef(This);
18442 }
18443 static FORCEINLINE ULONG ISpeechRecoResult_Release(ISpeechRecoResult* This) {
18444     return This->lpVtbl->Release(This);
18445 }
18446 /*** IDispatch methods ***/
18447 static FORCEINLINE HRESULT ISpeechRecoResult_GetTypeInfoCount(ISpeechRecoResult* This,UINT *pctinfo) {
18448     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18449 }
18450 static FORCEINLINE HRESULT ISpeechRecoResult_GetTypeInfo(ISpeechRecoResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18451     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18452 }
18453 static FORCEINLINE HRESULT ISpeechRecoResult_GetIDsOfNames(ISpeechRecoResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18454     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18455 }
18456 static FORCEINLINE HRESULT ISpeechRecoResult_Invoke(ISpeechRecoResult* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18457     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18458 }
18459 /*** ISpeechRecoResult methods ***/
18460 static FORCEINLINE HRESULT ISpeechRecoResult_get_RecoContext(ISpeechRecoResult* This,ISpeechRecoContext **RecoContext) {
18461     return This->lpVtbl->get_RecoContext(This,RecoContext);
18462 }
18463 static FORCEINLINE HRESULT ISpeechRecoResult_get_Times(ISpeechRecoResult* This,ISpeechRecoResultTimes **Times) {
18464     return This->lpVtbl->get_Times(This,Times);
18465 }
18466 static FORCEINLINE HRESULT ISpeechRecoResult_putref_AudioFormat(ISpeechRecoResult* This,ISpeechAudioFormat *Format) {
18467     return This->lpVtbl->putref_AudioFormat(This,Format);
18468 }
18469 static FORCEINLINE HRESULT ISpeechRecoResult_get_AudioFormat(ISpeechRecoResult* This,ISpeechAudioFormat **Format) {
18470     return This->lpVtbl->get_AudioFormat(This,Format);
18471 }
18472 static FORCEINLINE HRESULT ISpeechRecoResult_get_PhraseInfo(ISpeechRecoResult* This,ISpeechPhraseInfo **PhraseInfo) {
18473     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
18474 }
18475 static FORCEINLINE HRESULT ISpeechRecoResult_Alternates(ISpeechRecoResult* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
18476     return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
18477 }
18478 static FORCEINLINE HRESULT ISpeechRecoResult_Audio(ISpeechRecoResult* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
18479     return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
18480 }
18481 static FORCEINLINE HRESULT ISpeechRecoResult_SpeakAudio(ISpeechRecoResult* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
18482     return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
18483 }
18484 static FORCEINLINE HRESULT ISpeechRecoResult_SaveToMemory(ISpeechRecoResult* This,VARIANT *ResultBlock) {
18485     return This->lpVtbl->SaveToMemory(This,ResultBlock);
18486 }
18487 static FORCEINLINE HRESULT ISpeechRecoResult_DiscardResultInfo(ISpeechRecoResult* This,SpeechDiscardType ValueTypes) {
18488     return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
18489 }
18490 #endif
18491 #endif
18492 
18493 #endif
18494 
18495 
18496 #endif  /* __ISpeechRecoResult_INTERFACE_DEFINED__ */
18497 
18498 /*****************************************************************************
18499  * ISpeechXMLRecoResult interface
18500  */
18501 #ifndef __ISpeechXMLRecoResult_INTERFACE_DEFINED__
18502 #define __ISpeechXMLRecoResult_INTERFACE_DEFINED__
18503 
18504 DEFINE_GUID(IID_ISpeechXMLRecoResult, 0xaaec54af, 0x8f85, 0x4924, 0x94,0x4d, 0xb7,0x9d,0x39,0xd7,0x2e,0x19);
18505 #if defined(__cplusplus) && !defined(CINTERFACE)
18506 MIDL_INTERFACE("aaec54af-8f85-4924-944d-b79d39d72e19")
18507 ISpeechXMLRecoResult : public ISpeechRecoResult
18508 {
18509     virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
18510         SPXMLRESULTOPTIONS Options,
18511         BSTR *pResult) = 0;
18512 
18513     virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
18514         LONG *LineNumber,
18515         BSTR *ScriptLine,
18516         BSTR *Source,
18517         BSTR *Description,
18518         LONG *ResultCode,
18519         VARIANT_BOOL *IsError) = 0;
18520 
18521 };
18522 #ifdef __CRT_UUID_DECL
18523 __CRT_UUID_DECL(ISpeechXMLRecoResult, 0xaaec54af, 0x8f85, 0x4924, 0x94,0x4d, 0xb7,0x9d,0x39,0xd7,0x2e,0x19)
18524 #endif
18525 #else
18526 typedef struct ISpeechXMLRecoResultVtbl {
18527     BEGIN_INTERFACE
18528 
18529     /*** IUnknown methods ***/
18530     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18531         ISpeechXMLRecoResult *This,
18532         REFIID riid,
18533         void **ppvObject);
18534 
18535     ULONG (STDMETHODCALLTYPE *AddRef)(
18536         ISpeechXMLRecoResult *This);
18537 
18538     ULONG (STDMETHODCALLTYPE *Release)(
18539         ISpeechXMLRecoResult *This);
18540 
18541     /*** IDispatch methods ***/
18542     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18543         ISpeechXMLRecoResult *This,
18544         UINT *pctinfo);
18545 
18546     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18547         ISpeechXMLRecoResult *This,
18548         UINT iTInfo,
18549         LCID lcid,
18550         ITypeInfo **ppTInfo);
18551 
18552     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18553         ISpeechXMLRecoResult *This,
18554         REFIID riid,
18555         LPOLESTR *rgszNames,
18556         UINT cNames,
18557         LCID lcid,
18558         DISPID *rgDispId);
18559 
18560     HRESULT (STDMETHODCALLTYPE *Invoke)(
18561         ISpeechXMLRecoResult *This,
18562         DISPID dispIdMember,
18563         REFIID riid,
18564         LCID lcid,
18565         WORD wFlags,
18566         DISPPARAMS *pDispParams,
18567         VARIANT *pVarResult,
18568         EXCEPINFO *pExcepInfo,
18569         UINT *puArgErr);
18570 
18571     /*** ISpeechRecoResult methods ***/
18572     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
18573         ISpeechXMLRecoResult *This,
18574         ISpeechRecoContext **RecoContext);
18575 
18576     HRESULT (STDMETHODCALLTYPE *get_Times)(
18577         ISpeechXMLRecoResult *This,
18578         ISpeechRecoResultTimes **Times);
18579 
18580     HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
18581         ISpeechXMLRecoResult *This,
18582         ISpeechAudioFormat *Format);
18583 
18584     HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
18585         ISpeechXMLRecoResult *This,
18586         ISpeechAudioFormat **Format);
18587 
18588     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
18589         ISpeechXMLRecoResult *This,
18590         ISpeechPhraseInfo **PhraseInfo);
18591 
18592     HRESULT (STDMETHODCALLTYPE *Alternates)(
18593         ISpeechXMLRecoResult *This,
18594         LONG RequestCount,
18595         LONG StartElement,
18596         LONG Elements,
18597         ISpeechPhraseAlternates **Alternates);
18598 
18599     HRESULT (STDMETHODCALLTYPE *Audio)(
18600         ISpeechXMLRecoResult *This,
18601         LONG StartElement,
18602         LONG Elements,
18603         ISpeechMemoryStream **Stream);
18604 
18605     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
18606         ISpeechXMLRecoResult *This,
18607         LONG StartElement,
18608         LONG Elements,
18609         SpeechVoiceSpeakFlags Flags,
18610         LONG *StreamNumber);
18611 
18612     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
18613         ISpeechXMLRecoResult *This,
18614         VARIANT *ResultBlock);
18615 
18616     HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
18617         ISpeechXMLRecoResult *This,
18618         SpeechDiscardType ValueTypes);
18619 
18620     /*** ISpeechXMLRecoResult methods ***/
18621     HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
18622         ISpeechXMLRecoResult *This,
18623         SPXMLRESULTOPTIONS Options,
18624         BSTR *pResult);
18625 
18626     HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
18627         ISpeechXMLRecoResult *This,
18628         LONG *LineNumber,
18629         BSTR *ScriptLine,
18630         BSTR *Source,
18631         BSTR *Description,
18632         LONG *ResultCode,
18633         VARIANT_BOOL *IsError);
18634 
18635     END_INTERFACE
18636 } ISpeechXMLRecoResultVtbl;
18637 
18638 interface ISpeechXMLRecoResult {
18639     CONST_VTBL ISpeechXMLRecoResultVtbl* lpVtbl;
18640 };
18641 
18642 #ifdef COBJMACROS
18643 #ifndef WIDL_C_INLINE_WRAPPERS
18644 /*** IUnknown methods ***/
18645 #define ISpeechXMLRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18646 #define ISpeechXMLRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
18647 #define ISpeechXMLRecoResult_Release(This) (This)->lpVtbl->Release(This)
18648 /*** IDispatch methods ***/
18649 #define ISpeechXMLRecoResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18650 #define ISpeechXMLRecoResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18651 #define ISpeechXMLRecoResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18652 #define ISpeechXMLRecoResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18653 /*** ISpeechRecoResult methods ***/
18654 #define ISpeechXMLRecoResult_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
18655 #define ISpeechXMLRecoResult_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
18656 #define ISpeechXMLRecoResult_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
18657 #define ISpeechXMLRecoResult_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
18658 #define ISpeechXMLRecoResult_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
18659 #define ISpeechXMLRecoResult_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
18660 #define ISpeechXMLRecoResult_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
18661 #define ISpeechXMLRecoResult_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
18662 #define ISpeechXMLRecoResult_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
18663 #define ISpeechXMLRecoResult_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
18664 /*** ISpeechXMLRecoResult methods ***/
18665 #define ISpeechXMLRecoResult_GetXMLResult(This,Options,pResult) (This)->lpVtbl->GetXMLResult(This,Options,pResult)
18666 #define ISpeechXMLRecoResult_GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError) (This)->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError)
18667 #else
18668 /*** IUnknown methods ***/
18669 static FORCEINLINE HRESULT ISpeechXMLRecoResult_QueryInterface(ISpeechXMLRecoResult* This,REFIID riid,void **ppvObject) {
18670     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18671 }
18672 static FORCEINLINE ULONG ISpeechXMLRecoResult_AddRef(ISpeechXMLRecoResult* This) {
18673     return This->lpVtbl->AddRef(This);
18674 }
18675 static FORCEINLINE ULONG ISpeechXMLRecoResult_Release(ISpeechXMLRecoResult* This) {
18676     return This->lpVtbl->Release(This);
18677 }
18678 /*** IDispatch methods ***/
18679 static FORCEINLINE HRESULT ISpeechXMLRecoResult_GetTypeInfoCount(ISpeechXMLRecoResult* This,UINT *pctinfo) {
18680     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18681 }
18682 static FORCEINLINE HRESULT ISpeechXMLRecoResult_GetTypeInfo(ISpeechXMLRecoResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18683     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18684 }
18685 static FORCEINLINE HRESULT ISpeechXMLRecoResult_GetIDsOfNames(ISpeechXMLRecoResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18686     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18687 }
18688 static FORCEINLINE HRESULT ISpeechXMLRecoResult_Invoke(ISpeechXMLRecoResult* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18689     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18690 }
18691 /*** ISpeechRecoResult methods ***/
18692 static FORCEINLINE HRESULT ISpeechXMLRecoResult_get_RecoContext(ISpeechXMLRecoResult* This,ISpeechRecoContext **RecoContext) {
18693     return This->lpVtbl->get_RecoContext(This,RecoContext);
18694 }
18695 static FORCEINLINE HRESULT ISpeechXMLRecoResult_get_Times(ISpeechXMLRecoResult* This,ISpeechRecoResultTimes **Times) {
18696     return This->lpVtbl->get_Times(This,Times);
18697 }
18698 static FORCEINLINE HRESULT ISpeechXMLRecoResult_putref_AudioFormat(ISpeechXMLRecoResult* This,ISpeechAudioFormat *Format) {
18699     return This->lpVtbl->putref_AudioFormat(This,Format);
18700 }
18701 static FORCEINLINE HRESULT ISpeechXMLRecoResult_get_AudioFormat(ISpeechXMLRecoResult* This,ISpeechAudioFormat **Format) {
18702     return This->lpVtbl->get_AudioFormat(This,Format);
18703 }
18704 static FORCEINLINE HRESULT ISpeechXMLRecoResult_get_PhraseInfo(ISpeechXMLRecoResult* This,ISpeechPhraseInfo **PhraseInfo) {
18705     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
18706 }
18707 static FORCEINLINE HRESULT ISpeechXMLRecoResult_Alternates(ISpeechXMLRecoResult* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
18708     return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
18709 }
18710 static FORCEINLINE HRESULT ISpeechXMLRecoResult_Audio(ISpeechXMLRecoResult* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
18711     return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
18712 }
18713 static FORCEINLINE HRESULT ISpeechXMLRecoResult_SpeakAudio(ISpeechXMLRecoResult* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
18714     return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
18715 }
18716 static FORCEINLINE HRESULT ISpeechXMLRecoResult_SaveToMemory(ISpeechXMLRecoResult* This,VARIANT *ResultBlock) {
18717     return This->lpVtbl->SaveToMemory(This,ResultBlock);
18718 }
18719 static FORCEINLINE HRESULT ISpeechXMLRecoResult_DiscardResultInfo(ISpeechXMLRecoResult* This,SpeechDiscardType ValueTypes) {
18720     return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
18721 }
18722 /*** ISpeechXMLRecoResult methods ***/
18723 static FORCEINLINE HRESULT ISpeechXMLRecoResult_GetXMLResult(ISpeechXMLRecoResult* This,SPXMLRESULTOPTIONS Options,BSTR *pResult) {
18724     return This->lpVtbl->GetXMLResult(This,Options,pResult);
18725 }
18726 static FORCEINLINE HRESULT ISpeechXMLRecoResult_GetXMLErrorInfo(ISpeechXMLRecoResult* This,LONG *LineNumber,BSTR *ScriptLine,BSTR *Source,BSTR *Description,LONG *ResultCode,VARIANT_BOOL *IsError) {
18727     return This->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError);
18728 }
18729 #endif
18730 #endif
18731 
18732 #endif
18733 
18734 
18735 #endif  /* __ISpeechXMLRecoResult_INTERFACE_DEFINED__ */
18736 
18737 /*****************************************************************************
18738  * ISpeechRecoResult2 interface
18739  */
18740 #ifndef __ISpeechRecoResult2_INTERFACE_DEFINED__
18741 #define __ISpeechRecoResult2_INTERFACE_DEFINED__
18742 
18743 DEFINE_GUID(IID_ISpeechRecoResult2, 0x8e0a246d, 0xd3c8, 0x45de, 0x86,0x57, 0x04,0x29,0x0c,0x45,0x8c,0x3c);
18744 #if defined(__cplusplus) && !defined(CINTERFACE)
18745 MIDL_INTERFACE("8e0a246d-d3c8-45de-8657-04290c458c3c")
18746 ISpeechRecoResult2 : public ISpeechRecoResult
18747 {
18748     virtual HRESULT STDMETHODCALLTYPE SetTextFeedback(
18749         BSTR Feedback,
18750         VARIANT_BOOL WasSuccessful) = 0;
18751 
18752 };
18753 #ifdef __CRT_UUID_DECL
18754 __CRT_UUID_DECL(ISpeechRecoResult2, 0x8e0a246d, 0xd3c8, 0x45de, 0x86,0x57, 0x04,0x29,0x0c,0x45,0x8c,0x3c)
18755 #endif
18756 #else
18757 typedef struct ISpeechRecoResult2Vtbl {
18758     BEGIN_INTERFACE
18759 
18760     /*** IUnknown methods ***/
18761     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18762         ISpeechRecoResult2 *This,
18763         REFIID riid,
18764         void **ppvObject);
18765 
18766     ULONG (STDMETHODCALLTYPE *AddRef)(
18767         ISpeechRecoResult2 *This);
18768 
18769     ULONG (STDMETHODCALLTYPE *Release)(
18770         ISpeechRecoResult2 *This);
18771 
18772     /*** IDispatch methods ***/
18773     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18774         ISpeechRecoResult2 *This,
18775         UINT *pctinfo);
18776 
18777     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18778         ISpeechRecoResult2 *This,
18779         UINT iTInfo,
18780         LCID lcid,
18781         ITypeInfo **ppTInfo);
18782 
18783     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18784         ISpeechRecoResult2 *This,
18785         REFIID riid,
18786         LPOLESTR *rgszNames,
18787         UINT cNames,
18788         LCID lcid,
18789         DISPID *rgDispId);
18790 
18791     HRESULT (STDMETHODCALLTYPE *Invoke)(
18792         ISpeechRecoResult2 *This,
18793         DISPID dispIdMember,
18794         REFIID riid,
18795         LCID lcid,
18796         WORD wFlags,
18797         DISPPARAMS *pDispParams,
18798         VARIANT *pVarResult,
18799         EXCEPINFO *pExcepInfo,
18800         UINT *puArgErr);
18801 
18802     /*** ISpeechRecoResult methods ***/
18803     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
18804         ISpeechRecoResult2 *This,
18805         ISpeechRecoContext **RecoContext);
18806 
18807     HRESULT (STDMETHODCALLTYPE *get_Times)(
18808         ISpeechRecoResult2 *This,
18809         ISpeechRecoResultTimes **Times);
18810 
18811     HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
18812         ISpeechRecoResult2 *This,
18813         ISpeechAudioFormat *Format);
18814 
18815     HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
18816         ISpeechRecoResult2 *This,
18817         ISpeechAudioFormat **Format);
18818 
18819     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
18820         ISpeechRecoResult2 *This,
18821         ISpeechPhraseInfo **PhraseInfo);
18822 
18823     HRESULT (STDMETHODCALLTYPE *Alternates)(
18824         ISpeechRecoResult2 *This,
18825         LONG RequestCount,
18826         LONG StartElement,
18827         LONG Elements,
18828         ISpeechPhraseAlternates **Alternates);
18829 
18830     HRESULT (STDMETHODCALLTYPE *Audio)(
18831         ISpeechRecoResult2 *This,
18832         LONG StartElement,
18833         LONG Elements,
18834         ISpeechMemoryStream **Stream);
18835 
18836     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
18837         ISpeechRecoResult2 *This,
18838         LONG StartElement,
18839         LONG Elements,
18840         SpeechVoiceSpeakFlags Flags,
18841         LONG *StreamNumber);
18842 
18843     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
18844         ISpeechRecoResult2 *This,
18845         VARIANT *ResultBlock);
18846 
18847     HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
18848         ISpeechRecoResult2 *This,
18849         SpeechDiscardType ValueTypes);
18850 
18851     /*** ISpeechRecoResult2 methods ***/
18852     HRESULT (STDMETHODCALLTYPE *SetTextFeedback)(
18853         ISpeechRecoResult2 *This,
18854         BSTR Feedback,
18855         VARIANT_BOOL WasSuccessful);
18856 
18857     END_INTERFACE
18858 } ISpeechRecoResult2Vtbl;
18859 
18860 interface ISpeechRecoResult2 {
18861     CONST_VTBL ISpeechRecoResult2Vtbl* lpVtbl;
18862 };
18863 
18864 #ifdef COBJMACROS
18865 #ifndef WIDL_C_INLINE_WRAPPERS
18866 /*** IUnknown methods ***/
18867 #define ISpeechRecoResult2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18868 #define ISpeechRecoResult2_AddRef(This) (This)->lpVtbl->AddRef(This)
18869 #define ISpeechRecoResult2_Release(This) (This)->lpVtbl->Release(This)
18870 /*** IDispatch methods ***/
18871 #define ISpeechRecoResult2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18872 #define ISpeechRecoResult2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18873 #define ISpeechRecoResult2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18874 #define ISpeechRecoResult2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18875 /*** ISpeechRecoResult methods ***/
18876 #define ISpeechRecoResult2_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
18877 #define ISpeechRecoResult2_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
18878 #define ISpeechRecoResult2_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
18879 #define ISpeechRecoResult2_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
18880 #define ISpeechRecoResult2_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
18881 #define ISpeechRecoResult2_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
18882 #define ISpeechRecoResult2_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
18883 #define ISpeechRecoResult2_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
18884 #define ISpeechRecoResult2_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
18885 #define ISpeechRecoResult2_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
18886 /*** ISpeechRecoResult2 methods ***/
18887 #define ISpeechRecoResult2_SetTextFeedback(This,Feedback,WasSuccessful) (This)->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful)
18888 #else
18889 /*** IUnknown methods ***/
18890 static FORCEINLINE HRESULT ISpeechRecoResult2_QueryInterface(ISpeechRecoResult2* This,REFIID riid,void **ppvObject) {
18891     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18892 }
18893 static FORCEINLINE ULONG ISpeechRecoResult2_AddRef(ISpeechRecoResult2* This) {
18894     return This->lpVtbl->AddRef(This);
18895 }
18896 static FORCEINLINE ULONG ISpeechRecoResult2_Release(ISpeechRecoResult2* This) {
18897     return This->lpVtbl->Release(This);
18898 }
18899 /*** IDispatch methods ***/
18900 static FORCEINLINE HRESULT ISpeechRecoResult2_GetTypeInfoCount(ISpeechRecoResult2* This,UINT *pctinfo) {
18901     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18902 }
18903 static FORCEINLINE HRESULT ISpeechRecoResult2_GetTypeInfo(ISpeechRecoResult2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18904     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18905 }
18906 static FORCEINLINE HRESULT ISpeechRecoResult2_GetIDsOfNames(ISpeechRecoResult2* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18907     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18908 }
18909 static FORCEINLINE HRESULT ISpeechRecoResult2_Invoke(ISpeechRecoResult2* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18910     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18911 }
18912 /*** ISpeechRecoResult methods ***/
18913 static FORCEINLINE HRESULT ISpeechRecoResult2_get_RecoContext(ISpeechRecoResult2* This,ISpeechRecoContext **RecoContext) {
18914     return This->lpVtbl->get_RecoContext(This,RecoContext);
18915 }
18916 static FORCEINLINE HRESULT ISpeechRecoResult2_get_Times(ISpeechRecoResult2* This,ISpeechRecoResultTimes **Times) {
18917     return This->lpVtbl->get_Times(This,Times);
18918 }
18919 static FORCEINLINE HRESULT ISpeechRecoResult2_putref_AudioFormat(ISpeechRecoResult2* This,ISpeechAudioFormat *Format) {
18920     return This->lpVtbl->putref_AudioFormat(This,Format);
18921 }
18922 static FORCEINLINE HRESULT ISpeechRecoResult2_get_AudioFormat(ISpeechRecoResult2* This,ISpeechAudioFormat **Format) {
18923     return This->lpVtbl->get_AudioFormat(This,Format);
18924 }
18925 static FORCEINLINE HRESULT ISpeechRecoResult2_get_PhraseInfo(ISpeechRecoResult2* This,ISpeechPhraseInfo **PhraseInfo) {
18926     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
18927 }
18928 static FORCEINLINE HRESULT ISpeechRecoResult2_Alternates(ISpeechRecoResult2* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
18929     return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
18930 }
18931 static FORCEINLINE HRESULT ISpeechRecoResult2_Audio(ISpeechRecoResult2* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
18932     return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
18933 }
18934 static FORCEINLINE HRESULT ISpeechRecoResult2_SpeakAudio(ISpeechRecoResult2* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
18935     return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
18936 }
18937 static FORCEINLINE HRESULT ISpeechRecoResult2_SaveToMemory(ISpeechRecoResult2* This,VARIANT *ResultBlock) {
18938     return This->lpVtbl->SaveToMemory(This,ResultBlock);
18939 }
18940 static FORCEINLINE HRESULT ISpeechRecoResult2_DiscardResultInfo(ISpeechRecoResult2* This,SpeechDiscardType ValueTypes) {
18941     return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
18942 }
18943 /*** ISpeechRecoResult2 methods ***/
18944 static FORCEINLINE HRESULT ISpeechRecoResult2_SetTextFeedback(ISpeechRecoResult2* This,BSTR Feedback,VARIANT_BOOL WasSuccessful) {
18945     return This->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful);
18946 }
18947 #endif
18948 #endif
18949 
18950 #endif
18951 
18952 
18953 #endif  /* __ISpeechRecoResult2_INTERFACE_DEFINED__ */
18954 
18955 /*****************************************************************************
18956  * ISpeechRecoResultDispatch interface
18957  */
18958 #ifndef __ISpeechRecoResultDispatch_INTERFACE_DEFINED__
18959 #define __ISpeechRecoResultDispatch_INTERFACE_DEFINED__
18960 
18961 DEFINE_GUID(IID_ISpeechRecoResultDispatch, 0x6d60eb64, 0xaced, 0x40a6, 0xbb,0xf3, 0x4e,0x55,0x7f,0x71,0xde,0xe2);
18962 #if defined(__cplusplus) && !defined(CINTERFACE)
18963 MIDL_INTERFACE("6d60eb64-aced-40a6-bbf3-4e557f71dee2")
18964 ISpeechRecoResultDispatch : public IDispatch
18965 {
18966     virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
18967         ISpeechRecoContext **RecoContext) = 0;
18968 
18969     virtual HRESULT STDMETHODCALLTYPE get_Times(
18970         ISpeechRecoResultTimes **Times) = 0;
18971 
18972     virtual HRESULT STDMETHODCALLTYPE putref_AudioFormat(
18973         ISpeechAudioFormat *Format) = 0;
18974 
18975     virtual HRESULT STDMETHODCALLTYPE get_AudioFormat(
18976         ISpeechAudioFormat **Format) = 0;
18977 
18978     virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
18979         ISpeechPhraseInfo **PhraseInfo) = 0;
18980 
18981     virtual HRESULT STDMETHODCALLTYPE Alternates(
18982         LONG RequestCount,
18983         LONG StartElement,
18984         LONG Elements,
18985         ISpeechPhraseAlternates **Alternates) = 0;
18986 
18987     virtual HRESULT STDMETHODCALLTYPE Audio(
18988         LONG StartElement,
18989         LONG Elements,
18990         ISpeechMemoryStream **Stream) = 0;
18991 
18992     virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
18993         LONG StartElement,
18994         LONG Elements,
18995         SpeechVoiceSpeakFlags Flags,
18996         LONG *StreamNumber) = 0;
18997 
18998     virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
18999         VARIANT *ResultBlock) = 0;
19000 
19001     virtual HRESULT STDMETHODCALLTYPE DiscardResultInfo(
19002         SpeechDiscardType ValueTypes) = 0;
19003 
19004     virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
19005         SPXMLRESULTOPTIONS Options,
19006         BSTR *pResult) = 0;
19007 
19008     virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
19009         LONG *LineNumber,
19010         BSTR *ScriptLine,
19011         BSTR *Source,
19012         BSTR *Description,
19013         HRESULT *ResultCode,
19014         VARIANT_BOOL *IsError) = 0;
19015 
19016     virtual HRESULT STDMETHODCALLTYPE SetTextFeedback(
19017         BSTR Feedback,
19018         VARIANT_BOOL WasSuccessful) = 0;
19019 
19020 };
19021 #ifdef __CRT_UUID_DECL
19022 __CRT_UUID_DECL(ISpeechRecoResultDispatch, 0x6d60eb64, 0xaced, 0x40a6, 0xbb,0xf3, 0x4e,0x55,0x7f,0x71,0xde,0xe2)
19023 #endif
19024 #else
19025 typedef struct ISpeechRecoResultDispatchVtbl {
19026     BEGIN_INTERFACE
19027 
19028     /*** IUnknown methods ***/
19029     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19030         ISpeechRecoResultDispatch *This,
19031         REFIID riid,
19032         void **ppvObject);
19033 
19034     ULONG (STDMETHODCALLTYPE *AddRef)(
19035         ISpeechRecoResultDispatch *This);
19036 
19037     ULONG (STDMETHODCALLTYPE *Release)(
19038         ISpeechRecoResultDispatch *This);
19039 
19040     /*** IDispatch methods ***/
19041     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19042         ISpeechRecoResultDispatch *This,
19043         UINT *pctinfo);
19044 
19045     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19046         ISpeechRecoResultDispatch *This,
19047         UINT iTInfo,
19048         LCID lcid,
19049         ITypeInfo **ppTInfo);
19050 
19051     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19052         ISpeechRecoResultDispatch *This,
19053         REFIID riid,
19054         LPOLESTR *rgszNames,
19055         UINT cNames,
19056         LCID lcid,
19057         DISPID *rgDispId);
19058 
19059     HRESULT (STDMETHODCALLTYPE *Invoke)(
19060         ISpeechRecoResultDispatch *This,
19061         DISPID dispIdMember,
19062         REFIID riid,
19063         LCID lcid,
19064         WORD wFlags,
19065         DISPPARAMS *pDispParams,
19066         VARIANT *pVarResult,
19067         EXCEPINFO *pExcepInfo,
19068         UINT *puArgErr);
19069 
19070     /*** ISpeechRecoResultDispatch methods ***/
19071     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
19072         ISpeechRecoResultDispatch *This,
19073         ISpeechRecoContext **RecoContext);
19074 
19075     HRESULT (STDMETHODCALLTYPE *get_Times)(
19076         ISpeechRecoResultDispatch *This,
19077         ISpeechRecoResultTimes **Times);
19078 
19079     HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
19080         ISpeechRecoResultDispatch *This,
19081         ISpeechAudioFormat *Format);
19082 
19083     HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
19084         ISpeechRecoResultDispatch *This,
19085         ISpeechAudioFormat **Format);
19086 
19087     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
19088         ISpeechRecoResultDispatch *This,
19089         ISpeechPhraseInfo **PhraseInfo);
19090 
19091     HRESULT (STDMETHODCALLTYPE *Alternates)(
19092         ISpeechRecoResultDispatch *This,
19093         LONG RequestCount,
19094         LONG StartElement,
19095         LONG Elements,
19096         ISpeechPhraseAlternates **Alternates);
19097 
19098     HRESULT (STDMETHODCALLTYPE *Audio)(
19099         ISpeechRecoResultDispatch *This,
19100         LONG StartElement,
19101         LONG Elements,
19102         ISpeechMemoryStream **Stream);
19103 
19104     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
19105         ISpeechRecoResultDispatch *This,
19106         LONG StartElement,
19107         LONG Elements,
19108         SpeechVoiceSpeakFlags Flags,
19109         LONG *StreamNumber);
19110 
19111     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
19112         ISpeechRecoResultDispatch *This,
19113         VARIANT *ResultBlock);
19114 
19115     HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
19116         ISpeechRecoResultDispatch *This,
19117         SpeechDiscardType ValueTypes);
19118 
19119     HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
19120         ISpeechRecoResultDispatch *This,
19121         SPXMLRESULTOPTIONS Options,
19122         BSTR *pResult);
19123 
19124     HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
19125         ISpeechRecoResultDispatch *This,
19126         LONG *LineNumber,
19127         BSTR *ScriptLine,
19128         BSTR *Source,
19129         BSTR *Description,
19130         HRESULT *ResultCode,
19131         VARIANT_BOOL *IsError);
19132 
19133     HRESULT (STDMETHODCALLTYPE *SetTextFeedback)(
19134         ISpeechRecoResultDispatch *This,
19135         BSTR Feedback,
19136         VARIANT_BOOL WasSuccessful);
19137 
19138     END_INTERFACE
19139 } ISpeechRecoResultDispatchVtbl;
19140 
19141 interface ISpeechRecoResultDispatch {
19142     CONST_VTBL ISpeechRecoResultDispatchVtbl* lpVtbl;
19143 };
19144 
19145 #ifdef COBJMACROS
19146 #ifndef WIDL_C_INLINE_WRAPPERS
19147 /*** IUnknown methods ***/
19148 #define ISpeechRecoResultDispatch_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19149 #define ISpeechRecoResultDispatch_AddRef(This) (This)->lpVtbl->AddRef(This)
19150 #define ISpeechRecoResultDispatch_Release(This) (This)->lpVtbl->Release(This)
19151 /*** IDispatch methods ***/
19152 #define ISpeechRecoResultDispatch_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19153 #define ISpeechRecoResultDispatch_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19154 #define ISpeechRecoResultDispatch_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19155 #define ISpeechRecoResultDispatch_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19156 /*** ISpeechRecoResultDispatch methods ***/
19157 #define ISpeechRecoResultDispatch_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
19158 #define ISpeechRecoResultDispatch_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
19159 #define ISpeechRecoResultDispatch_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
19160 #define ISpeechRecoResultDispatch_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
19161 #define ISpeechRecoResultDispatch_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
19162 #define ISpeechRecoResultDispatch_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
19163 #define ISpeechRecoResultDispatch_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
19164 #define ISpeechRecoResultDispatch_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
19165 #define ISpeechRecoResultDispatch_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
19166 #define ISpeechRecoResultDispatch_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
19167 #define ISpeechRecoResultDispatch_GetXMLResult(This,Options,pResult) (This)->lpVtbl->GetXMLResult(This,Options,pResult)
19168 #define ISpeechRecoResultDispatch_GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError) (This)->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError)
19169 #define ISpeechRecoResultDispatch_SetTextFeedback(This,Feedback,WasSuccessful) (This)->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful)
19170 #else
19171 /*** IUnknown methods ***/
19172 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_QueryInterface(ISpeechRecoResultDispatch* This,REFIID riid,void **ppvObject) {
19173     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19174 }
19175 static FORCEINLINE ULONG ISpeechRecoResultDispatch_AddRef(ISpeechRecoResultDispatch* This) {
19176     return This->lpVtbl->AddRef(This);
19177 }
19178 static FORCEINLINE ULONG ISpeechRecoResultDispatch_Release(ISpeechRecoResultDispatch* This) {
19179     return This->lpVtbl->Release(This);
19180 }
19181 /*** IDispatch methods ***/
19182 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_GetTypeInfoCount(ISpeechRecoResultDispatch* This,UINT *pctinfo) {
19183     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19184 }
19185 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_GetTypeInfo(ISpeechRecoResultDispatch* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19186     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19187 }
19188 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_GetIDsOfNames(ISpeechRecoResultDispatch* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19189     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19190 }
19191 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_Invoke(ISpeechRecoResultDispatch* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19192     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19193 }
19194 /*** ISpeechRecoResultDispatch methods ***/
19195 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_get_RecoContext(ISpeechRecoResultDispatch* This,ISpeechRecoContext **RecoContext) {
19196     return This->lpVtbl->get_RecoContext(This,RecoContext);
19197 }
19198 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_get_Times(ISpeechRecoResultDispatch* This,ISpeechRecoResultTimes **Times) {
19199     return This->lpVtbl->get_Times(This,Times);
19200 }
19201 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_putref_AudioFormat(ISpeechRecoResultDispatch* This,ISpeechAudioFormat *Format) {
19202     return This->lpVtbl->putref_AudioFormat(This,Format);
19203 }
19204 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_get_AudioFormat(ISpeechRecoResultDispatch* This,ISpeechAudioFormat **Format) {
19205     return This->lpVtbl->get_AudioFormat(This,Format);
19206 }
19207 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_get_PhraseInfo(ISpeechRecoResultDispatch* This,ISpeechPhraseInfo **PhraseInfo) {
19208     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
19209 }
19210 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_Alternates(ISpeechRecoResultDispatch* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
19211     return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
19212 }
19213 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_Audio(ISpeechRecoResultDispatch* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
19214     return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
19215 }
19216 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_SpeakAudio(ISpeechRecoResultDispatch* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
19217     return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
19218 }
19219 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_SaveToMemory(ISpeechRecoResultDispatch* This,VARIANT *ResultBlock) {
19220     return This->lpVtbl->SaveToMemory(This,ResultBlock);
19221 }
19222 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_DiscardResultInfo(ISpeechRecoResultDispatch* This,SpeechDiscardType ValueTypes) {
19223     return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
19224 }
19225 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_GetXMLResult(ISpeechRecoResultDispatch* This,SPXMLRESULTOPTIONS Options,BSTR *pResult) {
19226     return This->lpVtbl->GetXMLResult(This,Options,pResult);
19227 }
19228 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_GetXMLErrorInfo(ISpeechRecoResultDispatch* This,LONG *LineNumber,BSTR *ScriptLine,BSTR *Source,BSTR *Description,HRESULT *ResultCode,VARIANT_BOOL *IsError) {
19229     return This->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError);
19230 }
19231 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_SetTextFeedback(ISpeechRecoResultDispatch* This,BSTR Feedback,VARIANT_BOOL WasSuccessful) {
19232     return This->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful);
19233 }
19234 #endif
19235 #endif
19236 
19237 #endif
19238 
19239 
19240 #endif  /* __ISpeechRecoResultDispatch_INTERFACE_DEFINED__ */
19241 
19242 /*****************************************************************************
19243  * ISpeechPhraseInfoBuilder interface
19244  */
19245 #ifndef __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__
19246 #define __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__
19247 
19248 DEFINE_GUID(IID_ISpeechPhraseInfoBuilder, 0x3b151836, 0xdf3a, 0x4e0a, 0x84,0x6c, 0xd2,0xad,0xc9,0x33,0x43,0x33);
19249 #if defined(__cplusplus) && !defined(CINTERFACE)
19250 MIDL_INTERFACE("3b151836-df3a-4e0a-846c-d2adc9334333")
19251 ISpeechPhraseInfoBuilder : public IDispatch
19252 {
19253     virtual HRESULT STDMETHODCALLTYPE RestorePhraseFromMemory(
19254         VARIANT *PhraseInMemory,
19255         ISpeechPhraseInfo **PhraseInfo) = 0;
19256 
19257 };
19258 #ifdef __CRT_UUID_DECL
19259 __CRT_UUID_DECL(ISpeechPhraseInfoBuilder, 0x3b151836, 0xdf3a, 0x4e0a, 0x84,0x6c, 0xd2,0xad,0xc9,0x33,0x43,0x33)
19260 #endif
19261 #else
19262 typedef struct ISpeechPhraseInfoBuilderVtbl {
19263     BEGIN_INTERFACE
19264 
19265     /*** IUnknown methods ***/
19266     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19267         ISpeechPhraseInfoBuilder *This,
19268         REFIID riid,
19269         void **ppvObject);
19270 
19271     ULONG (STDMETHODCALLTYPE *AddRef)(
19272         ISpeechPhraseInfoBuilder *This);
19273 
19274     ULONG (STDMETHODCALLTYPE *Release)(
19275         ISpeechPhraseInfoBuilder *This);
19276 
19277     /*** IDispatch methods ***/
19278     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19279         ISpeechPhraseInfoBuilder *This,
19280         UINT *pctinfo);
19281 
19282     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19283         ISpeechPhraseInfoBuilder *This,
19284         UINT iTInfo,
19285         LCID lcid,
19286         ITypeInfo **ppTInfo);
19287 
19288     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19289         ISpeechPhraseInfoBuilder *This,
19290         REFIID riid,
19291         LPOLESTR *rgszNames,
19292         UINT cNames,
19293         LCID lcid,
19294         DISPID *rgDispId);
19295 
19296     HRESULT (STDMETHODCALLTYPE *Invoke)(
19297         ISpeechPhraseInfoBuilder *This,
19298         DISPID dispIdMember,
19299         REFIID riid,
19300         LCID lcid,
19301         WORD wFlags,
19302         DISPPARAMS *pDispParams,
19303         VARIANT *pVarResult,
19304         EXCEPINFO *pExcepInfo,
19305         UINT *puArgErr);
19306 
19307     /*** ISpeechPhraseInfoBuilder methods ***/
19308     HRESULT (STDMETHODCALLTYPE *RestorePhraseFromMemory)(
19309         ISpeechPhraseInfoBuilder *This,
19310         VARIANT *PhraseInMemory,
19311         ISpeechPhraseInfo **PhraseInfo);
19312 
19313     END_INTERFACE
19314 } ISpeechPhraseInfoBuilderVtbl;
19315 
19316 interface ISpeechPhraseInfoBuilder {
19317     CONST_VTBL ISpeechPhraseInfoBuilderVtbl* lpVtbl;
19318 };
19319 
19320 #ifdef COBJMACROS
19321 #ifndef WIDL_C_INLINE_WRAPPERS
19322 /*** IUnknown methods ***/
19323 #define ISpeechPhraseInfoBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19324 #define ISpeechPhraseInfoBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
19325 #define ISpeechPhraseInfoBuilder_Release(This) (This)->lpVtbl->Release(This)
19326 /*** IDispatch methods ***/
19327 #define ISpeechPhraseInfoBuilder_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19328 #define ISpeechPhraseInfoBuilder_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19329 #define ISpeechPhraseInfoBuilder_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19330 #define ISpeechPhraseInfoBuilder_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19331 /*** ISpeechPhraseInfoBuilder methods ***/
19332 #define ISpeechPhraseInfoBuilder_RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo) (This)->lpVtbl->RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo)
19333 #else
19334 /*** IUnknown methods ***/
19335 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_QueryInterface(ISpeechPhraseInfoBuilder* This,REFIID riid,void **ppvObject) {
19336     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19337 }
19338 static FORCEINLINE ULONG ISpeechPhraseInfoBuilder_AddRef(ISpeechPhraseInfoBuilder* This) {
19339     return This->lpVtbl->AddRef(This);
19340 }
19341 static FORCEINLINE ULONG ISpeechPhraseInfoBuilder_Release(ISpeechPhraseInfoBuilder* This) {
19342     return This->lpVtbl->Release(This);
19343 }
19344 /*** IDispatch methods ***/
19345 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_GetTypeInfoCount(ISpeechPhraseInfoBuilder* This,UINT *pctinfo) {
19346     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19347 }
19348 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_GetTypeInfo(ISpeechPhraseInfoBuilder* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19349     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19350 }
19351 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_GetIDsOfNames(ISpeechPhraseInfoBuilder* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19352     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19353 }
19354 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_Invoke(ISpeechPhraseInfoBuilder* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19355     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19356 }
19357 /*** ISpeechPhraseInfoBuilder methods ***/
19358 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_RestorePhraseFromMemory(ISpeechPhraseInfoBuilder* This,VARIANT *PhraseInMemory,ISpeechPhraseInfo **PhraseInfo) {
19359     return This->lpVtbl->RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo);
19360 }
19361 #endif
19362 #endif
19363 
19364 #endif
19365 
19366 
19367 #endif  /* __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__ */
19368 
19369 /*****************************************************************************
19370  * ISpeechRecoResultTimes interface
19371  */
19372 #ifndef __ISpeechRecoResultTimes_INTERFACE_DEFINED__
19373 #define __ISpeechRecoResultTimes_INTERFACE_DEFINED__
19374 
19375 DEFINE_GUID(IID_ISpeechRecoResultTimes, 0x62b3b8fb, 0xf6e7, 0x41be, 0xbd,0xcb, 0x05,0x6b,0x1c,0x29,0xef,0xc0);
19376 #if defined(__cplusplus) && !defined(CINTERFACE)
19377 MIDL_INTERFACE("62b3b8fb-f6e7-41be-bdcb-056b1c29efc0")
19378 ISpeechRecoResultTimes : public IDispatch
19379 {
19380     virtual HRESULT STDMETHODCALLTYPE get_StreamTime(
19381         VARIANT *Time) = 0;
19382 
19383     virtual HRESULT STDMETHODCALLTYPE get_Length(
19384         VARIANT *Length) = 0;
19385 
19386     virtual HRESULT STDMETHODCALLTYPE get_TickCount(
19387         LONG *TickCount) = 0;
19388 
19389     virtual HRESULT STDMETHODCALLTYPE get_OffsetFromStart(
19390         VARIANT *OffsetFromStart) = 0;
19391 
19392 };
19393 #ifdef __CRT_UUID_DECL
19394 __CRT_UUID_DECL(ISpeechRecoResultTimes, 0x62b3b8fb, 0xf6e7, 0x41be, 0xbd,0xcb, 0x05,0x6b,0x1c,0x29,0xef,0xc0)
19395 #endif
19396 #else
19397 typedef struct ISpeechRecoResultTimesVtbl {
19398     BEGIN_INTERFACE
19399 
19400     /*** IUnknown methods ***/
19401     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19402         ISpeechRecoResultTimes *This,
19403         REFIID riid,
19404         void **ppvObject);
19405 
19406     ULONG (STDMETHODCALLTYPE *AddRef)(
19407         ISpeechRecoResultTimes *This);
19408 
19409     ULONG (STDMETHODCALLTYPE *Release)(
19410         ISpeechRecoResultTimes *This);
19411 
19412     /*** IDispatch methods ***/
19413     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19414         ISpeechRecoResultTimes *This,
19415         UINT *pctinfo);
19416 
19417     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19418         ISpeechRecoResultTimes *This,
19419         UINT iTInfo,
19420         LCID lcid,
19421         ITypeInfo **ppTInfo);
19422 
19423     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19424         ISpeechRecoResultTimes *This,
19425         REFIID riid,
19426         LPOLESTR *rgszNames,
19427         UINT cNames,
19428         LCID lcid,
19429         DISPID *rgDispId);
19430 
19431     HRESULT (STDMETHODCALLTYPE *Invoke)(
19432         ISpeechRecoResultTimes *This,
19433         DISPID dispIdMember,
19434         REFIID riid,
19435         LCID lcid,
19436         WORD wFlags,
19437         DISPPARAMS *pDispParams,
19438         VARIANT *pVarResult,
19439         EXCEPINFO *pExcepInfo,
19440         UINT *puArgErr);
19441 
19442     /*** ISpeechRecoResultTimes methods ***/
19443     HRESULT (STDMETHODCALLTYPE *get_StreamTime)(
19444         ISpeechRecoResultTimes *This,
19445         VARIANT *Time);
19446 
19447     HRESULT (STDMETHODCALLTYPE *get_Length)(
19448         ISpeechRecoResultTimes *This,
19449         VARIANT *Length);
19450 
19451     HRESULT (STDMETHODCALLTYPE *get_TickCount)(
19452         ISpeechRecoResultTimes *This,
19453         LONG *TickCount);
19454 
19455     HRESULT (STDMETHODCALLTYPE *get_OffsetFromStart)(
19456         ISpeechRecoResultTimes *This,
19457         VARIANT *OffsetFromStart);
19458 
19459     END_INTERFACE
19460 } ISpeechRecoResultTimesVtbl;
19461 
19462 interface ISpeechRecoResultTimes {
19463     CONST_VTBL ISpeechRecoResultTimesVtbl* lpVtbl;
19464 };
19465 
19466 #ifdef COBJMACROS
19467 #ifndef WIDL_C_INLINE_WRAPPERS
19468 /*** IUnknown methods ***/
19469 #define ISpeechRecoResultTimes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19470 #define ISpeechRecoResultTimes_AddRef(This) (This)->lpVtbl->AddRef(This)
19471 #define ISpeechRecoResultTimes_Release(This) (This)->lpVtbl->Release(This)
19472 /*** IDispatch methods ***/
19473 #define ISpeechRecoResultTimes_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19474 #define ISpeechRecoResultTimes_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19475 #define ISpeechRecoResultTimes_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19476 #define ISpeechRecoResultTimes_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19477 /*** ISpeechRecoResultTimes methods ***/
19478 #define ISpeechRecoResultTimes_get_StreamTime(This,Time) (This)->lpVtbl->get_StreamTime(This,Time)
19479 #define ISpeechRecoResultTimes_get_Length(This,Length) (This)->lpVtbl->get_Length(This,Length)
19480 #define ISpeechRecoResultTimes_get_TickCount(This,TickCount) (This)->lpVtbl->get_TickCount(This,TickCount)
19481 #define ISpeechRecoResultTimes_get_OffsetFromStart(This,OffsetFromStart) (This)->lpVtbl->get_OffsetFromStart(This,OffsetFromStart)
19482 #else
19483 /*** IUnknown methods ***/
19484 static FORCEINLINE HRESULT ISpeechRecoResultTimes_QueryInterface(ISpeechRecoResultTimes* This,REFIID riid,void **ppvObject) {
19485     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19486 }
19487 static FORCEINLINE ULONG ISpeechRecoResultTimes_AddRef(ISpeechRecoResultTimes* This) {
19488     return This->lpVtbl->AddRef(This);
19489 }
19490 static FORCEINLINE ULONG ISpeechRecoResultTimes_Release(ISpeechRecoResultTimes* This) {
19491     return This->lpVtbl->Release(This);
19492 }
19493 /*** IDispatch methods ***/
19494 static FORCEINLINE HRESULT ISpeechRecoResultTimes_GetTypeInfoCount(ISpeechRecoResultTimes* This,UINT *pctinfo) {
19495     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19496 }
19497 static FORCEINLINE HRESULT ISpeechRecoResultTimes_GetTypeInfo(ISpeechRecoResultTimes* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19498     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19499 }
19500 static FORCEINLINE HRESULT ISpeechRecoResultTimes_GetIDsOfNames(ISpeechRecoResultTimes* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19501     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19502 }
19503 static FORCEINLINE HRESULT ISpeechRecoResultTimes_Invoke(ISpeechRecoResultTimes* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19504     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19505 }
19506 /*** ISpeechRecoResultTimes methods ***/
19507 static FORCEINLINE HRESULT ISpeechRecoResultTimes_get_StreamTime(ISpeechRecoResultTimes* This,VARIANT *Time) {
19508     return This->lpVtbl->get_StreamTime(This,Time);
19509 }
19510 static FORCEINLINE HRESULT ISpeechRecoResultTimes_get_Length(ISpeechRecoResultTimes* This,VARIANT *Length) {
19511     return This->lpVtbl->get_Length(This,Length);
19512 }
19513 static FORCEINLINE HRESULT ISpeechRecoResultTimes_get_TickCount(ISpeechRecoResultTimes* This,LONG *TickCount) {
19514     return This->lpVtbl->get_TickCount(This,TickCount);
19515 }
19516 static FORCEINLINE HRESULT ISpeechRecoResultTimes_get_OffsetFromStart(ISpeechRecoResultTimes* This,VARIANT *OffsetFromStart) {
19517     return This->lpVtbl->get_OffsetFromStart(This,OffsetFromStart);
19518 }
19519 #endif
19520 #endif
19521 
19522 #endif
19523 
19524 
19525 #endif  /* __ISpeechRecoResultTimes_INTERFACE_DEFINED__ */
19526 
19527 /*****************************************************************************
19528  * ISpeechPhraseAlternate interface
19529  */
19530 #ifndef __ISpeechPhraseAlternate_INTERFACE_DEFINED__
19531 #define __ISpeechPhraseAlternate_INTERFACE_DEFINED__
19532 
19533 DEFINE_GUID(IID_ISpeechPhraseAlternate, 0x27864a2a, 0x2b9f, 0x4cb8, 0x92,0xd3, 0x0d,0x27,0x22,0xfd,0x1e,0x73);
19534 #if defined(__cplusplus) && !defined(CINTERFACE)
19535 MIDL_INTERFACE("27864a2a-2b9f-4cb8-92d3-0d2722fd1e73")
19536 ISpeechPhraseAlternate : public IDispatch
19537 {
19538     virtual HRESULT STDMETHODCALLTYPE get_RecoResult(
19539         ISpeechRecoResult **RecoResult) = 0;
19540 
19541     virtual HRESULT STDMETHODCALLTYPE get_StartElementInResult(
19542         LONG *StartElement) = 0;
19543 
19544     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElementsInResult(
19545         LONG *NumberOfElements) = 0;
19546 
19547     virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
19548         ISpeechPhraseInfo **PhraseInfo) = 0;
19549 
19550     virtual HRESULT STDMETHODCALLTYPE Commit(
19551         ) = 0;
19552 
19553 };
19554 #ifdef __CRT_UUID_DECL
19555 __CRT_UUID_DECL(ISpeechPhraseAlternate, 0x27864a2a, 0x2b9f, 0x4cb8, 0x92,0xd3, 0x0d,0x27,0x22,0xfd,0x1e,0x73)
19556 #endif
19557 #else
19558 typedef struct ISpeechPhraseAlternateVtbl {
19559     BEGIN_INTERFACE
19560 
19561     /*** IUnknown methods ***/
19562     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19563         ISpeechPhraseAlternate *This,
19564         REFIID riid,
19565         void **ppvObject);
19566 
19567     ULONG (STDMETHODCALLTYPE *AddRef)(
19568         ISpeechPhraseAlternate *This);
19569 
19570     ULONG (STDMETHODCALLTYPE *Release)(
19571         ISpeechPhraseAlternate *This);
19572 
19573     /*** IDispatch methods ***/
19574     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19575         ISpeechPhraseAlternate *This,
19576         UINT *pctinfo);
19577 
19578     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19579         ISpeechPhraseAlternate *This,
19580         UINT iTInfo,
19581         LCID lcid,
19582         ITypeInfo **ppTInfo);
19583 
19584     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19585         ISpeechPhraseAlternate *This,
19586         REFIID riid,
19587         LPOLESTR *rgszNames,
19588         UINT cNames,
19589         LCID lcid,
19590         DISPID *rgDispId);
19591 
19592     HRESULT (STDMETHODCALLTYPE *Invoke)(
19593         ISpeechPhraseAlternate *This,
19594         DISPID dispIdMember,
19595         REFIID riid,
19596         LCID lcid,
19597         WORD wFlags,
19598         DISPPARAMS *pDispParams,
19599         VARIANT *pVarResult,
19600         EXCEPINFO *pExcepInfo,
19601         UINT *puArgErr);
19602 
19603     /*** ISpeechPhraseAlternate methods ***/
19604     HRESULT (STDMETHODCALLTYPE *get_RecoResult)(
19605         ISpeechPhraseAlternate *This,
19606         ISpeechRecoResult **RecoResult);
19607 
19608     HRESULT (STDMETHODCALLTYPE *get_StartElementInResult)(
19609         ISpeechPhraseAlternate *This,
19610         LONG *StartElement);
19611 
19612     HRESULT (STDMETHODCALLTYPE *get_NumberOfElementsInResult)(
19613         ISpeechPhraseAlternate *This,
19614         LONG *NumberOfElements);
19615 
19616     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
19617         ISpeechPhraseAlternate *This,
19618         ISpeechPhraseInfo **PhraseInfo);
19619 
19620     HRESULT (STDMETHODCALLTYPE *Commit)(
19621         ISpeechPhraseAlternate *This);
19622 
19623     END_INTERFACE
19624 } ISpeechPhraseAlternateVtbl;
19625 
19626 interface ISpeechPhraseAlternate {
19627     CONST_VTBL ISpeechPhraseAlternateVtbl* lpVtbl;
19628 };
19629 
19630 #ifdef COBJMACROS
19631 #ifndef WIDL_C_INLINE_WRAPPERS
19632 /*** IUnknown methods ***/
19633 #define ISpeechPhraseAlternate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19634 #define ISpeechPhraseAlternate_AddRef(This) (This)->lpVtbl->AddRef(This)
19635 #define ISpeechPhraseAlternate_Release(This) (This)->lpVtbl->Release(This)
19636 /*** IDispatch methods ***/
19637 #define ISpeechPhraseAlternate_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19638 #define ISpeechPhraseAlternate_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19639 #define ISpeechPhraseAlternate_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19640 #define ISpeechPhraseAlternate_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19641 /*** ISpeechPhraseAlternate methods ***/
19642 #define ISpeechPhraseAlternate_get_RecoResult(This,RecoResult) (This)->lpVtbl->get_RecoResult(This,RecoResult)
19643 #define ISpeechPhraseAlternate_get_StartElementInResult(This,StartElement) (This)->lpVtbl->get_StartElementInResult(This,StartElement)
19644 #define ISpeechPhraseAlternate_get_NumberOfElementsInResult(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElementsInResult(This,NumberOfElements)
19645 #define ISpeechPhraseAlternate_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
19646 #define ISpeechPhraseAlternate_Commit(This) (This)->lpVtbl->Commit(This)
19647 #else
19648 /*** IUnknown methods ***/
19649 static FORCEINLINE HRESULT ISpeechPhraseAlternate_QueryInterface(ISpeechPhraseAlternate* This,REFIID riid,void **ppvObject) {
19650     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19651 }
19652 static FORCEINLINE ULONG ISpeechPhraseAlternate_AddRef(ISpeechPhraseAlternate* This) {
19653     return This->lpVtbl->AddRef(This);
19654 }
19655 static FORCEINLINE ULONG ISpeechPhraseAlternate_Release(ISpeechPhraseAlternate* This) {
19656     return This->lpVtbl->Release(This);
19657 }
19658 /*** IDispatch methods ***/
19659 static FORCEINLINE HRESULT ISpeechPhraseAlternate_GetTypeInfoCount(ISpeechPhraseAlternate* This,UINT *pctinfo) {
19660     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19661 }
19662 static FORCEINLINE HRESULT ISpeechPhraseAlternate_GetTypeInfo(ISpeechPhraseAlternate* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19663     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19664 }
19665 static FORCEINLINE HRESULT ISpeechPhraseAlternate_GetIDsOfNames(ISpeechPhraseAlternate* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19666     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19667 }
19668 static FORCEINLINE HRESULT ISpeechPhraseAlternate_Invoke(ISpeechPhraseAlternate* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19669     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19670 }
19671 /*** ISpeechPhraseAlternate methods ***/
19672 static FORCEINLINE HRESULT ISpeechPhraseAlternate_get_RecoResult(ISpeechPhraseAlternate* This,ISpeechRecoResult **RecoResult) {
19673     return This->lpVtbl->get_RecoResult(This,RecoResult);
19674 }
19675 static FORCEINLINE HRESULT ISpeechPhraseAlternate_get_StartElementInResult(ISpeechPhraseAlternate* This,LONG *StartElement) {
19676     return This->lpVtbl->get_StartElementInResult(This,StartElement);
19677 }
19678 static FORCEINLINE HRESULT ISpeechPhraseAlternate_get_NumberOfElementsInResult(ISpeechPhraseAlternate* This,LONG *NumberOfElements) {
19679     return This->lpVtbl->get_NumberOfElementsInResult(This,NumberOfElements);
19680 }
19681 static FORCEINLINE HRESULT ISpeechPhraseAlternate_get_PhraseInfo(ISpeechPhraseAlternate* This,ISpeechPhraseInfo **PhraseInfo) {
19682     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
19683 }
19684 static FORCEINLINE HRESULT ISpeechPhraseAlternate_Commit(ISpeechPhraseAlternate* This) {
19685     return This->lpVtbl->Commit(This);
19686 }
19687 #endif
19688 #endif
19689 
19690 #endif
19691 
19692 
19693 #endif  /* __ISpeechPhraseAlternate_INTERFACE_DEFINED__ */
19694 
19695 /*****************************************************************************
19696  * ISpeechPhraseAlternates interface
19697  */
19698 #ifndef __ISpeechPhraseAlternates_INTERFACE_DEFINED__
19699 #define __ISpeechPhraseAlternates_INTERFACE_DEFINED__
19700 
19701 DEFINE_GUID(IID_ISpeechPhraseAlternates, 0xb238b6d5, 0xf276, 0x4c3d, 0xa6,0xc1, 0x29,0x74,0x80,0x1c,0x3c,0xc2);
19702 #if defined(__cplusplus) && !defined(CINTERFACE)
19703 MIDL_INTERFACE("b238b6d5-f276-4c3d-a6c1-2974801c3cc2")
19704 ISpeechPhraseAlternates : public IDispatch
19705 {
19706     virtual HRESULT STDMETHODCALLTYPE get_Count(
19707         LONG *Count) = 0;
19708 
19709     virtual HRESULT STDMETHODCALLTYPE Item(
19710         LONG Index,
19711         ISpeechPhraseAlternate **PhraseAlternate) = 0;
19712 
19713     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
19714         IUnknown **EnumVARIANT) = 0;
19715 
19716 };
19717 #ifdef __CRT_UUID_DECL
19718 __CRT_UUID_DECL(ISpeechPhraseAlternates, 0xb238b6d5, 0xf276, 0x4c3d, 0xa6,0xc1, 0x29,0x74,0x80,0x1c,0x3c,0xc2)
19719 #endif
19720 #else
19721 typedef struct ISpeechPhraseAlternatesVtbl {
19722     BEGIN_INTERFACE
19723 
19724     /*** IUnknown methods ***/
19725     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19726         ISpeechPhraseAlternates *This,
19727         REFIID riid,
19728         void **ppvObject);
19729 
19730     ULONG (STDMETHODCALLTYPE *AddRef)(
19731         ISpeechPhraseAlternates *This);
19732 
19733     ULONG (STDMETHODCALLTYPE *Release)(
19734         ISpeechPhraseAlternates *This);
19735 
19736     /*** IDispatch methods ***/
19737     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19738         ISpeechPhraseAlternates *This,
19739         UINT *pctinfo);
19740 
19741     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19742         ISpeechPhraseAlternates *This,
19743         UINT iTInfo,
19744         LCID lcid,
19745         ITypeInfo **ppTInfo);
19746 
19747     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19748         ISpeechPhraseAlternates *This,
19749         REFIID riid,
19750         LPOLESTR *rgszNames,
19751         UINT cNames,
19752         LCID lcid,
19753         DISPID *rgDispId);
19754 
19755     HRESULT (STDMETHODCALLTYPE *Invoke)(
19756         ISpeechPhraseAlternates *This,
19757         DISPID dispIdMember,
19758         REFIID riid,
19759         LCID lcid,
19760         WORD wFlags,
19761         DISPPARAMS *pDispParams,
19762         VARIANT *pVarResult,
19763         EXCEPINFO *pExcepInfo,
19764         UINT *puArgErr);
19765 
19766     /*** ISpeechPhraseAlternates methods ***/
19767     HRESULT (STDMETHODCALLTYPE *get_Count)(
19768         ISpeechPhraseAlternates *This,
19769         LONG *Count);
19770 
19771     HRESULT (STDMETHODCALLTYPE *Item)(
19772         ISpeechPhraseAlternates *This,
19773         LONG Index,
19774         ISpeechPhraseAlternate **PhraseAlternate);
19775 
19776     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
19777         ISpeechPhraseAlternates *This,
19778         IUnknown **EnumVARIANT);
19779 
19780     END_INTERFACE
19781 } ISpeechPhraseAlternatesVtbl;
19782 
19783 interface ISpeechPhraseAlternates {
19784     CONST_VTBL ISpeechPhraseAlternatesVtbl* lpVtbl;
19785 };
19786 
19787 #ifdef COBJMACROS
19788 #ifndef WIDL_C_INLINE_WRAPPERS
19789 /*** IUnknown methods ***/
19790 #define ISpeechPhraseAlternates_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19791 #define ISpeechPhraseAlternates_AddRef(This) (This)->lpVtbl->AddRef(This)
19792 #define ISpeechPhraseAlternates_Release(This) (This)->lpVtbl->Release(This)
19793 /*** IDispatch methods ***/
19794 #define ISpeechPhraseAlternates_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19795 #define ISpeechPhraseAlternates_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19796 #define ISpeechPhraseAlternates_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19797 #define ISpeechPhraseAlternates_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19798 /*** ISpeechPhraseAlternates methods ***/
19799 #define ISpeechPhraseAlternates_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
19800 #define ISpeechPhraseAlternates_Item(This,Index,PhraseAlternate) (This)->lpVtbl->Item(This,Index,PhraseAlternate)
19801 #define ISpeechPhraseAlternates_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
19802 #else
19803 /*** IUnknown methods ***/
19804 static FORCEINLINE HRESULT ISpeechPhraseAlternates_QueryInterface(ISpeechPhraseAlternates* This,REFIID riid,void **ppvObject) {
19805     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19806 }
19807 static FORCEINLINE ULONG ISpeechPhraseAlternates_AddRef(ISpeechPhraseAlternates* This) {
19808     return This->lpVtbl->AddRef(This);
19809 }
19810 static FORCEINLINE ULONG ISpeechPhraseAlternates_Release(ISpeechPhraseAlternates* This) {
19811     return This->lpVtbl->Release(This);
19812 }
19813 /*** IDispatch methods ***/
19814 static FORCEINLINE HRESULT ISpeechPhraseAlternates_GetTypeInfoCount(ISpeechPhraseAlternates* This,UINT *pctinfo) {
19815     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19816 }
19817 static FORCEINLINE HRESULT ISpeechPhraseAlternates_GetTypeInfo(ISpeechPhraseAlternates* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19818     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19819 }
19820 static FORCEINLINE HRESULT ISpeechPhraseAlternates_GetIDsOfNames(ISpeechPhraseAlternates* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19821     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19822 }
19823 static FORCEINLINE HRESULT ISpeechPhraseAlternates_Invoke(ISpeechPhraseAlternates* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19824     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19825 }
19826 /*** ISpeechPhraseAlternates methods ***/
19827 static FORCEINLINE HRESULT ISpeechPhraseAlternates_get_Count(ISpeechPhraseAlternates* This,LONG *Count) {
19828     return This->lpVtbl->get_Count(This,Count);
19829 }
19830 static FORCEINLINE HRESULT ISpeechPhraseAlternates_Item(ISpeechPhraseAlternates* This,LONG Index,ISpeechPhraseAlternate **PhraseAlternate) {
19831     return This->lpVtbl->Item(This,Index,PhraseAlternate);
19832 }
19833 static FORCEINLINE HRESULT ISpeechPhraseAlternates_get__NewEnum(ISpeechPhraseAlternates* This,IUnknown **EnumVARIANT) {
19834     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
19835 }
19836 #endif
19837 #endif
19838 
19839 #endif
19840 
19841 
19842 #endif  /* __ISpeechPhraseAlternates_INTERFACE_DEFINED__ */
19843 
19844 /*****************************************************************************
19845  * ISpeechPhraseInfo interface
19846  */
19847 #ifndef __ISpeechPhraseInfo_INTERFACE_DEFINED__
19848 #define __ISpeechPhraseInfo_INTERFACE_DEFINED__
19849 
19850 DEFINE_GUID(IID_ISpeechPhraseInfo, 0x961559cf, 0x4e67, 0x4662, 0x8b,0xf0, 0xd9,0x3f,0x1f,0xcd,0x61,0xb3);
19851 #if defined(__cplusplus) && !defined(CINTERFACE)
19852 MIDL_INTERFACE("961559cf-4e67-4662-8bf0-d93f1fcd61b3")
19853 ISpeechPhraseInfo : public IDispatch
19854 {
19855     virtual HRESULT STDMETHODCALLTYPE get_LanguageId(
19856         LONG *LanguageId) = 0;
19857 
19858     virtual HRESULT STDMETHODCALLTYPE get_GrammarId(
19859         VARIANT *GrammarId) = 0;
19860 
19861     virtual HRESULT STDMETHODCALLTYPE get_StartTime(
19862         VARIANT *StartTime) = 0;
19863 
19864     virtual HRESULT STDMETHODCALLTYPE get_AudioStreamPosition(
19865         VARIANT *AudioStreamPosition) = 0;
19866 
19867     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeBytes(
19868         LONG *pAudioSizeBytes) = 0;
19869 
19870     virtual HRESULT STDMETHODCALLTYPE get_RetainedSizeBytes(
19871         LONG *RetainedSizeBytes) = 0;
19872 
19873     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeTime(
19874         LONG *AudioSizeTime) = 0;
19875 
19876     virtual HRESULT STDMETHODCALLTYPE get_Rule(
19877         ISpeechPhraseRule **Rule) = 0;
19878 
19879     virtual HRESULT STDMETHODCALLTYPE get_Properties(
19880         ISpeechPhraseProperties **Properties) = 0;
19881 
19882     virtual HRESULT STDMETHODCALLTYPE get_Elements(
19883         ISpeechPhraseElements **Elements) = 0;
19884 
19885     virtual HRESULT STDMETHODCALLTYPE get_Replacements(
19886         ISpeechPhraseReplacements **Replacements) = 0;
19887 
19888     virtual HRESULT STDMETHODCALLTYPE get_EngineId(
19889         BSTR *EngineIdGuid) = 0;
19890 
19891     virtual HRESULT STDMETHODCALLTYPE get_EnginePrivateData(
19892         VARIANT *PrivateData) = 0;
19893 
19894     virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
19895         VARIANT *PhraseBlock) = 0;
19896 
19897     virtual HRESULT STDMETHODCALLTYPE GetText(
19898         LONG StartElement,
19899         LONG Elements,
19900         VARIANT_BOOL UseReplacements,
19901         BSTR *Text) = 0;
19902 
19903     virtual HRESULT STDMETHODCALLTYPE GetDisplayAttributes(
19904         LONG StartElement,
19905         LONG Elements,
19906         VARIANT_BOOL UseReplacements,
19907         SpeechDisplayAttributes *DisplayAttributes) = 0;
19908 
19909 };
19910 #ifdef __CRT_UUID_DECL
19911 __CRT_UUID_DECL(ISpeechPhraseInfo, 0x961559cf, 0x4e67, 0x4662, 0x8b,0xf0, 0xd9,0x3f,0x1f,0xcd,0x61,0xb3)
19912 #endif
19913 #else
19914 typedef struct ISpeechPhraseInfoVtbl {
19915     BEGIN_INTERFACE
19916 
19917     /*** IUnknown methods ***/
19918     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19919         ISpeechPhraseInfo *This,
19920         REFIID riid,
19921         void **ppvObject);
19922 
19923     ULONG (STDMETHODCALLTYPE *AddRef)(
19924         ISpeechPhraseInfo *This);
19925 
19926     ULONG (STDMETHODCALLTYPE *Release)(
19927         ISpeechPhraseInfo *This);
19928 
19929     /*** IDispatch methods ***/
19930     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19931         ISpeechPhraseInfo *This,
19932         UINT *pctinfo);
19933 
19934     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19935         ISpeechPhraseInfo *This,
19936         UINT iTInfo,
19937         LCID lcid,
19938         ITypeInfo **ppTInfo);
19939 
19940     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19941         ISpeechPhraseInfo *This,
19942         REFIID riid,
19943         LPOLESTR *rgszNames,
19944         UINT cNames,
19945         LCID lcid,
19946         DISPID *rgDispId);
19947 
19948     HRESULT (STDMETHODCALLTYPE *Invoke)(
19949         ISpeechPhraseInfo *This,
19950         DISPID dispIdMember,
19951         REFIID riid,
19952         LCID lcid,
19953         WORD wFlags,
19954         DISPPARAMS *pDispParams,
19955         VARIANT *pVarResult,
19956         EXCEPINFO *pExcepInfo,
19957         UINT *puArgErr);
19958 
19959     /*** ISpeechPhraseInfo methods ***/
19960     HRESULT (STDMETHODCALLTYPE *get_LanguageId)(
19961         ISpeechPhraseInfo *This,
19962         LONG *LanguageId);
19963 
19964     HRESULT (STDMETHODCALLTYPE *get_GrammarId)(
19965         ISpeechPhraseInfo *This,
19966         VARIANT *GrammarId);
19967 
19968     HRESULT (STDMETHODCALLTYPE *get_StartTime)(
19969         ISpeechPhraseInfo *This,
19970         VARIANT *StartTime);
19971 
19972     HRESULT (STDMETHODCALLTYPE *get_AudioStreamPosition)(
19973         ISpeechPhraseInfo *This,
19974         VARIANT *AudioStreamPosition);
19975 
19976     HRESULT (STDMETHODCALLTYPE *get_AudioSizeBytes)(
19977         ISpeechPhraseInfo *This,
19978         LONG *pAudioSizeBytes);
19979 
19980     HRESULT (STDMETHODCALLTYPE *get_RetainedSizeBytes)(
19981         ISpeechPhraseInfo *This,
19982         LONG *RetainedSizeBytes);
19983 
19984     HRESULT (STDMETHODCALLTYPE *get_AudioSizeTime)(
19985         ISpeechPhraseInfo *This,
19986         LONG *AudioSizeTime);
19987 
19988     HRESULT (STDMETHODCALLTYPE *get_Rule)(
19989         ISpeechPhraseInfo *This,
19990         ISpeechPhraseRule **Rule);
19991 
19992     HRESULT (STDMETHODCALLTYPE *get_Properties)(
19993         ISpeechPhraseInfo *This,
19994         ISpeechPhraseProperties **Properties);
19995 
19996     HRESULT (STDMETHODCALLTYPE *get_Elements)(
19997         ISpeechPhraseInfo *This,
19998         ISpeechPhraseElements **Elements);
19999 
20000     HRESULT (STDMETHODCALLTYPE *get_Replacements)(
20001         ISpeechPhraseInfo *This,
20002         ISpeechPhraseReplacements **Replacements);
20003 
20004     HRESULT (STDMETHODCALLTYPE *get_EngineId)(
20005         ISpeechPhraseInfo *This,
20006         BSTR *EngineIdGuid);
20007 
20008     HRESULT (STDMETHODCALLTYPE *get_EnginePrivateData)(
20009         ISpeechPhraseInfo *This,
20010         VARIANT *PrivateData);
20011 
20012     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
20013         ISpeechPhraseInfo *This,
20014         VARIANT *PhraseBlock);
20015 
20016     HRESULT (STDMETHODCALLTYPE *GetText)(
20017         ISpeechPhraseInfo *This,
20018         LONG StartElement,
20019         LONG Elements,
20020         VARIANT_BOOL UseReplacements,
20021         BSTR *Text);
20022 
20023     HRESULT (STDMETHODCALLTYPE *GetDisplayAttributes)(
20024         ISpeechPhraseInfo *This,
20025         LONG StartElement,
20026         LONG Elements,
20027         VARIANT_BOOL UseReplacements,
20028         SpeechDisplayAttributes *DisplayAttributes);
20029 
20030     END_INTERFACE
20031 } ISpeechPhraseInfoVtbl;
20032 
20033 interface ISpeechPhraseInfo {
20034     CONST_VTBL ISpeechPhraseInfoVtbl* lpVtbl;
20035 };
20036 
20037 #ifdef COBJMACROS
20038 #ifndef WIDL_C_INLINE_WRAPPERS
20039 /*** IUnknown methods ***/
20040 #define ISpeechPhraseInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20041 #define ISpeechPhraseInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
20042 #define ISpeechPhraseInfo_Release(This) (This)->lpVtbl->Release(This)
20043 /*** IDispatch methods ***/
20044 #define ISpeechPhraseInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20045 #define ISpeechPhraseInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
20046 #define ISpeechPhraseInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
20047 #define ISpeechPhraseInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
20048 /*** ISpeechPhraseInfo methods ***/
20049 #define ISpeechPhraseInfo_get_LanguageId(This,LanguageId) (This)->lpVtbl->get_LanguageId(This,LanguageId)
20050 #define ISpeechPhraseInfo_get_GrammarId(This,GrammarId) (This)->lpVtbl->get_GrammarId(This,GrammarId)
20051 #define ISpeechPhraseInfo_get_StartTime(This,StartTime) (This)->lpVtbl->get_StartTime(This,StartTime)
20052 #define ISpeechPhraseInfo_get_AudioStreamPosition(This,AudioStreamPosition) (This)->lpVtbl->get_AudioStreamPosition(This,AudioStreamPosition)
20053 #define ISpeechPhraseInfo_get_AudioSizeBytes(This,pAudioSizeBytes) (This)->lpVtbl->get_AudioSizeBytes(This,pAudioSizeBytes)
20054 #define ISpeechPhraseInfo_get_RetainedSizeBytes(This,RetainedSizeBytes) (This)->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes)
20055 #define ISpeechPhraseInfo_get_AudioSizeTime(This,AudioSizeTime) (This)->lpVtbl->get_AudioSizeTime(This,AudioSizeTime)
20056 #define ISpeechPhraseInfo_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
20057 #define ISpeechPhraseInfo_get_Properties(This,Properties) (This)->lpVtbl->get_Properties(This,Properties)
20058 #define ISpeechPhraseInfo_get_Elements(This,Elements) (This)->lpVtbl->get_Elements(This,Elements)
20059 #define ISpeechPhraseInfo_get_Replacements(This,Replacements) (This)->lpVtbl->get_Replacements(This,Replacements)
20060 #define ISpeechPhraseInfo_get_EngineId(This,EngineIdGuid) (This)->lpVtbl->get_EngineId(This,EngineIdGuid)
20061 #define ISpeechPhraseInfo_get_EnginePrivateData(This,PrivateData) (This)->lpVtbl->get_EnginePrivateData(This,PrivateData)
20062 #define ISpeechPhraseInfo_SaveToMemory(This,PhraseBlock) (This)->lpVtbl->SaveToMemory(This,PhraseBlock)
20063 #define ISpeechPhraseInfo_GetText(This,StartElement,Elements,UseReplacements,Text) (This)->lpVtbl->GetText(This,StartElement,Elements,UseReplacements,Text)
20064 #define ISpeechPhraseInfo_GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes) (This)->lpVtbl->GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes)
20065 #else
20066 /*** IUnknown methods ***/
20067 static FORCEINLINE HRESULT ISpeechPhraseInfo_QueryInterface(ISpeechPhraseInfo* This,REFIID riid,void **ppvObject) {
20068     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20069 }
20070 static FORCEINLINE ULONG ISpeechPhraseInfo_AddRef(ISpeechPhraseInfo* This) {
20071     return This->lpVtbl->AddRef(This);
20072 }
20073 static FORCEINLINE ULONG ISpeechPhraseInfo_Release(ISpeechPhraseInfo* This) {
20074     return This->lpVtbl->Release(This);
20075 }
20076 /*** IDispatch methods ***/
20077 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetTypeInfoCount(ISpeechPhraseInfo* This,UINT *pctinfo) {
20078     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
20079 }
20080 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetTypeInfo(ISpeechPhraseInfo* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
20081     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
20082 }
20083 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetIDsOfNames(ISpeechPhraseInfo* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
20084     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
20085 }
20086 static FORCEINLINE HRESULT ISpeechPhraseInfo_Invoke(ISpeechPhraseInfo* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
20087     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
20088 }
20089 /*** ISpeechPhraseInfo methods ***/
20090 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_LanguageId(ISpeechPhraseInfo* This,LONG *LanguageId) {
20091     return This->lpVtbl->get_LanguageId(This,LanguageId);
20092 }
20093 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_GrammarId(ISpeechPhraseInfo* This,VARIANT *GrammarId) {
20094     return This->lpVtbl->get_GrammarId(This,GrammarId);
20095 }
20096 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_StartTime(ISpeechPhraseInfo* This,VARIANT *StartTime) {
20097     return This->lpVtbl->get_StartTime(This,StartTime);
20098 }
20099 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_AudioStreamPosition(ISpeechPhraseInfo* This,VARIANT *AudioStreamPosition) {
20100     return This->lpVtbl->get_AudioStreamPosition(This,AudioStreamPosition);
20101 }
20102 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_AudioSizeBytes(ISpeechPhraseInfo* This,LONG *pAudioSizeBytes) {
20103     return This->lpVtbl->get_AudioSizeBytes(This,pAudioSizeBytes);
20104 }
20105 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_RetainedSizeBytes(ISpeechPhraseInfo* This,LONG *RetainedSizeBytes) {
20106     return This->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes);
20107 }
20108 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_AudioSizeTime(ISpeechPhraseInfo* This,LONG *AudioSizeTime) {
20109     return This->lpVtbl->get_AudioSizeTime(This,AudioSizeTime);
20110 }
20111 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_Rule(ISpeechPhraseInfo* This,ISpeechPhraseRule **Rule) {
20112     return This->lpVtbl->get_Rule(This,Rule);
20113 }
20114 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_Properties(ISpeechPhraseInfo* This,ISpeechPhraseProperties **Properties) {
20115     return This->lpVtbl->get_Properties(This,Properties);
20116 }
20117 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_Elements(ISpeechPhraseInfo* This,ISpeechPhraseElements **Elements) {
20118     return This->lpVtbl->get_Elements(This,Elements);
20119 }
20120 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_Replacements(ISpeechPhraseInfo* This,ISpeechPhraseReplacements **Replacements) {
20121     return This->lpVtbl->get_Replacements(This,Replacements);
20122 }
20123 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_EngineId(ISpeechPhraseInfo* This,BSTR *EngineIdGuid) {
20124     return This->lpVtbl->get_EngineId(This,EngineIdGuid);
20125 }
20126 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_EnginePrivateData(ISpeechPhraseInfo* This,VARIANT *PrivateData) {
20127     return This->lpVtbl->get_EnginePrivateData(This,PrivateData);
20128 }
20129 static FORCEINLINE HRESULT ISpeechPhraseInfo_SaveToMemory(ISpeechPhraseInfo* This,VARIANT *PhraseBlock) {
20130     return This->lpVtbl->SaveToMemory(This,PhraseBlock);
20131 }
20132 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetText(ISpeechPhraseInfo* This,LONG StartElement,LONG Elements,VARIANT_BOOL UseReplacements,BSTR *Text) {
20133     return This->lpVtbl->GetText(This,StartElement,Elements,UseReplacements,Text);
20134 }
20135 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetDisplayAttributes(ISpeechPhraseInfo* This,LONG StartElement,LONG Elements,VARIANT_BOOL UseReplacements,SpeechDisplayAttributes *DisplayAttributes) {
20136     return This->lpVtbl->GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes);
20137 }
20138 #endif
20139 #endif
20140 
20141 #endif
20142 
20143 
20144 #endif  /* __ISpeechPhraseInfo_INTERFACE_DEFINED__ */
20145 
20146 /*****************************************************************************
20147  * ISpeechPhraseElement interface
20148  */
20149 #ifndef __ISpeechPhraseElement_INTERFACE_DEFINED__
20150 #define __ISpeechPhraseElement_INTERFACE_DEFINED__
20151 
20152 DEFINE_GUID(IID_ISpeechPhraseElement, 0xe6176f96, 0xe373, 0x4801, 0xb2,0x23, 0x3b,0x62,0xc0,0x68,0xc0,0xb4);
20153 #if defined(__cplusplus) && !defined(CINTERFACE)
20154 MIDL_INTERFACE("e6176f96-e373-4801-b223-3b62c068c0b4")
20155 ISpeechPhraseElement : public IDispatch
20156 {
20157     virtual HRESULT STDMETHODCALLTYPE get_AudioTimeOffset(
20158         LONG *AudioTimeOffset) = 0;
20159 
20160     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeTime(
20161         LONG *AudioSizeTime) = 0;
20162 
20163     virtual HRESULT STDMETHODCALLTYPE get_AudioStreamOffset(
20164         LONG *AudioStreamOffset) = 0;
20165 
20166     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeBytes(
20167         LONG *AudioSizeBytes) = 0;
20168 
20169     virtual HRESULT STDMETHODCALLTYPE get_RetainedStreamOffset(
20170         LONG *RetainedStreamOffset) = 0;
20171 
20172     virtual HRESULT STDMETHODCALLTYPE get_RetainedSizeBytes(
20173         LONG *RetainedSizeBytes) = 0;
20174 
20175     virtual HRESULT STDMETHODCALLTYPE get_DisplayText(
20176         BSTR *DisplayText) = 0;
20177 
20178     virtual HRESULT STDMETHODCALLTYPE get_LexicalForm(
20179         BSTR *LexicalForm) = 0;
20180 
20181     virtual HRESULT STDMETHODCALLTYPE get_Pronunciation(
20182         VARIANT *Pronunciation) = 0;
20183 
20184     virtual HRESULT STDMETHODCALLTYPE get_DisplayAttributes(
20185         SpeechDisplayAttributes *DisplayAttributes) = 0;
20186 
20187     virtual HRESULT STDMETHODCALLTYPE get_RequiredConfidence(
20188         SpeechEngineConfidence *RequiredConfidence) = 0;
20189 
20190     virtual HRESULT STDMETHODCALLTYPE get_ActualConfidence(
20191         SpeechEngineConfidence *ActualConfidence) = 0;
20192 
20193     virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
20194         float *EngineConfidence) = 0;
20195 
20196 };
20197 #ifdef __CRT_UUID_DECL
20198 __CRT_UUID_DECL(ISpeechPhraseElement, 0xe6176f96, 0xe373, 0x4801, 0xb2,0x23, 0x3b,0x62,0xc0,0x68,0xc0,0xb4)
20199 #endif
20200 #else
20201 typedef struct ISpeechPhraseElementVtbl {
20202     BEGIN_INTERFACE
20203 
20204     /*** IUnknown methods ***/
20205     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20206         ISpeechPhraseElement *This,
20207         REFIID riid,
20208         void **ppvObject);
20209 
20210     ULONG (STDMETHODCALLTYPE *AddRef)(
20211         ISpeechPhraseElement *This);
20212 
20213     ULONG (STDMETHODCALLTYPE *Release)(
20214         ISpeechPhraseElement *This);
20215 
20216     /*** IDispatch methods ***/
20217     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20218         ISpeechPhraseElement *This,
20219         UINT *pctinfo);
20220 
20221     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20222         ISpeechPhraseElement *This,
20223         UINT iTInfo,
20224         LCID lcid,
20225         ITypeInfo **ppTInfo);
20226 
20227     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20228         ISpeechPhraseElement *This,
20229         REFIID riid,
20230         LPOLESTR *rgszNames,
20231         UINT cNames,
20232         LCID lcid,
20233         DISPID *rgDispId);
20234 
20235     HRESULT (STDMETHODCALLTYPE *Invoke)(
20236         ISpeechPhraseElement *This,
20237         DISPID dispIdMember,
20238         REFIID riid,
20239         LCID lcid,
20240         WORD wFlags,
20241         DISPPARAMS *pDispParams,
20242         VARIANT *pVarResult,
20243         EXCEPINFO *pExcepInfo,
20244         UINT *puArgErr);
20245 
20246     /*** ISpeechPhraseElement methods ***/
20247     HRESULT (STDMETHODCALLTYPE *get_AudioTimeOffset)(
20248         ISpeechPhraseElement *This,
20249         LONG *AudioTimeOffset);
20250 
20251     HRESULT (STDMETHODCALLTYPE *get_AudioSizeTime)(
20252         ISpeechPhraseElement *This,
20253         LONG *AudioSizeTime);
20254 
20255     HRESULT (STDMETHODCALLTYPE *get_AudioStreamOffset)(
20256         ISpeechPhraseElement *This,
20257         LONG *AudioStreamOffset);
20258 
20259     HRESULT (STDMETHODCALLTYPE *get_AudioSizeBytes)(
20260         ISpeechPhraseElement *This,
20261         LONG *AudioSizeBytes);
20262 
20263     HRESULT (STDMETHODCALLTYPE *get_RetainedStreamOffset)(
20264         ISpeechPhraseElement *This,
20265         LONG *RetainedStreamOffset);
20266 
20267     HRESULT (STDMETHODCALLTYPE *get_RetainedSizeBytes)(
20268         ISpeechPhraseElement *This,
20269         LONG *RetainedSizeBytes);
20270 
20271     HRESULT (STDMETHODCALLTYPE *get_DisplayText)(
20272         ISpeechPhraseElement *This,
20273         BSTR *DisplayText);
20274 
20275     HRESULT (STDMETHODCALLTYPE *get_LexicalForm)(
20276         ISpeechPhraseElement *This,
20277         BSTR *LexicalForm);
20278 
20279     HRESULT (STDMETHODCALLTYPE *get_Pronunciation)(
20280         ISpeechPhraseElement *This,
20281         VARIANT *Pronunciation);
20282 
20283     HRESULT (STDMETHODCALLTYPE *get_DisplayAttributes)(
20284         ISpeechPhraseElement *This,
20285         SpeechDisplayAttributes *DisplayAttributes);
20286 
20287     HRESULT (STDMETHODCALLTYPE *get_RequiredConfidence)(
20288         ISpeechPhraseElement *This,
20289         SpeechEngineConfidence *RequiredConfidence);
20290 
20291     HRESULT (STDMETHODCALLTYPE *get_ActualConfidence)(
20292         ISpeechPhraseElement *This,
20293         SpeechEngineConfidence *ActualConfidence);
20294 
20295     HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
20296         ISpeechPhraseElement *This,
20297         float *EngineConfidence);
20298 
20299     END_INTERFACE
20300 } ISpeechPhraseElementVtbl;
20301 
20302 interface ISpeechPhraseElement {
20303     CONST_VTBL ISpeechPhraseElementVtbl* lpVtbl;
20304 };
20305 
20306 #ifdef COBJMACROS
20307 #ifndef WIDL_C_INLINE_WRAPPERS
20308 /*** IUnknown methods ***/
20309 #define ISpeechPhraseElement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20310 #define ISpeechPhraseElement_AddRef(This) (This)->lpVtbl->AddRef(This)
20311 #define ISpeechPhraseElement_Release(This) (This)->lpVtbl->Release(This)
20312 /*** IDispatch methods ***/
20313 #define ISpeechPhraseElement_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20314 #define ISpeechPhraseElement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
20315 #define ISpeechPhraseElement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
20316 #define ISpeechPhraseElement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
20317 /*** ISpeechPhraseElement methods ***/
20318 #define ISpeechPhraseElement_get_AudioTimeOffset(This,AudioTimeOffset) (This)->lpVtbl->get_AudioTimeOffset(This,AudioTimeOffset)
20319 #define ISpeechPhraseElement_get_AudioSizeTime(This,AudioSizeTime) (This)->lpVtbl->get_AudioSizeTime(This,AudioSizeTime)
20320 #define ISpeechPhraseElement_get_AudioStreamOffset(This,AudioStreamOffset) (This)->lpVtbl->get_AudioStreamOffset(This,AudioStreamOffset)
20321 #define ISpeechPhraseElement_get_AudioSizeBytes(This,AudioSizeBytes) (This)->lpVtbl->get_AudioSizeBytes(This,AudioSizeBytes)
20322 #define ISpeechPhraseElement_get_RetainedStreamOffset(This,RetainedStreamOffset) (This)->lpVtbl->get_RetainedStreamOffset(This,RetainedStreamOffset)
20323 #define ISpeechPhraseElement_get_RetainedSizeBytes(This,RetainedSizeBytes) (This)->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes)
20324 #define ISpeechPhraseElement_get_DisplayText(This,DisplayText) (This)->lpVtbl->get_DisplayText(This,DisplayText)
20325 #define ISpeechPhraseElement_get_LexicalForm(This,LexicalForm) (This)->lpVtbl->get_LexicalForm(This,LexicalForm)
20326 #define ISpeechPhraseElement_get_Pronunciation(This,Pronunciation) (This)->lpVtbl->get_Pronunciation(This,Pronunciation)
20327 #define ISpeechPhraseElement_get_DisplayAttributes(This,DisplayAttributes) (This)->lpVtbl->get_DisplayAttributes(This,DisplayAttributes)
20328 #define ISpeechPhraseElement_get_RequiredConfidence(This,RequiredConfidence) (This)->lpVtbl->get_RequiredConfidence(This,RequiredConfidence)
20329 #define ISpeechPhraseElement_get_ActualConfidence(This,ActualConfidence) (This)->lpVtbl->get_ActualConfidence(This,ActualConfidence)
20330 #define ISpeechPhraseElement_get_EngineConfidence(This,EngineConfidence) (This)->lpVtbl->get_EngineConfidence(This,EngineConfidence)
20331 #else
20332 /*** IUnknown methods ***/
20333 static FORCEINLINE HRESULT ISpeechPhraseElement_QueryInterface(ISpeechPhraseElement* This,REFIID riid,void **ppvObject) {
20334     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20335 }
20336 static FORCEINLINE ULONG ISpeechPhraseElement_AddRef(ISpeechPhraseElement* This) {
20337     return This->lpVtbl->AddRef(This);
20338 }
20339 static FORCEINLINE ULONG ISpeechPhraseElement_Release(ISpeechPhraseElement* This) {
20340     return This->lpVtbl->Release(This);
20341 }
20342 /*** IDispatch methods ***/
20343 static FORCEINLINE HRESULT ISpeechPhraseElement_GetTypeInfoCount(ISpeechPhraseElement* This,UINT *pctinfo) {
20344     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
20345 }
20346 static FORCEINLINE HRESULT ISpeechPhraseElement_GetTypeInfo(ISpeechPhraseElement* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
20347     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
20348 }
20349 static FORCEINLINE HRESULT ISpeechPhraseElement_GetIDsOfNames(ISpeechPhraseElement* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
20350     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
20351 }
20352 static FORCEINLINE HRESULT ISpeechPhraseElement_Invoke(ISpeechPhraseElement* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
20353     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
20354 }
20355 /*** ISpeechPhraseElement methods ***/
20356 static FORCEINLINE HRESULT ISpeechPhraseElement_get_AudioTimeOffset(ISpeechPhraseElement* This,LONG *AudioTimeOffset) {
20357     return This->lpVtbl->get_AudioTimeOffset(This,AudioTimeOffset);
20358 }
20359 static FORCEINLINE HRESULT ISpeechPhraseElement_get_AudioSizeTime(ISpeechPhraseElement* This,LONG *AudioSizeTime) {
20360     return This->lpVtbl->get_AudioSizeTime(This,AudioSizeTime);
20361 }
20362 static FORCEINLINE HRESULT ISpeechPhraseElement_get_AudioStreamOffset(ISpeechPhraseElement* This,LONG *AudioStreamOffset) {
20363     return This->lpVtbl->get_AudioStreamOffset(This,AudioStreamOffset);
20364 }
20365 static FORCEINLINE HRESULT ISpeechPhraseElement_get_AudioSizeBytes(ISpeechPhraseElement* This,LONG *AudioSizeBytes) {
20366     return This->lpVtbl->get_AudioSizeBytes(This,AudioSizeBytes);
20367 }
20368 static FORCEINLINE HRESULT ISpeechPhraseElement_get_RetainedStreamOffset(ISpeechPhraseElement* This,LONG *RetainedStreamOffset) {
20369     return This->lpVtbl->get_RetainedStreamOffset(This,RetainedStreamOffset);
20370 }
20371 static FORCEINLINE HRESULT ISpeechPhraseElement_get_RetainedSizeBytes(ISpeechPhraseElement* This,LONG *RetainedSizeBytes) {
20372     return This->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes);
20373 }
20374 static FORCEINLINE HRESULT ISpeechPhraseElement_get_DisplayText(ISpeechPhraseElement* This,BSTR *DisplayText) {
20375     return This->lpVtbl->get_DisplayText(This,DisplayText);
20376 }
20377 static FORCEINLINE HRESULT ISpeechPhraseElement_get_LexicalForm(ISpeechPhraseElement* This,BSTR *LexicalForm) {
20378     return This->lpVtbl->get_LexicalForm(This,LexicalForm);
20379 }
20380 static FORCEINLINE HRESULT ISpeechPhraseElement_get_Pronunciation(ISpeechPhraseElement* This,VARIANT *Pronunciation) {
20381     return This->lpVtbl->get_Pronunciation(This,Pronunciation);
20382 }
20383 static FORCEINLINE HRESULT ISpeechPhraseElement_get_DisplayAttributes(ISpeechPhraseElement* This,SpeechDisplayAttributes *DisplayAttributes) {
20384     return This->lpVtbl->get_DisplayAttributes(This,DisplayAttributes);
20385 }
20386 static FORCEINLINE HRESULT ISpeechPhraseElement_get_RequiredConfidence(ISpeechPhraseElement* This,SpeechEngineConfidence *RequiredConfidence) {
20387     return This->lpVtbl->get_RequiredConfidence(This,RequiredConfidence);
20388 }
20389 static FORCEINLINE HRESULT ISpeechPhraseElement_get_ActualConfidence(ISpeechPhraseElement* This,SpeechEngineConfidence *ActualConfidence) {
20390     return This->lpVtbl->get_ActualConfidence(This,ActualConfidence);
20391 }
20392 static FORCEINLINE HRESULT ISpeechPhraseElement_get_EngineConfidence(ISpeechPhraseElement* This,float *EngineConfidence) {
20393     return This->lpVtbl->get_EngineConfidence(This,EngineConfidence);
20394 }
20395 #endif
20396 #endif
20397 
20398 #endif
20399 
20400 
20401 #endif  /* __ISpeechPhraseElement_INTERFACE_DEFINED__ */
20402 
20403 /*****************************************************************************
20404  * ISpeechPhraseElements interface
20405  */
20406 #ifndef __ISpeechPhraseElements_INTERFACE_DEFINED__
20407 #define __ISpeechPhraseElements_INTERFACE_DEFINED__
20408 
20409 DEFINE_GUID(IID_ISpeechPhraseElements, 0x0626b328, 0x3478, 0x467d, 0xa0,0xb3, 0xd0,0x85,0x3b,0x93,0xdd,0xa3);
20410 #if defined(__cplusplus) && !defined(CINTERFACE)
20411 MIDL_INTERFACE("0626b328-3478-467d-a0b3-d0853b93dda3")
20412 ISpeechPhraseElements : public IDispatch
20413 {
20414     virtual HRESULT STDMETHODCALLTYPE get_Count(
20415         LONG *Count) = 0;
20416 
20417     virtual HRESULT STDMETHODCALLTYPE Item(
20418         LONG Index,
20419         ISpeechPhraseElement **Element) = 0;
20420 
20421     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
20422         IUnknown **EnumVARIANT) = 0;
20423 
20424 };
20425 #ifdef __CRT_UUID_DECL
20426 __CRT_UUID_DECL(ISpeechPhraseElements, 0x0626b328, 0x3478, 0x467d, 0xa0,0xb3, 0xd0,0x85,0x3b,0x93,0xdd,0xa3)
20427 #endif
20428 #else
20429 typedef struct ISpeechPhraseElementsVtbl {
20430     BEGIN_INTERFACE
20431 
20432     /*** IUnknown methods ***/
20433     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20434         ISpeechPhraseElements *This,
20435         REFIID riid,
20436         void **ppvObject);
20437 
20438     ULONG (STDMETHODCALLTYPE *AddRef)(
20439         ISpeechPhraseElements *This);
20440 
20441     ULONG (STDMETHODCALLTYPE *Release)(
20442         ISpeechPhraseElements *This);
20443 
20444     /*** IDispatch methods ***/
20445     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20446         ISpeechPhraseElements *This,
20447         UINT *pctinfo);
20448 
20449     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20450         ISpeechPhraseElements *This,
20451         UINT iTInfo,
20452         LCID lcid,
20453         ITypeInfo **ppTInfo);
20454 
20455     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20456         ISpeechPhraseElements *This,
20457         REFIID riid,
20458         LPOLESTR *rgszNames,
20459         UINT cNames,
20460         LCID lcid,
20461         DISPID *rgDispId);
20462 
20463     HRESULT (STDMETHODCALLTYPE *Invoke)(
20464         ISpeechPhraseElements *This,
20465         DISPID dispIdMember,
20466         REFIID riid,
20467         LCID lcid,
20468         WORD wFlags,
20469         DISPPARAMS *pDispParams,
20470         VARIANT *pVarResult,
20471         EXCEPINFO *pExcepInfo,
20472         UINT *puArgErr);
20473 
20474     /*** ISpeechPhraseElements methods ***/
20475     HRESULT (STDMETHODCALLTYPE *get_Count)(
20476         ISpeechPhraseElements *This,
20477         LONG *Count);
20478 
20479     HRESULT (STDMETHODCALLTYPE *Item)(
20480         ISpeechPhraseElements *This,
20481         LONG Index,
20482         ISpeechPhraseElement **Element);
20483 
20484     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
20485         ISpeechPhraseElements *This,
20486         IUnknown **EnumVARIANT);
20487 
20488     END_INTERFACE
20489 } ISpeechPhraseElementsVtbl;
20490 
20491 interface ISpeechPhraseElements {
20492     CONST_VTBL ISpeechPhraseElementsVtbl* lpVtbl;
20493 };
20494 
20495 #ifdef COBJMACROS
20496 #ifndef WIDL_C_INLINE_WRAPPERS
20497 /*** IUnknown methods ***/
20498 #define ISpeechPhraseElements_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20499 #define ISpeechPhraseElements_AddRef(This) (This)->lpVtbl->AddRef(This)
20500 #define ISpeechPhraseElements_Release(This) (This)->lpVtbl->Release(This)
20501 /*** IDispatch methods ***/
20502 #define ISpeechPhraseElements_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20503 #define ISpeechPhraseElements_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
20504 #define ISpeechPhraseElements_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
20505 #define ISpeechPhraseElements_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
20506 /*** ISpeechPhraseElements methods ***/
20507 #define ISpeechPhraseElements_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
20508 #define ISpeechPhraseElements_Item(This,Index,Element) (This)->lpVtbl->Item(This,Index,Element)
20509 #define ISpeechPhraseElements_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
20510 #else
20511 /*** IUnknown methods ***/
20512 static FORCEINLINE HRESULT ISpeechPhraseElements_QueryInterface(ISpeechPhraseElements* This,REFIID riid,void **ppvObject) {
20513     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20514 }
20515 static FORCEINLINE ULONG ISpeechPhraseElements_AddRef(ISpeechPhraseElements* This) {
20516     return This->lpVtbl->AddRef(This);
20517 }
20518 static FORCEINLINE ULONG ISpeechPhraseElements_Release(ISpeechPhraseElements* This) {
20519     return This->lpVtbl->Release(This);
20520 }
20521 /*** IDispatch methods ***/
20522 static FORCEINLINE HRESULT ISpeechPhraseElements_GetTypeInfoCount(ISpeechPhraseElements* This,UINT *pctinfo) {
20523     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
20524 }
20525 static FORCEINLINE HRESULT ISpeechPhraseElements_GetTypeInfo(ISpeechPhraseElements* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
20526     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
20527 }
20528 static FORCEINLINE HRESULT ISpeechPhraseElements_GetIDsOfNames(ISpeechPhraseElements* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
20529     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
20530 }
20531 static FORCEINLINE HRESULT ISpeechPhraseElements_Invoke(ISpeechPhraseElements* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
20532     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
20533 }
20534 /*** ISpeechPhraseElements methods ***/
20535 static FORCEINLINE HRESULT ISpeechPhraseElements_get_Count(ISpeechPhraseElements* This,LONG *Count) {
20536     return This->lpVtbl->get_Count(This,Count);
20537 }
20538 static FORCEINLINE HRESULT ISpeechPhraseElements_Item(ISpeechPhraseElements* This,LONG Index,ISpeechPhraseElement **Element) {
20539     return This->lpVtbl->Item(This,Index,Element);
20540 }
20541 static FORCEINLINE HRESULT ISpeechPhraseElements_get__NewEnum(ISpeechPhraseElements* This,IUnknown **EnumVARIANT) {
20542     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
20543 }
20544 #endif
20545 #endif
20546 
20547 #endif
20548 
20549 
20550 #endif  /* __ISpeechPhraseElements_INTERFACE_DEFINED__ */
20551 
20552 /*****************************************************************************
20553  * ISpeechPhraseReplacement interface
20554  */
20555 #ifndef __ISpeechPhraseReplacement_INTERFACE_DEFINED__
20556 #define __ISpeechPhraseReplacement_INTERFACE_DEFINED__
20557 
20558 DEFINE_GUID(IID_ISpeechPhraseReplacement, 0x2890a410, 0x53a7, 0x4fb5, 0x94,0xec, 0x06,0xd4,0x99,0x8e,0x3d,0x02);
20559 #if defined(__cplusplus) && !defined(CINTERFACE)
20560 MIDL_INTERFACE("2890a410-53a7-4fb5-94ec-06d4998e3d02")
20561 ISpeechPhraseReplacement : public IDispatch
20562 {
20563     virtual HRESULT STDMETHODCALLTYPE get_DisplayAttributes(
20564         SpeechDisplayAttributes *DisplayAttributes) = 0;
20565 
20566     virtual HRESULT STDMETHODCALLTYPE get_Text(
20567         BSTR *Text) = 0;
20568 
20569     virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
20570         LONG *FirstElement) = 0;
20571 
20572     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
20573         LONG *NumberOfElements) = 0;
20574 
20575 };
20576 #ifdef __CRT_UUID_DECL
20577 __CRT_UUID_DECL(ISpeechPhraseReplacement, 0x2890a410, 0x53a7, 0x4fb5, 0x94,0xec, 0x06,0xd4,0x99,0x8e,0x3d,0x02)
20578 #endif
20579 #else
20580 typedef struct ISpeechPhraseReplacementVtbl {
20581     BEGIN_INTERFACE
20582 
20583     /*** IUnknown methods ***/
20584     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20585         ISpeechPhraseReplacement *This,
20586         REFIID riid,
20587         void **ppvObject);
20588 
20589     ULONG (STDMETHODCALLTYPE *AddRef)(
20590         ISpeechPhraseReplacement *This);
20591 
20592     ULONG (STDMETHODCALLTYPE *Release)(
20593         ISpeechPhraseReplacement *This);
20594 
20595     /*** IDispatch methods ***/
20596     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20597         ISpeechPhraseReplacement *This,
20598         UINT *pctinfo);
20599 
20600     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20601         ISpeechPhraseReplacement *This,
20602         UINT iTInfo,
20603         LCID lcid,
20604         ITypeInfo **ppTInfo);
20605 
20606     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20607         ISpeechPhraseReplacement *This,
20608         REFIID riid,
20609         LPOLESTR *rgszNames,
20610         UINT cNames,
20611         LCID lcid,
20612         DISPID *rgDispId);
20613 
20614     HRESULT (STDMETHODCALLTYPE *Invoke)(
20615         ISpeechPhraseReplacement *This,
20616         DISPID dispIdMember,
20617         REFIID riid,
20618         LCID lcid,
20619         WORD wFlags,
20620         DISPPARAMS *pDispParams,
20621         VARIANT *pVarResult,
20622         EXCEPINFO *pExcepInfo,
20623         UINT *puArgErr);
20624 
20625     /*** ISpeechPhraseReplacement methods ***/
20626     HRESULT (STDMETHODCALLTYPE *get_DisplayAttributes)(
20627         ISpeechPhraseReplacement *This,
20628         SpeechDisplayAttributes *DisplayAttributes);
20629 
20630     HRESULT (STDMETHODCALLTYPE *get_Text)(
20631         ISpeechPhraseReplacement *This,
20632         BSTR *Text);
20633 
20634     HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
20635         ISpeechPhraseReplacement *This,
20636         LONG *FirstElement);
20637 
20638     HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
20639         ISpeechPhraseReplacement *This,
20640         LONG *NumberOfElements);
20641 
20642     END_INTERFACE
20643 } ISpeechPhraseReplacementVtbl;
20644 
20645 interface ISpeechPhraseReplacement {
20646     CONST_VTBL ISpeechPhraseReplacementVtbl* lpVtbl;
20647 };
20648 
20649 #ifdef COBJMACROS
20650 #ifndef WIDL_C_INLINE_WRAPPERS
20651 /*** IUnknown methods ***/
20652 #define ISpeechPhraseReplacement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20653 #define ISpeechPhraseReplacement_AddRef(This) (This)->lpVtbl->AddRef(This)
20654 #define ISpeechPhraseReplacement_Release(This) (This)->lpVtbl->Release(This)
20655 /*** IDispatch methods ***/
20656 #define ISpeechPhraseReplacement_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20657 #define ISpeechPhraseReplacement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
20658 #define ISpeechPhraseReplacement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
20659 #define ISpeechPhraseReplacement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
20660 /*** ISpeechPhraseReplacement methods ***/
20661 #define ISpeechPhraseReplacement_get_DisplayAttributes(This,DisplayAttributes) (This)->lpVtbl->get_DisplayAttributes(This,DisplayAttributes)
20662 #define ISpeechPhraseReplacement_get_Text(This,Text) (This)->lpVtbl->get_Text(This,Text)
20663 #define ISpeechPhraseReplacement_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
20664 #define ISpeechPhraseReplacement_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
20665 #else
20666 /*** IUnknown methods ***/
20667 static FORCEINLINE HRESULT ISpeechPhraseReplacement_QueryInterface(ISpeechPhraseReplacement* This,REFIID riid,void **ppvObject) {
20668     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20669 }
20670 static FORCEINLINE ULONG ISpeechPhraseReplacement_AddRef(ISpeechPhraseReplacement* This) {
20671     return This->lpVtbl->AddRef(This);
20672 }
20673 static FORCEINLINE ULONG ISpeechPhraseReplacement_Release(ISpeechPhraseReplacement* This) {
20674     return This->lpVtbl->Release(This);
20675 }
20676 /*** IDispatch methods ***/
20677 static FORCEINLINE HRESULT ISpeechPhraseReplacement_GetTypeInfoCount(ISpeechPhraseReplacement* This,UINT *pctinfo) {
20678     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
20679 }
20680 static FORCEINLINE HRESULT ISpeechPhraseReplacement_GetTypeInfo(ISpeechPhraseReplacement* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
20681     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
20682 }
20683 static FORCEINLINE HRESULT ISpeechPhraseReplacement_GetIDsOfNames(ISpeechPhraseReplacement* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
20684     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
20685 }
20686 static FORCEINLINE HRESULT ISpeechPhraseReplacement_Invoke(ISpeechPhraseReplacement* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
20687     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
20688 }
20689 /*** ISpeechPhraseReplacement methods ***/
20690 static FORCEINLINE HRESULT ISpeechPhraseReplacement_get_DisplayAttributes(ISpeechPhraseReplacement* This,SpeechDisplayAttributes *DisplayAttributes) {
20691     return This->lpVtbl->get_DisplayAttributes(This,DisplayAttributes);
20692 }
20693 static FORCEINLINE HRESULT ISpeechPhraseReplacement_get_Text(ISpeechPhraseReplacement* This,BSTR *Text) {
20694     return This->lpVtbl->get_Text(This,Text);
20695 }
20696 static FORCEINLINE HRESULT ISpeechPhraseReplacement_get_FirstElement(ISpeechPhraseReplacement* This,LONG *FirstElement) {
20697     return This->lpVtbl->get_FirstElement(This,FirstElement);
20698 }
20699 static FORCEINLINE HRESULT ISpeechPhraseReplacement_get_NumberOfElements(ISpeechPhraseReplacement* This,LONG *NumberOfElements) {
20700     return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
20701 }
20702 #endif
20703 #endif
20704 
20705 #endif
20706 
20707 
20708 #endif  /* __ISpeechPhraseReplacement_INTERFACE_DEFINED__ */
20709 
20710 /*****************************************************************************
20711  * ISpeechPhraseReplacements interface
20712  */
20713 #ifndef __ISpeechPhraseReplacements_INTERFACE_DEFINED__
20714 #define __ISpeechPhraseReplacements_INTERFACE_DEFINED__
20715 
20716 DEFINE_GUID(IID_ISpeechPhraseReplacements, 0x38bc662f, 0x2257, 0x4525, 0x95,0x9e, 0x20,0x69,0xd2,0x59,0x6c,0x05);
20717 #if defined(__cplusplus) && !defined(CINTERFACE)
20718 MIDL_INTERFACE("38bc662f-2257-4525-959e-2069d2596c05")
20719 ISpeechPhraseReplacements : public IDispatch
20720 {
20721     virtual HRESULT STDMETHODCALLTYPE get_Count(
20722         LONG *Count) = 0;
20723 
20724     virtual HRESULT STDMETHODCALLTYPE Item(
20725         LONG Index,
20726         ISpeechPhraseReplacement **Reps) = 0;
20727 
20728     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
20729         IUnknown **EnumVARIANT) = 0;
20730 
20731 };
20732 #ifdef __CRT_UUID_DECL
20733 __CRT_UUID_DECL(ISpeechPhraseReplacements, 0x38bc662f, 0x2257, 0x4525, 0x95,0x9e, 0x20,0x69,0xd2,0x59,0x6c,0x05)
20734 #endif
20735 #else
20736 typedef struct ISpeechPhraseReplacementsVtbl {
20737     BEGIN_INTERFACE
20738 
20739     /*** IUnknown methods ***/
20740     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20741         ISpeechPhraseReplacements *This,
20742         REFIID riid,
20743         void **ppvObject);
20744 
20745     ULONG (STDMETHODCALLTYPE *AddRef)(
20746         ISpeechPhraseReplacements *This);
20747 
20748     ULONG (STDMETHODCALLTYPE *Release)(
20749         ISpeechPhraseReplacements *This);
20750 
20751     /*** IDispatch methods ***/
20752     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20753         ISpeechPhraseReplacements *This,
20754         UINT *pctinfo);
20755 
20756     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20757         ISpeechPhraseReplacements *This,
20758         UINT iTInfo,
20759         LCID lcid,
20760         ITypeInfo **ppTInfo);
20761 
20762     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20763         ISpeechPhraseReplacements *This,
20764         REFIID riid,
20765         LPOLESTR *rgszNames,
20766         UINT cNames,
20767         LCID lcid,
20768         DISPID *rgDispId);
20769 
20770     HRESULT (STDMETHODCALLTYPE *Invoke)(
20771         ISpeechPhraseReplacements *This,
20772         DISPID dispIdMember,
20773         REFIID riid,
20774         LCID lcid,
20775         WORD wFlags,
20776         DISPPARAMS *pDispParams,
20777         VARIANT *pVarResult,
20778         EXCEPINFO *pExcepInfo,
20779         UINT *puArgErr);
20780 
20781     /*** ISpeechPhraseReplacements methods ***/
20782     HRESULT (STDMETHODCALLTYPE *get_Count)(
20783         ISpeechPhraseReplacements *This,
20784         LONG *Count);
20785 
20786     HRESULT (STDMETHODCALLTYPE *Item)(
20787         ISpeechPhraseReplacements *This,
20788         LONG Index,
20789         ISpeechPhraseReplacement **Reps);
20790 
20791     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
20792         ISpeechPhraseReplacements *This,
20793         IUnknown **EnumVARIANT);
20794 
20795     END_INTERFACE
20796 } ISpeechPhraseReplacementsVtbl;
20797 
20798 interface ISpeechPhraseReplacements {
20799     CONST_VTBL ISpeechPhraseReplacementsVtbl* lpVtbl;
20800 };
20801 
20802 #ifdef COBJMACROS
20803 #ifndef WIDL_C_INLINE_WRAPPERS
20804 /*** IUnknown methods ***/
20805 #define ISpeechPhraseReplacements_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20806 #define ISpeechPhraseReplacements_AddRef(This) (This)->lpVtbl->AddRef(This)
20807 #define ISpeechPhraseReplacements_Release(This) (This)->lpVtbl->Release(This)
20808 /*** IDispatch methods ***/
20809 #define ISpeechPhraseReplacements_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20810 #define ISpeechPhraseReplacements_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
20811 #define ISpeechPhraseReplacements_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
20812 #define ISpeechPhraseReplacements_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
20813 /*** ISpeechPhraseReplacements methods ***/
20814 #define ISpeechPhraseReplacements_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
20815 #define ISpeechPhraseReplacements_Item(This,Index,Reps) (This)->lpVtbl->Item(This,Index,Reps)
20816 #define ISpeechPhraseReplacements_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
20817 #else
20818 /*** IUnknown methods ***/
20819 static FORCEINLINE HRESULT ISpeechPhraseReplacements_QueryInterface(ISpeechPhraseReplacements* This,REFIID riid,void **ppvObject) {
20820     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20821 }
20822 static FORCEINLINE ULONG ISpeechPhraseReplacements_AddRef(ISpeechPhraseReplacements* This) {
20823     return This->lpVtbl->AddRef(This);
20824 }
20825 static FORCEINLINE ULONG ISpeechPhraseReplacements_Release(ISpeechPhraseReplacements* This) {
20826     return This->lpVtbl->Release(This);
20827 }
20828 /*** IDispatch methods ***/
20829 static FORCEINLINE HRESULT ISpeechPhraseReplacements_GetTypeInfoCount(ISpeechPhraseReplacements* This,UINT *pctinfo) {
20830     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
20831 }
20832 static FORCEINLINE HRESULT ISpeechPhraseReplacements_GetTypeInfo(ISpeechPhraseReplacements* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
20833     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
20834 }
20835 static FORCEINLINE HRESULT ISpeechPhraseReplacements_GetIDsOfNames(ISpeechPhraseReplacements* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
20836     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
20837 }
20838 static FORCEINLINE HRESULT ISpeechPhraseReplacements_Invoke(ISpeechPhraseReplacements* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
20839     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
20840 }
20841 /*** ISpeechPhraseReplacements methods ***/
20842 static FORCEINLINE HRESULT ISpeechPhraseReplacements_get_Count(ISpeechPhraseReplacements* This,LONG *Count) {
20843     return This->lpVtbl->get_Count(This,Count);
20844 }
20845 static FORCEINLINE HRESULT ISpeechPhraseReplacements_Item(ISpeechPhraseReplacements* This,LONG Index,ISpeechPhraseReplacement **Reps) {
20846     return This->lpVtbl->Item(This,Index,Reps);
20847 }
20848 static FORCEINLINE HRESULT ISpeechPhraseReplacements_get__NewEnum(ISpeechPhraseReplacements* This,IUnknown **EnumVARIANT) {
20849     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
20850 }
20851 #endif
20852 #endif
20853 
20854 #endif
20855 
20856 
20857 #endif  /* __ISpeechPhraseReplacements_INTERFACE_DEFINED__ */
20858 
20859 /*****************************************************************************
20860  * ISpeechPhraseProperty interface
20861  */
20862 #ifndef __ISpeechPhraseProperty_INTERFACE_DEFINED__
20863 #define __ISpeechPhraseProperty_INTERFACE_DEFINED__
20864 
20865 DEFINE_GUID(IID_ISpeechPhraseProperty, 0xce563d48, 0x961e, 0x4732, 0xa2,0xe1, 0x37,0x8a,0x42,0xb4,0x30,0xbe);
20866 #if defined(__cplusplus) && !defined(CINTERFACE)
20867 MIDL_INTERFACE("ce563d48-961e-4732-a2e1-378a42b430be")
20868 ISpeechPhraseProperty : public IDispatch
20869 {
20870     virtual HRESULT STDMETHODCALLTYPE get_Name(
20871         BSTR *Name) = 0;
20872 
20873     virtual HRESULT STDMETHODCALLTYPE get_Id(
20874         LONG *Id) = 0;
20875 
20876     virtual HRESULT STDMETHODCALLTYPE get_Value(
20877         VARIANT *Value) = 0;
20878 
20879     virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
20880         LONG *FirstElement) = 0;
20881 
20882     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
20883         LONG *NumberOfElements) = 0;
20884 
20885     virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
20886         float *Confidence) = 0;
20887 
20888     virtual HRESULT STDMETHODCALLTYPE get_Confidence(
20889         SpeechEngineConfidence *Confidence) = 0;
20890 
20891     virtual HRESULT STDMETHODCALLTYPE get_Parent(
20892         ISpeechPhraseProperty **ParentProperty) = 0;
20893 
20894     virtual HRESULT STDMETHODCALLTYPE get_Children(
20895         ISpeechPhraseProperties **Children) = 0;
20896 
20897 };
20898 #ifdef __CRT_UUID_DECL
20899 __CRT_UUID_DECL(ISpeechPhraseProperty, 0xce563d48, 0x961e, 0x4732, 0xa2,0xe1, 0x37,0x8a,0x42,0xb4,0x30,0xbe)
20900 #endif
20901 #else
20902 typedef struct ISpeechPhrasePropertyVtbl {
20903     BEGIN_INTERFACE
20904 
20905     /*** IUnknown methods ***/
20906     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20907         ISpeechPhraseProperty *This,
20908         REFIID riid,
20909         void **ppvObject);
20910 
20911     ULONG (STDMETHODCALLTYPE *AddRef)(
20912         ISpeechPhraseProperty *This);
20913 
20914     ULONG (STDMETHODCALLTYPE *Release)(
20915         ISpeechPhraseProperty *This);
20916 
20917     /*** IDispatch methods ***/
20918     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20919         ISpeechPhraseProperty *This,
20920         UINT *pctinfo);
20921 
20922     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20923         ISpeechPhraseProperty *This,
20924         UINT iTInfo,
20925         LCID lcid,
20926         ITypeInfo **ppTInfo);
20927 
20928     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20929         ISpeechPhraseProperty *This,
20930         REFIID riid,
20931         LPOLESTR *rgszNames,
20932         UINT cNames,
20933         LCID lcid,
20934         DISPID *rgDispId);
20935 
20936     HRESULT (STDMETHODCALLTYPE *Invoke)(
20937         ISpeechPhraseProperty *This,
20938         DISPID dispIdMember,
20939         REFIID riid,
20940         LCID lcid,
20941         WORD wFlags,
20942         DISPPARAMS *pDispParams,
20943         VARIANT *pVarResult,
20944         EXCEPINFO *pExcepInfo,
20945         UINT *puArgErr);
20946 
20947     /*** ISpeechPhraseProperty methods ***/
20948     HRESULT (STDMETHODCALLTYPE *get_Name)(
20949         ISpeechPhraseProperty *This,
20950         BSTR *Name);
20951 
20952     HRESULT (STDMETHODCALLTYPE *get_Id)(
20953         ISpeechPhraseProperty *This,
20954         LONG *Id);
20955 
20956     HRESULT (STDMETHODCALLTYPE *get_Value)(
20957         ISpeechPhraseProperty *This,
20958         VARIANT *Value);
20959 
20960     HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
20961         ISpeechPhraseProperty *This,
20962         LONG *FirstElement);
20963 
20964     HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
20965         ISpeechPhraseProperty *This,
20966         LONG *NumberOfElements);
20967 
20968     HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
20969         ISpeechPhraseProperty *This,
20970         float *Confidence);
20971 
20972     HRESULT (STDMETHODCALLTYPE *get_Confidence)(
20973         ISpeechPhraseProperty *This,
20974         SpeechEngineConfidence *Confidence);
20975 
20976     HRESULT (STDMETHODCALLTYPE *get_Parent)(
20977         ISpeechPhraseProperty *This,
20978         ISpeechPhraseProperty **ParentProperty);
20979 
20980     HRESULT (STDMETHODCALLTYPE *get_Children)(
20981         ISpeechPhraseProperty *This,
20982         ISpeechPhraseProperties **Children);
20983 
20984     END_INTERFACE
20985 } ISpeechPhrasePropertyVtbl;
20986 
20987 interface ISpeechPhraseProperty {
20988     CONST_VTBL ISpeechPhrasePropertyVtbl* lpVtbl;
20989 };
20990 
20991 #ifdef COBJMACROS
20992 #ifndef WIDL_C_INLINE_WRAPPERS
20993 /*** IUnknown methods ***/
20994 #define ISpeechPhraseProperty_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20995 #define ISpeechPhraseProperty_AddRef(This) (This)->lpVtbl->AddRef(This)
20996 #define ISpeechPhraseProperty_Release(This) (This)->lpVtbl->Release(This)
20997 /*** IDispatch methods ***/
20998 #define ISpeechPhraseProperty_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20999 #define ISpeechPhraseProperty_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21000 #define ISpeechPhraseProperty_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21001 #define ISpeechPhraseProperty_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21002 /*** ISpeechPhraseProperty methods ***/
21003 #define ISpeechPhraseProperty_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
21004 #define ISpeechPhraseProperty_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
21005 #define ISpeechPhraseProperty_get_Value(This,Value) (This)->lpVtbl->get_Value(This,Value)
21006 #define ISpeechPhraseProperty_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
21007 #define ISpeechPhraseProperty_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
21008 #define ISpeechPhraseProperty_get_EngineConfidence(This,Confidence) (This)->lpVtbl->get_EngineConfidence(This,Confidence)
21009 #define ISpeechPhraseProperty_get_Confidence(This,Confidence) (This)->lpVtbl->get_Confidence(This,Confidence)
21010 #define ISpeechPhraseProperty_get_Parent(This,ParentProperty) (This)->lpVtbl->get_Parent(This,ParentProperty)
21011 #define ISpeechPhraseProperty_get_Children(This,Children) (This)->lpVtbl->get_Children(This,Children)
21012 #else
21013 /*** IUnknown methods ***/
21014 static FORCEINLINE HRESULT ISpeechPhraseProperty_QueryInterface(ISpeechPhraseProperty* This,REFIID riid,void **ppvObject) {
21015     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21016 }
21017 static FORCEINLINE ULONG ISpeechPhraseProperty_AddRef(ISpeechPhraseProperty* This) {
21018     return This->lpVtbl->AddRef(This);
21019 }
21020 static FORCEINLINE ULONG ISpeechPhraseProperty_Release(ISpeechPhraseProperty* This) {
21021     return This->lpVtbl->Release(This);
21022 }
21023 /*** IDispatch methods ***/
21024 static FORCEINLINE HRESULT ISpeechPhraseProperty_GetTypeInfoCount(ISpeechPhraseProperty* This,UINT *pctinfo) {
21025     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21026 }
21027 static FORCEINLINE HRESULT ISpeechPhraseProperty_GetTypeInfo(ISpeechPhraseProperty* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21028     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21029 }
21030 static FORCEINLINE HRESULT ISpeechPhraseProperty_GetIDsOfNames(ISpeechPhraseProperty* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21031     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21032 }
21033 static FORCEINLINE HRESULT ISpeechPhraseProperty_Invoke(ISpeechPhraseProperty* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21034     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21035 }
21036 /*** ISpeechPhraseProperty methods ***/
21037 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Name(ISpeechPhraseProperty* This,BSTR *Name) {
21038     return This->lpVtbl->get_Name(This,Name);
21039 }
21040 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Id(ISpeechPhraseProperty* This,LONG *Id) {
21041     return This->lpVtbl->get_Id(This,Id);
21042 }
21043 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Value(ISpeechPhraseProperty* This,VARIANT *Value) {
21044     return This->lpVtbl->get_Value(This,Value);
21045 }
21046 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_FirstElement(ISpeechPhraseProperty* This,LONG *FirstElement) {
21047     return This->lpVtbl->get_FirstElement(This,FirstElement);
21048 }
21049 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_NumberOfElements(ISpeechPhraseProperty* This,LONG *NumberOfElements) {
21050     return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
21051 }
21052 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_EngineConfidence(ISpeechPhraseProperty* This,float *Confidence) {
21053     return This->lpVtbl->get_EngineConfidence(This,Confidence);
21054 }
21055 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Confidence(ISpeechPhraseProperty* This,SpeechEngineConfidence *Confidence) {
21056     return This->lpVtbl->get_Confidence(This,Confidence);
21057 }
21058 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Parent(ISpeechPhraseProperty* This,ISpeechPhraseProperty **ParentProperty) {
21059     return This->lpVtbl->get_Parent(This,ParentProperty);
21060 }
21061 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Children(ISpeechPhraseProperty* This,ISpeechPhraseProperties **Children) {
21062     return This->lpVtbl->get_Children(This,Children);
21063 }
21064 #endif
21065 #endif
21066 
21067 #endif
21068 
21069 
21070 #endif  /* __ISpeechPhraseProperty_INTERFACE_DEFINED__ */
21071 
21072 /*****************************************************************************
21073  * ISpeechPhraseProperties interface
21074  */
21075 #ifndef __ISpeechPhraseProperties_INTERFACE_DEFINED__
21076 #define __ISpeechPhraseProperties_INTERFACE_DEFINED__
21077 
21078 DEFINE_GUID(IID_ISpeechPhraseProperties, 0x08166b47, 0x102e, 0x4b23, 0xa5,0x99, 0xbd,0xb9,0x8d,0xbf,0xd1,0xf4);
21079 #if defined(__cplusplus) && !defined(CINTERFACE)
21080 MIDL_INTERFACE("08166b47-102e-4b23-a599-bdb98dbfd1f4")
21081 ISpeechPhraseProperties : public IDispatch
21082 {
21083     virtual HRESULT STDMETHODCALLTYPE get_Count(
21084         LONG *Count) = 0;
21085 
21086     virtual HRESULT STDMETHODCALLTYPE Item(
21087         LONG Index,
21088         ISpeechPhraseProperty **Property) = 0;
21089 
21090     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
21091         IUnknown **EnumVARIANT) = 0;
21092 
21093 };
21094 #ifdef __CRT_UUID_DECL
21095 __CRT_UUID_DECL(ISpeechPhraseProperties, 0x08166b47, 0x102e, 0x4b23, 0xa5,0x99, 0xbd,0xb9,0x8d,0xbf,0xd1,0xf4)
21096 #endif
21097 #else
21098 typedef struct ISpeechPhrasePropertiesVtbl {
21099     BEGIN_INTERFACE
21100 
21101     /*** IUnknown methods ***/
21102     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21103         ISpeechPhraseProperties *This,
21104         REFIID riid,
21105         void **ppvObject);
21106 
21107     ULONG (STDMETHODCALLTYPE *AddRef)(
21108         ISpeechPhraseProperties *This);
21109 
21110     ULONG (STDMETHODCALLTYPE *Release)(
21111         ISpeechPhraseProperties *This);
21112 
21113     /*** IDispatch methods ***/
21114     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21115         ISpeechPhraseProperties *This,
21116         UINT *pctinfo);
21117 
21118     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21119         ISpeechPhraseProperties *This,
21120         UINT iTInfo,
21121         LCID lcid,
21122         ITypeInfo **ppTInfo);
21123 
21124     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21125         ISpeechPhraseProperties *This,
21126         REFIID riid,
21127         LPOLESTR *rgszNames,
21128         UINT cNames,
21129         LCID lcid,
21130         DISPID *rgDispId);
21131 
21132     HRESULT (STDMETHODCALLTYPE *Invoke)(
21133         ISpeechPhraseProperties *This,
21134         DISPID dispIdMember,
21135         REFIID riid,
21136         LCID lcid,
21137         WORD wFlags,
21138         DISPPARAMS *pDispParams,
21139         VARIANT *pVarResult,
21140         EXCEPINFO *pExcepInfo,
21141         UINT *puArgErr);
21142 
21143     /*** ISpeechPhraseProperties methods ***/
21144     HRESULT (STDMETHODCALLTYPE *get_Count)(
21145         ISpeechPhraseProperties *This,
21146         LONG *Count);
21147 
21148     HRESULT (STDMETHODCALLTYPE *Item)(
21149         ISpeechPhraseProperties *This,
21150         LONG Index,
21151         ISpeechPhraseProperty **Property);
21152 
21153     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
21154         ISpeechPhraseProperties *This,
21155         IUnknown **EnumVARIANT);
21156 
21157     END_INTERFACE
21158 } ISpeechPhrasePropertiesVtbl;
21159 
21160 interface ISpeechPhraseProperties {
21161     CONST_VTBL ISpeechPhrasePropertiesVtbl* lpVtbl;
21162 };
21163 
21164 #ifdef COBJMACROS
21165 #ifndef WIDL_C_INLINE_WRAPPERS
21166 /*** IUnknown methods ***/
21167 #define ISpeechPhraseProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21168 #define ISpeechPhraseProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
21169 #define ISpeechPhraseProperties_Release(This) (This)->lpVtbl->Release(This)
21170 /*** IDispatch methods ***/
21171 #define ISpeechPhraseProperties_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21172 #define ISpeechPhraseProperties_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21173 #define ISpeechPhraseProperties_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21174 #define ISpeechPhraseProperties_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21175 /*** ISpeechPhraseProperties methods ***/
21176 #define ISpeechPhraseProperties_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
21177 #define ISpeechPhraseProperties_Item(This,Index,Property) (This)->lpVtbl->Item(This,Index,Property)
21178 #define ISpeechPhraseProperties_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
21179 #else
21180 /*** IUnknown methods ***/
21181 static FORCEINLINE HRESULT ISpeechPhraseProperties_QueryInterface(ISpeechPhraseProperties* This,REFIID riid,void **ppvObject) {
21182     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21183 }
21184 static FORCEINLINE ULONG ISpeechPhraseProperties_AddRef(ISpeechPhraseProperties* This) {
21185     return This->lpVtbl->AddRef(This);
21186 }
21187 static FORCEINLINE ULONG ISpeechPhraseProperties_Release(ISpeechPhraseProperties* This) {
21188     return This->lpVtbl->Release(This);
21189 }
21190 /*** IDispatch methods ***/
21191 static FORCEINLINE HRESULT ISpeechPhraseProperties_GetTypeInfoCount(ISpeechPhraseProperties* This,UINT *pctinfo) {
21192     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21193 }
21194 static FORCEINLINE HRESULT ISpeechPhraseProperties_GetTypeInfo(ISpeechPhraseProperties* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21195     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21196 }
21197 static FORCEINLINE HRESULT ISpeechPhraseProperties_GetIDsOfNames(ISpeechPhraseProperties* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21198     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21199 }
21200 static FORCEINLINE HRESULT ISpeechPhraseProperties_Invoke(ISpeechPhraseProperties* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21201     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21202 }
21203 /*** ISpeechPhraseProperties methods ***/
21204 static FORCEINLINE HRESULT ISpeechPhraseProperties_get_Count(ISpeechPhraseProperties* This,LONG *Count) {
21205     return This->lpVtbl->get_Count(This,Count);
21206 }
21207 static FORCEINLINE HRESULT ISpeechPhraseProperties_Item(ISpeechPhraseProperties* This,LONG Index,ISpeechPhraseProperty **Property) {
21208     return This->lpVtbl->Item(This,Index,Property);
21209 }
21210 static FORCEINLINE HRESULT ISpeechPhraseProperties_get__NewEnum(ISpeechPhraseProperties* This,IUnknown **EnumVARIANT) {
21211     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
21212 }
21213 #endif
21214 #endif
21215 
21216 #endif
21217 
21218 
21219 #endif  /* __ISpeechPhraseProperties_INTERFACE_DEFINED__ */
21220 
21221 /*****************************************************************************
21222  * ISpeechPhraseRule interface
21223  */
21224 #ifndef __ISpeechPhraseRule_INTERFACE_DEFINED__
21225 #define __ISpeechPhraseRule_INTERFACE_DEFINED__
21226 
21227 DEFINE_GUID(IID_ISpeechPhraseRule, 0xa7bfe112, 0xa4a0, 0x48d9, 0xb6,0x02, 0xc3,0x13,0x84,0x3f,0x69,0x64);
21228 #if defined(__cplusplus) && !defined(CINTERFACE)
21229 MIDL_INTERFACE("a7bfe112-a4a0-48d9-b602-c313843f6964")
21230 ISpeechPhraseRule : public IDispatch
21231 {
21232     virtual HRESULT STDMETHODCALLTYPE get_Name(
21233         BSTR *Name) = 0;
21234 
21235     virtual HRESULT STDMETHODCALLTYPE get_Id(
21236         LONG *Id) = 0;
21237 
21238     virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
21239         LONG *FirstElement) = 0;
21240 
21241     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
21242         LONG *NumberOfElements) = 0;
21243 
21244     virtual HRESULT STDMETHODCALLTYPE get_Parent(
21245         ISpeechPhraseRule **Parent) = 0;
21246 
21247     virtual HRESULT STDMETHODCALLTYPE get_Children(
21248         ISpeechPhraseRules **Children) = 0;
21249 
21250     virtual HRESULT STDMETHODCALLTYPE get_Confidence(
21251         SpeechEngineConfidence *ActualConfidence) = 0;
21252 
21253     virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
21254         float *EngineConfidence) = 0;
21255 
21256 };
21257 #ifdef __CRT_UUID_DECL
21258 __CRT_UUID_DECL(ISpeechPhraseRule, 0xa7bfe112, 0xa4a0, 0x48d9, 0xb6,0x02, 0xc3,0x13,0x84,0x3f,0x69,0x64)
21259 #endif
21260 #else
21261 typedef struct ISpeechPhraseRuleVtbl {
21262     BEGIN_INTERFACE
21263 
21264     /*** IUnknown methods ***/
21265     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21266         ISpeechPhraseRule *This,
21267         REFIID riid,
21268         void **ppvObject);
21269 
21270     ULONG (STDMETHODCALLTYPE *AddRef)(
21271         ISpeechPhraseRule *This);
21272 
21273     ULONG (STDMETHODCALLTYPE *Release)(
21274         ISpeechPhraseRule *This);
21275 
21276     /*** IDispatch methods ***/
21277     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21278         ISpeechPhraseRule *This,
21279         UINT *pctinfo);
21280 
21281     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21282         ISpeechPhraseRule *This,
21283         UINT iTInfo,
21284         LCID lcid,
21285         ITypeInfo **ppTInfo);
21286 
21287     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21288         ISpeechPhraseRule *This,
21289         REFIID riid,
21290         LPOLESTR *rgszNames,
21291         UINT cNames,
21292         LCID lcid,
21293         DISPID *rgDispId);
21294 
21295     HRESULT (STDMETHODCALLTYPE *Invoke)(
21296         ISpeechPhraseRule *This,
21297         DISPID dispIdMember,
21298         REFIID riid,
21299         LCID lcid,
21300         WORD wFlags,
21301         DISPPARAMS *pDispParams,
21302         VARIANT *pVarResult,
21303         EXCEPINFO *pExcepInfo,
21304         UINT *puArgErr);
21305 
21306     /*** ISpeechPhraseRule methods ***/
21307     HRESULT (STDMETHODCALLTYPE *get_Name)(
21308         ISpeechPhraseRule *This,
21309         BSTR *Name);
21310 
21311     HRESULT (STDMETHODCALLTYPE *get_Id)(
21312         ISpeechPhraseRule *This,
21313         LONG *Id);
21314 
21315     HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
21316         ISpeechPhraseRule *This,
21317         LONG *FirstElement);
21318 
21319     HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
21320         ISpeechPhraseRule *This,
21321         LONG *NumberOfElements);
21322 
21323     HRESULT (STDMETHODCALLTYPE *get_Parent)(
21324         ISpeechPhraseRule *This,
21325         ISpeechPhraseRule **Parent);
21326 
21327     HRESULT (STDMETHODCALLTYPE *get_Children)(
21328         ISpeechPhraseRule *This,
21329         ISpeechPhraseRules **Children);
21330 
21331     HRESULT (STDMETHODCALLTYPE *get_Confidence)(
21332         ISpeechPhraseRule *This,
21333         SpeechEngineConfidence *ActualConfidence);
21334 
21335     HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
21336         ISpeechPhraseRule *This,
21337         float *EngineConfidence);
21338 
21339     END_INTERFACE
21340 } ISpeechPhraseRuleVtbl;
21341 
21342 interface ISpeechPhraseRule {
21343     CONST_VTBL ISpeechPhraseRuleVtbl* lpVtbl;
21344 };
21345 
21346 #ifdef COBJMACROS
21347 #ifndef WIDL_C_INLINE_WRAPPERS
21348 /*** IUnknown methods ***/
21349 #define ISpeechPhraseRule_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21350 #define ISpeechPhraseRule_AddRef(This) (This)->lpVtbl->AddRef(This)
21351 #define ISpeechPhraseRule_Release(This) (This)->lpVtbl->Release(This)
21352 /*** IDispatch methods ***/
21353 #define ISpeechPhraseRule_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21354 #define ISpeechPhraseRule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21355 #define ISpeechPhraseRule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21356 #define ISpeechPhraseRule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21357 /*** ISpeechPhraseRule methods ***/
21358 #define ISpeechPhraseRule_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
21359 #define ISpeechPhraseRule_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
21360 #define ISpeechPhraseRule_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
21361 #define ISpeechPhraseRule_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
21362 #define ISpeechPhraseRule_get_Parent(This,Parent) (This)->lpVtbl->get_Parent(This,Parent)
21363 #define ISpeechPhraseRule_get_Children(This,Children) (This)->lpVtbl->get_Children(This,Children)
21364 #define ISpeechPhraseRule_get_Confidence(This,ActualConfidence) (This)->lpVtbl->get_Confidence(This,ActualConfidence)
21365 #define ISpeechPhraseRule_get_EngineConfidence(This,EngineConfidence) (This)->lpVtbl->get_EngineConfidence(This,EngineConfidence)
21366 #else
21367 /*** IUnknown methods ***/
21368 static FORCEINLINE HRESULT ISpeechPhraseRule_QueryInterface(ISpeechPhraseRule* This,REFIID riid,void **ppvObject) {
21369     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21370 }
21371 static FORCEINLINE ULONG ISpeechPhraseRule_AddRef(ISpeechPhraseRule* This) {
21372     return This->lpVtbl->AddRef(This);
21373 }
21374 static FORCEINLINE ULONG ISpeechPhraseRule_Release(ISpeechPhraseRule* This) {
21375     return This->lpVtbl->Release(This);
21376 }
21377 /*** IDispatch methods ***/
21378 static FORCEINLINE HRESULT ISpeechPhraseRule_GetTypeInfoCount(ISpeechPhraseRule* This,UINT *pctinfo) {
21379     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21380 }
21381 static FORCEINLINE HRESULT ISpeechPhraseRule_GetTypeInfo(ISpeechPhraseRule* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21382     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21383 }
21384 static FORCEINLINE HRESULT ISpeechPhraseRule_GetIDsOfNames(ISpeechPhraseRule* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21385     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21386 }
21387 static FORCEINLINE HRESULT ISpeechPhraseRule_Invoke(ISpeechPhraseRule* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21388     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21389 }
21390 /*** ISpeechPhraseRule methods ***/
21391 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Name(ISpeechPhraseRule* This,BSTR *Name) {
21392     return This->lpVtbl->get_Name(This,Name);
21393 }
21394 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Id(ISpeechPhraseRule* This,LONG *Id) {
21395     return This->lpVtbl->get_Id(This,Id);
21396 }
21397 static FORCEINLINE HRESULT ISpeechPhraseRule_get_FirstElement(ISpeechPhraseRule* This,LONG *FirstElement) {
21398     return This->lpVtbl->get_FirstElement(This,FirstElement);
21399 }
21400 static FORCEINLINE HRESULT ISpeechPhraseRule_get_NumberOfElements(ISpeechPhraseRule* This,LONG *NumberOfElements) {
21401     return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
21402 }
21403 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Parent(ISpeechPhraseRule* This,ISpeechPhraseRule **Parent) {
21404     return This->lpVtbl->get_Parent(This,Parent);
21405 }
21406 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Children(ISpeechPhraseRule* This,ISpeechPhraseRules **Children) {
21407     return This->lpVtbl->get_Children(This,Children);
21408 }
21409 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Confidence(ISpeechPhraseRule* This,SpeechEngineConfidence *ActualConfidence) {
21410     return This->lpVtbl->get_Confidence(This,ActualConfidence);
21411 }
21412 static FORCEINLINE HRESULT ISpeechPhraseRule_get_EngineConfidence(ISpeechPhraseRule* This,float *EngineConfidence) {
21413     return This->lpVtbl->get_EngineConfidence(This,EngineConfidence);
21414 }
21415 #endif
21416 #endif
21417 
21418 #endif
21419 
21420 
21421 #endif  /* __ISpeechPhraseRule_INTERFACE_DEFINED__ */
21422 
21423 /*****************************************************************************
21424  * ISpeechPhraseRules interface
21425  */
21426 #ifndef __ISpeechPhraseRules_INTERFACE_DEFINED__
21427 #define __ISpeechPhraseRules_INTERFACE_DEFINED__
21428 
21429 DEFINE_GUID(IID_ISpeechPhraseRules, 0x9047d593, 0x01dd, 0x4b72, 0x81,0xa3, 0xe4,0xa0,0xca,0x69,0xf4,0x07);
21430 #if defined(__cplusplus) && !defined(CINTERFACE)
21431 MIDL_INTERFACE("9047d593-01dd-4b72-81a3-e4a0ca69f407")
21432 ISpeechPhraseRules : public IDispatch
21433 {
21434     virtual HRESULT STDMETHODCALLTYPE get_Count(
21435         LONG *Count) = 0;
21436 
21437     virtual HRESULT STDMETHODCALLTYPE Item(
21438         LONG Index,
21439         ISpeechPhraseRule **Rule) = 0;
21440 
21441     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
21442         IUnknown **EnumVARIANT) = 0;
21443 
21444 };
21445 #ifdef __CRT_UUID_DECL
21446 __CRT_UUID_DECL(ISpeechPhraseRules, 0x9047d593, 0x01dd, 0x4b72, 0x81,0xa3, 0xe4,0xa0,0xca,0x69,0xf4,0x07)
21447 #endif
21448 #else
21449 typedef struct ISpeechPhraseRulesVtbl {
21450     BEGIN_INTERFACE
21451 
21452     /*** IUnknown methods ***/
21453     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21454         ISpeechPhraseRules *This,
21455         REFIID riid,
21456         void **ppvObject);
21457 
21458     ULONG (STDMETHODCALLTYPE *AddRef)(
21459         ISpeechPhraseRules *This);
21460 
21461     ULONG (STDMETHODCALLTYPE *Release)(
21462         ISpeechPhraseRules *This);
21463 
21464     /*** IDispatch methods ***/
21465     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21466         ISpeechPhraseRules *This,
21467         UINT *pctinfo);
21468 
21469     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21470         ISpeechPhraseRules *This,
21471         UINT iTInfo,
21472         LCID lcid,
21473         ITypeInfo **ppTInfo);
21474 
21475     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21476         ISpeechPhraseRules *This,
21477         REFIID riid,
21478         LPOLESTR *rgszNames,
21479         UINT cNames,
21480         LCID lcid,
21481         DISPID *rgDispId);
21482 
21483     HRESULT (STDMETHODCALLTYPE *Invoke)(
21484         ISpeechPhraseRules *This,
21485         DISPID dispIdMember,
21486         REFIID riid,
21487         LCID lcid,
21488         WORD wFlags,
21489         DISPPARAMS *pDispParams,
21490         VARIANT *pVarResult,
21491         EXCEPINFO *pExcepInfo,
21492         UINT *puArgErr);
21493 
21494     /*** ISpeechPhraseRules methods ***/
21495     HRESULT (STDMETHODCALLTYPE *get_Count)(
21496         ISpeechPhraseRules *This,
21497         LONG *Count);
21498 
21499     HRESULT (STDMETHODCALLTYPE *Item)(
21500         ISpeechPhraseRules *This,
21501         LONG Index,
21502         ISpeechPhraseRule **Rule);
21503 
21504     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
21505         ISpeechPhraseRules *This,
21506         IUnknown **EnumVARIANT);
21507 
21508     END_INTERFACE
21509 } ISpeechPhraseRulesVtbl;
21510 
21511 interface ISpeechPhraseRules {
21512     CONST_VTBL ISpeechPhraseRulesVtbl* lpVtbl;
21513 };
21514 
21515 #ifdef COBJMACROS
21516 #ifndef WIDL_C_INLINE_WRAPPERS
21517 /*** IUnknown methods ***/
21518 #define ISpeechPhraseRules_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21519 #define ISpeechPhraseRules_AddRef(This) (This)->lpVtbl->AddRef(This)
21520 #define ISpeechPhraseRules_Release(This) (This)->lpVtbl->Release(This)
21521 /*** IDispatch methods ***/
21522 #define ISpeechPhraseRules_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21523 #define ISpeechPhraseRules_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21524 #define ISpeechPhraseRules_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21525 #define ISpeechPhraseRules_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21526 /*** ISpeechPhraseRules methods ***/
21527 #define ISpeechPhraseRules_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
21528 #define ISpeechPhraseRules_Item(This,Index,Rule) (This)->lpVtbl->Item(This,Index,Rule)
21529 #define ISpeechPhraseRules_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
21530 #else
21531 /*** IUnknown methods ***/
21532 static FORCEINLINE HRESULT ISpeechPhraseRules_QueryInterface(ISpeechPhraseRules* This,REFIID riid,void **ppvObject) {
21533     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21534 }
21535 static FORCEINLINE ULONG ISpeechPhraseRules_AddRef(ISpeechPhraseRules* This) {
21536     return This->lpVtbl->AddRef(This);
21537 }
21538 static FORCEINLINE ULONG ISpeechPhraseRules_Release(ISpeechPhraseRules* This) {
21539     return This->lpVtbl->Release(This);
21540 }
21541 /*** IDispatch methods ***/
21542 static FORCEINLINE HRESULT ISpeechPhraseRules_GetTypeInfoCount(ISpeechPhraseRules* This,UINT *pctinfo) {
21543     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21544 }
21545 static FORCEINLINE HRESULT ISpeechPhraseRules_GetTypeInfo(ISpeechPhraseRules* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21546     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21547 }
21548 static FORCEINLINE HRESULT ISpeechPhraseRules_GetIDsOfNames(ISpeechPhraseRules* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21549     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21550 }
21551 static FORCEINLINE HRESULT ISpeechPhraseRules_Invoke(ISpeechPhraseRules* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21552     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21553 }
21554 /*** ISpeechPhraseRules methods ***/
21555 static FORCEINLINE HRESULT ISpeechPhraseRules_get_Count(ISpeechPhraseRules* This,LONG *Count) {
21556     return This->lpVtbl->get_Count(This,Count);
21557 }
21558 static FORCEINLINE HRESULT ISpeechPhraseRules_Item(ISpeechPhraseRules* This,LONG Index,ISpeechPhraseRule **Rule) {
21559     return This->lpVtbl->Item(This,Index,Rule);
21560 }
21561 static FORCEINLINE HRESULT ISpeechPhraseRules_get__NewEnum(ISpeechPhraseRules* This,IUnknown **EnumVARIANT) {
21562     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
21563 }
21564 #endif
21565 #endif
21566 
21567 #endif
21568 
21569 
21570 #endif  /* __ISpeechPhraseRules_INTERFACE_DEFINED__ */
21571 
21572 /*****************************************************************************
21573  * ISpeechLexiconWords interface
21574  */
21575 #ifndef __ISpeechLexiconWords_INTERFACE_DEFINED__
21576 #define __ISpeechLexiconWords_INTERFACE_DEFINED__
21577 
21578 DEFINE_GUID(IID_ISpeechLexiconWords, 0x8d199862, 0x415e, 0x47d5, 0xac,0x4f, 0xfa,0xa6,0x08,0xb4,0x24,0xe6);
21579 #if defined(__cplusplus) && !defined(CINTERFACE)
21580 MIDL_INTERFACE("8d199862-415e-47d5-ac4f-faa608b424e6")
21581 ISpeechLexiconWords : public IDispatch
21582 {
21583     virtual HRESULT STDMETHODCALLTYPE get_Count(
21584         LONG *Count) = 0;
21585 
21586     virtual HRESULT STDMETHODCALLTYPE Item(
21587         LONG Index,
21588         ISpeechLexiconWord **Word) = 0;
21589 
21590     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
21591         IUnknown **EnumVARIANT) = 0;
21592 
21593 };
21594 #ifdef __CRT_UUID_DECL
21595 __CRT_UUID_DECL(ISpeechLexiconWords, 0x8d199862, 0x415e, 0x47d5, 0xac,0x4f, 0xfa,0xa6,0x08,0xb4,0x24,0xe6)
21596 #endif
21597 #else
21598 typedef struct ISpeechLexiconWordsVtbl {
21599     BEGIN_INTERFACE
21600 
21601     /*** IUnknown methods ***/
21602     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21603         ISpeechLexiconWords *This,
21604         REFIID riid,
21605         void **ppvObject);
21606 
21607     ULONG (STDMETHODCALLTYPE *AddRef)(
21608         ISpeechLexiconWords *This);
21609 
21610     ULONG (STDMETHODCALLTYPE *Release)(
21611         ISpeechLexiconWords *This);
21612 
21613     /*** IDispatch methods ***/
21614     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21615         ISpeechLexiconWords *This,
21616         UINT *pctinfo);
21617 
21618     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21619         ISpeechLexiconWords *This,
21620         UINT iTInfo,
21621         LCID lcid,
21622         ITypeInfo **ppTInfo);
21623 
21624     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21625         ISpeechLexiconWords *This,
21626         REFIID riid,
21627         LPOLESTR *rgszNames,
21628         UINT cNames,
21629         LCID lcid,
21630         DISPID *rgDispId);
21631 
21632     HRESULT (STDMETHODCALLTYPE *Invoke)(
21633         ISpeechLexiconWords *This,
21634         DISPID dispIdMember,
21635         REFIID riid,
21636         LCID lcid,
21637         WORD wFlags,
21638         DISPPARAMS *pDispParams,
21639         VARIANT *pVarResult,
21640         EXCEPINFO *pExcepInfo,
21641         UINT *puArgErr);
21642 
21643     /*** ISpeechLexiconWords methods ***/
21644     HRESULT (STDMETHODCALLTYPE *get_Count)(
21645         ISpeechLexiconWords *This,
21646         LONG *Count);
21647 
21648     HRESULT (STDMETHODCALLTYPE *Item)(
21649         ISpeechLexiconWords *This,
21650         LONG Index,
21651         ISpeechLexiconWord **Word);
21652 
21653     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
21654         ISpeechLexiconWords *This,
21655         IUnknown **EnumVARIANT);
21656 
21657     END_INTERFACE
21658 } ISpeechLexiconWordsVtbl;
21659 
21660 interface ISpeechLexiconWords {
21661     CONST_VTBL ISpeechLexiconWordsVtbl* lpVtbl;
21662 };
21663 
21664 #ifdef COBJMACROS
21665 #ifndef WIDL_C_INLINE_WRAPPERS
21666 /*** IUnknown methods ***/
21667 #define ISpeechLexiconWords_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21668 #define ISpeechLexiconWords_AddRef(This) (This)->lpVtbl->AddRef(This)
21669 #define ISpeechLexiconWords_Release(This) (This)->lpVtbl->Release(This)
21670 /*** IDispatch methods ***/
21671 #define ISpeechLexiconWords_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21672 #define ISpeechLexiconWords_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21673 #define ISpeechLexiconWords_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21674 #define ISpeechLexiconWords_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21675 /*** ISpeechLexiconWords methods ***/
21676 #define ISpeechLexiconWords_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
21677 #define ISpeechLexiconWords_Item(This,Index,Word) (This)->lpVtbl->Item(This,Index,Word)
21678 #define ISpeechLexiconWords_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
21679 #else
21680 /*** IUnknown methods ***/
21681 static FORCEINLINE HRESULT ISpeechLexiconWords_QueryInterface(ISpeechLexiconWords* This,REFIID riid,void **ppvObject) {
21682     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21683 }
21684 static FORCEINLINE ULONG ISpeechLexiconWords_AddRef(ISpeechLexiconWords* This) {
21685     return This->lpVtbl->AddRef(This);
21686 }
21687 static FORCEINLINE ULONG ISpeechLexiconWords_Release(ISpeechLexiconWords* This) {
21688     return This->lpVtbl->Release(This);
21689 }
21690 /*** IDispatch methods ***/
21691 static FORCEINLINE HRESULT ISpeechLexiconWords_GetTypeInfoCount(ISpeechLexiconWords* This,UINT *pctinfo) {
21692     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21693 }
21694 static FORCEINLINE HRESULT ISpeechLexiconWords_GetTypeInfo(ISpeechLexiconWords* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21695     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21696 }
21697 static FORCEINLINE HRESULT ISpeechLexiconWords_GetIDsOfNames(ISpeechLexiconWords* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21698     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21699 }
21700 static FORCEINLINE HRESULT ISpeechLexiconWords_Invoke(ISpeechLexiconWords* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21701     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21702 }
21703 /*** ISpeechLexiconWords methods ***/
21704 static FORCEINLINE HRESULT ISpeechLexiconWords_get_Count(ISpeechLexiconWords* This,LONG *Count) {
21705     return This->lpVtbl->get_Count(This,Count);
21706 }
21707 static FORCEINLINE HRESULT ISpeechLexiconWords_Item(ISpeechLexiconWords* This,LONG Index,ISpeechLexiconWord **Word) {
21708     return This->lpVtbl->Item(This,Index,Word);
21709 }
21710 static FORCEINLINE HRESULT ISpeechLexiconWords_get__NewEnum(ISpeechLexiconWords* This,IUnknown **EnumVARIANT) {
21711     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
21712 }
21713 #endif
21714 #endif
21715 
21716 #endif
21717 
21718 
21719 #endif  /* __ISpeechLexiconWords_INTERFACE_DEFINED__ */
21720 
21721 /*****************************************************************************
21722  * ISpeechLexicon interface
21723  */
21724 #ifndef __ISpeechLexicon_INTERFACE_DEFINED__
21725 #define __ISpeechLexicon_INTERFACE_DEFINED__
21726 
21727 DEFINE_GUID(IID_ISpeechLexicon, 0x3da7627a, 0xc7ae, 0x4b23, 0x87,0x08, 0x63,0x8c,0x50,0x36,0x2c,0x25);
21728 #if defined(__cplusplus) && !defined(CINTERFACE)
21729 MIDL_INTERFACE("3da7627a-c7ae-4b23-8708-638c50362c25")
21730 ISpeechLexicon : public IDispatch
21731 {
21732     virtual HRESULT STDMETHODCALLTYPE get_GenerationId(
21733         LONG *GenerationId) = 0;
21734 
21735     virtual HRESULT STDMETHODCALLTYPE GetWords(
21736         SpeechLexiconType Flags,
21737         LONG *GenerationID,
21738         ISpeechLexiconWords **Words) = 0;
21739 
21740     virtual HRESULT STDMETHODCALLTYPE AddPronunciation(
21741         BSTR bstrWord,
21742         SpeechLanguageId LangId,
21743         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
21744         BSTR bstrPronunciation = L"") = 0;
21745 
21746     virtual HRESULT STDMETHODCALLTYPE AddPronunciationByPhoneIds(
21747         BSTR bstrWord,
21748         SpeechLanguageId LangId,
21749         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
21750         VARIANT *PhoneIds = 0) = 0;
21751 
21752     virtual HRESULT STDMETHODCALLTYPE RemovePronunciation(
21753         BSTR bstrWord,
21754         SpeechLanguageId LangId,
21755         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
21756         BSTR bstrPronunciation = L"") = 0;
21757 
21758     virtual HRESULT STDMETHODCALLTYPE RemovePronunciationByPhoneIds(
21759         BSTR bstrWord,
21760         SpeechLanguageId LangId,
21761         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
21762         VARIANT *PhoneIds = 0) = 0;
21763 
21764     virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
21765         BSTR bstrWord,
21766         SpeechLanguageId LangId,
21767         SpeechLexiconType TypeFlags,
21768         ISpeechLexiconPronunciations **ppPronunciations) = 0;
21769 
21770     virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
21771         LONG *GenerationID,
21772         ISpeechLexiconWords **ppWords) = 0;
21773 
21774 };
21775 #ifdef __CRT_UUID_DECL
21776 __CRT_UUID_DECL(ISpeechLexicon, 0x3da7627a, 0xc7ae, 0x4b23, 0x87,0x08, 0x63,0x8c,0x50,0x36,0x2c,0x25)
21777 #endif
21778 #else
21779 typedef struct ISpeechLexiconVtbl {
21780     BEGIN_INTERFACE
21781 
21782     /*** IUnknown methods ***/
21783     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21784         ISpeechLexicon *This,
21785         REFIID riid,
21786         void **ppvObject);
21787 
21788     ULONG (STDMETHODCALLTYPE *AddRef)(
21789         ISpeechLexicon *This);
21790 
21791     ULONG (STDMETHODCALLTYPE *Release)(
21792         ISpeechLexicon *This);
21793 
21794     /*** IDispatch methods ***/
21795     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21796         ISpeechLexicon *This,
21797         UINT *pctinfo);
21798 
21799     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21800         ISpeechLexicon *This,
21801         UINT iTInfo,
21802         LCID lcid,
21803         ITypeInfo **ppTInfo);
21804 
21805     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21806         ISpeechLexicon *This,
21807         REFIID riid,
21808         LPOLESTR *rgszNames,
21809         UINT cNames,
21810         LCID lcid,
21811         DISPID *rgDispId);
21812 
21813     HRESULT (STDMETHODCALLTYPE *Invoke)(
21814         ISpeechLexicon *This,
21815         DISPID dispIdMember,
21816         REFIID riid,
21817         LCID lcid,
21818         WORD wFlags,
21819         DISPPARAMS *pDispParams,
21820         VARIANT *pVarResult,
21821         EXCEPINFO *pExcepInfo,
21822         UINT *puArgErr);
21823 
21824     /*** ISpeechLexicon methods ***/
21825     HRESULT (STDMETHODCALLTYPE *get_GenerationId)(
21826         ISpeechLexicon *This,
21827         LONG *GenerationId);
21828 
21829     HRESULT (STDMETHODCALLTYPE *GetWords)(
21830         ISpeechLexicon *This,
21831         SpeechLexiconType Flags,
21832         LONG *GenerationID,
21833         ISpeechLexiconWords **Words);
21834 
21835     HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
21836         ISpeechLexicon *This,
21837         BSTR bstrWord,
21838         SpeechLanguageId LangId,
21839         SpeechPartOfSpeech PartOfSpeech,
21840         BSTR bstrPronunciation);
21841 
21842     HRESULT (STDMETHODCALLTYPE *AddPronunciationByPhoneIds)(
21843         ISpeechLexicon *This,
21844         BSTR bstrWord,
21845         SpeechLanguageId LangId,
21846         SpeechPartOfSpeech PartOfSpeech,
21847         VARIANT *PhoneIds);
21848 
21849     HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
21850         ISpeechLexicon *This,
21851         BSTR bstrWord,
21852         SpeechLanguageId LangId,
21853         SpeechPartOfSpeech PartOfSpeech,
21854         BSTR bstrPronunciation);
21855 
21856     HRESULT (STDMETHODCALLTYPE *RemovePronunciationByPhoneIds)(
21857         ISpeechLexicon *This,
21858         BSTR bstrWord,
21859         SpeechLanguageId LangId,
21860         SpeechPartOfSpeech PartOfSpeech,
21861         VARIANT *PhoneIds);
21862 
21863     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
21864         ISpeechLexicon *This,
21865         BSTR bstrWord,
21866         SpeechLanguageId LangId,
21867         SpeechLexiconType TypeFlags,
21868         ISpeechLexiconPronunciations **ppPronunciations);
21869 
21870     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
21871         ISpeechLexicon *This,
21872         LONG *GenerationID,
21873         ISpeechLexiconWords **ppWords);
21874 
21875     END_INTERFACE
21876 } ISpeechLexiconVtbl;
21877 
21878 interface ISpeechLexicon {
21879     CONST_VTBL ISpeechLexiconVtbl* lpVtbl;
21880 };
21881 
21882 #ifdef COBJMACROS
21883 #ifndef WIDL_C_INLINE_WRAPPERS
21884 /*** IUnknown methods ***/
21885 #define ISpeechLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21886 #define ISpeechLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
21887 #define ISpeechLexicon_Release(This) (This)->lpVtbl->Release(This)
21888 /*** IDispatch methods ***/
21889 #define ISpeechLexicon_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21890 #define ISpeechLexicon_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21891 #define ISpeechLexicon_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21892 #define ISpeechLexicon_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21893 /*** ISpeechLexicon methods ***/
21894 #define ISpeechLexicon_get_GenerationId(This,GenerationId) (This)->lpVtbl->get_GenerationId(This,GenerationId)
21895 #define ISpeechLexicon_GetWords(This,Flags,GenerationID,Words) (This)->lpVtbl->GetWords(This,Flags,GenerationID,Words)
21896 #define ISpeechLexicon_AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation) (This)->lpVtbl->AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation)
21897 #define ISpeechLexicon_AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds) (This)->lpVtbl->AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds)
21898 #define ISpeechLexicon_RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation) (This)->lpVtbl->RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation)
21899 #define ISpeechLexicon_RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds) (This)->lpVtbl->RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds)
21900 #define ISpeechLexicon_GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations) (This)->lpVtbl->GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations)
21901 #define ISpeechLexicon_GetGenerationChange(This,GenerationID,ppWords) (This)->lpVtbl->GetGenerationChange(This,GenerationID,ppWords)
21902 #else
21903 /*** IUnknown methods ***/
21904 static FORCEINLINE HRESULT ISpeechLexicon_QueryInterface(ISpeechLexicon* This,REFIID riid,void **ppvObject) {
21905     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21906 }
21907 static FORCEINLINE ULONG ISpeechLexicon_AddRef(ISpeechLexicon* This) {
21908     return This->lpVtbl->AddRef(This);
21909 }
21910 static FORCEINLINE ULONG ISpeechLexicon_Release(ISpeechLexicon* This) {
21911     return This->lpVtbl->Release(This);
21912 }
21913 /*** IDispatch methods ***/
21914 static FORCEINLINE HRESULT ISpeechLexicon_GetTypeInfoCount(ISpeechLexicon* This,UINT *pctinfo) {
21915     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21916 }
21917 static FORCEINLINE HRESULT ISpeechLexicon_GetTypeInfo(ISpeechLexicon* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21918     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21919 }
21920 static FORCEINLINE HRESULT ISpeechLexicon_GetIDsOfNames(ISpeechLexicon* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21921     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21922 }
21923 static FORCEINLINE HRESULT ISpeechLexicon_Invoke(ISpeechLexicon* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21924     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21925 }
21926 /*** ISpeechLexicon methods ***/
21927 static FORCEINLINE HRESULT ISpeechLexicon_get_GenerationId(ISpeechLexicon* This,LONG *GenerationId) {
21928     return This->lpVtbl->get_GenerationId(This,GenerationId);
21929 }
21930 static FORCEINLINE HRESULT ISpeechLexicon_GetWords(ISpeechLexicon* This,SpeechLexiconType Flags,LONG *GenerationID,ISpeechLexiconWords **Words) {
21931     return This->lpVtbl->GetWords(This,Flags,GenerationID,Words);
21932 }
21933 static FORCEINLINE HRESULT ISpeechLexicon_AddPronunciation(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,BSTR bstrPronunciation) {
21934     return This->lpVtbl->AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation);
21935 }
21936 static FORCEINLINE HRESULT ISpeechLexicon_AddPronunciationByPhoneIds(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,VARIANT *PhoneIds) {
21937     return This->lpVtbl->AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds);
21938 }
21939 static FORCEINLINE HRESULT ISpeechLexicon_RemovePronunciation(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,BSTR bstrPronunciation) {
21940     return This->lpVtbl->RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation);
21941 }
21942 static FORCEINLINE HRESULT ISpeechLexicon_RemovePronunciationByPhoneIds(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,VARIANT *PhoneIds) {
21943     return This->lpVtbl->RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds);
21944 }
21945 static FORCEINLINE HRESULT ISpeechLexicon_GetPronunciations(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechLexiconType TypeFlags,ISpeechLexiconPronunciations **ppPronunciations) {
21946     return This->lpVtbl->GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations);
21947 }
21948 static FORCEINLINE HRESULT ISpeechLexicon_GetGenerationChange(ISpeechLexicon* This,LONG *GenerationID,ISpeechLexiconWords **ppWords) {
21949     return This->lpVtbl->GetGenerationChange(This,GenerationID,ppWords);
21950 }
21951 #endif
21952 #endif
21953 
21954 #endif
21955 
21956 
21957 #endif  /* __ISpeechLexicon_INTERFACE_DEFINED__ */
21958 
21959 /*****************************************************************************
21960  * ISpeechLexiconWord interface
21961  */
21962 #ifndef __ISpeechLexiconWord_INTERFACE_DEFINED__
21963 #define __ISpeechLexiconWord_INTERFACE_DEFINED__
21964 
21965 DEFINE_GUID(IID_ISpeechLexiconWord, 0x4e5b933c, 0xc9be, 0x48ed, 0x88,0x42, 0x1e,0xe5,0x1b,0xb1,0xd4,0xff);
21966 #if defined(__cplusplus) && !defined(CINTERFACE)
21967 MIDL_INTERFACE("4e5b933c-c9be-48ed-8842-1ee51bb1d4ff")
21968 ISpeechLexiconWord : public IDispatch
21969 {
21970     virtual HRESULT STDMETHODCALLTYPE get_LangId(
21971         SpeechLanguageId *LangId) = 0;
21972 
21973     virtual HRESULT STDMETHODCALLTYPE get_Type(
21974         SpeechWordType *WordType) = 0;
21975 
21976     virtual HRESULT STDMETHODCALLTYPE get_Word(
21977         BSTR *Word) = 0;
21978 
21979     virtual HRESULT STDMETHODCALLTYPE get_Pronunciations(
21980         ISpeechLexiconPronunciations **Pronunciations) = 0;
21981 
21982 };
21983 #ifdef __CRT_UUID_DECL
21984 __CRT_UUID_DECL(ISpeechLexiconWord, 0x4e5b933c, 0xc9be, 0x48ed, 0x88,0x42, 0x1e,0xe5,0x1b,0xb1,0xd4,0xff)
21985 #endif
21986 #else
21987 typedef struct ISpeechLexiconWordVtbl {
21988     BEGIN_INTERFACE
21989 
21990     /*** IUnknown methods ***/
21991     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21992         ISpeechLexiconWord *This,
21993         REFIID riid,
21994         void **ppvObject);
21995 
21996     ULONG (STDMETHODCALLTYPE *AddRef)(
21997         ISpeechLexiconWord *This);
21998 
21999     ULONG (STDMETHODCALLTYPE *Release)(
22000         ISpeechLexiconWord *This);
22001 
22002     /*** IDispatch methods ***/
22003     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
22004         ISpeechLexiconWord *This,
22005         UINT *pctinfo);
22006 
22007     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
22008         ISpeechLexiconWord *This,
22009         UINT iTInfo,
22010         LCID lcid,
22011         ITypeInfo **ppTInfo);
22012 
22013     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
22014         ISpeechLexiconWord *This,
22015         REFIID riid,
22016         LPOLESTR *rgszNames,
22017         UINT cNames,
22018         LCID lcid,
22019         DISPID *rgDispId);
22020 
22021     HRESULT (STDMETHODCALLTYPE *Invoke)(
22022         ISpeechLexiconWord *This,
22023         DISPID dispIdMember,
22024         REFIID riid,
22025         LCID lcid,
22026         WORD wFlags,
22027         DISPPARAMS *pDispParams,
22028         VARIANT *pVarResult,
22029         EXCEPINFO *pExcepInfo,
22030         UINT *puArgErr);
22031 
22032     /*** ISpeechLexiconWord methods ***/
22033     HRESULT (STDMETHODCALLTYPE *get_LangId)(
22034         ISpeechLexiconWord *This,
22035         SpeechLanguageId *LangId);
22036 
22037     HRESULT (STDMETHODCALLTYPE *get_Type)(
22038         ISpeechLexiconWord *This,
22039         SpeechWordType *WordType);
22040 
22041     HRESULT (STDMETHODCALLTYPE *get_Word)(
22042         ISpeechLexiconWord *This,
22043         BSTR *Word);
22044 
22045     HRESULT (STDMETHODCALLTYPE *get_Pronunciations)(
22046         ISpeechLexiconWord *This,
22047         ISpeechLexiconPronunciations **Pronunciations);
22048 
22049     END_INTERFACE
22050 } ISpeechLexiconWordVtbl;
22051 
22052 interface ISpeechLexiconWord {
22053     CONST_VTBL ISpeechLexiconWordVtbl* lpVtbl;
22054 };
22055 
22056 #ifdef COBJMACROS
22057 #ifndef WIDL_C_INLINE_WRAPPERS
22058 /*** IUnknown methods ***/
22059 #define ISpeechLexiconWord_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22060 #define ISpeechLexiconWord_AddRef(This) (This)->lpVtbl->AddRef(This)
22061 #define ISpeechLexiconWord_Release(This) (This)->lpVtbl->Release(This)
22062 /*** IDispatch methods ***/
22063 #define ISpeechLexiconWord_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22064 #define ISpeechLexiconWord_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22065 #define ISpeechLexiconWord_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22066 #define ISpeechLexiconWord_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22067 /*** ISpeechLexiconWord methods ***/
22068 #define ISpeechLexiconWord_get_LangId(This,LangId) (This)->lpVtbl->get_LangId(This,LangId)
22069 #define ISpeechLexiconWord_get_Type(This,WordType) (This)->lpVtbl->get_Type(This,WordType)
22070 #define ISpeechLexiconWord_get_Word(This,Word) (This)->lpVtbl->get_Word(This,Word)
22071 #define ISpeechLexiconWord_get_Pronunciations(This,Pronunciations) (This)->lpVtbl->get_Pronunciations(This,Pronunciations)
22072 #else
22073 /*** IUnknown methods ***/
22074 static FORCEINLINE HRESULT ISpeechLexiconWord_QueryInterface(ISpeechLexiconWord* This,REFIID riid,void **ppvObject) {
22075     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22076 }
22077 static FORCEINLINE ULONG ISpeechLexiconWord_AddRef(ISpeechLexiconWord* This) {
22078     return This->lpVtbl->AddRef(This);
22079 }
22080 static FORCEINLINE ULONG ISpeechLexiconWord_Release(ISpeechLexiconWord* This) {
22081     return This->lpVtbl->Release(This);
22082 }
22083 /*** IDispatch methods ***/
22084 static FORCEINLINE HRESULT ISpeechLexiconWord_GetTypeInfoCount(ISpeechLexiconWord* This,UINT *pctinfo) {
22085     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22086 }
22087 static FORCEINLINE HRESULT ISpeechLexiconWord_GetTypeInfo(ISpeechLexiconWord* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22088     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22089 }
22090 static FORCEINLINE HRESULT ISpeechLexiconWord_GetIDsOfNames(ISpeechLexiconWord* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22091     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22092 }
22093 static FORCEINLINE HRESULT ISpeechLexiconWord_Invoke(ISpeechLexiconWord* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22094     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22095 }
22096 /*** ISpeechLexiconWord methods ***/
22097 static FORCEINLINE HRESULT ISpeechLexiconWord_get_LangId(ISpeechLexiconWord* This,SpeechLanguageId *LangId) {
22098     return This->lpVtbl->get_LangId(This,LangId);
22099 }
22100 static FORCEINLINE HRESULT ISpeechLexiconWord_get_Type(ISpeechLexiconWord* This,SpeechWordType *WordType) {
22101     return This->lpVtbl->get_Type(This,WordType);
22102 }
22103 static FORCEINLINE HRESULT ISpeechLexiconWord_get_Word(ISpeechLexiconWord* This,BSTR *Word) {
22104     return This->lpVtbl->get_Word(This,Word);
22105 }
22106 static FORCEINLINE HRESULT ISpeechLexiconWord_get_Pronunciations(ISpeechLexiconWord* This,ISpeechLexiconPronunciations **Pronunciations) {
22107     return This->lpVtbl->get_Pronunciations(This,Pronunciations);
22108 }
22109 #endif
22110 #endif
22111 
22112 #endif
22113 
22114 
22115 #endif  /* __ISpeechLexiconWord_INTERFACE_DEFINED__ */
22116 
22117 /*****************************************************************************
22118  * ISpeechLexiconPronunciations interface
22119  */
22120 #ifndef __ISpeechLexiconPronunciations_INTERFACE_DEFINED__
22121 #define __ISpeechLexiconPronunciations_INTERFACE_DEFINED__
22122 
22123 DEFINE_GUID(IID_ISpeechLexiconPronunciations, 0x72829128, 0x5682, 0x4704, 0xa0,0xd4, 0x3e,0x2b,0xb6,0xf2,0xea,0xd3);
22124 #if defined(__cplusplus) && !defined(CINTERFACE)
22125 MIDL_INTERFACE("72829128-5682-4704-a0d4-3e2bb6f2ead3")
22126 ISpeechLexiconPronunciations : public IDispatch
22127 {
22128     virtual HRESULT STDMETHODCALLTYPE get_Count(
22129         LONG *Count) = 0;
22130 
22131     virtual HRESULT STDMETHODCALLTYPE Item(
22132         LONG Index,
22133         ISpeechLexiconPronunciation **Pronunciation) = 0;
22134 
22135     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
22136         IUnknown **EnumVARIANT) = 0;
22137 
22138 };
22139 #ifdef __CRT_UUID_DECL
22140 __CRT_UUID_DECL(ISpeechLexiconPronunciations, 0x72829128, 0x5682, 0x4704, 0xa0,0xd4, 0x3e,0x2b,0xb6,0xf2,0xea,0xd3)
22141 #endif
22142 #else
22143 typedef struct ISpeechLexiconPronunciationsVtbl {
22144     BEGIN_INTERFACE
22145 
22146     /*** IUnknown methods ***/
22147     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22148         ISpeechLexiconPronunciations *This,
22149         REFIID riid,
22150         void **ppvObject);
22151 
22152     ULONG (STDMETHODCALLTYPE *AddRef)(
22153         ISpeechLexiconPronunciations *This);
22154 
22155     ULONG (STDMETHODCALLTYPE *Release)(
22156         ISpeechLexiconPronunciations *This);
22157 
22158     /*** IDispatch methods ***/
22159     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
22160         ISpeechLexiconPronunciations *This,
22161         UINT *pctinfo);
22162 
22163     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
22164         ISpeechLexiconPronunciations *This,
22165         UINT iTInfo,
22166         LCID lcid,
22167         ITypeInfo **ppTInfo);
22168 
22169     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
22170         ISpeechLexiconPronunciations *This,
22171         REFIID riid,
22172         LPOLESTR *rgszNames,
22173         UINT cNames,
22174         LCID lcid,
22175         DISPID *rgDispId);
22176 
22177     HRESULT (STDMETHODCALLTYPE *Invoke)(
22178         ISpeechLexiconPronunciations *This,
22179         DISPID dispIdMember,
22180         REFIID riid,
22181         LCID lcid,
22182         WORD wFlags,
22183         DISPPARAMS *pDispParams,
22184         VARIANT *pVarResult,
22185         EXCEPINFO *pExcepInfo,
22186         UINT *puArgErr);
22187 
22188     /*** ISpeechLexiconPronunciations methods ***/
22189     HRESULT (STDMETHODCALLTYPE *get_Count)(
22190         ISpeechLexiconPronunciations *This,
22191         LONG *Count);
22192 
22193     HRESULT (STDMETHODCALLTYPE *Item)(
22194         ISpeechLexiconPronunciations *This,
22195         LONG Index,
22196         ISpeechLexiconPronunciation **Pronunciation);
22197 
22198     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
22199         ISpeechLexiconPronunciations *This,
22200         IUnknown **EnumVARIANT);
22201 
22202     END_INTERFACE
22203 } ISpeechLexiconPronunciationsVtbl;
22204 
22205 interface ISpeechLexiconPronunciations {
22206     CONST_VTBL ISpeechLexiconPronunciationsVtbl* lpVtbl;
22207 };
22208 
22209 #ifdef COBJMACROS
22210 #ifndef WIDL_C_INLINE_WRAPPERS
22211 /*** IUnknown methods ***/
22212 #define ISpeechLexiconPronunciations_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22213 #define ISpeechLexiconPronunciations_AddRef(This) (This)->lpVtbl->AddRef(This)
22214 #define ISpeechLexiconPronunciations_Release(This) (This)->lpVtbl->Release(This)
22215 /*** IDispatch methods ***/
22216 #define ISpeechLexiconPronunciations_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22217 #define ISpeechLexiconPronunciations_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22218 #define ISpeechLexiconPronunciations_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22219 #define ISpeechLexiconPronunciations_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22220 /*** ISpeechLexiconPronunciations methods ***/
22221 #define ISpeechLexiconPronunciations_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
22222 #define ISpeechLexiconPronunciations_Item(This,Index,Pronunciation) (This)->lpVtbl->Item(This,Index,Pronunciation)
22223 #define ISpeechLexiconPronunciations_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
22224 #else
22225 /*** IUnknown methods ***/
22226 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_QueryInterface(ISpeechLexiconPronunciations* This,REFIID riid,void **ppvObject) {
22227     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22228 }
22229 static FORCEINLINE ULONG ISpeechLexiconPronunciations_AddRef(ISpeechLexiconPronunciations* This) {
22230     return This->lpVtbl->AddRef(This);
22231 }
22232 static FORCEINLINE ULONG ISpeechLexiconPronunciations_Release(ISpeechLexiconPronunciations* This) {
22233     return This->lpVtbl->Release(This);
22234 }
22235 /*** IDispatch methods ***/
22236 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_GetTypeInfoCount(ISpeechLexiconPronunciations* This,UINT *pctinfo) {
22237     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22238 }
22239 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_GetTypeInfo(ISpeechLexiconPronunciations* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22240     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22241 }
22242 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_GetIDsOfNames(ISpeechLexiconPronunciations* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22243     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22244 }
22245 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_Invoke(ISpeechLexiconPronunciations* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22246     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22247 }
22248 /*** ISpeechLexiconPronunciations methods ***/
22249 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_get_Count(ISpeechLexiconPronunciations* This,LONG *Count) {
22250     return This->lpVtbl->get_Count(This,Count);
22251 }
22252 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_Item(ISpeechLexiconPronunciations* This,LONG Index,ISpeechLexiconPronunciation **Pronunciation) {
22253     return This->lpVtbl->Item(This,Index,Pronunciation);
22254 }
22255 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_get__NewEnum(ISpeechLexiconPronunciations* This,IUnknown **EnumVARIANT) {
22256     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
22257 }
22258 #endif
22259 #endif
22260 
22261 #endif
22262 
22263 
22264 #endif  /* __ISpeechLexiconPronunciations_INTERFACE_DEFINED__ */
22265 
22266 /*****************************************************************************
22267  * ISpeechLexiconPronunciation interface
22268  */
22269 #ifndef __ISpeechLexiconPronunciation_INTERFACE_DEFINED__
22270 #define __ISpeechLexiconPronunciation_INTERFACE_DEFINED__
22271 
22272 DEFINE_GUID(IID_ISpeechLexiconPronunciation, 0x95252c5d, 0x9e43, 0x4f4a, 0x98,0x99, 0x48,0xee,0x73,0x35,0x2f,0x9f);
22273 #if defined(__cplusplus) && !defined(CINTERFACE)
22274 MIDL_INTERFACE("95252c5d-9e43-4f4a-9899-48ee73352f9f")
22275 ISpeechLexiconPronunciation : public IDispatch
22276 {
22277     virtual HRESULT STDMETHODCALLTYPE get_Type(
22278         SpeechLexiconType *LexiconType) = 0;
22279 
22280     virtual HRESULT STDMETHODCALLTYPE get_LangId(
22281         SpeechLanguageId *LangId) = 0;
22282 
22283     virtual HRESULT STDMETHODCALLTYPE get_PartOfSpeech(
22284         SpeechPartOfSpeech *PartOfSpeech) = 0;
22285 
22286     virtual HRESULT STDMETHODCALLTYPE get_PhoneIds(
22287         VARIANT *PhoneIds) = 0;
22288 
22289     virtual HRESULT STDMETHODCALLTYPE get_Symbolic(
22290         BSTR *Symbolic) = 0;
22291 
22292 };
22293 #ifdef __CRT_UUID_DECL
22294 __CRT_UUID_DECL(ISpeechLexiconPronunciation, 0x95252c5d, 0x9e43, 0x4f4a, 0x98,0x99, 0x48,0xee,0x73,0x35,0x2f,0x9f)
22295 #endif
22296 #else
22297 typedef struct ISpeechLexiconPronunciationVtbl {
22298     BEGIN_INTERFACE
22299 
22300     /*** IUnknown methods ***/
22301     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22302         ISpeechLexiconPronunciation *This,
22303         REFIID riid,
22304         void **ppvObject);
22305 
22306     ULONG (STDMETHODCALLTYPE *AddRef)(
22307         ISpeechLexiconPronunciation *This);
22308 
22309     ULONG (STDMETHODCALLTYPE *Release)(
22310         ISpeechLexiconPronunciation *This);
22311 
22312     /*** IDispatch methods ***/
22313     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
22314         ISpeechLexiconPronunciation *This,
22315         UINT *pctinfo);
22316 
22317     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
22318         ISpeechLexiconPronunciation *This,
22319         UINT iTInfo,
22320         LCID lcid,
22321         ITypeInfo **ppTInfo);
22322 
22323     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
22324         ISpeechLexiconPronunciation *This,
22325         REFIID riid,
22326         LPOLESTR *rgszNames,
22327         UINT cNames,
22328         LCID lcid,
22329         DISPID *rgDispId);
22330 
22331     HRESULT (STDMETHODCALLTYPE *Invoke)(
22332         ISpeechLexiconPronunciation *This,
22333         DISPID dispIdMember,
22334         REFIID riid,
22335         LCID lcid,
22336         WORD wFlags,
22337         DISPPARAMS *pDispParams,
22338         VARIANT *pVarResult,
22339         EXCEPINFO *pExcepInfo,
22340         UINT *puArgErr);
22341 
22342     /*** ISpeechLexiconPronunciation methods ***/
22343     HRESULT (STDMETHODCALLTYPE *get_Type)(
22344         ISpeechLexiconPronunciation *This,
22345         SpeechLexiconType *LexiconType);
22346 
22347     HRESULT (STDMETHODCALLTYPE *get_LangId)(
22348         ISpeechLexiconPronunciation *This,
22349         SpeechLanguageId *LangId);
22350 
22351     HRESULT (STDMETHODCALLTYPE *get_PartOfSpeech)(
22352         ISpeechLexiconPronunciation *This,
22353         SpeechPartOfSpeech *PartOfSpeech);
22354 
22355     HRESULT (STDMETHODCALLTYPE *get_PhoneIds)(
22356         ISpeechLexiconPronunciation *This,
22357         VARIANT *PhoneIds);
22358 
22359     HRESULT (STDMETHODCALLTYPE *get_Symbolic)(
22360         ISpeechLexiconPronunciation *This,
22361         BSTR *Symbolic);
22362 
22363     END_INTERFACE
22364 } ISpeechLexiconPronunciationVtbl;
22365 
22366 interface ISpeechLexiconPronunciation {
22367     CONST_VTBL ISpeechLexiconPronunciationVtbl* lpVtbl;
22368 };
22369 
22370 #ifdef COBJMACROS
22371 #ifndef WIDL_C_INLINE_WRAPPERS
22372 /*** IUnknown methods ***/
22373 #define ISpeechLexiconPronunciation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22374 #define ISpeechLexiconPronunciation_AddRef(This) (This)->lpVtbl->AddRef(This)
22375 #define ISpeechLexiconPronunciation_Release(This) (This)->lpVtbl->Release(This)
22376 /*** IDispatch methods ***/
22377 #define ISpeechLexiconPronunciation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22378 #define ISpeechLexiconPronunciation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22379 #define ISpeechLexiconPronunciation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22380 #define ISpeechLexiconPronunciation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22381 /*** ISpeechLexiconPronunciation methods ***/
22382 #define ISpeechLexiconPronunciation_get_Type(This,LexiconType) (This)->lpVtbl->get_Type(This,LexiconType)
22383 #define ISpeechLexiconPronunciation_get_LangId(This,LangId) (This)->lpVtbl->get_LangId(This,LangId)
22384 #define ISpeechLexiconPronunciation_get_PartOfSpeech(This,PartOfSpeech) (This)->lpVtbl->get_PartOfSpeech(This,PartOfSpeech)
22385 #define ISpeechLexiconPronunciation_get_PhoneIds(This,PhoneIds) (This)->lpVtbl->get_PhoneIds(This,PhoneIds)
22386 #define ISpeechLexiconPronunciation_get_Symbolic(This,Symbolic) (This)->lpVtbl->get_Symbolic(This,Symbolic)
22387 #else
22388 /*** IUnknown methods ***/
22389 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_QueryInterface(ISpeechLexiconPronunciation* This,REFIID riid,void **ppvObject) {
22390     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22391 }
22392 static FORCEINLINE ULONG ISpeechLexiconPronunciation_AddRef(ISpeechLexiconPronunciation* This) {
22393     return This->lpVtbl->AddRef(This);
22394 }
22395 static FORCEINLINE ULONG ISpeechLexiconPronunciation_Release(ISpeechLexiconPronunciation* This) {
22396     return This->lpVtbl->Release(This);
22397 }
22398 /*** IDispatch methods ***/
22399 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_GetTypeInfoCount(ISpeechLexiconPronunciation* This,UINT *pctinfo) {
22400     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22401 }
22402 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_GetTypeInfo(ISpeechLexiconPronunciation* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22403     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22404 }
22405 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_GetIDsOfNames(ISpeechLexiconPronunciation* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22406     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22407 }
22408 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_Invoke(ISpeechLexiconPronunciation* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22409     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22410 }
22411 /*** ISpeechLexiconPronunciation methods ***/
22412 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_Type(ISpeechLexiconPronunciation* This,SpeechLexiconType *LexiconType) {
22413     return This->lpVtbl->get_Type(This,LexiconType);
22414 }
22415 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_LangId(ISpeechLexiconPronunciation* This,SpeechLanguageId *LangId) {
22416     return This->lpVtbl->get_LangId(This,LangId);
22417 }
22418 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_PartOfSpeech(ISpeechLexiconPronunciation* This,SpeechPartOfSpeech *PartOfSpeech) {
22419     return This->lpVtbl->get_PartOfSpeech(This,PartOfSpeech);
22420 }
22421 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_PhoneIds(ISpeechLexiconPronunciation* This,VARIANT *PhoneIds) {
22422     return This->lpVtbl->get_PhoneIds(This,PhoneIds);
22423 }
22424 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_Symbolic(ISpeechLexiconPronunciation* This,BSTR *Symbolic) {
22425     return This->lpVtbl->get_Symbolic(This,Symbolic);
22426 }
22427 #endif
22428 #endif
22429 
22430 #endif
22431 
22432 
22433 #endif  /* __ISpeechLexiconPronunciation_INTERFACE_DEFINED__ */
22434 
22435 /*****************************************************************************
22436  * ISpeechPhoneConverter interface
22437  */
22438 #ifndef __ISpeechPhoneConverter_INTERFACE_DEFINED__
22439 #define __ISpeechPhoneConverter_INTERFACE_DEFINED__
22440 
22441 DEFINE_GUID(IID_ISpeechPhoneConverter, 0xc3e4f353, 0x433f, 0x43d6, 0x89,0xa1, 0x6a,0x62,0xa7,0x05,0x4c,0x3d);
22442 #if defined(__cplusplus) && !defined(CINTERFACE)
22443 MIDL_INTERFACE("c3e4f353-433f-43d6-89a1-6a62a7054c3d")
22444 ISpeechPhoneConverter : public IDispatch
22445 {
22446     virtual HRESULT STDMETHODCALLTYPE get_LanguageId(
22447         SpeechLanguageId *LanguageId) = 0;
22448 
22449     virtual HRESULT STDMETHODCALLTYPE put_LanguageId(
22450         SpeechLanguageId LanguageId) = 0;
22451 
22452     virtual HRESULT STDMETHODCALLTYPE PhoneToId(
22453         const BSTR Phonemes,
22454         VARIANT *IdArray) = 0;
22455 
22456     virtual HRESULT STDMETHODCALLTYPE IdToPhone(
22457         const VARIANT IdArray,
22458         BSTR *Phonemes) = 0;
22459 
22460 };
22461 #ifdef __CRT_UUID_DECL
22462 __CRT_UUID_DECL(ISpeechPhoneConverter, 0xc3e4f353, 0x433f, 0x43d6, 0x89,0xa1, 0x6a,0x62,0xa7,0x05,0x4c,0x3d)
22463 #endif
22464 #else
22465 typedef struct ISpeechPhoneConverterVtbl {
22466     BEGIN_INTERFACE
22467 
22468     /*** IUnknown methods ***/
22469     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22470         ISpeechPhoneConverter *This,
22471         REFIID riid,
22472         void **ppvObject);
22473 
22474     ULONG (STDMETHODCALLTYPE *AddRef)(
22475         ISpeechPhoneConverter *This);
22476 
22477     ULONG (STDMETHODCALLTYPE *Release)(
22478         ISpeechPhoneConverter *This);
22479 
22480     /*** IDispatch methods ***/
22481     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
22482         ISpeechPhoneConverter *This,
22483         UINT *pctinfo);
22484 
22485     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
22486         ISpeechPhoneConverter *This,
22487         UINT iTInfo,
22488         LCID lcid,
22489         ITypeInfo **ppTInfo);
22490 
22491     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
22492         ISpeechPhoneConverter *This,
22493         REFIID riid,
22494         LPOLESTR *rgszNames,
22495         UINT cNames,
22496         LCID lcid,
22497         DISPID *rgDispId);
22498 
22499     HRESULT (STDMETHODCALLTYPE *Invoke)(
22500         ISpeechPhoneConverter *This,
22501         DISPID dispIdMember,
22502         REFIID riid,
22503         LCID lcid,
22504         WORD wFlags,
22505         DISPPARAMS *pDispParams,
22506         VARIANT *pVarResult,
22507         EXCEPINFO *pExcepInfo,
22508         UINT *puArgErr);
22509 
22510     /*** ISpeechPhoneConverter methods ***/
22511     HRESULT (STDMETHODCALLTYPE *get_LanguageId)(
22512         ISpeechPhoneConverter *This,
22513         SpeechLanguageId *LanguageId);
22514 
22515     HRESULT (STDMETHODCALLTYPE *put_LanguageId)(
22516         ISpeechPhoneConverter *This,
22517         SpeechLanguageId LanguageId);
22518 
22519     HRESULT (STDMETHODCALLTYPE *PhoneToId)(
22520         ISpeechPhoneConverter *This,
22521         const BSTR Phonemes,
22522         VARIANT *IdArray);
22523 
22524     HRESULT (STDMETHODCALLTYPE *IdToPhone)(
22525         ISpeechPhoneConverter *This,
22526         const VARIANT IdArray,
22527         BSTR *Phonemes);
22528 
22529     END_INTERFACE
22530 } ISpeechPhoneConverterVtbl;
22531 
22532 interface ISpeechPhoneConverter {
22533     CONST_VTBL ISpeechPhoneConverterVtbl* lpVtbl;
22534 };
22535 
22536 #ifdef COBJMACROS
22537 #ifndef WIDL_C_INLINE_WRAPPERS
22538 /*** IUnknown methods ***/
22539 #define ISpeechPhoneConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22540 #define ISpeechPhoneConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
22541 #define ISpeechPhoneConverter_Release(This) (This)->lpVtbl->Release(This)
22542 /*** IDispatch methods ***/
22543 #define ISpeechPhoneConverter_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22544 #define ISpeechPhoneConverter_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22545 #define ISpeechPhoneConverter_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22546 #define ISpeechPhoneConverter_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22547 /*** ISpeechPhoneConverter methods ***/
22548 #define ISpeechPhoneConverter_get_LanguageId(This,LanguageId) (This)->lpVtbl->get_LanguageId(This,LanguageId)
22549 #define ISpeechPhoneConverter_put_LanguageId(This,LanguageId) (This)->lpVtbl->put_LanguageId(This,LanguageId)
22550 #define ISpeechPhoneConverter_PhoneToId(This,Phonemes,IdArray) (This)->lpVtbl->PhoneToId(This,Phonemes,IdArray)
22551 #define ISpeechPhoneConverter_IdToPhone(This,IdArray,Phonemes) (This)->lpVtbl->IdToPhone(This,IdArray,Phonemes)
22552 #else
22553 /*** IUnknown methods ***/
22554 static FORCEINLINE HRESULT ISpeechPhoneConverter_QueryInterface(ISpeechPhoneConverter* This,REFIID riid,void **ppvObject) {
22555     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22556 }
22557 static FORCEINLINE ULONG ISpeechPhoneConverter_AddRef(ISpeechPhoneConverter* This) {
22558     return This->lpVtbl->AddRef(This);
22559 }
22560 static FORCEINLINE ULONG ISpeechPhoneConverter_Release(ISpeechPhoneConverter* This) {
22561     return This->lpVtbl->Release(This);
22562 }
22563 /*** IDispatch methods ***/
22564 static FORCEINLINE HRESULT ISpeechPhoneConverter_GetTypeInfoCount(ISpeechPhoneConverter* This,UINT *pctinfo) {
22565     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22566 }
22567 static FORCEINLINE HRESULT ISpeechPhoneConverter_GetTypeInfo(ISpeechPhoneConverter* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22568     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22569 }
22570 static FORCEINLINE HRESULT ISpeechPhoneConverter_GetIDsOfNames(ISpeechPhoneConverter* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22571     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22572 }
22573 static FORCEINLINE HRESULT ISpeechPhoneConverter_Invoke(ISpeechPhoneConverter* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22574     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22575 }
22576 /*** ISpeechPhoneConverter methods ***/
22577 static FORCEINLINE HRESULT ISpeechPhoneConverter_get_LanguageId(ISpeechPhoneConverter* This,SpeechLanguageId *LanguageId) {
22578     return This->lpVtbl->get_LanguageId(This,LanguageId);
22579 }
22580 static FORCEINLINE HRESULT ISpeechPhoneConverter_put_LanguageId(ISpeechPhoneConverter* This,SpeechLanguageId LanguageId) {
22581     return This->lpVtbl->put_LanguageId(This,LanguageId);
22582 }
22583 static FORCEINLINE HRESULT ISpeechPhoneConverter_PhoneToId(ISpeechPhoneConverter* This,const BSTR Phonemes,VARIANT *IdArray) {
22584     return This->lpVtbl->PhoneToId(This,Phonemes,IdArray);
22585 }
22586 static FORCEINLINE HRESULT ISpeechPhoneConverter_IdToPhone(ISpeechPhoneConverter* This,const VARIANT IdArray,BSTR *Phonemes) {
22587     return This->lpVtbl->IdToPhone(This,IdArray,Phonemes);
22588 }
22589 #endif
22590 #endif
22591 
22592 #endif
22593 
22594 
22595 #endif  /* __ISpeechPhoneConverter_INTERFACE_DEFINED__ */
22596 
22597 /*****************************************************************************
22598  * SpNotifyTranslator coclass
22599  */
22600 
22601 DEFINE_GUID(CLSID_SpNotifyTranslator, 0xe2ae5372, 0x5d40, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
22602 
22603 #ifdef __cplusplus
22604 class DECLSPEC_UUID("e2ae5372-5d40-11d2-960e-00c04f8ee628") SpNotifyTranslator;
22605 #ifdef __CRT_UUID_DECL
22606 __CRT_UUID_DECL(SpNotifyTranslator, 0xe2ae5372, 0x5d40, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
22607 #endif
22608 #endif
22609 
22610 /*****************************************************************************
22611  * SpObjectTokenCategory coclass
22612  */
22613 
22614 DEFINE_GUID(CLSID_SpObjectTokenCategory, 0xa910187f, 0x0c7a, 0x45ac, 0x92,0xcc, 0x59,0xed,0xaf,0xb7,0x7b,0x53);
22615 
22616 #ifdef __cplusplus
22617 class DECLSPEC_UUID("a910187f-0c7a-45ac-92cc-59edafb77b53") SpObjectTokenCategory;
22618 #ifdef __CRT_UUID_DECL
22619 __CRT_UUID_DECL(SpObjectTokenCategory, 0xa910187f, 0x0c7a, 0x45ac, 0x92,0xcc, 0x59,0xed,0xaf,0xb7,0x7b,0x53)
22620 #endif
22621 #endif
22622 
22623 /*****************************************************************************
22624  * SpObjectToken coclass
22625  */
22626 
22627 DEFINE_GUID(CLSID_SpObjectToken, 0xef411752, 0x3736, 0x4cb4, 0x9c,0x8c, 0x8e,0xf4,0xcc,0xb5,0x8e,0xfe);
22628 
22629 #ifdef __cplusplus
22630 class DECLSPEC_UUID("ef411752-3736-4cb4-9c8c-8ef4ccb58efe") SpObjectToken;
22631 #ifdef __CRT_UUID_DECL
22632 __CRT_UUID_DECL(SpObjectToken, 0xef411752, 0x3736, 0x4cb4, 0x9c,0x8c, 0x8e,0xf4,0xcc,0xb5,0x8e,0xfe)
22633 #endif
22634 #endif
22635 
22636 /*****************************************************************************
22637  * SpResourceManager coclass
22638  */
22639 
22640 DEFINE_GUID(CLSID_SpResourceManager, 0x96749373, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96);
22641 
22642 #ifdef __cplusplus
22643 class DECLSPEC_UUID("96749373-3391-11d2-9ee3-00c04f797396") SpResourceManager;
22644 #ifdef __CRT_UUID_DECL
22645 __CRT_UUID_DECL(SpResourceManager, 0x96749373, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96)
22646 #endif
22647 #endif
22648 
22649 /*****************************************************************************
22650  * SpStreamFormatConverter coclass
22651  */
22652 
22653 DEFINE_GUID(CLSID_SpStreamFormatConverter, 0x7013943a, 0xe2ec, 0x11d2, 0xa0,0x86, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5);
22654 
22655 #ifdef __cplusplus
22656 class DECLSPEC_UUID("7013943a-e2ec-11d2-a086-00c04f8ef9b5") SpStreamFormatConverter;
22657 #ifdef __CRT_UUID_DECL
22658 __CRT_UUID_DECL(SpStreamFormatConverter, 0x7013943a, 0xe2ec, 0x11d2, 0xa0,0x86, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5)
22659 #endif
22660 #endif
22661 
22662 /*****************************************************************************
22663  * SpMMAudioEnum coclass
22664  */
22665 
22666 DEFINE_GUID(CLSID_SpMMAudioEnum, 0xab1890a0, 0xe91f, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
22667 
22668 #ifdef __cplusplus
22669 class DECLSPEC_UUID("ab1890a0-e91f-11d2-bb91-00c04f8ee6c0") SpMMAudioEnum;
22670 #ifdef __CRT_UUID_DECL
22671 __CRT_UUID_DECL(SpMMAudioEnum, 0xab1890a0, 0xe91f, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
22672 #endif
22673 #endif
22674 
22675 /*****************************************************************************
22676  * SpMMAudioIn coclass
22677  */
22678 
22679 DEFINE_GUID(CLSID_SpMMAudioIn, 0xcf3d2e50, 0x53f2, 0x11d2, 0x96,0x0c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
22680 
22681 #ifdef __cplusplus
22682 class DECLSPEC_UUID("cf3d2e50-53f2-11d2-960c-00c04f8ee628") SpMMAudioIn;
22683 #ifdef __CRT_UUID_DECL
22684 __CRT_UUID_DECL(SpMMAudioIn, 0xcf3d2e50, 0x53f2, 0x11d2, 0x96,0x0c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
22685 #endif
22686 #endif
22687 
22688 /*****************************************************************************
22689  * SpMMAudioOut coclass
22690  */
22691 
22692 DEFINE_GUID(CLSID_SpMMAudioOut, 0xa8c680eb, 0x3d32, 0x11d2, 0x9e,0xe7, 0x00,0xc0,0x4f,0x79,0x73,0x96);
22693 
22694 #ifdef __cplusplus
22695 class DECLSPEC_UUID("a8c680eb-3d32-11d2-9ee7-00c04f797396") SpMMAudioOut;
22696 #ifdef __CRT_UUID_DECL
22697 __CRT_UUID_DECL(SpMMAudioOut, 0xa8c680eb, 0x3d32, 0x11d2, 0x9e,0xe7, 0x00,0xc0,0x4f,0x79,0x73,0x96)
22698 #endif
22699 #endif
22700 
22701 /*****************************************************************************
22702  * SpStream coclass
22703  */
22704 
22705 DEFINE_GUID(CLSID_SpStream, 0x715d9c59, 0x4442, 0x11d2, 0x96,0x05, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
22706 
22707 #ifdef __cplusplus
22708 class DECLSPEC_UUID("715d9c59-4442-11d2-9605-00c04f8ee628") SpStream;
22709 #ifdef __CRT_UUID_DECL
22710 __CRT_UUID_DECL(SpStream, 0x715d9c59, 0x4442, 0x11d2, 0x96,0x05, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
22711 #endif
22712 #endif
22713 
22714 /*****************************************************************************
22715  * SpVoice coclass
22716  */
22717 
22718 DEFINE_GUID(CLSID_SpVoice, 0x96749377, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96);
22719 
22720 #ifdef __cplusplus
22721 class DECLSPEC_UUID("96749377-3391-11d2-9ee3-00c04f797396") SpVoice;
22722 #ifdef __CRT_UUID_DECL
22723 __CRT_UUID_DECL(SpVoice, 0x96749377, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96)
22724 #endif
22725 #endif
22726 
22727 /*****************************************************************************
22728  * SpSharedRecoContext coclass
22729  */
22730 
22731 DEFINE_GUID(CLSID_SpSharedRecoContext, 0x47206204, 0x5eca, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
22732 
22733 #ifdef __cplusplus
22734 class DECLSPEC_UUID("47206204-5eca-11d2-960f-00c04f8ee628") SpSharedRecoContext;
22735 #ifdef __CRT_UUID_DECL
22736 __CRT_UUID_DECL(SpSharedRecoContext, 0x47206204, 0x5eca, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
22737 #endif
22738 #endif
22739 
22740 /*****************************************************************************
22741  * SpInprocRecognizer coclass
22742  */
22743 
22744 DEFINE_GUID(CLSID_SpInprocRecognizer, 0x41b89b6b, 0x9399, 0x11d2, 0x96,0x23, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
22745 
22746 #ifdef __cplusplus
22747 class DECLSPEC_UUID("41b89b6b-9399-11d2-9623-00c04f8ee628") SpInprocRecognizer;
22748 #ifdef __CRT_UUID_DECL
22749 __CRT_UUID_DECL(SpInprocRecognizer, 0x41b89b6b, 0x9399, 0x11d2, 0x96,0x23, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
22750 #endif
22751 #endif
22752 
22753 /*****************************************************************************
22754  * SpSharedRecognizer coclass
22755  */
22756 
22757 DEFINE_GUID(CLSID_SpSharedRecognizer, 0x3bee4890, 0x4fe9, 0x4a37, 0x8c,0x1e, 0x5e,0x7e,0x12,0x79,0x1c,0x1f);
22758 
22759 #ifdef __cplusplus
22760 class DECLSPEC_UUID("3bee4890-4fe9-4a37-8c1e-5e7e12791c1f") SpSharedRecognizer;
22761 #ifdef __CRT_UUID_DECL
22762 __CRT_UUID_DECL(SpSharedRecognizer, 0x3bee4890, 0x4fe9, 0x4a37, 0x8c,0x1e, 0x5e,0x7e,0x12,0x79,0x1c,0x1f)
22763 #endif
22764 #endif
22765 
22766 /*****************************************************************************
22767  * SpLexicon coclass
22768  */
22769 
22770 DEFINE_GUID(CLSID_SpLexicon, 0x0655e396, 0x25d0, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c);
22771 
22772 #ifdef __cplusplus
22773 class DECLSPEC_UUID("0655e396-25d0-11d3-9c26-00c04f8ef87c") SpLexicon;
22774 #ifdef __CRT_UUID_DECL
22775 __CRT_UUID_DECL(SpLexicon, 0x0655e396, 0x25d0, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c)
22776 #endif
22777 #endif
22778 
22779 /*****************************************************************************
22780  * SpUnCompressedLexicon coclass
22781  */
22782 
22783 DEFINE_GUID(CLSID_SpUnCompressedLexicon, 0xc9e37c15, 0xdf92, 0x4727, 0x85,0xd6, 0x72,0xe5,0xee,0xb6,0x99,0x5a);
22784 
22785 #ifdef __cplusplus
22786 class DECLSPEC_UUID("c9e37c15-df92-4727-85d6-72e5eeb6995a") SpUnCompressedLexicon;
22787 #ifdef __CRT_UUID_DECL
22788 __CRT_UUID_DECL(SpUnCompressedLexicon, 0xc9e37c15, 0xdf92, 0x4727, 0x85,0xd6, 0x72,0xe5,0xee,0xb6,0x99,0x5a)
22789 #endif
22790 #endif
22791 
22792 /*****************************************************************************
22793  * SpCompressedLexicon coclass
22794  */
22795 
22796 DEFINE_GUID(CLSID_SpCompressedLexicon, 0x90903716, 0x2f42, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c);
22797 
22798 #ifdef __cplusplus
22799 class DECLSPEC_UUID("90903716-2f42-11d3-9c26-00c04f8ef87c") SpCompressedLexicon;
22800 #ifdef __CRT_UUID_DECL
22801 __CRT_UUID_DECL(SpCompressedLexicon, 0x90903716, 0x2f42, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c)
22802 #endif
22803 #endif
22804 
22805 /*****************************************************************************
22806  * SpShortcut coclass
22807  */
22808 
22809 DEFINE_GUID(CLSID_SpShortcut, 0x0d722f1a, 0x9fcf, 0x4e62, 0x96,0xd8, 0x6d,0xf8,0xf0,0x1a,0x26,0xaa);
22810 
22811 #ifdef __cplusplus
22812 class DECLSPEC_UUID("0d722f1a-9fcf-4e62-96d8-6df8f01a26aa") SpShortcut;
22813 #ifdef __CRT_UUID_DECL
22814 __CRT_UUID_DECL(SpShortcut, 0x0d722f1a, 0x9fcf, 0x4e62, 0x96,0xd8, 0x6d,0xf8,0xf0,0x1a,0x26,0xaa)
22815 #endif
22816 #endif
22817 
22818 /*****************************************************************************
22819  * SpPhoneConverter coclass
22820  */
22821 
22822 DEFINE_GUID(CLSID_SpPhoneConverter, 0x9185f743, 0x1143, 0x4c28, 0x86,0xb5, 0xbf,0xf1,0x4f,0x20,0xe5,0xc8);
22823 
22824 #ifdef __cplusplus
22825 class DECLSPEC_UUID("9185f743-1143-4c28-86b5-bff14f20e5c8") SpPhoneConverter;
22826 #ifdef __CRT_UUID_DECL
22827 __CRT_UUID_DECL(SpPhoneConverter, 0x9185f743, 0x1143, 0x4c28, 0x86,0xb5, 0xbf,0xf1,0x4f,0x20,0xe5,0xc8)
22828 #endif
22829 #endif
22830 
22831 /*****************************************************************************
22832  * SpPhoneticAlphabetConverter coclass
22833  */
22834 
22835 DEFINE_GUID(CLSID_SpPhoneticAlphabetConverter, 0x4f414126, 0xdfe3, 0x4629, 0x99,0xee, 0x79,0x79,0x78,0x31,0x7e,0xad);
22836 
22837 #ifdef __cplusplus
22838 class DECLSPEC_UUID("4f414126-dfe3-4629-99ee-797978317ead") SpPhoneticAlphabetConverter;
22839 #ifdef __CRT_UUID_DECL
22840 __CRT_UUID_DECL(SpPhoneticAlphabetConverter, 0x4f414126, 0xdfe3, 0x4629, 0x99,0xee, 0x79,0x79,0x78,0x31,0x7e,0xad)
22841 #endif
22842 #endif
22843 
22844 /*****************************************************************************
22845  * SpNullPhoneConverter coclass
22846  */
22847 
22848 DEFINE_GUID(CLSID_SpNullPhoneConverter, 0x455f24e9, 0x7396, 0x4a16, 0x97,0x15, 0x7c,0x0f,0xdb,0xe3,0xef,0xe3);
22849 
22850 #ifdef __cplusplus
22851 class DECLSPEC_UUID("455f24e9-7396-4a16-9715-7c0fdbe3efe3") SpNullPhoneConverter;
22852 #ifdef __CRT_UUID_DECL
22853 __CRT_UUID_DECL(SpNullPhoneConverter, 0x455f24e9, 0x7396, 0x4a16, 0x97,0x15, 0x7c,0x0f,0xdb,0xe3,0xef,0xe3)
22854 #endif
22855 #endif
22856 
22857 /*****************************************************************************
22858  * SpTextSelectionInformation coclass
22859  */
22860 
22861 DEFINE_GUID(CLSID_SpTextSelectionInformation, 0x0f92030a, 0xcbfd, 0x4ab8, 0xa1,0x64, 0xff,0x59,0x85,0x54,0x7f,0xf6);
22862 
22863 #ifdef __cplusplus
22864 class DECLSPEC_UUID("0f92030a-cbfd-4ab8-a164-ff5985547ff6") SpTextSelectionInformation;
22865 #ifdef __CRT_UUID_DECL
22866 __CRT_UUID_DECL(SpTextSelectionInformation, 0x0f92030a, 0xcbfd, 0x4ab8, 0xa1,0x64, 0xff,0x59,0x85,0x54,0x7f,0xf6)
22867 #endif
22868 #endif
22869 
22870 /*****************************************************************************
22871  * SpPhraseInfoBuilder coclass
22872  */
22873 
22874 DEFINE_GUID(CLSID_SpPhraseInfoBuilder, 0xc23fc28d, 0xc55f, 0x4720, 0x8b,0x32, 0x91,0xf7,0x3c,0x2b,0xd5,0xd1);
22875 
22876 #ifdef __cplusplus
22877 class DECLSPEC_UUID("c23fc28d-c55f-4720-8b32-91f73c2bd5d1") SpPhraseInfoBuilder;
22878 #ifdef __CRT_UUID_DECL
22879 __CRT_UUID_DECL(SpPhraseInfoBuilder, 0xc23fc28d, 0xc55f, 0x4720, 0x8b,0x32, 0x91,0xf7,0x3c,0x2b,0xd5,0xd1)
22880 #endif
22881 #endif
22882 
22883 /*****************************************************************************
22884  * SpAudioFormat coclass
22885  */
22886 
22887 DEFINE_GUID(CLSID_SpAudioFormat, 0x9ef96870, 0xe160, 0x4792, 0x82,0x0d, 0x48,0xcf,0x06,0x49,0xe4,0xec);
22888 
22889 #ifdef __cplusplus
22890 class DECLSPEC_UUID("9ef96870-e160-4792-820d-48cf0649e4ec") SpAudioFormat;
22891 #ifdef __CRT_UUID_DECL
22892 __CRT_UUID_DECL(SpAudioFormat, 0x9ef96870, 0xe160, 0x4792, 0x82,0x0d, 0x48,0xcf,0x06,0x49,0xe4,0xec)
22893 #endif
22894 #endif
22895 
22896 /*****************************************************************************
22897  * SpWaveFormatEx coclass
22898  */
22899 
22900 DEFINE_GUID(CLSID_SpWaveFormatEx, 0xc79a574c, 0x63be, 0x44b9, 0x80,0x1f, 0x28,0x3f,0x87,0xf8,0x98,0xbe);
22901 
22902 #ifdef __cplusplus
22903 class DECLSPEC_UUID("c79a574c-63be-44b9-801f-283f87f898be") SpWaveFormatEx;
22904 #ifdef __CRT_UUID_DECL
22905 __CRT_UUID_DECL(SpWaveFormatEx, 0xc79a574c, 0x63be, 0x44b9, 0x80,0x1f, 0x28,0x3f,0x87,0xf8,0x98,0xbe)
22906 #endif
22907 #endif
22908 
22909 /*****************************************************************************
22910  * SpInProcRecoContext coclass
22911  */
22912 
22913 DEFINE_GUID(CLSID_SpInProcRecoContext, 0x73ad6842, 0xace0, 0x45e8, 0xa4,0xdd, 0x87,0x95,0x88,0x1a,0x2c,0x2a);
22914 
22915 #ifdef __cplusplus
22916 class DECLSPEC_UUID("73ad6842-ace0-45e8-a4dd-8795881a2c2a") SpInProcRecoContext;
22917 #ifdef __CRT_UUID_DECL
22918 __CRT_UUID_DECL(SpInProcRecoContext, 0x73ad6842, 0xace0, 0x45e8, 0xa4,0xdd, 0x87,0x95,0x88,0x1a,0x2c,0x2a)
22919 #endif
22920 #endif
22921 
22922 /*****************************************************************************
22923  * SpCustomStream coclass
22924  */
22925 
22926 DEFINE_GUID(CLSID_SpCustomStream, 0x8dbef13f, 0x1948, 0x4aa8, 0x8c,0xf0, 0x04,0x8e,0xeb,0xed,0x95,0xd8);
22927 
22928 #ifdef __cplusplus
22929 class DECLSPEC_UUID("8dbef13f-1948-4aa8-8cf0-048eebed95d8") SpCustomStream;
22930 #ifdef __CRT_UUID_DECL
22931 __CRT_UUID_DECL(SpCustomStream, 0x8dbef13f, 0x1948, 0x4aa8, 0x8c,0xf0, 0x04,0x8e,0xeb,0xed,0x95,0xd8)
22932 #endif
22933 #endif
22934 
22935 /*****************************************************************************
22936  * SpFileStream coclass
22937  */
22938 
22939 DEFINE_GUID(CLSID_SpFileStream, 0x947812b3, 0x2ae1, 0x4644, 0xba,0x86, 0x9e,0x90,0xde,0xd7,0xec,0x91);
22940 
22941 #ifdef __cplusplus
22942 class DECLSPEC_UUID("947812b3-2ae1-4644-ba86-9e90ded7ec91") SpFileStream;
22943 #ifdef __CRT_UUID_DECL
22944 __CRT_UUID_DECL(SpFileStream, 0x947812b3, 0x2ae1, 0x4644, 0xba,0x86, 0x9e,0x90,0xde,0xd7,0xec,0x91)
22945 #endif
22946 #endif
22947 
22948 /*****************************************************************************
22949  * SpMemoryStream coclass
22950  */
22951 
22952 DEFINE_GUID(CLSID_SpMemoryStream, 0x5fb7ef7d, 0xdff4, 0x468a, 0xb6,0xb7, 0x2f,0xcb,0xd1,0x88,0xf9,0x94);
22953 
22954 #ifdef __cplusplus
22955 class DECLSPEC_UUID("5fb7ef7d-dff4-468a-b6b7-2fcbd188f994") SpMemoryStream;
22956 #ifdef __CRT_UUID_DECL
22957 __CRT_UUID_DECL(SpMemoryStream, 0x5fb7ef7d, 0xdff4, 0x468a, 0xb6,0xb7, 0x2f,0xcb,0xd1,0x88,0xf9,0x94)
22958 #endif
22959 #endif
22960 
22961 #ifndef __ISpXMLRecoResult_FWD_DEFINED__
22962 #define __ISpXMLRecoResult_FWD_DEFINED__
22963 typedef interface ISpXMLRecoResult ISpXMLRecoResult;
22964 #ifdef __cplusplus
22965 interface ISpXMLRecoResult;
22966 #endif /* __cplusplus */
22967 #endif
22968 
22969 #ifndef __ISpRecoGrammar2_FWD_DEFINED__
22970 #define __ISpRecoGrammar2_FWD_DEFINED__
22971 typedef interface ISpRecoGrammar2 ISpRecoGrammar2;
22972 #ifdef __cplusplus
22973 interface ISpRecoGrammar2;
22974 #endif /* __cplusplus */
22975 #endif
22976 
22977 #ifndef __ISpeechResourceLoader_FWD_DEFINED__
22978 #define __ISpeechResourceLoader_FWD_DEFINED__
22979 typedef interface ISpeechResourceLoader ISpeechResourceLoader;
22980 #ifdef __cplusplus
22981 interface ISpeechResourceLoader;
22982 #endif /* __cplusplus */
22983 #endif
22984 
22985 #endif /* __SpeechLib_LIBRARY_DEFINED__ */
22986 /* Begin additional prototypes for all interfaces */
22987 
22988 ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
22989 unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
22990 unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
22991 void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
22992 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
22993 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
22994 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
22995 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
22996 ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
22997 unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
22998 unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
22999 void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
23000 
23001 /* End additional prototypes */
23002 
23003 #ifdef __cplusplus
23004 }
23005 #endif
23006 
23007 #endif /* __sapi53_h__ */
23008