1 /*** Autogenerated by WIDL 6.4 from include/sapi51.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 __sapi51_h__
17 #define __sapi51_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 __ISpEventSink_FWD_DEFINED__
118 #define __ISpEventSink_FWD_DEFINED__
119 typedef interface ISpEventSink ISpEventSink;
120 #ifdef __cplusplus
121 interface ISpEventSink;
122 #endif /* __cplusplus */
123 #endif
124 
125 #ifndef __ISpStreamFormat_FWD_DEFINED__
126 #define __ISpStreamFormat_FWD_DEFINED__
127 typedef interface ISpStreamFormat ISpStreamFormat;
128 #ifdef __cplusplus
129 interface ISpStreamFormat;
130 #endif /* __cplusplus */
131 #endif
132 
133 #ifndef __ISpStream_FWD_DEFINED__
134 #define __ISpStream_FWD_DEFINED__
135 typedef interface ISpStream ISpStream;
136 #ifdef __cplusplus
137 interface ISpStream;
138 #endif /* __cplusplus */
139 #endif
140 
141 #ifndef __ISpStreamFormatConverter_FWD_DEFINED__
142 #define __ISpStreamFormatConverter_FWD_DEFINED__
143 typedef interface ISpStreamFormatConverter ISpStreamFormatConverter;
144 #ifdef __cplusplus
145 interface ISpStreamFormatConverter;
146 #endif /* __cplusplus */
147 #endif
148 
149 #ifndef __ISpAudio_FWD_DEFINED__
150 #define __ISpAudio_FWD_DEFINED__
151 typedef interface ISpAudio ISpAudio;
152 #ifdef __cplusplus
153 interface ISpAudio;
154 #endif /* __cplusplus */
155 #endif
156 
157 #ifndef __ISpMMSysAudio_FWD_DEFINED__
158 #define __ISpMMSysAudio_FWD_DEFINED__
159 typedef interface ISpMMSysAudio ISpMMSysAudio;
160 #ifdef __cplusplus
161 interface ISpMMSysAudio;
162 #endif /* __cplusplus */
163 #endif
164 
165 #ifndef __ISpTranscript_FWD_DEFINED__
166 #define __ISpTranscript_FWD_DEFINED__
167 typedef interface ISpTranscript ISpTranscript;
168 #ifdef __cplusplus
169 interface ISpTranscript;
170 #endif /* __cplusplus */
171 #endif
172 
173 #ifndef __ISpLexicon_FWD_DEFINED__
174 #define __ISpLexicon_FWD_DEFINED__
175 typedef interface ISpLexicon ISpLexicon;
176 #ifdef __cplusplus
177 interface ISpLexicon;
178 #endif /* __cplusplus */
179 #endif
180 
181 #ifndef __ISpContainerLexicon_FWD_DEFINED__
182 #define __ISpContainerLexicon_FWD_DEFINED__
183 typedef interface ISpContainerLexicon ISpContainerLexicon;
184 #ifdef __cplusplus
185 interface ISpContainerLexicon;
186 #endif /* __cplusplus */
187 #endif
188 
189 #ifndef __ISpPhoneConverter_FWD_DEFINED__
190 #define __ISpPhoneConverter_FWD_DEFINED__
191 typedef interface ISpPhoneConverter ISpPhoneConverter;
192 #ifdef __cplusplus
193 interface ISpPhoneConverter;
194 #endif /* __cplusplus */
195 #endif
196 
197 #ifndef __ISpVoice_FWD_DEFINED__
198 #define __ISpVoice_FWD_DEFINED__
199 typedef interface ISpVoice ISpVoice;
200 #ifdef __cplusplus
201 interface ISpVoice;
202 #endif /* __cplusplus */
203 #endif
204 
205 #ifndef __ISpPhrase_FWD_DEFINED__
206 #define __ISpPhrase_FWD_DEFINED__
207 typedef interface ISpPhrase ISpPhrase;
208 #ifdef __cplusplus
209 interface ISpPhrase;
210 #endif /* __cplusplus */
211 #endif
212 
213 #ifndef __ISpPhraseAlt_FWD_DEFINED__
214 #define __ISpPhraseAlt_FWD_DEFINED__
215 typedef interface ISpPhraseAlt ISpPhraseAlt;
216 #ifdef __cplusplus
217 interface ISpPhraseAlt;
218 #endif /* __cplusplus */
219 #endif
220 
221 #ifndef __ISpRecoResult_FWD_DEFINED__
222 #define __ISpRecoResult_FWD_DEFINED__
223 typedef interface ISpRecoResult ISpRecoResult;
224 #ifdef __cplusplus
225 interface ISpRecoResult;
226 #endif /* __cplusplus */
227 #endif
228 
229 #ifndef __ISpGrammarBuilder_FWD_DEFINED__
230 #define __ISpGrammarBuilder_FWD_DEFINED__
231 typedef interface ISpGrammarBuilder ISpGrammarBuilder;
232 #ifdef __cplusplus
233 interface ISpGrammarBuilder;
234 #endif /* __cplusplus */
235 #endif
236 
237 #ifndef __ISpRecoGrammar_FWD_DEFINED__
238 #define __ISpRecoGrammar_FWD_DEFINED__
239 typedef interface ISpRecoGrammar ISpRecoGrammar;
240 #ifdef __cplusplus
241 interface ISpRecoGrammar;
242 #endif /* __cplusplus */
243 #endif
244 
245 #ifndef __ISpRecoContext_FWD_DEFINED__
246 #define __ISpRecoContext_FWD_DEFINED__
247 typedef interface ISpRecoContext ISpRecoContext;
248 #ifdef __cplusplus
249 interface ISpRecoContext;
250 #endif /* __cplusplus */
251 #endif
252 
253 #ifndef __ISpProperties_FWD_DEFINED__
254 #define __ISpProperties_FWD_DEFINED__
255 typedef interface ISpProperties ISpProperties;
256 #ifdef __cplusplus
257 interface ISpProperties;
258 #endif /* __cplusplus */
259 #endif
260 
261 #ifndef __ISpRecognizer_FWD_DEFINED__
262 #define __ISpRecognizer_FWD_DEFINED__
263 typedef interface ISpRecognizer ISpRecognizer;
264 #ifdef __cplusplus
265 interface ISpRecognizer;
266 #endif /* __cplusplus */
267 #endif
268 
269 #ifndef __ISpeechDataKey_FWD_DEFINED__
270 #define __ISpeechDataKey_FWD_DEFINED__
271 typedef interface ISpeechDataKey ISpeechDataKey;
272 #ifdef __cplusplus
273 interface ISpeechDataKey;
274 #endif /* __cplusplus */
275 #endif
276 
277 #ifndef __ISpeechObjectToken_FWD_DEFINED__
278 #define __ISpeechObjectToken_FWD_DEFINED__
279 typedef interface ISpeechObjectToken ISpeechObjectToken;
280 #ifdef __cplusplus
281 interface ISpeechObjectToken;
282 #endif /* __cplusplus */
283 #endif
284 
285 #ifndef __ISpeechObjectTokens_FWD_DEFINED__
286 #define __ISpeechObjectTokens_FWD_DEFINED__
287 typedef interface ISpeechObjectTokens ISpeechObjectTokens;
288 #ifdef __cplusplus
289 interface ISpeechObjectTokens;
290 #endif /* __cplusplus */
291 #endif
292 
293 #ifndef __ISpeechObjectTokenCategory_FWD_DEFINED__
294 #define __ISpeechObjectTokenCategory_FWD_DEFINED__
295 typedef interface ISpeechObjectTokenCategory ISpeechObjectTokenCategory;
296 #ifdef __cplusplus
297 interface ISpeechObjectTokenCategory;
298 #endif /* __cplusplus */
299 #endif
300 
301 #ifndef __ISpeechAudioFormat_FWD_DEFINED__
302 #define __ISpeechAudioFormat_FWD_DEFINED__
303 typedef interface ISpeechAudioFormat ISpeechAudioFormat;
304 #ifdef __cplusplus
305 interface ISpeechAudioFormat;
306 #endif /* __cplusplus */
307 #endif
308 
309 #ifndef __ISpeechBaseStream_FWD_DEFINED__
310 #define __ISpeechBaseStream_FWD_DEFINED__
311 typedef interface ISpeechBaseStream ISpeechBaseStream;
312 #ifdef __cplusplus
313 interface ISpeechBaseStream;
314 #endif /* __cplusplus */
315 #endif
316 
317 #ifndef __ISpeechAudio_FWD_DEFINED__
318 #define __ISpeechAudio_FWD_DEFINED__
319 typedef interface ISpeechAudio ISpeechAudio;
320 #ifdef __cplusplus
321 interface ISpeechAudio;
322 #endif /* __cplusplus */
323 #endif
324 
325 #ifndef __ISpeechMMSysAudio_FWD_DEFINED__
326 #define __ISpeechMMSysAudio_FWD_DEFINED__
327 typedef interface ISpeechMMSysAudio ISpeechMMSysAudio;
328 #ifdef __cplusplus
329 interface ISpeechMMSysAudio;
330 #endif /* __cplusplus */
331 #endif
332 
333 #ifndef __ISpeechFileStream_FWD_DEFINED__
334 #define __ISpeechFileStream_FWD_DEFINED__
335 typedef interface ISpeechFileStream ISpeechFileStream;
336 #ifdef __cplusplus
337 interface ISpeechFileStream;
338 #endif /* __cplusplus */
339 #endif
340 
341 #ifndef __ISpeechCustomStream_FWD_DEFINED__
342 #define __ISpeechCustomStream_FWD_DEFINED__
343 typedef interface ISpeechCustomStream ISpeechCustomStream;
344 #ifdef __cplusplus
345 interface ISpeechCustomStream;
346 #endif /* __cplusplus */
347 #endif
348 
349 #ifndef __ISpeechMemoryStream_FWD_DEFINED__
350 #define __ISpeechMemoryStream_FWD_DEFINED__
351 typedef interface ISpeechMemoryStream ISpeechMemoryStream;
352 #ifdef __cplusplus
353 interface ISpeechMemoryStream;
354 #endif /* __cplusplus */
355 #endif
356 
357 #ifndef __ISpeechAudioStatus_FWD_DEFINED__
358 #define __ISpeechAudioStatus_FWD_DEFINED__
359 typedef interface ISpeechAudioStatus ISpeechAudioStatus;
360 #ifdef __cplusplus
361 interface ISpeechAudioStatus;
362 #endif /* __cplusplus */
363 #endif
364 
365 #ifndef __ISpeechAudioBufferInfo_FWD_DEFINED__
366 #define __ISpeechAudioBufferInfo_FWD_DEFINED__
367 typedef interface ISpeechAudioBufferInfo ISpeechAudioBufferInfo;
368 #ifdef __cplusplus
369 interface ISpeechAudioBufferInfo;
370 #endif /* __cplusplus */
371 #endif
372 
373 #ifndef __ISpeechWaveFormatEx_FWD_DEFINED__
374 #define __ISpeechWaveFormatEx_FWD_DEFINED__
375 typedef interface ISpeechWaveFormatEx ISpeechWaveFormatEx;
376 #ifdef __cplusplus
377 interface ISpeechWaveFormatEx;
378 #endif /* __cplusplus */
379 #endif
380 
381 #ifndef __ISpeechVoice_FWD_DEFINED__
382 #define __ISpeechVoice_FWD_DEFINED__
383 typedef interface ISpeechVoice ISpeechVoice;
384 #ifdef __cplusplus
385 interface ISpeechVoice;
386 #endif /* __cplusplus */
387 #endif
388 
389 #ifndef __ISpeechVoiceStatus_FWD_DEFINED__
390 #define __ISpeechVoiceStatus_FWD_DEFINED__
391 typedef interface ISpeechVoiceStatus ISpeechVoiceStatus;
392 #ifdef __cplusplus
393 interface ISpeechVoiceStatus;
394 #endif /* __cplusplus */
395 #endif
396 
397 #ifndef ___ISpeechVoiceEvents_FWD_DEFINED__
398 #define ___ISpeechVoiceEvents_FWD_DEFINED__
399 typedef interface _ISpeechVoiceEvents _ISpeechVoiceEvents;
400 #ifdef __cplusplus
401 interface _ISpeechVoiceEvents;
402 #endif /* __cplusplus */
403 #endif
404 
405 #ifndef __ISpeechRecognizer_FWD_DEFINED__
406 #define __ISpeechRecognizer_FWD_DEFINED__
407 typedef interface ISpeechRecognizer ISpeechRecognizer;
408 #ifdef __cplusplus
409 interface ISpeechRecognizer;
410 #endif /* __cplusplus */
411 #endif
412 
413 #ifndef __ISpeechRecognizerStatus_FWD_DEFINED__
414 #define __ISpeechRecognizerStatus_FWD_DEFINED__
415 typedef interface ISpeechRecognizerStatus ISpeechRecognizerStatus;
416 #ifdef __cplusplus
417 interface ISpeechRecognizerStatus;
418 #endif /* __cplusplus */
419 #endif
420 
421 #ifndef __ISpeechRecoContext_FWD_DEFINED__
422 #define __ISpeechRecoContext_FWD_DEFINED__
423 typedef interface ISpeechRecoContext ISpeechRecoContext;
424 #ifdef __cplusplus
425 interface ISpeechRecoContext;
426 #endif /* __cplusplus */
427 #endif
428 
429 #ifndef __ISpeechRecoGrammar_FWD_DEFINED__
430 #define __ISpeechRecoGrammar_FWD_DEFINED__
431 typedef interface ISpeechRecoGrammar ISpeechRecoGrammar;
432 #ifdef __cplusplus
433 interface ISpeechRecoGrammar;
434 #endif /* __cplusplus */
435 #endif
436 
437 #ifndef ___ISpeechRecoContextEvents_FWD_DEFINED__
438 #define ___ISpeechRecoContextEvents_FWD_DEFINED__
439 typedef interface _ISpeechRecoContextEvents _ISpeechRecoContextEvents;
440 #ifdef __cplusplus
441 interface _ISpeechRecoContextEvents;
442 #endif /* __cplusplus */
443 #endif
444 
445 #ifndef __ISpeechGrammarRule_FWD_DEFINED__
446 #define __ISpeechGrammarRule_FWD_DEFINED__
447 typedef interface ISpeechGrammarRule ISpeechGrammarRule;
448 #ifdef __cplusplus
449 interface ISpeechGrammarRule;
450 #endif /* __cplusplus */
451 #endif
452 
453 #ifndef __ISpeechGrammarRules_FWD_DEFINED__
454 #define __ISpeechGrammarRules_FWD_DEFINED__
455 typedef interface ISpeechGrammarRules ISpeechGrammarRules;
456 #ifdef __cplusplus
457 interface ISpeechGrammarRules;
458 #endif /* __cplusplus */
459 #endif
460 
461 #ifndef __ISpeechGrammarRuleState_FWD_DEFINED__
462 #define __ISpeechGrammarRuleState_FWD_DEFINED__
463 typedef interface ISpeechGrammarRuleState ISpeechGrammarRuleState;
464 #ifdef __cplusplus
465 interface ISpeechGrammarRuleState;
466 #endif /* __cplusplus */
467 #endif
468 
469 #ifndef __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
470 #define __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
471 typedef interface ISpeechGrammarRuleStateTransitions ISpeechGrammarRuleStateTransitions;
472 #ifdef __cplusplus
473 interface ISpeechGrammarRuleStateTransitions;
474 #endif /* __cplusplus */
475 #endif
476 
477 #ifndef __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
478 #define __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
479 typedef interface ISpeechGrammarRuleStateTransition ISpeechGrammarRuleStateTransition;
480 #ifdef __cplusplus
481 interface ISpeechGrammarRuleStateTransition;
482 #endif /* __cplusplus */
483 #endif
484 
485 #ifndef __ISpeechTextSelectionInformation_FWD_DEFINED__
486 #define __ISpeechTextSelectionInformation_FWD_DEFINED__
487 typedef interface ISpeechTextSelectionInformation ISpeechTextSelectionInformation;
488 #ifdef __cplusplus
489 interface ISpeechTextSelectionInformation;
490 #endif /* __cplusplus */
491 #endif
492 
493 #ifndef __ISpeechRecoResult_FWD_DEFINED__
494 #define __ISpeechRecoResult_FWD_DEFINED__
495 typedef interface ISpeechRecoResult ISpeechRecoResult;
496 #ifdef __cplusplus
497 interface ISpeechRecoResult;
498 #endif /* __cplusplus */
499 #endif
500 
501 #ifndef __ISpeechPhraseInfoBuilder_FWD_DEFINED__
502 #define __ISpeechPhraseInfoBuilder_FWD_DEFINED__
503 typedef interface ISpeechPhraseInfoBuilder ISpeechPhraseInfoBuilder;
504 #ifdef __cplusplus
505 interface ISpeechPhraseInfoBuilder;
506 #endif /* __cplusplus */
507 #endif
508 
509 #ifndef __ISpeechRecoResultTimes_FWD_DEFINED__
510 #define __ISpeechRecoResultTimes_FWD_DEFINED__
511 typedef interface ISpeechRecoResultTimes ISpeechRecoResultTimes;
512 #ifdef __cplusplus
513 interface ISpeechRecoResultTimes;
514 #endif /* __cplusplus */
515 #endif
516 
517 #ifndef __ISpeechPhraseAlternate_FWD_DEFINED__
518 #define __ISpeechPhraseAlternate_FWD_DEFINED__
519 typedef interface ISpeechPhraseAlternate ISpeechPhraseAlternate;
520 #ifdef __cplusplus
521 interface ISpeechPhraseAlternate;
522 #endif /* __cplusplus */
523 #endif
524 
525 #ifndef __ISpeechPhraseAlternates_FWD_DEFINED__
526 #define __ISpeechPhraseAlternates_FWD_DEFINED__
527 typedef interface ISpeechPhraseAlternates ISpeechPhraseAlternates;
528 #ifdef __cplusplus
529 interface ISpeechPhraseAlternates;
530 #endif /* __cplusplus */
531 #endif
532 
533 #ifndef __ISpeechPhraseInfo_FWD_DEFINED__
534 #define __ISpeechPhraseInfo_FWD_DEFINED__
535 typedef interface ISpeechPhraseInfo ISpeechPhraseInfo;
536 #ifdef __cplusplus
537 interface ISpeechPhraseInfo;
538 #endif /* __cplusplus */
539 #endif
540 
541 #ifndef __ISpeechPhraseElement_FWD_DEFINED__
542 #define __ISpeechPhraseElement_FWD_DEFINED__
543 typedef interface ISpeechPhraseElement ISpeechPhraseElement;
544 #ifdef __cplusplus
545 interface ISpeechPhraseElement;
546 #endif /* __cplusplus */
547 #endif
548 
549 #ifndef __ISpeechPhraseElements_FWD_DEFINED__
550 #define __ISpeechPhraseElements_FWD_DEFINED__
551 typedef interface ISpeechPhraseElements ISpeechPhraseElements;
552 #ifdef __cplusplus
553 interface ISpeechPhraseElements;
554 #endif /* __cplusplus */
555 #endif
556 
557 #ifndef __ISpeechPhraseReplacement_FWD_DEFINED__
558 #define __ISpeechPhraseReplacement_FWD_DEFINED__
559 typedef interface ISpeechPhraseReplacement ISpeechPhraseReplacement;
560 #ifdef __cplusplus
561 interface ISpeechPhraseReplacement;
562 #endif /* __cplusplus */
563 #endif
564 
565 #ifndef __ISpeechPhraseReplacements_FWD_DEFINED__
566 #define __ISpeechPhraseReplacements_FWD_DEFINED__
567 typedef interface ISpeechPhraseReplacements ISpeechPhraseReplacements;
568 #ifdef __cplusplus
569 interface ISpeechPhraseReplacements;
570 #endif /* __cplusplus */
571 #endif
572 
573 #ifndef __ISpeechPhraseProperty_FWD_DEFINED__
574 #define __ISpeechPhraseProperty_FWD_DEFINED__
575 typedef interface ISpeechPhraseProperty ISpeechPhraseProperty;
576 #ifdef __cplusplus
577 interface ISpeechPhraseProperty;
578 #endif /* __cplusplus */
579 #endif
580 
581 #ifndef __ISpeechPhraseProperties_FWD_DEFINED__
582 #define __ISpeechPhraseProperties_FWD_DEFINED__
583 typedef interface ISpeechPhraseProperties ISpeechPhraseProperties;
584 #ifdef __cplusplus
585 interface ISpeechPhraseProperties;
586 #endif /* __cplusplus */
587 #endif
588 
589 #ifndef __ISpeechPhraseRule_FWD_DEFINED__
590 #define __ISpeechPhraseRule_FWD_DEFINED__
591 typedef interface ISpeechPhraseRule ISpeechPhraseRule;
592 #ifdef __cplusplus
593 interface ISpeechPhraseRule;
594 #endif /* __cplusplus */
595 #endif
596 
597 #ifndef __ISpeechPhraseRules_FWD_DEFINED__
598 #define __ISpeechPhraseRules_FWD_DEFINED__
599 typedef interface ISpeechPhraseRules ISpeechPhraseRules;
600 #ifdef __cplusplus
601 interface ISpeechPhraseRules;
602 #endif /* __cplusplus */
603 #endif
604 
605 #ifndef __ISpeechLexiconWords_FWD_DEFINED__
606 #define __ISpeechLexiconWords_FWD_DEFINED__
607 typedef interface ISpeechLexiconWords ISpeechLexiconWords;
608 #ifdef __cplusplus
609 interface ISpeechLexiconWords;
610 #endif /* __cplusplus */
611 #endif
612 
613 #ifndef __ISpeechLexicon_FWD_DEFINED__
614 #define __ISpeechLexicon_FWD_DEFINED__
615 typedef interface ISpeechLexicon ISpeechLexicon;
616 #ifdef __cplusplus
617 interface ISpeechLexicon;
618 #endif /* __cplusplus */
619 #endif
620 
621 #ifndef __ISpeechLexiconWord_FWD_DEFINED__
622 #define __ISpeechLexiconWord_FWD_DEFINED__
623 typedef interface ISpeechLexiconWord ISpeechLexiconWord;
624 #ifdef __cplusplus
625 interface ISpeechLexiconWord;
626 #endif /* __cplusplus */
627 #endif
628 
629 #ifndef __ISpeechLexiconPronunciations_FWD_DEFINED__
630 #define __ISpeechLexiconPronunciations_FWD_DEFINED__
631 typedef interface ISpeechLexiconPronunciations ISpeechLexiconPronunciations;
632 #ifdef __cplusplus
633 interface ISpeechLexiconPronunciations;
634 #endif /* __cplusplus */
635 #endif
636 
637 #ifndef __ISpeechLexiconPronunciation_FWD_DEFINED__
638 #define __ISpeechLexiconPronunciation_FWD_DEFINED__
639 typedef interface ISpeechLexiconPronunciation ISpeechLexiconPronunciation;
640 #ifdef __cplusplus
641 interface ISpeechLexiconPronunciation;
642 #endif /* __cplusplus */
643 #endif
644 
645 #ifndef __ISpeechPhoneConverter_FWD_DEFINED__
646 #define __ISpeechPhoneConverter_FWD_DEFINED__
647 typedef interface ISpeechPhoneConverter ISpeechPhoneConverter;
648 #ifdef __cplusplus
649 interface ISpeechPhoneConverter;
650 #endif /* __cplusplus */
651 #endif
652 
653 #ifndef __SpNotifyTranslator_FWD_DEFINED__
654 #define __SpNotifyTranslator_FWD_DEFINED__
655 #ifdef __cplusplus
656 typedef class SpNotifyTranslator SpNotifyTranslator;
657 #else
658 typedef struct SpNotifyTranslator SpNotifyTranslator;
659 #endif /* defined __cplusplus */
660 #endif /* defined __SpNotifyTranslator_FWD_DEFINED__ */
661 
662 #ifndef __SpObjectTokenCategory_FWD_DEFINED__
663 #define __SpObjectTokenCategory_FWD_DEFINED__
664 #ifdef __cplusplus
665 typedef class SpObjectTokenCategory SpObjectTokenCategory;
666 #else
667 typedef struct SpObjectTokenCategory SpObjectTokenCategory;
668 #endif /* defined __cplusplus */
669 #endif /* defined __SpObjectTokenCategory_FWD_DEFINED__ */
670 
671 #ifndef __SpObjectToken_FWD_DEFINED__
672 #define __SpObjectToken_FWD_DEFINED__
673 #ifdef __cplusplus
674 typedef class SpObjectToken SpObjectToken;
675 #else
676 typedef struct SpObjectToken SpObjectToken;
677 #endif /* defined __cplusplus */
678 #endif /* defined __SpObjectToken_FWD_DEFINED__ */
679 
680 #ifndef __SpResourceManager_FWD_DEFINED__
681 #define __SpResourceManager_FWD_DEFINED__
682 #ifdef __cplusplus
683 typedef class SpResourceManager SpResourceManager;
684 #else
685 typedef struct SpResourceManager SpResourceManager;
686 #endif /* defined __cplusplus */
687 #endif /* defined __SpResourceManager_FWD_DEFINED__ */
688 
689 #ifndef __SpStreamFormatConverter_FWD_DEFINED__
690 #define __SpStreamFormatConverter_FWD_DEFINED__
691 #ifdef __cplusplus
692 typedef class SpStreamFormatConverter SpStreamFormatConverter;
693 #else
694 typedef struct SpStreamFormatConverter SpStreamFormatConverter;
695 #endif /* defined __cplusplus */
696 #endif /* defined __SpStreamFormatConverter_FWD_DEFINED__ */
697 
698 #ifndef __SpMMAudioEnum_FWD_DEFINED__
699 #define __SpMMAudioEnum_FWD_DEFINED__
700 #ifdef __cplusplus
701 typedef class SpMMAudioEnum SpMMAudioEnum;
702 #else
703 typedef struct SpMMAudioEnum SpMMAudioEnum;
704 #endif /* defined __cplusplus */
705 #endif /* defined __SpMMAudioEnum_FWD_DEFINED__ */
706 
707 #ifndef __SpMMAudioIn_FWD_DEFINED__
708 #define __SpMMAudioIn_FWD_DEFINED__
709 #ifdef __cplusplus
710 typedef class SpMMAudioIn SpMMAudioIn;
711 #else
712 typedef struct SpMMAudioIn SpMMAudioIn;
713 #endif /* defined __cplusplus */
714 #endif /* defined __SpMMAudioIn_FWD_DEFINED__ */
715 
716 #ifndef __SpMMAudioOut_FWD_DEFINED__
717 #define __SpMMAudioOut_FWD_DEFINED__
718 #ifdef __cplusplus
719 typedef class SpMMAudioOut SpMMAudioOut;
720 #else
721 typedef struct SpMMAudioOut SpMMAudioOut;
722 #endif /* defined __cplusplus */
723 #endif /* defined __SpMMAudioOut_FWD_DEFINED__ */
724 
725 #ifndef __SpStream_FWD_DEFINED__
726 #define __SpStream_FWD_DEFINED__
727 #ifdef __cplusplus
728 typedef class SpStream SpStream;
729 #else
730 typedef struct SpStream SpStream;
731 #endif /* defined __cplusplus */
732 #endif /* defined __SpStream_FWD_DEFINED__ */
733 
734 #ifndef __SpVoice_FWD_DEFINED__
735 #define __SpVoice_FWD_DEFINED__
736 #ifdef __cplusplus
737 typedef class SpVoice SpVoice;
738 #else
739 typedef struct SpVoice SpVoice;
740 #endif /* defined __cplusplus */
741 #endif /* defined __SpVoice_FWD_DEFINED__ */
742 
743 #ifndef __SpSharedRecoContext_FWD_DEFINED__
744 #define __SpSharedRecoContext_FWD_DEFINED__
745 #ifdef __cplusplus
746 typedef class SpSharedRecoContext SpSharedRecoContext;
747 #else
748 typedef struct SpSharedRecoContext SpSharedRecoContext;
749 #endif /* defined __cplusplus */
750 #endif /* defined __SpSharedRecoContext_FWD_DEFINED__ */
751 
752 #ifndef __SpInprocRecognizer_FWD_DEFINED__
753 #define __SpInprocRecognizer_FWD_DEFINED__
754 #ifdef __cplusplus
755 typedef class SpInprocRecognizer SpInprocRecognizer;
756 #else
757 typedef struct SpInprocRecognizer SpInprocRecognizer;
758 #endif /* defined __cplusplus */
759 #endif /* defined __SpInprocRecognizer_FWD_DEFINED__ */
760 
761 #ifndef __SpSharedRecognizer_FWD_DEFINED__
762 #define __SpSharedRecognizer_FWD_DEFINED__
763 #ifdef __cplusplus
764 typedef class SpSharedRecognizer SpSharedRecognizer;
765 #else
766 typedef struct SpSharedRecognizer SpSharedRecognizer;
767 #endif /* defined __cplusplus */
768 #endif /* defined __SpSharedRecognizer_FWD_DEFINED__ */
769 
770 #ifndef __SpLexicon_FWD_DEFINED__
771 #define __SpLexicon_FWD_DEFINED__
772 #ifdef __cplusplus
773 typedef class SpLexicon SpLexicon;
774 #else
775 typedef struct SpLexicon SpLexicon;
776 #endif /* defined __cplusplus */
777 #endif /* defined __SpLexicon_FWD_DEFINED__ */
778 
779 #ifndef __SpUnCompressedLexicon_FWD_DEFINED__
780 #define __SpUnCompressedLexicon_FWD_DEFINED__
781 #ifdef __cplusplus
782 typedef class SpUnCompressedLexicon SpUnCompressedLexicon;
783 #else
784 typedef struct SpUnCompressedLexicon SpUnCompressedLexicon;
785 #endif /* defined __cplusplus */
786 #endif /* defined __SpUnCompressedLexicon_FWD_DEFINED__ */
787 
788 #ifndef __SpCompressedLexicon_FWD_DEFINED__
789 #define __SpCompressedLexicon_FWD_DEFINED__
790 #ifdef __cplusplus
791 typedef class SpCompressedLexicon SpCompressedLexicon;
792 #else
793 typedef struct SpCompressedLexicon SpCompressedLexicon;
794 #endif /* defined __cplusplus */
795 #endif /* defined __SpCompressedLexicon_FWD_DEFINED__ */
796 
797 #ifndef __SpPhoneConverter_FWD_DEFINED__
798 #define __SpPhoneConverter_FWD_DEFINED__
799 #ifdef __cplusplus
800 typedef class SpPhoneConverter SpPhoneConverter;
801 #else
802 typedef struct SpPhoneConverter SpPhoneConverter;
803 #endif /* defined __cplusplus */
804 #endif /* defined __SpPhoneConverter_FWD_DEFINED__ */
805 
806 #ifndef __SpNullPhoneConverter_FWD_DEFINED__
807 #define __SpNullPhoneConverter_FWD_DEFINED__
808 #ifdef __cplusplus
809 typedef class SpNullPhoneConverter SpNullPhoneConverter;
810 #else
811 typedef struct SpNullPhoneConverter SpNullPhoneConverter;
812 #endif /* defined __cplusplus */
813 #endif /* defined __SpNullPhoneConverter_FWD_DEFINED__ */
814 
815 #ifndef __SpTextSelectionInformation_FWD_DEFINED__
816 #define __SpTextSelectionInformation_FWD_DEFINED__
817 #ifdef __cplusplus
818 typedef class SpTextSelectionInformation SpTextSelectionInformation;
819 #else
820 typedef struct SpTextSelectionInformation SpTextSelectionInformation;
821 #endif /* defined __cplusplus */
822 #endif /* defined __SpTextSelectionInformation_FWD_DEFINED__ */
823 
824 #ifndef __SpPhraseInfoBuilder_FWD_DEFINED__
825 #define __SpPhraseInfoBuilder_FWD_DEFINED__
826 #ifdef __cplusplus
827 typedef class SpPhraseInfoBuilder SpPhraseInfoBuilder;
828 #else
829 typedef struct SpPhraseInfoBuilder SpPhraseInfoBuilder;
830 #endif /* defined __cplusplus */
831 #endif /* defined __SpPhraseInfoBuilder_FWD_DEFINED__ */
832 
833 #ifndef __SpAudioFormat_FWD_DEFINED__
834 #define __SpAudioFormat_FWD_DEFINED__
835 #ifdef __cplusplus
836 typedef class SpAudioFormat SpAudioFormat;
837 #else
838 typedef struct SpAudioFormat SpAudioFormat;
839 #endif /* defined __cplusplus */
840 #endif /* defined __SpAudioFormat_FWD_DEFINED__ */
841 
842 #ifndef __SpWaveFormatEx_FWD_DEFINED__
843 #define __SpWaveFormatEx_FWD_DEFINED__
844 #ifdef __cplusplus
845 typedef class SpWaveFormatEx SpWaveFormatEx;
846 #else
847 typedef struct SpWaveFormatEx SpWaveFormatEx;
848 #endif /* defined __cplusplus */
849 #endif /* defined __SpWaveFormatEx_FWD_DEFINED__ */
850 
851 #ifndef __SpInProcRecoContext_FWD_DEFINED__
852 #define __SpInProcRecoContext_FWD_DEFINED__
853 #ifdef __cplusplus
854 typedef class SpInProcRecoContext SpInProcRecoContext;
855 #else
856 typedef struct SpInProcRecoContext SpInProcRecoContext;
857 #endif /* defined __cplusplus */
858 #endif /* defined __SpInProcRecoContext_FWD_DEFINED__ */
859 
860 #ifndef __SpCustomStream_FWD_DEFINED__
861 #define __SpCustomStream_FWD_DEFINED__
862 #ifdef __cplusplus
863 typedef class SpCustomStream SpCustomStream;
864 #else
865 typedef struct SpCustomStream SpCustomStream;
866 #endif /* defined __cplusplus */
867 #endif /* defined __SpCustomStream_FWD_DEFINED__ */
868 
869 #ifndef __SpFileStream_FWD_DEFINED__
870 #define __SpFileStream_FWD_DEFINED__
871 #ifdef __cplusplus
872 typedef class SpFileStream SpFileStream;
873 #else
874 typedef struct SpFileStream SpFileStream;
875 #endif /* defined __cplusplus */
876 #endif /* defined __SpFileStream_FWD_DEFINED__ */
877 
878 #ifndef __SpMemoryStream_FWD_DEFINED__
879 #define __SpMemoryStream_FWD_DEFINED__
880 #ifdef __cplusplus
881 typedef class SpMemoryStream SpMemoryStream;
882 #else
883 typedef struct SpMemoryStream SpMemoryStream;
884 #endif /* defined __cplusplus */
885 #endif /* defined __SpMemoryStream_FWD_DEFINED__ */
886 
887 /* Headers for imported files */
888 
889 #include <oaidl.h>
890 #include <ocidl.h>
891 
892 #ifdef __cplusplus
893 extern "C" {
894 #endif
895 
896 #ifndef _SAPI_VER
897 #error "you have to include <sapi.h> header before this."
898 #endif
899 #if 0
900 typedef struct WAVEFORMATEX {
901     WORD wFormatTag;
902     WORD nChannels;
903     DWORD nSamplesPerSec;
904     DWORD nAvgBytesPerSec;
905     WORD nBlockAlign;
906     WORD wBitsPerSample;
907     WORD cbSize;
908 } WAVEFORMATEX;
909 #endif
910 #ifndef __ISpNotifySource_FWD_DEFINED__
911 #define __ISpNotifySource_FWD_DEFINED__
912 typedef interface ISpNotifySource ISpNotifySource;
913 #ifdef __cplusplus
914 interface ISpNotifySource;
915 #endif /* __cplusplus */
916 #endif
917 
918 #ifndef __ISpNotifySink_FWD_DEFINED__
919 #define __ISpNotifySink_FWD_DEFINED__
920 typedef interface ISpNotifySink ISpNotifySink;
921 #ifdef __cplusplus
922 interface ISpNotifySink;
923 #endif /* __cplusplus */
924 #endif
925 
926 #ifndef __ISpNotifyTranslator_FWD_DEFINED__
927 #define __ISpNotifyTranslator_FWD_DEFINED__
928 typedef interface ISpNotifyTranslator ISpNotifyTranslator;
929 #ifdef __cplusplus
930 interface ISpNotifyTranslator;
931 #endif /* __cplusplus */
932 #endif
933 
934 #ifndef __ISpDataKey_FWD_DEFINED__
935 #define __ISpDataKey_FWD_DEFINED__
936 typedef interface ISpDataKey ISpDataKey;
937 #ifdef __cplusplus
938 interface ISpDataKey;
939 #endif /* __cplusplus */
940 #endif
941 
942 #ifndef __ISpObjectTokenCategory_FWD_DEFINED__
943 #define __ISpObjectTokenCategory_FWD_DEFINED__
944 typedef interface ISpObjectTokenCategory ISpObjectTokenCategory;
945 #ifdef __cplusplus
946 interface ISpObjectTokenCategory;
947 #endif /* __cplusplus */
948 #endif
949 
950 #ifndef __ISpObjectToken_FWD_DEFINED__
951 #define __ISpObjectToken_FWD_DEFINED__
952 typedef interface ISpObjectToken ISpObjectToken;
953 #ifdef __cplusplus
954 interface ISpObjectToken;
955 #endif /* __cplusplus */
956 #endif
957 
958 #ifndef __IEnumSpObjectTokens_FWD_DEFINED__
959 #define __IEnumSpObjectTokens_FWD_DEFINED__
960 typedef interface IEnumSpObjectTokens IEnumSpObjectTokens;
961 #ifdef __cplusplus
962 interface IEnumSpObjectTokens;
963 #endif /* __cplusplus */
964 #endif
965 
966 #ifndef __ISpObjectWithToken_FWD_DEFINED__
967 #define __ISpObjectWithToken_FWD_DEFINED__
968 typedef interface ISpObjectWithToken ISpObjectWithToken;
969 #ifdef __cplusplus
970 interface ISpObjectWithToken;
971 #endif /* __cplusplus */
972 #endif
973 
974 #ifndef __ISpResourceManager_FWD_DEFINED__
975 #define __ISpResourceManager_FWD_DEFINED__
976 typedef interface ISpResourceManager ISpResourceManager;
977 #ifdef __cplusplus
978 interface ISpResourceManager;
979 #endif /* __cplusplus */
980 #endif
981 
982 #ifndef __ISpEventSource_FWD_DEFINED__
983 #define __ISpEventSource_FWD_DEFINED__
984 typedef interface ISpEventSource ISpEventSource;
985 #ifdef __cplusplus
986 interface ISpEventSource;
987 #endif /* __cplusplus */
988 #endif
989 
990 #ifndef __ISpEventSink_FWD_DEFINED__
991 #define __ISpEventSink_FWD_DEFINED__
992 typedef interface ISpEventSink ISpEventSink;
993 #ifdef __cplusplus
994 interface ISpEventSink;
995 #endif /* __cplusplus */
996 #endif
997 
998 #ifndef __ISpStreamFormat_FWD_DEFINED__
999 #define __ISpStreamFormat_FWD_DEFINED__
1000 typedef interface ISpStreamFormat ISpStreamFormat;
1001 #ifdef __cplusplus
1002 interface ISpStreamFormat;
1003 #endif /* __cplusplus */
1004 #endif
1005 
1006 #ifndef __ISpStream_FWD_DEFINED__
1007 #define __ISpStream_FWD_DEFINED__
1008 typedef interface ISpStream ISpStream;
1009 #ifdef __cplusplus
1010 interface ISpStream;
1011 #endif /* __cplusplus */
1012 #endif
1013 
1014 #ifndef __ISpStreamFormatConverter_FWD_DEFINED__
1015 #define __ISpStreamFormatConverter_FWD_DEFINED__
1016 typedef interface ISpStreamFormatConverter ISpStreamFormatConverter;
1017 #ifdef __cplusplus
1018 interface ISpStreamFormatConverter;
1019 #endif /* __cplusplus */
1020 #endif
1021 
1022 #ifndef __ISpAudio_FWD_DEFINED__
1023 #define __ISpAudio_FWD_DEFINED__
1024 typedef interface ISpAudio ISpAudio;
1025 #ifdef __cplusplus
1026 interface ISpAudio;
1027 #endif /* __cplusplus */
1028 #endif
1029 
1030 #ifndef __ISpMMSysAudio_FWD_DEFINED__
1031 #define __ISpMMSysAudio_FWD_DEFINED__
1032 typedef interface ISpMMSysAudio ISpMMSysAudio;
1033 #ifdef __cplusplus
1034 interface ISpMMSysAudio;
1035 #endif /* __cplusplus */
1036 #endif
1037 
1038 #ifndef __ISpTranscript_FWD_DEFINED__
1039 #define __ISpTranscript_FWD_DEFINED__
1040 typedef interface ISpTranscript ISpTranscript;
1041 #ifdef __cplusplus
1042 interface ISpTranscript;
1043 #endif /* __cplusplus */
1044 #endif
1045 
1046 #ifndef __ISpVoice_FWD_DEFINED__
1047 #define __ISpVoice_FWD_DEFINED__
1048 typedef interface ISpVoice ISpVoice;
1049 #ifdef __cplusplus
1050 interface ISpVoice;
1051 #endif /* __cplusplus */
1052 #endif
1053 
1054 #ifndef __ISpRecoResult_FWD_DEFINED__
1055 #define __ISpRecoResult_FWD_DEFINED__
1056 typedef interface ISpRecoResult ISpRecoResult;
1057 #ifdef __cplusplus
1058 interface ISpRecoResult;
1059 #endif /* __cplusplus */
1060 #endif
1061 
1062 #ifndef __ISpRecoContext_FWD_DEFINED__
1063 #define __ISpRecoContext_FWD_DEFINED__
1064 typedef interface ISpRecoContext ISpRecoContext;
1065 #ifdef __cplusplus
1066 interface ISpRecoContext;
1067 #endif /* __cplusplus */
1068 #endif
1069 
1070 #ifndef __ISpRecognizer_FWD_DEFINED__
1071 #define __ISpRecognizer_FWD_DEFINED__
1072 typedef interface ISpRecognizer ISpRecognizer;
1073 #ifdef __cplusplus
1074 interface ISpRecognizer;
1075 #endif /* __cplusplus */
1076 #endif
1077 
1078 #ifndef __ISpProperties_FWD_DEFINED__
1079 #define __ISpProperties_FWD_DEFINED__
1080 typedef interface ISpProperties ISpProperties;
1081 #ifdef __cplusplus
1082 interface ISpProperties;
1083 #endif /* __cplusplus */
1084 #endif
1085 
1086 #ifndef __ISpLexicon_FWD_DEFINED__
1087 #define __ISpLexicon_FWD_DEFINED__
1088 typedef interface ISpLexicon ISpLexicon;
1089 #ifdef __cplusplus
1090 interface ISpLexicon;
1091 #endif /* __cplusplus */
1092 #endif
1093 
1094 #ifndef __ISpPhoneConverter_FWD_DEFINED__
1095 #define __ISpPhoneConverter_FWD_DEFINED__
1096 typedef interface ISpPhoneConverter ISpPhoneConverter;
1097 #ifdef __cplusplus
1098 interface ISpPhoneConverter;
1099 #endif /* __cplusplus */
1100 #endif
1101 
1102 #ifndef __ISpPhrase_FWD_DEFINED__
1103 #define __ISpPhrase_FWD_DEFINED__
1104 typedef interface ISpPhrase ISpPhrase;
1105 #ifdef __cplusplus
1106 interface ISpPhrase;
1107 #endif /* __cplusplus */
1108 #endif
1109 
1110 typedef enum SPDATAKEYLOCATION {
1111     SPDKL_DefaultLocation = 0,
1112     SPDKL_CurrentUser = 1,
1113     SPDKL_LocalMachine = 2,
1114     SPDKL_CurrentConfig = 5
1115 } SPDATAKEYLOCATION;
1116 typedef enum SPSTREAMFORMAT {
1117     SPSF_Default = -1,
1118     SPSF_NoAssignedFormat = 0,
1119     SPSF_Text = 1,
1120     SPSF_NonStandardFormat = 2,
1121     SPSF_ExtendedAudioFormat = 3,
1122     SPSF_8kHz8BitMono = 4,
1123     SPSF_8kHz8BitStereo = 5,
1124     SPSF_8kHz16BitMono = 6,
1125     SPSF_8kHz16BitStereo = 7,
1126     SPSF_11kHz8BitMono = 8,
1127     SPSF_11kHz8BitStereo = 9,
1128     SPSF_11kHz16BitMono = 10,
1129     SPSF_11kHz16BitStereo = 11,
1130     SPSF_12kHz8BitMono = 12,
1131     SPSF_12kHz8BitStereo = 13,
1132     SPSF_12kHz16BitMono = 14,
1133     SPSF_12kHz16BitStereo = 15,
1134     SPSF_16kHz8BitMono = 16,
1135     SPSF_16kHz8BitStereo = 17,
1136     SPSF_16kHz16BitMono = 18,
1137     SPSF_16kHz16BitStereo = 19,
1138     SPSF_22kHz8BitMono = 20,
1139     SPSF_22kHz8BitStereo = 21,
1140     SPSF_22kHz16BitMono = 22,
1141     SPSF_22kHz16BitStereo = 23,
1142     SPSF_24kHz8BitMono = 24,
1143     SPSF_24kHz8BitStereo = 25,
1144     SPSF_24kHz16BitMono = 26,
1145     SPSF_24kHz16BitStereo = 27,
1146     SPSF_32kHz8BitMono = 28,
1147     SPSF_32kHz8BitStereo = 29,
1148     SPSF_32kHz16BitMono = 30,
1149     SPSF_32kHz16BitStereo = 31,
1150     SPSF_44kHz8BitMono = 32,
1151     SPSF_44kHz8BitStereo = 33,
1152     SPSF_44kHz16BitMono = 34,
1153     SPSF_44kHz16BitStereo = 35,
1154     SPSF_48kHz8BitMono = 36,
1155     SPSF_48kHz8BitStereo = 37,
1156     SPSF_48kHz16BitMono = 38,
1157     SPSF_48kHz16BitStereo = 39,
1158     SPSF_TrueSpeech_8kHz1BitMono = 40,
1159     SPSF_CCITT_ALaw_8kHzMono = 41,
1160     SPSF_CCITT_ALaw_8kHzStereo = 42,
1161     SPSF_CCITT_ALaw_11kHzMono = 43,
1162     SPSF_CCITT_ALaw_11kHzStereo = 44,
1163     SPSF_CCITT_ALaw_22kHzMono = 45,
1164     SPSF_CCITT_ALaw_22kHzStereo = 46,
1165     SPSF_CCITT_ALaw_44kHzMono = 47,
1166     SPSF_CCITT_ALaw_44kHzStereo = 48,
1167     SPSF_CCITT_uLaw_8kHzMono = 49,
1168     SPSF_CCITT_uLaw_8kHzStereo = 50,
1169     SPSF_CCITT_uLaw_11kHzMono = 51,
1170     SPSF_CCITT_uLaw_11kHzStereo = 52,
1171     SPSF_CCITT_uLaw_22kHzMono = 53,
1172     SPSF_CCITT_uLaw_22kHzStereo = 54,
1173     SPSF_CCITT_uLaw_44kHzMono = 55,
1174     SPSF_CCITT_uLaw_44kHzStereo = 56,
1175     SPSF_ADPCM_8kHzMono = 57,
1176     SPSF_ADPCM_8kHzStereo = 58,
1177     SPSF_ADPCM_11kHzMono = 59,
1178     SPSF_ADPCM_11kHzStereo = 60,
1179     SPSF_ADPCM_22kHzMono = 61,
1180     SPSF_ADPCM_22kHzStereo = 62,
1181     SPSF_ADPCM_44kHzMono = 63,
1182     SPSF_ADPCM_44kHzStereo = 64,
1183     SPSF_GSM610_8kHzMono = 65,
1184     SPSF_GSM610_11kHzMono = 66,
1185     SPSF_GSM610_22kHzMono = 67,
1186     SPSF_GSM610_44kHzMono = 68,
1187     SPSF_NUM_FORMATS = 69
1188 } SPSTREAMFORMAT;
1189 typedef enum SPEVENTLPARAMTYPE {
1190     SPET_LPARAM_IS_UNDEFINED = 0,
1191     SPET_LPARAM_IS_TOKEN = 1,
1192     SPET_LPARAM_IS_OBJECT = 2,
1193     SPET_LPARAM_IS_POINTER = 3,
1194     SPET_LPARAM_IS_STRING = 4
1195 } SPEVENTLPARAMTYPE;
1196 typedef enum SPEVENTENUM {
1197     SPEI_UNDEFINED = 0,
1198     SPEI_START_INPUT_STREAM = 1,
1199     SPEI_END_INPUT_STREAM = 2,
1200     SPEI_VOICE_CHANGE = 3,
1201     SPEI_TTS_BOOKMARK = 4,
1202     SPEI_WORD_BOUNDARY = 5,
1203     SPEI_PHONEME = 6,
1204     SPEI_SENTENCE_BOUNDARY = 7,
1205     SPEI_VISEME = 8,
1206     SPEI_TTS_AUDIO_LEVEL = 9,
1207     SPEI_TTS_PRIVATE = 15,
1208     SPEI_MIN_TTS = 1,
1209     SPEI_MAX_TTS = 15,
1210     SPEI_END_SR_STREAM = 34,
1211     SPEI_SOUND_START = 35,
1212     SPEI_SOUND_END = 36,
1213     SPEI_PHRASE_START = 37,
1214     SPEI_RECOGNITION = 38,
1215     SPEI_HYPOTHESIS = 39,
1216     SPEI_SR_BOOKMARK = 40,
1217     SPEI_PROPERTY_NUM_CHANGE = 41,
1218     SPEI_PROPERTY_STRING_CHANGE = 42,
1219     SPEI_FALSE_RECOGNITION = 43,
1220     SPEI_INTERFERENCE = 44,
1221     SPEI_REQUEST_UI = 45,
1222     SPEI_RECO_STATE_CHANGE = 46,
1223     SPEI_ADAPTATION = 47,
1224     SPEI_START_SR_STREAM = 48,
1225     SPEI_RECO_OTHER_CONTEXT = 49,
1226     SPEI_SR_AUDIO_LEVEL = 50,
1227     SPEI_SR_PRIVATE = 52,
1228     SPEI_MIN_SR = 34,
1229     SPEI_MAX_SR = 52,
1230     SPEI_RESERVED1 = 30,
1231     SPEI_RESERVED2 = 33,
1232     SPEI_RESERVED3 = 63
1233 } SPEVENTENUM;
1234 typedef enum SPINTERFERENCE {
1235     SPINTERFERENCE_NONE = 0,
1236     SPINTERFERENCE_NOISE = 1,
1237     SPINTERFERENCE_NOSIGNAL = 2,
1238     SPINTERFERENCE_TOOLOUD = 3,
1239     SPINTERFERENCE_TOOQUIET = 4,
1240     SPINTERFERENCE_TOOFAST = 5,
1241     SPINTERFERENCE_TOOSLOW = 6,
1242     SPINTERFERENCE_LATENCY_WARNING = 7,
1243     SPINTERFERENCE_LATENCY_TRUNCATE_BEGIN = 8,
1244     SPINTERFERENCE_LATENCY_TRUNCATE_END = 9
1245 } SPINTERFERENCE;
1246 typedef enum SPENDSRSTREAMFLAGS {
1247     SPESF_NONE = 0,
1248     SPESF_STREAM_RELEASED = 1
1249 } SPENDSRSTREAMFLAGS;
1250 typedef enum SPVFEATURE {
1251     SPVFEATURE_STRESSED = 1,
1252     SPVFEATURE_EMPHASIS = 2
1253 } SPVFEATURE;
1254 typedef enum SPVISEMES {
1255     SP_VISEME_0 = 0,
1256     SP_VISEME_1 = 1,
1257     SP_VISEME_2 = 2,
1258     SP_VISEME_3 = 3,
1259     SP_VISEME_4 = 4,
1260     SP_VISEME_5 = 5,
1261     SP_VISEME_6 = 6,
1262     SP_VISEME_7 = 7,
1263     SP_VISEME_8 = 8,
1264     SP_VISEME_9 = 9,
1265     SP_VISEME_10 = 10,
1266     SP_VISEME_11 = 11,
1267     SP_VISEME_12 = 12,
1268     SP_VISEME_13 = 13,
1269     SP_VISEME_14 = 14,
1270     SP_VISEME_15 = 15,
1271     SP_VISEME_16 = 16,
1272     SP_VISEME_17 = 17,
1273     SP_VISEME_18 = 18,
1274     SP_VISEME_19 = 19,
1275     SP_VISEME_20 = 20,
1276     SP_VISEME_21 = 21
1277 } SPVISEMES;
1278 typedef enum SPFILEMODE {
1279     SPFM_OPEN_READONLY = 0,
1280     SPFM_OPEN_READWRITE = 1,
1281     SPFM_CREATE = 2,
1282     SPFM_CREATE_ALWAYS = 3,
1283     SPFM_NUM_MODES = 4
1284 } SPFILEMODE;
1285 typedef enum _SPAUDIOSTATE {
1286     SPAS_CLOSED = 0,
1287     SPAS_STOP = 1,
1288     SPAS_PAUSE = 2,
1289     SPAS_RUN = 3
1290 } SPAUDIOSTATE;
1291 typedef enum SPDISPLYATTRIBUTES {
1292     SPAF_ONE_TRAILING_SPACE = 0x2,
1293     SPAF_TWO_TRAILING_SPACES = 0x4,
1294     SPAF_CONSUME_LEADING_SPACES = 0x8,
1295     SPAF_ALL = 0xf
1296 } SPDISPLAYATTRIBUTES;
1297 typedef enum SPPHRASEPROPERTYUNIONTYPE {
1298     SPPPUT_UNUSED = 0,
1299     SPPPUT_ARRAY_INDEX = 1
1300 } SPPHRASEPROPERTYUNIONTYPE;
1301 typedef enum SPRECOEVENTFLAGS {
1302     SPREF_AutoPause = 0x1,
1303     SPREF_Emulated = 0x2
1304 } SPRECOEVENTFLAGS;
1305 typedef enum SPPARTOFSPEECH {
1306     SPPS_NotOverriden = -1,
1307     SPPS_Unknown = 0,
1308     SPPS_Noun = 0x1000,
1309     SPPS_Verb = 0x2000,
1310     SPPS_Modifier = 0x3000,
1311     SPPS_Function = 0x4000,
1312     SPPS_Interjection = 0x5000
1313 } SPPARTOFSPEECH;
1314 typedef enum SPLEXICONTYPE {
1315     eLEXTYPE_USER = 0x1,
1316     eLEXTYPE_APP = 0x2,
1317     eLEXTYPE_VENDORLEXICON = 0x4,
1318     eLEXTYPE_LETTERTOSOUND = 0x8,
1319     eLEXTYPE_MORPHOLOGY = 0x10,
1320     eLEXTYPE_RESERVED4 = 0x20,
1321     eLEXTYPE_USER_SHORTCUT = 0x40,
1322     eLEXTYPE_RESERVED6 = 0x80,
1323     eLEXTYPE_RESERVED7 = 0x100,
1324     eLEXTYPE_RESERVED8 = 0x200,
1325     eLEXTYPE_RESERVED9 = 0x400,
1326     eLEXTYPE_RESERVED10 = 0x800,
1327     eLEXTYPE_PRIVATE1 = 0x1000,
1328     eLEXTYPE_PRIVATE2 = 0x2000,
1329     eLEXTYPE_PRIVATE3 = 0x4000,
1330     eLEXTYPE_PRIVATE4 = 0x8000,
1331     eLEXTYPE_PRIVATE5 = 0x10000,
1332     eLEXTYPE_PRIVATE6 = 0x20000,
1333     eLEXTYPE_PRIVATE7 = 0x40000,
1334     eLEXTYPE_PRIVATE8 = 0x80000,
1335     eLEXTYPE_PRIVATE9 = 0x100000,
1336     eLEXTYPE_PRIVATE10 = 0x200000,
1337     eLEXTYPE_PRIVATE11 = 0x400000,
1338     eLEXTYPE_PRIVATE12 = 0x800000,
1339     eLEXTYPE_PRIVATE13 = 0x1000000,
1340     eLEXTYPE_PRIVATE14 = 0x2000000,
1341     eLEXTYPE_PRIVATE15 = 0x4000000,
1342     eLEXTYPE_PRIVATE16 = 0x8000000,
1343     eLEXTYPE_PRIVATE17 = 0x10000000,
1344     eLEXTYPE_PRIVATE18 = 0x20000000,
1345     eLEXTYPE_PRIVATE19 = 0x40000000,
1346     eLEXTYPE_PRIVATE20 = 0x80000000
1347 } SPLEXICONTYPE;
1348 typedef enum SPWORDTYPE {
1349     eWORDTYPE_ADDED = 1,
1350     eWORDTYPE_DELETED = 2
1351 } SPWORDTYPE;
1352 typedef enum SPVALUETYPE {
1353     SPDF_PROPERTY = 0x1,
1354     SPDF_REPLACEMENT = 0x2,
1355     SPDF_RULE = 0x4,
1356     SPDF_DISPLAYTEXT = 0x8,
1357     SPDF_LEXICALFORM = 0x10,
1358     SPDF_PRONUNCIATION = 0x20,
1359     SPDF_AUDIO = 0x40,
1360     SPDF_ALTERNATES = 0x80,
1361     SPDF_ALL = 0xff
1362 } SPVALUETYPE;
1363 typedef enum SPPHRASERNG {
1364     SPPR_ALL_ELEMENTS = -1
1365 } SPPHRASERNG;
1366 typedef enum SPVACTIONS {
1367     SPVA_Speak = 0,
1368     SPVA_Silence = 1,
1369     SPVA_Pronounce = 2,
1370     SPVA_Bookmark = 3,
1371     SPVA_SpellOut = 4,
1372     SPVA_Section = 5,
1373     SPVA_ParseUnknownTag = 6
1374 } SPVACTIONS;
1375 typedef enum SPRUNSTATE {
1376     SPRS_DONE = 1,
1377     SPRS_IS_SPEAKING = 2
1378 } SPRUNSTATE;
1379 typedef enum SPVLIMITS {
1380     SPMIN_VOLUME = 0,
1381     SPMAX_VOLUME = 100,
1382     SPMIN_RATE = -10,
1383     SPMAX_RATE = 10
1384 } SPVLIMITS;
1385 typedef enum SPVPRIORITY {
1386     SPVPRI_NORMAL = 0,
1387     SPVPRI_ALERT = 1,
1388     SPVPRI_OVER = 2
1389 } SPVPRIORITY;
1390 EXTERN_C const GUID SPDFID_Text;
1391 EXTERN_C const GUID SPDFID_WaveFormatEx;
1392 
1393 #define SP_LOW_CONFIDENCE (-1)
1394 
1395 #define SP_NORMAL_CONFIDENCE (0)
1396 
1397 #define SP_HIGH_CONFIDENCE (+1)
1398 
1399 #define DEFAULT_WEIGHT (1)
1400 
1401 #define SP_MAX_WORD_LENGTH (128)
1402 
1403 #define SP_MAX_PRON_LENGTH (384)
1404 
1405 
1406 #ifdef __cplusplus
1407 interface ISpNotifyCallback {
1408   virtual HRESULT STDMETHODCALLTYPE NotifyCallback(WPARAM wParam, LPARAM lParam) = 0;
1409 };
1410 #else
1411 typedef void *ISpNotifyCallback;
1412 #endif
1413 #if 0
1414 typedef void *SPNOTIFYCALLBACK;
1415 #else
1416 typedef void __stdcall SPNOTIFYCALLBACK(WPARAM wParam, LPARAM lParam);
1417 #endif
1418 /*****************************************************************************
1419  * ISpNotifySource interface
1420  */
1421 #ifndef __ISpNotifySource_INTERFACE_DEFINED__
1422 #define __ISpNotifySource_INTERFACE_DEFINED__
1423 
1424 DEFINE_GUID(IID_ISpNotifySource, 0x5eff4aef, 0x8487, 0x11d2, 0x96,0x1c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
1425 #if defined(__cplusplus) && !defined(CINTERFACE)
1426 MIDL_INTERFACE("5eff4aef-8487-11d2-961c-00c04f8ee628")
1427 ISpNotifySource : public IUnknown
1428 {
1429     virtual HRESULT STDMETHODCALLTYPE SetNotifySink(
1430         ISpNotifySink *pNotifySink) = 0;
1431 
1432     virtual HRESULT STDMETHODCALLTYPE SetNotifyWindowMessage(
1433         HWND hWnd,
1434         UINT Msg,
1435         WPARAM wParam,
1436         LPARAM lParam) = 0;
1437 
1438     virtual HRESULT STDMETHODCALLTYPE SetNotifyCallbackFunction(
1439         SPNOTIFYCALLBACK *pfnCallback,
1440         WPARAM wParam,
1441         LPARAM lParam) = 0;
1442 
1443     virtual HRESULT STDMETHODCALLTYPE SetNotifyCallbackInterface(
1444         ISpNotifyCallback *pSpCallback,
1445         WPARAM wParam,
1446         LPARAM lParam) = 0;
1447 
1448     virtual HRESULT STDMETHODCALLTYPE SetNotifyWin32Event(
1449         ) = 0;
1450 
1451     virtual HRESULT STDMETHODCALLTYPE WaitForNotifyEvent(
1452         DWORD dwMilliseconds) = 0;
1453 
1454     virtual HANDLE STDMETHODCALLTYPE GetNotifyEventHandle(
1455         ) = 0;
1456 
1457 };
1458 #ifdef __CRT_UUID_DECL
1459 __CRT_UUID_DECL(ISpNotifySource, 0x5eff4aef, 0x8487, 0x11d2, 0x96,0x1c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
1460 #endif
1461 #else
1462 typedef struct ISpNotifySourceVtbl {
1463     BEGIN_INTERFACE
1464 
1465     /*** IUnknown methods ***/
1466     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1467         ISpNotifySource *This,
1468         REFIID riid,
1469         void **ppvObject);
1470 
1471     ULONG (STDMETHODCALLTYPE *AddRef)(
1472         ISpNotifySource *This);
1473 
1474     ULONG (STDMETHODCALLTYPE *Release)(
1475         ISpNotifySource *This);
1476 
1477     /*** ISpNotifySource methods ***/
1478     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
1479         ISpNotifySource *This,
1480         ISpNotifySink *pNotifySink);
1481 
1482     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
1483         ISpNotifySource *This,
1484         HWND hWnd,
1485         UINT Msg,
1486         WPARAM wParam,
1487         LPARAM lParam);
1488 
1489     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
1490         ISpNotifySource *This,
1491         SPNOTIFYCALLBACK *pfnCallback,
1492         WPARAM wParam,
1493         LPARAM lParam);
1494 
1495     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
1496         ISpNotifySource *This,
1497         ISpNotifyCallback *pSpCallback,
1498         WPARAM wParam,
1499         LPARAM lParam);
1500 
1501     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
1502         ISpNotifySource *This);
1503 
1504     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
1505         ISpNotifySource *This,
1506         DWORD dwMilliseconds);
1507 
1508     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
1509         ISpNotifySource *This);
1510 
1511     END_INTERFACE
1512 } ISpNotifySourceVtbl;
1513 
1514 interface ISpNotifySource {
1515     CONST_VTBL ISpNotifySourceVtbl* lpVtbl;
1516 };
1517 
1518 #ifdef COBJMACROS
1519 #ifndef WIDL_C_INLINE_WRAPPERS
1520 /*** IUnknown methods ***/
1521 #define ISpNotifySource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1522 #define ISpNotifySource_AddRef(This) (This)->lpVtbl->AddRef(This)
1523 #define ISpNotifySource_Release(This) (This)->lpVtbl->Release(This)
1524 /*** ISpNotifySource methods ***/
1525 #define ISpNotifySource_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
1526 #define ISpNotifySource_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
1527 #define ISpNotifySource_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
1528 #define ISpNotifySource_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
1529 #define ISpNotifySource_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
1530 #define ISpNotifySource_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
1531 #define ISpNotifySource_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
1532 #else
1533 /*** IUnknown methods ***/
1534 static FORCEINLINE HRESULT ISpNotifySource_QueryInterface(ISpNotifySource* This,REFIID riid,void **ppvObject) {
1535     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1536 }
1537 static FORCEINLINE ULONG ISpNotifySource_AddRef(ISpNotifySource* This) {
1538     return This->lpVtbl->AddRef(This);
1539 }
1540 static FORCEINLINE ULONG ISpNotifySource_Release(ISpNotifySource* This) {
1541     return This->lpVtbl->Release(This);
1542 }
1543 /*** ISpNotifySource methods ***/
1544 static FORCEINLINE HRESULT ISpNotifySource_SetNotifySink(ISpNotifySource* This,ISpNotifySink *pNotifySink) {
1545     return This->lpVtbl->SetNotifySink(This,pNotifySink);
1546 }
1547 static FORCEINLINE HRESULT ISpNotifySource_SetNotifyWindowMessage(ISpNotifySource* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
1548     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
1549 }
1550 static FORCEINLINE HRESULT ISpNotifySource_SetNotifyCallbackFunction(ISpNotifySource* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
1551     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
1552 }
1553 static FORCEINLINE HRESULT ISpNotifySource_SetNotifyCallbackInterface(ISpNotifySource* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
1554     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
1555 }
1556 static FORCEINLINE HRESULT ISpNotifySource_SetNotifyWin32Event(ISpNotifySource* This) {
1557     return This->lpVtbl->SetNotifyWin32Event(This);
1558 }
1559 static FORCEINLINE HRESULT ISpNotifySource_WaitForNotifyEvent(ISpNotifySource* This,DWORD dwMilliseconds) {
1560     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
1561 }
1562 static FORCEINLINE HANDLE ISpNotifySource_GetNotifyEventHandle(ISpNotifySource* This) {
1563     return This->lpVtbl->GetNotifyEventHandle(This);
1564 }
1565 #endif
1566 #endif
1567 
1568 #endif
1569 
1570 
1571 #endif  /* __ISpNotifySource_INTERFACE_DEFINED__ */
1572 
1573 /*****************************************************************************
1574  * ISpNotifySink interface
1575  */
1576 #ifndef __ISpNotifySink_INTERFACE_DEFINED__
1577 #define __ISpNotifySink_INTERFACE_DEFINED__
1578 
1579 DEFINE_GUID(IID_ISpNotifySink, 0x259684dc, 0x37c3, 0x11d2, 0x96,0x03, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
1580 #if defined(__cplusplus) && !defined(CINTERFACE)
1581 MIDL_INTERFACE("259684dc-37c3-11d2-9603-00c04f8ee628")
1582 ISpNotifySink : public IUnknown
1583 {
1584     virtual HRESULT STDMETHODCALLTYPE Notify(
1585         ) = 0;
1586 
1587 };
1588 #ifdef __CRT_UUID_DECL
1589 __CRT_UUID_DECL(ISpNotifySink, 0x259684dc, 0x37c3, 0x11d2, 0x96,0x03, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
1590 #endif
1591 #else
1592 typedef struct ISpNotifySinkVtbl {
1593     BEGIN_INTERFACE
1594 
1595     /*** IUnknown methods ***/
1596     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1597         ISpNotifySink *This,
1598         REFIID riid,
1599         void **ppvObject);
1600 
1601     ULONG (STDMETHODCALLTYPE *AddRef)(
1602         ISpNotifySink *This);
1603 
1604     ULONG (STDMETHODCALLTYPE *Release)(
1605         ISpNotifySink *This);
1606 
1607     /*** ISpNotifySink methods ***/
1608     HRESULT (STDMETHODCALLTYPE *Notify)(
1609         ISpNotifySink *This);
1610 
1611     END_INTERFACE
1612 } ISpNotifySinkVtbl;
1613 
1614 interface ISpNotifySink {
1615     CONST_VTBL ISpNotifySinkVtbl* lpVtbl;
1616 };
1617 
1618 #ifdef COBJMACROS
1619 #ifndef WIDL_C_INLINE_WRAPPERS
1620 /*** IUnknown methods ***/
1621 #define ISpNotifySink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1622 #define ISpNotifySink_AddRef(This) (This)->lpVtbl->AddRef(This)
1623 #define ISpNotifySink_Release(This) (This)->lpVtbl->Release(This)
1624 /*** ISpNotifySink methods ***/
1625 #define ISpNotifySink_Notify(This) (This)->lpVtbl->Notify(This)
1626 #else
1627 /*** IUnknown methods ***/
1628 static FORCEINLINE HRESULT ISpNotifySink_QueryInterface(ISpNotifySink* This,REFIID riid,void **ppvObject) {
1629     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1630 }
1631 static FORCEINLINE ULONG ISpNotifySink_AddRef(ISpNotifySink* This) {
1632     return This->lpVtbl->AddRef(This);
1633 }
1634 static FORCEINLINE ULONG ISpNotifySink_Release(ISpNotifySink* This) {
1635     return This->lpVtbl->Release(This);
1636 }
1637 /*** ISpNotifySink methods ***/
1638 static FORCEINLINE HRESULT ISpNotifySink_Notify(ISpNotifySink* This) {
1639     return This->lpVtbl->Notify(This);
1640 }
1641 #endif
1642 #endif
1643 
1644 #endif
1645 
1646 
1647 #endif  /* __ISpNotifySink_INTERFACE_DEFINED__ */
1648 
1649 /*****************************************************************************
1650  * ISpNotifyTranslator interface
1651  */
1652 #ifndef __ISpNotifyTranslator_INTERFACE_DEFINED__
1653 #define __ISpNotifyTranslator_INTERFACE_DEFINED__
1654 
1655 DEFINE_GUID(IID_ISpNotifyTranslator, 0xaca16614, 0x5d3d, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
1656 #if defined(__cplusplus) && !defined(CINTERFACE)
1657 MIDL_INTERFACE("aca16614-5d3d-11d2-960e-00c04f8ee628")
1658 ISpNotifyTranslator : public ISpNotifySink
1659 {
1660     virtual HRESULT STDMETHODCALLTYPE InitWindowMessage(
1661         HWND hWnd,
1662         UINT Msg,
1663         WPARAM wParam,
1664         LPARAM lParam) = 0;
1665 
1666     virtual HRESULT STDMETHODCALLTYPE InitCallback(
1667         SPNOTIFYCALLBACK *pfnCallback,
1668         WPARAM wParam,
1669         LPARAM lParam) = 0;
1670 
1671     virtual HRESULT STDMETHODCALLTYPE InitSpNotifyCallback(
1672         ISpNotifyCallback *pSpCallback,
1673         WPARAM wParam,
1674         LPARAM lParam) = 0;
1675 
1676     virtual HRESULT STDMETHODCALLTYPE InitWin32Event(
1677         HANDLE hEvent,
1678         WINBOOL fCloseHandleOnRelease) = 0;
1679 
1680     virtual HRESULT STDMETHODCALLTYPE Wait(
1681         DWORD dwMilliseconds) = 0;
1682 
1683     virtual HANDLE STDMETHODCALLTYPE GetEventHandle(
1684         ) = 0;
1685 
1686 };
1687 #ifdef __CRT_UUID_DECL
1688 __CRT_UUID_DECL(ISpNotifyTranslator, 0xaca16614, 0x5d3d, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
1689 #endif
1690 #else
1691 typedef struct ISpNotifyTranslatorVtbl {
1692     BEGIN_INTERFACE
1693 
1694     /*** IUnknown methods ***/
1695     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1696         ISpNotifyTranslator *This,
1697         REFIID riid,
1698         void **ppvObject);
1699 
1700     ULONG (STDMETHODCALLTYPE *AddRef)(
1701         ISpNotifyTranslator *This);
1702 
1703     ULONG (STDMETHODCALLTYPE *Release)(
1704         ISpNotifyTranslator *This);
1705 
1706     /*** ISpNotifySink methods ***/
1707     HRESULT (STDMETHODCALLTYPE *Notify)(
1708         ISpNotifyTranslator *This);
1709 
1710     /*** ISpNotifyTranslator methods ***/
1711     HRESULT (STDMETHODCALLTYPE *InitWindowMessage)(
1712         ISpNotifyTranslator *This,
1713         HWND hWnd,
1714         UINT Msg,
1715         WPARAM wParam,
1716         LPARAM lParam);
1717 
1718     HRESULT (STDMETHODCALLTYPE *InitCallback)(
1719         ISpNotifyTranslator *This,
1720         SPNOTIFYCALLBACK *pfnCallback,
1721         WPARAM wParam,
1722         LPARAM lParam);
1723 
1724     HRESULT (STDMETHODCALLTYPE *InitSpNotifyCallback)(
1725         ISpNotifyTranslator *This,
1726         ISpNotifyCallback *pSpCallback,
1727         WPARAM wParam,
1728         LPARAM lParam);
1729 
1730     HRESULT (STDMETHODCALLTYPE *InitWin32Event)(
1731         ISpNotifyTranslator *This,
1732         HANDLE hEvent,
1733         WINBOOL fCloseHandleOnRelease);
1734 
1735     HRESULT (STDMETHODCALLTYPE *Wait)(
1736         ISpNotifyTranslator *This,
1737         DWORD dwMilliseconds);
1738 
1739     HANDLE (STDMETHODCALLTYPE *GetEventHandle)(
1740         ISpNotifyTranslator *This);
1741 
1742     END_INTERFACE
1743 } ISpNotifyTranslatorVtbl;
1744 
1745 interface ISpNotifyTranslator {
1746     CONST_VTBL ISpNotifyTranslatorVtbl* lpVtbl;
1747 };
1748 
1749 #ifdef COBJMACROS
1750 #ifndef WIDL_C_INLINE_WRAPPERS
1751 /*** IUnknown methods ***/
1752 #define ISpNotifyTranslator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1753 #define ISpNotifyTranslator_AddRef(This) (This)->lpVtbl->AddRef(This)
1754 #define ISpNotifyTranslator_Release(This) (This)->lpVtbl->Release(This)
1755 /*** ISpNotifySink methods ***/
1756 #define ISpNotifyTranslator_Notify(This) (This)->lpVtbl->Notify(This)
1757 /*** ISpNotifyTranslator methods ***/
1758 #define ISpNotifyTranslator_InitWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->InitWindowMessage(This,hWnd,Msg,wParam,lParam)
1759 #define ISpNotifyTranslator_InitCallback(This,pfnCallback,wParam,lParam) (This)->lpVtbl->InitCallback(This,pfnCallback,wParam,lParam)
1760 #define ISpNotifyTranslator_InitSpNotifyCallback(This,pSpCallback,wParam,lParam) (This)->lpVtbl->InitSpNotifyCallback(This,pSpCallback,wParam,lParam)
1761 #define ISpNotifyTranslator_InitWin32Event(This,hEvent,fCloseHandleOnRelease) (This)->lpVtbl->InitWin32Event(This,hEvent,fCloseHandleOnRelease)
1762 #define ISpNotifyTranslator_Wait(This,dwMilliseconds) (This)->lpVtbl->Wait(This,dwMilliseconds)
1763 #define ISpNotifyTranslator_GetEventHandle(This) (This)->lpVtbl->GetEventHandle(This)
1764 #else
1765 /*** IUnknown methods ***/
1766 static FORCEINLINE HRESULT ISpNotifyTranslator_QueryInterface(ISpNotifyTranslator* This,REFIID riid,void **ppvObject) {
1767     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1768 }
1769 static FORCEINLINE ULONG ISpNotifyTranslator_AddRef(ISpNotifyTranslator* This) {
1770     return This->lpVtbl->AddRef(This);
1771 }
1772 static FORCEINLINE ULONG ISpNotifyTranslator_Release(ISpNotifyTranslator* This) {
1773     return This->lpVtbl->Release(This);
1774 }
1775 /*** ISpNotifySink methods ***/
1776 static FORCEINLINE HRESULT ISpNotifyTranslator_Notify(ISpNotifyTranslator* This) {
1777     return This->lpVtbl->Notify(This);
1778 }
1779 /*** ISpNotifyTranslator methods ***/
1780 static FORCEINLINE HRESULT ISpNotifyTranslator_InitWindowMessage(ISpNotifyTranslator* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
1781     return This->lpVtbl->InitWindowMessage(This,hWnd,Msg,wParam,lParam);
1782 }
1783 static FORCEINLINE HRESULT ISpNotifyTranslator_InitCallback(ISpNotifyTranslator* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
1784     return This->lpVtbl->InitCallback(This,pfnCallback,wParam,lParam);
1785 }
1786 static FORCEINLINE HRESULT ISpNotifyTranslator_InitSpNotifyCallback(ISpNotifyTranslator* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
1787     return This->lpVtbl->InitSpNotifyCallback(This,pSpCallback,wParam,lParam);
1788 }
1789 static FORCEINLINE HRESULT ISpNotifyTranslator_InitWin32Event(ISpNotifyTranslator* This,HANDLE hEvent,WINBOOL fCloseHandleOnRelease) {
1790     return This->lpVtbl->InitWin32Event(This,hEvent,fCloseHandleOnRelease);
1791 }
1792 static FORCEINLINE HRESULT ISpNotifyTranslator_Wait(ISpNotifyTranslator* This,DWORD dwMilliseconds) {
1793     return This->lpVtbl->Wait(This,dwMilliseconds);
1794 }
1795 static FORCEINLINE HANDLE ISpNotifyTranslator_GetEventHandle(ISpNotifyTranslator* This) {
1796     return This->lpVtbl->GetEventHandle(This);
1797 }
1798 #endif
1799 #endif
1800 
1801 #endif
1802 
1803 
1804 #endif  /* __ISpNotifyTranslator_INTERFACE_DEFINED__ */
1805 
1806 /*****************************************************************************
1807  * ISpDataKey interface
1808  */
1809 #ifndef __ISpDataKey_INTERFACE_DEFINED__
1810 #define __ISpDataKey_INTERFACE_DEFINED__
1811 
1812 DEFINE_GUID(IID_ISpDataKey, 0x14056581, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
1813 #if defined(__cplusplus) && !defined(CINTERFACE)
1814 MIDL_INTERFACE("14056581-e16c-11d2-bb90-00c04f8ee6c0")
1815 ISpDataKey : public IUnknown
1816 {
1817     virtual HRESULT STDMETHODCALLTYPE SetData(
1818         LPCWSTR pszValueName,
1819         ULONG cbData,
1820         const BYTE *pData) = 0;
1821 
1822     virtual HRESULT STDMETHODCALLTYPE GetData(
1823         LPCWSTR pszValueName,
1824         ULONG *pcbData,
1825         BYTE *pData) = 0;
1826 
1827     virtual HRESULT STDMETHODCALLTYPE SetStringValue(
1828         LPCWSTR pszValueName,
1829         LPCWSTR pszValue) = 0;
1830 
1831     virtual HRESULT STDMETHODCALLTYPE GetStringValue(
1832         LPCWSTR pszValueName,
1833         LPWSTR *ppszValue) = 0;
1834 
1835     virtual HRESULT STDMETHODCALLTYPE SetDWORD(
1836         LPCWSTR pszValueName,
1837         DWORD dwValue) = 0;
1838 
1839     virtual HRESULT STDMETHODCALLTYPE GetDWORD(
1840         LPCWSTR pszValueName,
1841         DWORD *pdwValue) = 0;
1842 
1843     virtual HRESULT STDMETHODCALLTYPE OpenKey(
1844         LPCWSTR pszSubKeyName,
1845         ISpDataKey **ppSubKey) = 0;
1846 
1847     virtual HRESULT STDMETHODCALLTYPE CreateKey(
1848         LPCWSTR pszSubKey,
1849         ISpDataKey **ppSubKey) = 0;
1850 
1851     virtual HRESULT STDMETHODCALLTYPE DeleteKey(
1852         LPCWSTR pszSubKey) = 0;
1853 
1854     virtual HRESULT STDMETHODCALLTYPE DeleteValue(
1855         LPCWSTR pszValueName) = 0;
1856 
1857     virtual HRESULT STDMETHODCALLTYPE EnumKeys(
1858         ULONG Index,
1859         LPWSTR *ppszSubKeyName) = 0;
1860 
1861     virtual HRESULT STDMETHODCALLTYPE EnumValues(
1862         ULONG Index,
1863         LPWSTR *ppszValueName) = 0;
1864 
1865 };
1866 #ifdef __CRT_UUID_DECL
1867 __CRT_UUID_DECL(ISpDataKey, 0x14056581, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
1868 #endif
1869 #else
1870 typedef struct ISpDataKeyVtbl {
1871     BEGIN_INTERFACE
1872 
1873     /*** IUnknown methods ***/
1874     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1875         ISpDataKey *This,
1876         REFIID riid,
1877         void **ppvObject);
1878 
1879     ULONG (STDMETHODCALLTYPE *AddRef)(
1880         ISpDataKey *This);
1881 
1882     ULONG (STDMETHODCALLTYPE *Release)(
1883         ISpDataKey *This);
1884 
1885     /*** ISpDataKey methods ***/
1886     HRESULT (STDMETHODCALLTYPE *SetData)(
1887         ISpDataKey *This,
1888         LPCWSTR pszValueName,
1889         ULONG cbData,
1890         const BYTE *pData);
1891 
1892     HRESULT (STDMETHODCALLTYPE *GetData)(
1893         ISpDataKey *This,
1894         LPCWSTR pszValueName,
1895         ULONG *pcbData,
1896         BYTE *pData);
1897 
1898     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
1899         ISpDataKey *This,
1900         LPCWSTR pszValueName,
1901         LPCWSTR pszValue);
1902 
1903     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
1904         ISpDataKey *This,
1905         LPCWSTR pszValueName,
1906         LPWSTR *ppszValue);
1907 
1908     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
1909         ISpDataKey *This,
1910         LPCWSTR pszValueName,
1911         DWORD dwValue);
1912 
1913     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
1914         ISpDataKey *This,
1915         LPCWSTR pszValueName,
1916         DWORD *pdwValue);
1917 
1918     HRESULT (STDMETHODCALLTYPE *OpenKey)(
1919         ISpDataKey *This,
1920         LPCWSTR pszSubKeyName,
1921         ISpDataKey **ppSubKey);
1922 
1923     HRESULT (STDMETHODCALLTYPE *CreateKey)(
1924         ISpDataKey *This,
1925         LPCWSTR pszSubKey,
1926         ISpDataKey **ppSubKey);
1927 
1928     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
1929         ISpDataKey *This,
1930         LPCWSTR pszSubKey);
1931 
1932     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
1933         ISpDataKey *This,
1934         LPCWSTR pszValueName);
1935 
1936     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
1937         ISpDataKey *This,
1938         ULONG Index,
1939         LPWSTR *ppszSubKeyName);
1940 
1941     HRESULT (STDMETHODCALLTYPE *EnumValues)(
1942         ISpDataKey *This,
1943         ULONG Index,
1944         LPWSTR *ppszValueName);
1945 
1946     END_INTERFACE
1947 } ISpDataKeyVtbl;
1948 
1949 interface ISpDataKey {
1950     CONST_VTBL ISpDataKeyVtbl* lpVtbl;
1951 };
1952 
1953 #ifdef COBJMACROS
1954 #ifndef WIDL_C_INLINE_WRAPPERS
1955 /*** IUnknown methods ***/
1956 #define ISpDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1957 #define ISpDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
1958 #define ISpDataKey_Release(This) (This)->lpVtbl->Release(This)
1959 /*** ISpDataKey methods ***/
1960 #define ISpDataKey_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
1961 #define ISpDataKey_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
1962 #define ISpDataKey_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
1963 #define ISpDataKey_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
1964 #define ISpDataKey_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
1965 #define ISpDataKey_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
1966 #define ISpDataKey_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
1967 #define ISpDataKey_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
1968 #define ISpDataKey_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
1969 #define ISpDataKey_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
1970 #define ISpDataKey_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
1971 #define ISpDataKey_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
1972 #else
1973 /*** IUnknown methods ***/
1974 static FORCEINLINE HRESULT ISpDataKey_QueryInterface(ISpDataKey* This,REFIID riid,void **ppvObject) {
1975     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1976 }
1977 static FORCEINLINE ULONG ISpDataKey_AddRef(ISpDataKey* This) {
1978     return This->lpVtbl->AddRef(This);
1979 }
1980 static FORCEINLINE ULONG ISpDataKey_Release(ISpDataKey* This) {
1981     return This->lpVtbl->Release(This);
1982 }
1983 /*** ISpDataKey methods ***/
1984 static FORCEINLINE HRESULT ISpDataKey_SetData(ISpDataKey* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
1985     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
1986 }
1987 static FORCEINLINE HRESULT ISpDataKey_GetData(ISpDataKey* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
1988     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
1989 }
1990 static FORCEINLINE HRESULT ISpDataKey_SetStringValue(ISpDataKey* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
1991     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
1992 }
1993 static FORCEINLINE HRESULT ISpDataKey_GetStringValue(ISpDataKey* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
1994     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
1995 }
1996 static FORCEINLINE HRESULT ISpDataKey_SetDWORD(ISpDataKey* This,LPCWSTR pszValueName,DWORD dwValue) {
1997     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
1998 }
1999 static FORCEINLINE HRESULT ISpDataKey_GetDWORD(ISpDataKey* This,LPCWSTR pszValueName,DWORD *pdwValue) {
2000     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
2001 }
2002 static FORCEINLINE HRESULT ISpDataKey_OpenKey(ISpDataKey* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
2003     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
2004 }
2005 static FORCEINLINE HRESULT ISpDataKey_CreateKey(ISpDataKey* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
2006     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
2007 }
2008 static FORCEINLINE HRESULT ISpDataKey_DeleteKey(ISpDataKey* This,LPCWSTR pszSubKey) {
2009     return This->lpVtbl->DeleteKey(This,pszSubKey);
2010 }
2011 static FORCEINLINE HRESULT ISpDataKey_DeleteValue(ISpDataKey* This,LPCWSTR pszValueName) {
2012     return This->lpVtbl->DeleteValue(This,pszValueName);
2013 }
2014 static FORCEINLINE HRESULT ISpDataKey_EnumKeys(ISpDataKey* This,ULONG Index,LPWSTR *ppszSubKeyName) {
2015     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
2016 }
2017 static FORCEINLINE HRESULT ISpDataKey_EnumValues(ISpDataKey* This,ULONG Index,LPWSTR *ppszValueName) {
2018     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
2019 }
2020 #endif
2021 #endif
2022 
2023 #endif
2024 
2025 
2026 #endif  /* __ISpDataKey_INTERFACE_DEFINED__ */
2027 
2028 /*****************************************************************************
2029  * ISpObjectWithToken interface
2030  */
2031 #ifndef __ISpObjectWithToken_INTERFACE_DEFINED__
2032 #define __ISpObjectWithToken_INTERFACE_DEFINED__
2033 
2034 DEFINE_GUID(IID_ISpObjectWithToken, 0x5b559f40, 0xe952, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
2035 #if defined(__cplusplus) && !defined(CINTERFACE)
2036 MIDL_INTERFACE("5b559f40-e952-11d2-bb91-00c04f8ee6c0")
2037 ISpObjectWithToken : public IUnknown
2038 {
2039     virtual HRESULT STDMETHODCALLTYPE SetObjectToken(
2040         ISpObjectToken *pToken) = 0;
2041 
2042     virtual HRESULT STDMETHODCALLTYPE GetObjectToken(
2043         ISpObjectToken **ppToken) = 0;
2044 
2045 };
2046 #ifdef __CRT_UUID_DECL
2047 __CRT_UUID_DECL(ISpObjectWithToken, 0x5b559f40, 0xe952, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
2048 #endif
2049 #else
2050 typedef struct ISpObjectWithTokenVtbl {
2051     BEGIN_INTERFACE
2052 
2053     /*** IUnknown methods ***/
2054     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2055         ISpObjectWithToken *This,
2056         REFIID riid,
2057         void **ppvObject);
2058 
2059     ULONG (STDMETHODCALLTYPE *AddRef)(
2060         ISpObjectWithToken *This);
2061 
2062     ULONG (STDMETHODCALLTYPE *Release)(
2063         ISpObjectWithToken *This);
2064 
2065     /*** ISpObjectWithToken methods ***/
2066     HRESULT (STDMETHODCALLTYPE *SetObjectToken)(
2067         ISpObjectWithToken *This,
2068         ISpObjectToken *pToken);
2069 
2070     HRESULT (STDMETHODCALLTYPE *GetObjectToken)(
2071         ISpObjectWithToken *This,
2072         ISpObjectToken **ppToken);
2073 
2074     END_INTERFACE
2075 } ISpObjectWithTokenVtbl;
2076 
2077 interface ISpObjectWithToken {
2078     CONST_VTBL ISpObjectWithTokenVtbl* lpVtbl;
2079 };
2080 
2081 #ifdef COBJMACROS
2082 #ifndef WIDL_C_INLINE_WRAPPERS
2083 /*** IUnknown methods ***/
2084 #define ISpObjectWithToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2085 #define ISpObjectWithToken_AddRef(This) (This)->lpVtbl->AddRef(This)
2086 #define ISpObjectWithToken_Release(This) (This)->lpVtbl->Release(This)
2087 /*** ISpObjectWithToken methods ***/
2088 #define ISpObjectWithToken_SetObjectToken(This,pToken) (This)->lpVtbl->SetObjectToken(This,pToken)
2089 #define ISpObjectWithToken_GetObjectToken(This,ppToken) (This)->lpVtbl->GetObjectToken(This,ppToken)
2090 #else
2091 /*** IUnknown methods ***/
2092 static FORCEINLINE HRESULT ISpObjectWithToken_QueryInterface(ISpObjectWithToken* This,REFIID riid,void **ppvObject) {
2093     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2094 }
2095 static FORCEINLINE ULONG ISpObjectWithToken_AddRef(ISpObjectWithToken* This) {
2096     return This->lpVtbl->AddRef(This);
2097 }
2098 static FORCEINLINE ULONG ISpObjectWithToken_Release(ISpObjectWithToken* This) {
2099     return This->lpVtbl->Release(This);
2100 }
2101 /*** ISpObjectWithToken methods ***/
2102 static FORCEINLINE HRESULT ISpObjectWithToken_SetObjectToken(ISpObjectWithToken* This,ISpObjectToken *pToken) {
2103     return This->lpVtbl->SetObjectToken(This,pToken);
2104 }
2105 static FORCEINLINE HRESULT ISpObjectWithToken_GetObjectToken(ISpObjectWithToken* This,ISpObjectToken **ppToken) {
2106     return This->lpVtbl->GetObjectToken(This,ppToken);
2107 }
2108 #endif
2109 #endif
2110 
2111 #endif
2112 
2113 
2114 #endif  /* __ISpObjectWithToken_INTERFACE_DEFINED__ */
2115 
2116 /*****************************************************************************
2117  * IEnumSpObjectTokens interface
2118  */
2119 #ifndef __IEnumSpObjectTokens_INTERFACE_DEFINED__
2120 #define __IEnumSpObjectTokens_INTERFACE_DEFINED__
2121 
2122 DEFINE_GUID(IID_IEnumSpObjectTokens, 0x06b64f9e, 0x7fda, 0x11d2, 0xb4,0xf2, 0x00,0xc0,0x4f,0x79,0x73,0x96);
2123 #if defined(__cplusplus) && !defined(CINTERFACE)
2124 MIDL_INTERFACE("06b64f9e-7fda-11d2-b4f2-00c04f797396")
2125 IEnumSpObjectTokens : public IUnknown
2126 {
2127     virtual HRESULT STDMETHODCALLTYPE Next(
2128         ULONG celt,
2129         ISpObjectToken **pelt,
2130         ULONG *pceltFetched) = 0;
2131 
2132     virtual HRESULT STDMETHODCALLTYPE Skip(
2133         ULONG celt) = 0;
2134 
2135     virtual HRESULT STDMETHODCALLTYPE Reset(
2136         ) = 0;
2137 
2138     virtual HRESULT STDMETHODCALLTYPE Clone(
2139         IEnumSpObjectTokens **ppEnum) = 0;
2140 
2141     virtual HRESULT STDMETHODCALLTYPE Item(
2142         ULONG Index,
2143         ISpObjectToken **ppToken) = 0;
2144 
2145     virtual HRESULT STDMETHODCALLTYPE GetCount(
2146         ULONG *pCount) = 0;
2147 
2148 };
2149 #ifdef __CRT_UUID_DECL
2150 __CRT_UUID_DECL(IEnumSpObjectTokens, 0x06b64f9e, 0x7fda, 0x11d2, 0xb4,0xf2, 0x00,0xc0,0x4f,0x79,0x73,0x96)
2151 #endif
2152 #else
2153 typedef struct IEnumSpObjectTokensVtbl {
2154     BEGIN_INTERFACE
2155 
2156     /*** IUnknown methods ***/
2157     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2158         IEnumSpObjectTokens *This,
2159         REFIID riid,
2160         void **ppvObject);
2161 
2162     ULONG (STDMETHODCALLTYPE *AddRef)(
2163         IEnumSpObjectTokens *This);
2164 
2165     ULONG (STDMETHODCALLTYPE *Release)(
2166         IEnumSpObjectTokens *This);
2167 
2168     /*** IEnumSpObjectTokens methods ***/
2169     HRESULT (STDMETHODCALLTYPE *Next)(
2170         IEnumSpObjectTokens *This,
2171         ULONG celt,
2172         ISpObjectToken **pelt,
2173         ULONG *pceltFetched);
2174 
2175     HRESULT (STDMETHODCALLTYPE *Skip)(
2176         IEnumSpObjectTokens *This,
2177         ULONG celt);
2178 
2179     HRESULT (STDMETHODCALLTYPE *Reset)(
2180         IEnumSpObjectTokens *This);
2181 
2182     HRESULT (STDMETHODCALLTYPE *Clone)(
2183         IEnumSpObjectTokens *This,
2184         IEnumSpObjectTokens **ppEnum);
2185 
2186     HRESULT (STDMETHODCALLTYPE *Item)(
2187         IEnumSpObjectTokens *This,
2188         ULONG Index,
2189         ISpObjectToken **ppToken);
2190 
2191     HRESULT (STDMETHODCALLTYPE *GetCount)(
2192         IEnumSpObjectTokens *This,
2193         ULONG *pCount);
2194 
2195     END_INTERFACE
2196 } IEnumSpObjectTokensVtbl;
2197 
2198 interface IEnumSpObjectTokens {
2199     CONST_VTBL IEnumSpObjectTokensVtbl* lpVtbl;
2200 };
2201 
2202 #ifdef COBJMACROS
2203 #ifndef WIDL_C_INLINE_WRAPPERS
2204 /*** IUnknown methods ***/
2205 #define IEnumSpObjectTokens_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2206 #define IEnumSpObjectTokens_AddRef(This) (This)->lpVtbl->AddRef(This)
2207 #define IEnumSpObjectTokens_Release(This) (This)->lpVtbl->Release(This)
2208 /*** IEnumSpObjectTokens methods ***/
2209 #define IEnumSpObjectTokens_Next(This,celt,pelt,pceltFetched) (This)->lpVtbl->Next(This,celt,pelt,pceltFetched)
2210 #define IEnumSpObjectTokens_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
2211 #define IEnumSpObjectTokens_Reset(This) (This)->lpVtbl->Reset(This)
2212 #define IEnumSpObjectTokens_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
2213 #define IEnumSpObjectTokens_Item(This,Index,ppToken) (This)->lpVtbl->Item(This,Index,ppToken)
2214 #define IEnumSpObjectTokens_GetCount(This,pCount) (This)->lpVtbl->GetCount(This,pCount)
2215 #else
2216 /*** IUnknown methods ***/
2217 static FORCEINLINE HRESULT IEnumSpObjectTokens_QueryInterface(IEnumSpObjectTokens* This,REFIID riid,void **ppvObject) {
2218     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2219 }
2220 static FORCEINLINE ULONG IEnumSpObjectTokens_AddRef(IEnumSpObjectTokens* This) {
2221     return This->lpVtbl->AddRef(This);
2222 }
2223 static FORCEINLINE ULONG IEnumSpObjectTokens_Release(IEnumSpObjectTokens* This) {
2224     return This->lpVtbl->Release(This);
2225 }
2226 /*** IEnumSpObjectTokens methods ***/
2227 static FORCEINLINE HRESULT IEnumSpObjectTokens_Next(IEnumSpObjectTokens* This,ULONG celt,ISpObjectToken **pelt,ULONG *pceltFetched) {
2228     return This->lpVtbl->Next(This,celt,pelt,pceltFetched);
2229 }
2230 static FORCEINLINE HRESULT IEnumSpObjectTokens_Skip(IEnumSpObjectTokens* This,ULONG celt) {
2231     return This->lpVtbl->Skip(This,celt);
2232 }
2233 static FORCEINLINE HRESULT IEnumSpObjectTokens_Reset(IEnumSpObjectTokens* This) {
2234     return This->lpVtbl->Reset(This);
2235 }
2236 static FORCEINLINE HRESULT IEnumSpObjectTokens_Clone(IEnumSpObjectTokens* This,IEnumSpObjectTokens **ppEnum) {
2237     return This->lpVtbl->Clone(This,ppEnum);
2238 }
2239 static FORCEINLINE HRESULT IEnumSpObjectTokens_Item(IEnumSpObjectTokens* This,ULONG Index,ISpObjectToken **ppToken) {
2240     return This->lpVtbl->Item(This,Index,ppToken);
2241 }
2242 static FORCEINLINE HRESULT IEnumSpObjectTokens_GetCount(IEnumSpObjectTokens* This,ULONG *pCount) {
2243     return This->lpVtbl->GetCount(This,pCount);
2244 }
2245 #endif
2246 #endif
2247 
2248 #endif
2249 
2250 
2251 #endif  /* __IEnumSpObjectTokens_INTERFACE_DEFINED__ */
2252 
2253 /*****************************************************************************
2254  * ISpRegDataKey interface
2255  */
2256 #ifndef __ISpRegDataKey_INTERFACE_DEFINED__
2257 #define __ISpRegDataKey_INTERFACE_DEFINED__
2258 
2259 DEFINE_GUID(IID_ISpRegDataKey, 0x92a66e2b, 0xc830, 0x4149, 0x83,0xdf, 0x6f,0xc2,0xba,0x1e,0x7a,0x5b);
2260 #if defined(__cplusplus) && !defined(CINTERFACE)
2261 MIDL_INTERFACE("92a66e2b-c830-4149-83df-6fc2ba1e7a5b")
2262 ISpRegDataKey : public ISpDataKey
2263 {
2264     virtual HRESULT STDMETHODCALLTYPE SetKey(
2265         HKEY hkey,
2266         WINBOOL fReadOnly) = 0;
2267 
2268 };
2269 #ifdef __CRT_UUID_DECL
2270 __CRT_UUID_DECL(ISpRegDataKey, 0x92a66e2b, 0xc830, 0x4149, 0x83,0xdf, 0x6f,0xc2,0xba,0x1e,0x7a,0x5b)
2271 #endif
2272 #else
2273 typedef struct ISpRegDataKeyVtbl {
2274     BEGIN_INTERFACE
2275 
2276     /*** IUnknown methods ***/
2277     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2278         ISpRegDataKey *This,
2279         REFIID riid,
2280         void **ppvObject);
2281 
2282     ULONG (STDMETHODCALLTYPE *AddRef)(
2283         ISpRegDataKey *This);
2284 
2285     ULONG (STDMETHODCALLTYPE *Release)(
2286         ISpRegDataKey *This);
2287 
2288     /*** ISpDataKey methods ***/
2289     HRESULT (STDMETHODCALLTYPE *SetData)(
2290         ISpRegDataKey *This,
2291         LPCWSTR pszValueName,
2292         ULONG cbData,
2293         const BYTE *pData);
2294 
2295     HRESULT (STDMETHODCALLTYPE *GetData)(
2296         ISpRegDataKey *This,
2297         LPCWSTR pszValueName,
2298         ULONG *pcbData,
2299         BYTE *pData);
2300 
2301     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
2302         ISpRegDataKey *This,
2303         LPCWSTR pszValueName,
2304         LPCWSTR pszValue);
2305 
2306     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
2307         ISpRegDataKey *This,
2308         LPCWSTR pszValueName,
2309         LPWSTR *ppszValue);
2310 
2311     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
2312         ISpRegDataKey *This,
2313         LPCWSTR pszValueName,
2314         DWORD dwValue);
2315 
2316     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
2317         ISpRegDataKey *This,
2318         LPCWSTR pszValueName,
2319         DWORD *pdwValue);
2320 
2321     HRESULT (STDMETHODCALLTYPE *OpenKey)(
2322         ISpRegDataKey *This,
2323         LPCWSTR pszSubKeyName,
2324         ISpDataKey **ppSubKey);
2325 
2326     HRESULT (STDMETHODCALLTYPE *CreateKey)(
2327         ISpRegDataKey *This,
2328         LPCWSTR pszSubKey,
2329         ISpDataKey **ppSubKey);
2330 
2331     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
2332         ISpRegDataKey *This,
2333         LPCWSTR pszSubKey);
2334 
2335     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
2336         ISpRegDataKey *This,
2337         LPCWSTR pszValueName);
2338 
2339     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
2340         ISpRegDataKey *This,
2341         ULONG Index,
2342         LPWSTR *ppszSubKeyName);
2343 
2344     HRESULT (STDMETHODCALLTYPE *EnumValues)(
2345         ISpRegDataKey *This,
2346         ULONG Index,
2347         LPWSTR *ppszValueName);
2348 
2349     /*** ISpRegDataKey methods ***/
2350     HRESULT (STDMETHODCALLTYPE *SetKey)(
2351         ISpRegDataKey *This,
2352         HKEY hkey,
2353         WINBOOL fReadOnly);
2354 
2355     END_INTERFACE
2356 } ISpRegDataKeyVtbl;
2357 
2358 interface ISpRegDataKey {
2359     CONST_VTBL ISpRegDataKeyVtbl* lpVtbl;
2360 };
2361 
2362 #ifdef COBJMACROS
2363 #ifndef WIDL_C_INLINE_WRAPPERS
2364 /*** IUnknown methods ***/
2365 #define ISpRegDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2366 #define ISpRegDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
2367 #define ISpRegDataKey_Release(This) (This)->lpVtbl->Release(This)
2368 /*** ISpDataKey methods ***/
2369 #define ISpRegDataKey_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
2370 #define ISpRegDataKey_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
2371 #define ISpRegDataKey_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
2372 #define ISpRegDataKey_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
2373 #define ISpRegDataKey_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
2374 #define ISpRegDataKey_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
2375 #define ISpRegDataKey_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
2376 #define ISpRegDataKey_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
2377 #define ISpRegDataKey_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
2378 #define ISpRegDataKey_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
2379 #define ISpRegDataKey_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
2380 #define ISpRegDataKey_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
2381 /*** ISpRegDataKey methods ***/
2382 #define ISpRegDataKey_SetKey(This,hkey,fReadOnly) (This)->lpVtbl->SetKey(This,hkey,fReadOnly)
2383 #else
2384 /*** IUnknown methods ***/
2385 static FORCEINLINE HRESULT ISpRegDataKey_QueryInterface(ISpRegDataKey* This,REFIID riid,void **ppvObject) {
2386     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2387 }
2388 static FORCEINLINE ULONG ISpRegDataKey_AddRef(ISpRegDataKey* This) {
2389     return This->lpVtbl->AddRef(This);
2390 }
2391 static FORCEINLINE ULONG ISpRegDataKey_Release(ISpRegDataKey* This) {
2392     return This->lpVtbl->Release(This);
2393 }
2394 /*** ISpDataKey methods ***/
2395 static FORCEINLINE HRESULT ISpRegDataKey_SetData(ISpRegDataKey* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
2396     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
2397 }
2398 static FORCEINLINE HRESULT ISpRegDataKey_GetData(ISpRegDataKey* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
2399     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
2400 }
2401 static FORCEINLINE HRESULT ISpRegDataKey_SetStringValue(ISpRegDataKey* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
2402     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
2403 }
2404 static FORCEINLINE HRESULT ISpRegDataKey_GetStringValue(ISpRegDataKey* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
2405     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
2406 }
2407 static FORCEINLINE HRESULT ISpRegDataKey_SetDWORD(ISpRegDataKey* This,LPCWSTR pszValueName,DWORD dwValue) {
2408     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
2409 }
2410 static FORCEINLINE HRESULT ISpRegDataKey_GetDWORD(ISpRegDataKey* This,LPCWSTR pszValueName,DWORD *pdwValue) {
2411     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
2412 }
2413 static FORCEINLINE HRESULT ISpRegDataKey_OpenKey(ISpRegDataKey* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
2414     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
2415 }
2416 static FORCEINLINE HRESULT ISpRegDataKey_CreateKey(ISpRegDataKey* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
2417     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
2418 }
2419 static FORCEINLINE HRESULT ISpRegDataKey_DeleteKey(ISpRegDataKey* This,LPCWSTR pszSubKey) {
2420     return This->lpVtbl->DeleteKey(This,pszSubKey);
2421 }
2422 static FORCEINLINE HRESULT ISpRegDataKey_DeleteValue(ISpRegDataKey* This,LPCWSTR pszValueName) {
2423     return This->lpVtbl->DeleteValue(This,pszValueName);
2424 }
2425 static FORCEINLINE HRESULT ISpRegDataKey_EnumKeys(ISpRegDataKey* This,ULONG Index,LPWSTR *ppszSubKeyName) {
2426     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
2427 }
2428 static FORCEINLINE HRESULT ISpRegDataKey_EnumValues(ISpRegDataKey* This,ULONG Index,LPWSTR *ppszValueName) {
2429     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
2430 }
2431 /*** ISpRegDataKey methods ***/
2432 static FORCEINLINE HRESULT ISpRegDataKey_SetKey(ISpRegDataKey* This,HKEY hkey,WINBOOL fReadOnly) {
2433     return This->lpVtbl->SetKey(This,hkey,fReadOnly);
2434 }
2435 #endif
2436 #endif
2437 
2438 #endif
2439 
2440 
2441 #endif  /* __ISpRegDataKey_INTERFACE_DEFINED__ */
2442 
2443 /*****************************************************************************
2444  * ISpObjectTokenCategory interface
2445  */
2446 #ifndef __ISpObjectTokenCategory_INTERFACE_DEFINED__
2447 #define __ISpObjectTokenCategory_INTERFACE_DEFINED__
2448 
2449 DEFINE_GUID(IID_ISpObjectTokenCategory, 0x2d3d3845, 0x39af, 0x4850, 0xbb,0xf9, 0x40,0xb4,0x97,0x80,0x01,0x1d);
2450 #if defined(__cplusplus) && !defined(CINTERFACE)
2451 MIDL_INTERFACE("2d3d3845-39af-4850-bbf9-40b49780011d")
2452 ISpObjectTokenCategory : public ISpDataKey
2453 {
2454     virtual HRESULT STDMETHODCALLTYPE SetId(
2455         LPCWSTR pszCategoryId,
2456         WINBOOL fCreateIfNotExist) = 0;
2457 
2458     virtual HRESULT STDMETHODCALLTYPE GetId(
2459         LPWSTR *ppszCoMemCategoryId) = 0;
2460 
2461     virtual HRESULT STDMETHODCALLTYPE GetDataKey(
2462         SPDATAKEYLOCATION spdkl,
2463         ISpDataKey **ppDataKey) = 0;
2464 
2465     virtual HRESULT STDMETHODCALLTYPE EnumTokens(
2466         LPCWSTR pzsReqAttribs,
2467         LPCWSTR pszOptAttribs,
2468         IEnumSpObjectTokens **ppEnum) = 0;
2469 
2470     virtual HRESULT STDMETHODCALLTYPE SetDefaultTokenId(
2471         LPCWSTR pszTokenId) = 0;
2472 
2473     virtual HRESULT STDMETHODCALLTYPE GetDefaultTokenId(
2474         LPWSTR *ppszCoMemTokenId) = 0;
2475 
2476 };
2477 #ifdef __CRT_UUID_DECL
2478 __CRT_UUID_DECL(ISpObjectTokenCategory, 0x2d3d3845, 0x39af, 0x4850, 0xbb,0xf9, 0x40,0xb4,0x97,0x80,0x01,0x1d)
2479 #endif
2480 #else
2481 typedef struct ISpObjectTokenCategoryVtbl {
2482     BEGIN_INTERFACE
2483 
2484     /*** IUnknown methods ***/
2485     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2486         ISpObjectTokenCategory *This,
2487         REFIID riid,
2488         void **ppvObject);
2489 
2490     ULONG (STDMETHODCALLTYPE *AddRef)(
2491         ISpObjectTokenCategory *This);
2492 
2493     ULONG (STDMETHODCALLTYPE *Release)(
2494         ISpObjectTokenCategory *This);
2495 
2496     /*** ISpDataKey methods ***/
2497     HRESULT (STDMETHODCALLTYPE *SetData)(
2498         ISpObjectTokenCategory *This,
2499         LPCWSTR pszValueName,
2500         ULONG cbData,
2501         const BYTE *pData);
2502 
2503     HRESULT (STDMETHODCALLTYPE *GetData)(
2504         ISpObjectTokenCategory *This,
2505         LPCWSTR pszValueName,
2506         ULONG *pcbData,
2507         BYTE *pData);
2508 
2509     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
2510         ISpObjectTokenCategory *This,
2511         LPCWSTR pszValueName,
2512         LPCWSTR pszValue);
2513 
2514     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
2515         ISpObjectTokenCategory *This,
2516         LPCWSTR pszValueName,
2517         LPWSTR *ppszValue);
2518 
2519     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
2520         ISpObjectTokenCategory *This,
2521         LPCWSTR pszValueName,
2522         DWORD dwValue);
2523 
2524     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
2525         ISpObjectTokenCategory *This,
2526         LPCWSTR pszValueName,
2527         DWORD *pdwValue);
2528 
2529     HRESULT (STDMETHODCALLTYPE *OpenKey)(
2530         ISpObjectTokenCategory *This,
2531         LPCWSTR pszSubKeyName,
2532         ISpDataKey **ppSubKey);
2533 
2534     HRESULT (STDMETHODCALLTYPE *CreateKey)(
2535         ISpObjectTokenCategory *This,
2536         LPCWSTR pszSubKey,
2537         ISpDataKey **ppSubKey);
2538 
2539     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
2540         ISpObjectTokenCategory *This,
2541         LPCWSTR pszSubKey);
2542 
2543     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
2544         ISpObjectTokenCategory *This,
2545         LPCWSTR pszValueName);
2546 
2547     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
2548         ISpObjectTokenCategory *This,
2549         ULONG Index,
2550         LPWSTR *ppszSubKeyName);
2551 
2552     HRESULT (STDMETHODCALLTYPE *EnumValues)(
2553         ISpObjectTokenCategory *This,
2554         ULONG Index,
2555         LPWSTR *ppszValueName);
2556 
2557     /*** ISpObjectTokenCategory methods ***/
2558     HRESULT (STDMETHODCALLTYPE *SetId)(
2559         ISpObjectTokenCategory *This,
2560         LPCWSTR pszCategoryId,
2561         WINBOOL fCreateIfNotExist);
2562 
2563     HRESULT (STDMETHODCALLTYPE *GetId)(
2564         ISpObjectTokenCategory *This,
2565         LPWSTR *ppszCoMemCategoryId);
2566 
2567     HRESULT (STDMETHODCALLTYPE *GetDataKey)(
2568         ISpObjectTokenCategory *This,
2569         SPDATAKEYLOCATION spdkl,
2570         ISpDataKey **ppDataKey);
2571 
2572     HRESULT (STDMETHODCALLTYPE *EnumTokens)(
2573         ISpObjectTokenCategory *This,
2574         LPCWSTR pzsReqAttribs,
2575         LPCWSTR pszOptAttribs,
2576         IEnumSpObjectTokens **ppEnum);
2577 
2578     HRESULT (STDMETHODCALLTYPE *SetDefaultTokenId)(
2579         ISpObjectTokenCategory *This,
2580         LPCWSTR pszTokenId);
2581 
2582     HRESULT (STDMETHODCALLTYPE *GetDefaultTokenId)(
2583         ISpObjectTokenCategory *This,
2584         LPWSTR *ppszCoMemTokenId);
2585 
2586     END_INTERFACE
2587 } ISpObjectTokenCategoryVtbl;
2588 
2589 interface ISpObjectTokenCategory {
2590     CONST_VTBL ISpObjectTokenCategoryVtbl* lpVtbl;
2591 };
2592 
2593 #ifdef COBJMACROS
2594 #ifndef WIDL_C_INLINE_WRAPPERS
2595 /*** IUnknown methods ***/
2596 #define ISpObjectTokenCategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2597 #define ISpObjectTokenCategory_AddRef(This) (This)->lpVtbl->AddRef(This)
2598 #define ISpObjectTokenCategory_Release(This) (This)->lpVtbl->Release(This)
2599 /*** ISpDataKey methods ***/
2600 #define ISpObjectTokenCategory_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
2601 #define ISpObjectTokenCategory_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
2602 #define ISpObjectTokenCategory_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
2603 #define ISpObjectTokenCategory_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
2604 #define ISpObjectTokenCategory_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
2605 #define ISpObjectTokenCategory_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
2606 #define ISpObjectTokenCategory_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
2607 #define ISpObjectTokenCategory_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
2608 #define ISpObjectTokenCategory_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
2609 #define ISpObjectTokenCategory_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
2610 #define ISpObjectTokenCategory_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
2611 #define ISpObjectTokenCategory_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
2612 /*** ISpObjectTokenCategory methods ***/
2613 #define ISpObjectTokenCategory_SetId(This,pszCategoryId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,fCreateIfNotExist)
2614 #define ISpObjectTokenCategory_GetId(This,ppszCoMemCategoryId) (This)->lpVtbl->GetId(This,ppszCoMemCategoryId)
2615 #define ISpObjectTokenCategory_GetDataKey(This,spdkl,ppDataKey) (This)->lpVtbl->GetDataKey(This,spdkl,ppDataKey)
2616 #define ISpObjectTokenCategory_EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum) (This)->lpVtbl->EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum)
2617 #define ISpObjectTokenCategory_SetDefaultTokenId(This,pszTokenId) (This)->lpVtbl->SetDefaultTokenId(This,pszTokenId)
2618 #define ISpObjectTokenCategory_GetDefaultTokenId(This,ppszCoMemTokenId) (This)->lpVtbl->GetDefaultTokenId(This,ppszCoMemTokenId)
2619 #else
2620 /*** IUnknown methods ***/
2621 static FORCEINLINE HRESULT ISpObjectTokenCategory_QueryInterface(ISpObjectTokenCategory* This,REFIID riid,void **ppvObject) {
2622     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2623 }
2624 static FORCEINLINE ULONG ISpObjectTokenCategory_AddRef(ISpObjectTokenCategory* This) {
2625     return This->lpVtbl->AddRef(This);
2626 }
2627 static FORCEINLINE ULONG ISpObjectTokenCategory_Release(ISpObjectTokenCategory* This) {
2628     return This->lpVtbl->Release(This);
2629 }
2630 /*** ISpDataKey methods ***/
2631 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetData(ISpObjectTokenCategory* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
2632     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
2633 }
2634 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetData(ISpObjectTokenCategory* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
2635     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
2636 }
2637 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetStringValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
2638     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
2639 }
2640 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetStringValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
2641     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
2642 }
2643 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetDWORD(ISpObjectTokenCategory* This,LPCWSTR pszValueName,DWORD dwValue) {
2644     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
2645 }
2646 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetDWORD(ISpObjectTokenCategory* This,LPCWSTR pszValueName,DWORD *pdwValue) {
2647     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
2648 }
2649 static FORCEINLINE HRESULT ISpObjectTokenCategory_OpenKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
2650     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
2651 }
2652 static FORCEINLINE HRESULT ISpObjectTokenCategory_CreateKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
2653     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
2654 }
2655 static FORCEINLINE HRESULT ISpObjectTokenCategory_DeleteKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKey) {
2656     return This->lpVtbl->DeleteKey(This,pszSubKey);
2657 }
2658 static FORCEINLINE HRESULT ISpObjectTokenCategory_DeleteValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName) {
2659     return This->lpVtbl->DeleteValue(This,pszValueName);
2660 }
2661 static FORCEINLINE HRESULT ISpObjectTokenCategory_EnumKeys(ISpObjectTokenCategory* This,ULONG Index,LPWSTR *ppszSubKeyName) {
2662     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
2663 }
2664 static FORCEINLINE HRESULT ISpObjectTokenCategory_EnumValues(ISpObjectTokenCategory* This,ULONG Index,LPWSTR *ppszValueName) {
2665     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
2666 }
2667 /*** ISpObjectTokenCategory methods ***/
2668 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetId(ISpObjectTokenCategory* This,LPCWSTR pszCategoryId,WINBOOL fCreateIfNotExist) {
2669     return This->lpVtbl->SetId(This,pszCategoryId,fCreateIfNotExist);
2670 }
2671 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetId(ISpObjectTokenCategory* This,LPWSTR *ppszCoMemCategoryId) {
2672     return This->lpVtbl->GetId(This,ppszCoMemCategoryId);
2673 }
2674 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetDataKey(ISpObjectTokenCategory* This,SPDATAKEYLOCATION spdkl,ISpDataKey **ppDataKey) {
2675     return This->lpVtbl->GetDataKey(This,spdkl,ppDataKey);
2676 }
2677 static FORCEINLINE HRESULT ISpObjectTokenCategory_EnumTokens(ISpObjectTokenCategory* This,LPCWSTR pzsReqAttribs,LPCWSTR pszOptAttribs,IEnumSpObjectTokens **ppEnum) {
2678     return This->lpVtbl->EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum);
2679 }
2680 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetDefaultTokenId(ISpObjectTokenCategory* This,LPCWSTR pszTokenId) {
2681     return This->lpVtbl->SetDefaultTokenId(This,pszTokenId);
2682 }
2683 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetDefaultTokenId(ISpObjectTokenCategory* This,LPWSTR *ppszCoMemTokenId) {
2684     return This->lpVtbl->GetDefaultTokenId(This,ppszCoMemTokenId);
2685 }
2686 #endif
2687 #endif
2688 
2689 #endif
2690 
2691 
2692 #endif  /* __ISpObjectTokenCategory_INTERFACE_DEFINED__ */
2693 
2694 /*****************************************************************************
2695  * ISpObjectToken interface
2696  */
2697 #ifndef __ISpObjectToken_INTERFACE_DEFINED__
2698 #define __ISpObjectToken_INTERFACE_DEFINED__
2699 
2700 DEFINE_GUID(IID_ISpObjectToken, 0x14056589, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
2701 #if defined(__cplusplus) && !defined(CINTERFACE)
2702 MIDL_INTERFACE("14056589-e16c-11d2-bb90-00c04f8ee6c0")
2703 ISpObjectToken : public ISpDataKey
2704 {
2705     virtual HRESULT STDMETHODCALLTYPE SetId(
2706         LPCWSTR pszCategoryId,
2707         LPCWSTR pszTokenId,
2708         WINBOOL fCreateIfNotExist) = 0;
2709 
2710     virtual HRESULT STDMETHODCALLTYPE GetId(
2711         LPWSTR *ppszCoMemTokenId) = 0;
2712 
2713     virtual HRESULT STDMETHODCALLTYPE GetCategory(
2714         ISpObjectTokenCategory **ppTokenCategory) = 0;
2715 
2716     virtual HRESULT STDMETHODCALLTYPE CreateInstance(
2717         IUnknown *pUnkOuter,
2718         DWORD dwClsContext,
2719         REFIID riid,
2720         void **ppvObject) = 0;
2721 
2722     virtual HRESULT STDMETHODCALLTYPE GetStorageFileName(
2723         REFCLSID clsidCaller,
2724         LPCWSTR pszValueName,
2725         LPCWSTR pszFileNameSpecifier,
2726         ULONG nFolder,
2727         LPWSTR *ppszFilePath) = 0;
2728 
2729     virtual HRESULT STDMETHODCALLTYPE RemoveStorageFileName(
2730         REFCLSID clsidCaller,
2731         LPCWSTR pszKeyName,
2732         WINBOOL fDeleteFile) = 0;
2733 
2734     virtual HRESULT STDMETHODCALLTYPE Remove(
2735         const CLSID *pclsidCaller) = 0;
2736 
2737     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
2738         LPCWSTR pszTypeOfUI,
2739         void *pvExtraData,
2740         ULONG cbExtraData,
2741         IUnknown *punkObject,
2742         WINBOOL *pfSupported) = 0;
2743 
2744     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
2745         HWND hwndParent,
2746         LPCWSTR pszTitle,
2747         LPCWSTR pszTypeOfUI,
2748         void *pvExtraData,
2749         ULONG cbExtraData,
2750         IUnknown *punkObject) = 0;
2751 
2752     virtual HRESULT STDMETHODCALLTYPE MatchesAttributes(
2753         LPCWSTR pszAttributes,
2754         WINBOOL *pfMatches) = 0;
2755 
2756 };
2757 #ifdef __CRT_UUID_DECL
2758 __CRT_UUID_DECL(ISpObjectToken, 0x14056589, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
2759 #endif
2760 #else
2761 typedef struct ISpObjectTokenVtbl {
2762     BEGIN_INTERFACE
2763 
2764     /*** IUnknown methods ***/
2765     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2766         ISpObjectToken *This,
2767         REFIID riid,
2768         void **ppvObject);
2769 
2770     ULONG (STDMETHODCALLTYPE *AddRef)(
2771         ISpObjectToken *This);
2772 
2773     ULONG (STDMETHODCALLTYPE *Release)(
2774         ISpObjectToken *This);
2775 
2776     /*** ISpDataKey methods ***/
2777     HRESULT (STDMETHODCALLTYPE *SetData)(
2778         ISpObjectToken *This,
2779         LPCWSTR pszValueName,
2780         ULONG cbData,
2781         const BYTE *pData);
2782 
2783     HRESULT (STDMETHODCALLTYPE *GetData)(
2784         ISpObjectToken *This,
2785         LPCWSTR pszValueName,
2786         ULONG *pcbData,
2787         BYTE *pData);
2788 
2789     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
2790         ISpObjectToken *This,
2791         LPCWSTR pszValueName,
2792         LPCWSTR pszValue);
2793 
2794     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
2795         ISpObjectToken *This,
2796         LPCWSTR pszValueName,
2797         LPWSTR *ppszValue);
2798 
2799     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
2800         ISpObjectToken *This,
2801         LPCWSTR pszValueName,
2802         DWORD dwValue);
2803 
2804     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
2805         ISpObjectToken *This,
2806         LPCWSTR pszValueName,
2807         DWORD *pdwValue);
2808 
2809     HRESULT (STDMETHODCALLTYPE *OpenKey)(
2810         ISpObjectToken *This,
2811         LPCWSTR pszSubKeyName,
2812         ISpDataKey **ppSubKey);
2813 
2814     HRESULT (STDMETHODCALLTYPE *CreateKey)(
2815         ISpObjectToken *This,
2816         LPCWSTR pszSubKey,
2817         ISpDataKey **ppSubKey);
2818 
2819     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
2820         ISpObjectToken *This,
2821         LPCWSTR pszSubKey);
2822 
2823     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
2824         ISpObjectToken *This,
2825         LPCWSTR pszValueName);
2826 
2827     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
2828         ISpObjectToken *This,
2829         ULONG Index,
2830         LPWSTR *ppszSubKeyName);
2831 
2832     HRESULT (STDMETHODCALLTYPE *EnumValues)(
2833         ISpObjectToken *This,
2834         ULONG Index,
2835         LPWSTR *ppszValueName);
2836 
2837     /*** ISpObjectToken methods ***/
2838     HRESULT (STDMETHODCALLTYPE *SetId)(
2839         ISpObjectToken *This,
2840         LPCWSTR pszCategoryId,
2841         LPCWSTR pszTokenId,
2842         WINBOOL fCreateIfNotExist);
2843 
2844     HRESULT (STDMETHODCALLTYPE *GetId)(
2845         ISpObjectToken *This,
2846         LPWSTR *ppszCoMemTokenId);
2847 
2848     HRESULT (STDMETHODCALLTYPE *GetCategory)(
2849         ISpObjectToken *This,
2850         ISpObjectTokenCategory **ppTokenCategory);
2851 
2852     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
2853         ISpObjectToken *This,
2854         IUnknown *pUnkOuter,
2855         DWORD dwClsContext,
2856         REFIID riid,
2857         void **ppvObject);
2858 
2859     HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
2860         ISpObjectToken *This,
2861         REFCLSID clsidCaller,
2862         LPCWSTR pszValueName,
2863         LPCWSTR pszFileNameSpecifier,
2864         ULONG nFolder,
2865         LPWSTR *ppszFilePath);
2866 
2867     HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
2868         ISpObjectToken *This,
2869         REFCLSID clsidCaller,
2870         LPCWSTR pszKeyName,
2871         WINBOOL fDeleteFile);
2872 
2873     HRESULT (STDMETHODCALLTYPE *Remove)(
2874         ISpObjectToken *This,
2875         const CLSID *pclsidCaller);
2876 
2877     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
2878         ISpObjectToken *This,
2879         LPCWSTR pszTypeOfUI,
2880         void *pvExtraData,
2881         ULONG cbExtraData,
2882         IUnknown *punkObject,
2883         WINBOOL *pfSupported);
2884 
2885     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
2886         ISpObjectToken *This,
2887         HWND hwndParent,
2888         LPCWSTR pszTitle,
2889         LPCWSTR pszTypeOfUI,
2890         void *pvExtraData,
2891         ULONG cbExtraData,
2892         IUnknown *punkObject);
2893 
2894     HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
2895         ISpObjectToken *This,
2896         LPCWSTR pszAttributes,
2897         WINBOOL *pfMatches);
2898 
2899     END_INTERFACE
2900 } ISpObjectTokenVtbl;
2901 
2902 interface ISpObjectToken {
2903     CONST_VTBL ISpObjectTokenVtbl* lpVtbl;
2904 };
2905 
2906 #ifdef COBJMACROS
2907 #ifndef WIDL_C_INLINE_WRAPPERS
2908 /*** IUnknown methods ***/
2909 #define ISpObjectToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2910 #define ISpObjectToken_AddRef(This) (This)->lpVtbl->AddRef(This)
2911 #define ISpObjectToken_Release(This) (This)->lpVtbl->Release(This)
2912 /*** ISpDataKey methods ***/
2913 #define ISpObjectToken_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
2914 #define ISpObjectToken_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
2915 #define ISpObjectToken_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
2916 #define ISpObjectToken_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
2917 #define ISpObjectToken_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
2918 #define ISpObjectToken_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
2919 #define ISpObjectToken_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
2920 #define ISpObjectToken_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
2921 #define ISpObjectToken_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
2922 #define ISpObjectToken_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
2923 #define ISpObjectToken_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
2924 #define ISpObjectToken_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
2925 /*** ISpObjectToken methods ***/
2926 #define ISpObjectToken_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
2927 #define ISpObjectToken_GetId(This,ppszCoMemTokenId) (This)->lpVtbl->GetId(This,ppszCoMemTokenId)
2928 #define ISpObjectToken_GetCategory(This,ppTokenCategory) (This)->lpVtbl->GetCategory(This,ppTokenCategory)
2929 #define ISpObjectToken_CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
2930 #define ISpObjectToken_GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath) (This)->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
2931 #define ISpObjectToken_RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
2932 #define ISpObjectToken_Remove(This,pclsidCaller) (This)->lpVtbl->Remove(This,pclsidCaller)
2933 #define ISpObjectToken_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
2934 #define ISpObjectToken_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
2935 #define ISpObjectToken_MatchesAttributes(This,pszAttributes,pfMatches) (This)->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches)
2936 #else
2937 /*** IUnknown methods ***/
2938 static FORCEINLINE HRESULT ISpObjectToken_QueryInterface(ISpObjectToken* This,REFIID riid,void **ppvObject) {
2939     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2940 }
2941 static FORCEINLINE ULONG ISpObjectToken_AddRef(ISpObjectToken* This) {
2942     return This->lpVtbl->AddRef(This);
2943 }
2944 static FORCEINLINE ULONG ISpObjectToken_Release(ISpObjectToken* This) {
2945     return This->lpVtbl->Release(This);
2946 }
2947 /*** ISpDataKey methods ***/
2948 static FORCEINLINE HRESULT ISpObjectToken_SetData(ISpObjectToken* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
2949     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
2950 }
2951 static FORCEINLINE HRESULT ISpObjectToken_GetData(ISpObjectToken* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
2952     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
2953 }
2954 static FORCEINLINE HRESULT ISpObjectToken_SetStringValue(ISpObjectToken* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
2955     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
2956 }
2957 static FORCEINLINE HRESULT ISpObjectToken_GetStringValue(ISpObjectToken* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
2958     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
2959 }
2960 static FORCEINLINE HRESULT ISpObjectToken_SetDWORD(ISpObjectToken* This,LPCWSTR pszValueName,DWORD dwValue) {
2961     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
2962 }
2963 static FORCEINLINE HRESULT ISpObjectToken_GetDWORD(ISpObjectToken* This,LPCWSTR pszValueName,DWORD *pdwValue) {
2964     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
2965 }
2966 static FORCEINLINE HRESULT ISpObjectToken_OpenKey(ISpObjectToken* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
2967     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
2968 }
2969 static FORCEINLINE HRESULT ISpObjectToken_CreateKey(ISpObjectToken* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
2970     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
2971 }
2972 static FORCEINLINE HRESULT ISpObjectToken_DeleteKey(ISpObjectToken* This,LPCWSTR pszSubKey) {
2973     return This->lpVtbl->DeleteKey(This,pszSubKey);
2974 }
2975 static FORCEINLINE HRESULT ISpObjectToken_DeleteValue(ISpObjectToken* This,LPCWSTR pszValueName) {
2976     return This->lpVtbl->DeleteValue(This,pszValueName);
2977 }
2978 static FORCEINLINE HRESULT ISpObjectToken_EnumKeys(ISpObjectToken* This,ULONG Index,LPWSTR *ppszSubKeyName) {
2979     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
2980 }
2981 static FORCEINLINE HRESULT ISpObjectToken_EnumValues(ISpObjectToken* This,ULONG Index,LPWSTR *ppszValueName) {
2982     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
2983 }
2984 /*** ISpObjectToken methods ***/
2985 static FORCEINLINE HRESULT ISpObjectToken_SetId(ISpObjectToken* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,WINBOOL fCreateIfNotExist) {
2986     return This->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist);
2987 }
2988 static FORCEINLINE HRESULT ISpObjectToken_GetId(ISpObjectToken* This,LPWSTR *ppszCoMemTokenId) {
2989     return This->lpVtbl->GetId(This,ppszCoMemTokenId);
2990 }
2991 static FORCEINLINE HRESULT ISpObjectToken_GetCategory(ISpObjectToken* This,ISpObjectTokenCategory **ppTokenCategory) {
2992     return This->lpVtbl->GetCategory(This,ppTokenCategory);
2993 }
2994 static FORCEINLINE HRESULT ISpObjectToken_CreateInstance(ISpObjectToken* This,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,void **ppvObject) {
2995     return This->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject);
2996 }
2997 static FORCEINLINE HRESULT ISpObjectToken_GetStorageFileName(ISpObjectToken* This,REFCLSID clsidCaller,LPCWSTR pszValueName,LPCWSTR pszFileNameSpecifier,ULONG nFolder,LPWSTR *ppszFilePath) {
2998     return This->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath);
2999 }
3000 static FORCEINLINE HRESULT ISpObjectToken_RemoveStorageFileName(ISpObjectToken* This,REFCLSID clsidCaller,LPCWSTR pszKeyName,WINBOOL fDeleteFile) {
3001     return This->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile);
3002 }
3003 static FORCEINLINE HRESULT ISpObjectToken_Remove(ISpObjectToken* This,const CLSID *pclsidCaller) {
3004     return This->lpVtbl->Remove(This,pclsidCaller);
3005 }
3006 static FORCEINLINE HRESULT ISpObjectToken_IsUISupported(ISpObjectToken* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject,WINBOOL *pfSupported) {
3007     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported);
3008 }
3009 static FORCEINLINE HRESULT ISpObjectToken_DisplayUI(ISpObjectToken* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject) {
3010     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject);
3011 }
3012 static FORCEINLINE HRESULT ISpObjectToken_MatchesAttributes(ISpObjectToken* This,LPCWSTR pszAttributes,WINBOOL *pfMatches) {
3013     return This->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches);
3014 }
3015 #endif
3016 #endif
3017 
3018 #endif
3019 
3020 
3021 #endif  /* __ISpObjectToken_INTERFACE_DEFINED__ */
3022 
3023 /*****************************************************************************
3024  * ISpObjectTokenInit interface
3025  */
3026 #ifndef __ISpObjectTokenInit_INTERFACE_DEFINED__
3027 #define __ISpObjectTokenInit_INTERFACE_DEFINED__
3028 
3029 DEFINE_GUID(IID_ISpObjectTokenInit, 0xb8aab0cf, 0x346f, 0x49d8, 0x94,0x99, 0xc8,0xb0,0x3f,0x16,0x1d,0x51);
3030 #if defined(__cplusplus) && !defined(CINTERFACE)
3031 MIDL_INTERFACE("b8aab0cf-346f-49d8-9499-c8b03f161d51")
3032 ISpObjectTokenInit : public ISpObjectToken
3033 {
3034     virtual HRESULT STDMETHODCALLTYPE InitFromDataKey(
3035         LPCWSTR pszCategoryId,
3036         LPCWSTR pszTokenId,
3037         ISpDataKey *pDataKey) = 0;
3038 
3039 };
3040 #ifdef __CRT_UUID_DECL
3041 __CRT_UUID_DECL(ISpObjectTokenInit, 0xb8aab0cf, 0x346f, 0x49d8, 0x94,0x99, 0xc8,0xb0,0x3f,0x16,0x1d,0x51)
3042 #endif
3043 #else
3044 typedef struct ISpObjectTokenInitVtbl {
3045     BEGIN_INTERFACE
3046 
3047     /*** IUnknown methods ***/
3048     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3049         ISpObjectTokenInit *This,
3050         REFIID riid,
3051         void **ppvObject);
3052 
3053     ULONG (STDMETHODCALLTYPE *AddRef)(
3054         ISpObjectTokenInit *This);
3055 
3056     ULONG (STDMETHODCALLTYPE *Release)(
3057         ISpObjectTokenInit *This);
3058 
3059     /*** ISpDataKey methods ***/
3060     HRESULT (STDMETHODCALLTYPE *SetData)(
3061         ISpObjectTokenInit *This,
3062         LPCWSTR pszValueName,
3063         ULONG cbData,
3064         const BYTE *pData);
3065 
3066     HRESULT (STDMETHODCALLTYPE *GetData)(
3067         ISpObjectTokenInit *This,
3068         LPCWSTR pszValueName,
3069         ULONG *pcbData,
3070         BYTE *pData);
3071 
3072     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
3073         ISpObjectTokenInit *This,
3074         LPCWSTR pszValueName,
3075         LPCWSTR pszValue);
3076 
3077     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
3078         ISpObjectTokenInit *This,
3079         LPCWSTR pszValueName,
3080         LPWSTR *ppszValue);
3081 
3082     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
3083         ISpObjectTokenInit *This,
3084         LPCWSTR pszValueName,
3085         DWORD dwValue);
3086 
3087     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
3088         ISpObjectTokenInit *This,
3089         LPCWSTR pszValueName,
3090         DWORD *pdwValue);
3091 
3092     HRESULT (STDMETHODCALLTYPE *OpenKey)(
3093         ISpObjectTokenInit *This,
3094         LPCWSTR pszSubKeyName,
3095         ISpDataKey **ppSubKey);
3096 
3097     HRESULT (STDMETHODCALLTYPE *CreateKey)(
3098         ISpObjectTokenInit *This,
3099         LPCWSTR pszSubKey,
3100         ISpDataKey **ppSubKey);
3101 
3102     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
3103         ISpObjectTokenInit *This,
3104         LPCWSTR pszSubKey);
3105 
3106     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
3107         ISpObjectTokenInit *This,
3108         LPCWSTR pszValueName);
3109 
3110     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
3111         ISpObjectTokenInit *This,
3112         ULONG Index,
3113         LPWSTR *ppszSubKeyName);
3114 
3115     HRESULT (STDMETHODCALLTYPE *EnumValues)(
3116         ISpObjectTokenInit *This,
3117         ULONG Index,
3118         LPWSTR *ppszValueName);
3119 
3120     /*** ISpObjectToken methods ***/
3121     HRESULT (STDMETHODCALLTYPE *SetId)(
3122         ISpObjectTokenInit *This,
3123         LPCWSTR pszCategoryId,
3124         LPCWSTR pszTokenId,
3125         WINBOOL fCreateIfNotExist);
3126 
3127     HRESULT (STDMETHODCALLTYPE *GetId)(
3128         ISpObjectTokenInit *This,
3129         LPWSTR *ppszCoMemTokenId);
3130 
3131     HRESULT (STDMETHODCALLTYPE *GetCategory)(
3132         ISpObjectTokenInit *This,
3133         ISpObjectTokenCategory **ppTokenCategory);
3134 
3135     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
3136         ISpObjectTokenInit *This,
3137         IUnknown *pUnkOuter,
3138         DWORD dwClsContext,
3139         REFIID riid,
3140         void **ppvObject);
3141 
3142     HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
3143         ISpObjectTokenInit *This,
3144         REFCLSID clsidCaller,
3145         LPCWSTR pszValueName,
3146         LPCWSTR pszFileNameSpecifier,
3147         ULONG nFolder,
3148         LPWSTR *ppszFilePath);
3149 
3150     HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
3151         ISpObjectTokenInit *This,
3152         REFCLSID clsidCaller,
3153         LPCWSTR pszKeyName,
3154         WINBOOL fDeleteFile);
3155 
3156     HRESULT (STDMETHODCALLTYPE *Remove)(
3157         ISpObjectTokenInit *This,
3158         const CLSID *pclsidCaller);
3159 
3160     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
3161         ISpObjectTokenInit *This,
3162         LPCWSTR pszTypeOfUI,
3163         void *pvExtraData,
3164         ULONG cbExtraData,
3165         IUnknown *punkObject,
3166         WINBOOL *pfSupported);
3167 
3168     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
3169         ISpObjectTokenInit *This,
3170         HWND hwndParent,
3171         LPCWSTR pszTitle,
3172         LPCWSTR pszTypeOfUI,
3173         void *pvExtraData,
3174         ULONG cbExtraData,
3175         IUnknown *punkObject);
3176 
3177     HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
3178         ISpObjectTokenInit *This,
3179         LPCWSTR pszAttributes,
3180         WINBOOL *pfMatches);
3181 
3182     /*** ISpObjectTokenInit methods ***/
3183     HRESULT (STDMETHODCALLTYPE *InitFromDataKey)(
3184         ISpObjectTokenInit *This,
3185         LPCWSTR pszCategoryId,
3186         LPCWSTR pszTokenId,
3187         ISpDataKey *pDataKey);
3188 
3189     END_INTERFACE
3190 } ISpObjectTokenInitVtbl;
3191 
3192 interface ISpObjectTokenInit {
3193     CONST_VTBL ISpObjectTokenInitVtbl* lpVtbl;
3194 };
3195 
3196 #ifdef COBJMACROS
3197 #ifndef WIDL_C_INLINE_WRAPPERS
3198 /*** IUnknown methods ***/
3199 #define ISpObjectTokenInit_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3200 #define ISpObjectTokenInit_AddRef(This) (This)->lpVtbl->AddRef(This)
3201 #define ISpObjectTokenInit_Release(This) (This)->lpVtbl->Release(This)
3202 /*** ISpDataKey methods ***/
3203 #define ISpObjectTokenInit_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
3204 #define ISpObjectTokenInit_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
3205 #define ISpObjectTokenInit_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
3206 #define ISpObjectTokenInit_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
3207 #define ISpObjectTokenInit_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
3208 #define ISpObjectTokenInit_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
3209 #define ISpObjectTokenInit_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
3210 #define ISpObjectTokenInit_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
3211 #define ISpObjectTokenInit_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
3212 #define ISpObjectTokenInit_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
3213 #define ISpObjectTokenInit_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
3214 #define ISpObjectTokenInit_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
3215 /*** ISpObjectToken methods ***/
3216 #define ISpObjectTokenInit_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
3217 #define ISpObjectTokenInit_GetId(This,ppszCoMemTokenId) (This)->lpVtbl->GetId(This,ppszCoMemTokenId)
3218 #define ISpObjectTokenInit_GetCategory(This,ppTokenCategory) (This)->lpVtbl->GetCategory(This,ppTokenCategory)
3219 #define ISpObjectTokenInit_CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
3220 #define ISpObjectTokenInit_GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath) (This)->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
3221 #define ISpObjectTokenInit_RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
3222 #define ISpObjectTokenInit_Remove(This,pclsidCaller) (This)->lpVtbl->Remove(This,pclsidCaller)
3223 #define ISpObjectTokenInit_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
3224 #define ISpObjectTokenInit_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
3225 #define ISpObjectTokenInit_MatchesAttributes(This,pszAttributes,pfMatches) (This)->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches)
3226 /*** ISpObjectTokenInit methods ***/
3227 #define ISpObjectTokenInit_InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey) (This)->lpVtbl->InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey)
3228 #else
3229 /*** IUnknown methods ***/
3230 static FORCEINLINE HRESULT ISpObjectTokenInit_QueryInterface(ISpObjectTokenInit* This,REFIID riid,void **ppvObject) {
3231     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3232 }
3233 static FORCEINLINE ULONG ISpObjectTokenInit_AddRef(ISpObjectTokenInit* This) {
3234     return This->lpVtbl->AddRef(This);
3235 }
3236 static FORCEINLINE ULONG ISpObjectTokenInit_Release(ISpObjectTokenInit* This) {
3237     return This->lpVtbl->Release(This);
3238 }
3239 /*** ISpDataKey methods ***/
3240 static FORCEINLINE HRESULT ISpObjectTokenInit_SetData(ISpObjectTokenInit* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
3241     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
3242 }
3243 static FORCEINLINE HRESULT ISpObjectTokenInit_GetData(ISpObjectTokenInit* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
3244     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
3245 }
3246 static FORCEINLINE HRESULT ISpObjectTokenInit_SetStringValue(ISpObjectTokenInit* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
3247     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
3248 }
3249 static FORCEINLINE HRESULT ISpObjectTokenInit_GetStringValue(ISpObjectTokenInit* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
3250     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
3251 }
3252 static FORCEINLINE HRESULT ISpObjectTokenInit_SetDWORD(ISpObjectTokenInit* This,LPCWSTR pszValueName,DWORD dwValue) {
3253     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
3254 }
3255 static FORCEINLINE HRESULT ISpObjectTokenInit_GetDWORD(ISpObjectTokenInit* This,LPCWSTR pszValueName,DWORD *pdwValue) {
3256     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
3257 }
3258 static FORCEINLINE HRESULT ISpObjectTokenInit_OpenKey(ISpObjectTokenInit* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
3259     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
3260 }
3261 static FORCEINLINE HRESULT ISpObjectTokenInit_CreateKey(ISpObjectTokenInit* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
3262     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
3263 }
3264 static FORCEINLINE HRESULT ISpObjectTokenInit_DeleteKey(ISpObjectTokenInit* This,LPCWSTR pszSubKey) {
3265     return This->lpVtbl->DeleteKey(This,pszSubKey);
3266 }
3267 static FORCEINLINE HRESULT ISpObjectTokenInit_DeleteValue(ISpObjectTokenInit* This,LPCWSTR pszValueName) {
3268     return This->lpVtbl->DeleteValue(This,pszValueName);
3269 }
3270 static FORCEINLINE HRESULT ISpObjectTokenInit_EnumKeys(ISpObjectTokenInit* This,ULONG Index,LPWSTR *ppszSubKeyName) {
3271     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
3272 }
3273 static FORCEINLINE HRESULT ISpObjectTokenInit_EnumValues(ISpObjectTokenInit* This,ULONG Index,LPWSTR *ppszValueName) {
3274     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
3275 }
3276 /*** ISpObjectToken methods ***/
3277 static FORCEINLINE HRESULT ISpObjectTokenInit_SetId(ISpObjectTokenInit* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,WINBOOL fCreateIfNotExist) {
3278     return This->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist);
3279 }
3280 static FORCEINLINE HRESULT ISpObjectTokenInit_GetId(ISpObjectTokenInit* This,LPWSTR *ppszCoMemTokenId) {
3281     return This->lpVtbl->GetId(This,ppszCoMemTokenId);
3282 }
3283 static FORCEINLINE HRESULT ISpObjectTokenInit_GetCategory(ISpObjectTokenInit* This,ISpObjectTokenCategory **ppTokenCategory) {
3284     return This->lpVtbl->GetCategory(This,ppTokenCategory);
3285 }
3286 static FORCEINLINE HRESULT ISpObjectTokenInit_CreateInstance(ISpObjectTokenInit* This,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,void **ppvObject) {
3287     return This->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject);
3288 }
3289 static FORCEINLINE HRESULT ISpObjectTokenInit_GetStorageFileName(ISpObjectTokenInit* This,REFCLSID clsidCaller,LPCWSTR pszValueName,LPCWSTR pszFileNameSpecifier,ULONG nFolder,LPWSTR *ppszFilePath) {
3290     return This->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath);
3291 }
3292 static FORCEINLINE HRESULT ISpObjectTokenInit_RemoveStorageFileName(ISpObjectTokenInit* This,REFCLSID clsidCaller,LPCWSTR pszKeyName,WINBOOL fDeleteFile) {
3293     return This->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile);
3294 }
3295 static FORCEINLINE HRESULT ISpObjectTokenInit_Remove(ISpObjectTokenInit* This,const CLSID *pclsidCaller) {
3296     return This->lpVtbl->Remove(This,pclsidCaller);
3297 }
3298 static FORCEINLINE HRESULT ISpObjectTokenInit_IsUISupported(ISpObjectTokenInit* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject,WINBOOL *pfSupported) {
3299     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported);
3300 }
3301 static FORCEINLINE HRESULT ISpObjectTokenInit_DisplayUI(ISpObjectTokenInit* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject) {
3302     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject);
3303 }
3304 static FORCEINLINE HRESULT ISpObjectTokenInit_MatchesAttributes(ISpObjectTokenInit* This,LPCWSTR pszAttributes,WINBOOL *pfMatches) {
3305     return This->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches);
3306 }
3307 /*** ISpObjectTokenInit methods ***/
3308 static FORCEINLINE HRESULT ISpObjectTokenInit_InitFromDataKey(ISpObjectTokenInit* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,ISpDataKey *pDataKey) {
3309     return This->lpVtbl->InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey);
3310 }
3311 #endif
3312 #endif
3313 
3314 #endif
3315 
3316 
3317 #endif  /* __ISpObjectTokenInit_INTERFACE_DEFINED__ */
3318 
3319 /*****************************************************************************
3320  * ISpResourceManager interface
3321  */
3322 #ifndef __ISpResourceManager_INTERFACE_DEFINED__
3323 #define __ISpResourceManager_INTERFACE_DEFINED__
3324 
3325 DEFINE_GUID(IID_ISpResourceManager, 0x93384e18, 0x5014, 0x43d5, 0xad,0xbb, 0xa7,0x8e,0x05,0x59,0x26,0xbd);
3326 #if defined(__cplusplus) && !defined(CINTERFACE)
3327 MIDL_INTERFACE("93384e18-5014-43d5-adbb-a78e055926bd")
3328 ISpResourceManager : public IServiceProvider
3329 {
3330     virtual HRESULT STDMETHODCALLTYPE SetObject(
3331         REFGUID guidServiceId,
3332         IUnknown *pUnkObject) = 0;
3333 
3334     virtual HRESULT STDMETHODCALLTYPE GetObject(
3335         REFGUID guidServiceId,
3336         REFCLSID ObjectCLSID,
3337         REFIID ObjectIID,
3338         WINBOOL fReleaseWhenLastExternalRefReleased,
3339         void **ppObject) = 0;
3340 
3341 };
3342 #ifdef __CRT_UUID_DECL
3343 __CRT_UUID_DECL(ISpResourceManager, 0x93384e18, 0x5014, 0x43d5, 0xad,0xbb, 0xa7,0x8e,0x05,0x59,0x26,0xbd)
3344 #endif
3345 #else
3346 typedef struct ISpResourceManagerVtbl {
3347     BEGIN_INTERFACE
3348 
3349     /*** IUnknown methods ***/
3350     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3351         ISpResourceManager *This,
3352         REFIID riid,
3353         void **ppvObject);
3354 
3355     ULONG (STDMETHODCALLTYPE *AddRef)(
3356         ISpResourceManager *This);
3357 
3358     ULONG (STDMETHODCALLTYPE *Release)(
3359         ISpResourceManager *This);
3360 
3361     /*** IServiceProvider methods ***/
3362     HRESULT (STDMETHODCALLTYPE *QueryService)(
3363         ISpResourceManager *This,
3364         REFGUID guidService,
3365         REFIID riid,
3366         void **ppvObject);
3367 
3368     /*** ISpResourceManager methods ***/
3369     HRESULT (STDMETHODCALLTYPE *SetObject)(
3370         ISpResourceManager *This,
3371         REFGUID guidServiceId,
3372         IUnknown *pUnkObject);
3373 
3374     HRESULT (STDMETHODCALLTYPE *GetObject)(
3375         ISpResourceManager *This,
3376         REFGUID guidServiceId,
3377         REFCLSID ObjectCLSID,
3378         REFIID ObjectIID,
3379         WINBOOL fReleaseWhenLastExternalRefReleased,
3380         void **ppObject);
3381 
3382     END_INTERFACE
3383 } ISpResourceManagerVtbl;
3384 
3385 interface ISpResourceManager {
3386     CONST_VTBL ISpResourceManagerVtbl* lpVtbl;
3387 };
3388 
3389 #ifdef COBJMACROS
3390 #ifndef WIDL_C_INLINE_WRAPPERS
3391 /*** IUnknown methods ***/
3392 #define ISpResourceManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3393 #define ISpResourceManager_AddRef(This) (This)->lpVtbl->AddRef(This)
3394 #define ISpResourceManager_Release(This) (This)->lpVtbl->Release(This)
3395 /*** IServiceProvider methods ***/
3396 #define ISpResourceManager_QueryService(This,guidService,riid,ppvObject) (This)->lpVtbl->QueryService(This,guidService,riid,ppvObject)
3397 /*** ISpResourceManager methods ***/
3398 #define ISpResourceManager_SetObject(This,guidServiceId,pUnkObject) (This)->lpVtbl->SetObject(This,guidServiceId,pUnkObject)
3399 #define ISpResourceManager_GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject) (This)->lpVtbl->GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject)
3400 #else
3401 /*** IUnknown methods ***/
3402 static FORCEINLINE HRESULT ISpResourceManager_QueryInterface(ISpResourceManager* This,REFIID riid,void **ppvObject) {
3403     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3404 }
3405 static FORCEINLINE ULONG ISpResourceManager_AddRef(ISpResourceManager* This) {
3406     return This->lpVtbl->AddRef(This);
3407 }
3408 static FORCEINLINE ULONG ISpResourceManager_Release(ISpResourceManager* This) {
3409     return This->lpVtbl->Release(This);
3410 }
3411 /*** IServiceProvider methods ***/
3412 static FORCEINLINE HRESULT ISpResourceManager_QueryService(ISpResourceManager* This,REFGUID guidService,REFIID riid,void **ppvObject) {
3413     return This->lpVtbl->QueryService(This,guidService,riid,ppvObject);
3414 }
3415 /*** ISpResourceManager methods ***/
3416 static FORCEINLINE HRESULT ISpResourceManager_SetObject(ISpResourceManager* This,REFGUID guidServiceId,IUnknown *pUnkObject) {
3417     return This->lpVtbl->SetObject(This,guidServiceId,pUnkObject);
3418 }
3419 static FORCEINLINE HRESULT ISpResourceManager_GetObject(ISpResourceManager* This,REFGUID guidServiceId,REFCLSID ObjectCLSID,REFIID ObjectIID,WINBOOL fReleaseWhenLastExternalRefReleased,void **ppObject) {
3420     return This->lpVtbl->GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject);
3421 }
3422 #endif
3423 #endif
3424 
3425 #endif
3426 
3427 
3428 #endif  /* __ISpResourceManager_INTERFACE_DEFINED__ */
3429 
3430 #if 0
3431 typedef struct SPEVENT {
3432     WORD eEventId;
3433     WORD elParamType;
3434     ULONG ulStreamNum;
3435     ULONGLONG ullAudioStreamOffset;
3436     WPARAM wParam;
3437     LPARAM lParam;
3438 } SPEVENT;
3439 typedef struct SPSERIALIZEDEVENT {
3440     WORD eEventId;
3441     WORD elParamType;
3442     ULONG ulStreamNum;
3443     ULONGLONG ullAudioStreamOffset;
3444     ULONG SerializedwParam;
3445     LONG SerializedlParam;
3446 } SPSERIALIZEDEVENT;
3447 typedef struct SPSERIALIZEDEVENT64 {
3448     WORD eEventId;
3449     WORD elParamType;
3450     ULONG ulStreamNum;
3451     ULONGLONG ullAudioStreamOffset;
3452     ULONGLONG SerializedwParam;
3453     LONGLONG SerializedlParam;
3454 } SPSERIALIZEDEVENT64;
3455 #else
3456 typedef struct SPEVENT {
3457   SPEVENTENUM eEventId : 16;
3458   SPEVENTLPARAMTYPE elParamType : 16;
3459   ULONG ulStreamNum;
3460   ULONGLONG ullAudioStreamOffset;
3461   WPARAM      wParam;
3462   LPARAM      lParam;
3463 } SPEVENT;
3464 
3465 typedef struct SPSERIALIZEDEVENT {
3466   SPEVENTENUM eEventId : 16;
3467   SPEVENTLPARAMTYPE elParamType : 16;
3468   ULONG ulStreamNum;
3469   ULONGLONG ullAudioStreamOffset;
3470   ULONG SerializedwParam;
3471   LONG SerializedlParam;
3472 } SPSERIALIZEDEVENT;
3473 
3474 typedef struct SPSERIALIZEDEVENT64 {
3475   SPEVENTENUM eEventId : 16;
3476   SPEVENTLPARAMTYPE elParamType : 16;
3477   ULONG ulStreamNum;
3478   ULONGLONG ullAudioStreamOffset;
3479   ULONGLONG SerializedwParam;
3480   LONGLONG SerializedlParam;
3481 } SPSERIALIZEDEVENT64;
3482 #endif
3483 typedef struct SPEVENTSOURCEINFO {
3484     ULONGLONG ullEventInterest;
3485     ULONGLONG ullQueuedInterest;
3486     ULONG ulCount;
3487 } SPEVENTSOURCEINFO;
3488 /*****************************************************************************
3489  * ISpEventSource interface
3490  */
3491 #ifndef __ISpEventSource_INTERFACE_DEFINED__
3492 #define __ISpEventSource_INTERFACE_DEFINED__
3493 
3494 DEFINE_GUID(IID_ISpEventSource, 0xbe7a9cce, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
3495 #if defined(__cplusplus) && !defined(CINTERFACE)
3496 MIDL_INTERFACE("be7a9cce-5f9e-11d2-960f-00c04f8ee628")
3497 ISpEventSource : public ISpNotifySource
3498 {
3499     virtual HRESULT STDMETHODCALLTYPE SetInterest(
3500         ULONGLONG ullEventInterest,
3501         ULONGLONG ullQueuedInterest) = 0;
3502 
3503     virtual HRESULT STDMETHODCALLTYPE GetEvents(
3504         ULONG ulCount,
3505         SPEVENT *pEventArray,
3506         ULONG *pulFetched) = 0;
3507 
3508     virtual HRESULT STDMETHODCALLTYPE GetInfo(
3509         SPEVENTSOURCEINFO *pInfo) = 0;
3510 
3511 };
3512 #ifdef __CRT_UUID_DECL
3513 __CRT_UUID_DECL(ISpEventSource, 0xbe7a9cce, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
3514 #endif
3515 #else
3516 typedef struct ISpEventSourceVtbl {
3517     BEGIN_INTERFACE
3518 
3519     /*** IUnknown methods ***/
3520     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3521         ISpEventSource *This,
3522         REFIID riid,
3523         void **ppvObject);
3524 
3525     ULONG (STDMETHODCALLTYPE *AddRef)(
3526         ISpEventSource *This);
3527 
3528     ULONG (STDMETHODCALLTYPE *Release)(
3529         ISpEventSource *This);
3530 
3531     /*** ISpNotifySource methods ***/
3532     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
3533         ISpEventSource *This,
3534         ISpNotifySink *pNotifySink);
3535 
3536     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
3537         ISpEventSource *This,
3538         HWND hWnd,
3539         UINT Msg,
3540         WPARAM wParam,
3541         LPARAM lParam);
3542 
3543     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
3544         ISpEventSource *This,
3545         SPNOTIFYCALLBACK *pfnCallback,
3546         WPARAM wParam,
3547         LPARAM lParam);
3548 
3549     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
3550         ISpEventSource *This,
3551         ISpNotifyCallback *pSpCallback,
3552         WPARAM wParam,
3553         LPARAM lParam);
3554 
3555     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
3556         ISpEventSource *This);
3557 
3558     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
3559         ISpEventSource *This,
3560         DWORD dwMilliseconds);
3561 
3562     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
3563         ISpEventSource *This);
3564 
3565     /*** ISpEventSource methods ***/
3566     HRESULT (STDMETHODCALLTYPE *SetInterest)(
3567         ISpEventSource *This,
3568         ULONGLONG ullEventInterest,
3569         ULONGLONG ullQueuedInterest);
3570 
3571     HRESULT (STDMETHODCALLTYPE *GetEvents)(
3572         ISpEventSource *This,
3573         ULONG ulCount,
3574         SPEVENT *pEventArray,
3575         ULONG *pulFetched);
3576 
3577     HRESULT (STDMETHODCALLTYPE *GetInfo)(
3578         ISpEventSource *This,
3579         SPEVENTSOURCEINFO *pInfo);
3580 
3581     END_INTERFACE
3582 } ISpEventSourceVtbl;
3583 
3584 interface ISpEventSource {
3585     CONST_VTBL ISpEventSourceVtbl* lpVtbl;
3586 };
3587 
3588 #ifdef COBJMACROS
3589 #ifndef WIDL_C_INLINE_WRAPPERS
3590 /*** IUnknown methods ***/
3591 #define ISpEventSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3592 #define ISpEventSource_AddRef(This) (This)->lpVtbl->AddRef(This)
3593 #define ISpEventSource_Release(This) (This)->lpVtbl->Release(This)
3594 /*** ISpNotifySource methods ***/
3595 #define ISpEventSource_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
3596 #define ISpEventSource_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
3597 #define ISpEventSource_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
3598 #define ISpEventSource_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
3599 #define ISpEventSource_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
3600 #define ISpEventSource_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
3601 #define ISpEventSource_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
3602 /*** ISpEventSource methods ***/
3603 #define ISpEventSource_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
3604 #define ISpEventSource_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
3605 #define ISpEventSource_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
3606 #else
3607 /*** IUnknown methods ***/
3608 static FORCEINLINE HRESULT ISpEventSource_QueryInterface(ISpEventSource* This,REFIID riid,void **ppvObject) {
3609     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3610 }
3611 static FORCEINLINE ULONG ISpEventSource_AddRef(ISpEventSource* This) {
3612     return This->lpVtbl->AddRef(This);
3613 }
3614 static FORCEINLINE ULONG ISpEventSource_Release(ISpEventSource* This) {
3615     return This->lpVtbl->Release(This);
3616 }
3617 /*** ISpNotifySource methods ***/
3618 static FORCEINLINE HRESULT ISpEventSource_SetNotifySink(ISpEventSource* This,ISpNotifySink *pNotifySink) {
3619     return This->lpVtbl->SetNotifySink(This,pNotifySink);
3620 }
3621 static FORCEINLINE HRESULT ISpEventSource_SetNotifyWindowMessage(ISpEventSource* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
3622     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
3623 }
3624 static FORCEINLINE HRESULT ISpEventSource_SetNotifyCallbackFunction(ISpEventSource* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
3625     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
3626 }
3627 static FORCEINLINE HRESULT ISpEventSource_SetNotifyCallbackInterface(ISpEventSource* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
3628     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
3629 }
3630 static FORCEINLINE HRESULT ISpEventSource_SetNotifyWin32Event(ISpEventSource* This) {
3631     return This->lpVtbl->SetNotifyWin32Event(This);
3632 }
3633 static FORCEINLINE HRESULT ISpEventSource_WaitForNotifyEvent(ISpEventSource* This,DWORD dwMilliseconds) {
3634     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
3635 }
3636 static FORCEINLINE HANDLE ISpEventSource_GetNotifyEventHandle(ISpEventSource* This) {
3637     return This->lpVtbl->GetNotifyEventHandle(This);
3638 }
3639 /*** ISpEventSource methods ***/
3640 static FORCEINLINE HRESULT ISpEventSource_SetInterest(ISpEventSource* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
3641     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
3642 }
3643 static FORCEINLINE HRESULT ISpEventSource_GetEvents(ISpEventSource* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
3644     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
3645 }
3646 static FORCEINLINE HRESULT ISpEventSource_GetInfo(ISpEventSource* This,SPEVENTSOURCEINFO *pInfo) {
3647     return This->lpVtbl->GetInfo(This,pInfo);
3648 }
3649 #endif
3650 #endif
3651 
3652 #endif
3653 
3654 
3655 #endif  /* __ISpEventSource_INTERFACE_DEFINED__ */
3656 
3657 /*****************************************************************************
3658  * ISpEventSink interface
3659  */
3660 #ifndef __ISpEventSink_INTERFACE_DEFINED__
3661 #define __ISpEventSink_INTERFACE_DEFINED__
3662 
3663 DEFINE_GUID(IID_ISpEventSink, 0xbe7a9cc9, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
3664 #if defined(__cplusplus) && !defined(CINTERFACE)
3665 MIDL_INTERFACE("be7a9cc9-5f9e-11d2-960f-00c04f8ee628")
3666 ISpEventSink : public IUnknown
3667 {
3668     virtual HRESULT STDMETHODCALLTYPE AddEvents(
3669         const SPEVENT *pEventArray,
3670         ULONG ulCount) = 0;
3671 
3672     virtual HRESULT STDMETHODCALLTYPE GetEventInterest(
3673         ULONGLONG *pullEventInterest) = 0;
3674 
3675 };
3676 #ifdef __CRT_UUID_DECL
3677 __CRT_UUID_DECL(ISpEventSink, 0xbe7a9cc9, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
3678 #endif
3679 #else
3680 typedef struct ISpEventSinkVtbl {
3681     BEGIN_INTERFACE
3682 
3683     /*** IUnknown methods ***/
3684     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3685         ISpEventSink *This,
3686         REFIID riid,
3687         void **ppvObject);
3688 
3689     ULONG (STDMETHODCALLTYPE *AddRef)(
3690         ISpEventSink *This);
3691 
3692     ULONG (STDMETHODCALLTYPE *Release)(
3693         ISpEventSink *This);
3694 
3695     /*** ISpEventSink methods ***/
3696     HRESULT (STDMETHODCALLTYPE *AddEvents)(
3697         ISpEventSink *This,
3698         const SPEVENT *pEventArray,
3699         ULONG ulCount);
3700 
3701     HRESULT (STDMETHODCALLTYPE *GetEventInterest)(
3702         ISpEventSink *This,
3703         ULONGLONG *pullEventInterest);
3704 
3705     END_INTERFACE
3706 } ISpEventSinkVtbl;
3707 
3708 interface ISpEventSink {
3709     CONST_VTBL ISpEventSinkVtbl* lpVtbl;
3710 };
3711 
3712 #ifdef COBJMACROS
3713 #ifndef WIDL_C_INLINE_WRAPPERS
3714 /*** IUnknown methods ***/
3715 #define ISpEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3716 #define ISpEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
3717 #define ISpEventSink_Release(This) (This)->lpVtbl->Release(This)
3718 /*** ISpEventSink methods ***/
3719 #define ISpEventSink_AddEvents(This,pEventArray,ulCount) (This)->lpVtbl->AddEvents(This,pEventArray,ulCount)
3720 #define ISpEventSink_GetEventInterest(This,pullEventInterest) (This)->lpVtbl->GetEventInterest(This,pullEventInterest)
3721 #else
3722 /*** IUnknown methods ***/
3723 static FORCEINLINE HRESULT ISpEventSink_QueryInterface(ISpEventSink* This,REFIID riid,void **ppvObject) {
3724     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3725 }
3726 static FORCEINLINE ULONG ISpEventSink_AddRef(ISpEventSink* This) {
3727     return This->lpVtbl->AddRef(This);
3728 }
3729 static FORCEINLINE ULONG ISpEventSink_Release(ISpEventSink* This) {
3730     return This->lpVtbl->Release(This);
3731 }
3732 /*** ISpEventSink methods ***/
3733 static FORCEINLINE HRESULT ISpEventSink_AddEvents(ISpEventSink* This,const SPEVENT *pEventArray,ULONG ulCount) {
3734     return This->lpVtbl->AddEvents(This,pEventArray,ulCount);
3735 }
3736 static FORCEINLINE HRESULT ISpEventSink_GetEventInterest(ISpEventSink* This,ULONGLONG *pullEventInterest) {
3737     return This->lpVtbl->GetEventInterest(This,pullEventInterest);
3738 }
3739 #endif
3740 #endif
3741 
3742 #endif
3743 
3744 
3745 #endif  /* __ISpEventSink_INTERFACE_DEFINED__ */
3746 
3747 /*****************************************************************************
3748  * ISpStreamFormat interface
3749  */
3750 #ifndef __ISpStreamFormat_INTERFACE_DEFINED__
3751 #define __ISpStreamFormat_INTERFACE_DEFINED__
3752 
3753 DEFINE_GUID(IID_ISpStreamFormat, 0xbed530be, 0x2606, 0x4f4d, 0xa1,0xc0, 0x54,0xc5,0xcd,0xa5,0x56,0x6f);
3754 #if defined(__cplusplus) && !defined(CINTERFACE)
3755 MIDL_INTERFACE("bed530be-2606-4f4d-a1c0-54c5cda5566f")
3756 ISpStreamFormat : public IStream
3757 {
3758     virtual HRESULT STDMETHODCALLTYPE GetFormat(
3759         GUID *pguidFormatId,
3760         WAVEFORMATEX **ppCoMemWaveFormatEx) = 0;
3761 
3762 };
3763 #ifdef __CRT_UUID_DECL
3764 __CRT_UUID_DECL(ISpStreamFormat, 0xbed530be, 0x2606, 0x4f4d, 0xa1,0xc0, 0x54,0xc5,0xcd,0xa5,0x56,0x6f)
3765 #endif
3766 #else
3767 typedef struct ISpStreamFormatVtbl {
3768     BEGIN_INTERFACE
3769 
3770     /*** IUnknown methods ***/
3771     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3772         ISpStreamFormat *This,
3773         REFIID riid,
3774         void **ppvObject);
3775 
3776     ULONG (STDMETHODCALLTYPE *AddRef)(
3777         ISpStreamFormat *This);
3778 
3779     ULONG (STDMETHODCALLTYPE *Release)(
3780         ISpStreamFormat *This);
3781 
3782     /*** ISequentialStream methods ***/
3783     HRESULT (STDMETHODCALLTYPE *Read)(
3784         ISpStreamFormat *This,
3785         void *pv,
3786         ULONG cb,
3787         ULONG *pcbRead);
3788 
3789     HRESULT (STDMETHODCALLTYPE *Write)(
3790         ISpStreamFormat *This,
3791         const void *pv,
3792         ULONG cb,
3793         ULONG *pcbWritten);
3794 
3795     /*** IStream methods ***/
3796     HRESULT (STDMETHODCALLTYPE *Seek)(
3797         ISpStreamFormat *This,
3798         LARGE_INTEGER dlibMove,
3799         DWORD dwOrigin,
3800         ULARGE_INTEGER *plibNewPosition);
3801 
3802     HRESULT (STDMETHODCALLTYPE *SetSize)(
3803         ISpStreamFormat *This,
3804         ULARGE_INTEGER libNewSize);
3805 
3806     HRESULT (STDMETHODCALLTYPE *CopyTo)(
3807         ISpStreamFormat *This,
3808         IStream *pstm,
3809         ULARGE_INTEGER cb,
3810         ULARGE_INTEGER *pcbRead,
3811         ULARGE_INTEGER *pcbWritten);
3812 
3813     HRESULT (STDMETHODCALLTYPE *Commit)(
3814         ISpStreamFormat *This,
3815         DWORD grfCommitFlags);
3816 
3817     HRESULT (STDMETHODCALLTYPE *Revert)(
3818         ISpStreamFormat *This);
3819 
3820     HRESULT (STDMETHODCALLTYPE *LockRegion)(
3821         ISpStreamFormat *This,
3822         ULARGE_INTEGER libOffset,
3823         ULARGE_INTEGER cb,
3824         DWORD dwLockType);
3825 
3826     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
3827         ISpStreamFormat *This,
3828         ULARGE_INTEGER libOffset,
3829         ULARGE_INTEGER cb,
3830         DWORD dwLockType);
3831 
3832     HRESULT (STDMETHODCALLTYPE *Stat)(
3833         ISpStreamFormat *This,
3834         STATSTG *pstatstg,
3835         DWORD grfStatFlag);
3836 
3837     HRESULT (STDMETHODCALLTYPE *Clone)(
3838         ISpStreamFormat *This,
3839         IStream **ppstm);
3840 
3841     /*** ISpStreamFormat methods ***/
3842     HRESULT (STDMETHODCALLTYPE *GetFormat)(
3843         ISpStreamFormat *This,
3844         GUID *pguidFormatId,
3845         WAVEFORMATEX **ppCoMemWaveFormatEx);
3846 
3847     END_INTERFACE
3848 } ISpStreamFormatVtbl;
3849 
3850 interface ISpStreamFormat {
3851     CONST_VTBL ISpStreamFormatVtbl* lpVtbl;
3852 };
3853 
3854 #ifdef COBJMACROS
3855 #ifndef WIDL_C_INLINE_WRAPPERS
3856 /*** IUnknown methods ***/
3857 #define ISpStreamFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3858 #define ISpStreamFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
3859 #define ISpStreamFormat_Release(This) (This)->lpVtbl->Release(This)
3860 /*** ISequentialStream methods ***/
3861 #define ISpStreamFormat_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
3862 #define ISpStreamFormat_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
3863 /*** IStream methods ***/
3864 #define ISpStreamFormat_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
3865 #define ISpStreamFormat_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
3866 #define ISpStreamFormat_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
3867 #define ISpStreamFormat_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
3868 #define ISpStreamFormat_Revert(This) (This)->lpVtbl->Revert(This)
3869 #define ISpStreamFormat_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
3870 #define ISpStreamFormat_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
3871 #define ISpStreamFormat_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
3872 #define ISpStreamFormat_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
3873 /*** ISpStreamFormat methods ***/
3874 #define ISpStreamFormat_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
3875 #else
3876 /*** IUnknown methods ***/
3877 static FORCEINLINE HRESULT ISpStreamFormat_QueryInterface(ISpStreamFormat* This,REFIID riid,void **ppvObject) {
3878     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3879 }
3880 static FORCEINLINE ULONG ISpStreamFormat_AddRef(ISpStreamFormat* This) {
3881     return This->lpVtbl->AddRef(This);
3882 }
3883 static FORCEINLINE ULONG ISpStreamFormat_Release(ISpStreamFormat* This) {
3884     return This->lpVtbl->Release(This);
3885 }
3886 /*** ISequentialStream methods ***/
3887 static FORCEINLINE HRESULT ISpStreamFormat_Read(ISpStreamFormat* This,void *pv,ULONG cb,ULONG *pcbRead) {
3888     return This->lpVtbl->Read(This,pv,cb,pcbRead);
3889 }
3890 static FORCEINLINE HRESULT ISpStreamFormat_Write(ISpStreamFormat* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
3891     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
3892 }
3893 /*** IStream methods ***/
3894 static FORCEINLINE HRESULT ISpStreamFormat_Seek(ISpStreamFormat* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
3895     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
3896 }
3897 static FORCEINLINE HRESULT ISpStreamFormat_SetSize(ISpStreamFormat* This,ULARGE_INTEGER libNewSize) {
3898     return This->lpVtbl->SetSize(This,libNewSize);
3899 }
3900 static FORCEINLINE HRESULT ISpStreamFormat_CopyTo(ISpStreamFormat* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
3901     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
3902 }
3903 static FORCEINLINE HRESULT ISpStreamFormat_Commit(ISpStreamFormat* This,DWORD grfCommitFlags) {
3904     return This->lpVtbl->Commit(This,grfCommitFlags);
3905 }
3906 static FORCEINLINE HRESULT ISpStreamFormat_Revert(ISpStreamFormat* This) {
3907     return This->lpVtbl->Revert(This);
3908 }
3909 static FORCEINLINE HRESULT ISpStreamFormat_LockRegion(ISpStreamFormat* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
3910     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
3911 }
3912 static FORCEINLINE HRESULT ISpStreamFormat_UnlockRegion(ISpStreamFormat* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
3913     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
3914 }
3915 static FORCEINLINE HRESULT ISpStreamFormat_Stat(ISpStreamFormat* This,STATSTG *pstatstg,DWORD grfStatFlag) {
3916     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
3917 }
3918 static FORCEINLINE HRESULT ISpStreamFormat_Clone(ISpStreamFormat* This,IStream **ppstm) {
3919     return This->lpVtbl->Clone(This,ppstm);
3920 }
3921 /*** ISpStreamFormat methods ***/
3922 static FORCEINLINE HRESULT ISpStreamFormat_GetFormat(ISpStreamFormat* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
3923     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
3924 }
3925 #endif
3926 #endif
3927 
3928 #endif
3929 
3930 
3931 #endif  /* __ISpStreamFormat_INTERFACE_DEFINED__ */
3932 
3933 /*****************************************************************************
3934  * ISpStream interface
3935  */
3936 #ifndef __ISpStream_INTERFACE_DEFINED__
3937 #define __ISpStream_INTERFACE_DEFINED__
3938 
3939 DEFINE_GUID(IID_ISpStream, 0x12e3cca9, 0x7518, 0x44c5, 0xa5,0xe7, 0xba,0x5a,0x79,0xcb,0x92,0x9e);
3940 #if defined(__cplusplus) && !defined(CINTERFACE)
3941 MIDL_INTERFACE("12e3cca9-7518-44c5-a5e7-ba5a79cb929e")
3942 ISpStream : public ISpStreamFormat
3943 {
3944     virtual HRESULT STDMETHODCALLTYPE SetBaseStream(
3945         IStream *pStream,
3946         REFGUID rguidFormat,
3947         const WAVEFORMATEX *pWaveFormatEx) = 0;
3948 
3949     virtual HRESULT STDMETHODCALLTYPE GetBaseStream(
3950         IStream **ppStream) = 0;
3951 
3952     virtual HRESULT STDMETHODCALLTYPE BindToFile(
3953         LPCWSTR pszFileName,
3954         SPFILEMODE eMode,
3955         const GUID *pFormatId,
3956         const WAVEFORMATEX *pWaveFormatEx,
3957         ULONGLONG ullEventInterest) = 0;
3958 
3959     virtual HRESULT STDMETHODCALLTYPE Close(
3960         ) = 0;
3961 
3962 };
3963 #ifdef __CRT_UUID_DECL
3964 __CRT_UUID_DECL(ISpStream, 0x12e3cca9, 0x7518, 0x44c5, 0xa5,0xe7, 0xba,0x5a,0x79,0xcb,0x92,0x9e)
3965 #endif
3966 #else
3967 typedef struct ISpStreamVtbl {
3968     BEGIN_INTERFACE
3969 
3970     /*** IUnknown methods ***/
3971     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3972         ISpStream *This,
3973         REFIID riid,
3974         void **ppvObject);
3975 
3976     ULONG (STDMETHODCALLTYPE *AddRef)(
3977         ISpStream *This);
3978 
3979     ULONG (STDMETHODCALLTYPE *Release)(
3980         ISpStream *This);
3981 
3982     /*** ISequentialStream methods ***/
3983     HRESULT (STDMETHODCALLTYPE *Read)(
3984         ISpStream *This,
3985         void *pv,
3986         ULONG cb,
3987         ULONG *pcbRead);
3988 
3989     HRESULT (STDMETHODCALLTYPE *Write)(
3990         ISpStream *This,
3991         const void *pv,
3992         ULONG cb,
3993         ULONG *pcbWritten);
3994 
3995     /*** IStream methods ***/
3996     HRESULT (STDMETHODCALLTYPE *Seek)(
3997         ISpStream *This,
3998         LARGE_INTEGER dlibMove,
3999         DWORD dwOrigin,
4000         ULARGE_INTEGER *plibNewPosition);
4001 
4002     HRESULT (STDMETHODCALLTYPE *SetSize)(
4003         ISpStream *This,
4004         ULARGE_INTEGER libNewSize);
4005 
4006     HRESULT (STDMETHODCALLTYPE *CopyTo)(
4007         ISpStream *This,
4008         IStream *pstm,
4009         ULARGE_INTEGER cb,
4010         ULARGE_INTEGER *pcbRead,
4011         ULARGE_INTEGER *pcbWritten);
4012 
4013     HRESULT (STDMETHODCALLTYPE *Commit)(
4014         ISpStream *This,
4015         DWORD grfCommitFlags);
4016 
4017     HRESULT (STDMETHODCALLTYPE *Revert)(
4018         ISpStream *This);
4019 
4020     HRESULT (STDMETHODCALLTYPE *LockRegion)(
4021         ISpStream *This,
4022         ULARGE_INTEGER libOffset,
4023         ULARGE_INTEGER cb,
4024         DWORD dwLockType);
4025 
4026     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
4027         ISpStream *This,
4028         ULARGE_INTEGER libOffset,
4029         ULARGE_INTEGER cb,
4030         DWORD dwLockType);
4031 
4032     HRESULT (STDMETHODCALLTYPE *Stat)(
4033         ISpStream *This,
4034         STATSTG *pstatstg,
4035         DWORD grfStatFlag);
4036 
4037     HRESULT (STDMETHODCALLTYPE *Clone)(
4038         ISpStream *This,
4039         IStream **ppstm);
4040 
4041     /*** ISpStreamFormat methods ***/
4042     HRESULT (STDMETHODCALLTYPE *GetFormat)(
4043         ISpStream *This,
4044         GUID *pguidFormatId,
4045         WAVEFORMATEX **ppCoMemWaveFormatEx);
4046 
4047     /*** ISpStream methods ***/
4048     HRESULT (STDMETHODCALLTYPE *SetBaseStream)(
4049         ISpStream *This,
4050         IStream *pStream,
4051         REFGUID rguidFormat,
4052         const WAVEFORMATEX *pWaveFormatEx);
4053 
4054     HRESULT (STDMETHODCALLTYPE *GetBaseStream)(
4055         ISpStream *This,
4056         IStream **ppStream);
4057 
4058     HRESULT (STDMETHODCALLTYPE *BindToFile)(
4059         ISpStream *This,
4060         LPCWSTR pszFileName,
4061         SPFILEMODE eMode,
4062         const GUID *pFormatId,
4063         const WAVEFORMATEX *pWaveFormatEx,
4064         ULONGLONG ullEventInterest);
4065 
4066     HRESULT (STDMETHODCALLTYPE *Close)(
4067         ISpStream *This);
4068 
4069     END_INTERFACE
4070 } ISpStreamVtbl;
4071 
4072 interface ISpStream {
4073     CONST_VTBL ISpStreamVtbl* lpVtbl;
4074 };
4075 
4076 #ifdef COBJMACROS
4077 #ifndef WIDL_C_INLINE_WRAPPERS
4078 /*** IUnknown methods ***/
4079 #define ISpStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4080 #define ISpStream_AddRef(This) (This)->lpVtbl->AddRef(This)
4081 #define ISpStream_Release(This) (This)->lpVtbl->Release(This)
4082 /*** ISequentialStream methods ***/
4083 #define ISpStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
4084 #define ISpStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
4085 /*** IStream methods ***/
4086 #define ISpStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
4087 #define ISpStream_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
4088 #define ISpStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
4089 #define ISpStream_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
4090 #define ISpStream_Revert(This) (This)->lpVtbl->Revert(This)
4091 #define ISpStream_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
4092 #define ISpStream_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
4093 #define ISpStream_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
4094 #define ISpStream_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
4095 /*** ISpStreamFormat methods ***/
4096 #define ISpStream_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
4097 /*** ISpStream methods ***/
4098 #define ISpStream_SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx) (This)->lpVtbl->SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx)
4099 #define ISpStream_GetBaseStream(This,ppStream) (This)->lpVtbl->GetBaseStream(This,ppStream)
4100 #define ISpStream_BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest) (This)->lpVtbl->BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest)
4101 #define ISpStream_Close(This) (This)->lpVtbl->Close(This)
4102 #else
4103 /*** IUnknown methods ***/
4104 static FORCEINLINE HRESULT ISpStream_QueryInterface(ISpStream* This,REFIID riid,void **ppvObject) {
4105     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4106 }
4107 static FORCEINLINE ULONG ISpStream_AddRef(ISpStream* This) {
4108     return This->lpVtbl->AddRef(This);
4109 }
4110 static FORCEINLINE ULONG ISpStream_Release(ISpStream* This) {
4111     return This->lpVtbl->Release(This);
4112 }
4113 /*** ISequentialStream methods ***/
4114 static FORCEINLINE HRESULT ISpStream_Read(ISpStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
4115     return This->lpVtbl->Read(This,pv,cb,pcbRead);
4116 }
4117 static FORCEINLINE HRESULT ISpStream_Write(ISpStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
4118     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
4119 }
4120 /*** IStream methods ***/
4121 static FORCEINLINE HRESULT ISpStream_Seek(ISpStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
4122     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
4123 }
4124 static FORCEINLINE HRESULT ISpStream_SetSize(ISpStream* This,ULARGE_INTEGER libNewSize) {
4125     return This->lpVtbl->SetSize(This,libNewSize);
4126 }
4127 static FORCEINLINE HRESULT ISpStream_CopyTo(ISpStream* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
4128     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
4129 }
4130 static FORCEINLINE HRESULT ISpStream_Commit(ISpStream* This,DWORD grfCommitFlags) {
4131     return This->lpVtbl->Commit(This,grfCommitFlags);
4132 }
4133 static FORCEINLINE HRESULT ISpStream_Revert(ISpStream* This) {
4134     return This->lpVtbl->Revert(This);
4135 }
4136 static FORCEINLINE HRESULT ISpStream_LockRegion(ISpStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4137     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
4138 }
4139 static FORCEINLINE HRESULT ISpStream_UnlockRegion(ISpStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4140     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
4141 }
4142 static FORCEINLINE HRESULT ISpStream_Stat(ISpStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
4143     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
4144 }
4145 static FORCEINLINE HRESULT ISpStream_Clone(ISpStream* This,IStream **ppstm) {
4146     return This->lpVtbl->Clone(This,ppstm);
4147 }
4148 /*** ISpStreamFormat methods ***/
4149 static FORCEINLINE HRESULT ISpStream_GetFormat(ISpStream* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
4150     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
4151 }
4152 /*** ISpStream methods ***/
4153 static FORCEINLINE HRESULT ISpStream_SetBaseStream(ISpStream* This,IStream *pStream,REFGUID rguidFormat,const WAVEFORMATEX *pWaveFormatEx) {
4154     return This->lpVtbl->SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx);
4155 }
4156 static FORCEINLINE HRESULT ISpStream_GetBaseStream(ISpStream* This,IStream **ppStream) {
4157     return This->lpVtbl->GetBaseStream(This,ppStream);
4158 }
4159 static FORCEINLINE HRESULT ISpStream_BindToFile(ISpStream* This,LPCWSTR pszFileName,SPFILEMODE eMode,const GUID *pFormatId,const WAVEFORMATEX *pWaveFormatEx,ULONGLONG ullEventInterest) {
4160     return This->lpVtbl->BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest);
4161 }
4162 static FORCEINLINE HRESULT ISpStream_Close(ISpStream* This) {
4163     return This->lpVtbl->Close(This);
4164 }
4165 #endif
4166 #endif
4167 
4168 #endif
4169 
4170 
4171 #endif  /* __ISpStream_INTERFACE_DEFINED__ */
4172 
4173 /*****************************************************************************
4174  * ISpStreamFormatConverter interface
4175  */
4176 #ifndef __ISpStreamFormatConverter_INTERFACE_DEFINED__
4177 #define __ISpStreamFormatConverter_INTERFACE_DEFINED__
4178 
4179 DEFINE_GUID(IID_ISpStreamFormatConverter, 0x678a932c, 0xea71, 0x4446, 0x9b,0x41, 0x78,0xfd,0xa6,0x28,0x0a,0x29);
4180 #if defined(__cplusplus) && !defined(CINTERFACE)
4181 MIDL_INTERFACE("678a932c-ea71-4446-9b41-78fda6280a29")
4182 ISpStreamFormatConverter : public ISpStreamFormat
4183 {
4184     virtual HRESULT STDMETHODCALLTYPE SetBaseStream(
4185         ISpStreamFormat *pStream,
4186         WINBOOL fSetFormatToBaseStreamFormat,
4187         WINBOOL fWriteToBaseStream) = 0;
4188 
4189     virtual HRESULT STDMETHODCALLTYPE GetBaseStream(
4190         ISpStreamFormat **ppStream) = 0;
4191 
4192     virtual HRESULT STDMETHODCALLTYPE SetFormat(
4193         REFGUID rguidFormatIdOfConvertedStream,
4194         const WAVEFORMATEX *pWaveFormatExOfConvertedStream) = 0;
4195 
4196     virtual HRESULT STDMETHODCALLTYPE ResetSeekPosition(
4197         ) = 0;
4198 
4199     virtual HRESULT STDMETHODCALLTYPE ScaleConvertedToBaseOffset(
4200         ULONGLONG ullOffsetConvertedStream,
4201         ULONGLONG *pullOffsetBaseStream) = 0;
4202 
4203     virtual HRESULT STDMETHODCALLTYPE ScaleBaseToConvertedOffset(
4204         ULONGLONG ullOffsetBaseStream,
4205         ULONGLONG *pullOffsetConvertedStream) = 0;
4206 
4207 };
4208 #ifdef __CRT_UUID_DECL
4209 __CRT_UUID_DECL(ISpStreamFormatConverter, 0x678a932c, 0xea71, 0x4446, 0x9b,0x41, 0x78,0xfd,0xa6,0x28,0x0a,0x29)
4210 #endif
4211 #else
4212 typedef struct ISpStreamFormatConverterVtbl {
4213     BEGIN_INTERFACE
4214 
4215     /*** IUnknown methods ***/
4216     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4217         ISpStreamFormatConverter *This,
4218         REFIID riid,
4219         void **ppvObject);
4220 
4221     ULONG (STDMETHODCALLTYPE *AddRef)(
4222         ISpStreamFormatConverter *This);
4223 
4224     ULONG (STDMETHODCALLTYPE *Release)(
4225         ISpStreamFormatConverter *This);
4226 
4227     /*** ISequentialStream methods ***/
4228     HRESULT (STDMETHODCALLTYPE *Read)(
4229         ISpStreamFormatConverter *This,
4230         void *pv,
4231         ULONG cb,
4232         ULONG *pcbRead);
4233 
4234     HRESULT (STDMETHODCALLTYPE *Write)(
4235         ISpStreamFormatConverter *This,
4236         const void *pv,
4237         ULONG cb,
4238         ULONG *pcbWritten);
4239 
4240     /*** IStream methods ***/
4241     HRESULT (STDMETHODCALLTYPE *Seek)(
4242         ISpStreamFormatConverter *This,
4243         LARGE_INTEGER dlibMove,
4244         DWORD dwOrigin,
4245         ULARGE_INTEGER *plibNewPosition);
4246 
4247     HRESULT (STDMETHODCALLTYPE *SetSize)(
4248         ISpStreamFormatConverter *This,
4249         ULARGE_INTEGER libNewSize);
4250 
4251     HRESULT (STDMETHODCALLTYPE *CopyTo)(
4252         ISpStreamFormatConverter *This,
4253         IStream *pstm,
4254         ULARGE_INTEGER cb,
4255         ULARGE_INTEGER *pcbRead,
4256         ULARGE_INTEGER *pcbWritten);
4257 
4258     HRESULT (STDMETHODCALLTYPE *Commit)(
4259         ISpStreamFormatConverter *This,
4260         DWORD grfCommitFlags);
4261 
4262     HRESULT (STDMETHODCALLTYPE *Revert)(
4263         ISpStreamFormatConverter *This);
4264 
4265     HRESULT (STDMETHODCALLTYPE *LockRegion)(
4266         ISpStreamFormatConverter *This,
4267         ULARGE_INTEGER libOffset,
4268         ULARGE_INTEGER cb,
4269         DWORD dwLockType);
4270 
4271     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
4272         ISpStreamFormatConverter *This,
4273         ULARGE_INTEGER libOffset,
4274         ULARGE_INTEGER cb,
4275         DWORD dwLockType);
4276 
4277     HRESULT (STDMETHODCALLTYPE *Stat)(
4278         ISpStreamFormatConverter *This,
4279         STATSTG *pstatstg,
4280         DWORD grfStatFlag);
4281 
4282     HRESULT (STDMETHODCALLTYPE *Clone)(
4283         ISpStreamFormatConverter *This,
4284         IStream **ppstm);
4285 
4286     /*** ISpStreamFormat methods ***/
4287     HRESULT (STDMETHODCALLTYPE *GetFormat)(
4288         ISpStreamFormatConverter *This,
4289         GUID *pguidFormatId,
4290         WAVEFORMATEX **ppCoMemWaveFormatEx);
4291 
4292     /*** ISpStreamFormatConverter methods ***/
4293     HRESULT (STDMETHODCALLTYPE *SetBaseStream)(
4294         ISpStreamFormatConverter *This,
4295         ISpStreamFormat *pStream,
4296         WINBOOL fSetFormatToBaseStreamFormat,
4297         WINBOOL fWriteToBaseStream);
4298 
4299     HRESULT (STDMETHODCALLTYPE *GetBaseStream)(
4300         ISpStreamFormatConverter *This,
4301         ISpStreamFormat **ppStream);
4302 
4303     HRESULT (STDMETHODCALLTYPE *SetFormat)(
4304         ISpStreamFormatConverter *This,
4305         REFGUID rguidFormatIdOfConvertedStream,
4306         const WAVEFORMATEX *pWaveFormatExOfConvertedStream);
4307 
4308     HRESULT (STDMETHODCALLTYPE *ResetSeekPosition)(
4309         ISpStreamFormatConverter *This);
4310 
4311     HRESULT (STDMETHODCALLTYPE *ScaleConvertedToBaseOffset)(
4312         ISpStreamFormatConverter *This,
4313         ULONGLONG ullOffsetConvertedStream,
4314         ULONGLONG *pullOffsetBaseStream);
4315 
4316     HRESULT (STDMETHODCALLTYPE *ScaleBaseToConvertedOffset)(
4317         ISpStreamFormatConverter *This,
4318         ULONGLONG ullOffsetBaseStream,
4319         ULONGLONG *pullOffsetConvertedStream);
4320 
4321     END_INTERFACE
4322 } ISpStreamFormatConverterVtbl;
4323 
4324 interface ISpStreamFormatConverter {
4325     CONST_VTBL ISpStreamFormatConverterVtbl* lpVtbl;
4326 };
4327 
4328 #ifdef COBJMACROS
4329 #ifndef WIDL_C_INLINE_WRAPPERS
4330 /*** IUnknown methods ***/
4331 #define ISpStreamFormatConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4332 #define ISpStreamFormatConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
4333 #define ISpStreamFormatConverter_Release(This) (This)->lpVtbl->Release(This)
4334 /*** ISequentialStream methods ***/
4335 #define ISpStreamFormatConverter_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
4336 #define ISpStreamFormatConverter_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
4337 /*** IStream methods ***/
4338 #define ISpStreamFormatConverter_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
4339 #define ISpStreamFormatConverter_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
4340 #define ISpStreamFormatConverter_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
4341 #define ISpStreamFormatConverter_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
4342 #define ISpStreamFormatConverter_Revert(This) (This)->lpVtbl->Revert(This)
4343 #define ISpStreamFormatConverter_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
4344 #define ISpStreamFormatConverter_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
4345 #define ISpStreamFormatConverter_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
4346 #define ISpStreamFormatConverter_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
4347 /*** ISpStreamFormat methods ***/
4348 #define ISpStreamFormatConverter_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
4349 /*** ISpStreamFormatConverter methods ***/
4350 #define ISpStreamFormatConverter_SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream) (This)->lpVtbl->SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream)
4351 #define ISpStreamFormatConverter_GetBaseStream(This,ppStream) (This)->lpVtbl->GetBaseStream(This,ppStream)
4352 #define ISpStreamFormatConverter_SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream) (This)->lpVtbl->SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream)
4353 #define ISpStreamFormatConverter_ResetSeekPosition(This) (This)->lpVtbl->ResetSeekPosition(This)
4354 #define ISpStreamFormatConverter_ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream) (This)->lpVtbl->ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream)
4355 #define ISpStreamFormatConverter_ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream) (This)->lpVtbl->ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream)
4356 #else
4357 /*** IUnknown methods ***/
4358 static FORCEINLINE HRESULT ISpStreamFormatConverter_QueryInterface(ISpStreamFormatConverter* This,REFIID riid,void **ppvObject) {
4359     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4360 }
4361 static FORCEINLINE ULONG ISpStreamFormatConverter_AddRef(ISpStreamFormatConverter* This) {
4362     return This->lpVtbl->AddRef(This);
4363 }
4364 static FORCEINLINE ULONG ISpStreamFormatConverter_Release(ISpStreamFormatConverter* This) {
4365     return This->lpVtbl->Release(This);
4366 }
4367 /*** ISequentialStream methods ***/
4368 static FORCEINLINE HRESULT ISpStreamFormatConverter_Read(ISpStreamFormatConverter* This,void *pv,ULONG cb,ULONG *pcbRead) {
4369     return This->lpVtbl->Read(This,pv,cb,pcbRead);
4370 }
4371 static FORCEINLINE HRESULT ISpStreamFormatConverter_Write(ISpStreamFormatConverter* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
4372     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
4373 }
4374 /*** IStream methods ***/
4375 static FORCEINLINE HRESULT ISpStreamFormatConverter_Seek(ISpStreamFormatConverter* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
4376     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
4377 }
4378 static FORCEINLINE HRESULT ISpStreamFormatConverter_SetSize(ISpStreamFormatConverter* This,ULARGE_INTEGER libNewSize) {
4379     return This->lpVtbl->SetSize(This,libNewSize);
4380 }
4381 static FORCEINLINE HRESULT ISpStreamFormatConverter_CopyTo(ISpStreamFormatConverter* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
4382     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
4383 }
4384 static FORCEINLINE HRESULT ISpStreamFormatConverter_Commit(ISpStreamFormatConverter* This,DWORD grfCommitFlags) {
4385     return This->lpVtbl->Commit(This,grfCommitFlags);
4386 }
4387 static FORCEINLINE HRESULT ISpStreamFormatConverter_Revert(ISpStreamFormatConverter* This) {
4388     return This->lpVtbl->Revert(This);
4389 }
4390 static FORCEINLINE HRESULT ISpStreamFormatConverter_LockRegion(ISpStreamFormatConverter* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4391     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
4392 }
4393 static FORCEINLINE HRESULT ISpStreamFormatConverter_UnlockRegion(ISpStreamFormatConverter* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4394     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
4395 }
4396 static FORCEINLINE HRESULT ISpStreamFormatConverter_Stat(ISpStreamFormatConverter* This,STATSTG *pstatstg,DWORD grfStatFlag) {
4397     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
4398 }
4399 static FORCEINLINE HRESULT ISpStreamFormatConverter_Clone(ISpStreamFormatConverter* This,IStream **ppstm) {
4400     return This->lpVtbl->Clone(This,ppstm);
4401 }
4402 /*** ISpStreamFormat methods ***/
4403 static FORCEINLINE HRESULT ISpStreamFormatConverter_GetFormat(ISpStreamFormatConverter* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
4404     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
4405 }
4406 /*** ISpStreamFormatConverter methods ***/
4407 static FORCEINLINE HRESULT ISpStreamFormatConverter_SetBaseStream(ISpStreamFormatConverter* This,ISpStreamFormat *pStream,WINBOOL fSetFormatToBaseStreamFormat,WINBOOL fWriteToBaseStream) {
4408     return This->lpVtbl->SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream);
4409 }
4410 static FORCEINLINE HRESULT ISpStreamFormatConverter_GetBaseStream(ISpStreamFormatConverter* This,ISpStreamFormat **ppStream) {
4411     return This->lpVtbl->GetBaseStream(This,ppStream);
4412 }
4413 static FORCEINLINE HRESULT ISpStreamFormatConverter_SetFormat(ISpStreamFormatConverter* This,REFGUID rguidFormatIdOfConvertedStream,const WAVEFORMATEX *pWaveFormatExOfConvertedStream) {
4414     return This->lpVtbl->SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream);
4415 }
4416 static FORCEINLINE HRESULT ISpStreamFormatConverter_ResetSeekPosition(ISpStreamFormatConverter* This) {
4417     return This->lpVtbl->ResetSeekPosition(This);
4418 }
4419 static FORCEINLINE HRESULT ISpStreamFormatConverter_ScaleConvertedToBaseOffset(ISpStreamFormatConverter* This,ULONGLONG ullOffsetConvertedStream,ULONGLONG *pullOffsetBaseStream) {
4420     return This->lpVtbl->ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream);
4421 }
4422 static FORCEINLINE HRESULT ISpStreamFormatConverter_ScaleBaseToConvertedOffset(ISpStreamFormatConverter* This,ULONGLONG ullOffsetBaseStream,ULONGLONG *pullOffsetConvertedStream) {
4423     return This->lpVtbl->ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream);
4424 }
4425 #endif
4426 #endif
4427 
4428 #endif
4429 
4430 
4431 #endif  /* __ISpStreamFormatConverter_INTERFACE_DEFINED__ */
4432 
4433 typedef struct SPAUDIOSTATUS {
4434     LONG cbFreeBuffSpace;
4435     ULONG cbNonBlockingIO;
4436     SPAUDIOSTATE State;
4437     ULONGLONG CurSeekPos;
4438     ULONGLONG CurDevicePos;
4439     DWORD dwAudioLevel;
4440     DWORD dwReserved2;
4441 } SPAUDIOSTATUS;
4442 typedef struct SPAUDIOBUFFERINFO {
4443     ULONG ulMsMinNotification;
4444     ULONG ulMsBufferSize;
4445     ULONG ulMsEventBias;
4446 } SPAUDIOBUFFERINFO;
4447 /*****************************************************************************
4448  * ISpAudio interface
4449  */
4450 #ifndef __ISpAudio_INTERFACE_DEFINED__
4451 #define __ISpAudio_INTERFACE_DEFINED__
4452 
4453 DEFINE_GUID(IID_ISpAudio, 0xc05c768f, 0xfae8, 0x4ec2, 0x8e,0x07, 0x33,0x83,0x21,0xc1,0x24,0x52);
4454 #if defined(__cplusplus) && !defined(CINTERFACE)
4455 MIDL_INTERFACE("c05c768f-fae8-4ec2-8e07-338321c12452")
4456 ISpAudio : public ISpStreamFormat
4457 {
4458     virtual HRESULT STDMETHODCALLTYPE SetState(
4459         SPAUDIOSTATE NewState,
4460         ULONGLONG ullReserved) = 0;
4461 
4462     virtual HRESULT STDMETHODCALLTYPE SetFormat(
4463         REFGUID rguidFmtId,
4464         const WAVEFORMATEX *pWaveFormatEx) = 0;
4465 
4466     virtual HRESULT STDMETHODCALLTYPE GetStatus(
4467         SPAUDIOSTATUS *pStatus) = 0;
4468 
4469     virtual HRESULT STDMETHODCALLTYPE SetBufferInfo(
4470         const SPAUDIOBUFFERINFO *pBuffInfo) = 0;
4471 
4472     virtual HRESULT STDMETHODCALLTYPE GetBufferInfo(
4473         SPAUDIOBUFFERINFO *pBuffInfo) = 0;
4474 
4475     virtual HRESULT STDMETHODCALLTYPE GetDefaultFormat(
4476         GUID *pFormatId,
4477         WAVEFORMATEX **ppCoMemWaveFormatEx) = 0;
4478 
4479     virtual HANDLE STDMETHODCALLTYPE EventHandle(
4480         ) = 0;
4481 
4482     virtual HRESULT STDMETHODCALLTYPE GetVolumeLevel(
4483         ULONG *pLevel) = 0;
4484 
4485     virtual HRESULT STDMETHODCALLTYPE SetVolumeLevel(
4486         ULONG Level) = 0;
4487 
4488     virtual HRESULT STDMETHODCALLTYPE GetBufferNotifySize(
4489         ULONG *pcbSize) = 0;
4490 
4491     virtual HRESULT STDMETHODCALLTYPE SetBufferNotifySize(
4492         ULONG cbSize) = 0;
4493 
4494 };
4495 #ifdef __CRT_UUID_DECL
4496 __CRT_UUID_DECL(ISpAudio, 0xc05c768f, 0xfae8, 0x4ec2, 0x8e,0x07, 0x33,0x83,0x21,0xc1,0x24,0x52)
4497 #endif
4498 #else
4499 typedef struct ISpAudioVtbl {
4500     BEGIN_INTERFACE
4501 
4502     /*** IUnknown methods ***/
4503     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4504         ISpAudio *This,
4505         REFIID riid,
4506         void **ppvObject);
4507 
4508     ULONG (STDMETHODCALLTYPE *AddRef)(
4509         ISpAudio *This);
4510 
4511     ULONG (STDMETHODCALLTYPE *Release)(
4512         ISpAudio *This);
4513 
4514     /*** ISequentialStream methods ***/
4515     HRESULT (STDMETHODCALLTYPE *Read)(
4516         ISpAudio *This,
4517         void *pv,
4518         ULONG cb,
4519         ULONG *pcbRead);
4520 
4521     HRESULT (STDMETHODCALLTYPE *Write)(
4522         ISpAudio *This,
4523         const void *pv,
4524         ULONG cb,
4525         ULONG *pcbWritten);
4526 
4527     /*** IStream methods ***/
4528     HRESULT (STDMETHODCALLTYPE *Seek)(
4529         ISpAudio *This,
4530         LARGE_INTEGER dlibMove,
4531         DWORD dwOrigin,
4532         ULARGE_INTEGER *plibNewPosition);
4533 
4534     HRESULT (STDMETHODCALLTYPE *SetSize)(
4535         ISpAudio *This,
4536         ULARGE_INTEGER libNewSize);
4537 
4538     HRESULT (STDMETHODCALLTYPE *CopyTo)(
4539         ISpAudio *This,
4540         IStream *pstm,
4541         ULARGE_INTEGER cb,
4542         ULARGE_INTEGER *pcbRead,
4543         ULARGE_INTEGER *pcbWritten);
4544 
4545     HRESULT (STDMETHODCALLTYPE *Commit)(
4546         ISpAudio *This,
4547         DWORD grfCommitFlags);
4548 
4549     HRESULT (STDMETHODCALLTYPE *Revert)(
4550         ISpAudio *This);
4551 
4552     HRESULT (STDMETHODCALLTYPE *LockRegion)(
4553         ISpAudio *This,
4554         ULARGE_INTEGER libOffset,
4555         ULARGE_INTEGER cb,
4556         DWORD dwLockType);
4557 
4558     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
4559         ISpAudio *This,
4560         ULARGE_INTEGER libOffset,
4561         ULARGE_INTEGER cb,
4562         DWORD dwLockType);
4563 
4564     HRESULT (STDMETHODCALLTYPE *Stat)(
4565         ISpAudio *This,
4566         STATSTG *pstatstg,
4567         DWORD grfStatFlag);
4568 
4569     HRESULT (STDMETHODCALLTYPE *Clone)(
4570         ISpAudio *This,
4571         IStream **ppstm);
4572 
4573     /*** ISpStreamFormat methods ***/
4574     HRESULT (STDMETHODCALLTYPE *GetFormat)(
4575         ISpAudio *This,
4576         GUID *pguidFormatId,
4577         WAVEFORMATEX **ppCoMemWaveFormatEx);
4578 
4579     /*** ISpAudio methods ***/
4580     HRESULT (STDMETHODCALLTYPE *SetState)(
4581         ISpAudio *This,
4582         SPAUDIOSTATE NewState,
4583         ULONGLONG ullReserved);
4584 
4585     HRESULT (STDMETHODCALLTYPE *SetFormat)(
4586         ISpAudio *This,
4587         REFGUID rguidFmtId,
4588         const WAVEFORMATEX *pWaveFormatEx);
4589 
4590     HRESULT (STDMETHODCALLTYPE *GetStatus)(
4591         ISpAudio *This,
4592         SPAUDIOSTATUS *pStatus);
4593 
4594     HRESULT (STDMETHODCALLTYPE *SetBufferInfo)(
4595         ISpAudio *This,
4596         const SPAUDIOBUFFERINFO *pBuffInfo);
4597 
4598     HRESULT (STDMETHODCALLTYPE *GetBufferInfo)(
4599         ISpAudio *This,
4600         SPAUDIOBUFFERINFO *pBuffInfo);
4601 
4602     HRESULT (STDMETHODCALLTYPE *GetDefaultFormat)(
4603         ISpAudio *This,
4604         GUID *pFormatId,
4605         WAVEFORMATEX **ppCoMemWaveFormatEx);
4606 
4607     HANDLE (STDMETHODCALLTYPE *EventHandle)(
4608         ISpAudio *This);
4609 
4610     HRESULT (STDMETHODCALLTYPE *GetVolumeLevel)(
4611         ISpAudio *This,
4612         ULONG *pLevel);
4613 
4614     HRESULT (STDMETHODCALLTYPE *SetVolumeLevel)(
4615         ISpAudio *This,
4616         ULONG Level);
4617 
4618     HRESULT (STDMETHODCALLTYPE *GetBufferNotifySize)(
4619         ISpAudio *This,
4620         ULONG *pcbSize);
4621 
4622     HRESULT (STDMETHODCALLTYPE *SetBufferNotifySize)(
4623         ISpAudio *This,
4624         ULONG cbSize);
4625 
4626     END_INTERFACE
4627 } ISpAudioVtbl;
4628 
4629 interface ISpAudio {
4630     CONST_VTBL ISpAudioVtbl* lpVtbl;
4631 };
4632 
4633 #ifdef COBJMACROS
4634 #ifndef WIDL_C_INLINE_WRAPPERS
4635 /*** IUnknown methods ***/
4636 #define ISpAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4637 #define ISpAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
4638 #define ISpAudio_Release(This) (This)->lpVtbl->Release(This)
4639 /*** ISequentialStream methods ***/
4640 #define ISpAudio_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
4641 #define ISpAudio_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
4642 /*** IStream methods ***/
4643 #define ISpAudio_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
4644 #define ISpAudio_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
4645 #define ISpAudio_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
4646 #define ISpAudio_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
4647 #define ISpAudio_Revert(This) (This)->lpVtbl->Revert(This)
4648 #define ISpAudio_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
4649 #define ISpAudio_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
4650 #define ISpAudio_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
4651 #define ISpAudio_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
4652 /*** ISpStreamFormat methods ***/
4653 #define ISpAudio_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
4654 /*** ISpAudio methods ***/
4655 #define ISpAudio_SetState(This,NewState,ullReserved) (This)->lpVtbl->SetState(This,NewState,ullReserved)
4656 #define ISpAudio_SetFormat(This,rguidFmtId,pWaveFormatEx) (This)->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx)
4657 #define ISpAudio_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
4658 #define ISpAudio_SetBufferInfo(This,pBuffInfo) (This)->lpVtbl->SetBufferInfo(This,pBuffInfo)
4659 #define ISpAudio_GetBufferInfo(This,pBuffInfo) (This)->lpVtbl->GetBufferInfo(This,pBuffInfo)
4660 #define ISpAudio_GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx)
4661 #define ISpAudio_EventHandle(This) (This)->lpVtbl->EventHandle(This)
4662 #define ISpAudio_GetVolumeLevel(This,pLevel) (This)->lpVtbl->GetVolumeLevel(This,pLevel)
4663 #define ISpAudio_SetVolumeLevel(This,Level) (This)->lpVtbl->SetVolumeLevel(This,Level)
4664 #define ISpAudio_GetBufferNotifySize(This,pcbSize) (This)->lpVtbl->GetBufferNotifySize(This,pcbSize)
4665 #define ISpAudio_SetBufferNotifySize(This,cbSize) (This)->lpVtbl->SetBufferNotifySize(This,cbSize)
4666 #else
4667 /*** IUnknown methods ***/
4668 static FORCEINLINE HRESULT ISpAudio_QueryInterface(ISpAudio* This,REFIID riid,void **ppvObject) {
4669     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4670 }
4671 static FORCEINLINE ULONG ISpAudio_AddRef(ISpAudio* This) {
4672     return This->lpVtbl->AddRef(This);
4673 }
4674 static FORCEINLINE ULONG ISpAudio_Release(ISpAudio* This) {
4675     return This->lpVtbl->Release(This);
4676 }
4677 /*** ISequentialStream methods ***/
4678 static FORCEINLINE HRESULT ISpAudio_Read(ISpAudio* This,void *pv,ULONG cb,ULONG *pcbRead) {
4679     return This->lpVtbl->Read(This,pv,cb,pcbRead);
4680 }
4681 static FORCEINLINE HRESULT ISpAudio_Write(ISpAudio* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
4682     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
4683 }
4684 /*** IStream methods ***/
4685 static FORCEINLINE HRESULT ISpAudio_Seek(ISpAudio* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
4686     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
4687 }
4688 static FORCEINLINE HRESULT ISpAudio_SetSize(ISpAudio* This,ULARGE_INTEGER libNewSize) {
4689     return This->lpVtbl->SetSize(This,libNewSize);
4690 }
4691 static FORCEINLINE HRESULT ISpAudio_CopyTo(ISpAudio* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
4692     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
4693 }
4694 static FORCEINLINE HRESULT ISpAudio_Commit(ISpAudio* This,DWORD grfCommitFlags) {
4695     return This->lpVtbl->Commit(This,grfCommitFlags);
4696 }
4697 static FORCEINLINE HRESULT ISpAudio_Revert(ISpAudio* This) {
4698     return This->lpVtbl->Revert(This);
4699 }
4700 static FORCEINLINE HRESULT ISpAudio_LockRegion(ISpAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4701     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
4702 }
4703 static FORCEINLINE HRESULT ISpAudio_UnlockRegion(ISpAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4704     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
4705 }
4706 static FORCEINLINE HRESULT ISpAudio_Stat(ISpAudio* This,STATSTG *pstatstg,DWORD grfStatFlag) {
4707     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
4708 }
4709 static FORCEINLINE HRESULT ISpAudio_Clone(ISpAudio* This,IStream **ppstm) {
4710     return This->lpVtbl->Clone(This,ppstm);
4711 }
4712 /*** ISpStreamFormat methods ***/
4713 static FORCEINLINE HRESULT ISpAudio_GetFormat(ISpAudio* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
4714     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
4715 }
4716 /*** ISpAudio methods ***/
4717 static FORCEINLINE HRESULT ISpAudio_SetState(ISpAudio* This,SPAUDIOSTATE NewState,ULONGLONG ullReserved) {
4718     return This->lpVtbl->SetState(This,NewState,ullReserved);
4719 }
4720 static FORCEINLINE HRESULT ISpAudio_SetFormat(ISpAudio* This,REFGUID rguidFmtId,const WAVEFORMATEX *pWaveFormatEx) {
4721     return This->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx);
4722 }
4723 static FORCEINLINE HRESULT ISpAudio_GetStatus(ISpAudio* This,SPAUDIOSTATUS *pStatus) {
4724     return This->lpVtbl->GetStatus(This,pStatus);
4725 }
4726 static FORCEINLINE HRESULT ISpAudio_SetBufferInfo(ISpAudio* This,const SPAUDIOBUFFERINFO *pBuffInfo) {
4727     return This->lpVtbl->SetBufferInfo(This,pBuffInfo);
4728 }
4729 static FORCEINLINE HRESULT ISpAudio_GetBufferInfo(ISpAudio* This,SPAUDIOBUFFERINFO *pBuffInfo) {
4730     return This->lpVtbl->GetBufferInfo(This,pBuffInfo);
4731 }
4732 static FORCEINLINE HRESULT ISpAudio_GetDefaultFormat(ISpAudio* This,GUID *pFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
4733     return This->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx);
4734 }
4735 static FORCEINLINE HANDLE ISpAudio_EventHandle(ISpAudio* This) {
4736     return This->lpVtbl->EventHandle(This);
4737 }
4738 static FORCEINLINE HRESULT ISpAudio_GetVolumeLevel(ISpAudio* This,ULONG *pLevel) {
4739     return This->lpVtbl->GetVolumeLevel(This,pLevel);
4740 }
4741 static FORCEINLINE HRESULT ISpAudio_SetVolumeLevel(ISpAudio* This,ULONG Level) {
4742     return This->lpVtbl->SetVolumeLevel(This,Level);
4743 }
4744 static FORCEINLINE HRESULT ISpAudio_GetBufferNotifySize(ISpAudio* This,ULONG *pcbSize) {
4745     return This->lpVtbl->GetBufferNotifySize(This,pcbSize);
4746 }
4747 static FORCEINLINE HRESULT ISpAudio_SetBufferNotifySize(ISpAudio* This,ULONG cbSize) {
4748     return This->lpVtbl->SetBufferNotifySize(This,cbSize);
4749 }
4750 #endif
4751 #endif
4752 
4753 #endif
4754 
4755 
4756 #endif  /* __ISpAudio_INTERFACE_DEFINED__ */
4757 
4758 /*****************************************************************************
4759  * ISpMMSysAudio interface
4760  */
4761 #ifndef __ISpMMSysAudio_INTERFACE_DEFINED__
4762 #define __ISpMMSysAudio_INTERFACE_DEFINED__
4763 
4764 DEFINE_GUID(IID_ISpMMSysAudio, 0x15806f6e, 0x1d70, 0x4b48, 0x98,0xe6, 0x3b,0x1a,0x00,0x75,0x09,0xab);
4765 #if defined(__cplusplus) && !defined(CINTERFACE)
4766 MIDL_INTERFACE("15806f6e-1d70-4b48-98e6-3b1a007509ab")
4767 ISpMMSysAudio : public ISpAudio
4768 {
4769     virtual HRESULT STDMETHODCALLTYPE GetDeviceId(
4770         UINT *puDeviceId) = 0;
4771 
4772     virtual HRESULT STDMETHODCALLTYPE SetDeviceId(
4773         UINT uDeviceId) = 0;
4774 
4775     virtual HRESULT STDMETHODCALLTYPE GetMMHandle(
4776         void **pHandle) = 0;
4777 
4778     virtual HRESULT STDMETHODCALLTYPE GetLineId(
4779         UINT *puLineId) = 0;
4780 
4781     virtual HRESULT STDMETHODCALLTYPE SetLineId(
4782         UINT uLineId) = 0;
4783 
4784 };
4785 #ifdef __CRT_UUID_DECL
4786 __CRT_UUID_DECL(ISpMMSysAudio, 0x15806f6e, 0x1d70, 0x4b48, 0x98,0xe6, 0x3b,0x1a,0x00,0x75,0x09,0xab)
4787 #endif
4788 #else
4789 typedef struct ISpMMSysAudioVtbl {
4790     BEGIN_INTERFACE
4791 
4792     /*** IUnknown methods ***/
4793     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4794         ISpMMSysAudio *This,
4795         REFIID riid,
4796         void **ppvObject);
4797 
4798     ULONG (STDMETHODCALLTYPE *AddRef)(
4799         ISpMMSysAudio *This);
4800 
4801     ULONG (STDMETHODCALLTYPE *Release)(
4802         ISpMMSysAudio *This);
4803 
4804     /*** ISequentialStream methods ***/
4805     HRESULT (STDMETHODCALLTYPE *Read)(
4806         ISpMMSysAudio *This,
4807         void *pv,
4808         ULONG cb,
4809         ULONG *pcbRead);
4810 
4811     HRESULT (STDMETHODCALLTYPE *Write)(
4812         ISpMMSysAudio *This,
4813         const void *pv,
4814         ULONG cb,
4815         ULONG *pcbWritten);
4816 
4817     /*** IStream methods ***/
4818     HRESULT (STDMETHODCALLTYPE *Seek)(
4819         ISpMMSysAudio *This,
4820         LARGE_INTEGER dlibMove,
4821         DWORD dwOrigin,
4822         ULARGE_INTEGER *plibNewPosition);
4823 
4824     HRESULT (STDMETHODCALLTYPE *SetSize)(
4825         ISpMMSysAudio *This,
4826         ULARGE_INTEGER libNewSize);
4827 
4828     HRESULT (STDMETHODCALLTYPE *CopyTo)(
4829         ISpMMSysAudio *This,
4830         IStream *pstm,
4831         ULARGE_INTEGER cb,
4832         ULARGE_INTEGER *pcbRead,
4833         ULARGE_INTEGER *pcbWritten);
4834 
4835     HRESULT (STDMETHODCALLTYPE *Commit)(
4836         ISpMMSysAudio *This,
4837         DWORD grfCommitFlags);
4838 
4839     HRESULT (STDMETHODCALLTYPE *Revert)(
4840         ISpMMSysAudio *This);
4841 
4842     HRESULT (STDMETHODCALLTYPE *LockRegion)(
4843         ISpMMSysAudio *This,
4844         ULARGE_INTEGER libOffset,
4845         ULARGE_INTEGER cb,
4846         DWORD dwLockType);
4847 
4848     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
4849         ISpMMSysAudio *This,
4850         ULARGE_INTEGER libOffset,
4851         ULARGE_INTEGER cb,
4852         DWORD dwLockType);
4853 
4854     HRESULT (STDMETHODCALLTYPE *Stat)(
4855         ISpMMSysAudio *This,
4856         STATSTG *pstatstg,
4857         DWORD grfStatFlag);
4858 
4859     HRESULT (STDMETHODCALLTYPE *Clone)(
4860         ISpMMSysAudio *This,
4861         IStream **ppstm);
4862 
4863     /*** ISpStreamFormat methods ***/
4864     HRESULT (STDMETHODCALLTYPE *GetFormat)(
4865         ISpMMSysAudio *This,
4866         GUID *pguidFormatId,
4867         WAVEFORMATEX **ppCoMemWaveFormatEx);
4868 
4869     /*** ISpAudio methods ***/
4870     HRESULT (STDMETHODCALLTYPE *SetState)(
4871         ISpMMSysAudio *This,
4872         SPAUDIOSTATE NewState,
4873         ULONGLONG ullReserved);
4874 
4875     HRESULT (STDMETHODCALLTYPE *SetFormat)(
4876         ISpMMSysAudio *This,
4877         REFGUID rguidFmtId,
4878         const WAVEFORMATEX *pWaveFormatEx);
4879 
4880     HRESULT (STDMETHODCALLTYPE *GetStatus)(
4881         ISpMMSysAudio *This,
4882         SPAUDIOSTATUS *pStatus);
4883 
4884     HRESULT (STDMETHODCALLTYPE *SetBufferInfo)(
4885         ISpMMSysAudio *This,
4886         const SPAUDIOBUFFERINFO *pBuffInfo);
4887 
4888     HRESULT (STDMETHODCALLTYPE *GetBufferInfo)(
4889         ISpMMSysAudio *This,
4890         SPAUDIOBUFFERINFO *pBuffInfo);
4891 
4892     HRESULT (STDMETHODCALLTYPE *GetDefaultFormat)(
4893         ISpMMSysAudio *This,
4894         GUID *pFormatId,
4895         WAVEFORMATEX **ppCoMemWaveFormatEx);
4896 
4897     HANDLE (STDMETHODCALLTYPE *EventHandle)(
4898         ISpMMSysAudio *This);
4899 
4900     HRESULT (STDMETHODCALLTYPE *GetVolumeLevel)(
4901         ISpMMSysAudio *This,
4902         ULONG *pLevel);
4903 
4904     HRESULT (STDMETHODCALLTYPE *SetVolumeLevel)(
4905         ISpMMSysAudio *This,
4906         ULONG Level);
4907 
4908     HRESULT (STDMETHODCALLTYPE *GetBufferNotifySize)(
4909         ISpMMSysAudio *This,
4910         ULONG *pcbSize);
4911 
4912     HRESULT (STDMETHODCALLTYPE *SetBufferNotifySize)(
4913         ISpMMSysAudio *This,
4914         ULONG cbSize);
4915 
4916     /*** ISpMMSysAudio methods ***/
4917     HRESULT (STDMETHODCALLTYPE *GetDeviceId)(
4918         ISpMMSysAudio *This,
4919         UINT *puDeviceId);
4920 
4921     HRESULT (STDMETHODCALLTYPE *SetDeviceId)(
4922         ISpMMSysAudio *This,
4923         UINT uDeviceId);
4924 
4925     HRESULT (STDMETHODCALLTYPE *GetMMHandle)(
4926         ISpMMSysAudio *This,
4927         void **pHandle);
4928 
4929     HRESULT (STDMETHODCALLTYPE *GetLineId)(
4930         ISpMMSysAudio *This,
4931         UINT *puLineId);
4932 
4933     HRESULT (STDMETHODCALLTYPE *SetLineId)(
4934         ISpMMSysAudio *This,
4935         UINT uLineId);
4936 
4937     END_INTERFACE
4938 } ISpMMSysAudioVtbl;
4939 
4940 interface ISpMMSysAudio {
4941     CONST_VTBL ISpMMSysAudioVtbl* lpVtbl;
4942 };
4943 
4944 #ifdef COBJMACROS
4945 #ifndef WIDL_C_INLINE_WRAPPERS
4946 /*** IUnknown methods ***/
4947 #define ISpMMSysAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4948 #define ISpMMSysAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
4949 #define ISpMMSysAudio_Release(This) (This)->lpVtbl->Release(This)
4950 /*** ISequentialStream methods ***/
4951 #define ISpMMSysAudio_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
4952 #define ISpMMSysAudio_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
4953 /*** IStream methods ***/
4954 #define ISpMMSysAudio_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
4955 #define ISpMMSysAudio_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
4956 #define ISpMMSysAudio_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
4957 #define ISpMMSysAudio_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
4958 #define ISpMMSysAudio_Revert(This) (This)->lpVtbl->Revert(This)
4959 #define ISpMMSysAudio_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
4960 #define ISpMMSysAudio_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
4961 #define ISpMMSysAudio_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
4962 #define ISpMMSysAudio_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
4963 /*** ISpStreamFormat methods ***/
4964 #define ISpMMSysAudio_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
4965 /*** ISpAudio methods ***/
4966 #define ISpMMSysAudio_SetState(This,NewState,ullReserved) (This)->lpVtbl->SetState(This,NewState,ullReserved)
4967 #define ISpMMSysAudio_SetFormat(This,rguidFmtId,pWaveFormatEx) (This)->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx)
4968 #define ISpMMSysAudio_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
4969 #define ISpMMSysAudio_SetBufferInfo(This,pBuffInfo) (This)->lpVtbl->SetBufferInfo(This,pBuffInfo)
4970 #define ISpMMSysAudio_GetBufferInfo(This,pBuffInfo) (This)->lpVtbl->GetBufferInfo(This,pBuffInfo)
4971 #define ISpMMSysAudio_GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx)
4972 #define ISpMMSysAudio_EventHandle(This) (This)->lpVtbl->EventHandle(This)
4973 #define ISpMMSysAudio_GetVolumeLevel(This,pLevel) (This)->lpVtbl->GetVolumeLevel(This,pLevel)
4974 #define ISpMMSysAudio_SetVolumeLevel(This,Level) (This)->lpVtbl->SetVolumeLevel(This,Level)
4975 #define ISpMMSysAudio_GetBufferNotifySize(This,pcbSize) (This)->lpVtbl->GetBufferNotifySize(This,pcbSize)
4976 #define ISpMMSysAudio_SetBufferNotifySize(This,cbSize) (This)->lpVtbl->SetBufferNotifySize(This,cbSize)
4977 /*** ISpMMSysAudio methods ***/
4978 #define ISpMMSysAudio_GetDeviceId(This,puDeviceId) (This)->lpVtbl->GetDeviceId(This,puDeviceId)
4979 #define ISpMMSysAudio_SetDeviceId(This,uDeviceId) (This)->lpVtbl->SetDeviceId(This,uDeviceId)
4980 #define ISpMMSysAudio_GetMMHandle(This,pHandle) (This)->lpVtbl->GetMMHandle(This,pHandle)
4981 #define ISpMMSysAudio_GetLineId(This,puLineId) (This)->lpVtbl->GetLineId(This,puLineId)
4982 #define ISpMMSysAudio_SetLineId(This,uLineId) (This)->lpVtbl->SetLineId(This,uLineId)
4983 #else
4984 /*** IUnknown methods ***/
4985 static FORCEINLINE HRESULT ISpMMSysAudio_QueryInterface(ISpMMSysAudio* This,REFIID riid,void **ppvObject) {
4986     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4987 }
4988 static FORCEINLINE ULONG ISpMMSysAudio_AddRef(ISpMMSysAudio* This) {
4989     return This->lpVtbl->AddRef(This);
4990 }
4991 static FORCEINLINE ULONG ISpMMSysAudio_Release(ISpMMSysAudio* This) {
4992     return This->lpVtbl->Release(This);
4993 }
4994 /*** ISequentialStream methods ***/
4995 static FORCEINLINE HRESULT ISpMMSysAudio_Read(ISpMMSysAudio* This,void *pv,ULONG cb,ULONG *pcbRead) {
4996     return This->lpVtbl->Read(This,pv,cb,pcbRead);
4997 }
4998 static FORCEINLINE HRESULT ISpMMSysAudio_Write(ISpMMSysAudio* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
4999     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
5000 }
5001 /*** IStream methods ***/
5002 static FORCEINLINE HRESULT ISpMMSysAudio_Seek(ISpMMSysAudio* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
5003     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
5004 }
5005 static FORCEINLINE HRESULT ISpMMSysAudio_SetSize(ISpMMSysAudio* This,ULARGE_INTEGER libNewSize) {
5006     return This->lpVtbl->SetSize(This,libNewSize);
5007 }
5008 static FORCEINLINE HRESULT ISpMMSysAudio_CopyTo(ISpMMSysAudio* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
5009     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
5010 }
5011 static FORCEINLINE HRESULT ISpMMSysAudio_Commit(ISpMMSysAudio* This,DWORD grfCommitFlags) {
5012     return This->lpVtbl->Commit(This,grfCommitFlags);
5013 }
5014 static FORCEINLINE HRESULT ISpMMSysAudio_Revert(ISpMMSysAudio* This) {
5015     return This->lpVtbl->Revert(This);
5016 }
5017 static FORCEINLINE HRESULT ISpMMSysAudio_LockRegion(ISpMMSysAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
5018     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
5019 }
5020 static FORCEINLINE HRESULT ISpMMSysAudio_UnlockRegion(ISpMMSysAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
5021     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
5022 }
5023 static FORCEINLINE HRESULT ISpMMSysAudio_Stat(ISpMMSysAudio* This,STATSTG *pstatstg,DWORD grfStatFlag) {
5024     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
5025 }
5026 static FORCEINLINE HRESULT ISpMMSysAudio_Clone(ISpMMSysAudio* This,IStream **ppstm) {
5027     return This->lpVtbl->Clone(This,ppstm);
5028 }
5029 /*** ISpStreamFormat methods ***/
5030 static FORCEINLINE HRESULT ISpMMSysAudio_GetFormat(ISpMMSysAudio* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
5031     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
5032 }
5033 /*** ISpAudio methods ***/
5034 static FORCEINLINE HRESULT ISpMMSysAudio_SetState(ISpMMSysAudio* This,SPAUDIOSTATE NewState,ULONGLONG ullReserved) {
5035     return This->lpVtbl->SetState(This,NewState,ullReserved);
5036 }
5037 static FORCEINLINE HRESULT ISpMMSysAudio_SetFormat(ISpMMSysAudio* This,REFGUID rguidFmtId,const WAVEFORMATEX *pWaveFormatEx) {
5038     return This->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx);
5039 }
5040 static FORCEINLINE HRESULT ISpMMSysAudio_GetStatus(ISpMMSysAudio* This,SPAUDIOSTATUS *pStatus) {
5041     return This->lpVtbl->GetStatus(This,pStatus);
5042 }
5043 static FORCEINLINE HRESULT ISpMMSysAudio_SetBufferInfo(ISpMMSysAudio* This,const SPAUDIOBUFFERINFO *pBuffInfo) {
5044     return This->lpVtbl->SetBufferInfo(This,pBuffInfo);
5045 }
5046 static FORCEINLINE HRESULT ISpMMSysAudio_GetBufferInfo(ISpMMSysAudio* This,SPAUDIOBUFFERINFO *pBuffInfo) {
5047     return This->lpVtbl->GetBufferInfo(This,pBuffInfo);
5048 }
5049 static FORCEINLINE HRESULT ISpMMSysAudio_GetDefaultFormat(ISpMMSysAudio* This,GUID *pFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
5050     return This->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx);
5051 }
5052 static FORCEINLINE HANDLE ISpMMSysAudio_EventHandle(ISpMMSysAudio* This) {
5053     return This->lpVtbl->EventHandle(This);
5054 }
5055 static FORCEINLINE HRESULT ISpMMSysAudio_GetVolumeLevel(ISpMMSysAudio* This,ULONG *pLevel) {
5056     return This->lpVtbl->GetVolumeLevel(This,pLevel);
5057 }
5058 static FORCEINLINE HRESULT ISpMMSysAudio_SetVolumeLevel(ISpMMSysAudio* This,ULONG Level) {
5059     return This->lpVtbl->SetVolumeLevel(This,Level);
5060 }
5061 static FORCEINLINE HRESULT ISpMMSysAudio_GetBufferNotifySize(ISpMMSysAudio* This,ULONG *pcbSize) {
5062     return This->lpVtbl->GetBufferNotifySize(This,pcbSize);
5063 }
5064 static FORCEINLINE HRESULT ISpMMSysAudio_SetBufferNotifySize(ISpMMSysAudio* This,ULONG cbSize) {
5065     return This->lpVtbl->SetBufferNotifySize(This,cbSize);
5066 }
5067 /*** ISpMMSysAudio methods ***/
5068 static FORCEINLINE HRESULT ISpMMSysAudio_GetDeviceId(ISpMMSysAudio* This,UINT *puDeviceId) {
5069     return This->lpVtbl->GetDeviceId(This,puDeviceId);
5070 }
5071 static FORCEINLINE HRESULT ISpMMSysAudio_SetDeviceId(ISpMMSysAudio* This,UINT uDeviceId) {
5072     return This->lpVtbl->SetDeviceId(This,uDeviceId);
5073 }
5074 static FORCEINLINE HRESULT ISpMMSysAudio_GetMMHandle(ISpMMSysAudio* This,void **pHandle) {
5075     return This->lpVtbl->GetMMHandle(This,pHandle);
5076 }
5077 static FORCEINLINE HRESULT ISpMMSysAudio_GetLineId(ISpMMSysAudio* This,UINT *puLineId) {
5078     return This->lpVtbl->GetLineId(This,puLineId);
5079 }
5080 static FORCEINLINE HRESULT ISpMMSysAudio_SetLineId(ISpMMSysAudio* This,UINT uLineId) {
5081     return This->lpVtbl->SetLineId(This,uLineId);
5082 }
5083 #endif
5084 #endif
5085 
5086 #endif
5087 
5088 
5089 #endif  /* __ISpMMSysAudio_INTERFACE_DEFINED__ */
5090 
5091 /*****************************************************************************
5092  * ISpTranscript interface
5093  */
5094 #ifndef __ISpTranscript_INTERFACE_DEFINED__
5095 #define __ISpTranscript_INTERFACE_DEFINED__
5096 
5097 DEFINE_GUID(IID_ISpTranscript, 0x10f63bce, 0x201a, 0x11d3, 0xac,0x70, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
5098 #if defined(__cplusplus) && !defined(CINTERFACE)
5099 MIDL_INTERFACE("10f63bce-201a-11d3-ac70-00c04f8ee6c0")
5100 ISpTranscript : public IUnknown
5101 {
5102     virtual HRESULT STDMETHODCALLTYPE GetTranscript(
5103         LPWSTR *ppszTranscript) = 0;
5104 
5105     virtual HRESULT STDMETHODCALLTYPE AppendTranscript(
5106         LPCWSTR pszTranscript) = 0;
5107 
5108 };
5109 #ifdef __CRT_UUID_DECL
5110 __CRT_UUID_DECL(ISpTranscript, 0x10f63bce, 0x201a, 0x11d3, 0xac,0x70, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
5111 #endif
5112 #else
5113 typedef struct ISpTranscriptVtbl {
5114     BEGIN_INTERFACE
5115 
5116     /*** IUnknown methods ***/
5117     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5118         ISpTranscript *This,
5119         REFIID riid,
5120         void **ppvObject);
5121 
5122     ULONG (STDMETHODCALLTYPE *AddRef)(
5123         ISpTranscript *This);
5124 
5125     ULONG (STDMETHODCALLTYPE *Release)(
5126         ISpTranscript *This);
5127 
5128     /*** ISpTranscript methods ***/
5129     HRESULT (STDMETHODCALLTYPE *GetTranscript)(
5130         ISpTranscript *This,
5131         LPWSTR *ppszTranscript);
5132 
5133     HRESULT (STDMETHODCALLTYPE *AppendTranscript)(
5134         ISpTranscript *This,
5135         LPCWSTR pszTranscript);
5136 
5137     END_INTERFACE
5138 } ISpTranscriptVtbl;
5139 
5140 interface ISpTranscript {
5141     CONST_VTBL ISpTranscriptVtbl* lpVtbl;
5142 };
5143 
5144 #ifdef COBJMACROS
5145 #ifndef WIDL_C_INLINE_WRAPPERS
5146 /*** IUnknown methods ***/
5147 #define ISpTranscript_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5148 #define ISpTranscript_AddRef(This) (This)->lpVtbl->AddRef(This)
5149 #define ISpTranscript_Release(This) (This)->lpVtbl->Release(This)
5150 /*** ISpTranscript methods ***/
5151 #define ISpTranscript_GetTranscript(This,ppszTranscript) (This)->lpVtbl->GetTranscript(This,ppszTranscript)
5152 #define ISpTranscript_AppendTranscript(This,pszTranscript) (This)->lpVtbl->AppendTranscript(This,pszTranscript)
5153 #else
5154 /*** IUnknown methods ***/
5155 static FORCEINLINE HRESULT ISpTranscript_QueryInterface(ISpTranscript* This,REFIID riid,void **ppvObject) {
5156     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5157 }
5158 static FORCEINLINE ULONG ISpTranscript_AddRef(ISpTranscript* This) {
5159     return This->lpVtbl->AddRef(This);
5160 }
5161 static FORCEINLINE ULONG ISpTranscript_Release(ISpTranscript* This) {
5162     return This->lpVtbl->Release(This);
5163 }
5164 /*** ISpTranscript methods ***/
5165 static FORCEINLINE HRESULT ISpTranscript_GetTranscript(ISpTranscript* This,LPWSTR *ppszTranscript) {
5166     return This->lpVtbl->GetTranscript(This,ppszTranscript);
5167 }
5168 static FORCEINLINE HRESULT ISpTranscript_AppendTranscript(ISpTranscript* This,LPCWSTR pszTranscript) {
5169     return This->lpVtbl->AppendTranscript(This,pszTranscript);
5170 }
5171 #endif
5172 #endif
5173 
5174 #endif
5175 
5176 
5177 #endif  /* __ISpTranscript_INTERFACE_DEFINED__ */
5178 
5179 typedef WCHAR SPPHONEID;
5180 typedef LPWSTR PSPPHONEID;
5181 typedef LPCWSTR PCSPPHONEID;
5182 typedef struct SPPHRASEELEMENT {
5183     ULONG ulAudioTimeOffset;
5184     ULONG ulAudioSizeTime;
5185     ULONG ulAudioStreamOffset;
5186     ULONG ulAudioSizeBytes;
5187     ULONG ulRetainedStreamOffset;
5188     ULONG ulRetainedSizeBytes;
5189     LPCWSTR pszDisplayText;
5190     LPCWSTR pszLexicalForm;
5191     const SPPHONEID *pszPronunciation;
5192     BYTE bDisplayAttributes;
5193     signed char RequiredConfidence;
5194     signed char ActualConfidence;
5195     BYTE Reserved;
5196     float SREngineConfidence;
5197 } SPPHRASEELEMENT;
5198 typedef struct SPPHRASERULE SPPHRASERULE;
5199 typedef struct SPPHRASEPROPERTY SPPHRASEPROPERTY;
5200 struct SPPHRASERULE {
5201     LPCWSTR pszName;
5202     ULONG ulId;
5203     ULONG ulFirstElement;
5204     ULONG ulCountOfElements;
5205     const SPPHRASERULE *pNextSibling;
5206     const SPPHRASERULE *pFirstChild;
5207     float SREngineConfidence;
5208     signed char Confidence;
5209 };
5210 struct SPPHRASEPROPERTY {
5211     LPCWSTR pszName;
5212     __C89_NAMELESS union {
5213         ULONG ulId;
5214         __C89_NAMELESS struct {
5215             byte bType;
5216             byte bReserved;
5217             unsigned short usArrayIndex;
5218         } __C89_NAMELESSSTRUCTNAME;
5219     } __C89_NAMELESSUNIONNAME;
5220     LPCWSTR pszValue;
5221     VARIANT vValue;
5222     ULONG ulFirstElement;
5223     ULONG ulCountOfElements;
5224     const SPPHRASEPROPERTY *pNextSibling;
5225     const SPPHRASEPROPERTY *pFirstChild;
5226     float SREngineConfidence;
5227     signed char Confidence;
5228 };
5229 typedef struct SPPHRASEREPLACEMENT {
5230     BYTE bDisplayAttributes;
5231     LPCWSTR pszReplacementText;
5232     ULONG ulFirstElement;
5233     ULONG ulCountOfElements;
5234 } SPPHRASEREPLACEMENT;
5235 typedef struct SPPHRASE {
5236     ULONG cbSize;
5237     WORD LangID;
5238     WORD wHomophoneGroupId;
5239     ULONGLONG ullGrammarID;
5240     ULONGLONG ftStartTime;
5241     ULONGLONG ullAudioStreamPosition;
5242     ULONG ulAudioSizeBytes;
5243     ULONG ulRetainedSizeBytes;
5244     ULONG ulAudioSizeTime;
5245     SPPHRASERULE Rule;
5246     const SPPHRASEPROPERTY *pProperties;
5247     const SPPHRASEELEMENT *pElements;
5248     ULONG cReplacements;
5249     const SPPHRASEREPLACEMENT *pReplacements;
5250     GUID SREngineID;
5251     ULONG ulSREnginePrivateDataSize;
5252     const BYTE *pSREnginePrivateData;
5253 } SPPHRASE;
5254 typedef struct SPSERIALIZEDPHRASE {
5255     ULONG ulSerializedSize;
5256 } SPSERIALIZEDPHRASE;
5257 typedef struct SPBINARYGRAMMAR {
5258     ULONG ulTotalSerializedSize;
5259 } SPBINARYGRAMMAR;
5260 #if 0
5261 typedef void *SPSTATEHANDLE;
5262 #else
5263 DECLARE_HANDLE(SPSTATEHANDLE);
5264 #endif
5265 typedef struct SPWORDPRONUNCIATION {
5266     struct SPWORDPRONUNCIATION *pNextWordPronunciation;
5267     SPLEXICONTYPE eLexiconType;
5268     WORD LangID;
5269     WORD wPronunciationFlags;
5270     SPPARTOFSPEECH ePartOfSpeech;
5271     SPPHONEID szPronunciation[1];
5272 } SPWORDPRONUNCIATION;
5273 typedef struct SPWORDPRONUNCIATIONLIST {
5274     ULONG ulSize;
5275     BYTE *pvBuffer;
5276     SPWORDPRONUNCIATION *pFirstWordPronunciation;
5277 } SPWORDPRONUNCIATIONLIST;
5278 typedef struct SPWORD {
5279     struct SPWORD *pNextWord;
5280     WORD LangID;
5281     WORD wReserved;
5282     SPWORDTYPE eWordType;
5283     LPWSTR pszWord;
5284     SPWORDPRONUNCIATION *pFirstWordPronunciation;
5285 } SPWORD;
5286 typedef struct SPWORDLIST {
5287     ULONG ulSize;
5288     BYTE *pvBuffer;
5289     SPWORD *pFirstWord;
5290 } SPWORDLIST;
5291 /*****************************************************************************
5292  * ISpLexicon interface
5293  */
5294 #ifndef __ISpLexicon_INTERFACE_DEFINED__
5295 #define __ISpLexicon_INTERFACE_DEFINED__
5296 
5297 DEFINE_GUID(IID_ISpLexicon, 0xda41a7c2, 0x5383, 0x4db2, 0x91,0x6b, 0x6c,0x17,0x19,0xe3,0xdb,0x58);
5298 #if defined(__cplusplus) && !defined(CINTERFACE)
5299 MIDL_INTERFACE("da41a7c2-5383-4db2-916b-6c1719e3db58")
5300 ISpLexicon : public IUnknown
5301 {
5302     virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
5303         LPCWSTR pszWord,
5304         WORD LangID,
5305         DWORD dwFlags,
5306         SPWORDPRONUNCIATIONLIST *pWordPronunciationList) = 0;
5307 
5308     virtual HRESULT STDMETHODCALLTYPE AddPronunciation(
5309         LPCWSTR pszWord,
5310         WORD LangID,
5311         SPPARTOFSPEECH ePartOfSpeech,
5312         PCSPPHONEID pszPronunciation) = 0;
5313 
5314     virtual HRESULT STDMETHODCALLTYPE RemovePronunciation(
5315         LPCWSTR pszWord,
5316         WORD LangID,
5317         SPPARTOFSPEECH ePartOfSpeech,
5318         PCSPPHONEID pszPronunciation) = 0;
5319 
5320     virtual HRESULT STDMETHODCALLTYPE GetGeneration(
5321         DWORD *pdwGeneration) = 0;
5322 
5323     virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
5324         DWORD dwFlags,
5325         DWORD *pdwGeneration,
5326         SPWORDLIST *pWordList) = 0;
5327 
5328     virtual HRESULT STDMETHODCALLTYPE GetWords(
5329         DWORD dwFlags,
5330         DWORD *pdwGeneration,
5331         DWORD *pdwCookie,
5332         SPWORDLIST *pWordList) = 0;
5333 
5334 };
5335 #ifdef __CRT_UUID_DECL
5336 __CRT_UUID_DECL(ISpLexicon, 0xda41a7c2, 0x5383, 0x4db2, 0x91,0x6b, 0x6c,0x17,0x19,0xe3,0xdb,0x58)
5337 #endif
5338 #else
5339 typedef struct ISpLexiconVtbl {
5340     BEGIN_INTERFACE
5341 
5342     /*** IUnknown methods ***/
5343     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5344         ISpLexicon *This,
5345         REFIID riid,
5346         void **ppvObject);
5347 
5348     ULONG (STDMETHODCALLTYPE *AddRef)(
5349         ISpLexicon *This);
5350 
5351     ULONG (STDMETHODCALLTYPE *Release)(
5352         ISpLexicon *This);
5353 
5354     /*** ISpLexicon methods ***/
5355     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
5356         ISpLexicon *This,
5357         LPCWSTR pszWord,
5358         WORD LangID,
5359         DWORD dwFlags,
5360         SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
5361 
5362     HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
5363         ISpLexicon *This,
5364         LPCWSTR pszWord,
5365         WORD LangID,
5366         SPPARTOFSPEECH ePartOfSpeech,
5367         PCSPPHONEID pszPronunciation);
5368 
5369     HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
5370         ISpLexicon *This,
5371         LPCWSTR pszWord,
5372         WORD LangID,
5373         SPPARTOFSPEECH ePartOfSpeech,
5374         PCSPPHONEID pszPronunciation);
5375 
5376     HRESULT (STDMETHODCALLTYPE *GetGeneration)(
5377         ISpLexicon *This,
5378         DWORD *pdwGeneration);
5379 
5380     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
5381         ISpLexicon *This,
5382         DWORD dwFlags,
5383         DWORD *pdwGeneration,
5384         SPWORDLIST *pWordList);
5385 
5386     HRESULT (STDMETHODCALLTYPE *GetWords)(
5387         ISpLexicon *This,
5388         DWORD dwFlags,
5389         DWORD *pdwGeneration,
5390         DWORD *pdwCookie,
5391         SPWORDLIST *pWordList);
5392 
5393     END_INTERFACE
5394 } ISpLexiconVtbl;
5395 
5396 interface ISpLexicon {
5397     CONST_VTBL ISpLexiconVtbl* lpVtbl;
5398 };
5399 
5400 #ifdef COBJMACROS
5401 #ifndef WIDL_C_INLINE_WRAPPERS
5402 /*** IUnknown methods ***/
5403 #define ISpLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5404 #define ISpLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
5405 #define ISpLexicon_Release(This) (This)->lpVtbl->Release(This)
5406 /*** ISpLexicon methods ***/
5407 #define ISpLexicon_GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList)
5408 #define ISpLexicon_AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
5409 #define ISpLexicon_RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
5410 #define ISpLexicon_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
5411 #define ISpLexicon_GetGenerationChange(This,dwFlags,pdwGeneration,pWordList) (This)->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList)
5412 #define ISpLexicon_GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList)
5413 #else
5414 /*** IUnknown methods ***/
5415 static FORCEINLINE HRESULT ISpLexicon_QueryInterface(ISpLexicon* This,REFIID riid,void **ppvObject) {
5416     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5417 }
5418 static FORCEINLINE ULONG ISpLexicon_AddRef(ISpLexicon* This) {
5419     return This->lpVtbl->AddRef(This);
5420 }
5421 static FORCEINLINE ULONG ISpLexicon_Release(ISpLexicon* This) {
5422     return This->lpVtbl->Release(This);
5423 }
5424 /*** ISpLexicon methods ***/
5425 static FORCEINLINE HRESULT ISpLexicon_GetPronunciations(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,DWORD dwFlags,SPWORDPRONUNCIATIONLIST *pWordPronunciationList) {
5426     return This->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList);
5427 }
5428 static FORCEINLINE HRESULT ISpLexicon_AddPronunciation(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
5429     return This->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
5430 }
5431 static FORCEINLINE HRESULT ISpLexicon_RemovePronunciation(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
5432     return This->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
5433 }
5434 static FORCEINLINE HRESULT ISpLexicon_GetGeneration(ISpLexicon* This,DWORD *pdwGeneration) {
5435     return This->lpVtbl->GetGeneration(This,pdwGeneration);
5436 }
5437 static FORCEINLINE HRESULT ISpLexicon_GetGenerationChange(ISpLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
5438     return This->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList);
5439 }
5440 static FORCEINLINE HRESULT ISpLexicon_GetWords(ISpLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
5441     return This->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList);
5442 }
5443 #endif
5444 #endif
5445 
5446 #endif
5447 
5448 
5449 #endif  /* __ISpLexicon_INTERFACE_DEFINED__ */
5450 
5451 /*****************************************************************************
5452  * ISpContainerLexicon interface
5453  */
5454 #ifndef __ISpContainerLexicon_INTERFACE_DEFINED__
5455 #define __ISpContainerLexicon_INTERFACE_DEFINED__
5456 
5457 DEFINE_GUID(IID_ISpContainerLexicon, 0x8565572f, 0xc094, 0x41cc, 0xb5,0x6e, 0x10,0xbd,0x9c,0x3f,0xf0,0x44);
5458 #if defined(__cplusplus) && !defined(CINTERFACE)
5459 MIDL_INTERFACE("8565572f-c094-41cc-b56e-10bd9c3ff044")
5460 ISpContainerLexicon : public ISpLexicon
5461 {
5462     virtual HRESULT STDMETHODCALLTYPE AddLexicon(
5463         ISpLexicon *pAddLexicon,
5464         DWORD dwFlags) = 0;
5465 
5466 };
5467 #ifdef __CRT_UUID_DECL
5468 __CRT_UUID_DECL(ISpContainerLexicon, 0x8565572f, 0xc094, 0x41cc, 0xb5,0x6e, 0x10,0xbd,0x9c,0x3f,0xf0,0x44)
5469 #endif
5470 #else
5471 typedef struct ISpContainerLexiconVtbl {
5472     BEGIN_INTERFACE
5473 
5474     /*** IUnknown methods ***/
5475     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5476         ISpContainerLexicon *This,
5477         REFIID riid,
5478         void **ppvObject);
5479 
5480     ULONG (STDMETHODCALLTYPE *AddRef)(
5481         ISpContainerLexicon *This);
5482 
5483     ULONG (STDMETHODCALLTYPE *Release)(
5484         ISpContainerLexicon *This);
5485 
5486     /*** ISpLexicon methods ***/
5487     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
5488         ISpContainerLexicon *This,
5489         LPCWSTR pszWord,
5490         WORD LangID,
5491         DWORD dwFlags,
5492         SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
5493 
5494     HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
5495         ISpContainerLexicon *This,
5496         LPCWSTR pszWord,
5497         WORD LangID,
5498         SPPARTOFSPEECH ePartOfSpeech,
5499         PCSPPHONEID pszPronunciation);
5500 
5501     HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
5502         ISpContainerLexicon *This,
5503         LPCWSTR pszWord,
5504         WORD LangID,
5505         SPPARTOFSPEECH ePartOfSpeech,
5506         PCSPPHONEID pszPronunciation);
5507 
5508     HRESULT (STDMETHODCALLTYPE *GetGeneration)(
5509         ISpContainerLexicon *This,
5510         DWORD *pdwGeneration);
5511 
5512     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
5513         ISpContainerLexicon *This,
5514         DWORD dwFlags,
5515         DWORD *pdwGeneration,
5516         SPWORDLIST *pWordList);
5517 
5518     HRESULT (STDMETHODCALLTYPE *GetWords)(
5519         ISpContainerLexicon *This,
5520         DWORD dwFlags,
5521         DWORD *pdwGeneration,
5522         DWORD *pdwCookie,
5523         SPWORDLIST *pWordList);
5524 
5525     /*** ISpContainerLexicon methods ***/
5526     HRESULT (STDMETHODCALLTYPE *AddLexicon)(
5527         ISpContainerLexicon *This,
5528         ISpLexicon *pAddLexicon,
5529         DWORD dwFlags);
5530 
5531     END_INTERFACE
5532 } ISpContainerLexiconVtbl;
5533 
5534 interface ISpContainerLexicon {
5535     CONST_VTBL ISpContainerLexiconVtbl* lpVtbl;
5536 };
5537 
5538 #ifdef COBJMACROS
5539 #ifndef WIDL_C_INLINE_WRAPPERS
5540 /*** IUnknown methods ***/
5541 #define ISpContainerLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5542 #define ISpContainerLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
5543 #define ISpContainerLexicon_Release(This) (This)->lpVtbl->Release(This)
5544 /*** ISpLexicon methods ***/
5545 #define ISpContainerLexicon_GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList)
5546 #define ISpContainerLexicon_AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
5547 #define ISpContainerLexicon_RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
5548 #define ISpContainerLexicon_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
5549 #define ISpContainerLexicon_GetGenerationChange(This,dwFlags,pdwGeneration,pWordList) (This)->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList)
5550 #define ISpContainerLexicon_GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList)
5551 /*** ISpContainerLexicon methods ***/
5552 #define ISpContainerLexicon_AddLexicon(This,pAddLexicon,dwFlags) (This)->lpVtbl->AddLexicon(This,pAddLexicon,dwFlags)
5553 #else
5554 /*** IUnknown methods ***/
5555 static FORCEINLINE HRESULT ISpContainerLexicon_QueryInterface(ISpContainerLexicon* This,REFIID riid,void **ppvObject) {
5556     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5557 }
5558 static FORCEINLINE ULONG ISpContainerLexicon_AddRef(ISpContainerLexicon* This) {
5559     return This->lpVtbl->AddRef(This);
5560 }
5561 static FORCEINLINE ULONG ISpContainerLexicon_Release(ISpContainerLexicon* This) {
5562     return This->lpVtbl->Release(This);
5563 }
5564 /*** ISpLexicon methods ***/
5565 static FORCEINLINE HRESULT ISpContainerLexicon_GetPronunciations(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,DWORD dwFlags,SPWORDPRONUNCIATIONLIST *pWordPronunciationList) {
5566     return This->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList);
5567 }
5568 static FORCEINLINE HRESULT ISpContainerLexicon_AddPronunciation(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
5569     return This->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
5570 }
5571 static FORCEINLINE HRESULT ISpContainerLexicon_RemovePronunciation(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
5572     return This->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
5573 }
5574 static FORCEINLINE HRESULT ISpContainerLexicon_GetGeneration(ISpContainerLexicon* This,DWORD *pdwGeneration) {
5575     return This->lpVtbl->GetGeneration(This,pdwGeneration);
5576 }
5577 static FORCEINLINE HRESULT ISpContainerLexicon_GetGenerationChange(ISpContainerLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
5578     return This->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList);
5579 }
5580 static FORCEINLINE HRESULT ISpContainerLexicon_GetWords(ISpContainerLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
5581     return This->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList);
5582 }
5583 /*** ISpContainerLexicon methods ***/
5584 static FORCEINLINE HRESULT ISpContainerLexicon_AddLexicon(ISpContainerLexicon* This,ISpLexicon *pAddLexicon,DWORD dwFlags) {
5585     return This->lpVtbl->AddLexicon(This,pAddLexicon,dwFlags);
5586 }
5587 #endif
5588 #endif
5589 
5590 #endif
5591 
5592 
5593 #endif  /* __ISpContainerLexicon_INTERFACE_DEFINED__ */
5594 
5595 /*****************************************************************************
5596  * ISpPhoneConverter interface
5597  */
5598 #ifndef __ISpPhoneConverter_INTERFACE_DEFINED__
5599 #define __ISpPhoneConverter_INTERFACE_DEFINED__
5600 
5601 DEFINE_GUID(IID_ISpPhoneConverter, 0x8445c581, 0x0cac, 0x4a38, 0xab,0xfe, 0x9b,0x2c,0xe2,0x82,0x64,0x55);
5602 #if defined(__cplusplus) && !defined(CINTERFACE)
5603 MIDL_INTERFACE("8445c581-0cac-4a38-abfe-9b2ce2826455")
5604 ISpPhoneConverter : public ISpObjectWithToken
5605 {
5606     virtual HRESULT STDMETHODCALLTYPE PhoneToId(
5607         LPCWSTR pszPhone,
5608         SPPHONEID *pId) = 0;
5609 
5610     virtual HRESULT STDMETHODCALLTYPE IdToPhone(
5611         PCSPPHONEID pId,
5612         WCHAR *pszPhone) = 0;
5613 
5614 };
5615 #ifdef __CRT_UUID_DECL
5616 __CRT_UUID_DECL(ISpPhoneConverter, 0x8445c581, 0x0cac, 0x4a38, 0xab,0xfe, 0x9b,0x2c,0xe2,0x82,0x64,0x55)
5617 #endif
5618 #else
5619 typedef struct ISpPhoneConverterVtbl {
5620     BEGIN_INTERFACE
5621 
5622     /*** IUnknown methods ***/
5623     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5624         ISpPhoneConverter *This,
5625         REFIID riid,
5626         void **ppvObject);
5627 
5628     ULONG (STDMETHODCALLTYPE *AddRef)(
5629         ISpPhoneConverter *This);
5630 
5631     ULONG (STDMETHODCALLTYPE *Release)(
5632         ISpPhoneConverter *This);
5633 
5634     /*** ISpObjectWithToken methods ***/
5635     HRESULT (STDMETHODCALLTYPE *SetObjectToken)(
5636         ISpPhoneConverter *This,
5637         ISpObjectToken *pToken);
5638 
5639     HRESULT (STDMETHODCALLTYPE *GetObjectToken)(
5640         ISpPhoneConverter *This,
5641         ISpObjectToken **ppToken);
5642 
5643     /*** ISpPhoneConverter methods ***/
5644     HRESULT (STDMETHODCALLTYPE *PhoneToId)(
5645         ISpPhoneConverter *This,
5646         LPCWSTR pszPhone,
5647         SPPHONEID *pId);
5648 
5649     HRESULT (STDMETHODCALLTYPE *IdToPhone)(
5650         ISpPhoneConverter *This,
5651         PCSPPHONEID pId,
5652         WCHAR *pszPhone);
5653 
5654     END_INTERFACE
5655 } ISpPhoneConverterVtbl;
5656 
5657 interface ISpPhoneConverter {
5658     CONST_VTBL ISpPhoneConverterVtbl* lpVtbl;
5659 };
5660 
5661 #ifdef COBJMACROS
5662 #ifndef WIDL_C_INLINE_WRAPPERS
5663 /*** IUnknown methods ***/
5664 #define ISpPhoneConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5665 #define ISpPhoneConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
5666 #define ISpPhoneConverter_Release(This) (This)->lpVtbl->Release(This)
5667 /*** ISpObjectWithToken methods ***/
5668 #define ISpPhoneConverter_SetObjectToken(This,pToken) (This)->lpVtbl->SetObjectToken(This,pToken)
5669 #define ISpPhoneConverter_GetObjectToken(This,ppToken) (This)->lpVtbl->GetObjectToken(This,ppToken)
5670 /*** ISpPhoneConverter methods ***/
5671 #define ISpPhoneConverter_PhoneToId(This,pszPhone,pId) (This)->lpVtbl->PhoneToId(This,pszPhone,pId)
5672 #define ISpPhoneConverter_IdToPhone(This,pId,pszPhone) (This)->lpVtbl->IdToPhone(This,pId,pszPhone)
5673 #else
5674 /*** IUnknown methods ***/
5675 static FORCEINLINE HRESULT ISpPhoneConverter_QueryInterface(ISpPhoneConverter* This,REFIID riid,void **ppvObject) {
5676     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5677 }
5678 static FORCEINLINE ULONG ISpPhoneConverter_AddRef(ISpPhoneConverter* This) {
5679     return This->lpVtbl->AddRef(This);
5680 }
5681 static FORCEINLINE ULONG ISpPhoneConverter_Release(ISpPhoneConverter* This) {
5682     return This->lpVtbl->Release(This);
5683 }
5684 /*** ISpObjectWithToken methods ***/
5685 static FORCEINLINE HRESULT ISpPhoneConverter_SetObjectToken(ISpPhoneConverter* This,ISpObjectToken *pToken) {
5686     return This->lpVtbl->SetObjectToken(This,pToken);
5687 }
5688 static FORCEINLINE HRESULT ISpPhoneConverter_GetObjectToken(ISpPhoneConverter* This,ISpObjectToken **ppToken) {
5689     return This->lpVtbl->GetObjectToken(This,ppToken);
5690 }
5691 /*** ISpPhoneConverter methods ***/
5692 static FORCEINLINE HRESULT ISpPhoneConverter_PhoneToId(ISpPhoneConverter* This,LPCWSTR pszPhone,SPPHONEID *pId) {
5693     return This->lpVtbl->PhoneToId(This,pszPhone,pId);
5694 }
5695 static FORCEINLINE HRESULT ISpPhoneConverter_IdToPhone(ISpPhoneConverter* This,PCSPPHONEID pId,WCHAR *pszPhone) {
5696     return This->lpVtbl->IdToPhone(This,pId,pszPhone);
5697 }
5698 #endif
5699 #endif
5700 
5701 #endif
5702 
5703 
5704 #endif  /* __ISpPhoneConverter_INTERFACE_DEFINED__ */
5705 
5706 typedef struct SPVPITCH {
5707     LONG MiddleAdj;
5708     LONG RangeAdj;
5709 } SPVPITCH;
5710 typedef struct SPVCONTEXT {
5711     LPCWSTR pCategory;
5712     LPCWSTR pBefore;
5713     LPCWSTR pAfter;
5714 } SPVCONTEXT;
5715 typedef struct SPVSTATE {
5716     SPVACTIONS eAction;
5717     WORD LangID;
5718     WORD wReserved;
5719     LONG EmphAdj;
5720     LONG RateAdj;
5721     ULONG Volume;
5722     SPVPITCH PitchAdj;
5723     ULONG SilenceMSecs;
5724     SPPHONEID *pPhoneIds;
5725     SPPARTOFSPEECH ePartOfSpeech;
5726     SPVCONTEXT Context;
5727 } SPVSTATE;
5728 typedef struct SPVOICESTATUS {
5729     ULONG ulCurrentStream;
5730     ULONG ulLastStreamQueued;
5731     HRESULT hrLastResult;
5732     DWORD dwRunningState;
5733     ULONG ulInputWordPos;
5734     ULONG ulInputWordLen;
5735     ULONG ulInputSentPos;
5736     ULONG ulInputSentLen;
5737     LONG lBookmarkId;
5738     SPPHONEID PhonemeId;
5739     SPVISEMES VisemeId;
5740     DWORD dwReserved1;
5741     DWORD dwReserved2;
5742 } SPVOICESTATUS;
5743 typedef enum SPEAKFLAGS {
5744     SPF_DEFAULT = 0,
5745     SPF_ASYNC = 1,
5746     SPF_PURGEBEFORESPEAK = 2,
5747     SPF_IS_FILENAME = 4,
5748     SPF_IS_XML = 8,
5749     SPF_IS_NOT_XML = 0x10,
5750     SPF_PERSIST_XML = 0x20,
5751     SPF_NLP_SPEAK_PUNC = 0x40,
5752     SPF_NLP_MASK = SPF_NLP_SPEAK_PUNC,
5753     SPF_VOICE_MASK = (((((SPF_ASYNC | SPF_PURGEBEFORESPEAK) | SPF_IS_FILENAME) | SPF_IS_XML) | SPF_IS_NOT_XML) | SPF_NLP_MASK) | SPF_PERSIST_XML,
5754     SPF_UNUSED_FLAGS = ~SPF_VOICE_MASK
5755 } SPEAKFLAGS;
5756 /*****************************************************************************
5757  * ISpVoice interface
5758  */
5759 #ifndef __ISpVoice_INTERFACE_DEFINED__
5760 #define __ISpVoice_INTERFACE_DEFINED__
5761 
5762 DEFINE_GUID(IID_ISpVoice, 0x6c44df74, 0x72b9, 0x4992, 0xa1,0xec, 0xef,0x99,0x6e,0x04,0x22,0xd4);
5763 #if defined(__cplusplus) && !defined(CINTERFACE)
5764 MIDL_INTERFACE("6c44df74-72b9-4992-a1ec-ef996e0422d4")
5765 ISpVoice : public ISpEventSource
5766 {
5767     virtual HRESULT STDMETHODCALLTYPE SetOutput(
5768         IUnknown *pUnkOutput,
5769         WINBOOL fAllowFormatChanges) = 0;
5770 
5771     virtual HRESULT STDMETHODCALLTYPE GetOutputObjectToken(
5772         ISpObjectToken **ppObjectToken) = 0;
5773 
5774     virtual HRESULT STDMETHODCALLTYPE GetOutputStream(
5775         ISpStreamFormat **ppStream) = 0;
5776 
5777     virtual HRESULT STDMETHODCALLTYPE Pause(
5778         ) = 0;
5779 
5780     virtual HRESULT STDMETHODCALLTYPE Resume(
5781         ) = 0;
5782 
5783     virtual HRESULT STDMETHODCALLTYPE SetVoice(
5784         ISpObjectToken *pToken) = 0;
5785 
5786     virtual HRESULT STDMETHODCALLTYPE GetVoice(
5787         ISpObjectToken **ppToken) = 0;
5788 
5789     virtual HRESULT STDMETHODCALLTYPE Speak(
5790         LPCWSTR pwcs,
5791         DWORD dwFlags,
5792         ULONG *pulStreamNumber) = 0;
5793 
5794     virtual HRESULT STDMETHODCALLTYPE SpeakStream(
5795         IStream *pStream,
5796         DWORD dwFlags,
5797         ULONG *pulStreamNumber) = 0;
5798 
5799     virtual HRESULT STDMETHODCALLTYPE GetStatus(
5800         SPVOICESTATUS *pStatus,
5801         LPWSTR *ppszLastBookmark) = 0;
5802 
5803     virtual HRESULT STDMETHODCALLTYPE Skip(
5804         LPCWSTR pItemType,
5805         LONG lNumItems,
5806         ULONG *pulNumSkipped) = 0;
5807 
5808     virtual HRESULT STDMETHODCALLTYPE SetPriority(
5809         SPVPRIORITY ePriority) = 0;
5810 
5811     virtual HRESULT STDMETHODCALLTYPE GetPriority(
5812         SPVPRIORITY *pePriority) = 0;
5813 
5814     virtual HRESULT STDMETHODCALLTYPE SetAlertBoundary(
5815         SPEVENTENUM eBoundary) = 0;
5816 
5817     virtual HRESULT STDMETHODCALLTYPE GetAlertBoundary(
5818         SPEVENTENUM *peBoundary) = 0;
5819 
5820     virtual HRESULT STDMETHODCALLTYPE SetRate(
5821         LONG RateAdjust) = 0;
5822 
5823     virtual HRESULT STDMETHODCALLTYPE GetRate(
5824         LONG *pRateAdjust) = 0;
5825 
5826     virtual HRESULT STDMETHODCALLTYPE SetVolume(
5827         USHORT usVolume) = 0;
5828 
5829     virtual HRESULT STDMETHODCALLTYPE GetVolume(
5830         USHORT *pusVolume) = 0;
5831 
5832     virtual HRESULT STDMETHODCALLTYPE WaitUntilDone(
5833         ULONG msTimeout) = 0;
5834 
5835     virtual HRESULT STDMETHODCALLTYPE SetSyncSpeakTimeout(
5836         ULONG msTimeout) = 0;
5837 
5838     virtual HRESULT STDMETHODCALLTYPE GetSyncSpeakTimeout(
5839         ULONG *pmsTimeout) = 0;
5840 
5841     virtual HANDLE STDMETHODCALLTYPE SpeakCompleteEvent(
5842         ) = 0;
5843 
5844     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
5845         LPCWSTR pszTypeOfUI,
5846         void *pvExtraData,
5847         ULONG cbExtraData,
5848         WINBOOL *pfSupported) = 0;
5849 
5850     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
5851         HWND hwndParent,
5852         LPCWSTR pszTitle,
5853         LPCWSTR pszTypeOfUI,
5854         void *pvExtraData,
5855         ULONG cbExtraData) = 0;
5856 
5857 };
5858 #ifdef __CRT_UUID_DECL
5859 __CRT_UUID_DECL(ISpVoice, 0x6c44df74, 0x72b9, 0x4992, 0xa1,0xec, 0xef,0x99,0x6e,0x04,0x22,0xd4)
5860 #endif
5861 #else
5862 typedef struct ISpVoiceVtbl {
5863     BEGIN_INTERFACE
5864 
5865     /*** IUnknown methods ***/
5866     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5867         ISpVoice *This,
5868         REFIID riid,
5869         void **ppvObject);
5870 
5871     ULONG (STDMETHODCALLTYPE *AddRef)(
5872         ISpVoice *This);
5873 
5874     ULONG (STDMETHODCALLTYPE *Release)(
5875         ISpVoice *This);
5876 
5877     /*** ISpNotifySource methods ***/
5878     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
5879         ISpVoice *This,
5880         ISpNotifySink *pNotifySink);
5881 
5882     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
5883         ISpVoice *This,
5884         HWND hWnd,
5885         UINT Msg,
5886         WPARAM wParam,
5887         LPARAM lParam);
5888 
5889     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
5890         ISpVoice *This,
5891         SPNOTIFYCALLBACK *pfnCallback,
5892         WPARAM wParam,
5893         LPARAM lParam);
5894 
5895     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
5896         ISpVoice *This,
5897         ISpNotifyCallback *pSpCallback,
5898         WPARAM wParam,
5899         LPARAM lParam);
5900 
5901     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
5902         ISpVoice *This);
5903 
5904     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
5905         ISpVoice *This,
5906         DWORD dwMilliseconds);
5907 
5908     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
5909         ISpVoice *This);
5910 
5911     /*** ISpEventSource methods ***/
5912     HRESULT (STDMETHODCALLTYPE *SetInterest)(
5913         ISpVoice *This,
5914         ULONGLONG ullEventInterest,
5915         ULONGLONG ullQueuedInterest);
5916 
5917     HRESULT (STDMETHODCALLTYPE *GetEvents)(
5918         ISpVoice *This,
5919         ULONG ulCount,
5920         SPEVENT *pEventArray,
5921         ULONG *pulFetched);
5922 
5923     HRESULT (STDMETHODCALLTYPE *GetInfo)(
5924         ISpVoice *This,
5925         SPEVENTSOURCEINFO *pInfo);
5926 
5927     /*** ISpVoice methods ***/
5928     HRESULT (STDMETHODCALLTYPE *SetOutput)(
5929         ISpVoice *This,
5930         IUnknown *pUnkOutput,
5931         WINBOOL fAllowFormatChanges);
5932 
5933     HRESULT (STDMETHODCALLTYPE *GetOutputObjectToken)(
5934         ISpVoice *This,
5935         ISpObjectToken **ppObjectToken);
5936 
5937     HRESULT (STDMETHODCALLTYPE *GetOutputStream)(
5938         ISpVoice *This,
5939         ISpStreamFormat **ppStream);
5940 
5941     HRESULT (STDMETHODCALLTYPE *Pause)(
5942         ISpVoice *This);
5943 
5944     HRESULT (STDMETHODCALLTYPE *Resume)(
5945         ISpVoice *This);
5946 
5947     HRESULT (STDMETHODCALLTYPE *SetVoice)(
5948         ISpVoice *This,
5949         ISpObjectToken *pToken);
5950 
5951     HRESULT (STDMETHODCALLTYPE *GetVoice)(
5952         ISpVoice *This,
5953         ISpObjectToken **ppToken);
5954 
5955     HRESULT (STDMETHODCALLTYPE *Speak)(
5956         ISpVoice *This,
5957         LPCWSTR pwcs,
5958         DWORD dwFlags,
5959         ULONG *pulStreamNumber);
5960 
5961     HRESULT (STDMETHODCALLTYPE *SpeakStream)(
5962         ISpVoice *This,
5963         IStream *pStream,
5964         DWORD dwFlags,
5965         ULONG *pulStreamNumber);
5966 
5967     HRESULT (STDMETHODCALLTYPE *GetStatus)(
5968         ISpVoice *This,
5969         SPVOICESTATUS *pStatus,
5970         LPWSTR *ppszLastBookmark);
5971 
5972     HRESULT (STDMETHODCALLTYPE *Skip)(
5973         ISpVoice *This,
5974         LPCWSTR pItemType,
5975         LONG lNumItems,
5976         ULONG *pulNumSkipped);
5977 
5978     HRESULT (STDMETHODCALLTYPE *SetPriority)(
5979         ISpVoice *This,
5980         SPVPRIORITY ePriority);
5981 
5982     HRESULT (STDMETHODCALLTYPE *GetPriority)(
5983         ISpVoice *This,
5984         SPVPRIORITY *pePriority);
5985 
5986     HRESULT (STDMETHODCALLTYPE *SetAlertBoundary)(
5987         ISpVoice *This,
5988         SPEVENTENUM eBoundary);
5989 
5990     HRESULT (STDMETHODCALLTYPE *GetAlertBoundary)(
5991         ISpVoice *This,
5992         SPEVENTENUM *peBoundary);
5993 
5994     HRESULT (STDMETHODCALLTYPE *SetRate)(
5995         ISpVoice *This,
5996         LONG RateAdjust);
5997 
5998     HRESULT (STDMETHODCALLTYPE *GetRate)(
5999         ISpVoice *This,
6000         LONG *pRateAdjust);
6001 
6002     HRESULT (STDMETHODCALLTYPE *SetVolume)(
6003         ISpVoice *This,
6004         USHORT usVolume);
6005 
6006     HRESULT (STDMETHODCALLTYPE *GetVolume)(
6007         ISpVoice *This,
6008         USHORT *pusVolume);
6009 
6010     HRESULT (STDMETHODCALLTYPE *WaitUntilDone)(
6011         ISpVoice *This,
6012         ULONG msTimeout);
6013 
6014     HRESULT (STDMETHODCALLTYPE *SetSyncSpeakTimeout)(
6015         ISpVoice *This,
6016         ULONG msTimeout);
6017 
6018     HRESULT (STDMETHODCALLTYPE *GetSyncSpeakTimeout)(
6019         ISpVoice *This,
6020         ULONG *pmsTimeout);
6021 
6022     HANDLE (STDMETHODCALLTYPE *SpeakCompleteEvent)(
6023         ISpVoice *This);
6024 
6025     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
6026         ISpVoice *This,
6027         LPCWSTR pszTypeOfUI,
6028         void *pvExtraData,
6029         ULONG cbExtraData,
6030         WINBOOL *pfSupported);
6031 
6032     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
6033         ISpVoice *This,
6034         HWND hwndParent,
6035         LPCWSTR pszTitle,
6036         LPCWSTR pszTypeOfUI,
6037         void *pvExtraData,
6038         ULONG cbExtraData);
6039 
6040     END_INTERFACE
6041 } ISpVoiceVtbl;
6042 
6043 interface ISpVoice {
6044     CONST_VTBL ISpVoiceVtbl* lpVtbl;
6045 };
6046 
6047 #ifdef COBJMACROS
6048 #ifndef WIDL_C_INLINE_WRAPPERS
6049 /*** IUnknown methods ***/
6050 #define ISpVoice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6051 #define ISpVoice_AddRef(This) (This)->lpVtbl->AddRef(This)
6052 #define ISpVoice_Release(This) (This)->lpVtbl->Release(This)
6053 /*** ISpNotifySource methods ***/
6054 #define ISpVoice_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
6055 #define ISpVoice_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
6056 #define ISpVoice_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
6057 #define ISpVoice_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
6058 #define ISpVoice_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
6059 #define ISpVoice_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
6060 #define ISpVoice_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
6061 /*** ISpEventSource methods ***/
6062 #define ISpVoice_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
6063 #define ISpVoice_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
6064 #define ISpVoice_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
6065 /*** ISpVoice methods ***/
6066 #define ISpVoice_SetOutput(This,pUnkOutput,fAllowFormatChanges) (This)->lpVtbl->SetOutput(This,pUnkOutput,fAllowFormatChanges)
6067 #define ISpVoice_GetOutputObjectToken(This,ppObjectToken) (This)->lpVtbl->GetOutputObjectToken(This,ppObjectToken)
6068 #define ISpVoice_GetOutputStream(This,ppStream) (This)->lpVtbl->GetOutputStream(This,ppStream)
6069 #define ISpVoice_Pause(This) (This)->lpVtbl->Pause(This)
6070 #define ISpVoice_Resume(This) (This)->lpVtbl->Resume(This)
6071 #define ISpVoice_SetVoice(This,pToken) (This)->lpVtbl->SetVoice(This,pToken)
6072 #define ISpVoice_GetVoice(This,ppToken) (This)->lpVtbl->GetVoice(This,ppToken)
6073 #define ISpVoice_Speak(This,pwcs,dwFlags,pulStreamNumber) (This)->lpVtbl->Speak(This,pwcs,dwFlags,pulStreamNumber)
6074 #define ISpVoice_SpeakStream(This,pStream,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakStream(This,pStream,dwFlags,pulStreamNumber)
6075 #define ISpVoice_GetStatus(This,pStatus,ppszLastBookmark) (This)->lpVtbl->GetStatus(This,pStatus,ppszLastBookmark)
6076 #define ISpVoice_Skip(This,pItemType,lNumItems,pulNumSkipped) (This)->lpVtbl->Skip(This,pItemType,lNumItems,pulNumSkipped)
6077 #define ISpVoice_SetPriority(This,ePriority) (This)->lpVtbl->SetPriority(This,ePriority)
6078 #define ISpVoice_GetPriority(This,pePriority) (This)->lpVtbl->GetPriority(This,pePriority)
6079 #define ISpVoice_SetAlertBoundary(This,eBoundary) (This)->lpVtbl->SetAlertBoundary(This,eBoundary)
6080 #define ISpVoice_GetAlertBoundary(This,peBoundary) (This)->lpVtbl->GetAlertBoundary(This,peBoundary)
6081 #define ISpVoice_SetRate(This,RateAdjust) (This)->lpVtbl->SetRate(This,RateAdjust)
6082 #define ISpVoice_GetRate(This,pRateAdjust) (This)->lpVtbl->GetRate(This,pRateAdjust)
6083 #define ISpVoice_SetVolume(This,usVolume) (This)->lpVtbl->SetVolume(This,usVolume)
6084 #define ISpVoice_GetVolume(This,pusVolume) (This)->lpVtbl->GetVolume(This,pusVolume)
6085 #define ISpVoice_WaitUntilDone(This,msTimeout) (This)->lpVtbl->WaitUntilDone(This,msTimeout)
6086 #define ISpVoice_SetSyncSpeakTimeout(This,msTimeout) (This)->lpVtbl->SetSyncSpeakTimeout(This,msTimeout)
6087 #define ISpVoice_GetSyncSpeakTimeout(This,pmsTimeout) (This)->lpVtbl->GetSyncSpeakTimeout(This,pmsTimeout)
6088 #define ISpVoice_SpeakCompleteEvent(This) (This)->lpVtbl->SpeakCompleteEvent(This)
6089 #define ISpVoice_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported)
6090 #define ISpVoice_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData)
6091 #else
6092 /*** IUnknown methods ***/
6093 static FORCEINLINE HRESULT ISpVoice_QueryInterface(ISpVoice* This,REFIID riid,void **ppvObject) {
6094     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6095 }
6096 static FORCEINLINE ULONG ISpVoice_AddRef(ISpVoice* This) {
6097     return This->lpVtbl->AddRef(This);
6098 }
6099 static FORCEINLINE ULONG ISpVoice_Release(ISpVoice* This) {
6100     return This->lpVtbl->Release(This);
6101 }
6102 /*** ISpNotifySource methods ***/
6103 static FORCEINLINE HRESULT ISpVoice_SetNotifySink(ISpVoice* This,ISpNotifySink *pNotifySink) {
6104     return This->lpVtbl->SetNotifySink(This,pNotifySink);
6105 }
6106 static FORCEINLINE HRESULT ISpVoice_SetNotifyWindowMessage(ISpVoice* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
6107     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
6108 }
6109 static FORCEINLINE HRESULT ISpVoice_SetNotifyCallbackFunction(ISpVoice* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
6110     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
6111 }
6112 static FORCEINLINE HRESULT ISpVoice_SetNotifyCallbackInterface(ISpVoice* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
6113     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
6114 }
6115 static FORCEINLINE HRESULT ISpVoice_SetNotifyWin32Event(ISpVoice* This) {
6116     return This->lpVtbl->SetNotifyWin32Event(This);
6117 }
6118 static FORCEINLINE HRESULT ISpVoice_WaitForNotifyEvent(ISpVoice* This,DWORD dwMilliseconds) {
6119     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
6120 }
6121 static FORCEINLINE HANDLE ISpVoice_GetNotifyEventHandle(ISpVoice* This) {
6122     return This->lpVtbl->GetNotifyEventHandle(This);
6123 }
6124 /*** ISpEventSource methods ***/
6125 static FORCEINLINE HRESULT ISpVoice_SetInterest(ISpVoice* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
6126     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
6127 }
6128 static FORCEINLINE HRESULT ISpVoice_GetEvents(ISpVoice* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
6129     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
6130 }
6131 static FORCEINLINE HRESULT ISpVoice_GetInfo(ISpVoice* This,SPEVENTSOURCEINFO *pInfo) {
6132     return This->lpVtbl->GetInfo(This,pInfo);
6133 }
6134 /*** ISpVoice methods ***/
6135 static FORCEINLINE HRESULT ISpVoice_SetOutput(ISpVoice* This,IUnknown *pUnkOutput,WINBOOL fAllowFormatChanges) {
6136     return This->lpVtbl->SetOutput(This,pUnkOutput,fAllowFormatChanges);
6137 }
6138 static FORCEINLINE HRESULT ISpVoice_GetOutputObjectToken(ISpVoice* This,ISpObjectToken **ppObjectToken) {
6139     return This->lpVtbl->GetOutputObjectToken(This,ppObjectToken);
6140 }
6141 static FORCEINLINE HRESULT ISpVoice_GetOutputStream(ISpVoice* This,ISpStreamFormat **ppStream) {
6142     return This->lpVtbl->GetOutputStream(This,ppStream);
6143 }
6144 static FORCEINLINE HRESULT ISpVoice_Pause(ISpVoice* This) {
6145     return This->lpVtbl->Pause(This);
6146 }
6147 static FORCEINLINE HRESULT ISpVoice_Resume(ISpVoice* This) {
6148     return This->lpVtbl->Resume(This);
6149 }
6150 static FORCEINLINE HRESULT ISpVoice_SetVoice(ISpVoice* This,ISpObjectToken *pToken) {
6151     return This->lpVtbl->SetVoice(This,pToken);
6152 }
6153 static FORCEINLINE HRESULT ISpVoice_GetVoice(ISpVoice* This,ISpObjectToken **ppToken) {
6154     return This->lpVtbl->GetVoice(This,ppToken);
6155 }
6156 static FORCEINLINE HRESULT ISpVoice_Speak(ISpVoice* This,LPCWSTR pwcs,DWORD dwFlags,ULONG *pulStreamNumber) {
6157     return This->lpVtbl->Speak(This,pwcs,dwFlags,pulStreamNumber);
6158 }
6159 static FORCEINLINE HRESULT ISpVoice_SpeakStream(ISpVoice* This,IStream *pStream,DWORD dwFlags,ULONG *pulStreamNumber) {
6160     return This->lpVtbl->SpeakStream(This,pStream,dwFlags,pulStreamNumber);
6161 }
6162 static FORCEINLINE HRESULT ISpVoice_GetStatus(ISpVoice* This,SPVOICESTATUS *pStatus,LPWSTR *ppszLastBookmark) {
6163     return This->lpVtbl->GetStatus(This,pStatus,ppszLastBookmark);
6164 }
6165 static FORCEINLINE HRESULT ISpVoice_Skip(ISpVoice* This,LPCWSTR pItemType,LONG lNumItems,ULONG *pulNumSkipped) {
6166     return This->lpVtbl->Skip(This,pItemType,lNumItems,pulNumSkipped);
6167 }
6168 static FORCEINLINE HRESULT ISpVoice_SetPriority(ISpVoice* This,SPVPRIORITY ePriority) {
6169     return This->lpVtbl->SetPriority(This,ePriority);
6170 }
6171 static FORCEINLINE HRESULT ISpVoice_GetPriority(ISpVoice* This,SPVPRIORITY *pePriority) {
6172     return This->lpVtbl->GetPriority(This,pePriority);
6173 }
6174 static FORCEINLINE HRESULT ISpVoice_SetAlertBoundary(ISpVoice* This,SPEVENTENUM eBoundary) {
6175     return This->lpVtbl->SetAlertBoundary(This,eBoundary);
6176 }
6177 static FORCEINLINE HRESULT ISpVoice_GetAlertBoundary(ISpVoice* This,SPEVENTENUM *peBoundary) {
6178     return This->lpVtbl->GetAlertBoundary(This,peBoundary);
6179 }
6180 static FORCEINLINE HRESULT ISpVoice_SetRate(ISpVoice* This,LONG RateAdjust) {
6181     return This->lpVtbl->SetRate(This,RateAdjust);
6182 }
6183 static FORCEINLINE HRESULT ISpVoice_GetRate(ISpVoice* This,LONG *pRateAdjust) {
6184     return This->lpVtbl->GetRate(This,pRateAdjust);
6185 }
6186 static FORCEINLINE HRESULT ISpVoice_SetVolume(ISpVoice* This,USHORT usVolume) {
6187     return This->lpVtbl->SetVolume(This,usVolume);
6188 }
6189 static FORCEINLINE HRESULT ISpVoice_GetVolume(ISpVoice* This,USHORT *pusVolume) {
6190     return This->lpVtbl->GetVolume(This,pusVolume);
6191 }
6192 static FORCEINLINE HRESULT ISpVoice_WaitUntilDone(ISpVoice* This,ULONG msTimeout) {
6193     return This->lpVtbl->WaitUntilDone(This,msTimeout);
6194 }
6195 static FORCEINLINE HRESULT ISpVoice_SetSyncSpeakTimeout(ISpVoice* This,ULONG msTimeout) {
6196     return This->lpVtbl->SetSyncSpeakTimeout(This,msTimeout);
6197 }
6198 static FORCEINLINE HRESULT ISpVoice_GetSyncSpeakTimeout(ISpVoice* This,ULONG *pmsTimeout) {
6199     return This->lpVtbl->GetSyncSpeakTimeout(This,pmsTimeout);
6200 }
6201 static FORCEINLINE HANDLE ISpVoice_SpeakCompleteEvent(ISpVoice* This) {
6202     return This->lpVtbl->SpeakCompleteEvent(This);
6203 }
6204 static FORCEINLINE HRESULT ISpVoice_IsUISupported(ISpVoice* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,WINBOOL *pfSupported) {
6205     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported);
6206 }
6207 static FORCEINLINE HRESULT ISpVoice_DisplayUI(ISpVoice* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData) {
6208     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData);
6209 }
6210 #endif
6211 #endif
6212 
6213 #endif
6214 
6215 
6216 #endif  /* __ISpVoice_INTERFACE_DEFINED__ */
6217 
6218 /*****************************************************************************
6219  * ISpPhrase interface
6220  */
6221 #ifndef __ISpPhrase_INTERFACE_DEFINED__
6222 #define __ISpPhrase_INTERFACE_DEFINED__
6223 
6224 DEFINE_GUID(IID_ISpPhrase, 0x1a5c0354, 0xb621, 0x4b5a, 0x87,0x91, 0xd3,0x06,0xed,0x37,0x9e,0x53);
6225 #if defined(__cplusplus) && !defined(CINTERFACE)
6226 MIDL_INTERFACE("1a5c0354-b621-4b5a-8791-d306ed379e53")
6227 ISpPhrase : public IUnknown
6228 {
6229     virtual HRESULT STDMETHODCALLTYPE GetPhrase(
6230         SPPHRASE **ppCoMemPhrase) = 0;
6231 
6232     virtual HRESULT STDMETHODCALLTYPE GetSerializedPhrase(
6233         SPSERIALIZEDPHRASE **ppCoMemPhrase) = 0;
6234 
6235     virtual HRESULT STDMETHODCALLTYPE GetText(
6236         ULONG ulStart,
6237         ULONG ulCount,
6238         WINBOOL fUseTextReplacements,
6239         LPWSTR *ppszCoMemText,
6240         BYTE *pbDisplayAttributes) = 0;
6241 
6242     virtual HRESULT STDMETHODCALLTYPE Discard(
6243         DWORD dwValueTypes) = 0;
6244 
6245 };
6246 #ifdef __CRT_UUID_DECL
6247 __CRT_UUID_DECL(ISpPhrase, 0x1a5c0354, 0xb621, 0x4b5a, 0x87,0x91, 0xd3,0x06,0xed,0x37,0x9e,0x53)
6248 #endif
6249 #else
6250 typedef struct ISpPhraseVtbl {
6251     BEGIN_INTERFACE
6252 
6253     /*** IUnknown methods ***/
6254     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6255         ISpPhrase *This,
6256         REFIID riid,
6257         void **ppvObject);
6258 
6259     ULONG (STDMETHODCALLTYPE *AddRef)(
6260         ISpPhrase *This);
6261 
6262     ULONG (STDMETHODCALLTYPE *Release)(
6263         ISpPhrase *This);
6264 
6265     /*** ISpPhrase methods ***/
6266     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
6267         ISpPhrase *This,
6268         SPPHRASE **ppCoMemPhrase);
6269 
6270     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
6271         ISpPhrase *This,
6272         SPSERIALIZEDPHRASE **ppCoMemPhrase);
6273 
6274     HRESULT (STDMETHODCALLTYPE *GetText)(
6275         ISpPhrase *This,
6276         ULONG ulStart,
6277         ULONG ulCount,
6278         WINBOOL fUseTextReplacements,
6279         LPWSTR *ppszCoMemText,
6280         BYTE *pbDisplayAttributes);
6281 
6282     HRESULT (STDMETHODCALLTYPE *Discard)(
6283         ISpPhrase *This,
6284         DWORD dwValueTypes);
6285 
6286     END_INTERFACE
6287 } ISpPhraseVtbl;
6288 
6289 interface ISpPhrase {
6290     CONST_VTBL ISpPhraseVtbl* lpVtbl;
6291 };
6292 
6293 #ifdef COBJMACROS
6294 #ifndef WIDL_C_INLINE_WRAPPERS
6295 /*** IUnknown methods ***/
6296 #define ISpPhrase_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6297 #define ISpPhrase_AddRef(This) (This)->lpVtbl->AddRef(This)
6298 #define ISpPhrase_Release(This) (This)->lpVtbl->Release(This)
6299 /*** ISpPhrase methods ***/
6300 #define ISpPhrase_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
6301 #define ISpPhrase_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
6302 #define ISpPhrase_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
6303 #define ISpPhrase_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
6304 #else
6305 /*** IUnknown methods ***/
6306 static FORCEINLINE HRESULT ISpPhrase_QueryInterface(ISpPhrase* This,REFIID riid,void **ppvObject) {
6307     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6308 }
6309 static FORCEINLINE ULONG ISpPhrase_AddRef(ISpPhrase* This) {
6310     return This->lpVtbl->AddRef(This);
6311 }
6312 static FORCEINLINE ULONG ISpPhrase_Release(ISpPhrase* This) {
6313     return This->lpVtbl->Release(This);
6314 }
6315 /*** ISpPhrase methods ***/
6316 static FORCEINLINE HRESULT ISpPhrase_GetPhrase(ISpPhrase* This,SPPHRASE **ppCoMemPhrase) {
6317     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
6318 }
6319 static FORCEINLINE HRESULT ISpPhrase_GetSerializedPhrase(ISpPhrase* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
6320     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
6321 }
6322 static FORCEINLINE HRESULT ISpPhrase_GetText(ISpPhrase* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
6323     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
6324 }
6325 static FORCEINLINE HRESULT ISpPhrase_Discard(ISpPhrase* This,DWORD dwValueTypes) {
6326     return This->lpVtbl->Discard(This,dwValueTypes);
6327 }
6328 #endif
6329 #endif
6330 
6331 #endif
6332 
6333 
6334 #endif  /* __ISpPhrase_INTERFACE_DEFINED__ */
6335 
6336 /*****************************************************************************
6337  * ISpPhraseAlt interface
6338  */
6339 #ifndef __ISpPhraseAlt_INTERFACE_DEFINED__
6340 #define __ISpPhraseAlt_INTERFACE_DEFINED__
6341 
6342 DEFINE_GUID(IID_ISpPhraseAlt, 0x8fcebc98, 0x4e49, 0x4067, 0x9c,0x6c, 0xd8,0x6a,0x0e,0x09,0x2e,0x3d);
6343 #if defined(__cplusplus) && !defined(CINTERFACE)
6344 MIDL_INTERFACE("8fcebc98-4e49-4067-9c6c-d86a0e092e3d")
6345 ISpPhraseAlt : public ISpPhrase
6346 {
6347     virtual HRESULT STDMETHODCALLTYPE GetAltInfo(
6348         ISpPhrase **ppParent,
6349         ULONG *pulStartElementInParent,
6350         ULONG *pcElementsInParent,
6351         ULONG *pcElementsInAlt) = 0;
6352 
6353     virtual HRESULT STDMETHODCALLTYPE Commit(
6354         ) = 0;
6355 
6356 };
6357 #ifdef __CRT_UUID_DECL
6358 __CRT_UUID_DECL(ISpPhraseAlt, 0x8fcebc98, 0x4e49, 0x4067, 0x9c,0x6c, 0xd8,0x6a,0x0e,0x09,0x2e,0x3d)
6359 #endif
6360 #else
6361 typedef struct ISpPhraseAltVtbl {
6362     BEGIN_INTERFACE
6363 
6364     /*** IUnknown methods ***/
6365     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6366         ISpPhraseAlt *This,
6367         REFIID riid,
6368         void **ppvObject);
6369 
6370     ULONG (STDMETHODCALLTYPE *AddRef)(
6371         ISpPhraseAlt *This);
6372 
6373     ULONG (STDMETHODCALLTYPE *Release)(
6374         ISpPhraseAlt *This);
6375 
6376     /*** ISpPhrase methods ***/
6377     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
6378         ISpPhraseAlt *This,
6379         SPPHRASE **ppCoMemPhrase);
6380 
6381     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
6382         ISpPhraseAlt *This,
6383         SPSERIALIZEDPHRASE **ppCoMemPhrase);
6384 
6385     HRESULT (STDMETHODCALLTYPE *GetText)(
6386         ISpPhraseAlt *This,
6387         ULONG ulStart,
6388         ULONG ulCount,
6389         WINBOOL fUseTextReplacements,
6390         LPWSTR *ppszCoMemText,
6391         BYTE *pbDisplayAttributes);
6392 
6393     HRESULT (STDMETHODCALLTYPE *Discard)(
6394         ISpPhraseAlt *This,
6395         DWORD dwValueTypes);
6396 
6397     /*** ISpPhraseAlt methods ***/
6398     HRESULT (STDMETHODCALLTYPE *GetAltInfo)(
6399         ISpPhraseAlt *This,
6400         ISpPhrase **ppParent,
6401         ULONG *pulStartElementInParent,
6402         ULONG *pcElementsInParent,
6403         ULONG *pcElementsInAlt);
6404 
6405     HRESULT (STDMETHODCALLTYPE *Commit)(
6406         ISpPhraseAlt *This);
6407 
6408     END_INTERFACE
6409 } ISpPhraseAltVtbl;
6410 
6411 interface ISpPhraseAlt {
6412     CONST_VTBL ISpPhraseAltVtbl* lpVtbl;
6413 };
6414 
6415 #ifdef COBJMACROS
6416 #ifndef WIDL_C_INLINE_WRAPPERS
6417 /*** IUnknown methods ***/
6418 #define ISpPhraseAlt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6419 #define ISpPhraseAlt_AddRef(This) (This)->lpVtbl->AddRef(This)
6420 #define ISpPhraseAlt_Release(This) (This)->lpVtbl->Release(This)
6421 /*** ISpPhrase methods ***/
6422 #define ISpPhraseAlt_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
6423 #define ISpPhraseAlt_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
6424 #define ISpPhraseAlt_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
6425 #define ISpPhraseAlt_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
6426 /*** ISpPhraseAlt methods ***/
6427 #define ISpPhraseAlt_GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt) (This)->lpVtbl->GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt)
6428 #define ISpPhraseAlt_Commit(This) (This)->lpVtbl->Commit(This)
6429 #else
6430 /*** IUnknown methods ***/
6431 static FORCEINLINE HRESULT ISpPhraseAlt_QueryInterface(ISpPhraseAlt* This,REFIID riid,void **ppvObject) {
6432     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6433 }
6434 static FORCEINLINE ULONG ISpPhraseAlt_AddRef(ISpPhraseAlt* This) {
6435     return This->lpVtbl->AddRef(This);
6436 }
6437 static FORCEINLINE ULONG ISpPhraseAlt_Release(ISpPhraseAlt* This) {
6438     return This->lpVtbl->Release(This);
6439 }
6440 /*** ISpPhrase methods ***/
6441 static FORCEINLINE HRESULT ISpPhraseAlt_GetPhrase(ISpPhraseAlt* This,SPPHRASE **ppCoMemPhrase) {
6442     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
6443 }
6444 static FORCEINLINE HRESULT ISpPhraseAlt_GetSerializedPhrase(ISpPhraseAlt* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
6445     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
6446 }
6447 static FORCEINLINE HRESULT ISpPhraseAlt_GetText(ISpPhraseAlt* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
6448     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
6449 }
6450 static FORCEINLINE HRESULT ISpPhraseAlt_Discard(ISpPhraseAlt* This,DWORD dwValueTypes) {
6451     return This->lpVtbl->Discard(This,dwValueTypes);
6452 }
6453 /*** ISpPhraseAlt methods ***/
6454 static FORCEINLINE HRESULT ISpPhraseAlt_GetAltInfo(ISpPhraseAlt* This,ISpPhrase **ppParent,ULONG *pulStartElementInParent,ULONG *pcElementsInParent,ULONG *pcElementsInAlt) {
6455     return This->lpVtbl->GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt);
6456 }
6457 static FORCEINLINE HRESULT ISpPhraseAlt_Commit(ISpPhraseAlt* This) {
6458     return This->lpVtbl->Commit(This);
6459 }
6460 #endif
6461 #endif
6462 
6463 #endif
6464 
6465 
6466 #endif  /* __ISpPhraseAlt_INTERFACE_DEFINED__ */
6467 
6468 typedef struct SPRECORESULTTIMES {
6469     FILETIME ftStreamTime;
6470     ULONGLONG ullLength;
6471     DWORD dwTickCount;
6472     ULONGLONG ullStart;
6473 } SPRECORESULTTIMES;
6474 typedef struct SPSERIALIZEDRESULT {
6475     ULONG ulSerializedSize;
6476 } SPSERIALIZEDRESULT;
6477 /*****************************************************************************
6478  * ISpRecoResult interface
6479  */
6480 #ifndef __ISpRecoResult_INTERFACE_DEFINED__
6481 #define __ISpRecoResult_INTERFACE_DEFINED__
6482 
6483 DEFINE_GUID(IID_ISpRecoResult, 0x20b053be, 0xe235, 0x43cd, 0x9a,0x2a, 0x8d,0x17,0xa4,0x8b,0x78,0x42);
6484 #if defined(__cplusplus) && !defined(CINTERFACE)
6485 MIDL_INTERFACE("20b053be-e235-43cd-9a2a-8d17a48b7842")
6486 ISpRecoResult : public ISpPhrase
6487 {
6488     virtual HRESULT STDMETHODCALLTYPE GetResultTimes(
6489         SPRECORESULTTIMES *pTimes) = 0;
6490 
6491     virtual HRESULT STDMETHODCALLTYPE GetAlternates(
6492         ULONG ulStartElement,
6493         ULONG cElements,
6494         ULONG ulRequestCount,
6495         ISpPhraseAlt **ppPhrases,
6496         ULONG *pcPhrasesReturned) = 0;
6497 
6498     virtual HRESULT STDMETHODCALLTYPE GetAudio(
6499         ULONG ulStartElement,
6500         ULONG cElements,
6501         ISpStreamFormat **ppStream) = 0;
6502 
6503     virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
6504         ULONG ulStartElement,
6505         ULONG cElements,
6506         DWORD dwFlags,
6507         ULONG *pulStreamNumber) = 0;
6508 
6509     virtual HRESULT STDMETHODCALLTYPE Serialize(
6510         SPSERIALIZEDRESULT **ppCoMemSerializedResult) = 0;
6511 
6512     virtual HRESULT STDMETHODCALLTYPE ScaleAudio(
6513         const GUID *pAudioFormatId,
6514         const WAVEFORMATEX *pWaveFormatEx) = 0;
6515 
6516     virtual HRESULT STDMETHODCALLTYPE GetRecoContext(
6517         ISpRecoContext **ppRecoContext) = 0;
6518 
6519 };
6520 #ifdef __CRT_UUID_DECL
6521 __CRT_UUID_DECL(ISpRecoResult, 0x20b053be, 0xe235, 0x43cd, 0x9a,0x2a, 0x8d,0x17,0xa4,0x8b,0x78,0x42)
6522 #endif
6523 #else
6524 typedef struct ISpRecoResultVtbl {
6525     BEGIN_INTERFACE
6526 
6527     /*** IUnknown methods ***/
6528     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6529         ISpRecoResult *This,
6530         REFIID riid,
6531         void **ppvObject);
6532 
6533     ULONG (STDMETHODCALLTYPE *AddRef)(
6534         ISpRecoResult *This);
6535 
6536     ULONG (STDMETHODCALLTYPE *Release)(
6537         ISpRecoResult *This);
6538 
6539     /*** ISpPhrase methods ***/
6540     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
6541         ISpRecoResult *This,
6542         SPPHRASE **ppCoMemPhrase);
6543 
6544     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
6545         ISpRecoResult *This,
6546         SPSERIALIZEDPHRASE **ppCoMemPhrase);
6547 
6548     HRESULT (STDMETHODCALLTYPE *GetText)(
6549         ISpRecoResult *This,
6550         ULONG ulStart,
6551         ULONG ulCount,
6552         WINBOOL fUseTextReplacements,
6553         LPWSTR *ppszCoMemText,
6554         BYTE *pbDisplayAttributes);
6555 
6556     HRESULT (STDMETHODCALLTYPE *Discard)(
6557         ISpRecoResult *This,
6558         DWORD dwValueTypes);
6559 
6560     /*** ISpRecoResult methods ***/
6561     HRESULT (STDMETHODCALLTYPE *GetResultTimes)(
6562         ISpRecoResult *This,
6563         SPRECORESULTTIMES *pTimes);
6564 
6565     HRESULT (STDMETHODCALLTYPE *GetAlternates)(
6566         ISpRecoResult *This,
6567         ULONG ulStartElement,
6568         ULONG cElements,
6569         ULONG ulRequestCount,
6570         ISpPhraseAlt **ppPhrases,
6571         ULONG *pcPhrasesReturned);
6572 
6573     HRESULT (STDMETHODCALLTYPE *GetAudio)(
6574         ISpRecoResult *This,
6575         ULONG ulStartElement,
6576         ULONG cElements,
6577         ISpStreamFormat **ppStream);
6578 
6579     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
6580         ISpRecoResult *This,
6581         ULONG ulStartElement,
6582         ULONG cElements,
6583         DWORD dwFlags,
6584         ULONG *pulStreamNumber);
6585 
6586     HRESULT (STDMETHODCALLTYPE *Serialize)(
6587         ISpRecoResult *This,
6588         SPSERIALIZEDRESULT **ppCoMemSerializedResult);
6589 
6590     HRESULT (STDMETHODCALLTYPE *ScaleAudio)(
6591         ISpRecoResult *This,
6592         const GUID *pAudioFormatId,
6593         const WAVEFORMATEX *pWaveFormatEx);
6594 
6595     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
6596         ISpRecoResult *This,
6597         ISpRecoContext **ppRecoContext);
6598 
6599     END_INTERFACE
6600 } ISpRecoResultVtbl;
6601 
6602 interface ISpRecoResult {
6603     CONST_VTBL ISpRecoResultVtbl* lpVtbl;
6604 };
6605 
6606 #ifdef COBJMACROS
6607 #ifndef WIDL_C_INLINE_WRAPPERS
6608 /*** IUnknown methods ***/
6609 #define ISpRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6610 #define ISpRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
6611 #define ISpRecoResult_Release(This) (This)->lpVtbl->Release(This)
6612 /*** ISpPhrase methods ***/
6613 #define ISpRecoResult_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
6614 #define ISpRecoResult_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
6615 #define ISpRecoResult_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
6616 #define ISpRecoResult_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
6617 /*** ISpRecoResult methods ***/
6618 #define ISpRecoResult_GetResultTimes(This,pTimes) (This)->lpVtbl->GetResultTimes(This,pTimes)
6619 #define ISpRecoResult_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned) (This)->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
6620 #define ISpRecoResult_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
6621 #define ISpRecoResult_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
6622 #define ISpRecoResult_Serialize(This,ppCoMemSerializedResult) (This)->lpVtbl->Serialize(This,ppCoMemSerializedResult)
6623 #define ISpRecoResult_ScaleAudio(This,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
6624 #define ISpRecoResult_GetRecoContext(This,ppRecoContext) (This)->lpVtbl->GetRecoContext(This,ppRecoContext)
6625 #else
6626 /*** IUnknown methods ***/
6627 static FORCEINLINE HRESULT ISpRecoResult_QueryInterface(ISpRecoResult* This,REFIID riid,void **ppvObject) {
6628     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6629 }
6630 static FORCEINLINE ULONG ISpRecoResult_AddRef(ISpRecoResult* This) {
6631     return This->lpVtbl->AddRef(This);
6632 }
6633 static FORCEINLINE ULONG ISpRecoResult_Release(ISpRecoResult* This) {
6634     return This->lpVtbl->Release(This);
6635 }
6636 /*** ISpPhrase methods ***/
6637 static FORCEINLINE HRESULT ISpRecoResult_GetPhrase(ISpRecoResult* This,SPPHRASE **ppCoMemPhrase) {
6638     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
6639 }
6640 static FORCEINLINE HRESULT ISpRecoResult_GetSerializedPhrase(ISpRecoResult* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
6641     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
6642 }
6643 static FORCEINLINE HRESULT ISpRecoResult_GetText(ISpRecoResult* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
6644     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
6645 }
6646 static FORCEINLINE HRESULT ISpRecoResult_Discard(ISpRecoResult* This,DWORD dwValueTypes) {
6647     return This->lpVtbl->Discard(This,dwValueTypes);
6648 }
6649 /*** ISpRecoResult methods ***/
6650 static FORCEINLINE HRESULT ISpRecoResult_GetResultTimes(ISpRecoResult* This,SPRECORESULTTIMES *pTimes) {
6651     return This->lpVtbl->GetResultTimes(This,pTimes);
6652 }
6653 static FORCEINLINE HRESULT ISpRecoResult_GetAlternates(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,ULONG ulRequestCount,ISpPhraseAlt **ppPhrases,ULONG *pcPhrasesReturned) {
6654     return This->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned);
6655 }
6656 static FORCEINLINE HRESULT ISpRecoResult_GetAudio(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
6657     return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
6658 }
6659 static FORCEINLINE HRESULT ISpRecoResult_SpeakAudio(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,DWORD dwFlags,ULONG *pulStreamNumber) {
6660     return This->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber);
6661 }
6662 static FORCEINLINE HRESULT ISpRecoResult_Serialize(ISpRecoResult* This,SPSERIALIZEDRESULT **ppCoMemSerializedResult) {
6663     return This->lpVtbl->Serialize(This,ppCoMemSerializedResult);
6664 }
6665 static FORCEINLINE HRESULT ISpRecoResult_ScaleAudio(ISpRecoResult* This,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
6666     return This->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx);
6667 }
6668 static FORCEINLINE HRESULT ISpRecoResult_GetRecoContext(ISpRecoResult* This,ISpRecoContext **ppRecoContext) {
6669     return This->lpVtbl->GetRecoContext(This,ppRecoContext);
6670 }
6671 #endif
6672 #endif
6673 
6674 #endif
6675 
6676 
6677 #endif  /* __ISpRecoResult_INTERFACE_DEFINED__ */
6678 
6679 typedef struct tagSPTEXTSELECTIONINFO {
6680     ULONG ulStartActiveOffset;
6681     ULONG cchActiveChars;
6682     ULONG ulStartSelection;
6683     ULONG cchSelection;
6684 } SPTEXTSELECTIONINFO;
6685 typedef enum SPWORDPRONOUNCEABLE {
6686     SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE = 0,
6687     SPWP_UNKNOWN_WORD_PRONOUNCEABLE = 1,
6688     SPWP_KNOWN_WORD_PRONOUNCEABLE = 2
6689 } SPWORDPRONOUNCEABLE;
6690 typedef enum SPGRAMMARSTATE {
6691     SPGS_DISABLED = 0,
6692     SPGS_ENABLED = 1,
6693     SPGS_EXCLUSIVE = 3
6694 } SPGRAMMARSTATE;
6695 typedef enum SPCONTEXTSTATE {
6696     SPCS_DISABLED = 0,
6697     SPCS_ENABLED = 1
6698 } SPCONTEXTSTATE;
6699 typedef enum SPRULESTATE {
6700     SPRS_INACTIVE = 0,
6701     SPRS_ACTIVE = 1,
6702     SPRS_ACTIVE_WITH_AUTO_PAUSE = 3
6703 } SPRULESTATE;
6704 #define SP_STREAMPOS_ASAP (0)
6705 
6706 #define SP_STREAMPOS_REALTIME (-1)
6707 
6708 #define SPRULETRANS_TEXTBUFFER (SPSTATEHANDLE) (-1)
6709 #define SPRULETRANS_WILDCARD (SPSTATEHANDLE) (-2)
6710 #define SPRULETRANS_DICTATION (SPSTATEHANDLE) (-3)
6711 typedef enum SPGRAMMARWORDTYPE {
6712     SPWT_DISPLAY = 0,
6713     SPWT_LEXICAL = 1,
6714     SPWT_PRONUNCIATION = 2
6715 } SPGRAMMARWORDTYPE;
6716 typedef struct tagSPPROPERTYINFO {
6717     LPCWSTR pszName;
6718     ULONG ulId;
6719     LPCWSTR pszValue;
6720     VARIANT vValue;
6721 } SPPROPERTYINFO;
6722 typedef enum SPCFGRULEATTRIBUTES {
6723     SPRAF_TopLevel = 0x1,
6724     SPRAF_Active = 0x2,
6725     SPRAF_Export = 0x4,
6726     SPRAF_Import = 0x8,
6727     SPRAF_Interpreter = 0x10,
6728     SPRAF_Dynamic = 0x20,
6729     SPRAF_AutoPause = 0x10000
6730 } SPCFGRULEATTRIBUTES;
6731 /*****************************************************************************
6732  * ISpGrammarBuilder interface
6733  */
6734 #ifndef __ISpGrammarBuilder_INTERFACE_DEFINED__
6735 #define __ISpGrammarBuilder_INTERFACE_DEFINED__
6736 
6737 DEFINE_GUID(IID_ISpGrammarBuilder, 0x8137828f, 0x591a, 0x4a42, 0xbe,0x58, 0x49,0xea,0x7e,0xba,0xac,0x68);
6738 #if defined(__cplusplus) && !defined(CINTERFACE)
6739 MIDL_INTERFACE("8137828f-591a-4a42-be58-49ea7ebaac68")
6740 ISpGrammarBuilder : public IUnknown
6741 {
6742     virtual HRESULT STDMETHODCALLTYPE ResetGrammar(
6743         WORD NewLanguage) = 0;
6744 
6745     virtual HRESULT STDMETHODCALLTYPE GetRule(
6746         LPCWSTR pszRuleName,
6747         DWORD dwRuleId,
6748         DWORD dwAttributes,
6749         WINBOOL fCreateIfNotExist,
6750         SPSTATEHANDLE *phInitialState) = 0;
6751 
6752     virtual HRESULT STDMETHODCALLTYPE ClearRule(
6753         SPSTATEHANDLE hState) = 0;
6754 
6755     virtual HRESULT STDMETHODCALLTYPE CreateNewState(
6756         SPSTATEHANDLE hState,
6757         SPSTATEHANDLE *phState) = 0;
6758 
6759     virtual HRESULT STDMETHODCALLTYPE AddWordTransition(
6760         SPSTATEHANDLE hFromState,
6761         SPSTATEHANDLE hToState,
6762         LPCWSTR psz,
6763         LPCWSTR pszSeparators,
6764         SPGRAMMARWORDTYPE eWordType,
6765         float Weight,
6766         const SPPROPERTYINFO *pPropInfo) = 0;
6767 
6768     virtual HRESULT STDMETHODCALLTYPE AddRuleTransition(
6769         SPSTATEHANDLE hFromState,
6770         SPSTATEHANDLE hToState,
6771         SPSTATEHANDLE hRule,
6772         float Weight,
6773         const SPPROPERTYINFO *pPropInfo) = 0;
6774 
6775     virtual HRESULT STDMETHODCALLTYPE AddResource(
6776         SPSTATEHANDLE hRuleState,
6777         LPCWSTR pszResourceName,
6778         LPCWSTR pszResourceValue) = 0;
6779 
6780     virtual HRESULT STDMETHODCALLTYPE Commit(
6781         DWORD dwReserved) = 0;
6782 
6783 };
6784 #ifdef __CRT_UUID_DECL
6785 __CRT_UUID_DECL(ISpGrammarBuilder, 0x8137828f, 0x591a, 0x4a42, 0xbe,0x58, 0x49,0xea,0x7e,0xba,0xac,0x68)
6786 #endif
6787 #else
6788 typedef struct ISpGrammarBuilderVtbl {
6789     BEGIN_INTERFACE
6790 
6791     /*** IUnknown methods ***/
6792     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6793         ISpGrammarBuilder *This,
6794         REFIID riid,
6795         void **ppvObject);
6796 
6797     ULONG (STDMETHODCALLTYPE *AddRef)(
6798         ISpGrammarBuilder *This);
6799 
6800     ULONG (STDMETHODCALLTYPE *Release)(
6801         ISpGrammarBuilder *This);
6802 
6803     /*** ISpGrammarBuilder methods ***/
6804     HRESULT (STDMETHODCALLTYPE *ResetGrammar)(
6805         ISpGrammarBuilder *This,
6806         WORD NewLanguage);
6807 
6808     HRESULT (STDMETHODCALLTYPE *GetRule)(
6809         ISpGrammarBuilder *This,
6810         LPCWSTR pszRuleName,
6811         DWORD dwRuleId,
6812         DWORD dwAttributes,
6813         WINBOOL fCreateIfNotExist,
6814         SPSTATEHANDLE *phInitialState);
6815 
6816     HRESULT (STDMETHODCALLTYPE *ClearRule)(
6817         ISpGrammarBuilder *This,
6818         SPSTATEHANDLE hState);
6819 
6820     HRESULT (STDMETHODCALLTYPE *CreateNewState)(
6821         ISpGrammarBuilder *This,
6822         SPSTATEHANDLE hState,
6823         SPSTATEHANDLE *phState);
6824 
6825     HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
6826         ISpGrammarBuilder *This,
6827         SPSTATEHANDLE hFromState,
6828         SPSTATEHANDLE hToState,
6829         LPCWSTR psz,
6830         LPCWSTR pszSeparators,
6831         SPGRAMMARWORDTYPE eWordType,
6832         float Weight,
6833         const SPPROPERTYINFO *pPropInfo);
6834 
6835     HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
6836         ISpGrammarBuilder *This,
6837         SPSTATEHANDLE hFromState,
6838         SPSTATEHANDLE hToState,
6839         SPSTATEHANDLE hRule,
6840         float Weight,
6841         const SPPROPERTYINFO *pPropInfo);
6842 
6843     HRESULT (STDMETHODCALLTYPE *AddResource)(
6844         ISpGrammarBuilder *This,
6845         SPSTATEHANDLE hRuleState,
6846         LPCWSTR pszResourceName,
6847         LPCWSTR pszResourceValue);
6848 
6849     HRESULT (STDMETHODCALLTYPE *Commit)(
6850         ISpGrammarBuilder *This,
6851         DWORD dwReserved);
6852 
6853     END_INTERFACE
6854 } ISpGrammarBuilderVtbl;
6855 
6856 interface ISpGrammarBuilder {
6857     CONST_VTBL ISpGrammarBuilderVtbl* lpVtbl;
6858 };
6859 
6860 #ifdef COBJMACROS
6861 #ifndef WIDL_C_INLINE_WRAPPERS
6862 /*** IUnknown methods ***/
6863 #define ISpGrammarBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6864 #define ISpGrammarBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
6865 #define ISpGrammarBuilder_Release(This) (This)->lpVtbl->Release(This)
6866 /*** ISpGrammarBuilder methods ***/
6867 #define ISpGrammarBuilder_ResetGrammar(This,NewLanguage) (This)->lpVtbl->ResetGrammar(This,NewLanguage)
6868 #define ISpGrammarBuilder_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState) (This)->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
6869 #define ISpGrammarBuilder_ClearRule(This,hState) (This)->lpVtbl->ClearRule(This,hState)
6870 #define ISpGrammarBuilder_CreateNewState(This,hState,phState) (This)->lpVtbl->CreateNewState(This,hState,phState)
6871 #define ISpGrammarBuilder_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo) (This)->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
6872 #define ISpGrammarBuilder_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo) (This)->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
6873 #define ISpGrammarBuilder_AddResource(This,hRuleState,pszResourceName,pszResourceValue) (This)->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue)
6874 #define ISpGrammarBuilder_Commit(This,dwReserved) (This)->lpVtbl->Commit(This,dwReserved)
6875 #else
6876 /*** IUnknown methods ***/
6877 static FORCEINLINE HRESULT ISpGrammarBuilder_QueryInterface(ISpGrammarBuilder* This,REFIID riid,void **ppvObject) {
6878     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6879 }
6880 static FORCEINLINE ULONG ISpGrammarBuilder_AddRef(ISpGrammarBuilder* This) {
6881     return This->lpVtbl->AddRef(This);
6882 }
6883 static FORCEINLINE ULONG ISpGrammarBuilder_Release(ISpGrammarBuilder* This) {
6884     return This->lpVtbl->Release(This);
6885 }
6886 /*** ISpGrammarBuilder methods ***/
6887 static FORCEINLINE HRESULT ISpGrammarBuilder_ResetGrammar(ISpGrammarBuilder* This,WORD NewLanguage) {
6888     return This->lpVtbl->ResetGrammar(This,NewLanguage);
6889 }
6890 static FORCEINLINE HRESULT ISpGrammarBuilder_GetRule(ISpGrammarBuilder* This,LPCWSTR pszRuleName,DWORD dwRuleId,DWORD dwAttributes,WINBOOL fCreateIfNotExist,SPSTATEHANDLE *phInitialState) {
6891     return This->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState);
6892 }
6893 static FORCEINLINE HRESULT ISpGrammarBuilder_ClearRule(ISpGrammarBuilder* This,SPSTATEHANDLE hState) {
6894     return This->lpVtbl->ClearRule(This,hState);
6895 }
6896 static FORCEINLINE HRESULT ISpGrammarBuilder_CreateNewState(ISpGrammarBuilder* This,SPSTATEHANDLE hState,SPSTATEHANDLE *phState) {
6897     return This->lpVtbl->CreateNewState(This,hState,phState);
6898 }
6899 static FORCEINLINE HRESULT ISpGrammarBuilder_AddWordTransition(ISpGrammarBuilder* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,LPCWSTR pszSeparators,SPGRAMMARWORDTYPE eWordType,float Weight,const SPPROPERTYINFO *pPropInfo) {
6900     return This->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo);
6901 }
6902 static FORCEINLINE HRESULT ISpGrammarBuilder_AddRuleTransition(ISpGrammarBuilder* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,SPSTATEHANDLE hRule,float Weight,const SPPROPERTYINFO *pPropInfo) {
6903     return This->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo);
6904 }
6905 static FORCEINLINE HRESULT ISpGrammarBuilder_AddResource(ISpGrammarBuilder* This,SPSTATEHANDLE hRuleState,LPCWSTR pszResourceName,LPCWSTR pszResourceValue) {
6906     return This->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue);
6907 }
6908 static FORCEINLINE HRESULT ISpGrammarBuilder_Commit(ISpGrammarBuilder* This,DWORD dwReserved) {
6909     return This->lpVtbl->Commit(This,dwReserved);
6910 }
6911 #endif
6912 #endif
6913 
6914 #endif
6915 
6916 
6917 #endif  /* __ISpGrammarBuilder_INTERFACE_DEFINED__ */
6918 
6919 typedef enum SPLOADOPTIONS {
6920     SPLO_STATIC = 0,
6921     SPLO_DYNAMIC = 1
6922 } SPLOADOPTIONS;
6923 /*****************************************************************************
6924  * ISpRecoGrammar interface
6925  */
6926 #ifndef __ISpRecoGrammar_INTERFACE_DEFINED__
6927 #define __ISpRecoGrammar_INTERFACE_DEFINED__
6928 
6929 DEFINE_GUID(IID_ISpRecoGrammar, 0x2177db29, 0x7f45, 0x47d0, 0x85,0x54, 0x06,0x7e,0x91,0xc8,0x05,0x02);
6930 #if defined(__cplusplus) && !defined(CINTERFACE)
6931 MIDL_INTERFACE("2177db29-7f45-47d0-8554-067e91c80502")
6932 ISpRecoGrammar : public ISpGrammarBuilder
6933 {
6934     virtual HRESULT STDMETHODCALLTYPE GetGrammarId(
6935         ULONGLONG *pullGrammarId) = 0;
6936 
6937     virtual HRESULT STDMETHODCALLTYPE GetRecoContext(
6938         ISpRecoContext **ppRecoCtxt) = 0;
6939 
6940     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromFile(
6941         LPCWSTR pszFileName,
6942         SPLOADOPTIONS Options) = 0;
6943 
6944     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromObject(
6945         REFCLSID rcid,
6946         LPCWSTR pszGrammarName,
6947         SPLOADOPTIONS Options) = 0;
6948 
6949     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromResource(
6950         HMODULE hModule,
6951         LPCWSTR pszResourceName,
6952         LPCWSTR pszResourceType,
6953         WORD wLanguage,
6954         SPLOADOPTIONS Options) = 0;
6955 
6956     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromMemory(
6957         const SPBINARYGRAMMAR *pGrammar,
6958         SPLOADOPTIONS Options) = 0;
6959 
6960     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromProprietaryGrammar(
6961         REFGUID rguidParam,
6962         LPCWSTR pszStringParam,
6963         const void *pvDataPrarm,
6964         ULONG cbDataSize,
6965         SPLOADOPTIONS Options) = 0;
6966 
6967     virtual HRESULT STDMETHODCALLTYPE SetRuleState(
6968         LPCWSTR pszName,
6969         void *pReserved,
6970         SPRULESTATE NewState) = 0;
6971 
6972     virtual HRESULT STDMETHODCALLTYPE SetRuleIdState(
6973         ULONG ulRuleId,
6974         SPRULESTATE NewState) = 0;
6975 
6976     virtual HRESULT STDMETHODCALLTYPE LoadDictation(
6977         LPCWSTR pszTopicName,
6978         SPLOADOPTIONS Options) = 0;
6979 
6980     virtual HRESULT STDMETHODCALLTYPE UnloadDictation(
6981         ) = 0;
6982 
6983     virtual HRESULT STDMETHODCALLTYPE SetDictationState(
6984         SPRULESTATE NewState) = 0;
6985 
6986     virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData(
6987         const WCHAR *pText,
6988         ULONG cchText,
6989         const SPTEXTSELECTIONINFO *pInfo) = 0;
6990 
6991     virtual HRESULT STDMETHODCALLTYPE SetTextSelection(
6992         const SPTEXTSELECTIONINFO *pInfo) = 0;
6993 
6994     virtual HRESULT STDMETHODCALLTYPE IsPronounceable(
6995         LPCWSTR pszWord,
6996         SPWORDPRONOUNCEABLE *pWordPronounceable) = 0;
6997 
6998     virtual HRESULT STDMETHODCALLTYPE SetGrammarState(
6999         SPGRAMMARSTATE eGrammarState) = 0;
7000 
7001     virtual HRESULT STDMETHODCALLTYPE SaveCmd(
7002         IStream *pStream,
7003         LPWSTR *ppszCoMemErrorText) = 0;
7004 
7005     virtual HRESULT STDMETHODCALLTYPE GetGrammarState(
7006         SPGRAMMARSTATE *peGrammarState) = 0;
7007 
7008 };
7009 #ifdef __CRT_UUID_DECL
7010 __CRT_UUID_DECL(ISpRecoGrammar, 0x2177db29, 0x7f45, 0x47d0, 0x85,0x54, 0x06,0x7e,0x91,0xc8,0x05,0x02)
7011 #endif
7012 #else
7013 typedef struct ISpRecoGrammarVtbl {
7014     BEGIN_INTERFACE
7015 
7016     /*** IUnknown methods ***/
7017     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7018         ISpRecoGrammar *This,
7019         REFIID riid,
7020         void **ppvObject);
7021 
7022     ULONG (STDMETHODCALLTYPE *AddRef)(
7023         ISpRecoGrammar *This);
7024 
7025     ULONG (STDMETHODCALLTYPE *Release)(
7026         ISpRecoGrammar *This);
7027 
7028     /*** ISpGrammarBuilder methods ***/
7029     HRESULT (STDMETHODCALLTYPE *ResetGrammar)(
7030         ISpRecoGrammar *This,
7031         WORD NewLanguage);
7032 
7033     HRESULT (STDMETHODCALLTYPE *GetRule)(
7034         ISpRecoGrammar *This,
7035         LPCWSTR pszRuleName,
7036         DWORD dwRuleId,
7037         DWORD dwAttributes,
7038         WINBOOL fCreateIfNotExist,
7039         SPSTATEHANDLE *phInitialState);
7040 
7041     HRESULT (STDMETHODCALLTYPE *ClearRule)(
7042         ISpRecoGrammar *This,
7043         SPSTATEHANDLE hState);
7044 
7045     HRESULT (STDMETHODCALLTYPE *CreateNewState)(
7046         ISpRecoGrammar *This,
7047         SPSTATEHANDLE hState,
7048         SPSTATEHANDLE *phState);
7049 
7050     HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
7051         ISpRecoGrammar *This,
7052         SPSTATEHANDLE hFromState,
7053         SPSTATEHANDLE hToState,
7054         LPCWSTR psz,
7055         LPCWSTR pszSeparators,
7056         SPGRAMMARWORDTYPE eWordType,
7057         float Weight,
7058         const SPPROPERTYINFO *pPropInfo);
7059 
7060     HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
7061         ISpRecoGrammar *This,
7062         SPSTATEHANDLE hFromState,
7063         SPSTATEHANDLE hToState,
7064         SPSTATEHANDLE hRule,
7065         float Weight,
7066         const SPPROPERTYINFO *pPropInfo);
7067 
7068     HRESULT (STDMETHODCALLTYPE *AddResource)(
7069         ISpRecoGrammar *This,
7070         SPSTATEHANDLE hRuleState,
7071         LPCWSTR pszResourceName,
7072         LPCWSTR pszResourceValue);
7073 
7074     HRESULT (STDMETHODCALLTYPE *Commit)(
7075         ISpRecoGrammar *This,
7076         DWORD dwReserved);
7077 
7078     /*** ISpRecoGrammar methods ***/
7079     HRESULT (STDMETHODCALLTYPE *GetGrammarId)(
7080         ISpRecoGrammar *This,
7081         ULONGLONG *pullGrammarId);
7082 
7083     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
7084         ISpRecoGrammar *This,
7085         ISpRecoContext **ppRecoCtxt);
7086 
7087     HRESULT (STDMETHODCALLTYPE *LoadCmdFromFile)(
7088         ISpRecoGrammar *This,
7089         LPCWSTR pszFileName,
7090         SPLOADOPTIONS Options);
7091 
7092     HRESULT (STDMETHODCALLTYPE *LoadCmdFromObject)(
7093         ISpRecoGrammar *This,
7094         REFCLSID rcid,
7095         LPCWSTR pszGrammarName,
7096         SPLOADOPTIONS Options);
7097 
7098     HRESULT (STDMETHODCALLTYPE *LoadCmdFromResource)(
7099         ISpRecoGrammar *This,
7100         HMODULE hModule,
7101         LPCWSTR pszResourceName,
7102         LPCWSTR pszResourceType,
7103         WORD wLanguage,
7104         SPLOADOPTIONS Options);
7105 
7106     HRESULT (STDMETHODCALLTYPE *LoadCmdFromMemory)(
7107         ISpRecoGrammar *This,
7108         const SPBINARYGRAMMAR *pGrammar,
7109         SPLOADOPTIONS Options);
7110 
7111     HRESULT (STDMETHODCALLTYPE *LoadCmdFromProprietaryGrammar)(
7112         ISpRecoGrammar *This,
7113         REFGUID rguidParam,
7114         LPCWSTR pszStringParam,
7115         const void *pvDataPrarm,
7116         ULONG cbDataSize,
7117         SPLOADOPTIONS Options);
7118 
7119     HRESULT (STDMETHODCALLTYPE *SetRuleState)(
7120         ISpRecoGrammar *This,
7121         LPCWSTR pszName,
7122         void *pReserved,
7123         SPRULESTATE NewState);
7124 
7125     HRESULT (STDMETHODCALLTYPE *SetRuleIdState)(
7126         ISpRecoGrammar *This,
7127         ULONG ulRuleId,
7128         SPRULESTATE NewState);
7129 
7130     HRESULT (STDMETHODCALLTYPE *LoadDictation)(
7131         ISpRecoGrammar *This,
7132         LPCWSTR pszTopicName,
7133         SPLOADOPTIONS Options);
7134 
7135     HRESULT (STDMETHODCALLTYPE *UnloadDictation)(
7136         ISpRecoGrammar *This);
7137 
7138     HRESULT (STDMETHODCALLTYPE *SetDictationState)(
7139         ISpRecoGrammar *This,
7140         SPRULESTATE NewState);
7141 
7142     HRESULT (STDMETHODCALLTYPE *SetWordSequenceData)(
7143         ISpRecoGrammar *This,
7144         const WCHAR *pText,
7145         ULONG cchText,
7146         const SPTEXTSELECTIONINFO *pInfo);
7147 
7148     HRESULT (STDMETHODCALLTYPE *SetTextSelection)(
7149         ISpRecoGrammar *This,
7150         const SPTEXTSELECTIONINFO *pInfo);
7151 
7152     HRESULT (STDMETHODCALLTYPE *IsPronounceable)(
7153         ISpRecoGrammar *This,
7154         LPCWSTR pszWord,
7155         SPWORDPRONOUNCEABLE *pWordPronounceable);
7156 
7157     HRESULT (STDMETHODCALLTYPE *SetGrammarState)(
7158         ISpRecoGrammar *This,
7159         SPGRAMMARSTATE eGrammarState);
7160 
7161     HRESULT (STDMETHODCALLTYPE *SaveCmd)(
7162         ISpRecoGrammar *This,
7163         IStream *pStream,
7164         LPWSTR *ppszCoMemErrorText);
7165 
7166     HRESULT (STDMETHODCALLTYPE *GetGrammarState)(
7167         ISpRecoGrammar *This,
7168         SPGRAMMARSTATE *peGrammarState);
7169 
7170     END_INTERFACE
7171 } ISpRecoGrammarVtbl;
7172 
7173 interface ISpRecoGrammar {
7174     CONST_VTBL ISpRecoGrammarVtbl* lpVtbl;
7175 };
7176 
7177 #ifdef COBJMACROS
7178 #ifndef WIDL_C_INLINE_WRAPPERS
7179 /*** IUnknown methods ***/
7180 #define ISpRecoGrammar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7181 #define ISpRecoGrammar_AddRef(This) (This)->lpVtbl->AddRef(This)
7182 #define ISpRecoGrammar_Release(This) (This)->lpVtbl->Release(This)
7183 /*** ISpGrammarBuilder methods ***/
7184 #define ISpRecoGrammar_ResetGrammar(This,NewLanguage) (This)->lpVtbl->ResetGrammar(This,NewLanguage)
7185 #define ISpRecoGrammar_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState) (This)->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
7186 #define ISpRecoGrammar_ClearRule(This,hState) (This)->lpVtbl->ClearRule(This,hState)
7187 #define ISpRecoGrammar_CreateNewState(This,hState,phState) (This)->lpVtbl->CreateNewState(This,hState,phState)
7188 #define ISpRecoGrammar_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo) (This)->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
7189 #define ISpRecoGrammar_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo) (This)->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
7190 #define ISpRecoGrammar_AddResource(This,hRuleState,pszResourceName,pszResourceValue) (This)->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue)
7191 #define ISpRecoGrammar_Commit(This,dwReserved) (This)->lpVtbl->Commit(This,dwReserved)
7192 /*** ISpRecoGrammar methods ***/
7193 #define ISpRecoGrammar_GetGrammarId(This,pullGrammarId) (This)->lpVtbl->GetGrammarId(This,pullGrammarId)
7194 #define ISpRecoGrammar_GetRecoContext(This,ppRecoCtxt) (This)->lpVtbl->GetRecoContext(This,ppRecoCtxt)
7195 #define ISpRecoGrammar_LoadCmdFromFile(This,pszFileName,Options) (This)->lpVtbl->LoadCmdFromFile(This,pszFileName,Options)
7196 #define ISpRecoGrammar_LoadCmdFromObject(This,rcid,pszGrammarName,Options) (This)->lpVtbl->LoadCmdFromObject(This,rcid,pszGrammarName,Options)
7197 #define ISpRecoGrammar_LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options) (This)->lpVtbl->LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options)
7198 #define ISpRecoGrammar_LoadCmdFromMemory(This,pGrammar,Options) (This)->lpVtbl->LoadCmdFromMemory(This,pGrammar,Options)
7199 #define ISpRecoGrammar_LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options) (This)->lpVtbl->LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options)
7200 #define ISpRecoGrammar_SetRuleState(This,pszName,pReserved,NewState) (This)->lpVtbl->SetRuleState(This,pszName,pReserved,NewState)
7201 #define ISpRecoGrammar_SetRuleIdState(This,ulRuleId,NewState) (This)->lpVtbl->SetRuleIdState(This,ulRuleId,NewState)
7202 #define ISpRecoGrammar_LoadDictation(This,pszTopicName,Options) (This)->lpVtbl->LoadDictation(This,pszTopicName,Options)
7203 #define ISpRecoGrammar_UnloadDictation(This) (This)->lpVtbl->UnloadDictation(This)
7204 #define ISpRecoGrammar_SetDictationState(This,NewState) (This)->lpVtbl->SetDictationState(This,NewState)
7205 #define ISpRecoGrammar_SetWordSequenceData(This,pText,cchText,pInfo) (This)->lpVtbl->SetWordSequenceData(This,pText,cchText,pInfo)
7206 #define ISpRecoGrammar_SetTextSelection(This,pInfo) (This)->lpVtbl->SetTextSelection(This,pInfo)
7207 #define ISpRecoGrammar_IsPronounceable(This,pszWord,pWordPronounceable) (This)->lpVtbl->IsPronounceable(This,pszWord,pWordPronounceable)
7208 #define ISpRecoGrammar_SetGrammarState(This,eGrammarState) (This)->lpVtbl->SetGrammarState(This,eGrammarState)
7209 #define ISpRecoGrammar_SaveCmd(This,pStream,ppszCoMemErrorText) (This)->lpVtbl->SaveCmd(This,pStream,ppszCoMemErrorText)
7210 #define ISpRecoGrammar_GetGrammarState(This,peGrammarState) (This)->lpVtbl->GetGrammarState(This,peGrammarState)
7211 #else
7212 /*** IUnknown methods ***/
7213 static FORCEINLINE HRESULT ISpRecoGrammar_QueryInterface(ISpRecoGrammar* This,REFIID riid,void **ppvObject) {
7214     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7215 }
7216 static FORCEINLINE ULONG ISpRecoGrammar_AddRef(ISpRecoGrammar* This) {
7217     return This->lpVtbl->AddRef(This);
7218 }
7219 static FORCEINLINE ULONG ISpRecoGrammar_Release(ISpRecoGrammar* This) {
7220     return This->lpVtbl->Release(This);
7221 }
7222 /*** ISpGrammarBuilder methods ***/
7223 static FORCEINLINE HRESULT ISpRecoGrammar_ResetGrammar(ISpRecoGrammar* This,WORD NewLanguage) {
7224     return This->lpVtbl->ResetGrammar(This,NewLanguage);
7225 }
7226 static FORCEINLINE HRESULT ISpRecoGrammar_GetRule(ISpRecoGrammar* This,LPCWSTR pszRuleName,DWORD dwRuleId,DWORD dwAttributes,WINBOOL fCreateIfNotExist,SPSTATEHANDLE *phInitialState) {
7227     return This->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState);
7228 }
7229 static FORCEINLINE HRESULT ISpRecoGrammar_ClearRule(ISpRecoGrammar* This,SPSTATEHANDLE hState) {
7230     return This->lpVtbl->ClearRule(This,hState);
7231 }
7232 static FORCEINLINE HRESULT ISpRecoGrammar_CreateNewState(ISpRecoGrammar* This,SPSTATEHANDLE hState,SPSTATEHANDLE *phState) {
7233     return This->lpVtbl->CreateNewState(This,hState,phState);
7234 }
7235 static FORCEINLINE HRESULT ISpRecoGrammar_AddWordTransition(ISpRecoGrammar* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,LPCWSTR pszSeparators,SPGRAMMARWORDTYPE eWordType,float Weight,const SPPROPERTYINFO *pPropInfo) {
7236     return This->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo);
7237 }
7238 static FORCEINLINE HRESULT ISpRecoGrammar_AddRuleTransition(ISpRecoGrammar* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,SPSTATEHANDLE hRule,float Weight,const SPPROPERTYINFO *pPropInfo) {
7239     return This->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo);
7240 }
7241 static FORCEINLINE HRESULT ISpRecoGrammar_AddResource(ISpRecoGrammar* This,SPSTATEHANDLE hRuleState,LPCWSTR pszResourceName,LPCWSTR pszResourceValue) {
7242     return This->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue);
7243 }
7244 static FORCEINLINE HRESULT ISpRecoGrammar_Commit(ISpRecoGrammar* This,DWORD dwReserved) {
7245     return This->lpVtbl->Commit(This,dwReserved);
7246 }
7247 /*** ISpRecoGrammar methods ***/
7248 static FORCEINLINE HRESULT ISpRecoGrammar_GetGrammarId(ISpRecoGrammar* This,ULONGLONG *pullGrammarId) {
7249     return This->lpVtbl->GetGrammarId(This,pullGrammarId);
7250 }
7251 static FORCEINLINE HRESULT ISpRecoGrammar_GetRecoContext(ISpRecoGrammar* This,ISpRecoContext **ppRecoCtxt) {
7252     return This->lpVtbl->GetRecoContext(This,ppRecoCtxt);
7253 }
7254 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromFile(ISpRecoGrammar* This,LPCWSTR pszFileName,SPLOADOPTIONS Options) {
7255     return This->lpVtbl->LoadCmdFromFile(This,pszFileName,Options);
7256 }
7257 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromObject(ISpRecoGrammar* This,REFCLSID rcid,LPCWSTR pszGrammarName,SPLOADOPTIONS Options) {
7258     return This->lpVtbl->LoadCmdFromObject(This,rcid,pszGrammarName,Options);
7259 }
7260 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromResource(ISpRecoGrammar* This,HMODULE hModule,LPCWSTR pszResourceName,LPCWSTR pszResourceType,WORD wLanguage,SPLOADOPTIONS Options) {
7261     return This->lpVtbl->LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options);
7262 }
7263 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromMemory(ISpRecoGrammar* This,const SPBINARYGRAMMAR *pGrammar,SPLOADOPTIONS Options) {
7264     return This->lpVtbl->LoadCmdFromMemory(This,pGrammar,Options);
7265 }
7266 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromProprietaryGrammar(ISpRecoGrammar* This,REFGUID rguidParam,LPCWSTR pszStringParam,const void *pvDataPrarm,ULONG cbDataSize,SPLOADOPTIONS Options) {
7267     return This->lpVtbl->LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options);
7268 }
7269 static FORCEINLINE HRESULT ISpRecoGrammar_SetRuleState(ISpRecoGrammar* This,LPCWSTR pszName,void *pReserved,SPRULESTATE NewState) {
7270     return This->lpVtbl->SetRuleState(This,pszName,pReserved,NewState);
7271 }
7272 static FORCEINLINE HRESULT ISpRecoGrammar_SetRuleIdState(ISpRecoGrammar* This,ULONG ulRuleId,SPRULESTATE NewState) {
7273     return This->lpVtbl->SetRuleIdState(This,ulRuleId,NewState);
7274 }
7275 static FORCEINLINE HRESULT ISpRecoGrammar_LoadDictation(ISpRecoGrammar* This,LPCWSTR pszTopicName,SPLOADOPTIONS Options) {
7276     return This->lpVtbl->LoadDictation(This,pszTopicName,Options);
7277 }
7278 static FORCEINLINE HRESULT ISpRecoGrammar_UnloadDictation(ISpRecoGrammar* This) {
7279     return This->lpVtbl->UnloadDictation(This);
7280 }
7281 static FORCEINLINE HRESULT ISpRecoGrammar_SetDictationState(ISpRecoGrammar* This,SPRULESTATE NewState) {
7282     return This->lpVtbl->SetDictationState(This,NewState);
7283 }
7284 static FORCEINLINE HRESULT ISpRecoGrammar_SetWordSequenceData(ISpRecoGrammar* This,const WCHAR *pText,ULONG cchText,const SPTEXTSELECTIONINFO *pInfo) {
7285     return This->lpVtbl->SetWordSequenceData(This,pText,cchText,pInfo);
7286 }
7287 static FORCEINLINE HRESULT ISpRecoGrammar_SetTextSelection(ISpRecoGrammar* This,const SPTEXTSELECTIONINFO *pInfo) {
7288     return This->lpVtbl->SetTextSelection(This,pInfo);
7289 }
7290 static FORCEINLINE HRESULT ISpRecoGrammar_IsPronounceable(ISpRecoGrammar* This,LPCWSTR pszWord,SPWORDPRONOUNCEABLE *pWordPronounceable) {
7291     return This->lpVtbl->IsPronounceable(This,pszWord,pWordPronounceable);
7292 }
7293 static FORCEINLINE HRESULT ISpRecoGrammar_SetGrammarState(ISpRecoGrammar* This,SPGRAMMARSTATE eGrammarState) {
7294     return This->lpVtbl->SetGrammarState(This,eGrammarState);
7295 }
7296 static FORCEINLINE HRESULT ISpRecoGrammar_SaveCmd(ISpRecoGrammar* This,IStream *pStream,LPWSTR *ppszCoMemErrorText) {
7297     return This->lpVtbl->SaveCmd(This,pStream,ppszCoMemErrorText);
7298 }
7299 static FORCEINLINE HRESULT ISpRecoGrammar_GetGrammarState(ISpRecoGrammar* This,SPGRAMMARSTATE *peGrammarState) {
7300     return This->lpVtbl->GetGrammarState(This,peGrammarState);
7301 }
7302 #endif
7303 #endif
7304 
7305 #endif
7306 
7307 
7308 #endif  /* __ISpRecoGrammar_INTERFACE_DEFINED__ */
7309 
7310 typedef struct SPRECOCONTEXTSTATUS {
7311     SPINTERFERENCE eInterference;
7312     WCHAR szRequestTypeOfUI[255];
7313     DWORD dwReserved1;
7314     DWORD dwReserved2;
7315 } SPRECOCONTEXTSTATUS;
7316 typedef enum SPBOOKMARKOPTIONS {
7317     SPBO_NONE = 0,
7318     SPBO_PAUSE = 0x1
7319 } SPBOOKMARKOPTIONS;
7320 typedef enum SPAUDIOOPTIONS {
7321     SPAO_NONE = 0,
7322     SPAO_RETAIN_AUDIO = 0x1
7323 } SPAUDIOOPTIONS;
7324 /*****************************************************************************
7325  * ISpRecoContext interface
7326  */
7327 #ifndef __ISpRecoContext_INTERFACE_DEFINED__
7328 #define __ISpRecoContext_INTERFACE_DEFINED__
7329 
7330 DEFINE_GUID(IID_ISpRecoContext, 0xf740a62f, 0x7c15, 0x489e, 0x82,0x34, 0x94,0x0a,0x33,0xd9,0x27,0x2d);
7331 #if defined(__cplusplus) && !defined(CINTERFACE)
7332 MIDL_INTERFACE("f740a62f-7c15-489e-8234-940a33d9272d")
7333 ISpRecoContext : public ISpEventSource
7334 {
7335     virtual HRESULT STDMETHODCALLTYPE GetRecognizer(
7336         ISpRecognizer **ppRecognizer) = 0;
7337 
7338     virtual HRESULT STDMETHODCALLTYPE CreateGrammar(
7339         ULONGLONG ullGrammarId,
7340         ISpRecoGrammar **ppGrammar) = 0;
7341 
7342     virtual HRESULT STDMETHODCALLTYPE GetStatus(
7343         SPRECOCONTEXTSTATUS *pStatus) = 0;
7344 
7345     virtual HRESULT STDMETHODCALLTYPE GetMaxAlternates(
7346         ULONG *pcAlternates) = 0;
7347 
7348     virtual HRESULT STDMETHODCALLTYPE SetMaxAlternates(
7349         ULONG cAlternates) = 0;
7350 
7351     virtual HRESULT STDMETHODCALLTYPE SetAudioOptions(
7352         SPAUDIOOPTIONS Options,
7353         const GUID *pAudioFormatId,
7354         const WAVEFORMATEX *pWaveFormatEx) = 0;
7355 
7356     virtual HRESULT STDMETHODCALLTYPE GetAudioOptions(
7357         SPAUDIOOPTIONS *pOptions,
7358         GUID *pAudioFormatId,
7359         WAVEFORMATEX **ppCoMemWFEX) = 0;
7360 
7361     virtual HRESULT STDMETHODCALLTYPE DeserializeResult(
7362         const SPSERIALIZEDRESULT *pSerializedResult,
7363         ISpRecoResult **ppResult) = 0;
7364 
7365     virtual HRESULT STDMETHODCALLTYPE Bookmark(
7366         SPBOOKMARKOPTIONS Options,
7367         ULONGLONG ullStreamPosition,
7368         LPARAM lparamEvent) = 0;
7369 
7370     virtual HRESULT STDMETHODCALLTYPE SetAdaptationData(
7371         LPCWSTR pAdaptationData,
7372         const ULONG cch) = 0;
7373 
7374     virtual HRESULT STDMETHODCALLTYPE Pause(
7375         DWORD dwReserved) = 0;
7376 
7377     virtual HRESULT STDMETHODCALLTYPE Resume(
7378         DWORD dwReserved) = 0;
7379 
7380     virtual HRESULT STDMETHODCALLTYPE SetVoice(
7381         ISpVoice *pVoice,
7382         WINBOOL fAllowFormatChanges) = 0;
7383 
7384     virtual HRESULT STDMETHODCALLTYPE GetVoice(
7385         ISpVoice **ppVoice) = 0;
7386 
7387     virtual HRESULT STDMETHODCALLTYPE SetVoicePurgeEvent(
7388         ULONGLONG ullEventInterest) = 0;
7389 
7390     virtual HRESULT STDMETHODCALLTYPE GetVoicePurgeEvent(
7391         ULONGLONG *pullEventInterest) = 0;
7392 
7393     virtual HRESULT STDMETHODCALLTYPE SetContextState(
7394         SPCONTEXTSTATE eContextState) = 0;
7395 
7396     virtual HRESULT STDMETHODCALLTYPE GetContextState(
7397         SPCONTEXTSTATE *peContextState) = 0;
7398 
7399 };
7400 #ifdef __CRT_UUID_DECL
7401 __CRT_UUID_DECL(ISpRecoContext, 0xf740a62f, 0x7c15, 0x489e, 0x82,0x34, 0x94,0x0a,0x33,0xd9,0x27,0x2d)
7402 #endif
7403 #else
7404 typedef struct ISpRecoContextVtbl {
7405     BEGIN_INTERFACE
7406 
7407     /*** IUnknown methods ***/
7408     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7409         ISpRecoContext *This,
7410         REFIID riid,
7411         void **ppvObject);
7412 
7413     ULONG (STDMETHODCALLTYPE *AddRef)(
7414         ISpRecoContext *This);
7415 
7416     ULONG (STDMETHODCALLTYPE *Release)(
7417         ISpRecoContext *This);
7418 
7419     /*** ISpNotifySource methods ***/
7420     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
7421         ISpRecoContext *This,
7422         ISpNotifySink *pNotifySink);
7423 
7424     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
7425         ISpRecoContext *This,
7426         HWND hWnd,
7427         UINT Msg,
7428         WPARAM wParam,
7429         LPARAM lParam);
7430 
7431     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
7432         ISpRecoContext *This,
7433         SPNOTIFYCALLBACK *pfnCallback,
7434         WPARAM wParam,
7435         LPARAM lParam);
7436 
7437     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
7438         ISpRecoContext *This,
7439         ISpNotifyCallback *pSpCallback,
7440         WPARAM wParam,
7441         LPARAM lParam);
7442 
7443     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
7444         ISpRecoContext *This);
7445 
7446     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
7447         ISpRecoContext *This,
7448         DWORD dwMilliseconds);
7449 
7450     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
7451         ISpRecoContext *This);
7452 
7453     /*** ISpEventSource methods ***/
7454     HRESULT (STDMETHODCALLTYPE *SetInterest)(
7455         ISpRecoContext *This,
7456         ULONGLONG ullEventInterest,
7457         ULONGLONG ullQueuedInterest);
7458 
7459     HRESULT (STDMETHODCALLTYPE *GetEvents)(
7460         ISpRecoContext *This,
7461         ULONG ulCount,
7462         SPEVENT *pEventArray,
7463         ULONG *pulFetched);
7464 
7465     HRESULT (STDMETHODCALLTYPE *GetInfo)(
7466         ISpRecoContext *This,
7467         SPEVENTSOURCEINFO *pInfo);
7468 
7469     /*** ISpRecoContext methods ***/
7470     HRESULT (STDMETHODCALLTYPE *GetRecognizer)(
7471         ISpRecoContext *This,
7472         ISpRecognizer **ppRecognizer);
7473 
7474     HRESULT (STDMETHODCALLTYPE *CreateGrammar)(
7475         ISpRecoContext *This,
7476         ULONGLONG ullGrammarId,
7477         ISpRecoGrammar **ppGrammar);
7478 
7479     HRESULT (STDMETHODCALLTYPE *GetStatus)(
7480         ISpRecoContext *This,
7481         SPRECOCONTEXTSTATUS *pStatus);
7482 
7483     HRESULT (STDMETHODCALLTYPE *GetMaxAlternates)(
7484         ISpRecoContext *This,
7485         ULONG *pcAlternates);
7486 
7487     HRESULT (STDMETHODCALLTYPE *SetMaxAlternates)(
7488         ISpRecoContext *This,
7489         ULONG cAlternates);
7490 
7491     HRESULT (STDMETHODCALLTYPE *SetAudioOptions)(
7492         ISpRecoContext *This,
7493         SPAUDIOOPTIONS Options,
7494         const GUID *pAudioFormatId,
7495         const WAVEFORMATEX *pWaveFormatEx);
7496 
7497     HRESULT (STDMETHODCALLTYPE *GetAudioOptions)(
7498         ISpRecoContext *This,
7499         SPAUDIOOPTIONS *pOptions,
7500         GUID *pAudioFormatId,
7501         WAVEFORMATEX **ppCoMemWFEX);
7502 
7503     HRESULT (STDMETHODCALLTYPE *DeserializeResult)(
7504         ISpRecoContext *This,
7505         const SPSERIALIZEDRESULT *pSerializedResult,
7506         ISpRecoResult **ppResult);
7507 
7508     HRESULT (STDMETHODCALLTYPE *Bookmark)(
7509         ISpRecoContext *This,
7510         SPBOOKMARKOPTIONS Options,
7511         ULONGLONG ullStreamPosition,
7512         LPARAM lparamEvent);
7513 
7514     HRESULT (STDMETHODCALLTYPE *SetAdaptationData)(
7515         ISpRecoContext *This,
7516         LPCWSTR pAdaptationData,
7517         const ULONG cch);
7518 
7519     HRESULT (STDMETHODCALLTYPE *Pause)(
7520         ISpRecoContext *This,
7521         DWORD dwReserved);
7522 
7523     HRESULT (STDMETHODCALLTYPE *Resume)(
7524         ISpRecoContext *This,
7525         DWORD dwReserved);
7526 
7527     HRESULT (STDMETHODCALLTYPE *SetVoice)(
7528         ISpRecoContext *This,
7529         ISpVoice *pVoice,
7530         WINBOOL fAllowFormatChanges);
7531 
7532     HRESULT (STDMETHODCALLTYPE *GetVoice)(
7533         ISpRecoContext *This,
7534         ISpVoice **ppVoice);
7535 
7536     HRESULT (STDMETHODCALLTYPE *SetVoicePurgeEvent)(
7537         ISpRecoContext *This,
7538         ULONGLONG ullEventInterest);
7539 
7540     HRESULT (STDMETHODCALLTYPE *GetVoicePurgeEvent)(
7541         ISpRecoContext *This,
7542         ULONGLONG *pullEventInterest);
7543 
7544     HRESULT (STDMETHODCALLTYPE *SetContextState)(
7545         ISpRecoContext *This,
7546         SPCONTEXTSTATE eContextState);
7547 
7548     HRESULT (STDMETHODCALLTYPE *GetContextState)(
7549         ISpRecoContext *This,
7550         SPCONTEXTSTATE *peContextState);
7551 
7552     END_INTERFACE
7553 } ISpRecoContextVtbl;
7554 
7555 interface ISpRecoContext {
7556     CONST_VTBL ISpRecoContextVtbl* lpVtbl;
7557 };
7558 
7559 #ifdef COBJMACROS
7560 #ifndef WIDL_C_INLINE_WRAPPERS
7561 /*** IUnknown methods ***/
7562 #define ISpRecoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7563 #define ISpRecoContext_AddRef(This) (This)->lpVtbl->AddRef(This)
7564 #define ISpRecoContext_Release(This) (This)->lpVtbl->Release(This)
7565 /*** ISpNotifySource methods ***/
7566 #define ISpRecoContext_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
7567 #define ISpRecoContext_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
7568 #define ISpRecoContext_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
7569 #define ISpRecoContext_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
7570 #define ISpRecoContext_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
7571 #define ISpRecoContext_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
7572 #define ISpRecoContext_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
7573 /*** ISpEventSource methods ***/
7574 #define ISpRecoContext_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
7575 #define ISpRecoContext_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
7576 #define ISpRecoContext_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
7577 /*** ISpRecoContext methods ***/
7578 #define ISpRecoContext_GetRecognizer(This,ppRecognizer) (This)->lpVtbl->GetRecognizer(This,ppRecognizer)
7579 #define ISpRecoContext_CreateGrammar(This,ullGrammarId,ppGrammar) (This)->lpVtbl->CreateGrammar(This,ullGrammarId,ppGrammar)
7580 #define ISpRecoContext_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
7581 #define ISpRecoContext_GetMaxAlternates(This,pcAlternates) (This)->lpVtbl->GetMaxAlternates(This,pcAlternates)
7582 #define ISpRecoContext_SetMaxAlternates(This,cAlternates) (This)->lpVtbl->SetMaxAlternates(This,cAlternates)
7583 #define ISpRecoContext_SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx)
7584 #define ISpRecoContext_GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX) (This)->lpVtbl->GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX)
7585 #define ISpRecoContext_DeserializeResult(This,pSerializedResult,ppResult) (This)->lpVtbl->DeserializeResult(This,pSerializedResult,ppResult)
7586 #define ISpRecoContext_Bookmark(This,Options,ullStreamPosition,lparamEvent) (This)->lpVtbl->Bookmark(This,Options,ullStreamPosition,lparamEvent)
7587 #define ISpRecoContext_SetAdaptationData(This,pAdaptationData,cch) (This)->lpVtbl->SetAdaptationData(This,pAdaptationData,cch)
7588 #define ISpRecoContext_Pause(This,dwReserved) (This)->lpVtbl->Pause(This,dwReserved)
7589 #define ISpRecoContext_Resume(This,dwReserved) (This)->lpVtbl->Resume(This,dwReserved)
7590 #define ISpRecoContext_SetVoice(This,pVoice,fAllowFormatChanges) (This)->lpVtbl->SetVoice(This,pVoice,fAllowFormatChanges)
7591 #define ISpRecoContext_GetVoice(This,ppVoice) (This)->lpVtbl->GetVoice(This,ppVoice)
7592 #define ISpRecoContext_SetVoicePurgeEvent(This,ullEventInterest) (This)->lpVtbl->SetVoicePurgeEvent(This,ullEventInterest)
7593 #define ISpRecoContext_GetVoicePurgeEvent(This,pullEventInterest) (This)->lpVtbl->GetVoicePurgeEvent(This,pullEventInterest)
7594 #define ISpRecoContext_SetContextState(This,eContextState) (This)->lpVtbl->SetContextState(This,eContextState)
7595 #define ISpRecoContext_GetContextState(This,peContextState) (This)->lpVtbl->GetContextState(This,peContextState)
7596 #else
7597 /*** IUnknown methods ***/
7598 static FORCEINLINE HRESULT ISpRecoContext_QueryInterface(ISpRecoContext* This,REFIID riid,void **ppvObject) {
7599     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7600 }
7601 static FORCEINLINE ULONG ISpRecoContext_AddRef(ISpRecoContext* This) {
7602     return This->lpVtbl->AddRef(This);
7603 }
7604 static FORCEINLINE ULONG ISpRecoContext_Release(ISpRecoContext* This) {
7605     return This->lpVtbl->Release(This);
7606 }
7607 /*** ISpNotifySource methods ***/
7608 static FORCEINLINE HRESULT ISpRecoContext_SetNotifySink(ISpRecoContext* This,ISpNotifySink *pNotifySink) {
7609     return This->lpVtbl->SetNotifySink(This,pNotifySink);
7610 }
7611 static FORCEINLINE HRESULT ISpRecoContext_SetNotifyWindowMessage(ISpRecoContext* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
7612     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
7613 }
7614 static FORCEINLINE HRESULT ISpRecoContext_SetNotifyCallbackFunction(ISpRecoContext* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
7615     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
7616 }
7617 static FORCEINLINE HRESULT ISpRecoContext_SetNotifyCallbackInterface(ISpRecoContext* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
7618     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
7619 }
7620 static FORCEINLINE HRESULT ISpRecoContext_SetNotifyWin32Event(ISpRecoContext* This) {
7621     return This->lpVtbl->SetNotifyWin32Event(This);
7622 }
7623 static FORCEINLINE HRESULT ISpRecoContext_WaitForNotifyEvent(ISpRecoContext* This,DWORD dwMilliseconds) {
7624     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
7625 }
7626 static FORCEINLINE HANDLE ISpRecoContext_GetNotifyEventHandle(ISpRecoContext* This) {
7627     return This->lpVtbl->GetNotifyEventHandle(This);
7628 }
7629 /*** ISpEventSource methods ***/
7630 static FORCEINLINE HRESULT ISpRecoContext_SetInterest(ISpRecoContext* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
7631     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
7632 }
7633 static FORCEINLINE HRESULT ISpRecoContext_GetEvents(ISpRecoContext* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
7634     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
7635 }
7636 static FORCEINLINE HRESULT ISpRecoContext_GetInfo(ISpRecoContext* This,SPEVENTSOURCEINFO *pInfo) {
7637     return This->lpVtbl->GetInfo(This,pInfo);
7638 }
7639 /*** ISpRecoContext methods ***/
7640 static FORCEINLINE HRESULT ISpRecoContext_GetRecognizer(ISpRecoContext* This,ISpRecognizer **ppRecognizer) {
7641     return This->lpVtbl->GetRecognizer(This,ppRecognizer);
7642 }
7643 static FORCEINLINE HRESULT ISpRecoContext_CreateGrammar(ISpRecoContext* This,ULONGLONG ullGrammarId,ISpRecoGrammar **ppGrammar) {
7644     return This->lpVtbl->CreateGrammar(This,ullGrammarId,ppGrammar);
7645 }
7646 static FORCEINLINE HRESULT ISpRecoContext_GetStatus(ISpRecoContext* This,SPRECOCONTEXTSTATUS *pStatus) {
7647     return This->lpVtbl->GetStatus(This,pStatus);
7648 }
7649 static FORCEINLINE HRESULT ISpRecoContext_GetMaxAlternates(ISpRecoContext* This,ULONG *pcAlternates) {
7650     return This->lpVtbl->GetMaxAlternates(This,pcAlternates);
7651 }
7652 static FORCEINLINE HRESULT ISpRecoContext_SetMaxAlternates(ISpRecoContext* This,ULONG cAlternates) {
7653     return This->lpVtbl->SetMaxAlternates(This,cAlternates);
7654 }
7655 static FORCEINLINE HRESULT ISpRecoContext_SetAudioOptions(ISpRecoContext* This,SPAUDIOOPTIONS Options,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
7656     return This->lpVtbl->SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx);
7657 }
7658 static FORCEINLINE HRESULT ISpRecoContext_GetAudioOptions(ISpRecoContext* This,SPAUDIOOPTIONS *pOptions,GUID *pAudioFormatId,WAVEFORMATEX **ppCoMemWFEX) {
7659     return This->lpVtbl->GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX);
7660 }
7661 static FORCEINLINE HRESULT ISpRecoContext_DeserializeResult(ISpRecoContext* This,const SPSERIALIZEDRESULT *pSerializedResult,ISpRecoResult **ppResult) {
7662     return This->lpVtbl->DeserializeResult(This,pSerializedResult,ppResult);
7663 }
7664 static FORCEINLINE HRESULT ISpRecoContext_Bookmark(ISpRecoContext* This,SPBOOKMARKOPTIONS Options,ULONGLONG ullStreamPosition,LPARAM lparamEvent) {
7665     return This->lpVtbl->Bookmark(This,Options,ullStreamPosition,lparamEvent);
7666 }
7667 static FORCEINLINE HRESULT ISpRecoContext_SetAdaptationData(ISpRecoContext* This,LPCWSTR pAdaptationData,const ULONG cch) {
7668     return This->lpVtbl->SetAdaptationData(This,pAdaptationData,cch);
7669 }
7670 static FORCEINLINE HRESULT ISpRecoContext_Pause(ISpRecoContext* This,DWORD dwReserved) {
7671     return This->lpVtbl->Pause(This,dwReserved);
7672 }
7673 static FORCEINLINE HRESULT ISpRecoContext_Resume(ISpRecoContext* This,DWORD dwReserved) {
7674     return This->lpVtbl->Resume(This,dwReserved);
7675 }
7676 static FORCEINLINE HRESULT ISpRecoContext_SetVoice(ISpRecoContext* This,ISpVoice *pVoice,WINBOOL fAllowFormatChanges) {
7677     return This->lpVtbl->SetVoice(This,pVoice,fAllowFormatChanges);
7678 }
7679 static FORCEINLINE HRESULT ISpRecoContext_GetVoice(ISpRecoContext* This,ISpVoice **ppVoice) {
7680     return This->lpVtbl->GetVoice(This,ppVoice);
7681 }
7682 static FORCEINLINE HRESULT ISpRecoContext_SetVoicePurgeEvent(ISpRecoContext* This,ULONGLONG ullEventInterest) {
7683     return This->lpVtbl->SetVoicePurgeEvent(This,ullEventInterest);
7684 }
7685 static FORCEINLINE HRESULT ISpRecoContext_GetVoicePurgeEvent(ISpRecoContext* This,ULONGLONG *pullEventInterest) {
7686     return This->lpVtbl->GetVoicePurgeEvent(This,pullEventInterest);
7687 }
7688 static FORCEINLINE HRESULT ISpRecoContext_SetContextState(ISpRecoContext* This,SPCONTEXTSTATE eContextState) {
7689     return This->lpVtbl->SetContextState(This,eContextState);
7690 }
7691 static FORCEINLINE HRESULT ISpRecoContext_GetContextState(ISpRecoContext* This,SPCONTEXTSTATE *peContextState) {
7692     return This->lpVtbl->GetContextState(This,peContextState);
7693 }
7694 #endif
7695 #endif
7696 
7697 #endif
7698 
7699 
7700 #endif  /* __ISpRecoContext_INTERFACE_DEFINED__ */
7701 
7702 /*****************************************************************************
7703  * ISpProperties interface
7704  */
7705 #ifndef __ISpProperties_INTERFACE_DEFINED__
7706 #define __ISpProperties_INTERFACE_DEFINED__
7707 
7708 DEFINE_GUID(IID_ISpProperties, 0x5b4fb971, 0xb115, 0x4de1, 0xad,0x97, 0xe4,0x82,0xe3,0xbf,0x6e,0xe4);
7709 #if defined(__cplusplus) && !defined(CINTERFACE)
7710 MIDL_INTERFACE("5b4fb971-b115-4de1-ad97-e482e3bf6ee4")
7711 ISpProperties : public IUnknown
7712 {
7713     virtual HRESULT STDMETHODCALLTYPE SetPropertyNum(
7714         LPCWSTR pName,
7715         LONG lValue) = 0;
7716 
7717     virtual HRESULT STDMETHODCALLTYPE GetPropertyNum(
7718         LPCWSTR pName,
7719         LONG *plValue) = 0;
7720 
7721     virtual HRESULT STDMETHODCALLTYPE SetPropertyString(
7722         LPCWSTR pName,
7723         LPCWSTR pValue) = 0;
7724 
7725     virtual HRESULT STDMETHODCALLTYPE GetPropertyString(
7726         LPCWSTR pName,
7727         LPWSTR *ppCoMemValue) = 0;
7728 
7729 };
7730 #ifdef __CRT_UUID_DECL
7731 __CRT_UUID_DECL(ISpProperties, 0x5b4fb971, 0xb115, 0x4de1, 0xad,0x97, 0xe4,0x82,0xe3,0xbf,0x6e,0xe4)
7732 #endif
7733 #else
7734 typedef struct ISpPropertiesVtbl {
7735     BEGIN_INTERFACE
7736 
7737     /*** IUnknown methods ***/
7738     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7739         ISpProperties *This,
7740         REFIID riid,
7741         void **ppvObject);
7742 
7743     ULONG (STDMETHODCALLTYPE *AddRef)(
7744         ISpProperties *This);
7745 
7746     ULONG (STDMETHODCALLTYPE *Release)(
7747         ISpProperties *This);
7748 
7749     /*** ISpProperties methods ***/
7750     HRESULT (STDMETHODCALLTYPE *SetPropertyNum)(
7751         ISpProperties *This,
7752         LPCWSTR pName,
7753         LONG lValue);
7754 
7755     HRESULT (STDMETHODCALLTYPE *GetPropertyNum)(
7756         ISpProperties *This,
7757         LPCWSTR pName,
7758         LONG *plValue);
7759 
7760     HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
7761         ISpProperties *This,
7762         LPCWSTR pName,
7763         LPCWSTR pValue);
7764 
7765     HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
7766         ISpProperties *This,
7767         LPCWSTR pName,
7768         LPWSTR *ppCoMemValue);
7769 
7770     END_INTERFACE
7771 } ISpPropertiesVtbl;
7772 
7773 interface ISpProperties {
7774     CONST_VTBL ISpPropertiesVtbl* lpVtbl;
7775 };
7776 
7777 #ifdef COBJMACROS
7778 #ifndef WIDL_C_INLINE_WRAPPERS
7779 /*** IUnknown methods ***/
7780 #define ISpProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7781 #define ISpProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
7782 #define ISpProperties_Release(This) (This)->lpVtbl->Release(This)
7783 /*** ISpProperties methods ***/
7784 #define ISpProperties_SetPropertyNum(This,pName,lValue) (This)->lpVtbl->SetPropertyNum(This,pName,lValue)
7785 #define ISpProperties_GetPropertyNum(This,pName,plValue) (This)->lpVtbl->GetPropertyNum(This,pName,plValue)
7786 #define ISpProperties_SetPropertyString(This,pName,pValue) (This)->lpVtbl->SetPropertyString(This,pName,pValue)
7787 #define ISpProperties_GetPropertyString(This,pName,ppCoMemValue) (This)->lpVtbl->GetPropertyString(This,pName,ppCoMemValue)
7788 #else
7789 /*** IUnknown methods ***/
7790 static FORCEINLINE HRESULT ISpProperties_QueryInterface(ISpProperties* This,REFIID riid,void **ppvObject) {
7791     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7792 }
7793 static FORCEINLINE ULONG ISpProperties_AddRef(ISpProperties* This) {
7794     return This->lpVtbl->AddRef(This);
7795 }
7796 static FORCEINLINE ULONG ISpProperties_Release(ISpProperties* This) {
7797     return This->lpVtbl->Release(This);
7798 }
7799 /*** ISpProperties methods ***/
7800 static FORCEINLINE HRESULT ISpProperties_SetPropertyNum(ISpProperties* This,LPCWSTR pName,LONG lValue) {
7801     return This->lpVtbl->SetPropertyNum(This,pName,lValue);
7802 }
7803 static FORCEINLINE HRESULT ISpProperties_GetPropertyNum(ISpProperties* This,LPCWSTR pName,LONG *plValue) {
7804     return This->lpVtbl->GetPropertyNum(This,pName,plValue);
7805 }
7806 static FORCEINLINE HRESULT ISpProperties_SetPropertyString(ISpProperties* This,LPCWSTR pName,LPCWSTR pValue) {
7807     return This->lpVtbl->SetPropertyString(This,pName,pValue);
7808 }
7809 static FORCEINLINE HRESULT ISpProperties_GetPropertyString(ISpProperties* This,LPCWSTR pName,LPWSTR *ppCoMemValue) {
7810     return This->lpVtbl->GetPropertyString(This,pName,ppCoMemValue);
7811 }
7812 #endif
7813 #endif
7814 
7815 #endif
7816 
7817 
7818 #endif  /* __ISpProperties_INTERFACE_DEFINED__ */
7819 
7820 #define SP_MAX_LANGIDS (20)
7821 
7822 typedef struct SPRECOGNIZERSTATUS {
7823     SPAUDIOSTATUS AudioStatus;
7824     ULONGLONG ullRecognitionStreamPos;
7825     ULONG ulStreamNumber;
7826     ULONG ulNumActive;
7827     CLSID clsidEngine;
7828     ULONG cLangIDs;
7829     WORD aLangID[20];
7830     ULONGLONG ullRecognitionStreamTime;
7831 } SPRECOGNIZERSTATUS;
7832 typedef enum SPWAVEFORMATTYPE {
7833     SPWF_INPUT = 0,
7834     SPWF_SRENGINE = 1
7835 } SPSTREAMFORMATTYPE;
7836 typedef enum SPRECOSTATE {
7837     SPRST_INACTIVE = 0,
7838     SPRST_ACTIVE = 1,
7839     SPRST_ACTIVE_ALWAYS = 2,
7840     SPRST_INACTIVE_WITH_PURGE = 3,
7841     SPRST_NUM_STATES = 4
7842 } SPRECOSTATE;
7843 /*****************************************************************************
7844  * ISpRecognizer interface
7845  */
7846 #ifndef __ISpRecognizer_INTERFACE_DEFINED__
7847 #define __ISpRecognizer_INTERFACE_DEFINED__
7848 
7849 DEFINE_GUID(IID_ISpRecognizer, 0xc2b5f241, 0xdaa0, 0x4507, 0x9e,0x16, 0x5a,0x1e,0xaa,0x2b,0x7a,0x5c);
7850 #if defined(__cplusplus) && !defined(CINTERFACE)
7851 MIDL_INTERFACE("c2b5f241-daa0-4507-9e16-5a1eaa2b7a5c")
7852 ISpRecognizer : public ISpProperties
7853 {
7854     virtual HRESULT STDMETHODCALLTYPE SetRecognizer(
7855         ISpObjectToken *pRecognizer) = 0;
7856 
7857     virtual HRESULT STDMETHODCALLTYPE GetRecognizer(
7858         ISpObjectToken **ppRecognizer) = 0;
7859 
7860     virtual HRESULT STDMETHODCALLTYPE SetInput(
7861         IUnknown *pUnkInput,
7862         WINBOOL fAllowFormatChanges) = 0;
7863 
7864     virtual HRESULT STDMETHODCALLTYPE GetInputObjectToken(
7865         ISpObjectToken **ppToken) = 0;
7866 
7867     virtual HRESULT STDMETHODCALLTYPE GetInputStream(
7868         ISpStreamFormat **ppStream) = 0;
7869 
7870     virtual HRESULT STDMETHODCALLTYPE CreateRecoContext(
7871         ISpRecoContext **ppNewCtxt) = 0;
7872 
7873     virtual HRESULT STDMETHODCALLTYPE GetRecoProfile(
7874         ISpObjectToken **ppToken) = 0;
7875 
7876     virtual HRESULT STDMETHODCALLTYPE SetRecoProfile(
7877         ISpObjectToken *pToken) = 0;
7878 
7879     virtual HRESULT STDMETHODCALLTYPE IsSharedInstance(
7880         ) = 0;
7881 
7882     virtual HRESULT STDMETHODCALLTYPE GetRecoState(
7883         SPRECOSTATE *pState) = 0;
7884 
7885     virtual HRESULT STDMETHODCALLTYPE SetRecoState(
7886         SPRECOSTATE NewState) = 0;
7887 
7888     virtual HRESULT STDMETHODCALLTYPE GetStatus(
7889         SPRECOGNIZERSTATUS *pStatus) = 0;
7890 
7891     virtual HRESULT STDMETHODCALLTYPE GetFormat(
7892         SPSTREAMFORMATTYPE WaveFormatType,
7893         GUID *pFormatId,
7894         WAVEFORMATEX **ppCoMemWFEX) = 0;
7895 
7896     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
7897         LPCWSTR pszTypeOfUI,
7898         void *pvExtraData,
7899         ULONG cbExtraData,
7900         WINBOOL *pfSupported) = 0;
7901 
7902     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
7903         HWND hwndParent,
7904         LPCWSTR pszTitle,
7905         LPCWSTR pszTypeOfUI,
7906         void *pvExtraData,
7907         ULONG cbExtraData) = 0;
7908 
7909     virtual HRESULT STDMETHODCALLTYPE EmulateRecognition(
7910         ISpPhrase *pPhrase) = 0;
7911 
7912 };
7913 #ifdef __CRT_UUID_DECL
7914 __CRT_UUID_DECL(ISpRecognizer, 0xc2b5f241, 0xdaa0, 0x4507, 0x9e,0x16, 0x5a,0x1e,0xaa,0x2b,0x7a,0x5c)
7915 #endif
7916 #else
7917 typedef struct ISpRecognizerVtbl {
7918     BEGIN_INTERFACE
7919 
7920     /*** IUnknown methods ***/
7921     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7922         ISpRecognizer *This,
7923         REFIID riid,
7924         void **ppvObject);
7925 
7926     ULONG (STDMETHODCALLTYPE *AddRef)(
7927         ISpRecognizer *This);
7928 
7929     ULONG (STDMETHODCALLTYPE *Release)(
7930         ISpRecognizer *This);
7931 
7932     /*** ISpProperties methods ***/
7933     HRESULT (STDMETHODCALLTYPE *SetPropertyNum)(
7934         ISpRecognizer *This,
7935         LPCWSTR pName,
7936         LONG lValue);
7937 
7938     HRESULT (STDMETHODCALLTYPE *GetPropertyNum)(
7939         ISpRecognizer *This,
7940         LPCWSTR pName,
7941         LONG *plValue);
7942 
7943     HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
7944         ISpRecognizer *This,
7945         LPCWSTR pName,
7946         LPCWSTR pValue);
7947 
7948     HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
7949         ISpRecognizer *This,
7950         LPCWSTR pName,
7951         LPWSTR *ppCoMemValue);
7952 
7953     /*** ISpRecognizer methods ***/
7954     HRESULT (STDMETHODCALLTYPE *SetRecognizer)(
7955         ISpRecognizer *This,
7956         ISpObjectToken *pRecognizer);
7957 
7958     HRESULT (STDMETHODCALLTYPE *GetRecognizer)(
7959         ISpRecognizer *This,
7960         ISpObjectToken **ppRecognizer);
7961 
7962     HRESULT (STDMETHODCALLTYPE *SetInput)(
7963         ISpRecognizer *This,
7964         IUnknown *pUnkInput,
7965         WINBOOL fAllowFormatChanges);
7966 
7967     HRESULT (STDMETHODCALLTYPE *GetInputObjectToken)(
7968         ISpRecognizer *This,
7969         ISpObjectToken **ppToken);
7970 
7971     HRESULT (STDMETHODCALLTYPE *GetInputStream)(
7972         ISpRecognizer *This,
7973         ISpStreamFormat **ppStream);
7974 
7975     HRESULT (STDMETHODCALLTYPE *CreateRecoContext)(
7976         ISpRecognizer *This,
7977         ISpRecoContext **ppNewCtxt);
7978 
7979     HRESULT (STDMETHODCALLTYPE *GetRecoProfile)(
7980         ISpRecognizer *This,
7981         ISpObjectToken **ppToken);
7982 
7983     HRESULT (STDMETHODCALLTYPE *SetRecoProfile)(
7984         ISpRecognizer *This,
7985         ISpObjectToken *pToken);
7986 
7987     HRESULT (STDMETHODCALLTYPE *IsSharedInstance)(
7988         ISpRecognizer *This);
7989 
7990     HRESULT (STDMETHODCALLTYPE *GetRecoState)(
7991         ISpRecognizer *This,
7992         SPRECOSTATE *pState);
7993 
7994     HRESULT (STDMETHODCALLTYPE *SetRecoState)(
7995         ISpRecognizer *This,
7996         SPRECOSTATE NewState);
7997 
7998     HRESULT (STDMETHODCALLTYPE *GetStatus)(
7999         ISpRecognizer *This,
8000         SPRECOGNIZERSTATUS *pStatus);
8001 
8002     HRESULT (STDMETHODCALLTYPE *GetFormat)(
8003         ISpRecognizer *This,
8004         SPSTREAMFORMATTYPE WaveFormatType,
8005         GUID *pFormatId,
8006         WAVEFORMATEX **ppCoMemWFEX);
8007 
8008     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
8009         ISpRecognizer *This,
8010         LPCWSTR pszTypeOfUI,
8011         void *pvExtraData,
8012         ULONG cbExtraData,
8013         WINBOOL *pfSupported);
8014 
8015     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
8016         ISpRecognizer *This,
8017         HWND hwndParent,
8018         LPCWSTR pszTitle,
8019         LPCWSTR pszTypeOfUI,
8020         void *pvExtraData,
8021         ULONG cbExtraData);
8022 
8023     HRESULT (STDMETHODCALLTYPE *EmulateRecognition)(
8024         ISpRecognizer *This,
8025         ISpPhrase *pPhrase);
8026 
8027     END_INTERFACE
8028 } ISpRecognizerVtbl;
8029 
8030 interface ISpRecognizer {
8031     CONST_VTBL ISpRecognizerVtbl* lpVtbl;
8032 };
8033 
8034 #ifdef COBJMACROS
8035 #ifndef WIDL_C_INLINE_WRAPPERS
8036 /*** IUnknown methods ***/
8037 #define ISpRecognizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8038 #define ISpRecognizer_AddRef(This) (This)->lpVtbl->AddRef(This)
8039 #define ISpRecognizer_Release(This) (This)->lpVtbl->Release(This)
8040 /*** ISpProperties methods ***/
8041 #define ISpRecognizer_SetPropertyNum(This,pName,lValue) (This)->lpVtbl->SetPropertyNum(This,pName,lValue)
8042 #define ISpRecognizer_GetPropertyNum(This,pName,plValue) (This)->lpVtbl->GetPropertyNum(This,pName,plValue)
8043 #define ISpRecognizer_SetPropertyString(This,pName,pValue) (This)->lpVtbl->SetPropertyString(This,pName,pValue)
8044 #define ISpRecognizer_GetPropertyString(This,pName,ppCoMemValue) (This)->lpVtbl->GetPropertyString(This,pName,ppCoMemValue)
8045 /*** ISpRecognizer methods ***/
8046 #define ISpRecognizer_SetRecognizer(This,pRecognizer) (This)->lpVtbl->SetRecognizer(This,pRecognizer)
8047 #define ISpRecognizer_GetRecognizer(This,ppRecognizer) (This)->lpVtbl->GetRecognizer(This,ppRecognizer)
8048 #define ISpRecognizer_SetInput(This,pUnkInput,fAllowFormatChanges) (This)->lpVtbl->SetInput(This,pUnkInput,fAllowFormatChanges)
8049 #define ISpRecognizer_GetInputObjectToken(This,ppToken) (This)->lpVtbl->GetInputObjectToken(This,ppToken)
8050 #define ISpRecognizer_GetInputStream(This,ppStream) (This)->lpVtbl->GetInputStream(This,ppStream)
8051 #define ISpRecognizer_CreateRecoContext(This,ppNewCtxt) (This)->lpVtbl->CreateRecoContext(This,ppNewCtxt)
8052 #define ISpRecognizer_GetRecoProfile(This,ppToken) (This)->lpVtbl->GetRecoProfile(This,ppToken)
8053 #define ISpRecognizer_SetRecoProfile(This,pToken) (This)->lpVtbl->SetRecoProfile(This,pToken)
8054 #define ISpRecognizer_IsSharedInstance(This) (This)->lpVtbl->IsSharedInstance(This)
8055 #define ISpRecognizer_GetRecoState(This,pState) (This)->lpVtbl->GetRecoState(This,pState)
8056 #define ISpRecognizer_SetRecoState(This,NewState) (This)->lpVtbl->SetRecoState(This,NewState)
8057 #define ISpRecognizer_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
8058 #define ISpRecognizer_GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX) (This)->lpVtbl->GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX)
8059 #define ISpRecognizer_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported)
8060 #define ISpRecognizer_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData)
8061 #define ISpRecognizer_EmulateRecognition(This,pPhrase) (This)->lpVtbl->EmulateRecognition(This,pPhrase)
8062 #else
8063 /*** IUnknown methods ***/
8064 static FORCEINLINE HRESULT ISpRecognizer_QueryInterface(ISpRecognizer* This,REFIID riid,void **ppvObject) {
8065     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8066 }
8067 static FORCEINLINE ULONG ISpRecognizer_AddRef(ISpRecognizer* This) {
8068     return This->lpVtbl->AddRef(This);
8069 }
8070 static FORCEINLINE ULONG ISpRecognizer_Release(ISpRecognizer* This) {
8071     return This->lpVtbl->Release(This);
8072 }
8073 /*** ISpProperties methods ***/
8074 static FORCEINLINE HRESULT ISpRecognizer_SetPropertyNum(ISpRecognizer* This,LPCWSTR pName,LONG lValue) {
8075     return This->lpVtbl->SetPropertyNum(This,pName,lValue);
8076 }
8077 static FORCEINLINE HRESULT ISpRecognizer_GetPropertyNum(ISpRecognizer* This,LPCWSTR pName,LONG *plValue) {
8078     return This->lpVtbl->GetPropertyNum(This,pName,plValue);
8079 }
8080 static FORCEINLINE HRESULT ISpRecognizer_SetPropertyString(ISpRecognizer* This,LPCWSTR pName,LPCWSTR pValue) {
8081     return This->lpVtbl->SetPropertyString(This,pName,pValue);
8082 }
8083 static FORCEINLINE HRESULT ISpRecognizer_GetPropertyString(ISpRecognizer* This,LPCWSTR pName,LPWSTR *ppCoMemValue) {
8084     return This->lpVtbl->GetPropertyString(This,pName,ppCoMemValue);
8085 }
8086 /*** ISpRecognizer methods ***/
8087 static FORCEINLINE HRESULT ISpRecognizer_SetRecognizer(ISpRecognizer* This,ISpObjectToken *pRecognizer) {
8088     return This->lpVtbl->SetRecognizer(This,pRecognizer);
8089 }
8090 static FORCEINLINE HRESULT ISpRecognizer_GetRecognizer(ISpRecognizer* This,ISpObjectToken **ppRecognizer) {
8091     return This->lpVtbl->GetRecognizer(This,ppRecognizer);
8092 }
8093 static FORCEINLINE HRESULT ISpRecognizer_SetInput(ISpRecognizer* This,IUnknown *pUnkInput,WINBOOL fAllowFormatChanges) {
8094     return This->lpVtbl->SetInput(This,pUnkInput,fAllowFormatChanges);
8095 }
8096 static FORCEINLINE HRESULT ISpRecognizer_GetInputObjectToken(ISpRecognizer* This,ISpObjectToken **ppToken) {
8097     return This->lpVtbl->GetInputObjectToken(This,ppToken);
8098 }
8099 static FORCEINLINE HRESULT ISpRecognizer_GetInputStream(ISpRecognizer* This,ISpStreamFormat **ppStream) {
8100     return This->lpVtbl->GetInputStream(This,ppStream);
8101 }
8102 static FORCEINLINE HRESULT ISpRecognizer_CreateRecoContext(ISpRecognizer* This,ISpRecoContext **ppNewCtxt) {
8103     return This->lpVtbl->CreateRecoContext(This,ppNewCtxt);
8104 }
8105 static FORCEINLINE HRESULT ISpRecognizer_GetRecoProfile(ISpRecognizer* This,ISpObjectToken **ppToken) {
8106     return This->lpVtbl->GetRecoProfile(This,ppToken);
8107 }
8108 static FORCEINLINE HRESULT ISpRecognizer_SetRecoProfile(ISpRecognizer* This,ISpObjectToken *pToken) {
8109     return This->lpVtbl->SetRecoProfile(This,pToken);
8110 }
8111 static FORCEINLINE HRESULT ISpRecognizer_IsSharedInstance(ISpRecognizer* This) {
8112     return This->lpVtbl->IsSharedInstance(This);
8113 }
8114 static FORCEINLINE HRESULT ISpRecognizer_GetRecoState(ISpRecognizer* This,SPRECOSTATE *pState) {
8115     return This->lpVtbl->GetRecoState(This,pState);
8116 }
8117 static FORCEINLINE HRESULT ISpRecognizer_SetRecoState(ISpRecognizer* This,SPRECOSTATE NewState) {
8118     return This->lpVtbl->SetRecoState(This,NewState);
8119 }
8120 static FORCEINLINE HRESULT ISpRecognizer_GetStatus(ISpRecognizer* This,SPRECOGNIZERSTATUS *pStatus) {
8121     return This->lpVtbl->GetStatus(This,pStatus);
8122 }
8123 static FORCEINLINE HRESULT ISpRecognizer_GetFormat(ISpRecognizer* This,SPSTREAMFORMATTYPE WaveFormatType,GUID *pFormatId,WAVEFORMATEX **ppCoMemWFEX) {
8124     return This->lpVtbl->GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX);
8125 }
8126 static FORCEINLINE HRESULT ISpRecognizer_IsUISupported(ISpRecognizer* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,WINBOOL *pfSupported) {
8127     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported);
8128 }
8129 static FORCEINLINE HRESULT ISpRecognizer_DisplayUI(ISpRecognizer* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData) {
8130     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData);
8131 }
8132 static FORCEINLINE HRESULT ISpRecognizer_EmulateRecognition(ISpRecognizer* This,ISpPhrase *pPhrase) {
8133     return This->lpVtbl->EmulateRecognition(This,pPhrase);
8134 }
8135 #endif
8136 #endif
8137 
8138 #endif
8139 
8140 
8141 #endif  /* __ISpRecognizer_INTERFACE_DEFINED__ */
8142 
8143 #ifndef __SpeechLib_LIBRARY_DEFINED__
8144 #define __SpeechLib_LIBRARY_DEFINED__
8145 
8146 DEFINE_GUID(LIBID_SpeechLib, 0xc866ca3a, 0x32f7, 0x11d2, 0x96,0x02, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
8147 
8148 #ifndef __ISpeechDataKey_FWD_DEFINED__
8149 #define __ISpeechDataKey_FWD_DEFINED__
8150 typedef interface ISpeechDataKey ISpeechDataKey;
8151 #ifdef __cplusplus
8152 interface ISpeechDataKey;
8153 #endif /* __cplusplus */
8154 #endif
8155 
8156 #ifndef __ISpeechObjectToken_FWD_DEFINED__
8157 #define __ISpeechObjectToken_FWD_DEFINED__
8158 typedef interface ISpeechObjectToken ISpeechObjectToken;
8159 #ifdef __cplusplus
8160 interface ISpeechObjectToken;
8161 #endif /* __cplusplus */
8162 #endif
8163 
8164 #ifndef __ISpeechObjectTokens_FWD_DEFINED__
8165 #define __ISpeechObjectTokens_FWD_DEFINED__
8166 typedef interface ISpeechObjectTokens ISpeechObjectTokens;
8167 #ifdef __cplusplus
8168 interface ISpeechObjectTokens;
8169 #endif /* __cplusplus */
8170 #endif
8171 
8172 #ifndef __ISpeechObjectTokenCategory_FWD_DEFINED__
8173 #define __ISpeechObjectTokenCategory_FWD_DEFINED__
8174 typedef interface ISpeechObjectTokenCategory ISpeechObjectTokenCategory;
8175 #ifdef __cplusplus
8176 interface ISpeechObjectTokenCategory;
8177 #endif /* __cplusplus */
8178 #endif
8179 
8180 #ifndef __ISpeechAudioBufferInfo_FWD_DEFINED__
8181 #define __ISpeechAudioBufferInfo_FWD_DEFINED__
8182 typedef interface ISpeechAudioBufferInfo ISpeechAudioBufferInfo;
8183 #ifdef __cplusplus
8184 interface ISpeechAudioBufferInfo;
8185 #endif /* __cplusplus */
8186 #endif
8187 
8188 #ifndef __ISpeechAudioStatus_FWD_DEFINED__
8189 #define __ISpeechAudioStatus_FWD_DEFINED__
8190 typedef interface ISpeechAudioStatus ISpeechAudioStatus;
8191 #ifdef __cplusplus
8192 interface ISpeechAudioStatus;
8193 #endif /* __cplusplus */
8194 #endif
8195 
8196 #ifndef __ISpeechAudioFormat_FWD_DEFINED__
8197 #define __ISpeechAudioFormat_FWD_DEFINED__
8198 typedef interface ISpeechAudioFormat ISpeechAudioFormat;
8199 #ifdef __cplusplus
8200 interface ISpeechAudioFormat;
8201 #endif /* __cplusplus */
8202 #endif
8203 
8204 #ifndef __ISpeechWaveFormatEx_FWD_DEFINED__
8205 #define __ISpeechWaveFormatEx_FWD_DEFINED__
8206 typedef interface ISpeechWaveFormatEx ISpeechWaveFormatEx;
8207 #ifdef __cplusplus
8208 interface ISpeechWaveFormatEx;
8209 #endif /* __cplusplus */
8210 #endif
8211 
8212 #ifndef __ISpeechBaseStream_FWD_DEFINED__
8213 #define __ISpeechBaseStream_FWD_DEFINED__
8214 typedef interface ISpeechBaseStream ISpeechBaseStream;
8215 #ifdef __cplusplus
8216 interface ISpeechBaseStream;
8217 #endif /* __cplusplus */
8218 #endif
8219 
8220 #ifndef __ISpeechFileStream_FWD_DEFINED__
8221 #define __ISpeechFileStream_FWD_DEFINED__
8222 typedef interface ISpeechFileStream ISpeechFileStream;
8223 #ifdef __cplusplus
8224 interface ISpeechFileStream;
8225 #endif /* __cplusplus */
8226 #endif
8227 
8228 #ifndef __ISpeechMemoryStream_FWD_DEFINED__
8229 #define __ISpeechMemoryStream_FWD_DEFINED__
8230 typedef interface ISpeechMemoryStream ISpeechMemoryStream;
8231 #ifdef __cplusplus
8232 interface ISpeechMemoryStream;
8233 #endif /* __cplusplus */
8234 #endif
8235 
8236 #ifndef __ISpeechCustomStream_FWD_DEFINED__
8237 #define __ISpeechCustomStream_FWD_DEFINED__
8238 typedef interface ISpeechCustomStream ISpeechCustomStream;
8239 #ifdef __cplusplus
8240 interface ISpeechCustomStream;
8241 #endif /* __cplusplus */
8242 #endif
8243 
8244 #ifndef __ISpeechAudio_FWD_DEFINED__
8245 #define __ISpeechAudio_FWD_DEFINED__
8246 typedef interface ISpeechAudio ISpeechAudio;
8247 #ifdef __cplusplus
8248 interface ISpeechAudio;
8249 #endif /* __cplusplus */
8250 #endif
8251 
8252 #ifndef __ISpeechMMSysAudio_FWD_DEFINED__
8253 #define __ISpeechMMSysAudio_FWD_DEFINED__
8254 typedef interface ISpeechMMSysAudio ISpeechMMSysAudio;
8255 #ifdef __cplusplus
8256 interface ISpeechMMSysAudio;
8257 #endif /* __cplusplus */
8258 #endif
8259 
8260 #ifndef __ISpeechVoice_FWD_DEFINED__
8261 #define __ISpeechVoice_FWD_DEFINED__
8262 typedef interface ISpeechVoice ISpeechVoice;
8263 #ifdef __cplusplus
8264 interface ISpeechVoice;
8265 #endif /* __cplusplus */
8266 #endif
8267 
8268 #ifndef __ISpeechVoiceStatus_FWD_DEFINED__
8269 #define __ISpeechVoiceStatus_FWD_DEFINED__
8270 typedef interface ISpeechVoiceStatus ISpeechVoiceStatus;
8271 #ifdef __cplusplus
8272 interface ISpeechVoiceStatus;
8273 #endif /* __cplusplus */
8274 #endif
8275 
8276 #ifndef ___ISpeechVoiceEvents_FWD_DEFINED__
8277 #define ___ISpeechVoiceEvents_FWD_DEFINED__
8278 typedef interface _ISpeechVoiceEvents _ISpeechVoiceEvents;
8279 #ifdef __cplusplus
8280 interface _ISpeechVoiceEvents;
8281 #endif /* __cplusplus */
8282 #endif
8283 
8284 #ifndef __ISpeechRecognizer_FWD_DEFINED__
8285 #define __ISpeechRecognizer_FWD_DEFINED__
8286 typedef interface ISpeechRecognizer ISpeechRecognizer;
8287 #ifdef __cplusplus
8288 interface ISpeechRecognizer;
8289 #endif /* __cplusplus */
8290 #endif
8291 
8292 #ifndef __ISpeechRecognizerStatus_FWD_DEFINED__
8293 #define __ISpeechRecognizerStatus_FWD_DEFINED__
8294 typedef interface ISpeechRecognizerStatus ISpeechRecognizerStatus;
8295 #ifdef __cplusplus
8296 interface ISpeechRecognizerStatus;
8297 #endif /* __cplusplus */
8298 #endif
8299 
8300 #ifndef __ISpeechRecoContext_FWD_DEFINED__
8301 #define __ISpeechRecoContext_FWD_DEFINED__
8302 typedef interface ISpeechRecoContext ISpeechRecoContext;
8303 #ifdef __cplusplus
8304 interface ISpeechRecoContext;
8305 #endif /* __cplusplus */
8306 #endif
8307 
8308 #ifndef __ISpeechRecoGrammar_FWD_DEFINED__
8309 #define __ISpeechRecoGrammar_FWD_DEFINED__
8310 typedef interface ISpeechRecoGrammar ISpeechRecoGrammar;
8311 #ifdef __cplusplus
8312 interface ISpeechRecoGrammar;
8313 #endif /* __cplusplus */
8314 #endif
8315 
8316 #ifndef ___ISpeechRecoContextEvents_FWD_DEFINED__
8317 #define ___ISpeechRecoContextEvents_FWD_DEFINED__
8318 typedef interface _ISpeechRecoContextEvents _ISpeechRecoContextEvents;
8319 #ifdef __cplusplus
8320 interface _ISpeechRecoContextEvents;
8321 #endif /* __cplusplus */
8322 #endif
8323 
8324 #ifndef __ISpeechGrammarRule_FWD_DEFINED__
8325 #define __ISpeechGrammarRule_FWD_DEFINED__
8326 typedef interface ISpeechGrammarRule ISpeechGrammarRule;
8327 #ifdef __cplusplus
8328 interface ISpeechGrammarRule;
8329 #endif /* __cplusplus */
8330 #endif
8331 
8332 #ifndef __ISpeechGrammarRules_FWD_DEFINED__
8333 #define __ISpeechGrammarRules_FWD_DEFINED__
8334 typedef interface ISpeechGrammarRules ISpeechGrammarRules;
8335 #ifdef __cplusplus
8336 interface ISpeechGrammarRules;
8337 #endif /* __cplusplus */
8338 #endif
8339 
8340 #ifndef __ISpeechGrammarRuleState_FWD_DEFINED__
8341 #define __ISpeechGrammarRuleState_FWD_DEFINED__
8342 typedef interface ISpeechGrammarRuleState ISpeechGrammarRuleState;
8343 #ifdef __cplusplus
8344 interface ISpeechGrammarRuleState;
8345 #endif /* __cplusplus */
8346 #endif
8347 
8348 #ifndef __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
8349 #define __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
8350 typedef interface ISpeechGrammarRuleStateTransition ISpeechGrammarRuleStateTransition;
8351 #ifdef __cplusplus
8352 interface ISpeechGrammarRuleStateTransition;
8353 #endif /* __cplusplus */
8354 #endif
8355 
8356 #ifndef __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
8357 #define __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
8358 typedef interface ISpeechGrammarRuleStateTransitions ISpeechGrammarRuleStateTransitions;
8359 #ifdef __cplusplus
8360 interface ISpeechGrammarRuleStateTransitions;
8361 #endif /* __cplusplus */
8362 #endif
8363 
8364 #ifndef __ISpeechTextSelectionInformation_FWD_DEFINED__
8365 #define __ISpeechTextSelectionInformation_FWD_DEFINED__
8366 typedef interface ISpeechTextSelectionInformation ISpeechTextSelectionInformation;
8367 #ifdef __cplusplus
8368 interface ISpeechTextSelectionInformation;
8369 #endif /* __cplusplus */
8370 #endif
8371 
8372 #ifndef __ISpeechRecoResult_FWD_DEFINED__
8373 #define __ISpeechRecoResult_FWD_DEFINED__
8374 typedef interface ISpeechRecoResult ISpeechRecoResult;
8375 #ifdef __cplusplus
8376 interface ISpeechRecoResult;
8377 #endif /* __cplusplus */
8378 #endif
8379 
8380 #ifndef __ISpeechRecoResultTimes_FWD_DEFINED__
8381 #define __ISpeechRecoResultTimes_FWD_DEFINED__
8382 typedef interface ISpeechRecoResultTimes ISpeechRecoResultTimes;
8383 #ifdef __cplusplus
8384 interface ISpeechRecoResultTimes;
8385 #endif /* __cplusplus */
8386 #endif
8387 
8388 #ifndef __ISpeechPhraseAlternate_FWD_DEFINED__
8389 #define __ISpeechPhraseAlternate_FWD_DEFINED__
8390 typedef interface ISpeechPhraseAlternate ISpeechPhraseAlternate;
8391 #ifdef __cplusplus
8392 interface ISpeechPhraseAlternate;
8393 #endif /* __cplusplus */
8394 #endif
8395 
8396 #ifndef __ISpeechPhraseAlternates_FWD_DEFINED__
8397 #define __ISpeechPhraseAlternates_FWD_DEFINED__
8398 typedef interface ISpeechPhraseAlternates ISpeechPhraseAlternates;
8399 #ifdef __cplusplus
8400 interface ISpeechPhraseAlternates;
8401 #endif /* __cplusplus */
8402 #endif
8403 
8404 #ifndef __ISpeechPhraseInfo_FWD_DEFINED__
8405 #define __ISpeechPhraseInfo_FWD_DEFINED__
8406 typedef interface ISpeechPhraseInfo ISpeechPhraseInfo;
8407 #ifdef __cplusplus
8408 interface ISpeechPhraseInfo;
8409 #endif /* __cplusplus */
8410 #endif
8411 
8412 #ifndef __ISpeechPhraseElement_FWD_DEFINED__
8413 #define __ISpeechPhraseElement_FWD_DEFINED__
8414 typedef interface ISpeechPhraseElement ISpeechPhraseElement;
8415 #ifdef __cplusplus
8416 interface ISpeechPhraseElement;
8417 #endif /* __cplusplus */
8418 #endif
8419 
8420 #ifndef __ISpeechPhraseElements_FWD_DEFINED__
8421 #define __ISpeechPhraseElements_FWD_DEFINED__
8422 typedef interface ISpeechPhraseElements ISpeechPhraseElements;
8423 #ifdef __cplusplus
8424 interface ISpeechPhraseElements;
8425 #endif /* __cplusplus */
8426 #endif
8427 
8428 #ifndef __ISpeechPhraseReplacement_FWD_DEFINED__
8429 #define __ISpeechPhraseReplacement_FWD_DEFINED__
8430 typedef interface ISpeechPhraseReplacement ISpeechPhraseReplacement;
8431 #ifdef __cplusplus
8432 interface ISpeechPhraseReplacement;
8433 #endif /* __cplusplus */
8434 #endif
8435 
8436 #ifndef __ISpeechPhraseReplacements_FWD_DEFINED__
8437 #define __ISpeechPhraseReplacements_FWD_DEFINED__
8438 typedef interface ISpeechPhraseReplacements ISpeechPhraseReplacements;
8439 #ifdef __cplusplus
8440 interface ISpeechPhraseReplacements;
8441 #endif /* __cplusplus */
8442 #endif
8443 
8444 #ifndef __ISpeechPhraseProperty_FWD_DEFINED__
8445 #define __ISpeechPhraseProperty_FWD_DEFINED__
8446 typedef interface ISpeechPhraseProperty ISpeechPhraseProperty;
8447 #ifdef __cplusplus
8448 interface ISpeechPhraseProperty;
8449 #endif /* __cplusplus */
8450 #endif
8451 
8452 #ifndef __ISpeechPhraseProperties_FWD_DEFINED__
8453 #define __ISpeechPhraseProperties_FWD_DEFINED__
8454 typedef interface ISpeechPhraseProperties ISpeechPhraseProperties;
8455 #ifdef __cplusplus
8456 interface ISpeechPhraseProperties;
8457 #endif /* __cplusplus */
8458 #endif
8459 
8460 #ifndef __ISpeechPhraseRule_FWD_DEFINED__
8461 #define __ISpeechPhraseRule_FWD_DEFINED__
8462 typedef interface ISpeechPhraseRule ISpeechPhraseRule;
8463 #ifdef __cplusplus
8464 interface ISpeechPhraseRule;
8465 #endif /* __cplusplus */
8466 #endif
8467 
8468 #ifndef __ISpeechPhraseRules_FWD_DEFINED__
8469 #define __ISpeechPhraseRules_FWD_DEFINED__
8470 typedef interface ISpeechPhraseRules ISpeechPhraseRules;
8471 #ifdef __cplusplus
8472 interface ISpeechPhraseRules;
8473 #endif /* __cplusplus */
8474 #endif
8475 
8476 #ifndef __ISpeechLexicon_FWD_DEFINED__
8477 #define __ISpeechLexicon_FWD_DEFINED__
8478 typedef interface ISpeechLexicon ISpeechLexicon;
8479 #ifdef __cplusplus
8480 interface ISpeechLexicon;
8481 #endif /* __cplusplus */
8482 #endif
8483 
8484 #ifndef __ISpeechLexiconWords_FWD_DEFINED__
8485 #define __ISpeechLexiconWords_FWD_DEFINED__
8486 typedef interface ISpeechLexiconWords ISpeechLexiconWords;
8487 #ifdef __cplusplus
8488 interface ISpeechLexiconWords;
8489 #endif /* __cplusplus */
8490 #endif
8491 
8492 #ifndef __ISpeechLexiconWord_FWD_DEFINED__
8493 #define __ISpeechLexiconWord_FWD_DEFINED__
8494 typedef interface ISpeechLexiconWord ISpeechLexiconWord;
8495 #ifdef __cplusplus
8496 interface ISpeechLexiconWord;
8497 #endif /* __cplusplus */
8498 #endif
8499 
8500 #ifndef __ISpeechLexiconPronunciations_FWD_DEFINED__
8501 #define __ISpeechLexiconPronunciations_FWD_DEFINED__
8502 typedef interface ISpeechLexiconPronunciations ISpeechLexiconPronunciations;
8503 #ifdef __cplusplus
8504 interface ISpeechLexiconPronunciations;
8505 #endif /* __cplusplus */
8506 #endif
8507 
8508 #ifndef __ISpeechLexiconPronunciation_FWD_DEFINED__
8509 #define __ISpeechLexiconPronunciation_FWD_DEFINED__
8510 typedef interface ISpeechLexiconPronunciation ISpeechLexiconPronunciation;
8511 #ifdef __cplusplus
8512 interface ISpeechLexiconPronunciation;
8513 #endif /* __cplusplus */
8514 #endif
8515 
8516 typedef LONG SpeechLanguageId;
8517 #define __SpeechStringConstants_MODULE_DEFINED__
8518 typedef enum DISPID_SpeechDataKey {
8519     DISPID_SDKSetBinaryValue = 1,
8520     DISPID_SDKGetBinaryValue = 2,
8521     DISPID_SDKSetStringValue = 3,
8522     DISPID_SDKGetStringValue = 4,
8523     DISPID_SDKSetLongValue = 5,
8524     DISPID_SDKGetlongValue = 6,
8525     DISPID_SDKOpenKey = 7,
8526     DISPID_SDKCreateKey = 8,
8527     DISPID_SDKDeleteKey = 9,
8528     DISPID_SDKDeleteValue = 10,
8529     DISPID_SDKEnumKeys = 11,
8530     DISPID_SDKEnumValues = 12
8531 } DISPID_SpeechDataKey;
8532 typedef enum DISPID_SpeechObjectToken {
8533     DISPID_SOTId = 1,
8534     DISPID_SOTDataKey = 2,
8535     DISPID_SOTCategory = 3,
8536     DISPID_SOTGetDescription = 4,
8537     DISPID_SOTSetId = 5,
8538     DISPID_SOTGetAttribute = 6,
8539     DISPID_SOTCreateInstance = 7,
8540     DISPID_SOTRemove = 8,
8541     DISPID_SOTGetStorageFileName = 9,
8542     DISPID_SOTRemoveStorageFileName = 10,
8543     DISPID_SOTIsUISupported = 11,
8544     DISPID_SOTDisplayUI = 12,
8545     DISPID_SOTMatchesAttributes = 13
8546 } DISPID_SpeechObjectToken;
8547 typedef enum SpeechDataKeyLocation {
8548     SDKLDefaultLocation = SPDKL_DefaultLocation,
8549     SDKLCurrentUser = SPDKL_CurrentUser,
8550     SDKLLocalMachine = SPDKL_LocalMachine,
8551     SDKLCurrentConfig = SPDKL_CurrentConfig
8552 } SpeechDataKeyLocation;
8553 typedef enum SpeechTokenContext {
8554     STCInprocServer = CLSCTX_INPROC_SERVER,
8555     STCInprocHandler = CLSCTX_INPROC_HANDLER,
8556     STCLocalServer = CLSCTX_LOCAL_SERVER,
8557     STCRemoteServer = CLSCTX_REMOTE_SERVER,
8558     STCAll = ((CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER) | CLSCTX_LOCAL_SERVER) | CLSCTX_REMOTE_SERVER
8559 } SpeechTokenContext;
8560 typedef enum SpeechTokenShellFolder {
8561     STSF_AppData = 0x1a,
8562     STSF_LocalAppData = 0x1c,
8563     STSF_CommonAppData = 0x23,
8564     STSF_FlagCreate = 0x8000
8565 } SpeechTokenShellFolder;
8566 typedef enum DISPID_SpeechObjectTokens {
8567     DISPID_SOTsCount = 1,
8568     DISPID_SOTsItem = DISPID_VALUE,
8569     DISPID_SOTs_NewEnum = DISPID_NEWENUM
8570 } DISPID_SpeechObjectTokens;
8571 typedef enum DISPID_SpeechObjectTokenCategory {
8572     DISPID_SOTCId = 1,
8573     DISPID_SOTCDefault = 2,
8574     DISPID_SOTCSetId = 3,
8575     DISPID_SOTCGetDataKey = 4,
8576     DISPID_SOTCEnumerateTokens = 5
8577 } DISPID_SpeechObjectTokenCategory;
8578 /*****************************************************************************
8579  * ISpeechDataKey interface
8580  */
8581 #ifndef __ISpeechDataKey_INTERFACE_DEFINED__
8582 #define __ISpeechDataKey_INTERFACE_DEFINED__
8583 
8584 DEFINE_GUID(IID_ISpeechDataKey, 0xce17c09b, 0x4efa, 0x44d5, 0xa4,0xc9, 0x59,0xd9,0x58,0x5a,0xb0,0xcd);
8585 #if defined(__cplusplus) && !defined(CINTERFACE)
8586 MIDL_INTERFACE("ce17c09b-4efa-44d5-a4c9-59d9585ab0cd")
8587 ISpeechDataKey : public IDispatch
8588 {
8589     virtual HRESULT STDMETHODCALLTYPE SetBinaryValue(
8590         const BSTR ValueName,
8591         VARIANT Value) = 0;
8592 
8593     virtual HRESULT STDMETHODCALLTYPE GetBinaryValue(
8594         const BSTR ValueName,
8595         VARIANT *Value) = 0;
8596 
8597     virtual HRESULT STDMETHODCALLTYPE SetStringValue(
8598         const BSTR ValueName,
8599         const BSTR Value) = 0;
8600 
8601     virtual HRESULT STDMETHODCALLTYPE GetStringValue(
8602         const BSTR ValueName,
8603         BSTR *Value) = 0;
8604 
8605     virtual HRESULT STDMETHODCALLTYPE SetLongValue(
8606         const BSTR ValueName,
8607         LONG Value) = 0;
8608 
8609     virtual HRESULT STDMETHODCALLTYPE GetLongValue(
8610         const BSTR ValueName,
8611         LONG *Value) = 0;
8612 
8613     virtual HRESULT STDMETHODCALLTYPE OpenKey(
8614         const BSTR SubKeyName,
8615         ISpeechDataKey **SubKey) = 0;
8616 
8617     virtual HRESULT STDMETHODCALLTYPE CreateKey(
8618         const BSTR SubKeyName,
8619         ISpeechDataKey **SubKey) = 0;
8620 
8621     virtual HRESULT STDMETHODCALLTYPE DeleteKey(
8622         const BSTR SubKeyName) = 0;
8623 
8624     virtual HRESULT STDMETHODCALLTYPE DeleteValue(
8625         const BSTR ValueName) = 0;
8626 
8627     virtual HRESULT STDMETHODCALLTYPE EnumKeys(
8628         LONG Index,
8629         BSTR *SubKeyName) = 0;
8630 
8631     virtual HRESULT STDMETHODCALLTYPE EnumValues(
8632         LONG Index,
8633         BSTR *ValueName) = 0;
8634 
8635 };
8636 #ifdef __CRT_UUID_DECL
8637 __CRT_UUID_DECL(ISpeechDataKey, 0xce17c09b, 0x4efa, 0x44d5, 0xa4,0xc9, 0x59,0xd9,0x58,0x5a,0xb0,0xcd)
8638 #endif
8639 #else
8640 typedef struct ISpeechDataKeyVtbl {
8641     BEGIN_INTERFACE
8642 
8643     /*** IUnknown methods ***/
8644     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8645         ISpeechDataKey *This,
8646         REFIID riid,
8647         void **ppvObject);
8648 
8649     ULONG (STDMETHODCALLTYPE *AddRef)(
8650         ISpeechDataKey *This);
8651 
8652     ULONG (STDMETHODCALLTYPE *Release)(
8653         ISpeechDataKey *This);
8654 
8655     /*** IDispatch methods ***/
8656     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
8657         ISpeechDataKey *This,
8658         UINT *pctinfo);
8659 
8660     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
8661         ISpeechDataKey *This,
8662         UINT iTInfo,
8663         LCID lcid,
8664         ITypeInfo **ppTInfo);
8665 
8666     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
8667         ISpeechDataKey *This,
8668         REFIID riid,
8669         LPOLESTR *rgszNames,
8670         UINT cNames,
8671         LCID lcid,
8672         DISPID *rgDispId);
8673 
8674     HRESULT (STDMETHODCALLTYPE *Invoke)(
8675         ISpeechDataKey *This,
8676         DISPID dispIdMember,
8677         REFIID riid,
8678         LCID lcid,
8679         WORD wFlags,
8680         DISPPARAMS *pDispParams,
8681         VARIANT *pVarResult,
8682         EXCEPINFO *pExcepInfo,
8683         UINT *puArgErr);
8684 
8685     /*** ISpeechDataKey methods ***/
8686     HRESULT (STDMETHODCALLTYPE *SetBinaryValue)(
8687         ISpeechDataKey *This,
8688         const BSTR ValueName,
8689         VARIANT Value);
8690 
8691     HRESULT (STDMETHODCALLTYPE *GetBinaryValue)(
8692         ISpeechDataKey *This,
8693         const BSTR ValueName,
8694         VARIANT *Value);
8695 
8696     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
8697         ISpeechDataKey *This,
8698         const BSTR ValueName,
8699         const BSTR Value);
8700 
8701     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
8702         ISpeechDataKey *This,
8703         const BSTR ValueName,
8704         BSTR *Value);
8705 
8706     HRESULT (STDMETHODCALLTYPE *SetLongValue)(
8707         ISpeechDataKey *This,
8708         const BSTR ValueName,
8709         LONG Value);
8710 
8711     HRESULT (STDMETHODCALLTYPE *GetLongValue)(
8712         ISpeechDataKey *This,
8713         const BSTR ValueName,
8714         LONG *Value);
8715 
8716     HRESULT (STDMETHODCALLTYPE *OpenKey)(
8717         ISpeechDataKey *This,
8718         const BSTR SubKeyName,
8719         ISpeechDataKey **SubKey);
8720 
8721     HRESULT (STDMETHODCALLTYPE *CreateKey)(
8722         ISpeechDataKey *This,
8723         const BSTR SubKeyName,
8724         ISpeechDataKey **SubKey);
8725 
8726     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
8727         ISpeechDataKey *This,
8728         const BSTR SubKeyName);
8729 
8730     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
8731         ISpeechDataKey *This,
8732         const BSTR ValueName);
8733 
8734     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
8735         ISpeechDataKey *This,
8736         LONG Index,
8737         BSTR *SubKeyName);
8738 
8739     HRESULT (STDMETHODCALLTYPE *EnumValues)(
8740         ISpeechDataKey *This,
8741         LONG Index,
8742         BSTR *ValueName);
8743 
8744     END_INTERFACE
8745 } ISpeechDataKeyVtbl;
8746 
8747 interface ISpeechDataKey {
8748     CONST_VTBL ISpeechDataKeyVtbl* lpVtbl;
8749 };
8750 
8751 #ifdef COBJMACROS
8752 #ifndef WIDL_C_INLINE_WRAPPERS
8753 /*** IUnknown methods ***/
8754 #define ISpeechDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8755 #define ISpeechDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
8756 #define ISpeechDataKey_Release(This) (This)->lpVtbl->Release(This)
8757 /*** IDispatch methods ***/
8758 #define ISpeechDataKey_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
8759 #define ISpeechDataKey_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
8760 #define ISpeechDataKey_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
8761 #define ISpeechDataKey_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
8762 /*** ISpeechDataKey methods ***/
8763 #define ISpeechDataKey_SetBinaryValue(This,ValueName,Value) (This)->lpVtbl->SetBinaryValue(This,ValueName,Value)
8764 #define ISpeechDataKey_GetBinaryValue(This,ValueName,Value) (This)->lpVtbl->GetBinaryValue(This,ValueName,Value)
8765 #define ISpeechDataKey_SetStringValue(This,ValueName,Value) (This)->lpVtbl->SetStringValue(This,ValueName,Value)
8766 #define ISpeechDataKey_GetStringValue(This,ValueName,Value) (This)->lpVtbl->GetStringValue(This,ValueName,Value)
8767 #define ISpeechDataKey_SetLongValue(This,ValueName,Value) (This)->lpVtbl->SetLongValue(This,ValueName,Value)
8768 #define ISpeechDataKey_GetLongValue(This,ValueName,Value) (This)->lpVtbl->GetLongValue(This,ValueName,Value)
8769 #define ISpeechDataKey_OpenKey(This,SubKeyName,SubKey) (This)->lpVtbl->OpenKey(This,SubKeyName,SubKey)
8770 #define ISpeechDataKey_CreateKey(This,SubKeyName,SubKey) (This)->lpVtbl->CreateKey(This,SubKeyName,SubKey)
8771 #define ISpeechDataKey_DeleteKey(This,SubKeyName) (This)->lpVtbl->DeleteKey(This,SubKeyName)
8772 #define ISpeechDataKey_DeleteValue(This,ValueName) (This)->lpVtbl->DeleteValue(This,ValueName)
8773 #define ISpeechDataKey_EnumKeys(This,Index,SubKeyName) (This)->lpVtbl->EnumKeys(This,Index,SubKeyName)
8774 #define ISpeechDataKey_EnumValues(This,Index,ValueName) (This)->lpVtbl->EnumValues(This,Index,ValueName)
8775 #else
8776 /*** IUnknown methods ***/
8777 static FORCEINLINE HRESULT ISpeechDataKey_QueryInterface(ISpeechDataKey* This,REFIID riid,void **ppvObject) {
8778     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8779 }
8780 static FORCEINLINE ULONG ISpeechDataKey_AddRef(ISpeechDataKey* This) {
8781     return This->lpVtbl->AddRef(This);
8782 }
8783 static FORCEINLINE ULONG ISpeechDataKey_Release(ISpeechDataKey* This) {
8784     return This->lpVtbl->Release(This);
8785 }
8786 /*** IDispatch methods ***/
8787 static FORCEINLINE HRESULT ISpeechDataKey_GetTypeInfoCount(ISpeechDataKey* This,UINT *pctinfo) {
8788     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
8789 }
8790 static FORCEINLINE HRESULT ISpeechDataKey_GetTypeInfo(ISpeechDataKey* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
8791     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
8792 }
8793 static FORCEINLINE HRESULT ISpeechDataKey_GetIDsOfNames(ISpeechDataKey* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
8794     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
8795 }
8796 static FORCEINLINE HRESULT ISpeechDataKey_Invoke(ISpeechDataKey* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
8797     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
8798 }
8799 /*** ISpeechDataKey methods ***/
8800 static FORCEINLINE HRESULT ISpeechDataKey_SetBinaryValue(ISpeechDataKey* This,const BSTR ValueName,VARIANT Value) {
8801     return This->lpVtbl->SetBinaryValue(This,ValueName,Value);
8802 }
8803 static FORCEINLINE HRESULT ISpeechDataKey_GetBinaryValue(ISpeechDataKey* This,const BSTR ValueName,VARIANT *Value) {
8804     return This->lpVtbl->GetBinaryValue(This,ValueName,Value);
8805 }
8806 static FORCEINLINE HRESULT ISpeechDataKey_SetStringValue(ISpeechDataKey* This,const BSTR ValueName,const BSTR Value) {
8807     return This->lpVtbl->SetStringValue(This,ValueName,Value);
8808 }
8809 static FORCEINLINE HRESULT ISpeechDataKey_GetStringValue(ISpeechDataKey* This,const BSTR ValueName,BSTR *Value) {
8810     return This->lpVtbl->GetStringValue(This,ValueName,Value);
8811 }
8812 static FORCEINLINE HRESULT ISpeechDataKey_SetLongValue(ISpeechDataKey* This,const BSTR ValueName,LONG Value) {
8813     return This->lpVtbl->SetLongValue(This,ValueName,Value);
8814 }
8815 static FORCEINLINE HRESULT ISpeechDataKey_GetLongValue(ISpeechDataKey* This,const BSTR ValueName,LONG *Value) {
8816     return This->lpVtbl->GetLongValue(This,ValueName,Value);
8817 }
8818 static FORCEINLINE HRESULT ISpeechDataKey_OpenKey(ISpeechDataKey* This,const BSTR SubKeyName,ISpeechDataKey **SubKey) {
8819     return This->lpVtbl->OpenKey(This,SubKeyName,SubKey);
8820 }
8821 static FORCEINLINE HRESULT ISpeechDataKey_CreateKey(ISpeechDataKey* This,const BSTR SubKeyName,ISpeechDataKey **SubKey) {
8822     return This->lpVtbl->CreateKey(This,SubKeyName,SubKey);
8823 }
8824 static FORCEINLINE HRESULT ISpeechDataKey_DeleteKey(ISpeechDataKey* This,const BSTR SubKeyName) {
8825     return This->lpVtbl->DeleteKey(This,SubKeyName);
8826 }
8827 static FORCEINLINE HRESULT ISpeechDataKey_DeleteValue(ISpeechDataKey* This,const BSTR ValueName) {
8828     return This->lpVtbl->DeleteValue(This,ValueName);
8829 }
8830 static FORCEINLINE HRESULT ISpeechDataKey_EnumKeys(ISpeechDataKey* This,LONG Index,BSTR *SubKeyName) {
8831     return This->lpVtbl->EnumKeys(This,Index,SubKeyName);
8832 }
8833 static FORCEINLINE HRESULT ISpeechDataKey_EnumValues(ISpeechDataKey* This,LONG Index,BSTR *ValueName) {
8834     return This->lpVtbl->EnumValues(This,Index,ValueName);
8835 }
8836 #endif
8837 #endif
8838 
8839 #endif
8840 
8841 
8842 #endif  /* __ISpeechDataKey_INTERFACE_DEFINED__ */
8843 
8844 /*****************************************************************************
8845  * ISpeechObjectToken interface
8846  */
8847 #ifndef __ISpeechObjectToken_INTERFACE_DEFINED__
8848 #define __ISpeechObjectToken_INTERFACE_DEFINED__
8849 
8850 DEFINE_GUID(IID_ISpeechObjectToken, 0xc74a3adc, 0xb727, 0x4500, 0xa8,0x4a, 0xb5,0x26,0x72,0x1c,0x8b,0x8c);
8851 #if defined(__cplusplus) && !defined(CINTERFACE)
8852 MIDL_INTERFACE("c74a3adc-b727-4500-a84a-b526721c8b8c")
8853 ISpeechObjectToken : public IDispatch
8854 {
8855     virtual HRESULT STDMETHODCALLTYPE get_Id(
8856         BSTR *ObjectId) = 0;
8857 
8858     virtual HRESULT STDMETHODCALLTYPE get_DataKey(
8859         ISpeechDataKey **DataKey) = 0;
8860 
8861     virtual HRESULT STDMETHODCALLTYPE get_Category(
8862         ISpeechObjectTokenCategory **Category) = 0;
8863 
8864     virtual HRESULT STDMETHODCALLTYPE GetDescription(
8865         LONG Locale,
8866         BSTR *Description) = 0;
8867 
8868     virtual HRESULT STDMETHODCALLTYPE SetId(
8869         BSTR Id,
8870         BSTR CategoryID = L"",
8871         VARIANT_BOOL CreateIfNotExist = 0) = 0;
8872 
8873     virtual HRESULT STDMETHODCALLTYPE GetAttribute(
8874         BSTR AttributeName,
8875         BSTR *AttributeValue) = 0;
8876 
8877     virtual HRESULT STDMETHODCALLTYPE CreateInstance(
8878         IUnknown *pUnkOuter,
8879         SpeechTokenContext ClsContext,
8880         IUnknown **Object) = 0;
8881 
8882     virtual HRESULT STDMETHODCALLTYPE Remove(
8883         BSTR ObjectStorageCLSID) = 0;
8884 
8885     virtual HRESULT STDMETHODCALLTYPE GetStorageFileName(
8886         BSTR ObjectStorageCLSID,
8887         BSTR KeyName,
8888         BSTR FileName,
8889         SpeechTokenShellFolder Folder,
8890         BSTR *FilePath) = 0;
8891 
8892     virtual HRESULT STDMETHODCALLTYPE RemoveStorageFileName(
8893         BSTR ObjectStorageCLSID,
8894         BSTR KeyName,
8895         VARIANT_BOOL DeleteFile) = 0;
8896 
8897     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
8898         const BSTR TypeOfUI,
8899         const VARIANT *ExtraData,
8900         IUnknown *Object,
8901         VARIANT_BOOL *Supported) = 0;
8902 
8903     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
8904         LONG hWnd,
8905         BSTR Title,
8906         const BSTR TypeOfUI,
8907         const VARIANT *ExtraData = 0,
8908         IUnknown *Object = 0) = 0;
8909 
8910     virtual HRESULT STDMETHODCALLTYPE MatchesAttributes(
8911         BSTR Attributes,
8912         VARIANT_BOOL *Matches) = 0;
8913 
8914 };
8915 #ifdef __CRT_UUID_DECL
8916 __CRT_UUID_DECL(ISpeechObjectToken, 0xc74a3adc, 0xb727, 0x4500, 0xa8,0x4a, 0xb5,0x26,0x72,0x1c,0x8b,0x8c)
8917 #endif
8918 #else
8919 typedef struct ISpeechObjectTokenVtbl {
8920     BEGIN_INTERFACE
8921 
8922     /*** IUnknown methods ***/
8923     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8924         ISpeechObjectToken *This,
8925         REFIID riid,
8926         void **ppvObject);
8927 
8928     ULONG (STDMETHODCALLTYPE *AddRef)(
8929         ISpeechObjectToken *This);
8930 
8931     ULONG (STDMETHODCALLTYPE *Release)(
8932         ISpeechObjectToken *This);
8933 
8934     /*** IDispatch methods ***/
8935     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
8936         ISpeechObjectToken *This,
8937         UINT *pctinfo);
8938 
8939     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
8940         ISpeechObjectToken *This,
8941         UINT iTInfo,
8942         LCID lcid,
8943         ITypeInfo **ppTInfo);
8944 
8945     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
8946         ISpeechObjectToken *This,
8947         REFIID riid,
8948         LPOLESTR *rgszNames,
8949         UINT cNames,
8950         LCID lcid,
8951         DISPID *rgDispId);
8952 
8953     HRESULT (STDMETHODCALLTYPE *Invoke)(
8954         ISpeechObjectToken *This,
8955         DISPID dispIdMember,
8956         REFIID riid,
8957         LCID lcid,
8958         WORD wFlags,
8959         DISPPARAMS *pDispParams,
8960         VARIANT *pVarResult,
8961         EXCEPINFO *pExcepInfo,
8962         UINT *puArgErr);
8963 
8964     /*** ISpeechObjectToken methods ***/
8965     HRESULT (STDMETHODCALLTYPE *get_Id)(
8966         ISpeechObjectToken *This,
8967         BSTR *ObjectId);
8968 
8969     HRESULT (STDMETHODCALLTYPE *get_DataKey)(
8970         ISpeechObjectToken *This,
8971         ISpeechDataKey **DataKey);
8972 
8973     HRESULT (STDMETHODCALLTYPE *get_Category)(
8974         ISpeechObjectToken *This,
8975         ISpeechObjectTokenCategory **Category);
8976 
8977     HRESULT (STDMETHODCALLTYPE *GetDescription)(
8978         ISpeechObjectToken *This,
8979         LONG Locale,
8980         BSTR *Description);
8981 
8982     HRESULT (STDMETHODCALLTYPE *SetId)(
8983         ISpeechObjectToken *This,
8984         BSTR Id,
8985         BSTR CategoryID,
8986         VARIANT_BOOL CreateIfNotExist);
8987 
8988     HRESULT (STDMETHODCALLTYPE *GetAttribute)(
8989         ISpeechObjectToken *This,
8990         BSTR AttributeName,
8991         BSTR *AttributeValue);
8992 
8993     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
8994         ISpeechObjectToken *This,
8995         IUnknown *pUnkOuter,
8996         SpeechTokenContext ClsContext,
8997         IUnknown **Object);
8998 
8999     HRESULT (STDMETHODCALLTYPE *Remove)(
9000         ISpeechObjectToken *This,
9001         BSTR ObjectStorageCLSID);
9002 
9003     HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
9004         ISpeechObjectToken *This,
9005         BSTR ObjectStorageCLSID,
9006         BSTR KeyName,
9007         BSTR FileName,
9008         SpeechTokenShellFolder Folder,
9009         BSTR *FilePath);
9010 
9011     HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
9012         ISpeechObjectToken *This,
9013         BSTR ObjectStorageCLSID,
9014         BSTR KeyName,
9015         VARIANT_BOOL DeleteFile);
9016 
9017     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
9018         ISpeechObjectToken *This,
9019         const BSTR TypeOfUI,
9020         const VARIANT *ExtraData,
9021         IUnknown *Object,
9022         VARIANT_BOOL *Supported);
9023 
9024     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
9025         ISpeechObjectToken *This,
9026         LONG hWnd,
9027         BSTR Title,
9028         const BSTR TypeOfUI,
9029         const VARIANT *ExtraData,
9030         IUnknown *Object);
9031 
9032     HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
9033         ISpeechObjectToken *This,
9034         BSTR Attributes,
9035         VARIANT_BOOL *Matches);
9036 
9037     END_INTERFACE
9038 } ISpeechObjectTokenVtbl;
9039 
9040 interface ISpeechObjectToken {
9041     CONST_VTBL ISpeechObjectTokenVtbl* lpVtbl;
9042 };
9043 
9044 #ifdef COBJMACROS
9045 #ifndef WIDL_C_INLINE_WRAPPERS
9046 /*** IUnknown methods ***/
9047 #define ISpeechObjectToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9048 #define ISpeechObjectToken_AddRef(This) (This)->lpVtbl->AddRef(This)
9049 #define ISpeechObjectToken_Release(This) (This)->lpVtbl->Release(This)
9050 /*** IDispatch methods ***/
9051 #define ISpeechObjectToken_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
9052 #define ISpeechObjectToken_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
9053 #define ISpeechObjectToken_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
9054 #define ISpeechObjectToken_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
9055 /*** ISpeechObjectToken methods ***/
9056 #define ISpeechObjectToken_get_Id(This,ObjectId) (This)->lpVtbl->get_Id(This,ObjectId)
9057 #define ISpeechObjectToken_get_DataKey(This,DataKey) (This)->lpVtbl->get_DataKey(This,DataKey)
9058 #define ISpeechObjectToken_get_Category(This,Category) (This)->lpVtbl->get_Category(This,Category)
9059 #define ISpeechObjectToken_GetDescription(This,Locale,Description) (This)->lpVtbl->GetDescription(This,Locale,Description)
9060 #define ISpeechObjectToken_SetId(This,Id,CategoryID,CreateIfNotExist) (This)->lpVtbl->SetId(This,Id,CategoryID,CreateIfNotExist)
9061 #define ISpeechObjectToken_GetAttribute(This,AttributeName,AttributeValue) (This)->lpVtbl->GetAttribute(This,AttributeName,AttributeValue)
9062 #define ISpeechObjectToken_CreateInstance(This,pUnkOuter,ClsContext,Object) (This)->lpVtbl->CreateInstance(This,pUnkOuter,ClsContext,Object)
9063 #define ISpeechObjectToken_Remove(This,ObjectStorageCLSID) (This)->lpVtbl->Remove(This,ObjectStorageCLSID)
9064 #define ISpeechObjectToken_GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath) (This)->lpVtbl->GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath)
9065 #define ISpeechObjectToken_RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile)
9066 #define ISpeechObjectToken_IsUISupported(This,TypeOfUI,ExtraData,Object,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Object,Supported)
9067 #define ISpeechObjectToken_DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object) (This)->lpVtbl->DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object)
9068 #define ISpeechObjectToken_MatchesAttributes(This,Attributes,Matches) (This)->lpVtbl->MatchesAttributes(This,Attributes,Matches)
9069 #else
9070 /*** IUnknown methods ***/
9071 static FORCEINLINE HRESULT ISpeechObjectToken_QueryInterface(ISpeechObjectToken* This,REFIID riid,void **ppvObject) {
9072     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9073 }
9074 static FORCEINLINE ULONG ISpeechObjectToken_AddRef(ISpeechObjectToken* This) {
9075     return This->lpVtbl->AddRef(This);
9076 }
9077 static FORCEINLINE ULONG ISpeechObjectToken_Release(ISpeechObjectToken* This) {
9078     return This->lpVtbl->Release(This);
9079 }
9080 /*** IDispatch methods ***/
9081 static FORCEINLINE HRESULT ISpeechObjectToken_GetTypeInfoCount(ISpeechObjectToken* This,UINT *pctinfo) {
9082     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
9083 }
9084 static FORCEINLINE HRESULT ISpeechObjectToken_GetTypeInfo(ISpeechObjectToken* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
9085     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
9086 }
9087 static FORCEINLINE HRESULT ISpeechObjectToken_GetIDsOfNames(ISpeechObjectToken* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
9088     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
9089 }
9090 static FORCEINLINE HRESULT ISpeechObjectToken_Invoke(ISpeechObjectToken* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
9091     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
9092 }
9093 /*** ISpeechObjectToken methods ***/
9094 static FORCEINLINE HRESULT ISpeechObjectToken_get_Id(ISpeechObjectToken* This,BSTR *ObjectId) {
9095     return This->lpVtbl->get_Id(This,ObjectId);
9096 }
9097 static FORCEINLINE HRESULT ISpeechObjectToken_get_DataKey(ISpeechObjectToken* This,ISpeechDataKey **DataKey) {
9098     return This->lpVtbl->get_DataKey(This,DataKey);
9099 }
9100 static FORCEINLINE HRESULT ISpeechObjectToken_get_Category(ISpeechObjectToken* This,ISpeechObjectTokenCategory **Category) {
9101     return This->lpVtbl->get_Category(This,Category);
9102 }
9103 static FORCEINLINE HRESULT ISpeechObjectToken_GetDescription(ISpeechObjectToken* This,LONG Locale,BSTR *Description) {
9104     return This->lpVtbl->GetDescription(This,Locale,Description);
9105 }
9106 static FORCEINLINE HRESULT ISpeechObjectToken_SetId(ISpeechObjectToken* This,BSTR Id,BSTR CategoryID,VARIANT_BOOL CreateIfNotExist) {
9107     return This->lpVtbl->SetId(This,Id,CategoryID,CreateIfNotExist);
9108 }
9109 static FORCEINLINE HRESULT ISpeechObjectToken_GetAttribute(ISpeechObjectToken* This,BSTR AttributeName,BSTR *AttributeValue) {
9110     return This->lpVtbl->GetAttribute(This,AttributeName,AttributeValue);
9111 }
9112 static FORCEINLINE HRESULT ISpeechObjectToken_CreateInstance(ISpeechObjectToken* This,IUnknown *pUnkOuter,SpeechTokenContext ClsContext,IUnknown **Object) {
9113     return This->lpVtbl->CreateInstance(This,pUnkOuter,ClsContext,Object);
9114 }
9115 static FORCEINLINE HRESULT ISpeechObjectToken_Remove(ISpeechObjectToken* This,BSTR ObjectStorageCLSID) {
9116     return This->lpVtbl->Remove(This,ObjectStorageCLSID);
9117 }
9118 static FORCEINLINE HRESULT ISpeechObjectToken_GetStorageFileName(ISpeechObjectToken* This,BSTR ObjectStorageCLSID,BSTR KeyName,BSTR FileName,SpeechTokenShellFolder Folder,BSTR *FilePath) {
9119     return This->lpVtbl->GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath);
9120 }
9121 static FORCEINLINE HRESULT ISpeechObjectToken_RemoveStorageFileName(ISpeechObjectToken* This,BSTR ObjectStorageCLSID,BSTR KeyName,VARIANT_BOOL DeleteFile) {
9122     return This->lpVtbl->RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile);
9123 }
9124 static FORCEINLINE HRESULT ISpeechObjectToken_IsUISupported(ISpeechObjectToken* This,const BSTR TypeOfUI,const VARIANT *ExtraData,IUnknown *Object,VARIANT_BOOL *Supported) {
9125     return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Object,Supported);
9126 }
9127 static FORCEINLINE HRESULT ISpeechObjectToken_DisplayUI(ISpeechObjectToken* This,LONG hWnd,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData,IUnknown *Object) {
9128     return This->lpVtbl->DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object);
9129 }
9130 static FORCEINLINE HRESULT ISpeechObjectToken_MatchesAttributes(ISpeechObjectToken* This,BSTR Attributes,VARIANT_BOOL *Matches) {
9131     return This->lpVtbl->MatchesAttributes(This,Attributes,Matches);
9132 }
9133 #endif
9134 #endif
9135 
9136 #endif
9137 
9138 
9139 #endif  /* __ISpeechObjectToken_INTERFACE_DEFINED__ */
9140 
9141 /*****************************************************************************
9142  * ISpeechObjectTokens interface
9143  */
9144 #ifndef __ISpeechObjectTokens_INTERFACE_DEFINED__
9145 #define __ISpeechObjectTokens_INTERFACE_DEFINED__
9146 
9147 DEFINE_GUID(IID_ISpeechObjectTokens, 0x9285b776, 0x2e7b, 0x4bc0, 0xb5,0x3e, 0x58,0x0e,0xb6,0xfa,0x96,0x7f);
9148 #if defined(__cplusplus) && !defined(CINTERFACE)
9149 MIDL_INTERFACE("9285b776-2e7b-4bc0-b53e-580eb6fa967f")
9150 ISpeechObjectTokens : public IDispatch
9151 {
9152     virtual HRESULT STDMETHODCALLTYPE get_Count(
9153         LONG *Count) = 0;
9154 
9155     virtual HRESULT STDMETHODCALLTYPE Item(
9156         LONG Index,
9157         ISpeechObjectToken **Token) = 0;
9158 
9159     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
9160         IUnknown **ppEnumVARIANT) = 0;
9161 
9162 };
9163 #ifdef __CRT_UUID_DECL
9164 __CRT_UUID_DECL(ISpeechObjectTokens, 0x9285b776, 0x2e7b, 0x4bc0, 0xb5,0x3e, 0x58,0x0e,0xb6,0xfa,0x96,0x7f)
9165 #endif
9166 #else
9167 typedef struct ISpeechObjectTokensVtbl {
9168     BEGIN_INTERFACE
9169 
9170     /*** IUnknown methods ***/
9171     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9172         ISpeechObjectTokens *This,
9173         REFIID riid,
9174         void **ppvObject);
9175 
9176     ULONG (STDMETHODCALLTYPE *AddRef)(
9177         ISpeechObjectTokens *This);
9178 
9179     ULONG (STDMETHODCALLTYPE *Release)(
9180         ISpeechObjectTokens *This);
9181 
9182     /*** IDispatch methods ***/
9183     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
9184         ISpeechObjectTokens *This,
9185         UINT *pctinfo);
9186 
9187     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
9188         ISpeechObjectTokens *This,
9189         UINT iTInfo,
9190         LCID lcid,
9191         ITypeInfo **ppTInfo);
9192 
9193     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
9194         ISpeechObjectTokens *This,
9195         REFIID riid,
9196         LPOLESTR *rgszNames,
9197         UINT cNames,
9198         LCID lcid,
9199         DISPID *rgDispId);
9200 
9201     HRESULT (STDMETHODCALLTYPE *Invoke)(
9202         ISpeechObjectTokens *This,
9203         DISPID dispIdMember,
9204         REFIID riid,
9205         LCID lcid,
9206         WORD wFlags,
9207         DISPPARAMS *pDispParams,
9208         VARIANT *pVarResult,
9209         EXCEPINFO *pExcepInfo,
9210         UINT *puArgErr);
9211 
9212     /*** ISpeechObjectTokens methods ***/
9213     HRESULT (STDMETHODCALLTYPE *get_Count)(
9214         ISpeechObjectTokens *This,
9215         LONG *Count);
9216 
9217     HRESULT (STDMETHODCALLTYPE *Item)(
9218         ISpeechObjectTokens *This,
9219         LONG Index,
9220         ISpeechObjectToken **Token);
9221 
9222     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
9223         ISpeechObjectTokens *This,
9224         IUnknown **ppEnumVARIANT);
9225 
9226     END_INTERFACE
9227 } ISpeechObjectTokensVtbl;
9228 
9229 interface ISpeechObjectTokens {
9230     CONST_VTBL ISpeechObjectTokensVtbl* lpVtbl;
9231 };
9232 
9233 #ifdef COBJMACROS
9234 #ifndef WIDL_C_INLINE_WRAPPERS
9235 /*** IUnknown methods ***/
9236 #define ISpeechObjectTokens_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9237 #define ISpeechObjectTokens_AddRef(This) (This)->lpVtbl->AddRef(This)
9238 #define ISpeechObjectTokens_Release(This) (This)->lpVtbl->Release(This)
9239 /*** IDispatch methods ***/
9240 #define ISpeechObjectTokens_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
9241 #define ISpeechObjectTokens_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
9242 #define ISpeechObjectTokens_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
9243 #define ISpeechObjectTokens_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
9244 /*** ISpeechObjectTokens methods ***/
9245 #define ISpeechObjectTokens_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
9246 #define ISpeechObjectTokens_Item(This,Index,Token) (This)->lpVtbl->Item(This,Index,Token)
9247 #define ISpeechObjectTokens_get__NewEnum(This,ppEnumVARIANT) (This)->lpVtbl->get__NewEnum(This,ppEnumVARIANT)
9248 #else
9249 /*** IUnknown methods ***/
9250 static FORCEINLINE HRESULT ISpeechObjectTokens_QueryInterface(ISpeechObjectTokens* This,REFIID riid,void **ppvObject) {
9251     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9252 }
9253 static FORCEINLINE ULONG ISpeechObjectTokens_AddRef(ISpeechObjectTokens* This) {
9254     return This->lpVtbl->AddRef(This);
9255 }
9256 static FORCEINLINE ULONG ISpeechObjectTokens_Release(ISpeechObjectTokens* This) {
9257     return This->lpVtbl->Release(This);
9258 }
9259 /*** IDispatch methods ***/
9260 static FORCEINLINE HRESULT ISpeechObjectTokens_GetTypeInfoCount(ISpeechObjectTokens* This,UINT *pctinfo) {
9261     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
9262 }
9263 static FORCEINLINE HRESULT ISpeechObjectTokens_GetTypeInfo(ISpeechObjectTokens* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
9264     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
9265 }
9266 static FORCEINLINE HRESULT ISpeechObjectTokens_GetIDsOfNames(ISpeechObjectTokens* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
9267     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
9268 }
9269 static FORCEINLINE HRESULT ISpeechObjectTokens_Invoke(ISpeechObjectTokens* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
9270     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
9271 }
9272 /*** ISpeechObjectTokens methods ***/
9273 static FORCEINLINE HRESULT ISpeechObjectTokens_get_Count(ISpeechObjectTokens* This,LONG *Count) {
9274     return This->lpVtbl->get_Count(This,Count);
9275 }
9276 static FORCEINLINE HRESULT ISpeechObjectTokens_Item(ISpeechObjectTokens* This,LONG Index,ISpeechObjectToken **Token) {
9277     return This->lpVtbl->Item(This,Index,Token);
9278 }
9279 static FORCEINLINE HRESULT ISpeechObjectTokens_get__NewEnum(ISpeechObjectTokens* This,IUnknown **ppEnumVARIANT) {
9280     return This->lpVtbl->get__NewEnum(This,ppEnumVARIANT);
9281 }
9282 #endif
9283 #endif
9284 
9285 #endif
9286 
9287 
9288 #endif  /* __ISpeechObjectTokens_INTERFACE_DEFINED__ */
9289 
9290 /*****************************************************************************
9291  * ISpeechObjectTokenCategory interface
9292  */
9293 #ifndef __ISpeechObjectTokenCategory_INTERFACE_DEFINED__
9294 #define __ISpeechObjectTokenCategory_INTERFACE_DEFINED__
9295 
9296 DEFINE_GUID(IID_ISpeechObjectTokenCategory, 0xca7eac50, 0x2d01, 0x4145, 0x86,0xd4, 0x5a,0xe7,0xd7,0x0f,0x44,0x69);
9297 #if defined(__cplusplus) && !defined(CINTERFACE)
9298 MIDL_INTERFACE("ca7eac50-2d01-4145-86d4-5ae7d70f4469")
9299 ISpeechObjectTokenCategory : public IDispatch
9300 {
9301     virtual HRESULT STDMETHODCALLTYPE get_Id(
9302         BSTR *Id) = 0;
9303 
9304     virtual HRESULT STDMETHODCALLTYPE put_Default(
9305         const BSTR TokenId) = 0;
9306 
9307     virtual HRESULT STDMETHODCALLTYPE get_Default(
9308         BSTR *TokenId) = 0;
9309 
9310     virtual HRESULT STDMETHODCALLTYPE SetId(
9311         const BSTR Id,
9312         VARIANT_BOOL CreateIfNotExist = 0) = 0;
9313 
9314     virtual HRESULT STDMETHODCALLTYPE GetDataKey(
9315         SpeechDataKeyLocation Location,
9316         ISpeechDataKey **DataKey) = 0;
9317 
9318     virtual HRESULT STDMETHODCALLTYPE EnumerateTokens(
9319         BSTR RequiredAttributes,
9320         BSTR OptionalAttributes,
9321         ISpeechObjectTokens **Tokens) = 0;
9322 
9323 };
9324 #ifdef __CRT_UUID_DECL
9325 __CRT_UUID_DECL(ISpeechObjectTokenCategory, 0xca7eac50, 0x2d01, 0x4145, 0x86,0xd4, 0x5a,0xe7,0xd7,0x0f,0x44,0x69)
9326 #endif
9327 #else
9328 typedef struct ISpeechObjectTokenCategoryVtbl {
9329     BEGIN_INTERFACE
9330 
9331     /*** IUnknown methods ***/
9332     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9333         ISpeechObjectTokenCategory *This,
9334         REFIID riid,
9335         void **ppvObject);
9336 
9337     ULONG (STDMETHODCALLTYPE *AddRef)(
9338         ISpeechObjectTokenCategory *This);
9339 
9340     ULONG (STDMETHODCALLTYPE *Release)(
9341         ISpeechObjectTokenCategory *This);
9342 
9343     /*** IDispatch methods ***/
9344     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
9345         ISpeechObjectTokenCategory *This,
9346         UINT *pctinfo);
9347 
9348     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
9349         ISpeechObjectTokenCategory *This,
9350         UINT iTInfo,
9351         LCID lcid,
9352         ITypeInfo **ppTInfo);
9353 
9354     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
9355         ISpeechObjectTokenCategory *This,
9356         REFIID riid,
9357         LPOLESTR *rgszNames,
9358         UINT cNames,
9359         LCID lcid,
9360         DISPID *rgDispId);
9361 
9362     HRESULT (STDMETHODCALLTYPE *Invoke)(
9363         ISpeechObjectTokenCategory *This,
9364         DISPID dispIdMember,
9365         REFIID riid,
9366         LCID lcid,
9367         WORD wFlags,
9368         DISPPARAMS *pDispParams,
9369         VARIANT *pVarResult,
9370         EXCEPINFO *pExcepInfo,
9371         UINT *puArgErr);
9372 
9373     /*** ISpeechObjectTokenCategory methods ***/
9374     HRESULT (STDMETHODCALLTYPE *get_Id)(
9375         ISpeechObjectTokenCategory *This,
9376         BSTR *Id);
9377 
9378     HRESULT (STDMETHODCALLTYPE *put_Default)(
9379         ISpeechObjectTokenCategory *This,
9380         const BSTR TokenId);
9381 
9382     HRESULT (STDMETHODCALLTYPE *get_Default)(
9383         ISpeechObjectTokenCategory *This,
9384         BSTR *TokenId);
9385 
9386     HRESULT (STDMETHODCALLTYPE *SetId)(
9387         ISpeechObjectTokenCategory *This,
9388         const BSTR Id,
9389         VARIANT_BOOL CreateIfNotExist);
9390 
9391     HRESULT (STDMETHODCALLTYPE *GetDataKey)(
9392         ISpeechObjectTokenCategory *This,
9393         SpeechDataKeyLocation Location,
9394         ISpeechDataKey **DataKey);
9395 
9396     HRESULT (STDMETHODCALLTYPE *EnumerateTokens)(
9397         ISpeechObjectTokenCategory *This,
9398         BSTR RequiredAttributes,
9399         BSTR OptionalAttributes,
9400         ISpeechObjectTokens **Tokens);
9401 
9402     END_INTERFACE
9403 } ISpeechObjectTokenCategoryVtbl;
9404 
9405 interface ISpeechObjectTokenCategory {
9406     CONST_VTBL ISpeechObjectTokenCategoryVtbl* lpVtbl;
9407 };
9408 
9409 #ifdef COBJMACROS
9410 #ifndef WIDL_C_INLINE_WRAPPERS
9411 /*** IUnknown methods ***/
9412 #define ISpeechObjectTokenCategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9413 #define ISpeechObjectTokenCategory_AddRef(This) (This)->lpVtbl->AddRef(This)
9414 #define ISpeechObjectTokenCategory_Release(This) (This)->lpVtbl->Release(This)
9415 /*** IDispatch methods ***/
9416 #define ISpeechObjectTokenCategory_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
9417 #define ISpeechObjectTokenCategory_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
9418 #define ISpeechObjectTokenCategory_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
9419 #define ISpeechObjectTokenCategory_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
9420 /*** ISpeechObjectTokenCategory methods ***/
9421 #define ISpeechObjectTokenCategory_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
9422 #define ISpeechObjectTokenCategory_put_Default(This,TokenId) (This)->lpVtbl->put_Default(This,TokenId)
9423 #define ISpeechObjectTokenCategory_get_Default(This,TokenId) (This)->lpVtbl->get_Default(This,TokenId)
9424 #define ISpeechObjectTokenCategory_SetId(This,Id,CreateIfNotExist) (This)->lpVtbl->SetId(This,Id,CreateIfNotExist)
9425 #define ISpeechObjectTokenCategory_GetDataKey(This,Location,DataKey) (This)->lpVtbl->GetDataKey(This,Location,DataKey)
9426 #define ISpeechObjectTokenCategory_EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens) (This)->lpVtbl->EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens)
9427 #else
9428 /*** IUnknown methods ***/
9429 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_QueryInterface(ISpeechObjectTokenCategory* This,REFIID riid,void **ppvObject) {
9430     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9431 }
9432 static FORCEINLINE ULONG ISpeechObjectTokenCategory_AddRef(ISpeechObjectTokenCategory* This) {
9433     return This->lpVtbl->AddRef(This);
9434 }
9435 static FORCEINLINE ULONG ISpeechObjectTokenCategory_Release(ISpeechObjectTokenCategory* This) {
9436     return This->lpVtbl->Release(This);
9437 }
9438 /*** IDispatch methods ***/
9439 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_GetTypeInfoCount(ISpeechObjectTokenCategory* This,UINT *pctinfo) {
9440     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
9441 }
9442 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_GetTypeInfo(ISpeechObjectTokenCategory* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
9443     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
9444 }
9445 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_GetIDsOfNames(ISpeechObjectTokenCategory* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
9446     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
9447 }
9448 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_Invoke(ISpeechObjectTokenCategory* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
9449     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
9450 }
9451 /*** ISpeechObjectTokenCategory methods ***/
9452 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_get_Id(ISpeechObjectTokenCategory* This,BSTR *Id) {
9453     return This->lpVtbl->get_Id(This,Id);
9454 }
9455 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_put_Default(ISpeechObjectTokenCategory* This,const BSTR TokenId) {
9456     return This->lpVtbl->put_Default(This,TokenId);
9457 }
9458 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_get_Default(ISpeechObjectTokenCategory* This,BSTR *TokenId) {
9459     return This->lpVtbl->get_Default(This,TokenId);
9460 }
9461 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_SetId(ISpeechObjectTokenCategory* This,const BSTR Id,VARIANT_BOOL CreateIfNotExist) {
9462     return This->lpVtbl->SetId(This,Id,CreateIfNotExist);
9463 }
9464 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_GetDataKey(ISpeechObjectTokenCategory* This,SpeechDataKeyLocation Location,ISpeechDataKey **DataKey) {
9465     return This->lpVtbl->GetDataKey(This,Location,DataKey);
9466 }
9467 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_EnumerateTokens(ISpeechObjectTokenCategory* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **Tokens) {
9468     return This->lpVtbl->EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens);
9469 }
9470 #endif
9471 #endif
9472 
9473 #endif
9474 
9475 
9476 #endif  /* __ISpeechObjectTokenCategory_INTERFACE_DEFINED__ */
9477 
9478 typedef enum SpeechAudioFormatType {
9479     SAFTDefault = -1,
9480     SAFTNoAssignedFormat = 0,
9481     SAFTText = 1,
9482     SAFTNonStandardFormat = 2,
9483     SAFTExtendedAudioFormat = 3,
9484     SAFT8kHz8BitMono = 4,
9485     SAFT8kHz8BitStereo = 5,
9486     SAFT8kHz16BitMono = 6,
9487     SAFT8kHz16BitStereo = 7,
9488     SAFT11kHz8BitMono = 8,
9489     SAFT11kHz8BitStereo = 9,
9490     SAFT11kHz16BitMono = 10,
9491     SAFT11kHz16BitStereo = 11,
9492     SAFT12kHz8BitMono = 12,
9493     SAFT12kHz8BitStereo = 13,
9494     SAFT12kHz16BitMono = 14,
9495     SAFT12kHz16BitStereo = 15,
9496     SAFT16kHz8BitMono = 16,
9497     SAFT16kHz8BitStereo = 17,
9498     SAFT16kHz16BitMono = 18,
9499     SAFT16kHz16BitStereo = 19,
9500     SAFT22kHz8BitMono = 20,
9501     SAFT22kHz8BitStereo = 21,
9502     SAFT22kHz16BitMono = 22,
9503     SAFT22kHz16BitStereo = 23,
9504     SAFT24kHz8BitMono = 24,
9505     SAFT24kHz8BitStereo = 25,
9506     SAFT24kHz16BitMono = 26,
9507     SAFT24kHz16BitStereo = 27,
9508     SAFT32kHz8BitMono = 28,
9509     SAFT32kHz8BitStereo = 29,
9510     SAFT32kHz16BitMono = 30,
9511     SAFT32kHz16BitStereo = 31,
9512     SAFT44kHz8BitMono = 32,
9513     SAFT44kHz8BitStereo = 33,
9514     SAFT44kHz16BitMono = 34,
9515     SAFT44kHz16BitStereo = 35,
9516     SAFT48kHz8BitMono = 36,
9517     SAFT48kHz8BitStereo = 37,
9518     SAFT48kHz16BitMono = 38,
9519     SAFT48kHz16BitStereo = 39,
9520     SAFTTrueSpeech_8kHz1BitMono = 40,
9521     SAFTCCITT_ALaw_8kHzMono = 41,
9522     SAFTCCITT_ALaw_8kHzStereo = 42,
9523     SAFTCCITT_ALaw_11kHzMono = 43,
9524     SAFTCCITT_ALaw_11kHzStereo = 44,
9525     SAFTCCITT_ALaw_22kHzMono = 45,
9526     SAFTCCITT_ALaw_22kHzStereo = 46,
9527     SAFTCCITT_ALaw_44kHzMono = 47,
9528     SAFTCCITT_ALaw_44kHzStereo = 48,
9529     SAFTCCITT_uLaw_8kHzMono = 49,
9530     SAFTCCITT_uLaw_8kHzStereo = 50,
9531     SAFTCCITT_uLaw_11kHzMono = 51,
9532     SAFTCCITT_uLaw_11kHzStereo = 52,
9533     SAFTCCITT_uLaw_22kHzMono = 53,
9534     SAFTCCITT_uLaw_22kHzStereo = 54,
9535     SAFTCCITT_uLaw_44kHzMono = 55,
9536     SAFTCCITT_uLaw_44kHzStereo = 56,
9537     SAFTADPCM_8kHzMono = 57,
9538     SAFTADPCM_8kHzStereo = 58,
9539     SAFTADPCM_11kHzMono = 59,
9540     SAFTADPCM_11kHzStereo = 60,
9541     SAFTADPCM_22kHzMono = 61,
9542     SAFTADPCM_22kHzStereo = 62,
9543     SAFTADPCM_44kHzMono = 63,
9544     SAFTADPCM_44kHzStereo = 64,
9545     SAFTGSM610_8kHzMono = 65,
9546     SAFTGSM610_11kHzMono = 66,
9547     SAFTGSM610_22kHzMono = 67,
9548     SAFTGSM610_44kHzMono = 68
9549 } SpeechAudioFormatType;
9550 typedef enum DISPID_SpeechAudioFormat {
9551     DISPID_SAFType = 1,
9552     DISPID_SAFGuid = 2,
9553     DISPID_SAFGetWaveFormatEx = 3,
9554     DISPID_SAFSetWaveFormatEx = 4
9555 } DISPID_SpeechAudioFormat;
9556 typedef enum DISPID_SpeechBaseStream {
9557     DISPID_SBSFormat = 1,
9558     DISPID_SBSRead = 2,
9559     DISPID_SBSWrite = 3,
9560     DISPID_SBSSeek = 4
9561 } DISPID_SpeechBaseStream;
9562 typedef enum SpeechStreamSeekPositionType {
9563     SSSPTRelativeToStart = STREAM_SEEK_SET,
9564     SSSPTRelativeToCurrentPosition = STREAM_SEEK_CUR,
9565     SSSPTRelativeToEnd = STREAM_SEEK_END
9566 } SpeechStreamSeekPositionType;
9567 typedef enum DISPID_SpeechAudio {
9568     DISPID_SAStatus = 200,
9569     DISPID_SABufferInfo = 201,
9570     DISPID_SADefaultFormat = 202,
9571     DISPID_SAVolume = 203,
9572     DISPID_SABufferNotifySize = 204,
9573     DISPID_SAEventHandle = 205,
9574     DISPID_SASetState = 206
9575 } DISPID_SpeechAudio;
9576 typedef enum SpeechAudioState {
9577     SASClosed = SPAS_CLOSED,
9578     SASStop = SPAS_STOP,
9579     SASPause = SPAS_PAUSE,
9580     SASRun = SPAS_RUN
9581 } SpeechAudioState;
9582 typedef enum DISPID_SpeechMMSysAudio {
9583     DISPID_SMSADeviceId = 300,
9584     DISPID_SMSALineId = 301,
9585     DISPID_SMSAMMHandle = 302
9586 } DISPID_SpeechMMSysAudio;
9587 typedef enum DISPID_SpeechFileStream {
9588     DISPID_SFSOpen = 100,
9589     DISPID_SFSClose = 101
9590 } DISPID_SpeechFileStream;
9591 typedef enum SpeechStreamFileMode {
9592     SSFMOpenForRead = SPFM_OPEN_READONLY,
9593     SSFMOpenReadWrite = SPFM_OPEN_READWRITE,
9594     SSFMCreate = SPFM_CREATE,
9595     SSFMCreateForWrite = SPFM_CREATE_ALWAYS
9596 } SpeechStreamFileMode;
9597 typedef enum DISPID_SpeechCustomStream {
9598     DISPID_SCSBaseStream = 100
9599 } DISPID_SpeechCustomStream;
9600 typedef enum DISPID_SpeechMemoryStream {
9601     DISPID_SMSSetData = 100,
9602     DISPID_SMSGetData = 101
9603 } DISPID_SpeechMemoryStream;
9604 typedef enum DISPID_SpeechAudioStatus {
9605     DISPID_SASFreeBufferSpace = 1,
9606     DISPID_SASNonBlockingIO = 2,
9607     DISPID_SASState = 3,
9608     DISPID_SASCurrentSeekPosition = 4,
9609     DISPID_SASCurrentDevicePosition = 5
9610 } DISPID_SpeechAudioStatus;
9611 typedef enum DISPID_SpeechAudioBufferInfo {
9612     DISPID_SABIMinNotification = 1,
9613     DISPID_SABIBufferSize = 2,
9614     DISPID_SABIEventBias = 3
9615 } DISPID_SpeechAudioBufferInfo;
9616 typedef enum DISPID_SpeechWaveFormatEx {
9617     DISPID_SWFEFormatTag = 1,
9618     DISPID_SWFEChannels = 2,
9619     DISPID_SWFESamplesPerSec = 3,
9620     DISPID_SWFEAvgBytesPerSec = 4,
9621     DISPID_SWFEBlockAlign = 5,
9622     DISPID_SWFEBitsPerSample = 6,
9623     DISPID_SWFEExtraData = 7
9624 } DISPID_SpeechWaveFormatEx;
9625 typedef enum DISPID_SpeechVoice {
9626     DISPID_SVStatus = 1,
9627     DISPID_SVVoice = 2,
9628     DISPID_SVAudioOutput = 3,
9629     DISPID_SVAudioOutputStream = 4,
9630     DISPID_SVRate = 5,
9631     DISPID_SVVolume = 6,
9632     DISPID_SVAllowAudioOuputFormatChangesOnNextSet = 7,
9633     DISPID_SVEventInterests = 8,
9634     DISPID_SVPriority = 9,
9635     DISPID_SVAlertBoundary = 10,
9636     DISPID_SVSyncronousSpeakTimeout = 11,
9637     DISPID_SVSpeak = 12,
9638     DISPID_SVSpeakStream = 13,
9639     DISPID_SVPause = 14,
9640     DISPID_SVResume = 15,
9641     DISPID_SVSkip = 16,
9642     DISPID_SVGetVoices = 17,
9643     DISPID_SVGetAudioOutputs = 18,
9644     DISPID_SVWaitUntilDone = 19,
9645     DISPID_SVSpeakCompleteEvent = 20,
9646     DISPID_SVIsUISupported = 21,
9647     DISPID_SVDisplayUI = 22
9648 } DISPID_SpeechVoice;
9649 typedef enum SpeechVoicePriority {
9650     SVPNormal = SPVPRI_NORMAL,
9651     SVPAlert = SPVPRI_ALERT,
9652     SVPOver = SPVPRI_OVER
9653 } SpeechVoicePriority;
9654 typedef enum SpeechVoiceSpeakFlags {
9655     SVSFDefault = SPF_DEFAULT,
9656     SVSFlagsAsync = SPF_ASYNC,
9657     SVSFPurgeBeforeSpeak = SPF_PURGEBEFORESPEAK,
9658     SVSFIsFilename = SPF_IS_FILENAME,
9659     SVSFIsXML = SPF_IS_XML,
9660     SVSFIsNotXML = SPF_IS_NOT_XML,
9661     SVSFPersistXML = SPF_PERSIST_XML,
9662     SVSFNLPSpeakPunc = SPF_NLP_SPEAK_PUNC,
9663     SVSFNLPMask = SPF_NLP_MASK,
9664     SVSFVoiceMask = SPF_VOICE_MASK,
9665     SVSFUnusedFlags = SPF_UNUSED_FLAGS
9666 } SpeechVoiceSpeakFlags;
9667 typedef enum SpeechVoiceEvents {
9668     SVEStartInputStream = 0x2,
9669     SVEEndInputStream = 0x4,
9670     SVEVoiceChange = 0x8,
9671     SVEBookmark = 0x10,
9672     SVEWordBoundary = 0x20,
9673     SVEPhoneme = 0x40,
9674     SVESentenceBoundary = 0x80,
9675     SVEViseme = 0x100,
9676     SVEAudioLevel = 0x200,
9677     SVEPrivate = 0x8000,
9678     SVEAllEvents = 0x83fe
9679 } SpeechVoiceEvents;
9680 typedef enum DISPID_SpeechVoiceStatus {
9681     DISPID_SVSCurrentStreamNumber = 1,
9682     DISPID_SVSLastStreamNumberQueued = 2,
9683     DISPID_SVSLastResult = 3,
9684     DISPID_SVSRunningState = 4,
9685     DISPID_SVSInputWordPosition = 5,
9686     DISPID_SVSInputWordLength = 6,
9687     DISPID_SVSInputSentencePosition = 7,
9688     DISPID_SVSInputSentenceLength = 8,
9689     DISPID_SVSLastBookmark = 9,
9690     DISPID_SVSLastBookmarkId = 10,
9691     DISPID_SVSPhonemeId = 11,
9692     DISPID_SVSVisemeId = 12
9693 } DISPID_SpeechVoiceStatus;
9694 typedef enum SpeechRunState {
9695     SRSEDone = SPRS_DONE,
9696     SRSEIsSpeaking = SPRS_IS_SPEAKING
9697 } SpeechRunState;
9698 /*****************************************************************************
9699  * ISpeechAudioFormat interface
9700  */
9701 #ifndef __ISpeechAudioFormat_INTERFACE_DEFINED__
9702 #define __ISpeechAudioFormat_INTERFACE_DEFINED__
9703 
9704 DEFINE_GUID(IID_ISpeechAudioFormat, 0xe6e9c590, 0x3e18, 0x40e3, 0x82,0x99, 0x06,0x1f,0x98,0xbd,0xe7,0xc7);
9705 #if defined(__cplusplus) && !defined(CINTERFACE)
9706 MIDL_INTERFACE("e6e9c590-3e18-40e3-8299-061f98bde7c7")
9707 ISpeechAudioFormat : public IDispatch
9708 {
9709     virtual HRESULT STDMETHODCALLTYPE get_Type(
9710         SpeechAudioFormatType *AudioFormat) = 0;
9711 
9712     virtual HRESULT STDMETHODCALLTYPE put_Type(
9713         SpeechAudioFormatType AudioFormat) = 0;
9714 
9715     virtual HRESULT STDMETHODCALLTYPE get_Guid(
9716         BSTR *Guid) = 0;
9717 
9718     virtual HRESULT STDMETHODCALLTYPE put_Guid(
9719         BSTR Guid) = 0;
9720 
9721     virtual HRESULT STDMETHODCALLTYPE GetWaveFormatEx(
9722         ISpeechWaveFormatEx **SpeechWaveFormatEx) = 0;
9723 
9724     virtual HRESULT STDMETHODCALLTYPE SetWaveFormatEx(
9725         ISpeechWaveFormatEx *SpeechWaveFormatEx) = 0;
9726 
9727 };
9728 #ifdef __CRT_UUID_DECL
9729 __CRT_UUID_DECL(ISpeechAudioFormat, 0xe6e9c590, 0x3e18, 0x40e3, 0x82,0x99, 0x06,0x1f,0x98,0xbd,0xe7,0xc7)
9730 #endif
9731 #else
9732 typedef struct ISpeechAudioFormatVtbl {
9733     BEGIN_INTERFACE
9734 
9735     /*** IUnknown methods ***/
9736     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9737         ISpeechAudioFormat *This,
9738         REFIID riid,
9739         void **ppvObject);
9740 
9741     ULONG (STDMETHODCALLTYPE *AddRef)(
9742         ISpeechAudioFormat *This);
9743 
9744     ULONG (STDMETHODCALLTYPE *Release)(
9745         ISpeechAudioFormat *This);
9746 
9747     /*** IDispatch methods ***/
9748     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
9749         ISpeechAudioFormat *This,
9750         UINT *pctinfo);
9751 
9752     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
9753         ISpeechAudioFormat *This,
9754         UINT iTInfo,
9755         LCID lcid,
9756         ITypeInfo **ppTInfo);
9757 
9758     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
9759         ISpeechAudioFormat *This,
9760         REFIID riid,
9761         LPOLESTR *rgszNames,
9762         UINT cNames,
9763         LCID lcid,
9764         DISPID *rgDispId);
9765 
9766     HRESULT (STDMETHODCALLTYPE *Invoke)(
9767         ISpeechAudioFormat *This,
9768         DISPID dispIdMember,
9769         REFIID riid,
9770         LCID lcid,
9771         WORD wFlags,
9772         DISPPARAMS *pDispParams,
9773         VARIANT *pVarResult,
9774         EXCEPINFO *pExcepInfo,
9775         UINT *puArgErr);
9776 
9777     /*** ISpeechAudioFormat methods ***/
9778     HRESULT (STDMETHODCALLTYPE *get_Type)(
9779         ISpeechAudioFormat *This,
9780         SpeechAudioFormatType *AudioFormat);
9781 
9782     HRESULT (STDMETHODCALLTYPE *put_Type)(
9783         ISpeechAudioFormat *This,
9784         SpeechAudioFormatType AudioFormat);
9785 
9786     HRESULT (STDMETHODCALLTYPE *get_Guid)(
9787         ISpeechAudioFormat *This,
9788         BSTR *Guid);
9789 
9790     HRESULT (STDMETHODCALLTYPE *put_Guid)(
9791         ISpeechAudioFormat *This,
9792         BSTR Guid);
9793 
9794     HRESULT (STDMETHODCALLTYPE *GetWaveFormatEx)(
9795         ISpeechAudioFormat *This,
9796         ISpeechWaveFormatEx **SpeechWaveFormatEx);
9797 
9798     HRESULT (STDMETHODCALLTYPE *SetWaveFormatEx)(
9799         ISpeechAudioFormat *This,
9800         ISpeechWaveFormatEx *SpeechWaveFormatEx);
9801 
9802     END_INTERFACE
9803 } ISpeechAudioFormatVtbl;
9804 
9805 interface ISpeechAudioFormat {
9806     CONST_VTBL ISpeechAudioFormatVtbl* lpVtbl;
9807 };
9808 
9809 #ifdef COBJMACROS
9810 #ifndef WIDL_C_INLINE_WRAPPERS
9811 /*** IUnknown methods ***/
9812 #define ISpeechAudioFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9813 #define ISpeechAudioFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
9814 #define ISpeechAudioFormat_Release(This) (This)->lpVtbl->Release(This)
9815 /*** IDispatch methods ***/
9816 #define ISpeechAudioFormat_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
9817 #define ISpeechAudioFormat_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
9818 #define ISpeechAudioFormat_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
9819 #define ISpeechAudioFormat_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
9820 /*** ISpeechAudioFormat methods ***/
9821 #define ISpeechAudioFormat_get_Type(This,AudioFormat) (This)->lpVtbl->get_Type(This,AudioFormat)
9822 #define ISpeechAudioFormat_put_Type(This,AudioFormat) (This)->lpVtbl->put_Type(This,AudioFormat)
9823 #define ISpeechAudioFormat_get_Guid(This,Guid) (This)->lpVtbl->get_Guid(This,Guid)
9824 #define ISpeechAudioFormat_put_Guid(This,Guid) (This)->lpVtbl->put_Guid(This,Guid)
9825 #define ISpeechAudioFormat_GetWaveFormatEx(This,SpeechWaveFormatEx) (This)->lpVtbl->GetWaveFormatEx(This,SpeechWaveFormatEx)
9826 #define ISpeechAudioFormat_SetWaveFormatEx(This,SpeechWaveFormatEx) (This)->lpVtbl->SetWaveFormatEx(This,SpeechWaveFormatEx)
9827 #else
9828 /*** IUnknown methods ***/
9829 static FORCEINLINE HRESULT ISpeechAudioFormat_QueryInterface(ISpeechAudioFormat* This,REFIID riid,void **ppvObject) {
9830     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9831 }
9832 static FORCEINLINE ULONG ISpeechAudioFormat_AddRef(ISpeechAudioFormat* This) {
9833     return This->lpVtbl->AddRef(This);
9834 }
9835 static FORCEINLINE ULONG ISpeechAudioFormat_Release(ISpeechAudioFormat* This) {
9836     return This->lpVtbl->Release(This);
9837 }
9838 /*** IDispatch methods ***/
9839 static FORCEINLINE HRESULT ISpeechAudioFormat_GetTypeInfoCount(ISpeechAudioFormat* This,UINT *pctinfo) {
9840     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
9841 }
9842 static FORCEINLINE HRESULT ISpeechAudioFormat_GetTypeInfo(ISpeechAudioFormat* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
9843     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
9844 }
9845 static FORCEINLINE HRESULT ISpeechAudioFormat_GetIDsOfNames(ISpeechAudioFormat* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
9846     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
9847 }
9848 static FORCEINLINE HRESULT ISpeechAudioFormat_Invoke(ISpeechAudioFormat* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
9849     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
9850 }
9851 /*** ISpeechAudioFormat methods ***/
9852 static FORCEINLINE HRESULT ISpeechAudioFormat_get_Type(ISpeechAudioFormat* This,SpeechAudioFormatType *AudioFormat) {
9853     return This->lpVtbl->get_Type(This,AudioFormat);
9854 }
9855 static FORCEINLINE HRESULT ISpeechAudioFormat_put_Type(ISpeechAudioFormat* This,SpeechAudioFormatType AudioFormat) {
9856     return This->lpVtbl->put_Type(This,AudioFormat);
9857 }
9858 static FORCEINLINE HRESULT ISpeechAudioFormat_get_Guid(ISpeechAudioFormat* This,BSTR *Guid) {
9859     return This->lpVtbl->get_Guid(This,Guid);
9860 }
9861 static FORCEINLINE HRESULT ISpeechAudioFormat_put_Guid(ISpeechAudioFormat* This,BSTR Guid) {
9862     return This->lpVtbl->put_Guid(This,Guid);
9863 }
9864 static FORCEINLINE HRESULT ISpeechAudioFormat_GetWaveFormatEx(ISpeechAudioFormat* This,ISpeechWaveFormatEx **SpeechWaveFormatEx) {
9865     return This->lpVtbl->GetWaveFormatEx(This,SpeechWaveFormatEx);
9866 }
9867 static FORCEINLINE HRESULT ISpeechAudioFormat_SetWaveFormatEx(ISpeechAudioFormat* This,ISpeechWaveFormatEx *SpeechWaveFormatEx) {
9868     return This->lpVtbl->SetWaveFormatEx(This,SpeechWaveFormatEx);
9869 }
9870 #endif
9871 #endif
9872 
9873 #endif
9874 
9875 
9876 #endif  /* __ISpeechAudioFormat_INTERFACE_DEFINED__ */
9877 
9878 /*****************************************************************************
9879  * ISpeechBaseStream interface
9880  */
9881 #ifndef __ISpeechBaseStream_INTERFACE_DEFINED__
9882 #define __ISpeechBaseStream_INTERFACE_DEFINED__
9883 
9884 DEFINE_GUID(IID_ISpeechBaseStream, 0x6450336f, 0x7d49, 0x4ced, 0x80,0x97, 0x49,0xd6,0xde,0xe3,0x72,0x94);
9885 #if defined(__cplusplus) && !defined(CINTERFACE)
9886 MIDL_INTERFACE("6450336f-7d49-4ced-8097-49d6dee37294")
9887 ISpeechBaseStream : public IDispatch
9888 {
9889     virtual HRESULT STDMETHODCALLTYPE get_Format(
9890         ISpeechAudioFormat **AudioFormat) = 0;
9891 
9892     virtual HRESULT STDMETHODCALLTYPE putref_Format(
9893         ISpeechAudioFormat *AudioFormat) = 0;
9894 
9895     virtual HRESULT STDMETHODCALLTYPE Read(
9896         VARIANT *Buffer,
9897         LONG NumberOfBytes,
9898         LONG *BytesRead) = 0;
9899 
9900     virtual HRESULT STDMETHODCALLTYPE Write(
9901         VARIANT Buffer,
9902         LONG *BytesWritten) = 0;
9903 
9904     virtual HRESULT STDMETHODCALLTYPE Seek(
9905         VARIANT Position,
9906         SpeechStreamSeekPositionType Origin,
9907         VARIANT *NewPosition) = 0;
9908 
9909 };
9910 #ifdef __CRT_UUID_DECL
9911 __CRT_UUID_DECL(ISpeechBaseStream, 0x6450336f, 0x7d49, 0x4ced, 0x80,0x97, 0x49,0xd6,0xde,0xe3,0x72,0x94)
9912 #endif
9913 #else
9914 typedef struct ISpeechBaseStreamVtbl {
9915     BEGIN_INTERFACE
9916 
9917     /*** IUnknown methods ***/
9918     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9919         ISpeechBaseStream *This,
9920         REFIID riid,
9921         void **ppvObject);
9922 
9923     ULONG (STDMETHODCALLTYPE *AddRef)(
9924         ISpeechBaseStream *This);
9925 
9926     ULONG (STDMETHODCALLTYPE *Release)(
9927         ISpeechBaseStream *This);
9928 
9929     /*** IDispatch methods ***/
9930     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
9931         ISpeechBaseStream *This,
9932         UINT *pctinfo);
9933 
9934     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
9935         ISpeechBaseStream *This,
9936         UINT iTInfo,
9937         LCID lcid,
9938         ITypeInfo **ppTInfo);
9939 
9940     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
9941         ISpeechBaseStream *This,
9942         REFIID riid,
9943         LPOLESTR *rgszNames,
9944         UINT cNames,
9945         LCID lcid,
9946         DISPID *rgDispId);
9947 
9948     HRESULT (STDMETHODCALLTYPE *Invoke)(
9949         ISpeechBaseStream *This,
9950         DISPID dispIdMember,
9951         REFIID riid,
9952         LCID lcid,
9953         WORD wFlags,
9954         DISPPARAMS *pDispParams,
9955         VARIANT *pVarResult,
9956         EXCEPINFO *pExcepInfo,
9957         UINT *puArgErr);
9958 
9959     /*** ISpeechBaseStream methods ***/
9960     HRESULT (STDMETHODCALLTYPE *get_Format)(
9961         ISpeechBaseStream *This,
9962         ISpeechAudioFormat **AudioFormat);
9963 
9964     HRESULT (STDMETHODCALLTYPE *putref_Format)(
9965         ISpeechBaseStream *This,
9966         ISpeechAudioFormat *AudioFormat);
9967 
9968     HRESULT (STDMETHODCALLTYPE *Read)(
9969         ISpeechBaseStream *This,
9970         VARIANT *Buffer,
9971         LONG NumberOfBytes,
9972         LONG *BytesRead);
9973 
9974     HRESULT (STDMETHODCALLTYPE *Write)(
9975         ISpeechBaseStream *This,
9976         VARIANT Buffer,
9977         LONG *BytesWritten);
9978 
9979     HRESULT (STDMETHODCALLTYPE *Seek)(
9980         ISpeechBaseStream *This,
9981         VARIANT Position,
9982         SpeechStreamSeekPositionType Origin,
9983         VARIANT *NewPosition);
9984 
9985     END_INTERFACE
9986 } ISpeechBaseStreamVtbl;
9987 
9988 interface ISpeechBaseStream {
9989     CONST_VTBL ISpeechBaseStreamVtbl* lpVtbl;
9990 };
9991 
9992 #ifdef COBJMACROS
9993 #ifndef WIDL_C_INLINE_WRAPPERS
9994 /*** IUnknown methods ***/
9995 #define ISpeechBaseStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9996 #define ISpeechBaseStream_AddRef(This) (This)->lpVtbl->AddRef(This)
9997 #define ISpeechBaseStream_Release(This) (This)->lpVtbl->Release(This)
9998 /*** IDispatch methods ***/
9999 #define ISpeechBaseStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
10000 #define ISpeechBaseStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
10001 #define ISpeechBaseStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
10002 #define ISpeechBaseStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
10003 /*** ISpeechBaseStream methods ***/
10004 #define ISpeechBaseStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
10005 #define ISpeechBaseStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
10006 #define ISpeechBaseStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
10007 #define ISpeechBaseStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
10008 #define ISpeechBaseStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
10009 #else
10010 /*** IUnknown methods ***/
10011 static FORCEINLINE HRESULT ISpeechBaseStream_QueryInterface(ISpeechBaseStream* This,REFIID riid,void **ppvObject) {
10012     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10013 }
10014 static FORCEINLINE ULONG ISpeechBaseStream_AddRef(ISpeechBaseStream* This) {
10015     return This->lpVtbl->AddRef(This);
10016 }
10017 static FORCEINLINE ULONG ISpeechBaseStream_Release(ISpeechBaseStream* This) {
10018     return This->lpVtbl->Release(This);
10019 }
10020 /*** IDispatch methods ***/
10021 static FORCEINLINE HRESULT ISpeechBaseStream_GetTypeInfoCount(ISpeechBaseStream* This,UINT *pctinfo) {
10022     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
10023 }
10024 static FORCEINLINE HRESULT ISpeechBaseStream_GetTypeInfo(ISpeechBaseStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
10025     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
10026 }
10027 static FORCEINLINE HRESULT ISpeechBaseStream_GetIDsOfNames(ISpeechBaseStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
10028     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
10029 }
10030 static FORCEINLINE HRESULT ISpeechBaseStream_Invoke(ISpeechBaseStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
10031     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
10032 }
10033 /*** ISpeechBaseStream methods ***/
10034 static FORCEINLINE HRESULT ISpeechBaseStream_get_Format(ISpeechBaseStream* This,ISpeechAudioFormat **AudioFormat) {
10035     return This->lpVtbl->get_Format(This,AudioFormat);
10036 }
10037 static FORCEINLINE HRESULT ISpeechBaseStream_putref_Format(ISpeechBaseStream* This,ISpeechAudioFormat *AudioFormat) {
10038     return This->lpVtbl->putref_Format(This,AudioFormat);
10039 }
10040 static FORCEINLINE HRESULT ISpeechBaseStream_Read(ISpeechBaseStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
10041     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
10042 }
10043 static FORCEINLINE HRESULT ISpeechBaseStream_Write(ISpeechBaseStream* This,VARIANT Buffer,LONG *BytesWritten) {
10044     return This->lpVtbl->Write(This,Buffer,BytesWritten);
10045 }
10046 static FORCEINLINE HRESULT ISpeechBaseStream_Seek(ISpeechBaseStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
10047     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
10048 }
10049 #endif
10050 #endif
10051 
10052 #endif
10053 
10054 
10055 #endif  /* __ISpeechBaseStream_INTERFACE_DEFINED__ */
10056 
10057 /*****************************************************************************
10058  * ISpeechAudio interface
10059  */
10060 #ifndef __ISpeechAudio_INTERFACE_DEFINED__
10061 #define __ISpeechAudio_INTERFACE_DEFINED__
10062 
10063 DEFINE_GUID(IID_ISpeechAudio, 0xcff8e175, 0x019e, 0x11d3, 0xa0,0x8e, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5);
10064 #if defined(__cplusplus) && !defined(CINTERFACE)
10065 MIDL_INTERFACE("cff8e175-019e-11d3-a08e-00c04f8ef9b5")
10066 ISpeechAudio : public ISpeechBaseStream
10067 {
10068     virtual HRESULT STDMETHODCALLTYPE get_Status(
10069         ISpeechAudioStatus **Status) = 0;
10070 
10071     virtual HRESULT STDMETHODCALLTYPE get_BufferInfo(
10072         ISpeechAudioBufferInfo **BufferInfo) = 0;
10073 
10074     virtual HRESULT STDMETHODCALLTYPE get_DefaultFormat(
10075         ISpeechAudioFormat **StreamFormat) = 0;
10076 
10077     virtual HRESULT STDMETHODCALLTYPE get_Volume(
10078         LONG *Volume) = 0;
10079 
10080     virtual HRESULT STDMETHODCALLTYPE put_Volume(
10081         LONG Volume) = 0;
10082 
10083     virtual HRESULT STDMETHODCALLTYPE get_BufferNotifySize(
10084         LONG *BufferNotifySize) = 0;
10085 
10086     virtual HRESULT STDMETHODCALLTYPE put_BufferNotifySize(
10087         LONG BufferNotifySize) = 0;
10088 
10089     virtual HRESULT STDMETHODCALLTYPE get_EventHandle(
10090         LONG *EventHandle) = 0;
10091 
10092     virtual HRESULT STDMETHODCALLTYPE SetState(
10093         SpeechAudioState State) = 0;
10094 
10095 };
10096 #ifdef __CRT_UUID_DECL
10097 __CRT_UUID_DECL(ISpeechAudio, 0xcff8e175, 0x019e, 0x11d3, 0xa0,0x8e, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5)
10098 #endif
10099 #else
10100 typedef struct ISpeechAudioVtbl {
10101     BEGIN_INTERFACE
10102 
10103     /*** IUnknown methods ***/
10104     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10105         ISpeechAudio *This,
10106         REFIID riid,
10107         void **ppvObject);
10108 
10109     ULONG (STDMETHODCALLTYPE *AddRef)(
10110         ISpeechAudio *This);
10111 
10112     ULONG (STDMETHODCALLTYPE *Release)(
10113         ISpeechAudio *This);
10114 
10115     /*** IDispatch methods ***/
10116     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
10117         ISpeechAudio *This,
10118         UINT *pctinfo);
10119 
10120     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
10121         ISpeechAudio *This,
10122         UINT iTInfo,
10123         LCID lcid,
10124         ITypeInfo **ppTInfo);
10125 
10126     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
10127         ISpeechAudio *This,
10128         REFIID riid,
10129         LPOLESTR *rgszNames,
10130         UINT cNames,
10131         LCID lcid,
10132         DISPID *rgDispId);
10133 
10134     HRESULT (STDMETHODCALLTYPE *Invoke)(
10135         ISpeechAudio *This,
10136         DISPID dispIdMember,
10137         REFIID riid,
10138         LCID lcid,
10139         WORD wFlags,
10140         DISPPARAMS *pDispParams,
10141         VARIANT *pVarResult,
10142         EXCEPINFO *pExcepInfo,
10143         UINT *puArgErr);
10144 
10145     /*** ISpeechBaseStream methods ***/
10146     HRESULT (STDMETHODCALLTYPE *get_Format)(
10147         ISpeechAudio *This,
10148         ISpeechAudioFormat **AudioFormat);
10149 
10150     HRESULT (STDMETHODCALLTYPE *putref_Format)(
10151         ISpeechAudio *This,
10152         ISpeechAudioFormat *AudioFormat);
10153 
10154     HRESULT (STDMETHODCALLTYPE *Read)(
10155         ISpeechAudio *This,
10156         VARIANT *Buffer,
10157         LONG NumberOfBytes,
10158         LONG *BytesRead);
10159 
10160     HRESULT (STDMETHODCALLTYPE *Write)(
10161         ISpeechAudio *This,
10162         VARIANT Buffer,
10163         LONG *BytesWritten);
10164 
10165     HRESULT (STDMETHODCALLTYPE *Seek)(
10166         ISpeechAudio *This,
10167         VARIANT Position,
10168         SpeechStreamSeekPositionType Origin,
10169         VARIANT *NewPosition);
10170 
10171     /*** ISpeechAudio methods ***/
10172     HRESULT (STDMETHODCALLTYPE *get_Status)(
10173         ISpeechAudio *This,
10174         ISpeechAudioStatus **Status);
10175 
10176     HRESULT (STDMETHODCALLTYPE *get_BufferInfo)(
10177         ISpeechAudio *This,
10178         ISpeechAudioBufferInfo **BufferInfo);
10179 
10180     HRESULT (STDMETHODCALLTYPE *get_DefaultFormat)(
10181         ISpeechAudio *This,
10182         ISpeechAudioFormat **StreamFormat);
10183 
10184     HRESULT (STDMETHODCALLTYPE *get_Volume)(
10185         ISpeechAudio *This,
10186         LONG *Volume);
10187 
10188     HRESULT (STDMETHODCALLTYPE *put_Volume)(
10189         ISpeechAudio *This,
10190         LONG Volume);
10191 
10192     HRESULT (STDMETHODCALLTYPE *get_BufferNotifySize)(
10193         ISpeechAudio *This,
10194         LONG *BufferNotifySize);
10195 
10196     HRESULT (STDMETHODCALLTYPE *put_BufferNotifySize)(
10197         ISpeechAudio *This,
10198         LONG BufferNotifySize);
10199 
10200     HRESULT (STDMETHODCALLTYPE *get_EventHandle)(
10201         ISpeechAudio *This,
10202         LONG *EventHandle);
10203 
10204     HRESULT (STDMETHODCALLTYPE *SetState)(
10205         ISpeechAudio *This,
10206         SpeechAudioState State);
10207 
10208     END_INTERFACE
10209 } ISpeechAudioVtbl;
10210 
10211 interface ISpeechAudio {
10212     CONST_VTBL ISpeechAudioVtbl* lpVtbl;
10213 };
10214 
10215 #ifdef COBJMACROS
10216 #ifndef WIDL_C_INLINE_WRAPPERS
10217 /*** IUnknown methods ***/
10218 #define ISpeechAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10219 #define ISpeechAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
10220 #define ISpeechAudio_Release(This) (This)->lpVtbl->Release(This)
10221 /*** IDispatch methods ***/
10222 #define ISpeechAudio_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
10223 #define ISpeechAudio_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
10224 #define ISpeechAudio_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
10225 #define ISpeechAudio_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
10226 /*** ISpeechBaseStream methods ***/
10227 #define ISpeechAudio_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
10228 #define ISpeechAudio_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
10229 #define ISpeechAudio_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
10230 #define ISpeechAudio_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
10231 #define ISpeechAudio_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
10232 /*** ISpeechAudio methods ***/
10233 #define ISpeechAudio_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
10234 #define ISpeechAudio_get_BufferInfo(This,BufferInfo) (This)->lpVtbl->get_BufferInfo(This,BufferInfo)
10235 #define ISpeechAudio_get_DefaultFormat(This,StreamFormat) (This)->lpVtbl->get_DefaultFormat(This,StreamFormat)
10236 #define ISpeechAudio_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
10237 #define ISpeechAudio_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
10238 #define ISpeechAudio_get_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->get_BufferNotifySize(This,BufferNotifySize)
10239 #define ISpeechAudio_put_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->put_BufferNotifySize(This,BufferNotifySize)
10240 #define ISpeechAudio_get_EventHandle(This,EventHandle) (This)->lpVtbl->get_EventHandle(This,EventHandle)
10241 #define ISpeechAudio_SetState(This,State) (This)->lpVtbl->SetState(This,State)
10242 #else
10243 /*** IUnknown methods ***/
10244 static FORCEINLINE HRESULT ISpeechAudio_QueryInterface(ISpeechAudio* This,REFIID riid,void **ppvObject) {
10245     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10246 }
10247 static FORCEINLINE ULONG ISpeechAudio_AddRef(ISpeechAudio* This) {
10248     return This->lpVtbl->AddRef(This);
10249 }
10250 static FORCEINLINE ULONG ISpeechAudio_Release(ISpeechAudio* This) {
10251     return This->lpVtbl->Release(This);
10252 }
10253 /*** IDispatch methods ***/
10254 static FORCEINLINE HRESULT ISpeechAudio_GetTypeInfoCount(ISpeechAudio* This,UINT *pctinfo) {
10255     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
10256 }
10257 static FORCEINLINE HRESULT ISpeechAudio_GetTypeInfo(ISpeechAudio* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
10258     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
10259 }
10260 static FORCEINLINE HRESULT ISpeechAudio_GetIDsOfNames(ISpeechAudio* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
10261     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
10262 }
10263 static FORCEINLINE HRESULT ISpeechAudio_Invoke(ISpeechAudio* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
10264     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
10265 }
10266 /*** ISpeechBaseStream methods ***/
10267 static FORCEINLINE HRESULT ISpeechAudio_get_Format(ISpeechAudio* This,ISpeechAudioFormat **AudioFormat) {
10268     return This->lpVtbl->get_Format(This,AudioFormat);
10269 }
10270 static FORCEINLINE HRESULT ISpeechAudio_putref_Format(ISpeechAudio* This,ISpeechAudioFormat *AudioFormat) {
10271     return This->lpVtbl->putref_Format(This,AudioFormat);
10272 }
10273 static FORCEINLINE HRESULT ISpeechAudio_Read(ISpeechAudio* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
10274     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
10275 }
10276 static FORCEINLINE HRESULT ISpeechAudio_Write(ISpeechAudio* This,VARIANT Buffer,LONG *BytesWritten) {
10277     return This->lpVtbl->Write(This,Buffer,BytesWritten);
10278 }
10279 static FORCEINLINE HRESULT ISpeechAudio_Seek(ISpeechAudio* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
10280     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
10281 }
10282 /*** ISpeechAudio methods ***/
10283 static FORCEINLINE HRESULT ISpeechAudio_get_Status(ISpeechAudio* This,ISpeechAudioStatus **Status) {
10284     return This->lpVtbl->get_Status(This,Status);
10285 }
10286 static FORCEINLINE HRESULT ISpeechAudio_get_BufferInfo(ISpeechAudio* This,ISpeechAudioBufferInfo **BufferInfo) {
10287     return This->lpVtbl->get_BufferInfo(This,BufferInfo);
10288 }
10289 static FORCEINLINE HRESULT ISpeechAudio_get_DefaultFormat(ISpeechAudio* This,ISpeechAudioFormat **StreamFormat) {
10290     return This->lpVtbl->get_DefaultFormat(This,StreamFormat);
10291 }
10292 static FORCEINLINE HRESULT ISpeechAudio_get_Volume(ISpeechAudio* This,LONG *Volume) {
10293     return This->lpVtbl->get_Volume(This,Volume);
10294 }
10295 static FORCEINLINE HRESULT ISpeechAudio_put_Volume(ISpeechAudio* This,LONG Volume) {
10296     return This->lpVtbl->put_Volume(This,Volume);
10297 }
10298 static FORCEINLINE HRESULT ISpeechAudio_get_BufferNotifySize(ISpeechAudio* This,LONG *BufferNotifySize) {
10299     return This->lpVtbl->get_BufferNotifySize(This,BufferNotifySize);
10300 }
10301 static FORCEINLINE HRESULT ISpeechAudio_put_BufferNotifySize(ISpeechAudio* This,LONG BufferNotifySize) {
10302     return This->lpVtbl->put_BufferNotifySize(This,BufferNotifySize);
10303 }
10304 static FORCEINLINE HRESULT ISpeechAudio_get_EventHandle(ISpeechAudio* This,LONG *EventHandle) {
10305     return This->lpVtbl->get_EventHandle(This,EventHandle);
10306 }
10307 static FORCEINLINE HRESULT ISpeechAudio_SetState(ISpeechAudio* This,SpeechAudioState State) {
10308     return This->lpVtbl->SetState(This,State);
10309 }
10310 #endif
10311 #endif
10312 
10313 #endif
10314 
10315 
10316 #endif  /* __ISpeechAudio_INTERFACE_DEFINED__ */
10317 
10318 /*****************************************************************************
10319  * ISpeechMMSysAudio interface
10320  */
10321 #ifndef __ISpeechMMSysAudio_INTERFACE_DEFINED__
10322 #define __ISpeechMMSysAudio_INTERFACE_DEFINED__
10323 
10324 DEFINE_GUID(IID_ISpeechMMSysAudio, 0x3c76af6d, 0x1fd7, 0x4831, 0x81,0xd1, 0x3b,0x71,0xd5,0xa1,0x3c,0x44);
10325 #if defined(__cplusplus) && !defined(CINTERFACE)
10326 MIDL_INTERFACE("3c76af6d-1fd7-4831-81d1-3b71d5a13c44")
10327 ISpeechMMSysAudio : public ISpeechAudio
10328 {
10329     virtual HRESULT STDMETHODCALLTYPE get_DeviceId(
10330         LONG *DeviceId) = 0;
10331 
10332     virtual HRESULT STDMETHODCALLTYPE put_DeviceId(
10333         LONG DeviceId) = 0;
10334 
10335     virtual HRESULT STDMETHODCALLTYPE get_LineId(
10336         LONG *LineId) = 0;
10337 
10338     virtual HRESULT STDMETHODCALLTYPE put_LineId(
10339         LONG LineId) = 0;
10340 
10341     virtual HRESULT STDMETHODCALLTYPE get_MMHandle(
10342         LONG *Handle) = 0;
10343 
10344 };
10345 #ifdef __CRT_UUID_DECL
10346 __CRT_UUID_DECL(ISpeechMMSysAudio, 0x3c76af6d, 0x1fd7, 0x4831, 0x81,0xd1, 0x3b,0x71,0xd5,0xa1,0x3c,0x44)
10347 #endif
10348 #else
10349 typedef struct ISpeechMMSysAudioVtbl {
10350     BEGIN_INTERFACE
10351 
10352     /*** IUnknown methods ***/
10353     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10354         ISpeechMMSysAudio *This,
10355         REFIID riid,
10356         void **ppvObject);
10357 
10358     ULONG (STDMETHODCALLTYPE *AddRef)(
10359         ISpeechMMSysAudio *This);
10360 
10361     ULONG (STDMETHODCALLTYPE *Release)(
10362         ISpeechMMSysAudio *This);
10363 
10364     /*** IDispatch methods ***/
10365     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
10366         ISpeechMMSysAudio *This,
10367         UINT *pctinfo);
10368 
10369     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
10370         ISpeechMMSysAudio *This,
10371         UINT iTInfo,
10372         LCID lcid,
10373         ITypeInfo **ppTInfo);
10374 
10375     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
10376         ISpeechMMSysAudio *This,
10377         REFIID riid,
10378         LPOLESTR *rgszNames,
10379         UINT cNames,
10380         LCID lcid,
10381         DISPID *rgDispId);
10382 
10383     HRESULT (STDMETHODCALLTYPE *Invoke)(
10384         ISpeechMMSysAudio *This,
10385         DISPID dispIdMember,
10386         REFIID riid,
10387         LCID lcid,
10388         WORD wFlags,
10389         DISPPARAMS *pDispParams,
10390         VARIANT *pVarResult,
10391         EXCEPINFO *pExcepInfo,
10392         UINT *puArgErr);
10393 
10394     /*** ISpeechBaseStream methods ***/
10395     HRESULT (STDMETHODCALLTYPE *get_Format)(
10396         ISpeechMMSysAudio *This,
10397         ISpeechAudioFormat **AudioFormat);
10398 
10399     HRESULT (STDMETHODCALLTYPE *putref_Format)(
10400         ISpeechMMSysAudio *This,
10401         ISpeechAudioFormat *AudioFormat);
10402 
10403     HRESULT (STDMETHODCALLTYPE *Read)(
10404         ISpeechMMSysAudio *This,
10405         VARIANT *Buffer,
10406         LONG NumberOfBytes,
10407         LONG *BytesRead);
10408 
10409     HRESULT (STDMETHODCALLTYPE *Write)(
10410         ISpeechMMSysAudio *This,
10411         VARIANT Buffer,
10412         LONG *BytesWritten);
10413 
10414     HRESULT (STDMETHODCALLTYPE *Seek)(
10415         ISpeechMMSysAudio *This,
10416         VARIANT Position,
10417         SpeechStreamSeekPositionType Origin,
10418         VARIANT *NewPosition);
10419 
10420     /*** ISpeechAudio methods ***/
10421     HRESULT (STDMETHODCALLTYPE *get_Status)(
10422         ISpeechMMSysAudio *This,
10423         ISpeechAudioStatus **Status);
10424 
10425     HRESULT (STDMETHODCALLTYPE *get_BufferInfo)(
10426         ISpeechMMSysAudio *This,
10427         ISpeechAudioBufferInfo **BufferInfo);
10428 
10429     HRESULT (STDMETHODCALLTYPE *get_DefaultFormat)(
10430         ISpeechMMSysAudio *This,
10431         ISpeechAudioFormat **StreamFormat);
10432 
10433     HRESULT (STDMETHODCALLTYPE *get_Volume)(
10434         ISpeechMMSysAudio *This,
10435         LONG *Volume);
10436 
10437     HRESULT (STDMETHODCALLTYPE *put_Volume)(
10438         ISpeechMMSysAudio *This,
10439         LONG Volume);
10440 
10441     HRESULT (STDMETHODCALLTYPE *get_BufferNotifySize)(
10442         ISpeechMMSysAudio *This,
10443         LONG *BufferNotifySize);
10444 
10445     HRESULT (STDMETHODCALLTYPE *put_BufferNotifySize)(
10446         ISpeechMMSysAudio *This,
10447         LONG BufferNotifySize);
10448 
10449     HRESULT (STDMETHODCALLTYPE *get_EventHandle)(
10450         ISpeechMMSysAudio *This,
10451         LONG *EventHandle);
10452 
10453     HRESULT (STDMETHODCALLTYPE *SetState)(
10454         ISpeechMMSysAudio *This,
10455         SpeechAudioState State);
10456 
10457     /*** ISpeechMMSysAudio methods ***/
10458     HRESULT (STDMETHODCALLTYPE *get_DeviceId)(
10459         ISpeechMMSysAudio *This,
10460         LONG *DeviceId);
10461 
10462     HRESULT (STDMETHODCALLTYPE *put_DeviceId)(
10463         ISpeechMMSysAudio *This,
10464         LONG DeviceId);
10465 
10466     HRESULT (STDMETHODCALLTYPE *get_LineId)(
10467         ISpeechMMSysAudio *This,
10468         LONG *LineId);
10469 
10470     HRESULT (STDMETHODCALLTYPE *put_LineId)(
10471         ISpeechMMSysAudio *This,
10472         LONG LineId);
10473 
10474     HRESULT (STDMETHODCALLTYPE *get_MMHandle)(
10475         ISpeechMMSysAudio *This,
10476         LONG *Handle);
10477 
10478     END_INTERFACE
10479 } ISpeechMMSysAudioVtbl;
10480 
10481 interface ISpeechMMSysAudio {
10482     CONST_VTBL ISpeechMMSysAudioVtbl* lpVtbl;
10483 };
10484 
10485 #ifdef COBJMACROS
10486 #ifndef WIDL_C_INLINE_WRAPPERS
10487 /*** IUnknown methods ***/
10488 #define ISpeechMMSysAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10489 #define ISpeechMMSysAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
10490 #define ISpeechMMSysAudio_Release(This) (This)->lpVtbl->Release(This)
10491 /*** IDispatch methods ***/
10492 #define ISpeechMMSysAudio_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
10493 #define ISpeechMMSysAudio_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
10494 #define ISpeechMMSysAudio_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
10495 #define ISpeechMMSysAudio_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
10496 /*** ISpeechBaseStream methods ***/
10497 #define ISpeechMMSysAudio_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
10498 #define ISpeechMMSysAudio_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
10499 #define ISpeechMMSysAudio_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
10500 #define ISpeechMMSysAudio_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
10501 #define ISpeechMMSysAudio_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
10502 /*** ISpeechAudio methods ***/
10503 #define ISpeechMMSysAudio_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
10504 #define ISpeechMMSysAudio_get_BufferInfo(This,BufferInfo) (This)->lpVtbl->get_BufferInfo(This,BufferInfo)
10505 #define ISpeechMMSysAudio_get_DefaultFormat(This,StreamFormat) (This)->lpVtbl->get_DefaultFormat(This,StreamFormat)
10506 #define ISpeechMMSysAudio_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
10507 #define ISpeechMMSysAudio_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
10508 #define ISpeechMMSysAudio_get_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->get_BufferNotifySize(This,BufferNotifySize)
10509 #define ISpeechMMSysAudio_put_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->put_BufferNotifySize(This,BufferNotifySize)
10510 #define ISpeechMMSysAudio_get_EventHandle(This,EventHandle) (This)->lpVtbl->get_EventHandle(This,EventHandle)
10511 #define ISpeechMMSysAudio_SetState(This,State) (This)->lpVtbl->SetState(This,State)
10512 /*** ISpeechMMSysAudio methods ***/
10513 #define ISpeechMMSysAudio_get_DeviceId(This,DeviceId) (This)->lpVtbl->get_DeviceId(This,DeviceId)
10514 #define ISpeechMMSysAudio_put_DeviceId(This,DeviceId) (This)->lpVtbl->put_DeviceId(This,DeviceId)
10515 #define ISpeechMMSysAudio_get_LineId(This,LineId) (This)->lpVtbl->get_LineId(This,LineId)
10516 #define ISpeechMMSysAudio_put_LineId(This,LineId) (This)->lpVtbl->put_LineId(This,LineId)
10517 #define ISpeechMMSysAudio_get_MMHandle(This,Handle) (This)->lpVtbl->get_MMHandle(This,Handle)
10518 #else
10519 /*** IUnknown methods ***/
10520 static FORCEINLINE HRESULT ISpeechMMSysAudio_QueryInterface(ISpeechMMSysAudio* This,REFIID riid,void **ppvObject) {
10521     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10522 }
10523 static FORCEINLINE ULONG ISpeechMMSysAudio_AddRef(ISpeechMMSysAudio* This) {
10524     return This->lpVtbl->AddRef(This);
10525 }
10526 static FORCEINLINE ULONG ISpeechMMSysAudio_Release(ISpeechMMSysAudio* This) {
10527     return This->lpVtbl->Release(This);
10528 }
10529 /*** IDispatch methods ***/
10530 static FORCEINLINE HRESULT ISpeechMMSysAudio_GetTypeInfoCount(ISpeechMMSysAudio* This,UINT *pctinfo) {
10531     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
10532 }
10533 static FORCEINLINE HRESULT ISpeechMMSysAudio_GetTypeInfo(ISpeechMMSysAudio* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
10534     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
10535 }
10536 static FORCEINLINE HRESULT ISpeechMMSysAudio_GetIDsOfNames(ISpeechMMSysAudio* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
10537     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
10538 }
10539 static FORCEINLINE HRESULT ISpeechMMSysAudio_Invoke(ISpeechMMSysAudio* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
10540     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
10541 }
10542 /*** ISpeechBaseStream methods ***/
10543 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_Format(ISpeechMMSysAudio* This,ISpeechAudioFormat **AudioFormat) {
10544     return This->lpVtbl->get_Format(This,AudioFormat);
10545 }
10546 static FORCEINLINE HRESULT ISpeechMMSysAudio_putref_Format(ISpeechMMSysAudio* This,ISpeechAudioFormat *AudioFormat) {
10547     return This->lpVtbl->putref_Format(This,AudioFormat);
10548 }
10549 static FORCEINLINE HRESULT ISpeechMMSysAudio_Read(ISpeechMMSysAudio* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
10550     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
10551 }
10552 static FORCEINLINE HRESULT ISpeechMMSysAudio_Write(ISpeechMMSysAudio* This,VARIANT Buffer,LONG *BytesWritten) {
10553     return This->lpVtbl->Write(This,Buffer,BytesWritten);
10554 }
10555 static FORCEINLINE HRESULT ISpeechMMSysAudio_Seek(ISpeechMMSysAudio* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
10556     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
10557 }
10558 /*** ISpeechAudio methods ***/
10559 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_Status(ISpeechMMSysAudio* This,ISpeechAudioStatus **Status) {
10560     return This->lpVtbl->get_Status(This,Status);
10561 }
10562 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_BufferInfo(ISpeechMMSysAudio* This,ISpeechAudioBufferInfo **BufferInfo) {
10563     return This->lpVtbl->get_BufferInfo(This,BufferInfo);
10564 }
10565 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_DefaultFormat(ISpeechMMSysAudio* This,ISpeechAudioFormat **StreamFormat) {
10566     return This->lpVtbl->get_DefaultFormat(This,StreamFormat);
10567 }
10568 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_Volume(ISpeechMMSysAudio* This,LONG *Volume) {
10569     return This->lpVtbl->get_Volume(This,Volume);
10570 }
10571 static FORCEINLINE HRESULT ISpeechMMSysAudio_put_Volume(ISpeechMMSysAudio* This,LONG Volume) {
10572     return This->lpVtbl->put_Volume(This,Volume);
10573 }
10574 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_BufferNotifySize(ISpeechMMSysAudio* This,LONG *BufferNotifySize) {
10575     return This->lpVtbl->get_BufferNotifySize(This,BufferNotifySize);
10576 }
10577 static FORCEINLINE HRESULT ISpeechMMSysAudio_put_BufferNotifySize(ISpeechMMSysAudio* This,LONG BufferNotifySize) {
10578     return This->lpVtbl->put_BufferNotifySize(This,BufferNotifySize);
10579 }
10580 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_EventHandle(ISpeechMMSysAudio* This,LONG *EventHandle) {
10581     return This->lpVtbl->get_EventHandle(This,EventHandle);
10582 }
10583 static FORCEINLINE HRESULT ISpeechMMSysAudio_SetState(ISpeechMMSysAudio* This,SpeechAudioState State) {
10584     return This->lpVtbl->SetState(This,State);
10585 }
10586 /*** ISpeechMMSysAudio methods ***/
10587 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_DeviceId(ISpeechMMSysAudio* This,LONG *DeviceId) {
10588     return This->lpVtbl->get_DeviceId(This,DeviceId);
10589 }
10590 static FORCEINLINE HRESULT ISpeechMMSysAudio_put_DeviceId(ISpeechMMSysAudio* This,LONG DeviceId) {
10591     return This->lpVtbl->put_DeviceId(This,DeviceId);
10592 }
10593 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_LineId(ISpeechMMSysAudio* This,LONG *LineId) {
10594     return This->lpVtbl->get_LineId(This,LineId);
10595 }
10596 static FORCEINLINE HRESULT ISpeechMMSysAudio_put_LineId(ISpeechMMSysAudio* This,LONG LineId) {
10597     return This->lpVtbl->put_LineId(This,LineId);
10598 }
10599 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_MMHandle(ISpeechMMSysAudio* This,LONG *Handle) {
10600     return This->lpVtbl->get_MMHandle(This,Handle);
10601 }
10602 #endif
10603 #endif
10604 
10605 #endif
10606 
10607 
10608 #endif  /* __ISpeechMMSysAudio_INTERFACE_DEFINED__ */
10609 
10610 /*****************************************************************************
10611  * ISpeechFileStream interface
10612  */
10613 #ifndef __ISpeechFileStream_INTERFACE_DEFINED__
10614 #define __ISpeechFileStream_INTERFACE_DEFINED__
10615 
10616 DEFINE_GUID(IID_ISpeechFileStream, 0xaf67f125, 0xab39, 0x4e93, 0xb4,0xa2, 0xcc,0x2e,0x66,0xe1,0x82,0xa7);
10617 #if defined(__cplusplus) && !defined(CINTERFACE)
10618 MIDL_INTERFACE("af67f125-ab39-4e93-b4a2-cc2e66e182a7")
10619 ISpeechFileStream : public ISpeechBaseStream
10620 {
10621     virtual HRESULT STDMETHODCALLTYPE Open(
10622         BSTR FileName,
10623         SpeechStreamFileMode FileMode = SSFMOpenForRead,
10624         VARIANT_BOOL DoEvents = 0) = 0;
10625 
10626     virtual HRESULT STDMETHODCALLTYPE Close(
10627         ) = 0;
10628 
10629 };
10630 #ifdef __CRT_UUID_DECL
10631 __CRT_UUID_DECL(ISpeechFileStream, 0xaf67f125, 0xab39, 0x4e93, 0xb4,0xa2, 0xcc,0x2e,0x66,0xe1,0x82,0xa7)
10632 #endif
10633 #else
10634 typedef struct ISpeechFileStreamVtbl {
10635     BEGIN_INTERFACE
10636 
10637     /*** IUnknown methods ***/
10638     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10639         ISpeechFileStream *This,
10640         REFIID riid,
10641         void **ppvObject);
10642 
10643     ULONG (STDMETHODCALLTYPE *AddRef)(
10644         ISpeechFileStream *This);
10645 
10646     ULONG (STDMETHODCALLTYPE *Release)(
10647         ISpeechFileStream *This);
10648 
10649     /*** IDispatch methods ***/
10650     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
10651         ISpeechFileStream *This,
10652         UINT *pctinfo);
10653 
10654     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
10655         ISpeechFileStream *This,
10656         UINT iTInfo,
10657         LCID lcid,
10658         ITypeInfo **ppTInfo);
10659 
10660     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
10661         ISpeechFileStream *This,
10662         REFIID riid,
10663         LPOLESTR *rgszNames,
10664         UINT cNames,
10665         LCID lcid,
10666         DISPID *rgDispId);
10667 
10668     HRESULT (STDMETHODCALLTYPE *Invoke)(
10669         ISpeechFileStream *This,
10670         DISPID dispIdMember,
10671         REFIID riid,
10672         LCID lcid,
10673         WORD wFlags,
10674         DISPPARAMS *pDispParams,
10675         VARIANT *pVarResult,
10676         EXCEPINFO *pExcepInfo,
10677         UINT *puArgErr);
10678 
10679     /*** ISpeechBaseStream methods ***/
10680     HRESULT (STDMETHODCALLTYPE *get_Format)(
10681         ISpeechFileStream *This,
10682         ISpeechAudioFormat **AudioFormat);
10683 
10684     HRESULT (STDMETHODCALLTYPE *putref_Format)(
10685         ISpeechFileStream *This,
10686         ISpeechAudioFormat *AudioFormat);
10687 
10688     HRESULT (STDMETHODCALLTYPE *Read)(
10689         ISpeechFileStream *This,
10690         VARIANT *Buffer,
10691         LONG NumberOfBytes,
10692         LONG *BytesRead);
10693 
10694     HRESULT (STDMETHODCALLTYPE *Write)(
10695         ISpeechFileStream *This,
10696         VARIANT Buffer,
10697         LONG *BytesWritten);
10698 
10699     HRESULT (STDMETHODCALLTYPE *Seek)(
10700         ISpeechFileStream *This,
10701         VARIANT Position,
10702         SpeechStreamSeekPositionType Origin,
10703         VARIANT *NewPosition);
10704 
10705     /*** ISpeechFileStream methods ***/
10706     HRESULT (STDMETHODCALLTYPE *Open)(
10707         ISpeechFileStream *This,
10708         BSTR FileName,
10709         SpeechStreamFileMode FileMode,
10710         VARIANT_BOOL DoEvents);
10711 
10712     HRESULT (STDMETHODCALLTYPE *Close)(
10713         ISpeechFileStream *This);
10714 
10715     END_INTERFACE
10716 } ISpeechFileStreamVtbl;
10717 
10718 interface ISpeechFileStream {
10719     CONST_VTBL ISpeechFileStreamVtbl* lpVtbl;
10720 };
10721 
10722 #ifdef COBJMACROS
10723 #ifndef WIDL_C_INLINE_WRAPPERS
10724 /*** IUnknown methods ***/
10725 #define ISpeechFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10726 #define ISpeechFileStream_AddRef(This) (This)->lpVtbl->AddRef(This)
10727 #define ISpeechFileStream_Release(This) (This)->lpVtbl->Release(This)
10728 /*** IDispatch methods ***/
10729 #define ISpeechFileStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
10730 #define ISpeechFileStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
10731 #define ISpeechFileStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
10732 #define ISpeechFileStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
10733 /*** ISpeechBaseStream methods ***/
10734 #define ISpeechFileStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
10735 #define ISpeechFileStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
10736 #define ISpeechFileStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
10737 #define ISpeechFileStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
10738 #define ISpeechFileStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
10739 /*** ISpeechFileStream methods ***/
10740 #define ISpeechFileStream_Open(This,FileName,FileMode,DoEvents) (This)->lpVtbl->Open(This,FileName,FileMode,DoEvents)
10741 #define ISpeechFileStream_Close(This) (This)->lpVtbl->Close(This)
10742 #else
10743 /*** IUnknown methods ***/
10744 static FORCEINLINE HRESULT ISpeechFileStream_QueryInterface(ISpeechFileStream* This,REFIID riid,void **ppvObject) {
10745     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10746 }
10747 static FORCEINLINE ULONG ISpeechFileStream_AddRef(ISpeechFileStream* This) {
10748     return This->lpVtbl->AddRef(This);
10749 }
10750 static FORCEINLINE ULONG ISpeechFileStream_Release(ISpeechFileStream* This) {
10751     return This->lpVtbl->Release(This);
10752 }
10753 /*** IDispatch methods ***/
10754 static FORCEINLINE HRESULT ISpeechFileStream_GetTypeInfoCount(ISpeechFileStream* This,UINT *pctinfo) {
10755     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
10756 }
10757 static FORCEINLINE HRESULT ISpeechFileStream_GetTypeInfo(ISpeechFileStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
10758     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
10759 }
10760 static FORCEINLINE HRESULT ISpeechFileStream_GetIDsOfNames(ISpeechFileStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
10761     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
10762 }
10763 static FORCEINLINE HRESULT ISpeechFileStream_Invoke(ISpeechFileStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
10764     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
10765 }
10766 /*** ISpeechBaseStream methods ***/
10767 static FORCEINLINE HRESULT ISpeechFileStream_get_Format(ISpeechFileStream* This,ISpeechAudioFormat **AudioFormat) {
10768     return This->lpVtbl->get_Format(This,AudioFormat);
10769 }
10770 static FORCEINLINE HRESULT ISpeechFileStream_putref_Format(ISpeechFileStream* This,ISpeechAudioFormat *AudioFormat) {
10771     return This->lpVtbl->putref_Format(This,AudioFormat);
10772 }
10773 static FORCEINLINE HRESULT ISpeechFileStream_Read(ISpeechFileStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
10774     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
10775 }
10776 static FORCEINLINE HRESULT ISpeechFileStream_Write(ISpeechFileStream* This,VARIANT Buffer,LONG *BytesWritten) {
10777     return This->lpVtbl->Write(This,Buffer,BytesWritten);
10778 }
10779 static FORCEINLINE HRESULT ISpeechFileStream_Seek(ISpeechFileStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
10780     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
10781 }
10782 /*** ISpeechFileStream methods ***/
10783 static FORCEINLINE HRESULT ISpeechFileStream_Open(ISpeechFileStream* This,BSTR FileName,SpeechStreamFileMode FileMode,VARIANT_BOOL DoEvents) {
10784     return This->lpVtbl->Open(This,FileName,FileMode,DoEvents);
10785 }
10786 static FORCEINLINE HRESULT ISpeechFileStream_Close(ISpeechFileStream* This) {
10787     return This->lpVtbl->Close(This);
10788 }
10789 #endif
10790 #endif
10791 
10792 #endif
10793 
10794 
10795 #endif  /* __ISpeechFileStream_INTERFACE_DEFINED__ */
10796 
10797 /*****************************************************************************
10798  * ISpeechCustomStream interface
10799  */
10800 #ifndef __ISpeechCustomStream_INTERFACE_DEFINED__
10801 #define __ISpeechCustomStream_INTERFACE_DEFINED__
10802 
10803 DEFINE_GUID(IID_ISpeechCustomStream, 0x1a9e9f4f, 0x104f, 0x4db8, 0xa1,0x15, 0xef,0xd7,0xfd,0x0c,0x97,0xae);
10804 #if defined(__cplusplus) && !defined(CINTERFACE)
10805 MIDL_INTERFACE("1a9e9f4f-104f-4db8-a115-efd7fd0c97ae")
10806 ISpeechCustomStream : public ISpeechBaseStream
10807 {
10808     virtual HRESULT STDMETHODCALLTYPE get_BaseStream(
10809         IUnknown **ppUnkStream) = 0;
10810 
10811     virtual HRESULT STDMETHODCALLTYPE putref_BaseStream(
10812         IUnknown *pUnkStream) = 0;
10813 
10814 };
10815 #ifdef __CRT_UUID_DECL
10816 __CRT_UUID_DECL(ISpeechCustomStream, 0x1a9e9f4f, 0x104f, 0x4db8, 0xa1,0x15, 0xef,0xd7,0xfd,0x0c,0x97,0xae)
10817 #endif
10818 #else
10819 typedef struct ISpeechCustomStreamVtbl {
10820     BEGIN_INTERFACE
10821 
10822     /*** IUnknown methods ***/
10823     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10824         ISpeechCustomStream *This,
10825         REFIID riid,
10826         void **ppvObject);
10827 
10828     ULONG (STDMETHODCALLTYPE *AddRef)(
10829         ISpeechCustomStream *This);
10830 
10831     ULONG (STDMETHODCALLTYPE *Release)(
10832         ISpeechCustomStream *This);
10833 
10834     /*** IDispatch methods ***/
10835     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
10836         ISpeechCustomStream *This,
10837         UINT *pctinfo);
10838 
10839     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
10840         ISpeechCustomStream *This,
10841         UINT iTInfo,
10842         LCID lcid,
10843         ITypeInfo **ppTInfo);
10844 
10845     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
10846         ISpeechCustomStream *This,
10847         REFIID riid,
10848         LPOLESTR *rgszNames,
10849         UINT cNames,
10850         LCID lcid,
10851         DISPID *rgDispId);
10852 
10853     HRESULT (STDMETHODCALLTYPE *Invoke)(
10854         ISpeechCustomStream *This,
10855         DISPID dispIdMember,
10856         REFIID riid,
10857         LCID lcid,
10858         WORD wFlags,
10859         DISPPARAMS *pDispParams,
10860         VARIANT *pVarResult,
10861         EXCEPINFO *pExcepInfo,
10862         UINT *puArgErr);
10863 
10864     /*** ISpeechBaseStream methods ***/
10865     HRESULT (STDMETHODCALLTYPE *get_Format)(
10866         ISpeechCustomStream *This,
10867         ISpeechAudioFormat **AudioFormat);
10868 
10869     HRESULT (STDMETHODCALLTYPE *putref_Format)(
10870         ISpeechCustomStream *This,
10871         ISpeechAudioFormat *AudioFormat);
10872 
10873     HRESULT (STDMETHODCALLTYPE *Read)(
10874         ISpeechCustomStream *This,
10875         VARIANT *Buffer,
10876         LONG NumberOfBytes,
10877         LONG *BytesRead);
10878 
10879     HRESULT (STDMETHODCALLTYPE *Write)(
10880         ISpeechCustomStream *This,
10881         VARIANT Buffer,
10882         LONG *BytesWritten);
10883 
10884     HRESULT (STDMETHODCALLTYPE *Seek)(
10885         ISpeechCustomStream *This,
10886         VARIANT Position,
10887         SpeechStreamSeekPositionType Origin,
10888         VARIANT *NewPosition);
10889 
10890     /*** ISpeechCustomStream methods ***/
10891     HRESULT (STDMETHODCALLTYPE *get_BaseStream)(
10892         ISpeechCustomStream *This,
10893         IUnknown **ppUnkStream);
10894 
10895     HRESULT (STDMETHODCALLTYPE *putref_BaseStream)(
10896         ISpeechCustomStream *This,
10897         IUnknown *pUnkStream);
10898 
10899     END_INTERFACE
10900 } ISpeechCustomStreamVtbl;
10901 
10902 interface ISpeechCustomStream {
10903     CONST_VTBL ISpeechCustomStreamVtbl* lpVtbl;
10904 };
10905 
10906 #ifdef COBJMACROS
10907 #ifndef WIDL_C_INLINE_WRAPPERS
10908 /*** IUnknown methods ***/
10909 #define ISpeechCustomStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10910 #define ISpeechCustomStream_AddRef(This) (This)->lpVtbl->AddRef(This)
10911 #define ISpeechCustomStream_Release(This) (This)->lpVtbl->Release(This)
10912 /*** IDispatch methods ***/
10913 #define ISpeechCustomStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
10914 #define ISpeechCustomStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
10915 #define ISpeechCustomStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
10916 #define ISpeechCustomStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
10917 /*** ISpeechBaseStream methods ***/
10918 #define ISpeechCustomStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
10919 #define ISpeechCustomStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
10920 #define ISpeechCustomStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
10921 #define ISpeechCustomStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
10922 #define ISpeechCustomStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
10923 /*** ISpeechCustomStream methods ***/
10924 #define ISpeechCustomStream_get_BaseStream(This,ppUnkStream) (This)->lpVtbl->get_BaseStream(This,ppUnkStream)
10925 #define ISpeechCustomStream_putref_BaseStream(This,pUnkStream) (This)->lpVtbl->putref_BaseStream(This,pUnkStream)
10926 #else
10927 /*** IUnknown methods ***/
10928 static FORCEINLINE HRESULT ISpeechCustomStream_QueryInterface(ISpeechCustomStream* This,REFIID riid,void **ppvObject) {
10929     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10930 }
10931 static FORCEINLINE ULONG ISpeechCustomStream_AddRef(ISpeechCustomStream* This) {
10932     return This->lpVtbl->AddRef(This);
10933 }
10934 static FORCEINLINE ULONG ISpeechCustomStream_Release(ISpeechCustomStream* This) {
10935     return This->lpVtbl->Release(This);
10936 }
10937 /*** IDispatch methods ***/
10938 static FORCEINLINE HRESULT ISpeechCustomStream_GetTypeInfoCount(ISpeechCustomStream* This,UINT *pctinfo) {
10939     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
10940 }
10941 static FORCEINLINE HRESULT ISpeechCustomStream_GetTypeInfo(ISpeechCustomStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
10942     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
10943 }
10944 static FORCEINLINE HRESULT ISpeechCustomStream_GetIDsOfNames(ISpeechCustomStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
10945     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
10946 }
10947 static FORCEINLINE HRESULT ISpeechCustomStream_Invoke(ISpeechCustomStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
10948     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
10949 }
10950 /*** ISpeechBaseStream methods ***/
10951 static FORCEINLINE HRESULT ISpeechCustomStream_get_Format(ISpeechCustomStream* This,ISpeechAudioFormat **AudioFormat) {
10952     return This->lpVtbl->get_Format(This,AudioFormat);
10953 }
10954 static FORCEINLINE HRESULT ISpeechCustomStream_putref_Format(ISpeechCustomStream* This,ISpeechAudioFormat *AudioFormat) {
10955     return This->lpVtbl->putref_Format(This,AudioFormat);
10956 }
10957 static FORCEINLINE HRESULT ISpeechCustomStream_Read(ISpeechCustomStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
10958     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
10959 }
10960 static FORCEINLINE HRESULT ISpeechCustomStream_Write(ISpeechCustomStream* This,VARIANT Buffer,LONG *BytesWritten) {
10961     return This->lpVtbl->Write(This,Buffer,BytesWritten);
10962 }
10963 static FORCEINLINE HRESULT ISpeechCustomStream_Seek(ISpeechCustomStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
10964     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
10965 }
10966 /*** ISpeechCustomStream methods ***/
10967 static FORCEINLINE HRESULT ISpeechCustomStream_get_BaseStream(ISpeechCustomStream* This,IUnknown **ppUnkStream) {
10968     return This->lpVtbl->get_BaseStream(This,ppUnkStream);
10969 }
10970 static FORCEINLINE HRESULT ISpeechCustomStream_putref_BaseStream(ISpeechCustomStream* This,IUnknown *pUnkStream) {
10971     return This->lpVtbl->putref_BaseStream(This,pUnkStream);
10972 }
10973 #endif
10974 #endif
10975 
10976 #endif
10977 
10978 
10979 #endif  /* __ISpeechCustomStream_INTERFACE_DEFINED__ */
10980 
10981 /*****************************************************************************
10982  * ISpeechMemoryStream interface
10983  */
10984 #ifndef __ISpeechMemoryStream_INTERFACE_DEFINED__
10985 #define __ISpeechMemoryStream_INTERFACE_DEFINED__
10986 
10987 DEFINE_GUID(IID_ISpeechMemoryStream, 0xeeb14b68, 0x808b, 0x4abe, 0xa5,0xea, 0xb5,0x1d,0xa7,0x58,0x80,0x08);
10988 #if defined(__cplusplus) && !defined(CINTERFACE)
10989 MIDL_INTERFACE("eeb14b68-808b-4abe-a5ea-b51da7588008")
10990 ISpeechMemoryStream : public ISpeechBaseStream
10991 {
10992     virtual HRESULT STDMETHODCALLTYPE SetData(
10993         VARIANT Data) = 0;
10994 
10995     virtual HRESULT STDMETHODCALLTYPE GetData(
10996         VARIANT *pData) = 0;
10997 
10998 };
10999 #ifdef __CRT_UUID_DECL
11000 __CRT_UUID_DECL(ISpeechMemoryStream, 0xeeb14b68, 0x808b, 0x4abe, 0xa5,0xea, 0xb5,0x1d,0xa7,0x58,0x80,0x08)
11001 #endif
11002 #else
11003 typedef struct ISpeechMemoryStreamVtbl {
11004     BEGIN_INTERFACE
11005 
11006     /*** IUnknown methods ***/
11007     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11008         ISpeechMemoryStream *This,
11009         REFIID riid,
11010         void **ppvObject);
11011 
11012     ULONG (STDMETHODCALLTYPE *AddRef)(
11013         ISpeechMemoryStream *This);
11014 
11015     ULONG (STDMETHODCALLTYPE *Release)(
11016         ISpeechMemoryStream *This);
11017 
11018     /*** IDispatch methods ***/
11019     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
11020         ISpeechMemoryStream *This,
11021         UINT *pctinfo);
11022 
11023     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
11024         ISpeechMemoryStream *This,
11025         UINT iTInfo,
11026         LCID lcid,
11027         ITypeInfo **ppTInfo);
11028 
11029     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
11030         ISpeechMemoryStream *This,
11031         REFIID riid,
11032         LPOLESTR *rgszNames,
11033         UINT cNames,
11034         LCID lcid,
11035         DISPID *rgDispId);
11036 
11037     HRESULT (STDMETHODCALLTYPE *Invoke)(
11038         ISpeechMemoryStream *This,
11039         DISPID dispIdMember,
11040         REFIID riid,
11041         LCID lcid,
11042         WORD wFlags,
11043         DISPPARAMS *pDispParams,
11044         VARIANT *pVarResult,
11045         EXCEPINFO *pExcepInfo,
11046         UINT *puArgErr);
11047 
11048     /*** ISpeechBaseStream methods ***/
11049     HRESULT (STDMETHODCALLTYPE *get_Format)(
11050         ISpeechMemoryStream *This,
11051         ISpeechAudioFormat **AudioFormat);
11052 
11053     HRESULT (STDMETHODCALLTYPE *putref_Format)(
11054         ISpeechMemoryStream *This,
11055         ISpeechAudioFormat *AudioFormat);
11056 
11057     HRESULT (STDMETHODCALLTYPE *Read)(
11058         ISpeechMemoryStream *This,
11059         VARIANT *Buffer,
11060         LONG NumberOfBytes,
11061         LONG *BytesRead);
11062 
11063     HRESULT (STDMETHODCALLTYPE *Write)(
11064         ISpeechMemoryStream *This,
11065         VARIANT Buffer,
11066         LONG *BytesWritten);
11067 
11068     HRESULT (STDMETHODCALLTYPE *Seek)(
11069         ISpeechMemoryStream *This,
11070         VARIANT Position,
11071         SpeechStreamSeekPositionType Origin,
11072         VARIANT *NewPosition);
11073 
11074     /*** ISpeechMemoryStream methods ***/
11075     HRESULT (STDMETHODCALLTYPE *SetData)(
11076         ISpeechMemoryStream *This,
11077         VARIANT Data);
11078 
11079     HRESULT (STDMETHODCALLTYPE *GetData)(
11080         ISpeechMemoryStream *This,
11081         VARIANT *pData);
11082 
11083     END_INTERFACE
11084 } ISpeechMemoryStreamVtbl;
11085 
11086 interface ISpeechMemoryStream {
11087     CONST_VTBL ISpeechMemoryStreamVtbl* lpVtbl;
11088 };
11089 
11090 #ifdef COBJMACROS
11091 #ifndef WIDL_C_INLINE_WRAPPERS
11092 /*** IUnknown methods ***/
11093 #define ISpeechMemoryStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11094 #define ISpeechMemoryStream_AddRef(This) (This)->lpVtbl->AddRef(This)
11095 #define ISpeechMemoryStream_Release(This) (This)->lpVtbl->Release(This)
11096 /*** IDispatch methods ***/
11097 #define ISpeechMemoryStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
11098 #define ISpeechMemoryStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
11099 #define ISpeechMemoryStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
11100 #define ISpeechMemoryStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
11101 /*** ISpeechBaseStream methods ***/
11102 #define ISpeechMemoryStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
11103 #define ISpeechMemoryStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
11104 #define ISpeechMemoryStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
11105 #define ISpeechMemoryStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
11106 #define ISpeechMemoryStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
11107 /*** ISpeechMemoryStream methods ***/
11108 #define ISpeechMemoryStream_SetData(This,Data) (This)->lpVtbl->SetData(This,Data)
11109 #define ISpeechMemoryStream_GetData(This,pData) (This)->lpVtbl->GetData(This,pData)
11110 #else
11111 /*** IUnknown methods ***/
11112 static FORCEINLINE HRESULT ISpeechMemoryStream_QueryInterface(ISpeechMemoryStream* This,REFIID riid,void **ppvObject) {
11113     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11114 }
11115 static FORCEINLINE ULONG ISpeechMemoryStream_AddRef(ISpeechMemoryStream* This) {
11116     return This->lpVtbl->AddRef(This);
11117 }
11118 static FORCEINLINE ULONG ISpeechMemoryStream_Release(ISpeechMemoryStream* This) {
11119     return This->lpVtbl->Release(This);
11120 }
11121 /*** IDispatch methods ***/
11122 static FORCEINLINE HRESULT ISpeechMemoryStream_GetTypeInfoCount(ISpeechMemoryStream* This,UINT *pctinfo) {
11123     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
11124 }
11125 static FORCEINLINE HRESULT ISpeechMemoryStream_GetTypeInfo(ISpeechMemoryStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
11126     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
11127 }
11128 static FORCEINLINE HRESULT ISpeechMemoryStream_GetIDsOfNames(ISpeechMemoryStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
11129     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
11130 }
11131 static FORCEINLINE HRESULT ISpeechMemoryStream_Invoke(ISpeechMemoryStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
11132     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
11133 }
11134 /*** ISpeechBaseStream methods ***/
11135 static FORCEINLINE HRESULT ISpeechMemoryStream_get_Format(ISpeechMemoryStream* This,ISpeechAudioFormat **AudioFormat) {
11136     return This->lpVtbl->get_Format(This,AudioFormat);
11137 }
11138 static FORCEINLINE HRESULT ISpeechMemoryStream_putref_Format(ISpeechMemoryStream* This,ISpeechAudioFormat *AudioFormat) {
11139     return This->lpVtbl->putref_Format(This,AudioFormat);
11140 }
11141 static FORCEINLINE HRESULT ISpeechMemoryStream_Read(ISpeechMemoryStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
11142     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
11143 }
11144 static FORCEINLINE HRESULT ISpeechMemoryStream_Write(ISpeechMemoryStream* This,VARIANT Buffer,LONG *BytesWritten) {
11145     return This->lpVtbl->Write(This,Buffer,BytesWritten);
11146 }
11147 static FORCEINLINE HRESULT ISpeechMemoryStream_Seek(ISpeechMemoryStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
11148     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
11149 }
11150 /*** ISpeechMemoryStream methods ***/
11151 static FORCEINLINE HRESULT ISpeechMemoryStream_SetData(ISpeechMemoryStream* This,VARIANT Data) {
11152     return This->lpVtbl->SetData(This,Data);
11153 }
11154 static FORCEINLINE HRESULT ISpeechMemoryStream_GetData(ISpeechMemoryStream* This,VARIANT *pData) {
11155     return This->lpVtbl->GetData(This,pData);
11156 }
11157 #endif
11158 #endif
11159 
11160 #endif
11161 
11162 
11163 #endif  /* __ISpeechMemoryStream_INTERFACE_DEFINED__ */
11164 
11165 /*****************************************************************************
11166  * ISpeechAudioStatus interface
11167  */
11168 #ifndef __ISpeechAudioStatus_INTERFACE_DEFINED__
11169 #define __ISpeechAudioStatus_INTERFACE_DEFINED__
11170 
11171 DEFINE_GUID(IID_ISpeechAudioStatus, 0xc62d9c91, 0x7458, 0x47f6, 0x86,0x2d, 0x1e,0xf8,0x6f,0xb0,0xb2,0x78);
11172 #if defined(__cplusplus) && !defined(CINTERFACE)
11173 MIDL_INTERFACE("c62d9c91-7458-47f6-862d-1ef86fb0b278")
11174 ISpeechAudioStatus : public IDispatch
11175 {
11176     virtual HRESULT STDMETHODCALLTYPE get_FreeBufferSpace(
11177         LONG *FreeBufferSpace) = 0;
11178 
11179     virtual HRESULT STDMETHODCALLTYPE get_NonBlockingIO(
11180         LONG *NonBlockingIO) = 0;
11181 
11182     virtual HRESULT STDMETHODCALLTYPE get_State(
11183         SpeechAudioState *State) = 0;
11184 
11185     virtual HRESULT STDMETHODCALLTYPE get_CurrentSeekPosition(
11186         VARIANT *CurrentSeekPosition) = 0;
11187 
11188     virtual HRESULT STDMETHODCALLTYPE get_CurrentDevicePosition(
11189         VARIANT *CurrentDevicePosition) = 0;
11190 
11191 };
11192 #ifdef __CRT_UUID_DECL
11193 __CRT_UUID_DECL(ISpeechAudioStatus, 0xc62d9c91, 0x7458, 0x47f6, 0x86,0x2d, 0x1e,0xf8,0x6f,0xb0,0xb2,0x78)
11194 #endif
11195 #else
11196 typedef struct ISpeechAudioStatusVtbl {
11197     BEGIN_INTERFACE
11198 
11199     /*** IUnknown methods ***/
11200     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11201         ISpeechAudioStatus *This,
11202         REFIID riid,
11203         void **ppvObject);
11204 
11205     ULONG (STDMETHODCALLTYPE *AddRef)(
11206         ISpeechAudioStatus *This);
11207 
11208     ULONG (STDMETHODCALLTYPE *Release)(
11209         ISpeechAudioStatus *This);
11210 
11211     /*** IDispatch methods ***/
11212     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
11213         ISpeechAudioStatus *This,
11214         UINT *pctinfo);
11215 
11216     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
11217         ISpeechAudioStatus *This,
11218         UINT iTInfo,
11219         LCID lcid,
11220         ITypeInfo **ppTInfo);
11221 
11222     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
11223         ISpeechAudioStatus *This,
11224         REFIID riid,
11225         LPOLESTR *rgszNames,
11226         UINT cNames,
11227         LCID lcid,
11228         DISPID *rgDispId);
11229 
11230     HRESULT (STDMETHODCALLTYPE *Invoke)(
11231         ISpeechAudioStatus *This,
11232         DISPID dispIdMember,
11233         REFIID riid,
11234         LCID lcid,
11235         WORD wFlags,
11236         DISPPARAMS *pDispParams,
11237         VARIANT *pVarResult,
11238         EXCEPINFO *pExcepInfo,
11239         UINT *puArgErr);
11240 
11241     /*** ISpeechAudioStatus methods ***/
11242     HRESULT (STDMETHODCALLTYPE *get_FreeBufferSpace)(
11243         ISpeechAudioStatus *This,
11244         LONG *FreeBufferSpace);
11245 
11246     HRESULT (STDMETHODCALLTYPE *get_NonBlockingIO)(
11247         ISpeechAudioStatus *This,
11248         LONG *NonBlockingIO);
11249 
11250     HRESULT (STDMETHODCALLTYPE *get_State)(
11251         ISpeechAudioStatus *This,
11252         SpeechAudioState *State);
11253 
11254     HRESULT (STDMETHODCALLTYPE *get_CurrentSeekPosition)(
11255         ISpeechAudioStatus *This,
11256         VARIANT *CurrentSeekPosition);
11257 
11258     HRESULT (STDMETHODCALLTYPE *get_CurrentDevicePosition)(
11259         ISpeechAudioStatus *This,
11260         VARIANT *CurrentDevicePosition);
11261 
11262     END_INTERFACE
11263 } ISpeechAudioStatusVtbl;
11264 
11265 interface ISpeechAudioStatus {
11266     CONST_VTBL ISpeechAudioStatusVtbl* lpVtbl;
11267 };
11268 
11269 #ifdef COBJMACROS
11270 #ifndef WIDL_C_INLINE_WRAPPERS
11271 /*** IUnknown methods ***/
11272 #define ISpeechAudioStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11273 #define ISpeechAudioStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
11274 #define ISpeechAudioStatus_Release(This) (This)->lpVtbl->Release(This)
11275 /*** IDispatch methods ***/
11276 #define ISpeechAudioStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
11277 #define ISpeechAudioStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
11278 #define ISpeechAudioStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
11279 #define ISpeechAudioStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
11280 /*** ISpeechAudioStatus methods ***/
11281 #define ISpeechAudioStatus_get_FreeBufferSpace(This,FreeBufferSpace) (This)->lpVtbl->get_FreeBufferSpace(This,FreeBufferSpace)
11282 #define ISpeechAudioStatus_get_NonBlockingIO(This,NonBlockingIO) (This)->lpVtbl->get_NonBlockingIO(This,NonBlockingIO)
11283 #define ISpeechAudioStatus_get_State(This,State) (This)->lpVtbl->get_State(This,State)
11284 #define ISpeechAudioStatus_get_CurrentSeekPosition(This,CurrentSeekPosition) (This)->lpVtbl->get_CurrentSeekPosition(This,CurrentSeekPosition)
11285 #define ISpeechAudioStatus_get_CurrentDevicePosition(This,CurrentDevicePosition) (This)->lpVtbl->get_CurrentDevicePosition(This,CurrentDevicePosition)
11286 #else
11287 /*** IUnknown methods ***/
11288 static FORCEINLINE HRESULT ISpeechAudioStatus_QueryInterface(ISpeechAudioStatus* This,REFIID riid,void **ppvObject) {
11289     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11290 }
11291 static FORCEINLINE ULONG ISpeechAudioStatus_AddRef(ISpeechAudioStatus* This) {
11292     return This->lpVtbl->AddRef(This);
11293 }
11294 static FORCEINLINE ULONG ISpeechAudioStatus_Release(ISpeechAudioStatus* This) {
11295     return This->lpVtbl->Release(This);
11296 }
11297 /*** IDispatch methods ***/
11298 static FORCEINLINE HRESULT ISpeechAudioStatus_GetTypeInfoCount(ISpeechAudioStatus* This,UINT *pctinfo) {
11299     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
11300 }
11301 static FORCEINLINE HRESULT ISpeechAudioStatus_GetTypeInfo(ISpeechAudioStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
11302     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
11303 }
11304 static FORCEINLINE HRESULT ISpeechAudioStatus_GetIDsOfNames(ISpeechAudioStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
11305     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
11306 }
11307 static FORCEINLINE HRESULT ISpeechAudioStatus_Invoke(ISpeechAudioStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
11308     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
11309 }
11310 /*** ISpeechAudioStatus methods ***/
11311 static FORCEINLINE HRESULT ISpeechAudioStatus_get_FreeBufferSpace(ISpeechAudioStatus* This,LONG *FreeBufferSpace) {
11312     return This->lpVtbl->get_FreeBufferSpace(This,FreeBufferSpace);
11313 }
11314 static FORCEINLINE HRESULT ISpeechAudioStatus_get_NonBlockingIO(ISpeechAudioStatus* This,LONG *NonBlockingIO) {
11315     return This->lpVtbl->get_NonBlockingIO(This,NonBlockingIO);
11316 }
11317 static FORCEINLINE HRESULT ISpeechAudioStatus_get_State(ISpeechAudioStatus* This,SpeechAudioState *State) {
11318     return This->lpVtbl->get_State(This,State);
11319 }
11320 static FORCEINLINE HRESULT ISpeechAudioStatus_get_CurrentSeekPosition(ISpeechAudioStatus* This,VARIANT *CurrentSeekPosition) {
11321     return This->lpVtbl->get_CurrentSeekPosition(This,CurrentSeekPosition);
11322 }
11323 static FORCEINLINE HRESULT ISpeechAudioStatus_get_CurrentDevicePosition(ISpeechAudioStatus* This,VARIANT *CurrentDevicePosition) {
11324     return This->lpVtbl->get_CurrentDevicePosition(This,CurrentDevicePosition);
11325 }
11326 #endif
11327 #endif
11328 
11329 #endif
11330 
11331 
11332 #endif  /* __ISpeechAudioStatus_INTERFACE_DEFINED__ */
11333 
11334 /*****************************************************************************
11335  * ISpeechAudioBufferInfo interface
11336  */
11337 #ifndef __ISpeechAudioBufferInfo_INTERFACE_DEFINED__
11338 #define __ISpeechAudioBufferInfo_INTERFACE_DEFINED__
11339 
11340 DEFINE_GUID(IID_ISpeechAudioBufferInfo, 0x11b103d8, 0x1142, 0x4edf, 0xa0,0x93, 0x82,0xfb,0x39,0x15,0xf8,0xcc);
11341 #if defined(__cplusplus) && !defined(CINTERFACE)
11342 MIDL_INTERFACE("11b103d8-1142-4edf-a093-82fb3915f8cc")
11343 ISpeechAudioBufferInfo : public IDispatch
11344 {
11345     virtual HRESULT STDMETHODCALLTYPE get_MinNotification(
11346         LONG *MinNotification) = 0;
11347 
11348     virtual HRESULT STDMETHODCALLTYPE put_MinNotification(
11349         LONG MinNotification) = 0;
11350 
11351     virtual HRESULT STDMETHODCALLTYPE get_BufferSize(
11352         LONG *BufferSize) = 0;
11353 
11354     virtual HRESULT STDMETHODCALLTYPE put_BufferSize(
11355         LONG BufferSize) = 0;
11356 
11357     virtual HRESULT STDMETHODCALLTYPE get_EventBias(
11358         LONG *EventBias) = 0;
11359 
11360     virtual HRESULT STDMETHODCALLTYPE put_EventBias(
11361         LONG EventBias) = 0;
11362 
11363 };
11364 #ifdef __CRT_UUID_DECL
11365 __CRT_UUID_DECL(ISpeechAudioBufferInfo, 0x11b103d8, 0x1142, 0x4edf, 0xa0,0x93, 0x82,0xfb,0x39,0x15,0xf8,0xcc)
11366 #endif
11367 #else
11368 typedef struct ISpeechAudioBufferInfoVtbl {
11369     BEGIN_INTERFACE
11370 
11371     /*** IUnknown methods ***/
11372     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11373         ISpeechAudioBufferInfo *This,
11374         REFIID riid,
11375         void **ppvObject);
11376 
11377     ULONG (STDMETHODCALLTYPE *AddRef)(
11378         ISpeechAudioBufferInfo *This);
11379 
11380     ULONG (STDMETHODCALLTYPE *Release)(
11381         ISpeechAudioBufferInfo *This);
11382 
11383     /*** IDispatch methods ***/
11384     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
11385         ISpeechAudioBufferInfo *This,
11386         UINT *pctinfo);
11387 
11388     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
11389         ISpeechAudioBufferInfo *This,
11390         UINT iTInfo,
11391         LCID lcid,
11392         ITypeInfo **ppTInfo);
11393 
11394     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
11395         ISpeechAudioBufferInfo *This,
11396         REFIID riid,
11397         LPOLESTR *rgszNames,
11398         UINT cNames,
11399         LCID lcid,
11400         DISPID *rgDispId);
11401 
11402     HRESULT (STDMETHODCALLTYPE *Invoke)(
11403         ISpeechAudioBufferInfo *This,
11404         DISPID dispIdMember,
11405         REFIID riid,
11406         LCID lcid,
11407         WORD wFlags,
11408         DISPPARAMS *pDispParams,
11409         VARIANT *pVarResult,
11410         EXCEPINFO *pExcepInfo,
11411         UINT *puArgErr);
11412 
11413     /*** ISpeechAudioBufferInfo methods ***/
11414     HRESULT (STDMETHODCALLTYPE *get_MinNotification)(
11415         ISpeechAudioBufferInfo *This,
11416         LONG *MinNotification);
11417 
11418     HRESULT (STDMETHODCALLTYPE *put_MinNotification)(
11419         ISpeechAudioBufferInfo *This,
11420         LONG MinNotification);
11421 
11422     HRESULT (STDMETHODCALLTYPE *get_BufferSize)(
11423         ISpeechAudioBufferInfo *This,
11424         LONG *BufferSize);
11425 
11426     HRESULT (STDMETHODCALLTYPE *put_BufferSize)(
11427         ISpeechAudioBufferInfo *This,
11428         LONG BufferSize);
11429 
11430     HRESULT (STDMETHODCALLTYPE *get_EventBias)(
11431         ISpeechAudioBufferInfo *This,
11432         LONG *EventBias);
11433 
11434     HRESULT (STDMETHODCALLTYPE *put_EventBias)(
11435         ISpeechAudioBufferInfo *This,
11436         LONG EventBias);
11437 
11438     END_INTERFACE
11439 } ISpeechAudioBufferInfoVtbl;
11440 
11441 interface ISpeechAudioBufferInfo {
11442     CONST_VTBL ISpeechAudioBufferInfoVtbl* lpVtbl;
11443 };
11444 
11445 #ifdef COBJMACROS
11446 #ifndef WIDL_C_INLINE_WRAPPERS
11447 /*** IUnknown methods ***/
11448 #define ISpeechAudioBufferInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11449 #define ISpeechAudioBufferInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
11450 #define ISpeechAudioBufferInfo_Release(This) (This)->lpVtbl->Release(This)
11451 /*** IDispatch methods ***/
11452 #define ISpeechAudioBufferInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
11453 #define ISpeechAudioBufferInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
11454 #define ISpeechAudioBufferInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
11455 #define ISpeechAudioBufferInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
11456 /*** ISpeechAudioBufferInfo methods ***/
11457 #define ISpeechAudioBufferInfo_get_MinNotification(This,MinNotification) (This)->lpVtbl->get_MinNotification(This,MinNotification)
11458 #define ISpeechAudioBufferInfo_put_MinNotification(This,MinNotification) (This)->lpVtbl->put_MinNotification(This,MinNotification)
11459 #define ISpeechAudioBufferInfo_get_BufferSize(This,BufferSize) (This)->lpVtbl->get_BufferSize(This,BufferSize)
11460 #define ISpeechAudioBufferInfo_put_BufferSize(This,BufferSize) (This)->lpVtbl->put_BufferSize(This,BufferSize)
11461 #define ISpeechAudioBufferInfo_get_EventBias(This,EventBias) (This)->lpVtbl->get_EventBias(This,EventBias)
11462 #define ISpeechAudioBufferInfo_put_EventBias(This,EventBias) (This)->lpVtbl->put_EventBias(This,EventBias)
11463 #else
11464 /*** IUnknown methods ***/
11465 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_QueryInterface(ISpeechAudioBufferInfo* This,REFIID riid,void **ppvObject) {
11466     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11467 }
11468 static FORCEINLINE ULONG ISpeechAudioBufferInfo_AddRef(ISpeechAudioBufferInfo* This) {
11469     return This->lpVtbl->AddRef(This);
11470 }
11471 static FORCEINLINE ULONG ISpeechAudioBufferInfo_Release(ISpeechAudioBufferInfo* This) {
11472     return This->lpVtbl->Release(This);
11473 }
11474 /*** IDispatch methods ***/
11475 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_GetTypeInfoCount(ISpeechAudioBufferInfo* This,UINT *pctinfo) {
11476     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
11477 }
11478 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_GetTypeInfo(ISpeechAudioBufferInfo* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
11479     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
11480 }
11481 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_GetIDsOfNames(ISpeechAudioBufferInfo* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
11482     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
11483 }
11484 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_Invoke(ISpeechAudioBufferInfo* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
11485     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
11486 }
11487 /*** ISpeechAudioBufferInfo methods ***/
11488 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_get_MinNotification(ISpeechAudioBufferInfo* This,LONG *MinNotification) {
11489     return This->lpVtbl->get_MinNotification(This,MinNotification);
11490 }
11491 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_put_MinNotification(ISpeechAudioBufferInfo* This,LONG MinNotification) {
11492     return This->lpVtbl->put_MinNotification(This,MinNotification);
11493 }
11494 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_get_BufferSize(ISpeechAudioBufferInfo* This,LONG *BufferSize) {
11495     return This->lpVtbl->get_BufferSize(This,BufferSize);
11496 }
11497 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_put_BufferSize(ISpeechAudioBufferInfo* This,LONG BufferSize) {
11498     return This->lpVtbl->put_BufferSize(This,BufferSize);
11499 }
11500 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_get_EventBias(ISpeechAudioBufferInfo* This,LONG *EventBias) {
11501     return This->lpVtbl->get_EventBias(This,EventBias);
11502 }
11503 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_put_EventBias(ISpeechAudioBufferInfo* This,LONG EventBias) {
11504     return This->lpVtbl->put_EventBias(This,EventBias);
11505 }
11506 #endif
11507 #endif
11508 
11509 #endif
11510 
11511 
11512 #endif  /* __ISpeechAudioBufferInfo_INTERFACE_DEFINED__ */
11513 
11514 /*****************************************************************************
11515  * ISpeechWaveFormatEx interface
11516  */
11517 #ifndef __ISpeechWaveFormatEx_INTERFACE_DEFINED__
11518 #define __ISpeechWaveFormatEx_INTERFACE_DEFINED__
11519 
11520 DEFINE_GUID(IID_ISpeechWaveFormatEx, 0x7a1ef0d5, 0x1581, 0x4741, 0x88,0xe4, 0x20,0x9a,0x49,0xf1,0x1a,0x10);
11521 #if defined(__cplusplus) && !defined(CINTERFACE)
11522 MIDL_INTERFACE("7a1ef0d5-1581-4741-88e4-209a49f11a10")
11523 ISpeechWaveFormatEx : public IDispatch
11524 {
11525     virtual HRESULT STDMETHODCALLTYPE get_FormatTag(
11526         short *FormatTag) = 0;
11527 
11528     virtual HRESULT STDMETHODCALLTYPE put_FormatTag(
11529         short FormatTag) = 0;
11530 
11531     virtual HRESULT STDMETHODCALLTYPE get_Channels(
11532         short *Channels) = 0;
11533 
11534     virtual HRESULT STDMETHODCALLTYPE put_Channels(
11535         short Channels) = 0;
11536 
11537     virtual HRESULT STDMETHODCALLTYPE get_SamplesPerSec(
11538         LONG *SamplesPerSec) = 0;
11539 
11540     virtual HRESULT STDMETHODCALLTYPE put_SamplesPerSec(
11541         LONG SamplesPerSec) = 0;
11542 
11543     virtual HRESULT STDMETHODCALLTYPE get_AvgBytesPerSec(
11544         LONG *AvgBytesPerSec) = 0;
11545 
11546     virtual HRESULT STDMETHODCALLTYPE put_AvgBytesPerSec(
11547         LONG AvgBytesPerSec) = 0;
11548 
11549     virtual HRESULT STDMETHODCALLTYPE get_BlockAlign(
11550         short *BlockAlign) = 0;
11551 
11552     virtual HRESULT STDMETHODCALLTYPE put_BlockAlign(
11553         short BlockAlign) = 0;
11554 
11555     virtual HRESULT STDMETHODCALLTYPE get_BitsPerSample(
11556         short *BitsPerSample) = 0;
11557 
11558     virtual HRESULT STDMETHODCALLTYPE put_BitsPerSample(
11559         short BitsPerSample) = 0;
11560 
11561     virtual HRESULT STDMETHODCALLTYPE get_ExtraData(
11562         VARIANT *ExtraData) = 0;
11563 
11564     virtual HRESULT STDMETHODCALLTYPE put_ExtraData(
11565         VARIANT ExtraData) = 0;
11566 
11567 };
11568 #ifdef __CRT_UUID_DECL
11569 __CRT_UUID_DECL(ISpeechWaveFormatEx, 0x7a1ef0d5, 0x1581, 0x4741, 0x88,0xe4, 0x20,0x9a,0x49,0xf1,0x1a,0x10)
11570 #endif
11571 #else
11572 typedef struct ISpeechWaveFormatExVtbl {
11573     BEGIN_INTERFACE
11574 
11575     /*** IUnknown methods ***/
11576     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11577         ISpeechWaveFormatEx *This,
11578         REFIID riid,
11579         void **ppvObject);
11580 
11581     ULONG (STDMETHODCALLTYPE *AddRef)(
11582         ISpeechWaveFormatEx *This);
11583 
11584     ULONG (STDMETHODCALLTYPE *Release)(
11585         ISpeechWaveFormatEx *This);
11586 
11587     /*** IDispatch methods ***/
11588     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
11589         ISpeechWaveFormatEx *This,
11590         UINT *pctinfo);
11591 
11592     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
11593         ISpeechWaveFormatEx *This,
11594         UINT iTInfo,
11595         LCID lcid,
11596         ITypeInfo **ppTInfo);
11597 
11598     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
11599         ISpeechWaveFormatEx *This,
11600         REFIID riid,
11601         LPOLESTR *rgszNames,
11602         UINT cNames,
11603         LCID lcid,
11604         DISPID *rgDispId);
11605 
11606     HRESULT (STDMETHODCALLTYPE *Invoke)(
11607         ISpeechWaveFormatEx *This,
11608         DISPID dispIdMember,
11609         REFIID riid,
11610         LCID lcid,
11611         WORD wFlags,
11612         DISPPARAMS *pDispParams,
11613         VARIANT *pVarResult,
11614         EXCEPINFO *pExcepInfo,
11615         UINT *puArgErr);
11616 
11617     /*** ISpeechWaveFormatEx methods ***/
11618     HRESULT (STDMETHODCALLTYPE *get_FormatTag)(
11619         ISpeechWaveFormatEx *This,
11620         short *FormatTag);
11621 
11622     HRESULT (STDMETHODCALLTYPE *put_FormatTag)(
11623         ISpeechWaveFormatEx *This,
11624         short FormatTag);
11625 
11626     HRESULT (STDMETHODCALLTYPE *get_Channels)(
11627         ISpeechWaveFormatEx *This,
11628         short *Channels);
11629 
11630     HRESULT (STDMETHODCALLTYPE *put_Channels)(
11631         ISpeechWaveFormatEx *This,
11632         short Channels);
11633 
11634     HRESULT (STDMETHODCALLTYPE *get_SamplesPerSec)(
11635         ISpeechWaveFormatEx *This,
11636         LONG *SamplesPerSec);
11637 
11638     HRESULT (STDMETHODCALLTYPE *put_SamplesPerSec)(
11639         ISpeechWaveFormatEx *This,
11640         LONG SamplesPerSec);
11641 
11642     HRESULT (STDMETHODCALLTYPE *get_AvgBytesPerSec)(
11643         ISpeechWaveFormatEx *This,
11644         LONG *AvgBytesPerSec);
11645 
11646     HRESULT (STDMETHODCALLTYPE *put_AvgBytesPerSec)(
11647         ISpeechWaveFormatEx *This,
11648         LONG AvgBytesPerSec);
11649 
11650     HRESULT (STDMETHODCALLTYPE *get_BlockAlign)(
11651         ISpeechWaveFormatEx *This,
11652         short *BlockAlign);
11653 
11654     HRESULT (STDMETHODCALLTYPE *put_BlockAlign)(
11655         ISpeechWaveFormatEx *This,
11656         short BlockAlign);
11657 
11658     HRESULT (STDMETHODCALLTYPE *get_BitsPerSample)(
11659         ISpeechWaveFormatEx *This,
11660         short *BitsPerSample);
11661 
11662     HRESULT (STDMETHODCALLTYPE *put_BitsPerSample)(
11663         ISpeechWaveFormatEx *This,
11664         short BitsPerSample);
11665 
11666     HRESULT (STDMETHODCALLTYPE *get_ExtraData)(
11667         ISpeechWaveFormatEx *This,
11668         VARIANT *ExtraData);
11669 
11670     HRESULT (STDMETHODCALLTYPE *put_ExtraData)(
11671         ISpeechWaveFormatEx *This,
11672         VARIANT ExtraData);
11673 
11674     END_INTERFACE
11675 } ISpeechWaveFormatExVtbl;
11676 
11677 interface ISpeechWaveFormatEx {
11678     CONST_VTBL ISpeechWaveFormatExVtbl* lpVtbl;
11679 };
11680 
11681 #ifdef COBJMACROS
11682 #ifndef WIDL_C_INLINE_WRAPPERS
11683 /*** IUnknown methods ***/
11684 #define ISpeechWaveFormatEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11685 #define ISpeechWaveFormatEx_AddRef(This) (This)->lpVtbl->AddRef(This)
11686 #define ISpeechWaveFormatEx_Release(This) (This)->lpVtbl->Release(This)
11687 /*** IDispatch methods ***/
11688 #define ISpeechWaveFormatEx_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
11689 #define ISpeechWaveFormatEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
11690 #define ISpeechWaveFormatEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
11691 #define ISpeechWaveFormatEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
11692 /*** ISpeechWaveFormatEx methods ***/
11693 #define ISpeechWaveFormatEx_get_FormatTag(This,FormatTag) (This)->lpVtbl->get_FormatTag(This,FormatTag)
11694 #define ISpeechWaveFormatEx_put_FormatTag(This,FormatTag) (This)->lpVtbl->put_FormatTag(This,FormatTag)
11695 #define ISpeechWaveFormatEx_get_Channels(This,Channels) (This)->lpVtbl->get_Channels(This,Channels)
11696 #define ISpeechWaveFormatEx_put_Channels(This,Channels) (This)->lpVtbl->put_Channels(This,Channels)
11697 #define ISpeechWaveFormatEx_get_SamplesPerSec(This,SamplesPerSec) (This)->lpVtbl->get_SamplesPerSec(This,SamplesPerSec)
11698 #define ISpeechWaveFormatEx_put_SamplesPerSec(This,SamplesPerSec) (This)->lpVtbl->put_SamplesPerSec(This,SamplesPerSec)
11699 #define ISpeechWaveFormatEx_get_AvgBytesPerSec(This,AvgBytesPerSec) (This)->lpVtbl->get_AvgBytesPerSec(This,AvgBytesPerSec)
11700 #define ISpeechWaveFormatEx_put_AvgBytesPerSec(This,AvgBytesPerSec) (This)->lpVtbl->put_AvgBytesPerSec(This,AvgBytesPerSec)
11701 #define ISpeechWaveFormatEx_get_BlockAlign(This,BlockAlign) (This)->lpVtbl->get_BlockAlign(This,BlockAlign)
11702 #define ISpeechWaveFormatEx_put_BlockAlign(This,BlockAlign) (This)->lpVtbl->put_BlockAlign(This,BlockAlign)
11703 #define ISpeechWaveFormatEx_get_BitsPerSample(This,BitsPerSample) (This)->lpVtbl->get_BitsPerSample(This,BitsPerSample)
11704 #define ISpeechWaveFormatEx_put_BitsPerSample(This,BitsPerSample) (This)->lpVtbl->put_BitsPerSample(This,BitsPerSample)
11705 #define ISpeechWaveFormatEx_get_ExtraData(This,ExtraData) (This)->lpVtbl->get_ExtraData(This,ExtraData)
11706 #define ISpeechWaveFormatEx_put_ExtraData(This,ExtraData) (This)->lpVtbl->put_ExtraData(This,ExtraData)
11707 #else
11708 /*** IUnknown methods ***/
11709 static FORCEINLINE HRESULT ISpeechWaveFormatEx_QueryInterface(ISpeechWaveFormatEx* This,REFIID riid,void **ppvObject) {
11710     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11711 }
11712 static FORCEINLINE ULONG ISpeechWaveFormatEx_AddRef(ISpeechWaveFormatEx* This) {
11713     return This->lpVtbl->AddRef(This);
11714 }
11715 static FORCEINLINE ULONG ISpeechWaveFormatEx_Release(ISpeechWaveFormatEx* This) {
11716     return This->lpVtbl->Release(This);
11717 }
11718 /*** IDispatch methods ***/
11719 static FORCEINLINE HRESULT ISpeechWaveFormatEx_GetTypeInfoCount(ISpeechWaveFormatEx* This,UINT *pctinfo) {
11720     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
11721 }
11722 static FORCEINLINE HRESULT ISpeechWaveFormatEx_GetTypeInfo(ISpeechWaveFormatEx* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
11723     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
11724 }
11725 static FORCEINLINE HRESULT ISpeechWaveFormatEx_GetIDsOfNames(ISpeechWaveFormatEx* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
11726     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
11727 }
11728 static FORCEINLINE HRESULT ISpeechWaveFormatEx_Invoke(ISpeechWaveFormatEx* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
11729     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
11730 }
11731 /*** ISpeechWaveFormatEx methods ***/
11732 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_FormatTag(ISpeechWaveFormatEx* This,short *FormatTag) {
11733     return This->lpVtbl->get_FormatTag(This,FormatTag);
11734 }
11735 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_FormatTag(ISpeechWaveFormatEx* This,short FormatTag) {
11736     return This->lpVtbl->put_FormatTag(This,FormatTag);
11737 }
11738 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_Channels(ISpeechWaveFormatEx* This,short *Channels) {
11739     return This->lpVtbl->get_Channels(This,Channels);
11740 }
11741 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_Channels(ISpeechWaveFormatEx* This,short Channels) {
11742     return This->lpVtbl->put_Channels(This,Channels);
11743 }
11744 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_SamplesPerSec(ISpeechWaveFormatEx* This,LONG *SamplesPerSec) {
11745     return This->lpVtbl->get_SamplesPerSec(This,SamplesPerSec);
11746 }
11747 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_SamplesPerSec(ISpeechWaveFormatEx* This,LONG SamplesPerSec) {
11748     return This->lpVtbl->put_SamplesPerSec(This,SamplesPerSec);
11749 }
11750 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_AvgBytesPerSec(ISpeechWaveFormatEx* This,LONG *AvgBytesPerSec) {
11751     return This->lpVtbl->get_AvgBytesPerSec(This,AvgBytesPerSec);
11752 }
11753 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_AvgBytesPerSec(ISpeechWaveFormatEx* This,LONG AvgBytesPerSec) {
11754     return This->lpVtbl->put_AvgBytesPerSec(This,AvgBytesPerSec);
11755 }
11756 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_BlockAlign(ISpeechWaveFormatEx* This,short *BlockAlign) {
11757     return This->lpVtbl->get_BlockAlign(This,BlockAlign);
11758 }
11759 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_BlockAlign(ISpeechWaveFormatEx* This,short BlockAlign) {
11760     return This->lpVtbl->put_BlockAlign(This,BlockAlign);
11761 }
11762 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_BitsPerSample(ISpeechWaveFormatEx* This,short *BitsPerSample) {
11763     return This->lpVtbl->get_BitsPerSample(This,BitsPerSample);
11764 }
11765 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_BitsPerSample(ISpeechWaveFormatEx* This,short BitsPerSample) {
11766     return This->lpVtbl->put_BitsPerSample(This,BitsPerSample);
11767 }
11768 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_ExtraData(ISpeechWaveFormatEx* This,VARIANT *ExtraData) {
11769     return This->lpVtbl->get_ExtraData(This,ExtraData);
11770 }
11771 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_ExtraData(ISpeechWaveFormatEx* This,VARIANT ExtraData) {
11772     return This->lpVtbl->put_ExtraData(This,ExtraData);
11773 }
11774 #endif
11775 #endif
11776 
11777 #endif
11778 
11779 
11780 #endif  /* __ISpeechWaveFormatEx_INTERFACE_DEFINED__ */
11781 
11782 /*****************************************************************************
11783  * ISpeechVoice interface
11784  */
11785 #ifndef __ISpeechVoice_INTERFACE_DEFINED__
11786 #define __ISpeechVoice_INTERFACE_DEFINED__
11787 
11788 DEFINE_GUID(IID_ISpeechVoice, 0x269316d8, 0x57bd, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96);
11789 #if defined(__cplusplus) && !defined(CINTERFACE)
11790 MIDL_INTERFACE("269316d8-57bd-11d2-9eee-00c04f797396")
11791 ISpeechVoice : public IDispatch
11792 {
11793     virtual HRESULT STDMETHODCALLTYPE get_Status(
11794         ISpeechVoiceStatus **Status) = 0;
11795 
11796     virtual HRESULT STDMETHODCALLTYPE get_Voice(
11797         ISpeechObjectToken **Voice) = 0;
11798 
11799     virtual HRESULT STDMETHODCALLTYPE putref_Voice(
11800         ISpeechObjectToken *Voice) = 0;
11801 
11802     virtual HRESULT STDMETHODCALLTYPE get_AudioOutput(
11803         ISpeechObjectToken **AudioOutput) = 0;
11804 
11805     virtual HRESULT STDMETHODCALLTYPE putref_AudioOutput(
11806         ISpeechObjectToken *AudioOutput) = 0;
11807 
11808     virtual HRESULT STDMETHODCALLTYPE get_AudioOutputStream(
11809         ISpeechBaseStream **AudioOutputStream) = 0;
11810 
11811     virtual HRESULT STDMETHODCALLTYPE putref_AudioOutputStream(
11812         ISpeechBaseStream *AudioOutputStream) = 0;
11813 
11814     virtual HRESULT STDMETHODCALLTYPE get_Rate(
11815         LONG *Rate) = 0;
11816 
11817     virtual HRESULT STDMETHODCALLTYPE put_Rate(
11818         LONG Rate) = 0;
11819 
11820     virtual HRESULT STDMETHODCALLTYPE get_Volume(
11821         LONG *Volume) = 0;
11822 
11823     virtual HRESULT STDMETHODCALLTYPE put_Volume(
11824         LONG Volume) = 0;
11825 
11826     virtual HRESULT STDMETHODCALLTYPE put_AllowAudioOutputFormatChangesOnNextSet(
11827         VARIANT_BOOL Allow) = 0;
11828 
11829     virtual HRESULT STDMETHODCALLTYPE get_AllowAudioOutputFormatChangesOnNextSet(
11830         VARIANT_BOOL *Allow) = 0;
11831 
11832     virtual HRESULT STDMETHODCALLTYPE get_EventInterests(
11833         SpeechVoiceEvents *EventInterestFlags) = 0;
11834 
11835     virtual HRESULT STDMETHODCALLTYPE put_EventInterests(
11836         SpeechVoiceEvents EventInterestFlags) = 0;
11837 
11838     virtual HRESULT STDMETHODCALLTYPE put_Priority(
11839         SpeechVoicePriority Priority) = 0;
11840 
11841     virtual HRESULT STDMETHODCALLTYPE get_Priority(
11842         SpeechVoicePriority *Priority) = 0;
11843 
11844     virtual HRESULT STDMETHODCALLTYPE put_AlertBoundary(
11845         SpeechVoiceEvents Boundary) = 0;
11846 
11847     virtual HRESULT STDMETHODCALLTYPE get_AlertBoundary(
11848         SpeechVoiceEvents *Boundary) = 0;
11849 
11850     virtual HRESULT STDMETHODCALLTYPE put_SynchronousSpeakTimeout(
11851         LONG msTimeout) = 0;
11852 
11853     virtual HRESULT STDMETHODCALLTYPE get_SynchronousSpeakTimeout(
11854         LONG *msTimeout) = 0;
11855 
11856     virtual HRESULT STDMETHODCALLTYPE Speak(
11857         BSTR Text,
11858         SpeechVoiceSpeakFlags Flags,
11859         LONG *StreamNumber) = 0;
11860 
11861     virtual HRESULT STDMETHODCALLTYPE SpeakStream(
11862         ISpeechBaseStream *Stream,
11863         SpeechVoiceSpeakFlags Flags,
11864         LONG *StreamNumber) = 0;
11865 
11866     virtual HRESULT STDMETHODCALLTYPE Pause(
11867         ) = 0;
11868 
11869     virtual HRESULT STDMETHODCALLTYPE Resume(
11870         ) = 0;
11871 
11872     virtual HRESULT STDMETHODCALLTYPE Skip(
11873         const BSTR Type,
11874         LONG NumItems,
11875         LONG *NumSkipped) = 0;
11876 
11877     virtual HRESULT STDMETHODCALLTYPE GetVoices(
11878         BSTR RequiredAttributes,
11879         BSTR OptionalAttributes,
11880         ISpeechObjectTokens **ObjectTokens) = 0;
11881 
11882     virtual HRESULT STDMETHODCALLTYPE GetAudioOutputs(
11883         BSTR RequiredAttributes,
11884         BSTR OptionalAttributes,
11885         ISpeechObjectTokens **ObjectTokens) = 0;
11886 
11887     virtual HRESULT STDMETHODCALLTYPE WaitUntilDone(
11888         LONG msTimeout,
11889         VARIANT_BOOL *Done) = 0;
11890 
11891     virtual HRESULT STDMETHODCALLTYPE SpeakCompleteEvent(
11892         LONG *Handle) = 0;
11893 
11894     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
11895         const BSTR TypeOfUI,
11896         const VARIANT *ExtraData,
11897         VARIANT_BOOL *Supported) = 0;
11898 
11899     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
11900         LONG hWndParent,
11901         BSTR Title,
11902         const BSTR TypeOfUI,
11903         const VARIANT *ExtraData = 0) = 0;
11904 
11905 };
11906 #ifdef __CRT_UUID_DECL
11907 __CRT_UUID_DECL(ISpeechVoice, 0x269316d8, 0x57bd, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96)
11908 #endif
11909 #else
11910 typedef struct ISpeechVoiceVtbl {
11911     BEGIN_INTERFACE
11912 
11913     /*** IUnknown methods ***/
11914     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11915         ISpeechVoice *This,
11916         REFIID riid,
11917         void **ppvObject);
11918 
11919     ULONG (STDMETHODCALLTYPE *AddRef)(
11920         ISpeechVoice *This);
11921 
11922     ULONG (STDMETHODCALLTYPE *Release)(
11923         ISpeechVoice *This);
11924 
11925     /*** IDispatch methods ***/
11926     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
11927         ISpeechVoice *This,
11928         UINT *pctinfo);
11929 
11930     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
11931         ISpeechVoice *This,
11932         UINT iTInfo,
11933         LCID lcid,
11934         ITypeInfo **ppTInfo);
11935 
11936     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
11937         ISpeechVoice *This,
11938         REFIID riid,
11939         LPOLESTR *rgszNames,
11940         UINT cNames,
11941         LCID lcid,
11942         DISPID *rgDispId);
11943 
11944     HRESULT (STDMETHODCALLTYPE *Invoke)(
11945         ISpeechVoice *This,
11946         DISPID dispIdMember,
11947         REFIID riid,
11948         LCID lcid,
11949         WORD wFlags,
11950         DISPPARAMS *pDispParams,
11951         VARIANT *pVarResult,
11952         EXCEPINFO *pExcepInfo,
11953         UINT *puArgErr);
11954 
11955     /*** ISpeechVoice methods ***/
11956     HRESULT (STDMETHODCALLTYPE *get_Status)(
11957         ISpeechVoice *This,
11958         ISpeechVoiceStatus **Status);
11959 
11960     HRESULT (STDMETHODCALLTYPE *get_Voice)(
11961         ISpeechVoice *This,
11962         ISpeechObjectToken **Voice);
11963 
11964     HRESULT (STDMETHODCALLTYPE *putref_Voice)(
11965         ISpeechVoice *This,
11966         ISpeechObjectToken *Voice);
11967 
11968     HRESULT (STDMETHODCALLTYPE *get_AudioOutput)(
11969         ISpeechVoice *This,
11970         ISpeechObjectToken **AudioOutput);
11971 
11972     HRESULT (STDMETHODCALLTYPE *putref_AudioOutput)(
11973         ISpeechVoice *This,
11974         ISpeechObjectToken *AudioOutput);
11975 
11976     HRESULT (STDMETHODCALLTYPE *get_AudioOutputStream)(
11977         ISpeechVoice *This,
11978         ISpeechBaseStream **AudioOutputStream);
11979 
11980     HRESULT (STDMETHODCALLTYPE *putref_AudioOutputStream)(
11981         ISpeechVoice *This,
11982         ISpeechBaseStream *AudioOutputStream);
11983 
11984     HRESULT (STDMETHODCALLTYPE *get_Rate)(
11985         ISpeechVoice *This,
11986         LONG *Rate);
11987 
11988     HRESULT (STDMETHODCALLTYPE *put_Rate)(
11989         ISpeechVoice *This,
11990         LONG Rate);
11991 
11992     HRESULT (STDMETHODCALLTYPE *get_Volume)(
11993         ISpeechVoice *This,
11994         LONG *Volume);
11995 
11996     HRESULT (STDMETHODCALLTYPE *put_Volume)(
11997         ISpeechVoice *This,
11998         LONG Volume);
11999 
12000     HRESULT (STDMETHODCALLTYPE *put_AllowAudioOutputFormatChangesOnNextSet)(
12001         ISpeechVoice *This,
12002         VARIANT_BOOL Allow);
12003 
12004     HRESULT (STDMETHODCALLTYPE *get_AllowAudioOutputFormatChangesOnNextSet)(
12005         ISpeechVoice *This,
12006         VARIANT_BOOL *Allow);
12007 
12008     HRESULT (STDMETHODCALLTYPE *get_EventInterests)(
12009         ISpeechVoice *This,
12010         SpeechVoiceEvents *EventInterestFlags);
12011 
12012     HRESULT (STDMETHODCALLTYPE *put_EventInterests)(
12013         ISpeechVoice *This,
12014         SpeechVoiceEvents EventInterestFlags);
12015 
12016     HRESULT (STDMETHODCALLTYPE *put_Priority)(
12017         ISpeechVoice *This,
12018         SpeechVoicePriority Priority);
12019 
12020     HRESULT (STDMETHODCALLTYPE *get_Priority)(
12021         ISpeechVoice *This,
12022         SpeechVoicePriority *Priority);
12023 
12024     HRESULT (STDMETHODCALLTYPE *put_AlertBoundary)(
12025         ISpeechVoice *This,
12026         SpeechVoiceEvents Boundary);
12027 
12028     HRESULT (STDMETHODCALLTYPE *get_AlertBoundary)(
12029         ISpeechVoice *This,
12030         SpeechVoiceEvents *Boundary);
12031 
12032     HRESULT (STDMETHODCALLTYPE *put_SynchronousSpeakTimeout)(
12033         ISpeechVoice *This,
12034         LONG msTimeout);
12035 
12036     HRESULT (STDMETHODCALLTYPE *get_SynchronousSpeakTimeout)(
12037         ISpeechVoice *This,
12038         LONG *msTimeout);
12039 
12040     HRESULT (STDMETHODCALLTYPE *Speak)(
12041         ISpeechVoice *This,
12042         BSTR Text,
12043         SpeechVoiceSpeakFlags Flags,
12044         LONG *StreamNumber);
12045 
12046     HRESULT (STDMETHODCALLTYPE *SpeakStream)(
12047         ISpeechVoice *This,
12048         ISpeechBaseStream *Stream,
12049         SpeechVoiceSpeakFlags Flags,
12050         LONG *StreamNumber);
12051 
12052     HRESULT (STDMETHODCALLTYPE *Pause)(
12053         ISpeechVoice *This);
12054 
12055     HRESULT (STDMETHODCALLTYPE *Resume)(
12056         ISpeechVoice *This);
12057 
12058     HRESULT (STDMETHODCALLTYPE *Skip)(
12059         ISpeechVoice *This,
12060         const BSTR Type,
12061         LONG NumItems,
12062         LONG *NumSkipped);
12063 
12064     HRESULT (STDMETHODCALLTYPE *GetVoices)(
12065         ISpeechVoice *This,
12066         BSTR RequiredAttributes,
12067         BSTR OptionalAttributes,
12068         ISpeechObjectTokens **ObjectTokens);
12069 
12070     HRESULT (STDMETHODCALLTYPE *GetAudioOutputs)(
12071         ISpeechVoice *This,
12072         BSTR RequiredAttributes,
12073         BSTR OptionalAttributes,
12074         ISpeechObjectTokens **ObjectTokens);
12075 
12076     HRESULT (STDMETHODCALLTYPE *WaitUntilDone)(
12077         ISpeechVoice *This,
12078         LONG msTimeout,
12079         VARIANT_BOOL *Done);
12080 
12081     HRESULT (STDMETHODCALLTYPE *SpeakCompleteEvent)(
12082         ISpeechVoice *This,
12083         LONG *Handle);
12084 
12085     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
12086         ISpeechVoice *This,
12087         const BSTR TypeOfUI,
12088         const VARIANT *ExtraData,
12089         VARIANT_BOOL *Supported);
12090 
12091     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
12092         ISpeechVoice *This,
12093         LONG hWndParent,
12094         BSTR Title,
12095         const BSTR TypeOfUI,
12096         const VARIANT *ExtraData);
12097 
12098     END_INTERFACE
12099 } ISpeechVoiceVtbl;
12100 
12101 interface ISpeechVoice {
12102     CONST_VTBL ISpeechVoiceVtbl* lpVtbl;
12103 };
12104 
12105 #ifdef COBJMACROS
12106 #ifndef WIDL_C_INLINE_WRAPPERS
12107 /*** IUnknown methods ***/
12108 #define ISpeechVoice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12109 #define ISpeechVoice_AddRef(This) (This)->lpVtbl->AddRef(This)
12110 #define ISpeechVoice_Release(This) (This)->lpVtbl->Release(This)
12111 /*** IDispatch methods ***/
12112 #define ISpeechVoice_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
12113 #define ISpeechVoice_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
12114 #define ISpeechVoice_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
12115 #define ISpeechVoice_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
12116 /*** ISpeechVoice methods ***/
12117 #define ISpeechVoice_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
12118 #define ISpeechVoice_get_Voice(This,Voice) (This)->lpVtbl->get_Voice(This,Voice)
12119 #define ISpeechVoice_putref_Voice(This,Voice) (This)->lpVtbl->putref_Voice(This,Voice)
12120 #define ISpeechVoice_get_AudioOutput(This,AudioOutput) (This)->lpVtbl->get_AudioOutput(This,AudioOutput)
12121 #define ISpeechVoice_putref_AudioOutput(This,AudioOutput) (This)->lpVtbl->putref_AudioOutput(This,AudioOutput)
12122 #define ISpeechVoice_get_AudioOutputStream(This,AudioOutputStream) (This)->lpVtbl->get_AudioOutputStream(This,AudioOutputStream)
12123 #define ISpeechVoice_putref_AudioOutputStream(This,AudioOutputStream) (This)->lpVtbl->putref_AudioOutputStream(This,AudioOutputStream)
12124 #define ISpeechVoice_get_Rate(This,Rate) (This)->lpVtbl->get_Rate(This,Rate)
12125 #define ISpeechVoice_put_Rate(This,Rate) (This)->lpVtbl->put_Rate(This,Rate)
12126 #define ISpeechVoice_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
12127 #define ISpeechVoice_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
12128 #define ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->put_AllowAudioOutputFormatChangesOnNextSet(This,Allow)
12129 #define ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->get_AllowAudioOutputFormatChangesOnNextSet(This,Allow)
12130 #define ISpeechVoice_get_EventInterests(This,EventInterestFlags) (This)->lpVtbl->get_EventInterests(This,EventInterestFlags)
12131 #define ISpeechVoice_put_EventInterests(This,EventInterestFlags) (This)->lpVtbl->put_EventInterests(This,EventInterestFlags)
12132 #define ISpeechVoice_put_Priority(This,Priority) (This)->lpVtbl->put_Priority(This,Priority)
12133 #define ISpeechVoice_get_Priority(This,Priority) (This)->lpVtbl->get_Priority(This,Priority)
12134 #define ISpeechVoice_put_AlertBoundary(This,Boundary) (This)->lpVtbl->put_AlertBoundary(This,Boundary)
12135 #define ISpeechVoice_get_AlertBoundary(This,Boundary) (This)->lpVtbl->get_AlertBoundary(This,Boundary)
12136 #define ISpeechVoice_put_SynchronousSpeakTimeout(This,msTimeout) (This)->lpVtbl->put_SynchronousSpeakTimeout(This,msTimeout)
12137 #define ISpeechVoice_get_SynchronousSpeakTimeout(This,msTimeout) (This)->lpVtbl->get_SynchronousSpeakTimeout(This,msTimeout)
12138 #define ISpeechVoice_Speak(This,Text,Flags,StreamNumber) (This)->lpVtbl->Speak(This,Text,Flags,StreamNumber)
12139 #define ISpeechVoice_SpeakStream(This,Stream,Flags,StreamNumber) (This)->lpVtbl->SpeakStream(This,Stream,Flags,StreamNumber)
12140 #define ISpeechVoice_Pause(This) (This)->lpVtbl->Pause(This)
12141 #define ISpeechVoice_Resume(This) (This)->lpVtbl->Resume(This)
12142 #define ISpeechVoice_Skip(This,Type,NumItems,NumSkipped) (This)->lpVtbl->Skip(This,Type,NumItems,NumSkipped)
12143 #define ISpeechVoice_GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
12144 #define ISpeechVoice_GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
12145 #define ISpeechVoice_WaitUntilDone(This,msTimeout,Done) (This)->lpVtbl->WaitUntilDone(This,msTimeout,Done)
12146 #define ISpeechVoice_SpeakCompleteEvent(This,Handle) (This)->lpVtbl->SpeakCompleteEvent(This,Handle)
12147 #define ISpeechVoice_IsUISupported(This,TypeOfUI,ExtraData,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported)
12148 #define ISpeechVoice_DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData) (This)->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData)
12149 #else
12150 /*** IUnknown methods ***/
12151 static FORCEINLINE HRESULT ISpeechVoice_QueryInterface(ISpeechVoice* This,REFIID riid,void **ppvObject) {
12152     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12153 }
12154 static FORCEINLINE ULONG ISpeechVoice_AddRef(ISpeechVoice* This) {
12155     return This->lpVtbl->AddRef(This);
12156 }
12157 static FORCEINLINE ULONG ISpeechVoice_Release(ISpeechVoice* This) {
12158     return This->lpVtbl->Release(This);
12159 }
12160 /*** IDispatch methods ***/
12161 static FORCEINLINE HRESULT ISpeechVoice_GetTypeInfoCount(ISpeechVoice* This,UINT *pctinfo) {
12162     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
12163 }
12164 static FORCEINLINE HRESULT ISpeechVoice_GetTypeInfo(ISpeechVoice* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
12165     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
12166 }
12167 static FORCEINLINE HRESULT ISpeechVoice_GetIDsOfNames(ISpeechVoice* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
12168     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
12169 }
12170 static FORCEINLINE HRESULT ISpeechVoice_Invoke(ISpeechVoice* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
12171     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
12172 }
12173 /*** ISpeechVoice methods ***/
12174 static FORCEINLINE HRESULT ISpeechVoice_get_Status(ISpeechVoice* This,ISpeechVoiceStatus **Status) {
12175     return This->lpVtbl->get_Status(This,Status);
12176 }
12177 static FORCEINLINE HRESULT ISpeechVoice_get_Voice(ISpeechVoice* This,ISpeechObjectToken **Voice) {
12178     return This->lpVtbl->get_Voice(This,Voice);
12179 }
12180 static FORCEINLINE HRESULT ISpeechVoice_putref_Voice(ISpeechVoice* This,ISpeechObjectToken *Voice) {
12181     return This->lpVtbl->putref_Voice(This,Voice);
12182 }
12183 static FORCEINLINE HRESULT ISpeechVoice_get_AudioOutput(ISpeechVoice* This,ISpeechObjectToken **AudioOutput) {
12184     return This->lpVtbl->get_AudioOutput(This,AudioOutput);
12185 }
12186 static FORCEINLINE HRESULT ISpeechVoice_putref_AudioOutput(ISpeechVoice* This,ISpeechObjectToken *AudioOutput) {
12187     return This->lpVtbl->putref_AudioOutput(This,AudioOutput);
12188 }
12189 static FORCEINLINE HRESULT ISpeechVoice_get_AudioOutputStream(ISpeechVoice* This,ISpeechBaseStream **AudioOutputStream) {
12190     return This->lpVtbl->get_AudioOutputStream(This,AudioOutputStream);
12191 }
12192 static FORCEINLINE HRESULT ISpeechVoice_putref_AudioOutputStream(ISpeechVoice* This,ISpeechBaseStream *AudioOutputStream) {
12193     return This->lpVtbl->putref_AudioOutputStream(This,AudioOutputStream);
12194 }
12195 static FORCEINLINE HRESULT ISpeechVoice_get_Rate(ISpeechVoice* This,LONG *Rate) {
12196     return This->lpVtbl->get_Rate(This,Rate);
12197 }
12198 static FORCEINLINE HRESULT ISpeechVoice_put_Rate(ISpeechVoice* This,LONG Rate) {
12199     return This->lpVtbl->put_Rate(This,Rate);
12200 }
12201 static FORCEINLINE HRESULT ISpeechVoice_get_Volume(ISpeechVoice* This,LONG *Volume) {
12202     return This->lpVtbl->get_Volume(This,Volume);
12203 }
12204 static FORCEINLINE HRESULT ISpeechVoice_put_Volume(ISpeechVoice* This,LONG Volume) {
12205     return This->lpVtbl->put_Volume(This,Volume);
12206 }
12207 static FORCEINLINE HRESULT ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet(ISpeechVoice* This,VARIANT_BOOL Allow) {
12208     return This->lpVtbl->put_AllowAudioOutputFormatChangesOnNextSet(This,Allow);
12209 }
12210 static FORCEINLINE HRESULT ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet(ISpeechVoice* This,VARIANT_BOOL *Allow) {
12211     return This->lpVtbl->get_AllowAudioOutputFormatChangesOnNextSet(This,Allow);
12212 }
12213 static FORCEINLINE HRESULT ISpeechVoice_get_EventInterests(ISpeechVoice* This,SpeechVoiceEvents *EventInterestFlags) {
12214     return This->lpVtbl->get_EventInterests(This,EventInterestFlags);
12215 }
12216 static FORCEINLINE HRESULT ISpeechVoice_put_EventInterests(ISpeechVoice* This,SpeechVoiceEvents EventInterestFlags) {
12217     return This->lpVtbl->put_EventInterests(This,EventInterestFlags);
12218 }
12219 static FORCEINLINE HRESULT ISpeechVoice_put_Priority(ISpeechVoice* This,SpeechVoicePriority Priority) {
12220     return This->lpVtbl->put_Priority(This,Priority);
12221 }
12222 static FORCEINLINE HRESULT ISpeechVoice_get_Priority(ISpeechVoice* This,SpeechVoicePriority *Priority) {
12223     return This->lpVtbl->get_Priority(This,Priority);
12224 }
12225 static FORCEINLINE HRESULT ISpeechVoice_put_AlertBoundary(ISpeechVoice* This,SpeechVoiceEvents Boundary) {
12226     return This->lpVtbl->put_AlertBoundary(This,Boundary);
12227 }
12228 static FORCEINLINE HRESULT ISpeechVoice_get_AlertBoundary(ISpeechVoice* This,SpeechVoiceEvents *Boundary) {
12229     return This->lpVtbl->get_AlertBoundary(This,Boundary);
12230 }
12231 static FORCEINLINE HRESULT ISpeechVoice_put_SynchronousSpeakTimeout(ISpeechVoice* This,LONG msTimeout) {
12232     return This->lpVtbl->put_SynchronousSpeakTimeout(This,msTimeout);
12233 }
12234 static FORCEINLINE HRESULT ISpeechVoice_get_SynchronousSpeakTimeout(ISpeechVoice* This,LONG *msTimeout) {
12235     return This->lpVtbl->get_SynchronousSpeakTimeout(This,msTimeout);
12236 }
12237 static FORCEINLINE HRESULT ISpeechVoice_Speak(ISpeechVoice* This,BSTR Text,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
12238     return This->lpVtbl->Speak(This,Text,Flags,StreamNumber);
12239 }
12240 static FORCEINLINE HRESULT ISpeechVoice_SpeakStream(ISpeechVoice* This,ISpeechBaseStream *Stream,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
12241     return This->lpVtbl->SpeakStream(This,Stream,Flags,StreamNumber);
12242 }
12243 static FORCEINLINE HRESULT ISpeechVoice_Pause(ISpeechVoice* This) {
12244     return This->lpVtbl->Pause(This);
12245 }
12246 static FORCEINLINE HRESULT ISpeechVoice_Resume(ISpeechVoice* This) {
12247     return This->lpVtbl->Resume(This);
12248 }
12249 static FORCEINLINE HRESULT ISpeechVoice_Skip(ISpeechVoice* This,const BSTR Type,LONG NumItems,LONG *NumSkipped) {
12250     return This->lpVtbl->Skip(This,Type,NumItems,NumSkipped);
12251 }
12252 static FORCEINLINE HRESULT ISpeechVoice_GetVoices(ISpeechVoice* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
12253     return This->lpVtbl->GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
12254 }
12255 static FORCEINLINE HRESULT ISpeechVoice_GetAudioOutputs(ISpeechVoice* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
12256     return This->lpVtbl->GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
12257 }
12258 static FORCEINLINE HRESULT ISpeechVoice_WaitUntilDone(ISpeechVoice* This,LONG msTimeout,VARIANT_BOOL *Done) {
12259     return This->lpVtbl->WaitUntilDone(This,msTimeout,Done);
12260 }
12261 static FORCEINLINE HRESULT ISpeechVoice_SpeakCompleteEvent(ISpeechVoice* This,LONG *Handle) {
12262     return This->lpVtbl->SpeakCompleteEvent(This,Handle);
12263 }
12264 static FORCEINLINE HRESULT ISpeechVoice_IsUISupported(ISpeechVoice* This,const BSTR TypeOfUI,const VARIANT *ExtraData,VARIANT_BOOL *Supported) {
12265     return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported);
12266 }
12267 static FORCEINLINE HRESULT ISpeechVoice_DisplayUI(ISpeechVoice* This,LONG hWndParent,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData) {
12268     return This->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData);
12269 }
12270 #endif
12271 #endif
12272 
12273 #endif
12274 
12275 
12276 #endif  /* __ISpeechVoice_INTERFACE_DEFINED__ */
12277 
12278 /*****************************************************************************
12279  * ISpeechVoiceStatus interface
12280  */
12281 #ifndef __ISpeechVoiceStatus_INTERFACE_DEFINED__
12282 #define __ISpeechVoiceStatus_INTERFACE_DEFINED__
12283 
12284 DEFINE_GUID(IID_ISpeechVoiceStatus, 0x8be47b07, 0x57f6, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96);
12285 #if defined(__cplusplus) && !defined(CINTERFACE)
12286 MIDL_INTERFACE("8be47b07-57f6-11d2-9eee-00c04f797396")
12287 ISpeechVoiceStatus : public IDispatch
12288 {
12289     virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamNumber(
12290         LONG *StreamNumber) = 0;
12291 
12292     virtual HRESULT STDMETHODCALLTYPE get_LastStreamNumberQueued(
12293         LONG *StreamNumber) = 0;
12294 
12295     virtual HRESULT STDMETHODCALLTYPE get_LastHResult(
12296         LONG *HResult) = 0;
12297 
12298     virtual HRESULT STDMETHODCALLTYPE get_RunningState(
12299         SpeechRunState *State) = 0;
12300 
12301     virtual HRESULT STDMETHODCALLTYPE get_InputWordPosition(
12302         LONG *Position) = 0;
12303 
12304     virtual HRESULT STDMETHODCALLTYPE get_InputWordLength(
12305         LONG *Length) = 0;
12306 
12307     virtual HRESULT STDMETHODCALLTYPE get_InputSentencePosition(
12308         LONG *Position) = 0;
12309 
12310     virtual HRESULT STDMETHODCALLTYPE get_InputSentenceLength(
12311         LONG *Length) = 0;
12312 
12313     virtual HRESULT STDMETHODCALLTYPE get_LastBookmark(
12314         BSTR *Bookmark) = 0;
12315 
12316     virtual HRESULT STDMETHODCALLTYPE get_LastBookmarkId(
12317         LONG *BookmarkId) = 0;
12318 
12319     virtual HRESULT STDMETHODCALLTYPE get_PhonemeId(
12320         short *PhoneId) = 0;
12321 
12322     virtual HRESULT STDMETHODCALLTYPE get_VisemeId(
12323         short *VisemeId) = 0;
12324 
12325 };
12326 #ifdef __CRT_UUID_DECL
12327 __CRT_UUID_DECL(ISpeechVoiceStatus, 0x8be47b07, 0x57f6, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96)
12328 #endif
12329 #else
12330 typedef struct ISpeechVoiceStatusVtbl {
12331     BEGIN_INTERFACE
12332 
12333     /*** IUnknown methods ***/
12334     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12335         ISpeechVoiceStatus *This,
12336         REFIID riid,
12337         void **ppvObject);
12338 
12339     ULONG (STDMETHODCALLTYPE *AddRef)(
12340         ISpeechVoiceStatus *This);
12341 
12342     ULONG (STDMETHODCALLTYPE *Release)(
12343         ISpeechVoiceStatus *This);
12344 
12345     /*** IDispatch methods ***/
12346     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
12347         ISpeechVoiceStatus *This,
12348         UINT *pctinfo);
12349 
12350     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
12351         ISpeechVoiceStatus *This,
12352         UINT iTInfo,
12353         LCID lcid,
12354         ITypeInfo **ppTInfo);
12355 
12356     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
12357         ISpeechVoiceStatus *This,
12358         REFIID riid,
12359         LPOLESTR *rgszNames,
12360         UINT cNames,
12361         LCID lcid,
12362         DISPID *rgDispId);
12363 
12364     HRESULT (STDMETHODCALLTYPE *Invoke)(
12365         ISpeechVoiceStatus *This,
12366         DISPID dispIdMember,
12367         REFIID riid,
12368         LCID lcid,
12369         WORD wFlags,
12370         DISPPARAMS *pDispParams,
12371         VARIANT *pVarResult,
12372         EXCEPINFO *pExcepInfo,
12373         UINT *puArgErr);
12374 
12375     /*** ISpeechVoiceStatus methods ***/
12376     HRESULT (STDMETHODCALLTYPE *get_CurrentStreamNumber)(
12377         ISpeechVoiceStatus *This,
12378         LONG *StreamNumber);
12379 
12380     HRESULT (STDMETHODCALLTYPE *get_LastStreamNumberQueued)(
12381         ISpeechVoiceStatus *This,
12382         LONG *StreamNumber);
12383 
12384     HRESULT (STDMETHODCALLTYPE *get_LastHResult)(
12385         ISpeechVoiceStatus *This,
12386         LONG *HResult);
12387 
12388     HRESULT (STDMETHODCALLTYPE *get_RunningState)(
12389         ISpeechVoiceStatus *This,
12390         SpeechRunState *State);
12391 
12392     HRESULT (STDMETHODCALLTYPE *get_InputWordPosition)(
12393         ISpeechVoiceStatus *This,
12394         LONG *Position);
12395 
12396     HRESULT (STDMETHODCALLTYPE *get_InputWordLength)(
12397         ISpeechVoiceStatus *This,
12398         LONG *Length);
12399 
12400     HRESULT (STDMETHODCALLTYPE *get_InputSentencePosition)(
12401         ISpeechVoiceStatus *This,
12402         LONG *Position);
12403 
12404     HRESULT (STDMETHODCALLTYPE *get_InputSentenceLength)(
12405         ISpeechVoiceStatus *This,
12406         LONG *Length);
12407 
12408     HRESULT (STDMETHODCALLTYPE *get_LastBookmark)(
12409         ISpeechVoiceStatus *This,
12410         BSTR *Bookmark);
12411 
12412     HRESULT (STDMETHODCALLTYPE *get_LastBookmarkId)(
12413         ISpeechVoiceStatus *This,
12414         LONG *BookmarkId);
12415 
12416     HRESULT (STDMETHODCALLTYPE *get_PhonemeId)(
12417         ISpeechVoiceStatus *This,
12418         short *PhoneId);
12419 
12420     HRESULT (STDMETHODCALLTYPE *get_VisemeId)(
12421         ISpeechVoiceStatus *This,
12422         short *VisemeId);
12423 
12424     END_INTERFACE
12425 } ISpeechVoiceStatusVtbl;
12426 
12427 interface ISpeechVoiceStatus {
12428     CONST_VTBL ISpeechVoiceStatusVtbl* lpVtbl;
12429 };
12430 
12431 #ifdef COBJMACROS
12432 #ifndef WIDL_C_INLINE_WRAPPERS
12433 /*** IUnknown methods ***/
12434 #define ISpeechVoiceStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12435 #define ISpeechVoiceStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
12436 #define ISpeechVoiceStatus_Release(This) (This)->lpVtbl->Release(This)
12437 /*** IDispatch methods ***/
12438 #define ISpeechVoiceStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
12439 #define ISpeechVoiceStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
12440 #define ISpeechVoiceStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
12441 #define ISpeechVoiceStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
12442 /*** ISpeechVoiceStatus methods ***/
12443 #define ISpeechVoiceStatus_get_CurrentStreamNumber(This,StreamNumber) (This)->lpVtbl->get_CurrentStreamNumber(This,StreamNumber)
12444 #define ISpeechVoiceStatus_get_LastStreamNumberQueued(This,StreamNumber) (This)->lpVtbl->get_LastStreamNumberQueued(This,StreamNumber)
12445 #define ISpeechVoiceStatus_get_LastHResult(This,HResult) (This)->lpVtbl->get_LastHResult(This,HResult)
12446 #define ISpeechVoiceStatus_get_RunningState(This,State) (This)->lpVtbl->get_RunningState(This,State)
12447 #define ISpeechVoiceStatus_get_InputWordPosition(This,Position) (This)->lpVtbl->get_InputWordPosition(This,Position)
12448 #define ISpeechVoiceStatus_get_InputWordLength(This,Length) (This)->lpVtbl->get_InputWordLength(This,Length)
12449 #define ISpeechVoiceStatus_get_InputSentencePosition(This,Position) (This)->lpVtbl->get_InputSentencePosition(This,Position)
12450 #define ISpeechVoiceStatus_get_InputSentenceLength(This,Length) (This)->lpVtbl->get_InputSentenceLength(This,Length)
12451 #define ISpeechVoiceStatus_get_LastBookmark(This,Bookmark) (This)->lpVtbl->get_LastBookmark(This,Bookmark)
12452 #define ISpeechVoiceStatus_get_LastBookmarkId(This,BookmarkId) (This)->lpVtbl->get_LastBookmarkId(This,BookmarkId)
12453 #define ISpeechVoiceStatus_get_PhonemeId(This,PhoneId) (This)->lpVtbl->get_PhonemeId(This,PhoneId)
12454 #define ISpeechVoiceStatus_get_VisemeId(This,VisemeId) (This)->lpVtbl->get_VisemeId(This,VisemeId)
12455 #else
12456 /*** IUnknown methods ***/
12457 static FORCEINLINE HRESULT ISpeechVoiceStatus_QueryInterface(ISpeechVoiceStatus* This,REFIID riid,void **ppvObject) {
12458     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12459 }
12460 static FORCEINLINE ULONG ISpeechVoiceStatus_AddRef(ISpeechVoiceStatus* This) {
12461     return This->lpVtbl->AddRef(This);
12462 }
12463 static FORCEINLINE ULONG ISpeechVoiceStatus_Release(ISpeechVoiceStatus* This) {
12464     return This->lpVtbl->Release(This);
12465 }
12466 /*** IDispatch methods ***/
12467 static FORCEINLINE HRESULT ISpeechVoiceStatus_GetTypeInfoCount(ISpeechVoiceStatus* This,UINT *pctinfo) {
12468     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
12469 }
12470 static FORCEINLINE HRESULT ISpeechVoiceStatus_GetTypeInfo(ISpeechVoiceStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
12471     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
12472 }
12473 static FORCEINLINE HRESULT ISpeechVoiceStatus_GetIDsOfNames(ISpeechVoiceStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
12474     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
12475 }
12476 static FORCEINLINE HRESULT ISpeechVoiceStatus_Invoke(ISpeechVoiceStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
12477     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
12478 }
12479 /*** ISpeechVoiceStatus methods ***/
12480 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_CurrentStreamNumber(ISpeechVoiceStatus* This,LONG *StreamNumber) {
12481     return This->lpVtbl->get_CurrentStreamNumber(This,StreamNumber);
12482 }
12483 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_LastStreamNumberQueued(ISpeechVoiceStatus* This,LONG *StreamNumber) {
12484     return This->lpVtbl->get_LastStreamNumberQueued(This,StreamNumber);
12485 }
12486 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_LastHResult(ISpeechVoiceStatus* This,LONG *HResult) {
12487     return This->lpVtbl->get_LastHResult(This,HResult);
12488 }
12489 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_RunningState(ISpeechVoiceStatus* This,SpeechRunState *State) {
12490     return This->lpVtbl->get_RunningState(This,State);
12491 }
12492 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_InputWordPosition(ISpeechVoiceStatus* This,LONG *Position) {
12493     return This->lpVtbl->get_InputWordPosition(This,Position);
12494 }
12495 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_InputWordLength(ISpeechVoiceStatus* This,LONG *Length) {
12496     return This->lpVtbl->get_InputWordLength(This,Length);
12497 }
12498 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_InputSentencePosition(ISpeechVoiceStatus* This,LONG *Position) {
12499     return This->lpVtbl->get_InputSentencePosition(This,Position);
12500 }
12501 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_InputSentenceLength(ISpeechVoiceStatus* This,LONG *Length) {
12502     return This->lpVtbl->get_InputSentenceLength(This,Length);
12503 }
12504 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_LastBookmark(ISpeechVoiceStatus* This,BSTR *Bookmark) {
12505     return This->lpVtbl->get_LastBookmark(This,Bookmark);
12506 }
12507 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_LastBookmarkId(ISpeechVoiceStatus* This,LONG *BookmarkId) {
12508     return This->lpVtbl->get_LastBookmarkId(This,BookmarkId);
12509 }
12510 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_PhonemeId(ISpeechVoiceStatus* This,short *PhoneId) {
12511     return This->lpVtbl->get_PhonemeId(This,PhoneId);
12512 }
12513 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_VisemeId(ISpeechVoiceStatus* This,short *VisemeId) {
12514     return This->lpVtbl->get_VisemeId(This,VisemeId);
12515 }
12516 #endif
12517 #endif
12518 
12519 #endif
12520 
12521 
12522 #endif  /* __ISpeechVoiceStatus_INTERFACE_DEFINED__ */
12523 
12524 typedef enum SpeechVisemeType {
12525     SVP_0 = 0,
12526     SVP_1 = 1,
12527     SVP_2 = 2,
12528     SVP_3 = 3,
12529     SVP_4 = 4,
12530     SVP_5 = 5,
12531     SVP_6 = 6,
12532     SVP_7 = 7,
12533     SVP_8 = 8,
12534     SVP_9 = 9,
12535     SVP_10 = 10,
12536     SVP_11 = 11,
12537     SVP_12 = 12,
12538     SVP_13 = 13,
12539     SVP_14 = 14,
12540     SVP_15 = 15,
12541     SVP_16 = 16,
12542     SVP_17 = 17,
12543     SVP_18 = 18,
12544     SVP_19 = 19,
12545     SVP_20 = 20,
12546     SVP_21 = 21
12547 } SpeechVisemeType;
12548 typedef enum SpeechVisemeFeature {
12549     SVF_None = 0,
12550     SVF_Stressed = SPVFEATURE_STRESSED,
12551     SVF_Emphasis = SPVFEATURE_EMPHASIS
12552 } SpeechVisemeFeature;
12553 typedef enum DISPID_SpeechVoiceEvent {
12554     DISPID_SVEStreamStart = 1,
12555     DISPID_SVEStreamEnd = 2,
12556     DISPID_SVEVoiceChange = 3,
12557     DISPID_SVEBookmark = 4,
12558     DISPID_SVEWord = 5,
12559     DISPID_SVEPhoneme = 6,
12560     DISPID_SVESentenceBoundary = 7,
12561     DISPID_SVEViseme = 8,
12562     DISPID_SVEAudioLevel = 9,
12563     DISPID_SVEEnginePrivate = 10
12564 } DISPID_SpeechVoiceEvent;
12565 typedef enum DISPID_SpeechRecognizer {
12566     DISPID_SRRecognizer = 1,
12567     DISPID_SRAllowAudioInputFormatChangesOnNextSet = 2,
12568     DISPID_SRAudioInput = 3,
12569     DISPID_SRAudioInputStream = 4,
12570     DISPID_SRIsShared = 5,
12571     DISPID_SRState = 6,
12572     DISPID_SRStatus = 7,
12573     DISPID_SRProfile = 8,
12574     DISPID_SREmulateRecognition = 9,
12575     DISPID_SRCreateRecoContext = 10,
12576     DISPID_SRGetFormat = 11,
12577     DISPID_SRSetPropertyNumber = 12,
12578     DISPID_SRGetPropertyNumber = 13,
12579     DISPID_SRSetPropertyString = 14,
12580     DISPID_SRGetPropertyString = 15,
12581     DISPID_SRIsUISupported = 16,
12582     DISPID_SRDisplayUI = 17,
12583     DISPID_SRGetRecognizers = 18,
12584     DISPID_SVGetAudioInputs = 19,
12585     DISPID_SVGetProfiles = 20
12586 } DISPID_SpeechRecognizer;
12587 typedef enum SpeechRecognizerState {
12588     SRSInactive = SPRST_INACTIVE,
12589     SRSActive = SPRST_ACTIVE,
12590     SRSActiveAlways = SPRST_ACTIVE_ALWAYS,
12591     SRSInactiveWithPurge = SPRST_INACTIVE_WITH_PURGE
12592 } SpeechRecognizerState;
12593 typedef enum SpeechDisplayAttributes {
12594     SDA_No_Trailing_Space = 0,
12595     SDA_One_Trailing_Space = SPAF_ONE_TRAILING_SPACE,
12596     SDA_Two_Trailing_Spaces = SPAF_TWO_TRAILING_SPACES,
12597     SDA_Consume_Leading_Spaces = SPAF_CONSUME_LEADING_SPACES
12598 } SpeechDisplayAttributes;
12599 typedef enum SpeechFormatType {
12600     SFTInput = SPWF_INPUT,
12601     SFTSREngine = SPWF_SRENGINE
12602 } SpeechFormatType;
12603 typedef enum DISPID_SpeechRecognizerStatus {
12604     DISPID_SRSAudioStatus = 1,
12605     DISPID_SRSCurrentStreamPosition = 2,
12606     DISPID_SRSCurrentStreamNumber = 3,
12607     DISPID_SRSNumberOfActiveRules = 4,
12608     DISPID_SRSClsidEngine = 5,
12609     DISPID_SRSSupportedLanguages = 6
12610 } DISPID_SpeechRecognizerStatus;
12611 typedef enum DISPID_SpeechRecoContext {
12612     DISPID_SRCRecognizer = 1,
12613     DISPID_SRCAudioInInterferenceStatus = 2,
12614     DISPID_SRCRequestedUIType = 3,
12615     DISPID_SRCVoice = 4,
12616     DISPID_SRAllowVoiceFormatMatchingOnNextSet = 5,
12617     DISPID_SRCVoicePurgeEvent = 6,
12618     DISPID_SRCEventInterests = 7,
12619     DISPID_SRCCmdMaxAlternates = 8,
12620     DISPID_SRCState = 9,
12621     DISPID_SRCRetainedAudio = 10,
12622     DISPID_SRCRetainedAudioFormat = 11,
12623     DISPID_SRCPause = 12,
12624     DISPID_SRCResume = 13,
12625     DISPID_SRCCreateGrammar = 14,
12626     DISPID_SRCCreateResultFromMemory = 15,
12627     DISPID_SRCBookmark = 16,
12628     DISPID_SRCSetAdaptationData = 17
12629 } DISPID_SpeechRecoContext;
12630 typedef enum SpeechRetainedAudioOptions {
12631     SRAONone = SPAO_NONE,
12632     SRAORetainAudio = SPAO_RETAIN_AUDIO
12633 } SpeechRetainedAudioOptions;
12634 typedef enum SpeechBookmarkOptions {
12635     SBONone = SPBO_NONE,
12636     SBOPause = SPBO_PAUSE
12637 } SpeechBookmarkOptions;
12638 typedef enum SpeechInterference {
12639     SINone = SPINTERFERENCE_NONE,
12640     SINoise = SPINTERFERENCE_NOISE,
12641     SINoSignal = SPINTERFERENCE_NOSIGNAL,
12642     SITooLoud = SPINTERFERENCE_TOOLOUD,
12643     SITooQuiet = SPINTERFERENCE_TOOQUIET,
12644     SITooFast = SPINTERFERENCE_TOOFAST,
12645     SITooSlow = SPINTERFERENCE_TOOSLOW
12646 } SpeechInterference;
12647 typedef enum SpeechRecoEvents {
12648     SREStreamEnd = 0x1,
12649     SRESoundStart = 0x2,
12650     SRESoundEnd = 0x4,
12651     SREPhraseStart = 0x8,
12652     SRERecognition = 0x10,
12653     SREHypothesis = 0x20,
12654     SREBookmark = 0x40,
12655     SREPropertyNumChange = 0x80,
12656     SREPropertyStringChange = 0x100,
12657     SREFalseRecognition = 0x200,
12658     SREInterference = 0x400,
12659     SRERequestUI = 0x800,
12660     SREStateChange = 0x1000,
12661     SREAdaptation = 0x2000,
12662     SREStreamStart = 0x4000,
12663     SRERecoOtherContext = 0x8000,
12664     SREAudioLevel = 0x10000,
12665     SREPrivate = 0x40000,
12666     SREAllEvents = 0x5ffff
12667 } SpeechRecoEvents;
12668 typedef enum SpeechRecoContextState {
12669     SRCS_Disabled = SPCS_DISABLED,
12670     SRCS_Enabled = SPCS_ENABLED
12671 } SpeechRecoContextState;
12672 typedef enum DISPIDSPRG {
12673     DISPID_SRGId = 1,
12674     DISPID_SRGRecoContext = 2,
12675     DISPID_SRGState = 3,
12676     DISPID_SRGRules = 4,
12677     DISPID_SRGReset = 5,
12678     DISPID_SRGCommit = 6,
12679     DISPID_SRGCmdLoadFromFile = 7,
12680     DISPID_SRGCmdLoadFromObject = 8,
12681     DISPID_SRGCmdLoadFromResource = 9,
12682     DISPID_SRGCmdLoadFromMemory = 10,
12683     DISPID_SRGCmdLoadFromProprietaryGrammar = 11,
12684     DISPID_SRGCmdSetRuleState = 12,
12685     DISPID_SRGCmdSetRuleIdState = 13,
12686     DISPID_SRGDictationLoad = 14,
12687     DISPID_SRGDictationUnload = 15,
12688     DISPID_SRGDictationSetState = 16,
12689     DISPID_SRGSetWordSequenceData = 17,
12690     DISPID_SRGSetTextSelection = 18,
12691     DISPID_SRGIsPronounceable = 19
12692 } DISPIDSPRG;
12693 typedef enum SpeechLoadOption {
12694     SLOStatic = SPLO_STATIC,
12695     SLODynamic = SPLO_DYNAMIC
12696 } SpeechLoadOption;
12697 typedef enum SpeechWordPronounceable {
12698     SWPUnknownWordUnpronounceable = SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE,
12699     SWPUnknownWordPronounceable = SPWP_UNKNOWN_WORD_PRONOUNCEABLE,
12700     SWPKnownWordPronounceable = SPWP_KNOWN_WORD_PRONOUNCEABLE
12701 } SpeechWordPronounceable;
12702 typedef enum SpeechGrammarState {
12703     SGSEnabled = SPGS_ENABLED,
12704     SGSDisabled = SPGS_DISABLED,
12705     SGSExclusive = SPGS_EXCLUSIVE
12706 } SpeechGrammarState;
12707 typedef enum SpeechRuleState {
12708     SGDSInactive = SPRS_INACTIVE,
12709     SGDSActive = SPRS_ACTIVE,
12710     SGDSActiveWithAutoPause = SPRS_ACTIVE_WITH_AUTO_PAUSE
12711 } SpeechRuleState;
12712 typedef enum SpeechRuleAttributes {
12713     SRATopLevel = SPRAF_TopLevel,
12714     SRADefaultToActive = SPRAF_Active,
12715     SRAExport = SPRAF_Export,
12716     SRAImport = SPRAF_Import,
12717     SRAInterpreter = SPRAF_Interpreter,
12718     SRADynamic = SPRAF_Dynamic
12719 } SpeechRuleAttributes;
12720 typedef enum SpeechGrammarWordType {
12721     SGDisplay = SPWT_DISPLAY,
12722     SGLexical = SPWT_LEXICAL,
12723     SGPronounciation = SPWT_PRONUNCIATION
12724 } SpeechGrammarWordType;
12725 typedef enum DISPID_SpeechRecoContextEvents {
12726     DISPID_SRCEStartStream = 1,
12727     DISPID_SRCEEndStream = 2,
12728     DISPID_SRCEBookmark = 3,
12729     DISPID_SRCESoundStart = 4,
12730     DISPID_SRCESoundEnd = 5,
12731     DISPID_SRCEPhraseStart = 6,
12732     DISPID_SRCERecognition = 7,
12733     DISPID_SRCEHypothesis = 8,
12734     DISPID_SRCEPropertyNumberChange = 9,
12735     DISPID_SRCEPropertyStringChange = 10,
12736     DISPID_SRCEFalseRecognition = 11,
12737     DISPID_SRCEInterference = 12,
12738     DISPID_SRCERequestUI = 13,
12739     DISPID_SRCERecognizerStateChange = 14,
12740     DISPID_SRCEAdaptation = 15,
12741     DISPID_SRCERecognitionForOtherContext = 16,
12742     DISPID_SRCEAudioLevel = 17,
12743     DISPID_SRCEEnginePrivate = 18
12744 } DISPID_SpeechRecoContextEvents;
12745 typedef enum SpeechRecognitionType {
12746     SRTStandard = 0,
12747     SRTAutopause = SPREF_AutoPause,
12748     SRTEmulated = SPREF_Emulated
12749 } SpeechRecognitionType;
12750 typedef enum DISPID_SpeechGrammarRule {
12751     DISPID_SGRAttributes = 1,
12752     DISPID_SGRInitialState = 2,
12753     DISPID_SGRName = 3,
12754     DISPID_SGRId = 4,
12755     DISPID_SGRClear = 5,
12756     DISPID_SGRAddResource = 6,
12757     DISPID_SGRAddState = 7
12758 } DISPID_SpeechGrammarRule;
12759 typedef enum DISPID_SpeechGrammarRules {
12760     DISPID_SGRsCount = 1,
12761     DISPID_SGRsDynamic = 2,
12762     DISPID_SGRsAdd = 3,
12763     DISPID_SGRsCommit = 4,
12764     DISPID_SGRsCommitAndSave = 5,
12765     DISPID_SGRsFindRule = 6,
12766     DISPID_SGRsItem = DISPID_VALUE,
12767     DISPID_SGRs_NewEnum = DISPID_NEWENUM
12768 } DISPID_SpeechGrammarRules;
12769 typedef enum DISPID_SpeechGrammarRuleState {
12770     DISPID_SGRSRule = 1,
12771     DISPID_SGRSTransitions = 2,
12772     DISPID_SGRSAddWordTransition = 3,
12773     DISPID_SGRSAddRuleTransition = 4,
12774     DISPID_SGRSAddSpecialTransition = 5
12775 } DISPID_SpeechGrammarRuleState;
12776 typedef enum SpeechSpecialTransitionType {
12777     SSTTWildcard = 1,
12778     SSTTDictation = 2,
12779     SSTTTextBuffer = 3
12780 } SpeechSpecialTransitionType;
12781 typedef enum DISPID_SpeechGrammarRuleStateTransitions {
12782     DISPID_SGRSTsCount = 1,
12783     DISPID_SGRSTsItem = DISPID_VALUE,
12784     DISPID_SGRSTs_NewEnum = DISPID_NEWENUM
12785 } DISPID_SpeechGrammarRuleStateTransitions;
12786 typedef enum DISPID_SpeechGrammarRuleStateTransition {
12787     DISPID_SGRSTType = 1,
12788     DISPID_SGRSTText = 2,
12789     DISPID_SGRSTRule = 3,
12790     DISPID_SGRSTWeight = 4,
12791     DISPID_SGRSTPropertyName = 5,
12792     DISPID_SGRSTPropertyId = 6,
12793     DISPID_SGRSTPropertyValue = 7,
12794     DISPID_SGRSTNextState = 8
12795 } DISPID_SpeechGrammarRuleStateTransition;
12796 typedef enum SpeechGrammarRuleStateTransitionType {
12797     SGRSTTEpsilon = 0,
12798     SGRSTTWord = 1,
12799     SGRSTTRule = 2,
12800     SGRSTTDictation = 3,
12801     SGRSTTWildcard = 4,
12802     SGRSTTTextBuffer = 5
12803 } SpeechGrammarRuleStateTransitionType;
12804 typedef enum DISPIDSPTSI {
12805     DISPIDSPTSI_ActiveOffset = 1,
12806     DISPIDSPTSI_ActiveLength = 2,
12807     DISPIDSPTSI_SelectionOffset = 3,
12808     DISPIDSPTSI_SelectionLength = 4
12809 } DISPIDSPTSI;
12810 typedef enum DISPID_SpeechRecoResult {
12811     DISPID_SRRRecoContext = 1,
12812     DISPID_SRRTimes = 2,
12813     DISPID_SRRAudioFormat = 3,
12814     DISPID_SRRPhraseInfo = 4,
12815     DISPID_SRRAlternates = 5,
12816     DISPID_SRRAudio = 6,
12817     DISPID_SRRSpeakAudio = 7,
12818     DISPID_SRRSaveToMemory = 8,
12819     DISPID_SRRDiscardResultInfo = 9
12820 } DISPID_SpeechRecoResult;
12821 typedef enum SpeechDiscardType {
12822     SDTProperty = SPDF_PROPERTY,
12823     SDTReplacement = SPDF_REPLACEMENT,
12824     SDTRule = SPDF_RULE,
12825     SDTDisplayText = SPDF_DISPLAYTEXT,
12826     SDTLexicalForm = SPDF_LEXICALFORM,
12827     SDTPronunciation = SPDF_PRONUNCIATION,
12828     SDTAudio = SPDF_AUDIO,
12829     SDTAlternates = SPDF_ALTERNATES,
12830     SDTAll = SPDF_ALL
12831 } SpeechDiscardType;
12832 typedef enum DISPID_SpeechPhraseBuilder {
12833     DISPID_SPPBRestorePhraseFromMemory = 1
12834 } DISPID_SpeechPhraseBuilder;
12835 typedef enum DISPID_SpeechRecoResultTimes {
12836     DISPID_SRRTStreamTime = 1,
12837     DISPID_SRRTLength = 2,
12838     DISPID_SRRTTickCount = 3,
12839     DISPID_SRRTOffsetFromStart = 4
12840 } DISPID_SpeechRecoResultTimes;
12841 typedef enum DISPID_SpeechPhraseAlternate {
12842     DISPID_SPARecoResult = 1,
12843     DISPID_SPAStartElementInResult = 2,
12844     DISPID_SPANumberOfElementsInResult = 3,
12845     DISPID_SPAPhraseInfo = 4,
12846     DISPID_SPACommit = 5
12847 } DISPID_SpeechPhraseAlternate;
12848 typedef enum DISPID_SpeechPhraseAlternates {
12849     DISPID_SPAsCount = 1,
12850     DISPID_SPAsItem = DISPID_VALUE,
12851     DISPID_SPAs_NewEnum = DISPID_NEWENUM
12852 } DISPID_SpeechPhraseAlternates;
12853 typedef enum DISPID_SpeechPhraseInfo {
12854     DISPID_SPILanguageId = 1,
12855     DISPID_SPIGrammarId = 2,
12856     DISPID_SPIStartTime = 3,
12857     DISPID_SPIAudioStreamPosition = 4,
12858     DISPID_SPIAudioSizeBytes = 5,
12859     DISPID_SPIRetainedSizeBytes = 6,
12860     DISPID_SPIAudioSizeTime = 7,
12861     DISPID_SPIRule = 8,
12862     DISPID_SPIProperties = 9,
12863     DISPID_SPIElements = 10,
12864     DISPID_SPIReplacements = 11,
12865     DISPID_SPIEngineId = 12,
12866     DISPID_SPIEnginePrivateData = 13,
12867     DISPID_SPISaveToMemory = 14,
12868     DISPID_SPIGetText = 15,
12869     DISPID_SPIGetDisplayAttributes = 16
12870 } DISPID_SpeechPhraseInfo;
12871 typedef enum DISPID_SpeechPhraseElement {
12872     DISPID_SPEAudioTimeOffset = 1,
12873     DISPID_SPEAudioSizeTime = 2,
12874     DISPID_SPEAudioStreamOffset = 3,
12875     DISPID_SPEAudioSizeBytes = 4,
12876     DISPID_SPERetainedStreamOffset = 5,
12877     DISPID_SPERetainedSizeBytes = 6,
12878     DISPID_SPEDisplayText = 7,
12879     DISPID_SPELexicalForm = 8,
12880     DISPID_SPEPronunciation = 9,
12881     DISPID_SPEDisplayAttributes = 10,
12882     DISPID_SPERequiredConfidence = 11,
12883     DISPID_SPEActualConfidence = 12,
12884     DISPID_SPEEngineConfidence = 13
12885 } DISPID_SpeechPhraseElement;
12886 typedef enum SpeechEngineConfidence {
12887     SECLowConfidence = -1,
12888     SECNormalConfidence = 0,
12889     SECHighConfidence = 1
12890 } SpeechEngineConfidence;
12891 typedef enum DISPID_SpeechPhraseElements {
12892     DISPID_SPEsCount = 1,
12893     DISPID_SPEsItem = DISPID_VALUE,
12894     DISPID_SPEs_NewEnum = DISPID_NEWENUM
12895 } DISPID_SpeechPhraseElements;
12896 typedef enum DISPID_SpeechPhraseReplacement {
12897     DISPID_SPRDisplayAttributes = 1,
12898     DISPID_SPRText = 2,
12899     DISPID_SPRFirstElement = 3,
12900     DISPID_SPRNumberOfElements = 4
12901 } DISPID_SpeechPhraseReplacement;
12902 typedef enum DISPID_SpeechPhraseReplacements {
12903     DISPID_SPRsCount = 1,
12904     DISPID_SPRsItem = DISPID_VALUE,
12905     DISPID_SPRs_NewEnum = DISPID_NEWENUM
12906 } DISPID_SpeechPhraseReplacements;
12907 typedef enum DISPID_SpeechPhraseProperty {
12908     DISPID_SPPName = 1,
12909     DISPID_SPPId = 2,
12910     DISPID_SPPValue = 3,
12911     DISPID_SPPFirstElement = 4,
12912     DISPID_SPPNumberOfElements = 5,
12913     DISPID_SPPEngineConfidence = 6,
12914     DISPID_SPPConfidence = 7,
12915     DISPID_SPPParent = 8,
12916     DISPID_SPPChildren = 9
12917 } DISPID_SpeechPhraseProperty;
12918 typedef enum DISPID_SpeechPhraseProperties {
12919     DISPID_SPPsCount = 1,
12920     DISPID_SPPsItem = DISPID_VALUE,
12921     DISPID_SPPs_NewEnum = DISPID_NEWENUM
12922 } DISPID_SpeechPhraseProperties;
12923 typedef enum DISPID_SpeechPhraseRule {
12924     DISPID_SPRuleName = 1,
12925     DISPID_SPRuleId = 2,
12926     DISPID_SPRuleFirstElement = 3,
12927     DISPID_SPRuleNumberOfElements = 4,
12928     DISPID_SPRuleParent = 5,
12929     DISPID_SPRuleChildren = 6,
12930     DISPID_SPRuleConfidence = 7,
12931     DISPID_SPRuleEngineConfidence = 8
12932 } DISPID_SpeechPhraseRule;
12933 typedef enum DISPID_SpeechPhraseRules {
12934     DISPID_SPRulesCount = 1,
12935     DISPID_SPRulesItem = DISPID_VALUE,
12936     DISPID_SPRules_NewEnum = DISPID_NEWENUM
12937 } DISPID_SpeechPhraseRules;
12938 typedef enum DISPID_SpeechLexicon {
12939     DISPID_SLGenerationId = 1,
12940     DISPID_SLGetWords = 2,
12941     DISPID_SLAddPronunciation = 3,
12942     DISPID_SLAddPronunciationByPhoneIds = 4,
12943     DISPID_SLRemovePronunciation = 5,
12944     DISPID_SLRemovePronunciationByPhoneIds = 6,
12945     DISPID_SLGetPronunciations = 7,
12946     DISPID_SLGetGenerationChange = 8
12947 } DISPID_SpeechLexicon;
12948 typedef enum SpeechLexiconType {
12949     SLTUser = eLEXTYPE_USER,
12950     SLTApp = eLEXTYPE_APP
12951 } SpeechLexiconType;
12952 typedef enum SpeechPartOfSpeech {
12953     SPSNotOverriden = SPPS_NotOverriden,
12954     SPSUnknown = SPPS_Unknown,
12955     SPSNoun = SPPS_Noun,
12956     SPSVerb = SPPS_Verb,
12957     SPSModifier = SPPS_Modifier,
12958     SPSFunction = SPPS_Function,
12959     SPSInterjection = SPPS_Interjection
12960 } SpeechPartOfSpeech;
12961 typedef enum DISPID_SpeechLexiconWords {
12962     DISPID_SLWsCount = 1,
12963     DISPID_SLWsItem = DISPID_VALUE,
12964     DISPID_SLWs_NewEnum = DISPID_NEWENUM
12965 } DISPID_SpeechLexiconWords;
12966 typedef enum SpeechWordType {
12967     SWTAdded = eWORDTYPE_ADDED,
12968     SWTDeleted = eWORDTYPE_DELETED
12969 } SpeechWordType;
12970 typedef enum DISPID_SpeechLexiconWord {
12971     DISPID_SLWLangId = 1,
12972     DISPID_SLWType = 2,
12973     DISPID_SLWWord = 3,
12974     DISPID_SLWPronunciations = 4
12975 } DISPID_SpeechLexiconWord;
12976 typedef enum DISPID_SpeechLexiconProns {
12977     DISPID_SLPsCount = 1,
12978     DISPID_SLPsItem = DISPID_VALUE,
12979     DISPID_SLPs_NewEnum = DISPID_NEWENUM
12980 } DISPID_SpeechLexiconProns;
12981 typedef enum DISPID_SpeechLexiconPronunciation {
12982     DISPID_SLPType = 1,
12983     DISPID_SLPLangId = 2,
12984     DISPID_SLPPartOfSpeech = 3,
12985     DISPID_SLPPhoneIds = 4,
12986     DISPID_SLPSymbolic = 5
12987 } DISPID_SpeechLexiconPronunciation;
12988 typedef enum DISPID_SpeechPhoneConverter {
12989     DISPID_SPCLangId = 1,
12990     DISPID_SPCPhoneToId = 2,
12991     DISPID_SPCIdToPhone = 3
12992 } DISPID_SpeechPhoneConverter;
12993 /*****************************************************************************
12994  * _ISpeechVoiceEvents dispinterface
12995  */
12996 #ifndef ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__
12997 #define ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__
12998 
12999 DEFINE_GUID(DIID__ISpeechVoiceEvents, 0xa372acd1, 0x3bef, 0x4bbd, 0x8f,0xfb, 0xcb,0x3e,0x2b,0x41,0x6a,0xf8);
13000 #if defined(__cplusplus) && !defined(CINTERFACE)
13001 MIDL_INTERFACE("a372acd1-3bef-4bbd-8ffb-cb3e2b416af8")
13002 _ISpeechVoiceEvents : public IDispatch
13003 {
13004 };
13005 #ifdef __CRT_UUID_DECL
13006 __CRT_UUID_DECL(_ISpeechVoiceEvents, 0xa372acd1, 0x3bef, 0x4bbd, 0x8f,0xfb, 0xcb,0x3e,0x2b,0x41,0x6a,0xf8)
13007 #endif
13008 #else
13009 typedef struct _ISpeechVoiceEventsVtbl {
13010     BEGIN_INTERFACE
13011 
13012     /*** IUnknown methods ***/
13013     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13014         _ISpeechVoiceEvents *This,
13015         REFIID riid,
13016         void **ppvObject);
13017 
13018     ULONG (STDMETHODCALLTYPE *AddRef)(
13019         _ISpeechVoiceEvents *This);
13020 
13021     ULONG (STDMETHODCALLTYPE *Release)(
13022         _ISpeechVoiceEvents *This);
13023 
13024     /*** IDispatch methods ***/
13025     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13026         _ISpeechVoiceEvents *This,
13027         UINT *pctinfo);
13028 
13029     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13030         _ISpeechVoiceEvents *This,
13031         UINT iTInfo,
13032         LCID lcid,
13033         ITypeInfo **ppTInfo);
13034 
13035     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13036         _ISpeechVoiceEvents *This,
13037         REFIID riid,
13038         LPOLESTR *rgszNames,
13039         UINT cNames,
13040         LCID lcid,
13041         DISPID *rgDispId);
13042 
13043     HRESULT (STDMETHODCALLTYPE *Invoke)(
13044         _ISpeechVoiceEvents *This,
13045         DISPID dispIdMember,
13046         REFIID riid,
13047         LCID lcid,
13048         WORD wFlags,
13049         DISPPARAMS *pDispParams,
13050         VARIANT *pVarResult,
13051         EXCEPINFO *pExcepInfo,
13052         UINT *puArgErr);
13053 
13054     END_INTERFACE
13055 } _ISpeechVoiceEventsVtbl;
13056 
13057 interface _ISpeechVoiceEvents {
13058     CONST_VTBL _ISpeechVoiceEventsVtbl* lpVtbl;
13059 };
13060 
13061 #ifdef COBJMACROS
13062 #ifndef WIDL_C_INLINE_WRAPPERS
13063 /*** IUnknown methods ***/
13064 #define _ISpeechVoiceEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13065 #define _ISpeechVoiceEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
13066 #define _ISpeechVoiceEvents_Release(This) (This)->lpVtbl->Release(This)
13067 /*** IDispatch methods ***/
13068 #define _ISpeechVoiceEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13069 #define _ISpeechVoiceEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13070 #define _ISpeechVoiceEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13071 #define _ISpeechVoiceEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13072 #else
13073 /*** IUnknown methods ***/
13074 static FORCEINLINE HRESULT _ISpeechVoiceEvents_QueryInterface(_ISpeechVoiceEvents* This,REFIID riid,void **ppvObject) {
13075     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13076 }
13077 static FORCEINLINE ULONG _ISpeechVoiceEvents_AddRef(_ISpeechVoiceEvents* This) {
13078     return This->lpVtbl->AddRef(This);
13079 }
13080 static FORCEINLINE ULONG _ISpeechVoiceEvents_Release(_ISpeechVoiceEvents* This) {
13081     return This->lpVtbl->Release(This);
13082 }
13083 /*** IDispatch methods ***/
13084 static FORCEINLINE HRESULT _ISpeechVoiceEvents_GetTypeInfoCount(_ISpeechVoiceEvents* This,UINT *pctinfo) {
13085     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13086 }
13087 static FORCEINLINE HRESULT _ISpeechVoiceEvents_GetTypeInfo(_ISpeechVoiceEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13088     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13089 }
13090 static FORCEINLINE HRESULT _ISpeechVoiceEvents_GetIDsOfNames(_ISpeechVoiceEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13091     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13092 }
13093 static FORCEINLINE HRESULT _ISpeechVoiceEvents_Invoke(_ISpeechVoiceEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13094     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13095 }
13096 #endif
13097 #endif
13098 
13099 #endif
13100 
13101 #endif  /* ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__ */
13102 
13103 /*****************************************************************************
13104  * ISpeechRecognizer interface
13105  */
13106 #ifndef __ISpeechRecognizer_INTERFACE_DEFINED__
13107 #define __ISpeechRecognizer_INTERFACE_DEFINED__
13108 
13109 DEFINE_GUID(IID_ISpeechRecognizer, 0x2d5f1c0c, 0xbd75, 0x4b08, 0x94,0x78, 0x3b,0x11,0xfe,0xa2,0x58,0x6c);
13110 #if defined(__cplusplus) && !defined(CINTERFACE)
13111 MIDL_INTERFACE("2d5f1c0c-bd75-4b08-9478-3b11fea2586c")
13112 ISpeechRecognizer : public IDispatch
13113 {
13114     virtual HRESULT STDMETHODCALLTYPE putref_Recognizer(
13115         ISpeechObjectToken *Recognizer) = 0;
13116 
13117     virtual HRESULT STDMETHODCALLTYPE get_Recognizer(
13118         ISpeechObjectToken **Recognizer) = 0;
13119 
13120     virtual HRESULT STDMETHODCALLTYPE put_AllowAudioInputFormatChangesOnNextSet(
13121         VARIANT_BOOL Allow) = 0;
13122 
13123     virtual HRESULT STDMETHODCALLTYPE get_AllowAudioInputFormatChangesOnNextSet(
13124         VARIANT_BOOL *Allow) = 0;
13125 
13126     virtual HRESULT STDMETHODCALLTYPE putref_AudioInput(
13127         ISpeechObjectToken *AudioInput = 0) = 0;
13128 
13129     virtual HRESULT STDMETHODCALLTYPE get_AudioInput(
13130         ISpeechObjectToken **AudioInput) = 0;
13131 
13132     virtual HRESULT STDMETHODCALLTYPE putref_AudioInputStream(
13133         ISpeechBaseStream *AudioInputStream = 0) = 0;
13134 
13135     virtual HRESULT STDMETHODCALLTYPE get_AudioInputStream(
13136         ISpeechBaseStream **AudioInputStream) = 0;
13137 
13138     virtual HRESULT STDMETHODCALLTYPE get_IsShared(
13139         VARIANT_BOOL *Shared) = 0;
13140 
13141     virtual HRESULT STDMETHODCALLTYPE put_State(
13142         SpeechRecognizerState State) = 0;
13143 
13144     virtual HRESULT STDMETHODCALLTYPE get_State(
13145         SpeechRecognizerState *State) = 0;
13146 
13147     virtual HRESULT STDMETHODCALLTYPE get_Status(
13148         ISpeechRecognizerStatus **Status) = 0;
13149 
13150     virtual HRESULT STDMETHODCALLTYPE putref_Profile(
13151         ISpeechObjectToken *Profile = 0) = 0;
13152 
13153     virtual HRESULT STDMETHODCALLTYPE get_Profile(
13154         ISpeechObjectToken **Profile) = 0;
13155 
13156     virtual HRESULT STDMETHODCALLTYPE EmulateRecognition(
13157         VARIANT TextElements,
13158         VARIANT *ElementDisplayAttributes = 0,
13159         LONG LanguageId = 0) = 0;
13160 
13161     virtual HRESULT STDMETHODCALLTYPE CreateRecoContext(
13162         ISpeechRecoContext **NewContext) = 0;
13163 
13164     virtual HRESULT STDMETHODCALLTYPE GetFormat(
13165         SpeechFormatType Type,
13166         ISpeechAudioFormat **Format) = 0;
13167 
13168     virtual HRESULT STDMETHODCALLTYPE SetPropertyNumber(
13169         const BSTR Name,
13170         LONG Value,
13171         VARIANT_BOOL *Supported) = 0;
13172 
13173     virtual HRESULT STDMETHODCALLTYPE GetPropertyNumber(
13174         const BSTR Name,
13175         LONG *Value,
13176         VARIANT_BOOL *Supported) = 0;
13177 
13178     virtual HRESULT STDMETHODCALLTYPE SetPropertyString(
13179         const BSTR Name,
13180         const BSTR Value,
13181         VARIANT_BOOL *Supported) = 0;
13182 
13183     virtual HRESULT STDMETHODCALLTYPE GetPropertyString(
13184         const BSTR Name,
13185         BSTR *Value,
13186         VARIANT_BOOL *Supported) = 0;
13187 
13188     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
13189         const BSTR TypeOfUI,
13190         const VARIANT *ExtraData,
13191         VARIANT_BOOL *Supported) = 0;
13192 
13193     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
13194         LONG hWndParent,
13195         BSTR Title,
13196         const BSTR TypeOfUI,
13197         const VARIANT *ExtraData = 0) = 0;
13198 
13199     virtual HRESULT STDMETHODCALLTYPE GetRecognizers(
13200         BSTR RequiredAttributes,
13201         BSTR OptionalAttributes,
13202         ISpeechObjectTokens **ObjectTokens) = 0;
13203 
13204     virtual HRESULT STDMETHODCALLTYPE GetAudioInputs(
13205         BSTR RequiredAttributes,
13206         BSTR OptionalAttributes,
13207         ISpeechObjectTokens **ObjectTokens) = 0;
13208 
13209     virtual HRESULT STDMETHODCALLTYPE GetProfiles(
13210         BSTR RequiredAttributes,
13211         BSTR OptionalAttributes,
13212         ISpeechObjectTokens **ObjectTokens) = 0;
13213 
13214 };
13215 #ifdef __CRT_UUID_DECL
13216 __CRT_UUID_DECL(ISpeechRecognizer, 0x2d5f1c0c, 0xbd75, 0x4b08, 0x94,0x78, 0x3b,0x11,0xfe,0xa2,0x58,0x6c)
13217 #endif
13218 #else
13219 typedef struct ISpeechRecognizerVtbl {
13220     BEGIN_INTERFACE
13221 
13222     /*** IUnknown methods ***/
13223     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13224         ISpeechRecognizer *This,
13225         REFIID riid,
13226         void **ppvObject);
13227 
13228     ULONG (STDMETHODCALLTYPE *AddRef)(
13229         ISpeechRecognizer *This);
13230 
13231     ULONG (STDMETHODCALLTYPE *Release)(
13232         ISpeechRecognizer *This);
13233 
13234     /*** IDispatch methods ***/
13235     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13236         ISpeechRecognizer *This,
13237         UINT *pctinfo);
13238 
13239     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13240         ISpeechRecognizer *This,
13241         UINT iTInfo,
13242         LCID lcid,
13243         ITypeInfo **ppTInfo);
13244 
13245     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13246         ISpeechRecognizer *This,
13247         REFIID riid,
13248         LPOLESTR *rgszNames,
13249         UINT cNames,
13250         LCID lcid,
13251         DISPID *rgDispId);
13252 
13253     HRESULT (STDMETHODCALLTYPE *Invoke)(
13254         ISpeechRecognizer *This,
13255         DISPID dispIdMember,
13256         REFIID riid,
13257         LCID lcid,
13258         WORD wFlags,
13259         DISPPARAMS *pDispParams,
13260         VARIANT *pVarResult,
13261         EXCEPINFO *pExcepInfo,
13262         UINT *puArgErr);
13263 
13264     /*** ISpeechRecognizer methods ***/
13265     HRESULT (STDMETHODCALLTYPE *putref_Recognizer)(
13266         ISpeechRecognizer *This,
13267         ISpeechObjectToken *Recognizer);
13268 
13269     HRESULT (STDMETHODCALLTYPE *get_Recognizer)(
13270         ISpeechRecognizer *This,
13271         ISpeechObjectToken **Recognizer);
13272 
13273     HRESULT (STDMETHODCALLTYPE *put_AllowAudioInputFormatChangesOnNextSet)(
13274         ISpeechRecognizer *This,
13275         VARIANT_BOOL Allow);
13276 
13277     HRESULT (STDMETHODCALLTYPE *get_AllowAudioInputFormatChangesOnNextSet)(
13278         ISpeechRecognizer *This,
13279         VARIANT_BOOL *Allow);
13280 
13281     HRESULT (STDMETHODCALLTYPE *putref_AudioInput)(
13282         ISpeechRecognizer *This,
13283         ISpeechObjectToken *AudioInput);
13284 
13285     HRESULT (STDMETHODCALLTYPE *get_AudioInput)(
13286         ISpeechRecognizer *This,
13287         ISpeechObjectToken **AudioInput);
13288 
13289     HRESULT (STDMETHODCALLTYPE *putref_AudioInputStream)(
13290         ISpeechRecognizer *This,
13291         ISpeechBaseStream *AudioInputStream);
13292 
13293     HRESULT (STDMETHODCALLTYPE *get_AudioInputStream)(
13294         ISpeechRecognizer *This,
13295         ISpeechBaseStream **AudioInputStream);
13296 
13297     HRESULT (STDMETHODCALLTYPE *get_IsShared)(
13298         ISpeechRecognizer *This,
13299         VARIANT_BOOL *Shared);
13300 
13301     HRESULT (STDMETHODCALLTYPE *put_State)(
13302         ISpeechRecognizer *This,
13303         SpeechRecognizerState State);
13304 
13305     HRESULT (STDMETHODCALLTYPE *get_State)(
13306         ISpeechRecognizer *This,
13307         SpeechRecognizerState *State);
13308 
13309     HRESULT (STDMETHODCALLTYPE *get_Status)(
13310         ISpeechRecognizer *This,
13311         ISpeechRecognizerStatus **Status);
13312 
13313     HRESULT (STDMETHODCALLTYPE *putref_Profile)(
13314         ISpeechRecognizer *This,
13315         ISpeechObjectToken *Profile);
13316 
13317     HRESULT (STDMETHODCALLTYPE *get_Profile)(
13318         ISpeechRecognizer *This,
13319         ISpeechObjectToken **Profile);
13320 
13321     HRESULT (STDMETHODCALLTYPE *EmulateRecognition)(
13322         ISpeechRecognizer *This,
13323         VARIANT TextElements,
13324         VARIANT *ElementDisplayAttributes,
13325         LONG LanguageId);
13326 
13327     HRESULT (STDMETHODCALLTYPE *CreateRecoContext)(
13328         ISpeechRecognizer *This,
13329         ISpeechRecoContext **NewContext);
13330 
13331     HRESULT (STDMETHODCALLTYPE *GetFormat)(
13332         ISpeechRecognizer *This,
13333         SpeechFormatType Type,
13334         ISpeechAudioFormat **Format);
13335 
13336     HRESULT (STDMETHODCALLTYPE *SetPropertyNumber)(
13337         ISpeechRecognizer *This,
13338         const BSTR Name,
13339         LONG Value,
13340         VARIANT_BOOL *Supported);
13341 
13342     HRESULT (STDMETHODCALLTYPE *GetPropertyNumber)(
13343         ISpeechRecognizer *This,
13344         const BSTR Name,
13345         LONG *Value,
13346         VARIANT_BOOL *Supported);
13347 
13348     HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
13349         ISpeechRecognizer *This,
13350         const BSTR Name,
13351         const BSTR Value,
13352         VARIANT_BOOL *Supported);
13353 
13354     HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
13355         ISpeechRecognizer *This,
13356         const BSTR Name,
13357         BSTR *Value,
13358         VARIANT_BOOL *Supported);
13359 
13360     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
13361         ISpeechRecognizer *This,
13362         const BSTR TypeOfUI,
13363         const VARIANT *ExtraData,
13364         VARIANT_BOOL *Supported);
13365 
13366     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
13367         ISpeechRecognizer *This,
13368         LONG hWndParent,
13369         BSTR Title,
13370         const BSTR TypeOfUI,
13371         const VARIANT *ExtraData);
13372 
13373     HRESULT (STDMETHODCALLTYPE *GetRecognizers)(
13374         ISpeechRecognizer *This,
13375         BSTR RequiredAttributes,
13376         BSTR OptionalAttributes,
13377         ISpeechObjectTokens **ObjectTokens);
13378 
13379     HRESULT (STDMETHODCALLTYPE *GetAudioInputs)(
13380         ISpeechRecognizer *This,
13381         BSTR RequiredAttributes,
13382         BSTR OptionalAttributes,
13383         ISpeechObjectTokens **ObjectTokens);
13384 
13385     HRESULT (STDMETHODCALLTYPE *GetProfiles)(
13386         ISpeechRecognizer *This,
13387         BSTR RequiredAttributes,
13388         BSTR OptionalAttributes,
13389         ISpeechObjectTokens **ObjectTokens);
13390 
13391     END_INTERFACE
13392 } ISpeechRecognizerVtbl;
13393 
13394 interface ISpeechRecognizer {
13395     CONST_VTBL ISpeechRecognizerVtbl* lpVtbl;
13396 };
13397 
13398 #ifdef COBJMACROS
13399 #ifndef WIDL_C_INLINE_WRAPPERS
13400 /*** IUnknown methods ***/
13401 #define ISpeechRecognizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13402 #define ISpeechRecognizer_AddRef(This) (This)->lpVtbl->AddRef(This)
13403 #define ISpeechRecognizer_Release(This) (This)->lpVtbl->Release(This)
13404 /*** IDispatch methods ***/
13405 #define ISpeechRecognizer_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13406 #define ISpeechRecognizer_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13407 #define ISpeechRecognizer_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13408 #define ISpeechRecognizer_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13409 /*** ISpeechRecognizer methods ***/
13410 #define ISpeechRecognizer_putref_Recognizer(This,Recognizer) (This)->lpVtbl->putref_Recognizer(This,Recognizer)
13411 #define ISpeechRecognizer_get_Recognizer(This,Recognizer) (This)->lpVtbl->get_Recognizer(This,Recognizer)
13412 #define ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->put_AllowAudioInputFormatChangesOnNextSet(This,Allow)
13413 #define ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->get_AllowAudioInputFormatChangesOnNextSet(This,Allow)
13414 #define ISpeechRecognizer_putref_AudioInput(This,AudioInput) (This)->lpVtbl->putref_AudioInput(This,AudioInput)
13415 #define ISpeechRecognizer_get_AudioInput(This,AudioInput) (This)->lpVtbl->get_AudioInput(This,AudioInput)
13416 #define ISpeechRecognizer_putref_AudioInputStream(This,AudioInputStream) (This)->lpVtbl->putref_AudioInputStream(This,AudioInputStream)
13417 #define ISpeechRecognizer_get_AudioInputStream(This,AudioInputStream) (This)->lpVtbl->get_AudioInputStream(This,AudioInputStream)
13418 #define ISpeechRecognizer_get_IsShared(This,Shared) (This)->lpVtbl->get_IsShared(This,Shared)
13419 #define ISpeechRecognizer_put_State(This,State) (This)->lpVtbl->put_State(This,State)
13420 #define ISpeechRecognizer_get_State(This,State) (This)->lpVtbl->get_State(This,State)
13421 #define ISpeechRecognizer_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
13422 #define ISpeechRecognizer_putref_Profile(This,Profile) (This)->lpVtbl->putref_Profile(This,Profile)
13423 #define ISpeechRecognizer_get_Profile(This,Profile) (This)->lpVtbl->get_Profile(This,Profile)
13424 #define ISpeechRecognizer_EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId) (This)->lpVtbl->EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId)
13425 #define ISpeechRecognizer_CreateRecoContext(This,NewContext) (This)->lpVtbl->CreateRecoContext(This,NewContext)
13426 #define ISpeechRecognizer_GetFormat(This,Type,Format) (This)->lpVtbl->GetFormat(This,Type,Format)
13427 #define ISpeechRecognizer_SetPropertyNumber(This,Name,Value,Supported) (This)->lpVtbl->SetPropertyNumber(This,Name,Value,Supported)
13428 #define ISpeechRecognizer_GetPropertyNumber(This,Name,Value,Supported) (This)->lpVtbl->GetPropertyNumber(This,Name,Value,Supported)
13429 #define ISpeechRecognizer_SetPropertyString(This,Name,Value,Supported) (This)->lpVtbl->SetPropertyString(This,Name,Value,Supported)
13430 #define ISpeechRecognizer_GetPropertyString(This,Name,Value,Supported) (This)->lpVtbl->GetPropertyString(This,Name,Value,Supported)
13431 #define ISpeechRecognizer_IsUISupported(This,TypeOfUI,ExtraData,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported)
13432 #define ISpeechRecognizer_DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData) (This)->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData)
13433 #define ISpeechRecognizer_GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
13434 #define ISpeechRecognizer_GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
13435 #define ISpeechRecognizer_GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
13436 #else
13437 /*** IUnknown methods ***/
13438 static FORCEINLINE HRESULT ISpeechRecognizer_QueryInterface(ISpeechRecognizer* This,REFIID riid,void **ppvObject) {
13439     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13440 }
13441 static FORCEINLINE ULONG ISpeechRecognizer_AddRef(ISpeechRecognizer* This) {
13442     return This->lpVtbl->AddRef(This);
13443 }
13444 static FORCEINLINE ULONG ISpeechRecognizer_Release(ISpeechRecognizer* This) {
13445     return This->lpVtbl->Release(This);
13446 }
13447 /*** IDispatch methods ***/
13448 static FORCEINLINE HRESULT ISpeechRecognizer_GetTypeInfoCount(ISpeechRecognizer* This,UINT *pctinfo) {
13449     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13450 }
13451 static FORCEINLINE HRESULT ISpeechRecognizer_GetTypeInfo(ISpeechRecognizer* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13452     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13453 }
13454 static FORCEINLINE HRESULT ISpeechRecognizer_GetIDsOfNames(ISpeechRecognizer* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13455     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13456 }
13457 static FORCEINLINE HRESULT ISpeechRecognizer_Invoke(ISpeechRecognizer* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13458     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13459 }
13460 /*** ISpeechRecognizer methods ***/
13461 static FORCEINLINE HRESULT ISpeechRecognizer_putref_Recognizer(ISpeechRecognizer* This,ISpeechObjectToken *Recognizer) {
13462     return This->lpVtbl->putref_Recognizer(This,Recognizer);
13463 }
13464 static FORCEINLINE HRESULT ISpeechRecognizer_get_Recognizer(ISpeechRecognizer* This,ISpeechObjectToken **Recognizer) {
13465     return This->lpVtbl->get_Recognizer(This,Recognizer);
13466 }
13467 static FORCEINLINE HRESULT ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet(ISpeechRecognizer* This,VARIANT_BOOL Allow) {
13468     return This->lpVtbl->put_AllowAudioInputFormatChangesOnNextSet(This,Allow);
13469 }
13470 static FORCEINLINE HRESULT ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet(ISpeechRecognizer* This,VARIANT_BOOL *Allow) {
13471     return This->lpVtbl->get_AllowAudioInputFormatChangesOnNextSet(This,Allow);
13472 }
13473 static FORCEINLINE HRESULT ISpeechRecognizer_putref_AudioInput(ISpeechRecognizer* This,ISpeechObjectToken *AudioInput) {
13474     return This->lpVtbl->putref_AudioInput(This,AudioInput);
13475 }
13476 static FORCEINLINE HRESULT ISpeechRecognizer_get_AudioInput(ISpeechRecognizer* This,ISpeechObjectToken **AudioInput) {
13477     return This->lpVtbl->get_AudioInput(This,AudioInput);
13478 }
13479 static FORCEINLINE HRESULT ISpeechRecognizer_putref_AudioInputStream(ISpeechRecognizer* This,ISpeechBaseStream *AudioInputStream) {
13480     return This->lpVtbl->putref_AudioInputStream(This,AudioInputStream);
13481 }
13482 static FORCEINLINE HRESULT ISpeechRecognizer_get_AudioInputStream(ISpeechRecognizer* This,ISpeechBaseStream **AudioInputStream) {
13483     return This->lpVtbl->get_AudioInputStream(This,AudioInputStream);
13484 }
13485 static FORCEINLINE HRESULT ISpeechRecognizer_get_IsShared(ISpeechRecognizer* This,VARIANT_BOOL *Shared) {
13486     return This->lpVtbl->get_IsShared(This,Shared);
13487 }
13488 static FORCEINLINE HRESULT ISpeechRecognizer_put_State(ISpeechRecognizer* This,SpeechRecognizerState State) {
13489     return This->lpVtbl->put_State(This,State);
13490 }
13491 static FORCEINLINE HRESULT ISpeechRecognizer_get_State(ISpeechRecognizer* This,SpeechRecognizerState *State) {
13492     return This->lpVtbl->get_State(This,State);
13493 }
13494 static FORCEINLINE HRESULT ISpeechRecognizer_get_Status(ISpeechRecognizer* This,ISpeechRecognizerStatus **Status) {
13495     return This->lpVtbl->get_Status(This,Status);
13496 }
13497 static FORCEINLINE HRESULT ISpeechRecognizer_putref_Profile(ISpeechRecognizer* This,ISpeechObjectToken *Profile) {
13498     return This->lpVtbl->putref_Profile(This,Profile);
13499 }
13500 static FORCEINLINE HRESULT ISpeechRecognizer_get_Profile(ISpeechRecognizer* This,ISpeechObjectToken **Profile) {
13501     return This->lpVtbl->get_Profile(This,Profile);
13502 }
13503 static FORCEINLINE HRESULT ISpeechRecognizer_EmulateRecognition(ISpeechRecognizer* This,VARIANT TextElements,VARIANT *ElementDisplayAttributes,LONG LanguageId) {
13504     return This->lpVtbl->EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId);
13505 }
13506 static FORCEINLINE HRESULT ISpeechRecognizer_CreateRecoContext(ISpeechRecognizer* This,ISpeechRecoContext **NewContext) {
13507     return This->lpVtbl->CreateRecoContext(This,NewContext);
13508 }
13509 static FORCEINLINE HRESULT ISpeechRecognizer_GetFormat(ISpeechRecognizer* This,SpeechFormatType Type,ISpeechAudioFormat **Format) {
13510     return This->lpVtbl->GetFormat(This,Type,Format);
13511 }
13512 static FORCEINLINE HRESULT ISpeechRecognizer_SetPropertyNumber(ISpeechRecognizer* This,const BSTR Name,LONG Value,VARIANT_BOOL *Supported) {
13513     return This->lpVtbl->SetPropertyNumber(This,Name,Value,Supported);
13514 }
13515 static FORCEINLINE HRESULT ISpeechRecognizer_GetPropertyNumber(ISpeechRecognizer* This,const BSTR Name,LONG *Value,VARIANT_BOOL *Supported) {
13516     return This->lpVtbl->GetPropertyNumber(This,Name,Value,Supported);
13517 }
13518 static FORCEINLINE HRESULT ISpeechRecognizer_SetPropertyString(ISpeechRecognizer* This,const BSTR Name,const BSTR Value,VARIANT_BOOL *Supported) {
13519     return This->lpVtbl->SetPropertyString(This,Name,Value,Supported);
13520 }
13521 static FORCEINLINE HRESULT ISpeechRecognizer_GetPropertyString(ISpeechRecognizer* This,const BSTR Name,BSTR *Value,VARIANT_BOOL *Supported) {
13522     return This->lpVtbl->GetPropertyString(This,Name,Value,Supported);
13523 }
13524 static FORCEINLINE HRESULT ISpeechRecognizer_IsUISupported(ISpeechRecognizer* This,const BSTR TypeOfUI,const VARIANT *ExtraData,VARIANT_BOOL *Supported) {
13525     return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported);
13526 }
13527 static FORCEINLINE HRESULT ISpeechRecognizer_DisplayUI(ISpeechRecognizer* This,LONG hWndParent,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData) {
13528     return This->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData);
13529 }
13530 static FORCEINLINE HRESULT ISpeechRecognizer_GetRecognizers(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
13531     return This->lpVtbl->GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
13532 }
13533 static FORCEINLINE HRESULT ISpeechRecognizer_GetAudioInputs(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
13534     return This->lpVtbl->GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
13535 }
13536 static FORCEINLINE HRESULT ISpeechRecognizer_GetProfiles(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
13537     return This->lpVtbl->GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
13538 }
13539 #endif
13540 #endif
13541 
13542 #endif
13543 
13544 
13545 #endif  /* __ISpeechRecognizer_INTERFACE_DEFINED__ */
13546 
13547 /*****************************************************************************
13548  * ISpeechRecognizerStatus interface
13549  */
13550 #ifndef __ISpeechRecognizerStatus_INTERFACE_DEFINED__
13551 #define __ISpeechRecognizerStatus_INTERFACE_DEFINED__
13552 
13553 DEFINE_GUID(IID_ISpeechRecognizerStatus, 0xbff9e781, 0x53ec, 0x484e, 0xbb,0x8a, 0x0e,0x1b,0x55,0x51,0xe3,0x5c);
13554 #if defined(__cplusplus) && !defined(CINTERFACE)
13555 MIDL_INTERFACE("bff9e781-53ec-484e-bb8a-0e1b5551e35c")
13556 ISpeechRecognizerStatus : public IDispatch
13557 {
13558     virtual HRESULT STDMETHODCALLTYPE get_AudioStatus(
13559         ISpeechAudioStatus **AudioStatus) = 0;
13560 
13561     virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamPosition(
13562         VARIANT *pCurrentStreamPos) = 0;
13563 
13564     virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamNumber(
13565         LONG *StreamNumber) = 0;
13566 
13567     virtual HRESULT STDMETHODCALLTYPE get_NumberOfActiveRules(
13568         LONG *NumberOfActiveRules) = 0;
13569 
13570     virtual HRESULT STDMETHODCALLTYPE get_ClsidEngine(
13571         BSTR *ClsidEngine) = 0;
13572 
13573     virtual HRESULT STDMETHODCALLTYPE get_SupportedLanguages(
13574         VARIANT *SupportedLanguages) = 0;
13575 
13576 };
13577 #ifdef __CRT_UUID_DECL
13578 __CRT_UUID_DECL(ISpeechRecognizerStatus, 0xbff9e781, 0x53ec, 0x484e, 0xbb,0x8a, 0x0e,0x1b,0x55,0x51,0xe3,0x5c)
13579 #endif
13580 #else
13581 typedef struct ISpeechRecognizerStatusVtbl {
13582     BEGIN_INTERFACE
13583 
13584     /*** IUnknown methods ***/
13585     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13586         ISpeechRecognizerStatus *This,
13587         REFIID riid,
13588         void **ppvObject);
13589 
13590     ULONG (STDMETHODCALLTYPE *AddRef)(
13591         ISpeechRecognizerStatus *This);
13592 
13593     ULONG (STDMETHODCALLTYPE *Release)(
13594         ISpeechRecognizerStatus *This);
13595 
13596     /*** IDispatch methods ***/
13597     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13598         ISpeechRecognizerStatus *This,
13599         UINT *pctinfo);
13600 
13601     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13602         ISpeechRecognizerStatus *This,
13603         UINT iTInfo,
13604         LCID lcid,
13605         ITypeInfo **ppTInfo);
13606 
13607     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13608         ISpeechRecognizerStatus *This,
13609         REFIID riid,
13610         LPOLESTR *rgszNames,
13611         UINT cNames,
13612         LCID lcid,
13613         DISPID *rgDispId);
13614 
13615     HRESULT (STDMETHODCALLTYPE *Invoke)(
13616         ISpeechRecognizerStatus *This,
13617         DISPID dispIdMember,
13618         REFIID riid,
13619         LCID lcid,
13620         WORD wFlags,
13621         DISPPARAMS *pDispParams,
13622         VARIANT *pVarResult,
13623         EXCEPINFO *pExcepInfo,
13624         UINT *puArgErr);
13625 
13626     /*** ISpeechRecognizerStatus methods ***/
13627     HRESULT (STDMETHODCALLTYPE *get_AudioStatus)(
13628         ISpeechRecognizerStatus *This,
13629         ISpeechAudioStatus **AudioStatus);
13630 
13631     HRESULT (STDMETHODCALLTYPE *get_CurrentStreamPosition)(
13632         ISpeechRecognizerStatus *This,
13633         VARIANT *pCurrentStreamPos);
13634 
13635     HRESULT (STDMETHODCALLTYPE *get_CurrentStreamNumber)(
13636         ISpeechRecognizerStatus *This,
13637         LONG *StreamNumber);
13638 
13639     HRESULT (STDMETHODCALLTYPE *get_NumberOfActiveRules)(
13640         ISpeechRecognizerStatus *This,
13641         LONG *NumberOfActiveRules);
13642 
13643     HRESULT (STDMETHODCALLTYPE *get_ClsidEngine)(
13644         ISpeechRecognizerStatus *This,
13645         BSTR *ClsidEngine);
13646 
13647     HRESULT (STDMETHODCALLTYPE *get_SupportedLanguages)(
13648         ISpeechRecognizerStatus *This,
13649         VARIANT *SupportedLanguages);
13650 
13651     END_INTERFACE
13652 } ISpeechRecognizerStatusVtbl;
13653 
13654 interface ISpeechRecognizerStatus {
13655     CONST_VTBL ISpeechRecognizerStatusVtbl* lpVtbl;
13656 };
13657 
13658 #ifdef COBJMACROS
13659 #ifndef WIDL_C_INLINE_WRAPPERS
13660 /*** IUnknown methods ***/
13661 #define ISpeechRecognizerStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13662 #define ISpeechRecognizerStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
13663 #define ISpeechRecognizerStatus_Release(This) (This)->lpVtbl->Release(This)
13664 /*** IDispatch methods ***/
13665 #define ISpeechRecognizerStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13666 #define ISpeechRecognizerStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13667 #define ISpeechRecognizerStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13668 #define ISpeechRecognizerStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13669 /*** ISpeechRecognizerStatus methods ***/
13670 #define ISpeechRecognizerStatus_get_AudioStatus(This,AudioStatus) (This)->lpVtbl->get_AudioStatus(This,AudioStatus)
13671 #define ISpeechRecognizerStatus_get_CurrentStreamPosition(This,pCurrentStreamPos) (This)->lpVtbl->get_CurrentStreamPosition(This,pCurrentStreamPos)
13672 #define ISpeechRecognizerStatus_get_CurrentStreamNumber(This,StreamNumber) (This)->lpVtbl->get_CurrentStreamNumber(This,StreamNumber)
13673 #define ISpeechRecognizerStatus_get_NumberOfActiveRules(This,NumberOfActiveRules) (This)->lpVtbl->get_NumberOfActiveRules(This,NumberOfActiveRules)
13674 #define ISpeechRecognizerStatus_get_ClsidEngine(This,ClsidEngine) (This)->lpVtbl->get_ClsidEngine(This,ClsidEngine)
13675 #define ISpeechRecognizerStatus_get_SupportedLanguages(This,SupportedLanguages) (This)->lpVtbl->get_SupportedLanguages(This,SupportedLanguages)
13676 #else
13677 /*** IUnknown methods ***/
13678 static FORCEINLINE HRESULT ISpeechRecognizerStatus_QueryInterface(ISpeechRecognizerStatus* This,REFIID riid,void **ppvObject) {
13679     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13680 }
13681 static FORCEINLINE ULONG ISpeechRecognizerStatus_AddRef(ISpeechRecognizerStatus* This) {
13682     return This->lpVtbl->AddRef(This);
13683 }
13684 static FORCEINLINE ULONG ISpeechRecognizerStatus_Release(ISpeechRecognizerStatus* This) {
13685     return This->lpVtbl->Release(This);
13686 }
13687 /*** IDispatch methods ***/
13688 static FORCEINLINE HRESULT ISpeechRecognizerStatus_GetTypeInfoCount(ISpeechRecognizerStatus* This,UINT *pctinfo) {
13689     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13690 }
13691 static FORCEINLINE HRESULT ISpeechRecognizerStatus_GetTypeInfo(ISpeechRecognizerStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13692     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13693 }
13694 static FORCEINLINE HRESULT ISpeechRecognizerStatus_GetIDsOfNames(ISpeechRecognizerStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13695     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13696 }
13697 static FORCEINLINE HRESULT ISpeechRecognizerStatus_Invoke(ISpeechRecognizerStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13698     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13699 }
13700 /*** ISpeechRecognizerStatus methods ***/
13701 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_AudioStatus(ISpeechRecognizerStatus* This,ISpeechAudioStatus **AudioStatus) {
13702     return This->lpVtbl->get_AudioStatus(This,AudioStatus);
13703 }
13704 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_CurrentStreamPosition(ISpeechRecognizerStatus* This,VARIANT *pCurrentStreamPos) {
13705     return This->lpVtbl->get_CurrentStreamPosition(This,pCurrentStreamPos);
13706 }
13707 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_CurrentStreamNumber(ISpeechRecognizerStatus* This,LONG *StreamNumber) {
13708     return This->lpVtbl->get_CurrentStreamNumber(This,StreamNumber);
13709 }
13710 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_NumberOfActiveRules(ISpeechRecognizerStatus* This,LONG *NumberOfActiveRules) {
13711     return This->lpVtbl->get_NumberOfActiveRules(This,NumberOfActiveRules);
13712 }
13713 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_ClsidEngine(ISpeechRecognizerStatus* This,BSTR *ClsidEngine) {
13714     return This->lpVtbl->get_ClsidEngine(This,ClsidEngine);
13715 }
13716 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_SupportedLanguages(ISpeechRecognizerStatus* This,VARIANT *SupportedLanguages) {
13717     return This->lpVtbl->get_SupportedLanguages(This,SupportedLanguages);
13718 }
13719 #endif
13720 #endif
13721 
13722 #endif
13723 
13724 
13725 #endif  /* __ISpeechRecognizerStatus_INTERFACE_DEFINED__ */
13726 
13727 /*****************************************************************************
13728  * ISpeechRecoContext interface
13729  */
13730 #ifndef __ISpeechRecoContext_INTERFACE_DEFINED__
13731 #define __ISpeechRecoContext_INTERFACE_DEFINED__
13732 
13733 DEFINE_GUID(IID_ISpeechRecoContext, 0x580aa49d, 0x7e1e, 0x4809, 0xb8,0xe2, 0x57,0xda,0x80,0x61,0x04,0xb8);
13734 #if defined(__cplusplus) && !defined(CINTERFACE)
13735 MIDL_INTERFACE("580aa49d-7e1e-4809-b8e2-57da806104b8")
13736 ISpeechRecoContext : public IDispatch
13737 {
13738     virtual HRESULT STDMETHODCALLTYPE get_Recognizer(
13739         ISpeechRecognizer **Recognizer) = 0;
13740 
13741     virtual HRESULT STDMETHODCALLTYPE get_AudioInputInterferenceStatus(
13742         SpeechInterference *Interference) = 0;
13743 
13744     virtual HRESULT STDMETHODCALLTYPE get_RequestedUIType(
13745         BSTR *UIType) = 0;
13746 
13747     virtual HRESULT STDMETHODCALLTYPE putref_Voice(
13748         ISpeechVoice *Voice) = 0;
13749 
13750     virtual HRESULT STDMETHODCALLTYPE get_Voice(
13751         ISpeechVoice **Voice) = 0;
13752 
13753     virtual HRESULT STDMETHODCALLTYPE put_AllowVoiceFormatMatchingOnNextSet(
13754         VARIANT_BOOL Allow) = 0;
13755 
13756     virtual HRESULT STDMETHODCALLTYPE get_AllowVoiceFormatMatchingOnNextSet(
13757         VARIANT_BOOL *pAllow) = 0;
13758 
13759     virtual HRESULT STDMETHODCALLTYPE put_VoicePurgeEvent(
13760         SpeechRecoEvents EventInterest) = 0;
13761 
13762     virtual HRESULT STDMETHODCALLTYPE get_VoicePurgeEvent(
13763         SpeechRecoEvents *EventInterest) = 0;
13764 
13765     virtual HRESULT STDMETHODCALLTYPE put_EventInterests(
13766         SpeechRecoEvents EventInterest) = 0;
13767 
13768     virtual HRESULT STDMETHODCALLTYPE get_EventInterests(
13769         SpeechRecoEvents *EventInterest) = 0;
13770 
13771     virtual HRESULT STDMETHODCALLTYPE put_CmdMaxAlternates(
13772         LONG MaxAlternates) = 0;
13773 
13774     virtual HRESULT STDMETHODCALLTYPE get_CmdMaxAlternates(
13775         LONG *MaxAlternates) = 0;
13776 
13777     virtual HRESULT STDMETHODCALLTYPE put_State(
13778         SpeechRecoContextState State) = 0;
13779 
13780     virtual HRESULT STDMETHODCALLTYPE get_State(
13781         SpeechRecoContextState *State) = 0;
13782 
13783     virtual HRESULT STDMETHODCALLTYPE put_RetainedAudio(
13784         SpeechRetainedAudioOptions Option) = 0;
13785 
13786     virtual HRESULT STDMETHODCALLTYPE get_RetainedAudio(
13787         SpeechRetainedAudioOptions *Option) = 0;
13788 
13789     virtual HRESULT STDMETHODCALLTYPE putref_RetainedAudioFormat(
13790         ISpeechAudioFormat *Format) = 0;
13791 
13792     virtual HRESULT STDMETHODCALLTYPE get_RetainedAudioFormat(
13793         ISpeechAudioFormat **Format) = 0;
13794 
13795     virtual HRESULT STDMETHODCALLTYPE Pause(
13796         ) = 0;
13797 
13798     virtual HRESULT STDMETHODCALLTYPE Resume(
13799         ) = 0;
13800 
13801     virtual HRESULT STDMETHODCALLTYPE CreateGrammar(
13802         VARIANT GrammarId,
13803         ISpeechRecoGrammar **Grammar) = 0;
13804 
13805     virtual HRESULT STDMETHODCALLTYPE CreateResultFromMemory(
13806         VARIANT *ResultBlock,
13807         ISpeechRecoResult **Result) = 0;
13808 
13809     virtual HRESULT STDMETHODCALLTYPE Bookmark(
13810         SpeechBookmarkOptions Options,
13811         VARIANT StreamPos,
13812         VARIANT BookmarkId) = 0;
13813 
13814     virtual HRESULT STDMETHODCALLTYPE SetAdaptationData(
13815         BSTR AdaptationString) = 0;
13816 
13817 };
13818 #ifdef __CRT_UUID_DECL
13819 __CRT_UUID_DECL(ISpeechRecoContext, 0x580aa49d, 0x7e1e, 0x4809, 0xb8,0xe2, 0x57,0xda,0x80,0x61,0x04,0xb8)
13820 #endif
13821 #else
13822 typedef struct ISpeechRecoContextVtbl {
13823     BEGIN_INTERFACE
13824 
13825     /*** IUnknown methods ***/
13826     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13827         ISpeechRecoContext *This,
13828         REFIID riid,
13829         void **ppvObject);
13830 
13831     ULONG (STDMETHODCALLTYPE *AddRef)(
13832         ISpeechRecoContext *This);
13833 
13834     ULONG (STDMETHODCALLTYPE *Release)(
13835         ISpeechRecoContext *This);
13836 
13837     /*** IDispatch methods ***/
13838     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13839         ISpeechRecoContext *This,
13840         UINT *pctinfo);
13841 
13842     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13843         ISpeechRecoContext *This,
13844         UINT iTInfo,
13845         LCID lcid,
13846         ITypeInfo **ppTInfo);
13847 
13848     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13849         ISpeechRecoContext *This,
13850         REFIID riid,
13851         LPOLESTR *rgszNames,
13852         UINT cNames,
13853         LCID lcid,
13854         DISPID *rgDispId);
13855 
13856     HRESULT (STDMETHODCALLTYPE *Invoke)(
13857         ISpeechRecoContext *This,
13858         DISPID dispIdMember,
13859         REFIID riid,
13860         LCID lcid,
13861         WORD wFlags,
13862         DISPPARAMS *pDispParams,
13863         VARIANT *pVarResult,
13864         EXCEPINFO *pExcepInfo,
13865         UINT *puArgErr);
13866 
13867     /*** ISpeechRecoContext methods ***/
13868     HRESULT (STDMETHODCALLTYPE *get_Recognizer)(
13869         ISpeechRecoContext *This,
13870         ISpeechRecognizer **Recognizer);
13871 
13872     HRESULT (STDMETHODCALLTYPE *get_AudioInputInterferenceStatus)(
13873         ISpeechRecoContext *This,
13874         SpeechInterference *Interference);
13875 
13876     HRESULT (STDMETHODCALLTYPE *get_RequestedUIType)(
13877         ISpeechRecoContext *This,
13878         BSTR *UIType);
13879 
13880     HRESULT (STDMETHODCALLTYPE *putref_Voice)(
13881         ISpeechRecoContext *This,
13882         ISpeechVoice *Voice);
13883 
13884     HRESULT (STDMETHODCALLTYPE *get_Voice)(
13885         ISpeechRecoContext *This,
13886         ISpeechVoice **Voice);
13887 
13888     HRESULT (STDMETHODCALLTYPE *put_AllowVoiceFormatMatchingOnNextSet)(
13889         ISpeechRecoContext *This,
13890         VARIANT_BOOL Allow);
13891 
13892     HRESULT (STDMETHODCALLTYPE *get_AllowVoiceFormatMatchingOnNextSet)(
13893         ISpeechRecoContext *This,
13894         VARIANT_BOOL *pAllow);
13895 
13896     HRESULT (STDMETHODCALLTYPE *put_VoicePurgeEvent)(
13897         ISpeechRecoContext *This,
13898         SpeechRecoEvents EventInterest);
13899 
13900     HRESULT (STDMETHODCALLTYPE *get_VoicePurgeEvent)(
13901         ISpeechRecoContext *This,
13902         SpeechRecoEvents *EventInterest);
13903 
13904     HRESULT (STDMETHODCALLTYPE *put_EventInterests)(
13905         ISpeechRecoContext *This,
13906         SpeechRecoEvents EventInterest);
13907 
13908     HRESULT (STDMETHODCALLTYPE *get_EventInterests)(
13909         ISpeechRecoContext *This,
13910         SpeechRecoEvents *EventInterest);
13911 
13912     HRESULT (STDMETHODCALLTYPE *put_CmdMaxAlternates)(
13913         ISpeechRecoContext *This,
13914         LONG MaxAlternates);
13915 
13916     HRESULT (STDMETHODCALLTYPE *get_CmdMaxAlternates)(
13917         ISpeechRecoContext *This,
13918         LONG *MaxAlternates);
13919 
13920     HRESULT (STDMETHODCALLTYPE *put_State)(
13921         ISpeechRecoContext *This,
13922         SpeechRecoContextState State);
13923 
13924     HRESULT (STDMETHODCALLTYPE *get_State)(
13925         ISpeechRecoContext *This,
13926         SpeechRecoContextState *State);
13927 
13928     HRESULT (STDMETHODCALLTYPE *put_RetainedAudio)(
13929         ISpeechRecoContext *This,
13930         SpeechRetainedAudioOptions Option);
13931 
13932     HRESULT (STDMETHODCALLTYPE *get_RetainedAudio)(
13933         ISpeechRecoContext *This,
13934         SpeechRetainedAudioOptions *Option);
13935 
13936     HRESULT (STDMETHODCALLTYPE *putref_RetainedAudioFormat)(
13937         ISpeechRecoContext *This,
13938         ISpeechAudioFormat *Format);
13939 
13940     HRESULT (STDMETHODCALLTYPE *get_RetainedAudioFormat)(
13941         ISpeechRecoContext *This,
13942         ISpeechAudioFormat **Format);
13943 
13944     HRESULT (STDMETHODCALLTYPE *Pause)(
13945         ISpeechRecoContext *This);
13946 
13947     HRESULT (STDMETHODCALLTYPE *Resume)(
13948         ISpeechRecoContext *This);
13949 
13950     HRESULT (STDMETHODCALLTYPE *CreateGrammar)(
13951         ISpeechRecoContext *This,
13952         VARIANT GrammarId,
13953         ISpeechRecoGrammar **Grammar);
13954 
13955     HRESULT (STDMETHODCALLTYPE *CreateResultFromMemory)(
13956         ISpeechRecoContext *This,
13957         VARIANT *ResultBlock,
13958         ISpeechRecoResult **Result);
13959 
13960     HRESULT (STDMETHODCALLTYPE *Bookmark)(
13961         ISpeechRecoContext *This,
13962         SpeechBookmarkOptions Options,
13963         VARIANT StreamPos,
13964         VARIANT BookmarkId);
13965 
13966     HRESULT (STDMETHODCALLTYPE *SetAdaptationData)(
13967         ISpeechRecoContext *This,
13968         BSTR AdaptationString);
13969 
13970     END_INTERFACE
13971 } ISpeechRecoContextVtbl;
13972 
13973 interface ISpeechRecoContext {
13974     CONST_VTBL ISpeechRecoContextVtbl* lpVtbl;
13975 };
13976 
13977 #ifdef COBJMACROS
13978 #ifndef WIDL_C_INLINE_WRAPPERS
13979 /*** IUnknown methods ***/
13980 #define ISpeechRecoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13981 #define ISpeechRecoContext_AddRef(This) (This)->lpVtbl->AddRef(This)
13982 #define ISpeechRecoContext_Release(This) (This)->lpVtbl->Release(This)
13983 /*** IDispatch methods ***/
13984 #define ISpeechRecoContext_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13985 #define ISpeechRecoContext_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13986 #define ISpeechRecoContext_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13987 #define ISpeechRecoContext_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13988 /*** ISpeechRecoContext methods ***/
13989 #define ISpeechRecoContext_get_Recognizer(This,Recognizer) (This)->lpVtbl->get_Recognizer(This,Recognizer)
13990 #define ISpeechRecoContext_get_AudioInputInterferenceStatus(This,Interference) (This)->lpVtbl->get_AudioInputInterferenceStatus(This,Interference)
13991 #define ISpeechRecoContext_get_RequestedUIType(This,UIType) (This)->lpVtbl->get_RequestedUIType(This,UIType)
13992 #define ISpeechRecoContext_putref_Voice(This,Voice) (This)->lpVtbl->putref_Voice(This,Voice)
13993 #define ISpeechRecoContext_get_Voice(This,Voice) (This)->lpVtbl->get_Voice(This,Voice)
13994 #define ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet(This,Allow) (This)->lpVtbl->put_AllowVoiceFormatMatchingOnNextSet(This,Allow)
13995 #define ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet(This,pAllow) (This)->lpVtbl->get_AllowVoiceFormatMatchingOnNextSet(This,pAllow)
13996 #define ISpeechRecoContext_put_VoicePurgeEvent(This,EventInterest) (This)->lpVtbl->put_VoicePurgeEvent(This,EventInterest)
13997 #define ISpeechRecoContext_get_VoicePurgeEvent(This,EventInterest) (This)->lpVtbl->get_VoicePurgeEvent(This,EventInterest)
13998 #define ISpeechRecoContext_put_EventInterests(This,EventInterest) (This)->lpVtbl->put_EventInterests(This,EventInterest)
13999 #define ISpeechRecoContext_get_EventInterests(This,EventInterest) (This)->lpVtbl->get_EventInterests(This,EventInterest)
14000 #define ISpeechRecoContext_put_CmdMaxAlternates(This,MaxAlternates) (This)->lpVtbl->put_CmdMaxAlternates(This,MaxAlternates)
14001 #define ISpeechRecoContext_get_CmdMaxAlternates(This,MaxAlternates) (This)->lpVtbl->get_CmdMaxAlternates(This,MaxAlternates)
14002 #define ISpeechRecoContext_put_State(This,State) (This)->lpVtbl->put_State(This,State)
14003 #define ISpeechRecoContext_get_State(This,State) (This)->lpVtbl->get_State(This,State)
14004 #define ISpeechRecoContext_put_RetainedAudio(This,Option) (This)->lpVtbl->put_RetainedAudio(This,Option)
14005 #define ISpeechRecoContext_get_RetainedAudio(This,Option) (This)->lpVtbl->get_RetainedAudio(This,Option)
14006 #define ISpeechRecoContext_putref_RetainedAudioFormat(This,Format) (This)->lpVtbl->putref_RetainedAudioFormat(This,Format)
14007 #define ISpeechRecoContext_get_RetainedAudioFormat(This,Format) (This)->lpVtbl->get_RetainedAudioFormat(This,Format)
14008 #define ISpeechRecoContext_Pause(This) (This)->lpVtbl->Pause(This)
14009 #define ISpeechRecoContext_Resume(This) (This)->lpVtbl->Resume(This)
14010 #define ISpeechRecoContext_CreateGrammar(This,GrammarId,Grammar) (This)->lpVtbl->CreateGrammar(This,GrammarId,Grammar)
14011 #define ISpeechRecoContext_CreateResultFromMemory(This,ResultBlock,Result) (This)->lpVtbl->CreateResultFromMemory(This,ResultBlock,Result)
14012 #define ISpeechRecoContext_Bookmark(This,Options,StreamPos,BookmarkId) (This)->lpVtbl->Bookmark(This,Options,StreamPos,BookmarkId)
14013 #define ISpeechRecoContext_SetAdaptationData(This,AdaptationString) (This)->lpVtbl->SetAdaptationData(This,AdaptationString)
14014 #else
14015 /*** IUnknown methods ***/
14016 static FORCEINLINE HRESULT ISpeechRecoContext_QueryInterface(ISpeechRecoContext* This,REFIID riid,void **ppvObject) {
14017     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14018 }
14019 static FORCEINLINE ULONG ISpeechRecoContext_AddRef(ISpeechRecoContext* This) {
14020     return This->lpVtbl->AddRef(This);
14021 }
14022 static FORCEINLINE ULONG ISpeechRecoContext_Release(ISpeechRecoContext* This) {
14023     return This->lpVtbl->Release(This);
14024 }
14025 /*** IDispatch methods ***/
14026 static FORCEINLINE HRESULT ISpeechRecoContext_GetTypeInfoCount(ISpeechRecoContext* This,UINT *pctinfo) {
14027     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14028 }
14029 static FORCEINLINE HRESULT ISpeechRecoContext_GetTypeInfo(ISpeechRecoContext* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14030     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14031 }
14032 static FORCEINLINE HRESULT ISpeechRecoContext_GetIDsOfNames(ISpeechRecoContext* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14033     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14034 }
14035 static FORCEINLINE HRESULT ISpeechRecoContext_Invoke(ISpeechRecoContext* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14036     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14037 }
14038 /*** ISpeechRecoContext methods ***/
14039 static FORCEINLINE HRESULT ISpeechRecoContext_get_Recognizer(ISpeechRecoContext* This,ISpeechRecognizer **Recognizer) {
14040     return This->lpVtbl->get_Recognizer(This,Recognizer);
14041 }
14042 static FORCEINLINE HRESULT ISpeechRecoContext_get_AudioInputInterferenceStatus(ISpeechRecoContext* This,SpeechInterference *Interference) {
14043     return This->lpVtbl->get_AudioInputInterferenceStatus(This,Interference);
14044 }
14045 static FORCEINLINE HRESULT ISpeechRecoContext_get_RequestedUIType(ISpeechRecoContext* This,BSTR *UIType) {
14046     return This->lpVtbl->get_RequestedUIType(This,UIType);
14047 }
14048 static FORCEINLINE HRESULT ISpeechRecoContext_putref_Voice(ISpeechRecoContext* This,ISpeechVoice *Voice) {
14049     return This->lpVtbl->putref_Voice(This,Voice);
14050 }
14051 static FORCEINLINE HRESULT ISpeechRecoContext_get_Voice(ISpeechRecoContext* This,ISpeechVoice **Voice) {
14052     return This->lpVtbl->get_Voice(This,Voice);
14053 }
14054 static FORCEINLINE HRESULT ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet(ISpeechRecoContext* This,VARIANT_BOOL Allow) {
14055     return This->lpVtbl->put_AllowVoiceFormatMatchingOnNextSet(This,Allow);
14056 }
14057 static FORCEINLINE HRESULT ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet(ISpeechRecoContext* This,VARIANT_BOOL *pAllow) {
14058     return This->lpVtbl->get_AllowVoiceFormatMatchingOnNextSet(This,pAllow);
14059 }
14060 static FORCEINLINE HRESULT ISpeechRecoContext_put_VoicePurgeEvent(ISpeechRecoContext* This,SpeechRecoEvents EventInterest) {
14061     return This->lpVtbl->put_VoicePurgeEvent(This,EventInterest);
14062 }
14063 static FORCEINLINE HRESULT ISpeechRecoContext_get_VoicePurgeEvent(ISpeechRecoContext* This,SpeechRecoEvents *EventInterest) {
14064     return This->lpVtbl->get_VoicePurgeEvent(This,EventInterest);
14065 }
14066 static FORCEINLINE HRESULT ISpeechRecoContext_put_EventInterests(ISpeechRecoContext* This,SpeechRecoEvents EventInterest) {
14067     return This->lpVtbl->put_EventInterests(This,EventInterest);
14068 }
14069 static FORCEINLINE HRESULT ISpeechRecoContext_get_EventInterests(ISpeechRecoContext* This,SpeechRecoEvents *EventInterest) {
14070     return This->lpVtbl->get_EventInterests(This,EventInterest);
14071 }
14072 static FORCEINLINE HRESULT ISpeechRecoContext_put_CmdMaxAlternates(ISpeechRecoContext* This,LONG MaxAlternates) {
14073     return This->lpVtbl->put_CmdMaxAlternates(This,MaxAlternates);
14074 }
14075 static FORCEINLINE HRESULT ISpeechRecoContext_get_CmdMaxAlternates(ISpeechRecoContext* This,LONG *MaxAlternates) {
14076     return This->lpVtbl->get_CmdMaxAlternates(This,MaxAlternates);
14077 }
14078 static FORCEINLINE HRESULT ISpeechRecoContext_put_State(ISpeechRecoContext* This,SpeechRecoContextState State) {
14079     return This->lpVtbl->put_State(This,State);
14080 }
14081 static FORCEINLINE HRESULT ISpeechRecoContext_get_State(ISpeechRecoContext* This,SpeechRecoContextState *State) {
14082     return This->lpVtbl->get_State(This,State);
14083 }
14084 static FORCEINLINE HRESULT ISpeechRecoContext_put_RetainedAudio(ISpeechRecoContext* This,SpeechRetainedAudioOptions Option) {
14085     return This->lpVtbl->put_RetainedAudio(This,Option);
14086 }
14087 static FORCEINLINE HRESULT ISpeechRecoContext_get_RetainedAudio(ISpeechRecoContext* This,SpeechRetainedAudioOptions *Option) {
14088     return This->lpVtbl->get_RetainedAudio(This,Option);
14089 }
14090 static FORCEINLINE HRESULT ISpeechRecoContext_putref_RetainedAudioFormat(ISpeechRecoContext* This,ISpeechAudioFormat *Format) {
14091     return This->lpVtbl->putref_RetainedAudioFormat(This,Format);
14092 }
14093 static FORCEINLINE HRESULT ISpeechRecoContext_get_RetainedAudioFormat(ISpeechRecoContext* This,ISpeechAudioFormat **Format) {
14094     return This->lpVtbl->get_RetainedAudioFormat(This,Format);
14095 }
14096 static FORCEINLINE HRESULT ISpeechRecoContext_Pause(ISpeechRecoContext* This) {
14097     return This->lpVtbl->Pause(This);
14098 }
14099 static FORCEINLINE HRESULT ISpeechRecoContext_Resume(ISpeechRecoContext* This) {
14100     return This->lpVtbl->Resume(This);
14101 }
14102 static FORCEINLINE HRESULT ISpeechRecoContext_CreateGrammar(ISpeechRecoContext* This,VARIANT GrammarId,ISpeechRecoGrammar **Grammar) {
14103     return This->lpVtbl->CreateGrammar(This,GrammarId,Grammar);
14104 }
14105 static FORCEINLINE HRESULT ISpeechRecoContext_CreateResultFromMemory(ISpeechRecoContext* This,VARIANT *ResultBlock,ISpeechRecoResult **Result) {
14106     return This->lpVtbl->CreateResultFromMemory(This,ResultBlock,Result);
14107 }
14108 static FORCEINLINE HRESULT ISpeechRecoContext_Bookmark(ISpeechRecoContext* This,SpeechBookmarkOptions Options,VARIANT StreamPos,VARIANT BookmarkId) {
14109     return This->lpVtbl->Bookmark(This,Options,StreamPos,BookmarkId);
14110 }
14111 static FORCEINLINE HRESULT ISpeechRecoContext_SetAdaptationData(ISpeechRecoContext* This,BSTR AdaptationString) {
14112     return This->lpVtbl->SetAdaptationData(This,AdaptationString);
14113 }
14114 #endif
14115 #endif
14116 
14117 #endif
14118 
14119 
14120 #endif  /* __ISpeechRecoContext_INTERFACE_DEFINED__ */
14121 
14122 /*****************************************************************************
14123  * ISpeechRecoGrammar interface
14124  */
14125 #ifndef __ISpeechRecoGrammar_INTERFACE_DEFINED__
14126 #define __ISpeechRecoGrammar_INTERFACE_DEFINED__
14127 
14128 DEFINE_GUID(IID_ISpeechRecoGrammar, 0xb6d6f79f, 0x2158, 0x4e50, 0xb5,0xbc, 0x9a,0x9c,0xcd,0x85,0x2a,0x09);
14129 #if defined(__cplusplus) && !defined(CINTERFACE)
14130 MIDL_INTERFACE("b6d6f79f-2158-4e50-b5bc-9a9ccd852a09")
14131 ISpeechRecoGrammar : public IDispatch
14132 {
14133     virtual HRESULT STDMETHODCALLTYPE get_Id(
14134         VARIANT *Id) = 0;
14135 
14136     virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
14137         ISpeechRecoContext **RecoContext) = 0;
14138 
14139     virtual HRESULT STDMETHODCALLTYPE put_State(
14140         SpeechGrammarState State) = 0;
14141 
14142     virtual HRESULT STDMETHODCALLTYPE get_State(
14143         SpeechGrammarState *State) = 0;
14144 
14145     virtual HRESULT STDMETHODCALLTYPE get_Rules(
14146         ISpeechGrammarRules **Rules) = 0;
14147 
14148     virtual HRESULT STDMETHODCALLTYPE Reset(
14149         SpeechLanguageId NewLanguage = 0) = 0;
14150 
14151     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromFile(
14152         const BSTR FileName,
14153         SpeechLoadOption LoadOption = SLOStatic) = 0;
14154 
14155     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromObject(
14156         const BSTR ClassId,
14157         const BSTR GrammarName,
14158         SpeechLoadOption LoadOption = SLOStatic) = 0;
14159 
14160     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromResource(
14161         LONG hModule,
14162         VARIANT ResourceName,
14163         VARIANT ResourceType,
14164         SpeechLanguageId LanguageId,
14165         SpeechLoadOption LoadOption = SLOStatic) = 0;
14166 
14167     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromMemory(
14168         VARIANT GrammarData,
14169         SpeechLoadOption LoadOption = SLOStatic) = 0;
14170 
14171     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromProprietaryGrammar(
14172         const BSTR ProprietaryGuid,
14173         const BSTR ProprietaryString,
14174         VARIANT ProprietaryData,
14175         SpeechLoadOption LoadOption = SLOStatic) = 0;
14176 
14177     virtual HRESULT STDMETHODCALLTYPE CmdSetRuleState(
14178         const BSTR Name,
14179         SpeechRuleState State) = 0;
14180 
14181     virtual HRESULT STDMETHODCALLTYPE CmdSetRuleIdState(
14182         LONG RuleId,
14183         SpeechRuleState State) = 0;
14184 
14185     virtual HRESULT STDMETHODCALLTYPE DictationLoad(
14186         const BSTR TopicName = L"",
14187         SpeechLoadOption LoadOption = SLOStatic) = 0;
14188 
14189     virtual HRESULT STDMETHODCALLTYPE DictationUnload(
14190         ) = 0;
14191 
14192     virtual HRESULT STDMETHODCALLTYPE DictationSetState(
14193         SpeechRuleState State) = 0;
14194 
14195     virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData(
14196         const BSTR Text,
14197         LONG TextLength,
14198         ISpeechTextSelectionInformation *Info) = 0;
14199 
14200     virtual HRESULT STDMETHODCALLTYPE SetTextSelection(
14201         ISpeechTextSelectionInformation *Info) = 0;
14202 
14203     virtual HRESULT STDMETHODCALLTYPE IsPronounceable(
14204         const BSTR Word,
14205         SpeechWordPronounceable *WordPronounceable) = 0;
14206 
14207 };
14208 #ifdef __CRT_UUID_DECL
14209 __CRT_UUID_DECL(ISpeechRecoGrammar, 0xb6d6f79f, 0x2158, 0x4e50, 0xb5,0xbc, 0x9a,0x9c,0xcd,0x85,0x2a,0x09)
14210 #endif
14211 #else
14212 typedef struct ISpeechRecoGrammarVtbl {
14213     BEGIN_INTERFACE
14214 
14215     /*** IUnknown methods ***/
14216     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14217         ISpeechRecoGrammar *This,
14218         REFIID riid,
14219         void **ppvObject);
14220 
14221     ULONG (STDMETHODCALLTYPE *AddRef)(
14222         ISpeechRecoGrammar *This);
14223 
14224     ULONG (STDMETHODCALLTYPE *Release)(
14225         ISpeechRecoGrammar *This);
14226 
14227     /*** IDispatch methods ***/
14228     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
14229         ISpeechRecoGrammar *This,
14230         UINT *pctinfo);
14231 
14232     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
14233         ISpeechRecoGrammar *This,
14234         UINT iTInfo,
14235         LCID lcid,
14236         ITypeInfo **ppTInfo);
14237 
14238     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
14239         ISpeechRecoGrammar *This,
14240         REFIID riid,
14241         LPOLESTR *rgszNames,
14242         UINT cNames,
14243         LCID lcid,
14244         DISPID *rgDispId);
14245 
14246     HRESULT (STDMETHODCALLTYPE *Invoke)(
14247         ISpeechRecoGrammar *This,
14248         DISPID dispIdMember,
14249         REFIID riid,
14250         LCID lcid,
14251         WORD wFlags,
14252         DISPPARAMS *pDispParams,
14253         VARIANT *pVarResult,
14254         EXCEPINFO *pExcepInfo,
14255         UINT *puArgErr);
14256 
14257     /*** ISpeechRecoGrammar methods ***/
14258     HRESULT (STDMETHODCALLTYPE *get_Id)(
14259         ISpeechRecoGrammar *This,
14260         VARIANT *Id);
14261 
14262     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
14263         ISpeechRecoGrammar *This,
14264         ISpeechRecoContext **RecoContext);
14265 
14266     HRESULT (STDMETHODCALLTYPE *put_State)(
14267         ISpeechRecoGrammar *This,
14268         SpeechGrammarState State);
14269 
14270     HRESULT (STDMETHODCALLTYPE *get_State)(
14271         ISpeechRecoGrammar *This,
14272         SpeechGrammarState *State);
14273 
14274     HRESULT (STDMETHODCALLTYPE *get_Rules)(
14275         ISpeechRecoGrammar *This,
14276         ISpeechGrammarRules **Rules);
14277 
14278     HRESULT (STDMETHODCALLTYPE *Reset)(
14279         ISpeechRecoGrammar *This,
14280         SpeechLanguageId NewLanguage);
14281 
14282     HRESULT (STDMETHODCALLTYPE *CmdLoadFromFile)(
14283         ISpeechRecoGrammar *This,
14284         const BSTR FileName,
14285         SpeechLoadOption LoadOption);
14286 
14287     HRESULT (STDMETHODCALLTYPE *CmdLoadFromObject)(
14288         ISpeechRecoGrammar *This,
14289         const BSTR ClassId,
14290         const BSTR GrammarName,
14291         SpeechLoadOption LoadOption);
14292 
14293     HRESULT (STDMETHODCALLTYPE *CmdLoadFromResource)(
14294         ISpeechRecoGrammar *This,
14295         LONG hModule,
14296         VARIANT ResourceName,
14297         VARIANT ResourceType,
14298         SpeechLanguageId LanguageId,
14299         SpeechLoadOption LoadOption);
14300 
14301     HRESULT (STDMETHODCALLTYPE *CmdLoadFromMemory)(
14302         ISpeechRecoGrammar *This,
14303         VARIANT GrammarData,
14304         SpeechLoadOption LoadOption);
14305 
14306     HRESULT (STDMETHODCALLTYPE *CmdLoadFromProprietaryGrammar)(
14307         ISpeechRecoGrammar *This,
14308         const BSTR ProprietaryGuid,
14309         const BSTR ProprietaryString,
14310         VARIANT ProprietaryData,
14311         SpeechLoadOption LoadOption);
14312 
14313     HRESULT (STDMETHODCALLTYPE *CmdSetRuleState)(
14314         ISpeechRecoGrammar *This,
14315         const BSTR Name,
14316         SpeechRuleState State);
14317 
14318     HRESULT (STDMETHODCALLTYPE *CmdSetRuleIdState)(
14319         ISpeechRecoGrammar *This,
14320         LONG RuleId,
14321         SpeechRuleState State);
14322 
14323     HRESULT (STDMETHODCALLTYPE *DictationLoad)(
14324         ISpeechRecoGrammar *This,
14325         const BSTR TopicName,
14326         SpeechLoadOption LoadOption);
14327 
14328     HRESULT (STDMETHODCALLTYPE *DictationUnload)(
14329         ISpeechRecoGrammar *This);
14330 
14331     HRESULT (STDMETHODCALLTYPE *DictationSetState)(
14332         ISpeechRecoGrammar *This,
14333         SpeechRuleState State);
14334 
14335     HRESULT (STDMETHODCALLTYPE *SetWordSequenceData)(
14336         ISpeechRecoGrammar *This,
14337         const BSTR Text,
14338         LONG TextLength,
14339         ISpeechTextSelectionInformation *Info);
14340 
14341     HRESULT (STDMETHODCALLTYPE *SetTextSelection)(
14342         ISpeechRecoGrammar *This,
14343         ISpeechTextSelectionInformation *Info);
14344 
14345     HRESULT (STDMETHODCALLTYPE *IsPronounceable)(
14346         ISpeechRecoGrammar *This,
14347         const BSTR Word,
14348         SpeechWordPronounceable *WordPronounceable);
14349 
14350     END_INTERFACE
14351 } ISpeechRecoGrammarVtbl;
14352 
14353 interface ISpeechRecoGrammar {
14354     CONST_VTBL ISpeechRecoGrammarVtbl* lpVtbl;
14355 };
14356 
14357 #ifdef COBJMACROS
14358 #ifndef WIDL_C_INLINE_WRAPPERS
14359 /*** IUnknown methods ***/
14360 #define ISpeechRecoGrammar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14361 #define ISpeechRecoGrammar_AddRef(This) (This)->lpVtbl->AddRef(This)
14362 #define ISpeechRecoGrammar_Release(This) (This)->lpVtbl->Release(This)
14363 /*** IDispatch methods ***/
14364 #define ISpeechRecoGrammar_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14365 #define ISpeechRecoGrammar_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14366 #define ISpeechRecoGrammar_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14367 #define ISpeechRecoGrammar_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14368 /*** ISpeechRecoGrammar methods ***/
14369 #define ISpeechRecoGrammar_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
14370 #define ISpeechRecoGrammar_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
14371 #define ISpeechRecoGrammar_put_State(This,State) (This)->lpVtbl->put_State(This,State)
14372 #define ISpeechRecoGrammar_get_State(This,State) (This)->lpVtbl->get_State(This,State)
14373 #define ISpeechRecoGrammar_get_Rules(This,Rules) (This)->lpVtbl->get_Rules(This,Rules)
14374 #define ISpeechRecoGrammar_Reset(This,NewLanguage) (This)->lpVtbl->Reset(This,NewLanguage)
14375 #define ISpeechRecoGrammar_CmdLoadFromFile(This,FileName,LoadOption) (This)->lpVtbl->CmdLoadFromFile(This,FileName,LoadOption)
14376 #define ISpeechRecoGrammar_CmdLoadFromObject(This,ClassId,GrammarName,LoadOption) (This)->lpVtbl->CmdLoadFromObject(This,ClassId,GrammarName,LoadOption)
14377 #define ISpeechRecoGrammar_CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption) (This)->lpVtbl->CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption)
14378 #define ISpeechRecoGrammar_CmdLoadFromMemory(This,GrammarData,LoadOption) (This)->lpVtbl->CmdLoadFromMemory(This,GrammarData,LoadOption)
14379 #define ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption) (This)->lpVtbl->CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption)
14380 #define ISpeechRecoGrammar_CmdSetRuleState(This,Name,State) (This)->lpVtbl->CmdSetRuleState(This,Name,State)
14381 #define ISpeechRecoGrammar_CmdSetRuleIdState(This,RuleId,State) (This)->lpVtbl->CmdSetRuleIdState(This,RuleId,State)
14382 #define ISpeechRecoGrammar_DictationLoad(This,TopicName,LoadOption) (This)->lpVtbl->DictationLoad(This,TopicName,LoadOption)
14383 #define ISpeechRecoGrammar_DictationUnload(This) (This)->lpVtbl->DictationUnload(This)
14384 #define ISpeechRecoGrammar_DictationSetState(This,State) (This)->lpVtbl->DictationSetState(This,State)
14385 #define ISpeechRecoGrammar_SetWordSequenceData(This,Text,TextLength,Info) (This)->lpVtbl->SetWordSequenceData(This,Text,TextLength,Info)
14386 #define ISpeechRecoGrammar_SetTextSelection(This,Info) (This)->lpVtbl->SetTextSelection(This,Info)
14387 #define ISpeechRecoGrammar_IsPronounceable(This,Word,WordPronounceable) (This)->lpVtbl->IsPronounceable(This,Word,WordPronounceable)
14388 #else
14389 /*** IUnknown methods ***/
14390 static FORCEINLINE HRESULT ISpeechRecoGrammar_QueryInterface(ISpeechRecoGrammar* This,REFIID riid,void **ppvObject) {
14391     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14392 }
14393 static FORCEINLINE ULONG ISpeechRecoGrammar_AddRef(ISpeechRecoGrammar* This) {
14394     return This->lpVtbl->AddRef(This);
14395 }
14396 static FORCEINLINE ULONG ISpeechRecoGrammar_Release(ISpeechRecoGrammar* This) {
14397     return This->lpVtbl->Release(This);
14398 }
14399 /*** IDispatch methods ***/
14400 static FORCEINLINE HRESULT ISpeechRecoGrammar_GetTypeInfoCount(ISpeechRecoGrammar* This,UINT *pctinfo) {
14401     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14402 }
14403 static FORCEINLINE HRESULT ISpeechRecoGrammar_GetTypeInfo(ISpeechRecoGrammar* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14404     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14405 }
14406 static FORCEINLINE HRESULT ISpeechRecoGrammar_GetIDsOfNames(ISpeechRecoGrammar* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14407     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14408 }
14409 static FORCEINLINE HRESULT ISpeechRecoGrammar_Invoke(ISpeechRecoGrammar* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14410     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14411 }
14412 /*** ISpeechRecoGrammar methods ***/
14413 static FORCEINLINE HRESULT ISpeechRecoGrammar_get_Id(ISpeechRecoGrammar* This,VARIANT *Id) {
14414     return This->lpVtbl->get_Id(This,Id);
14415 }
14416 static FORCEINLINE HRESULT ISpeechRecoGrammar_get_RecoContext(ISpeechRecoGrammar* This,ISpeechRecoContext **RecoContext) {
14417     return This->lpVtbl->get_RecoContext(This,RecoContext);
14418 }
14419 static FORCEINLINE HRESULT ISpeechRecoGrammar_put_State(ISpeechRecoGrammar* This,SpeechGrammarState State) {
14420     return This->lpVtbl->put_State(This,State);
14421 }
14422 static FORCEINLINE HRESULT ISpeechRecoGrammar_get_State(ISpeechRecoGrammar* This,SpeechGrammarState *State) {
14423     return This->lpVtbl->get_State(This,State);
14424 }
14425 static FORCEINLINE HRESULT ISpeechRecoGrammar_get_Rules(ISpeechRecoGrammar* This,ISpeechGrammarRules **Rules) {
14426     return This->lpVtbl->get_Rules(This,Rules);
14427 }
14428 static FORCEINLINE HRESULT ISpeechRecoGrammar_Reset(ISpeechRecoGrammar* This,SpeechLanguageId NewLanguage) {
14429     return This->lpVtbl->Reset(This,NewLanguage);
14430 }
14431 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromFile(ISpeechRecoGrammar* This,const BSTR FileName,SpeechLoadOption LoadOption) {
14432     return This->lpVtbl->CmdLoadFromFile(This,FileName,LoadOption);
14433 }
14434 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromObject(ISpeechRecoGrammar* This,const BSTR ClassId,const BSTR GrammarName,SpeechLoadOption LoadOption) {
14435     return This->lpVtbl->CmdLoadFromObject(This,ClassId,GrammarName,LoadOption);
14436 }
14437 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromResource(ISpeechRecoGrammar* This,LONG hModule,VARIANT ResourceName,VARIANT ResourceType,SpeechLanguageId LanguageId,SpeechLoadOption LoadOption) {
14438     return This->lpVtbl->CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption);
14439 }
14440 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromMemory(ISpeechRecoGrammar* This,VARIANT GrammarData,SpeechLoadOption LoadOption) {
14441     return This->lpVtbl->CmdLoadFromMemory(This,GrammarData,LoadOption);
14442 }
14443 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar(ISpeechRecoGrammar* This,const BSTR ProprietaryGuid,const BSTR ProprietaryString,VARIANT ProprietaryData,SpeechLoadOption LoadOption) {
14444     return This->lpVtbl->CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption);
14445 }
14446 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdSetRuleState(ISpeechRecoGrammar* This,const BSTR Name,SpeechRuleState State) {
14447     return This->lpVtbl->CmdSetRuleState(This,Name,State);
14448 }
14449 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdSetRuleIdState(ISpeechRecoGrammar* This,LONG RuleId,SpeechRuleState State) {
14450     return This->lpVtbl->CmdSetRuleIdState(This,RuleId,State);
14451 }
14452 static FORCEINLINE HRESULT ISpeechRecoGrammar_DictationLoad(ISpeechRecoGrammar* This,const BSTR TopicName,SpeechLoadOption LoadOption) {
14453     return This->lpVtbl->DictationLoad(This,TopicName,LoadOption);
14454 }
14455 static FORCEINLINE HRESULT ISpeechRecoGrammar_DictationUnload(ISpeechRecoGrammar* This) {
14456     return This->lpVtbl->DictationUnload(This);
14457 }
14458 static FORCEINLINE HRESULT ISpeechRecoGrammar_DictationSetState(ISpeechRecoGrammar* This,SpeechRuleState State) {
14459     return This->lpVtbl->DictationSetState(This,State);
14460 }
14461 static FORCEINLINE HRESULT ISpeechRecoGrammar_SetWordSequenceData(ISpeechRecoGrammar* This,const BSTR Text,LONG TextLength,ISpeechTextSelectionInformation *Info) {
14462     return This->lpVtbl->SetWordSequenceData(This,Text,TextLength,Info);
14463 }
14464 static FORCEINLINE HRESULT ISpeechRecoGrammar_SetTextSelection(ISpeechRecoGrammar* This,ISpeechTextSelectionInformation *Info) {
14465     return This->lpVtbl->SetTextSelection(This,Info);
14466 }
14467 static FORCEINLINE HRESULT ISpeechRecoGrammar_IsPronounceable(ISpeechRecoGrammar* This,const BSTR Word,SpeechWordPronounceable *WordPronounceable) {
14468     return This->lpVtbl->IsPronounceable(This,Word,WordPronounceable);
14469 }
14470 #endif
14471 #endif
14472 
14473 #endif
14474 
14475 
14476 #endif  /* __ISpeechRecoGrammar_INTERFACE_DEFINED__ */
14477 
14478 /*****************************************************************************
14479  * _ISpeechRecoContextEvents dispinterface
14480  */
14481 #ifndef ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__
14482 #define ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__
14483 
14484 DEFINE_GUID(DIID__ISpeechRecoContextEvents, 0x7b8fcb42, 0x0e9d, 0x4f00, 0xa0,0x48, 0x7b,0x04,0xd6,0x17,0x9d,0x3d);
14485 #if defined(__cplusplus) && !defined(CINTERFACE)
14486 MIDL_INTERFACE("7b8fcb42-0e9d-4f00-a048-7b04d6179d3d")
14487 _ISpeechRecoContextEvents : public IDispatch
14488 {
14489 };
14490 #ifdef __CRT_UUID_DECL
14491 __CRT_UUID_DECL(_ISpeechRecoContextEvents, 0x7b8fcb42, 0x0e9d, 0x4f00, 0xa0,0x48, 0x7b,0x04,0xd6,0x17,0x9d,0x3d)
14492 #endif
14493 #else
14494 typedef struct _ISpeechRecoContextEventsVtbl {
14495     BEGIN_INTERFACE
14496 
14497     /*** IUnknown methods ***/
14498     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14499         _ISpeechRecoContextEvents *This,
14500         REFIID riid,
14501         void **ppvObject);
14502 
14503     ULONG (STDMETHODCALLTYPE *AddRef)(
14504         _ISpeechRecoContextEvents *This);
14505 
14506     ULONG (STDMETHODCALLTYPE *Release)(
14507         _ISpeechRecoContextEvents *This);
14508 
14509     /*** IDispatch methods ***/
14510     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
14511         _ISpeechRecoContextEvents *This,
14512         UINT *pctinfo);
14513 
14514     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
14515         _ISpeechRecoContextEvents *This,
14516         UINT iTInfo,
14517         LCID lcid,
14518         ITypeInfo **ppTInfo);
14519 
14520     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
14521         _ISpeechRecoContextEvents *This,
14522         REFIID riid,
14523         LPOLESTR *rgszNames,
14524         UINT cNames,
14525         LCID lcid,
14526         DISPID *rgDispId);
14527 
14528     HRESULT (STDMETHODCALLTYPE *Invoke)(
14529         _ISpeechRecoContextEvents *This,
14530         DISPID dispIdMember,
14531         REFIID riid,
14532         LCID lcid,
14533         WORD wFlags,
14534         DISPPARAMS *pDispParams,
14535         VARIANT *pVarResult,
14536         EXCEPINFO *pExcepInfo,
14537         UINT *puArgErr);
14538 
14539     END_INTERFACE
14540 } _ISpeechRecoContextEventsVtbl;
14541 
14542 interface _ISpeechRecoContextEvents {
14543     CONST_VTBL _ISpeechRecoContextEventsVtbl* lpVtbl;
14544 };
14545 
14546 #ifdef COBJMACROS
14547 #ifndef WIDL_C_INLINE_WRAPPERS
14548 /*** IUnknown methods ***/
14549 #define _ISpeechRecoContextEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14550 #define _ISpeechRecoContextEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
14551 #define _ISpeechRecoContextEvents_Release(This) (This)->lpVtbl->Release(This)
14552 /*** IDispatch methods ***/
14553 #define _ISpeechRecoContextEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14554 #define _ISpeechRecoContextEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14555 #define _ISpeechRecoContextEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14556 #define _ISpeechRecoContextEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14557 #else
14558 /*** IUnknown methods ***/
14559 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_QueryInterface(_ISpeechRecoContextEvents* This,REFIID riid,void **ppvObject) {
14560     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14561 }
14562 static FORCEINLINE ULONG _ISpeechRecoContextEvents_AddRef(_ISpeechRecoContextEvents* This) {
14563     return This->lpVtbl->AddRef(This);
14564 }
14565 static FORCEINLINE ULONG _ISpeechRecoContextEvents_Release(_ISpeechRecoContextEvents* This) {
14566     return This->lpVtbl->Release(This);
14567 }
14568 /*** IDispatch methods ***/
14569 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_GetTypeInfoCount(_ISpeechRecoContextEvents* This,UINT *pctinfo) {
14570     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14571 }
14572 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_GetTypeInfo(_ISpeechRecoContextEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14573     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14574 }
14575 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_GetIDsOfNames(_ISpeechRecoContextEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14576     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14577 }
14578 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_Invoke(_ISpeechRecoContextEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14579     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14580 }
14581 #endif
14582 #endif
14583 
14584 #endif
14585 
14586 #endif  /* ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__ */
14587 
14588 /*****************************************************************************
14589  * ISpeechGrammarRule interface
14590  */
14591 #ifndef __ISpeechGrammarRule_INTERFACE_DEFINED__
14592 #define __ISpeechGrammarRule_INTERFACE_DEFINED__
14593 
14594 DEFINE_GUID(IID_ISpeechGrammarRule, 0xafe719cf, 0x5dd1, 0x44f2, 0x99,0x9c, 0x7a,0x39,0x9f,0x1c,0xfc,0xcc);
14595 #if defined(__cplusplus) && !defined(CINTERFACE)
14596 MIDL_INTERFACE("afe719cf-5dd1-44f2-999c-7a399f1cfccc")
14597 ISpeechGrammarRule : public IDispatch
14598 {
14599     virtual HRESULT STDMETHODCALLTYPE get_Attributes(
14600         SpeechRuleAttributes *Attributes) = 0;
14601 
14602     virtual HRESULT STDMETHODCALLTYPE get_InitialState(
14603         ISpeechGrammarRuleState **State) = 0;
14604 
14605     virtual HRESULT STDMETHODCALLTYPE get_Name(
14606         BSTR *Name) = 0;
14607 
14608     virtual HRESULT STDMETHODCALLTYPE get_Id(
14609         LONG *Id) = 0;
14610 
14611     virtual HRESULT STDMETHODCALLTYPE Clear(
14612         ) = 0;
14613 
14614     virtual HRESULT STDMETHODCALLTYPE AddResource(
14615         const BSTR ResourceName,
14616         const BSTR ResourceValue) = 0;
14617 
14618     virtual HRESULT STDMETHODCALLTYPE AddState(
14619         ISpeechGrammarRuleState **State) = 0;
14620 
14621 };
14622 #ifdef __CRT_UUID_DECL
14623 __CRT_UUID_DECL(ISpeechGrammarRule, 0xafe719cf, 0x5dd1, 0x44f2, 0x99,0x9c, 0x7a,0x39,0x9f,0x1c,0xfc,0xcc)
14624 #endif
14625 #else
14626 typedef struct ISpeechGrammarRuleVtbl {
14627     BEGIN_INTERFACE
14628 
14629     /*** IUnknown methods ***/
14630     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14631         ISpeechGrammarRule *This,
14632         REFIID riid,
14633         void **ppvObject);
14634 
14635     ULONG (STDMETHODCALLTYPE *AddRef)(
14636         ISpeechGrammarRule *This);
14637 
14638     ULONG (STDMETHODCALLTYPE *Release)(
14639         ISpeechGrammarRule *This);
14640 
14641     /*** IDispatch methods ***/
14642     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
14643         ISpeechGrammarRule *This,
14644         UINT *pctinfo);
14645 
14646     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
14647         ISpeechGrammarRule *This,
14648         UINT iTInfo,
14649         LCID lcid,
14650         ITypeInfo **ppTInfo);
14651 
14652     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
14653         ISpeechGrammarRule *This,
14654         REFIID riid,
14655         LPOLESTR *rgszNames,
14656         UINT cNames,
14657         LCID lcid,
14658         DISPID *rgDispId);
14659 
14660     HRESULT (STDMETHODCALLTYPE *Invoke)(
14661         ISpeechGrammarRule *This,
14662         DISPID dispIdMember,
14663         REFIID riid,
14664         LCID lcid,
14665         WORD wFlags,
14666         DISPPARAMS *pDispParams,
14667         VARIANT *pVarResult,
14668         EXCEPINFO *pExcepInfo,
14669         UINT *puArgErr);
14670 
14671     /*** ISpeechGrammarRule methods ***/
14672     HRESULT (STDMETHODCALLTYPE *get_Attributes)(
14673         ISpeechGrammarRule *This,
14674         SpeechRuleAttributes *Attributes);
14675 
14676     HRESULT (STDMETHODCALLTYPE *get_InitialState)(
14677         ISpeechGrammarRule *This,
14678         ISpeechGrammarRuleState **State);
14679 
14680     HRESULT (STDMETHODCALLTYPE *get_Name)(
14681         ISpeechGrammarRule *This,
14682         BSTR *Name);
14683 
14684     HRESULT (STDMETHODCALLTYPE *get_Id)(
14685         ISpeechGrammarRule *This,
14686         LONG *Id);
14687 
14688     HRESULT (STDMETHODCALLTYPE *Clear)(
14689         ISpeechGrammarRule *This);
14690 
14691     HRESULT (STDMETHODCALLTYPE *AddResource)(
14692         ISpeechGrammarRule *This,
14693         const BSTR ResourceName,
14694         const BSTR ResourceValue);
14695 
14696     HRESULT (STDMETHODCALLTYPE *AddState)(
14697         ISpeechGrammarRule *This,
14698         ISpeechGrammarRuleState **State);
14699 
14700     END_INTERFACE
14701 } ISpeechGrammarRuleVtbl;
14702 
14703 interface ISpeechGrammarRule {
14704     CONST_VTBL ISpeechGrammarRuleVtbl* lpVtbl;
14705 };
14706 
14707 #ifdef COBJMACROS
14708 #ifndef WIDL_C_INLINE_WRAPPERS
14709 /*** IUnknown methods ***/
14710 #define ISpeechGrammarRule_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14711 #define ISpeechGrammarRule_AddRef(This) (This)->lpVtbl->AddRef(This)
14712 #define ISpeechGrammarRule_Release(This) (This)->lpVtbl->Release(This)
14713 /*** IDispatch methods ***/
14714 #define ISpeechGrammarRule_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14715 #define ISpeechGrammarRule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14716 #define ISpeechGrammarRule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14717 #define ISpeechGrammarRule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14718 /*** ISpeechGrammarRule methods ***/
14719 #define ISpeechGrammarRule_get_Attributes(This,Attributes) (This)->lpVtbl->get_Attributes(This,Attributes)
14720 #define ISpeechGrammarRule_get_InitialState(This,State) (This)->lpVtbl->get_InitialState(This,State)
14721 #define ISpeechGrammarRule_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
14722 #define ISpeechGrammarRule_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
14723 #define ISpeechGrammarRule_Clear(This) (This)->lpVtbl->Clear(This)
14724 #define ISpeechGrammarRule_AddResource(This,ResourceName,ResourceValue) (This)->lpVtbl->AddResource(This,ResourceName,ResourceValue)
14725 #define ISpeechGrammarRule_AddState(This,State) (This)->lpVtbl->AddState(This,State)
14726 #else
14727 /*** IUnknown methods ***/
14728 static FORCEINLINE HRESULT ISpeechGrammarRule_QueryInterface(ISpeechGrammarRule* This,REFIID riid,void **ppvObject) {
14729     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14730 }
14731 static FORCEINLINE ULONG ISpeechGrammarRule_AddRef(ISpeechGrammarRule* This) {
14732     return This->lpVtbl->AddRef(This);
14733 }
14734 static FORCEINLINE ULONG ISpeechGrammarRule_Release(ISpeechGrammarRule* This) {
14735     return This->lpVtbl->Release(This);
14736 }
14737 /*** IDispatch methods ***/
14738 static FORCEINLINE HRESULT ISpeechGrammarRule_GetTypeInfoCount(ISpeechGrammarRule* This,UINT *pctinfo) {
14739     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14740 }
14741 static FORCEINLINE HRESULT ISpeechGrammarRule_GetTypeInfo(ISpeechGrammarRule* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14742     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14743 }
14744 static FORCEINLINE HRESULT ISpeechGrammarRule_GetIDsOfNames(ISpeechGrammarRule* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14745     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14746 }
14747 static FORCEINLINE HRESULT ISpeechGrammarRule_Invoke(ISpeechGrammarRule* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14748     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14749 }
14750 /*** ISpeechGrammarRule methods ***/
14751 static FORCEINLINE HRESULT ISpeechGrammarRule_get_Attributes(ISpeechGrammarRule* This,SpeechRuleAttributes *Attributes) {
14752     return This->lpVtbl->get_Attributes(This,Attributes);
14753 }
14754 static FORCEINLINE HRESULT ISpeechGrammarRule_get_InitialState(ISpeechGrammarRule* This,ISpeechGrammarRuleState **State) {
14755     return This->lpVtbl->get_InitialState(This,State);
14756 }
14757 static FORCEINLINE HRESULT ISpeechGrammarRule_get_Name(ISpeechGrammarRule* This,BSTR *Name) {
14758     return This->lpVtbl->get_Name(This,Name);
14759 }
14760 static FORCEINLINE HRESULT ISpeechGrammarRule_get_Id(ISpeechGrammarRule* This,LONG *Id) {
14761     return This->lpVtbl->get_Id(This,Id);
14762 }
14763 static FORCEINLINE HRESULT ISpeechGrammarRule_Clear(ISpeechGrammarRule* This) {
14764     return This->lpVtbl->Clear(This);
14765 }
14766 static FORCEINLINE HRESULT ISpeechGrammarRule_AddResource(ISpeechGrammarRule* This,const BSTR ResourceName,const BSTR ResourceValue) {
14767     return This->lpVtbl->AddResource(This,ResourceName,ResourceValue);
14768 }
14769 static FORCEINLINE HRESULT ISpeechGrammarRule_AddState(ISpeechGrammarRule* This,ISpeechGrammarRuleState **State) {
14770     return This->lpVtbl->AddState(This,State);
14771 }
14772 #endif
14773 #endif
14774 
14775 #endif
14776 
14777 
14778 #endif  /* __ISpeechGrammarRule_INTERFACE_DEFINED__ */
14779 
14780 /*****************************************************************************
14781  * ISpeechGrammarRules interface
14782  */
14783 #ifndef __ISpeechGrammarRules_INTERFACE_DEFINED__
14784 #define __ISpeechGrammarRules_INTERFACE_DEFINED__
14785 
14786 DEFINE_GUID(IID_ISpeechGrammarRules, 0x6ffa3b44, 0xfc2d, 0x40d1, 0x8a,0xfc, 0x32,0x91,0x1c,0x7f,0x1a,0xd1);
14787 #if defined(__cplusplus) && !defined(CINTERFACE)
14788 MIDL_INTERFACE("6ffa3b44-fc2d-40d1-8afc-32911c7f1ad1")
14789 ISpeechGrammarRules : public IDispatch
14790 {
14791     virtual HRESULT STDMETHODCALLTYPE get_Count(
14792         LONG *Count) = 0;
14793 
14794     virtual HRESULT STDMETHODCALLTYPE FindRule(
14795         VARIANT RuleNameOrId,
14796         ISpeechGrammarRule **Rule) = 0;
14797 
14798     virtual HRESULT STDMETHODCALLTYPE Item(
14799         LONG Index,
14800         ISpeechGrammarRule **Rule) = 0;
14801 
14802     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
14803         IUnknown **EnumVARIANT) = 0;
14804 
14805     virtual HRESULT STDMETHODCALLTYPE get_Dynamic(
14806         VARIANT_BOOL *Dynamic) = 0;
14807 
14808     virtual HRESULT STDMETHODCALLTYPE Add(
14809         BSTR RuleName,
14810         SpeechRuleAttributes Attributes,
14811         LONG RuleId,
14812         ISpeechGrammarRule **Rule) = 0;
14813 
14814     virtual HRESULT STDMETHODCALLTYPE Commit(
14815         ) = 0;
14816 
14817     virtual HRESULT STDMETHODCALLTYPE CommitAndSave(
14818         BSTR *ErrorText,
14819         VARIANT *SaveStream) = 0;
14820 
14821 };
14822 #ifdef __CRT_UUID_DECL
14823 __CRT_UUID_DECL(ISpeechGrammarRules, 0x6ffa3b44, 0xfc2d, 0x40d1, 0x8a,0xfc, 0x32,0x91,0x1c,0x7f,0x1a,0xd1)
14824 #endif
14825 #else
14826 typedef struct ISpeechGrammarRulesVtbl {
14827     BEGIN_INTERFACE
14828 
14829     /*** IUnknown methods ***/
14830     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14831         ISpeechGrammarRules *This,
14832         REFIID riid,
14833         void **ppvObject);
14834 
14835     ULONG (STDMETHODCALLTYPE *AddRef)(
14836         ISpeechGrammarRules *This);
14837 
14838     ULONG (STDMETHODCALLTYPE *Release)(
14839         ISpeechGrammarRules *This);
14840 
14841     /*** IDispatch methods ***/
14842     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
14843         ISpeechGrammarRules *This,
14844         UINT *pctinfo);
14845 
14846     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
14847         ISpeechGrammarRules *This,
14848         UINT iTInfo,
14849         LCID lcid,
14850         ITypeInfo **ppTInfo);
14851 
14852     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
14853         ISpeechGrammarRules *This,
14854         REFIID riid,
14855         LPOLESTR *rgszNames,
14856         UINT cNames,
14857         LCID lcid,
14858         DISPID *rgDispId);
14859 
14860     HRESULT (STDMETHODCALLTYPE *Invoke)(
14861         ISpeechGrammarRules *This,
14862         DISPID dispIdMember,
14863         REFIID riid,
14864         LCID lcid,
14865         WORD wFlags,
14866         DISPPARAMS *pDispParams,
14867         VARIANT *pVarResult,
14868         EXCEPINFO *pExcepInfo,
14869         UINT *puArgErr);
14870 
14871     /*** ISpeechGrammarRules methods ***/
14872     HRESULT (STDMETHODCALLTYPE *get_Count)(
14873         ISpeechGrammarRules *This,
14874         LONG *Count);
14875 
14876     HRESULT (STDMETHODCALLTYPE *FindRule)(
14877         ISpeechGrammarRules *This,
14878         VARIANT RuleNameOrId,
14879         ISpeechGrammarRule **Rule);
14880 
14881     HRESULT (STDMETHODCALLTYPE *Item)(
14882         ISpeechGrammarRules *This,
14883         LONG Index,
14884         ISpeechGrammarRule **Rule);
14885 
14886     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
14887         ISpeechGrammarRules *This,
14888         IUnknown **EnumVARIANT);
14889 
14890     HRESULT (STDMETHODCALLTYPE *get_Dynamic)(
14891         ISpeechGrammarRules *This,
14892         VARIANT_BOOL *Dynamic);
14893 
14894     HRESULT (STDMETHODCALLTYPE *Add)(
14895         ISpeechGrammarRules *This,
14896         BSTR RuleName,
14897         SpeechRuleAttributes Attributes,
14898         LONG RuleId,
14899         ISpeechGrammarRule **Rule);
14900 
14901     HRESULT (STDMETHODCALLTYPE *Commit)(
14902         ISpeechGrammarRules *This);
14903 
14904     HRESULT (STDMETHODCALLTYPE *CommitAndSave)(
14905         ISpeechGrammarRules *This,
14906         BSTR *ErrorText,
14907         VARIANT *SaveStream);
14908 
14909     END_INTERFACE
14910 } ISpeechGrammarRulesVtbl;
14911 
14912 interface ISpeechGrammarRules {
14913     CONST_VTBL ISpeechGrammarRulesVtbl* lpVtbl;
14914 };
14915 
14916 #ifdef COBJMACROS
14917 #ifndef WIDL_C_INLINE_WRAPPERS
14918 /*** IUnknown methods ***/
14919 #define ISpeechGrammarRules_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14920 #define ISpeechGrammarRules_AddRef(This) (This)->lpVtbl->AddRef(This)
14921 #define ISpeechGrammarRules_Release(This) (This)->lpVtbl->Release(This)
14922 /*** IDispatch methods ***/
14923 #define ISpeechGrammarRules_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14924 #define ISpeechGrammarRules_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14925 #define ISpeechGrammarRules_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14926 #define ISpeechGrammarRules_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14927 /*** ISpeechGrammarRules methods ***/
14928 #define ISpeechGrammarRules_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
14929 #define ISpeechGrammarRules_FindRule(This,RuleNameOrId,Rule) (This)->lpVtbl->FindRule(This,RuleNameOrId,Rule)
14930 #define ISpeechGrammarRules_Item(This,Index,Rule) (This)->lpVtbl->Item(This,Index,Rule)
14931 #define ISpeechGrammarRules_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
14932 #define ISpeechGrammarRules_get_Dynamic(This,Dynamic) (This)->lpVtbl->get_Dynamic(This,Dynamic)
14933 #define ISpeechGrammarRules_Add(This,RuleName,Attributes,RuleId,Rule) (This)->lpVtbl->Add(This,RuleName,Attributes,RuleId,Rule)
14934 #define ISpeechGrammarRules_Commit(This) (This)->lpVtbl->Commit(This)
14935 #define ISpeechGrammarRules_CommitAndSave(This,ErrorText,SaveStream) (This)->lpVtbl->CommitAndSave(This,ErrorText,SaveStream)
14936 #else
14937 /*** IUnknown methods ***/
14938 static FORCEINLINE HRESULT ISpeechGrammarRules_QueryInterface(ISpeechGrammarRules* This,REFIID riid,void **ppvObject) {
14939     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14940 }
14941 static FORCEINLINE ULONG ISpeechGrammarRules_AddRef(ISpeechGrammarRules* This) {
14942     return This->lpVtbl->AddRef(This);
14943 }
14944 static FORCEINLINE ULONG ISpeechGrammarRules_Release(ISpeechGrammarRules* This) {
14945     return This->lpVtbl->Release(This);
14946 }
14947 /*** IDispatch methods ***/
14948 static FORCEINLINE HRESULT ISpeechGrammarRules_GetTypeInfoCount(ISpeechGrammarRules* This,UINT *pctinfo) {
14949     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14950 }
14951 static FORCEINLINE HRESULT ISpeechGrammarRules_GetTypeInfo(ISpeechGrammarRules* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14952     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14953 }
14954 static FORCEINLINE HRESULT ISpeechGrammarRules_GetIDsOfNames(ISpeechGrammarRules* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14955     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14956 }
14957 static FORCEINLINE HRESULT ISpeechGrammarRules_Invoke(ISpeechGrammarRules* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14958     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14959 }
14960 /*** ISpeechGrammarRules methods ***/
14961 static FORCEINLINE HRESULT ISpeechGrammarRules_get_Count(ISpeechGrammarRules* This,LONG *Count) {
14962     return This->lpVtbl->get_Count(This,Count);
14963 }
14964 static FORCEINLINE HRESULT ISpeechGrammarRules_FindRule(ISpeechGrammarRules* This,VARIANT RuleNameOrId,ISpeechGrammarRule **Rule) {
14965     return This->lpVtbl->FindRule(This,RuleNameOrId,Rule);
14966 }
14967 static FORCEINLINE HRESULT ISpeechGrammarRules_Item(ISpeechGrammarRules* This,LONG Index,ISpeechGrammarRule **Rule) {
14968     return This->lpVtbl->Item(This,Index,Rule);
14969 }
14970 static FORCEINLINE HRESULT ISpeechGrammarRules_get__NewEnum(ISpeechGrammarRules* This,IUnknown **EnumVARIANT) {
14971     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
14972 }
14973 static FORCEINLINE HRESULT ISpeechGrammarRules_get_Dynamic(ISpeechGrammarRules* This,VARIANT_BOOL *Dynamic) {
14974     return This->lpVtbl->get_Dynamic(This,Dynamic);
14975 }
14976 static FORCEINLINE HRESULT ISpeechGrammarRules_Add(ISpeechGrammarRules* This,BSTR RuleName,SpeechRuleAttributes Attributes,LONG RuleId,ISpeechGrammarRule **Rule) {
14977     return This->lpVtbl->Add(This,RuleName,Attributes,RuleId,Rule);
14978 }
14979 static FORCEINLINE HRESULT ISpeechGrammarRules_Commit(ISpeechGrammarRules* This) {
14980     return This->lpVtbl->Commit(This);
14981 }
14982 static FORCEINLINE HRESULT ISpeechGrammarRules_CommitAndSave(ISpeechGrammarRules* This,BSTR *ErrorText,VARIANT *SaveStream) {
14983     return This->lpVtbl->CommitAndSave(This,ErrorText,SaveStream);
14984 }
14985 #endif
14986 #endif
14987 
14988 #endif
14989 
14990 
14991 #endif  /* __ISpeechGrammarRules_INTERFACE_DEFINED__ */
14992 
14993 /*****************************************************************************
14994  * ISpeechGrammarRuleState interface
14995  */
14996 #ifndef __ISpeechGrammarRuleState_INTERFACE_DEFINED__
14997 #define __ISpeechGrammarRuleState_INTERFACE_DEFINED__
14998 
14999 DEFINE_GUID(IID_ISpeechGrammarRuleState, 0xd4286f2c, 0xee67, 0x45ae, 0xb9,0x28, 0x28,0xd6,0x95,0x36,0x2e,0xda);
15000 #if defined(__cplusplus) && !defined(CINTERFACE)
15001 MIDL_INTERFACE("d4286f2c-ee67-45ae-b928-28d695362eda")
15002 ISpeechGrammarRuleState : public IDispatch
15003 {
15004     virtual HRESULT STDMETHODCALLTYPE get_Rule(
15005         ISpeechGrammarRule **Rule) = 0;
15006 
15007     virtual HRESULT STDMETHODCALLTYPE get_Transitions(
15008         ISpeechGrammarRuleStateTransitions **Transitions) = 0;
15009 
15010     virtual HRESULT STDMETHODCALLTYPE AddWordTransition(
15011         ISpeechGrammarRuleState *DestState,
15012         const BSTR Words,
15013         const BSTR Separators = L" ",
15014         SpeechGrammarWordType Type = SGLexical,
15015         const BSTR PropertyName = L"",
15016         LONG PropertyId = 0,
15017         VARIANT *PropertyValue = 0,
15018         float Weight = 1) = 0;
15019 
15020     virtual HRESULT STDMETHODCALLTYPE AddRuleTransition(
15021         ISpeechGrammarRuleState *DestinationState,
15022         ISpeechGrammarRule *Rule,
15023         const BSTR PropertyName = L"",
15024         LONG PropertyId = 0,
15025         VARIANT *PropertyValue = 0,
15026         float Weight = 1) = 0;
15027 
15028     virtual HRESULT STDMETHODCALLTYPE AddSpecialTransition(
15029         ISpeechGrammarRuleState *DestinationState,
15030         SpeechSpecialTransitionType Type,
15031         const BSTR PropertyName = L"",
15032         LONG PropertyId = 0,
15033         VARIANT *PropertyValue = 0,
15034         float Weight = 1) = 0;
15035 
15036 };
15037 #ifdef __CRT_UUID_DECL
15038 __CRT_UUID_DECL(ISpeechGrammarRuleState, 0xd4286f2c, 0xee67, 0x45ae, 0xb9,0x28, 0x28,0xd6,0x95,0x36,0x2e,0xda)
15039 #endif
15040 #else
15041 typedef struct ISpeechGrammarRuleStateVtbl {
15042     BEGIN_INTERFACE
15043 
15044     /*** IUnknown methods ***/
15045     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15046         ISpeechGrammarRuleState *This,
15047         REFIID riid,
15048         void **ppvObject);
15049 
15050     ULONG (STDMETHODCALLTYPE *AddRef)(
15051         ISpeechGrammarRuleState *This);
15052 
15053     ULONG (STDMETHODCALLTYPE *Release)(
15054         ISpeechGrammarRuleState *This);
15055 
15056     /*** IDispatch methods ***/
15057     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15058         ISpeechGrammarRuleState *This,
15059         UINT *pctinfo);
15060 
15061     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15062         ISpeechGrammarRuleState *This,
15063         UINT iTInfo,
15064         LCID lcid,
15065         ITypeInfo **ppTInfo);
15066 
15067     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15068         ISpeechGrammarRuleState *This,
15069         REFIID riid,
15070         LPOLESTR *rgszNames,
15071         UINT cNames,
15072         LCID lcid,
15073         DISPID *rgDispId);
15074 
15075     HRESULT (STDMETHODCALLTYPE *Invoke)(
15076         ISpeechGrammarRuleState *This,
15077         DISPID dispIdMember,
15078         REFIID riid,
15079         LCID lcid,
15080         WORD wFlags,
15081         DISPPARAMS *pDispParams,
15082         VARIANT *pVarResult,
15083         EXCEPINFO *pExcepInfo,
15084         UINT *puArgErr);
15085 
15086     /*** ISpeechGrammarRuleState methods ***/
15087     HRESULT (STDMETHODCALLTYPE *get_Rule)(
15088         ISpeechGrammarRuleState *This,
15089         ISpeechGrammarRule **Rule);
15090 
15091     HRESULT (STDMETHODCALLTYPE *get_Transitions)(
15092         ISpeechGrammarRuleState *This,
15093         ISpeechGrammarRuleStateTransitions **Transitions);
15094 
15095     HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
15096         ISpeechGrammarRuleState *This,
15097         ISpeechGrammarRuleState *DestState,
15098         const BSTR Words,
15099         const BSTR Separators,
15100         SpeechGrammarWordType Type,
15101         const BSTR PropertyName,
15102         LONG PropertyId,
15103         VARIANT *PropertyValue,
15104         float Weight);
15105 
15106     HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
15107         ISpeechGrammarRuleState *This,
15108         ISpeechGrammarRuleState *DestinationState,
15109         ISpeechGrammarRule *Rule,
15110         const BSTR PropertyName,
15111         LONG PropertyId,
15112         VARIANT *PropertyValue,
15113         float Weight);
15114 
15115     HRESULT (STDMETHODCALLTYPE *AddSpecialTransition)(
15116         ISpeechGrammarRuleState *This,
15117         ISpeechGrammarRuleState *DestinationState,
15118         SpeechSpecialTransitionType Type,
15119         const BSTR PropertyName,
15120         LONG PropertyId,
15121         VARIANT *PropertyValue,
15122         float Weight);
15123 
15124     END_INTERFACE
15125 } ISpeechGrammarRuleStateVtbl;
15126 
15127 interface ISpeechGrammarRuleState {
15128     CONST_VTBL ISpeechGrammarRuleStateVtbl* lpVtbl;
15129 };
15130 
15131 #ifdef COBJMACROS
15132 #ifndef WIDL_C_INLINE_WRAPPERS
15133 /*** IUnknown methods ***/
15134 #define ISpeechGrammarRuleState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15135 #define ISpeechGrammarRuleState_AddRef(This) (This)->lpVtbl->AddRef(This)
15136 #define ISpeechGrammarRuleState_Release(This) (This)->lpVtbl->Release(This)
15137 /*** IDispatch methods ***/
15138 #define ISpeechGrammarRuleState_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
15139 #define ISpeechGrammarRuleState_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
15140 #define ISpeechGrammarRuleState_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
15141 #define ISpeechGrammarRuleState_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
15142 /*** ISpeechGrammarRuleState methods ***/
15143 #define ISpeechGrammarRuleState_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
15144 #define ISpeechGrammarRuleState_get_Transitions(This,Transitions) (This)->lpVtbl->get_Transitions(This,Transitions)
15145 #define ISpeechGrammarRuleState_AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight)
15146 #define ISpeechGrammarRuleState_AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight)
15147 #define ISpeechGrammarRuleState_AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight)
15148 #else
15149 /*** IUnknown methods ***/
15150 static FORCEINLINE HRESULT ISpeechGrammarRuleState_QueryInterface(ISpeechGrammarRuleState* This,REFIID riid,void **ppvObject) {
15151     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15152 }
15153 static FORCEINLINE ULONG ISpeechGrammarRuleState_AddRef(ISpeechGrammarRuleState* This) {
15154     return This->lpVtbl->AddRef(This);
15155 }
15156 static FORCEINLINE ULONG ISpeechGrammarRuleState_Release(ISpeechGrammarRuleState* This) {
15157     return This->lpVtbl->Release(This);
15158 }
15159 /*** IDispatch methods ***/
15160 static FORCEINLINE HRESULT ISpeechGrammarRuleState_GetTypeInfoCount(ISpeechGrammarRuleState* This,UINT *pctinfo) {
15161     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
15162 }
15163 static FORCEINLINE HRESULT ISpeechGrammarRuleState_GetTypeInfo(ISpeechGrammarRuleState* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
15164     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
15165 }
15166 static FORCEINLINE HRESULT ISpeechGrammarRuleState_GetIDsOfNames(ISpeechGrammarRuleState* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
15167     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
15168 }
15169 static FORCEINLINE HRESULT ISpeechGrammarRuleState_Invoke(ISpeechGrammarRuleState* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
15170     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
15171 }
15172 /*** ISpeechGrammarRuleState methods ***/
15173 static FORCEINLINE HRESULT ISpeechGrammarRuleState_get_Rule(ISpeechGrammarRuleState* This,ISpeechGrammarRule **Rule) {
15174     return This->lpVtbl->get_Rule(This,Rule);
15175 }
15176 static FORCEINLINE HRESULT ISpeechGrammarRuleState_get_Transitions(ISpeechGrammarRuleState* This,ISpeechGrammarRuleStateTransitions **Transitions) {
15177     return This->lpVtbl->get_Transitions(This,Transitions);
15178 }
15179 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) {
15180     return This->lpVtbl->AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight);
15181 }
15182 static FORCEINLINE HRESULT ISpeechGrammarRuleState_AddRuleTransition(ISpeechGrammarRuleState* This,ISpeechGrammarRuleState *DestinationState,ISpeechGrammarRule *Rule,const BSTR PropertyName,LONG PropertyId,VARIANT *PropertyValue,float Weight) {
15183     return This->lpVtbl->AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight);
15184 }
15185 static FORCEINLINE HRESULT ISpeechGrammarRuleState_AddSpecialTransition(ISpeechGrammarRuleState* This,ISpeechGrammarRuleState *DestinationState,SpeechSpecialTransitionType Type,const BSTR PropertyName,LONG PropertyId,VARIANT *PropertyValue,float Weight) {
15186     return This->lpVtbl->AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight);
15187 }
15188 #endif
15189 #endif
15190 
15191 #endif
15192 
15193 
15194 #endif  /* __ISpeechGrammarRuleState_INTERFACE_DEFINED__ */
15195 
15196 /*****************************************************************************
15197  * ISpeechGrammarRuleStateTransitions interface
15198  */
15199 #ifndef __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__
15200 #define __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__
15201 
15202 DEFINE_GUID(IID_ISpeechGrammarRuleStateTransitions, 0xeabce657, 0x75bc, 0x44a2, 0xaa,0x7f, 0xc5,0x64,0x76,0x74,0x29,0x63);
15203 #if defined(__cplusplus) && !defined(CINTERFACE)
15204 MIDL_INTERFACE("eabce657-75bc-44a2-aa7f-c56476742963")
15205 ISpeechGrammarRuleStateTransitions : public IDispatch
15206 {
15207     virtual HRESULT STDMETHODCALLTYPE get_Count(
15208         LONG *Count) = 0;
15209 
15210     virtual HRESULT STDMETHODCALLTYPE Item(
15211         LONG Index,
15212         ISpeechGrammarRuleStateTransition **Transition) = 0;
15213 
15214     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
15215         IUnknown **EnumVARIANT) = 0;
15216 
15217 };
15218 #ifdef __CRT_UUID_DECL
15219 __CRT_UUID_DECL(ISpeechGrammarRuleStateTransitions, 0xeabce657, 0x75bc, 0x44a2, 0xaa,0x7f, 0xc5,0x64,0x76,0x74,0x29,0x63)
15220 #endif
15221 #else
15222 typedef struct ISpeechGrammarRuleStateTransitionsVtbl {
15223     BEGIN_INTERFACE
15224 
15225     /*** IUnknown methods ***/
15226     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15227         ISpeechGrammarRuleStateTransitions *This,
15228         REFIID riid,
15229         void **ppvObject);
15230 
15231     ULONG (STDMETHODCALLTYPE *AddRef)(
15232         ISpeechGrammarRuleStateTransitions *This);
15233 
15234     ULONG (STDMETHODCALLTYPE *Release)(
15235         ISpeechGrammarRuleStateTransitions *This);
15236 
15237     /*** IDispatch methods ***/
15238     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15239         ISpeechGrammarRuleStateTransitions *This,
15240         UINT *pctinfo);
15241 
15242     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15243         ISpeechGrammarRuleStateTransitions *This,
15244         UINT iTInfo,
15245         LCID lcid,
15246         ITypeInfo **ppTInfo);
15247 
15248     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15249         ISpeechGrammarRuleStateTransitions *This,
15250         REFIID riid,
15251         LPOLESTR *rgszNames,
15252         UINT cNames,
15253         LCID lcid,
15254         DISPID *rgDispId);
15255 
15256     HRESULT (STDMETHODCALLTYPE *Invoke)(
15257         ISpeechGrammarRuleStateTransitions *This,
15258         DISPID dispIdMember,
15259         REFIID riid,
15260         LCID lcid,
15261         WORD wFlags,
15262         DISPPARAMS *pDispParams,
15263         VARIANT *pVarResult,
15264         EXCEPINFO *pExcepInfo,
15265         UINT *puArgErr);
15266 
15267     /*** ISpeechGrammarRuleStateTransitions methods ***/
15268     HRESULT (STDMETHODCALLTYPE *get_Count)(
15269         ISpeechGrammarRuleStateTransitions *This,
15270         LONG *Count);
15271 
15272     HRESULT (STDMETHODCALLTYPE *Item)(
15273         ISpeechGrammarRuleStateTransitions *This,
15274         LONG Index,
15275         ISpeechGrammarRuleStateTransition **Transition);
15276 
15277     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
15278         ISpeechGrammarRuleStateTransitions *This,
15279         IUnknown **EnumVARIANT);
15280 
15281     END_INTERFACE
15282 } ISpeechGrammarRuleStateTransitionsVtbl;
15283 
15284 interface ISpeechGrammarRuleStateTransitions {
15285     CONST_VTBL ISpeechGrammarRuleStateTransitionsVtbl* lpVtbl;
15286 };
15287 
15288 #ifdef COBJMACROS
15289 #ifndef WIDL_C_INLINE_WRAPPERS
15290 /*** IUnknown methods ***/
15291 #define ISpeechGrammarRuleStateTransitions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15292 #define ISpeechGrammarRuleStateTransitions_AddRef(This) (This)->lpVtbl->AddRef(This)
15293 #define ISpeechGrammarRuleStateTransitions_Release(This) (This)->lpVtbl->Release(This)
15294 /*** IDispatch methods ***/
15295 #define ISpeechGrammarRuleStateTransitions_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
15296 #define ISpeechGrammarRuleStateTransitions_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
15297 #define ISpeechGrammarRuleStateTransitions_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
15298 #define ISpeechGrammarRuleStateTransitions_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
15299 /*** ISpeechGrammarRuleStateTransitions methods ***/
15300 #define ISpeechGrammarRuleStateTransitions_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
15301 #define ISpeechGrammarRuleStateTransitions_Item(This,Index,Transition) (This)->lpVtbl->Item(This,Index,Transition)
15302 #define ISpeechGrammarRuleStateTransitions_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
15303 #else
15304 /*** IUnknown methods ***/
15305 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_QueryInterface(ISpeechGrammarRuleStateTransitions* This,REFIID riid,void **ppvObject) {
15306     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15307 }
15308 static FORCEINLINE ULONG ISpeechGrammarRuleStateTransitions_AddRef(ISpeechGrammarRuleStateTransitions* This) {
15309     return This->lpVtbl->AddRef(This);
15310 }
15311 static FORCEINLINE ULONG ISpeechGrammarRuleStateTransitions_Release(ISpeechGrammarRuleStateTransitions* This) {
15312     return This->lpVtbl->Release(This);
15313 }
15314 /*** IDispatch methods ***/
15315 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_GetTypeInfoCount(ISpeechGrammarRuleStateTransitions* This,UINT *pctinfo) {
15316     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
15317 }
15318 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_GetTypeInfo(ISpeechGrammarRuleStateTransitions* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
15319     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
15320 }
15321 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_GetIDsOfNames(ISpeechGrammarRuleStateTransitions* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
15322     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
15323 }
15324 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_Invoke(ISpeechGrammarRuleStateTransitions* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
15325     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
15326 }
15327 /*** ISpeechGrammarRuleStateTransitions methods ***/
15328 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_get_Count(ISpeechGrammarRuleStateTransitions* This,LONG *Count) {
15329     return This->lpVtbl->get_Count(This,Count);
15330 }
15331 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_Item(ISpeechGrammarRuleStateTransitions* This,LONG Index,ISpeechGrammarRuleStateTransition **Transition) {
15332     return This->lpVtbl->Item(This,Index,Transition);
15333 }
15334 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_get__NewEnum(ISpeechGrammarRuleStateTransitions* This,IUnknown **EnumVARIANT) {
15335     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
15336 }
15337 #endif
15338 #endif
15339 
15340 #endif
15341 
15342 
15343 #endif  /* __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__ */
15344 
15345 /*****************************************************************************
15346  * ISpeechGrammarRuleStateTransition interface
15347  */
15348 #ifndef __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__
15349 #define __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__
15350 
15351 DEFINE_GUID(IID_ISpeechGrammarRuleStateTransition, 0xcafd1db1, 0x41d1, 0x4a06, 0x98,0x63, 0xe2,0xe8,0x1d,0xa1,0x7a,0x9a);
15352 #if defined(__cplusplus) && !defined(CINTERFACE)
15353 MIDL_INTERFACE("cafd1db1-41d1-4a06-9863-e2e81da17a9a")
15354 ISpeechGrammarRuleStateTransition : public IDispatch
15355 {
15356     virtual HRESULT STDMETHODCALLTYPE get_Type(
15357         SpeechGrammarRuleStateTransitionType *Type) = 0;
15358 
15359     virtual HRESULT STDMETHODCALLTYPE get_Text(
15360         BSTR *Text) = 0;
15361 
15362     virtual HRESULT STDMETHODCALLTYPE get_Rule(
15363         ISpeechGrammarRule **Rule) = 0;
15364 
15365     virtual HRESULT STDMETHODCALLTYPE get_Weight(
15366         VARIANT *Weight) = 0;
15367 
15368     virtual HRESULT STDMETHODCALLTYPE get_PropertyName(
15369         BSTR *PropertyName) = 0;
15370 
15371     virtual HRESULT STDMETHODCALLTYPE get_PropertyId(
15372         LONG *PropertyId) = 0;
15373 
15374     virtual HRESULT STDMETHODCALLTYPE get_PropertyValue(
15375         VARIANT *PropertyValue) = 0;
15376 
15377     virtual HRESULT STDMETHODCALLTYPE get_NextState(
15378         ISpeechGrammarRuleState **NextState) = 0;
15379 
15380 };
15381 #ifdef __CRT_UUID_DECL
15382 __CRT_UUID_DECL(ISpeechGrammarRuleStateTransition, 0xcafd1db1, 0x41d1, 0x4a06, 0x98,0x63, 0xe2,0xe8,0x1d,0xa1,0x7a,0x9a)
15383 #endif
15384 #else
15385 typedef struct ISpeechGrammarRuleStateTransitionVtbl {
15386     BEGIN_INTERFACE
15387 
15388     /*** IUnknown methods ***/
15389     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15390         ISpeechGrammarRuleStateTransition *This,
15391         REFIID riid,
15392         void **ppvObject);
15393 
15394     ULONG (STDMETHODCALLTYPE *AddRef)(
15395         ISpeechGrammarRuleStateTransition *This);
15396 
15397     ULONG (STDMETHODCALLTYPE *Release)(
15398         ISpeechGrammarRuleStateTransition *This);
15399 
15400     /*** IDispatch methods ***/
15401     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15402         ISpeechGrammarRuleStateTransition *This,
15403         UINT *pctinfo);
15404 
15405     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15406         ISpeechGrammarRuleStateTransition *This,
15407         UINT iTInfo,
15408         LCID lcid,
15409         ITypeInfo **ppTInfo);
15410 
15411     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15412         ISpeechGrammarRuleStateTransition *This,
15413         REFIID riid,
15414         LPOLESTR *rgszNames,
15415         UINT cNames,
15416         LCID lcid,
15417         DISPID *rgDispId);
15418 
15419     HRESULT (STDMETHODCALLTYPE *Invoke)(
15420         ISpeechGrammarRuleStateTransition *This,
15421         DISPID dispIdMember,
15422         REFIID riid,
15423         LCID lcid,
15424         WORD wFlags,
15425         DISPPARAMS *pDispParams,
15426         VARIANT *pVarResult,
15427         EXCEPINFO *pExcepInfo,
15428         UINT *puArgErr);
15429 
15430     /*** ISpeechGrammarRuleStateTransition methods ***/
15431     HRESULT (STDMETHODCALLTYPE *get_Type)(
15432         ISpeechGrammarRuleStateTransition *This,
15433         SpeechGrammarRuleStateTransitionType *Type);
15434 
15435     HRESULT (STDMETHODCALLTYPE *get_Text)(
15436         ISpeechGrammarRuleStateTransition *This,
15437         BSTR *Text);
15438 
15439     HRESULT (STDMETHODCALLTYPE *get_Rule)(
15440         ISpeechGrammarRuleStateTransition *This,
15441         ISpeechGrammarRule **Rule);
15442 
15443     HRESULT (STDMETHODCALLTYPE *get_Weight)(
15444         ISpeechGrammarRuleStateTransition *This,
15445         VARIANT *Weight);
15446 
15447     HRESULT (STDMETHODCALLTYPE *get_PropertyName)(
15448         ISpeechGrammarRuleStateTransition *This,
15449         BSTR *PropertyName);
15450 
15451     HRESULT (STDMETHODCALLTYPE *get_PropertyId)(
15452         ISpeechGrammarRuleStateTransition *This,
15453         LONG *PropertyId);
15454 
15455     HRESULT (STDMETHODCALLTYPE *get_PropertyValue)(
15456         ISpeechGrammarRuleStateTransition *This,
15457         VARIANT *PropertyValue);
15458 
15459     HRESULT (STDMETHODCALLTYPE *get_NextState)(
15460         ISpeechGrammarRuleStateTransition *This,
15461         ISpeechGrammarRuleState **NextState);
15462 
15463     END_INTERFACE
15464 } ISpeechGrammarRuleStateTransitionVtbl;
15465 
15466 interface ISpeechGrammarRuleStateTransition {
15467     CONST_VTBL ISpeechGrammarRuleStateTransitionVtbl* lpVtbl;
15468 };
15469 
15470 #ifdef COBJMACROS
15471 #ifndef WIDL_C_INLINE_WRAPPERS
15472 /*** IUnknown methods ***/
15473 #define ISpeechGrammarRuleStateTransition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15474 #define ISpeechGrammarRuleStateTransition_AddRef(This) (This)->lpVtbl->AddRef(This)
15475 #define ISpeechGrammarRuleStateTransition_Release(This) (This)->lpVtbl->Release(This)
15476 /*** IDispatch methods ***/
15477 #define ISpeechGrammarRuleStateTransition_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
15478 #define ISpeechGrammarRuleStateTransition_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
15479 #define ISpeechGrammarRuleStateTransition_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
15480 #define ISpeechGrammarRuleStateTransition_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
15481 /*** ISpeechGrammarRuleStateTransition methods ***/
15482 #define ISpeechGrammarRuleStateTransition_get_Type(This,Type) (This)->lpVtbl->get_Type(This,Type)
15483 #define ISpeechGrammarRuleStateTransition_get_Text(This,Text) (This)->lpVtbl->get_Text(This,Text)
15484 #define ISpeechGrammarRuleStateTransition_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
15485 #define ISpeechGrammarRuleStateTransition_get_Weight(This,Weight) (This)->lpVtbl->get_Weight(This,Weight)
15486 #define ISpeechGrammarRuleStateTransition_get_PropertyName(This,PropertyName) (This)->lpVtbl->get_PropertyName(This,PropertyName)
15487 #define ISpeechGrammarRuleStateTransition_get_PropertyId(This,PropertyId) (This)->lpVtbl->get_PropertyId(This,PropertyId)
15488 #define ISpeechGrammarRuleStateTransition_get_PropertyValue(This,PropertyValue) (This)->lpVtbl->get_PropertyValue(This,PropertyValue)
15489 #define ISpeechGrammarRuleStateTransition_get_NextState(This,NextState) (This)->lpVtbl->get_NextState(This,NextState)
15490 #else
15491 /*** IUnknown methods ***/
15492 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_QueryInterface(ISpeechGrammarRuleStateTransition* This,REFIID riid,void **ppvObject) {
15493     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15494 }
15495 static FORCEINLINE ULONG ISpeechGrammarRuleStateTransition_AddRef(ISpeechGrammarRuleStateTransition* This) {
15496     return This->lpVtbl->AddRef(This);
15497 }
15498 static FORCEINLINE ULONG ISpeechGrammarRuleStateTransition_Release(ISpeechGrammarRuleStateTransition* This) {
15499     return This->lpVtbl->Release(This);
15500 }
15501 /*** IDispatch methods ***/
15502 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_GetTypeInfoCount(ISpeechGrammarRuleStateTransition* This,UINT *pctinfo) {
15503     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
15504 }
15505 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_GetTypeInfo(ISpeechGrammarRuleStateTransition* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
15506     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
15507 }
15508 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_GetIDsOfNames(ISpeechGrammarRuleStateTransition* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
15509     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
15510 }
15511 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_Invoke(ISpeechGrammarRuleStateTransition* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
15512     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
15513 }
15514 /*** ISpeechGrammarRuleStateTransition methods ***/
15515 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_Type(ISpeechGrammarRuleStateTransition* This,SpeechGrammarRuleStateTransitionType *Type) {
15516     return This->lpVtbl->get_Type(This,Type);
15517 }
15518 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_Text(ISpeechGrammarRuleStateTransition* This,BSTR *Text) {
15519     return This->lpVtbl->get_Text(This,Text);
15520 }
15521 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_Rule(ISpeechGrammarRuleStateTransition* This,ISpeechGrammarRule **Rule) {
15522     return This->lpVtbl->get_Rule(This,Rule);
15523 }
15524 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_Weight(ISpeechGrammarRuleStateTransition* This,VARIANT *Weight) {
15525     return This->lpVtbl->get_Weight(This,Weight);
15526 }
15527 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_PropertyName(ISpeechGrammarRuleStateTransition* This,BSTR *PropertyName) {
15528     return This->lpVtbl->get_PropertyName(This,PropertyName);
15529 }
15530 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_PropertyId(ISpeechGrammarRuleStateTransition* This,LONG *PropertyId) {
15531     return This->lpVtbl->get_PropertyId(This,PropertyId);
15532 }
15533 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_PropertyValue(ISpeechGrammarRuleStateTransition* This,VARIANT *PropertyValue) {
15534     return This->lpVtbl->get_PropertyValue(This,PropertyValue);
15535 }
15536 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_NextState(ISpeechGrammarRuleStateTransition* This,ISpeechGrammarRuleState **NextState) {
15537     return This->lpVtbl->get_NextState(This,NextState);
15538 }
15539 #endif
15540 #endif
15541 
15542 #endif
15543 
15544 
15545 #endif  /* __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__ */
15546 
15547 /*****************************************************************************
15548  * ISpeechTextSelectionInformation interface
15549  */
15550 #ifndef __ISpeechTextSelectionInformation_INTERFACE_DEFINED__
15551 #define __ISpeechTextSelectionInformation_INTERFACE_DEFINED__
15552 
15553 DEFINE_GUID(IID_ISpeechTextSelectionInformation, 0x3b9c7e7a, 0x6eee, 0x4ded, 0x90,0x92, 0x11,0x65,0x72,0x79,0xad,0xbe);
15554 #if defined(__cplusplus) && !defined(CINTERFACE)
15555 MIDL_INTERFACE("3b9c7e7a-6eee-4ded-9092-11657279adbe")
15556 ISpeechTextSelectionInformation : public IDispatch
15557 {
15558     virtual HRESULT STDMETHODCALLTYPE put_ActiveOffset(
15559         LONG ActiveOffset) = 0;
15560 
15561     virtual HRESULT STDMETHODCALLTYPE get_ActiveOffset(
15562         LONG *ActiveOffset) = 0;
15563 
15564     virtual HRESULT STDMETHODCALLTYPE put_ActiveLength(
15565         LONG ActiveLength) = 0;
15566 
15567     virtual HRESULT STDMETHODCALLTYPE get_ActiveLength(
15568         LONG *ActiveLength) = 0;
15569 
15570     virtual HRESULT STDMETHODCALLTYPE put_SelectionOffset(
15571         LONG SelectionOffset) = 0;
15572 
15573     virtual HRESULT STDMETHODCALLTYPE get_SelectionOffset(
15574         LONG *SelectionOffset) = 0;
15575 
15576     virtual HRESULT STDMETHODCALLTYPE put_SelectionLength(
15577         LONG SelectionLength) = 0;
15578 
15579     virtual HRESULT STDMETHODCALLTYPE get_SelectionLength(
15580         LONG *SelectionLength) = 0;
15581 
15582 };
15583 #ifdef __CRT_UUID_DECL
15584 __CRT_UUID_DECL(ISpeechTextSelectionInformation, 0x3b9c7e7a, 0x6eee, 0x4ded, 0x90,0x92, 0x11,0x65,0x72,0x79,0xad,0xbe)
15585 #endif
15586 #else
15587 typedef struct ISpeechTextSelectionInformationVtbl {
15588     BEGIN_INTERFACE
15589 
15590     /*** IUnknown methods ***/
15591     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15592         ISpeechTextSelectionInformation *This,
15593         REFIID riid,
15594         void **ppvObject);
15595 
15596     ULONG (STDMETHODCALLTYPE *AddRef)(
15597         ISpeechTextSelectionInformation *This);
15598 
15599     ULONG (STDMETHODCALLTYPE *Release)(
15600         ISpeechTextSelectionInformation *This);
15601 
15602     /*** IDispatch methods ***/
15603     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15604         ISpeechTextSelectionInformation *This,
15605         UINT *pctinfo);
15606 
15607     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15608         ISpeechTextSelectionInformation *This,
15609         UINT iTInfo,
15610         LCID lcid,
15611         ITypeInfo **ppTInfo);
15612 
15613     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15614         ISpeechTextSelectionInformation *This,
15615         REFIID riid,
15616         LPOLESTR *rgszNames,
15617         UINT cNames,
15618         LCID lcid,
15619         DISPID *rgDispId);
15620 
15621     HRESULT (STDMETHODCALLTYPE *Invoke)(
15622         ISpeechTextSelectionInformation *This,
15623         DISPID dispIdMember,
15624         REFIID riid,
15625         LCID lcid,
15626         WORD wFlags,
15627         DISPPARAMS *pDispParams,
15628         VARIANT *pVarResult,
15629         EXCEPINFO *pExcepInfo,
15630         UINT *puArgErr);
15631 
15632     /*** ISpeechTextSelectionInformation methods ***/
15633     HRESULT (STDMETHODCALLTYPE *put_ActiveOffset)(
15634         ISpeechTextSelectionInformation *This,
15635         LONG ActiveOffset);
15636 
15637     HRESULT (STDMETHODCALLTYPE *get_ActiveOffset)(
15638         ISpeechTextSelectionInformation *This,
15639         LONG *ActiveOffset);
15640 
15641     HRESULT (STDMETHODCALLTYPE *put_ActiveLength)(
15642         ISpeechTextSelectionInformation *This,
15643         LONG ActiveLength);
15644 
15645     HRESULT (STDMETHODCALLTYPE *get_ActiveLength)(
15646         ISpeechTextSelectionInformation *This,
15647         LONG *ActiveLength);
15648 
15649     HRESULT (STDMETHODCALLTYPE *put_SelectionOffset)(
15650         ISpeechTextSelectionInformation *This,
15651         LONG SelectionOffset);
15652 
15653     HRESULT (STDMETHODCALLTYPE *get_SelectionOffset)(
15654         ISpeechTextSelectionInformation *This,
15655         LONG *SelectionOffset);
15656 
15657     HRESULT (STDMETHODCALLTYPE *put_SelectionLength)(
15658         ISpeechTextSelectionInformation *This,
15659         LONG SelectionLength);
15660 
15661     HRESULT (STDMETHODCALLTYPE *get_SelectionLength)(
15662         ISpeechTextSelectionInformation *This,
15663         LONG *SelectionLength);
15664 
15665     END_INTERFACE
15666 } ISpeechTextSelectionInformationVtbl;
15667 
15668 interface ISpeechTextSelectionInformation {
15669     CONST_VTBL ISpeechTextSelectionInformationVtbl* lpVtbl;
15670 };
15671 
15672 #ifdef COBJMACROS
15673 #ifndef WIDL_C_INLINE_WRAPPERS
15674 /*** IUnknown methods ***/
15675 #define ISpeechTextSelectionInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15676 #define ISpeechTextSelectionInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
15677 #define ISpeechTextSelectionInformation_Release(This) (This)->lpVtbl->Release(This)
15678 /*** IDispatch methods ***/
15679 #define ISpeechTextSelectionInformation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
15680 #define ISpeechTextSelectionInformation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
15681 #define ISpeechTextSelectionInformation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
15682 #define ISpeechTextSelectionInformation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
15683 /*** ISpeechTextSelectionInformation methods ***/
15684 #define ISpeechTextSelectionInformation_put_ActiveOffset(This,ActiveOffset) (This)->lpVtbl->put_ActiveOffset(This,ActiveOffset)
15685 #define ISpeechTextSelectionInformation_get_ActiveOffset(This,ActiveOffset) (This)->lpVtbl->get_ActiveOffset(This,ActiveOffset)
15686 #define ISpeechTextSelectionInformation_put_ActiveLength(This,ActiveLength) (This)->lpVtbl->put_ActiveLength(This,ActiveLength)
15687 #define ISpeechTextSelectionInformation_get_ActiveLength(This,ActiveLength) (This)->lpVtbl->get_ActiveLength(This,ActiveLength)
15688 #define ISpeechTextSelectionInformation_put_SelectionOffset(This,SelectionOffset) (This)->lpVtbl->put_SelectionOffset(This,SelectionOffset)
15689 #define ISpeechTextSelectionInformation_get_SelectionOffset(This,SelectionOffset) (This)->lpVtbl->get_SelectionOffset(This,SelectionOffset)
15690 #define ISpeechTextSelectionInformation_put_SelectionLength(This,SelectionLength) (This)->lpVtbl->put_SelectionLength(This,SelectionLength)
15691 #define ISpeechTextSelectionInformation_get_SelectionLength(This,SelectionLength) (This)->lpVtbl->get_SelectionLength(This,SelectionLength)
15692 #else
15693 /*** IUnknown methods ***/
15694 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_QueryInterface(ISpeechTextSelectionInformation* This,REFIID riid,void **ppvObject) {
15695     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15696 }
15697 static FORCEINLINE ULONG ISpeechTextSelectionInformation_AddRef(ISpeechTextSelectionInformation* This) {
15698     return This->lpVtbl->AddRef(This);
15699 }
15700 static FORCEINLINE ULONG ISpeechTextSelectionInformation_Release(ISpeechTextSelectionInformation* This) {
15701     return This->lpVtbl->Release(This);
15702 }
15703 /*** IDispatch methods ***/
15704 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_GetTypeInfoCount(ISpeechTextSelectionInformation* This,UINT *pctinfo) {
15705     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
15706 }
15707 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_GetTypeInfo(ISpeechTextSelectionInformation* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
15708     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
15709 }
15710 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_GetIDsOfNames(ISpeechTextSelectionInformation* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
15711     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
15712 }
15713 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_Invoke(ISpeechTextSelectionInformation* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
15714     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
15715 }
15716 /*** ISpeechTextSelectionInformation methods ***/
15717 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_put_ActiveOffset(ISpeechTextSelectionInformation* This,LONG ActiveOffset) {
15718     return This->lpVtbl->put_ActiveOffset(This,ActiveOffset);
15719 }
15720 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_get_ActiveOffset(ISpeechTextSelectionInformation* This,LONG *ActiveOffset) {
15721     return This->lpVtbl->get_ActiveOffset(This,ActiveOffset);
15722 }
15723 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_put_ActiveLength(ISpeechTextSelectionInformation* This,LONG ActiveLength) {
15724     return This->lpVtbl->put_ActiveLength(This,ActiveLength);
15725 }
15726 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_get_ActiveLength(ISpeechTextSelectionInformation* This,LONG *ActiveLength) {
15727     return This->lpVtbl->get_ActiveLength(This,ActiveLength);
15728 }
15729 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_put_SelectionOffset(ISpeechTextSelectionInformation* This,LONG SelectionOffset) {
15730     return This->lpVtbl->put_SelectionOffset(This,SelectionOffset);
15731 }
15732 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_get_SelectionOffset(ISpeechTextSelectionInformation* This,LONG *SelectionOffset) {
15733     return This->lpVtbl->get_SelectionOffset(This,SelectionOffset);
15734 }
15735 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_put_SelectionLength(ISpeechTextSelectionInformation* This,LONG SelectionLength) {
15736     return This->lpVtbl->put_SelectionLength(This,SelectionLength);
15737 }
15738 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_get_SelectionLength(ISpeechTextSelectionInformation* This,LONG *SelectionLength) {
15739     return This->lpVtbl->get_SelectionLength(This,SelectionLength);
15740 }
15741 #endif
15742 #endif
15743 
15744 #endif
15745 
15746 
15747 #endif  /* __ISpeechTextSelectionInformation_INTERFACE_DEFINED__ */
15748 
15749 /*****************************************************************************
15750  * ISpeechRecoResult interface
15751  */
15752 #ifndef __ISpeechRecoResult_INTERFACE_DEFINED__
15753 #define __ISpeechRecoResult_INTERFACE_DEFINED__
15754 
15755 DEFINE_GUID(IID_ISpeechRecoResult, 0xed2879cf, 0xced9, 0x4ee6, 0xa5,0x34, 0xde,0x01,0x91,0xd5,0x46,0x8d);
15756 #if defined(__cplusplus) && !defined(CINTERFACE)
15757 MIDL_INTERFACE("ed2879cf-ced9-4ee6-a534-de0191d5468d")
15758 ISpeechRecoResult : public IDispatch
15759 {
15760     virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
15761         ISpeechRecoContext **RecoContext) = 0;
15762 
15763     virtual HRESULT STDMETHODCALLTYPE get_Times(
15764         ISpeechRecoResultTimes **Times) = 0;
15765 
15766     virtual HRESULT STDMETHODCALLTYPE putref_AudioFormat(
15767         ISpeechAudioFormat *Format) = 0;
15768 
15769     virtual HRESULT STDMETHODCALLTYPE get_AudioFormat(
15770         ISpeechAudioFormat **Format) = 0;
15771 
15772     virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
15773         ISpeechPhraseInfo **PhraseInfo) = 0;
15774 
15775     virtual HRESULT STDMETHODCALLTYPE Alternates(
15776         LONG RequestCount,
15777         LONG StartElement,
15778         LONG Elements,
15779         ISpeechPhraseAlternates **Alternates) = 0;
15780 
15781     virtual HRESULT STDMETHODCALLTYPE Audio(
15782         LONG StartElement,
15783         LONG Elements,
15784         ISpeechMemoryStream **Stream) = 0;
15785 
15786     virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
15787         LONG StartElement,
15788         LONG Elements,
15789         SpeechVoiceSpeakFlags Flags,
15790         LONG *StreamNumber) = 0;
15791 
15792     virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
15793         VARIANT *ResultBlock) = 0;
15794 
15795     virtual HRESULT STDMETHODCALLTYPE DiscardResultInfo(
15796         SpeechDiscardType ValueTypes) = 0;
15797 
15798 };
15799 #ifdef __CRT_UUID_DECL
15800 __CRT_UUID_DECL(ISpeechRecoResult, 0xed2879cf, 0xced9, 0x4ee6, 0xa5,0x34, 0xde,0x01,0x91,0xd5,0x46,0x8d)
15801 #endif
15802 #else
15803 typedef struct ISpeechRecoResultVtbl {
15804     BEGIN_INTERFACE
15805 
15806     /*** IUnknown methods ***/
15807     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15808         ISpeechRecoResult *This,
15809         REFIID riid,
15810         void **ppvObject);
15811 
15812     ULONG (STDMETHODCALLTYPE *AddRef)(
15813         ISpeechRecoResult *This);
15814 
15815     ULONG (STDMETHODCALLTYPE *Release)(
15816         ISpeechRecoResult *This);
15817 
15818     /*** IDispatch methods ***/
15819     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15820         ISpeechRecoResult *This,
15821         UINT *pctinfo);
15822 
15823     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15824         ISpeechRecoResult *This,
15825         UINT iTInfo,
15826         LCID lcid,
15827         ITypeInfo **ppTInfo);
15828 
15829     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15830         ISpeechRecoResult *This,
15831         REFIID riid,
15832         LPOLESTR *rgszNames,
15833         UINT cNames,
15834         LCID lcid,
15835         DISPID *rgDispId);
15836 
15837     HRESULT (STDMETHODCALLTYPE *Invoke)(
15838         ISpeechRecoResult *This,
15839         DISPID dispIdMember,
15840         REFIID riid,
15841         LCID lcid,
15842         WORD wFlags,
15843         DISPPARAMS *pDispParams,
15844         VARIANT *pVarResult,
15845         EXCEPINFO *pExcepInfo,
15846         UINT *puArgErr);
15847 
15848     /*** ISpeechRecoResult methods ***/
15849     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
15850         ISpeechRecoResult *This,
15851         ISpeechRecoContext **RecoContext);
15852 
15853     HRESULT (STDMETHODCALLTYPE *get_Times)(
15854         ISpeechRecoResult *This,
15855         ISpeechRecoResultTimes **Times);
15856 
15857     HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
15858         ISpeechRecoResult *This,
15859         ISpeechAudioFormat *Format);
15860 
15861     HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
15862         ISpeechRecoResult *This,
15863         ISpeechAudioFormat **Format);
15864 
15865     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
15866         ISpeechRecoResult *This,
15867         ISpeechPhraseInfo **PhraseInfo);
15868 
15869     HRESULT (STDMETHODCALLTYPE *Alternates)(
15870         ISpeechRecoResult *This,
15871         LONG RequestCount,
15872         LONG StartElement,
15873         LONG Elements,
15874         ISpeechPhraseAlternates **Alternates);
15875 
15876     HRESULT (STDMETHODCALLTYPE *Audio)(
15877         ISpeechRecoResult *This,
15878         LONG StartElement,
15879         LONG Elements,
15880         ISpeechMemoryStream **Stream);
15881 
15882     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
15883         ISpeechRecoResult *This,
15884         LONG StartElement,
15885         LONG Elements,
15886         SpeechVoiceSpeakFlags Flags,
15887         LONG *StreamNumber);
15888 
15889     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
15890         ISpeechRecoResult *This,
15891         VARIANT *ResultBlock);
15892 
15893     HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
15894         ISpeechRecoResult *This,
15895         SpeechDiscardType ValueTypes);
15896 
15897     END_INTERFACE
15898 } ISpeechRecoResultVtbl;
15899 
15900 interface ISpeechRecoResult {
15901     CONST_VTBL ISpeechRecoResultVtbl* lpVtbl;
15902 };
15903 
15904 #ifdef COBJMACROS
15905 #ifndef WIDL_C_INLINE_WRAPPERS
15906 /*** IUnknown methods ***/
15907 #define ISpeechRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15908 #define ISpeechRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
15909 #define ISpeechRecoResult_Release(This) (This)->lpVtbl->Release(This)
15910 /*** IDispatch methods ***/
15911 #define ISpeechRecoResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
15912 #define ISpeechRecoResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
15913 #define ISpeechRecoResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
15914 #define ISpeechRecoResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
15915 /*** ISpeechRecoResult methods ***/
15916 #define ISpeechRecoResult_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
15917 #define ISpeechRecoResult_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
15918 #define ISpeechRecoResult_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
15919 #define ISpeechRecoResult_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
15920 #define ISpeechRecoResult_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
15921 #define ISpeechRecoResult_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
15922 #define ISpeechRecoResult_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
15923 #define ISpeechRecoResult_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
15924 #define ISpeechRecoResult_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
15925 #define ISpeechRecoResult_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
15926 #else
15927 /*** IUnknown methods ***/
15928 static FORCEINLINE HRESULT ISpeechRecoResult_QueryInterface(ISpeechRecoResult* This,REFIID riid,void **ppvObject) {
15929     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15930 }
15931 static FORCEINLINE ULONG ISpeechRecoResult_AddRef(ISpeechRecoResult* This) {
15932     return This->lpVtbl->AddRef(This);
15933 }
15934 static FORCEINLINE ULONG ISpeechRecoResult_Release(ISpeechRecoResult* This) {
15935     return This->lpVtbl->Release(This);
15936 }
15937 /*** IDispatch methods ***/
15938 static FORCEINLINE HRESULT ISpeechRecoResult_GetTypeInfoCount(ISpeechRecoResult* This,UINT *pctinfo) {
15939     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
15940 }
15941 static FORCEINLINE HRESULT ISpeechRecoResult_GetTypeInfo(ISpeechRecoResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
15942     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
15943 }
15944 static FORCEINLINE HRESULT ISpeechRecoResult_GetIDsOfNames(ISpeechRecoResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
15945     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
15946 }
15947 static FORCEINLINE HRESULT ISpeechRecoResult_Invoke(ISpeechRecoResult* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
15948     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
15949 }
15950 /*** ISpeechRecoResult methods ***/
15951 static FORCEINLINE HRESULT ISpeechRecoResult_get_RecoContext(ISpeechRecoResult* This,ISpeechRecoContext **RecoContext) {
15952     return This->lpVtbl->get_RecoContext(This,RecoContext);
15953 }
15954 static FORCEINLINE HRESULT ISpeechRecoResult_get_Times(ISpeechRecoResult* This,ISpeechRecoResultTimes **Times) {
15955     return This->lpVtbl->get_Times(This,Times);
15956 }
15957 static FORCEINLINE HRESULT ISpeechRecoResult_putref_AudioFormat(ISpeechRecoResult* This,ISpeechAudioFormat *Format) {
15958     return This->lpVtbl->putref_AudioFormat(This,Format);
15959 }
15960 static FORCEINLINE HRESULT ISpeechRecoResult_get_AudioFormat(ISpeechRecoResult* This,ISpeechAudioFormat **Format) {
15961     return This->lpVtbl->get_AudioFormat(This,Format);
15962 }
15963 static FORCEINLINE HRESULT ISpeechRecoResult_get_PhraseInfo(ISpeechRecoResult* This,ISpeechPhraseInfo **PhraseInfo) {
15964     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
15965 }
15966 static FORCEINLINE HRESULT ISpeechRecoResult_Alternates(ISpeechRecoResult* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
15967     return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
15968 }
15969 static FORCEINLINE HRESULT ISpeechRecoResult_Audio(ISpeechRecoResult* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
15970     return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
15971 }
15972 static FORCEINLINE HRESULT ISpeechRecoResult_SpeakAudio(ISpeechRecoResult* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
15973     return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
15974 }
15975 static FORCEINLINE HRESULT ISpeechRecoResult_SaveToMemory(ISpeechRecoResult* This,VARIANT *ResultBlock) {
15976     return This->lpVtbl->SaveToMemory(This,ResultBlock);
15977 }
15978 static FORCEINLINE HRESULT ISpeechRecoResult_DiscardResultInfo(ISpeechRecoResult* This,SpeechDiscardType ValueTypes) {
15979     return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
15980 }
15981 #endif
15982 #endif
15983 
15984 #endif
15985 
15986 
15987 #endif  /* __ISpeechRecoResult_INTERFACE_DEFINED__ */
15988 
15989 /*****************************************************************************
15990  * ISpeechPhraseInfoBuilder interface
15991  */
15992 #ifndef __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__
15993 #define __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__
15994 
15995 DEFINE_GUID(IID_ISpeechPhraseInfoBuilder, 0x3b151836, 0xdf3a, 0x4e0a, 0x84,0x6c, 0xd2,0xad,0xc9,0x33,0x43,0x33);
15996 #if defined(__cplusplus) && !defined(CINTERFACE)
15997 MIDL_INTERFACE("3b151836-df3a-4e0a-846c-d2adc9334333")
15998 ISpeechPhraseInfoBuilder : public IDispatch
15999 {
16000     virtual HRESULT STDMETHODCALLTYPE RestorePhraseFromMemory(
16001         VARIANT *PhraseInMemory,
16002         ISpeechPhraseInfo **PhraseInfo) = 0;
16003 
16004 };
16005 #ifdef __CRT_UUID_DECL
16006 __CRT_UUID_DECL(ISpeechPhraseInfoBuilder, 0x3b151836, 0xdf3a, 0x4e0a, 0x84,0x6c, 0xd2,0xad,0xc9,0x33,0x43,0x33)
16007 #endif
16008 #else
16009 typedef struct ISpeechPhraseInfoBuilderVtbl {
16010     BEGIN_INTERFACE
16011 
16012     /*** IUnknown methods ***/
16013     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16014         ISpeechPhraseInfoBuilder *This,
16015         REFIID riid,
16016         void **ppvObject);
16017 
16018     ULONG (STDMETHODCALLTYPE *AddRef)(
16019         ISpeechPhraseInfoBuilder *This);
16020 
16021     ULONG (STDMETHODCALLTYPE *Release)(
16022         ISpeechPhraseInfoBuilder *This);
16023 
16024     /*** IDispatch methods ***/
16025     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16026         ISpeechPhraseInfoBuilder *This,
16027         UINT *pctinfo);
16028 
16029     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16030         ISpeechPhraseInfoBuilder *This,
16031         UINT iTInfo,
16032         LCID lcid,
16033         ITypeInfo **ppTInfo);
16034 
16035     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16036         ISpeechPhraseInfoBuilder *This,
16037         REFIID riid,
16038         LPOLESTR *rgszNames,
16039         UINT cNames,
16040         LCID lcid,
16041         DISPID *rgDispId);
16042 
16043     HRESULT (STDMETHODCALLTYPE *Invoke)(
16044         ISpeechPhraseInfoBuilder *This,
16045         DISPID dispIdMember,
16046         REFIID riid,
16047         LCID lcid,
16048         WORD wFlags,
16049         DISPPARAMS *pDispParams,
16050         VARIANT *pVarResult,
16051         EXCEPINFO *pExcepInfo,
16052         UINT *puArgErr);
16053 
16054     /*** ISpeechPhraseInfoBuilder methods ***/
16055     HRESULT (STDMETHODCALLTYPE *RestorePhraseFromMemory)(
16056         ISpeechPhraseInfoBuilder *This,
16057         VARIANT *PhraseInMemory,
16058         ISpeechPhraseInfo **PhraseInfo);
16059 
16060     END_INTERFACE
16061 } ISpeechPhraseInfoBuilderVtbl;
16062 
16063 interface ISpeechPhraseInfoBuilder {
16064     CONST_VTBL ISpeechPhraseInfoBuilderVtbl* lpVtbl;
16065 };
16066 
16067 #ifdef COBJMACROS
16068 #ifndef WIDL_C_INLINE_WRAPPERS
16069 /*** IUnknown methods ***/
16070 #define ISpeechPhraseInfoBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16071 #define ISpeechPhraseInfoBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
16072 #define ISpeechPhraseInfoBuilder_Release(This) (This)->lpVtbl->Release(This)
16073 /*** IDispatch methods ***/
16074 #define ISpeechPhraseInfoBuilder_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16075 #define ISpeechPhraseInfoBuilder_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16076 #define ISpeechPhraseInfoBuilder_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16077 #define ISpeechPhraseInfoBuilder_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16078 /*** ISpeechPhraseInfoBuilder methods ***/
16079 #define ISpeechPhraseInfoBuilder_RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo) (This)->lpVtbl->RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo)
16080 #else
16081 /*** IUnknown methods ***/
16082 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_QueryInterface(ISpeechPhraseInfoBuilder* This,REFIID riid,void **ppvObject) {
16083     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16084 }
16085 static FORCEINLINE ULONG ISpeechPhraseInfoBuilder_AddRef(ISpeechPhraseInfoBuilder* This) {
16086     return This->lpVtbl->AddRef(This);
16087 }
16088 static FORCEINLINE ULONG ISpeechPhraseInfoBuilder_Release(ISpeechPhraseInfoBuilder* This) {
16089     return This->lpVtbl->Release(This);
16090 }
16091 /*** IDispatch methods ***/
16092 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_GetTypeInfoCount(ISpeechPhraseInfoBuilder* This,UINT *pctinfo) {
16093     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16094 }
16095 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_GetTypeInfo(ISpeechPhraseInfoBuilder* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16096     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16097 }
16098 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_GetIDsOfNames(ISpeechPhraseInfoBuilder* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16099     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16100 }
16101 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_Invoke(ISpeechPhraseInfoBuilder* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16102     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16103 }
16104 /*** ISpeechPhraseInfoBuilder methods ***/
16105 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_RestorePhraseFromMemory(ISpeechPhraseInfoBuilder* This,VARIANT *PhraseInMemory,ISpeechPhraseInfo **PhraseInfo) {
16106     return This->lpVtbl->RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo);
16107 }
16108 #endif
16109 #endif
16110 
16111 #endif
16112 
16113 
16114 #endif  /* __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__ */
16115 
16116 /*****************************************************************************
16117  * ISpeechRecoResultTimes interface
16118  */
16119 #ifndef __ISpeechRecoResultTimes_INTERFACE_DEFINED__
16120 #define __ISpeechRecoResultTimes_INTERFACE_DEFINED__
16121 
16122 DEFINE_GUID(IID_ISpeechRecoResultTimes, 0x62b3b8fb, 0xf6e7, 0x41be, 0xbd,0xcb, 0x05,0x6b,0x1c,0x29,0xef,0xc0);
16123 #if defined(__cplusplus) && !defined(CINTERFACE)
16124 MIDL_INTERFACE("62b3b8fb-f6e7-41be-bdcb-056b1c29efc0")
16125 ISpeechRecoResultTimes : public IDispatch
16126 {
16127     virtual HRESULT STDMETHODCALLTYPE get_StreamTime(
16128         VARIANT *Time) = 0;
16129 
16130     virtual HRESULT STDMETHODCALLTYPE get_Length(
16131         VARIANT *Length) = 0;
16132 
16133     virtual HRESULT STDMETHODCALLTYPE get_TickCount(
16134         LONG *TickCount) = 0;
16135 
16136     virtual HRESULT STDMETHODCALLTYPE get_OffsetFromStart(
16137         VARIANT *OffsetFromStart) = 0;
16138 
16139 };
16140 #ifdef __CRT_UUID_DECL
16141 __CRT_UUID_DECL(ISpeechRecoResultTimes, 0x62b3b8fb, 0xf6e7, 0x41be, 0xbd,0xcb, 0x05,0x6b,0x1c,0x29,0xef,0xc0)
16142 #endif
16143 #else
16144 typedef struct ISpeechRecoResultTimesVtbl {
16145     BEGIN_INTERFACE
16146 
16147     /*** IUnknown methods ***/
16148     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16149         ISpeechRecoResultTimes *This,
16150         REFIID riid,
16151         void **ppvObject);
16152 
16153     ULONG (STDMETHODCALLTYPE *AddRef)(
16154         ISpeechRecoResultTimes *This);
16155 
16156     ULONG (STDMETHODCALLTYPE *Release)(
16157         ISpeechRecoResultTimes *This);
16158 
16159     /*** IDispatch methods ***/
16160     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16161         ISpeechRecoResultTimes *This,
16162         UINT *pctinfo);
16163 
16164     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16165         ISpeechRecoResultTimes *This,
16166         UINT iTInfo,
16167         LCID lcid,
16168         ITypeInfo **ppTInfo);
16169 
16170     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16171         ISpeechRecoResultTimes *This,
16172         REFIID riid,
16173         LPOLESTR *rgszNames,
16174         UINT cNames,
16175         LCID lcid,
16176         DISPID *rgDispId);
16177 
16178     HRESULT (STDMETHODCALLTYPE *Invoke)(
16179         ISpeechRecoResultTimes *This,
16180         DISPID dispIdMember,
16181         REFIID riid,
16182         LCID lcid,
16183         WORD wFlags,
16184         DISPPARAMS *pDispParams,
16185         VARIANT *pVarResult,
16186         EXCEPINFO *pExcepInfo,
16187         UINT *puArgErr);
16188 
16189     /*** ISpeechRecoResultTimes methods ***/
16190     HRESULT (STDMETHODCALLTYPE *get_StreamTime)(
16191         ISpeechRecoResultTimes *This,
16192         VARIANT *Time);
16193 
16194     HRESULT (STDMETHODCALLTYPE *get_Length)(
16195         ISpeechRecoResultTimes *This,
16196         VARIANT *Length);
16197 
16198     HRESULT (STDMETHODCALLTYPE *get_TickCount)(
16199         ISpeechRecoResultTimes *This,
16200         LONG *TickCount);
16201 
16202     HRESULT (STDMETHODCALLTYPE *get_OffsetFromStart)(
16203         ISpeechRecoResultTimes *This,
16204         VARIANT *OffsetFromStart);
16205 
16206     END_INTERFACE
16207 } ISpeechRecoResultTimesVtbl;
16208 
16209 interface ISpeechRecoResultTimes {
16210     CONST_VTBL ISpeechRecoResultTimesVtbl* lpVtbl;
16211 };
16212 
16213 #ifdef COBJMACROS
16214 #ifndef WIDL_C_INLINE_WRAPPERS
16215 /*** IUnknown methods ***/
16216 #define ISpeechRecoResultTimes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16217 #define ISpeechRecoResultTimes_AddRef(This) (This)->lpVtbl->AddRef(This)
16218 #define ISpeechRecoResultTimes_Release(This) (This)->lpVtbl->Release(This)
16219 /*** IDispatch methods ***/
16220 #define ISpeechRecoResultTimes_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16221 #define ISpeechRecoResultTimes_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16222 #define ISpeechRecoResultTimes_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16223 #define ISpeechRecoResultTimes_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16224 /*** ISpeechRecoResultTimes methods ***/
16225 #define ISpeechRecoResultTimes_get_StreamTime(This,Time) (This)->lpVtbl->get_StreamTime(This,Time)
16226 #define ISpeechRecoResultTimes_get_Length(This,Length) (This)->lpVtbl->get_Length(This,Length)
16227 #define ISpeechRecoResultTimes_get_TickCount(This,TickCount) (This)->lpVtbl->get_TickCount(This,TickCount)
16228 #define ISpeechRecoResultTimes_get_OffsetFromStart(This,OffsetFromStart) (This)->lpVtbl->get_OffsetFromStart(This,OffsetFromStart)
16229 #else
16230 /*** IUnknown methods ***/
16231 static FORCEINLINE HRESULT ISpeechRecoResultTimes_QueryInterface(ISpeechRecoResultTimes* This,REFIID riid,void **ppvObject) {
16232     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16233 }
16234 static FORCEINLINE ULONG ISpeechRecoResultTimes_AddRef(ISpeechRecoResultTimes* This) {
16235     return This->lpVtbl->AddRef(This);
16236 }
16237 static FORCEINLINE ULONG ISpeechRecoResultTimes_Release(ISpeechRecoResultTimes* This) {
16238     return This->lpVtbl->Release(This);
16239 }
16240 /*** IDispatch methods ***/
16241 static FORCEINLINE HRESULT ISpeechRecoResultTimes_GetTypeInfoCount(ISpeechRecoResultTimes* This,UINT *pctinfo) {
16242     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16243 }
16244 static FORCEINLINE HRESULT ISpeechRecoResultTimes_GetTypeInfo(ISpeechRecoResultTimes* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16245     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16246 }
16247 static FORCEINLINE HRESULT ISpeechRecoResultTimes_GetIDsOfNames(ISpeechRecoResultTimes* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16248     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16249 }
16250 static FORCEINLINE HRESULT ISpeechRecoResultTimes_Invoke(ISpeechRecoResultTimes* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16251     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16252 }
16253 /*** ISpeechRecoResultTimes methods ***/
16254 static FORCEINLINE HRESULT ISpeechRecoResultTimes_get_StreamTime(ISpeechRecoResultTimes* This,VARIANT *Time) {
16255     return This->lpVtbl->get_StreamTime(This,Time);
16256 }
16257 static FORCEINLINE HRESULT ISpeechRecoResultTimes_get_Length(ISpeechRecoResultTimes* This,VARIANT *Length) {
16258     return This->lpVtbl->get_Length(This,Length);
16259 }
16260 static FORCEINLINE HRESULT ISpeechRecoResultTimes_get_TickCount(ISpeechRecoResultTimes* This,LONG *TickCount) {
16261     return This->lpVtbl->get_TickCount(This,TickCount);
16262 }
16263 static FORCEINLINE HRESULT ISpeechRecoResultTimes_get_OffsetFromStart(ISpeechRecoResultTimes* This,VARIANT *OffsetFromStart) {
16264     return This->lpVtbl->get_OffsetFromStart(This,OffsetFromStart);
16265 }
16266 #endif
16267 #endif
16268 
16269 #endif
16270 
16271 
16272 #endif  /* __ISpeechRecoResultTimes_INTERFACE_DEFINED__ */
16273 
16274 /*****************************************************************************
16275  * ISpeechPhraseAlternate interface
16276  */
16277 #ifndef __ISpeechPhraseAlternate_INTERFACE_DEFINED__
16278 #define __ISpeechPhraseAlternate_INTERFACE_DEFINED__
16279 
16280 DEFINE_GUID(IID_ISpeechPhraseAlternate, 0x27864a2a, 0x2b9f, 0x4cb8, 0x92,0xd3, 0x0d,0x27,0x22,0xfd,0x1e,0x73);
16281 #if defined(__cplusplus) && !defined(CINTERFACE)
16282 MIDL_INTERFACE("27864a2a-2b9f-4cb8-92d3-0d2722fd1e73")
16283 ISpeechPhraseAlternate : public IDispatch
16284 {
16285     virtual HRESULT STDMETHODCALLTYPE get_RecoResult(
16286         ISpeechRecoResult **RecoResult) = 0;
16287 
16288     virtual HRESULT STDMETHODCALLTYPE get_StartElementInResult(
16289         LONG *StartElement) = 0;
16290 
16291     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElementsInResult(
16292         LONG *NumberOfElements) = 0;
16293 
16294     virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
16295         ISpeechPhraseInfo **PhraseInfo) = 0;
16296 
16297     virtual HRESULT STDMETHODCALLTYPE Commit(
16298         ) = 0;
16299 
16300 };
16301 #ifdef __CRT_UUID_DECL
16302 __CRT_UUID_DECL(ISpeechPhraseAlternate, 0x27864a2a, 0x2b9f, 0x4cb8, 0x92,0xd3, 0x0d,0x27,0x22,0xfd,0x1e,0x73)
16303 #endif
16304 #else
16305 typedef struct ISpeechPhraseAlternateVtbl {
16306     BEGIN_INTERFACE
16307 
16308     /*** IUnknown methods ***/
16309     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16310         ISpeechPhraseAlternate *This,
16311         REFIID riid,
16312         void **ppvObject);
16313 
16314     ULONG (STDMETHODCALLTYPE *AddRef)(
16315         ISpeechPhraseAlternate *This);
16316 
16317     ULONG (STDMETHODCALLTYPE *Release)(
16318         ISpeechPhraseAlternate *This);
16319 
16320     /*** IDispatch methods ***/
16321     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16322         ISpeechPhraseAlternate *This,
16323         UINT *pctinfo);
16324 
16325     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16326         ISpeechPhraseAlternate *This,
16327         UINT iTInfo,
16328         LCID lcid,
16329         ITypeInfo **ppTInfo);
16330 
16331     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16332         ISpeechPhraseAlternate *This,
16333         REFIID riid,
16334         LPOLESTR *rgszNames,
16335         UINT cNames,
16336         LCID lcid,
16337         DISPID *rgDispId);
16338 
16339     HRESULT (STDMETHODCALLTYPE *Invoke)(
16340         ISpeechPhraseAlternate *This,
16341         DISPID dispIdMember,
16342         REFIID riid,
16343         LCID lcid,
16344         WORD wFlags,
16345         DISPPARAMS *pDispParams,
16346         VARIANT *pVarResult,
16347         EXCEPINFO *pExcepInfo,
16348         UINT *puArgErr);
16349 
16350     /*** ISpeechPhraseAlternate methods ***/
16351     HRESULT (STDMETHODCALLTYPE *get_RecoResult)(
16352         ISpeechPhraseAlternate *This,
16353         ISpeechRecoResult **RecoResult);
16354 
16355     HRESULT (STDMETHODCALLTYPE *get_StartElementInResult)(
16356         ISpeechPhraseAlternate *This,
16357         LONG *StartElement);
16358 
16359     HRESULT (STDMETHODCALLTYPE *get_NumberOfElementsInResult)(
16360         ISpeechPhraseAlternate *This,
16361         LONG *NumberOfElements);
16362 
16363     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
16364         ISpeechPhraseAlternate *This,
16365         ISpeechPhraseInfo **PhraseInfo);
16366 
16367     HRESULT (STDMETHODCALLTYPE *Commit)(
16368         ISpeechPhraseAlternate *This);
16369 
16370     END_INTERFACE
16371 } ISpeechPhraseAlternateVtbl;
16372 
16373 interface ISpeechPhraseAlternate {
16374     CONST_VTBL ISpeechPhraseAlternateVtbl* lpVtbl;
16375 };
16376 
16377 #ifdef COBJMACROS
16378 #ifndef WIDL_C_INLINE_WRAPPERS
16379 /*** IUnknown methods ***/
16380 #define ISpeechPhraseAlternate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16381 #define ISpeechPhraseAlternate_AddRef(This) (This)->lpVtbl->AddRef(This)
16382 #define ISpeechPhraseAlternate_Release(This) (This)->lpVtbl->Release(This)
16383 /*** IDispatch methods ***/
16384 #define ISpeechPhraseAlternate_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16385 #define ISpeechPhraseAlternate_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16386 #define ISpeechPhraseAlternate_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16387 #define ISpeechPhraseAlternate_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16388 /*** ISpeechPhraseAlternate methods ***/
16389 #define ISpeechPhraseAlternate_get_RecoResult(This,RecoResult) (This)->lpVtbl->get_RecoResult(This,RecoResult)
16390 #define ISpeechPhraseAlternate_get_StartElementInResult(This,StartElement) (This)->lpVtbl->get_StartElementInResult(This,StartElement)
16391 #define ISpeechPhraseAlternate_get_NumberOfElementsInResult(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElementsInResult(This,NumberOfElements)
16392 #define ISpeechPhraseAlternate_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
16393 #define ISpeechPhraseAlternate_Commit(This) (This)->lpVtbl->Commit(This)
16394 #else
16395 /*** IUnknown methods ***/
16396 static FORCEINLINE HRESULT ISpeechPhraseAlternate_QueryInterface(ISpeechPhraseAlternate* This,REFIID riid,void **ppvObject) {
16397     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16398 }
16399 static FORCEINLINE ULONG ISpeechPhraseAlternate_AddRef(ISpeechPhraseAlternate* This) {
16400     return This->lpVtbl->AddRef(This);
16401 }
16402 static FORCEINLINE ULONG ISpeechPhraseAlternate_Release(ISpeechPhraseAlternate* This) {
16403     return This->lpVtbl->Release(This);
16404 }
16405 /*** IDispatch methods ***/
16406 static FORCEINLINE HRESULT ISpeechPhraseAlternate_GetTypeInfoCount(ISpeechPhraseAlternate* This,UINT *pctinfo) {
16407     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16408 }
16409 static FORCEINLINE HRESULT ISpeechPhraseAlternate_GetTypeInfo(ISpeechPhraseAlternate* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16410     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16411 }
16412 static FORCEINLINE HRESULT ISpeechPhraseAlternate_GetIDsOfNames(ISpeechPhraseAlternate* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16413     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16414 }
16415 static FORCEINLINE HRESULT ISpeechPhraseAlternate_Invoke(ISpeechPhraseAlternate* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16416     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16417 }
16418 /*** ISpeechPhraseAlternate methods ***/
16419 static FORCEINLINE HRESULT ISpeechPhraseAlternate_get_RecoResult(ISpeechPhraseAlternate* This,ISpeechRecoResult **RecoResult) {
16420     return This->lpVtbl->get_RecoResult(This,RecoResult);
16421 }
16422 static FORCEINLINE HRESULT ISpeechPhraseAlternate_get_StartElementInResult(ISpeechPhraseAlternate* This,LONG *StartElement) {
16423     return This->lpVtbl->get_StartElementInResult(This,StartElement);
16424 }
16425 static FORCEINLINE HRESULT ISpeechPhraseAlternate_get_NumberOfElementsInResult(ISpeechPhraseAlternate* This,LONG *NumberOfElements) {
16426     return This->lpVtbl->get_NumberOfElementsInResult(This,NumberOfElements);
16427 }
16428 static FORCEINLINE HRESULT ISpeechPhraseAlternate_get_PhraseInfo(ISpeechPhraseAlternate* This,ISpeechPhraseInfo **PhraseInfo) {
16429     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
16430 }
16431 static FORCEINLINE HRESULT ISpeechPhraseAlternate_Commit(ISpeechPhraseAlternate* This) {
16432     return This->lpVtbl->Commit(This);
16433 }
16434 #endif
16435 #endif
16436 
16437 #endif
16438 
16439 
16440 #endif  /* __ISpeechPhraseAlternate_INTERFACE_DEFINED__ */
16441 
16442 /*****************************************************************************
16443  * ISpeechPhraseAlternates interface
16444  */
16445 #ifndef __ISpeechPhraseAlternates_INTERFACE_DEFINED__
16446 #define __ISpeechPhraseAlternates_INTERFACE_DEFINED__
16447 
16448 DEFINE_GUID(IID_ISpeechPhraseAlternates, 0xb238b6d5, 0xf276, 0x4c3d, 0xa6,0xc1, 0x29,0x74,0x80,0x1c,0x3c,0xc2);
16449 #if defined(__cplusplus) && !defined(CINTERFACE)
16450 MIDL_INTERFACE("b238b6d5-f276-4c3d-a6c1-2974801c3cc2")
16451 ISpeechPhraseAlternates : public IDispatch
16452 {
16453     virtual HRESULT STDMETHODCALLTYPE get_Count(
16454         LONG *Count) = 0;
16455 
16456     virtual HRESULT STDMETHODCALLTYPE Item(
16457         LONG Index,
16458         ISpeechPhraseAlternate **PhraseAlternate) = 0;
16459 
16460     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
16461         IUnknown **EnumVARIANT) = 0;
16462 
16463 };
16464 #ifdef __CRT_UUID_DECL
16465 __CRT_UUID_DECL(ISpeechPhraseAlternates, 0xb238b6d5, 0xf276, 0x4c3d, 0xa6,0xc1, 0x29,0x74,0x80,0x1c,0x3c,0xc2)
16466 #endif
16467 #else
16468 typedef struct ISpeechPhraseAlternatesVtbl {
16469     BEGIN_INTERFACE
16470 
16471     /*** IUnknown methods ***/
16472     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16473         ISpeechPhraseAlternates *This,
16474         REFIID riid,
16475         void **ppvObject);
16476 
16477     ULONG (STDMETHODCALLTYPE *AddRef)(
16478         ISpeechPhraseAlternates *This);
16479 
16480     ULONG (STDMETHODCALLTYPE *Release)(
16481         ISpeechPhraseAlternates *This);
16482 
16483     /*** IDispatch methods ***/
16484     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16485         ISpeechPhraseAlternates *This,
16486         UINT *pctinfo);
16487 
16488     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16489         ISpeechPhraseAlternates *This,
16490         UINT iTInfo,
16491         LCID lcid,
16492         ITypeInfo **ppTInfo);
16493 
16494     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16495         ISpeechPhraseAlternates *This,
16496         REFIID riid,
16497         LPOLESTR *rgszNames,
16498         UINT cNames,
16499         LCID lcid,
16500         DISPID *rgDispId);
16501 
16502     HRESULT (STDMETHODCALLTYPE *Invoke)(
16503         ISpeechPhraseAlternates *This,
16504         DISPID dispIdMember,
16505         REFIID riid,
16506         LCID lcid,
16507         WORD wFlags,
16508         DISPPARAMS *pDispParams,
16509         VARIANT *pVarResult,
16510         EXCEPINFO *pExcepInfo,
16511         UINT *puArgErr);
16512 
16513     /*** ISpeechPhraseAlternates methods ***/
16514     HRESULT (STDMETHODCALLTYPE *get_Count)(
16515         ISpeechPhraseAlternates *This,
16516         LONG *Count);
16517 
16518     HRESULT (STDMETHODCALLTYPE *Item)(
16519         ISpeechPhraseAlternates *This,
16520         LONG Index,
16521         ISpeechPhraseAlternate **PhraseAlternate);
16522 
16523     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
16524         ISpeechPhraseAlternates *This,
16525         IUnknown **EnumVARIANT);
16526 
16527     END_INTERFACE
16528 } ISpeechPhraseAlternatesVtbl;
16529 
16530 interface ISpeechPhraseAlternates {
16531     CONST_VTBL ISpeechPhraseAlternatesVtbl* lpVtbl;
16532 };
16533 
16534 #ifdef COBJMACROS
16535 #ifndef WIDL_C_INLINE_WRAPPERS
16536 /*** IUnknown methods ***/
16537 #define ISpeechPhraseAlternates_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16538 #define ISpeechPhraseAlternates_AddRef(This) (This)->lpVtbl->AddRef(This)
16539 #define ISpeechPhraseAlternates_Release(This) (This)->lpVtbl->Release(This)
16540 /*** IDispatch methods ***/
16541 #define ISpeechPhraseAlternates_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16542 #define ISpeechPhraseAlternates_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16543 #define ISpeechPhraseAlternates_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16544 #define ISpeechPhraseAlternates_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16545 /*** ISpeechPhraseAlternates methods ***/
16546 #define ISpeechPhraseAlternates_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
16547 #define ISpeechPhraseAlternates_Item(This,Index,PhraseAlternate) (This)->lpVtbl->Item(This,Index,PhraseAlternate)
16548 #define ISpeechPhraseAlternates_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
16549 #else
16550 /*** IUnknown methods ***/
16551 static FORCEINLINE HRESULT ISpeechPhraseAlternates_QueryInterface(ISpeechPhraseAlternates* This,REFIID riid,void **ppvObject) {
16552     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16553 }
16554 static FORCEINLINE ULONG ISpeechPhraseAlternates_AddRef(ISpeechPhraseAlternates* This) {
16555     return This->lpVtbl->AddRef(This);
16556 }
16557 static FORCEINLINE ULONG ISpeechPhraseAlternates_Release(ISpeechPhraseAlternates* This) {
16558     return This->lpVtbl->Release(This);
16559 }
16560 /*** IDispatch methods ***/
16561 static FORCEINLINE HRESULT ISpeechPhraseAlternates_GetTypeInfoCount(ISpeechPhraseAlternates* This,UINT *pctinfo) {
16562     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16563 }
16564 static FORCEINLINE HRESULT ISpeechPhraseAlternates_GetTypeInfo(ISpeechPhraseAlternates* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16565     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16566 }
16567 static FORCEINLINE HRESULT ISpeechPhraseAlternates_GetIDsOfNames(ISpeechPhraseAlternates* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16568     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16569 }
16570 static FORCEINLINE HRESULT ISpeechPhraseAlternates_Invoke(ISpeechPhraseAlternates* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16571     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16572 }
16573 /*** ISpeechPhraseAlternates methods ***/
16574 static FORCEINLINE HRESULT ISpeechPhraseAlternates_get_Count(ISpeechPhraseAlternates* This,LONG *Count) {
16575     return This->lpVtbl->get_Count(This,Count);
16576 }
16577 static FORCEINLINE HRESULT ISpeechPhraseAlternates_Item(ISpeechPhraseAlternates* This,LONG Index,ISpeechPhraseAlternate **PhraseAlternate) {
16578     return This->lpVtbl->Item(This,Index,PhraseAlternate);
16579 }
16580 static FORCEINLINE HRESULT ISpeechPhraseAlternates_get__NewEnum(ISpeechPhraseAlternates* This,IUnknown **EnumVARIANT) {
16581     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
16582 }
16583 #endif
16584 #endif
16585 
16586 #endif
16587 
16588 
16589 #endif  /* __ISpeechPhraseAlternates_INTERFACE_DEFINED__ */
16590 
16591 /*****************************************************************************
16592  * ISpeechPhraseInfo interface
16593  */
16594 #ifndef __ISpeechPhraseInfo_INTERFACE_DEFINED__
16595 #define __ISpeechPhraseInfo_INTERFACE_DEFINED__
16596 
16597 DEFINE_GUID(IID_ISpeechPhraseInfo, 0x961559cf, 0x4e67, 0x4662, 0x8b,0xf0, 0xd9,0x3f,0x1f,0xcd,0x61,0xb3);
16598 #if defined(__cplusplus) && !defined(CINTERFACE)
16599 MIDL_INTERFACE("961559cf-4e67-4662-8bf0-d93f1fcd61b3")
16600 ISpeechPhraseInfo : public IDispatch
16601 {
16602     virtual HRESULT STDMETHODCALLTYPE get_LanguageId(
16603         LONG *LanguageId) = 0;
16604 
16605     virtual HRESULT STDMETHODCALLTYPE get_GrammarId(
16606         VARIANT *GrammarId) = 0;
16607 
16608     virtual HRESULT STDMETHODCALLTYPE get_StartTime(
16609         VARIANT *StartTime) = 0;
16610 
16611     virtual HRESULT STDMETHODCALLTYPE get_AudioStreamPosition(
16612         VARIANT *AudioStreamPosition) = 0;
16613 
16614     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeBytes(
16615         LONG *pAudioSizeBytes) = 0;
16616 
16617     virtual HRESULT STDMETHODCALLTYPE get_RetainedSizeBytes(
16618         LONG *RetainedSizeBytes) = 0;
16619 
16620     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeTime(
16621         LONG *AudioSizeTime) = 0;
16622 
16623     virtual HRESULT STDMETHODCALLTYPE get_Rule(
16624         ISpeechPhraseRule **Rule) = 0;
16625 
16626     virtual HRESULT STDMETHODCALLTYPE get_Properties(
16627         ISpeechPhraseProperties **Properties) = 0;
16628 
16629     virtual HRESULT STDMETHODCALLTYPE get_Elements(
16630         ISpeechPhraseElements **Elements) = 0;
16631 
16632     virtual HRESULT STDMETHODCALLTYPE get_Replacements(
16633         ISpeechPhraseReplacements **Replacements) = 0;
16634 
16635     virtual HRESULT STDMETHODCALLTYPE get_EngineId(
16636         BSTR *EngineIdGuid) = 0;
16637 
16638     virtual HRESULT STDMETHODCALLTYPE get_EnginePrivateData(
16639         VARIANT *PrivateData) = 0;
16640 
16641     virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
16642         VARIANT *PhraseBlock) = 0;
16643 
16644     virtual HRESULT STDMETHODCALLTYPE GetText(
16645         LONG StartElement,
16646         LONG Elements,
16647         VARIANT_BOOL UseReplacements,
16648         BSTR *Text) = 0;
16649 
16650     virtual HRESULT STDMETHODCALLTYPE GetDisplayAttributes(
16651         LONG StartElement,
16652         LONG Elements,
16653         VARIANT_BOOL UseReplacements,
16654         SpeechDisplayAttributes *DisplayAttributes) = 0;
16655 
16656 };
16657 #ifdef __CRT_UUID_DECL
16658 __CRT_UUID_DECL(ISpeechPhraseInfo, 0x961559cf, 0x4e67, 0x4662, 0x8b,0xf0, 0xd9,0x3f,0x1f,0xcd,0x61,0xb3)
16659 #endif
16660 #else
16661 typedef struct ISpeechPhraseInfoVtbl {
16662     BEGIN_INTERFACE
16663 
16664     /*** IUnknown methods ***/
16665     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16666         ISpeechPhraseInfo *This,
16667         REFIID riid,
16668         void **ppvObject);
16669 
16670     ULONG (STDMETHODCALLTYPE *AddRef)(
16671         ISpeechPhraseInfo *This);
16672 
16673     ULONG (STDMETHODCALLTYPE *Release)(
16674         ISpeechPhraseInfo *This);
16675 
16676     /*** IDispatch methods ***/
16677     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16678         ISpeechPhraseInfo *This,
16679         UINT *pctinfo);
16680 
16681     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16682         ISpeechPhraseInfo *This,
16683         UINT iTInfo,
16684         LCID lcid,
16685         ITypeInfo **ppTInfo);
16686 
16687     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16688         ISpeechPhraseInfo *This,
16689         REFIID riid,
16690         LPOLESTR *rgszNames,
16691         UINT cNames,
16692         LCID lcid,
16693         DISPID *rgDispId);
16694 
16695     HRESULT (STDMETHODCALLTYPE *Invoke)(
16696         ISpeechPhraseInfo *This,
16697         DISPID dispIdMember,
16698         REFIID riid,
16699         LCID lcid,
16700         WORD wFlags,
16701         DISPPARAMS *pDispParams,
16702         VARIANT *pVarResult,
16703         EXCEPINFO *pExcepInfo,
16704         UINT *puArgErr);
16705 
16706     /*** ISpeechPhraseInfo methods ***/
16707     HRESULT (STDMETHODCALLTYPE *get_LanguageId)(
16708         ISpeechPhraseInfo *This,
16709         LONG *LanguageId);
16710 
16711     HRESULT (STDMETHODCALLTYPE *get_GrammarId)(
16712         ISpeechPhraseInfo *This,
16713         VARIANT *GrammarId);
16714 
16715     HRESULT (STDMETHODCALLTYPE *get_StartTime)(
16716         ISpeechPhraseInfo *This,
16717         VARIANT *StartTime);
16718 
16719     HRESULT (STDMETHODCALLTYPE *get_AudioStreamPosition)(
16720         ISpeechPhraseInfo *This,
16721         VARIANT *AudioStreamPosition);
16722 
16723     HRESULT (STDMETHODCALLTYPE *get_AudioSizeBytes)(
16724         ISpeechPhraseInfo *This,
16725         LONG *pAudioSizeBytes);
16726 
16727     HRESULT (STDMETHODCALLTYPE *get_RetainedSizeBytes)(
16728         ISpeechPhraseInfo *This,
16729         LONG *RetainedSizeBytes);
16730 
16731     HRESULT (STDMETHODCALLTYPE *get_AudioSizeTime)(
16732         ISpeechPhraseInfo *This,
16733         LONG *AudioSizeTime);
16734 
16735     HRESULT (STDMETHODCALLTYPE *get_Rule)(
16736         ISpeechPhraseInfo *This,
16737         ISpeechPhraseRule **Rule);
16738 
16739     HRESULT (STDMETHODCALLTYPE *get_Properties)(
16740         ISpeechPhraseInfo *This,
16741         ISpeechPhraseProperties **Properties);
16742 
16743     HRESULT (STDMETHODCALLTYPE *get_Elements)(
16744         ISpeechPhraseInfo *This,
16745         ISpeechPhraseElements **Elements);
16746 
16747     HRESULT (STDMETHODCALLTYPE *get_Replacements)(
16748         ISpeechPhraseInfo *This,
16749         ISpeechPhraseReplacements **Replacements);
16750 
16751     HRESULT (STDMETHODCALLTYPE *get_EngineId)(
16752         ISpeechPhraseInfo *This,
16753         BSTR *EngineIdGuid);
16754 
16755     HRESULT (STDMETHODCALLTYPE *get_EnginePrivateData)(
16756         ISpeechPhraseInfo *This,
16757         VARIANT *PrivateData);
16758 
16759     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
16760         ISpeechPhraseInfo *This,
16761         VARIANT *PhraseBlock);
16762 
16763     HRESULT (STDMETHODCALLTYPE *GetText)(
16764         ISpeechPhraseInfo *This,
16765         LONG StartElement,
16766         LONG Elements,
16767         VARIANT_BOOL UseReplacements,
16768         BSTR *Text);
16769 
16770     HRESULT (STDMETHODCALLTYPE *GetDisplayAttributes)(
16771         ISpeechPhraseInfo *This,
16772         LONG StartElement,
16773         LONG Elements,
16774         VARIANT_BOOL UseReplacements,
16775         SpeechDisplayAttributes *DisplayAttributes);
16776 
16777     END_INTERFACE
16778 } ISpeechPhraseInfoVtbl;
16779 
16780 interface ISpeechPhraseInfo {
16781     CONST_VTBL ISpeechPhraseInfoVtbl* lpVtbl;
16782 };
16783 
16784 #ifdef COBJMACROS
16785 #ifndef WIDL_C_INLINE_WRAPPERS
16786 /*** IUnknown methods ***/
16787 #define ISpeechPhraseInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16788 #define ISpeechPhraseInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
16789 #define ISpeechPhraseInfo_Release(This) (This)->lpVtbl->Release(This)
16790 /*** IDispatch methods ***/
16791 #define ISpeechPhraseInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16792 #define ISpeechPhraseInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16793 #define ISpeechPhraseInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16794 #define ISpeechPhraseInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16795 /*** ISpeechPhraseInfo methods ***/
16796 #define ISpeechPhraseInfo_get_LanguageId(This,LanguageId) (This)->lpVtbl->get_LanguageId(This,LanguageId)
16797 #define ISpeechPhraseInfo_get_GrammarId(This,GrammarId) (This)->lpVtbl->get_GrammarId(This,GrammarId)
16798 #define ISpeechPhraseInfo_get_StartTime(This,StartTime) (This)->lpVtbl->get_StartTime(This,StartTime)
16799 #define ISpeechPhraseInfo_get_AudioStreamPosition(This,AudioStreamPosition) (This)->lpVtbl->get_AudioStreamPosition(This,AudioStreamPosition)
16800 #define ISpeechPhraseInfo_get_AudioSizeBytes(This,pAudioSizeBytes) (This)->lpVtbl->get_AudioSizeBytes(This,pAudioSizeBytes)
16801 #define ISpeechPhraseInfo_get_RetainedSizeBytes(This,RetainedSizeBytes) (This)->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes)
16802 #define ISpeechPhraseInfo_get_AudioSizeTime(This,AudioSizeTime) (This)->lpVtbl->get_AudioSizeTime(This,AudioSizeTime)
16803 #define ISpeechPhraseInfo_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
16804 #define ISpeechPhraseInfo_get_Properties(This,Properties) (This)->lpVtbl->get_Properties(This,Properties)
16805 #define ISpeechPhraseInfo_get_Elements(This,Elements) (This)->lpVtbl->get_Elements(This,Elements)
16806 #define ISpeechPhraseInfo_get_Replacements(This,Replacements) (This)->lpVtbl->get_Replacements(This,Replacements)
16807 #define ISpeechPhraseInfo_get_EngineId(This,EngineIdGuid) (This)->lpVtbl->get_EngineId(This,EngineIdGuid)
16808 #define ISpeechPhraseInfo_get_EnginePrivateData(This,PrivateData) (This)->lpVtbl->get_EnginePrivateData(This,PrivateData)
16809 #define ISpeechPhraseInfo_SaveToMemory(This,PhraseBlock) (This)->lpVtbl->SaveToMemory(This,PhraseBlock)
16810 #define ISpeechPhraseInfo_GetText(This,StartElement,Elements,UseReplacements,Text) (This)->lpVtbl->GetText(This,StartElement,Elements,UseReplacements,Text)
16811 #define ISpeechPhraseInfo_GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes) (This)->lpVtbl->GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes)
16812 #else
16813 /*** IUnknown methods ***/
16814 static FORCEINLINE HRESULT ISpeechPhraseInfo_QueryInterface(ISpeechPhraseInfo* This,REFIID riid,void **ppvObject) {
16815     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16816 }
16817 static FORCEINLINE ULONG ISpeechPhraseInfo_AddRef(ISpeechPhraseInfo* This) {
16818     return This->lpVtbl->AddRef(This);
16819 }
16820 static FORCEINLINE ULONG ISpeechPhraseInfo_Release(ISpeechPhraseInfo* This) {
16821     return This->lpVtbl->Release(This);
16822 }
16823 /*** IDispatch methods ***/
16824 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetTypeInfoCount(ISpeechPhraseInfo* This,UINT *pctinfo) {
16825     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16826 }
16827 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetTypeInfo(ISpeechPhraseInfo* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16828     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16829 }
16830 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetIDsOfNames(ISpeechPhraseInfo* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16831     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16832 }
16833 static FORCEINLINE HRESULT ISpeechPhraseInfo_Invoke(ISpeechPhraseInfo* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16834     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16835 }
16836 /*** ISpeechPhraseInfo methods ***/
16837 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_LanguageId(ISpeechPhraseInfo* This,LONG *LanguageId) {
16838     return This->lpVtbl->get_LanguageId(This,LanguageId);
16839 }
16840 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_GrammarId(ISpeechPhraseInfo* This,VARIANT *GrammarId) {
16841     return This->lpVtbl->get_GrammarId(This,GrammarId);
16842 }
16843 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_StartTime(ISpeechPhraseInfo* This,VARIANT *StartTime) {
16844     return This->lpVtbl->get_StartTime(This,StartTime);
16845 }
16846 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_AudioStreamPosition(ISpeechPhraseInfo* This,VARIANT *AudioStreamPosition) {
16847     return This->lpVtbl->get_AudioStreamPosition(This,AudioStreamPosition);
16848 }
16849 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_AudioSizeBytes(ISpeechPhraseInfo* This,LONG *pAudioSizeBytes) {
16850     return This->lpVtbl->get_AudioSizeBytes(This,pAudioSizeBytes);
16851 }
16852 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_RetainedSizeBytes(ISpeechPhraseInfo* This,LONG *RetainedSizeBytes) {
16853     return This->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes);
16854 }
16855 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_AudioSizeTime(ISpeechPhraseInfo* This,LONG *AudioSizeTime) {
16856     return This->lpVtbl->get_AudioSizeTime(This,AudioSizeTime);
16857 }
16858 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_Rule(ISpeechPhraseInfo* This,ISpeechPhraseRule **Rule) {
16859     return This->lpVtbl->get_Rule(This,Rule);
16860 }
16861 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_Properties(ISpeechPhraseInfo* This,ISpeechPhraseProperties **Properties) {
16862     return This->lpVtbl->get_Properties(This,Properties);
16863 }
16864 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_Elements(ISpeechPhraseInfo* This,ISpeechPhraseElements **Elements) {
16865     return This->lpVtbl->get_Elements(This,Elements);
16866 }
16867 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_Replacements(ISpeechPhraseInfo* This,ISpeechPhraseReplacements **Replacements) {
16868     return This->lpVtbl->get_Replacements(This,Replacements);
16869 }
16870 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_EngineId(ISpeechPhraseInfo* This,BSTR *EngineIdGuid) {
16871     return This->lpVtbl->get_EngineId(This,EngineIdGuid);
16872 }
16873 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_EnginePrivateData(ISpeechPhraseInfo* This,VARIANT *PrivateData) {
16874     return This->lpVtbl->get_EnginePrivateData(This,PrivateData);
16875 }
16876 static FORCEINLINE HRESULT ISpeechPhraseInfo_SaveToMemory(ISpeechPhraseInfo* This,VARIANT *PhraseBlock) {
16877     return This->lpVtbl->SaveToMemory(This,PhraseBlock);
16878 }
16879 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetText(ISpeechPhraseInfo* This,LONG StartElement,LONG Elements,VARIANT_BOOL UseReplacements,BSTR *Text) {
16880     return This->lpVtbl->GetText(This,StartElement,Elements,UseReplacements,Text);
16881 }
16882 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetDisplayAttributes(ISpeechPhraseInfo* This,LONG StartElement,LONG Elements,VARIANT_BOOL UseReplacements,SpeechDisplayAttributes *DisplayAttributes) {
16883     return This->lpVtbl->GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes);
16884 }
16885 #endif
16886 #endif
16887 
16888 #endif
16889 
16890 
16891 #endif  /* __ISpeechPhraseInfo_INTERFACE_DEFINED__ */
16892 
16893 /*****************************************************************************
16894  * ISpeechPhraseElement interface
16895  */
16896 #ifndef __ISpeechPhraseElement_INTERFACE_DEFINED__
16897 #define __ISpeechPhraseElement_INTERFACE_DEFINED__
16898 
16899 DEFINE_GUID(IID_ISpeechPhraseElement, 0xe6176f96, 0xe373, 0x4801, 0xb2,0x23, 0x3b,0x62,0xc0,0x68,0xc0,0xb4);
16900 #if defined(__cplusplus) && !defined(CINTERFACE)
16901 MIDL_INTERFACE("e6176f96-e373-4801-b223-3b62c068c0b4")
16902 ISpeechPhraseElement : public IDispatch
16903 {
16904     virtual HRESULT STDMETHODCALLTYPE get_AudioTimeOffset(
16905         LONG *AudioTimeOffset) = 0;
16906 
16907     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeTime(
16908         LONG *AudioSizeTime) = 0;
16909 
16910     virtual HRESULT STDMETHODCALLTYPE get_AudioStreamOffset(
16911         LONG *AudioStreamOffset) = 0;
16912 
16913     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeBytes(
16914         LONG *AudioSizeBytes) = 0;
16915 
16916     virtual HRESULT STDMETHODCALLTYPE get_RetainedStreamOffset(
16917         LONG *RetainedStreamOffset) = 0;
16918 
16919     virtual HRESULT STDMETHODCALLTYPE get_RetainedSizeBytes(
16920         LONG *RetainedSizeBytes) = 0;
16921 
16922     virtual HRESULT STDMETHODCALLTYPE get_DisplayText(
16923         BSTR *DisplayText) = 0;
16924 
16925     virtual HRESULT STDMETHODCALLTYPE get_LexicalForm(
16926         BSTR *LexicalForm) = 0;
16927 
16928     virtual HRESULT STDMETHODCALLTYPE get_Pronunciation(
16929         VARIANT *Pronunciation) = 0;
16930 
16931     virtual HRESULT STDMETHODCALLTYPE get_DisplayAttributes(
16932         SpeechDisplayAttributes *DisplayAttributes) = 0;
16933 
16934     virtual HRESULT STDMETHODCALLTYPE get_RequiredConfidence(
16935         SpeechEngineConfidence *RequiredConfidence) = 0;
16936 
16937     virtual HRESULT STDMETHODCALLTYPE get_ActualConfidence(
16938         SpeechEngineConfidence *ActualConfidence) = 0;
16939 
16940     virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
16941         float *EngineConfidence) = 0;
16942 
16943 };
16944 #ifdef __CRT_UUID_DECL
16945 __CRT_UUID_DECL(ISpeechPhraseElement, 0xe6176f96, 0xe373, 0x4801, 0xb2,0x23, 0x3b,0x62,0xc0,0x68,0xc0,0xb4)
16946 #endif
16947 #else
16948 typedef struct ISpeechPhraseElementVtbl {
16949     BEGIN_INTERFACE
16950 
16951     /*** IUnknown methods ***/
16952     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16953         ISpeechPhraseElement *This,
16954         REFIID riid,
16955         void **ppvObject);
16956 
16957     ULONG (STDMETHODCALLTYPE *AddRef)(
16958         ISpeechPhraseElement *This);
16959 
16960     ULONG (STDMETHODCALLTYPE *Release)(
16961         ISpeechPhraseElement *This);
16962 
16963     /*** IDispatch methods ***/
16964     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16965         ISpeechPhraseElement *This,
16966         UINT *pctinfo);
16967 
16968     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16969         ISpeechPhraseElement *This,
16970         UINT iTInfo,
16971         LCID lcid,
16972         ITypeInfo **ppTInfo);
16973 
16974     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16975         ISpeechPhraseElement *This,
16976         REFIID riid,
16977         LPOLESTR *rgszNames,
16978         UINT cNames,
16979         LCID lcid,
16980         DISPID *rgDispId);
16981 
16982     HRESULT (STDMETHODCALLTYPE *Invoke)(
16983         ISpeechPhraseElement *This,
16984         DISPID dispIdMember,
16985         REFIID riid,
16986         LCID lcid,
16987         WORD wFlags,
16988         DISPPARAMS *pDispParams,
16989         VARIANT *pVarResult,
16990         EXCEPINFO *pExcepInfo,
16991         UINT *puArgErr);
16992 
16993     /*** ISpeechPhraseElement methods ***/
16994     HRESULT (STDMETHODCALLTYPE *get_AudioTimeOffset)(
16995         ISpeechPhraseElement *This,
16996         LONG *AudioTimeOffset);
16997 
16998     HRESULT (STDMETHODCALLTYPE *get_AudioSizeTime)(
16999         ISpeechPhraseElement *This,
17000         LONG *AudioSizeTime);
17001 
17002     HRESULT (STDMETHODCALLTYPE *get_AudioStreamOffset)(
17003         ISpeechPhraseElement *This,
17004         LONG *AudioStreamOffset);
17005 
17006     HRESULT (STDMETHODCALLTYPE *get_AudioSizeBytes)(
17007         ISpeechPhraseElement *This,
17008         LONG *AudioSizeBytes);
17009 
17010     HRESULT (STDMETHODCALLTYPE *get_RetainedStreamOffset)(
17011         ISpeechPhraseElement *This,
17012         LONG *RetainedStreamOffset);
17013 
17014     HRESULT (STDMETHODCALLTYPE *get_RetainedSizeBytes)(
17015         ISpeechPhraseElement *This,
17016         LONG *RetainedSizeBytes);
17017 
17018     HRESULT (STDMETHODCALLTYPE *get_DisplayText)(
17019         ISpeechPhraseElement *This,
17020         BSTR *DisplayText);
17021 
17022     HRESULT (STDMETHODCALLTYPE *get_LexicalForm)(
17023         ISpeechPhraseElement *This,
17024         BSTR *LexicalForm);
17025 
17026     HRESULT (STDMETHODCALLTYPE *get_Pronunciation)(
17027         ISpeechPhraseElement *This,
17028         VARIANT *Pronunciation);
17029 
17030     HRESULT (STDMETHODCALLTYPE *get_DisplayAttributes)(
17031         ISpeechPhraseElement *This,
17032         SpeechDisplayAttributes *DisplayAttributes);
17033 
17034     HRESULT (STDMETHODCALLTYPE *get_RequiredConfidence)(
17035         ISpeechPhraseElement *This,
17036         SpeechEngineConfidence *RequiredConfidence);
17037 
17038     HRESULT (STDMETHODCALLTYPE *get_ActualConfidence)(
17039         ISpeechPhraseElement *This,
17040         SpeechEngineConfidence *ActualConfidence);
17041 
17042     HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
17043         ISpeechPhraseElement *This,
17044         float *EngineConfidence);
17045 
17046     END_INTERFACE
17047 } ISpeechPhraseElementVtbl;
17048 
17049 interface ISpeechPhraseElement {
17050     CONST_VTBL ISpeechPhraseElementVtbl* lpVtbl;
17051 };
17052 
17053 #ifdef COBJMACROS
17054 #ifndef WIDL_C_INLINE_WRAPPERS
17055 /*** IUnknown methods ***/
17056 #define ISpeechPhraseElement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17057 #define ISpeechPhraseElement_AddRef(This) (This)->lpVtbl->AddRef(This)
17058 #define ISpeechPhraseElement_Release(This) (This)->lpVtbl->Release(This)
17059 /*** IDispatch methods ***/
17060 #define ISpeechPhraseElement_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17061 #define ISpeechPhraseElement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17062 #define ISpeechPhraseElement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17063 #define ISpeechPhraseElement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17064 /*** ISpeechPhraseElement methods ***/
17065 #define ISpeechPhraseElement_get_AudioTimeOffset(This,AudioTimeOffset) (This)->lpVtbl->get_AudioTimeOffset(This,AudioTimeOffset)
17066 #define ISpeechPhraseElement_get_AudioSizeTime(This,AudioSizeTime) (This)->lpVtbl->get_AudioSizeTime(This,AudioSizeTime)
17067 #define ISpeechPhraseElement_get_AudioStreamOffset(This,AudioStreamOffset) (This)->lpVtbl->get_AudioStreamOffset(This,AudioStreamOffset)
17068 #define ISpeechPhraseElement_get_AudioSizeBytes(This,AudioSizeBytes) (This)->lpVtbl->get_AudioSizeBytes(This,AudioSizeBytes)
17069 #define ISpeechPhraseElement_get_RetainedStreamOffset(This,RetainedStreamOffset) (This)->lpVtbl->get_RetainedStreamOffset(This,RetainedStreamOffset)
17070 #define ISpeechPhraseElement_get_RetainedSizeBytes(This,RetainedSizeBytes) (This)->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes)
17071 #define ISpeechPhraseElement_get_DisplayText(This,DisplayText) (This)->lpVtbl->get_DisplayText(This,DisplayText)
17072 #define ISpeechPhraseElement_get_LexicalForm(This,LexicalForm) (This)->lpVtbl->get_LexicalForm(This,LexicalForm)
17073 #define ISpeechPhraseElement_get_Pronunciation(This,Pronunciation) (This)->lpVtbl->get_Pronunciation(This,Pronunciation)
17074 #define ISpeechPhraseElement_get_DisplayAttributes(This,DisplayAttributes) (This)->lpVtbl->get_DisplayAttributes(This,DisplayAttributes)
17075 #define ISpeechPhraseElement_get_RequiredConfidence(This,RequiredConfidence) (This)->lpVtbl->get_RequiredConfidence(This,RequiredConfidence)
17076 #define ISpeechPhraseElement_get_ActualConfidence(This,ActualConfidence) (This)->lpVtbl->get_ActualConfidence(This,ActualConfidence)
17077 #define ISpeechPhraseElement_get_EngineConfidence(This,EngineConfidence) (This)->lpVtbl->get_EngineConfidence(This,EngineConfidence)
17078 #else
17079 /*** IUnknown methods ***/
17080 static FORCEINLINE HRESULT ISpeechPhraseElement_QueryInterface(ISpeechPhraseElement* This,REFIID riid,void **ppvObject) {
17081     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17082 }
17083 static FORCEINLINE ULONG ISpeechPhraseElement_AddRef(ISpeechPhraseElement* This) {
17084     return This->lpVtbl->AddRef(This);
17085 }
17086 static FORCEINLINE ULONG ISpeechPhraseElement_Release(ISpeechPhraseElement* This) {
17087     return This->lpVtbl->Release(This);
17088 }
17089 /*** IDispatch methods ***/
17090 static FORCEINLINE HRESULT ISpeechPhraseElement_GetTypeInfoCount(ISpeechPhraseElement* This,UINT *pctinfo) {
17091     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17092 }
17093 static FORCEINLINE HRESULT ISpeechPhraseElement_GetTypeInfo(ISpeechPhraseElement* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17094     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17095 }
17096 static FORCEINLINE HRESULT ISpeechPhraseElement_GetIDsOfNames(ISpeechPhraseElement* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17097     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17098 }
17099 static FORCEINLINE HRESULT ISpeechPhraseElement_Invoke(ISpeechPhraseElement* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17100     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17101 }
17102 /*** ISpeechPhraseElement methods ***/
17103 static FORCEINLINE HRESULT ISpeechPhraseElement_get_AudioTimeOffset(ISpeechPhraseElement* This,LONG *AudioTimeOffset) {
17104     return This->lpVtbl->get_AudioTimeOffset(This,AudioTimeOffset);
17105 }
17106 static FORCEINLINE HRESULT ISpeechPhraseElement_get_AudioSizeTime(ISpeechPhraseElement* This,LONG *AudioSizeTime) {
17107     return This->lpVtbl->get_AudioSizeTime(This,AudioSizeTime);
17108 }
17109 static FORCEINLINE HRESULT ISpeechPhraseElement_get_AudioStreamOffset(ISpeechPhraseElement* This,LONG *AudioStreamOffset) {
17110     return This->lpVtbl->get_AudioStreamOffset(This,AudioStreamOffset);
17111 }
17112 static FORCEINLINE HRESULT ISpeechPhraseElement_get_AudioSizeBytes(ISpeechPhraseElement* This,LONG *AudioSizeBytes) {
17113     return This->lpVtbl->get_AudioSizeBytes(This,AudioSizeBytes);
17114 }
17115 static FORCEINLINE HRESULT ISpeechPhraseElement_get_RetainedStreamOffset(ISpeechPhraseElement* This,LONG *RetainedStreamOffset) {
17116     return This->lpVtbl->get_RetainedStreamOffset(This,RetainedStreamOffset);
17117 }
17118 static FORCEINLINE HRESULT ISpeechPhraseElement_get_RetainedSizeBytes(ISpeechPhraseElement* This,LONG *RetainedSizeBytes) {
17119     return This->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes);
17120 }
17121 static FORCEINLINE HRESULT ISpeechPhraseElement_get_DisplayText(ISpeechPhraseElement* This,BSTR *DisplayText) {
17122     return This->lpVtbl->get_DisplayText(This,DisplayText);
17123 }
17124 static FORCEINLINE HRESULT ISpeechPhraseElement_get_LexicalForm(ISpeechPhraseElement* This,BSTR *LexicalForm) {
17125     return This->lpVtbl->get_LexicalForm(This,LexicalForm);
17126 }
17127 static FORCEINLINE HRESULT ISpeechPhraseElement_get_Pronunciation(ISpeechPhraseElement* This,VARIANT *Pronunciation) {
17128     return This->lpVtbl->get_Pronunciation(This,Pronunciation);
17129 }
17130 static FORCEINLINE HRESULT ISpeechPhraseElement_get_DisplayAttributes(ISpeechPhraseElement* This,SpeechDisplayAttributes *DisplayAttributes) {
17131     return This->lpVtbl->get_DisplayAttributes(This,DisplayAttributes);
17132 }
17133 static FORCEINLINE HRESULT ISpeechPhraseElement_get_RequiredConfidence(ISpeechPhraseElement* This,SpeechEngineConfidence *RequiredConfidence) {
17134     return This->lpVtbl->get_RequiredConfidence(This,RequiredConfidence);
17135 }
17136 static FORCEINLINE HRESULT ISpeechPhraseElement_get_ActualConfidence(ISpeechPhraseElement* This,SpeechEngineConfidence *ActualConfidence) {
17137     return This->lpVtbl->get_ActualConfidence(This,ActualConfidence);
17138 }
17139 static FORCEINLINE HRESULT ISpeechPhraseElement_get_EngineConfidence(ISpeechPhraseElement* This,float *EngineConfidence) {
17140     return This->lpVtbl->get_EngineConfidence(This,EngineConfidence);
17141 }
17142 #endif
17143 #endif
17144 
17145 #endif
17146 
17147 
17148 #endif  /* __ISpeechPhraseElement_INTERFACE_DEFINED__ */
17149 
17150 /*****************************************************************************
17151  * ISpeechPhraseElements interface
17152  */
17153 #ifndef __ISpeechPhraseElements_INTERFACE_DEFINED__
17154 #define __ISpeechPhraseElements_INTERFACE_DEFINED__
17155 
17156 DEFINE_GUID(IID_ISpeechPhraseElements, 0x0626b328, 0x3478, 0x467d, 0xa0,0xb3, 0xd0,0x85,0x3b,0x93,0xdd,0xa3);
17157 #if defined(__cplusplus) && !defined(CINTERFACE)
17158 MIDL_INTERFACE("0626b328-3478-467d-a0b3-d0853b93dda3")
17159 ISpeechPhraseElements : public IDispatch
17160 {
17161     virtual HRESULT STDMETHODCALLTYPE get_Count(
17162         LONG *Count) = 0;
17163 
17164     virtual HRESULT STDMETHODCALLTYPE Item(
17165         LONG Index,
17166         ISpeechPhraseElement **Element) = 0;
17167 
17168     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
17169         IUnknown **EnumVARIANT) = 0;
17170 
17171 };
17172 #ifdef __CRT_UUID_DECL
17173 __CRT_UUID_DECL(ISpeechPhraseElements, 0x0626b328, 0x3478, 0x467d, 0xa0,0xb3, 0xd0,0x85,0x3b,0x93,0xdd,0xa3)
17174 #endif
17175 #else
17176 typedef struct ISpeechPhraseElementsVtbl {
17177     BEGIN_INTERFACE
17178 
17179     /*** IUnknown methods ***/
17180     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17181         ISpeechPhraseElements *This,
17182         REFIID riid,
17183         void **ppvObject);
17184 
17185     ULONG (STDMETHODCALLTYPE *AddRef)(
17186         ISpeechPhraseElements *This);
17187 
17188     ULONG (STDMETHODCALLTYPE *Release)(
17189         ISpeechPhraseElements *This);
17190 
17191     /*** IDispatch methods ***/
17192     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17193         ISpeechPhraseElements *This,
17194         UINT *pctinfo);
17195 
17196     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17197         ISpeechPhraseElements *This,
17198         UINT iTInfo,
17199         LCID lcid,
17200         ITypeInfo **ppTInfo);
17201 
17202     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17203         ISpeechPhraseElements *This,
17204         REFIID riid,
17205         LPOLESTR *rgszNames,
17206         UINT cNames,
17207         LCID lcid,
17208         DISPID *rgDispId);
17209 
17210     HRESULT (STDMETHODCALLTYPE *Invoke)(
17211         ISpeechPhraseElements *This,
17212         DISPID dispIdMember,
17213         REFIID riid,
17214         LCID lcid,
17215         WORD wFlags,
17216         DISPPARAMS *pDispParams,
17217         VARIANT *pVarResult,
17218         EXCEPINFO *pExcepInfo,
17219         UINT *puArgErr);
17220 
17221     /*** ISpeechPhraseElements methods ***/
17222     HRESULT (STDMETHODCALLTYPE *get_Count)(
17223         ISpeechPhraseElements *This,
17224         LONG *Count);
17225 
17226     HRESULT (STDMETHODCALLTYPE *Item)(
17227         ISpeechPhraseElements *This,
17228         LONG Index,
17229         ISpeechPhraseElement **Element);
17230 
17231     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
17232         ISpeechPhraseElements *This,
17233         IUnknown **EnumVARIANT);
17234 
17235     END_INTERFACE
17236 } ISpeechPhraseElementsVtbl;
17237 
17238 interface ISpeechPhraseElements {
17239     CONST_VTBL ISpeechPhraseElementsVtbl* lpVtbl;
17240 };
17241 
17242 #ifdef COBJMACROS
17243 #ifndef WIDL_C_INLINE_WRAPPERS
17244 /*** IUnknown methods ***/
17245 #define ISpeechPhraseElements_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17246 #define ISpeechPhraseElements_AddRef(This) (This)->lpVtbl->AddRef(This)
17247 #define ISpeechPhraseElements_Release(This) (This)->lpVtbl->Release(This)
17248 /*** IDispatch methods ***/
17249 #define ISpeechPhraseElements_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17250 #define ISpeechPhraseElements_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17251 #define ISpeechPhraseElements_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17252 #define ISpeechPhraseElements_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17253 /*** ISpeechPhraseElements methods ***/
17254 #define ISpeechPhraseElements_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
17255 #define ISpeechPhraseElements_Item(This,Index,Element) (This)->lpVtbl->Item(This,Index,Element)
17256 #define ISpeechPhraseElements_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
17257 #else
17258 /*** IUnknown methods ***/
17259 static FORCEINLINE HRESULT ISpeechPhraseElements_QueryInterface(ISpeechPhraseElements* This,REFIID riid,void **ppvObject) {
17260     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17261 }
17262 static FORCEINLINE ULONG ISpeechPhraseElements_AddRef(ISpeechPhraseElements* This) {
17263     return This->lpVtbl->AddRef(This);
17264 }
17265 static FORCEINLINE ULONG ISpeechPhraseElements_Release(ISpeechPhraseElements* This) {
17266     return This->lpVtbl->Release(This);
17267 }
17268 /*** IDispatch methods ***/
17269 static FORCEINLINE HRESULT ISpeechPhraseElements_GetTypeInfoCount(ISpeechPhraseElements* This,UINT *pctinfo) {
17270     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17271 }
17272 static FORCEINLINE HRESULT ISpeechPhraseElements_GetTypeInfo(ISpeechPhraseElements* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17273     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17274 }
17275 static FORCEINLINE HRESULT ISpeechPhraseElements_GetIDsOfNames(ISpeechPhraseElements* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17276     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17277 }
17278 static FORCEINLINE HRESULT ISpeechPhraseElements_Invoke(ISpeechPhraseElements* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17279     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17280 }
17281 /*** ISpeechPhraseElements methods ***/
17282 static FORCEINLINE HRESULT ISpeechPhraseElements_get_Count(ISpeechPhraseElements* This,LONG *Count) {
17283     return This->lpVtbl->get_Count(This,Count);
17284 }
17285 static FORCEINLINE HRESULT ISpeechPhraseElements_Item(ISpeechPhraseElements* This,LONG Index,ISpeechPhraseElement **Element) {
17286     return This->lpVtbl->Item(This,Index,Element);
17287 }
17288 static FORCEINLINE HRESULT ISpeechPhraseElements_get__NewEnum(ISpeechPhraseElements* This,IUnknown **EnumVARIANT) {
17289     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
17290 }
17291 #endif
17292 #endif
17293 
17294 #endif
17295 
17296 
17297 #endif  /* __ISpeechPhraseElements_INTERFACE_DEFINED__ */
17298 
17299 /*****************************************************************************
17300  * ISpeechPhraseReplacement interface
17301  */
17302 #ifndef __ISpeechPhraseReplacement_INTERFACE_DEFINED__
17303 #define __ISpeechPhraseReplacement_INTERFACE_DEFINED__
17304 
17305 DEFINE_GUID(IID_ISpeechPhraseReplacement, 0x2890a410, 0x53a7, 0x4fb5, 0x94,0xec, 0x06,0xd4,0x99,0x8e,0x3d,0x02);
17306 #if defined(__cplusplus) && !defined(CINTERFACE)
17307 MIDL_INTERFACE("2890a410-53a7-4fb5-94ec-06d4998e3d02")
17308 ISpeechPhraseReplacement : public IDispatch
17309 {
17310     virtual HRESULT STDMETHODCALLTYPE get_DisplayAttributes(
17311         SpeechDisplayAttributes *DisplayAttributes) = 0;
17312 
17313     virtual HRESULT STDMETHODCALLTYPE get_Text(
17314         BSTR *Text) = 0;
17315 
17316     virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
17317         LONG *FirstElement) = 0;
17318 
17319     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
17320         LONG *NumberOfElements) = 0;
17321 
17322 };
17323 #ifdef __CRT_UUID_DECL
17324 __CRT_UUID_DECL(ISpeechPhraseReplacement, 0x2890a410, 0x53a7, 0x4fb5, 0x94,0xec, 0x06,0xd4,0x99,0x8e,0x3d,0x02)
17325 #endif
17326 #else
17327 typedef struct ISpeechPhraseReplacementVtbl {
17328     BEGIN_INTERFACE
17329 
17330     /*** IUnknown methods ***/
17331     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17332         ISpeechPhraseReplacement *This,
17333         REFIID riid,
17334         void **ppvObject);
17335 
17336     ULONG (STDMETHODCALLTYPE *AddRef)(
17337         ISpeechPhraseReplacement *This);
17338 
17339     ULONG (STDMETHODCALLTYPE *Release)(
17340         ISpeechPhraseReplacement *This);
17341 
17342     /*** IDispatch methods ***/
17343     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17344         ISpeechPhraseReplacement *This,
17345         UINT *pctinfo);
17346 
17347     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17348         ISpeechPhraseReplacement *This,
17349         UINT iTInfo,
17350         LCID lcid,
17351         ITypeInfo **ppTInfo);
17352 
17353     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17354         ISpeechPhraseReplacement *This,
17355         REFIID riid,
17356         LPOLESTR *rgszNames,
17357         UINT cNames,
17358         LCID lcid,
17359         DISPID *rgDispId);
17360 
17361     HRESULT (STDMETHODCALLTYPE *Invoke)(
17362         ISpeechPhraseReplacement *This,
17363         DISPID dispIdMember,
17364         REFIID riid,
17365         LCID lcid,
17366         WORD wFlags,
17367         DISPPARAMS *pDispParams,
17368         VARIANT *pVarResult,
17369         EXCEPINFO *pExcepInfo,
17370         UINT *puArgErr);
17371 
17372     /*** ISpeechPhraseReplacement methods ***/
17373     HRESULT (STDMETHODCALLTYPE *get_DisplayAttributes)(
17374         ISpeechPhraseReplacement *This,
17375         SpeechDisplayAttributes *DisplayAttributes);
17376 
17377     HRESULT (STDMETHODCALLTYPE *get_Text)(
17378         ISpeechPhraseReplacement *This,
17379         BSTR *Text);
17380 
17381     HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
17382         ISpeechPhraseReplacement *This,
17383         LONG *FirstElement);
17384 
17385     HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
17386         ISpeechPhraseReplacement *This,
17387         LONG *NumberOfElements);
17388 
17389     END_INTERFACE
17390 } ISpeechPhraseReplacementVtbl;
17391 
17392 interface ISpeechPhraseReplacement {
17393     CONST_VTBL ISpeechPhraseReplacementVtbl* lpVtbl;
17394 };
17395 
17396 #ifdef COBJMACROS
17397 #ifndef WIDL_C_INLINE_WRAPPERS
17398 /*** IUnknown methods ***/
17399 #define ISpeechPhraseReplacement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17400 #define ISpeechPhraseReplacement_AddRef(This) (This)->lpVtbl->AddRef(This)
17401 #define ISpeechPhraseReplacement_Release(This) (This)->lpVtbl->Release(This)
17402 /*** IDispatch methods ***/
17403 #define ISpeechPhraseReplacement_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17404 #define ISpeechPhraseReplacement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17405 #define ISpeechPhraseReplacement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17406 #define ISpeechPhraseReplacement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17407 /*** ISpeechPhraseReplacement methods ***/
17408 #define ISpeechPhraseReplacement_get_DisplayAttributes(This,DisplayAttributes) (This)->lpVtbl->get_DisplayAttributes(This,DisplayAttributes)
17409 #define ISpeechPhraseReplacement_get_Text(This,Text) (This)->lpVtbl->get_Text(This,Text)
17410 #define ISpeechPhraseReplacement_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
17411 #define ISpeechPhraseReplacement_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
17412 #else
17413 /*** IUnknown methods ***/
17414 static FORCEINLINE HRESULT ISpeechPhraseReplacement_QueryInterface(ISpeechPhraseReplacement* This,REFIID riid,void **ppvObject) {
17415     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17416 }
17417 static FORCEINLINE ULONG ISpeechPhraseReplacement_AddRef(ISpeechPhraseReplacement* This) {
17418     return This->lpVtbl->AddRef(This);
17419 }
17420 static FORCEINLINE ULONG ISpeechPhraseReplacement_Release(ISpeechPhraseReplacement* This) {
17421     return This->lpVtbl->Release(This);
17422 }
17423 /*** IDispatch methods ***/
17424 static FORCEINLINE HRESULT ISpeechPhraseReplacement_GetTypeInfoCount(ISpeechPhraseReplacement* This,UINT *pctinfo) {
17425     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17426 }
17427 static FORCEINLINE HRESULT ISpeechPhraseReplacement_GetTypeInfo(ISpeechPhraseReplacement* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17428     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17429 }
17430 static FORCEINLINE HRESULT ISpeechPhraseReplacement_GetIDsOfNames(ISpeechPhraseReplacement* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17431     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17432 }
17433 static FORCEINLINE HRESULT ISpeechPhraseReplacement_Invoke(ISpeechPhraseReplacement* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17434     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17435 }
17436 /*** ISpeechPhraseReplacement methods ***/
17437 static FORCEINLINE HRESULT ISpeechPhraseReplacement_get_DisplayAttributes(ISpeechPhraseReplacement* This,SpeechDisplayAttributes *DisplayAttributes) {
17438     return This->lpVtbl->get_DisplayAttributes(This,DisplayAttributes);
17439 }
17440 static FORCEINLINE HRESULT ISpeechPhraseReplacement_get_Text(ISpeechPhraseReplacement* This,BSTR *Text) {
17441     return This->lpVtbl->get_Text(This,Text);
17442 }
17443 static FORCEINLINE HRESULT ISpeechPhraseReplacement_get_FirstElement(ISpeechPhraseReplacement* This,LONG *FirstElement) {
17444     return This->lpVtbl->get_FirstElement(This,FirstElement);
17445 }
17446 static FORCEINLINE HRESULT ISpeechPhraseReplacement_get_NumberOfElements(ISpeechPhraseReplacement* This,LONG *NumberOfElements) {
17447     return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
17448 }
17449 #endif
17450 #endif
17451 
17452 #endif
17453 
17454 
17455 #endif  /* __ISpeechPhraseReplacement_INTERFACE_DEFINED__ */
17456 
17457 /*****************************************************************************
17458  * ISpeechPhraseReplacements interface
17459  */
17460 #ifndef __ISpeechPhraseReplacements_INTERFACE_DEFINED__
17461 #define __ISpeechPhraseReplacements_INTERFACE_DEFINED__
17462 
17463 DEFINE_GUID(IID_ISpeechPhraseReplacements, 0x38bc662f, 0x2257, 0x4525, 0x95,0x9e, 0x20,0x69,0xd2,0x59,0x6c,0x05);
17464 #if defined(__cplusplus) && !defined(CINTERFACE)
17465 MIDL_INTERFACE("38bc662f-2257-4525-959e-2069d2596c05")
17466 ISpeechPhraseReplacements : public IDispatch
17467 {
17468     virtual HRESULT STDMETHODCALLTYPE get_Count(
17469         LONG *Count) = 0;
17470 
17471     virtual HRESULT STDMETHODCALLTYPE Item(
17472         LONG Index,
17473         ISpeechPhraseReplacement **Reps) = 0;
17474 
17475     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
17476         IUnknown **EnumVARIANT) = 0;
17477 
17478 };
17479 #ifdef __CRT_UUID_DECL
17480 __CRT_UUID_DECL(ISpeechPhraseReplacements, 0x38bc662f, 0x2257, 0x4525, 0x95,0x9e, 0x20,0x69,0xd2,0x59,0x6c,0x05)
17481 #endif
17482 #else
17483 typedef struct ISpeechPhraseReplacementsVtbl {
17484     BEGIN_INTERFACE
17485 
17486     /*** IUnknown methods ***/
17487     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17488         ISpeechPhraseReplacements *This,
17489         REFIID riid,
17490         void **ppvObject);
17491 
17492     ULONG (STDMETHODCALLTYPE *AddRef)(
17493         ISpeechPhraseReplacements *This);
17494 
17495     ULONG (STDMETHODCALLTYPE *Release)(
17496         ISpeechPhraseReplacements *This);
17497 
17498     /*** IDispatch methods ***/
17499     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17500         ISpeechPhraseReplacements *This,
17501         UINT *pctinfo);
17502 
17503     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17504         ISpeechPhraseReplacements *This,
17505         UINT iTInfo,
17506         LCID lcid,
17507         ITypeInfo **ppTInfo);
17508 
17509     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17510         ISpeechPhraseReplacements *This,
17511         REFIID riid,
17512         LPOLESTR *rgszNames,
17513         UINT cNames,
17514         LCID lcid,
17515         DISPID *rgDispId);
17516 
17517     HRESULT (STDMETHODCALLTYPE *Invoke)(
17518         ISpeechPhraseReplacements *This,
17519         DISPID dispIdMember,
17520         REFIID riid,
17521         LCID lcid,
17522         WORD wFlags,
17523         DISPPARAMS *pDispParams,
17524         VARIANT *pVarResult,
17525         EXCEPINFO *pExcepInfo,
17526         UINT *puArgErr);
17527 
17528     /*** ISpeechPhraseReplacements methods ***/
17529     HRESULT (STDMETHODCALLTYPE *get_Count)(
17530         ISpeechPhraseReplacements *This,
17531         LONG *Count);
17532 
17533     HRESULT (STDMETHODCALLTYPE *Item)(
17534         ISpeechPhraseReplacements *This,
17535         LONG Index,
17536         ISpeechPhraseReplacement **Reps);
17537 
17538     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
17539         ISpeechPhraseReplacements *This,
17540         IUnknown **EnumVARIANT);
17541 
17542     END_INTERFACE
17543 } ISpeechPhraseReplacementsVtbl;
17544 
17545 interface ISpeechPhraseReplacements {
17546     CONST_VTBL ISpeechPhraseReplacementsVtbl* lpVtbl;
17547 };
17548 
17549 #ifdef COBJMACROS
17550 #ifndef WIDL_C_INLINE_WRAPPERS
17551 /*** IUnknown methods ***/
17552 #define ISpeechPhraseReplacements_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17553 #define ISpeechPhraseReplacements_AddRef(This) (This)->lpVtbl->AddRef(This)
17554 #define ISpeechPhraseReplacements_Release(This) (This)->lpVtbl->Release(This)
17555 /*** IDispatch methods ***/
17556 #define ISpeechPhraseReplacements_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17557 #define ISpeechPhraseReplacements_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17558 #define ISpeechPhraseReplacements_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17559 #define ISpeechPhraseReplacements_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17560 /*** ISpeechPhraseReplacements methods ***/
17561 #define ISpeechPhraseReplacements_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
17562 #define ISpeechPhraseReplacements_Item(This,Index,Reps) (This)->lpVtbl->Item(This,Index,Reps)
17563 #define ISpeechPhraseReplacements_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
17564 #else
17565 /*** IUnknown methods ***/
17566 static FORCEINLINE HRESULT ISpeechPhraseReplacements_QueryInterface(ISpeechPhraseReplacements* This,REFIID riid,void **ppvObject) {
17567     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17568 }
17569 static FORCEINLINE ULONG ISpeechPhraseReplacements_AddRef(ISpeechPhraseReplacements* This) {
17570     return This->lpVtbl->AddRef(This);
17571 }
17572 static FORCEINLINE ULONG ISpeechPhraseReplacements_Release(ISpeechPhraseReplacements* This) {
17573     return This->lpVtbl->Release(This);
17574 }
17575 /*** IDispatch methods ***/
17576 static FORCEINLINE HRESULT ISpeechPhraseReplacements_GetTypeInfoCount(ISpeechPhraseReplacements* This,UINT *pctinfo) {
17577     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17578 }
17579 static FORCEINLINE HRESULT ISpeechPhraseReplacements_GetTypeInfo(ISpeechPhraseReplacements* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17580     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17581 }
17582 static FORCEINLINE HRESULT ISpeechPhraseReplacements_GetIDsOfNames(ISpeechPhraseReplacements* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17583     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17584 }
17585 static FORCEINLINE HRESULT ISpeechPhraseReplacements_Invoke(ISpeechPhraseReplacements* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17586     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17587 }
17588 /*** ISpeechPhraseReplacements methods ***/
17589 static FORCEINLINE HRESULT ISpeechPhraseReplacements_get_Count(ISpeechPhraseReplacements* This,LONG *Count) {
17590     return This->lpVtbl->get_Count(This,Count);
17591 }
17592 static FORCEINLINE HRESULT ISpeechPhraseReplacements_Item(ISpeechPhraseReplacements* This,LONG Index,ISpeechPhraseReplacement **Reps) {
17593     return This->lpVtbl->Item(This,Index,Reps);
17594 }
17595 static FORCEINLINE HRESULT ISpeechPhraseReplacements_get__NewEnum(ISpeechPhraseReplacements* This,IUnknown **EnumVARIANT) {
17596     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
17597 }
17598 #endif
17599 #endif
17600 
17601 #endif
17602 
17603 
17604 #endif  /* __ISpeechPhraseReplacements_INTERFACE_DEFINED__ */
17605 
17606 /*****************************************************************************
17607  * ISpeechPhraseProperty interface
17608  */
17609 #ifndef __ISpeechPhraseProperty_INTERFACE_DEFINED__
17610 #define __ISpeechPhraseProperty_INTERFACE_DEFINED__
17611 
17612 DEFINE_GUID(IID_ISpeechPhraseProperty, 0xce563d48, 0x961e, 0x4732, 0xa2,0xe1, 0x37,0x8a,0x42,0xb4,0x30,0xbe);
17613 #if defined(__cplusplus) && !defined(CINTERFACE)
17614 MIDL_INTERFACE("ce563d48-961e-4732-a2e1-378a42b430be")
17615 ISpeechPhraseProperty : public IDispatch
17616 {
17617     virtual HRESULT STDMETHODCALLTYPE get_Name(
17618         BSTR *Name) = 0;
17619 
17620     virtual HRESULT STDMETHODCALLTYPE get_Id(
17621         LONG *Id) = 0;
17622 
17623     virtual HRESULT STDMETHODCALLTYPE get_Value(
17624         VARIANT *Value) = 0;
17625 
17626     virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
17627         LONG *FirstElement) = 0;
17628 
17629     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
17630         LONG *NumberOfElements) = 0;
17631 
17632     virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
17633         float *Confidence) = 0;
17634 
17635     virtual HRESULT STDMETHODCALLTYPE get_Confidence(
17636         SpeechEngineConfidence *Confidence) = 0;
17637 
17638     virtual HRESULT STDMETHODCALLTYPE get_Parent(
17639         ISpeechPhraseProperty **ParentProperty) = 0;
17640 
17641     virtual HRESULT STDMETHODCALLTYPE get_Children(
17642         ISpeechPhraseProperties **Children) = 0;
17643 
17644 };
17645 #ifdef __CRT_UUID_DECL
17646 __CRT_UUID_DECL(ISpeechPhraseProperty, 0xce563d48, 0x961e, 0x4732, 0xa2,0xe1, 0x37,0x8a,0x42,0xb4,0x30,0xbe)
17647 #endif
17648 #else
17649 typedef struct ISpeechPhrasePropertyVtbl {
17650     BEGIN_INTERFACE
17651 
17652     /*** IUnknown methods ***/
17653     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17654         ISpeechPhraseProperty *This,
17655         REFIID riid,
17656         void **ppvObject);
17657 
17658     ULONG (STDMETHODCALLTYPE *AddRef)(
17659         ISpeechPhraseProperty *This);
17660 
17661     ULONG (STDMETHODCALLTYPE *Release)(
17662         ISpeechPhraseProperty *This);
17663 
17664     /*** IDispatch methods ***/
17665     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17666         ISpeechPhraseProperty *This,
17667         UINT *pctinfo);
17668 
17669     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17670         ISpeechPhraseProperty *This,
17671         UINT iTInfo,
17672         LCID lcid,
17673         ITypeInfo **ppTInfo);
17674 
17675     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17676         ISpeechPhraseProperty *This,
17677         REFIID riid,
17678         LPOLESTR *rgszNames,
17679         UINT cNames,
17680         LCID lcid,
17681         DISPID *rgDispId);
17682 
17683     HRESULT (STDMETHODCALLTYPE *Invoke)(
17684         ISpeechPhraseProperty *This,
17685         DISPID dispIdMember,
17686         REFIID riid,
17687         LCID lcid,
17688         WORD wFlags,
17689         DISPPARAMS *pDispParams,
17690         VARIANT *pVarResult,
17691         EXCEPINFO *pExcepInfo,
17692         UINT *puArgErr);
17693 
17694     /*** ISpeechPhraseProperty methods ***/
17695     HRESULT (STDMETHODCALLTYPE *get_Name)(
17696         ISpeechPhraseProperty *This,
17697         BSTR *Name);
17698 
17699     HRESULT (STDMETHODCALLTYPE *get_Id)(
17700         ISpeechPhraseProperty *This,
17701         LONG *Id);
17702 
17703     HRESULT (STDMETHODCALLTYPE *get_Value)(
17704         ISpeechPhraseProperty *This,
17705         VARIANT *Value);
17706 
17707     HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
17708         ISpeechPhraseProperty *This,
17709         LONG *FirstElement);
17710 
17711     HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
17712         ISpeechPhraseProperty *This,
17713         LONG *NumberOfElements);
17714 
17715     HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
17716         ISpeechPhraseProperty *This,
17717         float *Confidence);
17718 
17719     HRESULT (STDMETHODCALLTYPE *get_Confidence)(
17720         ISpeechPhraseProperty *This,
17721         SpeechEngineConfidence *Confidence);
17722 
17723     HRESULT (STDMETHODCALLTYPE *get_Parent)(
17724         ISpeechPhraseProperty *This,
17725         ISpeechPhraseProperty **ParentProperty);
17726 
17727     HRESULT (STDMETHODCALLTYPE *get_Children)(
17728         ISpeechPhraseProperty *This,
17729         ISpeechPhraseProperties **Children);
17730 
17731     END_INTERFACE
17732 } ISpeechPhrasePropertyVtbl;
17733 
17734 interface ISpeechPhraseProperty {
17735     CONST_VTBL ISpeechPhrasePropertyVtbl* lpVtbl;
17736 };
17737 
17738 #ifdef COBJMACROS
17739 #ifndef WIDL_C_INLINE_WRAPPERS
17740 /*** IUnknown methods ***/
17741 #define ISpeechPhraseProperty_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17742 #define ISpeechPhraseProperty_AddRef(This) (This)->lpVtbl->AddRef(This)
17743 #define ISpeechPhraseProperty_Release(This) (This)->lpVtbl->Release(This)
17744 /*** IDispatch methods ***/
17745 #define ISpeechPhraseProperty_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17746 #define ISpeechPhraseProperty_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17747 #define ISpeechPhraseProperty_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17748 #define ISpeechPhraseProperty_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17749 /*** ISpeechPhraseProperty methods ***/
17750 #define ISpeechPhraseProperty_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
17751 #define ISpeechPhraseProperty_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
17752 #define ISpeechPhraseProperty_get_Value(This,Value) (This)->lpVtbl->get_Value(This,Value)
17753 #define ISpeechPhraseProperty_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
17754 #define ISpeechPhraseProperty_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
17755 #define ISpeechPhraseProperty_get_EngineConfidence(This,Confidence) (This)->lpVtbl->get_EngineConfidence(This,Confidence)
17756 #define ISpeechPhraseProperty_get_Confidence(This,Confidence) (This)->lpVtbl->get_Confidence(This,Confidence)
17757 #define ISpeechPhraseProperty_get_Parent(This,ParentProperty) (This)->lpVtbl->get_Parent(This,ParentProperty)
17758 #define ISpeechPhraseProperty_get_Children(This,Children) (This)->lpVtbl->get_Children(This,Children)
17759 #else
17760 /*** IUnknown methods ***/
17761 static FORCEINLINE HRESULT ISpeechPhraseProperty_QueryInterface(ISpeechPhraseProperty* This,REFIID riid,void **ppvObject) {
17762     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17763 }
17764 static FORCEINLINE ULONG ISpeechPhraseProperty_AddRef(ISpeechPhraseProperty* This) {
17765     return This->lpVtbl->AddRef(This);
17766 }
17767 static FORCEINLINE ULONG ISpeechPhraseProperty_Release(ISpeechPhraseProperty* This) {
17768     return This->lpVtbl->Release(This);
17769 }
17770 /*** IDispatch methods ***/
17771 static FORCEINLINE HRESULT ISpeechPhraseProperty_GetTypeInfoCount(ISpeechPhraseProperty* This,UINT *pctinfo) {
17772     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17773 }
17774 static FORCEINLINE HRESULT ISpeechPhraseProperty_GetTypeInfo(ISpeechPhraseProperty* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17775     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17776 }
17777 static FORCEINLINE HRESULT ISpeechPhraseProperty_GetIDsOfNames(ISpeechPhraseProperty* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17778     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17779 }
17780 static FORCEINLINE HRESULT ISpeechPhraseProperty_Invoke(ISpeechPhraseProperty* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17781     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17782 }
17783 /*** ISpeechPhraseProperty methods ***/
17784 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Name(ISpeechPhraseProperty* This,BSTR *Name) {
17785     return This->lpVtbl->get_Name(This,Name);
17786 }
17787 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Id(ISpeechPhraseProperty* This,LONG *Id) {
17788     return This->lpVtbl->get_Id(This,Id);
17789 }
17790 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Value(ISpeechPhraseProperty* This,VARIANT *Value) {
17791     return This->lpVtbl->get_Value(This,Value);
17792 }
17793 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_FirstElement(ISpeechPhraseProperty* This,LONG *FirstElement) {
17794     return This->lpVtbl->get_FirstElement(This,FirstElement);
17795 }
17796 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_NumberOfElements(ISpeechPhraseProperty* This,LONG *NumberOfElements) {
17797     return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
17798 }
17799 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_EngineConfidence(ISpeechPhraseProperty* This,float *Confidence) {
17800     return This->lpVtbl->get_EngineConfidence(This,Confidence);
17801 }
17802 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Confidence(ISpeechPhraseProperty* This,SpeechEngineConfidence *Confidence) {
17803     return This->lpVtbl->get_Confidence(This,Confidence);
17804 }
17805 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Parent(ISpeechPhraseProperty* This,ISpeechPhraseProperty **ParentProperty) {
17806     return This->lpVtbl->get_Parent(This,ParentProperty);
17807 }
17808 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Children(ISpeechPhraseProperty* This,ISpeechPhraseProperties **Children) {
17809     return This->lpVtbl->get_Children(This,Children);
17810 }
17811 #endif
17812 #endif
17813 
17814 #endif
17815 
17816 
17817 #endif  /* __ISpeechPhraseProperty_INTERFACE_DEFINED__ */
17818 
17819 /*****************************************************************************
17820  * ISpeechPhraseProperties interface
17821  */
17822 #ifndef __ISpeechPhraseProperties_INTERFACE_DEFINED__
17823 #define __ISpeechPhraseProperties_INTERFACE_DEFINED__
17824 
17825 DEFINE_GUID(IID_ISpeechPhraseProperties, 0x08166b47, 0x102e, 0x4b23, 0xa5,0x99, 0xbd,0xb9,0x8d,0xbf,0xd1,0xf4);
17826 #if defined(__cplusplus) && !defined(CINTERFACE)
17827 MIDL_INTERFACE("08166b47-102e-4b23-a599-bdb98dbfd1f4")
17828 ISpeechPhraseProperties : public IDispatch
17829 {
17830     virtual HRESULT STDMETHODCALLTYPE get_Count(
17831         LONG *Count) = 0;
17832 
17833     virtual HRESULT STDMETHODCALLTYPE Item(
17834         LONG Index,
17835         ISpeechPhraseProperty **Property) = 0;
17836 
17837     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
17838         IUnknown **EnumVARIANT) = 0;
17839 
17840 };
17841 #ifdef __CRT_UUID_DECL
17842 __CRT_UUID_DECL(ISpeechPhraseProperties, 0x08166b47, 0x102e, 0x4b23, 0xa5,0x99, 0xbd,0xb9,0x8d,0xbf,0xd1,0xf4)
17843 #endif
17844 #else
17845 typedef struct ISpeechPhrasePropertiesVtbl {
17846     BEGIN_INTERFACE
17847 
17848     /*** IUnknown methods ***/
17849     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17850         ISpeechPhraseProperties *This,
17851         REFIID riid,
17852         void **ppvObject);
17853 
17854     ULONG (STDMETHODCALLTYPE *AddRef)(
17855         ISpeechPhraseProperties *This);
17856 
17857     ULONG (STDMETHODCALLTYPE *Release)(
17858         ISpeechPhraseProperties *This);
17859 
17860     /*** IDispatch methods ***/
17861     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17862         ISpeechPhraseProperties *This,
17863         UINT *pctinfo);
17864 
17865     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17866         ISpeechPhraseProperties *This,
17867         UINT iTInfo,
17868         LCID lcid,
17869         ITypeInfo **ppTInfo);
17870 
17871     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17872         ISpeechPhraseProperties *This,
17873         REFIID riid,
17874         LPOLESTR *rgszNames,
17875         UINT cNames,
17876         LCID lcid,
17877         DISPID *rgDispId);
17878 
17879     HRESULT (STDMETHODCALLTYPE *Invoke)(
17880         ISpeechPhraseProperties *This,
17881         DISPID dispIdMember,
17882         REFIID riid,
17883         LCID lcid,
17884         WORD wFlags,
17885         DISPPARAMS *pDispParams,
17886         VARIANT *pVarResult,
17887         EXCEPINFO *pExcepInfo,
17888         UINT *puArgErr);
17889 
17890     /*** ISpeechPhraseProperties methods ***/
17891     HRESULT (STDMETHODCALLTYPE *get_Count)(
17892         ISpeechPhraseProperties *This,
17893         LONG *Count);
17894 
17895     HRESULT (STDMETHODCALLTYPE *Item)(
17896         ISpeechPhraseProperties *This,
17897         LONG Index,
17898         ISpeechPhraseProperty **Property);
17899 
17900     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
17901         ISpeechPhraseProperties *This,
17902         IUnknown **EnumVARIANT);
17903 
17904     END_INTERFACE
17905 } ISpeechPhrasePropertiesVtbl;
17906 
17907 interface ISpeechPhraseProperties {
17908     CONST_VTBL ISpeechPhrasePropertiesVtbl* lpVtbl;
17909 };
17910 
17911 #ifdef COBJMACROS
17912 #ifndef WIDL_C_INLINE_WRAPPERS
17913 /*** IUnknown methods ***/
17914 #define ISpeechPhraseProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17915 #define ISpeechPhraseProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
17916 #define ISpeechPhraseProperties_Release(This) (This)->lpVtbl->Release(This)
17917 /*** IDispatch methods ***/
17918 #define ISpeechPhraseProperties_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17919 #define ISpeechPhraseProperties_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17920 #define ISpeechPhraseProperties_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17921 #define ISpeechPhraseProperties_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17922 /*** ISpeechPhraseProperties methods ***/
17923 #define ISpeechPhraseProperties_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
17924 #define ISpeechPhraseProperties_Item(This,Index,Property) (This)->lpVtbl->Item(This,Index,Property)
17925 #define ISpeechPhraseProperties_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
17926 #else
17927 /*** IUnknown methods ***/
17928 static FORCEINLINE HRESULT ISpeechPhraseProperties_QueryInterface(ISpeechPhraseProperties* This,REFIID riid,void **ppvObject) {
17929     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17930 }
17931 static FORCEINLINE ULONG ISpeechPhraseProperties_AddRef(ISpeechPhraseProperties* This) {
17932     return This->lpVtbl->AddRef(This);
17933 }
17934 static FORCEINLINE ULONG ISpeechPhraseProperties_Release(ISpeechPhraseProperties* This) {
17935     return This->lpVtbl->Release(This);
17936 }
17937 /*** IDispatch methods ***/
17938 static FORCEINLINE HRESULT ISpeechPhraseProperties_GetTypeInfoCount(ISpeechPhraseProperties* This,UINT *pctinfo) {
17939     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17940 }
17941 static FORCEINLINE HRESULT ISpeechPhraseProperties_GetTypeInfo(ISpeechPhraseProperties* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17942     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17943 }
17944 static FORCEINLINE HRESULT ISpeechPhraseProperties_GetIDsOfNames(ISpeechPhraseProperties* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17945     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17946 }
17947 static FORCEINLINE HRESULT ISpeechPhraseProperties_Invoke(ISpeechPhraseProperties* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17948     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17949 }
17950 /*** ISpeechPhraseProperties methods ***/
17951 static FORCEINLINE HRESULT ISpeechPhraseProperties_get_Count(ISpeechPhraseProperties* This,LONG *Count) {
17952     return This->lpVtbl->get_Count(This,Count);
17953 }
17954 static FORCEINLINE HRESULT ISpeechPhraseProperties_Item(ISpeechPhraseProperties* This,LONG Index,ISpeechPhraseProperty **Property) {
17955     return This->lpVtbl->Item(This,Index,Property);
17956 }
17957 static FORCEINLINE HRESULT ISpeechPhraseProperties_get__NewEnum(ISpeechPhraseProperties* This,IUnknown **EnumVARIANT) {
17958     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
17959 }
17960 #endif
17961 #endif
17962 
17963 #endif
17964 
17965 
17966 #endif  /* __ISpeechPhraseProperties_INTERFACE_DEFINED__ */
17967 
17968 /*****************************************************************************
17969  * ISpeechPhraseRule interface
17970  */
17971 #ifndef __ISpeechPhraseRule_INTERFACE_DEFINED__
17972 #define __ISpeechPhraseRule_INTERFACE_DEFINED__
17973 
17974 DEFINE_GUID(IID_ISpeechPhraseRule, 0xa7bfe112, 0xa4a0, 0x48d9, 0xb6,0x02, 0xc3,0x13,0x84,0x3f,0x69,0x64);
17975 #if defined(__cplusplus) && !defined(CINTERFACE)
17976 MIDL_INTERFACE("a7bfe112-a4a0-48d9-b602-c313843f6964")
17977 ISpeechPhraseRule : public IDispatch
17978 {
17979     virtual HRESULT STDMETHODCALLTYPE get_Name(
17980         BSTR *Name) = 0;
17981 
17982     virtual HRESULT STDMETHODCALLTYPE get_Id(
17983         LONG *Id) = 0;
17984 
17985     virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
17986         LONG *FirstElement) = 0;
17987 
17988     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
17989         LONG *NumberOfElements) = 0;
17990 
17991     virtual HRESULT STDMETHODCALLTYPE get_Parent(
17992         ISpeechPhraseRule **Parent) = 0;
17993 
17994     virtual HRESULT STDMETHODCALLTYPE get_Children(
17995         ISpeechPhraseRules **Children) = 0;
17996 
17997     virtual HRESULT STDMETHODCALLTYPE get_Confidence(
17998         SpeechEngineConfidence *ActualConfidence) = 0;
17999 
18000     virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
18001         float *EngineConfidence) = 0;
18002 
18003 };
18004 #ifdef __CRT_UUID_DECL
18005 __CRT_UUID_DECL(ISpeechPhraseRule, 0xa7bfe112, 0xa4a0, 0x48d9, 0xb6,0x02, 0xc3,0x13,0x84,0x3f,0x69,0x64)
18006 #endif
18007 #else
18008 typedef struct ISpeechPhraseRuleVtbl {
18009     BEGIN_INTERFACE
18010 
18011     /*** IUnknown methods ***/
18012     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18013         ISpeechPhraseRule *This,
18014         REFIID riid,
18015         void **ppvObject);
18016 
18017     ULONG (STDMETHODCALLTYPE *AddRef)(
18018         ISpeechPhraseRule *This);
18019 
18020     ULONG (STDMETHODCALLTYPE *Release)(
18021         ISpeechPhraseRule *This);
18022 
18023     /*** IDispatch methods ***/
18024     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18025         ISpeechPhraseRule *This,
18026         UINT *pctinfo);
18027 
18028     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18029         ISpeechPhraseRule *This,
18030         UINT iTInfo,
18031         LCID lcid,
18032         ITypeInfo **ppTInfo);
18033 
18034     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18035         ISpeechPhraseRule *This,
18036         REFIID riid,
18037         LPOLESTR *rgszNames,
18038         UINT cNames,
18039         LCID lcid,
18040         DISPID *rgDispId);
18041 
18042     HRESULT (STDMETHODCALLTYPE *Invoke)(
18043         ISpeechPhraseRule *This,
18044         DISPID dispIdMember,
18045         REFIID riid,
18046         LCID lcid,
18047         WORD wFlags,
18048         DISPPARAMS *pDispParams,
18049         VARIANT *pVarResult,
18050         EXCEPINFO *pExcepInfo,
18051         UINT *puArgErr);
18052 
18053     /*** ISpeechPhraseRule methods ***/
18054     HRESULT (STDMETHODCALLTYPE *get_Name)(
18055         ISpeechPhraseRule *This,
18056         BSTR *Name);
18057 
18058     HRESULT (STDMETHODCALLTYPE *get_Id)(
18059         ISpeechPhraseRule *This,
18060         LONG *Id);
18061 
18062     HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
18063         ISpeechPhraseRule *This,
18064         LONG *FirstElement);
18065 
18066     HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
18067         ISpeechPhraseRule *This,
18068         LONG *NumberOfElements);
18069 
18070     HRESULT (STDMETHODCALLTYPE *get_Parent)(
18071         ISpeechPhraseRule *This,
18072         ISpeechPhraseRule **Parent);
18073 
18074     HRESULT (STDMETHODCALLTYPE *get_Children)(
18075         ISpeechPhraseRule *This,
18076         ISpeechPhraseRules **Children);
18077 
18078     HRESULT (STDMETHODCALLTYPE *get_Confidence)(
18079         ISpeechPhraseRule *This,
18080         SpeechEngineConfidence *ActualConfidence);
18081 
18082     HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
18083         ISpeechPhraseRule *This,
18084         float *EngineConfidence);
18085 
18086     END_INTERFACE
18087 } ISpeechPhraseRuleVtbl;
18088 
18089 interface ISpeechPhraseRule {
18090     CONST_VTBL ISpeechPhraseRuleVtbl* lpVtbl;
18091 };
18092 
18093 #ifdef COBJMACROS
18094 #ifndef WIDL_C_INLINE_WRAPPERS
18095 /*** IUnknown methods ***/
18096 #define ISpeechPhraseRule_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18097 #define ISpeechPhraseRule_AddRef(This) (This)->lpVtbl->AddRef(This)
18098 #define ISpeechPhraseRule_Release(This) (This)->lpVtbl->Release(This)
18099 /*** IDispatch methods ***/
18100 #define ISpeechPhraseRule_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18101 #define ISpeechPhraseRule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18102 #define ISpeechPhraseRule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18103 #define ISpeechPhraseRule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18104 /*** ISpeechPhraseRule methods ***/
18105 #define ISpeechPhraseRule_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
18106 #define ISpeechPhraseRule_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
18107 #define ISpeechPhraseRule_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
18108 #define ISpeechPhraseRule_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
18109 #define ISpeechPhraseRule_get_Parent(This,Parent) (This)->lpVtbl->get_Parent(This,Parent)
18110 #define ISpeechPhraseRule_get_Children(This,Children) (This)->lpVtbl->get_Children(This,Children)
18111 #define ISpeechPhraseRule_get_Confidence(This,ActualConfidence) (This)->lpVtbl->get_Confidence(This,ActualConfidence)
18112 #define ISpeechPhraseRule_get_EngineConfidence(This,EngineConfidence) (This)->lpVtbl->get_EngineConfidence(This,EngineConfidence)
18113 #else
18114 /*** IUnknown methods ***/
18115 static FORCEINLINE HRESULT ISpeechPhraseRule_QueryInterface(ISpeechPhraseRule* This,REFIID riid,void **ppvObject) {
18116     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18117 }
18118 static FORCEINLINE ULONG ISpeechPhraseRule_AddRef(ISpeechPhraseRule* This) {
18119     return This->lpVtbl->AddRef(This);
18120 }
18121 static FORCEINLINE ULONG ISpeechPhraseRule_Release(ISpeechPhraseRule* This) {
18122     return This->lpVtbl->Release(This);
18123 }
18124 /*** IDispatch methods ***/
18125 static FORCEINLINE HRESULT ISpeechPhraseRule_GetTypeInfoCount(ISpeechPhraseRule* This,UINT *pctinfo) {
18126     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18127 }
18128 static FORCEINLINE HRESULT ISpeechPhraseRule_GetTypeInfo(ISpeechPhraseRule* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18129     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18130 }
18131 static FORCEINLINE HRESULT ISpeechPhraseRule_GetIDsOfNames(ISpeechPhraseRule* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18132     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18133 }
18134 static FORCEINLINE HRESULT ISpeechPhraseRule_Invoke(ISpeechPhraseRule* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18135     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18136 }
18137 /*** ISpeechPhraseRule methods ***/
18138 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Name(ISpeechPhraseRule* This,BSTR *Name) {
18139     return This->lpVtbl->get_Name(This,Name);
18140 }
18141 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Id(ISpeechPhraseRule* This,LONG *Id) {
18142     return This->lpVtbl->get_Id(This,Id);
18143 }
18144 static FORCEINLINE HRESULT ISpeechPhraseRule_get_FirstElement(ISpeechPhraseRule* This,LONG *FirstElement) {
18145     return This->lpVtbl->get_FirstElement(This,FirstElement);
18146 }
18147 static FORCEINLINE HRESULT ISpeechPhraseRule_get_NumberOfElements(ISpeechPhraseRule* This,LONG *NumberOfElements) {
18148     return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
18149 }
18150 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Parent(ISpeechPhraseRule* This,ISpeechPhraseRule **Parent) {
18151     return This->lpVtbl->get_Parent(This,Parent);
18152 }
18153 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Children(ISpeechPhraseRule* This,ISpeechPhraseRules **Children) {
18154     return This->lpVtbl->get_Children(This,Children);
18155 }
18156 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Confidence(ISpeechPhraseRule* This,SpeechEngineConfidence *ActualConfidence) {
18157     return This->lpVtbl->get_Confidence(This,ActualConfidence);
18158 }
18159 static FORCEINLINE HRESULT ISpeechPhraseRule_get_EngineConfidence(ISpeechPhraseRule* This,float *EngineConfidence) {
18160     return This->lpVtbl->get_EngineConfidence(This,EngineConfidence);
18161 }
18162 #endif
18163 #endif
18164 
18165 #endif
18166 
18167 
18168 #endif  /* __ISpeechPhraseRule_INTERFACE_DEFINED__ */
18169 
18170 /*****************************************************************************
18171  * ISpeechPhraseRules interface
18172  */
18173 #ifndef __ISpeechPhraseRules_INTERFACE_DEFINED__
18174 #define __ISpeechPhraseRules_INTERFACE_DEFINED__
18175 
18176 DEFINE_GUID(IID_ISpeechPhraseRules, 0x9047d593, 0x01dd, 0x4b72, 0x81,0xa3, 0xe4,0xa0,0xca,0x69,0xf4,0x07);
18177 #if defined(__cplusplus) && !defined(CINTERFACE)
18178 MIDL_INTERFACE("9047d593-01dd-4b72-81a3-e4a0ca69f407")
18179 ISpeechPhraseRules : public IDispatch
18180 {
18181     virtual HRESULT STDMETHODCALLTYPE get_Count(
18182         LONG *Count) = 0;
18183 
18184     virtual HRESULT STDMETHODCALLTYPE Item(
18185         LONG Index,
18186         ISpeechPhraseRule **Rule) = 0;
18187 
18188     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
18189         IUnknown **EnumVARIANT) = 0;
18190 
18191 };
18192 #ifdef __CRT_UUID_DECL
18193 __CRT_UUID_DECL(ISpeechPhraseRules, 0x9047d593, 0x01dd, 0x4b72, 0x81,0xa3, 0xe4,0xa0,0xca,0x69,0xf4,0x07)
18194 #endif
18195 #else
18196 typedef struct ISpeechPhraseRulesVtbl {
18197     BEGIN_INTERFACE
18198 
18199     /*** IUnknown methods ***/
18200     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18201         ISpeechPhraseRules *This,
18202         REFIID riid,
18203         void **ppvObject);
18204 
18205     ULONG (STDMETHODCALLTYPE *AddRef)(
18206         ISpeechPhraseRules *This);
18207 
18208     ULONG (STDMETHODCALLTYPE *Release)(
18209         ISpeechPhraseRules *This);
18210 
18211     /*** IDispatch methods ***/
18212     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18213         ISpeechPhraseRules *This,
18214         UINT *pctinfo);
18215 
18216     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18217         ISpeechPhraseRules *This,
18218         UINT iTInfo,
18219         LCID lcid,
18220         ITypeInfo **ppTInfo);
18221 
18222     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18223         ISpeechPhraseRules *This,
18224         REFIID riid,
18225         LPOLESTR *rgszNames,
18226         UINT cNames,
18227         LCID lcid,
18228         DISPID *rgDispId);
18229 
18230     HRESULT (STDMETHODCALLTYPE *Invoke)(
18231         ISpeechPhraseRules *This,
18232         DISPID dispIdMember,
18233         REFIID riid,
18234         LCID lcid,
18235         WORD wFlags,
18236         DISPPARAMS *pDispParams,
18237         VARIANT *pVarResult,
18238         EXCEPINFO *pExcepInfo,
18239         UINT *puArgErr);
18240 
18241     /*** ISpeechPhraseRules methods ***/
18242     HRESULT (STDMETHODCALLTYPE *get_Count)(
18243         ISpeechPhraseRules *This,
18244         LONG *Count);
18245 
18246     HRESULT (STDMETHODCALLTYPE *Item)(
18247         ISpeechPhraseRules *This,
18248         LONG Index,
18249         ISpeechPhraseRule **Rule);
18250 
18251     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
18252         ISpeechPhraseRules *This,
18253         IUnknown **EnumVARIANT);
18254 
18255     END_INTERFACE
18256 } ISpeechPhraseRulesVtbl;
18257 
18258 interface ISpeechPhraseRules {
18259     CONST_VTBL ISpeechPhraseRulesVtbl* lpVtbl;
18260 };
18261 
18262 #ifdef COBJMACROS
18263 #ifndef WIDL_C_INLINE_WRAPPERS
18264 /*** IUnknown methods ***/
18265 #define ISpeechPhraseRules_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18266 #define ISpeechPhraseRules_AddRef(This) (This)->lpVtbl->AddRef(This)
18267 #define ISpeechPhraseRules_Release(This) (This)->lpVtbl->Release(This)
18268 /*** IDispatch methods ***/
18269 #define ISpeechPhraseRules_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18270 #define ISpeechPhraseRules_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18271 #define ISpeechPhraseRules_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18272 #define ISpeechPhraseRules_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18273 /*** ISpeechPhraseRules methods ***/
18274 #define ISpeechPhraseRules_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
18275 #define ISpeechPhraseRules_Item(This,Index,Rule) (This)->lpVtbl->Item(This,Index,Rule)
18276 #define ISpeechPhraseRules_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
18277 #else
18278 /*** IUnknown methods ***/
18279 static FORCEINLINE HRESULT ISpeechPhraseRules_QueryInterface(ISpeechPhraseRules* This,REFIID riid,void **ppvObject) {
18280     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18281 }
18282 static FORCEINLINE ULONG ISpeechPhraseRules_AddRef(ISpeechPhraseRules* This) {
18283     return This->lpVtbl->AddRef(This);
18284 }
18285 static FORCEINLINE ULONG ISpeechPhraseRules_Release(ISpeechPhraseRules* This) {
18286     return This->lpVtbl->Release(This);
18287 }
18288 /*** IDispatch methods ***/
18289 static FORCEINLINE HRESULT ISpeechPhraseRules_GetTypeInfoCount(ISpeechPhraseRules* This,UINT *pctinfo) {
18290     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18291 }
18292 static FORCEINLINE HRESULT ISpeechPhraseRules_GetTypeInfo(ISpeechPhraseRules* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18293     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18294 }
18295 static FORCEINLINE HRESULT ISpeechPhraseRules_GetIDsOfNames(ISpeechPhraseRules* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18296     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18297 }
18298 static FORCEINLINE HRESULT ISpeechPhraseRules_Invoke(ISpeechPhraseRules* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18299     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18300 }
18301 /*** ISpeechPhraseRules methods ***/
18302 static FORCEINLINE HRESULT ISpeechPhraseRules_get_Count(ISpeechPhraseRules* This,LONG *Count) {
18303     return This->lpVtbl->get_Count(This,Count);
18304 }
18305 static FORCEINLINE HRESULT ISpeechPhraseRules_Item(ISpeechPhraseRules* This,LONG Index,ISpeechPhraseRule **Rule) {
18306     return This->lpVtbl->Item(This,Index,Rule);
18307 }
18308 static FORCEINLINE HRESULT ISpeechPhraseRules_get__NewEnum(ISpeechPhraseRules* This,IUnknown **EnumVARIANT) {
18309     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
18310 }
18311 #endif
18312 #endif
18313 
18314 #endif
18315 
18316 
18317 #endif  /* __ISpeechPhraseRules_INTERFACE_DEFINED__ */
18318 
18319 /*****************************************************************************
18320  * ISpeechLexiconWords interface
18321  */
18322 #ifndef __ISpeechLexiconWords_INTERFACE_DEFINED__
18323 #define __ISpeechLexiconWords_INTERFACE_DEFINED__
18324 
18325 DEFINE_GUID(IID_ISpeechLexiconWords, 0x8d199862, 0x415e, 0x47d5, 0xac,0x4f, 0xfa,0xa6,0x08,0xb4,0x24,0xe6);
18326 #if defined(__cplusplus) && !defined(CINTERFACE)
18327 MIDL_INTERFACE("8d199862-415e-47d5-ac4f-faa608b424e6")
18328 ISpeechLexiconWords : public IDispatch
18329 {
18330     virtual HRESULT STDMETHODCALLTYPE get_Count(
18331         LONG *Count) = 0;
18332 
18333     virtual HRESULT STDMETHODCALLTYPE Item(
18334         LONG Index,
18335         ISpeechLexiconWord **Word) = 0;
18336 
18337     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
18338         IUnknown **EnumVARIANT) = 0;
18339 
18340 };
18341 #ifdef __CRT_UUID_DECL
18342 __CRT_UUID_DECL(ISpeechLexiconWords, 0x8d199862, 0x415e, 0x47d5, 0xac,0x4f, 0xfa,0xa6,0x08,0xb4,0x24,0xe6)
18343 #endif
18344 #else
18345 typedef struct ISpeechLexiconWordsVtbl {
18346     BEGIN_INTERFACE
18347 
18348     /*** IUnknown methods ***/
18349     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18350         ISpeechLexiconWords *This,
18351         REFIID riid,
18352         void **ppvObject);
18353 
18354     ULONG (STDMETHODCALLTYPE *AddRef)(
18355         ISpeechLexiconWords *This);
18356 
18357     ULONG (STDMETHODCALLTYPE *Release)(
18358         ISpeechLexiconWords *This);
18359 
18360     /*** IDispatch methods ***/
18361     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18362         ISpeechLexiconWords *This,
18363         UINT *pctinfo);
18364 
18365     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18366         ISpeechLexiconWords *This,
18367         UINT iTInfo,
18368         LCID lcid,
18369         ITypeInfo **ppTInfo);
18370 
18371     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18372         ISpeechLexiconWords *This,
18373         REFIID riid,
18374         LPOLESTR *rgszNames,
18375         UINT cNames,
18376         LCID lcid,
18377         DISPID *rgDispId);
18378 
18379     HRESULT (STDMETHODCALLTYPE *Invoke)(
18380         ISpeechLexiconWords *This,
18381         DISPID dispIdMember,
18382         REFIID riid,
18383         LCID lcid,
18384         WORD wFlags,
18385         DISPPARAMS *pDispParams,
18386         VARIANT *pVarResult,
18387         EXCEPINFO *pExcepInfo,
18388         UINT *puArgErr);
18389 
18390     /*** ISpeechLexiconWords methods ***/
18391     HRESULT (STDMETHODCALLTYPE *get_Count)(
18392         ISpeechLexiconWords *This,
18393         LONG *Count);
18394 
18395     HRESULT (STDMETHODCALLTYPE *Item)(
18396         ISpeechLexiconWords *This,
18397         LONG Index,
18398         ISpeechLexiconWord **Word);
18399 
18400     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
18401         ISpeechLexiconWords *This,
18402         IUnknown **EnumVARIANT);
18403 
18404     END_INTERFACE
18405 } ISpeechLexiconWordsVtbl;
18406 
18407 interface ISpeechLexiconWords {
18408     CONST_VTBL ISpeechLexiconWordsVtbl* lpVtbl;
18409 };
18410 
18411 #ifdef COBJMACROS
18412 #ifndef WIDL_C_INLINE_WRAPPERS
18413 /*** IUnknown methods ***/
18414 #define ISpeechLexiconWords_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18415 #define ISpeechLexiconWords_AddRef(This) (This)->lpVtbl->AddRef(This)
18416 #define ISpeechLexiconWords_Release(This) (This)->lpVtbl->Release(This)
18417 /*** IDispatch methods ***/
18418 #define ISpeechLexiconWords_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18419 #define ISpeechLexiconWords_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18420 #define ISpeechLexiconWords_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18421 #define ISpeechLexiconWords_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18422 /*** ISpeechLexiconWords methods ***/
18423 #define ISpeechLexiconWords_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
18424 #define ISpeechLexiconWords_Item(This,Index,Word) (This)->lpVtbl->Item(This,Index,Word)
18425 #define ISpeechLexiconWords_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
18426 #else
18427 /*** IUnknown methods ***/
18428 static FORCEINLINE HRESULT ISpeechLexiconWords_QueryInterface(ISpeechLexiconWords* This,REFIID riid,void **ppvObject) {
18429     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18430 }
18431 static FORCEINLINE ULONG ISpeechLexiconWords_AddRef(ISpeechLexiconWords* This) {
18432     return This->lpVtbl->AddRef(This);
18433 }
18434 static FORCEINLINE ULONG ISpeechLexiconWords_Release(ISpeechLexiconWords* This) {
18435     return This->lpVtbl->Release(This);
18436 }
18437 /*** IDispatch methods ***/
18438 static FORCEINLINE HRESULT ISpeechLexiconWords_GetTypeInfoCount(ISpeechLexiconWords* This,UINT *pctinfo) {
18439     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18440 }
18441 static FORCEINLINE HRESULT ISpeechLexiconWords_GetTypeInfo(ISpeechLexiconWords* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18442     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18443 }
18444 static FORCEINLINE HRESULT ISpeechLexiconWords_GetIDsOfNames(ISpeechLexiconWords* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18445     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18446 }
18447 static FORCEINLINE HRESULT ISpeechLexiconWords_Invoke(ISpeechLexiconWords* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18448     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18449 }
18450 /*** ISpeechLexiconWords methods ***/
18451 static FORCEINLINE HRESULT ISpeechLexiconWords_get_Count(ISpeechLexiconWords* This,LONG *Count) {
18452     return This->lpVtbl->get_Count(This,Count);
18453 }
18454 static FORCEINLINE HRESULT ISpeechLexiconWords_Item(ISpeechLexiconWords* This,LONG Index,ISpeechLexiconWord **Word) {
18455     return This->lpVtbl->Item(This,Index,Word);
18456 }
18457 static FORCEINLINE HRESULT ISpeechLexiconWords_get__NewEnum(ISpeechLexiconWords* This,IUnknown **EnumVARIANT) {
18458     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
18459 }
18460 #endif
18461 #endif
18462 
18463 #endif
18464 
18465 
18466 #endif  /* __ISpeechLexiconWords_INTERFACE_DEFINED__ */
18467 
18468 /*****************************************************************************
18469  * ISpeechLexicon interface
18470  */
18471 #ifndef __ISpeechLexicon_INTERFACE_DEFINED__
18472 #define __ISpeechLexicon_INTERFACE_DEFINED__
18473 
18474 DEFINE_GUID(IID_ISpeechLexicon, 0x3da7627a, 0xc7ae, 0x4b23, 0x87,0x08, 0x63,0x8c,0x50,0x36,0x2c,0x25);
18475 #if defined(__cplusplus) && !defined(CINTERFACE)
18476 MIDL_INTERFACE("3da7627a-c7ae-4b23-8708-638c50362c25")
18477 ISpeechLexicon : public IDispatch
18478 {
18479     virtual HRESULT STDMETHODCALLTYPE get_GenerationId(
18480         LONG *GenerationId) = 0;
18481 
18482     virtual HRESULT STDMETHODCALLTYPE GetWords(
18483         SpeechLexiconType Flags,
18484         LONG *GenerationID,
18485         ISpeechLexiconWords **Words) = 0;
18486 
18487     virtual HRESULT STDMETHODCALLTYPE AddPronunciation(
18488         BSTR bstrWord,
18489         SpeechLanguageId LangId,
18490         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
18491         BSTR bstrPronunciation = L"") = 0;
18492 
18493     virtual HRESULT STDMETHODCALLTYPE AddPronunciationByPhoneIds(
18494         BSTR bstrWord,
18495         SpeechLanguageId LangId,
18496         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
18497         VARIANT *PhoneIds = 0) = 0;
18498 
18499     virtual HRESULT STDMETHODCALLTYPE RemovePronunciation(
18500         BSTR bstrWord,
18501         SpeechLanguageId LangId,
18502         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
18503         BSTR bstrPronunciation = L"") = 0;
18504 
18505     virtual HRESULT STDMETHODCALLTYPE RemovePronunciationByPhoneIds(
18506         BSTR bstrWord,
18507         SpeechLanguageId LangId,
18508         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
18509         VARIANT *PhoneIds = 0) = 0;
18510 
18511     virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
18512         BSTR bstrWord,
18513         SpeechLanguageId LangId,
18514         SpeechLexiconType TypeFlags,
18515         ISpeechLexiconPronunciations **ppPronunciations) = 0;
18516 
18517     virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
18518         LONG *GenerationID,
18519         ISpeechLexiconWords **ppWords) = 0;
18520 
18521 };
18522 #ifdef __CRT_UUID_DECL
18523 __CRT_UUID_DECL(ISpeechLexicon, 0x3da7627a, 0xc7ae, 0x4b23, 0x87,0x08, 0x63,0x8c,0x50,0x36,0x2c,0x25)
18524 #endif
18525 #else
18526 typedef struct ISpeechLexiconVtbl {
18527     BEGIN_INTERFACE
18528 
18529     /*** IUnknown methods ***/
18530     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18531         ISpeechLexicon *This,
18532         REFIID riid,
18533         void **ppvObject);
18534 
18535     ULONG (STDMETHODCALLTYPE *AddRef)(
18536         ISpeechLexicon *This);
18537 
18538     ULONG (STDMETHODCALLTYPE *Release)(
18539         ISpeechLexicon *This);
18540 
18541     /*** IDispatch methods ***/
18542     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18543         ISpeechLexicon *This,
18544         UINT *pctinfo);
18545 
18546     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18547         ISpeechLexicon *This,
18548         UINT iTInfo,
18549         LCID lcid,
18550         ITypeInfo **ppTInfo);
18551 
18552     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18553         ISpeechLexicon *This,
18554         REFIID riid,
18555         LPOLESTR *rgszNames,
18556         UINT cNames,
18557         LCID lcid,
18558         DISPID *rgDispId);
18559 
18560     HRESULT (STDMETHODCALLTYPE *Invoke)(
18561         ISpeechLexicon *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     /*** ISpeechLexicon methods ***/
18572     HRESULT (STDMETHODCALLTYPE *get_GenerationId)(
18573         ISpeechLexicon *This,
18574         LONG *GenerationId);
18575 
18576     HRESULT (STDMETHODCALLTYPE *GetWords)(
18577         ISpeechLexicon *This,
18578         SpeechLexiconType Flags,
18579         LONG *GenerationID,
18580         ISpeechLexiconWords **Words);
18581 
18582     HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
18583         ISpeechLexicon *This,
18584         BSTR bstrWord,
18585         SpeechLanguageId LangId,
18586         SpeechPartOfSpeech PartOfSpeech,
18587         BSTR bstrPronunciation);
18588 
18589     HRESULT (STDMETHODCALLTYPE *AddPronunciationByPhoneIds)(
18590         ISpeechLexicon *This,
18591         BSTR bstrWord,
18592         SpeechLanguageId LangId,
18593         SpeechPartOfSpeech PartOfSpeech,
18594         VARIANT *PhoneIds);
18595 
18596     HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
18597         ISpeechLexicon *This,
18598         BSTR bstrWord,
18599         SpeechLanguageId LangId,
18600         SpeechPartOfSpeech PartOfSpeech,
18601         BSTR bstrPronunciation);
18602 
18603     HRESULT (STDMETHODCALLTYPE *RemovePronunciationByPhoneIds)(
18604         ISpeechLexicon *This,
18605         BSTR bstrWord,
18606         SpeechLanguageId LangId,
18607         SpeechPartOfSpeech PartOfSpeech,
18608         VARIANT *PhoneIds);
18609 
18610     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
18611         ISpeechLexicon *This,
18612         BSTR bstrWord,
18613         SpeechLanguageId LangId,
18614         SpeechLexiconType TypeFlags,
18615         ISpeechLexiconPronunciations **ppPronunciations);
18616 
18617     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
18618         ISpeechLexicon *This,
18619         LONG *GenerationID,
18620         ISpeechLexiconWords **ppWords);
18621 
18622     END_INTERFACE
18623 } ISpeechLexiconVtbl;
18624 
18625 interface ISpeechLexicon {
18626     CONST_VTBL ISpeechLexiconVtbl* lpVtbl;
18627 };
18628 
18629 #ifdef COBJMACROS
18630 #ifndef WIDL_C_INLINE_WRAPPERS
18631 /*** IUnknown methods ***/
18632 #define ISpeechLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18633 #define ISpeechLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
18634 #define ISpeechLexicon_Release(This) (This)->lpVtbl->Release(This)
18635 /*** IDispatch methods ***/
18636 #define ISpeechLexicon_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18637 #define ISpeechLexicon_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18638 #define ISpeechLexicon_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18639 #define ISpeechLexicon_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18640 /*** ISpeechLexicon methods ***/
18641 #define ISpeechLexicon_get_GenerationId(This,GenerationId) (This)->lpVtbl->get_GenerationId(This,GenerationId)
18642 #define ISpeechLexicon_GetWords(This,Flags,GenerationID,Words) (This)->lpVtbl->GetWords(This,Flags,GenerationID,Words)
18643 #define ISpeechLexicon_AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation) (This)->lpVtbl->AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation)
18644 #define ISpeechLexicon_AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds) (This)->lpVtbl->AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds)
18645 #define ISpeechLexicon_RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation) (This)->lpVtbl->RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation)
18646 #define ISpeechLexicon_RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds) (This)->lpVtbl->RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds)
18647 #define ISpeechLexicon_GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations) (This)->lpVtbl->GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations)
18648 #define ISpeechLexicon_GetGenerationChange(This,GenerationID,ppWords) (This)->lpVtbl->GetGenerationChange(This,GenerationID,ppWords)
18649 #else
18650 /*** IUnknown methods ***/
18651 static FORCEINLINE HRESULT ISpeechLexicon_QueryInterface(ISpeechLexicon* This,REFIID riid,void **ppvObject) {
18652     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18653 }
18654 static FORCEINLINE ULONG ISpeechLexicon_AddRef(ISpeechLexicon* This) {
18655     return This->lpVtbl->AddRef(This);
18656 }
18657 static FORCEINLINE ULONG ISpeechLexicon_Release(ISpeechLexicon* This) {
18658     return This->lpVtbl->Release(This);
18659 }
18660 /*** IDispatch methods ***/
18661 static FORCEINLINE HRESULT ISpeechLexicon_GetTypeInfoCount(ISpeechLexicon* This,UINT *pctinfo) {
18662     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18663 }
18664 static FORCEINLINE HRESULT ISpeechLexicon_GetTypeInfo(ISpeechLexicon* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18665     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18666 }
18667 static FORCEINLINE HRESULT ISpeechLexicon_GetIDsOfNames(ISpeechLexicon* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18668     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18669 }
18670 static FORCEINLINE HRESULT ISpeechLexicon_Invoke(ISpeechLexicon* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18671     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18672 }
18673 /*** ISpeechLexicon methods ***/
18674 static FORCEINLINE HRESULT ISpeechLexicon_get_GenerationId(ISpeechLexicon* This,LONG *GenerationId) {
18675     return This->lpVtbl->get_GenerationId(This,GenerationId);
18676 }
18677 static FORCEINLINE HRESULT ISpeechLexicon_GetWords(ISpeechLexicon* This,SpeechLexiconType Flags,LONG *GenerationID,ISpeechLexiconWords **Words) {
18678     return This->lpVtbl->GetWords(This,Flags,GenerationID,Words);
18679 }
18680 static FORCEINLINE HRESULT ISpeechLexicon_AddPronunciation(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,BSTR bstrPronunciation) {
18681     return This->lpVtbl->AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation);
18682 }
18683 static FORCEINLINE HRESULT ISpeechLexicon_AddPronunciationByPhoneIds(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,VARIANT *PhoneIds) {
18684     return This->lpVtbl->AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds);
18685 }
18686 static FORCEINLINE HRESULT ISpeechLexicon_RemovePronunciation(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,BSTR bstrPronunciation) {
18687     return This->lpVtbl->RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation);
18688 }
18689 static FORCEINLINE HRESULT ISpeechLexicon_RemovePronunciationByPhoneIds(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,VARIANT *PhoneIds) {
18690     return This->lpVtbl->RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds);
18691 }
18692 static FORCEINLINE HRESULT ISpeechLexicon_GetPronunciations(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechLexiconType TypeFlags,ISpeechLexiconPronunciations **ppPronunciations) {
18693     return This->lpVtbl->GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations);
18694 }
18695 static FORCEINLINE HRESULT ISpeechLexicon_GetGenerationChange(ISpeechLexicon* This,LONG *GenerationID,ISpeechLexiconWords **ppWords) {
18696     return This->lpVtbl->GetGenerationChange(This,GenerationID,ppWords);
18697 }
18698 #endif
18699 #endif
18700 
18701 #endif
18702 
18703 
18704 #endif  /* __ISpeechLexicon_INTERFACE_DEFINED__ */
18705 
18706 /*****************************************************************************
18707  * ISpeechLexiconWord interface
18708  */
18709 #ifndef __ISpeechLexiconWord_INTERFACE_DEFINED__
18710 #define __ISpeechLexiconWord_INTERFACE_DEFINED__
18711 
18712 DEFINE_GUID(IID_ISpeechLexiconWord, 0x4e5b933c, 0xc9be, 0x48ed, 0x88,0x42, 0x1e,0xe5,0x1b,0xb1,0xd4,0xff);
18713 #if defined(__cplusplus) && !defined(CINTERFACE)
18714 MIDL_INTERFACE("4e5b933c-c9be-48ed-8842-1ee51bb1d4ff")
18715 ISpeechLexiconWord : public IDispatch
18716 {
18717     virtual HRESULT STDMETHODCALLTYPE get_LangId(
18718         SpeechLanguageId *LangId) = 0;
18719 
18720     virtual HRESULT STDMETHODCALLTYPE get_Type(
18721         SpeechWordType *WordType) = 0;
18722 
18723     virtual HRESULT STDMETHODCALLTYPE get_Word(
18724         BSTR *Word) = 0;
18725 
18726     virtual HRESULT STDMETHODCALLTYPE get_Pronunciations(
18727         ISpeechLexiconPronunciations **Pronunciations) = 0;
18728 
18729 };
18730 #ifdef __CRT_UUID_DECL
18731 __CRT_UUID_DECL(ISpeechLexiconWord, 0x4e5b933c, 0xc9be, 0x48ed, 0x88,0x42, 0x1e,0xe5,0x1b,0xb1,0xd4,0xff)
18732 #endif
18733 #else
18734 typedef struct ISpeechLexiconWordVtbl {
18735     BEGIN_INTERFACE
18736 
18737     /*** IUnknown methods ***/
18738     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18739         ISpeechLexiconWord *This,
18740         REFIID riid,
18741         void **ppvObject);
18742 
18743     ULONG (STDMETHODCALLTYPE *AddRef)(
18744         ISpeechLexiconWord *This);
18745 
18746     ULONG (STDMETHODCALLTYPE *Release)(
18747         ISpeechLexiconWord *This);
18748 
18749     /*** IDispatch methods ***/
18750     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18751         ISpeechLexiconWord *This,
18752         UINT *pctinfo);
18753 
18754     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18755         ISpeechLexiconWord *This,
18756         UINT iTInfo,
18757         LCID lcid,
18758         ITypeInfo **ppTInfo);
18759 
18760     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18761         ISpeechLexiconWord *This,
18762         REFIID riid,
18763         LPOLESTR *rgszNames,
18764         UINT cNames,
18765         LCID lcid,
18766         DISPID *rgDispId);
18767 
18768     HRESULT (STDMETHODCALLTYPE *Invoke)(
18769         ISpeechLexiconWord *This,
18770         DISPID dispIdMember,
18771         REFIID riid,
18772         LCID lcid,
18773         WORD wFlags,
18774         DISPPARAMS *pDispParams,
18775         VARIANT *pVarResult,
18776         EXCEPINFO *pExcepInfo,
18777         UINT *puArgErr);
18778 
18779     /*** ISpeechLexiconWord methods ***/
18780     HRESULT (STDMETHODCALLTYPE *get_LangId)(
18781         ISpeechLexiconWord *This,
18782         SpeechLanguageId *LangId);
18783 
18784     HRESULT (STDMETHODCALLTYPE *get_Type)(
18785         ISpeechLexiconWord *This,
18786         SpeechWordType *WordType);
18787 
18788     HRESULT (STDMETHODCALLTYPE *get_Word)(
18789         ISpeechLexiconWord *This,
18790         BSTR *Word);
18791 
18792     HRESULT (STDMETHODCALLTYPE *get_Pronunciations)(
18793         ISpeechLexiconWord *This,
18794         ISpeechLexiconPronunciations **Pronunciations);
18795 
18796     END_INTERFACE
18797 } ISpeechLexiconWordVtbl;
18798 
18799 interface ISpeechLexiconWord {
18800     CONST_VTBL ISpeechLexiconWordVtbl* lpVtbl;
18801 };
18802 
18803 #ifdef COBJMACROS
18804 #ifndef WIDL_C_INLINE_WRAPPERS
18805 /*** IUnknown methods ***/
18806 #define ISpeechLexiconWord_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18807 #define ISpeechLexiconWord_AddRef(This) (This)->lpVtbl->AddRef(This)
18808 #define ISpeechLexiconWord_Release(This) (This)->lpVtbl->Release(This)
18809 /*** IDispatch methods ***/
18810 #define ISpeechLexiconWord_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18811 #define ISpeechLexiconWord_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18812 #define ISpeechLexiconWord_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18813 #define ISpeechLexiconWord_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18814 /*** ISpeechLexiconWord methods ***/
18815 #define ISpeechLexiconWord_get_LangId(This,LangId) (This)->lpVtbl->get_LangId(This,LangId)
18816 #define ISpeechLexiconWord_get_Type(This,WordType) (This)->lpVtbl->get_Type(This,WordType)
18817 #define ISpeechLexiconWord_get_Word(This,Word) (This)->lpVtbl->get_Word(This,Word)
18818 #define ISpeechLexiconWord_get_Pronunciations(This,Pronunciations) (This)->lpVtbl->get_Pronunciations(This,Pronunciations)
18819 #else
18820 /*** IUnknown methods ***/
18821 static FORCEINLINE HRESULT ISpeechLexiconWord_QueryInterface(ISpeechLexiconWord* This,REFIID riid,void **ppvObject) {
18822     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18823 }
18824 static FORCEINLINE ULONG ISpeechLexiconWord_AddRef(ISpeechLexiconWord* This) {
18825     return This->lpVtbl->AddRef(This);
18826 }
18827 static FORCEINLINE ULONG ISpeechLexiconWord_Release(ISpeechLexiconWord* This) {
18828     return This->lpVtbl->Release(This);
18829 }
18830 /*** IDispatch methods ***/
18831 static FORCEINLINE HRESULT ISpeechLexiconWord_GetTypeInfoCount(ISpeechLexiconWord* This,UINT *pctinfo) {
18832     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18833 }
18834 static FORCEINLINE HRESULT ISpeechLexiconWord_GetTypeInfo(ISpeechLexiconWord* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18835     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18836 }
18837 static FORCEINLINE HRESULT ISpeechLexiconWord_GetIDsOfNames(ISpeechLexiconWord* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18838     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18839 }
18840 static FORCEINLINE HRESULT ISpeechLexiconWord_Invoke(ISpeechLexiconWord* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18841     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18842 }
18843 /*** ISpeechLexiconWord methods ***/
18844 static FORCEINLINE HRESULT ISpeechLexiconWord_get_LangId(ISpeechLexiconWord* This,SpeechLanguageId *LangId) {
18845     return This->lpVtbl->get_LangId(This,LangId);
18846 }
18847 static FORCEINLINE HRESULT ISpeechLexiconWord_get_Type(ISpeechLexiconWord* This,SpeechWordType *WordType) {
18848     return This->lpVtbl->get_Type(This,WordType);
18849 }
18850 static FORCEINLINE HRESULT ISpeechLexiconWord_get_Word(ISpeechLexiconWord* This,BSTR *Word) {
18851     return This->lpVtbl->get_Word(This,Word);
18852 }
18853 static FORCEINLINE HRESULT ISpeechLexiconWord_get_Pronunciations(ISpeechLexiconWord* This,ISpeechLexiconPronunciations **Pronunciations) {
18854     return This->lpVtbl->get_Pronunciations(This,Pronunciations);
18855 }
18856 #endif
18857 #endif
18858 
18859 #endif
18860 
18861 
18862 #endif  /* __ISpeechLexiconWord_INTERFACE_DEFINED__ */
18863 
18864 /*****************************************************************************
18865  * ISpeechLexiconPronunciations interface
18866  */
18867 #ifndef __ISpeechLexiconPronunciations_INTERFACE_DEFINED__
18868 #define __ISpeechLexiconPronunciations_INTERFACE_DEFINED__
18869 
18870 DEFINE_GUID(IID_ISpeechLexiconPronunciations, 0x72829128, 0x5682, 0x4704, 0xa0,0xd4, 0x3e,0x2b,0xb6,0xf2,0xea,0xd3);
18871 #if defined(__cplusplus) && !defined(CINTERFACE)
18872 MIDL_INTERFACE("72829128-5682-4704-a0d4-3e2bb6f2ead3")
18873 ISpeechLexiconPronunciations : public IDispatch
18874 {
18875     virtual HRESULT STDMETHODCALLTYPE get_Count(
18876         LONG *Count) = 0;
18877 
18878     virtual HRESULT STDMETHODCALLTYPE Item(
18879         LONG Index,
18880         ISpeechLexiconPronunciation **Pronunciation) = 0;
18881 
18882     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
18883         IUnknown **EnumVARIANT) = 0;
18884 
18885 };
18886 #ifdef __CRT_UUID_DECL
18887 __CRT_UUID_DECL(ISpeechLexiconPronunciations, 0x72829128, 0x5682, 0x4704, 0xa0,0xd4, 0x3e,0x2b,0xb6,0xf2,0xea,0xd3)
18888 #endif
18889 #else
18890 typedef struct ISpeechLexiconPronunciationsVtbl {
18891     BEGIN_INTERFACE
18892 
18893     /*** IUnknown methods ***/
18894     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18895         ISpeechLexiconPronunciations *This,
18896         REFIID riid,
18897         void **ppvObject);
18898 
18899     ULONG (STDMETHODCALLTYPE *AddRef)(
18900         ISpeechLexiconPronunciations *This);
18901 
18902     ULONG (STDMETHODCALLTYPE *Release)(
18903         ISpeechLexiconPronunciations *This);
18904 
18905     /*** IDispatch methods ***/
18906     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18907         ISpeechLexiconPronunciations *This,
18908         UINT *pctinfo);
18909 
18910     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18911         ISpeechLexiconPronunciations *This,
18912         UINT iTInfo,
18913         LCID lcid,
18914         ITypeInfo **ppTInfo);
18915 
18916     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18917         ISpeechLexiconPronunciations *This,
18918         REFIID riid,
18919         LPOLESTR *rgszNames,
18920         UINT cNames,
18921         LCID lcid,
18922         DISPID *rgDispId);
18923 
18924     HRESULT (STDMETHODCALLTYPE *Invoke)(
18925         ISpeechLexiconPronunciations *This,
18926         DISPID dispIdMember,
18927         REFIID riid,
18928         LCID lcid,
18929         WORD wFlags,
18930         DISPPARAMS *pDispParams,
18931         VARIANT *pVarResult,
18932         EXCEPINFO *pExcepInfo,
18933         UINT *puArgErr);
18934 
18935     /*** ISpeechLexiconPronunciations methods ***/
18936     HRESULT (STDMETHODCALLTYPE *get_Count)(
18937         ISpeechLexiconPronunciations *This,
18938         LONG *Count);
18939 
18940     HRESULT (STDMETHODCALLTYPE *Item)(
18941         ISpeechLexiconPronunciations *This,
18942         LONG Index,
18943         ISpeechLexiconPronunciation **Pronunciation);
18944 
18945     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
18946         ISpeechLexiconPronunciations *This,
18947         IUnknown **EnumVARIANT);
18948 
18949     END_INTERFACE
18950 } ISpeechLexiconPronunciationsVtbl;
18951 
18952 interface ISpeechLexiconPronunciations {
18953     CONST_VTBL ISpeechLexiconPronunciationsVtbl* lpVtbl;
18954 };
18955 
18956 #ifdef COBJMACROS
18957 #ifndef WIDL_C_INLINE_WRAPPERS
18958 /*** IUnknown methods ***/
18959 #define ISpeechLexiconPronunciations_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18960 #define ISpeechLexiconPronunciations_AddRef(This) (This)->lpVtbl->AddRef(This)
18961 #define ISpeechLexiconPronunciations_Release(This) (This)->lpVtbl->Release(This)
18962 /*** IDispatch methods ***/
18963 #define ISpeechLexiconPronunciations_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18964 #define ISpeechLexiconPronunciations_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18965 #define ISpeechLexiconPronunciations_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18966 #define ISpeechLexiconPronunciations_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18967 /*** ISpeechLexiconPronunciations methods ***/
18968 #define ISpeechLexiconPronunciations_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
18969 #define ISpeechLexiconPronunciations_Item(This,Index,Pronunciation) (This)->lpVtbl->Item(This,Index,Pronunciation)
18970 #define ISpeechLexiconPronunciations_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
18971 #else
18972 /*** IUnknown methods ***/
18973 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_QueryInterface(ISpeechLexiconPronunciations* This,REFIID riid,void **ppvObject) {
18974     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18975 }
18976 static FORCEINLINE ULONG ISpeechLexiconPronunciations_AddRef(ISpeechLexiconPronunciations* This) {
18977     return This->lpVtbl->AddRef(This);
18978 }
18979 static FORCEINLINE ULONG ISpeechLexiconPronunciations_Release(ISpeechLexiconPronunciations* This) {
18980     return This->lpVtbl->Release(This);
18981 }
18982 /*** IDispatch methods ***/
18983 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_GetTypeInfoCount(ISpeechLexiconPronunciations* This,UINT *pctinfo) {
18984     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18985 }
18986 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_GetTypeInfo(ISpeechLexiconPronunciations* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18987     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18988 }
18989 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_GetIDsOfNames(ISpeechLexiconPronunciations* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18990     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18991 }
18992 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_Invoke(ISpeechLexiconPronunciations* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18993     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18994 }
18995 /*** ISpeechLexiconPronunciations methods ***/
18996 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_get_Count(ISpeechLexiconPronunciations* This,LONG *Count) {
18997     return This->lpVtbl->get_Count(This,Count);
18998 }
18999 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_Item(ISpeechLexiconPronunciations* This,LONG Index,ISpeechLexiconPronunciation **Pronunciation) {
19000     return This->lpVtbl->Item(This,Index,Pronunciation);
19001 }
19002 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_get__NewEnum(ISpeechLexiconPronunciations* This,IUnknown **EnumVARIANT) {
19003     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
19004 }
19005 #endif
19006 #endif
19007 
19008 #endif
19009 
19010 
19011 #endif  /* __ISpeechLexiconPronunciations_INTERFACE_DEFINED__ */
19012 
19013 /*****************************************************************************
19014  * ISpeechLexiconPronunciation interface
19015  */
19016 #ifndef __ISpeechLexiconPronunciation_INTERFACE_DEFINED__
19017 #define __ISpeechLexiconPronunciation_INTERFACE_DEFINED__
19018 
19019 DEFINE_GUID(IID_ISpeechLexiconPronunciation, 0x95252c5d, 0x9e43, 0x4f4a, 0x98,0x99, 0x48,0xee,0x73,0x35,0x2f,0x9f);
19020 #if defined(__cplusplus) && !defined(CINTERFACE)
19021 MIDL_INTERFACE("95252c5d-9e43-4f4a-9899-48ee73352f9f")
19022 ISpeechLexiconPronunciation : public IDispatch
19023 {
19024     virtual HRESULT STDMETHODCALLTYPE get_Type(
19025         SpeechLexiconType *LexiconType) = 0;
19026 
19027     virtual HRESULT STDMETHODCALLTYPE get_LangId(
19028         SpeechLanguageId *LangId) = 0;
19029 
19030     virtual HRESULT STDMETHODCALLTYPE get_PartOfSpeech(
19031         SpeechPartOfSpeech *PartOfSpeech) = 0;
19032 
19033     virtual HRESULT STDMETHODCALLTYPE get_PhoneIds(
19034         VARIANT *PhoneIds) = 0;
19035 
19036     virtual HRESULT STDMETHODCALLTYPE get_Symbolic(
19037         BSTR *Symbolic) = 0;
19038 
19039 };
19040 #ifdef __CRT_UUID_DECL
19041 __CRT_UUID_DECL(ISpeechLexiconPronunciation, 0x95252c5d, 0x9e43, 0x4f4a, 0x98,0x99, 0x48,0xee,0x73,0x35,0x2f,0x9f)
19042 #endif
19043 #else
19044 typedef struct ISpeechLexiconPronunciationVtbl {
19045     BEGIN_INTERFACE
19046 
19047     /*** IUnknown methods ***/
19048     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19049         ISpeechLexiconPronunciation *This,
19050         REFIID riid,
19051         void **ppvObject);
19052 
19053     ULONG (STDMETHODCALLTYPE *AddRef)(
19054         ISpeechLexiconPronunciation *This);
19055 
19056     ULONG (STDMETHODCALLTYPE *Release)(
19057         ISpeechLexiconPronunciation *This);
19058 
19059     /*** IDispatch methods ***/
19060     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19061         ISpeechLexiconPronunciation *This,
19062         UINT *pctinfo);
19063 
19064     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19065         ISpeechLexiconPronunciation *This,
19066         UINT iTInfo,
19067         LCID lcid,
19068         ITypeInfo **ppTInfo);
19069 
19070     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19071         ISpeechLexiconPronunciation *This,
19072         REFIID riid,
19073         LPOLESTR *rgszNames,
19074         UINT cNames,
19075         LCID lcid,
19076         DISPID *rgDispId);
19077 
19078     HRESULT (STDMETHODCALLTYPE *Invoke)(
19079         ISpeechLexiconPronunciation *This,
19080         DISPID dispIdMember,
19081         REFIID riid,
19082         LCID lcid,
19083         WORD wFlags,
19084         DISPPARAMS *pDispParams,
19085         VARIANT *pVarResult,
19086         EXCEPINFO *pExcepInfo,
19087         UINT *puArgErr);
19088 
19089     /*** ISpeechLexiconPronunciation methods ***/
19090     HRESULT (STDMETHODCALLTYPE *get_Type)(
19091         ISpeechLexiconPronunciation *This,
19092         SpeechLexiconType *LexiconType);
19093 
19094     HRESULT (STDMETHODCALLTYPE *get_LangId)(
19095         ISpeechLexiconPronunciation *This,
19096         SpeechLanguageId *LangId);
19097 
19098     HRESULT (STDMETHODCALLTYPE *get_PartOfSpeech)(
19099         ISpeechLexiconPronunciation *This,
19100         SpeechPartOfSpeech *PartOfSpeech);
19101 
19102     HRESULT (STDMETHODCALLTYPE *get_PhoneIds)(
19103         ISpeechLexiconPronunciation *This,
19104         VARIANT *PhoneIds);
19105 
19106     HRESULT (STDMETHODCALLTYPE *get_Symbolic)(
19107         ISpeechLexiconPronunciation *This,
19108         BSTR *Symbolic);
19109 
19110     END_INTERFACE
19111 } ISpeechLexiconPronunciationVtbl;
19112 
19113 interface ISpeechLexiconPronunciation {
19114     CONST_VTBL ISpeechLexiconPronunciationVtbl* lpVtbl;
19115 };
19116 
19117 #ifdef COBJMACROS
19118 #ifndef WIDL_C_INLINE_WRAPPERS
19119 /*** IUnknown methods ***/
19120 #define ISpeechLexiconPronunciation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19121 #define ISpeechLexiconPronunciation_AddRef(This) (This)->lpVtbl->AddRef(This)
19122 #define ISpeechLexiconPronunciation_Release(This) (This)->lpVtbl->Release(This)
19123 /*** IDispatch methods ***/
19124 #define ISpeechLexiconPronunciation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19125 #define ISpeechLexiconPronunciation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19126 #define ISpeechLexiconPronunciation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19127 #define ISpeechLexiconPronunciation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19128 /*** ISpeechLexiconPronunciation methods ***/
19129 #define ISpeechLexiconPronunciation_get_Type(This,LexiconType) (This)->lpVtbl->get_Type(This,LexiconType)
19130 #define ISpeechLexiconPronunciation_get_LangId(This,LangId) (This)->lpVtbl->get_LangId(This,LangId)
19131 #define ISpeechLexiconPronunciation_get_PartOfSpeech(This,PartOfSpeech) (This)->lpVtbl->get_PartOfSpeech(This,PartOfSpeech)
19132 #define ISpeechLexiconPronunciation_get_PhoneIds(This,PhoneIds) (This)->lpVtbl->get_PhoneIds(This,PhoneIds)
19133 #define ISpeechLexiconPronunciation_get_Symbolic(This,Symbolic) (This)->lpVtbl->get_Symbolic(This,Symbolic)
19134 #else
19135 /*** IUnknown methods ***/
19136 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_QueryInterface(ISpeechLexiconPronunciation* This,REFIID riid,void **ppvObject) {
19137     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19138 }
19139 static FORCEINLINE ULONG ISpeechLexiconPronunciation_AddRef(ISpeechLexiconPronunciation* This) {
19140     return This->lpVtbl->AddRef(This);
19141 }
19142 static FORCEINLINE ULONG ISpeechLexiconPronunciation_Release(ISpeechLexiconPronunciation* This) {
19143     return This->lpVtbl->Release(This);
19144 }
19145 /*** IDispatch methods ***/
19146 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_GetTypeInfoCount(ISpeechLexiconPronunciation* This,UINT *pctinfo) {
19147     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19148 }
19149 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_GetTypeInfo(ISpeechLexiconPronunciation* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19150     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19151 }
19152 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_GetIDsOfNames(ISpeechLexiconPronunciation* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19153     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19154 }
19155 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_Invoke(ISpeechLexiconPronunciation* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19156     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19157 }
19158 /*** ISpeechLexiconPronunciation methods ***/
19159 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_Type(ISpeechLexiconPronunciation* This,SpeechLexiconType *LexiconType) {
19160     return This->lpVtbl->get_Type(This,LexiconType);
19161 }
19162 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_LangId(ISpeechLexiconPronunciation* This,SpeechLanguageId *LangId) {
19163     return This->lpVtbl->get_LangId(This,LangId);
19164 }
19165 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_PartOfSpeech(ISpeechLexiconPronunciation* This,SpeechPartOfSpeech *PartOfSpeech) {
19166     return This->lpVtbl->get_PartOfSpeech(This,PartOfSpeech);
19167 }
19168 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_PhoneIds(ISpeechLexiconPronunciation* This,VARIANT *PhoneIds) {
19169     return This->lpVtbl->get_PhoneIds(This,PhoneIds);
19170 }
19171 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_Symbolic(ISpeechLexiconPronunciation* This,BSTR *Symbolic) {
19172     return This->lpVtbl->get_Symbolic(This,Symbolic);
19173 }
19174 #endif
19175 #endif
19176 
19177 #endif
19178 
19179 
19180 #endif  /* __ISpeechLexiconPronunciation_INTERFACE_DEFINED__ */
19181 
19182 /*****************************************************************************
19183  * ISpeechPhoneConverter interface
19184  */
19185 #ifndef __ISpeechPhoneConverter_INTERFACE_DEFINED__
19186 #define __ISpeechPhoneConverter_INTERFACE_DEFINED__
19187 
19188 DEFINE_GUID(IID_ISpeechPhoneConverter, 0xc3e4f353, 0x433f, 0x43d6, 0x89,0xa1, 0x6a,0x62,0xa7,0x05,0x4c,0x3d);
19189 #if defined(__cplusplus) && !defined(CINTERFACE)
19190 MIDL_INTERFACE("c3e4f353-433f-43d6-89a1-6a62a7054c3d")
19191 ISpeechPhoneConverter : public IDispatch
19192 {
19193     virtual HRESULT STDMETHODCALLTYPE get_LanguageId(
19194         SpeechLanguageId *LanguageId) = 0;
19195 
19196     virtual HRESULT STDMETHODCALLTYPE put_LanguageId(
19197         SpeechLanguageId LanguageId) = 0;
19198 
19199     virtual HRESULT STDMETHODCALLTYPE PhoneToId(
19200         const BSTR Phonemes,
19201         VARIANT *IdArray) = 0;
19202 
19203     virtual HRESULT STDMETHODCALLTYPE IdToPhone(
19204         const VARIANT IdArray,
19205         BSTR *Phonemes) = 0;
19206 
19207 };
19208 #ifdef __CRT_UUID_DECL
19209 __CRT_UUID_DECL(ISpeechPhoneConverter, 0xc3e4f353, 0x433f, 0x43d6, 0x89,0xa1, 0x6a,0x62,0xa7,0x05,0x4c,0x3d)
19210 #endif
19211 #else
19212 typedef struct ISpeechPhoneConverterVtbl {
19213     BEGIN_INTERFACE
19214 
19215     /*** IUnknown methods ***/
19216     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19217         ISpeechPhoneConverter *This,
19218         REFIID riid,
19219         void **ppvObject);
19220 
19221     ULONG (STDMETHODCALLTYPE *AddRef)(
19222         ISpeechPhoneConverter *This);
19223 
19224     ULONG (STDMETHODCALLTYPE *Release)(
19225         ISpeechPhoneConverter *This);
19226 
19227     /*** IDispatch methods ***/
19228     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19229         ISpeechPhoneConverter *This,
19230         UINT *pctinfo);
19231 
19232     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19233         ISpeechPhoneConverter *This,
19234         UINT iTInfo,
19235         LCID lcid,
19236         ITypeInfo **ppTInfo);
19237 
19238     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19239         ISpeechPhoneConverter *This,
19240         REFIID riid,
19241         LPOLESTR *rgszNames,
19242         UINT cNames,
19243         LCID lcid,
19244         DISPID *rgDispId);
19245 
19246     HRESULT (STDMETHODCALLTYPE *Invoke)(
19247         ISpeechPhoneConverter *This,
19248         DISPID dispIdMember,
19249         REFIID riid,
19250         LCID lcid,
19251         WORD wFlags,
19252         DISPPARAMS *pDispParams,
19253         VARIANT *pVarResult,
19254         EXCEPINFO *pExcepInfo,
19255         UINT *puArgErr);
19256 
19257     /*** ISpeechPhoneConverter methods ***/
19258     HRESULT (STDMETHODCALLTYPE *get_LanguageId)(
19259         ISpeechPhoneConverter *This,
19260         SpeechLanguageId *LanguageId);
19261 
19262     HRESULT (STDMETHODCALLTYPE *put_LanguageId)(
19263         ISpeechPhoneConverter *This,
19264         SpeechLanguageId LanguageId);
19265 
19266     HRESULT (STDMETHODCALLTYPE *PhoneToId)(
19267         ISpeechPhoneConverter *This,
19268         const BSTR Phonemes,
19269         VARIANT *IdArray);
19270 
19271     HRESULT (STDMETHODCALLTYPE *IdToPhone)(
19272         ISpeechPhoneConverter *This,
19273         const VARIANT IdArray,
19274         BSTR *Phonemes);
19275 
19276     END_INTERFACE
19277 } ISpeechPhoneConverterVtbl;
19278 
19279 interface ISpeechPhoneConverter {
19280     CONST_VTBL ISpeechPhoneConverterVtbl* lpVtbl;
19281 };
19282 
19283 #ifdef COBJMACROS
19284 #ifndef WIDL_C_INLINE_WRAPPERS
19285 /*** IUnknown methods ***/
19286 #define ISpeechPhoneConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19287 #define ISpeechPhoneConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
19288 #define ISpeechPhoneConverter_Release(This) (This)->lpVtbl->Release(This)
19289 /*** IDispatch methods ***/
19290 #define ISpeechPhoneConverter_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19291 #define ISpeechPhoneConverter_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19292 #define ISpeechPhoneConverter_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19293 #define ISpeechPhoneConverter_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19294 /*** ISpeechPhoneConverter methods ***/
19295 #define ISpeechPhoneConverter_get_LanguageId(This,LanguageId) (This)->lpVtbl->get_LanguageId(This,LanguageId)
19296 #define ISpeechPhoneConverter_put_LanguageId(This,LanguageId) (This)->lpVtbl->put_LanguageId(This,LanguageId)
19297 #define ISpeechPhoneConverter_PhoneToId(This,Phonemes,IdArray) (This)->lpVtbl->PhoneToId(This,Phonemes,IdArray)
19298 #define ISpeechPhoneConverter_IdToPhone(This,IdArray,Phonemes) (This)->lpVtbl->IdToPhone(This,IdArray,Phonemes)
19299 #else
19300 /*** IUnknown methods ***/
19301 static FORCEINLINE HRESULT ISpeechPhoneConverter_QueryInterface(ISpeechPhoneConverter* This,REFIID riid,void **ppvObject) {
19302     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19303 }
19304 static FORCEINLINE ULONG ISpeechPhoneConverter_AddRef(ISpeechPhoneConverter* This) {
19305     return This->lpVtbl->AddRef(This);
19306 }
19307 static FORCEINLINE ULONG ISpeechPhoneConverter_Release(ISpeechPhoneConverter* This) {
19308     return This->lpVtbl->Release(This);
19309 }
19310 /*** IDispatch methods ***/
19311 static FORCEINLINE HRESULT ISpeechPhoneConverter_GetTypeInfoCount(ISpeechPhoneConverter* This,UINT *pctinfo) {
19312     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19313 }
19314 static FORCEINLINE HRESULT ISpeechPhoneConverter_GetTypeInfo(ISpeechPhoneConverter* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19315     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19316 }
19317 static FORCEINLINE HRESULT ISpeechPhoneConverter_GetIDsOfNames(ISpeechPhoneConverter* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19318     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19319 }
19320 static FORCEINLINE HRESULT ISpeechPhoneConverter_Invoke(ISpeechPhoneConverter* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19321     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19322 }
19323 /*** ISpeechPhoneConverter methods ***/
19324 static FORCEINLINE HRESULT ISpeechPhoneConverter_get_LanguageId(ISpeechPhoneConverter* This,SpeechLanguageId *LanguageId) {
19325     return This->lpVtbl->get_LanguageId(This,LanguageId);
19326 }
19327 static FORCEINLINE HRESULT ISpeechPhoneConverter_put_LanguageId(ISpeechPhoneConverter* This,SpeechLanguageId LanguageId) {
19328     return This->lpVtbl->put_LanguageId(This,LanguageId);
19329 }
19330 static FORCEINLINE HRESULT ISpeechPhoneConverter_PhoneToId(ISpeechPhoneConverter* This,const BSTR Phonemes,VARIANT *IdArray) {
19331     return This->lpVtbl->PhoneToId(This,Phonemes,IdArray);
19332 }
19333 static FORCEINLINE HRESULT ISpeechPhoneConverter_IdToPhone(ISpeechPhoneConverter* This,const VARIANT IdArray,BSTR *Phonemes) {
19334     return This->lpVtbl->IdToPhone(This,IdArray,Phonemes);
19335 }
19336 #endif
19337 #endif
19338 
19339 #endif
19340 
19341 
19342 #endif  /* __ISpeechPhoneConverter_INTERFACE_DEFINED__ */
19343 
19344 /*****************************************************************************
19345  * SpNotifyTranslator coclass
19346  */
19347 
19348 DEFINE_GUID(CLSID_SpNotifyTranslator, 0xe2ae5372, 0x5d40, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
19349 
19350 #ifdef __cplusplus
19351 class DECLSPEC_UUID("e2ae5372-5d40-11d2-960e-00c04f8ee628") SpNotifyTranslator;
19352 #ifdef __CRT_UUID_DECL
19353 __CRT_UUID_DECL(SpNotifyTranslator, 0xe2ae5372, 0x5d40, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
19354 #endif
19355 #endif
19356 
19357 /*****************************************************************************
19358  * SpObjectTokenCategory coclass
19359  */
19360 
19361 DEFINE_GUID(CLSID_SpObjectTokenCategory, 0xa910187f, 0x0c7a, 0x45ac, 0x92,0xcc, 0x59,0xed,0xaf,0xb7,0x7b,0x53);
19362 
19363 #ifdef __cplusplus
19364 class DECLSPEC_UUID("a910187f-0c7a-45ac-92cc-59edafb77b53") SpObjectTokenCategory;
19365 #ifdef __CRT_UUID_DECL
19366 __CRT_UUID_DECL(SpObjectTokenCategory, 0xa910187f, 0x0c7a, 0x45ac, 0x92,0xcc, 0x59,0xed,0xaf,0xb7,0x7b,0x53)
19367 #endif
19368 #endif
19369 
19370 /*****************************************************************************
19371  * SpObjectToken coclass
19372  */
19373 
19374 DEFINE_GUID(CLSID_SpObjectToken, 0xef411752, 0x3736, 0x4cb4, 0x9c,0x8c, 0x8e,0xf4,0xcc,0xb5,0x8e,0xfe);
19375 
19376 #ifdef __cplusplus
19377 class DECLSPEC_UUID("ef411752-3736-4cb4-9c8c-8ef4ccb58efe") SpObjectToken;
19378 #ifdef __CRT_UUID_DECL
19379 __CRT_UUID_DECL(SpObjectToken, 0xef411752, 0x3736, 0x4cb4, 0x9c,0x8c, 0x8e,0xf4,0xcc,0xb5,0x8e,0xfe)
19380 #endif
19381 #endif
19382 
19383 /*****************************************************************************
19384  * SpResourceManager coclass
19385  */
19386 
19387 DEFINE_GUID(CLSID_SpResourceManager, 0x96749373, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96);
19388 
19389 #ifdef __cplusplus
19390 class DECLSPEC_UUID("96749373-3391-11d2-9ee3-00c04f797396") SpResourceManager;
19391 #ifdef __CRT_UUID_DECL
19392 __CRT_UUID_DECL(SpResourceManager, 0x96749373, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96)
19393 #endif
19394 #endif
19395 
19396 /*****************************************************************************
19397  * SpStreamFormatConverter coclass
19398  */
19399 
19400 DEFINE_GUID(CLSID_SpStreamFormatConverter, 0x7013943a, 0xe2ec, 0x11d2, 0xa0,0x86, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5);
19401 
19402 #ifdef __cplusplus
19403 class DECLSPEC_UUID("7013943a-e2ec-11d2-a086-00c04f8ef9b5") SpStreamFormatConverter;
19404 #ifdef __CRT_UUID_DECL
19405 __CRT_UUID_DECL(SpStreamFormatConverter, 0x7013943a, 0xe2ec, 0x11d2, 0xa0,0x86, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5)
19406 #endif
19407 #endif
19408 
19409 /*****************************************************************************
19410  * SpMMAudioEnum coclass
19411  */
19412 
19413 DEFINE_GUID(CLSID_SpMMAudioEnum, 0xab1890a0, 0xe91f, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
19414 
19415 #ifdef __cplusplus
19416 class DECLSPEC_UUID("ab1890a0-e91f-11d2-bb91-00c04f8ee6c0") SpMMAudioEnum;
19417 #ifdef __CRT_UUID_DECL
19418 __CRT_UUID_DECL(SpMMAudioEnum, 0xab1890a0, 0xe91f, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
19419 #endif
19420 #endif
19421 
19422 /*****************************************************************************
19423  * SpMMAudioIn coclass
19424  */
19425 
19426 DEFINE_GUID(CLSID_SpMMAudioIn, 0xcf3d2e50, 0x53f2, 0x11d2, 0x96,0x0c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
19427 
19428 #ifdef __cplusplus
19429 class DECLSPEC_UUID("cf3d2e50-53f2-11d2-960c-00c04f8ee628") SpMMAudioIn;
19430 #ifdef __CRT_UUID_DECL
19431 __CRT_UUID_DECL(SpMMAudioIn, 0xcf3d2e50, 0x53f2, 0x11d2, 0x96,0x0c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
19432 #endif
19433 #endif
19434 
19435 /*****************************************************************************
19436  * SpMMAudioOut coclass
19437  */
19438 
19439 DEFINE_GUID(CLSID_SpMMAudioOut, 0xa8c680eb, 0x3d32, 0x11d2, 0x9e,0xe7, 0x00,0xc0,0x4f,0x79,0x73,0x96);
19440 
19441 #ifdef __cplusplus
19442 class DECLSPEC_UUID("a8c680eb-3d32-11d2-9ee7-00c04f797396") SpMMAudioOut;
19443 #ifdef __CRT_UUID_DECL
19444 __CRT_UUID_DECL(SpMMAudioOut, 0xa8c680eb, 0x3d32, 0x11d2, 0x9e,0xe7, 0x00,0xc0,0x4f,0x79,0x73,0x96)
19445 #endif
19446 #endif
19447 
19448 /*****************************************************************************
19449  * SpStream coclass
19450  */
19451 
19452 DEFINE_GUID(CLSID_SpStream, 0x715d9c59, 0x4442, 0x11d2, 0x96,0x05, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
19453 
19454 #ifdef __cplusplus
19455 class DECLSPEC_UUID("715d9c59-4442-11d2-9605-00c04f8ee628") SpStream;
19456 #ifdef __CRT_UUID_DECL
19457 __CRT_UUID_DECL(SpStream, 0x715d9c59, 0x4442, 0x11d2, 0x96,0x05, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
19458 #endif
19459 #endif
19460 
19461 /*****************************************************************************
19462  * SpVoice coclass
19463  */
19464 
19465 DEFINE_GUID(CLSID_SpVoice, 0x96749377, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96);
19466 
19467 #ifdef __cplusplus
19468 class DECLSPEC_UUID("96749377-3391-11d2-9ee3-00c04f797396") SpVoice;
19469 #ifdef __CRT_UUID_DECL
19470 __CRT_UUID_DECL(SpVoice, 0x96749377, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96)
19471 #endif
19472 #endif
19473 
19474 /*****************************************************************************
19475  * SpSharedRecoContext coclass
19476  */
19477 
19478 DEFINE_GUID(CLSID_SpSharedRecoContext, 0x47206204, 0x5eca, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
19479 
19480 #ifdef __cplusplus
19481 class DECLSPEC_UUID("47206204-5eca-11d2-960f-00c04f8ee628") SpSharedRecoContext;
19482 #ifdef __CRT_UUID_DECL
19483 __CRT_UUID_DECL(SpSharedRecoContext, 0x47206204, 0x5eca, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
19484 #endif
19485 #endif
19486 
19487 /*****************************************************************************
19488  * SpInprocRecognizer coclass
19489  */
19490 
19491 DEFINE_GUID(CLSID_SpInprocRecognizer, 0x41b89b6b, 0x9399, 0x11d2, 0x96,0x23, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
19492 
19493 #ifdef __cplusplus
19494 class DECLSPEC_UUID("41b89b6b-9399-11d2-9623-00c04f8ee628") SpInprocRecognizer;
19495 #ifdef __CRT_UUID_DECL
19496 __CRT_UUID_DECL(SpInprocRecognizer, 0x41b89b6b, 0x9399, 0x11d2, 0x96,0x23, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
19497 #endif
19498 #endif
19499 
19500 /*****************************************************************************
19501  * SpSharedRecognizer coclass
19502  */
19503 
19504 DEFINE_GUID(CLSID_SpSharedRecognizer, 0x3bee4890, 0x4fe9, 0x4a37, 0x8c,0x1e, 0x5e,0x7e,0x12,0x79,0x1c,0x1f);
19505 
19506 #ifdef __cplusplus
19507 class DECLSPEC_UUID("3bee4890-4fe9-4a37-8c1e-5e7e12791c1f") SpSharedRecognizer;
19508 #ifdef __CRT_UUID_DECL
19509 __CRT_UUID_DECL(SpSharedRecognizer, 0x3bee4890, 0x4fe9, 0x4a37, 0x8c,0x1e, 0x5e,0x7e,0x12,0x79,0x1c,0x1f)
19510 #endif
19511 #endif
19512 
19513 /*****************************************************************************
19514  * SpLexicon coclass
19515  */
19516 
19517 DEFINE_GUID(CLSID_SpLexicon, 0x0655e396, 0x25d0, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c);
19518 
19519 #ifdef __cplusplus
19520 class DECLSPEC_UUID("0655e396-25d0-11d3-9c26-00c04f8ef87c") SpLexicon;
19521 #ifdef __CRT_UUID_DECL
19522 __CRT_UUID_DECL(SpLexicon, 0x0655e396, 0x25d0, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c)
19523 #endif
19524 #endif
19525 
19526 /*****************************************************************************
19527  * SpUnCompressedLexicon coclass
19528  */
19529 
19530 DEFINE_GUID(CLSID_SpUnCompressedLexicon, 0xc9e37c15, 0xdf92, 0x4727, 0x85,0xd6, 0x72,0xe5,0xee,0xb6,0x99,0x5a);
19531 
19532 #ifdef __cplusplus
19533 class DECLSPEC_UUID("c9e37c15-df92-4727-85d6-72e5eeb6995a") SpUnCompressedLexicon;
19534 #ifdef __CRT_UUID_DECL
19535 __CRT_UUID_DECL(SpUnCompressedLexicon, 0xc9e37c15, 0xdf92, 0x4727, 0x85,0xd6, 0x72,0xe5,0xee,0xb6,0x99,0x5a)
19536 #endif
19537 #endif
19538 
19539 /*****************************************************************************
19540  * SpCompressedLexicon coclass
19541  */
19542 
19543 DEFINE_GUID(CLSID_SpCompressedLexicon, 0x90903716, 0x2f42, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c);
19544 
19545 #ifdef __cplusplus
19546 class DECLSPEC_UUID("90903716-2f42-11d3-9c26-00c04f8ef87c") SpCompressedLexicon;
19547 #ifdef __CRT_UUID_DECL
19548 __CRT_UUID_DECL(SpCompressedLexicon, 0x90903716, 0x2f42, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c)
19549 #endif
19550 #endif
19551 
19552 /*****************************************************************************
19553  * SpPhoneConverter coclass
19554  */
19555 
19556 DEFINE_GUID(CLSID_SpPhoneConverter, 0x9185f743, 0x1143, 0x4c28, 0x86,0xb5, 0xbf,0xf1,0x4f,0x20,0xe5,0xc8);
19557 
19558 #ifdef __cplusplus
19559 class DECLSPEC_UUID("9185f743-1143-4c28-86b5-bff14f20e5c8") SpPhoneConverter;
19560 #ifdef __CRT_UUID_DECL
19561 __CRT_UUID_DECL(SpPhoneConverter, 0x9185f743, 0x1143, 0x4c28, 0x86,0xb5, 0xbf,0xf1,0x4f,0x20,0xe5,0xc8)
19562 #endif
19563 #endif
19564 
19565 /*****************************************************************************
19566  * SpNullPhoneConverter coclass
19567  */
19568 
19569 DEFINE_GUID(CLSID_SpNullPhoneConverter, 0x455f24e9, 0x7396, 0x4a16, 0x97,0x15, 0x7c,0x0f,0xdb,0xe3,0xef,0xe3);
19570 
19571 #ifdef __cplusplus
19572 class DECLSPEC_UUID("455f24e9-7396-4a16-9715-7c0fdbe3efe3") SpNullPhoneConverter;
19573 #ifdef __CRT_UUID_DECL
19574 __CRT_UUID_DECL(SpNullPhoneConverter, 0x455f24e9, 0x7396, 0x4a16, 0x97,0x15, 0x7c,0x0f,0xdb,0xe3,0xef,0xe3)
19575 #endif
19576 #endif
19577 
19578 /*****************************************************************************
19579  * SpTextSelectionInformation coclass
19580  */
19581 
19582 DEFINE_GUID(CLSID_SpTextSelectionInformation, 0x0f92030a, 0xcbfd, 0x4ab8, 0xa1,0x64, 0xff,0x59,0x85,0x54,0x7f,0xf6);
19583 
19584 #ifdef __cplusplus
19585 class DECLSPEC_UUID("0f92030a-cbfd-4ab8-a164-ff5985547ff6") SpTextSelectionInformation;
19586 #ifdef __CRT_UUID_DECL
19587 __CRT_UUID_DECL(SpTextSelectionInformation, 0x0f92030a, 0xcbfd, 0x4ab8, 0xa1,0x64, 0xff,0x59,0x85,0x54,0x7f,0xf6)
19588 #endif
19589 #endif
19590 
19591 /*****************************************************************************
19592  * SpPhraseInfoBuilder coclass
19593  */
19594 
19595 DEFINE_GUID(CLSID_SpPhraseInfoBuilder, 0xc23fc28d, 0xc55f, 0x4720, 0x8b,0x32, 0x91,0xf7,0x3c,0x2b,0xd5,0xd1);
19596 
19597 #ifdef __cplusplus
19598 class DECLSPEC_UUID("c23fc28d-c55f-4720-8b32-91f73c2bd5d1") SpPhraseInfoBuilder;
19599 #ifdef __CRT_UUID_DECL
19600 __CRT_UUID_DECL(SpPhraseInfoBuilder, 0xc23fc28d, 0xc55f, 0x4720, 0x8b,0x32, 0x91,0xf7,0x3c,0x2b,0xd5,0xd1)
19601 #endif
19602 #endif
19603 
19604 /*****************************************************************************
19605  * SpAudioFormat coclass
19606  */
19607 
19608 DEFINE_GUID(CLSID_SpAudioFormat, 0x9ef96870, 0xe160, 0x4792, 0x82,0x0d, 0x48,0xcf,0x06,0x49,0xe4,0xec);
19609 
19610 #ifdef __cplusplus
19611 class DECLSPEC_UUID("9ef96870-e160-4792-820d-48cf0649e4ec") SpAudioFormat;
19612 #ifdef __CRT_UUID_DECL
19613 __CRT_UUID_DECL(SpAudioFormat, 0x9ef96870, 0xe160, 0x4792, 0x82,0x0d, 0x48,0xcf,0x06,0x49,0xe4,0xec)
19614 #endif
19615 #endif
19616 
19617 /*****************************************************************************
19618  * SpWaveFormatEx coclass
19619  */
19620 
19621 DEFINE_GUID(CLSID_SpWaveFormatEx, 0xc79a574c, 0x63be, 0x44b9, 0x80,0x1f, 0x28,0x3f,0x87,0xf8,0x98,0xbe);
19622 
19623 #ifdef __cplusplus
19624 class DECLSPEC_UUID("c79a574c-63be-44b9-801f-283f87f898be") SpWaveFormatEx;
19625 #ifdef __CRT_UUID_DECL
19626 __CRT_UUID_DECL(SpWaveFormatEx, 0xc79a574c, 0x63be, 0x44b9, 0x80,0x1f, 0x28,0x3f,0x87,0xf8,0x98,0xbe)
19627 #endif
19628 #endif
19629 
19630 /*****************************************************************************
19631  * SpInProcRecoContext coclass
19632  */
19633 
19634 DEFINE_GUID(CLSID_SpInProcRecoContext, 0x73ad6842, 0xace0, 0x45e8, 0xa4,0xdd, 0x87,0x95,0x88,0x1a,0x2c,0x2a);
19635 
19636 #ifdef __cplusplus
19637 class DECLSPEC_UUID("73ad6842-ace0-45e8-a4dd-8795881a2c2a") SpInProcRecoContext;
19638 #ifdef __CRT_UUID_DECL
19639 __CRT_UUID_DECL(SpInProcRecoContext, 0x73ad6842, 0xace0, 0x45e8, 0xa4,0xdd, 0x87,0x95,0x88,0x1a,0x2c,0x2a)
19640 #endif
19641 #endif
19642 
19643 /*****************************************************************************
19644  * SpCustomStream coclass
19645  */
19646 
19647 DEFINE_GUID(CLSID_SpCustomStream, 0x8dbef13f, 0x1948, 0x4aa8, 0x8c,0xf0, 0x04,0x8e,0xeb,0xed,0x95,0xd8);
19648 
19649 #ifdef __cplusplus
19650 class DECLSPEC_UUID("8dbef13f-1948-4aa8-8cf0-048eebed95d8") SpCustomStream;
19651 #ifdef __CRT_UUID_DECL
19652 __CRT_UUID_DECL(SpCustomStream, 0x8dbef13f, 0x1948, 0x4aa8, 0x8c,0xf0, 0x04,0x8e,0xeb,0xed,0x95,0xd8)
19653 #endif
19654 #endif
19655 
19656 /*****************************************************************************
19657  * SpFileStream coclass
19658  */
19659 
19660 DEFINE_GUID(CLSID_SpFileStream, 0x947812b3, 0x2ae1, 0x4644, 0xba,0x86, 0x9e,0x90,0xde,0xd7,0xec,0x91);
19661 
19662 #ifdef __cplusplus
19663 class DECLSPEC_UUID("947812b3-2ae1-4644-ba86-9e90ded7ec91") SpFileStream;
19664 #ifdef __CRT_UUID_DECL
19665 __CRT_UUID_DECL(SpFileStream, 0x947812b3, 0x2ae1, 0x4644, 0xba,0x86, 0x9e,0x90,0xde,0xd7,0xec,0x91)
19666 #endif
19667 #endif
19668 
19669 /*****************************************************************************
19670  * SpMemoryStream coclass
19671  */
19672 
19673 DEFINE_GUID(CLSID_SpMemoryStream, 0x5fb7ef7d, 0xdff4, 0x468a, 0xb6,0xb7, 0x2f,0xcb,0xd1,0x88,0xf9,0x94);
19674 
19675 #ifdef __cplusplus
19676 class DECLSPEC_UUID("5fb7ef7d-dff4-468a-b6b7-2fcbd188f994") SpMemoryStream;
19677 #ifdef __CRT_UUID_DECL
19678 __CRT_UUID_DECL(SpMemoryStream, 0x5fb7ef7d, 0xdff4, 0x468a, 0xb6,0xb7, 0x2f,0xcb,0xd1,0x88,0xf9,0x94)
19679 #endif
19680 #endif
19681 
19682 #endif /* __SpeechLib_LIBRARY_DEFINED__ */
19683 /* Begin additional prototypes for all interfaces */
19684 
19685 ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
19686 unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
19687 unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
19688 void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
19689 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
19690 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
19691 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
19692 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
19693 ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
19694 unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
19695 unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
19696 void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
19697 
19698 /* End additional prototypes */
19699 
19700 #ifdef __cplusplus
19701 }
19702 #endif
19703 
19704 #endif /* __sapi51_h__ */
19705