1 /*** Autogenerated by WIDL 1.6 from include/sapi54.idl - Do not edit ***/
2 
3 #ifndef __REQUIRED_RPCNDR_H_VERSION__
4 #define __REQUIRED_RPCNDR_H_VERSION__ 475
5 #endif
6 
7 #include <rpc.h>
8 #include <rpcndr.h>
9 
10 #ifndef COM_NO_WINDOWS_H
11 #include <windows.h>
12 #include <ole2.h>
13 #endif
14 
15 #ifndef __sapi54_h__
16 #define __sapi54_h__
17 
18 /* Forward declarations */
19 
20 #ifndef __ISpNotifySource_FWD_DEFINED__
21 #define __ISpNotifySource_FWD_DEFINED__
22 typedef interface ISpNotifySource ISpNotifySource;
23 #endif
24 
25 #ifndef __ISpNotifySink_FWD_DEFINED__
26 #define __ISpNotifySink_FWD_DEFINED__
27 typedef interface ISpNotifySink ISpNotifySink;
28 #endif
29 
30 #ifndef __ISpNotifyTranslator_FWD_DEFINED__
31 #define __ISpNotifyTranslator_FWD_DEFINED__
32 typedef interface ISpNotifyTranslator ISpNotifyTranslator;
33 #endif
34 
35 #ifndef __ISpDataKey_FWD_DEFINED__
36 #define __ISpDataKey_FWD_DEFINED__
37 typedef interface ISpDataKey ISpDataKey;
38 #endif
39 
40 #ifndef __ISpObjectWithToken_FWD_DEFINED__
41 #define __ISpObjectWithToken_FWD_DEFINED__
42 typedef interface ISpObjectWithToken ISpObjectWithToken;
43 #endif
44 
45 #ifndef __IEnumSpObjectTokens_FWD_DEFINED__
46 #define __IEnumSpObjectTokens_FWD_DEFINED__
47 typedef interface IEnumSpObjectTokens IEnumSpObjectTokens;
48 #endif
49 
50 #ifndef __ISpRegDataKey_FWD_DEFINED__
51 #define __ISpRegDataKey_FWD_DEFINED__
52 typedef interface ISpRegDataKey ISpRegDataKey;
53 #endif
54 
55 #ifndef __ISpObjectTokenCategory_FWD_DEFINED__
56 #define __ISpObjectTokenCategory_FWD_DEFINED__
57 typedef interface ISpObjectTokenCategory ISpObjectTokenCategory;
58 #endif
59 
60 #ifndef __ISpObjectToken_FWD_DEFINED__
61 #define __ISpObjectToken_FWD_DEFINED__
62 typedef interface ISpObjectToken ISpObjectToken;
63 #endif
64 
65 #ifndef __ISpObjectTokenInit_FWD_DEFINED__
66 #define __ISpObjectTokenInit_FWD_DEFINED__
67 typedef interface ISpObjectTokenInit ISpObjectTokenInit;
68 #endif
69 
70 #ifndef __ISpResourceManager_FWD_DEFINED__
71 #define __ISpResourceManager_FWD_DEFINED__
72 typedef interface ISpResourceManager ISpResourceManager;
73 #endif
74 
75 #ifndef __ISpEventSource_FWD_DEFINED__
76 #define __ISpEventSource_FWD_DEFINED__
77 typedef interface ISpEventSource ISpEventSource;
78 #endif
79 
80 #ifndef __ISpEventSource2_FWD_DEFINED__
81 #define __ISpEventSource2_FWD_DEFINED__
82 typedef interface ISpEventSource2 ISpEventSource2;
83 #endif
84 
85 #ifndef __ISpEventSink_FWD_DEFINED__
86 #define __ISpEventSink_FWD_DEFINED__
87 typedef interface ISpEventSink ISpEventSink;
88 #endif
89 
90 #ifndef __ISpStreamFormat_FWD_DEFINED__
91 #define __ISpStreamFormat_FWD_DEFINED__
92 typedef interface ISpStreamFormat ISpStreamFormat;
93 #endif
94 
95 #ifndef __ISpStream_FWD_DEFINED__
96 #define __ISpStream_FWD_DEFINED__
97 typedef interface ISpStream ISpStream;
98 #endif
99 
100 #ifndef __ISpStreamFormatConverter_FWD_DEFINED__
101 #define __ISpStreamFormatConverter_FWD_DEFINED__
102 typedef interface ISpStreamFormatConverter ISpStreamFormatConverter;
103 #endif
104 
105 #ifndef __ISpAudio_FWD_DEFINED__
106 #define __ISpAudio_FWD_DEFINED__
107 typedef interface ISpAudio ISpAudio;
108 #endif
109 
110 #ifndef __ISpMMSysAudio_FWD_DEFINED__
111 #define __ISpMMSysAudio_FWD_DEFINED__
112 typedef interface ISpMMSysAudio ISpMMSysAudio;
113 #endif
114 
115 #ifndef __ISpTranscript_FWD_DEFINED__
116 #define __ISpTranscript_FWD_DEFINED__
117 typedef interface ISpTranscript ISpTranscript;
118 #endif
119 
120 #ifndef __ISpLexicon_FWD_DEFINED__
121 #define __ISpLexicon_FWD_DEFINED__
122 typedef interface ISpLexicon ISpLexicon;
123 #endif
124 
125 #ifndef __ISpContainerLexicon_FWD_DEFINED__
126 #define __ISpContainerLexicon_FWD_DEFINED__
127 typedef interface ISpContainerLexicon ISpContainerLexicon;
128 #endif
129 
130 #ifndef __ISpShortcut_FWD_DEFINED__
131 #define __ISpShortcut_FWD_DEFINED__
132 typedef interface ISpShortcut ISpShortcut;
133 #endif
134 
135 #ifndef __ISpPhoneConverter_FWD_DEFINED__
136 #define __ISpPhoneConverter_FWD_DEFINED__
137 typedef interface ISpPhoneConverter ISpPhoneConverter;
138 #endif
139 
140 #ifndef __ISpPhoneticAlphabetConverter_FWD_DEFINED__
141 #define __ISpPhoneticAlphabetConverter_FWD_DEFINED__
142 typedef interface ISpPhoneticAlphabetConverter ISpPhoneticAlphabetConverter;
143 #endif
144 
145 #ifndef __ISpPhoneticAlphabetSelection_FWD_DEFINED__
146 #define __ISpPhoneticAlphabetSelection_FWD_DEFINED__
147 typedef interface ISpPhoneticAlphabetSelection ISpPhoneticAlphabetSelection;
148 #endif
149 
150 #ifndef __ISpVoice_FWD_DEFINED__
151 #define __ISpVoice_FWD_DEFINED__
152 typedef interface ISpVoice ISpVoice;
153 #endif
154 
155 #ifndef __ISpPhrase_FWD_DEFINED__
156 #define __ISpPhrase_FWD_DEFINED__
157 typedef interface ISpPhrase ISpPhrase;
158 #endif
159 
160 #ifndef __ISpPhraseAlt_FWD_DEFINED__
161 #define __ISpPhraseAlt_FWD_DEFINED__
162 typedef interface ISpPhraseAlt ISpPhraseAlt;
163 #endif
164 
165 #ifndef __ISpPhrase2_FWD_DEFINED__
166 #define __ISpPhrase2_FWD_DEFINED__
167 typedef interface ISpPhrase2 ISpPhrase2;
168 #endif
169 
170 #ifndef __ISpRecoResult_FWD_DEFINED__
171 #define __ISpRecoResult_FWD_DEFINED__
172 typedef interface ISpRecoResult ISpRecoResult;
173 #endif
174 
175 #ifndef __ISpRecoResult2_FWD_DEFINED__
176 #define __ISpRecoResult2_FWD_DEFINED__
177 typedef interface ISpRecoResult2 ISpRecoResult2;
178 #endif
179 
180 #ifndef __ISpXMLRecoResult_FWD_DEFINED__
181 #define __ISpXMLRecoResult_FWD_DEFINED__
182 typedef interface ISpXMLRecoResult ISpXMLRecoResult;
183 #endif
184 
185 #ifndef __ISpGrammarBuilder_FWD_DEFINED__
186 #define __ISpGrammarBuilder_FWD_DEFINED__
187 typedef interface ISpGrammarBuilder ISpGrammarBuilder;
188 #endif
189 
190 #ifndef __ISpRecoGrammar_FWD_DEFINED__
191 #define __ISpRecoGrammar_FWD_DEFINED__
192 typedef interface ISpRecoGrammar ISpRecoGrammar;
193 #endif
194 
195 #ifndef __ISpGrammarBuilder2_FWD_DEFINED__
196 #define __ISpGrammarBuilder2_FWD_DEFINED__
197 typedef interface ISpGrammarBuilder2 ISpGrammarBuilder2;
198 #endif
199 
200 #ifndef __ISpRecoGrammar2_FWD_DEFINED__
201 #define __ISpRecoGrammar2_FWD_DEFINED__
202 typedef interface ISpRecoGrammar2 ISpRecoGrammar2;
203 #endif
204 
205 #ifndef __ISpeechResourceLoader_FWD_DEFINED__
206 #define __ISpeechResourceLoader_FWD_DEFINED__
207 typedef interface ISpeechResourceLoader ISpeechResourceLoader;
208 #endif
209 
210 #ifndef __ISpRecoContext_FWD_DEFINED__
211 #define __ISpRecoContext_FWD_DEFINED__
212 typedef interface ISpRecoContext ISpRecoContext;
213 #endif
214 
215 #ifndef __ISpRecoContext2_FWD_DEFINED__
216 #define __ISpRecoContext2_FWD_DEFINED__
217 typedef interface ISpRecoContext2 ISpRecoContext2;
218 #endif
219 
220 #ifndef __ISpProperties_FWD_DEFINED__
221 #define __ISpProperties_FWD_DEFINED__
222 typedef interface ISpProperties ISpProperties;
223 #endif
224 
225 #ifndef __ISpRecognizer_FWD_DEFINED__
226 #define __ISpRecognizer_FWD_DEFINED__
227 typedef interface ISpRecognizer ISpRecognizer;
228 #endif
229 
230 #ifndef __ISpSerializeState_FWD_DEFINED__
231 #define __ISpSerializeState_FWD_DEFINED__
232 typedef interface ISpSerializeState ISpSerializeState;
233 #endif
234 
235 #ifndef __ISpRecognizer2_FWD_DEFINED__
236 #define __ISpRecognizer2_FWD_DEFINED__
237 typedef interface ISpRecognizer2 ISpRecognizer2;
238 #endif
239 
240 #ifndef __ISpRecoCategory_FWD_DEFINED__
241 #define __ISpRecoCategory_FWD_DEFINED__
242 typedef interface ISpRecoCategory ISpRecoCategory;
243 #endif
244 
245 #ifndef __ISpRecognizer3_FWD_DEFINED__
246 #define __ISpRecognizer3_FWD_DEFINED__
247 typedef interface ISpRecognizer3 ISpRecognizer3;
248 #endif
249 
250 #ifndef __ISpEnginePronunciation_FWD_DEFINED__
251 #define __ISpEnginePronunciation_FWD_DEFINED__
252 typedef interface ISpEnginePronunciation ISpEnginePronunciation;
253 #endif
254 
255 #ifndef __ISpDisplayAlternates_FWD_DEFINED__
256 #define __ISpDisplayAlternates_FWD_DEFINED__
257 typedef interface ISpDisplayAlternates ISpDisplayAlternates;
258 #endif
259 
260 #ifndef __ISpeechDataKey_FWD_DEFINED__
261 #define __ISpeechDataKey_FWD_DEFINED__
262 typedef interface ISpeechDataKey ISpeechDataKey;
263 #endif
264 
265 #ifndef __ISpeechObjectToken_FWD_DEFINED__
266 #define __ISpeechObjectToken_FWD_DEFINED__
267 typedef interface ISpeechObjectToken ISpeechObjectToken;
268 #endif
269 
270 #ifndef __ISpeechObjectTokens_FWD_DEFINED__
271 #define __ISpeechObjectTokens_FWD_DEFINED__
272 typedef interface ISpeechObjectTokens ISpeechObjectTokens;
273 #endif
274 
275 #ifndef __ISpeechObjectTokenCategory_FWD_DEFINED__
276 #define __ISpeechObjectTokenCategory_FWD_DEFINED__
277 typedef interface ISpeechObjectTokenCategory ISpeechObjectTokenCategory;
278 #endif
279 
280 #ifndef __ISpeechAudioFormat_FWD_DEFINED__
281 #define __ISpeechAudioFormat_FWD_DEFINED__
282 typedef interface ISpeechAudioFormat ISpeechAudioFormat;
283 #endif
284 
285 #ifndef __ISpeechBaseStream_FWD_DEFINED__
286 #define __ISpeechBaseStream_FWD_DEFINED__
287 typedef interface ISpeechBaseStream ISpeechBaseStream;
288 #endif
289 
290 #ifndef __ISpeechAudio_FWD_DEFINED__
291 #define __ISpeechAudio_FWD_DEFINED__
292 typedef interface ISpeechAudio ISpeechAudio;
293 #endif
294 
295 #ifndef __ISpeechMMSysAudio_FWD_DEFINED__
296 #define __ISpeechMMSysAudio_FWD_DEFINED__
297 typedef interface ISpeechMMSysAudio ISpeechMMSysAudio;
298 #endif
299 
300 #ifndef __ISpeechFileStream_FWD_DEFINED__
301 #define __ISpeechFileStream_FWD_DEFINED__
302 typedef interface ISpeechFileStream ISpeechFileStream;
303 #endif
304 
305 #ifndef __ISpeechCustomStream_FWD_DEFINED__
306 #define __ISpeechCustomStream_FWD_DEFINED__
307 typedef interface ISpeechCustomStream ISpeechCustomStream;
308 #endif
309 
310 #ifndef __ISpeechMemoryStream_FWD_DEFINED__
311 #define __ISpeechMemoryStream_FWD_DEFINED__
312 typedef interface ISpeechMemoryStream ISpeechMemoryStream;
313 #endif
314 
315 #ifndef __ISpeechAudioStatus_FWD_DEFINED__
316 #define __ISpeechAudioStatus_FWD_DEFINED__
317 typedef interface ISpeechAudioStatus ISpeechAudioStatus;
318 #endif
319 
320 #ifndef __ISpeechAudioBufferInfo_FWD_DEFINED__
321 #define __ISpeechAudioBufferInfo_FWD_DEFINED__
322 typedef interface ISpeechAudioBufferInfo ISpeechAudioBufferInfo;
323 #endif
324 
325 #ifndef __ISpeechWaveFormatEx_FWD_DEFINED__
326 #define __ISpeechWaveFormatEx_FWD_DEFINED__
327 typedef interface ISpeechWaveFormatEx ISpeechWaveFormatEx;
328 #endif
329 
330 #ifndef __ISpeechVoice_FWD_DEFINED__
331 #define __ISpeechVoice_FWD_DEFINED__
332 typedef interface ISpeechVoice ISpeechVoice;
333 #endif
334 
335 #ifndef __ISpeechVoiceStatus_FWD_DEFINED__
336 #define __ISpeechVoiceStatus_FWD_DEFINED__
337 typedef interface ISpeechVoiceStatus ISpeechVoiceStatus;
338 #endif
339 
340 #ifndef ___ISpeechVoiceEvents_FWD_DEFINED__
341 #define ___ISpeechVoiceEvents_FWD_DEFINED__
342 typedef interface _ISpeechVoiceEvents _ISpeechVoiceEvents;
343 #endif
344 
345 #ifndef __ISpeechRecognizer_FWD_DEFINED__
346 #define __ISpeechRecognizer_FWD_DEFINED__
347 typedef interface ISpeechRecognizer ISpeechRecognizer;
348 #endif
349 
350 #ifndef __ISpeechRecognizerStatus_FWD_DEFINED__
351 #define __ISpeechRecognizerStatus_FWD_DEFINED__
352 typedef interface ISpeechRecognizerStatus ISpeechRecognizerStatus;
353 #endif
354 
355 #ifndef __ISpeechRecoContext_FWD_DEFINED__
356 #define __ISpeechRecoContext_FWD_DEFINED__
357 typedef interface ISpeechRecoContext ISpeechRecoContext;
358 #endif
359 
360 #ifndef __ISpeechRecoGrammar_FWD_DEFINED__
361 #define __ISpeechRecoGrammar_FWD_DEFINED__
362 typedef interface ISpeechRecoGrammar ISpeechRecoGrammar;
363 #endif
364 
365 #ifndef ___ISpeechRecoContextEvents_FWD_DEFINED__
366 #define ___ISpeechRecoContextEvents_FWD_DEFINED__
367 typedef interface _ISpeechRecoContextEvents _ISpeechRecoContextEvents;
368 #endif
369 
370 #ifndef __ISpeechGrammarRule_FWD_DEFINED__
371 #define __ISpeechGrammarRule_FWD_DEFINED__
372 typedef interface ISpeechGrammarRule ISpeechGrammarRule;
373 #endif
374 
375 #ifndef __ISpeechGrammarRules_FWD_DEFINED__
376 #define __ISpeechGrammarRules_FWD_DEFINED__
377 typedef interface ISpeechGrammarRules ISpeechGrammarRules;
378 #endif
379 
380 #ifndef __ISpeechGrammarRuleState_FWD_DEFINED__
381 #define __ISpeechGrammarRuleState_FWD_DEFINED__
382 typedef interface ISpeechGrammarRuleState ISpeechGrammarRuleState;
383 #endif
384 
385 #ifndef __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
386 #define __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
387 typedef interface ISpeechGrammarRuleStateTransitions ISpeechGrammarRuleStateTransitions;
388 #endif
389 
390 #ifndef __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
391 #define __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
392 typedef interface ISpeechGrammarRuleStateTransition ISpeechGrammarRuleStateTransition;
393 #endif
394 
395 #ifndef __ISpeechTextSelectionInformation_FWD_DEFINED__
396 #define __ISpeechTextSelectionInformation_FWD_DEFINED__
397 typedef interface ISpeechTextSelectionInformation ISpeechTextSelectionInformation;
398 #endif
399 
400 #ifndef __ISpeechRecoResult_FWD_DEFINED__
401 #define __ISpeechRecoResult_FWD_DEFINED__
402 typedef interface ISpeechRecoResult ISpeechRecoResult;
403 #endif
404 
405 #ifndef __ISpeechXMLRecoResult_FWD_DEFINED__
406 #define __ISpeechXMLRecoResult_FWD_DEFINED__
407 typedef interface ISpeechXMLRecoResult ISpeechXMLRecoResult;
408 #endif
409 
410 #ifndef __ISpeechRecoResult2_FWD_DEFINED__
411 #define __ISpeechRecoResult2_FWD_DEFINED__
412 typedef interface ISpeechRecoResult2 ISpeechRecoResult2;
413 #endif
414 
415 #ifndef __ISpeechRecoResultDispatch_FWD_DEFINED__
416 #define __ISpeechRecoResultDispatch_FWD_DEFINED__
417 typedef interface ISpeechRecoResultDispatch ISpeechRecoResultDispatch;
418 #endif
419 
420 #ifndef __ISpeechPhraseInfoBuilder_FWD_DEFINED__
421 #define __ISpeechPhraseInfoBuilder_FWD_DEFINED__
422 typedef interface ISpeechPhraseInfoBuilder ISpeechPhraseInfoBuilder;
423 #endif
424 
425 #ifndef __ISpeechRecoResultTimes_FWD_DEFINED__
426 #define __ISpeechRecoResultTimes_FWD_DEFINED__
427 typedef interface ISpeechRecoResultTimes ISpeechRecoResultTimes;
428 #endif
429 
430 #ifndef __ISpeechPhraseAlternate_FWD_DEFINED__
431 #define __ISpeechPhraseAlternate_FWD_DEFINED__
432 typedef interface ISpeechPhraseAlternate ISpeechPhraseAlternate;
433 #endif
434 
435 #ifndef __ISpeechPhraseAlternates_FWD_DEFINED__
436 #define __ISpeechPhraseAlternates_FWD_DEFINED__
437 typedef interface ISpeechPhraseAlternates ISpeechPhraseAlternates;
438 #endif
439 
440 #ifndef __ISpeechPhraseInfo_FWD_DEFINED__
441 #define __ISpeechPhraseInfo_FWD_DEFINED__
442 typedef interface ISpeechPhraseInfo ISpeechPhraseInfo;
443 #endif
444 
445 #ifndef __ISpeechPhraseElement_FWD_DEFINED__
446 #define __ISpeechPhraseElement_FWD_DEFINED__
447 typedef interface ISpeechPhraseElement ISpeechPhraseElement;
448 #endif
449 
450 #ifndef __ISpeechPhraseElements_FWD_DEFINED__
451 #define __ISpeechPhraseElements_FWD_DEFINED__
452 typedef interface ISpeechPhraseElements ISpeechPhraseElements;
453 #endif
454 
455 #ifndef __ISpeechPhraseReplacement_FWD_DEFINED__
456 #define __ISpeechPhraseReplacement_FWD_DEFINED__
457 typedef interface ISpeechPhraseReplacement ISpeechPhraseReplacement;
458 #endif
459 
460 #ifndef __ISpeechPhraseReplacements_FWD_DEFINED__
461 #define __ISpeechPhraseReplacements_FWD_DEFINED__
462 typedef interface ISpeechPhraseReplacements ISpeechPhraseReplacements;
463 #endif
464 
465 #ifndef __ISpeechPhraseProperty_FWD_DEFINED__
466 #define __ISpeechPhraseProperty_FWD_DEFINED__
467 typedef interface ISpeechPhraseProperty ISpeechPhraseProperty;
468 #endif
469 
470 #ifndef __ISpeechPhraseProperties_FWD_DEFINED__
471 #define __ISpeechPhraseProperties_FWD_DEFINED__
472 typedef interface ISpeechPhraseProperties ISpeechPhraseProperties;
473 #endif
474 
475 #ifndef __ISpeechPhraseRule_FWD_DEFINED__
476 #define __ISpeechPhraseRule_FWD_DEFINED__
477 typedef interface ISpeechPhraseRule ISpeechPhraseRule;
478 #endif
479 
480 #ifndef __ISpeechPhraseRules_FWD_DEFINED__
481 #define __ISpeechPhraseRules_FWD_DEFINED__
482 typedef interface ISpeechPhraseRules ISpeechPhraseRules;
483 #endif
484 
485 #ifndef __ISpeechLexiconWords_FWD_DEFINED__
486 #define __ISpeechLexiconWords_FWD_DEFINED__
487 typedef interface ISpeechLexiconWords ISpeechLexiconWords;
488 #endif
489 
490 #ifndef __ISpeechLexicon_FWD_DEFINED__
491 #define __ISpeechLexicon_FWD_DEFINED__
492 typedef interface ISpeechLexicon ISpeechLexicon;
493 #endif
494 
495 #ifndef __ISpeechLexiconWord_FWD_DEFINED__
496 #define __ISpeechLexiconWord_FWD_DEFINED__
497 typedef interface ISpeechLexiconWord ISpeechLexiconWord;
498 #endif
499 
500 #ifndef __ISpeechLexiconPronunciations_FWD_DEFINED__
501 #define __ISpeechLexiconPronunciations_FWD_DEFINED__
502 typedef interface ISpeechLexiconPronunciations ISpeechLexiconPronunciations;
503 #endif
504 
505 #ifndef __ISpeechLexiconPronunciation_FWD_DEFINED__
506 #define __ISpeechLexiconPronunciation_FWD_DEFINED__
507 typedef interface ISpeechLexiconPronunciation ISpeechLexiconPronunciation;
508 #endif
509 
510 #ifndef __ISpeechPhoneConverter_FWD_DEFINED__
511 #define __ISpeechPhoneConverter_FWD_DEFINED__
512 typedef interface ISpeechPhoneConverter ISpeechPhoneConverter;
513 #endif
514 
515 #ifndef __SpNotifyTranslator_FWD_DEFINED__
516 #define __SpNotifyTranslator_FWD_DEFINED__
517 #ifdef __cplusplus
518 typedef class SpNotifyTranslator SpNotifyTranslator;
519 #else
520 typedef struct SpNotifyTranslator SpNotifyTranslator;
521 #endif /* defined __cplusplus */
522 #endif /* defined __SpNotifyTranslator_FWD_DEFINED__ */
523 
524 #ifndef __SpObjectTokenCategory_FWD_DEFINED__
525 #define __SpObjectTokenCategory_FWD_DEFINED__
526 #ifdef __cplusplus
527 typedef class SpObjectTokenCategory SpObjectTokenCategory;
528 #else
529 typedef struct SpObjectTokenCategory SpObjectTokenCategory;
530 #endif /* defined __cplusplus */
531 #endif /* defined __SpObjectTokenCategory_FWD_DEFINED__ */
532 
533 #ifndef __SpObjectToken_FWD_DEFINED__
534 #define __SpObjectToken_FWD_DEFINED__
535 #ifdef __cplusplus
536 typedef class SpObjectToken SpObjectToken;
537 #else
538 typedef struct SpObjectToken SpObjectToken;
539 #endif /* defined __cplusplus */
540 #endif /* defined __SpObjectToken_FWD_DEFINED__ */
541 
542 #ifndef __SpResourceManager_FWD_DEFINED__
543 #define __SpResourceManager_FWD_DEFINED__
544 #ifdef __cplusplus
545 typedef class SpResourceManager SpResourceManager;
546 #else
547 typedef struct SpResourceManager SpResourceManager;
548 #endif /* defined __cplusplus */
549 #endif /* defined __SpResourceManager_FWD_DEFINED__ */
550 
551 #ifndef __SpStreamFormatConverter_FWD_DEFINED__
552 #define __SpStreamFormatConverter_FWD_DEFINED__
553 #ifdef __cplusplus
554 typedef class SpStreamFormatConverter SpStreamFormatConverter;
555 #else
556 typedef struct SpStreamFormatConverter SpStreamFormatConverter;
557 #endif /* defined __cplusplus */
558 #endif /* defined __SpStreamFormatConverter_FWD_DEFINED__ */
559 
560 #ifndef __SpMMAudioEnum_FWD_DEFINED__
561 #define __SpMMAudioEnum_FWD_DEFINED__
562 #ifdef __cplusplus
563 typedef class SpMMAudioEnum SpMMAudioEnum;
564 #else
565 typedef struct SpMMAudioEnum SpMMAudioEnum;
566 #endif /* defined __cplusplus */
567 #endif /* defined __SpMMAudioEnum_FWD_DEFINED__ */
568 
569 #ifndef __SpMMAudioIn_FWD_DEFINED__
570 #define __SpMMAudioIn_FWD_DEFINED__
571 #ifdef __cplusplus
572 typedef class SpMMAudioIn SpMMAudioIn;
573 #else
574 typedef struct SpMMAudioIn SpMMAudioIn;
575 #endif /* defined __cplusplus */
576 #endif /* defined __SpMMAudioIn_FWD_DEFINED__ */
577 
578 #ifndef __SpMMAudioOut_FWD_DEFINED__
579 #define __SpMMAudioOut_FWD_DEFINED__
580 #ifdef __cplusplus
581 typedef class SpMMAudioOut SpMMAudioOut;
582 #else
583 typedef struct SpMMAudioOut SpMMAudioOut;
584 #endif /* defined __cplusplus */
585 #endif /* defined __SpMMAudioOut_FWD_DEFINED__ */
586 
587 #ifndef __SpStream_FWD_DEFINED__
588 #define __SpStream_FWD_DEFINED__
589 #ifdef __cplusplus
590 typedef class SpStream SpStream;
591 #else
592 typedef struct SpStream SpStream;
593 #endif /* defined __cplusplus */
594 #endif /* defined __SpStream_FWD_DEFINED__ */
595 
596 #ifndef __SpVoice_FWD_DEFINED__
597 #define __SpVoice_FWD_DEFINED__
598 #ifdef __cplusplus
599 typedef class SpVoice SpVoice;
600 #else
601 typedef struct SpVoice SpVoice;
602 #endif /* defined __cplusplus */
603 #endif /* defined __SpVoice_FWD_DEFINED__ */
604 
605 #ifndef __SpSharedRecoContext_FWD_DEFINED__
606 #define __SpSharedRecoContext_FWD_DEFINED__
607 #ifdef __cplusplus
608 typedef class SpSharedRecoContext SpSharedRecoContext;
609 #else
610 typedef struct SpSharedRecoContext SpSharedRecoContext;
611 #endif /* defined __cplusplus */
612 #endif /* defined __SpSharedRecoContext_FWD_DEFINED__ */
613 
614 #ifndef __SpInprocRecognizer_FWD_DEFINED__
615 #define __SpInprocRecognizer_FWD_DEFINED__
616 #ifdef __cplusplus
617 typedef class SpInprocRecognizer SpInprocRecognizer;
618 #else
619 typedef struct SpInprocRecognizer SpInprocRecognizer;
620 #endif /* defined __cplusplus */
621 #endif /* defined __SpInprocRecognizer_FWD_DEFINED__ */
622 
623 #ifndef __SpSharedRecognizer_FWD_DEFINED__
624 #define __SpSharedRecognizer_FWD_DEFINED__
625 #ifdef __cplusplus
626 typedef class SpSharedRecognizer SpSharedRecognizer;
627 #else
628 typedef struct SpSharedRecognizer SpSharedRecognizer;
629 #endif /* defined __cplusplus */
630 #endif /* defined __SpSharedRecognizer_FWD_DEFINED__ */
631 
632 #ifndef __SpLexicon_FWD_DEFINED__
633 #define __SpLexicon_FWD_DEFINED__
634 #ifdef __cplusplus
635 typedef class SpLexicon SpLexicon;
636 #else
637 typedef struct SpLexicon SpLexicon;
638 #endif /* defined __cplusplus */
639 #endif /* defined __SpLexicon_FWD_DEFINED__ */
640 
641 #ifndef __SpUnCompressedLexicon_FWD_DEFINED__
642 #define __SpUnCompressedLexicon_FWD_DEFINED__
643 #ifdef __cplusplus
644 typedef class SpUnCompressedLexicon SpUnCompressedLexicon;
645 #else
646 typedef struct SpUnCompressedLexicon SpUnCompressedLexicon;
647 #endif /* defined __cplusplus */
648 #endif /* defined __SpUnCompressedLexicon_FWD_DEFINED__ */
649 
650 #ifndef __SpCompressedLexicon_FWD_DEFINED__
651 #define __SpCompressedLexicon_FWD_DEFINED__
652 #ifdef __cplusplus
653 typedef class SpCompressedLexicon SpCompressedLexicon;
654 #else
655 typedef struct SpCompressedLexicon SpCompressedLexicon;
656 #endif /* defined __cplusplus */
657 #endif /* defined __SpCompressedLexicon_FWD_DEFINED__ */
658 
659 #ifndef __SpShortcut_FWD_DEFINED__
660 #define __SpShortcut_FWD_DEFINED__
661 #ifdef __cplusplus
662 typedef class SpShortcut SpShortcut;
663 #else
664 typedef struct SpShortcut SpShortcut;
665 #endif /* defined __cplusplus */
666 #endif /* defined __SpShortcut_FWD_DEFINED__ */
667 
668 #ifndef __SpPhoneConverter_FWD_DEFINED__
669 #define __SpPhoneConverter_FWD_DEFINED__
670 #ifdef __cplusplus
671 typedef class SpPhoneConverter SpPhoneConverter;
672 #else
673 typedef struct SpPhoneConverter SpPhoneConverter;
674 #endif /* defined __cplusplus */
675 #endif /* defined __SpPhoneConverter_FWD_DEFINED__ */
676 
677 #ifndef __SpPhoneticAlphabetConverter_FWD_DEFINED__
678 #define __SpPhoneticAlphabetConverter_FWD_DEFINED__
679 #ifdef __cplusplus
680 typedef class SpPhoneticAlphabetConverter SpPhoneticAlphabetConverter;
681 #else
682 typedef struct SpPhoneticAlphabetConverter SpPhoneticAlphabetConverter;
683 #endif /* defined __cplusplus */
684 #endif /* defined __SpPhoneticAlphabetConverter_FWD_DEFINED__ */
685 
686 #ifndef __SpNullPhoneConverter_FWD_DEFINED__
687 #define __SpNullPhoneConverter_FWD_DEFINED__
688 #ifdef __cplusplus
689 typedef class SpNullPhoneConverter SpNullPhoneConverter;
690 #else
691 typedef struct SpNullPhoneConverter SpNullPhoneConverter;
692 #endif /* defined __cplusplus */
693 #endif /* defined __SpNullPhoneConverter_FWD_DEFINED__ */
694 
695 #ifndef __SpTextSelectionInformation_FWD_DEFINED__
696 #define __SpTextSelectionInformation_FWD_DEFINED__
697 #ifdef __cplusplus
698 typedef class SpTextSelectionInformation SpTextSelectionInformation;
699 #else
700 typedef struct SpTextSelectionInformation SpTextSelectionInformation;
701 #endif /* defined __cplusplus */
702 #endif /* defined __SpTextSelectionInformation_FWD_DEFINED__ */
703 
704 #ifndef __SpPhraseInfoBuilder_FWD_DEFINED__
705 #define __SpPhraseInfoBuilder_FWD_DEFINED__
706 #ifdef __cplusplus
707 typedef class SpPhraseInfoBuilder SpPhraseInfoBuilder;
708 #else
709 typedef struct SpPhraseInfoBuilder SpPhraseInfoBuilder;
710 #endif /* defined __cplusplus */
711 #endif /* defined __SpPhraseInfoBuilder_FWD_DEFINED__ */
712 
713 #ifndef __SpAudioFormat_FWD_DEFINED__
714 #define __SpAudioFormat_FWD_DEFINED__
715 #ifdef __cplusplus
716 typedef class SpAudioFormat SpAudioFormat;
717 #else
718 typedef struct SpAudioFormat SpAudioFormat;
719 #endif /* defined __cplusplus */
720 #endif /* defined __SpAudioFormat_FWD_DEFINED__ */
721 
722 #ifndef __SpWaveFormatEx_FWD_DEFINED__
723 #define __SpWaveFormatEx_FWD_DEFINED__
724 #ifdef __cplusplus
725 typedef class SpWaveFormatEx SpWaveFormatEx;
726 #else
727 typedef struct SpWaveFormatEx SpWaveFormatEx;
728 #endif /* defined __cplusplus */
729 #endif /* defined __SpWaveFormatEx_FWD_DEFINED__ */
730 
731 #ifndef __SpInProcRecoContext_FWD_DEFINED__
732 #define __SpInProcRecoContext_FWD_DEFINED__
733 #ifdef __cplusplus
734 typedef class SpInProcRecoContext SpInProcRecoContext;
735 #else
736 typedef struct SpInProcRecoContext SpInProcRecoContext;
737 #endif /* defined __cplusplus */
738 #endif /* defined __SpInProcRecoContext_FWD_DEFINED__ */
739 
740 #ifndef __SpCustomStream_FWD_DEFINED__
741 #define __SpCustomStream_FWD_DEFINED__
742 #ifdef __cplusplus
743 typedef class SpCustomStream SpCustomStream;
744 #else
745 typedef struct SpCustomStream SpCustomStream;
746 #endif /* defined __cplusplus */
747 #endif /* defined __SpCustomStream_FWD_DEFINED__ */
748 
749 #ifndef __SpFileStream_FWD_DEFINED__
750 #define __SpFileStream_FWD_DEFINED__
751 #ifdef __cplusplus
752 typedef class SpFileStream SpFileStream;
753 #else
754 typedef struct SpFileStream SpFileStream;
755 #endif /* defined __cplusplus */
756 #endif /* defined __SpFileStream_FWD_DEFINED__ */
757 
758 #ifndef __SpMemoryStream_FWD_DEFINED__
759 #define __SpMemoryStream_FWD_DEFINED__
760 #ifdef __cplusplus
761 typedef class SpMemoryStream SpMemoryStream;
762 #else
763 typedef struct SpMemoryStream SpMemoryStream;
764 #endif /* defined __cplusplus */
765 #endif /* defined __SpMemoryStream_FWD_DEFINED__ */
766 
767 /* Headers for imported files */
768 
769 #include <oaidl.h>
770 #include <ocidl.h>
771 
772 #ifdef __cplusplus
773 extern "C" {
774 #endif
775 
776 #ifndef _SAPI_VER
777 #error "you have to include <sapi.h> header before this."
778 #endif
779 #if 0
780 typedef struct WAVEFORMATEX {
781     WORD wFormatTag;
782     WORD nChannels;
783     DWORD nSamplesPerSec;
784     DWORD nAvgBytesPerSec;
785     WORD nBlockAlign;
786     WORD wBitsPerSample;
787     WORD cbSize;
788 } WAVEFORMATEX;
789 #endif
790 #ifndef __ISpNotifySource_FWD_DEFINED__
791 #define __ISpNotifySource_FWD_DEFINED__
792 typedef interface ISpNotifySource ISpNotifySource;
793 #endif
794 
795 #ifndef __ISpNotifySink_FWD_DEFINED__
796 #define __ISpNotifySink_FWD_DEFINED__
797 typedef interface ISpNotifySink ISpNotifySink;
798 #endif
799 
800 #ifndef __ISpNotifyTranslator_FWD_DEFINED__
801 #define __ISpNotifyTranslator_FWD_DEFINED__
802 typedef interface ISpNotifyTranslator ISpNotifyTranslator;
803 #endif
804 
805 #ifndef __ISpDataKey_FWD_DEFINED__
806 #define __ISpDataKey_FWD_DEFINED__
807 typedef interface ISpDataKey ISpDataKey;
808 #endif
809 
810 #ifndef __ISpObjectTokenCategory_FWD_DEFINED__
811 #define __ISpObjectTokenCategory_FWD_DEFINED__
812 typedef interface ISpObjectTokenCategory ISpObjectTokenCategory;
813 #endif
814 
815 #ifndef __ISpObjectToken_FWD_DEFINED__
816 #define __ISpObjectToken_FWD_DEFINED__
817 typedef interface ISpObjectToken ISpObjectToken;
818 #endif
819 
820 #ifndef __IEnumSpObjectTokens_FWD_DEFINED__
821 #define __IEnumSpObjectTokens_FWD_DEFINED__
822 typedef interface IEnumSpObjectTokens IEnumSpObjectTokens;
823 #endif
824 
825 #ifndef __ISpObjectWithToken_FWD_DEFINED__
826 #define __ISpObjectWithToken_FWD_DEFINED__
827 typedef interface ISpObjectWithToken ISpObjectWithToken;
828 #endif
829 
830 #ifndef __ISpResourceManager_FWD_DEFINED__
831 #define __ISpResourceManager_FWD_DEFINED__
832 typedef interface ISpResourceManager ISpResourceManager;
833 #endif
834 
835 #ifndef __ISpEventSource_FWD_DEFINED__
836 #define __ISpEventSource_FWD_DEFINED__
837 typedef interface ISpEventSource ISpEventSource;
838 #endif
839 
840 #ifndef __ISpEventSink_FWD_DEFINED__
841 #define __ISpEventSink_FWD_DEFINED__
842 typedef interface ISpEventSink ISpEventSink;
843 #endif
844 
845 #ifndef __ISpStreamFormat_FWD_DEFINED__
846 #define __ISpStreamFormat_FWD_DEFINED__
847 typedef interface ISpStreamFormat ISpStreamFormat;
848 #endif
849 
850 #ifndef __ISpStream_FWD_DEFINED__
851 #define __ISpStream_FWD_DEFINED__
852 typedef interface ISpStream ISpStream;
853 #endif
854 
855 #ifndef __ISpStreamFormatConverter_FWD_DEFINED__
856 #define __ISpStreamFormatConverter_FWD_DEFINED__
857 typedef interface ISpStreamFormatConverter ISpStreamFormatConverter;
858 #endif
859 
860 #ifndef __ISpAudio_FWD_DEFINED__
861 #define __ISpAudio_FWD_DEFINED__
862 typedef interface ISpAudio ISpAudio;
863 #endif
864 
865 #ifndef __ISpMMSysAudio_FWD_DEFINED__
866 #define __ISpMMSysAudio_FWD_DEFINED__
867 typedef interface ISpMMSysAudio ISpMMSysAudio;
868 #endif
869 
870 #ifndef __ISpTranscript_FWD_DEFINED__
871 #define __ISpTranscript_FWD_DEFINED__
872 typedef interface ISpTranscript ISpTranscript;
873 #endif
874 
875 #ifndef __ISpVoice_FWD_DEFINED__
876 #define __ISpVoice_FWD_DEFINED__
877 typedef interface ISpVoice ISpVoice;
878 #endif
879 
880 #ifndef __ISpRecoResult_FWD_DEFINED__
881 #define __ISpRecoResult_FWD_DEFINED__
882 typedef interface ISpRecoResult ISpRecoResult;
883 #endif
884 
885 #ifndef __ISpRecoContext_FWD_DEFINED__
886 #define __ISpRecoContext_FWD_DEFINED__
887 typedef interface ISpRecoContext ISpRecoContext;
888 #endif
889 
890 #ifndef __ISpRecognizer_FWD_DEFINED__
891 #define __ISpRecognizer_FWD_DEFINED__
892 typedef interface ISpRecognizer ISpRecognizer;
893 #endif
894 
895 #ifndef __ISpProperties_FWD_DEFINED__
896 #define __ISpProperties_FWD_DEFINED__
897 typedef interface ISpProperties ISpProperties;
898 #endif
899 
900 #ifndef __ISpLexicon_FWD_DEFINED__
901 #define __ISpLexicon_FWD_DEFINED__
902 typedef interface ISpLexicon ISpLexicon;
903 #endif
904 
905 #ifndef __ISpPhoneConverter_FWD_DEFINED__
906 #define __ISpPhoneConverter_FWD_DEFINED__
907 typedef interface ISpPhoneConverter ISpPhoneConverter;
908 #endif
909 
910 #ifndef __ISpPhrase_FWD_DEFINED__
911 #define __ISpPhrase_FWD_DEFINED__
912 typedef interface ISpPhrase ISpPhrase;
913 #endif
914 
915 #ifndef __ISpRecoContext2_FWD_DEFINED__
916 #define __ISpRecoContext2_FWD_DEFINED__
917 typedef interface ISpRecoContext2 ISpRecoContext2;
918 #endif
919 
920 #ifndef __ISpRecognizer2_FWD_DEFINED__
921 #define __ISpRecognizer2_FWD_DEFINED__
922 typedef interface ISpRecognizer2 ISpRecognizer2;
923 #endif
924 
925 #ifndef __ISpShortcut_FWD_DEFINED__
926 #define __ISpShortcut_FWD_DEFINED__
927 typedef interface ISpShortcut ISpShortcut;
928 #endif
929 
930 #ifndef __ISpPhoneticAlphabetConverter_FWD_DEFINED__
931 #define __ISpPhoneticAlphabetConverter_FWD_DEFINED__
932 typedef interface ISpPhoneticAlphabetConverter ISpPhoneticAlphabetConverter;
933 #endif
934 
935 #ifndef __ISpPhoneticAlphabetSelection_FWD_DEFINED__
936 #define __ISpPhoneticAlphabetSelection_FWD_DEFINED__
937 typedef interface ISpPhoneticAlphabetSelection ISpPhoneticAlphabetSelection;
938 #endif
939 
940 #ifndef __ISpRecoGrammar2_FWD_DEFINED__
941 #define __ISpRecoGrammar2_FWD_DEFINED__
942 typedef interface ISpRecoGrammar2 ISpRecoGrammar2;
943 #endif
944 
945 #ifndef __ISpeechResourceLoader_FWD_DEFINED__
946 #define __ISpeechResourceLoader_FWD_DEFINED__
947 typedef interface ISpeechResourceLoader ISpeechResourceLoader;
948 #endif
949 
950 #ifndef __ISpRecognizer3_FWD_DEFINED__
951 #define __ISpRecognizer3_FWD_DEFINED__
952 typedef interface ISpRecognizer3 ISpRecognizer3;
953 #endif
954 
955 typedef enum SPDATAKEYLOCATION {
956     SPDKL_DefaultLocation = 0,
957     SPDKL_CurrentUser = 1,
958     SPDKL_LocalMachine = 2,
959     SPDKL_CurrentConfig = 5
960 } SPDATAKEYLOCATION;
961 typedef enum SPSTREAMFORMAT {
962     SPSF_Default = -1,
963     SPSF_NoAssignedFormat = 0,
964     SPSF_Text = 1,
965     SPSF_NonStandardFormat = 2,
966     SPSF_ExtendedAudioFormat = 3,
967     SPSF_8kHz8BitMono = 4,
968     SPSF_8kHz8BitStereo = 5,
969     SPSF_8kHz16BitMono = 6,
970     SPSF_8kHz16BitStereo = 7,
971     SPSF_11kHz8BitMono = 8,
972     SPSF_11kHz8BitStereo = 9,
973     SPSF_11kHz16BitMono = 10,
974     SPSF_11kHz16BitStereo = 11,
975     SPSF_12kHz8BitMono = 12,
976     SPSF_12kHz8BitStereo = 13,
977     SPSF_12kHz16BitMono = 14,
978     SPSF_12kHz16BitStereo = 15,
979     SPSF_16kHz8BitMono = 16,
980     SPSF_16kHz8BitStereo = 17,
981     SPSF_16kHz16BitMono = 18,
982     SPSF_16kHz16BitStereo = 19,
983     SPSF_22kHz8BitMono = 20,
984     SPSF_22kHz8BitStereo = 21,
985     SPSF_22kHz16BitMono = 22,
986     SPSF_22kHz16BitStereo = 23,
987     SPSF_24kHz8BitMono = 24,
988     SPSF_24kHz8BitStereo = 25,
989     SPSF_24kHz16BitMono = 26,
990     SPSF_24kHz16BitStereo = 27,
991     SPSF_32kHz8BitMono = 28,
992     SPSF_32kHz8BitStereo = 29,
993     SPSF_32kHz16BitMono = 30,
994     SPSF_32kHz16BitStereo = 31,
995     SPSF_44kHz8BitMono = 32,
996     SPSF_44kHz8BitStereo = 33,
997     SPSF_44kHz16BitMono = 34,
998     SPSF_44kHz16BitStereo = 35,
999     SPSF_48kHz8BitMono = 36,
1000     SPSF_48kHz8BitStereo = 37,
1001     SPSF_48kHz16BitMono = 38,
1002     SPSF_48kHz16BitStereo = 39,
1003     SPSF_TrueSpeech_8kHz1BitMono = 40,
1004     SPSF_CCITT_ALaw_8kHzMono = 41,
1005     SPSF_CCITT_ALaw_8kHzStereo = 42,
1006     SPSF_CCITT_ALaw_11kHzMono = 43,
1007     SPSF_CCITT_ALaw_11kHzStereo = 44,
1008     SPSF_CCITT_ALaw_22kHzMono = 45,
1009     SPSF_CCITT_ALaw_22kHzStereo = 46,
1010     SPSF_CCITT_ALaw_44kHzMono = 47,
1011     SPSF_CCITT_ALaw_44kHzStereo = 48,
1012     SPSF_CCITT_uLaw_8kHzMono = 49,
1013     SPSF_CCITT_uLaw_8kHzStereo = 50,
1014     SPSF_CCITT_uLaw_11kHzMono = 51,
1015     SPSF_CCITT_uLaw_11kHzStereo = 52,
1016     SPSF_CCITT_uLaw_22kHzMono = 53,
1017     SPSF_CCITT_uLaw_22kHzStereo = 54,
1018     SPSF_CCITT_uLaw_44kHzMono = 55,
1019     SPSF_CCITT_uLaw_44kHzStereo = 56,
1020     SPSF_ADPCM_8kHzMono = 57,
1021     SPSF_ADPCM_8kHzStereo = 58,
1022     SPSF_ADPCM_11kHzMono = 59,
1023     SPSF_ADPCM_11kHzStereo = 60,
1024     SPSF_ADPCM_22kHzMono = 61,
1025     SPSF_ADPCM_22kHzStereo = 62,
1026     SPSF_ADPCM_44kHzMono = 63,
1027     SPSF_ADPCM_44kHzStereo = 64,
1028     SPSF_GSM610_8kHzMono = 65,
1029     SPSF_GSM610_11kHzMono = 66,
1030     SPSF_GSM610_22kHzMono = 67,
1031     SPSF_GSM610_44kHzMono = 68,
1032     SPSF_NUM_FORMATS = 69
1033 } SPSTREAMFORMAT;
1034 typedef enum SPEVENTLPARAMTYPE {
1035     SPET_LPARAM_IS_UNDEFINED = 0,
1036     SPET_LPARAM_IS_TOKEN = 1,
1037     SPET_LPARAM_IS_OBJECT = 2,
1038     SPET_LPARAM_IS_POINTER = 3,
1039     SPET_LPARAM_IS_STRING = 4
1040 } SPEVENTLPARAMTYPE;
1041 typedef enum SPEVENTENUM {
1042     SPEI_UNDEFINED = 0,
1043     SPEI_START_INPUT_STREAM = 1,
1044     SPEI_END_INPUT_STREAM = 2,
1045     SPEI_VOICE_CHANGE = 3,
1046     SPEI_TTS_BOOKMARK = 4,
1047     SPEI_WORD_BOUNDARY = 5,
1048     SPEI_PHONEME = 6,
1049     SPEI_SENTENCE_BOUNDARY = 7,
1050     SPEI_VISEME = 8,
1051     SPEI_TTS_AUDIO_LEVEL = 9,
1052     SPEI_TTS_PRIVATE = 15,
1053     SPEI_MIN_TTS = 1,
1054     SPEI_MAX_TTS = 15,
1055     SPEI_END_SR_STREAM = 34,
1056     SPEI_SOUND_START = 35,
1057     SPEI_SOUND_END = 36,
1058     SPEI_PHRASE_START = 37,
1059     SPEI_RECOGNITION = 38,
1060     SPEI_HYPOTHESIS = 39,
1061     SPEI_SR_BOOKMARK = 40,
1062     SPEI_PROPERTY_NUM_CHANGE = 41,
1063     SPEI_PROPERTY_STRING_CHANGE = 42,
1064     SPEI_FALSE_RECOGNITION = 43,
1065     SPEI_INTERFERENCE = 44,
1066     SPEI_REQUEST_UI = 45,
1067     SPEI_RECO_STATE_CHANGE = 46,
1068     SPEI_ADAPTATION = 47,
1069     SPEI_START_SR_STREAM = 48,
1070     SPEI_RECO_OTHER_CONTEXT = 49,
1071     SPEI_SR_AUDIO_LEVEL = 50,
1072     SPEI_SR_RETAINEDAUDIO = 51,
1073     SPEI_SR_PRIVATE = 52,
1074     SPEI_ACTIVE_CATEGORY_CHANGED = 53,
1075     SPEI_RESERVED5 = 54,
1076     SPEI_RESERVED6 = 55,
1077     SPEI_MIN_SR = 34,
1078     SPEI_MAX_SR = 55,
1079     SPEI_RESERVED1 = 30,
1080     SPEI_RESERVED2 = 33,
1081     SPEI_RESERVED3 = 63
1082 } SPEVENTENUM;
1083 typedef enum SPINTERFERENCE {
1084     SPINTERFERENCE_NONE = 0,
1085     SPINTERFERENCE_NOISE = 1,
1086     SPINTERFERENCE_NOSIGNAL = 2,
1087     SPINTERFERENCE_TOOLOUD = 3,
1088     SPINTERFERENCE_TOOQUIET = 4,
1089     SPINTERFERENCE_TOOFAST = 5,
1090     SPINTERFERENCE_TOOSLOW = 6,
1091     SPINTERFERENCE_LATENCY_WARNING = 7,
1092     SPINTERFERENCE_LATENCY_TRUNCATE_BEGIN = 8,
1093     SPINTERFERENCE_LATENCY_TRUNCATE_END = 9
1094 } SPINTERFERENCE;
1095 typedef enum SPENDSRSTREAMFLAGS {
1096     SPESF_NONE = 0,
1097     SPESF_STREAM_RELEASED = 1,
1098     SPESF_EMULATED = 2
1099 } SPENDSRSTREAMFLAGS;
1100 typedef enum SPVFEATURE {
1101     SPVFEATURE_STRESSED = 1,
1102     SPVFEATURE_EMPHASIS = 2
1103 } SPVFEATURE;
1104 typedef enum SPVISEMES {
1105     SP_VISEME_0 = 0,
1106     SP_VISEME_1 = 1,
1107     SP_VISEME_2 = 2,
1108     SP_VISEME_3 = 3,
1109     SP_VISEME_4 = 4,
1110     SP_VISEME_5 = 5,
1111     SP_VISEME_6 = 6,
1112     SP_VISEME_7 = 7,
1113     SP_VISEME_8 = 8,
1114     SP_VISEME_9 = 9,
1115     SP_VISEME_10 = 10,
1116     SP_VISEME_11 = 11,
1117     SP_VISEME_12 = 12,
1118     SP_VISEME_13 = 13,
1119     SP_VISEME_14 = 14,
1120     SP_VISEME_15 = 15,
1121     SP_VISEME_16 = 16,
1122     SP_VISEME_17 = 17,
1123     SP_VISEME_18 = 18,
1124     SP_VISEME_19 = 19,
1125     SP_VISEME_20 = 20,
1126     SP_VISEME_21 = 21
1127 } SPVISEMES;
1128 typedef enum SPFILEMODE {
1129     SPFM_OPEN_READONLY = 0,
1130     SPFM_OPEN_READWRITE = 1,
1131     SPFM_CREATE = 2,
1132     SPFM_CREATE_ALWAYS = 3,
1133     SPFM_NUM_MODES = 4
1134 } SPFILEMODE;
1135 typedef enum _SPAUDIOSTATE {
1136     SPAS_CLOSED = 0,
1137     SPAS_STOP = 1,
1138     SPAS_PAUSE = 2,
1139     SPAS_RUN = 3
1140 } SPAUDIOSTATE;
1141 typedef enum SPDISPLYATTRIBUTES {
1142     SPAF_ONE_TRAILING_SPACE = 0x2,
1143     SPAF_TWO_TRAILING_SPACES = 0x4,
1144     SPAF_CONSUME_LEADING_SPACES = 0x8,
1145     SPAF_BUFFER_POSITION = 0x10,
1146     SPAF_ALL = 0x1f,
1147     SPAF_USER_SPECIFIED = 0x80
1148 } SPDISPLAYATTRIBUTES;
1149 typedef enum SPPHRASEPROPERTYUNIONTYPE {
1150     SPPPUT_UNUSED = 0,
1151     SPPPUT_ARRAY_INDEX = 1
1152 } SPPHRASEPROPERTYUNIONTYPE;
1153 typedef enum SPSEMANTICFORMAT {
1154     SPSMF_SAPI_PROPERTIES = 0,
1155     SPSMF_SRGS_SEMANTICINTERPRETATION_MS = 1,
1156     SPSMF_SRGS_SAPIPROPERTIES = 2,
1157     SPSMF_UPS = 4,
1158     SPSMF_SRGS_SEMANTICINTERPRETATION_W3C = 8
1159 } SPSEMANTICFORMAT;
1160 typedef enum SPRECOEVENTFLAGS {
1161     SPREF_AutoPause = 0x1,
1162     SPREF_Emulated = 0x2,
1163     SPREF_SMLTimeout = 0x4,
1164     SPREF_ExtendableParse = 0x8,
1165     SPREF_ReSent = 0x10,
1166     SPREF_Hypothesis = 0x20,
1167     SPREF_FalseRecognition = 0x40
1168 } SPRECOEVENTFLAGS;
1169 typedef enum SPPARTOFSPEECH {
1170     SPPS_NotOverriden = -1,
1171     SPPS_Unknown = 0,
1172     SPPS_Noun = 0x1000,
1173     SPPS_Verb = 0x2000,
1174     SPPS_Modifier = 0x3000,
1175     SPPS_Function = 0x4000,
1176     SPPS_Interjection = 0x5000,
1177     SPPS_Noncontent = 0x6000,
1178     SPPS_LMA = 0x7000,
1179     SPPS_SuppressWord = 0xf000
1180 } SPPARTOFSPEECH;
1181 typedef enum SPLEXICONTYPE {
1182     eLEXTYPE_USER = 0x1,
1183     eLEXTYPE_APP = 0x2,
1184     eLEXTYPE_VENDORLEXICON = 0x4,
1185     eLEXTYPE_LETTERTOSOUND = 0x8,
1186     eLEXTYPE_MORPHOLOGY = 0x10,
1187     eLEXTYPE_RESERVED4 = 0x20,
1188     eLEXTYPE_USER_SHORTCUT = 0x40,
1189     eLEXTYPE_RESERVED6 = 0x80,
1190     eLEXTYPE_RESERVED7 = 0x100,
1191     eLEXTYPE_RESERVED8 = 0x200,
1192     eLEXTYPE_RESERVED9 = 0x400,
1193     eLEXTYPE_RESERVED10 = 0x800,
1194     eLEXTYPE_PRIVATE1 = 0x1000,
1195     eLEXTYPE_PRIVATE2 = 0x2000,
1196     eLEXTYPE_PRIVATE3 = 0x4000,
1197     eLEXTYPE_PRIVATE4 = 0x8000,
1198     eLEXTYPE_PRIVATE5 = 0x10000,
1199     eLEXTYPE_PRIVATE6 = 0x20000,
1200     eLEXTYPE_PRIVATE7 = 0x40000,
1201     eLEXTYPE_PRIVATE8 = 0x80000,
1202     eLEXTYPE_PRIVATE9 = 0x100000,
1203     eLEXTYPE_PRIVATE10 = 0x200000,
1204     eLEXTYPE_PRIVATE11 = 0x400000,
1205     eLEXTYPE_PRIVATE12 = 0x800000,
1206     eLEXTYPE_PRIVATE13 = 0x1000000,
1207     eLEXTYPE_PRIVATE14 = 0x2000000,
1208     eLEXTYPE_PRIVATE15 = 0x4000000,
1209     eLEXTYPE_PRIVATE16 = 0x8000000,
1210     eLEXTYPE_PRIVATE17 = 0x10000000,
1211     eLEXTYPE_PRIVATE18 = 0x20000000,
1212     eLEXTYPE_PRIVATE19 = 0x40000000,
1213     eLEXTYPE_PRIVATE20 = 0x80000000
1214 } SPLEXICONTYPE;
1215 typedef enum SPWORDTYPE {
1216     eWORDTYPE_ADDED = 1,
1217     eWORDTYPE_DELETED = 2
1218 } SPWORDTYPE;
1219 typedef enum SPPRONUNCIATIONFLAGS {
1220     ePRONFLAG_USED = 1
1221 } SPPRONUNCIATIONFLAGS;
1222 typedef enum SPSHORTCUTTYPE {
1223     SPSHT_NotOverriden = -1,
1224     SPSHT_Unknown = 0,
1225     SPSHT_EMAIL = 0x1000,
1226     SPSHT_OTHER = 0x2000,
1227     SPPS_RESERVED1 = 0x3000,
1228     SPPS_RESERVED2 = 0x4000,
1229     SPPS_RESERVED3 = 0x5000,
1230     SPPS_RESERVED4 = 0xf000
1231 } SPSHORTCUTTYPE;
1232 typedef enum SPVALUETYPE {
1233     SPDF_PROPERTY = 0x1,
1234     SPDF_REPLACEMENT = 0x2,
1235     SPDF_RULE = 0x4,
1236     SPDF_DISPLAYTEXT = 0x8,
1237     SPDF_LEXICALFORM = 0x10,
1238     SPDF_PRONUNCIATION = 0x20,
1239     SPDF_AUDIO = 0x40,
1240     SPDF_ALTERNATES = 0x80,
1241     SPDF_ALL = 0xff
1242 } SPVALUETYPE;
1243 typedef enum SPPHRASERNG {
1244     SPPR_ALL_ELEMENTS = -1
1245 } SPPHRASERNG;
1246 typedef enum SPVACTIONS {
1247     SPVA_Speak = 0,
1248     SPVA_Silence = 1,
1249     SPVA_Pronounce = 2,
1250     SPVA_Bookmark = 3,
1251     SPVA_SpellOut = 4,
1252     SPVA_Section = 5,
1253     SPVA_ParseUnknownTag = 6
1254 } SPVACTIONS;
1255 typedef enum SPRUNSTATE {
1256     SPRS_DONE = 1,
1257     SPRS_IS_SPEAKING = 2
1258 } SPRUNSTATE;
1259 typedef enum SPVLIMITS {
1260     SPMIN_VOLUME = 0,
1261     SPMAX_VOLUME = 100,
1262     SPMIN_RATE = -10,
1263     SPMAX_RATE = 10
1264 } SPVLIMITS;
1265 typedef enum SPVPRIORITY {
1266     SPVPRI_NORMAL = 0,
1267     SPVPRI_ALERT = 1,
1268     SPVPRI_OVER = 2
1269 } SPVPRIORITY;
1270 EXTERN_C const GUID SPDFID_Text;
1271 EXTERN_C const GUID SPDFID_WaveFormatEx;
1272 
1273 #define SP_LOW_CONFIDENCE (-1)
1274 
1275 #define SP_NORMAL_CONFIDENCE (0)
1276 
1277 #define SP_HIGH_CONFIDENCE (+1)
1278 
1279 #define DEFAULT_WEIGHT (1)
1280 
1281 #define SP_MAX_WORD_LENGTH (128)
1282 
1283 #define SP_MAX_PRON_LENGTH (384)
1284 
1285 #define SP_EMULATE_RESULT (0x40000000)
1286 
1287 
1288 #ifdef __cplusplus
1289 interface ISpNotifyCallback {
1290   virtual HRESULT STDMETHODCALLTYPE NotifyCallback(WPARAM wParam, LPARAM lParam) = 0;
1291 };
1292 #else
1293 typedef void *ISpNotifyCallback;
1294 #endif
1295 #if 0
1296 typedef void *SPNOTIFYCALLBACK;
1297 #else
1298 typedef void __stdcall SPNOTIFYCALLBACK(WPARAM wParam, LPARAM lParam);
1299 #endif
1300 /*****************************************************************************
1301  * ISpNotifySource interface
1302  */
1303 #ifndef __ISpNotifySource_INTERFACE_DEFINED__
1304 #define __ISpNotifySource_INTERFACE_DEFINED__
1305 
1306 DEFINE_GUID(IID_ISpNotifySource, 0x5eff4aef, 0x8487, 0x11d2, 0x96,0x1c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
1307 #if defined(__cplusplus) && !defined(CINTERFACE)
1308 MIDL_INTERFACE("5eff4aef-8487-11d2-961c-00c04f8ee628")
1309 ISpNotifySource : public IUnknown
1310 {
1311     virtual HRESULT STDMETHODCALLTYPE SetNotifySink(
1312         ISpNotifySink *pNotifySink) = 0;
1313 
1314     virtual HRESULT STDMETHODCALLTYPE SetNotifyWindowMessage(
1315         HWND hWnd,
1316         UINT Msg,
1317         WPARAM wParam,
1318         LPARAM lParam) = 0;
1319 
1320     virtual HRESULT STDMETHODCALLTYPE SetNotifyCallbackFunction(
1321         SPNOTIFYCALLBACK *pfnCallback,
1322         WPARAM wParam,
1323         LPARAM lParam) = 0;
1324 
1325     virtual HRESULT STDMETHODCALLTYPE SetNotifyCallbackInterface(
1326         ISpNotifyCallback *pSpCallback,
1327         WPARAM wParam,
1328         LPARAM lParam) = 0;
1329 
1330     virtual HRESULT STDMETHODCALLTYPE SetNotifyWin32Event(
1331         ) = 0;
1332 
1333     virtual HRESULT STDMETHODCALLTYPE WaitForNotifyEvent(
1334         DWORD dwMilliseconds) = 0;
1335 
1336     virtual HANDLE STDMETHODCALLTYPE GetNotifyEventHandle(
1337         ) = 0;
1338 
1339 };
1340 #ifdef __CRT_UUID_DECL
1341 __CRT_UUID_DECL(ISpNotifySource, 0x5eff4aef, 0x8487, 0x11d2, 0x96,0x1c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
1342 #endif
1343 #else
1344 typedef struct ISpNotifySourceVtbl {
1345     BEGIN_INTERFACE
1346 
1347     /*** IUnknown methods ***/
1348     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1349         ISpNotifySource* This,
1350         REFIID riid,
1351         void **ppvObject);
1352 
1353     ULONG (STDMETHODCALLTYPE *AddRef)(
1354         ISpNotifySource* This);
1355 
1356     ULONG (STDMETHODCALLTYPE *Release)(
1357         ISpNotifySource* This);
1358 
1359     /*** ISpNotifySource methods ***/
1360     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
1361         ISpNotifySource* This,
1362         ISpNotifySink *pNotifySink);
1363 
1364     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
1365         ISpNotifySource* This,
1366         HWND hWnd,
1367         UINT Msg,
1368         WPARAM wParam,
1369         LPARAM lParam);
1370 
1371     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
1372         ISpNotifySource* This,
1373         SPNOTIFYCALLBACK *pfnCallback,
1374         WPARAM wParam,
1375         LPARAM lParam);
1376 
1377     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
1378         ISpNotifySource* This,
1379         ISpNotifyCallback *pSpCallback,
1380         WPARAM wParam,
1381         LPARAM lParam);
1382 
1383     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
1384         ISpNotifySource* This);
1385 
1386     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
1387         ISpNotifySource* This,
1388         DWORD dwMilliseconds);
1389 
1390     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
1391         ISpNotifySource* This);
1392 
1393     END_INTERFACE
1394 } ISpNotifySourceVtbl;
1395 interface ISpNotifySource {
1396     CONST_VTBL ISpNotifySourceVtbl* lpVtbl;
1397 };
1398 
1399 #ifdef COBJMACROS
1400 #ifndef WIDL_C_INLINE_WRAPPERS
1401 /*** IUnknown methods ***/
1402 #define ISpNotifySource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1403 #define ISpNotifySource_AddRef(This) (This)->lpVtbl->AddRef(This)
1404 #define ISpNotifySource_Release(This) (This)->lpVtbl->Release(This)
1405 /*** ISpNotifySource methods ***/
1406 #define ISpNotifySource_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
1407 #define ISpNotifySource_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
1408 #define ISpNotifySource_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
1409 #define ISpNotifySource_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
1410 #define ISpNotifySource_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
1411 #define ISpNotifySource_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
1412 #define ISpNotifySource_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
1413 #else
1414 /*** IUnknown methods ***/
1415 static FORCEINLINE HRESULT ISpNotifySource_QueryInterface(ISpNotifySource* This,REFIID riid,void **ppvObject) {
1416     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1417 }
1418 static FORCEINLINE ULONG ISpNotifySource_AddRef(ISpNotifySource* This) {
1419     return This->lpVtbl->AddRef(This);
1420 }
1421 static FORCEINLINE ULONG ISpNotifySource_Release(ISpNotifySource* This) {
1422     return This->lpVtbl->Release(This);
1423 }
1424 /*** ISpNotifySource methods ***/
1425 static FORCEINLINE HRESULT ISpNotifySource_SetNotifySink(ISpNotifySource* This,ISpNotifySink *pNotifySink) {
1426     return This->lpVtbl->SetNotifySink(This,pNotifySink);
1427 }
1428 static FORCEINLINE HRESULT ISpNotifySource_SetNotifyWindowMessage(ISpNotifySource* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
1429     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
1430 }
1431 static FORCEINLINE HRESULT ISpNotifySource_SetNotifyCallbackFunction(ISpNotifySource* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
1432     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
1433 }
1434 static FORCEINLINE HRESULT ISpNotifySource_SetNotifyCallbackInterface(ISpNotifySource* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
1435     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
1436 }
1437 static FORCEINLINE HRESULT ISpNotifySource_SetNotifyWin32Event(ISpNotifySource* This) {
1438     return This->lpVtbl->SetNotifyWin32Event(This);
1439 }
1440 static FORCEINLINE HRESULT ISpNotifySource_WaitForNotifyEvent(ISpNotifySource* This,DWORD dwMilliseconds) {
1441     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
1442 }
1443 static FORCEINLINE HANDLE ISpNotifySource_GetNotifyEventHandle(ISpNotifySource* This) {
1444     return This->lpVtbl->GetNotifyEventHandle(This);
1445 }
1446 #endif
1447 #endif
1448 
1449 #endif
1450 
1451 HRESULT STDMETHODCALLTYPE ISpNotifySource_SetNotifySink_Proxy(
1452     ISpNotifySource* This,
1453     ISpNotifySink *pNotifySink);
1454 void __RPC_STUB ISpNotifySource_SetNotifySink_Stub(
1455     IRpcStubBuffer* This,
1456     IRpcChannelBuffer* pRpcChannelBuffer,
1457     PRPC_MESSAGE pRpcMessage,
1458     DWORD* pdwStubPhase);
1459 
1460 #endif  /* __ISpNotifySource_INTERFACE_DEFINED__ */
1461 
1462 /*****************************************************************************
1463  * ISpNotifySink interface
1464  */
1465 #ifndef __ISpNotifySink_INTERFACE_DEFINED__
1466 #define __ISpNotifySink_INTERFACE_DEFINED__
1467 
1468 DEFINE_GUID(IID_ISpNotifySink, 0x259684dc, 0x37c3, 0x11d2, 0x96,0x03, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
1469 #if defined(__cplusplus) && !defined(CINTERFACE)
1470 MIDL_INTERFACE("259684dc-37c3-11d2-9603-00c04f8ee628")
1471 ISpNotifySink : public IUnknown
1472 {
1473     virtual HRESULT STDMETHODCALLTYPE Notify(
1474         ) = 0;
1475 
1476 };
1477 #ifdef __CRT_UUID_DECL
1478 __CRT_UUID_DECL(ISpNotifySink, 0x259684dc, 0x37c3, 0x11d2, 0x96,0x03, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
1479 #endif
1480 #else
1481 typedef struct ISpNotifySinkVtbl {
1482     BEGIN_INTERFACE
1483 
1484     /*** IUnknown methods ***/
1485     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1486         ISpNotifySink* This,
1487         REFIID riid,
1488         void **ppvObject);
1489 
1490     ULONG (STDMETHODCALLTYPE *AddRef)(
1491         ISpNotifySink* This);
1492 
1493     ULONG (STDMETHODCALLTYPE *Release)(
1494         ISpNotifySink* This);
1495 
1496     /*** ISpNotifySink methods ***/
1497     HRESULT (STDMETHODCALLTYPE *Notify)(
1498         ISpNotifySink* This);
1499 
1500     END_INTERFACE
1501 } ISpNotifySinkVtbl;
1502 interface ISpNotifySink {
1503     CONST_VTBL ISpNotifySinkVtbl* lpVtbl;
1504 };
1505 
1506 #ifdef COBJMACROS
1507 #ifndef WIDL_C_INLINE_WRAPPERS
1508 /*** IUnknown methods ***/
1509 #define ISpNotifySink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1510 #define ISpNotifySink_AddRef(This) (This)->lpVtbl->AddRef(This)
1511 #define ISpNotifySink_Release(This) (This)->lpVtbl->Release(This)
1512 /*** ISpNotifySink methods ***/
1513 #define ISpNotifySink_Notify(This) (This)->lpVtbl->Notify(This)
1514 #else
1515 /*** IUnknown methods ***/
1516 static FORCEINLINE HRESULT ISpNotifySink_QueryInterface(ISpNotifySink* This,REFIID riid,void **ppvObject) {
1517     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1518 }
1519 static FORCEINLINE ULONG ISpNotifySink_AddRef(ISpNotifySink* This) {
1520     return This->lpVtbl->AddRef(This);
1521 }
1522 static FORCEINLINE ULONG ISpNotifySink_Release(ISpNotifySink* This) {
1523     return This->lpVtbl->Release(This);
1524 }
1525 /*** ISpNotifySink methods ***/
1526 static FORCEINLINE HRESULT ISpNotifySink_Notify(ISpNotifySink* This) {
1527     return This->lpVtbl->Notify(This);
1528 }
1529 #endif
1530 #endif
1531 
1532 #endif
1533 
1534 HRESULT STDMETHODCALLTYPE ISpNotifySink_Notify_Proxy(
1535     ISpNotifySink* This);
1536 void __RPC_STUB ISpNotifySink_Notify_Stub(
1537     IRpcStubBuffer* This,
1538     IRpcChannelBuffer* pRpcChannelBuffer,
1539     PRPC_MESSAGE pRpcMessage,
1540     DWORD* pdwStubPhase);
1541 
1542 #endif  /* __ISpNotifySink_INTERFACE_DEFINED__ */
1543 
1544 /*****************************************************************************
1545  * ISpNotifyTranslator interface
1546  */
1547 #ifndef __ISpNotifyTranslator_INTERFACE_DEFINED__
1548 #define __ISpNotifyTranslator_INTERFACE_DEFINED__
1549 
1550 DEFINE_GUID(IID_ISpNotifyTranslator, 0xaca16614, 0x5d3d, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
1551 #if defined(__cplusplus) && !defined(CINTERFACE)
1552 MIDL_INTERFACE("aca16614-5d3d-11d2-960e-00c04f8ee628")
1553 ISpNotifyTranslator : public ISpNotifySink
1554 {
1555     virtual HRESULT STDMETHODCALLTYPE InitWindowMessage(
1556         HWND hWnd,
1557         UINT Msg,
1558         WPARAM wParam,
1559         LPARAM lParam) = 0;
1560 
1561     virtual HRESULT STDMETHODCALLTYPE InitCallback(
1562         SPNOTIFYCALLBACK *pfnCallback,
1563         WPARAM wParam,
1564         LPARAM lParam) = 0;
1565 
1566     virtual HRESULT STDMETHODCALLTYPE InitSpNotifyCallback(
1567         ISpNotifyCallback *pSpCallback,
1568         WPARAM wParam,
1569         LPARAM lParam) = 0;
1570 
1571     virtual HRESULT STDMETHODCALLTYPE InitWin32Event(
1572         HANDLE hEvent,
1573         WINBOOL fCloseHandleOnRelease) = 0;
1574 
1575     virtual HRESULT STDMETHODCALLTYPE Wait(
1576         DWORD dwMilliseconds) = 0;
1577 
1578     virtual HANDLE STDMETHODCALLTYPE GetEventHandle(
1579         ) = 0;
1580 
1581 };
1582 #ifdef __CRT_UUID_DECL
1583 __CRT_UUID_DECL(ISpNotifyTranslator, 0xaca16614, 0x5d3d, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
1584 #endif
1585 #else
1586 typedef struct ISpNotifyTranslatorVtbl {
1587     BEGIN_INTERFACE
1588 
1589     /*** IUnknown methods ***/
1590     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1591         ISpNotifyTranslator* This,
1592         REFIID riid,
1593         void **ppvObject);
1594 
1595     ULONG (STDMETHODCALLTYPE *AddRef)(
1596         ISpNotifyTranslator* This);
1597 
1598     ULONG (STDMETHODCALLTYPE *Release)(
1599         ISpNotifyTranslator* This);
1600 
1601     /*** ISpNotifySink methods ***/
1602     HRESULT (STDMETHODCALLTYPE *Notify)(
1603         ISpNotifyTranslator* This);
1604 
1605     /*** ISpNotifyTranslator methods ***/
1606     HRESULT (STDMETHODCALLTYPE *InitWindowMessage)(
1607         ISpNotifyTranslator* This,
1608         HWND hWnd,
1609         UINT Msg,
1610         WPARAM wParam,
1611         LPARAM lParam);
1612 
1613     HRESULT (STDMETHODCALLTYPE *InitCallback)(
1614         ISpNotifyTranslator* This,
1615         SPNOTIFYCALLBACK *pfnCallback,
1616         WPARAM wParam,
1617         LPARAM lParam);
1618 
1619     HRESULT (STDMETHODCALLTYPE *InitSpNotifyCallback)(
1620         ISpNotifyTranslator* This,
1621         ISpNotifyCallback *pSpCallback,
1622         WPARAM wParam,
1623         LPARAM lParam);
1624 
1625     HRESULT (STDMETHODCALLTYPE *InitWin32Event)(
1626         ISpNotifyTranslator* This,
1627         HANDLE hEvent,
1628         WINBOOL fCloseHandleOnRelease);
1629 
1630     HRESULT (STDMETHODCALLTYPE *Wait)(
1631         ISpNotifyTranslator* This,
1632         DWORD dwMilliseconds);
1633 
1634     HANDLE (STDMETHODCALLTYPE *GetEventHandle)(
1635         ISpNotifyTranslator* This);
1636 
1637     END_INTERFACE
1638 } ISpNotifyTranslatorVtbl;
1639 interface ISpNotifyTranslator {
1640     CONST_VTBL ISpNotifyTranslatorVtbl* lpVtbl;
1641 };
1642 
1643 #ifdef COBJMACROS
1644 #ifndef WIDL_C_INLINE_WRAPPERS
1645 /*** IUnknown methods ***/
1646 #define ISpNotifyTranslator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1647 #define ISpNotifyTranslator_AddRef(This) (This)->lpVtbl->AddRef(This)
1648 #define ISpNotifyTranslator_Release(This) (This)->lpVtbl->Release(This)
1649 /*** ISpNotifySink methods ***/
1650 #define ISpNotifyTranslator_Notify(This) (This)->lpVtbl->Notify(This)
1651 /*** ISpNotifyTranslator methods ***/
1652 #define ISpNotifyTranslator_InitWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->InitWindowMessage(This,hWnd,Msg,wParam,lParam)
1653 #define ISpNotifyTranslator_InitCallback(This,pfnCallback,wParam,lParam) (This)->lpVtbl->InitCallback(This,pfnCallback,wParam,lParam)
1654 #define ISpNotifyTranslator_InitSpNotifyCallback(This,pSpCallback,wParam,lParam) (This)->lpVtbl->InitSpNotifyCallback(This,pSpCallback,wParam,lParam)
1655 #define ISpNotifyTranslator_InitWin32Event(This,hEvent,fCloseHandleOnRelease) (This)->lpVtbl->InitWin32Event(This,hEvent,fCloseHandleOnRelease)
1656 #define ISpNotifyTranslator_Wait(This,dwMilliseconds) (This)->lpVtbl->Wait(This,dwMilliseconds)
1657 #define ISpNotifyTranslator_GetEventHandle(This) (This)->lpVtbl->GetEventHandle(This)
1658 #else
1659 /*** IUnknown methods ***/
1660 static FORCEINLINE HRESULT ISpNotifyTranslator_QueryInterface(ISpNotifyTranslator* This,REFIID riid,void **ppvObject) {
1661     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1662 }
1663 static FORCEINLINE ULONG ISpNotifyTranslator_AddRef(ISpNotifyTranslator* This) {
1664     return This->lpVtbl->AddRef(This);
1665 }
1666 static FORCEINLINE ULONG ISpNotifyTranslator_Release(ISpNotifyTranslator* This) {
1667     return This->lpVtbl->Release(This);
1668 }
1669 /*** ISpNotifySink methods ***/
1670 static FORCEINLINE HRESULT ISpNotifyTranslator_Notify(ISpNotifyTranslator* This) {
1671     return This->lpVtbl->Notify(This);
1672 }
1673 /*** ISpNotifyTranslator methods ***/
1674 static FORCEINLINE HRESULT ISpNotifyTranslator_InitWindowMessage(ISpNotifyTranslator* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
1675     return This->lpVtbl->InitWindowMessage(This,hWnd,Msg,wParam,lParam);
1676 }
1677 static FORCEINLINE HRESULT ISpNotifyTranslator_InitCallback(ISpNotifyTranslator* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
1678     return This->lpVtbl->InitCallback(This,pfnCallback,wParam,lParam);
1679 }
1680 static FORCEINLINE HRESULT ISpNotifyTranslator_InitSpNotifyCallback(ISpNotifyTranslator* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
1681     return This->lpVtbl->InitSpNotifyCallback(This,pSpCallback,wParam,lParam);
1682 }
1683 static FORCEINLINE HRESULT ISpNotifyTranslator_InitWin32Event(ISpNotifyTranslator* This,HANDLE hEvent,WINBOOL fCloseHandleOnRelease) {
1684     return This->lpVtbl->InitWin32Event(This,hEvent,fCloseHandleOnRelease);
1685 }
1686 static FORCEINLINE HRESULT ISpNotifyTranslator_Wait(ISpNotifyTranslator* This,DWORD dwMilliseconds) {
1687     return This->lpVtbl->Wait(This,dwMilliseconds);
1688 }
1689 static FORCEINLINE HANDLE ISpNotifyTranslator_GetEventHandle(ISpNotifyTranslator* This) {
1690     return This->lpVtbl->GetEventHandle(This);
1691 }
1692 #endif
1693 #endif
1694 
1695 #endif
1696 
1697 HRESULT STDMETHODCALLTYPE ISpNotifyTranslator_InitWindowMessage_Proxy(
1698     ISpNotifyTranslator* This,
1699     HWND hWnd,
1700     UINT Msg,
1701     WPARAM wParam,
1702     LPARAM lParam);
1703 void __RPC_STUB ISpNotifyTranslator_InitWindowMessage_Stub(
1704     IRpcStubBuffer* This,
1705     IRpcChannelBuffer* pRpcChannelBuffer,
1706     PRPC_MESSAGE pRpcMessage,
1707     DWORD* pdwStubPhase);
1708 HRESULT STDMETHODCALLTYPE ISpNotifyTranslator_InitCallback_Proxy(
1709     ISpNotifyTranslator* This,
1710     SPNOTIFYCALLBACK *pfnCallback,
1711     WPARAM wParam,
1712     LPARAM lParam);
1713 void __RPC_STUB ISpNotifyTranslator_InitCallback_Stub(
1714     IRpcStubBuffer* This,
1715     IRpcChannelBuffer* pRpcChannelBuffer,
1716     PRPC_MESSAGE pRpcMessage,
1717     DWORD* pdwStubPhase);
1718 HRESULT STDMETHODCALLTYPE ISpNotifyTranslator_InitSpNotifyCallback_Proxy(
1719     ISpNotifyTranslator* This,
1720     ISpNotifyCallback *pSpCallback,
1721     WPARAM wParam,
1722     LPARAM lParam);
1723 void __RPC_STUB ISpNotifyTranslator_InitSpNotifyCallback_Stub(
1724     IRpcStubBuffer* This,
1725     IRpcChannelBuffer* pRpcChannelBuffer,
1726     PRPC_MESSAGE pRpcMessage,
1727     DWORD* pdwStubPhase);
1728 HRESULT STDMETHODCALLTYPE ISpNotifyTranslator_InitWin32Event_Proxy(
1729     ISpNotifyTranslator* This,
1730     HANDLE hEvent,
1731     WINBOOL fCloseHandleOnRelease);
1732 void __RPC_STUB ISpNotifyTranslator_InitWin32Event_Stub(
1733     IRpcStubBuffer* This,
1734     IRpcChannelBuffer* pRpcChannelBuffer,
1735     PRPC_MESSAGE pRpcMessage,
1736     DWORD* pdwStubPhase);
1737 HRESULT STDMETHODCALLTYPE ISpNotifyTranslator_Wait_Proxy(
1738     ISpNotifyTranslator* This,
1739     DWORD dwMilliseconds);
1740 void __RPC_STUB ISpNotifyTranslator_Wait_Stub(
1741     IRpcStubBuffer* This,
1742     IRpcChannelBuffer* pRpcChannelBuffer,
1743     PRPC_MESSAGE pRpcMessage,
1744     DWORD* pdwStubPhase);
1745 HANDLE STDMETHODCALLTYPE ISpNotifyTranslator_GetEventHandle_Proxy(
1746     ISpNotifyTranslator* This);
1747 void __RPC_STUB ISpNotifyTranslator_GetEventHandle_Stub(
1748     IRpcStubBuffer* This,
1749     IRpcChannelBuffer* pRpcChannelBuffer,
1750     PRPC_MESSAGE pRpcMessage,
1751     DWORD* pdwStubPhase);
1752 
1753 #endif  /* __ISpNotifyTranslator_INTERFACE_DEFINED__ */
1754 
1755 /*****************************************************************************
1756  * ISpDataKey interface
1757  */
1758 #ifndef __ISpDataKey_INTERFACE_DEFINED__
1759 #define __ISpDataKey_INTERFACE_DEFINED__
1760 
1761 DEFINE_GUID(IID_ISpDataKey, 0x14056581, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
1762 #if defined(__cplusplus) && !defined(CINTERFACE)
1763 MIDL_INTERFACE("14056581-e16c-11d2-bb90-00c04f8ee6c0")
1764 ISpDataKey : public IUnknown
1765 {
1766     virtual HRESULT STDMETHODCALLTYPE SetData(
1767         LPCWSTR pszValueName,
1768         ULONG cbData,
1769         const BYTE *pData) = 0;
1770 
1771     virtual HRESULT STDMETHODCALLTYPE GetData(
1772         LPCWSTR pszValueName,
1773         ULONG *pcbData,
1774         BYTE *pData) = 0;
1775 
1776     virtual HRESULT STDMETHODCALLTYPE SetStringValue(
1777         LPCWSTR pszValueName,
1778         LPCWSTR pszValue) = 0;
1779 
1780     virtual HRESULT STDMETHODCALLTYPE GetStringValue(
1781         LPCWSTR pszValueName,
1782         LPWSTR *ppszValue) = 0;
1783 
1784     virtual HRESULT STDMETHODCALLTYPE SetDWORD(
1785         LPCWSTR pszValueName,
1786         DWORD dwValue) = 0;
1787 
1788     virtual HRESULT STDMETHODCALLTYPE GetDWORD(
1789         LPCWSTR pszValueName,
1790         DWORD *pdwValue) = 0;
1791 
1792     virtual HRESULT STDMETHODCALLTYPE OpenKey(
1793         LPCWSTR pszSubKeyName,
1794         ISpDataKey **ppSubKey) = 0;
1795 
1796     virtual HRESULT STDMETHODCALLTYPE CreateKey(
1797         LPCWSTR pszSubKey,
1798         ISpDataKey **ppSubKey) = 0;
1799 
1800     virtual HRESULT STDMETHODCALLTYPE DeleteKey(
1801         LPCWSTR pszSubKey) = 0;
1802 
1803     virtual HRESULT STDMETHODCALLTYPE DeleteValue(
1804         LPCWSTR pszValueName) = 0;
1805 
1806     virtual HRESULT STDMETHODCALLTYPE EnumKeys(
1807         ULONG Index,
1808         LPWSTR *ppszSubKeyName) = 0;
1809 
1810     virtual HRESULT STDMETHODCALLTYPE EnumValues(
1811         ULONG Index,
1812         LPWSTR *ppszValueName) = 0;
1813 
1814 };
1815 #ifdef __CRT_UUID_DECL
1816 __CRT_UUID_DECL(ISpDataKey, 0x14056581, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
1817 #endif
1818 #else
1819 typedef struct ISpDataKeyVtbl {
1820     BEGIN_INTERFACE
1821 
1822     /*** IUnknown methods ***/
1823     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1824         ISpDataKey* This,
1825         REFIID riid,
1826         void **ppvObject);
1827 
1828     ULONG (STDMETHODCALLTYPE *AddRef)(
1829         ISpDataKey* This);
1830 
1831     ULONG (STDMETHODCALLTYPE *Release)(
1832         ISpDataKey* This);
1833 
1834     /*** ISpDataKey methods ***/
1835     HRESULT (STDMETHODCALLTYPE *SetData)(
1836         ISpDataKey* This,
1837         LPCWSTR pszValueName,
1838         ULONG cbData,
1839         const BYTE *pData);
1840 
1841     HRESULT (STDMETHODCALLTYPE *GetData)(
1842         ISpDataKey* This,
1843         LPCWSTR pszValueName,
1844         ULONG *pcbData,
1845         BYTE *pData);
1846 
1847     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
1848         ISpDataKey* This,
1849         LPCWSTR pszValueName,
1850         LPCWSTR pszValue);
1851 
1852     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
1853         ISpDataKey* This,
1854         LPCWSTR pszValueName,
1855         LPWSTR *ppszValue);
1856 
1857     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
1858         ISpDataKey* This,
1859         LPCWSTR pszValueName,
1860         DWORD dwValue);
1861 
1862     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
1863         ISpDataKey* This,
1864         LPCWSTR pszValueName,
1865         DWORD *pdwValue);
1866 
1867     HRESULT (STDMETHODCALLTYPE *OpenKey)(
1868         ISpDataKey* This,
1869         LPCWSTR pszSubKeyName,
1870         ISpDataKey **ppSubKey);
1871 
1872     HRESULT (STDMETHODCALLTYPE *CreateKey)(
1873         ISpDataKey* This,
1874         LPCWSTR pszSubKey,
1875         ISpDataKey **ppSubKey);
1876 
1877     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
1878         ISpDataKey* This,
1879         LPCWSTR pszSubKey);
1880 
1881     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
1882         ISpDataKey* This,
1883         LPCWSTR pszValueName);
1884 
1885     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
1886         ISpDataKey* This,
1887         ULONG Index,
1888         LPWSTR *ppszSubKeyName);
1889 
1890     HRESULT (STDMETHODCALLTYPE *EnumValues)(
1891         ISpDataKey* This,
1892         ULONG Index,
1893         LPWSTR *ppszValueName);
1894 
1895     END_INTERFACE
1896 } ISpDataKeyVtbl;
1897 interface ISpDataKey {
1898     CONST_VTBL ISpDataKeyVtbl* lpVtbl;
1899 };
1900 
1901 #ifdef COBJMACROS
1902 #ifndef WIDL_C_INLINE_WRAPPERS
1903 /*** IUnknown methods ***/
1904 #define ISpDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1905 #define ISpDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
1906 #define ISpDataKey_Release(This) (This)->lpVtbl->Release(This)
1907 /*** ISpDataKey methods ***/
1908 #define ISpDataKey_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
1909 #define ISpDataKey_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
1910 #define ISpDataKey_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
1911 #define ISpDataKey_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
1912 #define ISpDataKey_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
1913 #define ISpDataKey_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
1914 #define ISpDataKey_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
1915 #define ISpDataKey_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
1916 #define ISpDataKey_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
1917 #define ISpDataKey_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
1918 #define ISpDataKey_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
1919 #define ISpDataKey_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
1920 #else
1921 /*** IUnknown methods ***/
1922 static FORCEINLINE HRESULT ISpDataKey_QueryInterface(ISpDataKey* This,REFIID riid,void **ppvObject) {
1923     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1924 }
1925 static FORCEINLINE ULONG ISpDataKey_AddRef(ISpDataKey* This) {
1926     return This->lpVtbl->AddRef(This);
1927 }
1928 static FORCEINLINE ULONG ISpDataKey_Release(ISpDataKey* This) {
1929     return This->lpVtbl->Release(This);
1930 }
1931 /*** ISpDataKey methods ***/
1932 static FORCEINLINE HRESULT ISpDataKey_SetData(ISpDataKey* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
1933     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
1934 }
1935 static FORCEINLINE HRESULT ISpDataKey_GetData(ISpDataKey* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
1936     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
1937 }
1938 static FORCEINLINE HRESULT ISpDataKey_SetStringValue(ISpDataKey* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
1939     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
1940 }
1941 static FORCEINLINE HRESULT ISpDataKey_GetStringValue(ISpDataKey* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
1942     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
1943 }
1944 static FORCEINLINE HRESULT ISpDataKey_SetDWORD(ISpDataKey* This,LPCWSTR pszValueName,DWORD dwValue) {
1945     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
1946 }
1947 static FORCEINLINE HRESULT ISpDataKey_GetDWORD(ISpDataKey* This,LPCWSTR pszValueName,DWORD *pdwValue) {
1948     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
1949 }
1950 static FORCEINLINE HRESULT ISpDataKey_OpenKey(ISpDataKey* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
1951     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
1952 }
1953 static FORCEINLINE HRESULT ISpDataKey_CreateKey(ISpDataKey* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
1954     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
1955 }
1956 static FORCEINLINE HRESULT ISpDataKey_DeleteKey(ISpDataKey* This,LPCWSTR pszSubKey) {
1957     return This->lpVtbl->DeleteKey(This,pszSubKey);
1958 }
1959 static FORCEINLINE HRESULT ISpDataKey_DeleteValue(ISpDataKey* This,LPCWSTR pszValueName) {
1960     return This->lpVtbl->DeleteValue(This,pszValueName);
1961 }
1962 static FORCEINLINE HRESULT ISpDataKey_EnumKeys(ISpDataKey* This,ULONG Index,LPWSTR *ppszSubKeyName) {
1963     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
1964 }
1965 static FORCEINLINE HRESULT ISpDataKey_EnumValues(ISpDataKey* This,ULONG Index,LPWSTR *ppszValueName) {
1966     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
1967 }
1968 #endif
1969 #endif
1970 
1971 #endif
1972 
1973 HRESULT STDMETHODCALLTYPE ISpDataKey_SetData_Proxy(
1974     ISpDataKey* This,
1975     LPCWSTR pszValueName,
1976     ULONG cbData,
1977     const BYTE *pData);
1978 void __RPC_STUB ISpDataKey_SetData_Stub(
1979     IRpcStubBuffer* This,
1980     IRpcChannelBuffer* pRpcChannelBuffer,
1981     PRPC_MESSAGE pRpcMessage,
1982     DWORD* pdwStubPhase);
1983 HRESULT STDMETHODCALLTYPE ISpDataKey_GetData_Proxy(
1984     ISpDataKey* This,
1985     LPCWSTR pszValueName,
1986     ULONG *pcbData,
1987     BYTE *pData);
1988 void __RPC_STUB ISpDataKey_GetData_Stub(
1989     IRpcStubBuffer* This,
1990     IRpcChannelBuffer* pRpcChannelBuffer,
1991     PRPC_MESSAGE pRpcMessage,
1992     DWORD* pdwStubPhase);
1993 HRESULT STDMETHODCALLTYPE ISpDataKey_SetStringValue_Proxy(
1994     ISpDataKey* This,
1995     LPCWSTR pszValueName,
1996     LPCWSTR pszValue);
1997 void __RPC_STUB ISpDataKey_SetStringValue_Stub(
1998     IRpcStubBuffer* This,
1999     IRpcChannelBuffer* pRpcChannelBuffer,
2000     PRPC_MESSAGE pRpcMessage,
2001     DWORD* pdwStubPhase);
2002 HRESULT STDMETHODCALLTYPE ISpDataKey_GetStringValue_Proxy(
2003     ISpDataKey* This,
2004     LPCWSTR pszValueName,
2005     LPWSTR *ppszValue);
2006 void __RPC_STUB ISpDataKey_GetStringValue_Stub(
2007     IRpcStubBuffer* This,
2008     IRpcChannelBuffer* pRpcChannelBuffer,
2009     PRPC_MESSAGE pRpcMessage,
2010     DWORD* pdwStubPhase);
2011 HRESULT STDMETHODCALLTYPE ISpDataKey_SetDWORD_Proxy(
2012     ISpDataKey* This,
2013     LPCWSTR pszValueName,
2014     DWORD dwValue);
2015 void __RPC_STUB ISpDataKey_SetDWORD_Stub(
2016     IRpcStubBuffer* This,
2017     IRpcChannelBuffer* pRpcChannelBuffer,
2018     PRPC_MESSAGE pRpcMessage,
2019     DWORD* pdwStubPhase);
2020 HRESULT STDMETHODCALLTYPE ISpDataKey_GetDWORD_Proxy(
2021     ISpDataKey* This,
2022     LPCWSTR pszValueName,
2023     DWORD *pdwValue);
2024 void __RPC_STUB ISpDataKey_GetDWORD_Stub(
2025     IRpcStubBuffer* This,
2026     IRpcChannelBuffer* pRpcChannelBuffer,
2027     PRPC_MESSAGE pRpcMessage,
2028     DWORD* pdwStubPhase);
2029 HRESULT STDMETHODCALLTYPE ISpDataKey_OpenKey_Proxy(
2030     ISpDataKey* This,
2031     LPCWSTR pszSubKeyName,
2032     ISpDataKey **ppSubKey);
2033 void __RPC_STUB ISpDataKey_OpenKey_Stub(
2034     IRpcStubBuffer* This,
2035     IRpcChannelBuffer* pRpcChannelBuffer,
2036     PRPC_MESSAGE pRpcMessage,
2037     DWORD* pdwStubPhase);
2038 HRESULT STDMETHODCALLTYPE ISpDataKey_CreateKey_Proxy(
2039     ISpDataKey* This,
2040     LPCWSTR pszSubKey,
2041     ISpDataKey **ppSubKey);
2042 void __RPC_STUB ISpDataKey_CreateKey_Stub(
2043     IRpcStubBuffer* This,
2044     IRpcChannelBuffer* pRpcChannelBuffer,
2045     PRPC_MESSAGE pRpcMessage,
2046     DWORD* pdwStubPhase);
2047 HRESULT STDMETHODCALLTYPE ISpDataKey_DeleteKey_Proxy(
2048     ISpDataKey* This,
2049     LPCWSTR pszSubKey);
2050 void __RPC_STUB ISpDataKey_DeleteKey_Stub(
2051     IRpcStubBuffer* This,
2052     IRpcChannelBuffer* pRpcChannelBuffer,
2053     PRPC_MESSAGE pRpcMessage,
2054     DWORD* pdwStubPhase);
2055 HRESULT STDMETHODCALLTYPE ISpDataKey_DeleteValue_Proxy(
2056     ISpDataKey* This,
2057     LPCWSTR pszValueName);
2058 void __RPC_STUB ISpDataKey_DeleteValue_Stub(
2059     IRpcStubBuffer* This,
2060     IRpcChannelBuffer* pRpcChannelBuffer,
2061     PRPC_MESSAGE pRpcMessage,
2062     DWORD* pdwStubPhase);
2063 HRESULT STDMETHODCALLTYPE ISpDataKey_EnumKeys_Proxy(
2064     ISpDataKey* This,
2065     ULONG Index,
2066     LPWSTR *ppszSubKeyName);
2067 void __RPC_STUB ISpDataKey_EnumKeys_Stub(
2068     IRpcStubBuffer* This,
2069     IRpcChannelBuffer* pRpcChannelBuffer,
2070     PRPC_MESSAGE pRpcMessage,
2071     DWORD* pdwStubPhase);
2072 HRESULT STDMETHODCALLTYPE ISpDataKey_EnumValues_Proxy(
2073     ISpDataKey* This,
2074     ULONG Index,
2075     LPWSTR *ppszValueName);
2076 void __RPC_STUB ISpDataKey_EnumValues_Stub(
2077     IRpcStubBuffer* This,
2078     IRpcChannelBuffer* pRpcChannelBuffer,
2079     PRPC_MESSAGE pRpcMessage,
2080     DWORD* pdwStubPhase);
2081 
2082 #endif  /* __ISpDataKey_INTERFACE_DEFINED__ */
2083 
2084 /*****************************************************************************
2085  * ISpObjectWithToken interface
2086  */
2087 #ifndef __ISpObjectWithToken_INTERFACE_DEFINED__
2088 #define __ISpObjectWithToken_INTERFACE_DEFINED__
2089 
2090 DEFINE_GUID(IID_ISpObjectWithToken, 0x5b559f40, 0xe952, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
2091 #if defined(__cplusplus) && !defined(CINTERFACE)
2092 MIDL_INTERFACE("5b559f40-e952-11d2-bb91-00c04f8ee6c0")
2093 ISpObjectWithToken : public IUnknown
2094 {
2095     virtual HRESULT STDMETHODCALLTYPE SetObjectToken(
2096         ISpObjectToken *pToken) = 0;
2097 
2098     virtual HRESULT STDMETHODCALLTYPE GetObjectToken(
2099         ISpObjectToken **ppToken) = 0;
2100 
2101 };
2102 #ifdef __CRT_UUID_DECL
2103 __CRT_UUID_DECL(ISpObjectWithToken, 0x5b559f40, 0xe952, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
2104 #endif
2105 #else
2106 typedef struct ISpObjectWithTokenVtbl {
2107     BEGIN_INTERFACE
2108 
2109     /*** IUnknown methods ***/
2110     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2111         ISpObjectWithToken* This,
2112         REFIID riid,
2113         void **ppvObject);
2114 
2115     ULONG (STDMETHODCALLTYPE *AddRef)(
2116         ISpObjectWithToken* This);
2117 
2118     ULONG (STDMETHODCALLTYPE *Release)(
2119         ISpObjectWithToken* This);
2120 
2121     /*** ISpObjectWithToken methods ***/
2122     HRESULT (STDMETHODCALLTYPE *SetObjectToken)(
2123         ISpObjectWithToken* This,
2124         ISpObjectToken *pToken);
2125 
2126     HRESULT (STDMETHODCALLTYPE *GetObjectToken)(
2127         ISpObjectWithToken* This,
2128         ISpObjectToken **ppToken);
2129 
2130     END_INTERFACE
2131 } ISpObjectWithTokenVtbl;
2132 interface ISpObjectWithToken {
2133     CONST_VTBL ISpObjectWithTokenVtbl* lpVtbl;
2134 };
2135 
2136 #ifdef COBJMACROS
2137 #ifndef WIDL_C_INLINE_WRAPPERS
2138 /*** IUnknown methods ***/
2139 #define ISpObjectWithToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2140 #define ISpObjectWithToken_AddRef(This) (This)->lpVtbl->AddRef(This)
2141 #define ISpObjectWithToken_Release(This) (This)->lpVtbl->Release(This)
2142 /*** ISpObjectWithToken methods ***/
2143 #define ISpObjectWithToken_SetObjectToken(This,pToken) (This)->lpVtbl->SetObjectToken(This,pToken)
2144 #define ISpObjectWithToken_GetObjectToken(This,ppToken) (This)->lpVtbl->GetObjectToken(This,ppToken)
2145 #else
2146 /*** IUnknown methods ***/
2147 static FORCEINLINE HRESULT ISpObjectWithToken_QueryInterface(ISpObjectWithToken* This,REFIID riid,void **ppvObject) {
2148     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2149 }
2150 static FORCEINLINE ULONG ISpObjectWithToken_AddRef(ISpObjectWithToken* This) {
2151     return This->lpVtbl->AddRef(This);
2152 }
2153 static FORCEINLINE ULONG ISpObjectWithToken_Release(ISpObjectWithToken* This) {
2154     return This->lpVtbl->Release(This);
2155 }
2156 /*** ISpObjectWithToken methods ***/
2157 static FORCEINLINE HRESULT ISpObjectWithToken_SetObjectToken(ISpObjectWithToken* This,ISpObjectToken *pToken) {
2158     return This->lpVtbl->SetObjectToken(This,pToken);
2159 }
2160 static FORCEINLINE HRESULT ISpObjectWithToken_GetObjectToken(ISpObjectWithToken* This,ISpObjectToken **ppToken) {
2161     return This->lpVtbl->GetObjectToken(This,ppToken);
2162 }
2163 #endif
2164 #endif
2165 
2166 #endif
2167 
2168 HRESULT STDMETHODCALLTYPE ISpObjectWithToken_SetObjectToken_Proxy(
2169     ISpObjectWithToken* This,
2170     ISpObjectToken *pToken);
2171 void __RPC_STUB ISpObjectWithToken_SetObjectToken_Stub(
2172     IRpcStubBuffer* This,
2173     IRpcChannelBuffer* pRpcChannelBuffer,
2174     PRPC_MESSAGE pRpcMessage,
2175     DWORD* pdwStubPhase);
2176 HRESULT STDMETHODCALLTYPE ISpObjectWithToken_GetObjectToken_Proxy(
2177     ISpObjectWithToken* This,
2178     ISpObjectToken **ppToken);
2179 void __RPC_STUB ISpObjectWithToken_GetObjectToken_Stub(
2180     IRpcStubBuffer* This,
2181     IRpcChannelBuffer* pRpcChannelBuffer,
2182     PRPC_MESSAGE pRpcMessage,
2183     DWORD* pdwStubPhase);
2184 
2185 #endif  /* __ISpObjectWithToken_INTERFACE_DEFINED__ */
2186 
2187 /*****************************************************************************
2188  * IEnumSpObjectTokens interface
2189  */
2190 #ifndef __IEnumSpObjectTokens_INTERFACE_DEFINED__
2191 #define __IEnumSpObjectTokens_INTERFACE_DEFINED__
2192 
2193 DEFINE_GUID(IID_IEnumSpObjectTokens, 0x06b64f9e, 0x7fda, 0x11d2, 0xb4,0xf2, 0x00,0xc0,0x4f,0x79,0x73,0x96);
2194 #if defined(__cplusplus) && !defined(CINTERFACE)
2195 MIDL_INTERFACE("06b64f9e-7fda-11d2-b4f2-00c04f797396")
2196 IEnumSpObjectTokens : public IUnknown
2197 {
2198     virtual HRESULT STDMETHODCALLTYPE Next(
2199         ULONG celt,
2200         ISpObjectToken **pelt,
2201         ULONG *pceltFetched) = 0;
2202 
2203     virtual HRESULT STDMETHODCALLTYPE Skip(
2204         ULONG celt) = 0;
2205 
2206     virtual HRESULT STDMETHODCALLTYPE Reset(
2207         ) = 0;
2208 
2209     virtual HRESULT STDMETHODCALLTYPE Clone(
2210         IEnumSpObjectTokens **ppEnum) = 0;
2211 
2212     virtual HRESULT STDMETHODCALLTYPE Item(
2213         ULONG Index,
2214         ISpObjectToken **ppToken) = 0;
2215 
2216     virtual HRESULT STDMETHODCALLTYPE GetCount(
2217         ULONG *pCount) = 0;
2218 
2219 };
2220 #ifdef __CRT_UUID_DECL
2221 __CRT_UUID_DECL(IEnumSpObjectTokens, 0x06b64f9e, 0x7fda, 0x11d2, 0xb4,0xf2, 0x00,0xc0,0x4f,0x79,0x73,0x96)
2222 #endif
2223 #else
2224 typedef struct IEnumSpObjectTokensVtbl {
2225     BEGIN_INTERFACE
2226 
2227     /*** IUnknown methods ***/
2228     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2229         IEnumSpObjectTokens* This,
2230         REFIID riid,
2231         void **ppvObject);
2232 
2233     ULONG (STDMETHODCALLTYPE *AddRef)(
2234         IEnumSpObjectTokens* This);
2235 
2236     ULONG (STDMETHODCALLTYPE *Release)(
2237         IEnumSpObjectTokens* This);
2238 
2239     /*** IEnumSpObjectTokens methods ***/
2240     HRESULT (STDMETHODCALLTYPE *Next)(
2241         IEnumSpObjectTokens* This,
2242         ULONG celt,
2243         ISpObjectToken **pelt,
2244         ULONG *pceltFetched);
2245 
2246     HRESULT (STDMETHODCALLTYPE *Skip)(
2247         IEnumSpObjectTokens* This,
2248         ULONG celt);
2249 
2250     HRESULT (STDMETHODCALLTYPE *Reset)(
2251         IEnumSpObjectTokens* This);
2252 
2253     HRESULT (STDMETHODCALLTYPE *Clone)(
2254         IEnumSpObjectTokens* This,
2255         IEnumSpObjectTokens **ppEnum);
2256 
2257     HRESULT (STDMETHODCALLTYPE *Item)(
2258         IEnumSpObjectTokens* This,
2259         ULONG Index,
2260         ISpObjectToken **ppToken);
2261 
2262     HRESULT (STDMETHODCALLTYPE *GetCount)(
2263         IEnumSpObjectTokens* This,
2264         ULONG *pCount);
2265 
2266     END_INTERFACE
2267 } IEnumSpObjectTokensVtbl;
2268 interface IEnumSpObjectTokens {
2269     CONST_VTBL IEnumSpObjectTokensVtbl* lpVtbl;
2270 };
2271 
2272 #ifdef COBJMACROS
2273 #ifndef WIDL_C_INLINE_WRAPPERS
2274 /*** IUnknown methods ***/
2275 #define IEnumSpObjectTokens_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2276 #define IEnumSpObjectTokens_AddRef(This) (This)->lpVtbl->AddRef(This)
2277 #define IEnumSpObjectTokens_Release(This) (This)->lpVtbl->Release(This)
2278 /*** IEnumSpObjectTokens methods ***/
2279 #define IEnumSpObjectTokens_Next(This,celt,pelt,pceltFetched) (This)->lpVtbl->Next(This,celt,pelt,pceltFetched)
2280 #define IEnumSpObjectTokens_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
2281 #define IEnumSpObjectTokens_Reset(This) (This)->lpVtbl->Reset(This)
2282 #define IEnumSpObjectTokens_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
2283 #define IEnumSpObjectTokens_Item(This,Index,ppToken) (This)->lpVtbl->Item(This,Index,ppToken)
2284 #define IEnumSpObjectTokens_GetCount(This,pCount) (This)->lpVtbl->GetCount(This,pCount)
2285 #else
2286 /*** IUnknown methods ***/
2287 static FORCEINLINE HRESULT IEnumSpObjectTokens_QueryInterface(IEnumSpObjectTokens* This,REFIID riid,void **ppvObject) {
2288     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2289 }
2290 static FORCEINLINE ULONG IEnumSpObjectTokens_AddRef(IEnumSpObjectTokens* This) {
2291     return This->lpVtbl->AddRef(This);
2292 }
2293 static FORCEINLINE ULONG IEnumSpObjectTokens_Release(IEnumSpObjectTokens* This) {
2294     return This->lpVtbl->Release(This);
2295 }
2296 /*** IEnumSpObjectTokens methods ***/
2297 static FORCEINLINE HRESULT IEnumSpObjectTokens_Next(IEnumSpObjectTokens* This,ULONG celt,ISpObjectToken **pelt,ULONG *pceltFetched) {
2298     return This->lpVtbl->Next(This,celt,pelt,pceltFetched);
2299 }
2300 static FORCEINLINE HRESULT IEnumSpObjectTokens_Skip(IEnumSpObjectTokens* This,ULONG celt) {
2301     return This->lpVtbl->Skip(This,celt);
2302 }
2303 static FORCEINLINE HRESULT IEnumSpObjectTokens_Reset(IEnumSpObjectTokens* This) {
2304     return This->lpVtbl->Reset(This);
2305 }
2306 static FORCEINLINE HRESULT IEnumSpObjectTokens_Clone(IEnumSpObjectTokens* This,IEnumSpObjectTokens **ppEnum) {
2307     return This->lpVtbl->Clone(This,ppEnum);
2308 }
2309 static FORCEINLINE HRESULT IEnumSpObjectTokens_Item(IEnumSpObjectTokens* This,ULONG Index,ISpObjectToken **ppToken) {
2310     return This->lpVtbl->Item(This,Index,ppToken);
2311 }
2312 static FORCEINLINE HRESULT IEnumSpObjectTokens_GetCount(IEnumSpObjectTokens* This,ULONG *pCount) {
2313     return This->lpVtbl->GetCount(This,pCount);
2314 }
2315 #endif
2316 #endif
2317 
2318 #endif
2319 
2320 HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_Next_Proxy(
2321     IEnumSpObjectTokens* This,
2322     ULONG celt,
2323     ISpObjectToken **pelt,
2324     ULONG *pceltFetched);
2325 void __RPC_STUB IEnumSpObjectTokens_Next_Stub(
2326     IRpcStubBuffer* This,
2327     IRpcChannelBuffer* pRpcChannelBuffer,
2328     PRPC_MESSAGE pRpcMessage,
2329     DWORD* pdwStubPhase);
2330 HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_Skip_Proxy(
2331     IEnumSpObjectTokens* This,
2332     ULONG celt);
2333 void __RPC_STUB IEnumSpObjectTokens_Skip_Stub(
2334     IRpcStubBuffer* This,
2335     IRpcChannelBuffer* pRpcChannelBuffer,
2336     PRPC_MESSAGE pRpcMessage,
2337     DWORD* pdwStubPhase);
2338 HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_Reset_Proxy(
2339     IEnumSpObjectTokens* This);
2340 void __RPC_STUB IEnumSpObjectTokens_Reset_Stub(
2341     IRpcStubBuffer* This,
2342     IRpcChannelBuffer* pRpcChannelBuffer,
2343     PRPC_MESSAGE pRpcMessage,
2344     DWORD* pdwStubPhase);
2345 HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_Clone_Proxy(
2346     IEnumSpObjectTokens* This,
2347     IEnumSpObjectTokens **ppEnum);
2348 void __RPC_STUB IEnumSpObjectTokens_Clone_Stub(
2349     IRpcStubBuffer* This,
2350     IRpcChannelBuffer* pRpcChannelBuffer,
2351     PRPC_MESSAGE pRpcMessage,
2352     DWORD* pdwStubPhase);
2353 HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_Item_Proxy(
2354     IEnumSpObjectTokens* This,
2355     ULONG Index,
2356     ISpObjectToken **ppToken);
2357 void __RPC_STUB IEnumSpObjectTokens_Item_Stub(
2358     IRpcStubBuffer* This,
2359     IRpcChannelBuffer* pRpcChannelBuffer,
2360     PRPC_MESSAGE pRpcMessage,
2361     DWORD* pdwStubPhase);
2362 HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_GetCount_Proxy(
2363     IEnumSpObjectTokens* This,
2364     ULONG *pCount);
2365 void __RPC_STUB IEnumSpObjectTokens_GetCount_Stub(
2366     IRpcStubBuffer* This,
2367     IRpcChannelBuffer* pRpcChannelBuffer,
2368     PRPC_MESSAGE pRpcMessage,
2369     DWORD* pdwStubPhase);
2370 
2371 #endif  /* __IEnumSpObjectTokens_INTERFACE_DEFINED__ */
2372 
2373 /*****************************************************************************
2374  * ISpRegDataKey interface
2375  */
2376 #ifndef __ISpRegDataKey_INTERFACE_DEFINED__
2377 #define __ISpRegDataKey_INTERFACE_DEFINED__
2378 
2379 DEFINE_GUID(IID_ISpRegDataKey, 0x92a66e2b, 0xc830, 0x4149, 0x83,0xdf, 0x6f,0xc2,0xba,0x1e,0x7a,0x5b);
2380 #if defined(__cplusplus) && !defined(CINTERFACE)
2381 MIDL_INTERFACE("92a66e2b-c830-4149-83df-6fc2ba1e7a5b")
2382 ISpRegDataKey : public ISpDataKey
2383 {
2384     virtual HRESULT STDMETHODCALLTYPE SetKey(
2385         HKEY hkey,
2386         WINBOOL fReadOnly) = 0;
2387 
2388 };
2389 #ifdef __CRT_UUID_DECL
2390 __CRT_UUID_DECL(ISpRegDataKey, 0x92a66e2b, 0xc830, 0x4149, 0x83,0xdf, 0x6f,0xc2,0xba,0x1e,0x7a,0x5b)
2391 #endif
2392 #else
2393 typedef struct ISpRegDataKeyVtbl {
2394     BEGIN_INTERFACE
2395 
2396     /*** IUnknown methods ***/
2397     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2398         ISpRegDataKey* This,
2399         REFIID riid,
2400         void **ppvObject);
2401 
2402     ULONG (STDMETHODCALLTYPE *AddRef)(
2403         ISpRegDataKey* This);
2404 
2405     ULONG (STDMETHODCALLTYPE *Release)(
2406         ISpRegDataKey* This);
2407 
2408     /*** ISpDataKey methods ***/
2409     HRESULT (STDMETHODCALLTYPE *SetData)(
2410         ISpRegDataKey* This,
2411         LPCWSTR pszValueName,
2412         ULONG cbData,
2413         const BYTE *pData);
2414 
2415     HRESULT (STDMETHODCALLTYPE *GetData)(
2416         ISpRegDataKey* This,
2417         LPCWSTR pszValueName,
2418         ULONG *pcbData,
2419         BYTE *pData);
2420 
2421     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
2422         ISpRegDataKey* This,
2423         LPCWSTR pszValueName,
2424         LPCWSTR pszValue);
2425 
2426     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
2427         ISpRegDataKey* This,
2428         LPCWSTR pszValueName,
2429         LPWSTR *ppszValue);
2430 
2431     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
2432         ISpRegDataKey* This,
2433         LPCWSTR pszValueName,
2434         DWORD dwValue);
2435 
2436     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
2437         ISpRegDataKey* This,
2438         LPCWSTR pszValueName,
2439         DWORD *pdwValue);
2440 
2441     HRESULT (STDMETHODCALLTYPE *OpenKey)(
2442         ISpRegDataKey* This,
2443         LPCWSTR pszSubKeyName,
2444         ISpDataKey **ppSubKey);
2445 
2446     HRESULT (STDMETHODCALLTYPE *CreateKey)(
2447         ISpRegDataKey* This,
2448         LPCWSTR pszSubKey,
2449         ISpDataKey **ppSubKey);
2450 
2451     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
2452         ISpRegDataKey* This,
2453         LPCWSTR pszSubKey);
2454 
2455     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
2456         ISpRegDataKey* This,
2457         LPCWSTR pszValueName);
2458 
2459     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
2460         ISpRegDataKey* This,
2461         ULONG Index,
2462         LPWSTR *ppszSubKeyName);
2463 
2464     HRESULT (STDMETHODCALLTYPE *EnumValues)(
2465         ISpRegDataKey* This,
2466         ULONG Index,
2467         LPWSTR *ppszValueName);
2468 
2469     /*** ISpRegDataKey methods ***/
2470     HRESULT (STDMETHODCALLTYPE *SetKey)(
2471         ISpRegDataKey* This,
2472         HKEY hkey,
2473         WINBOOL fReadOnly);
2474 
2475     END_INTERFACE
2476 } ISpRegDataKeyVtbl;
2477 interface ISpRegDataKey {
2478     CONST_VTBL ISpRegDataKeyVtbl* lpVtbl;
2479 };
2480 
2481 #ifdef COBJMACROS
2482 #ifndef WIDL_C_INLINE_WRAPPERS
2483 /*** IUnknown methods ***/
2484 #define ISpRegDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2485 #define ISpRegDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
2486 #define ISpRegDataKey_Release(This) (This)->lpVtbl->Release(This)
2487 /*** ISpDataKey methods ***/
2488 #define ISpRegDataKey_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
2489 #define ISpRegDataKey_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
2490 #define ISpRegDataKey_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
2491 #define ISpRegDataKey_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
2492 #define ISpRegDataKey_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
2493 #define ISpRegDataKey_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
2494 #define ISpRegDataKey_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
2495 #define ISpRegDataKey_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
2496 #define ISpRegDataKey_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
2497 #define ISpRegDataKey_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
2498 #define ISpRegDataKey_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
2499 #define ISpRegDataKey_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
2500 /*** ISpRegDataKey methods ***/
2501 #define ISpRegDataKey_SetKey(This,hkey,fReadOnly) (This)->lpVtbl->SetKey(This,hkey,fReadOnly)
2502 #else
2503 /*** IUnknown methods ***/
2504 static FORCEINLINE HRESULT ISpRegDataKey_QueryInterface(ISpRegDataKey* This,REFIID riid,void **ppvObject) {
2505     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2506 }
2507 static FORCEINLINE ULONG ISpRegDataKey_AddRef(ISpRegDataKey* This) {
2508     return This->lpVtbl->AddRef(This);
2509 }
2510 static FORCEINLINE ULONG ISpRegDataKey_Release(ISpRegDataKey* This) {
2511     return This->lpVtbl->Release(This);
2512 }
2513 /*** ISpDataKey methods ***/
2514 static FORCEINLINE HRESULT ISpRegDataKey_SetData(ISpRegDataKey* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
2515     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
2516 }
2517 static FORCEINLINE HRESULT ISpRegDataKey_GetData(ISpRegDataKey* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
2518     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
2519 }
2520 static FORCEINLINE HRESULT ISpRegDataKey_SetStringValue(ISpRegDataKey* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
2521     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
2522 }
2523 static FORCEINLINE HRESULT ISpRegDataKey_GetStringValue(ISpRegDataKey* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
2524     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
2525 }
2526 static FORCEINLINE HRESULT ISpRegDataKey_SetDWORD(ISpRegDataKey* This,LPCWSTR pszValueName,DWORD dwValue) {
2527     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
2528 }
2529 static FORCEINLINE HRESULT ISpRegDataKey_GetDWORD(ISpRegDataKey* This,LPCWSTR pszValueName,DWORD *pdwValue) {
2530     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
2531 }
2532 static FORCEINLINE HRESULT ISpRegDataKey_OpenKey(ISpRegDataKey* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
2533     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
2534 }
2535 static FORCEINLINE HRESULT ISpRegDataKey_CreateKey(ISpRegDataKey* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
2536     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
2537 }
2538 static FORCEINLINE HRESULT ISpRegDataKey_DeleteKey(ISpRegDataKey* This,LPCWSTR pszSubKey) {
2539     return This->lpVtbl->DeleteKey(This,pszSubKey);
2540 }
2541 static FORCEINLINE HRESULT ISpRegDataKey_DeleteValue(ISpRegDataKey* This,LPCWSTR pszValueName) {
2542     return This->lpVtbl->DeleteValue(This,pszValueName);
2543 }
2544 static FORCEINLINE HRESULT ISpRegDataKey_EnumKeys(ISpRegDataKey* This,ULONG Index,LPWSTR *ppszSubKeyName) {
2545     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
2546 }
2547 static FORCEINLINE HRESULT ISpRegDataKey_EnumValues(ISpRegDataKey* This,ULONG Index,LPWSTR *ppszValueName) {
2548     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
2549 }
2550 /*** ISpRegDataKey methods ***/
2551 static FORCEINLINE HRESULT ISpRegDataKey_SetKey(ISpRegDataKey* This,HKEY hkey,WINBOOL fReadOnly) {
2552     return This->lpVtbl->SetKey(This,hkey,fReadOnly);
2553 }
2554 #endif
2555 #endif
2556 
2557 #endif
2558 
2559 
2560 #endif  /* __ISpRegDataKey_INTERFACE_DEFINED__ */
2561 
2562 /*****************************************************************************
2563  * ISpObjectTokenCategory interface
2564  */
2565 #ifndef __ISpObjectTokenCategory_INTERFACE_DEFINED__
2566 #define __ISpObjectTokenCategory_INTERFACE_DEFINED__
2567 
2568 DEFINE_GUID(IID_ISpObjectTokenCategory, 0x2d3d3845, 0x39af, 0x4850, 0xbb,0xf9, 0x40,0xb4,0x97,0x80,0x01,0x1d);
2569 #if defined(__cplusplus) && !defined(CINTERFACE)
2570 MIDL_INTERFACE("2d3d3845-39af-4850-bbf9-40b49780011d")
2571 ISpObjectTokenCategory : public ISpDataKey
2572 {
2573     virtual HRESULT STDMETHODCALLTYPE SetId(
2574         LPCWSTR pszCategoryId,
2575         WINBOOL fCreateIfNotExist) = 0;
2576 
2577     virtual HRESULT STDMETHODCALLTYPE GetId(
2578         LPWSTR *ppszCoMemCategoryId) = 0;
2579 
2580     virtual HRESULT STDMETHODCALLTYPE GetDataKey(
2581         SPDATAKEYLOCATION spdkl,
2582         ISpDataKey **ppDataKey) = 0;
2583 
2584     virtual HRESULT STDMETHODCALLTYPE EnumTokens(
2585         LPCWSTR pzsReqAttribs,
2586         LPCWSTR pszOptAttribs,
2587         IEnumSpObjectTokens **ppEnum) = 0;
2588 
2589     virtual HRESULT STDMETHODCALLTYPE SetDefaultTokenId(
2590         LPCWSTR pszTokenId) = 0;
2591 
2592     virtual HRESULT STDMETHODCALLTYPE GetDefaultTokenId(
2593         LPWSTR *ppszCoMemTokenId) = 0;
2594 
2595 };
2596 #ifdef __CRT_UUID_DECL
2597 __CRT_UUID_DECL(ISpObjectTokenCategory, 0x2d3d3845, 0x39af, 0x4850, 0xbb,0xf9, 0x40,0xb4,0x97,0x80,0x01,0x1d)
2598 #endif
2599 #else
2600 typedef struct ISpObjectTokenCategoryVtbl {
2601     BEGIN_INTERFACE
2602 
2603     /*** IUnknown methods ***/
2604     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2605         ISpObjectTokenCategory* This,
2606         REFIID riid,
2607         void **ppvObject);
2608 
2609     ULONG (STDMETHODCALLTYPE *AddRef)(
2610         ISpObjectTokenCategory* This);
2611 
2612     ULONG (STDMETHODCALLTYPE *Release)(
2613         ISpObjectTokenCategory* This);
2614 
2615     /*** ISpDataKey methods ***/
2616     HRESULT (STDMETHODCALLTYPE *SetData)(
2617         ISpObjectTokenCategory* This,
2618         LPCWSTR pszValueName,
2619         ULONG cbData,
2620         const BYTE *pData);
2621 
2622     HRESULT (STDMETHODCALLTYPE *GetData)(
2623         ISpObjectTokenCategory* This,
2624         LPCWSTR pszValueName,
2625         ULONG *pcbData,
2626         BYTE *pData);
2627 
2628     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
2629         ISpObjectTokenCategory* This,
2630         LPCWSTR pszValueName,
2631         LPCWSTR pszValue);
2632 
2633     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
2634         ISpObjectTokenCategory* This,
2635         LPCWSTR pszValueName,
2636         LPWSTR *ppszValue);
2637 
2638     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
2639         ISpObjectTokenCategory* This,
2640         LPCWSTR pszValueName,
2641         DWORD dwValue);
2642 
2643     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
2644         ISpObjectTokenCategory* This,
2645         LPCWSTR pszValueName,
2646         DWORD *pdwValue);
2647 
2648     HRESULT (STDMETHODCALLTYPE *OpenKey)(
2649         ISpObjectTokenCategory* This,
2650         LPCWSTR pszSubKeyName,
2651         ISpDataKey **ppSubKey);
2652 
2653     HRESULT (STDMETHODCALLTYPE *CreateKey)(
2654         ISpObjectTokenCategory* This,
2655         LPCWSTR pszSubKey,
2656         ISpDataKey **ppSubKey);
2657 
2658     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
2659         ISpObjectTokenCategory* This,
2660         LPCWSTR pszSubKey);
2661 
2662     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
2663         ISpObjectTokenCategory* This,
2664         LPCWSTR pszValueName);
2665 
2666     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
2667         ISpObjectTokenCategory* This,
2668         ULONG Index,
2669         LPWSTR *ppszSubKeyName);
2670 
2671     HRESULT (STDMETHODCALLTYPE *EnumValues)(
2672         ISpObjectTokenCategory* This,
2673         ULONG Index,
2674         LPWSTR *ppszValueName);
2675 
2676     /*** ISpObjectTokenCategory methods ***/
2677     HRESULT (STDMETHODCALLTYPE *SetId)(
2678         ISpObjectTokenCategory* This,
2679         LPCWSTR pszCategoryId,
2680         WINBOOL fCreateIfNotExist);
2681 
2682     HRESULT (STDMETHODCALLTYPE *GetId)(
2683         ISpObjectTokenCategory* This,
2684         LPWSTR *ppszCoMemCategoryId);
2685 
2686     HRESULT (STDMETHODCALLTYPE *GetDataKey)(
2687         ISpObjectTokenCategory* This,
2688         SPDATAKEYLOCATION spdkl,
2689         ISpDataKey **ppDataKey);
2690 
2691     HRESULT (STDMETHODCALLTYPE *EnumTokens)(
2692         ISpObjectTokenCategory* This,
2693         LPCWSTR pzsReqAttribs,
2694         LPCWSTR pszOptAttribs,
2695         IEnumSpObjectTokens **ppEnum);
2696 
2697     HRESULT (STDMETHODCALLTYPE *SetDefaultTokenId)(
2698         ISpObjectTokenCategory* This,
2699         LPCWSTR pszTokenId);
2700 
2701     HRESULT (STDMETHODCALLTYPE *GetDefaultTokenId)(
2702         ISpObjectTokenCategory* This,
2703         LPWSTR *ppszCoMemTokenId);
2704 
2705     END_INTERFACE
2706 } ISpObjectTokenCategoryVtbl;
2707 interface ISpObjectTokenCategory {
2708     CONST_VTBL ISpObjectTokenCategoryVtbl* lpVtbl;
2709 };
2710 
2711 #ifdef COBJMACROS
2712 #ifndef WIDL_C_INLINE_WRAPPERS
2713 /*** IUnknown methods ***/
2714 #define ISpObjectTokenCategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2715 #define ISpObjectTokenCategory_AddRef(This) (This)->lpVtbl->AddRef(This)
2716 #define ISpObjectTokenCategory_Release(This) (This)->lpVtbl->Release(This)
2717 /*** ISpDataKey methods ***/
2718 #define ISpObjectTokenCategory_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
2719 #define ISpObjectTokenCategory_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
2720 #define ISpObjectTokenCategory_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
2721 #define ISpObjectTokenCategory_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
2722 #define ISpObjectTokenCategory_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
2723 #define ISpObjectTokenCategory_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
2724 #define ISpObjectTokenCategory_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
2725 #define ISpObjectTokenCategory_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
2726 #define ISpObjectTokenCategory_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
2727 #define ISpObjectTokenCategory_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
2728 #define ISpObjectTokenCategory_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
2729 #define ISpObjectTokenCategory_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
2730 /*** ISpObjectTokenCategory methods ***/
2731 #define ISpObjectTokenCategory_SetId(This,pszCategoryId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,fCreateIfNotExist)
2732 #define ISpObjectTokenCategory_GetId(This,ppszCoMemCategoryId) (This)->lpVtbl->GetId(This,ppszCoMemCategoryId)
2733 #define ISpObjectTokenCategory_GetDataKey(This,spdkl,ppDataKey) (This)->lpVtbl->GetDataKey(This,spdkl,ppDataKey)
2734 #define ISpObjectTokenCategory_EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum) (This)->lpVtbl->EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum)
2735 #define ISpObjectTokenCategory_SetDefaultTokenId(This,pszTokenId) (This)->lpVtbl->SetDefaultTokenId(This,pszTokenId)
2736 #define ISpObjectTokenCategory_GetDefaultTokenId(This,ppszCoMemTokenId) (This)->lpVtbl->GetDefaultTokenId(This,ppszCoMemTokenId)
2737 #else
2738 /*** IUnknown methods ***/
2739 static FORCEINLINE HRESULT ISpObjectTokenCategory_QueryInterface(ISpObjectTokenCategory* This,REFIID riid,void **ppvObject) {
2740     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2741 }
2742 static FORCEINLINE ULONG ISpObjectTokenCategory_AddRef(ISpObjectTokenCategory* This) {
2743     return This->lpVtbl->AddRef(This);
2744 }
2745 static FORCEINLINE ULONG ISpObjectTokenCategory_Release(ISpObjectTokenCategory* This) {
2746     return This->lpVtbl->Release(This);
2747 }
2748 /*** ISpDataKey methods ***/
2749 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetData(ISpObjectTokenCategory* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
2750     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
2751 }
2752 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetData(ISpObjectTokenCategory* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
2753     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
2754 }
2755 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetStringValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
2756     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
2757 }
2758 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetStringValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
2759     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
2760 }
2761 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetDWORD(ISpObjectTokenCategory* This,LPCWSTR pszValueName,DWORD dwValue) {
2762     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
2763 }
2764 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetDWORD(ISpObjectTokenCategory* This,LPCWSTR pszValueName,DWORD *pdwValue) {
2765     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
2766 }
2767 static FORCEINLINE HRESULT ISpObjectTokenCategory_OpenKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
2768     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
2769 }
2770 static FORCEINLINE HRESULT ISpObjectTokenCategory_CreateKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
2771     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
2772 }
2773 static FORCEINLINE HRESULT ISpObjectTokenCategory_DeleteKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKey) {
2774     return This->lpVtbl->DeleteKey(This,pszSubKey);
2775 }
2776 static FORCEINLINE HRESULT ISpObjectTokenCategory_DeleteValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName) {
2777     return This->lpVtbl->DeleteValue(This,pszValueName);
2778 }
2779 static FORCEINLINE HRESULT ISpObjectTokenCategory_EnumKeys(ISpObjectTokenCategory* This,ULONG Index,LPWSTR *ppszSubKeyName) {
2780     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
2781 }
2782 static FORCEINLINE HRESULT ISpObjectTokenCategory_EnumValues(ISpObjectTokenCategory* This,ULONG Index,LPWSTR *ppszValueName) {
2783     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
2784 }
2785 /*** ISpObjectTokenCategory methods ***/
2786 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetId(ISpObjectTokenCategory* This,LPCWSTR pszCategoryId,WINBOOL fCreateIfNotExist) {
2787     return This->lpVtbl->SetId(This,pszCategoryId,fCreateIfNotExist);
2788 }
2789 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetId(ISpObjectTokenCategory* This,LPWSTR *ppszCoMemCategoryId) {
2790     return This->lpVtbl->GetId(This,ppszCoMemCategoryId);
2791 }
2792 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetDataKey(ISpObjectTokenCategory* This,SPDATAKEYLOCATION spdkl,ISpDataKey **ppDataKey) {
2793     return This->lpVtbl->GetDataKey(This,spdkl,ppDataKey);
2794 }
2795 static FORCEINLINE HRESULT ISpObjectTokenCategory_EnumTokens(ISpObjectTokenCategory* This,LPCWSTR pzsReqAttribs,LPCWSTR pszOptAttribs,IEnumSpObjectTokens **ppEnum) {
2796     return This->lpVtbl->EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum);
2797 }
2798 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetDefaultTokenId(ISpObjectTokenCategory* This,LPCWSTR pszTokenId) {
2799     return This->lpVtbl->SetDefaultTokenId(This,pszTokenId);
2800 }
2801 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetDefaultTokenId(ISpObjectTokenCategory* This,LPWSTR *ppszCoMemTokenId) {
2802     return This->lpVtbl->GetDefaultTokenId(This,ppszCoMemTokenId);
2803 }
2804 #endif
2805 #endif
2806 
2807 #endif
2808 
2809 HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_SetId_Proxy(
2810     ISpObjectTokenCategory* This,
2811     LPCWSTR pszCategoryId,
2812     WINBOOL fCreateIfNotExist);
2813 void __RPC_STUB ISpObjectTokenCategory_SetId_Stub(
2814     IRpcStubBuffer* This,
2815     IRpcChannelBuffer* pRpcChannelBuffer,
2816     PRPC_MESSAGE pRpcMessage,
2817     DWORD* pdwStubPhase);
2818 HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_GetId_Proxy(
2819     ISpObjectTokenCategory* This,
2820     LPWSTR *ppszCoMemCategoryId);
2821 void __RPC_STUB ISpObjectTokenCategory_GetId_Stub(
2822     IRpcStubBuffer* This,
2823     IRpcChannelBuffer* pRpcChannelBuffer,
2824     PRPC_MESSAGE pRpcMessage,
2825     DWORD* pdwStubPhase);
2826 HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_GetDataKey_Proxy(
2827     ISpObjectTokenCategory* This,
2828     SPDATAKEYLOCATION spdkl,
2829     ISpDataKey **ppDataKey);
2830 void __RPC_STUB ISpObjectTokenCategory_GetDataKey_Stub(
2831     IRpcStubBuffer* This,
2832     IRpcChannelBuffer* pRpcChannelBuffer,
2833     PRPC_MESSAGE pRpcMessage,
2834     DWORD* pdwStubPhase);
2835 HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_EnumTokens_Proxy(
2836     ISpObjectTokenCategory* This,
2837     LPCWSTR pzsReqAttribs,
2838     LPCWSTR pszOptAttribs,
2839     IEnumSpObjectTokens **ppEnum);
2840 void __RPC_STUB ISpObjectTokenCategory_EnumTokens_Stub(
2841     IRpcStubBuffer* This,
2842     IRpcChannelBuffer* pRpcChannelBuffer,
2843     PRPC_MESSAGE pRpcMessage,
2844     DWORD* pdwStubPhase);
2845 HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_SetDefaultTokenId_Proxy(
2846     ISpObjectTokenCategory* This,
2847     LPCWSTR pszTokenId);
2848 void __RPC_STUB ISpObjectTokenCategory_SetDefaultTokenId_Stub(
2849     IRpcStubBuffer* This,
2850     IRpcChannelBuffer* pRpcChannelBuffer,
2851     PRPC_MESSAGE pRpcMessage,
2852     DWORD* pdwStubPhase);
2853 HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_GetDefaultTokenId_Proxy(
2854     ISpObjectTokenCategory* This,
2855     LPWSTR *ppszCoMemTokenId);
2856 void __RPC_STUB ISpObjectTokenCategory_GetDefaultTokenId_Stub(
2857     IRpcStubBuffer* This,
2858     IRpcChannelBuffer* pRpcChannelBuffer,
2859     PRPC_MESSAGE pRpcMessage,
2860     DWORD* pdwStubPhase);
2861 
2862 #endif  /* __ISpObjectTokenCategory_INTERFACE_DEFINED__ */
2863 
2864 /*****************************************************************************
2865  * ISpObjectToken interface
2866  */
2867 #ifndef __ISpObjectToken_INTERFACE_DEFINED__
2868 #define __ISpObjectToken_INTERFACE_DEFINED__
2869 
2870 DEFINE_GUID(IID_ISpObjectToken, 0x14056589, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
2871 #if defined(__cplusplus) && !defined(CINTERFACE)
2872 MIDL_INTERFACE("14056589-e16c-11d2-bb90-00c04f8ee6c0")
2873 ISpObjectToken : public ISpDataKey
2874 {
2875     virtual HRESULT STDMETHODCALLTYPE SetId(
2876         LPCWSTR pszCategoryId,
2877         LPCWSTR pszTokenId,
2878         WINBOOL fCreateIfNotExist) = 0;
2879 
2880     virtual HRESULT STDMETHODCALLTYPE GetId(
2881         LPWSTR *ppszCoMemTokenId) = 0;
2882 
2883     virtual HRESULT STDMETHODCALLTYPE GetCategory(
2884         ISpObjectTokenCategory **ppTokenCategory) = 0;
2885 
2886     virtual HRESULT STDMETHODCALLTYPE CreateInstance(
2887         IUnknown *pUnkOuter,
2888         DWORD dwClsContext,
2889         REFIID riid,
2890         void **ppvObject) = 0;
2891 
2892     virtual HRESULT STDMETHODCALLTYPE GetStorageFileName(
2893         REFCLSID clsidCaller,
2894         LPCWSTR pszValueName,
2895         LPCWSTR pszFileNameSpecifier,
2896         ULONG nFolder,
2897         LPWSTR *ppszFilePath) = 0;
2898 
2899     virtual HRESULT STDMETHODCALLTYPE RemoveStorageFileName(
2900         REFCLSID clsidCaller,
2901         LPCWSTR pszKeyName,
2902         WINBOOL fDeleteFile) = 0;
2903 
2904     virtual HRESULT STDMETHODCALLTYPE Remove(
2905         const CLSID *pclsidCaller) = 0;
2906 
2907     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
2908         LPCWSTR pszTypeOfUI,
2909         void *pvExtraData,
2910         ULONG cbExtraData,
2911         IUnknown *punkObject,
2912         WINBOOL *pfSupported) = 0;
2913 
2914     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
2915         HWND hwndParent,
2916         LPCWSTR pszTitle,
2917         LPCWSTR pszTypeOfUI,
2918         void *pvExtraData,
2919         ULONG cbExtraData,
2920         IUnknown *punkObject) = 0;
2921 
2922     virtual HRESULT STDMETHODCALLTYPE MatchesAttributes(
2923         LPCWSTR pszAttributes,
2924         WINBOOL *pfMatches) = 0;
2925 
2926 };
2927 #ifdef __CRT_UUID_DECL
2928 __CRT_UUID_DECL(ISpObjectToken, 0x14056589, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
2929 #endif
2930 #else
2931 typedef struct ISpObjectTokenVtbl {
2932     BEGIN_INTERFACE
2933 
2934     /*** IUnknown methods ***/
2935     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2936         ISpObjectToken* This,
2937         REFIID riid,
2938         void **ppvObject);
2939 
2940     ULONG (STDMETHODCALLTYPE *AddRef)(
2941         ISpObjectToken* This);
2942 
2943     ULONG (STDMETHODCALLTYPE *Release)(
2944         ISpObjectToken* This);
2945 
2946     /*** ISpDataKey methods ***/
2947     HRESULT (STDMETHODCALLTYPE *SetData)(
2948         ISpObjectToken* This,
2949         LPCWSTR pszValueName,
2950         ULONG cbData,
2951         const BYTE *pData);
2952 
2953     HRESULT (STDMETHODCALLTYPE *GetData)(
2954         ISpObjectToken* This,
2955         LPCWSTR pszValueName,
2956         ULONG *pcbData,
2957         BYTE *pData);
2958 
2959     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
2960         ISpObjectToken* This,
2961         LPCWSTR pszValueName,
2962         LPCWSTR pszValue);
2963 
2964     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
2965         ISpObjectToken* This,
2966         LPCWSTR pszValueName,
2967         LPWSTR *ppszValue);
2968 
2969     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
2970         ISpObjectToken* This,
2971         LPCWSTR pszValueName,
2972         DWORD dwValue);
2973 
2974     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
2975         ISpObjectToken* This,
2976         LPCWSTR pszValueName,
2977         DWORD *pdwValue);
2978 
2979     HRESULT (STDMETHODCALLTYPE *OpenKey)(
2980         ISpObjectToken* This,
2981         LPCWSTR pszSubKeyName,
2982         ISpDataKey **ppSubKey);
2983 
2984     HRESULT (STDMETHODCALLTYPE *CreateKey)(
2985         ISpObjectToken* This,
2986         LPCWSTR pszSubKey,
2987         ISpDataKey **ppSubKey);
2988 
2989     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
2990         ISpObjectToken* This,
2991         LPCWSTR pszSubKey);
2992 
2993     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
2994         ISpObjectToken* This,
2995         LPCWSTR pszValueName);
2996 
2997     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
2998         ISpObjectToken* This,
2999         ULONG Index,
3000         LPWSTR *ppszSubKeyName);
3001 
3002     HRESULT (STDMETHODCALLTYPE *EnumValues)(
3003         ISpObjectToken* This,
3004         ULONG Index,
3005         LPWSTR *ppszValueName);
3006 
3007     /*** ISpObjectToken methods ***/
3008     HRESULT (STDMETHODCALLTYPE *SetId)(
3009         ISpObjectToken* This,
3010         LPCWSTR pszCategoryId,
3011         LPCWSTR pszTokenId,
3012         WINBOOL fCreateIfNotExist);
3013 
3014     HRESULT (STDMETHODCALLTYPE *GetId)(
3015         ISpObjectToken* This,
3016         LPWSTR *ppszCoMemTokenId);
3017 
3018     HRESULT (STDMETHODCALLTYPE *GetCategory)(
3019         ISpObjectToken* This,
3020         ISpObjectTokenCategory **ppTokenCategory);
3021 
3022     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
3023         ISpObjectToken* This,
3024         IUnknown *pUnkOuter,
3025         DWORD dwClsContext,
3026         REFIID riid,
3027         void **ppvObject);
3028 
3029     HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
3030         ISpObjectToken* This,
3031         REFCLSID clsidCaller,
3032         LPCWSTR pszValueName,
3033         LPCWSTR pszFileNameSpecifier,
3034         ULONG nFolder,
3035         LPWSTR *ppszFilePath);
3036 
3037     HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
3038         ISpObjectToken* This,
3039         REFCLSID clsidCaller,
3040         LPCWSTR pszKeyName,
3041         WINBOOL fDeleteFile);
3042 
3043     HRESULT (STDMETHODCALLTYPE *Remove)(
3044         ISpObjectToken* This,
3045         const CLSID *pclsidCaller);
3046 
3047     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
3048         ISpObjectToken* This,
3049         LPCWSTR pszTypeOfUI,
3050         void *pvExtraData,
3051         ULONG cbExtraData,
3052         IUnknown *punkObject,
3053         WINBOOL *pfSupported);
3054 
3055     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
3056         ISpObjectToken* This,
3057         HWND hwndParent,
3058         LPCWSTR pszTitle,
3059         LPCWSTR pszTypeOfUI,
3060         void *pvExtraData,
3061         ULONG cbExtraData,
3062         IUnknown *punkObject);
3063 
3064     HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
3065         ISpObjectToken* This,
3066         LPCWSTR pszAttributes,
3067         WINBOOL *pfMatches);
3068 
3069     END_INTERFACE
3070 } ISpObjectTokenVtbl;
3071 interface ISpObjectToken {
3072     CONST_VTBL ISpObjectTokenVtbl* lpVtbl;
3073 };
3074 
3075 #ifdef COBJMACROS
3076 #ifndef WIDL_C_INLINE_WRAPPERS
3077 /*** IUnknown methods ***/
3078 #define ISpObjectToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3079 #define ISpObjectToken_AddRef(This) (This)->lpVtbl->AddRef(This)
3080 #define ISpObjectToken_Release(This) (This)->lpVtbl->Release(This)
3081 /*** ISpDataKey methods ***/
3082 #define ISpObjectToken_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
3083 #define ISpObjectToken_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
3084 #define ISpObjectToken_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
3085 #define ISpObjectToken_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
3086 #define ISpObjectToken_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
3087 #define ISpObjectToken_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
3088 #define ISpObjectToken_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
3089 #define ISpObjectToken_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
3090 #define ISpObjectToken_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
3091 #define ISpObjectToken_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
3092 #define ISpObjectToken_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
3093 #define ISpObjectToken_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
3094 /*** ISpObjectToken methods ***/
3095 #define ISpObjectToken_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
3096 #define ISpObjectToken_GetId(This,ppszCoMemTokenId) (This)->lpVtbl->GetId(This,ppszCoMemTokenId)
3097 #define ISpObjectToken_GetCategory(This,ppTokenCategory) (This)->lpVtbl->GetCategory(This,ppTokenCategory)
3098 #define ISpObjectToken_CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
3099 #define ISpObjectToken_GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath) (This)->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
3100 #define ISpObjectToken_RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
3101 #define ISpObjectToken_Remove(This,pclsidCaller) (This)->lpVtbl->Remove(This,pclsidCaller)
3102 #define ISpObjectToken_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
3103 #define ISpObjectToken_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
3104 #define ISpObjectToken_MatchesAttributes(This,pszAttributes,pfMatches) (This)->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches)
3105 #else
3106 /*** IUnknown methods ***/
3107 static FORCEINLINE HRESULT ISpObjectToken_QueryInterface(ISpObjectToken* This,REFIID riid,void **ppvObject) {
3108     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3109 }
3110 static FORCEINLINE ULONG ISpObjectToken_AddRef(ISpObjectToken* This) {
3111     return This->lpVtbl->AddRef(This);
3112 }
3113 static FORCEINLINE ULONG ISpObjectToken_Release(ISpObjectToken* This) {
3114     return This->lpVtbl->Release(This);
3115 }
3116 /*** ISpDataKey methods ***/
3117 static FORCEINLINE HRESULT ISpObjectToken_SetData(ISpObjectToken* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
3118     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
3119 }
3120 static FORCEINLINE HRESULT ISpObjectToken_GetData(ISpObjectToken* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
3121     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
3122 }
3123 static FORCEINLINE HRESULT ISpObjectToken_SetStringValue(ISpObjectToken* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
3124     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
3125 }
3126 static FORCEINLINE HRESULT ISpObjectToken_GetStringValue(ISpObjectToken* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
3127     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
3128 }
3129 static FORCEINLINE HRESULT ISpObjectToken_SetDWORD(ISpObjectToken* This,LPCWSTR pszValueName,DWORD dwValue) {
3130     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
3131 }
3132 static FORCEINLINE HRESULT ISpObjectToken_GetDWORD(ISpObjectToken* This,LPCWSTR pszValueName,DWORD *pdwValue) {
3133     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
3134 }
3135 static FORCEINLINE HRESULT ISpObjectToken_OpenKey(ISpObjectToken* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
3136     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
3137 }
3138 static FORCEINLINE HRESULT ISpObjectToken_CreateKey(ISpObjectToken* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
3139     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
3140 }
3141 static FORCEINLINE HRESULT ISpObjectToken_DeleteKey(ISpObjectToken* This,LPCWSTR pszSubKey) {
3142     return This->lpVtbl->DeleteKey(This,pszSubKey);
3143 }
3144 static FORCEINLINE HRESULT ISpObjectToken_DeleteValue(ISpObjectToken* This,LPCWSTR pszValueName) {
3145     return This->lpVtbl->DeleteValue(This,pszValueName);
3146 }
3147 static FORCEINLINE HRESULT ISpObjectToken_EnumKeys(ISpObjectToken* This,ULONG Index,LPWSTR *ppszSubKeyName) {
3148     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
3149 }
3150 static FORCEINLINE HRESULT ISpObjectToken_EnumValues(ISpObjectToken* This,ULONG Index,LPWSTR *ppszValueName) {
3151     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
3152 }
3153 /*** ISpObjectToken methods ***/
3154 static FORCEINLINE HRESULT ISpObjectToken_SetId(ISpObjectToken* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,WINBOOL fCreateIfNotExist) {
3155     return This->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist);
3156 }
3157 static FORCEINLINE HRESULT ISpObjectToken_GetId(ISpObjectToken* This,LPWSTR *ppszCoMemTokenId) {
3158     return This->lpVtbl->GetId(This,ppszCoMemTokenId);
3159 }
3160 static FORCEINLINE HRESULT ISpObjectToken_GetCategory(ISpObjectToken* This,ISpObjectTokenCategory **ppTokenCategory) {
3161     return This->lpVtbl->GetCategory(This,ppTokenCategory);
3162 }
3163 static FORCEINLINE HRESULT ISpObjectToken_CreateInstance(ISpObjectToken* This,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,void **ppvObject) {
3164     return This->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject);
3165 }
3166 static FORCEINLINE HRESULT ISpObjectToken_GetStorageFileName(ISpObjectToken* This,REFCLSID clsidCaller,LPCWSTR pszValueName,LPCWSTR pszFileNameSpecifier,ULONG nFolder,LPWSTR *ppszFilePath) {
3167     return This->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath);
3168 }
3169 static FORCEINLINE HRESULT ISpObjectToken_RemoveStorageFileName(ISpObjectToken* This,REFCLSID clsidCaller,LPCWSTR pszKeyName,WINBOOL fDeleteFile) {
3170     return This->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile);
3171 }
3172 static FORCEINLINE HRESULT ISpObjectToken_Remove(ISpObjectToken* This,const CLSID *pclsidCaller) {
3173     return This->lpVtbl->Remove(This,pclsidCaller);
3174 }
3175 static FORCEINLINE HRESULT ISpObjectToken_IsUISupported(ISpObjectToken* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject,WINBOOL *pfSupported) {
3176     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported);
3177 }
3178 static FORCEINLINE HRESULT ISpObjectToken_DisplayUI(ISpObjectToken* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject) {
3179     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject);
3180 }
3181 static FORCEINLINE HRESULT ISpObjectToken_MatchesAttributes(ISpObjectToken* This,LPCWSTR pszAttributes,WINBOOL *pfMatches) {
3182     return This->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches);
3183 }
3184 #endif
3185 #endif
3186 
3187 #endif
3188 
3189 HRESULT STDMETHODCALLTYPE ISpObjectToken_SetId_Proxy(
3190     ISpObjectToken* This,
3191     LPCWSTR pszCategoryId,
3192     LPCWSTR pszTokenId,
3193     WINBOOL fCreateIfNotExist);
3194 void __RPC_STUB ISpObjectToken_SetId_Stub(
3195     IRpcStubBuffer* This,
3196     IRpcChannelBuffer* pRpcChannelBuffer,
3197     PRPC_MESSAGE pRpcMessage,
3198     DWORD* pdwStubPhase);
3199 HRESULT STDMETHODCALLTYPE ISpObjectToken_GetId_Proxy(
3200     ISpObjectToken* This,
3201     LPWSTR *ppszCoMemTokenId);
3202 void __RPC_STUB ISpObjectToken_GetId_Stub(
3203     IRpcStubBuffer* This,
3204     IRpcChannelBuffer* pRpcChannelBuffer,
3205     PRPC_MESSAGE pRpcMessage,
3206     DWORD* pdwStubPhase);
3207 HRESULT STDMETHODCALLTYPE ISpObjectToken_GetCategory_Proxy(
3208     ISpObjectToken* This,
3209     ISpObjectTokenCategory **ppTokenCategory);
3210 void __RPC_STUB ISpObjectToken_GetCategory_Stub(
3211     IRpcStubBuffer* This,
3212     IRpcChannelBuffer* pRpcChannelBuffer,
3213     PRPC_MESSAGE pRpcMessage,
3214     DWORD* pdwStubPhase);
3215 HRESULT STDMETHODCALLTYPE ISpObjectToken_CreateInstance_Proxy(
3216     ISpObjectToken* This,
3217     IUnknown *pUnkOuter,
3218     DWORD dwClsContext,
3219     REFIID riid,
3220     void **ppvObject);
3221 void __RPC_STUB ISpObjectToken_CreateInstance_Stub(
3222     IRpcStubBuffer* This,
3223     IRpcChannelBuffer* pRpcChannelBuffer,
3224     PRPC_MESSAGE pRpcMessage,
3225     DWORD* pdwStubPhase);
3226 HRESULT STDMETHODCALLTYPE ISpObjectToken_GetStorageFileName_Proxy(
3227     ISpObjectToken* This,
3228     REFCLSID clsidCaller,
3229     LPCWSTR pszValueName,
3230     LPCWSTR pszFileNameSpecifier,
3231     ULONG nFolder,
3232     LPWSTR *ppszFilePath);
3233 void __RPC_STUB ISpObjectToken_GetStorageFileName_Stub(
3234     IRpcStubBuffer* This,
3235     IRpcChannelBuffer* pRpcChannelBuffer,
3236     PRPC_MESSAGE pRpcMessage,
3237     DWORD* pdwStubPhase);
3238 HRESULT STDMETHODCALLTYPE ISpObjectToken_RemoveStorageFileName_Proxy(
3239     ISpObjectToken* This,
3240     REFCLSID clsidCaller,
3241     LPCWSTR pszKeyName,
3242     WINBOOL fDeleteFile);
3243 void __RPC_STUB ISpObjectToken_RemoveStorageFileName_Stub(
3244     IRpcStubBuffer* This,
3245     IRpcChannelBuffer* pRpcChannelBuffer,
3246     PRPC_MESSAGE pRpcMessage,
3247     DWORD* pdwStubPhase);
3248 HRESULT STDMETHODCALLTYPE ISpObjectToken_Remove_Proxy(
3249     ISpObjectToken* This,
3250     const CLSID *pclsidCaller);
3251 void __RPC_STUB ISpObjectToken_Remove_Stub(
3252     IRpcStubBuffer* This,
3253     IRpcChannelBuffer* pRpcChannelBuffer,
3254     PRPC_MESSAGE pRpcMessage,
3255     DWORD* pdwStubPhase);
3256 HRESULT STDMETHODCALLTYPE ISpObjectToken_MatchesAttributes_Proxy(
3257     ISpObjectToken* This,
3258     LPCWSTR pszAttributes,
3259     WINBOOL *pfMatches);
3260 void __RPC_STUB ISpObjectToken_MatchesAttributes_Stub(
3261     IRpcStubBuffer* This,
3262     IRpcChannelBuffer* pRpcChannelBuffer,
3263     PRPC_MESSAGE pRpcMessage,
3264     DWORD* pdwStubPhase);
3265 
3266 #endif  /* __ISpObjectToken_INTERFACE_DEFINED__ */
3267 
3268 /*****************************************************************************
3269  * ISpObjectTokenInit interface
3270  */
3271 #ifndef __ISpObjectTokenInit_INTERFACE_DEFINED__
3272 #define __ISpObjectTokenInit_INTERFACE_DEFINED__
3273 
3274 DEFINE_GUID(IID_ISpObjectTokenInit, 0xb8aab0cf, 0x346f, 0x49d8, 0x94,0x99, 0xc8,0xb0,0x3f,0x16,0x1d,0x51);
3275 #if defined(__cplusplus) && !defined(CINTERFACE)
3276 MIDL_INTERFACE("b8aab0cf-346f-49d8-9499-c8b03f161d51")
3277 ISpObjectTokenInit : public ISpObjectToken
3278 {
3279     virtual HRESULT STDMETHODCALLTYPE InitFromDataKey(
3280         LPCWSTR pszCategoryId,
3281         LPCWSTR pszTokenId,
3282         ISpDataKey *pDataKey) = 0;
3283 
3284 };
3285 #ifdef __CRT_UUID_DECL
3286 __CRT_UUID_DECL(ISpObjectTokenInit, 0xb8aab0cf, 0x346f, 0x49d8, 0x94,0x99, 0xc8,0xb0,0x3f,0x16,0x1d,0x51)
3287 #endif
3288 #else
3289 typedef struct ISpObjectTokenInitVtbl {
3290     BEGIN_INTERFACE
3291 
3292     /*** IUnknown methods ***/
3293     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3294         ISpObjectTokenInit* This,
3295         REFIID riid,
3296         void **ppvObject);
3297 
3298     ULONG (STDMETHODCALLTYPE *AddRef)(
3299         ISpObjectTokenInit* This);
3300 
3301     ULONG (STDMETHODCALLTYPE *Release)(
3302         ISpObjectTokenInit* This);
3303 
3304     /*** ISpDataKey methods ***/
3305     HRESULT (STDMETHODCALLTYPE *SetData)(
3306         ISpObjectTokenInit* This,
3307         LPCWSTR pszValueName,
3308         ULONG cbData,
3309         const BYTE *pData);
3310 
3311     HRESULT (STDMETHODCALLTYPE *GetData)(
3312         ISpObjectTokenInit* This,
3313         LPCWSTR pszValueName,
3314         ULONG *pcbData,
3315         BYTE *pData);
3316 
3317     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
3318         ISpObjectTokenInit* This,
3319         LPCWSTR pszValueName,
3320         LPCWSTR pszValue);
3321 
3322     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
3323         ISpObjectTokenInit* This,
3324         LPCWSTR pszValueName,
3325         LPWSTR *ppszValue);
3326 
3327     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
3328         ISpObjectTokenInit* This,
3329         LPCWSTR pszValueName,
3330         DWORD dwValue);
3331 
3332     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
3333         ISpObjectTokenInit* This,
3334         LPCWSTR pszValueName,
3335         DWORD *pdwValue);
3336 
3337     HRESULT (STDMETHODCALLTYPE *OpenKey)(
3338         ISpObjectTokenInit* This,
3339         LPCWSTR pszSubKeyName,
3340         ISpDataKey **ppSubKey);
3341 
3342     HRESULT (STDMETHODCALLTYPE *CreateKey)(
3343         ISpObjectTokenInit* This,
3344         LPCWSTR pszSubKey,
3345         ISpDataKey **ppSubKey);
3346 
3347     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
3348         ISpObjectTokenInit* This,
3349         LPCWSTR pszSubKey);
3350 
3351     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
3352         ISpObjectTokenInit* This,
3353         LPCWSTR pszValueName);
3354 
3355     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
3356         ISpObjectTokenInit* This,
3357         ULONG Index,
3358         LPWSTR *ppszSubKeyName);
3359 
3360     HRESULT (STDMETHODCALLTYPE *EnumValues)(
3361         ISpObjectTokenInit* This,
3362         ULONG Index,
3363         LPWSTR *ppszValueName);
3364 
3365     /*** ISpObjectToken methods ***/
3366     HRESULT (STDMETHODCALLTYPE *SetId)(
3367         ISpObjectTokenInit* This,
3368         LPCWSTR pszCategoryId,
3369         LPCWSTR pszTokenId,
3370         WINBOOL fCreateIfNotExist);
3371 
3372     HRESULT (STDMETHODCALLTYPE *GetId)(
3373         ISpObjectTokenInit* This,
3374         LPWSTR *ppszCoMemTokenId);
3375 
3376     HRESULT (STDMETHODCALLTYPE *GetCategory)(
3377         ISpObjectTokenInit* This,
3378         ISpObjectTokenCategory **ppTokenCategory);
3379 
3380     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
3381         ISpObjectTokenInit* This,
3382         IUnknown *pUnkOuter,
3383         DWORD dwClsContext,
3384         REFIID riid,
3385         void **ppvObject);
3386 
3387     HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
3388         ISpObjectTokenInit* This,
3389         REFCLSID clsidCaller,
3390         LPCWSTR pszValueName,
3391         LPCWSTR pszFileNameSpecifier,
3392         ULONG nFolder,
3393         LPWSTR *ppszFilePath);
3394 
3395     HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
3396         ISpObjectTokenInit* This,
3397         REFCLSID clsidCaller,
3398         LPCWSTR pszKeyName,
3399         WINBOOL fDeleteFile);
3400 
3401     HRESULT (STDMETHODCALLTYPE *Remove)(
3402         ISpObjectTokenInit* This,
3403         const CLSID *pclsidCaller);
3404 
3405     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
3406         ISpObjectTokenInit* This,
3407         LPCWSTR pszTypeOfUI,
3408         void *pvExtraData,
3409         ULONG cbExtraData,
3410         IUnknown *punkObject,
3411         WINBOOL *pfSupported);
3412 
3413     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
3414         ISpObjectTokenInit* This,
3415         HWND hwndParent,
3416         LPCWSTR pszTitle,
3417         LPCWSTR pszTypeOfUI,
3418         void *pvExtraData,
3419         ULONG cbExtraData,
3420         IUnknown *punkObject);
3421 
3422     HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
3423         ISpObjectTokenInit* This,
3424         LPCWSTR pszAttributes,
3425         WINBOOL *pfMatches);
3426 
3427     /*** ISpObjectTokenInit methods ***/
3428     HRESULT (STDMETHODCALLTYPE *InitFromDataKey)(
3429         ISpObjectTokenInit* This,
3430         LPCWSTR pszCategoryId,
3431         LPCWSTR pszTokenId,
3432         ISpDataKey *pDataKey);
3433 
3434     END_INTERFACE
3435 } ISpObjectTokenInitVtbl;
3436 interface ISpObjectTokenInit {
3437     CONST_VTBL ISpObjectTokenInitVtbl* lpVtbl;
3438 };
3439 
3440 #ifdef COBJMACROS
3441 #ifndef WIDL_C_INLINE_WRAPPERS
3442 /*** IUnknown methods ***/
3443 #define ISpObjectTokenInit_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3444 #define ISpObjectTokenInit_AddRef(This) (This)->lpVtbl->AddRef(This)
3445 #define ISpObjectTokenInit_Release(This) (This)->lpVtbl->Release(This)
3446 /*** ISpDataKey methods ***/
3447 #define ISpObjectTokenInit_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
3448 #define ISpObjectTokenInit_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
3449 #define ISpObjectTokenInit_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
3450 #define ISpObjectTokenInit_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
3451 #define ISpObjectTokenInit_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
3452 #define ISpObjectTokenInit_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
3453 #define ISpObjectTokenInit_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
3454 #define ISpObjectTokenInit_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
3455 #define ISpObjectTokenInit_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
3456 #define ISpObjectTokenInit_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
3457 #define ISpObjectTokenInit_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
3458 #define ISpObjectTokenInit_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
3459 /*** ISpObjectToken methods ***/
3460 #define ISpObjectTokenInit_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
3461 #define ISpObjectTokenInit_GetId(This,ppszCoMemTokenId) (This)->lpVtbl->GetId(This,ppszCoMemTokenId)
3462 #define ISpObjectTokenInit_GetCategory(This,ppTokenCategory) (This)->lpVtbl->GetCategory(This,ppTokenCategory)
3463 #define ISpObjectTokenInit_CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
3464 #define ISpObjectTokenInit_GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath) (This)->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
3465 #define ISpObjectTokenInit_RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
3466 #define ISpObjectTokenInit_Remove(This,pclsidCaller) (This)->lpVtbl->Remove(This,pclsidCaller)
3467 #define ISpObjectTokenInit_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
3468 #define ISpObjectTokenInit_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
3469 #define ISpObjectTokenInit_MatchesAttributes(This,pszAttributes,pfMatches) (This)->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches)
3470 /*** ISpObjectTokenInit methods ***/
3471 #define ISpObjectTokenInit_InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey) (This)->lpVtbl->InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey)
3472 #else
3473 /*** IUnknown methods ***/
3474 static FORCEINLINE HRESULT ISpObjectTokenInit_QueryInterface(ISpObjectTokenInit* This,REFIID riid,void **ppvObject) {
3475     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3476 }
3477 static FORCEINLINE ULONG ISpObjectTokenInit_AddRef(ISpObjectTokenInit* This) {
3478     return This->lpVtbl->AddRef(This);
3479 }
3480 static FORCEINLINE ULONG ISpObjectTokenInit_Release(ISpObjectTokenInit* This) {
3481     return This->lpVtbl->Release(This);
3482 }
3483 /*** ISpDataKey methods ***/
3484 static FORCEINLINE HRESULT ISpObjectTokenInit_SetData(ISpObjectTokenInit* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
3485     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
3486 }
3487 static FORCEINLINE HRESULT ISpObjectTokenInit_GetData(ISpObjectTokenInit* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
3488     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
3489 }
3490 static FORCEINLINE HRESULT ISpObjectTokenInit_SetStringValue(ISpObjectTokenInit* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
3491     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
3492 }
3493 static FORCEINLINE HRESULT ISpObjectTokenInit_GetStringValue(ISpObjectTokenInit* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
3494     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
3495 }
3496 static FORCEINLINE HRESULT ISpObjectTokenInit_SetDWORD(ISpObjectTokenInit* This,LPCWSTR pszValueName,DWORD dwValue) {
3497     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
3498 }
3499 static FORCEINLINE HRESULT ISpObjectTokenInit_GetDWORD(ISpObjectTokenInit* This,LPCWSTR pszValueName,DWORD *pdwValue) {
3500     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
3501 }
3502 static FORCEINLINE HRESULT ISpObjectTokenInit_OpenKey(ISpObjectTokenInit* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
3503     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
3504 }
3505 static FORCEINLINE HRESULT ISpObjectTokenInit_CreateKey(ISpObjectTokenInit* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
3506     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
3507 }
3508 static FORCEINLINE HRESULT ISpObjectTokenInit_DeleteKey(ISpObjectTokenInit* This,LPCWSTR pszSubKey) {
3509     return This->lpVtbl->DeleteKey(This,pszSubKey);
3510 }
3511 static FORCEINLINE HRESULT ISpObjectTokenInit_DeleteValue(ISpObjectTokenInit* This,LPCWSTR pszValueName) {
3512     return This->lpVtbl->DeleteValue(This,pszValueName);
3513 }
3514 static FORCEINLINE HRESULT ISpObjectTokenInit_EnumKeys(ISpObjectTokenInit* This,ULONG Index,LPWSTR *ppszSubKeyName) {
3515     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
3516 }
3517 static FORCEINLINE HRESULT ISpObjectTokenInit_EnumValues(ISpObjectTokenInit* This,ULONG Index,LPWSTR *ppszValueName) {
3518     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
3519 }
3520 /*** ISpObjectToken methods ***/
3521 static FORCEINLINE HRESULT ISpObjectTokenInit_SetId(ISpObjectTokenInit* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,WINBOOL fCreateIfNotExist) {
3522     return This->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist);
3523 }
3524 static FORCEINLINE HRESULT ISpObjectTokenInit_GetId(ISpObjectTokenInit* This,LPWSTR *ppszCoMemTokenId) {
3525     return This->lpVtbl->GetId(This,ppszCoMemTokenId);
3526 }
3527 static FORCEINLINE HRESULT ISpObjectTokenInit_GetCategory(ISpObjectTokenInit* This,ISpObjectTokenCategory **ppTokenCategory) {
3528     return This->lpVtbl->GetCategory(This,ppTokenCategory);
3529 }
3530 static FORCEINLINE HRESULT ISpObjectTokenInit_CreateInstance(ISpObjectTokenInit* This,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,void **ppvObject) {
3531     return This->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject);
3532 }
3533 static FORCEINLINE HRESULT ISpObjectTokenInit_GetStorageFileName(ISpObjectTokenInit* This,REFCLSID clsidCaller,LPCWSTR pszValueName,LPCWSTR pszFileNameSpecifier,ULONG nFolder,LPWSTR *ppszFilePath) {
3534     return This->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath);
3535 }
3536 static FORCEINLINE HRESULT ISpObjectTokenInit_RemoveStorageFileName(ISpObjectTokenInit* This,REFCLSID clsidCaller,LPCWSTR pszKeyName,WINBOOL fDeleteFile) {
3537     return This->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile);
3538 }
3539 static FORCEINLINE HRESULT ISpObjectTokenInit_Remove(ISpObjectTokenInit* This,const CLSID *pclsidCaller) {
3540     return This->lpVtbl->Remove(This,pclsidCaller);
3541 }
3542 static FORCEINLINE HRESULT ISpObjectTokenInit_IsUISupported(ISpObjectTokenInit* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject,WINBOOL *pfSupported) {
3543     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported);
3544 }
3545 static FORCEINLINE HRESULT ISpObjectTokenInit_DisplayUI(ISpObjectTokenInit* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject) {
3546     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject);
3547 }
3548 static FORCEINLINE HRESULT ISpObjectTokenInit_MatchesAttributes(ISpObjectTokenInit* This,LPCWSTR pszAttributes,WINBOOL *pfMatches) {
3549     return This->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches);
3550 }
3551 /*** ISpObjectTokenInit methods ***/
3552 static FORCEINLINE HRESULT ISpObjectTokenInit_InitFromDataKey(ISpObjectTokenInit* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,ISpDataKey *pDataKey) {
3553     return This->lpVtbl->InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey);
3554 }
3555 #endif
3556 #endif
3557 
3558 #endif
3559 
3560 HRESULT STDMETHODCALLTYPE ISpObjectTokenInit_InitFromDataKey_Proxy(
3561     ISpObjectTokenInit* This,
3562     LPCWSTR pszCategoryId,
3563     LPCWSTR pszTokenId,
3564     ISpDataKey *pDataKey);
3565 void __RPC_STUB ISpObjectTokenInit_InitFromDataKey_Stub(
3566     IRpcStubBuffer* This,
3567     IRpcChannelBuffer* pRpcChannelBuffer,
3568     PRPC_MESSAGE pRpcMessage,
3569     DWORD* pdwStubPhase);
3570 
3571 #endif  /* __ISpObjectTokenInit_INTERFACE_DEFINED__ */
3572 
3573 /*****************************************************************************
3574  * ISpResourceManager interface
3575  */
3576 #ifndef __ISpResourceManager_INTERFACE_DEFINED__
3577 #define __ISpResourceManager_INTERFACE_DEFINED__
3578 
3579 DEFINE_GUID(IID_ISpResourceManager, 0x93384e18, 0x5014, 0x43d5, 0xad,0xbb, 0xa7,0x8e,0x05,0x59,0x26,0xbd);
3580 #if defined(__cplusplus) && !defined(CINTERFACE)
3581 MIDL_INTERFACE("93384e18-5014-43d5-adbb-a78e055926bd")
3582 ISpResourceManager : public IServiceProvider
3583 {
3584     virtual HRESULT STDMETHODCALLTYPE SetObject(
3585         REFGUID guidServiceId,
3586         IUnknown *pUnkObject) = 0;
3587 
3588     virtual HRESULT STDMETHODCALLTYPE GetObject(
3589         REFGUID guidServiceId,
3590         REFCLSID ObjectCLSID,
3591         REFIID ObjectIID,
3592         WINBOOL fReleaseWhenLastExternalRefReleased,
3593         void **ppObject) = 0;
3594 
3595 };
3596 #ifdef __CRT_UUID_DECL
3597 __CRT_UUID_DECL(ISpResourceManager, 0x93384e18, 0x5014, 0x43d5, 0xad,0xbb, 0xa7,0x8e,0x05,0x59,0x26,0xbd)
3598 #endif
3599 #else
3600 typedef struct ISpResourceManagerVtbl {
3601     BEGIN_INTERFACE
3602 
3603     /*** IUnknown methods ***/
3604     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3605         ISpResourceManager* This,
3606         REFIID riid,
3607         void **ppvObject);
3608 
3609     ULONG (STDMETHODCALLTYPE *AddRef)(
3610         ISpResourceManager* This);
3611 
3612     ULONG (STDMETHODCALLTYPE *Release)(
3613         ISpResourceManager* This);
3614 
3615     /*** IServiceProvider methods ***/
3616     HRESULT (STDMETHODCALLTYPE *QueryService)(
3617         ISpResourceManager* This,
3618         REFGUID guidService,
3619         REFIID riid,
3620         void **ppvObject);
3621 
3622     /*** ISpResourceManager methods ***/
3623     HRESULT (STDMETHODCALLTYPE *SetObject)(
3624         ISpResourceManager* This,
3625         REFGUID guidServiceId,
3626         IUnknown *pUnkObject);
3627 
3628     HRESULT (STDMETHODCALLTYPE *GetObject)(
3629         ISpResourceManager* This,
3630         REFGUID guidServiceId,
3631         REFCLSID ObjectCLSID,
3632         REFIID ObjectIID,
3633         WINBOOL fReleaseWhenLastExternalRefReleased,
3634         void **ppObject);
3635 
3636     END_INTERFACE
3637 } ISpResourceManagerVtbl;
3638 interface ISpResourceManager {
3639     CONST_VTBL ISpResourceManagerVtbl* lpVtbl;
3640 };
3641 
3642 #ifdef COBJMACROS
3643 #ifndef WIDL_C_INLINE_WRAPPERS
3644 /*** IUnknown methods ***/
3645 #define ISpResourceManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3646 #define ISpResourceManager_AddRef(This) (This)->lpVtbl->AddRef(This)
3647 #define ISpResourceManager_Release(This) (This)->lpVtbl->Release(This)
3648 /*** IServiceProvider methods ***/
3649 #define ISpResourceManager_QueryService(This,guidService,riid,ppvObject) (This)->lpVtbl->QueryService(This,guidService,riid,ppvObject)
3650 /*** ISpResourceManager methods ***/
3651 #define ISpResourceManager_SetObject(This,guidServiceId,pUnkObject) (This)->lpVtbl->SetObject(This,guidServiceId,pUnkObject)
3652 #define ISpResourceManager_GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject) (This)->lpVtbl->GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject)
3653 #else
3654 /*** IUnknown methods ***/
3655 static FORCEINLINE HRESULT ISpResourceManager_QueryInterface(ISpResourceManager* This,REFIID riid,void **ppvObject) {
3656     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3657 }
3658 static FORCEINLINE ULONG ISpResourceManager_AddRef(ISpResourceManager* This) {
3659     return This->lpVtbl->AddRef(This);
3660 }
3661 static FORCEINLINE ULONG ISpResourceManager_Release(ISpResourceManager* This) {
3662     return This->lpVtbl->Release(This);
3663 }
3664 /*** IServiceProvider methods ***/
3665 static FORCEINLINE HRESULT ISpResourceManager_QueryService(ISpResourceManager* This,REFGUID guidService,REFIID riid,void **ppvObject) {
3666     return This->lpVtbl->QueryService(This,guidService,riid,ppvObject);
3667 }
3668 /*** ISpResourceManager methods ***/
3669 static FORCEINLINE HRESULT ISpResourceManager_SetObject(ISpResourceManager* This,REFGUID guidServiceId,IUnknown *pUnkObject) {
3670     return This->lpVtbl->SetObject(This,guidServiceId,pUnkObject);
3671 }
3672 static FORCEINLINE HRESULT ISpResourceManager_GetObject(ISpResourceManager* This,REFGUID guidServiceId,REFCLSID ObjectCLSID,REFIID ObjectIID,WINBOOL fReleaseWhenLastExternalRefReleased,void **ppObject) {
3673     return This->lpVtbl->GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject);
3674 }
3675 #endif
3676 #endif
3677 
3678 #endif
3679 
3680 HRESULT STDMETHODCALLTYPE ISpResourceManager_SetObject_Proxy(
3681     ISpResourceManager* This,
3682     REFGUID guidServiceId,
3683     IUnknown *pUnkObject);
3684 void __RPC_STUB ISpResourceManager_SetObject_Stub(
3685     IRpcStubBuffer* This,
3686     IRpcChannelBuffer* pRpcChannelBuffer,
3687     PRPC_MESSAGE pRpcMessage,
3688     DWORD* pdwStubPhase);
3689 HRESULT STDMETHODCALLTYPE ISpResourceManager_GetObject_Proxy(
3690     ISpResourceManager* This,
3691     REFGUID guidServiceId,
3692     REFCLSID ObjectCLSID,
3693     REFIID ObjectIID,
3694     WINBOOL fReleaseWhenLastExternalRefReleased,
3695     void **ppObject);
3696 void __RPC_STUB ISpResourceManager_GetObject_Stub(
3697     IRpcStubBuffer* This,
3698     IRpcChannelBuffer* pRpcChannelBuffer,
3699     PRPC_MESSAGE pRpcMessage,
3700     DWORD* pdwStubPhase);
3701 
3702 #endif  /* __ISpResourceManager_INTERFACE_DEFINED__ */
3703 
3704 #if 0
3705 typedef struct SPEVENT {
3706     WORD eEventId;
3707     WORD elParamType;
3708     ULONG ulStreamNum;
3709     ULONGLONG ullAudioStreamOffset;
3710     WPARAM wParam;
3711     LPARAM lParam;
3712 } SPEVENT;
3713 typedef struct SPSERIALIZEDEVENT {
3714     WORD eEventId;
3715     WORD elParamType;
3716     ULONG ulStreamNum;
3717     ULONGLONG ullAudioStreamOffset;
3718     ULONG SerializedwParam;
3719     LONG SerializedlParam;
3720 } SPSERIALIZEDEVENT;
3721 typedef struct SPSERIALIZEDEVENT64 {
3722     WORD eEventId;
3723     WORD elParamType;
3724     ULONG ulStreamNum;
3725     ULONGLONG ullAudioStreamOffset;
3726     ULONGLONG SerializedwParam;
3727     LONGLONG SerializedlParam;
3728 } SPSERIALIZEDEVENT64;
3729 #else
3730 typedef struct SPEVENT {
3731   SPEVENTENUM eEventId : 16;
3732   SPEVENTLPARAMTYPE elParamType : 16;
3733   ULONG ulStreamNum;
3734   ULONGLONG ullAudioStreamOffset;
3735   WPARAM      wParam;
3736   LPARAM      lParam;
3737 } SPEVENT;
3738 
3739 typedef struct SPSERIALIZEDEVENT {
3740   SPEVENTENUM eEventId : 16;
3741   SPEVENTLPARAMTYPE elParamType : 16;
3742   ULONG ulStreamNum;
3743   ULONGLONG ullAudioStreamOffset;
3744   ULONG SerializedwParam;
3745   LONG SerializedlParam;
3746 } SPSERIALIZEDEVENT;
3747 
3748 typedef struct SPSERIALIZEDEVENT64 {
3749   SPEVENTENUM eEventId : 16;
3750   SPEVENTLPARAMTYPE elParamType : 16;
3751   ULONG ulStreamNum;
3752   ULONGLONG ullAudioStreamOffset;
3753   ULONGLONG SerializedwParam;
3754   LONGLONG SerializedlParam;
3755 } SPSERIALIZEDEVENT64;
3756 #endif
3757 #if 0
3758 typedef struct SPEVENTEX {
3759     WORD eEventId;
3760     WORD elParamType;
3761     ULONG ulStreamNum;
3762     ULONGLONG ullAudioStreamOffset;
3763     WPARAM wParam;
3764     LPARAM lParam;
3765     ULONGLONG ullAudioTimeOffset;
3766 } SPEVENTEX;
3767 #else
3768 typedef struct SPEVENTEX {
3769   SPEVENTENUM eEventId : 16;
3770   SPEVENTLPARAMTYPE elParamType : 16;
3771   ULONG ulStreamNum;
3772   ULONGLONG ullAudioStreamOffset;
3773   WPARAM wParam;
3774   LPARAM lParam;
3775   ULONGLONG ullAudioTimeOffset;
3776 } SPEVENTEX;
3777 #endif
3778 typedef struct SPEVENTSOURCEINFO {
3779     ULONGLONG ullEventInterest;
3780     ULONGLONG ullQueuedInterest;
3781     ULONG ulCount;
3782 } SPEVENTSOURCEINFO;
3783 /*****************************************************************************
3784  * ISpEventSource interface
3785  */
3786 #ifndef __ISpEventSource_INTERFACE_DEFINED__
3787 #define __ISpEventSource_INTERFACE_DEFINED__
3788 
3789 DEFINE_GUID(IID_ISpEventSource, 0xbe7a9cce, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
3790 #if defined(__cplusplus) && !defined(CINTERFACE)
3791 MIDL_INTERFACE("be7a9cce-5f9e-11d2-960f-00c04f8ee628")
3792 ISpEventSource : public ISpNotifySource
3793 {
3794     virtual HRESULT STDMETHODCALLTYPE SetInterest(
3795         ULONGLONG ullEventInterest,
3796         ULONGLONG ullQueuedInterest) = 0;
3797 
3798     virtual HRESULT STDMETHODCALLTYPE GetEvents(
3799         ULONG ulCount,
3800         SPEVENT *pEventArray,
3801         ULONG *pulFetched) = 0;
3802 
3803     virtual HRESULT STDMETHODCALLTYPE GetInfo(
3804         SPEVENTSOURCEINFO *pInfo) = 0;
3805 
3806 };
3807 #ifdef __CRT_UUID_DECL
3808 __CRT_UUID_DECL(ISpEventSource, 0xbe7a9cce, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
3809 #endif
3810 #else
3811 typedef struct ISpEventSourceVtbl {
3812     BEGIN_INTERFACE
3813 
3814     /*** IUnknown methods ***/
3815     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3816         ISpEventSource* This,
3817         REFIID riid,
3818         void **ppvObject);
3819 
3820     ULONG (STDMETHODCALLTYPE *AddRef)(
3821         ISpEventSource* This);
3822 
3823     ULONG (STDMETHODCALLTYPE *Release)(
3824         ISpEventSource* This);
3825 
3826     /*** ISpNotifySource methods ***/
3827     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
3828         ISpEventSource* This,
3829         ISpNotifySink *pNotifySink);
3830 
3831     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
3832         ISpEventSource* This,
3833         HWND hWnd,
3834         UINT Msg,
3835         WPARAM wParam,
3836         LPARAM lParam);
3837 
3838     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
3839         ISpEventSource* This,
3840         SPNOTIFYCALLBACK *pfnCallback,
3841         WPARAM wParam,
3842         LPARAM lParam);
3843 
3844     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
3845         ISpEventSource* This,
3846         ISpNotifyCallback *pSpCallback,
3847         WPARAM wParam,
3848         LPARAM lParam);
3849 
3850     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
3851         ISpEventSource* This);
3852 
3853     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
3854         ISpEventSource* This,
3855         DWORD dwMilliseconds);
3856 
3857     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
3858         ISpEventSource* This);
3859 
3860     /*** ISpEventSource methods ***/
3861     HRESULT (STDMETHODCALLTYPE *SetInterest)(
3862         ISpEventSource* This,
3863         ULONGLONG ullEventInterest,
3864         ULONGLONG ullQueuedInterest);
3865 
3866     HRESULT (STDMETHODCALLTYPE *GetEvents)(
3867         ISpEventSource* This,
3868         ULONG ulCount,
3869         SPEVENT *pEventArray,
3870         ULONG *pulFetched);
3871 
3872     HRESULT (STDMETHODCALLTYPE *GetInfo)(
3873         ISpEventSource* This,
3874         SPEVENTSOURCEINFO *pInfo);
3875 
3876     END_INTERFACE
3877 } ISpEventSourceVtbl;
3878 interface ISpEventSource {
3879     CONST_VTBL ISpEventSourceVtbl* lpVtbl;
3880 };
3881 
3882 #ifdef COBJMACROS
3883 #ifndef WIDL_C_INLINE_WRAPPERS
3884 /*** IUnknown methods ***/
3885 #define ISpEventSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3886 #define ISpEventSource_AddRef(This) (This)->lpVtbl->AddRef(This)
3887 #define ISpEventSource_Release(This) (This)->lpVtbl->Release(This)
3888 /*** ISpNotifySource methods ***/
3889 #define ISpEventSource_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
3890 #define ISpEventSource_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
3891 #define ISpEventSource_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
3892 #define ISpEventSource_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
3893 #define ISpEventSource_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
3894 #define ISpEventSource_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
3895 #define ISpEventSource_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
3896 /*** ISpEventSource methods ***/
3897 #define ISpEventSource_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
3898 #define ISpEventSource_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
3899 #define ISpEventSource_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
3900 #else
3901 /*** IUnknown methods ***/
3902 static FORCEINLINE HRESULT ISpEventSource_QueryInterface(ISpEventSource* This,REFIID riid,void **ppvObject) {
3903     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3904 }
3905 static FORCEINLINE ULONG ISpEventSource_AddRef(ISpEventSource* This) {
3906     return This->lpVtbl->AddRef(This);
3907 }
3908 static FORCEINLINE ULONG ISpEventSource_Release(ISpEventSource* This) {
3909     return This->lpVtbl->Release(This);
3910 }
3911 /*** ISpNotifySource methods ***/
3912 static FORCEINLINE HRESULT ISpEventSource_SetNotifySink(ISpEventSource* This,ISpNotifySink *pNotifySink) {
3913     return This->lpVtbl->SetNotifySink(This,pNotifySink);
3914 }
3915 static FORCEINLINE HRESULT ISpEventSource_SetNotifyWindowMessage(ISpEventSource* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
3916     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
3917 }
3918 static FORCEINLINE HRESULT ISpEventSource_SetNotifyCallbackFunction(ISpEventSource* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
3919     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
3920 }
3921 static FORCEINLINE HRESULT ISpEventSource_SetNotifyCallbackInterface(ISpEventSource* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
3922     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
3923 }
3924 static FORCEINLINE HRESULT ISpEventSource_SetNotifyWin32Event(ISpEventSource* This) {
3925     return This->lpVtbl->SetNotifyWin32Event(This);
3926 }
3927 static FORCEINLINE HRESULT ISpEventSource_WaitForNotifyEvent(ISpEventSource* This,DWORD dwMilliseconds) {
3928     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
3929 }
3930 static FORCEINLINE HANDLE ISpEventSource_GetNotifyEventHandle(ISpEventSource* This) {
3931     return This->lpVtbl->GetNotifyEventHandle(This);
3932 }
3933 /*** ISpEventSource methods ***/
3934 static FORCEINLINE HRESULT ISpEventSource_SetInterest(ISpEventSource* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
3935     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
3936 }
3937 static FORCEINLINE HRESULT ISpEventSource_GetEvents(ISpEventSource* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
3938     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
3939 }
3940 static FORCEINLINE HRESULT ISpEventSource_GetInfo(ISpEventSource* This,SPEVENTSOURCEINFO *pInfo) {
3941     return This->lpVtbl->GetInfo(This,pInfo);
3942 }
3943 #endif
3944 #endif
3945 
3946 #endif
3947 
3948 HRESULT STDMETHODCALLTYPE ISpEventSource_SetInterest_Proxy(
3949     ISpEventSource* This,
3950     ULONGLONG ullEventInterest,
3951     ULONGLONG ullQueuedInterest);
3952 void __RPC_STUB ISpEventSource_SetInterest_Stub(
3953     IRpcStubBuffer* This,
3954     IRpcChannelBuffer* pRpcChannelBuffer,
3955     PRPC_MESSAGE pRpcMessage,
3956     DWORD* pdwStubPhase);
3957 HRESULT STDMETHODCALLTYPE ISpEventSource_GetEvents_Proxy(
3958     ISpEventSource* This,
3959     ULONG ulCount,
3960     SPEVENT *pEventArray,
3961     ULONG *pulFetched);
3962 void __RPC_STUB ISpEventSource_GetEvents_Stub(
3963     IRpcStubBuffer* This,
3964     IRpcChannelBuffer* pRpcChannelBuffer,
3965     PRPC_MESSAGE pRpcMessage,
3966     DWORD* pdwStubPhase);
3967 HRESULT STDMETHODCALLTYPE ISpEventSource_GetInfo_Proxy(
3968     ISpEventSource* This,
3969     SPEVENTSOURCEINFO *pInfo);
3970 void __RPC_STUB ISpEventSource_GetInfo_Stub(
3971     IRpcStubBuffer* This,
3972     IRpcChannelBuffer* pRpcChannelBuffer,
3973     PRPC_MESSAGE pRpcMessage,
3974     DWORD* pdwStubPhase);
3975 
3976 #endif  /* __ISpEventSource_INTERFACE_DEFINED__ */
3977 
3978 /*****************************************************************************
3979  * ISpEventSource2 interface
3980  */
3981 #ifndef __ISpEventSource2_INTERFACE_DEFINED__
3982 #define __ISpEventSource2_INTERFACE_DEFINED__
3983 
3984 DEFINE_GUID(IID_ISpEventSource2, 0x2373a435, 0x6a4b, 0x429e, 0xa6,0xac, 0xd4,0x23,0x1a,0x61,0x97,0x5b);
3985 #if defined(__cplusplus) && !defined(CINTERFACE)
3986 MIDL_INTERFACE("2373a435-6a4b-429e-a6ac-d4231a61975b")
3987 ISpEventSource2 : public ISpEventSource
3988 {
3989     virtual HRESULT STDMETHODCALLTYPE GetEventsEx(
3990         ULONG ulCount,
3991         SPEVENTEX *pEventArray,
3992         ULONG *pulFetched) = 0;
3993 
3994 };
3995 #ifdef __CRT_UUID_DECL
3996 __CRT_UUID_DECL(ISpEventSource2, 0x2373a435, 0x6a4b, 0x429e, 0xa6,0xac, 0xd4,0x23,0x1a,0x61,0x97,0x5b)
3997 #endif
3998 #else
3999 typedef struct ISpEventSource2Vtbl {
4000     BEGIN_INTERFACE
4001 
4002     /*** IUnknown methods ***/
4003     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4004         ISpEventSource2* This,
4005         REFIID riid,
4006         void **ppvObject);
4007 
4008     ULONG (STDMETHODCALLTYPE *AddRef)(
4009         ISpEventSource2* This);
4010 
4011     ULONG (STDMETHODCALLTYPE *Release)(
4012         ISpEventSource2* This);
4013 
4014     /*** ISpNotifySource methods ***/
4015     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
4016         ISpEventSource2* This,
4017         ISpNotifySink *pNotifySink);
4018 
4019     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
4020         ISpEventSource2* This,
4021         HWND hWnd,
4022         UINT Msg,
4023         WPARAM wParam,
4024         LPARAM lParam);
4025 
4026     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
4027         ISpEventSource2* This,
4028         SPNOTIFYCALLBACK *pfnCallback,
4029         WPARAM wParam,
4030         LPARAM lParam);
4031 
4032     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
4033         ISpEventSource2* This,
4034         ISpNotifyCallback *pSpCallback,
4035         WPARAM wParam,
4036         LPARAM lParam);
4037 
4038     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
4039         ISpEventSource2* This);
4040 
4041     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
4042         ISpEventSource2* This,
4043         DWORD dwMilliseconds);
4044 
4045     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
4046         ISpEventSource2* This);
4047 
4048     /*** ISpEventSource methods ***/
4049     HRESULT (STDMETHODCALLTYPE *SetInterest)(
4050         ISpEventSource2* This,
4051         ULONGLONG ullEventInterest,
4052         ULONGLONG ullQueuedInterest);
4053 
4054     HRESULT (STDMETHODCALLTYPE *GetEvents)(
4055         ISpEventSource2* This,
4056         ULONG ulCount,
4057         SPEVENT *pEventArray,
4058         ULONG *pulFetched);
4059 
4060     HRESULT (STDMETHODCALLTYPE *GetInfo)(
4061         ISpEventSource2* This,
4062         SPEVENTSOURCEINFO *pInfo);
4063 
4064     /*** ISpEventSource2 methods ***/
4065     HRESULT (STDMETHODCALLTYPE *GetEventsEx)(
4066         ISpEventSource2* This,
4067         ULONG ulCount,
4068         SPEVENTEX *pEventArray,
4069         ULONG *pulFetched);
4070 
4071     END_INTERFACE
4072 } ISpEventSource2Vtbl;
4073 interface ISpEventSource2 {
4074     CONST_VTBL ISpEventSource2Vtbl* lpVtbl;
4075 };
4076 
4077 #ifdef COBJMACROS
4078 #ifndef WIDL_C_INLINE_WRAPPERS
4079 /*** IUnknown methods ***/
4080 #define ISpEventSource2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4081 #define ISpEventSource2_AddRef(This) (This)->lpVtbl->AddRef(This)
4082 #define ISpEventSource2_Release(This) (This)->lpVtbl->Release(This)
4083 /*** ISpNotifySource methods ***/
4084 #define ISpEventSource2_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
4085 #define ISpEventSource2_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
4086 #define ISpEventSource2_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
4087 #define ISpEventSource2_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
4088 #define ISpEventSource2_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
4089 #define ISpEventSource2_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
4090 #define ISpEventSource2_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
4091 /*** ISpEventSource methods ***/
4092 #define ISpEventSource2_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
4093 #define ISpEventSource2_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
4094 #define ISpEventSource2_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
4095 /*** ISpEventSource2 methods ***/
4096 #define ISpEventSource2_GetEventsEx(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEventsEx(This,ulCount,pEventArray,pulFetched)
4097 #else
4098 /*** IUnknown methods ***/
4099 static FORCEINLINE HRESULT ISpEventSource2_QueryInterface(ISpEventSource2* This,REFIID riid,void **ppvObject) {
4100     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4101 }
4102 static FORCEINLINE ULONG ISpEventSource2_AddRef(ISpEventSource2* This) {
4103     return This->lpVtbl->AddRef(This);
4104 }
4105 static FORCEINLINE ULONG ISpEventSource2_Release(ISpEventSource2* This) {
4106     return This->lpVtbl->Release(This);
4107 }
4108 /*** ISpNotifySource methods ***/
4109 static FORCEINLINE HRESULT ISpEventSource2_SetNotifySink(ISpEventSource2* This,ISpNotifySink *pNotifySink) {
4110     return This->lpVtbl->SetNotifySink(This,pNotifySink);
4111 }
4112 static FORCEINLINE HRESULT ISpEventSource2_SetNotifyWindowMessage(ISpEventSource2* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
4113     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
4114 }
4115 static FORCEINLINE HRESULT ISpEventSource2_SetNotifyCallbackFunction(ISpEventSource2* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
4116     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
4117 }
4118 static FORCEINLINE HRESULT ISpEventSource2_SetNotifyCallbackInterface(ISpEventSource2* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
4119     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
4120 }
4121 static FORCEINLINE HRESULT ISpEventSource2_SetNotifyWin32Event(ISpEventSource2* This) {
4122     return This->lpVtbl->SetNotifyWin32Event(This);
4123 }
4124 static FORCEINLINE HRESULT ISpEventSource2_WaitForNotifyEvent(ISpEventSource2* This,DWORD dwMilliseconds) {
4125     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
4126 }
4127 static FORCEINLINE HANDLE ISpEventSource2_GetNotifyEventHandle(ISpEventSource2* This) {
4128     return This->lpVtbl->GetNotifyEventHandle(This);
4129 }
4130 /*** ISpEventSource methods ***/
4131 static FORCEINLINE HRESULT ISpEventSource2_SetInterest(ISpEventSource2* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
4132     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
4133 }
4134 static FORCEINLINE HRESULT ISpEventSource2_GetEvents(ISpEventSource2* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
4135     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
4136 }
4137 static FORCEINLINE HRESULT ISpEventSource2_GetInfo(ISpEventSource2* This,SPEVENTSOURCEINFO *pInfo) {
4138     return This->lpVtbl->GetInfo(This,pInfo);
4139 }
4140 /*** ISpEventSource2 methods ***/
4141 static FORCEINLINE HRESULT ISpEventSource2_GetEventsEx(ISpEventSource2* This,ULONG ulCount,SPEVENTEX *pEventArray,ULONG *pulFetched) {
4142     return This->lpVtbl->GetEventsEx(This,ulCount,pEventArray,pulFetched);
4143 }
4144 #endif
4145 #endif
4146 
4147 #endif
4148 
4149 HRESULT STDMETHODCALLTYPE ISpEventSource2_GetEventsEx_Proxy(
4150     ISpEventSource2* This,
4151     ULONG ulCount,
4152     SPEVENTEX *pEventArray,
4153     ULONG *pulFetched);
4154 void __RPC_STUB ISpEventSource2_GetEventsEx_Stub(
4155     IRpcStubBuffer* This,
4156     IRpcChannelBuffer* pRpcChannelBuffer,
4157     PRPC_MESSAGE pRpcMessage,
4158     DWORD* pdwStubPhase);
4159 
4160 #endif  /* __ISpEventSource2_INTERFACE_DEFINED__ */
4161 
4162 /*****************************************************************************
4163  * ISpEventSink interface
4164  */
4165 #ifndef __ISpEventSink_INTERFACE_DEFINED__
4166 #define __ISpEventSink_INTERFACE_DEFINED__
4167 
4168 DEFINE_GUID(IID_ISpEventSink, 0xbe7a9cc9, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
4169 #if defined(__cplusplus) && !defined(CINTERFACE)
4170 MIDL_INTERFACE("be7a9cc9-5f9e-11d2-960f-00c04f8ee628")
4171 ISpEventSink : public IUnknown
4172 {
4173     virtual HRESULT STDMETHODCALLTYPE AddEvents(
4174         const SPEVENT *pEventArray,
4175         ULONG ulCount) = 0;
4176 
4177     virtual HRESULT STDMETHODCALLTYPE GetEventInterest(
4178         ULONGLONG *pullEventInterest) = 0;
4179 
4180 };
4181 #ifdef __CRT_UUID_DECL
4182 __CRT_UUID_DECL(ISpEventSink, 0xbe7a9cc9, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
4183 #endif
4184 #else
4185 typedef struct ISpEventSinkVtbl {
4186     BEGIN_INTERFACE
4187 
4188     /*** IUnknown methods ***/
4189     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4190         ISpEventSink* This,
4191         REFIID riid,
4192         void **ppvObject);
4193 
4194     ULONG (STDMETHODCALLTYPE *AddRef)(
4195         ISpEventSink* This);
4196 
4197     ULONG (STDMETHODCALLTYPE *Release)(
4198         ISpEventSink* This);
4199 
4200     /*** ISpEventSink methods ***/
4201     HRESULT (STDMETHODCALLTYPE *AddEvents)(
4202         ISpEventSink* This,
4203         const SPEVENT *pEventArray,
4204         ULONG ulCount);
4205 
4206     HRESULT (STDMETHODCALLTYPE *GetEventInterest)(
4207         ISpEventSink* This,
4208         ULONGLONG *pullEventInterest);
4209 
4210     END_INTERFACE
4211 } ISpEventSinkVtbl;
4212 interface ISpEventSink {
4213     CONST_VTBL ISpEventSinkVtbl* lpVtbl;
4214 };
4215 
4216 #ifdef COBJMACROS
4217 #ifndef WIDL_C_INLINE_WRAPPERS
4218 /*** IUnknown methods ***/
4219 #define ISpEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4220 #define ISpEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
4221 #define ISpEventSink_Release(This) (This)->lpVtbl->Release(This)
4222 /*** ISpEventSink methods ***/
4223 #define ISpEventSink_AddEvents(This,pEventArray,ulCount) (This)->lpVtbl->AddEvents(This,pEventArray,ulCount)
4224 #define ISpEventSink_GetEventInterest(This,pullEventInterest) (This)->lpVtbl->GetEventInterest(This,pullEventInterest)
4225 #else
4226 /*** IUnknown methods ***/
4227 static FORCEINLINE HRESULT ISpEventSink_QueryInterface(ISpEventSink* This,REFIID riid,void **ppvObject) {
4228     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4229 }
4230 static FORCEINLINE ULONG ISpEventSink_AddRef(ISpEventSink* This) {
4231     return This->lpVtbl->AddRef(This);
4232 }
4233 static FORCEINLINE ULONG ISpEventSink_Release(ISpEventSink* This) {
4234     return This->lpVtbl->Release(This);
4235 }
4236 /*** ISpEventSink methods ***/
4237 static FORCEINLINE HRESULT ISpEventSink_AddEvents(ISpEventSink* This,const SPEVENT *pEventArray,ULONG ulCount) {
4238     return This->lpVtbl->AddEvents(This,pEventArray,ulCount);
4239 }
4240 static FORCEINLINE HRESULT ISpEventSink_GetEventInterest(ISpEventSink* This,ULONGLONG *pullEventInterest) {
4241     return This->lpVtbl->GetEventInterest(This,pullEventInterest);
4242 }
4243 #endif
4244 #endif
4245 
4246 #endif
4247 
4248 HRESULT STDMETHODCALLTYPE ISpEventSink_AddEvents_Proxy(
4249     ISpEventSink* This,
4250     const SPEVENT *pEventArray,
4251     ULONG ulCount);
4252 void __RPC_STUB ISpEventSink_AddEvents_Stub(
4253     IRpcStubBuffer* This,
4254     IRpcChannelBuffer* pRpcChannelBuffer,
4255     PRPC_MESSAGE pRpcMessage,
4256     DWORD* pdwStubPhase);
4257 HRESULT STDMETHODCALLTYPE ISpEventSink_GetEventInterest_Proxy(
4258     ISpEventSink* This,
4259     ULONGLONG *pullEventInterest);
4260 void __RPC_STUB ISpEventSink_GetEventInterest_Stub(
4261     IRpcStubBuffer* This,
4262     IRpcChannelBuffer* pRpcChannelBuffer,
4263     PRPC_MESSAGE pRpcMessage,
4264     DWORD* pdwStubPhase);
4265 
4266 #endif  /* __ISpEventSink_INTERFACE_DEFINED__ */
4267 
4268 /*****************************************************************************
4269  * ISpStreamFormat interface
4270  */
4271 #ifndef __ISpStreamFormat_INTERFACE_DEFINED__
4272 #define __ISpStreamFormat_INTERFACE_DEFINED__
4273 
4274 DEFINE_GUID(IID_ISpStreamFormat, 0xbed530be, 0x2606, 0x4f4d, 0xa1,0xc0, 0x54,0xc5,0xcd,0xa5,0x56,0x6f);
4275 #if defined(__cplusplus) && !defined(CINTERFACE)
4276 MIDL_INTERFACE("bed530be-2606-4f4d-a1c0-54c5cda5566f")
4277 ISpStreamFormat : public IStream
4278 {
4279     virtual HRESULT STDMETHODCALLTYPE GetFormat(
4280         GUID *pguidFormatId,
4281         WAVEFORMATEX **ppCoMemWaveFormatEx) = 0;
4282 
4283 };
4284 #ifdef __CRT_UUID_DECL
4285 __CRT_UUID_DECL(ISpStreamFormat, 0xbed530be, 0x2606, 0x4f4d, 0xa1,0xc0, 0x54,0xc5,0xcd,0xa5,0x56,0x6f)
4286 #endif
4287 #else
4288 typedef struct ISpStreamFormatVtbl {
4289     BEGIN_INTERFACE
4290 
4291     /*** IUnknown methods ***/
4292     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4293         ISpStreamFormat* This,
4294         REFIID riid,
4295         void **ppvObject);
4296 
4297     ULONG (STDMETHODCALLTYPE *AddRef)(
4298         ISpStreamFormat* This);
4299 
4300     ULONG (STDMETHODCALLTYPE *Release)(
4301         ISpStreamFormat* This);
4302 
4303     /*** ISequentialStream methods ***/
4304     HRESULT (STDMETHODCALLTYPE *Read)(
4305         ISpStreamFormat* This,
4306         void *pv,
4307         ULONG cb,
4308         ULONG *pcbRead);
4309 
4310     HRESULT (STDMETHODCALLTYPE *Write)(
4311         ISpStreamFormat* This,
4312         const void *pv,
4313         ULONG cb,
4314         ULONG *pcbWritten);
4315 
4316     /*** IStream methods ***/
4317     HRESULT (STDMETHODCALLTYPE *Seek)(
4318         ISpStreamFormat* This,
4319         LARGE_INTEGER dlibMove,
4320         DWORD dwOrigin,
4321         ULARGE_INTEGER *plibNewPosition);
4322 
4323     HRESULT (STDMETHODCALLTYPE *SetSize)(
4324         ISpStreamFormat* This,
4325         ULARGE_INTEGER libNewSize);
4326 
4327     HRESULT (STDMETHODCALLTYPE *CopyTo)(
4328         ISpStreamFormat* This,
4329         IStream *pstm,
4330         ULARGE_INTEGER cb,
4331         ULARGE_INTEGER *pcbRead,
4332         ULARGE_INTEGER *pcbWritten);
4333 
4334     HRESULT (STDMETHODCALLTYPE *Commit)(
4335         ISpStreamFormat* This,
4336         DWORD grfCommitFlags);
4337 
4338     HRESULT (STDMETHODCALLTYPE *Revert)(
4339         ISpStreamFormat* This);
4340 
4341     HRESULT (STDMETHODCALLTYPE *LockRegion)(
4342         ISpStreamFormat* This,
4343         ULARGE_INTEGER libOffset,
4344         ULARGE_INTEGER cb,
4345         DWORD dwLockType);
4346 
4347     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
4348         ISpStreamFormat* This,
4349         ULARGE_INTEGER libOffset,
4350         ULARGE_INTEGER cb,
4351         DWORD dwLockType);
4352 
4353     HRESULT (STDMETHODCALLTYPE *Stat)(
4354         ISpStreamFormat* This,
4355         STATSTG *pstatstg,
4356         DWORD grfStatFlag);
4357 
4358     HRESULT (STDMETHODCALLTYPE *Clone)(
4359         ISpStreamFormat* This,
4360         IStream **ppstm);
4361 
4362     /*** ISpStreamFormat methods ***/
4363     HRESULT (STDMETHODCALLTYPE *GetFormat)(
4364         ISpStreamFormat* This,
4365         GUID *pguidFormatId,
4366         WAVEFORMATEX **ppCoMemWaveFormatEx);
4367 
4368     END_INTERFACE
4369 } ISpStreamFormatVtbl;
4370 interface ISpStreamFormat {
4371     CONST_VTBL ISpStreamFormatVtbl* lpVtbl;
4372 };
4373 
4374 #ifdef COBJMACROS
4375 #ifndef WIDL_C_INLINE_WRAPPERS
4376 /*** IUnknown methods ***/
4377 #define ISpStreamFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4378 #define ISpStreamFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
4379 #define ISpStreamFormat_Release(This) (This)->lpVtbl->Release(This)
4380 /*** ISequentialStream methods ***/
4381 #define ISpStreamFormat_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
4382 #define ISpStreamFormat_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
4383 /*** IStream methods ***/
4384 #define ISpStreamFormat_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
4385 #define ISpStreamFormat_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
4386 #define ISpStreamFormat_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
4387 #define ISpStreamFormat_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
4388 #define ISpStreamFormat_Revert(This) (This)->lpVtbl->Revert(This)
4389 #define ISpStreamFormat_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
4390 #define ISpStreamFormat_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
4391 #define ISpStreamFormat_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
4392 #define ISpStreamFormat_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
4393 /*** ISpStreamFormat methods ***/
4394 #define ISpStreamFormat_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
4395 #else
4396 /*** IUnknown methods ***/
4397 static FORCEINLINE HRESULT ISpStreamFormat_QueryInterface(ISpStreamFormat* This,REFIID riid,void **ppvObject) {
4398     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4399 }
4400 static FORCEINLINE ULONG ISpStreamFormat_AddRef(ISpStreamFormat* This) {
4401     return This->lpVtbl->AddRef(This);
4402 }
4403 static FORCEINLINE ULONG ISpStreamFormat_Release(ISpStreamFormat* This) {
4404     return This->lpVtbl->Release(This);
4405 }
4406 /*** ISequentialStream methods ***/
4407 static FORCEINLINE HRESULT ISpStreamFormat_Read(ISpStreamFormat* This,void *pv,ULONG cb,ULONG *pcbRead) {
4408     return This->lpVtbl->Read(This,pv,cb,pcbRead);
4409 }
4410 static FORCEINLINE HRESULT ISpStreamFormat_Write(ISpStreamFormat* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
4411     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
4412 }
4413 /*** IStream methods ***/
4414 static FORCEINLINE HRESULT ISpStreamFormat_Seek(ISpStreamFormat* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
4415     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
4416 }
4417 static FORCEINLINE HRESULT ISpStreamFormat_SetSize(ISpStreamFormat* This,ULARGE_INTEGER libNewSize) {
4418     return This->lpVtbl->SetSize(This,libNewSize);
4419 }
4420 static FORCEINLINE HRESULT ISpStreamFormat_CopyTo(ISpStreamFormat* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
4421     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
4422 }
4423 static FORCEINLINE HRESULT ISpStreamFormat_Commit(ISpStreamFormat* This,DWORD grfCommitFlags) {
4424     return This->lpVtbl->Commit(This,grfCommitFlags);
4425 }
4426 static FORCEINLINE HRESULT ISpStreamFormat_Revert(ISpStreamFormat* This) {
4427     return This->lpVtbl->Revert(This);
4428 }
4429 static FORCEINLINE HRESULT ISpStreamFormat_LockRegion(ISpStreamFormat* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4430     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
4431 }
4432 static FORCEINLINE HRESULT ISpStreamFormat_UnlockRegion(ISpStreamFormat* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4433     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
4434 }
4435 static FORCEINLINE HRESULT ISpStreamFormat_Stat(ISpStreamFormat* This,STATSTG *pstatstg,DWORD grfStatFlag) {
4436     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
4437 }
4438 static FORCEINLINE HRESULT ISpStreamFormat_Clone(ISpStreamFormat* This,IStream **ppstm) {
4439     return This->lpVtbl->Clone(This,ppstm);
4440 }
4441 /*** ISpStreamFormat methods ***/
4442 static FORCEINLINE HRESULT ISpStreamFormat_GetFormat(ISpStreamFormat* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
4443     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
4444 }
4445 #endif
4446 #endif
4447 
4448 #endif
4449 
4450 HRESULT STDMETHODCALLTYPE ISpStreamFormat_GetFormat_Proxy(
4451     ISpStreamFormat* This,
4452     GUID *pguidFormatId,
4453     WAVEFORMATEX **ppCoMemWaveFormatEx);
4454 void __RPC_STUB ISpStreamFormat_GetFormat_Stub(
4455     IRpcStubBuffer* This,
4456     IRpcChannelBuffer* pRpcChannelBuffer,
4457     PRPC_MESSAGE pRpcMessage,
4458     DWORD* pdwStubPhase);
4459 
4460 #endif  /* __ISpStreamFormat_INTERFACE_DEFINED__ */
4461 
4462 /*****************************************************************************
4463  * ISpStream interface
4464  */
4465 #ifndef __ISpStream_INTERFACE_DEFINED__
4466 #define __ISpStream_INTERFACE_DEFINED__
4467 
4468 DEFINE_GUID(IID_ISpStream, 0x12e3cca9, 0x7518, 0x44c5, 0xa5,0xe7, 0xba,0x5a,0x79,0xcb,0x92,0x9e);
4469 #if defined(__cplusplus) && !defined(CINTERFACE)
4470 MIDL_INTERFACE("12e3cca9-7518-44c5-a5e7-ba5a79cb929e")
4471 ISpStream : public ISpStreamFormat
4472 {
4473     virtual HRESULT STDMETHODCALLTYPE SetBaseStream(
4474         IStream *pStream,
4475         REFGUID rguidFormat,
4476         const WAVEFORMATEX *pWaveFormatEx) = 0;
4477 
4478     virtual HRESULT STDMETHODCALLTYPE GetBaseStream(
4479         IStream **ppStream) = 0;
4480 
4481     virtual HRESULT STDMETHODCALLTYPE BindToFile(
4482         LPCWSTR pszFileName,
4483         SPFILEMODE eMode,
4484         const GUID *pFormatId,
4485         const WAVEFORMATEX *pWaveFormatEx,
4486         ULONGLONG ullEventInterest) = 0;
4487 
4488     virtual HRESULT STDMETHODCALLTYPE Close(
4489         ) = 0;
4490 
4491 };
4492 #ifdef __CRT_UUID_DECL
4493 __CRT_UUID_DECL(ISpStream, 0x12e3cca9, 0x7518, 0x44c5, 0xa5,0xe7, 0xba,0x5a,0x79,0xcb,0x92,0x9e)
4494 #endif
4495 #else
4496 typedef struct ISpStreamVtbl {
4497     BEGIN_INTERFACE
4498 
4499     /*** IUnknown methods ***/
4500     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4501         ISpStream* This,
4502         REFIID riid,
4503         void **ppvObject);
4504 
4505     ULONG (STDMETHODCALLTYPE *AddRef)(
4506         ISpStream* This);
4507 
4508     ULONG (STDMETHODCALLTYPE *Release)(
4509         ISpStream* This);
4510 
4511     /*** ISequentialStream methods ***/
4512     HRESULT (STDMETHODCALLTYPE *Read)(
4513         ISpStream* This,
4514         void *pv,
4515         ULONG cb,
4516         ULONG *pcbRead);
4517 
4518     HRESULT (STDMETHODCALLTYPE *Write)(
4519         ISpStream* This,
4520         const void *pv,
4521         ULONG cb,
4522         ULONG *pcbWritten);
4523 
4524     /*** IStream methods ***/
4525     HRESULT (STDMETHODCALLTYPE *Seek)(
4526         ISpStream* This,
4527         LARGE_INTEGER dlibMove,
4528         DWORD dwOrigin,
4529         ULARGE_INTEGER *plibNewPosition);
4530 
4531     HRESULT (STDMETHODCALLTYPE *SetSize)(
4532         ISpStream* This,
4533         ULARGE_INTEGER libNewSize);
4534 
4535     HRESULT (STDMETHODCALLTYPE *CopyTo)(
4536         ISpStream* This,
4537         IStream *pstm,
4538         ULARGE_INTEGER cb,
4539         ULARGE_INTEGER *pcbRead,
4540         ULARGE_INTEGER *pcbWritten);
4541 
4542     HRESULT (STDMETHODCALLTYPE *Commit)(
4543         ISpStream* This,
4544         DWORD grfCommitFlags);
4545 
4546     HRESULT (STDMETHODCALLTYPE *Revert)(
4547         ISpStream* This);
4548 
4549     HRESULT (STDMETHODCALLTYPE *LockRegion)(
4550         ISpStream* This,
4551         ULARGE_INTEGER libOffset,
4552         ULARGE_INTEGER cb,
4553         DWORD dwLockType);
4554 
4555     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
4556         ISpStream* This,
4557         ULARGE_INTEGER libOffset,
4558         ULARGE_INTEGER cb,
4559         DWORD dwLockType);
4560 
4561     HRESULT (STDMETHODCALLTYPE *Stat)(
4562         ISpStream* This,
4563         STATSTG *pstatstg,
4564         DWORD grfStatFlag);
4565 
4566     HRESULT (STDMETHODCALLTYPE *Clone)(
4567         ISpStream* This,
4568         IStream **ppstm);
4569 
4570     /*** ISpStreamFormat methods ***/
4571     HRESULT (STDMETHODCALLTYPE *GetFormat)(
4572         ISpStream* This,
4573         GUID *pguidFormatId,
4574         WAVEFORMATEX **ppCoMemWaveFormatEx);
4575 
4576     /*** ISpStream methods ***/
4577     HRESULT (STDMETHODCALLTYPE *SetBaseStream)(
4578         ISpStream* This,
4579         IStream *pStream,
4580         REFGUID rguidFormat,
4581         const WAVEFORMATEX *pWaveFormatEx);
4582 
4583     HRESULT (STDMETHODCALLTYPE *GetBaseStream)(
4584         ISpStream* This,
4585         IStream **ppStream);
4586 
4587     HRESULT (STDMETHODCALLTYPE *BindToFile)(
4588         ISpStream* This,
4589         LPCWSTR pszFileName,
4590         SPFILEMODE eMode,
4591         const GUID *pFormatId,
4592         const WAVEFORMATEX *pWaveFormatEx,
4593         ULONGLONG ullEventInterest);
4594 
4595     HRESULT (STDMETHODCALLTYPE *Close)(
4596         ISpStream* This);
4597 
4598     END_INTERFACE
4599 } ISpStreamVtbl;
4600 interface ISpStream {
4601     CONST_VTBL ISpStreamVtbl* lpVtbl;
4602 };
4603 
4604 #ifdef COBJMACROS
4605 #ifndef WIDL_C_INLINE_WRAPPERS
4606 /*** IUnknown methods ***/
4607 #define ISpStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4608 #define ISpStream_AddRef(This) (This)->lpVtbl->AddRef(This)
4609 #define ISpStream_Release(This) (This)->lpVtbl->Release(This)
4610 /*** ISequentialStream methods ***/
4611 #define ISpStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
4612 #define ISpStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
4613 /*** IStream methods ***/
4614 #define ISpStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
4615 #define ISpStream_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
4616 #define ISpStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
4617 #define ISpStream_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
4618 #define ISpStream_Revert(This) (This)->lpVtbl->Revert(This)
4619 #define ISpStream_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
4620 #define ISpStream_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
4621 #define ISpStream_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
4622 #define ISpStream_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
4623 /*** ISpStreamFormat methods ***/
4624 #define ISpStream_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
4625 /*** ISpStream methods ***/
4626 #define ISpStream_SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx) (This)->lpVtbl->SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx)
4627 #define ISpStream_GetBaseStream(This,ppStream) (This)->lpVtbl->GetBaseStream(This,ppStream)
4628 #define ISpStream_BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest) (This)->lpVtbl->BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest)
4629 #define ISpStream_Close(This) (This)->lpVtbl->Close(This)
4630 #else
4631 /*** IUnknown methods ***/
4632 static FORCEINLINE HRESULT ISpStream_QueryInterface(ISpStream* This,REFIID riid,void **ppvObject) {
4633     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4634 }
4635 static FORCEINLINE ULONG ISpStream_AddRef(ISpStream* This) {
4636     return This->lpVtbl->AddRef(This);
4637 }
4638 static FORCEINLINE ULONG ISpStream_Release(ISpStream* This) {
4639     return This->lpVtbl->Release(This);
4640 }
4641 /*** ISequentialStream methods ***/
4642 static FORCEINLINE HRESULT ISpStream_Read(ISpStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
4643     return This->lpVtbl->Read(This,pv,cb,pcbRead);
4644 }
4645 static FORCEINLINE HRESULT ISpStream_Write(ISpStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
4646     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
4647 }
4648 /*** IStream methods ***/
4649 static FORCEINLINE HRESULT ISpStream_Seek(ISpStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
4650     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
4651 }
4652 static FORCEINLINE HRESULT ISpStream_SetSize(ISpStream* This,ULARGE_INTEGER libNewSize) {
4653     return This->lpVtbl->SetSize(This,libNewSize);
4654 }
4655 static FORCEINLINE HRESULT ISpStream_CopyTo(ISpStream* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
4656     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
4657 }
4658 static FORCEINLINE HRESULT ISpStream_Commit(ISpStream* This,DWORD grfCommitFlags) {
4659     return This->lpVtbl->Commit(This,grfCommitFlags);
4660 }
4661 static FORCEINLINE HRESULT ISpStream_Revert(ISpStream* This) {
4662     return This->lpVtbl->Revert(This);
4663 }
4664 static FORCEINLINE HRESULT ISpStream_LockRegion(ISpStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4665     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
4666 }
4667 static FORCEINLINE HRESULT ISpStream_UnlockRegion(ISpStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4668     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
4669 }
4670 static FORCEINLINE HRESULT ISpStream_Stat(ISpStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
4671     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
4672 }
4673 static FORCEINLINE HRESULT ISpStream_Clone(ISpStream* This,IStream **ppstm) {
4674     return This->lpVtbl->Clone(This,ppstm);
4675 }
4676 /*** ISpStreamFormat methods ***/
4677 static FORCEINLINE HRESULT ISpStream_GetFormat(ISpStream* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
4678     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
4679 }
4680 /*** ISpStream methods ***/
4681 static FORCEINLINE HRESULT ISpStream_SetBaseStream(ISpStream* This,IStream *pStream,REFGUID rguidFormat,const WAVEFORMATEX *pWaveFormatEx) {
4682     return This->lpVtbl->SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx);
4683 }
4684 static FORCEINLINE HRESULT ISpStream_GetBaseStream(ISpStream* This,IStream **ppStream) {
4685     return This->lpVtbl->GetBaseStream(This,ppStream);
4686 }
4687 static FORCEINLINE HRESULT ISpStream_BindToFile(ISpStream* This,LPCWSTR pszFileName,SPFILEMODE eMode,const GUID *pFormatId,const WAVEFORMATEX *pWaveFormatEx,ULONGLONG ullEventInterest) {
4688     return This->lpVtbl->BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest);
4689 }
4690 static FORCEINLINE HRESULT ISpStream_Close(ISpStream* This) {
4691     return This->lpVtbl->Close(This);
4692 }
4693 #endif
4694 #endif
4695 
4696 #endif
4697 
4698 HRESULT STDMETHODCALLTYPE ISpStream_SetBaseStream_Proxy(
4699     ISpStream* This,
4700     IStream *pStream,
4701     REFGUID rguidFormat,
4702     const WAVEFORMATEX *pWaveFormatEx);
4703 void __RPC_STUB ISpStream_SetBaseStream_Stub(
4704     IRpcStubBuffer* This,
4705     IRpcChannelBuffer* pRpcChannelBuffer,
4706     PRPC_MESSAGE pRpcMessage,
4707     DWORD* pdwStubPhase);
4708 HRESULT STDMETHODCALLTYPE ISpStream_GetBaseStream_Proxy(
4709     ISpStream* This,
4710     IStream **ppStream);
4711 void __RPC_STUB ISpStream_GetBaseStream_Stub(
4712     IRpcStubBuffer* This,
4713     IRpcChannelBuffer* pRpcChannelBuffer,
4714     PRPC_MESSAGE pRpcMessage,
4715     DWORD* pdwStubPhase);
4716 HRESULT STDMETHODCALLTYPE ISpStream_BindToFile_Proxy(
4717     ISpStream* This,
4718     LPCWSTR pszFileName,
4719     SPFILEMODE eMode,
4720     const GUID *pFormatId,
4721     const WAVEFORMATEX *pWaveFormatEx,
4722     ULONGLONG ullEventInterest);
4723 void __RPC_STUB ISpStream_BindToFile_Stub(
4724     IRpcStubBuffer* This,
4725     IRpcChannelBuffer* pRpcChannelBuffer,
4726     PRPC_MESSAGE pRpcMessage,
4727     DWORD* pdwStubPhase);
4728 HRESULT STDMETHODCALLTYPE ISpStream_Close_Proxy(
4729     ISpStream* This);
4730 void __RPC_STUB ISpStream_Close_Stub(
4731     IRpcStubBuffer* This,
4732     IRpcChannelBuffer* pRpcChannelBuffer,
4733     PRPC_MESSAGE pRpcMessage,
4734     DWORD* pdwStubPhase);
4735 
4736 #endif  /* __ISpStream_INTERFACE_DEFINED__ */
4737 
4738 /*****************************************************************************
4739  * ISpStreamFormatConverter interface
4740  */
4741 #ifndef __ISpStreamFormatConverter_INTERFACE_DEFINED__
4742 #define __ISpStreamFormatConverter_INTERFACE_DEFINED__
4743 
4744 DEFINE_GUID(IID_ISpStreamFormatConverter, 0x678a932c, 0xea71, 0x4446, 0x9b,0x41, 0x78,0xfd,0xa6,0x28,0x0a,0x29);
4745 #if defined(__cplusplus) && !defined(CINTERFACE)
4746 MIDL_INTERFACE("678a932c-ea71-4446-9b41-78fda6280a29")
4747 ISpStreamFormatConverter : public ISpStreamFormat
4748 {
4749     virtual HRESULT STDMETHODCALLTYPE SetBaseStream(
4750         ISpStreamFormat *pStream,
4751         WINBOOL fSetFormatToBaseStreamFormat,
4752         WINBOOL fWriteToBaseStream) = 0;
4753 
4754     virtual HRESULT STDMETHODCALLTYPE GetBaseStream(
4755         ISpStreamFormat **ppStream) = 0;
4756 
4757     virtual HRESULT STDMETHODCALLTYPE SetFormat(
4758         REFGUID rguidFormatIdOfConvertedStream,
4759         const WAVEFORMATEX *pWaveFormatExOfConvertedStream) = 0;
4760 
4761     virtual HRESULT STDMETHODCALLTYPE ResetSeekPosition(
4762         ) = 0;
4763 
4764     virtual HRESULT STDMETHODCALLTYPE ScaleConvertedToBaseOffset(
4765         ULONGLONG ullOffsetConvertedStream,
4766         ULONGLONG *pullOffsetBaseStream) = 0;
4767 
4768     virtual HRESULT STDMETHODCALLTYPE ScaleBaseToConvertedOffset(
4769         ULONGLONG ullOffsetBaseStream,
4770         ULONGLONG *pullOffsetConvertedStream) = 0;
4771 
4772 };
4773 #ifdef __CRT_UUID_DECL
4774 __CRT_UUID_DECL(ISpStreamFormatConverter, 0x678a932c, 0xea71, 0x4446, 0x9b,0x41, 0x78,0xfd,0xa6,0x28,0x0a,0x29)
4775 #endif
4776 #else
4777 typedef struct ISpStreamFormatConverterVtbl {
4778     BEGIN_INTERFACE
4779 
4780     /*** IUnknown methods ***/
4781     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4782         ISpStreamFormatConverter* This,
4783         REFIID riid,
4784         void **ppvObject);
4785 
4786     ULONG (STDMETHODCALLTYPE *AddRef)(
4787         ISpStreamFormatConverter* This);
4788 
4789     ULONG (STDMETHODCALLTYPE *Release)(
4790         ISpStreamFormatConverter* This);
4791 
4792     /*** ISequentialStream methods ***/
4793     HRESULT (STDMETHODCALLTYPE *Read)(
4794         ISpStreamFormatConverter* This,
4795         void *pv,
4796         ULONG cb,
4797         ULONG *pcbRead);
4798 
4799     HRESULT (STDMETHODCALLTYPE *Write)(
4800         ISpStreamFormatConverter* This,
4801         const void *pv,
4802         ULONG cb,
4803         ULONG *pcbWritten);
4804 
4805     /*** IStream methods ***/
4806     HRESULT (STDMETHODCALLTYPE *Seek)(
4807         ISpStreamFormatConverter* This,
4808         LARGE_INTEGER dlibMove,
4809         DWORD dwOrigin,
4810         ULARGE_INTEGER *plibNewPosition);
4811 
4812     HRESULT (STDMETHODCALLTYPE *SetSize)(
4813         ISpStreamFormatConverter* This,
4814         ULARGE_INTEGER libNewSize);
4815 
4816     HRESULT (STDMETHODCALLTYPE *CopyTo)(
4817         ISpStreamFormatConverter* This,
4818         IStream *pstm,
4819         ULARGE_INTEGER cb,
4820         ULARGE_INTEGER *pcbRead,
4821         ULARGE_INTEGER *pcbWritten);
4822 
4823     HRESULT (STDMETHODCALLTYPE *Commit)(
4824         ISpStreamFormatConverter* This,
4825         DWORD grfCommitFlags);
4826 
4827     HRESULT (STDMETHODCALLTYPE *Revert)(
4828         ISpStreamFormatConverter* This);
4829 
4830     HRESULT (STDMETHODCALLTYPE *LockRegion)(
4831         ISpStreamFormatConverter* This,
4832         ULARGE_INTEGER libOffset,
4833         ULARGE_INTEGER cb,
4834         DWORD dwLockType);
4835 
4836     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
4837         ISpStreamFormatConverter* This,
4838         ULARGE_INTEGER libOffset,
4839         ULARGE_INTEGER cb,
4840         DWORD dwLockType);
4841 
4842     HRESULT (STDMETHODCALLTYPE *Stat)(
4843         ISpStreamFormatConverter* This,
4844         STATSTG *pstatstg,
4845         DWORD grfStatFlag);
4846 
4847     HRESULT (STDMETHODCALLTYPE *Clone)(
4848         ISpStreamFormatConverter* This,
4849         IStream **ppstm);
4850 
4851     /*** ISpStreamFormat methods ***/
4852     HRESULT (STDMETHODCALLTYPE *GetFormat)(
4853         ISpStreamFormatConverter* This,
4854         GUID *pguidFormatId,
4855         WAVEFORMATEX **ppCoMemWaveFormatEx);
4856 
4857     /*** ISpStreamFormatConverter methods ***/
4858     HRESULT (STDMETHODCALLTYPE *SetBaseStream)(
4859         ISpStreamFormatConverter* This,
4860         ISpStreamFormat *pStream,
4861         WINBOOL fSetFormatToBaseStreamFormat,
4862         WINBOOL fWriteToBaseStream);
4863 
4864     HRESULT (STDMETHODCALLTYPE *GetBaseStream)(
4865         ISpStreamFormatConverter* This,
4866         ISpStreamFormat **ppStream);
4867 
4868     HRESULT (STDMETHODCALLTYPE *SetFormat)(
4869         ISpStreamFormatConverter* This,
4870         REFGUID rguidFormatIdOfConvertedStream,
4871         const WAVEFORMATEX *pWaveFormatExOfConvertedStream);
4872 
4873     HRESULT (STDMETHODCALLTYPE *ResetSeekPosition)(
4874         ISpStreamFormatConverter* This);
4875 
4876     HRESULT (STDMETHODCALLTYPE *ScaleConvertedToBaseOffset)(
4877         ISpStreamFormatConverter* This,
4878         ULONGLONG ullOffsetConvertedStream,
4879         ULONGLONG *pullOffsetBaseStream);
4880 
4881     HRESULT (STDMETHODCALLTYPE *ScaleBaseToConvertedOffset)(
4882         ISpStreamFormatConverter* This,
4883         ULONGLONG ullOffsetBaseStream,
4884         ULONGLONG *pullOffsetConvertedStream);
4885 
4886     END_INTERFACE
4887 } ISpStreamFormatConverterVtbl;
4888 interface ISpStreamFormatConverter {
4889     CONST_VTBL ISpStreamFormatConverterVtbl* lpVtbl;
4890 };
4891 
4892 #ifdef COBJMACROS
4893 #ifndef WIDL_C_INLINE_WRAPPERS
4894 /*** IUnknown methods ***/
4895 #define ISpStreamFormatConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4896 #define ISpStreamFormatConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
4897 #define ISpStreamFormatConverter_Release(This) (This)->lpVtbl->Release(This)
4898 /*** ISequentialStream methods ***/
4899 #define ISpStreamFormatConverter_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
4900 #define ISpStreamFormatConverter_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
4901 /*** IStream methods ***/
4902 #define ISpStreamFormatConverter_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
4903 #define ISpStreamFormatConverter_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
4904 #define ISpStreamFormatConverter_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
4905 #define ISpStreamFormatConverter_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
4906 #define ISpStreamFormatConverter_Revert(This) (This)->lpVtbl->Revert(This)
4907 #define ISpStreamFormatConverter_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
4908 #define ISpStreamFormatConverter_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
4909 #define ISpStreamFormatConverter_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
4910 #define ISpStreamFormatConverter_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
4911 /*** ISpStreamFormat methods ***/
4912 #define ISpStreamFormatConverter_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
4913 /*** ISpStreamFormatConverter methods ***/
4914 #define ISpStreamFormatConverter_SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream) (This)->lpVtbl->SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream)
4915 #define ISpStreamFormatConverter_GetBaseStream(This,ppStream) (This)->lpVtbl->GetBaseStream(This,ppStream)
4916 #define ISpStreamFormatConverter_SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream) (This)->lpVtbl->SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream)
4917 #define ISpStreamFormatConverter_ResetSeekPosition(This) (This)->lpVtbl->ResetSeekPosition(This)
4918 #define ISpStreamFormatConverter_ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream) (This)->lpVtbl->ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream)
4919 #define ISpStreamFormatConverter_ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream) (This)->lpVtbl->ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream)
4920 #else
4921 /*** IUnknown methods ***/
4922 static FORCEINLINE HRESULT ISpStreamFormatConverter_QueryInterface(ISpStreamFormatConverter* This,REFIID riid,void **ppvObject) {
4923     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4924 }
4925 static FORCEINLINE ULONG ISpStreamFormatConverter_AddRef(ISpStreamFormatConverter* This) {
4926     return This->lpVtbl->AddRef(This);
4927 }
4928 static FORCEINLINE ULONG ISpStreamFormatConverter_Release(ISpStreamFormatConverter* This) {
4929     return This->lpVtbl->Release(This);
4930 }
4931 /*** ISequentialStream methods ***/
4932 static FORCEINLINE HRESULT ISpStreamFormatConverter_Read(ISpStreamFormatConverter* This,void *pv,ULONG cb,ULONG *pcbRead) {
4933     return This->lpVtbl->Read(This,pv,cb,pcbRead);
4934 }
4935 static FORCEINLINE HRESULT ISpStreamFormatConverter_Write(ISpStreamFormatConverter* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
4936     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
4937 }
4938 /*** IStream methods ***/
4939 static FORCEINLINE HRESULT ISpStreamFormatConverter_Seek(ISpStreamFormatConverter* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
4940     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
4941 }
4942 static FORCEINLINE HRESULT ISpStreamFormatConverter_SetSize(ISpStreamFormatConverter* This,ULARGE_INTEGER libNewSize) {
4943     return This->lpVtbl->SetSize(This,libNewSize);
4944 }
4945 static FORCEINLINE HRESULT ISpStreamFormatConverter_CopyTo(ISpStreamFormatConverter* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
4946     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
4947 }
4948 static FORCEINLINE HRESULT ISpStreamFormatConverter_Commit(ISpStreamFormatConverter* This,DWORD grfCommitFlags) {
4949     return This->lpVtbl->Commit(This,grfCommitFlags);
4950 }
4951 static FORCEINLINE HRESULT ISpStreamFormatConverter_Revert(ISpStreamFormatConverter* This) {
4952     return This->lpVtbl->Revert(This);
4953 }
4954 static FORCEINLINE HRESULT ISpStreamFormatConverter_LockRegion(ISpStreamFormatConverter* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4955     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
4956 }
4957 static FORCEINLINE HRESULT ISpStreamFormatConverter_UnlockRegion(ISpStreamFormatConverter* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4958     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
4959 }
4960 static FORCEINLINE HRESULT ISpStreamFormatConverter_Stat(ISpStreamFormatConverter* This,STATSTG *pstatstg,DWORD grfStatFlag) {
4961     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
4962 }
4963 static FORCEINLINE HRESULT ISpStreamFormatConverter_Clone(ISpStreamFormatConverter* This,IStream **ppstm) {
4964     return This->lpVtbl->Clone(This,ppstm);
4965 }
4966 /*** ISpStreamFormat methods ***/
4967 static FORCEINLINE HRESULT ISpStreamFormatConverter_GetFormat(ISpStreamFormatConverter* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
4968     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
4969 }
4970 /*** ISpStreamFormatConverter methods ***/
4971 static FORCEINLINE HRESULT ISpStreamFormatConverter_SetBaseStream(ISpStreamFormatConverter* This,ISpStreamFormat *pStream,WINBOOL fSetFormatToBaseStreamFormat,WINBOOL fWriteToBaseStream) {
4972     return This->lpVtbl->SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream);
4973 }
4974 static FORCEINLINE HRESULT ISpStreamFormatConverter_GetBaseStream(ISpStreamFormatConverter* This,ISpStreamFormat **ppStream) {
4975     return This->lpVtbl->GetBaseStream(This,ppStream);
4976 }
4977 static FORCEINLINE HRESULT ISpStreamFormatConverter_SetFormat(ISpStreamFormatConverter* This,REFGUID rguidFormatIdOfConvertedStream,const WAVEFORMATEX *pWaveFormatExOfConvertedStream) {
4978     return This->lpVtbl->SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream);
4979 }
4980 static FORCEINLINE HRESULT ISpStreamFormatConverter_ResetSeekPosition(ISpStreamFormatConverter* This) {
4981     return This->lpVtbl->ResetSeekPosition(This);
4982 }
4983 static FORCEINLINE HRESULT ISpStreamFormatConverter_ScaleConvertedToBaseOffset(ISpStreamFormatConverter* This,ULONGLONG ullOffsetConvertedStream,ULONGLONG *pullOffsetBaseStream) {
4984     return This->lpVtbl->ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream);
4985 }
4986 static FORCEINLINE HRESULT ISpStreamFormatConverter_ScaleBaseToConvertedOffset(ISpStreamFormatConverter* This,ULONGLONG ullOffsetBaseStream,ULONGLONG *pullOffsetConvertedStream) {
4987     return This->lpVtbl->ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream);
4988 }
4989 #endif
4990 #endif
4991 
4992 #endif
4993 
4994 HRESULT STDMETHODCALLTYPE ISpStreamFormatConverter_SetBaseStream_Proxy(
4995     ISpStreamFormatConverter* This,
4996     ISpStreamFormat *pStream,
4997     WINBOOL fSetFormatToBaseStreamFormat,
4998     WINBOOL fWriteToBaseStream);
4999 void __RPC_STUB ISpStreamFormatConverter_SetBaseStream_Stub(
5000     IRpcStubBuffer* This,
5001     IRpcChannelBuffer* pRpcChannelBuffer,
5002     PRPC_MESSAGE pRpcMessage,
5003     DWORD* pdwStubPhase);
5004 HRESULT STDMETHODCALLTYPE ISpStreamFormatConverter_GetBaseStream_Proxy(
5005     ISpStreamFormatConverter* This,
5006     ISpStreamFormat **ppStream);
5007 void __RPC_STUB ISpStreamFormatConverter_GetBaseStream_Stub(
5008     IRpcStubBuffer* This,
5009     IRpcChannelBuffer* pRpcChannelBuffer,
5010     PRPC_MESSAGE pRpcMessage,
5011     DWORD* pdwStubPhase);
5012 HRESULT STDMETHODCALLTYPE ISpStreamFormatConverter_SetFormat_Proxy(
5013     ISpStreamFormatConverter* This,
5014     REFGUID rguidFormatIdOfConvertedStream,
5015     const WAVEFORMATEX *pWaveFormatExOfConvertedStream);
5016 void __RPC_STUB ISpStreamFormatConverter_SetFormat_Stub(
5017     IRpcStubBuffer* This,
5018     IRpcChannelBuffer* pRpcChannelBuffer,
5019     PRPC_MESSAGE pRpcMessage,
5020     DWORD* pdwStubPhase);
5021 HRESULT STDMETHODCALLTYPE ISpStreamFormatConverter_ResetSeekPosition_Proxy(
5022     ISpStreamFormatConverter* This);
5023 void __RPC_STUB ISpStreamFormatConverter_ResetSeekPosition_Stub(
5024     IRpcStubBuffer* This,
5025     IRpcChannelBuffer* pRpcChannelBuffer,
5026     PRPC_MESSAGE pRpcMessage,
5027     DWORD* pdwStubPhase);
5028 HRESULT STDMETHODCALLTYPE ISpStreamFormatConverter_ScaleConvertedToBaseOffset_Proxy(
5029     ISpStreamFormatConverter* This,
5030     ULONGLONG ullOffsetConvertedStream,
5031     ULONGLONG *pullOffsetBaseStream);
5032 void __RPC_STUB ISpStreamFormatConverter_ScaleConvertedToBaseOffset_Stub(
5033     IRpcStubBuffer* This,
5034     IRpcChannelBuffer* pRpcChannelBuffer,
5035     PRPC_MESSAGE pRpcMessage,
5036     DWORD* pdwStubPhase);
5037 HRESULT STDMETHODCALLTYPE ISpStreamFormatConverter_ScaleBaseToConvertedOffset_Proxy(
5038     ISpStreamFormatConverter* This,
5039     ULONGLONG ullOffsetBaseStream,
5040     ULONGLONG *pullOffsetConvertedStream);
5041 void __RPC_STUB ISpStreamFormatConverter_ScaleBaseToConvertedOffset_Stub(
5042     IRpcStubBuffer* This,
5043     IRpcChannelBuffer* pRpcChannelBuffer,
5044     PRPC_MESSAGE pRpcMessage,
5045     DWORD* pdwStubPhase);
5046 
5047 #endif  /* __ISpStreamFormatConverter_INTERFACE_DEFINED__ */
5048 
5049 typedef struct SPAUDIOSTATUS {
5050     LONG cbFreeBuffSpace;
5051     ULONG cbNonBlockingIO;
5052     SPAUDIOSTATE State;
5053     ULONGLONG CurSeekPos;
5054     ULONGLONG CurDevicePos;
5055     DWORD dwAudioLevel;
5056     DWORD dwReserved2;
5057 } SPAUDIOSTATUS;
5058 typedef struct SPAUDIOBUFFERINFO {
5059     ULONG ulMsMinNotification;
5060     ULONG ulMsBufferSize;
5061     ULONG ulMsEventBias;
5062 } SPAUDIOBUFFERINFO;
5063 /*****************************************************************************
5064  * ISpAudio interface
5065  */
5066 #ifndef __ISpAudio_INTERFACE_DEFINED__
5067 #define __ISpAudio_INTERFACE_DEFINED__
5068 
5069 DEFINE_GUID(IID_ISpAudio, 0xc05c768f, 0xfae8, 0x4ec2, 0x8e,0x07, 0x33,0x83,0x21,0xc1,0x24,0x52);
5070 #if defined(__cplusplus) && !defined(CINTERFACE)
5071 MIDL_INTERFACE("c05c768f-fae8-4ec2-8e07-338321c12452")
5072 ISpAudio : public ISpStreamFormat
5073 {
5074     virtual HRESULT STDMETHODCALLTYPE SetState(
5075         SPAUDIOSTATE NewState,
5076         ULONGLONG ullReserved) = 0;
5077 
5078     virtual HRESULT STDMETHODCALLTYPE SetFormat(
5079         REFGUID rguidFmtId,
5080         const WAVEFORMATEX *pWaveFormatEx) = 0;
5081 
5082     virtual HRESULT STDMETHODCALLTYPE GetStatus(
5083         SPAUDIOSTATUS *pStatus) = 0;
5084 
5085     virtual HRESULT STDMETHODCALLTYPE SetBufferInfo(
5086         const SPAUDIOBUFFERINFO *pBuffInfo) = 0;
5087 
5088     virtual HRESULT STDMETHODCALLTYPE GetBufferInfo(
5089         SPAUDIOBUFFERINFO *pBuffInfo) = 0;
5090 
5091     virtual HRESULT STDMETHODCALLTYPE GetDefaultFormat(
5092         GUID *pFormatId,
5093         WAVEFORMATEX **ppCoMemWaveFormatEx) = 0;
5094 
5095     virtual HANDLE STDMETHODCALLTYPE EventHandle(
5096         ) = 0;
5097 
5098     virtual HRESULT STDMETHODCALLTYPE GetVolumeLevel(
5099         ULONG *pLevel) = 0;
5100 
5101     virtual HRESULT STDMETHODCALLTYPE SetVolumeLevel(
5102         ULONG Level) = 0;
5103 
5104     virtual HRESULT STDMETHODCALLTYPE GetBufferNotifySize(
5105         ULONG *pcbSize) = 0;
5106 
5107     virtual HRESULT STDMETHODCALLTYPE SetBufferNotifySize(
5108         ULONG cbSize) = 0;
5109 
5110 };
5111 #ifdef __CRT_UUID_DECL
5112 __CRT_UUID_DECL(ISpAudio, 0xc05c768f, 0xfae8, 0x4ec2, 0x8e,0x07, 0x33,0x83,0x21,0xc1,0x24,0x52)
5113 #endif
5114 #else
5115 typedef struct ISpAudioVtbl {
5116     BEGIN_INTERFACE
5117 
5118     /*** IUnknown methods ***/
5119     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5120         ISpAudio* This,
5121         REFIID riid,
5122         void **ppvObject);
5123 
5124     ULONG (STDMETHODCALLTYPE *AddRef)(
5125         ISpAudio* This);
5126 
5127     ULONG (STDMETHODCALLTYPE *Release)(
5128         ISpAudio* This);
5129 
5130     /*** ISequentialStream methods ***/
5131     HRESULT (STDMETHODCALLTYPE *Read)(
5132         ISpAudio* This,
5133         void *pv,
5134         ULONG cb,
5135         ULONG *pcbRead);
5136 
5137     HRESULT (STDMETHODCALLTYPE *Write)(
5138         ISpAudio* This,
5139         const void *pv,
5140         ULONG cb,
5141         ULONG *pcbWritten);
5142 
5143     /*** IStream methods ***/
5144     HRESULT (STDMETHODCALLTYPE *Seek)(
5145         ISpAudio* This,
5146         LARGE_INTEGER dlibMove,
5147         DWORD dwOrigin,
5148         ULARGE_INTEGER *plibNewPosition);
5149 
5150     HRESULT (STDMETHODCALLTYPE *SetSize)(
5151         ISpAudio* This,
5152         ULARGE_INTEGER libNewSize);
5153 
5154     HRESULT (STDMETHODCALLTYPE *CopyTo)(
5155         ISpAudio* This,
5156         IStream *pstm,
5157         ULARGE_INTEGER cb,
5158         ULARGE_INTEGER *pcbRead,
5159         ULARGE_INTEGER *pcbWritten);
5160 
5161     HRESULT (STDMETHODCALLTYPE *Commit)(
5162         ISpAudio* This,
5163         DWORD grfCommitFlags);
5164 
5165     HRESULT (STDMETHODCALLTYPE *Revert)(
5166         ISpAudio* This);
5167 
5168     HRESULT (STDMETHODCALLTYPE *LockRegion)(
5169         ISpAudio* This,
5170         ULARGE_INTEGER libOffset,
5171         ULARGE_INTEGER cb,
5172         DWORD dwLockType);
5173 
5174     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
5175         ISpAudio* This,
5176         ULARGE_INTEGER libOffset,
5177         ULARGE_INTEGER cb,
5178         DWORD dwLockType);
5179 
5180     HRESULT (STDMETHODCALLTYPE *Stat)(
5181         ISpAudio* This,
5182         STATSTG *pstatstg,
5183         DWORD grfStatFlag);
5184 
5185     HRESULT (STDMETHODCALLTYPE *Clone)(
5186         ISpAudio* This,
5187         IStream **ppstm);
5188 
5189     /*** ISpStreamFormat methods ***/
5190     HRESULT (STDMETHODCALLTYPE *GetFormat)(
5191         ISpAudio* This,
5192         GUID *pguidFormatId,
5193         WAVEFORMATEX **ppCoMemWaveFormatEx);
5194 
5195     /*** ISpAudio methods ***/
5196     HRESULT (STDMETHODCALLTYPE *SetState)(
5197         ISpAudio* This,
5198         SPAUDIOSTATE NewState,
5199         ULONGLONG ullReserved);
5200 
5201     HRESULT (STDMETHODCALLTYPE *SetFormat)(
5202         ISpAudio* This,
5203         REFGUID rguidFmtId,
5204         const WAVEFORMATEX *pWaveFormatEx);
5205 
5206     HRESULT (STDMETHODCALLTYPE *GetStatus)(
5207         ISpAudio* This,
5208         SPAUDIOSTATUS *pStatus);
5209 
5210     HRESULT (STDMETHODCALLTYPE *SetBufferInfo)(
5211         ISpAudio* This,
5212         const SPAUDIOBUFFERINFO *pBuffInfo);
5213 
5214     HRESULT (STDMETHODCALLTYPE *GetBufferInfo)(
5215         ISpAudio* This,
5216         SPAUDIOBUFFERINFO *pBuffInfo);
5217 
5218     HRESULT (STDMETHODCALLTYPE *GetDefaultFormat)(
5219         ISpAudio* This,
5220         GUID *pFormatId,
5221         WAVEFORMATEX **ppCoMemWaveFormatEx);
5222 
5223     HANDLE (STDMETHODCALLTYPE *EventHandle)(
5224         ISpAudio* This);
5225 
5226     HRESULT (STDMETHODCALLTYPE *GetVolumeLevel)(
5227         ISpAudio* This,
5228         ULONG *pLevel);
5229 
5230     HRESULT (STDMETHODCALLTYPE *SetVolumeLevel)(
5231         ISpAudio* This,
5232         ULONG Level);
5233 
5234     HRESULT (STDMETHODCALLTYPE *GetBufferNotifySize)(
5235         ISpAudio* This,
5236         ULONG *pcbSize);
5237 
5238     HRESULT (STDMETHODCALLTYPE *SetBufferNotifySize)(
5239         ISpAudio* This,
5240         ULONG cbSize);
5241 
5242     END_INTERFACE
5243 } ISpAudioVtbl;
5244 interface ISpAudio {
5245     CONST_VTBL ISpAudioVtbl* lpVtbl;
5246 };
5247 
5248 #ifdef COBJMACROS
5249 #ifndef WIDL_C_INLINE_WRAPPERS
5250 /*** IUnknown methods ***/
5251 #define ISpAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5252 #define ISpAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
5253 #define ISpAudio_Release(This) (This)->lpVtbl->Release(This)
5254 /*** ISequentialStream methods ***/
5255 #define ISpAudio_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
5256 #define ISpAudio_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
5257 /*** IStream methods ***/
5258 #define ISpAudio_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
5259 #define ISpAudio_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
5260 #define ISpAudio_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
5261 #define ISpAudio_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
5262 #define ISpAudio_Revert(This) (This)->lpVtbl->Revert(This)
5263 #define ISpAudio_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
5264 #define ISpAudio_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
5265 #define ISpAudio_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
5266 #define ISpAudio_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
5267 /*** ISpStreamFormat methods ***/
5268 #define ISpAudio_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
5269 /*** ISpAudio methods ***/
5270 #define ISpAudio_SetState(This,NewState,ullReserved) (This)->lpVtbl->SetState(This,NewState,ullReserved)
5271 #define ISpAudio_SetFormat(This,rguidFmtId,pWaveFormatEx) (This)->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx)
5272 #define ISpAudio_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
5273 #define ISpAudio_SetBufferInfo(This,pBuffInfo) (This)->lpVtbl->SetBufferInfo(This,pBuffInfo)
5274 #define ISpAudio_GetBufferInfo(This,pBuffInfo) (This)->lpVtbl->GetBufferInfo(This,pBuffInfo)
5275 #define ISpAudio_GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx)
5276 #define ISpAudio_EventHandle(This) (This)->lpVtbl->EventHandle(This)
5277 #define ISpAudio_GetVolumeLevel(This,pLevel) (This)->lpVtbl->GetVolumeLevel(This,pLevel)
5278 #define ISpAudio_SetVolumeLevel(This,Level) (This)->lpVtbl->SetVolumeLevel(This,Level)
5279 #define ISpAudio_GetBufferNotifySize(This,pcbSize) (This)->lpVtbl->GetBufferNotifySize(This,pcbSize)
5280 #define ISpAudio_SetBufferNotifySize(This,cbSize) (This)->lpVtbl->SetBufferNotifySize(This,cbSize)
5281 #else
5282 /*** IUnknown methods ***/
5283 static FORCEINLINE HRESULT ISpAudio_QueryInterface(ISpAudio* This,REFIID riid,void **ppvObject) {
5284     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5285 }
5286 static FORCEINLINE ULONG ISpAudio_AddRef(ISpAudio* This) {
5287     return This->lpVtbl->AddRef(This);
5288 }
5289 static FORCEINLINE ULONG ISpAudio_Release(ISpAudio* This) {
5290     return This->lpVtbl->Release(This);
5291 }
5292 /*** ISequentialStream methods ***/
5293 static FORCEINLINE HRESULT ISpAudio_Read(ISpAudio* This,void *pv,ULONG cb,ULONG *pcbRead) {
5294     return This->lpVtbl->Read(This,pv,cb,pcbRead);
5295 }
5296 static FORCEINLINE HRESULT ISpAudio_Write(ISpAudio* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
5297     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
5298 }
5299 /*** IStream methods ***/
5300 static FORCEINLINE HRESULT ISpAudio_Seek(ISpAudio* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
5301     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
5302 }
5303 static FORCEINLINE HRESULT ISpAudio_SetSize(ISpAudio* This,ULARGE_INTEGER libNewSize) {
5304     return This->lpVtbl->SetSize(This,libNewSize);
5305 }
5306 static FORCEINLINE HRESULT ISpAudio_CopyTo(ISpAudio* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
5307     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
5308 }
5309 static FORCEINLINE HRESULT ISpAudio_Commit(ISpAudio* This,DWORD grfCommitFlags) {
5310     return This->lpVtbl->Commit(This,grfCommitFlags);
5311 }
5312 static FORCEINLINE HRESULT ISpAudio_Revert(ISpAudio* This) {
5313     return This->lpVtbl->Revert(This);
5314 }
5315 static FORCEINLINE HRESULT ISpAudio_LockRegion(ISpAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
5316     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
5317 }
5318 static FORCEINLINE HRESULT ISpAudio_UnlockRegion(ISpAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
5319     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
5320 }
5321 static FORCEINLINE HRESULT ISpAudio_Stat(ISpAudio* This,STATSTG *pstatstg,DWORD grfStatFlag) {
5322     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
5323 }
5324 static FORCEINLINE HRESULT ISpAudio_Clone(ISpAudio* This,IStream **ppstm) {
5325     return This->lpVtbl->Clone(This,ppstm);
5326 }
5327 /*** ISpStreamFormat methods ***/
5328 static FORCEINLINE HRESULT ISpAudio_GetFormat(ISpAudio* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
5329     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
5330 }
5331 /*** ISpAudio methods ***/
5332 static FORCEINLINE HRESULT ISpAudio_SetState(ISpAudio* This,SPAUDIOSTATE NewState,ULONGLONG ullReserved) {
5333     return This->lpVtbl->SetState(This,NewState,ullReserved);
5334 }
5335 static FORCEINLINE HRESULT ISpAudio_SetFormat(ISpAudio* This,REFGUID rguidFmtId,const WAVEFORMATEX *pWaveFormatEx) {
5336     return This->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx);
5337 }
5338 static FORCEINLINE HRESULT ISpAudio_GetStatus(ISpAudio* This,SPAUDIOSTATUS *pStatus) {
5339     return This->lpVtbl->GetStatus(This,pStatus);
5340 }
5341 static FORCEINLINE HRESULT ISpAudio_SetBufferInfo(ISpAudio* This,const SPAUDIOBUFFERINFO *pBuffInfo) {
5342     return This->lpVtbl->SetBufferInfo(This,pBuffInfo);
5343 }
5344 static FORCEINLINE HRESULT ISpAudio_GetBufferInfo(ISpAudio* This,SPAUDIOBUFFERINFO *pBuffInfo) {
5345     return This->lpVtbl->GetBufferInfo(This,pBuffInfo);
5346 }
5347 static FORCEINLINE HRESULT ISpAudio_GetDefaultFormat(ISpAudio* This,GUID *pFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
5348     return This->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx);
5349 }
5350 static FORCEINLINE HANDLE ISpAudio_EventHandle(ISpAudio* This) {
5351     return This->lpVtbl->EventHandle(This);
5352 }
5353 static FORCEINLINE HRESULT ISpAudio_GetVolumeLevel(ISpAudio* This,ULONG *pLevel) {
5354     return This->lpVtbl->GetVolumeLevel(This,pLevel);
5355 }
5356 static FORCEINLINE HRESULT ISpAudio_SetVolumeLevel(ISpAudio* This,ULONG Level) {
5357     return This->lpVtbl->SetVolumeLevel(This,Level);
5358 }
5359 static FORCEINLINE HRESULT ISpAudio_GetBufferNotifySize(ISpAudio* This,ULONG *pcbSize) {
5360     return This->lpVtbl->GetBufferNotifySize(This,pcbSize);
5361 }
5362 static FORCEINLINE HRESULT ISpAudio_SetBufferNotifySize(ISpAudio* This,ULONG cbSize) {
5363     return This->lpVtbl->SetBufferNotifySize(This,cbSize);
5364 }
5365 #endif
5366 #endif
5367 
5368 #endif
5369 
5370 HRESULT STDMETHODCALLTYPE ISpAudio_SetState_Proxy(
5371     ISpAudio* This,
5372     SPAUDIOSTATE NewState,
5373     ULONGLONG ullReserved);
5374 void __RPC_STUB ISpAudio_SetState_Stub(
5375     IRpcStubBuffer* This,
5376     IRpcChannelBuffer* pRpcChannelBuffer,
5377     PRPC_MESSAGE pRpcMessage,
5378     DWORD* pdwStubPhase);
5379 HRESULT STDMETHODCALLTYPE ISpAudio_SetFormat_Proxy(
5380     ISpAudio* This,
5381     REFGUID rguidFmtId,
5382     const WAVEFORMATEX *pWaveFormatEx);
5383 void __RPC_STUB ISpAudio_SetFormat_Stub(
5384     IRpcStubBuffer* This,
5385     IRpcChannelBuffer* pRpcChannelBuffer,
5386     PRPC_MESSAGE pRpcMessage,
5387     DWORD* pdwStubPhase);
5388 HRESULT STDMETHODCALLTYPE ISpAudio_GetStatus_Proxy(
5389     ISpAudio* This,
5390     SPAUDIOSTATUS *pStatus);
5391 void __RPC_STUB ISpAudio_GetStatus_Stub(
5392     IRpcStubBuffer* This,
5393     IRpcChannelBuffer* pRpcChannelBuffer,
5394     PRPC_MESSAGE pRpcMessage,
5395     DWORD* pdwStubPhase);
5396 HRESULT STDMETHODCALLTYPE ISpAudio_SetBufferInfo_Proxy(
5397     ISpAudio* This,
5398     const SPAUDIOBUFFERINFO *pBuffInfo);
5399 void __RPC_STUB ISpAudio_SetBufferInfo_Stub(
5400     IRpcStubBuffer* This,
5401     IRpcChannelBuffer* pRpcChannelBuffer,
5402     PRPC_MESSAGE pRpcMessage,
5403     DWORD* pdwStubPhase);
5404 HRESULT STDMETHODCALLTYPE ISpAudio_GetBufferInfo_Proxy(
5405     ISpAudio* This,
5406     SPAUDIOBUFFERINFO *pBuffInfo);
5407 void __RPC_STUB ISpAudio_GetBufferInfo_Stub(
5408     IRpcStubBuffer* This,
5409     IRpcChannelBuffer* pRpcChannelBuffer,
5410     PRPC_MESSAGE pRpcMessage,
5411     DWORD* pdwStubPhase);
5412 HRESULT STDMETHODCALLTYPE ISpAudio_GetDefaultFormat_Proxy(
5413     ISpAudio* This,
5414     GUID *pFormatId,
5415     WAVEFORMATEX **ppCoMemWaveFormatEx);
5416 void __RPC_STUB ISpAudio_GetDefaultFormat_Stub(
5417     IRpcStubBuffer* This,
5418     IRpcChannelBuffer* pRpcChannelBuffer,
5419     PRPC_MESSAGE pRpcMessage,
5420     DWORD* pdwStubPhase);
5421 HANDLE STDMETHODCALLTYPE ISpAudio_EventHandle_Proxy(
5422     ISpAudio* This);
5423 void __RPC_STUB ISpAudio_EventHandle_Stub(
5424     IRpcStubBuffer* This,
5425     IRpcChannelBuffer* pRpcChannelBuffer,
5426     PRPC_MESSAGE pRpcMessage,
5427     DWORD* pdwStubPhase);
5428 HRESULT STDMETHODCALLTYPE ISpAudio_GetVolumeLevel_Proxy(
5429     ISpAudio* This,
5430     ULONG *pLevel);
5431 void __RPC_STUB ISpAudio_GetVolumeLevel_Stub(
5432     IRpcStubBuffer* This,
5433     IRpcChannelBuffer* pRpcChannelBuffer,
5434     PRPC_MESSAGE pRpcMessage,
5435     DWORD* pdwStubPhase);
5436 HRESULT STDMETHODCALLTYPE ISpAudio_SetVolumeLevel_Proxy(
5437     ISpAudio* This,
5438     ULONG Level);
5439 void __RPC_STUB ISpAudio_SetVolumeLevel_Stub(
5440     IRpcStubBuffer* This,
5441     IRpcChannelBuffer* pRpcChannelBuffer,
5442     PRPC_MESSAGE pRpcMessage,
5443     DWORD* pdwStubPhase);
5444 HRESULT STDMETHODCALLTYPE ISpAudio_GetBufferNotifySize_Proxy(
5445     ISpAudio* This,
5446     ULONG *pcbSize);
5447 void __RPC_STUB ISpAudio_GetBufferNotifySize_Stub(
5448     IRpcStubBuffer* This,
5449     IRpcChannelBuffer* pRpcChannelBuffer,
5450     PRPC_MESSAGE pRpcMessage,
5451     DWORD* pdwStubPhase);
5452 HRESULT STDMETHODCALLTYPE ISpAudio_SetBufferNotifySize_Proxy(
5453     ISpAudio* This,
5454     ULONG cbSize);
5455 void __RPC_STUB ISpAudio_SetBufferNotifySize_Stub(
5456     IRpcStubBuffer* This,
5457     IRpcChannelBuffer* pRpcChannelBuffer,
5458     PRPC_MESSAGE pRpcMessage,
5459     DWORD* pdwStubPhase);
5460 
5461 #endif  /* __ISpAudio_INTERFACE_DEFINED__ */
5462 
5463 /*****************************************************************************
5464  * ISpMMSysAudio interface
5465  */
5466 #ifndef __ISpMMSysAudio_INTERFACE_DEFINED__
5467 #define __ISpMMSysAudio_INTERFACE_DEFINED__
5468 
5469 DEFINE_GUID(IID_ISpMMSysAudio, 0x15806f6e, 0x1d70, 0x4b48, 0x98,0xe6, 0x3b,0x1a,0x00,0x75,0x09,0xab);
5470 #if defined(__cplusplus) && !defined(CINTERFACE)
5471 MIDL_INTERFACE("15806f6e-1d70-4b48-98e6-3b1a007509ab")
5472 ISpMMSysAudio : public ISpAudio
5473 {
5474     virtual HRESULT STDMETHODCALLTYPE GetDeviceId(
5475         UINT *puDeviceId) = 0;
5476 
5477     virtual HRESULT STDMETHODCALLTYPE SetDeviceId(
5478         UINT uDeviceId) = 0;
5479 
5480     virtual HRESULT STDMETHODCALLTYPE GetMMHandle(
5481         void **pHandle) = 0;
5482 
5483     virtual HRESULT STDMETHODCALLTYPE GetLineId(
5484         UINT *puLineId) = 0;
5485 
5486     virtual HRESULT STDMETHODCALLTYPE SetLineId(
5487         UINT uLineId) = 0;
5488 
5489 };
5490 #ifdef __CRT_UUID_DECL
5491 __CRT_UUID_DECL(ISpMMSysAudio, 0x15806f6e, 0x1d70, 0x4b48, 0x98,0xe6, 0x3b,0x1a,0x00,0x75,0x09,0xab)
5492 #endif
5493 #else
5494 typedef struct ISpMMSysAudioVtbl {
5495     BEGIN_INTERFACE
5496 
5497     /*** IUnknown methods ***/
5498     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5499         ISpMMSysAudio* This,
5500         REFIID riid,
5501         void **ppvObject);
5502 
5503     ULONG (STDMETHODCALLTYPE *AddRef)(
5504         ISpMMSysAudio* This);
5505 
5506     ULONG (STDMETHODCALLTYPE *Release)(
5507         ISpMMSysAudio* This);
5508 
5509     /*** ISequentialStream methods ***/
5510     HRESULT (STDMETHODCALLTYPE *Read)(
5511         ISpMMSysAudio* This,
5512         void *pv,
5513         ULONG cb,
5514         ULONG *pcbRead);
5515 
5516     HRESULT (STDMETHODCALLTYPE *Write)(
5517         ISpMMSysAudio* This,
5518         const void *pv,
5519         ULONG cb,
5520         ULONG *pcbWritten);
5521 
5522     /*** IStream methods ***/
5523     HRESULT (STDMETHODCALLTYPE *Seek)(
5524         ISpMMSysAudio* This,
5525         LARGE_INTEGER dlibMove,
5526         DWORD dwOrigin,
5527         ULARGE_INTEGER *plibNewPosition);
5528 
5529     HRESULT (STDMETHODCALLTYPE *SetSize)(
5530         ISpMMSysAudio* This,
5531         ULARGE_INTEGER libNewSize);
5532 
5533     HRESULT (STDMETHODCALLTYPE *CopyTo)(
5534         ISpMMSysAudio* This,
5535         IStream *pstm,
5536         ULARGE_INTEGER cb,
5537         ULARGE_INTEGER *pcbRead,
5538         ULARGE_INTEGER *pcbWritten);
5539 
5540     HRESULT (STDMETHODCALLTYPE *Commit)(
5541         ISpMMSysAudio* This,
5542         DWORD grfCommitFlags);
5543 
5544     HRESULT (STDMETHODCALLTYPE *Revert)(
5545         ISpMMSysAudio* This);
5546 
5547     HRESULT (STDMETHODCALLTYPE *LockRegion)(
5548         ISpMMSysAudio* This,
5549         ULARGE_INTEGER libOffset,
5550         ULARGE_INTEGER cb,
5551         DWORD dwLockType);
5552 
5553     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
5554         ISpMMSysAudio* This,
5555         ULARGE_INTEGER libOffset,
5556         ULARGE_INTEGER cb,
5557         DWORD dwLockType);
5558 
5559     HRESULT (STDMETHODCALLTYPE *Stat)(
5560         ISpMMSysAudio* This,
5561         STATSTG *pstatstg,
5562         DWORD grfStatFlag);
5563 
5564     HRESULT (STDMETHODCALLTYPE *Clone)(
5565         ISpMMSysAudio* This,
5566         IStream **ppstm);
5567 
5568     /*** ISpStreamFormat methods ***/
5569     HRESULT (STDMETHODCALLTYPE *GetFormat)(
5570         ISpMMSysAudio* This,
5571         GUID *pguidFormatId,
5572         WAVEFORMATEX **ppCoMemWaveFormatEx);
5573 
5574     /*** ISpAudio methods ***/
5575     HRESULT (STDMETHODCALLTYPE *SetState)(
5576         ISpMMSysAudio* This,
5577         SPAUDIOSTATE NewState,
5578         ULONGLONG ullReserved);
5579 
5580     HRESULT (STDMETHODCALLTYPE *SetFormat)(
5581         ISpMMSysAudio* This,
5582         REFGUID rguidFmtId,
5583         const WAVEFORMATEX *pWaveFormatEx);
5584 
5585     HRESULT (STDMETHODCALLTYPE *GetStatus)(
5586         ISpMMSysAudio* This,
5587         SPAUDIOSTATUS *pStatus);
5588 
5589     HRESULT (STDMETHODCALLTYPE *SetBufferInfo)(
5590         ISpMMSysAudio* This,
5591         const SPAUDIOBUFFERINFO *pBuffInfo);
5592 
5593     HRESULT (STDMETHODCALLTYPE *GetBufferInfo)(
5594         ISpMMSysAudio* This,
5595         SPAUDIOBUFFERINFO *pBuffInfo);
5596 
5597     HRESULT (STDMETHODCALLTYPE *GetDefaultFormat)(
5598         ISpMMSysAudio* This,
5599         GUID *pFormatId,
5600         WAVEFORMATEX **ppCoMemWaveFormatEx);
5601 
5602     HANDLE (STDMETHODCALLTYPE *EventHandle)(
5603         ISpMMSysAudio* This);
5604 
5605     HRESULT (STDMETHODCALLTYPE *GetVolumeLevel)(
5606         ISpMMSysAudio* This,
5607         ULONG *pLevel);
5608 
5609     HRESULT (STDMETHODCALLTYPE *SetVolumeLevel)(
5610         ISpMMSysAudio* This,
5611         ULONG Level);
5612 
5613     HRESULT (STDMETHODCALLTYPE *GetBufferNotifySize)(
5614         ISpMMSysAudio* This,
5615         ULONG *pcbSize);
5616 
5617     HRESULT (STDMETHODCALLTYPE *SetBufferNotifySize)(
5618         ISpMMSysAudio* This,
5619         ULONG cbSize);
5620 
5621     /*** ISpMMSysAudio methods ***/
5622     HRESULT (STDMETHODCALLTYPE *GetDeviceId)(
5623         ISpMMSysAudio* This,
5624         UINT *puDeviceId);
5625 
5626     HRESULT (STDMETHODCALLTYPE *SetDeviceId)(
5627         ISpMMSysAudio* This,
5628         UINT uDeviceId);
5629 
5630     HRESULT (STDMETHODCALLTYPE *GetMMHandle)(
5631         ISpMMSysAudio* This,
5632         void **pHandle);
5633 
5634     HRESULT (STDMETHODCALLTYPE *GetLineId)(
5635         ISpMMSysAudio* This,
5636         UINT *puLineId);
5637 
5638     HRESULT (STDMETHODCALLTYPE *SetLineId)(
5639         ISpMMSysAudio* This,
5640         UINT uLineId);
5641 
5642     END_INTERFACE
5643 } ISpMMSysAudioVtbl;
5644 interface ISpMMSysAudio {
5645     CONST_VTBL ISpMMSysAudioVtbl* lpVtbl;
5646 };
5647 
5648 #ifdef COBJMACROS
5649 #ifndef WIDL_C_INLINE_WRAPPERS
5650 /*** IUnknown methods ***/
5651 #define ISpMMSysAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5652 #define ISpMMSysAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
5653 #define ISpMMSysAudio_Release(This) (This)->lpVtbl->Release(This)
5654 /*** ISequentialStream methods ***/
5655 #define ISpMMSysAudio_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
5656 #define ISpMMSysAudio_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
5657 /*** IStream methods ***/
5658 #define ISpMMSysAudio_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
5659 #define ISpMMSysAudio_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
5660 #define ISpMMSysAudio_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
5661 #define ISpMMSysAudio_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
5662 #define ISpMMSysAudio_Revert(This) (This)->lpVtbl->Revert(This)
5663 #define ISpMMSysAudio_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
5664 #define ISpMMSysAudio_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
5665 #define ISpMMSysAudio_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
5666 #define ISpMMSysAudio_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
5667 /*** ISpStreamFormat methods ***/
5668 #define ISpMMSysAudio_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
5669 /*** ISpAudio methods ***/
5670 #define ISpMMSysAudio_SetState(This,NewState,ullReserved) (This)->lpVtbl->SetState(This,NewState,ullReserved)
5671 #define ISpMMSysAudio_SetFormat(This,rguidFmtId,pWaveFormatEx) (This)->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx)
5672 #define ISpMMSysAudio_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
5673 #define ISpMMSysAudio_SetBufferInfo(This,pBuffInfo) (This)->lpVtbl->SetBufferInfo(This,pBuffInfo)
5674 #define ISpMMSysAudio_GetBufferInfo(This,pBuffInfo) (This)->lpVtbl->GetBufferInfo(This,pBuffInfo)
5675 #define ISpMMSysAudio_GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx)
5676 #define ISpMMSysAudio_EventHandle(This) (This)->lpVtbl->EventHandle(This)
5677 #define ISpMMSysAudio_GetVolumeLevel(This,pLevel) (This)->lpVtbl->GetVolumeLevel(This,pLevel)
5678 #define ISpMMSysAudio_SetVolumeLevel(This,Level) (This)->lpVtbl->SetVolumeLevel(This,Level)
5679 #define ISpMMSysAudio_GetBufferNotifySize(This,pcbSize) (This)->lpVtbl->GetBufferNotifySize(This,pcbSize)
5680 #define ISpMMSysAudio_SetBufferNotifySize(This,cbSize) (This)->lpVtbl->SetBufferNotifySize(This,cbSize)
5681 /*** ISpMMSysAudio methods ***/
5682 #define ISpMMSysAudio_GetDeviceId(This,puDeviceId) (This)->lpVtbl->GetDeviceId(This,puDeviceId)
5683 #define ISpMMSysAudio_SetDeviceId(This,uDeviceId) (This)->lpVtbl->SetDeviceId(This,uDeviceId)
5684 #define ISpMMSysAudio_GetMMHandle(This,pHandle) (This)->lpVtbl->GetMMHandle(This,pHandle)
5685 #define ISpMMSysAudio_GetLineId(This,puLineId) (This)->lpVtbl->GetLineId(This,puLineId)
5686 #define ISpMMSysAudio_SetLineId(This,uLineId) (This)->lpVtbl->SetLineId(This,uLineId)
5687 #else
5688 /*** IUnknown methods ***/
5689 static FORCEINLINE HRESULT ISpMMSysAudio_QueryInterface(ISpMMSysAudio* This,REFIID riid,void **ppvObject) {
5690     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5691 }
5692 static FORCEINLINE ULONG ISpMMSysAudio_AddRef(ISpMMSysAudio* This) {
5693     return This->lpVtbl->AddRef(This);
5694 }
5695 static FORCEINLINE ULONG ISpMMSysAudio_Release(ISpMMSysAudio* This) {
5696     return This->lpVtbl->Release(This);
5697 }
5698 /*** ISequentialStream methods ***/
5699 static FORCEINLINE HRESULT ISpMMSysAudio_Read(ISpMMSysAudio* This,void *pv,ULONG cb,ULONG *pcbRead) {
5700     return This->lpVtbl->Read(This,pv,cb,pcbRead);
5701 }
5702 static FORCEINLINE HRESULT ISpMMSysAudio_Write(ISpMMSysAudio* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
5703     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
5704 }
5705 /*** IStream methods ***/
5706 static FORCEINLINE HRESULT ISpMMSysAudio_Seek(ISpMMSysAudio* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
5707     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
5708 }
5709 static FORCEINLINE HRESULT ISpMMSysAudio_SetSize(ISpMMSysAudio* This,ULARGE_INTEGER libNewSize) {
5710     return This->lpVtbl->SetSize(This,libNewSize);
5711 }
5712 static FORCEINLINE HRESULT ISpMMSysAudio_CopyTo(ISpMMSysAudio* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
5713     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
5714 }
5715 static FORCEINLINE HRESULT ISpMMSysAudio_Commit(ISpMMSysAudio* This,DWORD grfCommitFlags) {
5716     return This->lpVtbl->Commit(This,grfCommitFlags);
5717 }
5718 static FORCEINLINE HRESULT ISpMMSysAudio_Revert(ISpMMSysAudio* This) {
5719     return This->lpVtbl->Revert(This);
5720 }
5721 static FORCEINLINE HRESULT ISpMMSysAudio_LockRegion(ISpMMSysAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
5722     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
5723 }
5724 static FORCEINLINE HRESULT ISpMMSysAudio_UnlockRegion(ISpMMSysAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
5725     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
5726 }
5727 static FORCEINLINE HRESULT ISpMMSysAudio_Stat(ISpMMSysAudio* This,STATSTG *pstatstg,DWORD grfStatFlag) {
5728     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
5729 }
5730 static FORCEINLINE HRESULT ISpMMSysAudio_Clone(ISpMMSysAudio* This,IStream **ppstm) {
5731     return This->lpVtbl->Clone(This,ppstm);
5732 }
5733 /*** ISpStreamFormat methods ***/
5734 static FORCEINLINE HRESULT ISpMMSysAudio_GetFormat(ISpMMSysAudio* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
5735     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
5736 }
5737 /*** ISpAudio methods ***/
5738 static FORCEINLINE HRESULT ISpMMSysAudio_SetState(ISpMMSysAudio* This,SPAUDIOSTATE NewState,ULONGLONG ullReserved) {
5739     return This->lpVtbl->SetState(This,NewState,ullReserved);
5740 }
5741 static FORCEINLINE HRESULT ISpMMSysAudio_SetFormat(ISpMMSysAudio* This,REFGUID rguidFmtId,const WAVEFORMATEX *pWaveFormatEx) {
5742     return This->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx);
5743 }
5744 static FORCEINLINE HRESULT ISpMMSysAudio_GetStatus(ISpMMSysAudio* This,SPAUDIOSTATUS *pStatus) {
5745     return This->lpVtbl->GetStatus(This,pStatus);
5746 }
5747 static FORCEINLINE HRESULT ISpMMSysAudio_SetBufferInfo(ISpMMSysAudio* This,const SPAUDIOBUFFERINFO *pBuffInfo) {
5748     return This->lpVtbl->SetBufferInfo(This,pBuffInfo);
5749 }
5750 static FORCEINLINE HRESULT ISpMMSysAudio_GetBufferInfo(ISpMMSysAudio* This,SPAUDIOBUFFERINFO *pBuffInfo) {
5751     return This->lpVtbl->GetBufferInfo(This,pBuffInfo);
5752 }
5753 static FORCEINLINE HRESULT ISpMMSysAudio_GetDefaultFormat(ISpMMSysAudio* This,GUID *pFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
5754     return This->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx);
5755 }
5756 static FORCEINLINE HANDLE ISpMMSysAudio_EventHandle(ISpMMSysAudio* This) {
5757     return This->lpVtbl->EventHandle(This);
5758 }
5759 static FORCEINLINE HRESULT ISpMMSysAudio_GetVolumeLevel(ISpMMSysAudio* This,ULONG *pLevel) {
5760     return This->lpVtbl->GetVolumeLevel(This,pLevel);
5761 }
5762 static FORCEINLINE HRESULT ISpMMSysAudio_SetVolumeLevel(ISpMMSysAudio* This,ULONG Level) {
5763     return This->lpVtbl->SetVolumeLevel(This,Level);
5764 }
5765 static FORCEINLINE HRESULT ISpMMSysAudio_GetBufferNotifySize(ISpMMSysAudio* This,ULONG *pcbSize) {
5766     return This->lpVtbl->GetBufferNotifySize(This,pcbSize);
5767 }
5768 static FORCEINLINE HRESULT ISpMMSysAudio_SetBufferNotifySize(ISpMMSysAudio* This,ULONG cbSize) {
5769     return This->lpVtbl->SetBufferNotifySize(This,cbSize);
5770 }
5771 /*** ISpMMSysAudio methods ***/
5772 static FORCEINLINE HRESULT ISpMMSysAudio_GetDeviceId(ISpMMSysAudio* This,UINT *puDeviceId) {
5773     return This->lpVtbl->GetDeviceId(This,puDeviceId);
5774 }
5775 static FORCEINLINE HRESULT ISpMMSysAudio_SetDeviceId(ISpMMSysAudio* This,UINT uDeviceId) {
5776     return This->lpVtbl->SetDeviceId(This,uDeviceId);
5777 }
5778 static FORCEINLINE HRESULT ISpMMSysAudio_GetMMHandle(ISpMMSysAudio* This,void **pHandle) {
5779     return This->lpVtbl->GetMMHandle(This,pHandle);
5780 }
5781 static FORCEINLINE HRESULT ISpMMSysAudio_GetLineId(ISpMMSysAudio* This,UINT *puLineId) {
5782     return This->lpVtbl->GetLineId(This,puLineId);
5783 }
5784 static FORCEINLINE HRESULT ISpMMSysAudio_SetLineId(ISpMMSysAudio* This,UINT uLineId) {
5785     return This->lpVtbl->SetLineId(This,uLineId);
5786 }
5787 #endif
5788 #endif
5789 
5790 #endif
5791 
5792 HRESULT STDMETHODCALLTYPE ISpMMSysAudio_GetDeviceId_Proxy(
5793     ISpMMSysAudio* This,
5794     UINT *puDeviceId);
5795 void __RPC_STUB ISpMMSysAudio_GetDeviceId_Stub(
5796     IRpcStubBuffer* This,
5797     IRpcChannelBuffer* pRpcChannelBuffer,
5798     PRPC_MESSAGE pRpcMessage,
5799     DWORD* pdwStubPhase);
5800 HRESULT STDMETHODCALLTYPE ISpMMSysAudio_SetDeviceId_Proxy(
5801     ISpMMSysAudio* This,
5802     UINT uDeviceId);
5803 void __RPC_STUB ISpMMSysAudio_SetDeviceId_Stub(
5804     IRpcStubBuffer* This,
5805     IRpcChannelBuffer* pRpcChannelBuffer,
5806     PRPC_MESSAGE pRpcMessage,
5807     DWORD* pdwStubPhase);
5808 HRESULT STDMETHODCALLTYPE ISpMMSysAudio_GetMMHandle_Proxy(
5809     ISpMMSysAudio* This,
5810     void **pHandle);
5811 void __RPC_STUB ISpMMSysAudio_GetMMHandle_Stub(
5812     IRpcStubBuffer* This,
5813     IRpcChannelBuffer* pRpcChannelBuffer,
5814     PRPC_MESSAGE pRpcMessage,
5815     DWORD* pdwStubPhase);
5816 HRESULT STDMETHODCALLTYPE ISpMMSysAudio_GetLineId_Proxy(
5817     ISpMMSysAudio* This,
5818     UINT *puLineId);
5819 void __RPC_STUB ISpMMSysAudio_GetLineId_Stub(
5820     IRpcStubBuffer* This,
5821     IRpcChannelBuffer* pRpcChannelBuffer,
5822     PRPC_MESSAGE pRpcMessage,
5823     DWORD* pdwStubPhase);
5824 HRESULT STDMETHODCALLTYPE ISpMMSysAudio_SetLineId_Proxy(
5825     ISpMMSysAudio* This,
5826     UINT uLineId);
5827 void __RPC_STUB ISpMMSysAudio_SetLineId_Stub(
5828     IRpcStubBuffer* This,
5829     IRpcChannelBuffer* pRpcChannelBuffer,
5830     PRPC_MESSAGE pRpcMessage,
5831     DWORD* pdwStubPhase);
5832 
5833 #endif  /* __ISpMMSysAudio_INTERFACE_DEFINED__ */
5834 
5835 /*****************************************************************************
5836  * ISpTranscript interface
5837  */
5838 #ifndef __ISpTranscript_INTERFACE_DEFINED__
5839 #define __ISpTranscript_INTERFACE_DEFINED__
5840 
5841 DEFINE_GUID(IID_ISpTranscript, 0x10f63bce, 0x201a, 0x11d3, 0xac,0x70, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
5842 #if defined(__cplusplus) && !defined(CINTERFACE)
5843 MIDL_INTERFACE("10f63bce-201a-11d3-ac70-00c04f8ee6c0")
5844 ISpTranscript : public IUnknown
5845 {
5846     virtual HRESULT STDMETHODCALLTYPE GetTranscript(
5847         LPWSTR *ppszTranscript) = 0;
5848 
5849     virtual HRESULT STDMETHODCALLTYPE AppendTranscript(
5850         LPCWSTR pszTranscript) = 0;
5851 
5852 };
5853 #ifdef __CRT_UUID_DECL
5854 __CRT_UUID_DECL(ISpTranscript, 0x10f63bce, 0x201a, 0x11d3, 0xac,0x70, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
5855 #endif
5856 #else
5857 typedef struct ISpTranscriptVtbl {
5858     BEGIN_INTERFACE
5859 
5860     /*** IUnknown methods ***/
5861     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5862         ISpTranscript* This,
5863         REFIID riid,
5864         void **ppvObject);
5865 
5866     ULONG (STDMETHODCALLTYPE *AddRef)(
5867         ISpTranscript* This);
5868 
5869     ULONG (STDMETHODCALLTYPE *Release)(
5870         ISpTranscript* This);
5871 
5872     /*** ISpTranscript methods ***/
5873     HRESULT (STDMETHODCALLTYPE *GetTranscript)(
5874         ISpTranscript* This,
5875         LPWSTR *ppszTranscript);
5876 
5877     HRESULT (STDMETHODCALLTYPE *AppendTranscript)(
5878         ISpTranscript* This,
5879         LPCWSTR pszTranscript);
5880 
5881     END_INTERFACE
5882 } ISpTranscriptVtbl;
5883 interface ISpTranscript {
5884     CONST_VTBL ISpTranscriptVtbl* lpVtbl;
5885 };
5886 
5887 #ifdef COBJMACROS
5888 #ifndef WIDL_C_INLINE_WRAPPERS
5889 /*** IUnknown methods ***/
5890 #define ISpTranscript_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5891 #define ISpTranscript_AddRef(This) (This)->lpVtbl->AddRef(This)
5892 #define ISpTranscript_Release(This) (This)->lpVtbl->Release(This)
5893 /*** ISpTranscript methods ***/
5894 #define ISpTranscript_GetTranscript(This,ppszTranscript) (This)->lpVtbl->GetTranscript(This,ppszTranscript)
5895 #define ISpTranscript_AppendTranscript(This,pszTranscript) (This)->lpVtbl->AppendTranscript(This,pszTranscript)
5896 #else
5897 /*** IUnknown methods ***/
5898 static FORCEINLINE HRESULT ISpTranscript_QueryInterface(ISpTranscript* This,REFIID riid,void **ppvObject) {
5899     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5900 }
5901 static FORCEINLINE ULONG ISpTranscript_AddRef(ISpTranscript* This) {
5902     return This->lpVtbl->AddRef(This);
5903 }
5904 static FORCEINLINE ULONG ISpTranscript_Release(ISpTranscript* This) {
5905     return This->lpVtbl->Release(This);
5906 }
5907 /*** ISpTranscript methods ***/
5908 static FORCEINLINE HRESULT ISpTranscript_GetTranscript(ISpTranscript* This,LPWSTR *ppszTranscript) {
5909     return This->lpVtbl->GetTranscript(This,ppszTranscript);
5910 }
5911 static FORCEINLINE HRESULT ISpTranscript_AppendTranscript(ISpTranscript* This,LPCWSTR pszTranscript) {
5912     return This->lpVtbl->AppendTranscript(This,pszTranscript);
5913 }
5914 #endif
5915 #endif
5916 
5917 #endif
5918 
5919 HRESULT STDMETHODCALLTYPE ISpTranscript_GetTranscript_Proxy(
5920     ISpTranscript* This,
5921     LPWSTR *ppszTranscript);
5922 void __RPC_STUB ISpTranscript_GetTranscript_Stub(
5923     IRpcStubBuffer* This,
5924     IRpcChannelBuffer* pRpcChannelBuffer,
5925     PRPC_MESSAGE pRpcMessage,
5926     DWORD* pdwStubPhase);
5927 HRESULT STDMETHODCALLTYPE ISpTranscript_AppendTranscript_Proxy(
5928     ISpTranscript* This,
5929     LPCWSTR pszTranscript);
5930 void __RPC_STUB ISpTranscript_AppendTranscript_Stub(
5931     IRpcStubBuffer* This,
5932     IRpcChannelBuffer* pRpcChannelBuffer,
5933     PRPC_MESSAGE pRpcMessage,
5934     DWORD* pdwStubPhase);
5935 
5936 #endif  /* __ISpTranscript_INTERFACE_DEFINED__ */
5937 
5938 typedef WCHAR SPPHONEID;
5939 typedef LPWSTR PSPPHONEID;
5940 typedef LPCWSTR PCSPPHONEID;
5941 typedef struct SPPHRASEELEMENT {
5942     ULONG ulAudioTimeOffset;
5943     ULONG ulAudioSizeTime;
5944     ULONG ulAudioStreamOffset;
5945     ULONG ulAudioSizeBytes;
5946     ULONG ulRetainedStreamOffset;
5947     ULONG ulRetainedSizeBytes;
5948     LPCWSTR pszDisplayText;
5949     LPCWSTR pszLexicalForm;
5950     const SPPHONEID *pszPronunciation;
5951     BYTE bDisplayAttributes;
5952     signed char RequiredConfidence;
5953     signed char ActualConfidence;
5954     BYTE Reserved;
5955     float SREngineConfidence;
5956 } SPPHRASEELEMENT;
5957 typedef struct SPPHRASERULE SPPHRASERULE;
5958 typedef struct SPPHRASEPROPERTY SPPHRASEPROPERTY;
5959 struct SPPHRASERULE {
5960     LPCWSTR pszName;
5961     ULONG ulId;
5962     ULONG ulFirstElement;
5963     ULONG ulCountOfElements;
5964     const SPPHRASERULE *pNextSibling;
5965     const SPPHRASERULE *pFirstChild;
5966     float SREngineConfidence;
5967     signed char Confidence;
5968 };
5969 
5970 struct SPPHRASEPROPERTY {
5971     LPCWSTR pszName;
5972     __C89_NAMELESS union {
5973         ULONG ulId;
5974         __C89_NAMELESS struct {
5975             byte bType;
5976             byte bReserved;
5977             unsigned short usArrayIndex;
5978         } __C89_NAMELESSSTRUCTNAME;
5979     } __C89_NAMELESSUNIONNAME;
5980     LPCWSTR pszValue;
5981     VARIANT vValue;
5982     ULONG ulFirstElement;
5983     ULONG ulCountOfElements;
5984     const SPPHRASEPROPERTY *pNextSibling;
5985     const SPPHRASEPROPERTY *pFirstChild;
5986     float SREngineConfidence;
5987     signed char Confidence;
5988 };
5989 
5990 typedef struct SPPHRASEREPLACEMENT {
5991     BYTE bDisplayAttributes;
5992     LPCWSTR pszReplacementText;
5993     ULONG ulFirstElement;
5994     ULONG ulCountOfElements;
5995 } SPPHRASEREPLACEMENT;
5996 typedef struct SPSEMANTICERRORINFO {
5997     ULONG ulLineNumber;
5998     LPWSTR pszScriptLine;
5999     LPWSTR pszSource;
6000     LPWSTR pszDescription;
6001     HRESULT hrResultCode;
6002 } SPSEMANTICERRORINFO;
6003 typedef struct SPPHRASE_50 {
6004     ULONG cbSize;
6005     WORD LangID;
6006     WORD wHomophoneGroupId;
6007     ULONGLONG ullGrammarID;
6008     ULONGLONG ftStartTime;
6009     ULONGLONG ullAudioStreamPosition;
6010     ULONG ulAudioSizeBytes;
6011     ULONG ulRetainedSizeBytes;
6012     ULONG ulAudioSizeTime;
6013     SPPHRASERULE Rule;
6014     const SPPHRASEPROPERTY *pProperties;
6015     const SPPHRASEELEMENT *pElements;
6016     ULONG cReplacements;
6017     const SPPHRASEREPLACEMENT *pReplacements;
6018     GUID SREngineID;
6019     ULONG ulSREnginePrivateDataSize;
6020     const BYTE *pSREnginePrivateData;
6021 } SPPHRASE_50;
6022 #define SP_SPPHRASESIZE_500 sizeof (SPPHRASE_50)
6023 #ifdef __cplusplus
6024 typedef struct SPPHRASE_53 : public SPPHRASE_50 {
6025   LPWSTR pSML;
6026   SPSEMANTICERRORINFO* pSemanticErrorInfo;
6027 } SPPHRASE_53;
6028 #else
6029 typedef struct SPPHRASE_53 {
6030     ULONG cbSize;
6031     WORD LangID;
6032     WORD wHomophoneGroupId;
6033     ULONGLONG ullGrammarID;
6034     ULONGLONG ftStartTime;
6035     ULONGLONG ullAudioStreamPosition;
6036     ULONG ulAudioSizeBytes;
6037     ULONG ulRetainedSizeBytes;
6038     ULONG ulAudioSizeTime;
6039     SPPHRASERULE Rule;
6040     const SPPHRASEPROPERTY *pProperties;
6041     const SPPHRASEELEMENT *pElements;
6042     ULONG cReplacements;
6043     const SPPHRASEREPLACEMENT *pReplacements;
6044     GUID SREngineID;
6045     ULONG ulSREnginePrivateDataSize;
6046     const BYTE *pSREnginePrivateData;
6047     LPWSTR pSML;
6048     SPSEMANTICERRORINFO *pSemanticErrorInfo;
6049 } SPPHRASE_53;
6050 #endif
6051 #define SP_SPPHRASESIZE_530 sizeof (SPPHRASE_53)
6052 #ifdef __cplusplus
6053 typedef struct SPPHRASE : public SPPHRASE_53 {
6054   SPSEMANTICFORMAT SemanticTagFormat;
6055 } SPPHRASE;
6056 #else
6057 typedef struct SPPHRASE {
6058     ULONG cbSize;
6059     WORD LangID;
6060     WORD wHomophoneGroupId;
6061     ULONGLONG ullGrammarID;
6062     ULONGLONG ftStartTime;
6063     ULONGLONG ullAudioStreamPosition;
6064     ULONG ulAudioSizeBytes;
6065     ULONG ulRetainedSizeBytes;
6066     ULONG ulAudioSizeTime;
6067     SPPHRASERULE Rule;
6068     const SPPHRASEPROPERTY *pProperties;
6069     const SPPHRASEELEMENT *pElements;
6070     ULONG cReplacements;
6071     const SPPHRASEREPLACEMENT *pReplacements;
6072     GUID SREngineID;
6073     ULONG ulSREnginePrivateDataSize;
6074     const BYTE *pSREnginePrivateData;
6075     LPWSTR pSML;
6076     SPSEMANTICERRORINFO *pSemanticErrorInfo;
6077     SPSEMANTICFORMAT SemanticTagFormat;
6078 } SPPHRASE;
6079 #endif
6080 typedef struct SPSERIALIZEDPHRASE {
6081     ULONG ulSerializedSize;
6082 } SPSERIALIZEDPHRASE;
6083 typedef struct SPRULE {
6084     LPCWSTR pszRuleName;
6085     ULONG ulRuleId;
6086     DWORD dwAttributes;
6087 } SPRULE;
6088 typedef struct SPBINARYGRAMMAR {
6089     ULONG ulTotalSerializedSize;
6090 } SPBINARYGRAMMAR;
6091 #if 0
6092 typedef void *SPSTATEHANDLE;
6093 #else
6094 DECLARE_HANDLE(SPSTATEHANDLE);
6095 #endif
6096 typedef struct SPWORDPRONUNCIATION {
6097     struct SPWORDPRONUNCIATION *pNextWordPronunciation;
6098     SPLEXICONTYPE eLexiconType;
6099     WORD LangID;
6100     WORD wPronunciationFlags;
6101     SPPARTOFSPEECH ePartOfSpeech;
6102     SPPHONEID szPronunciation[1];
6103 } SPWORDPRONUNCIATION;
6104 typedef struct SPWORDPRONUNCIATIONLIST {
6105     ULONG ulSize;
6106     BYTE *pvBuffer;
6107     SPWORDPRONUNCIATION *pFirstWordPronunciation;
6108 } SPWORDPRONUNCIATIONLIST;
6109 typedef struct SPWORD {
6110     struct SPWORD *pNextWord;
6111     WORD LangID;
6112     WORD wReserved;
6113     SPWORDTYPE eWordType;
6114     LPWSTR pszWord;
6115     SPWORDPRONUNCIATION *pFirstWordPronunciation;
6116 } SPWORD;
6117 typedef struct SPWORDLIST {
6118     ULONG ulSize;
6119     BYTE *pvBuffer;
6120     SPWORD *pFirstWord;
6121 } SPWORDLIST;
6122 /*****************************************************************************
6123  * ISpLexicon interface
6124  */
6125 #ifndef __ISpLexicon_INTERFACE_DEFINED__
6126 #define __ISpLexicon_INTERFACE_DEFINED__
6127 
6128 DEFINE_GUID(IID_ISpLexicon, 0xda41a7c2, 0x5383, 0x4db2, 0x91,0x6b, 0x6c,0x17,0x19,0xe3,0xdb,0x58);
6129 #if defined(__cplusplus) && !defined(CINTERFACE)
6130 MIDL_INTERFACE("da41a7c2-5383-4db2-916b-6c1719e3db58")
6131 ISpLexicon : public IUnknown
6132 {
6133     virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
6134         LPCWSTR pszWord,
6135         WORD LangID,
6136         DWORD dwFlags,
6137         SPWORDPRONUNCIATIONLIST *pWordPronunciationList) = 0;
6138 
6139     virtual HRESULT STDMETHODCALLTYPE AddPronunciation(
6140         LPCWSTR pszWord,
6141         WORD LangID,
6142         SPPARTOFSPEECH ePartOfSpeech,
6143         PCSPPHONEID pszPronunciation) = 0;
6144 
6145     virtual HRESULT STDMETHODCALLTYPE RemovePronunciation(
6146         LPCWSTR pszWord,
6147         WORD LangID,
6148         SPPARTOFSPEECH ePartOfSpeech,
6149         PCSPPHONEID pszPronunciation) = 0;
6150 
6151     virtual HRESULT STDMETHODCALLTYPE GetGeneration(
6152         DWORD *pdwGeneration) = 0;
6153 
6154     virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
6155         DWORD dwFlags,
6156         DWORD *pdwGeneration,
6157         SPWORDLIST *pWordList) = 0;
6158 
6159     virtual HRESULT STDMETHODCALLTYPE GetWords(
6160         DWORD dwFlags,
6161         DWORD *pdwGeneration,
6162         DWORD *pdwCookie,
6163         SPWORDLIST *pWordList) = 0;
6164 
6165 };
6166 #ifdef __CRT_UUID_DECL
6167 __CRT_UUID_DECL(ISpLexicon, 0xda41a7c2, 0x5383, 0x4db2, 0x91,0x6b, 0x6c,0x17,0x19,0xe3,0xdb,0x58)
6168 #endif
6169 #else
6170 typedef struct ISpLexiconVtbl {
6171     BEGIN_INTERFACE
6172 
6173     /*** IUnknown methods ***/
6174     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6175         ISpLexicon* This,
6176         REFIID riid,
6177         void **ppvObject);
6178 
6179     ULONG (STDMETHODCALLTYPE *AddRef)(
6180         ISpLexicon* This);
6181 
6182     ULONG (STDMETHODCALLTYPE *Release)(
6183         ISpLexicon* This);
6184 
6185     /*** ISpLexicon methods ***/
6186     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
6187         ISpLexicon* This,
6188         LPCWSTR pszWord,
6189         WORD LangID,
6190         DWORD dwFlags,
6191         SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
6192 
6193     HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
6194         ISpLexicon* This,
6195         LPCWSTR pszWord,
6196         WORD LangID,
6197         SPPARTOFSPEECH ePartOfSpeech,
6198         PCSPPHONEID pszPronunciation);
6199 
6200     HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
6201         ISpLexicon* This,
6202         LPCWSTR pszWord,
6203         WORD LangID,
6204         SPPARTOFSPEECH ePartOfSpeech,
6205         PCSPPHONEID pszPronunciation);
6206 
6207     HRESULT (STDMETHODCALLTYPE *GetGeneration)(
6208         ISpLexicon* This,
6209         DWORD *pdwGeneration);
6210 
6211     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
6212         ISpLexicon* This,
6213         DWORD dwFlags,
6214         DWORD *pdwGeneration,
6215         SPWORDLIST *pWordList);
6216 
6217     HRESULT (STDMETHODCALLTYPE *GetWords)(
6218         ISpLexicon* This,
6219         DWORD dwFlags,
6220         DWORD *pdwGeneration,
6221         DWORD *pdwCookie,
6222         SPWORDLIST *pWordList);
6223 
6224     END_INTERFACE
6225 } ISpLexiconVtbl;
6226 interface ISpLexicon {
6227     CONST_VTBL ISpLexiconVtbl* lpVtbl;
6228 };
6229 
6230 #ifdef COBJMACROS
6231 #ifndef WIDL_C_INLINE_WRAPPERS
6232 /*** IUnknown methods ***/
6233 #define ISpLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6234 #define ISpLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
6235 #define ISpLexicon_Release(This) (This)->lpVtbl->Release(This)
6236 /*** ISpLexicon methods ***/
6237 #define ISpLexicon_GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList)
6238 #define ISpLexicon_AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
6239 #define ISpLexicon_RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
6240 #define ISpLexicon_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
6241 #define ISpLexicon_GetGenerationChange(This,dwFlags,pdwGeneration,pWordList) (This)->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList)
6242 #define ISpLexicon_GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList)
6243 #else
6244 /*** IUnknown methods ***/
6245 static FORCEINLINE HRESULT ISpLexicon_QueryInterface(ISpLexicon* This,REFIID riid,void **ppvObject) {
6246     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6247 }
6248 static FORCEINLINE ULONG ISpLexicon_AddRef(ISpLexicon* This) {
6249     return This->lpVtbl->AddRef(This);
6250 }
6251 static FORCEINLINE ULONG ISpLexicon_Release(ISpLexicon* This) {
6252     return This->lpVtbl->Release(This);
6253 }
6254 /*** ISpLexicon methods ***/
6255 static FORCEINLINE HRESULT ISpLexicon_GetPronunciations(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,DWORD dwFlags,SPWORDPRONUNCIATIONLIST *pWordPronunciationList) {
6256     return This->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList);
6257 }
6258 static FORCEINLINE HRESULT ISpLexicon_AddPronunciation(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
6259     return This->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
6260 }
6261 static FORCEINLINE HRESULT ISpLexicon_RemovePronunciation(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
6262     return This->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
6263 }
6264 static FORCEINLINE HRESULT ISpLexicon_GetGeneration(ISpLexicon* This,DWORD *pdwGeneration) {
6265     return This->lpVtbl->GetGeneration(This,pdwGeneration);
6266 }
6267 static FORCEINLINE HRESULT ISpLexicon_GetGenerationChange(ISpLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
6268     return This->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList);
6269 }
6270 static FORCEINLINE HRESULT ISpLexicon_GetWords(ISpLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
6271     return This->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList);
6272 }
6273 #endif
6274 #endif
6275 
6276 #endif
6277 
6278 HRESULT STDMETHODCALLTYPE ISpLexicon_GetPronunciations_Proxy(
6279     ISpLexicon* This,
6280     LPCWSTR pszWord,
6281     WORD LangID,
6282     DWORD dwFlags,
6283     SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
6284 void __RPC_STUB ISpLexicon_GetPronunciations_Stub(
6285     IRpcStubBuffer* This,
6286     IRpcChannelBuffer* pRpcChannelBuffer,
6287     PRPC_MESSAGE pRpcMessage,
6288     DWORD* pdwStubPhase);
6289 HRESULT STDMETHODCALLTYPE ISpLexicon_AddPronunciation_Proxy(
6290     ISpLexicon* This,
6291     LPCWSTR pszWord,
6292     WORD LangID,
6293     SPPARTOFSPEECH ePartOfSpeech,
6294     PCSPPHONEID pszPronunciation);
6295 void __RPC_STUB ISpLexicon_AddPronunciation_Stub(
6296     IRpcStubBuffer* This,
6297     IRpcChannelBuffer* pRpcChannelBuffer,
6298     PRPC_MESSAGE pRpcMessage,
6299     DWORD* pdwStubPhase);
6300 HRESULT STDMETHODCALLTYPE ISpLexicon_RemovePronunciation_Proxy(
6301     ISpLexicon* This,
6302     LPCWSTR pszWord,
6303     WORD LangID,
6304     SPPARTOFSPEECH ePartOfSpeech,
6305     PCSPPHONEID pszPronunciation);
6306 void __RPC_STUB ISpLexicon_RemovePronunciation_Stub(
6307     IRpcStubBuffer* This,
6308     IRpcChannelBuffer* pRpcChannelBuffer,
6309     PRPC_MESSAGE pRpcMessage,
6310     DWORD* pdwStubPhase);
6311 HRESULT STDMETHODCALLTYPE ISpLexicon_GetGeneration_Proxy(
6312     ISpLexicon* This,
6313     DWORD *pdwGeneration);
6314 void __RPC_STUB ISpLexicon_GetGeneration_Stub(
6315     IRpcStubBuffer* This,
6316     IRpcChannelBuffer* pRpcChannelBuffer,
6317     PRPC_MESSAGE pRpcMessage,
6318     DWORD* pdwStubPhase);
6319 HRESULT STDMETHODCALLTYPE ISpLexicon_GetGenerationChange_Proxy(
6320     ISpLexicon* This,
6321     DWORD dwFlags,
6322     DWORD *pdwGeneration,
6323     SPWORDLIST *pWordList);
6324 void __RPC_STUB ISpLexicon_GetGenerationChange_Stub(
6325     IRpcStubBuffer* This,
6326     IRpcChannelBuffer* pRpcChannelBuffer,
6327     PRPC_MESSAGE pRpcMessage,
6328     DWORD* pdwStubPhase);
6329 HRESULT STDMETHODCALLTYPE ISpLexicon_GetWords_Proxy(
6330     ISpLexicon* This,
6331     DWORD dwFlags,
6332     DWORD *pdwGeneration,
6333     DWORD *pdwCookie,
6334     SPWORDLIST *pWordList);
6335 void __RPC_STUB ISpLexicon_GetWords_Stub(
6336     IRpcStubBuffer* This,
6337     IRpcChannelBuffer* pRpcChannelBuffer,
6338     PRPC_MESSAGE pRpcMessage,
6339     DWORD* pdwStubPhase);
6340 
6341 #endif  /* __ISpLexicon_INTERFACE_DEFINED__ */
6342 
6343 /*****************************************************************************
6344  * ISpContainerLexicon interface
6345  */
6346 #ifndef __ISpContainerLexicon_INTERFACE_DEFINED__
6347 #define __ISpContainerLexicon_INTERFACE_DEFINED__
6348 
6349 DEFINE_GUID(IID_ISpContainerLexicon, 0x8565572f, 0xc094, 0x41cc, 0xb5,0x6e, 0x10,0xbd,0x9c,0x3f,0xf0,0x44);
6350 #if defined(__cplusplus) && !defined(CINTERFACE)
6351 MIDL_INTERFACE("8565572f-c094-41cc-b56e-10bd9c3ff044")
6352 ISpContainerLexicon : public ISpLexicon
6353 {
6354     virtual HRESULT STDMETHODCALLTYPE AddLexicon(
6355         ISpLexicon *pAddLexicon,
6356         DWORD dwFlags) = 0;
6357 
6358 };
6359 #ifdef __CRT_UUID_DECL
6360 __CRT_UUID_DECL(ISpContainerLexicon, 0x8565572f, 0xc094, 0x41cc, 0xb5,0x6e, 0x10,0xbd,0x9c,0x3f,0xf0,0x44)
6361 #endif
6362 #else
6363 typedef struct ISpContainerLexiconVtbl {
6364     BEGIN_INTERFACE
6365 
6366     /*** IUnknown methods ***/
6367     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6368         ISpContainerLexicon* This,
6369         REFIID riid,
6370         void **ppvObject);
6371 
6372     ULONG (STDMETHODCALLTYPE *AddRef)(
6373         ISpContainerLexicon* This);
6374 
6375     ULONG (STDMETHODCALLTYPE *Release)(
6376         ISpContainerLexicon* This);
6377 
6378     /*** ISpLexicon methods ***/
6379     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
6380         ISpContainerLexicon* This,
6381         LPCWSTR pszWord,
6382         WORD LangID,
6383         DWORD dwFlags,
6384         SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
6385 
6386     HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
6387         ISpContainerLexicon* This,
6388         LPCWSTR pszWord,
6389         WORD LangID,
6390         SPPARTOFSPEECH ePartOfSpeech,
6391         PCSPPHONEID pszPronunciation);
6392 
6393     HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
6394         ISpContainerLexicon* This,
6395         LPCWSTR pszWord,
6396         WORD LangID,
6397         SPPARTOFSPEECH ePartOfSpeech,
6398         PCSPPHONEID pszPronunciation);
6399 
6400     HRESULT (STDMETHODCALLTYPE *GetGeneration)(
6401         ISpContainerLexicon* This,
6402         DWORD *pdwGeneration);
6403 
6404     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
6405         ISpContainerLexicon* This,
6406         DWORD dwFlags,
6407         DWORD *pdwGeneration,
6408         SPWORDLIST *pWordList);
6409 
6410     HRESULT (STDMETHODCALLTYPE *GetWords)(
6411         ISpContainerLexicon* This,
6412         DWORD dwFlags,
6413         DWORD *pdwGeneration,
6414         DWORD *pdwCookie,
6415         SPWORDLIST *pWordList);
6416 
6417     /*** ISpContainerLexicon methods ***/
6418     HRESULT (STDMETHODCALLTYPE *AddLexicon)(
6419         ISpContainerLexicon* This,
6420         ISpLexicon *pAddLexicon,
6421         DWORD dwFlags);
6422 
6423     END_INTERFACE
6424 } ISpContainerLexiconVtbl;
6425 interface ISpContainerLexicon {
6426     CONST_VTBL ISpContainerLexiconVtbl* lpVtbl;
6427 };
6428 
6429 #ifdef COBJMACROS
6430 #ifndef WIDL_C_INLINE_WRAPPERS
6431 /*** IUnknown methods ***/
6432 #define ISpContainerLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6433 #define ISpContainerLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
6434 #define ISpContainerLexicon_Release(This) (This)->lpVtbl->Release(This)
6435 /*** ISpLexicon methods ***/
6436 #define ISpContainerLexicon_GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList)
6437 #define ISpContainerLexicon_AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
6438 #define ISpContainerLexicon_RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
6439 #define ISpContainerLexicon_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
6440 #define ISpContainerLexicon_GetGenerationChange(This,dwFlags,pdwGeneration,pWordList) (This)->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList)
6441 #define ISpContainerLexicon_GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList)
6442 /*** ISpContainerLexicon methods ***/
6443 #define ISpContainerLexicon_AddLexicon(This,pAddLexicon,dwFlags) (This)->lpVtbl->AddLexicon(This,pAddLexicon,dwFlags)
6444 #else
6445 /*** IUnknown methods ***/
6446 static FORCEINLINE HRESULT ISpContainerLexicon_QueryInterface(ISpContainerLexicon* This,REFIID riid,void **ppvObject) {
6447     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6448 }
6449 static FORCEINLINE ULONG ISpContainerLexicon_AddRef(ISpContainerLexicon* This) {
6450     return This->lpVtbl->AddRef(This);
6451 }
6452 static FORCEINLINE ULONG ISpContainerLexicon_Release(ISpContainerLexicon* This) {
6453     return This->lpVtbl->Release(This);
6454 }
6455 /*** ISpLexicon methods ***/
6456 static FORCEINLINE HRESULT ISpContainerLexicon_GetPronunciations(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,DWORD dwFlags,SPWORDPRONUNCIATIONLIST *pWordPronunciationList) {
6457     return This->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList);
6458 }
6459 static FORCEINLINE HRESULT ISpContainerLexicon_AddPronunciation(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
6460     return This->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
6461 }
6462 static FORCEINLINE HRESULT ISpContainerLexicon_RemovePronunciation(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
6463     return This->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
6464 }
6465 static FORCEINLINE HRESULT ISpContainerLexicon_GetGeneration(ISpContainerLexicon* This,DWORD *pdwGeneration) {
6466     return This->lpVtbl->GetGeneration(This,pdwGeneration);
6467 }
6468 static FORCEINLINE HRESULT ISpContainerLexicon_GetGenerationChange(ISpContainerLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
6469     return This->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList);
6470 }
6471 static FORCEINLINE HRESULT ISpContainerLexicon_GetWords(ISpContainerLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
6472     return This->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList);
6473 }
6474 /*** ISpContainerLexicon methods ***/
6475 static FORCEINLINE HRESULT ISpContainerLexicon_AddLexicon(ISpContainerLexicon* This,ISpLexicon *pAddLexicon,DWORD dwFlags) {
6476     return This->lpVtbl->AddLexicon(This,pAddLexicon,dwFlags);
6477 }
6478 #endif
6479 #endif
6480 
6481 #endif
6482 
6483 HRESULT STDMETHODCALLTYPE ISpContainerLexicon_AddLexicon_Proxy(
6484     ISpContainerLexicon* This,
6485     ISpLexicon *pAddLexicon,
6486     DWORD dwFlags);
6487 void __RPC_STUB ISpContainerLexicon_AddLexicon_Stub(
6488     IRpcStubBuffer* This,
6489     IRpcChannelBuffer* pRpcChannelBuffer,
6490     PRPC_MESSAGE pRpcMessage,
6491     DWORD* pdwStubPhase);
6492 
6493 #endif  /* __ISpContainerLexicon_INTERFACE_DEFINED__ */
6494 
6495 typedef struct SPSHORTCUTPAIR {
6496     struct SPSHORTCUTPAIR *pNextSHORTCUTPAIR;
6497     WORD LangID;
6498     SPSHORTCUTTYPE shType;
6499     LPWSTR pszDisplay;
6500     LPWSTR pszSpoken;
6501 } SPSHORTCUTPAIR;
6502 typedef struct SPSHORTCUTPAIRLIST {
6503     ULONG ulSize;
6504     BYTE *pvBuffer;
6505     SPSHORTCUTPAIR *pFirstShortcutPair;
6506 } SPSHORTCUTPAIRLIST;
6507 /*****************************************************************************
6508  * ISpShortcut interface
6509  */
6510 #ifndef __ISpShortcut_INTERFACE_DEFINED__
6511 #define __ISpShortcut_INTERFACE_DEFINED__
6512 
6513 DEFINE_GUID(IID_ISpShortcut, 0x3df681e2, 0xea56, 0x11d9, 0x8b,0xde, 0xf6,0x6b,0xad,0x1e,0x3f,0x3a);
6514 #if defined(__cplusplus) && !defined(CINTERFACE)
6515 MIDL_INTERFACE("3df681e2-ea56-11d9-8bde-f66bad1e3f3a")
6516 ISpShortcut : public IUnknown
6517 {
6518     virtual HRESULT STDMETHODCALLTYPE AddShortcut(
6519         LPCWSTR pszDisplay,
6520         WORD LangID,
6521         LPCWSTR pszSpoken,
6522         SPSHORTCUTTYPE shType) = 0;
6523 
6524     virtual HRESULT STDMETHODCALLTYPE RemoveShortcut(
6525         LPCWSTR pszDisplay,
6526         WORD LangID,
6527         LPCWSTR pszSpoken,
6528         SPSHORTCUTTYPE shType) = 0;
6529 
6530     virtual HRESULT STDMETHODCALLTYPE GetShortcuts(
6531         WORD LangID,
6532         SPSHORTCUTPAIRLIST *pShortcutpairList) = 0;
6533 
6534     virtual HRESULT STDMETHODCALLTYPE GetGeneration(
6535         DWORD *pdwGeneration) = 0;
6536 
6537     virtual HRESULT STDMETHODCALLTYPE GetWordsFromGenerationChange(
6538         DWORD *pdwGeneration,
6539         SPWORDLIST *pWordList) = 0;
6540 
6541     virtual HRESULT STDMETHODCALLTYPE GetWords(
6542         DWORD *pdwGeneration,
6543         DWORD *pdwCookie,
6544         SPWORDLIST *pWordList) = 0;
6545 
6546     virtual HRESULT STDMETHODCALLTYPE GetShortcutsForGeneration(
6547         DWORD *pdwGeneration,
6548         DWORD *pdwCookie,
6549         SPSHORTCUTPAIRLIST *pShortcutpairList) = 0;
6550 
6551     virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
6552         DWORD *pdwGeneration,
6553         SPSHORTCUTPAIRLIST *pShortcutpairList) = 0;
6554 
6555 };
6556 #ifdef __CRT_UUID_DECL
6557 __CRT_UUID_DECL(ISpShortcut, 0x3df681e2, 0xea56, 0x11d9, 0x8b,0xde, 0xf6,0x6b,0xad,0x1e,0x3f,0x3a)
6558 #endif
6559 #else
6560 typedef struct ISpShortcutVtbl {
6561     BEGIN_INTERFACE
6562 
6563     /*** IUnknown methods ***/
6564     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6565         ISpShortcut* This,
6566         REFIID riid,
6567         void **ppvObject);
6568 
6569     ULONG (STDMETHODCALLTYPE *AddRef)(
6570         ISpShortcut* This);
6571 
6572     ULONG (STDMETHODCALLTYPE *Release)(
6573         ISpShortcut* This);
6574 
6575     /*** ISpShortcut methods ***/
6576     HRESULT (STDMETHODCALLTYPE *AddShortcut)(
6577         ISpShortcut* This,
6578         LPCWSTR pszDisplay,
6579         WORD LangID,
6580         LPCWSTR pszSpoken,
6581         SPSHORTCUTTYPE shType);
6582 
6583     HRESULT (STDMETHODCALLTYPE *RemoveShortcut)(
6584         ISpShortcut* This,
6585         LPCWSTR pszDisplay,
6586         WORD LangID,
6587         LPCWSTR pszSpoken,
6588         SPSHORTCUTTYPE shType);
6589 
6590     HRESULT (STDMETHODCALLTYPE *GetShortcuts)(
6591         ISpShortcut* This,
6592         WORD LangID,
6593         SPSHORTCUTPAIRLIST *pShortcutpairList);
6594 
6595     HRESULT (STDMETHODCALLTYPE *GetGeneration)(
6596         ISpShortcut* This,
6597         DWORD *pdwGeneration);
6598 
6599     HRESULT (STDMETHODCALLTYPE *GetWordsFromGenerationChange)(
6600         ISpShortcut* This,
6601         DWORD *pdwGeneration,
6602         SPWORDLIST *pWordList);
6603 
6604     HRESULT (STDMETHODCALLTYPE *GetWords)(
6605         ISpShortcut* This,
6606         DWORD *pdwGeneration,
6607         DWORD *pdwCookie,
6608         SPWORDLIST *pWordList);
6609 
6610     HRESULT (STDMETHODCALLTYPE *GetShortcutsForGeneration)(
6611         ISpShortcut* This,
6612         DWORD *pdwGeneration,
6613         DWORD *pdwCookie,
6614         SPSHORTCUTPAIRLIST *pShortcutpairList);
6615 
6616     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
6617         ISpShortcut* This,
6618         DWORD *pdwGeneration,
6619         SPSHORTCUTPAIRLIST *pShortcutpairList);
6620 
6621     END_INTERFACE
6622 } ISpShortcutVtbl;
6623 interface ISpShortcut {
6624     CONST_VTBL ISpShortcutVtbl* lpVtbl;
6625 };
6626 
6627 #ifdef COBJMACROS
6628 #ifndef WIDL_C_INLINE_WRAPPERS
6629 /*** IUnknown methods ***/
6630 #define ISpShortcut_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6631 #define ISpShortcut_AddRef(This) (This)->lpVtbl->AddRef(This)
6632 #define ISpShortcut_Release(This) (This)->lpVtbl->Release(This)
6633 /*** ISpShortcut methods ***/
6634 #define ISpShortcut_AddShortcut(This,pszDisplay,LangID,pszSpoken,shType) (This)->lpVtbl->AddShortcut(This,pszDisplay,LangID,pszSpoken,shType)
6635 #define ISpShortcut_RemoveShortcut(This,pszDisplay,LangID,pszSpoken,shType) (This)->lpVtbl->RemoveShortcut(This,pszDisplay,LangID,pszSpoken,shType)
6636 #define ISpShortcut_GetShortcuts(This,LangID,pShortcutpairList) (This)->lpVtbl->GetShortcuts(This,LangID,pShortcutpairList)
6637 #define ISpShortcut_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
6638 #define ISpShortcut_GetWordsFromGenerationChange(This,pdwGeneration,pWordList) (This)->lpVtbl->GetWordsFromGenerationChange(This,pdwGeneration,pWordList)
6639 #define ISpShortcut_GetWords(This,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,pdwGeneration,pdwCookie,pWordList)
6640 #define ISpShortcut_GetShortcutsForGeneration(This,pdwGeneration,pdwCookie,pShortcutpairList) (This)->lpVtbl->GetShortcutsForGeneration(This,pdwGeneration,pdwCookie,pShortcutpairList)
6641 #define ISpShortcut_GetGenerationChange(This,pdwGeneration,pShortcutpairList) (This)->lpVtbl->GetGenerationChange(This,pdwGeneration,pShortcutpairList)
6642 #else
6643 /*** IUnknown methods ***/
6644 static FORCEINLINE HRESULT ISpShortcut_QueryInterface(ISpShortcut* This,REFIID riid,void **ppvObject) {
6645     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6646 }
6647 static FORCEINLINE ULONG ISpShortcut_AddRef(ISpShortcut* This) {
6648     return This->lpVtbl->AddRef(This);
6649 }
6650 static FORCEINLINE ULONG ISpShortcut_Release(ISpShortcut* This) {
6651     return This->lpVtbl->Release(This);
6652 }
6653 /*** ISpShortcut methods ***/
6654 static FORCEINLINE HRESULT ISpShortcut_AddShortcut(ISpShortcut* This,LPCWSTR pszDisplay,WORD LangID,LPCWSTR pszSpoken,SPSHORTCUTTYPE shType) {
6655     return This->lpVtbl->AddShortcut(This,pszDisplay,LangID,pszSpoken,shType);
6656 }
6657 static FORCEINLINE HRESULT ISpShortcut_RemoveShortcut(ISpShortcut* This,LPCWSTR pszDisplay,WORD LangID,LPCWSTR pszSpoken,SPSHORTCUTTYPE shType) {
6658     return This->lpVtbl->RemoveShortcut(This,pszDisplay,LangID,pszSpoken,shType);
6659 }
6660 static FORCEINLINE HRESULT ISpShortcut_GetShortcuts(ISpShortcut* This,WORD LangID,SPSHORTCUTPAIRLIST *pShortcutpairList) {
6661     return This->lpVtbl->GetShortcuts(This,LangID,pShortcutpairList);
6662 }
6663 static FORCEINLINE HRESULT ISpShortcut_GetGeneration(ISpShortcut* This,DWORD *pdwGeneration) {
6664     return This->lpVtbl->GetGeneration(This,pdwGeneration);
6665 }
6666 static FORCEINLINE HRESULT ISpShortcut_GetWordsFromGenerationChange(ISpShortcut* This,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
6667     return This->lpVtbl->GetWordsFromGenerationChange(This,pdwGeneration,pWordList);
6668 }
6669 static FORCEINLINE HRESULT ISpShortcut_GetWords(ISpShortcut* This,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
6670     return This->lpVtbl->GetWords(This,pdwGeneration,pdwCookie,pWordList);
6671 }
6672 static FORCEINLINE HRESULT ISpShortcut_GetShortcutsForGeneration(ISpShortcut* This,DWORD *pdwGeneration,DWORD *pdwCookie,SPSHORTCUTPAIRLIST *pShortcutpairList) {
6673     return This->lpVtbl->GetShortcutsForGeneration(This,pdwGeneration,pdwCookie,pShortcutpairList);
6674 }
6675 static FORCEINLINE HRESULT ISpShortcut_GetGenerationChange(ISpShortcut* This,DWORD *pdwGeneration,SPSHORTCUTPAIRLIST *pShortcutpairList) {
6676     return This->lpVtbl->GetGenerationChange(This,pdwGeneration,pShortcutpairList);
6677 }
6678 #endif
6679 #endif
6680 
6681 #endif
6682 
6683 HRESULT STDMETHODCALLTYPE ISpShortcut_AddShortcut_Proxy(
6684     ISpShortcut* This,
6685     LPCWSTR pszDisplay,
6686     WORD LangID,
6687     LPCWSTR pszSpoken,
6688     SPSHORTCUTTYPE shType);
6689 void __RPC_STUB ISpShortcut_AddShortcut_Stub(
6690     IRpcStubBuffer* This,
6691     IRpcChannelBuffer* pRpcChannelBuffer,
6692     PRPC_MESSAGE pRpcMessage,
6693     DWORD* pdwStubPhase);
6694 HRESULT STDMETHODCALLTYPE ISpShortcut_RemoveShortcut_Proxy(
6695     ISpShortcut* This,
6696     LPCWSTR pszDisplay,
6697     WORD LangID,
6698     LPCWSTR pszSpoken,
6699     SPSHORTCUTTYPE shType);
6700 void __RPC_STUB ISpShortcut_RemoveShortcut_Stub(
6701     IRpcStubBuffer* This,
6702     IRpcChannelBuffer* pRpcChannelBuffer,
6703     PRPC_MESSAGE pRpcMessage,
6704     DWORD* pdwStubPhase);
6705 HRESULT STDMETHODCALLTYPE ISpShortcut_GetShortcuts_Proxy(
6706     ISpShortcut* This,
6707     WORD LangID,
6708     SPSHORTCUTPAIRLIST *pShortcutpairList);
6709 void __RPC_STUB ISpShortcut_GetShortcuts_Stub(
6710     IRpcStubBuffer* This,
6711     IRpcChannelBuffer* pRpcChannelBuffer,
6712     PRPC_MESSAGE pRpcMessage,
6713     DWORD* pdwStubPhase);
6714 HRESULT STDMETHODCALLTYPE ISpShortcut_GetGeneration_Proxy(
6715     ISpShortcut* This,
6716     DWORD *pdwGeneration);
6717 void __RPC_STUB ISpShortcut_GetGeneration_Stub(
6718     IRpcStubBuffer* This,
6719     IRpcChannelBuffer* pRpcChannelBuffer,
6720     PRPC_MESSAGE pRpcMessage,
6721     DWORD* pdwStubPhase);
6722 HRESULT STDMETHODCALLTYPE ISpShortcut_GetWordsFromGenerationChange_Proxy(
6723     ISpShortcut* This,
6724     DWORD *pdwGeneration,
6725     SPWORDLIST *pWordList);
6726 void __RPC_STUB ISpShortcut_GetWordsFromGenerationChange_Stub(
6727     IRpcStubBuffer* This,
6728     IRpcChannelBuffer* pRpcChannelBuffer,
6729     PRPC_MESSAGE pRpcMessage,
6730     DWORD* pdwStubPhase);
6731 HRESULT STDMETHODCALLTYPE ISpShortcut_GetWords_Proxy(
6732     ISpShortcut* This,
6733     DWORD *pdwGeneration,
6734     DWORD *pdwCookie,
6735     SPWORDLIST *pWordList);
6736 void __RPC_STUB ISpShortcut_GetWords_Stub(
6737     IRpcStubBuffer* This,
6738     IRpcChannelBuffer* pRpcChannelBuffer,
6739     PRPC_MESSAGE pRpcMessage,
6740     DWORD* pdwStubPhase);
6741 HRESULT STDMETHODCALLTYPE ISpShortcut_GetShortcutsForGeneration_Proxy(
6742     ISpShortcut* This,
6743     DWORD *pdwGeneration,
6744     DWORD *pdwCookie,
6745     SPSHORTCUTPAIRLIST *pShortcutpairList);
6746 void __RPC_STUB ISpShortcut_GetShortcutsForGeneration_Stub(
6747     IRpcStubBuffer* This,
6748     IRpcChannelBuffer* pRpcChannelBuffer,
6749     PRPC_MESSAGE pRpcMessage,
6750     DWORD* pdwStubPhase);
6751 HRESULT STDMETHODCALLTYPE ISpShortcut_GetGenerationChange_Proxy(
6752     ISpShortcut* This,
6753     DWORD *pdwGeneration,
6754     SPSHORTCUTPAIRLIST *pShortcutpairList);
6755 void __RPC_STUB ISpShortcut_GetGenerationChange_Stub(
6756     IRpcStubBuffer* This,
6757     IRpcChannelBuffer* pRpcChannelBuffer,
6758     PRPC_MESSAGE pRpcMessage,
6759     DWORD* pdwStubPhase);
6760 
6761 #endif  /* __ISpShortcut_INTERFACE_DEFINED__ */
6762 
6763 /*****************************************************************************
6764  * ISpPhoneConverter interface
6765  */
6766 #ifndef __ISpPhoneConverter_INTERFACE_DEFINED__
6767 #define __ISpPhoneConverter_INTERFACE_DEFINED__
6768 
6769 DEFINE_GUID(IID_ISpPhoneConverter, 0x8445c581, 0x0cac, 0x4a38, 0xab,0xfe, 0x9b,0x2c,0xe2,0x82,0x64,0x55);
6770 #if defined(__cplusplus) && !defined(CINTERFACE)
6771 MIDL_INTERFACE("8445c581-0cac-4a38-abfe-9b2ce2826455")
6772 ISpPhoneConverter : public ISpObjectWithToken
6773 {
6774     virtual HRESULT STDMETHODCALLTYPE PhoneToId(
6775         LPCWSTR pszPhone,
6776         SPPHONEID *pId) = 0;
6777 
6778     virtual HRESULT STDMETHODCALLTYPE IdToPhone(
6779         PCSPPHONEID pId,
6780         WCHAR *pszPhone) = 0;
6781 
6782 };
6783 #ifdef __CRT_UUID_DECL
6784 __CRT_UUID_DECL(ISpPhoneConverter, 0x8445c581, 0x0cac, 0x4a38, 0xab,0xfe, 0x9b,0x2c,0xe2,0x82,0x64,0x55)
6785 #endif
6786 #else
6787 typedef struct ISpPhoneConverterVtbl {
6788     BEGIN_INTERFACE
6789 
6790     /*** IUnknown methods ***/
6791     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6792         ISpPhoneConverter* This,
6793         REFIID riid,
6794         void **ppvObject);
6795 
6796     ULONG (STDMETHODCALLTYPE *AddRef)(
6797         ISpPhoneConverter* This);
6798 
6799     ULONG (STDMETHODCALLTYPE *Release)(
6800         ISpPhoneConverter* This);
6801 
6802     /*** ISpObjectWithToken methods ***/
6803     HRESULT (STDMETHODCALLTYPE *SetObjectToken)(
6804         ISpPhoneConverter* This,
6805         ISpObjectToken *pToken);
6806 
6807     HRESULT (STDMETHODCALLTYPE *GetObjectToken)(
6808         ISpPhoneConverter* This,
6809         ISpObjectToken **ppToken);
6810 
6811     /*** ISpPhoneConverter methods ***/
6812     HRESULT (STDMETHODCALLTYPE *PhoneToId)(
6813         ISpPhoneConverter* This,
6814         LPCWSTR pszPhone,
6815         SPPHONEID *pId);
6816 
6817     HRESULT (STDMETHODCALLTYPE *IdToPhone)(
6818         ISpPhoneConverter* This,
6819         PCSPPHONEID pId,
6820         WCHAR *pszPhone);
6821 
6822     END_INTERFACE
6823 } ISpPhoneConverterVtbl;
6824 interface ISpPhoneConverter {
6825     CONST_VTBL ISpPhoneConverterVtbl* lpVtbl;
6826 };
6827 
6828 #ifdef COBJMACROS
6829 #ifndef WIDL_C_INLINE_WRAPPERS
6830 /*** IUnknown methods ***/
6831 #define ISpPhoneConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6832 #define ISpPhoneConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
6833 #define ISpPhoneConverter_Release(This) (This)->lpVtbl->Release(This)
6834 /*** ISpObjectWithToken methods ***/
6835 #define ISpPhoneConverter_SetObjectToken(This,pToken) (This)->lpVtbl->SetObjectToken(This,pToken)
6836 #define ISpPhoneConverter_GetObjectToken(This,ppToken) (This)->lpVtbl->GetObjectToken(This,ppToken)
6837 /*** ISpPhoneConverter methods ***/
6838 #define ISpPhoneConverter_PhoneToId(This,pszPhone,pId) (This)->lpVtbl->PhoneToId(This,pszPhone,pId)
6839 #define ISpPhoneConverter_IdToPhone(This,pId,pszPhone) (This)->lpVtbl->IdToPhone(This,pId,pszPhone)
6840 #else
6841 /*** IUnknown methods ***/
6842 static FORCEINLINE HRESULT ISpPhoneConverter_QueryInterface(ISpPhoneConverter* This,REFIID riid,void **ppvObject) {
6843     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6844 }
6845 static FORCEINLINE ULONG ISpPhoneConverter_AddRef(ISpPhoneConverter* This) {
6846     return This->lpVtbl->AddRef(This);
6847 }
6848 static FORCEINLINE ULONG ISpPhoneConverter_Release(ISpPhoneConverter* This) {
6849     return This->lpVtbl->Release(This);
6850 }
6851 /*** ISpObjectWithToken methods ***/
6852 static FORCEINLINE HRESULT ISpPhoneConverter_SetObjectToken(ISpPhoneConverter* This,ISpObjectToken *pToken) {
6853     return This->lpVtbl->SetObjectToken(This,pToken);
6854 }
6855 static FORCEINLINE HRESULT ISpPhoneConverter_GetObjectToken(ISpPhoneConverter* This,ISpObjectToken **ppToken) {
6856     return This->lpVtbl->GetObjectToken(This,ppToken);
6857 }
6858 /*** ISpPhoneConverter methods ***/
6859 static FORCEINLINE HRESULT ISpPhoneConverter_PhoneToId(ISpPhoneConverter* This,LPCWSTR pszPhone,SPPHONEID *pId) {
6860     return This->lpVtbl->PhoneToId(This,pszPhone,pId);
6861 }
6862 static FORCEINLINE HRESULT ISpPhoneConverter_IdToPhone(ISpPhoneConverter* This,PCSPPHONEID pId,WCHAR *pszPhone) {
6863     return This->lpVtbl->IdToPhone(This,pId,pszPhone);
6864 }
6865 #endif
6866 #endif
6867 
6868 #endif
6869 
6870 HRESULT STDMETHODCALLTYPE ISpPhoneConverter_PhoneToId_Proxy(
6871     ISpPhoneConverter* This,
6872     LPCWSTR pszPhone,
6873     SPPHONEID *pId);
6874 void __RPC_STUB ISpPhoneConverter_PhoneToId_Stub(
6875     IRpcStubBuffer* This,
6876     IRpcChannelBuffer* pRpcChannelBuffer,
6877     PRPC_MESSAGE pRpcMessage,
6878     DWORD* pdwStubPhase);
6879 HRESULT STDMETHODCALLTYPE ISpPhoneConverter_IdToPhone_Proxy(
6880     ISpPhoneConverter* This,
6881     PCSPPHONEID pId,
6882     WCHAR *pszPhone);
6883 void __RPC_STUB ISpPhoneConverter_IdToPhone_Stub(
6884     IRpcStubBuffer* This,
6885     IRpcChannelBuffer* pRpcChannelBuffer,
6886     PRPC_MESSAGE pRpcMessage,
6887     DWORD* pdwStubPhase);
6888 
6889 #endif  /* __ISpPhoneConverter_INTERFACE_DEFINED__ */
6890 
6891 /*****************************************************************************
6892  * ISpPhoneticAlphabetConverter interface
6893  */
6894 #ifndef __ISpPhoneticAlphabetConverter_INTERFACE_DEFINED__
6895 #define __ISpPhoneticAlphabetConverter_INTERFACE_DEFINED__
6896 
6897 DEFINE_GUID(IID_ISpPhoneticAlphabetConverter, 0x133adcd4, 0x19b4, 0x4020, 0x9f,0xdc, 0x84,0x2e,0x78,0x25,0x3b,0x17);
6898 #if defined(__cplusplus) && !defined(CINTERFACE)
6899 MIDL_INTERFACE("133adcd4-19b4-4020-9fdc-842e78253b17")
6900 ISpPhoneticAlphabetConverter : public IUnknown
6901 {
6902     virtual HRESULT STDMETHODCALLTYPE GetLangId(
6903         WORD *pLangID) = 0;
6904 
6905     virtual HRESULT STDMETHODCALLTYPE SetLangId(
6906         WORD LangID) = 0;
6907 
6908     virtual HRESULT STDMETHODCALLTYPE SAPI2UPS(
6909         const SPPHONEID *pszSAPIId,
6910         SPPHONEID *pszUPSId,
6911         DWORD cMaxLength) = 0;
6912 
6913     virtual HRESULT STDMETHODCALLTYPE UPS2SAPI(
6914         const SPPHONEID *pszUPSId,
6915         SPPHONEID *pszSAPIId,
6916         DWORD cMaxLength) = 0;
6917 
6918     virtual HRESULT STDMETHODCALLTYPE GetMaxConvertLength(
6919         DWORD cSrcLength,
6920         WINBOOL bSAPI2UPS,
6921         DWORD *pcMaxDestLength) = 0;
6922 
6923 };
6924 #ifdef __CRT_UUID_DECL
6925 __CRT_UUID_DECL(ISpPhoneticAlphabetConverter, 0x133adcd4, 0x19b4, 0x4020, 0x9f,0xdc, 0x84,0x2e,0x78,0x25,0x3b,0x17)
6926 #endif
6927 #else
6928 typedef struct ISpPhoneticAlphabetConverterVtbl {
6929     BEGIN_INTERFACE
6930 
6931     /*** IUnknown methods ***/
6932     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6933         ISpPhoneticAlphabetConverter* This,
6934         REFIID riid,
6935         void **ppvObject);
6936 
6937     ULONG (STDMETHODCALLTYPE *AddRef)(
6938         ISpPhoneticAlphabetConverter* This);
6939 
6940     ULONG (STDMETHODCALLTYPE *Release)(
6941         ISpPhoneticAlphabetConverter* This);
6942 
6943     /*** ISpPhoneticAlphabetConverter methods ***/
6944     HRESULT (STDMETHODCALLTYPE *GetLangId)(
6945         ISpPhoneticAlphabetConverter* This,
6946         WORD *pLangID);
6947 
6948     HRESULT (STDMETHODCALLTYPE *SetLangId)(
6949         ISpPhoneticAlphabetConverter* This,
6950         WORD LangID);
6951 
6952     HRESULT (STDMETHODCALLTYPE *SAPI2UPS)(
6953         ISpPhoneticAlphabetConverter* This,
6954         const SPPHONEID *pszSAPIId,
6955         SPPHONEID *pszUPSId,
6956         DWORD cMaxLength);
6957 
6958     HRESULT (STDMETHODCALLTYPE *UPS2SAPI)(
6959         ISpPhoneticAlphabetConverter* This,
6960         const SPPHONEID *pszUPSId,
6961         SPPHONEID *pszSAPIId,
6962         DWORD cMaxLength);
6963 
6964     HRESULT (STDMETHODCALLTYPE *GetMaxConvertLength)(
6965         ISpPhoneticAlphabetConverter* This,
6966         DWORD cSrcLength,
6967         WINBOOL bSAPI2UPS,
6968         DWORD *pcMaxDestLength);
6969 
6970     END_INTERFACE
6971 } ISpPhoneticAlphabetConverterVtbl;
6972 interface ISpPhoneticAlphabetConverter {
6973     CONST_VTBL ISpPhoneticAlphabetConverterVtbl* lpVtbl;
6974 };
6975 
6976 #ifdef COBJMACROS
6977 #ifndef WIDL_C_INLINE_WRAPPERS
6978 /*** IUnknown methods ***/
6979 #define ISpPhoneticAlphabetConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6980 #define ISpPhoneticAlphabetConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
6981 #define ISpPhoneticAlphabetConverter_Release(This) (This)->lpVtbl->Release(This)
6982 /*** ISpPhoneticAlphabetConverter methods ***/
6983 #define ISpPhoneticAlphabetConverter_GetLangId(This,pLangID) (This)->lpVtbl->GetLangId(This,pLangID)
6984 #define ISpPhoneticAlphabetConverter_SetLangId(This,LangID) (This)->lpVtbl->SetLangId(This,LangID)
6985 #define ISpPhoneticAlphabetConverter_SAPI2UPS(This,pszSAPIId,pszUPSId,cMaxLength) (This)->lpVtbl->SAPI2UPS(This,pszSAPIId,pszUPSId,cMaxLength)
6986 #define ISpPhoneticAlphabetConverter_UPS2SAPI(This,pszUPSId,pszSAPIId,cMaxLength) (This)->lpVtbl->UPS2SAPI(This,pszUPSId,pszSAPIId,cMaxLength)
6987 #define ISpPhoneticAlphabetConverter_GetMaxConvertLength(This,cSrcLength,bSAPI2UPS,pcMaxDestLength) (This)->lpVtbl->GetMaxConvertLength(This,cSrcLength,bSAPI2UPS,pcMaxDestLength)
6988 #else
6989 /*** IUnknown methods ***/
6990 static FORCEINLINE HRESULT ISpPhoneticAlphabetConverter_QueryInterface(ISpPhoneticAlphabetConverter* This,REFIID riid,void **ppvObject) {
6991     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6992 }
6993 static FORCEINLINE ULONG ISpPhoneticAlphabetConverter_AddRef(ISpPhoneticAlphabetConverter* This) {
6994     return This->lpVtbl->AddRef(This);
6995 }
6996 static FORCEINLINE ULONG ISpPhoneticAlphabetConverter_Release(ISpPhoneticAlphabetConverter* This) {
6997     return This->lpVtbl->Release(This);
6998 }
6999 /*** ISpPhoneticAlphabetConverter methods ***/
7000 static FORCEINLINE HRESULT ISpPhoneticAlphabetConverter_GetLangId(ISpPhoneticAlphabetConverter* This,WORD *pLangID) {
7001     return This->lpVtbl->GetLangId(This,pLangID);
7002 }
7003 static FORCEINLINE HRESULT ISpPhoneticAlphabetConverter_SetLangId(ISpPhoneticAlphabetConverter* This,WORD LangID) {
7004     return This->lpVtbl->SetLangId(This,LangID);
7005 }
7006 static FORCEINLINE HRESULT ISpPhoneticAlphabetConverter_SAPI2UPS(ISpPhoneticAlphabetConverter* This,const SPPHONEID *pszSAPIId,SPPHONEID *pszUPSId,DWORD cMaxLength) {
7007     return This->lpVtbl->SAPI2UPS(This,pszSAPIId,pszUPSId,cMaxLength);
7008 }
7009 static FORCEINLINE HRESULT ISpPhoneticAlphabetConverter_UPS2SAPI(ISpPhoneticAlphabetConverter* This,const SPPHONEID *pszUPSId,SPPHONEID *pszSAPIId,DWORD cMaxLength) {
7010     return This->lpVtbl->UPS2SAPI(This,pszUPSId,pszSAPIId,cMaxLength);
7011 }
7012 static FORCEINLINE HRESULT ISpPhoneticAlphabetConverter_GetMaxConvertLength(ISpPhoneticAlphabetConverter* This,DWORD cSrcLength,WINBOOL bSAPI2UPS,DWORD *pcMaxDestLength) {
7013     return This->lpVtbl->GetMaxConvertLength(This,cSrcLength,bSAPI2UPS,pcMaxDestLength);
7014 }
7015 #endif
7016 #endif
7017 
7018 #endif
7019 
7020 HRESULT STDMETHODCALLTYPE ISpPhoneticAlphabetConverter_GetLangId_Proxy(
7021     ISpPhoneticAlphabetConverter* This,
7022     WORD *pLangID);
7023 void __RPC_STUB ISpPhoneticAlphabetConverter_GetLangId_Stub(
7024     IRpcStubBuffer* This,
7025     IRpcChannelBuffer* pRpcChannelBuffer,
7026     PRPC_MESSAGE pRpcMessage,
7027     DWORD* pdwStubPhase);
7028 HRESULT STDMETHODCALLTYPE ISpPhoneticAlphabetConverter_SetLangId_Proxy(
7029     ISpPhoneticAlphabetConverter* This,
7030     WORD LangID);
7031 void __RPC_STUB ISpPhoneticAlphabetConverter_SetLangId_Stub(
7032     IRpcStubBuffer* This,
7033     IRpcChannelBuffer* pRpcChannelBuffer,
7034     PRPC_MESSAGE pRpcMessage,
7035     DWORD* pdwStubPhase);
7036 HRESULT STDMETHODCALLTYPE ISpPhoneticAlphabetConverter_SAPI2UPS_Proxy(
7037     ISpPhoneticAlphabetConverter* This,
7038     const SPPHONEID *pszSAPIId,
7039     SPPHONEID *pszUPSId,
7040     DWORD cMaxLength);
7041 void __RPC_STUB ISpPhoneticAlphabetConverter_SAPI2UPS_Stub(
7042     IRpcStubBuffer* This,
7043     IRpcChannelBuffer* pRpcChannelBuffer,
7044     PRPC_MESSAGE pRpcMessage,
7045     DWORD* pdwStubPhase);
7046 HRESULT STDMETHODCALLTYPE ISpPhoneticAlphabetConverter_UPS2SAPI_Proxy(
7047     ISpPhoneticAlphabetConverter* This,
7048     const SPPHONEID *pszUPSId,
7049     SPPHONEID *pszSAPIId,
7050     DWORD cMaxLength);
7051 void __RPC_STUB ISpPhoneticAlphabetConverter_UPS2SAPI_Stub(
7052     IRpcStubBuffer* This,
7053     IRpcChannelBuffer* pRpcChannelBuffer,
7054     PRPC_MESSAGE pRpcMessage,
7055     DWORD* pdwStubPhase);
7056 HRESULT STDMETHODCALLTYPE ISpPhoneticAlphabetConverter_GetMaxConvertLength_Proxy(
7057     ISpPhoneticAlphabetConverter* This,
7058     DWORD cSrcLength,
7059     WINBOOL bSAPI2UPS,
7060     DWORD *pcMaxDestLength);
7061 void __RPC_STUB ISpPhoneticAlphabetConverter_GetMaxConvertLength_Stub(
7062     IRpcStubBuffer* This,
7063     IRpcChannelBuffer* pRpcChannelBuffer,
7064     PRPC_MESSAGE pRpcMessage,
7065     DWORD* pdwStubPhase);
7066 
7067 #endif  /* __ISpPhoneticAlphabetConverter_INTERFACE_DEFINED__ */
7068 
7069 /*****************************************************************************
7070  * ISpPhoneticAlphabetSelection interface
7071  */
7072 #ifndef __ISpPhoneticAlphabetSelection_INTERFACE_DEFINED__
7073 #define __ISpPhoneticAlphabetSelection_INTERFACE_DEFINED__
7074 
7075 DEFINE_GUID(IID_ISpPhoneticAlphabetSelection, 0xb2745efd, 0x42ce, 0x48ca, 0x81,0xf1, 0xa9,0x6e,0x02,0x53,0x8a,0x90);
7076 #if defined(__cplusplus) && !defined(CINTERFACE)
7077 MIDL_INTERFACE("b2745efd-42ce-48ca-81f1-a96e02538a90")
7078 ISpPhoneticAlphabetSelection : public IUnknown
7079 {
7080     virtual HRESULT STDMETHODCALLTYPE IsAlphabetUPS(
7081         WINBOOL *pfIsUPS) = 0;
7082 
7083     virtual HRESULT STDMETHODCALLTYPE SetAlphabetToUPS(
7084         WINBOOL fForceUPS) = 0;
7085 
7086 };
7087 #ifdef __CRT_UUID_DECL
7088 __CRT_UUID_DECL(ISpPhoneticAlphabetSelection, 0xb2745efd, 0x42ce, 0x48ca, 0x81,0xf1, 0xa9,0x6e,0x02,0x53,0x8a,0x90)
7089 #endif
7090 #else
7091 typedef struct ISpPhoneticAlphabetSelectionVtbl {
7092     BEGIN_INTERFACE
7093 
7094     /*** IUnknown methods ***/
7095     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7096         ISpPhoneticAlphabetSelection* This,
7097         REFIID riid,
7098         void **ppvObject);
7099 
7100     ULONG (STDMETHODCALLTYPE *AddRef)(
7101         ISpPhoneticAlphabetSelection* This);
7102 
7103     ULONG (STDMETHODCALLTYPE *Release)(
7104         ISpPhoneticAlphabetSelection* This);
7105 
7106     /*** ISpPhoneticAlphabetSelection methods ***/
7107     HRESULT (STDMETHODCALLTYPE *IsAlphabetUPS)(
7108         ISpPhoneticAlphabetSelection* This,
7109         WINBOOL *pfIsUPS);
7110 
7111     HRESULT (STDMETHODCALLTYPE *SetAlphabetToUPS)(
7112         ISpPhoneticAlphabetSelection* This,
7113         WINBOOL fForceUPS);
7114 
7115     END_INTERFACE
7116 } ISpPhoneticAlphabetSelectionVtbl;
7117 interface ISpPhoneticAlphabetSelection {
7118     CONST_VTBL ISpPhoneticAlphabetSelectionVtbl* lpVtbl;
7119 };
7120 
7121 #ifdef COBJMACROS
7122 #ifndef WIDL_C_INLINE_WRAPPERS
7123 /*** IUnknown methods ***/
7124 #define ISpPhoneticAlphabetSelection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7125 #define ISpPhoneticAlphabetSelection_AddRef(This) (This)->lpVtbl->AddRef(This)
7126 #define ISpPhoneticAlphabetSelection_Release(This) (This)->lpVtbl->Release(This)
7127 /*** ISpPhoneticAlphabetSelection methods ***/
7128 #define ISpPhoneticAlphabetSelection_IsAlphabetUPS(This,pfIsUPS) (This)->lpVtbl->IsAlphabetUPS(This,pfIsUPS)
7129 #define ISpPhoneticAlphabetSelection_SetAlphabetToUPS(This,fForceUPS) (This)->lpVtbl->SetAlphabetToUPS(This,fForceUPS)
7130 #else
7131 /*** IUnknown methods ***/
7132 static FORCEINLINE HRESULT ISpPhoneticAlphabetSelection_QueryInterface(ISpPhoneticAlphabetSelection* This,REFIID riid,void **ppvObject) {
7133     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7134 }
7135 static FORCEINLINE ULONG ISpPhoneticAlphabetSelection_AddRef(ISpPhoneticAlphabetSelection* This) {
7136     return This->lpVtbl->AddRef(This);
7137 }
7138 static FORCEINLINE ULONG ISpPhoneticAlphabetSelection_Release(ISpPhoneticAlphabetSelection* This) {
7139     return This->lpVtbl->Release(This);
7140 }
7141 /*** ISpPhoneticAlphabetSelection methods ***/
7142 static FORCEINLINE HRESULT ISpPhoneticAlphabetSelection_IsAlphabetUPS(ISpPhoneticAlphabetSelection* This,WINBOOL *pfIsUPS) {
7143     return This->lpVtbl->IsAlphabetUPS(This,pfIsUPS);
7144 }
7145 static FORCEINLINE HRESULT ISpPhoneticAlphabetSelection_SetAlphabetToUPS(ISpPhoneticAlphabetSelection* This,WINBOOL fForceUPS) {
7146     return This->lpVtbl->SetAlphabetToUPS(This,fForceUPS);
7147 }
7148 #endif
7149 #endif
7150 
7151 #endif
7152 
7153 HRESULT STDMETHODCALLTYPE ISpPhoneticAlphabetSelection_IsAlphabetUPS_Proxy(
7154     ISpPhoneticAlphabetSelection* This,
7155     WINBOOL *pfIsUPS);
7156 void __RPC_STUB ISpPhoneticAlphabetSelection_IsAlphabetUPS_Stub(
7157     IRpcStubBuffer* This,
7158     IRpcChannelBuffer* pRpcChannelBuffer,
7159     PRPC_MESSAGE pRpcMessage,
7160     DWORD* pdwStubPhase);
7161 HRESULT STDMETHODCALLTYPE ISpPhoneticAlphabetSelection_SetAlphabetToUPS_Proxy(
7162     ISpPhoneticAlphabetSelection* This,
7163     WINBOOL fForceUPS);
7164 void __RPC_STUB ISpPhoneticAlphabetSelection_SetAlphabetToUPS_Stub(
7165     IRpcStubBuffer* This,
7166     IRpcChannelBuffer* pRpcChannelBuffer,
7167     PRPC_MESSAGE pRpcMessage,
7168     DWORD* pdwStubPhase);
7169 
7170 #endif  /* __ISpPhoneticAlphabetSelection_INTERFACE_DEFINED__ */
7171 
7172 typedef struct SPVPITCH {
7173     LONG MiddleAdj;
7174     LONG RangeAdj;
7175 } SPVPITCH;
7176 typedef struct SPVCONTEXT {
7177     LPCWSTR pCategory;
7178     LPCWSTR pBefore;
7179     LPCWSTR pAfter;
7180 } SPVCONTEXT;
7181 typedef struct SPVSTATE {
7182     SPVACTIONS eAction;
7183     WORD LangID;
7184     WORD wReserved;
7185     LONG EmphAdj;
7186     LONG RateAdj;
7187     ULONG Volume;
7188     SPVPITCH PitchAdj;
7189     ULONG SilenceMSecs;
7190     SPPHONEID *pPhoneIds;
7191     SPPARTOFSPEECH ePartOfSpeech;
7192     SPVCONTEXT Context;
7193 } SPVSTATE;
7194 typedef struct SPVOICESTATUS {
7195     ULONG ulCurrentStream;
7196     ULONG ulLastStreamQueued;
7197     HRESULT hrLastResult;
7198     DWORD dwRunningState;
7199     ULONG ulInputWordPos;
7200     ULONG ulInputWordLen;
7201     ULONG ulInputSentPos;
7202     ULONG ulInputSentLen;
7203     LONG lBookmarkId;
7204     SPPHONEID PhonemeId;
7205     SPVISEMES VisemeId;
7206     DWORD dwReserved1;
7207     DWORD dwReserved2;
7208 } SPVOICESTATUS;
7209 typedef enum SPEAKFLAGS {
7210     SPF_DEFAULT = 0,
7211     SPF_ASYNC = 1,
7212     SPF_PURGEBEFORESPEAK = 2,
7213     SPF_IS_FILENAME = 4,
7214     SPF_IS_XML = 8,
7215     SPF_IS_NOT_XML = 0x10,
7216     SPF_PERSIST_XML = 0x20,
7217     SPF_NLP_SPEAK_PUNC = 0x40,
7218     SPF_PARSE_SAPI = 0x80,
7219     SPF_PARSE_SSML = 0x100,
7220     SPF_PARSE_AUTODETECT = 0,
7221     SPF_NLP_MASK = SPF_NLP_SPEAK_PUNC,
7222     SPF_PARSE_MASK = SPF_PARSE_SAPI | SPF_PARSE_SSML,
7223     SPF_VOICE_MASK = ((((((SPF_ASYNC | SPF_PURGEBEFORESPEAK) | SPF_IS_FILENAME) | SPF_IS_XML) | SPF_IS_NOT_XML) | SPF_NLP_MASK) | SPF_PERSIST_XML) | SPF_PARSE_MASK,
7224     SPF_UNUSED_FLAGS = ~SPF_VOICE_MASK
7225 } SPEAKFLAGS;
7226 /*****************************************************************************
7227  * ISpVoice interface
7228  */
7229 #ifndef __ISpVoice_INTERFACE_DEFINED__
7230 #define __ISpVoice_INTERFACE_DEFINED__
7231 
7232 DEFINE_GUID(IID_ISpVoice, 0x6c44df74, 0x72b9, 0x4992, 0xa1,0xec, 0xef,0x99,0x6e,0x04,0x22,0xd4);
7233 #if defined(__cplusplus) && !defined(CINTERFACE)
7234 MIDL_INTERFACE("6c44df74-72b9-4992-a1ec-ef996e0422d4")
7235 ISpVoice : public ISpEventSource
7236 {
7237     virtual HRESULT STDMETHODCALLTYPE SetOutput(
7238         IUnknown *pUnkOutput,
7239         WINBOOL fAllowFormatChanges) = 0;
7240 
7241     virtual HRESULT STDMETHODCALLTYPE GetOutputObjectToken(
7242         ISpObjectToken **ppObjectToken) = 0;
7243 
7244     virtual HRESULT STDMETHODCALLTYPE GetOutputStream(
7245         ISpStreamFormat **ppStream) = 0;
7246 
7247     virtual HRESULT STDMETHODCALLTYPE Pause(
7248         ) = 0;
7249 
7250     virtual HRESULT STDMETHODCALLTYPE Resume(
7251         ) = 0;
7252 
7253     virtual HRESULT STDMETHODCALLTYPE SetVoice(
7254         ISpObjectToken *pToken) = 0;
7255 
7256     virtual HRESULT STDMETHODCALLTYPE GetVoice(
7257         ISpObjectToken **ppToken) = 0;
7258 
7259     virtual HRESULT STDMETHODCALLTYPE Speak(
7260         LPCWSTR pwcs,
7261         DWORD dwFlags,
7262         ULONG *pulStreamNumber) = 0;
7263 
7264     virtual HRESULT STDMETHODCALLTYPE SpeakStream(
7265         IStream *pStream,
7266         DWORD dwFlags,
7267         ULONG *pulStreamNumber) = 0;
7268 
7269     virtual HRESULT STDMETHODCALLTYPE GetStatus(
7270         SPVOICESTATUS *pStatus,
7271         LPWSTR *ppszLastBookmark) = 0;
7272 
7273     virtual HRESULT STDMETHODCALLTYPE Skip(
7274         LPCWSTR pItemType,
7275         LONG lNumItems,
7276         ULONG *pulNumSkipped) = 0;
7277 
7278     virtual HRESULT STDMETHODCALLTYPE SetPriority(
7279         SPVPRIORITY ePriority) = 0;
7280 
7281     virtual HRESULT STDMETHODCALLTYPE GetPriority(
7282         SPVPRIORITY *pePriority) = 0;
7283 
7284     virtual HRESULT STDMETHODCALLTYPE SetAlertBoundary(
7285         SPEVENTENUM eBoundary) = 0;
7286 
7287     virtual HRESULT STDMETHODCALLTYPE GetAlertBoundary(
7288         SPEVENTENUM *peBoundary) = 0;
7289 
7290     virtual HRESULT STDMETHODCALLTYPE SetRate(
7291         LONG RateAdjust) = 0;
7292 
7293     virtual HRESULT STDMETHODCALLTYPE GetRate(
7294         LONG *pRateAdjust) = 0;
7295 
7296     virtual HRESULT STDMETHODCALLTYPE SetVolume(
7297         USHORT usVolume) = 0;
7298 
7299     virtual HRESULT STDMETHODCALLTYPE GetVolume(
7300         USHORT *pusVolume) = 0;
7301 
7302     virtual HRESULT STDMETHODCALLTYPE WaitUntilDone(
7303         ULONG msTimeout) = 0;
7304 
7305     virtual HRESULT STDMETHODCALLTYPE SetSyncSpeakTimeout(
7306         ULONG msTimeout) = 0;
7307 
7308     virtual HRESULT STDMETHODCALLTYPE GetSyncSpeakTimeout(
7309         ULONG *pmsTimeout) = 0;
7310 
7311     virtual HANDLE STDMETHODCALLTYPE SpeakCompleteEvent(
7312         ) = 0;
7313 
7314     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
7315         LPCWSTR pszTypeOfUI,
7316         void *pvExtraData,
7317         ULONG cbExtraData,
7318         WINBOOL *pfSupported) = 0;
7319 
7320     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
7321         HWND hwndParent,
7322         LPCWSTR pszTitle,
7323         LPCWSTR pszTypeOfUI,
7324         void *pvExtraData,
7325         ULONG cbExtraData) = 0;
7326 
7327 };
7328 #ifdef __CRT_UUID_DECL
7329 __CRT_UUID_DECL(ISpVoice, 0x6c44df74, 0x72b9, 0x4992, 0xa1,0xec, 0xef,0x99,0x6e,0x04,0x22,0xd4)
7330 #endif
7331 #else
7332 typedef struct ISpVoiceVtbl {
7333     BEGIN_INTERFACE
7334 
7335     /*** IUnknown methods ***/
7336     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7337         ISpVoice* This,
7338         REFIID riid,
7339         void **ppvObject);
7340 
7341     ULONG (STDMETHODCALLTYPE *AddRef)(
7342         ISpVoice* This);
7343 
7344     ULONG (STDMETHODCALLTYPE *Release)(
7345         ISpVoice* This);
7346 
7347     /*** ISpNotifySource methods ***/
7348     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
7349         ISpVoice* This,
7350         ISpNotifySink *pNotifySink);
7351 
7352     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
7353         ISpVoice* This,
7354         HWND hWnd,
7355         UINT Msg,
7356         WPARAM wParam,
7357         LPARAM lParam);
7358 
7359     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
7360         ISpVoice* This,
7361         SPNOTIFYCALLBACK *pfnCallback,
7362         WPARAM wParam,
7363         LPARAM lParam);
7364 
7365     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
7366         ISpVoice* This,
7367         ISpNotifyCallback *pSpCallback,
7368         WPARAM wParam,
7369         LPARAM lParam);
7370 
7371     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
7372         ISpVoice* This);
7373 
7374     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
7375         ISpVoice* This,
7376         DWORD dwMilliseconds);
7377 
7378     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
7379         ISpVoice* This);
7380 
7381     /*** ISpEventSource methods ***/
7382     HRESULT (STDMETHODCALLTYPE *SetInterest)(
7383         ISpVoice* This,
7384         ULONGLONG ullEventInterest,
7385         ULONGLONG ullQueuedInterest);
7386 
7387     HRESULT (STDMETHODCALLTYPE *GetEvents)(
7388         ISpVoice* This,
7389         ULONG ulCount,
7390         SPEVENT *pEventArray,
7391         ULONG *pulFetched);
7392 
7393     HRESULT (STDMETHODCALLTYPE *GetInfo)(
7394         ISpVoice* This,
7395         SPEVENTSOURCEINFO *pInfo);
7396 
7397     /*** ISpVoice methods ***/
7398     HRESULT (STDMETHODCALLTYPE *SetOutput)(
7399         ISpVoice* This,
7400         IUnknown *pUnkOutput,
7401         WINBOOL fAllowFormatChanges);
7402 
7403     HRESULT (STDMETHODCALLTYPE *GetOutputObjectToken)(
7404         ISpVoice* This,
7405         ISpObjectToken **ppObjectToken);
7406 
7407     HRESULT (STDMETHODCALLTYPE *GetOutputStream)(
7408         ISpVoice* This,
7409         ISpStreamFormat **ppStream);
7410 
7411     HRESULT (STDMETHODCALLTYPE *Pause)(
7412         ISpVoice* This);
7413 
7414     HRESULT (STDMETHODCALLTYPE *Resume)(
7415         ISpVoice* This);
7416 
7417     HRESULT (STDMETHODCALLTYPE *SetVoice)(
7418         ISpVoice* This,
7419         ISpObjectToken *pToken);
7420 
7421     HRESULT (STDMETHODCALLTYPE *GetVoice)(
7422         ISpVoice* This,
7423         ISpObjectToken **ppToken);
7424 
7425     HRESULT (STDMETHODCALLTYPE *Speak)(
7426         ISpVoice* This,
7427         LPCWSTR pwcs,
7428         DWORD dwFlags,
7429         ULONG *pulStreamNumber);
7430 
7431     HRESULT (STDMETHODCALLTYPE *SpeakStream)(
7432         ISpVoice* This,
7433         IStream *pStream,
7434         DWORD dwFlags,
7435         ULONG *pulStreamNumber);
7436 
7437     HRESULT (STDMETHODCALLTYPE *GetStatus)(
7438         ISpVoice* This,
7439         SPVOICESTATUS *pStatus,
7440         LPWSTR *ppszLastBookmark);
7441 
7442     HRESULT (STDMETHODCALLTYPE *Skip)(
7443         ISpVoice* This,
7444         LPCWSTR pItemType,
7445         LONG lNumItems,
7446         ULONG *pulNumSkipped);
7447 
7448     HRESULT (STDMETHODCALLTYPE *SetPriority)(
7449         ISpVoice* This,
7450         SPVPRIORITY ePriority);
7451 
7452     HRESULT (STDMETHODCALLTYPE *GetPriority)(
7453         ISpVoice* This,
7454         SPVPRIORITY *pePriority);
7455 
7456     HRESULT (STDMETHODCALLTYPE *SetAlertBoundary)(
7457         ISpVoice* This,
7458         SPEVENTENUM eBoundary);
7459 
7460     HRESULT (STDMETHODCALLTYPE *GetAlertBoundary)(
7461         ISpVoice* This,
7462         SPEVENTENUM *peBoundary);
7463 
7464     HRESULT (STDMETHODCALLTYPE *SetRate)(
7465         ISpVoice* This,
7466         LONG RateAdjust);
7467 
7468     HRESULT (STDMETHODCALLTYPE *GetRate)(
7469         ISpVoice* This,
7470         LONG *pRateAdjust);
7471 
7472     HRESULT (STDMETHODCALLTYPE *SetVolume)(
7473         ISpVoice* This,
7474         USHORT usVolume);
7475 
7476     HRESULT (STDMETHODCALLTYPE *GetVolume)(
7477         ISpVoice* This,
7478         USHORT *pusVolume);
7479 
7480     HRESULT (STDMETHODCALLTYPE *WaitUntilDone)(
7481         ISpVoice* This,
7482         ULONG msTimeout);
7483 
7484     HRESULT (STDMETHODCALLTYPE *SetSyncSpeakTimeout)(
7485         ISpVoice* This,
7486         ULONG msTimeout);
7487 
7488     HRESULT (STDMETHODCALLTYPE *GetSyncSpeakTimeout)(
7489         ISpVoice* This,
7490         ULONG *pmsTimeout);
7491 
7492     HANDLE (STDMETHODCALLTYPE *SpeakCompleteEvent)(
7493         ISpVoice* This);
7494 
7495     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
7496         ISpVoice* This,
7497         LPCWSTR pszTypeOfUI,
7498         void *pvExtraData,
7499         ULONG cbExtraData,
7500         WINBOOL *pfSupported);
7501 
7502     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
7503         ISpVoice* This,
7504         HWND hwndParent,
7505         LPCWSTR pszTitle,
7506         LPCWSTR pszTypeOfUI,
7507         void *pvExtraData,
7508         ULONG cbExtraData);
7509 
7510     END_INTERFACE
7511 } ISpVoiceVtbl;
7512 interface ISpVoice {
7513     CONST_VTBL ISpVoiceVtbl* lpVtbl;
7514 };
7515 
7516 #ifdef COBJMACROS
7517 #ifndef WIDL_C_INLINE_WRAPPERS
7518 /*** IUnknown methods ***/
7519 #define ISpVoice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7520 #define ISpVoice_AddRef(This) (This)->lpVtbl->AddRef(This)
7521 #define ISpVoice_Release(This) (This)->lpVtbl->Release(This)
7522 /*** ISpNotifySource methods ***/
7523 #define ISpVoice_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
7524 #define ISpVoice_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
7525 #define ISpVoice_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
7526 #define ISpVoice_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
7527 #define ISpVoice_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
7528 #define ISpVoice_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
7529 #define ISpVoice_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
7530 /*** ISpEventSource methods ***/
7531 #define ISpVoice_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
7532 #define ISpVoice_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
7533 #define ISpVoice_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
7534 /*** ISpVoice methods ***/
7535 #define ISpVoice_SetOutput(This,pUnkOutput,fAllowFormatChanges) (This)->lpVtbl->SetOutput(This,pUnkOutput,fAllowFormatChanges)
7536 #define ISpVoice_GetOutputObjectToken(This,ppObjectToken) (This)->lpVtbl->GetOutputObjectToken(This,ppObjectToken)
7537 #define ISpVoice_GetOutputStream(This,ppStream) (This)->lpVtbl->GetOutputStream(This,ppStream)
7538 #define ISpVoice_Pause(This) (This)->lpVtbl->Pause(This)
7539 #define ISpVoice_Resume(This) (This)->lpVtbl->Resume(This)
7540 #define ISpVoice_SetVoice(This,pToken) (This)->lpVtbl->SetVoice(This,pToken)
7541 #define ISpVoice_GetVoice(This,ppToken) (This)->lpVtbl->GetVoice(This,ppToken)
7542 #define ISpVoice_Speak(This,pwcs,dwFlags,pulStreamNumber) (This)->lpVtbl->Speak(This,pwcs,dwFlags,pulStreamNumber)
7543 #define ISpVoice_SpeakStream(This,pStream,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakStream(This,pStream,dwFlags,pulStreamNumber)
7544 #define ISpVoice_GetStatus(This,pStatus,ppszLastBookmark) (This)->lpVtbl->GetStatus(This,pStatus,ppszLastBookmark)
7545 #define ISpVoice_Skip(This,pItemType,lNumItems,pulNumSkipped) (This)->lpVtbl->Skip(This,pItemType,lNumItems,pulNumSkipped)
7546 #define ISpVoice_SetPriority(This,ePriority) (This)->lpVtbl->SetPriority(This,ePriority)
7547 #define ISpVoice_GetPriority(This,pePriority) (This)->lpVtbl->GetPriority(This,pePriority)
7548 #define ISpVoice_SetAlertBoundary(This,eBoundary) (This)->lpVtbl->SetAlertBoundary(This,eBoundary)
7549 #define ISpVoice_GetAlertBoundary(This,peBoundary) (This)->lpVtbl->GetAlertBoundary(This,peBoundary)
7550 #define ISpVoice_SetRate(This,RateAdjust) (This)->lpVtbl->SetRate(This,RateAdjust)
7551 #define ISpVoice_GetRate(This,pRateAdjust) (This)->lpVtbl->GetRate(This,pRateAdjust)
7552 #define ISpVoice_SetVolume(This,usVolume) (This)->lpVtbl->SetVolume(This,usVolume)
7553 #define ISpVoice_GetVolume(This,pusVolume) (This)->lpVtbl->GetVolume(This,pusVolume)
7554 #define ISpVoice_WaitUntilDone(This,msTimeout) (This)->lpVtbl->WaitUntilDone(This,msTimeout)
7555 #define ISpVoice_SetSyncSpeakTimeout(This,msTimeout) (This)->lpVtbl->SetSyncSpeakTimeout(This,msTimeout)
7556 #define ISpVoice_GetSyncSpeakTimeout(This,pmsTimeout) (This)->lpVtbl->GetSyncSpeakTimeout(This,pmsTimeout)
7557 #define ISpVoice_SpeakCompleteEvent(This) (This)->lpVtbl->SpeakCompleteEvent(This)
7558 #define ISpVoice_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported)
7559 #define ISpVoice_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData)
7560 #else
7561 /*** IUnknown methods ***/
7562 static FORCEINLINE HRESULT ISpVoice_QueryInterface(ISpVoice* This,REFIID riid,void **ppvObject) {
7563     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7564 }
7565 static FORCEINLINE ULONG ISpVoice_AddRef(ISpVoice* This) {
7566     return This->lpVtbl->AddRef(This);
7567 }
7568 static FORCEINLINE ULONG ISpVoice_Release(ISpVoice* This) {
7569     return This->lpVtbl->Release(This);
7570 }
7571 /*** ISpNotifySource methods ***/
7572 static FORCEINLINE HRESULT ISpVoice_SetNotifySink(ISpVoice* This,ISpNotifySink *pNotifySink) {
7573     return This->lpVtbl->SetNotifySink(This,pNotifySink);
7574 }
7575 static FORCEINLINE HRESULT ISpVoice_SetNotifyWindowMessage(ISpVoice* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
7576     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
7577 }
7578 static FORCEINLINE HRESULT ISpVoice_SetNotifyCallbackFunction(ISpVoice* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
7579     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
7580 }
7581 static FORCEINLINE HRESULT ISpVoice_SetNotifyCallbackInterface(ISpVoice* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
7582     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
7583 }
7584 static FORCEINLINE HRESULT ISpVoice_SetNotifyWin32Event(ISpVoice* This) {
7585     return This->lpVtbl->SetNotifyWin32Event(This);
7586 }
7587 static FORCEINLINE HRESULT ISpVoice_WaitForNotifyEvent(ISpVoice* This,DWORD dwMilliseconds) {
7588     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
7589 }
7590 static FORCEINLINE HANDLE ISpVoice_GetNotifyEventHandle(ISpVoice* This) {
7591     return This->lpVtbl->GetNotifyEventHandle(This);
7592 }
7593 /*** ISpEventSource methods ***/
7594 static FORCEINLINE HRESULT ISpVoice_SetInterest(ISpVoice* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
7595     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
7596 }
7597 static FORCEINLINE HRESULT ISpVoice_GetEvents(ISpVoice* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
7598     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
7599 }
7600 static FORCEINLINE HRESULT ISpVoice_GetInfo(ISpVoice* This,SPEVENTSOURCEINFO *pInfo) {
7601     return This->lpVtbl->GetInfo(This,pInfo);
7602 }
7603 /*** ISpVoice methods ***/
7604 static FORCEINLINE HRESULT ISpVoice_SetOutput(ISpVoice* This,IUnknown *pUnkOutput,WINBOOL fAllowFormatChanges) {
7605     return This->lpVtbl->SetOutput(This,pUnkOutput,fAllowFormatChanges);
7606 }
7607 static FORCEINLINE HRESULT ISpVoice_GetOutputObjectToken(ISpVoice* This,ISpObjectToken **ppObjectToken) {
7608     return This->lpVtbl->GetOutputObjectToken(This,ppObjectToken);
7609 }
7610 static FORCEINLINE HRESULT ISpVoice_GetOutputStream(ISpVoice* This,ISpStreamFormat **ppStream) {
7611     return This->lpVtbl->GetOutputStream(This,ppStream);
7612 }
7613 static FORCEINLINE HRESULT ISpVoice_Pause(ISpVoice* This) {
7614     return This->lpVtbl->Pause(This);
7615 }
7616 static FORCEINLINE HRESULT ISpVoice_Resume(ISpVoice* This) {
7617     return This->lpVtbl->Resume(This);
7618 }
7619 static FORCEINLINE HRESULT ISpVoice_SetVoice(ISpVoice* This,ISpObjectToken *pToken) {
7620     return This->lpVtbl->SetVoice(This,pToken);
7621 }
7622 static FORCEINLINE HRESULT ISpVoice_GetVoice(ISpVoice* This,ISpObjectToken **ppToken) {
7623     return This->lpVtbl->GetVoice(This,ppToken);
7624 }
7625 static FORCEINLINE HRESULT ISpVoice_Speak(ISpVoice* This,LPCWSTR pwcs,DWORD dwFlags,ULONG *pulStreamNumber) {
7626     return This->lpVtbl->Speak(This,pwcs,dwFlags,pulStreamNumber);
7627 }
7628 static FORCEINLINE HRESULT ISpVoice_SpeakStream(ISpVoice* This,IStream *pStream,DWORD dwFlags,ULONG *pulStreamNumber) {
7629     return This->lpVtbl->SpeakStream(This,pStream,dwFlags,pulStreamNumber);
7630 }
7631 static FORCEINLINE HRESULT ISpVoice_GetStatus(ISpVoice* This,SPVOICESTATUS *pStatus,LPWSTR *ppszLastBookmark) {
7632     return This->lpVtbl->GetStatus(This,pStatus,ppszLastBookmark);
7633 }
7634 static FORCEINLINE HRESULT ISpVoice_Skip(ISpVoice* This,LPCWSTR pItemType,LONG lNumItems,ULONG *pulNumSkipped) {
7635     return This->lpVtbl->Skip(This,pItemType,lNumItems,pulNumSkipped);
7636 }
7637 static FORCEINLINE HRESULT ISpVoice_SetPriority(ISpVoice* This,SPVPRIORITY ePriority) {
7638     return This->lpVtbl->SetPriority(This,ePriority);
7639 }
7640 static FORCEINLINE HRESULT ISpVoice_GetPriority(ISpVoice* This,SPVPRIORITY *pePriority) {
7641     return This->lpVtbl->GetPriority(This,pePriority);
7642 }
7643 static FORCEINLINE HRESULT ISpVoice_SetAlertBoundary(ISpVoice* This,SPEVENTENUM eBoundary) {
7644     return This->lpVtbl->SetAlertBoundary(This,eBoundary);
7645 }
7646 static FORCEINLINE HRESULT ISpVoice_GetAlertBoundary(ISpVoice* This,SPEVENTENUM *peBoundary) {
7647     return This->lpVtbl->GetAlertBoundary(This,peBoundary);
7648 }
7649 static FORCEINLINE HRESULT ISpVoice_SetRate(ISpVoice* This,LONG RateAdjust) {
7650     return This->lpVtbl->SetRate(This,RateAdjust);
7651 }
7652 static FORCEINLINE HRESULT ISpVoice_GetRate(ISpVoice* This,LONG *pRateAdjust) {
7653     return This->lpVtbl->GetRate(This,pRateAdjust);
7654 }
7655 static FORCEINLINE HRESULT ISpVoice_SetVolume(ISpVoice* This,USHORT usVolume) {
7656     return This->lpVtbl->SetVolume(This,usVolume);
7657 }
7658 static FORCEINLINE HRESULT ISpVoice_GetVolume(ISpVoice* This,USHORT *pusVolume) {
7659     return This->lpVtbl->GetVolume(This,pusVolume);
7660 }
7661 static FORCEINLINE HRESULT ISpVoice_WaitUntilDone(ISpVoice* This,ULONG msTimeout) {
7662     return This->lpVtbl->WaitUntilDone(This,msTimeout);
7663 }
7664 static FORCEINLINE HRESULT ISpVoice_SetSyncSpeakTimeout(ISpVoice* This,ULONG msTimeout) {
7665     return This->lpVtbl->SetSyncSpeakTimeout(This,msTimeout);
7666 }
7667 static FORCEINLINE HRESULT ISpVoice_GetSyncSpeakTimeout(ISpVoice* This,ULONG *pmsTimeout) {
7668     return This->lpVtbl->GetSyncSpeakTimeout(This,pmsTimeout);
7669 }
7670 static FORCEINLINE HANDLE ISpVoice_SpeakCompleteEvent(ISpVoice* This) {
7671     return This->lpVtbl->SpeakCompleteEvent(This);
7672 }
7673 static FORCEINLINE HRESULT ISpVoice_IsUISupported(ISpVoice* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,WINBOOL *pfSupported) {
7674     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported);
7675 }
7676 static FORCEINLINE HRESULT ISpVoice_DisplayUI(ISpVoice* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData) {
7677     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData);
7678 }
7679 #endif
7680 #endif
7681 
7682 #endif
7683 
7684 HRESULT STDMETHODCALLTYPE ISpVoice_SetOutput_Proxy(
7685     ISpVoice* This,
7686     IUnknown *pUnkOutput,
7687     WINBOOL fAllowFormatChanges);
7688 void __RPC_STUB ISpVoice_SetOutput_Stub(
7689     IRpcStubBuffer* This,
7690     IRpcChannelBuffer* pRpcChannelBuffer,
7691     PRPC_MESSAGE pRpcMessage,
7692     DWORD* pdwStubPhase);
7693 HRESULT STDMETHODCALLTYPE ISpVoice_GetOutputObjectToken_Proxy(
7694     ISpVoice* This,
7695     ISpObjectToken **ppObjectToken);
7696 void __RPC_STUB ISpVoice_GetOutputObjectToken_Stub(
7697     IRpcStubBuffer* This,
7698     IRpcChannelBuffer* pRpcChannelBuffer,
7699     PRPC_MESSAGE pRpcMessage,
7700     DWORD* pdwStubPhase);
7701 HRESULT STDMETHODCALLTYPE ISpVoice_GetOutputStream_Proxy(
7702     ISpVoice* This,
7703     ISpStreamFormat **ppStream);
7704 void __RPC_STUB ISpVoice_GetOutputStream_Stub(
7705     IRpcStubBuffer* This,
7706     IRpcChannelBuffer* pRpcChannelBuffer,
7707     PRPC_MESSAGE pRpcMessage,
7708     DWORD* pdwStubPhase);
7709 HRESULT STDMETHODCALLTYPE ISpVoice_Pause_Proxy(
7710     ISpVoice* This);
7711 void __RPC_STUB ISpVoice_Pause_Stub(
7712     IRpcStubBuffer* This,
7713     IRpcChannelBuffer* pRpcChannelBuffer,
7714     PRPC_MESSAGE pRpcMessage,
7715     DWORD* pdwStubPhase);
7716 HRESULT STDMETHODCALLTYPE ISpVoice_Resume_Proxy(
7717     ISpVoice* This);
7718 void __RPC_STUB ISpVoice_Resume_Stub(
7719     IRpcStubBuffer* This,
7720     IRpcChannelBuffer* pRpcChannelBuffer,
7721     PRPC_MESSAGE pRpcMessage,
7722     DWORD* pdwStubPhase);
7723 HRESULT STDMETHODCALLTYPE ISpVoice_SetVoice_Proxy(
7724     ISpVoice* This,
7725     ISpObjectToken *pToken);
7726 void __RPC_STUB ISpVoice_SetVoice_Stub(
7727     IRpcStubBuffer* This,
7728     IRpcChannelBuffer* pRpcChannelBuffer,
7729     PRPC_MESSAGE pRpcMessage,
7730     DWORD* pdwStubPhase);
7731 HRESULT STDMETHODCALLTYPE ISpVoice_GetVoice_Proxy(
7732     ISpVoice* This,
7733     ISpObjectToken **ppToken);
7734 void __RPC_STUB ISpVoice_GetVoice_Stub(
7735     IRpcStubBuffer* This,
7736     IRpcChannelBuffer* pRpcChannelBuffer,
7737     PRPC_MESSAGE pRpcMessage,
7738     DWORD* pdwStubPhase);
7739 HRESULT STDMETHODCALLTYPE ISpVoice_Speak_Proxy(
7740     ISpVoice* This,
7741     LPCWSTR pwcs,
7742     DWORD dwFlags,
7743     ULONG *pulStreamNumber);
7744 void __RPC_STUB ISpVoice_Speak_Stub(
7745     IRpcStubBuffer* This,
7746     IRpcChannelBuffer* pRpcChannelBuffer,
7747     PRPC_MESSAGE pRpcMessage,
7748     DWORD* pdwStubPhase);
7749 HRESULT STDMETHODCALLTYPE ISpVoice_SpeakStream_Proxy(
7750     ISpVoice* This,
7751     IStream *pStream,
7752     DWORD dwFlags,
7753     ULONG *pulStreamNumber);
7754 void __RPC_STUB ISpVoice_SpeakStream_Stub(
7755     IRpcStubBuffer* This,
7756     IRpcChannelBuffer* pRpcChannelBuffer,
7757     PRPC_MESSAGE pRpcMessage,
7758     DWORD* pdwStubPhase);
7759 HRESULT STDMETHODCALLTYPE ISpVoice_GetStatus_Proxy(
7760     ISpVoice* This,
7761     SPVOICESTATUS *pStatus,
7762     LPWSTR *ppszLastBookmark);
7763 void __RPC_STUB ISpVoice_GetStatus_Stub(
7764     IRpcStubBuffer* This,
7765     IRpcChannelBuffer* pRpcChannelBuffer,
7766     PRPC_MESSAGE pRpcMessage,
7767     DWORD* pdwStubPhase);
7768 HRESULT STDMETHODCALLTYPE ISpVoice_Skip_Proxy(
7769     ISpVoice* This,
7770     LPCWSTR pItemType,
7771     LONG lNumItems,
7772     ULONG *pulNumSkipped);
7773 void __RPC_STUB ISpVoice_Skip_Stub(
7774     IRpcStubBuffer* This,
7775     IRpcChannelBuffer* pRpcChannelBuffer,
7776     PRPC_MESSAGE pRpcMessage,
7777     DWORD* pdwStubPhase);
7778 HRESULT STDMETHODCALLTYPE ISpVoice_SetPriority_Proxy(
7779     ISpVoice* This,
7780     SPVPRIORITY ePriority);
7781 void __RPC_STUB ISpVoice_SetPriority_Stub(
7782     IRpcStubBuffer* This,
7783     IRpcChannelBuffer* pRpcChannelBuffer,
7784     PRPC_MESSAGE pRpcMessage,
7785     DWORD* pdwStubPhase);
7786 HRESULT STDMETHODCALLTYPE ISpVoice_GetPriority_Proxy(
7787     ISpVoice* This,
7788     SPVPRIORITY *pePriority);
7789 void __RPC_STUB ISpVoice_GetPriority_Stub(
7790     IRpcStubBuffer* This,
7791     IRpcChannelBuffer* pRpcChannelBuffer,
7792     PRPC_MESSAGE pRpcMessage,
7793     DWORD* pdwStubPhase);
7794 HRESULT STDMETHODCALLTYPE ISpVoice_SetAlertBoundary_Proxy(
7795     ISpVoice* This,
7796     SPEVENTENUM eBoundary);
7797 void __RPC_STUB ISpVoice_SetAlertBoundary_Stub(
7798     IRpcStubBuffer* This,
7799     IRpcChannelBuffer* pRpcChannelBuffer,
7800     PRPC_MESSAGE pRpcMessage,
7801     DWORD* pdwStubPhase);
7802 HRESULT STDMETHODCALLTYPE ISpVoice_GetAlertBoundary_Proxy(
7803     ISpVoice* This,
7804     SPEVENTENUM *peBoundary);
7805 void __RPC_STUB ISpVoice_GetAlertBoundary_Stub(
7806     IRpcStubBuffer* This,
7807     IRpcChannelBuffer* pRpcChannelBuffer,
7808     PRPC_MESSAGE pRpcMessage,
7809     DWORD* pdwStubPhase);
7810 HRESULT STDMETHODCALLTYPE ISpVoice_SetRate_Proxy(
7811     ISpVoice* This,
7812     LONG RateAdjust);
7813 void __RPC_STUB ISpVoice_SetRate_Stub(
7814     IRpcStubBuffer* This,
7815     IRpcChannelBuffer* pRpcChannelBuffer,
7816     PRPC_MESSAGE pRpcMessage,
7817     DWORD* pdwStubPhase);
7818 HRESULT STDMETHODCALLTYPE ISpVoice_GetRate_Proxy(
7819     ISpVoice* This,
7820     LONG *pRateAdjust);
7821 void __RPC_STUB ISpVoice_GetRate_Stub(
7822     IRpcStubBuffer* This,
7823     IRpcChannelBuffer* pRpcChannelBuffer,
7824     PRPC_MESSAGE pRpcMessage,
7825     DWORD* pdwStubPhase);
7826 HRESULT STDMETHODCALLTYPE ISpVoice_SetVolume_Proxy(
7827     ISpVoice* This,
7828     USHORT usVolume);
7829 void __RPC_STUB ISpVoice_SetVolume_Stub(
7830     IRpcStubBuffer* This,
7831     IRpcChannelBuffer* pRpcChannelBuffer,
7832     PRPC_MESSAGE pRpcMessage,
7833     DWORD* pdwStubPhase);
7834 HRESULT STDMETHODCALLTYPE ISpVoice_GetVolume_Proxy(
7835     ISpVoice* This,
7836     USHORT *pusVolume);
7837 void __RPC_STUB ISpVoice_GetVolume_Stub(
7838     IRpcStubBuffer* This,
7839     IRpcChannelBuffer* pRpcChannelBuffer,
7840     PRPC_MESSAGE pRpcMessage,
7841     DWORD* pdwStubPhase);
7842 HRESULT STDMETHODCALLTYPE ISpVoice_WaitUntilDone_Proxy(
7843     ISpVoice* This,
7844     ULONG msTimeout);
7845 void __RPC_STUB ISpVoice_WaitUntilDone_Stub(
7846     IRpcStubBuffer* This,
7847     IRpcChannelBuffer* pRpcChannelBuffer,
7848     PRPC_MESSAGE pRpcMessage,
7849     DWORD* pdwStubPhase);
7850 HRESULT STDMETHODCALLTYPE ISpVoice_SetSyncSpeakTimeout_Proxy(
7851     ISpVoice* This,
7852     ULONG msTimeout);
7853 void __RPC_STUB ISpVoice_SetSyncSpeakTimeout_Stub(
7854     IRpcStubBuffer* This,
7855     IRpcChannelBuffer* pRpcChannelBuffer,
7856     PRPC_MESSAGE pRpcMessage,
7857     DWORD* pdwStubPhase);
7858 HRESULT STDMETHODCALLTYPE ISpVoice_GetSyncSpeakTimeout_Proxy(
7859     ISpVoice* This,
7860     ULONG *pmsTimeout);
7861 void __RPC_STUB ISpVoice_GetSyncSpeakTimeout_Stub(
7862     IRpcStubBuffer* This,
7863     IRpcChannelBuffer* pRpcChannelBuffer,
7864     PRPC_MESSAGE pRpcMessage,
7865     DWORD* pdwStubPhase);
7866 
7867 #endif  /* __ISpVoice_INTERFACE_DEFINED__ */
7868 
7869 /*****************************************************************************
7870  * ISpPhrase interface
7871  */
7872 #ifndef __ISpPhrase_INTERFACE_DEFINED__
7873 #define __ISpPhrase_INTERFACE_DEFINED__
7874 
7875 DEFINE_GUID(IID_ISpPhrase, 0x1a5c0354, 0xb621, 0x4b5a, 0x87,0x91, 0xd3,0x06,0xed,0x37,0x9e,0x53);
7876 #if defined(__cplusplus) && !defined(CINTERFACE)
7877 MIDL_INTERFACE("1a5c0354-b621-4b5a-8791-d306ed379e53")
7878 ISpPhrase : public IUnknown
7879 {
7880     virtual HRESULT STDMETHODCALLTYPE GetPhrase(
7881         SPPHRASE **ppCoMemPhrase) = 0;
7882 
7883     virtual HRESULT STDMETHODCALLTYPE GetSerializedPhrase(
7884         SPSERIALIZEDPHRASE **ppCoMemPhrase) = 0;
7885 
7886     virtual HRESULT STDMETHODCALLTYPE GetText(
7887         ULONG ulStart,
7888         ULONG ulCount,
7889         WINBOOL fUseTextReplacements,
7890         LPWSTR *ppszCoMemText,
7891         BYTE *pbDisplayAttributes) = 0;
7892 
7893     virtual HRESULT STDMETHODCALLTYPE Discard(
7894         DWORD dwValueTypes) = 0;
7895 
7896 };
7897 #ifdef __CRT_UUID_DECL
7898 __CRT_UUID_DECL(ISpPhrase, 0x1a5c0354, 0xb621, 0x4b5a, 0x87,0x91, 0xd3,0x06,0xed,0x37,0x9e,0x53)
7899 #endif
7900 #else
7901 typedef struct ISpPhraseVtbl {
7902     BEGIN_INTERFACE
7903 
7904     /*** IUnknown methods ***/
7905     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7906         ISpPhrase* This,
7907         REFIID riid,
7908         void **ppvObject);
7909 
7910     ULONG (STDMETHODCALLTYPE *AddRef)(
7911         ISpPhrase* This);
7912 
7913     ULONG (STDMETHODCALLTYPE *Release)(
7914         ISpPhrase* This);
7915 
7916     /*** ISpPhrase methods ***/
7917     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
7918         ISpPhrase* This,
7919         SPPHRASE **ppCoMemPhrase);
7920 
7921     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
7922         ISpPhrase* This,
7923         SPSERIALIZEDPHRASE **ppCoMemPhrase);
7924 
7925     HRESULT (STDMETHODCALLTYPE *GetText)(
7926         ISpPhrase* This,
7927         ULONG ulStart,
7928         ULONG ulCount,
7929         WINBOOL fUseTextReplacements,
7930         LPWSTR *ppszCoMemText,
7931         BYTE *pbDisplayAttributes);
7932 
7933     HRESULT (STDMETHODCALLTYPE *Discard)(
7934         ISpPhrase* This,
7935         DWORD dwValueTypes);
7936 
7937     END_INTERFACE
7938 } ISpPhraseVtbl;
7939 interface ISpPhrase {
7940     CONST_VTBL ISpPhraseVtbl* lpVtbl;
7941 };
7942 
7943 #ifdef COBJMACROS
7944 #ifndef WIDL_C_INLINE_WRAPPERS
7945 /*** IUnknown methods ***/
7946 #define ISpPhrase_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7947 #define ISpPhrase_AddRef(This) (This)->lpVtbl->AddRef(This)
7948 #define ISpPhrase_Release(This) (This)->lpVtbl->Release(This)
7949 /*** ISpPhrase methods ***/
7950 #define ISpPhrase_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
7951 #define ISpPhrase_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
7952 #define ISpPhrase_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
7953 #define ISpPhrase_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
7954 #else
7955 /*** IUnknown methods ***/
7956 static FORCEINLINE HRESULT ISpPhrase_QueryInterface(ISpPhrase* This,REFIID riid,void **ppvObject) {
7957     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7958 }
7959 static FORCEINLINE ULONG ISpPhrase_AddRef(ISpPhrase* This) {
7960     return This->lpVtbl->AddRef(This);
7961 }
7962 static FORCEINLINE ULONG ISpPhrase_Release(ISpPhrase* This) {
7963     return This->lpVtbl->Release(This);
7964 }
7965 /*** ISpPhrase methods ***/
7966 static FORCEINLINE HRESULT ISpPhrase_GetPhrase(ISpPhrase* This,SPPHRASE **ppCoMemPhrase) {
7967     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
7968 }
7969 static FORCEINLINE HRESULT ISpPhrase_GetSerializedPhrase(ISpPhrase* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
7970     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
7971 }
7972 static FORCEINLINE HRESULT ISpPhrase_GetText(ISpPhrase* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
7973     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
7974 }
7975 static FORCEINLINE HRESULT ISpPhrase_Discard(ISpPhrase* This,DWORD dwValueTypes) {
7976     return This->lpVtbl->Discard(This,dwValueTypes);
7977 }
7978 #endif
7979 #endif
7980 
7981 #endif
7982 
7983 HRESULT STDMETHODCALLTYPE ISpPhrase_GetPhrase_Proxy(
7984     ISpPhrase* This,
7985     SPPHRASE **ppCoMemPhrase);
7986 void __RPC_STUB ISpPhrase_GetPhrase_Stub(
7987     IRpcStubBuffer* This,
7988     IRpcChannelBuffer* pRpcChannelBuffer,
7989     PRPC_MESSAGE pRpcMessage,
7990     DWORD* pdwStubPhase);
7991 HRESULT STDMETHODCALLTYPE ISpPhrase_GetSerializedPhrase_Proxy(
7992     ISpPhrase* This,
7993     SPSERIALIZEDPHRASE **ppCoMemPhrase);
7994 void __RPC_STUB ISpPhrase_GetSerializedPhrase_Stub(
7995     IRpcStubBuffer* This,
7996     IRpcChannelBuffer* pRpcChannelBuffer,
7997     PRPC_MESSAGE pRpcMessage,
7998     DWORD* pdwStubPhase);
7999 HRESULT STDMETHODCALLTYPE ISpPhrase_GetText_Proxy(
8000     ISpPhrase* This,
8001     ULONG ulStart,
8002     ULONG ulCount,
8003     WINBOOL fUseTextReplacements,
8004     LPWSTR *ppszCoMemText,
8005     BYTE *pbDisplayAttributes);
8006 void __RPC_STUB ISpPhrase_GetText_Stub(
8007     IRpcStubBuffer* This,
8008     IRpcChannelBuffer* pRpcChannelBuffer,
8009     PRPC_MESSAGE pRpcMessage,
8010     DWORD* pdwStubPhase);
8011 HRESULT STDMETHODCALLTYPE ISpPhrase_Discard_Proxy(
8012     ISpPhrase* This,
8013     DWORD dwValueTypes);
8014 void __RPC_STUB ISpPhrase_Discard_Stub(
8015     IRpcStubBuffer* This,
8016     IRpcChannelBuffer* pRpcChannelBuffer,
8017     PRPC_MESSAGE pRpcMessage,
8018     DWORD* pdwStubPhase);
8019 
8020 #endif  /* __ISpPhrase_INTERFACE_DEFINED__ */
8021 
8022 /*****************************************************************************
8023  * ISpPhraseAlt interface
8024  */
8025 #ifndef __ISpPhraseAlt_INTERFACE_DEFINED__
8026 #define __ISpPhraseAlt_INTERFACE_DEFINED__
8027 
8028 DEFINE_GUID(IID_ISpPhraseAlt, 0x8fcebc98, 0x4e49, 0x4067, 0x9c,0x6c, 0xd8,0x6a,0x0e,0x09,0x2e,0x3d);
8029 #if defined(__cplusplus) && !defined(CINTERFACE)
8030 MIDL_INTERFACE("8fcebc98-4e49-4067-9c6c-d86a0e092e3d")
8031 ISpPhraseAlt : public ISpPhrase
8032 {
8033     virtual HRESULT STDMETHODCALLTYPE GetAltInfo(
8034         ISpPhrase **ppParent,
8035         ULONG *pulStartElementInParent,
8036         ULONG *pcElementsInParent,
8037         ULONG *pcElementsInAlt) = 0;
8038 
8039     virtual HRESULT STDMETHODCALLTYPE Commit(
8040         ) = 0;
8041 
8042 };
8043 #ifdef __CRT_UUID_DECL
8044 __CRT_UUID_DECL(ISpPhraseAlt, 0x8fcebc98, 0x4e49, 0x4067, 0x9c,0x6c, 0xd8,0x6a,0x0e,0x09,0x2e,0x3d)
8045 #endif
8046 #else
8047 typedef struct ISpPhraseAltVtbl {
8048     BEGIN_INTERFACE
8049 
8050     /*** IUnknown methods ***/
8051     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8052         ISpPhraseAlt* This,
8053         REFIID riid,
8054         void **ppvObject);
8055 
8056     ULONG (STDMETHODCALLTYPE *AddRef)(
8057         ISpPhraseAlt* This);
8058 
8059     ULONG (STDMETHODCALLTYPE *Release)(
8060         ISpPhraseAlt* This);
8061 
8062     /*** ISpPhrase methods ***/
8063     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
8064         ISpPhraseAlt* This,
8065         SPPHRASE **ppCoMemPhrase);
8066 
8067     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
8068         ISpPhraseAlt* This,
8069         SPSERIALIZEDPHRASE **ppCoMemPhrase);
8070 
8071     HRESULT (STDMETHODCALLTYPE *GetText)(
8072         ISpPhraseAlt* This,
8073         ULONG ulStart,
8074         ULONG ulCount,
8075         WINBOOL fUseTextReplacements,
8076         LPWSTR *ppszCoMemText,
8077         BYTE *pbDisplayAttributes);
8078 
8079     HRESULT (STDMETHODCALLTYPE *Discard)(
8080         ISpPhraseAlt* This,
8081         DWORD dwValueTypes);
8082 
8083     /*** ISpPhraseAlt methods ***/
8084     HRESULT (STDMETHODCALLTYPE *GetAltInfo)(
8085         ISpPhraseAlt* This,
8086         ISpPhrase **ppParent,
8087         ULONG *pulStartElementInParent,
8088         ULONG *pcElementsInParent,
8089         ULONG *pcElementsInAlt);
8090 
8091     HRESULT (STDMETHODCALLTYPE *Commit)(
8092         ISpPhraseAlt* This);
8093 
8094     END_INTERFACE
8095 } ISpPhraseAltVtbl;
8096 interface ISpPhraseAlt {
8097     CONST_VTBL ISpPhraseAltVtbl* lpVtbl;
8098 };
8099 
8100 #ifdef COBJMACROS
8101 #ifndef WIDL_C_INLINE_WRAPPERS
8102 /*** IUnknown methods ***/
8103 #define ISpPhraseAlt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8104 #define ISpPhraseAlt_AddRef(This) (This)->lpVtbl->AddRef(This)
8105 #define ISpPhraseAlt_Release(This) (This)->lpVtbl->Release(This)
8106 /*** ISpPhrase methods ***/
8107 #define ISpPhraseAlt_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
8108 #define ISpPhraseAlt_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
8109 #define ISpPhraseAlt_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
8110 #define ISpPhraseAlt_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
8111 /*** ISpPhraseAlt methods ***/
8112 #define ISpPhraseAlt_GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt) (This)->lpVtbl->GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt)
8113 #define ISpPhraseAlt_Commit(This) (This)->lpVtbl->Commit(This)
8114 #else
8115 /*** IUnknown methods ***/
8116 static FORCEINLINE HRESULT ISpPhraseAlt_QueryInterface(ISpPhraseAlt* This,REFIID riid,void **ppvObject) {
8117     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8118 }
8119 static FORCEINLINE ULONG ISpPhraseAlt_AddRef(ISpPhraseAlt* This) {
8120     return This->lpVtbl->AddRef(This);
8121 }
8122 static FORCEINLINE ULONG ISpPhraseAlt_Release(ISpPhraseAlt* This) {
8123     return This->lpVtbl->Release(This);
8124 }
8125 /*** ISpPhrase methods ***/
8126 static FORCEINLINE HRESULT ISpPhraseAlt_GetPhrase(ISpPhraseAlt* This,SPPHRASE **ppCoMemPhrase) {
8127     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
8128 }
8129 static FORCEINLINE HRESULT ISpPhraseAlt_GetSerializedPhrase(ISpPhraseAlt* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
8130     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
8131 }
8132 static FORCEINLINE HRESULT ISpPhraseAlt_GetText(ISpPhraseAlt* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
8133     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
8134 }
8135 static FORCEINLINE HRESULT ISpPhraseAlt_Discard(ISpPhraseAlt* This,DWORD dwValueTypes) {
8136     return This->lpVtbl->Discard(This,dwValueTypes);
8137 }
8138 /*** ISpPhraseAlt methods ***/
8139 static FORCEINLINE HRESULT ISpPhraseAlt_GetAltInfo(ISpPhraseAlt* This,ISpPhrase **ppParent,ULONG *pulStartElementInParent,ULONG *pcElementsInParent,ULONG *pcElementsInAlt) {
8140     return This->lpVtbl->GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt);
8141 }
8142 static FORCEINLINE HRESULT ISpPhraseAlt_Commit(ISpPhraseAlt* This) {
8143     return This->lpVtbl->Commit(This);
8144 }
8145 #endif
8146 #endif
8147 
8148 #endif
8149 
8150 HRESULT STDMETHODCALLTYPE ISpPhraseAlt_GetAltInfo_Proxy(
8151     ISpPhraseAlt* This,
8152     ISpPhrase **ppParent,
8153     ULONG *pulStartElementInParent,
8154     ULONG *pcElementsInParent,
8155     ULONG *pcElementsInAlt);
8156 void __RPC_STUB ISpPhraseAlt_GetAltInfo_Stub(
8157     IRpcStubBuffer* This,
8158     IRpcChannelBuffer* pRpcChannelBuffer,
8159     PRPC_MESSAGE pRpcMessage,
8160     DWORD* pdwStubPhase);
8161 HRESULT STDMETHODCALLTYPE ISpPhraseAlt_Commit_Proxy(
8162     ISpPhraseAlt* This);
8163 void __RPC_STUB ISpPhraseAlt_Commit_Stub(
8164     IRpcStubBuffer* This,
8165     IRpcChannelBuffer* pRpcChannelBuffer,
8166     PRPC_MESSAGE pRpcMessage,
8167     DWORD* pdwStubPhase);
8168 
8169 #endif  /* __ISpPhraseAlt_INTERFACE_DEFINED__ */
8170 
8171 typedef enum SPXMLRESULTOPTIONS {
8172     SPXRO_SML = 0,
8173     SPXRO_Alternates_SML = 1
8174 } SPXMLRESULTOPTIONS;
8175 /*****************************************************************************
8176  * ISpPhrase2 interface
8177  */
8178 #ifndef __ISpPhrase2_INTERFACE_DEFINED__
8179 #define __ISpPhrase2_INTERFACE_DEFINED__
8180 
8181 DEFINE_GUID(IID_ISpPhrase2, 0xf264da52, 0xe457, 0x4696, 0xb8,0x56, 0xa7,0x37,0xb7,0x17,0xaf,0x79);
8182 #if defined(__cplusplus) && !defined(CINTERFACE)
8183 MIDL_INTERFACE("f264da52-e457-4696-b856-a737b717af79")
8184 ISpPhrase2 : public ISpPhrase
8185 {
8186     virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
8187         LPWSTR *ppszCoMemXMLResult,
8188         SPXMLRESULTOPTIONS Options) = 0;
8189 
8190     virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
8191         SPSEMANTICERRORINFO *pSemanticErrorInfo) = 0;
8192 
8193     virtual HRESULT STDMETHODCALLTYPE GetAudio(
8194         ULONG ulStartElement,
8195         ULONG cElements,
8196         ISpStreamFormat **ppStream) = 0;
8197 
8198 };
8199 #ifdef __CRT_UUID_DECL
8200 __CRT_UUID_DECL(ISpPhrase2, 0xf264da52, 0xe457, 0x4696, 0xb8,0x56, 0xa7,0x37,0xb7,0x17,0xaf,0x79)
8201 #endif
8202 #else
8203 typedef struct ISpPhrase2Vtbl {
8204     BEGIN_INTERFACE
8205 
8206     /*** IUnknown methods ***/
8207     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8208         ISpPhrase2* This,
8209         REFIID riid,
8210         void **ppvObject);
8211 
8212     ULONG (STDMETHODCALLTYPE *AddRef)(
8213         ISpPhrase2* This);
8214 
8215     ULONG (STDMETHODCALLTYPE *Release)(
8216         ISpPhrase2* This);
8217 
8218     /*** ISpPhrase methods ***/
8219     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
8220         ISpPhrase2* This,
8221         SPPHRASE **ppCoMemPhrase);
8222 
8223     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
8224         ISpPhrase2* This,
8225         SPSERIALIZEDPHRASE **ppCoMemPhrase);
8226 
8227     HRESULT (STDMETHODCALLTYPE *GetText)(
8228         ISpPhrase2* This,
8229         ULONG ulStart,
8230         ULONG ulCount,
8231         WINBOOL fUseTextReplacements,
8232         LPWSTR *ppszCoMemText,
8233         BYTE *pbDisplayAttributes);
8234 
8235     HRESULT (STDMETHODCALLTYPE *Discard)(
8236         ISpPhrase2* This,
8237         DWORD dwValueTypes);
8238 
8239     /*** ISpPhrase2 methods ***/
8240     HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
8241         ISpPhrase2* This,
8242         LPWSTR *ppszCoMemXMLResult,
8243         SPXMLRESULTOPTIONS Options);
8244 
8245     HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
8246         ISpPhrase2* This,
8247         SPSEMANTICERRORINFO *pSemanticErrorInfo);
8248 
8249     HRESULT (STDMETHODCALLTYPE *GetAudio)(
8250         ISpPhrase2* This,
8251         ULONG ulStartElement,
8252         ULONG cElements,
8253         ISpStreamFormat **ppStream);
8254 
8255     END_INTERFACE
8256 } ISpPhrase2Vtbl;
8257 interface ISpPhrase2 {
8258     CONST_VTBL ISpPhrase2Vtbl* lpVtbl;
8259 };
8260 
8261 #ifdef COBJMACROS
8262 #ifndef WIDL_C_INLINE_WRAPPERS
8263 /*** IUnknown methods ***/
8264 #define ISpPhrase2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8265 #define ISpPhrase2_AddRef(This) (This)->lpVtbl->AddRef(This)
8266 #define ISpPhrase2_Release(This) (This)->lpVtbl->Release(This)
8267 /*** ISpPhrase methods ***/
8268 #define ISpPhrase2_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
8269 #define ISpPhrase2_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
8270 #define ISpPhrase2_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
8271 #define ISpPhrase2_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
8272 /*** ISpPhrase2 methods ***/
8273 #define ISpPhrase2_GetXMLResult(This,ppszCoMemXMLResult,Options) (This)->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options)
8274 #define ISpPhrase2_GetXMLErrorInfo(This,pSemanticErrorInfo) (This)->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo)
8275 #define ISpPhrase2_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
8276 #else
8277 /*** IUnknown methods ***/
8278 static FORCEINLINE HRESULT ISpPhrase2_QueryInterface(ISpPhrase2* This,REFIID riid,void **ppvObject) {
8279     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8280 }
8281 static FORCEINLINE ULONG ISpPhrase2_AddRef(ISpPhrase2* This) {
8282     return This->lpVtbl->AddRef(This);
8283 }
8284 static FORCEINLINE ULONG ISpPhrase2_Release(ISpPhrase2* This) {
8285     return This->lpVtbl->Release(This);
8286 }
8287 /*** ISpPhrase methods ***/
8288 static FORCEINLINE HRESULT ISpPhrase2_GetPhrase(ISpPhrase2* This,SPPHRASE **ppCoMemPhrase) {
8289     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
8290 }
8291 static FORCEINLINE HRESULT ISpPhrase2_GetSerializedPhrase(ISpPhrase2* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
8292     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
8293 }
8294 static FORCEINLINE HRESULT ISpPhrase2_GetText(ISpPhrase2* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
8295     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
8296 }
8297 static FORCEINLINE HRESULT ISpPhrase2_Discard(ISpPhrase2* This,DWORD dwValueTypes) {
8298     return This->lpVtbl->Discard(This,dwValueTypes);
8299 }
8300 /*** ISpPhrase2 methods ***/
8301 static FORCEINLINE HRESULT ISpPhrase2_GetXMLResult(ISpPhrase2* This,LPWSTR *ppszCoMemXMLResult,SPXMLRESULTOPTIONS Options) {
8302     return This->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options);
8303 }
8304 static FORCEINLINE HRESULT ISpPhrase2_GetXMLErrorInfo(ISpPhrase2* This,SPSEMANTICERRORINFO *pSemanticErrorInfo) {
8305     return This->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo);
8306 }
8307 static FORCEINLINE HRESULT ISpPhrase2_GetAudio(ISpPhrase2* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
8308     return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
8309 }
8310 #endif
8311 #endif
8312 
8313 #endif
8314 
8315 HRESULT STDMETHODCALLTYPE ISpPhrase2_GetXMLResult_Proxy(
8316     ISpPhrase2* This,
8317     LPWSTR *ppszCoMemXMLResult,
8318     SPXMLRESULTOPTIONS Options);
8319 void __RPC_STUB ISpPhrase2_GetXMLResult_Stub(
8320     IRpcStubBuffer* This,
8321     IRpcChannelBuffer* pRpcChannelBuffer,
8322     PRPC_MESSAGE pRpcMessage,
8323     DWORD* pdwStubPhase);
8324 HRESULT STDMETHODCALLTYPE ISpPhrase2_GetXMLErrorInfo_Proxy(
8325     ISpPhrase2* This,
8326     SPSEMANTICERRORINFO *pSemanticErrorInfo);
8327 void __RPC_STUB ISpPhrase2_GetXMLErrorInfo_Stub(
8328     IRpcStubBuffer* This,
8329     IRpcChannelBuffer* pRpcChannelBuffer,
8330     PRPC_MESSAGE pRpcMessage,
8331     DWORD* pdwStubPhase);
8332 HRESULT STDMETHODCALLTYPE ISpPhrase2_GetAudio_Proxy(
8333     ISpPhrase2* This,
8334     ULONG ulStartElement,
8335     ULONG cElements,
8336     ISpStreamFormat **ppStream);
8337 void __RPC_STUB ISpPhrase2_GetAudio_Stub(
8338     IRpcStubBuffer* This,
8339     IRpcChannelBuffer* pRpcChannelBuffer,
8340     PRPC_MESSAGE pRpcMessage,
8341     DWORD* pdwStubPhase);
8342 
8343 #endif  /* __ISpPhrase2_INTERFACE_DEFINED__ */
8344 
8345 typedef struct SPRECORESULTTIMES {
8346     FILETIME ftStreamTime;
8347     ULONGLONG ullLength;
8348     DWORD dwTickCount;
8349     ULONGLONG ullStart;
8350 } SPRECORESULTTIMES;
8351 typedef struct SPSERIALIZEDRESULT {
8352     ULONG ulSerializedSize;
8353 } SPSERIALIZEDRESULT;
8354 /*****************************************************************************
8355  * ISpRecoResult interface
8356  */
8357 #ifndef __ISpRecoResult_INTERFACE_DEFINED__
8358 #define __ISpRecoResult_INTERFACE_DEFINED__
8359 
8360 DEFINE_GUID(IID_ISpRecoResult, 0x20b053be, 0xe235, 0x43cd, 0x9a,0x2a, 0x8d,0x17,0xa4,0x8b,0x78,0x42);
8361 #if defined(__cplusplus) && !defined(CINTERFACE)
8362 MIDL_INTERFACE("20b053be-e235-43cd-9a2a-8d17a48b7842")
8363 ISpRecoResult : public ISpPhrase
8364 {
8365     virtual HRESULT STDMETHODCALLTYPE GetResultTimes(
8366         SPRECORESULTTIMES *pTimes) = 0;
8367 
8368     virtual HRESULT STDMETHODCALLTYPE GetAlternates(
8369         ULONG ulStartElement,
8370         ULONG cElements,
8371         ULONG ulRequestCount,
8372         ISpPhraseAlt **ppPhrases,
8373         ULONG *pcPhrasesReturned) = 0;
8374 
8375     virtual HRESULT STDMETHODCALLTYPE GetAudio(
8376         ULONG ulStartElement,
8377         ULONG cElements,
8378         ISpStreamFormat **ppStream) = 0;
8379 
8380     virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
8381         ULONG ulStartElement,
8382         ULONG cElements,
8383         DWORD dwFlags,
8384         ULONG *pulStreamNumber) = 0;
8385 
8386     virtual HRESULT STDMETHODCALLTYPE Serialize(
8387         SPSERIALIZEDRESULT **ppCoMemSerializedResult) = 0;
8388 
8389     virtual HRESULT STDMETHODCALLTYPE ScaleAudio(
8390         const GUID *pAudioFormatId,
8391         const WAVEFORMATEX *pWaveFormatEx) = 0;
8392 
8393     virtual HRESULT STDMETHODCALLTYPE GetRecoContext(
8394         ISpRecoContext **ppRecoContext) = 0;
8395 
8396 };
8397 #ifdef __CRT_UUID_DECL
8398 __CRT_UUID_DECL(ISpRecoResult, 0x20b053be, 0xe235, 0x43cd, 0x9a,0x2a, 0x8d,0x17,0xa4,0x8b,0x78,0x42)
8399 #endif
8400 #else
8401 typedef struct ISpRecoResultVtbl {
8402     BEGIN_INTERFACE
8403 
8404     /*** IUnknown methods ***/
8405     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8406         ISpRecoResult* This,
8407         REFIID riid,
8408         void **ppvObject);
8409 
8410     ULONG (STDMETHODCALLTYPE *AddRef)(
8411         ISpRecoResult* This);
8412 
8413     ULONG (STDMETHODCALLTYPE *Release)(
8414         ISpRecoResult* This);
8415 
8416     /*** ISpPhrase methods ***/
8417     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
8418         ISpRecoResult* This,
8419         SPPHRASE **ppCoMemPhrase);
8420 
8421     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
8422         ISpRecoResult* This,
8423         SPSERIALIZEDPHRASE **ppCoMemPhrase);
8424 
8425     HRESULT (STDMETHODCALLTYPE *GetText)(
8426         ISpRecoResult* This,
8427         ULONG ulStart,
8428         ULONG ulCount,
8429         WINBOOL fUseTextReplacements,
8430         LPWSTR *ppszCoMemText,
8431         BYTE *pbDisplayAttributes);
8432 
8433     HRESULT (STDMETHODCALLTYPE *Discard)(
8434         ISpRecoResult* This,
8435         DWORD dwValueTypes);
8436 
8437     /*** ISpRecoResult methods ***/
8438     HRESULT (STDMETHODCALLTYPE *GetResultTimes)(
8439         ISpRecoResult* This,
8440         SPRECORESULTTIMES *pTimes);
8441 
8442     HRESULT (STDMETHODCALLTYPE *GetAlternates)(
8443         ISpRecoResult* This,
8444         ULONG ulStartElement,
8445         ULONG cElements,
8446         ULONG ulRequestCount,
8447         ISpPhraseAlt **ppPhrases,
8448         ULONG *pcPhrasesReturned);
8449 
8450     HRESULT (STDMETHODCALLTYPE *GetAudio)(
8451         ISpRecoResult* This,
8452         ULONG ulStartElement,
8453         ULONG cElements,
8454         ISpStreamFormat **ppStream);
8455 
8456     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
8457         ISpRecoResult* This,
8458         ULONG ulStartElement,
8459         ULONG cElements,
8460         DWORD dwFlags,
8461         ULONG *pulStreamNumber);
8462 
8463     HRESULT (STDMETHODCALLTYPE *Serialize)(
8464         ISpRecoResult* This,
8465         SPSERIALIZEDRESULT **ppCoMemSerializedResult);
8466 
8467     HRESULT (STDMETHODCALLTYPE *ScaleAudio)(
8468         ISpRecoResult* This,
8469         const GUID *pAudioFormatId,
8470         const WAVEFORMATEX *pWaveFormatEx);
8471 
8472     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
8473         ISpRecoResult* This,
8474         ISpRecoContext **ppRecoContext);
8475 
8476     END_INTERFACE
8477 } ISpRecoResultVtbl;
8478 interface ISpRecoResult {
8479     CONST_VTBL ISpRecoResultVtbl* lpVtbl;
8480 };
8481 
8482 #ifdef COBJMACROS
8483 #ifndef WIDL_C_INLINE_WRAPPERS
8484 /*** IUnknown methods ***/
8485 #define ISpRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8486 #define ISpRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
8487 #define ISpRecoResult_Release(This) (This)->lpVtbl->Release(This)
8488 /*** ISpPhrase methods ***/
8489 #define ISpRecoResult_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
8490 #define ISpRecoResult_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
8491 #define ISpRecoResult_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
8492 #define ISpRecoResult_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
8493 /*** ISpRecoResult methods ***/
8494 #define ISpRecoResult_GetResultTimes(This,pTimes) (This)->lpVtbl->GetResultTimes(This,pTimes)
8495 #define ISpRecoResult_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned) (This)->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
8496 #define ISpRecoResult_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
8497 #define ISpRecoResult_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
8498 #define ISpRecoResult_Serialize(This,ppCoMemSerializedResult) (This)->lpVtbl->Serialize(This,ppCoMemSerializedResult)
8499 #define ISpRecoResult_ScaleAudio(This,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
8500 #define ISpRecoResult_GetRecoContext(This,ppRecoContext) (This)->lpVtbl->GetRecoContext(This,ppRecoContext)
8501 #else
8502 /*** IUnknown methods ***/
8503 static FORCEINLINE HRESULT ISpRecoResult_QueryInterface(ISpRecoResult* This,REFIID riid,void **ppvObject) {
8504     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8505 }
8506 static FORCEINLINE ULONG ISpRecoResult_AddRef(ISpRecoResult* This) {
8507     return This->lpVtbl->AddRef(This);
8508 }
8509 static FORCEINLINE ULONG ISpRecoResult_Release(ISpRecoResult* This) {
8510     return This->lpVtbl->Release(This);
8511 }
8512 /*** ISpPhrase methods ***/
8513 static FORCEINLINE HRESULT ISpRecoResult_GetPhrase(ISpRecoResult* This,SPPHRASE **ppCoMemPhrase) {
8514     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
8515 }
8516 static FORCEINLINE HRESULT ISpRecoResult_GetSerializedPhrase(ISpRecoResult* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
8517     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
8518 }
8519 static FORCEINLINE HRESULT ISpRecoResult_GetText(ISpRecoResult* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
8520     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
8521 }
8522 static FORCEINLINE HRESULT ISpRecoResult_Discard(ISpRecoResult* This,DWORD dwValueTypes) {
8523     return This->lpVtbl->Discard(This,dwValueTypes);
8524 }
8525 /*** ISpRecoResult methods ***/
8526 static FORCEINLINE HRESULT ISpRecoResult_GetResultTimes(ISpRecoResult* This,SPRECORESULTTIMES *pTimes) {
8527     return This->lpVtbl->GetResultTimes(This,pTimes);
8528 }
8529 static FORCEINLINE HRESULT ISpRecoResult_GetAlternates(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,ULONG ulRequestCount,ISpPhraseAlt **ppPhrases,ULONG *pcPhrasesReturned) {
8530     return This->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned);
8531 }
8532 static FORCEINLINE HRESULT ISpRecoResult_GetAudio(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
8533     return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
8534 }
8535 static FORCEINLINE HRESULT ISpRecoResult_SpeakAudio(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,DWORD dwFlags,ULONG *pulStreamNumber) {
8536     return This->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber);
8537 }
8538 static FORCEINLINE HRESULT ISpRecoResult_Serialize(ISpRecoResult* This,SPSERIALIZEDRESULT **ppCoMemSerializedResult) {
8539     return This->lpVtbl->Serialize(This,ppCoMemSerializedResult);
8540 }
8541 static FORCEINLINE HRESULT ISpRecoResult_ScaleAudio(ISpRecoResult* This,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
8542     return This->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx);
8543 }
8544 static FORCEINLINE HRESULT ISpRecoResult_GetRecoContext(ISpRecoResult* This,ISpRecoContext **ppRecoContext) {
8545     return This->lpVtbl->GetRecoContext(This,ppRecoContext);
8546 }
8547 #endif
8548 #endif
8549 
8550 #endif
8551 
8552 HRESULT STDMETHODCALLTYPE ISpRecoResult_GetResultTimes_Proxy(
8553     ISpRecoResult* This,
8554     SPRECORESULTTIMES *pTimes);
8555 void __RPC_STUB ISpRecoResult_GetResultTimes_Stub(
8556     IRpcStubBuffer* This,
8557     IRpcChannelBuffer* pRpcChannelBuffer,
8558     PRPC_MESSAGE pRpcMessage,
8559     DWORD* pdwStubPhase);
8560 HRESULT STDMETHODCALLTYPE ISpRecoResult_GetAlternates_Proxy(
8561     ISpRecoResult* This,
8562     ULONG ulStartElement,
8563     ULONG cElements,
8564     ULONG ulRequestCount,
8565     ISpPhraseAlt **ppPhrases,
8566     ULONG *pcPhrasesReturned);
8567 void __RPC_STUB ISpRecoResult_GetAlternates_Stub(
8568     IRpcStubBuffer* This,
8569     IRpcChannelBuffer* pRpcChannelBuffer,
8570     PRPC_MESSAGE pRpcMessage,
8571     DWORD* pdwStubPhase);
8572 HRESULT STDMETHODCALLTYPE ISpRecoResult_GetAudio_Proxy(
8573     ISpRecoResult* This,
8574     ULONG ulStartElement,
8575     ULONG cElements,
8576     ISpStreamFormat **ppStream);
8577 void __RPC_STUB ISpRecoResult_GetAudio_Stub(
8578     IRpcStubBuffer* This,
8579     IRpcChannelBuffer* pRpcChannelBuffer,
8580     PRPC_MESSAGE pRpcMessage,
8581     DWORD* pdwStubPhase);
8582 HRESULT STDMETHODCALLTYPE ISpRecoResult_SpeakAudio_Proxy(
8583     ISpRecoResult* This,
8584     ULONG ulStartElement,
8585     ULONG cElements,
8586     DWORD dwFlags,
8587     ULONG *pulStreamNumber);
8588 void __RPC_STUB ISpRecoResult_SpeakAudio_Stub(
8589     IRpcStubBuffer* This,
8590     IRpcChannelBuffer* pRpcChannelBuffer,
8591     PRPC_MESSAGE pRpcMessage,
8592     DWORD* pdwStubPhase);
8593 HRESULT STDMETHODCALLTYPE ISpRecoResult_Serialize_Proxy(
8594     ISpRecoResult* This,
8595     SPSERIALIZEDRESULT **ppCoMemSerializedResult);
8596 void __RPC_STUB ISpRecoResult_Serialize_Stub(
8597     IRpcStubBuffer* This,
8598     IRpcChannelBuffer* pRpcChannelBuffer,
8599     PRPC_MESSAGE pRpcMessage,
8600     DWORD* pdwStubPhase);
8601 HRESULT STDMETHODCALLTYPE ISpRecoResult_ScaleAudio_Proxy(
8602     ISpRecoResult* This,
8603     const GUID *pAudioFormatId,
8604     const WAVEFORMATEX *pWaveFormatEx);
8605 void __RPC_STUB ISpRecoResult_ScaleAudio_Stub(
8606     IRpcStubBuffer* This,
8607     IRpcChannelBuffer* pRpcChannelBuffer,
8608     PRPC_MESSAGE pRpcMessage,
8609     DWORD* pdwStubPhase);
8610 HRESULT STDMETHODCALLTYPE ISpRecoResult_GetRecoContext_Proxy(
8611     ISpRecoResult* This,
8612     ISpRecoContext **ppRecoContext);
8613 void __RPC_STUB ISpRecoResult_GetRecoContext_Stub(
8614     IRpcStubBuffer* This,
8615     IRpcChannelBuffer* pRpcChannelBuffer,
8616     PRPC_MESSAGE pRpcMessage,
8617     DWORD* pdwStubPhase);
8618 
8619 #endif  /* __ISpRecoResult_INTERFACE_DEFINED__ */
8620 
8621 typedef enum SPCOMMITFLAGS {
8622     SPCF_NONE = 0,
8623     SPCF_ADD_TO_USER_LEXICON = 1 << 0,
8624     SPCF_DEFINITE_CORRECTION = 1 << 1
8625 } SPCOMMITFLAGS;
8626 /*****************************************************************************
8627  * ISpRecoResult2 interface
8628  */
8629 #ifndef __ISpRecoResult2_INTERFACE_DEFINED__
8630 #define __ISpRecoResult2_INTERFACE_DEFINED__
8631 
8632 DEFINE_GUID(IID_ISpRecoResult2, 0x27cac6c4, 0x88f2, 0x41f2, 0x88,0x17, 0x0c,0x95,0xe5,0x9f,0x1e,0x6e);
8633 #if defined(__cplusplus) && !defined(CINTERFACE)
8634 MIDL_INTERFACE("27cac6c4-88f2-41f2-8817-0c95e59f1e6e")
8635 ISpRecoResult2 : public ISpRecoResult
8636 {
8637     virtual HRESULT STDMETHODCALLTYPE CommitAlternate(
8638         ISpPhraseAlt *pPhraseAlt,
8639         ISpRecoResult **ppNewResult) = 0;
8640 
8641     virtual HRESULT STDMETHODCALLTYPE CommitText(
8642         ULONG ulStartElement,
8643         ULONG cElements,
8644         LPCWSTR pszCorrectedData,
8645         DWORD eCommitFlags) = 0;
8646 
8647     virtual HRESULT STDMETHODCALLTYPE SetTextFeedback(
8648         LPCWSTR pszFeedback,
8649         WINBOOL fSuccessful) = 0;
8650 
8651 };
8652 #ifdef __CRT_UUID_DECL
8653 __CRT_UUID_DECL(ISpRecoResult2, 0x27cac6c4, 0x88f2, 0x41f2, 0x88,0x17, 0x0c,0x95,0xe5,0x9f,0x1e,0x6e)
8654 #endif
8655 #else
8656 typedef struct ISpRecoResult2Vtbl {
8657     BEGIN_INTERFACE
8658 
8659     /*** IUnknown methods ***/
8660     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8661         ISpRecoResult2* This,
8662         REFIID riid,
8663         void **ppvObject);
8664 
8665     ULONG (STDMETHODCALLTYPE *AddRef)(
8666         ISpRecoResult2* This);
8667 
8668     ULONG (STDMETHODCALLTYPE *Release)(
8669         ISpRecoResult2* This);
8670 
8671     /*** ISpPhrase methods ***/
8672     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
8673         ISpRecoResult2* This,
8674         SPPHRASE **ppCoMemPhrase);
8675 
8676     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
8677         ISpRecoResult2* This,
8678         SPSERIALIZEDPHRASE **ppCoMemPhrase);
8679 
8680     HRESULT (STDMETHODCALLTYPE *GetText)(
8681         ISpRecoResult2* This,
8682         ULONG ulStart,
8683         ULONG ulCount,
8684         WINBOOL fUseTextReplacements,
8685         LPWSTR *ppszCoMemText,
8686         BYTE *pbDisplayAttributes);
8687 
8688     HRESULT (STDMETHODCALLTYPE *Discard)(
8689         ISpRecoResult2* This,
8690         DWORD dwValueTypes);
8691 
8692     /*** ISpRecoResult methods ***/
8693     HRESULT (STDMETHODCALLTYPE *GetResultTimes)(
8694         ISpRecoResult2* This,
8695         SPRECORESULTTIMES *pTimes);
8696 
8697     HRESULT (STDMETHODCALLTYPE *GetAlternates)(
8698         ISpRecoResult2* This,
8699         ULONG ulStartElement,
8700         ULONG cElements,
8701         ULONG ulRequestCount,
8702         ISpPhraseAlt **ppPhrases,
8703         ULONG *pcPhrasesReturned);
8704 
8705     HRESULT (STDMETHODCALLTYPE *GetAudio)(
8706         ISpRecoResult2* This,
8707         ULONG ulStartElement,
8708         ULONG cElements,
8709         ISpStreamFormat **ppStream);
8710 
8711     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
8712         ISpRecoResult2* This,
8713         ULONG ulStartElement,
8714         ULONG cElements,
8715         DWORD dwFlags,
8716         ULONG *pulStreamNumber);
8717 
8718     HRESULT (STDMETHODCALLTYPE *Serialize)(
8719         ISpRecoResult2* This,
8720         SPSERIALIZEDRESULT **ppCoMemSerializedResult);
8721 
8722     HRESULT (STDMETHODCALLTYPE *ScaleAudio)(
8723         ISpRecoResult2* This,
8724         const GUID *pAudioFormatId,
8725         const WAVEFORMATEX *pWaveFormatEx);
8726 
8727     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
8728         ISpRecoResult2* This,
8729         ISpRecoContext **ppRecoContext);
8730 
8731     /*** ISpRecoResult2 methods ***/
8732     HRESULT (STDMETHODCALLTYPE *CommitAlternate)(
8733         ISpRecoResult2* This,
8734         ISpPhraseAlt *pPhraseAlt,
8735         ISpRecoResult **ppNewResult);
8736 
8737     HRESULT (STDMETHODCALLTYPE *CommitText)(
8738         ISpRecoResult2* This,
8739         ULONG ulStartElement,
8740         ULONG cElements,
8741         LPCWSTR pszCorrectedData,
8742         DWORD eCommitFlags);
8743 
8744     HRESULT (STDMETHODCALLTYPE *SetTextFeedback)(
8745         ISpRecoResult2* This,
8746         LPCWSTR pszFeedback,
8747         WINBOOL fSuccessful);
8748 
8749     END_INTERFACE
8750 } ISpRecoResult2Vtbl;
8751 interface ISpRecoResult2 {
8752     CONST_VTBL ISpRecoResult2Vtbl* lpVtbl;
8753 };
8754 
8755 #ifdef COBJMACROS
8756 #ifndef WIDL_C_INLINE_WRAPPERS
8757 /*** IUnknown methods ***/
8758 #define ISpRecoResult2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8759 #define ISpRecoResult2_AddRef(This) (This)->lpVtbl->AddRef(This)
8760 #define ISpRecoResult2_Release(This) (This)->lpVtbl->Release(This)
8761 /*** ISpPhrase methods ***/
8762 #define ISpRecoResult2_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
8763 #define ISpRecoResult2_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
8764 #define ISpRecoResult2_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
8765 #define ISpRecoResult2_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
8766 /*** ISpRecoResult methods ***/
8767 #define ISpRecoResult2_GetResultTimes(This,pTimes) (This)->lpVtbl->GetResultTimes(This,pTimes)
8768 #define ISpRecoResult2_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned) (This)->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
8769 #define ISpRecoResult2_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
8770 #define ISpRecoResult2_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
8771 #define ISpRecoResult2_Serialize(This,ppCoMemSerializedResult) (This)->lpVtbl->Serialize(This,ppCoMemSerializedResult)
8772 #define ISpRecoResult2_ScaleAudio(This,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
8773 #define ISpRecoResult2_GetRecoContext(This,ppRecoContext) (This)->lpVtbl->GetRecoContext(This,ppRecoContext)
8774 /*** ISpRecoResult2 methods ***/
8775 #define ISpRecoResult2_CommitAlternate(This,pPhraseAlt,ppNewResult) (This)->lpVtbl->CommitAlternate(This,pPhraseAlt,ppNewResult)
8776 #define ISpRecoResult2_CommitText(This,ulStartElement,cElements,pszCorrectedData,eCommitFlags) (This)->lpVtbl->CommitText(This,ulStartElement,cElements,pszCorrectedData,eCommitFlags)
8777 #define ISpRecoResult2_SetTextFeedback(This,pszFeedback,fSuccessful) (This)->lpVtbl->SetTextFeedback(This,pszFeedback,fSuccessful)
8778 #else
8779 /*** IUnknown methods ***/
8780 static FORCEINLINE HRESULT ISpRecoResult2_QueryInterface(ISpRecoResult2* This,REFIID riid,void **ppvObject) {
8781     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8782 }
8783 static FORCEINLINE ULONG ISpRecoResult2_AddRef(ISpRecoResult2* This) {
8784     return This->lpVtbl->AddRef(This);
8785 }
8786 static FORCEINLINE ULONG ISpRecoResult2_Release(ISpRecoResult2* This) {
8787     return This->lpVtbl->Release(This);
8788 }
8789 /*** ISpPhrase methods ***/
8790 static FORCEINLINE HRESULT ISpRecoResult2_GetPhrase(ISpRecoResult2* This,SPPHRASE **ppCoMemPhrase) {
8791     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
8792 }
8793 static FORCEINLINE HRESULT ISpRecoResult2_GetSerializedPhrase(ISpRecoResult2* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
8794     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
8795 }
8796 static FORCEINLINE HRESULT ISpRecoResult2_GetText(ISpRecoResult2* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
8797     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
8798 }
8799 static FORCEINLINE HRESULT ISpRecoResult2_Discard(ISpRecoResult2* This,DWORD dwValueTypes) {
8800     return This->lpVtbl->Discard(This,dwValueTypes);
8801 }
8802 /*** ISpRecoResult methods ***/
8803 static FORCEINLINE HRESULT ISpRecoResult2_GetResultTimes(ISpRecoResult2* This,SPRECORESULTTIMES *pTimes) {
8804     return This->lpVtbl->GetResultTimes(This,pTimes);
8805 }
8806 static FORCEINLINE HRESULT ISpRecoResult2_GetAlternates(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,ULONG ulRequestCount,ISpPhraseAlt **ppPhrases,ULONG *pcPhrasesReturned) {
8807     return This->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned);
8808 }
8809 static FORCEINLINE HRESULT ISpRecoResult2_GetAudio(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
8810     return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
8811 }
8812 static FORCEINLINE HRESULT ISpRecoResult2_SpeakAudio(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,DWORD dwFlags,ULONG *pulStreamNumber) {
8813     return This->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber);
8814 }
8815 static FORCEINLINE HRESULT ISpRecoResult2_Serialize(ISpRecoResult2* This,SPSERIALIZEDRESULT **ppCoMemSerializedResult) {
8816     return This->lpVtbl->Serialize(This,ppCoMemSerializedResult);
8817 }
8818 static FORCEINLINE HRESULT ISpRecoResult2_ScaleAudio(ISpRecoResult2* This,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
8819     return This->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx);
8820 }
8821 static FORCEINLINE HRESULT ISpRecoResult2_GetRecoContext(ISpRecoResult2* This,ISpRecoContext **ppRecoContext) {
8822     return This->lpVtbl->GetRecoContext(This,ppRecoContext);
8823 }
8824 /*** ISpRecoResult2 methods ***/
8825 static FORCEINLINE HRESULT ISpRecoResult2_CommitAlternate(ISpRecoResult2* This,ISpPhraseAlt *pPhraseAlt,ISpRecoResult **ppNewResult) {
8826     return This->lpVtbl->CommitAlternate(This,pPhraseAlt,ppNewResult);
8827 }
8828 static FORCEINLINE HRESULT ISpRecoResult2_CommitText(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,LPCWSTR pszCorrectedData,DWORD eCommitFlags) {
8829     return This->lpVtbl->CommitText(This,ulStartElement,cElements,pszCorrectedData,eCommitFlags);
8830 }
8831 static FORCEINLINE HRESULT ISpRecoResult2_SetTextFeedback(ISpRecoResult2* This,LPCWSTR pszFeedback,WINBOOL fSuccessful) {
8832     return This->lpVtbl->SetTextFeedback(This,pszFeedback,fSuccessful);
8833 }
8834 #endif
8835 #endif
8836 
8837 #endif
8838 
8839 HRESULT STDMETHODCALLTYPE ISpRecoResult2_CommitAlternate_Proxy(
8840     ISpRecoResult2* This,
8841     ISpPhraseAlt *pPhraseAlt,
8842     ISpRecoResult **ppNewResult);
8843 void __RPC_STUB ISpRecoResult2_CommitAlternate_Stub(
8844     IRpcStubBuffer* This,
8845     IRpcChannelBuffer* pRpcChannelBuffer,
8846     PRPC_MESSAGE pRpcMessage,
8847     DWORD* pdwStubPhase);
8848 HRESULT STDMETHODCALLTYPE ISpRecoResult2_CommitText_Proxy(
8849     ISpRecoResult2* This,
8850     ULONG ulStartElement,
8851     ULONG cElements,
8852     LPCWSTR pszCorrectedData,
8853     DWORD eCommitFlags);
8854 void __RPC_STUB ISpRecoResult2_CommitText_Stub(
8855     IRpcStubBuffer* This,
8856     IRpcChannelBuffer* pRpcChannelBuffer,
8857     PRPC_MESSAGE pRpcMessage,
8858     DWORD* pdwStubPhase);
8859 HRESULT STDMETHODCALLTYPE ISpRecoResult2_SetTextFeedback_Proxy(
8860     ISpRecoResult2* This,
8861     LPCWSTR pszFeedback,
8862     WINBOOL fSuccessful);
8863 void __RPC_STUB ISpRecoResult2_SetTextFeedback_Stub(
8864     IRpcStubBuffer* This,
8865     IRpcChannelBuffer* pRpcChannelBuffer,
8866     PRPC_MESSAGE pRpcMessage,
8867     DWORD* pdwStubPhase);
8868 
8869 #endif  /* __ISpRecoResult2_INTERFACE_DEFINED__ */
8870 
8871 /*****************************************************************************
8872  * ISpXMLRecoResult interface
8873  */
8874 #ifndef __ISpXMLRecoResult_INTERFACE_DEFINED__
8875 #define __ISpXMLRecoResult_INTERFACE_DEFINED__
8876 
8877 DEFINE_GUID(IID_ISpXMLRecoResult, 0xae39362b, 0x45a8, 0x4074, 0x9b,0x9e, 0xcc,0xf4,0x9a,0xa2,0xd0,0xb6);
8878 #if defined(__cplusplus) && !defined(CINTERFACE)
8879 MIDL_INTERFACE("ae39362b-45a8-4074-9b9e-ccf49aa2d0b6")
8880 ISpXMLRecoResult : public ISpRecoResult
8881 {
8882     virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
8883         LPWSTR *ppszCoMemXMLResult,
8884         SPXMLRESULTOPTIONS Options) = 0;
8885 
8886     virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
8887         SPSEMANTICERRORINFO *pSemanticErrorInfo) = 0;
8888 
8889 };
8890 #ifdef __CRT_UUID_DECL
8891 __CRT_UUID_DECL(ISpXMLRecoResult, 0xae39362b, 0x45a8, 0x4074, 0x9b,0x9e, 0xcc,0xf4,0x9a,0xa2,0xd0,0xb6)
8892 #endif
8893 #else
8894 typedef struct ISpXMLRecoResultVtbl {
8895     BEGIN_INTERFACE
8896 
8897     /*** IUnknown methods ***/
8898     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8899         ISpXMLRecoResult* This,
8900         REFIID riid,
8901         void **ppvObject);
8902 
8903     ULONG (STDMETHODCALLTYPE *AddRef)(
8904         ISpXMLRecoResult* This);
8905 
8906     ULONG (STDMETHODCALLTYPE *Release)(
8907         ISpXMLRecoResult* This);
8908 
8909     /*** ISpPhrase methods ***/
8910     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
8911         ISpXMLRecoResult* This,
8912         SPPHRASE **ppCoMemPhrase);
8913 
8914     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
8915         ISpXMLRecoResult* This,
8916         SPSERIALIZEDPHRASE **ppCoMemPhrase);
8917 
8918     HRESULT (STDMETHODCALLTYPE *GetText)(
8919         ISpXMLRecoResult* This,
8920         ULONG ulStart,
8921         ULONG ulCount,
8922         WINBOOL fUseTextReplacements,
8923         LPWSTR *ppszCoMemText,
8924         BYTE *pbDisplayAttributes);
8925 
8926     HRESULT (STDMETHODCALLTYPE *Discard)(
8927         ISpXMLRecoResult* This,
8928         DWORD dwValueTypes);
8929 
8930     /*** ISpRecoResult methods ***/
8931     HRESULT (STDMETHODCALLTYPE *GetResultTimes)(
8932         ISpXMLRecoResult* This,
8933         SPRECORESULTTIMES *pTimes);
8934 
8935     HRESULT (STDMETHODCALLTYPE *GetAlternates)(
8936         ISpXMLRecoResult* This,
8937         ULONG ulStartElement,
8938         ULONG cElements,
8939         ULONG ulRequestCount,
8940         ISpPhraseAlt **ppPhrases,
8941         ULONG *pcPhrasesReturned);
8942 
8943     HRESULT (STDMETHODCALLTYPE *GetAudio)(
8944         ISpXMLRecoResult* This,
8945         ULONG ulStartElement,
8946         ULONG cElements,
8947         ISpStreamFormat **ppStream);
8948 
8949     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
8950         ISpXMLRecoResult* This,
8951         ULONG ulStartElement,
8952         ULONG cElements,
8953         DWORD dwFlags,
8954         ULONG *pulStreamNumber);
8955 
8956     HRESULT (STDMETHODCALLTYPE *Serialize)(
8957         ISpXMLRecoResult* This,
8958         SPSERIALIZEDRESULT **ppCoMemSerializedResult);
8959 
8960     HRESULT (STDMETHODCALLTYPE *ScaleAudio)(
8961         ISpXMLRecoResult* This,
8962         const GUID *pAudioFormatId,
8963         const WAVEFORMATEX *pWaveFormatEx);
8964 
8965     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
8966         ISpXMLRecoResult* This,
8967         ISpRecoContext **ppRecoContext);
8968 
8969     /*** ISpXMLRecoResult methods ***/
8970     HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
8971         ISpXMLRecoResult* This,
8972         LPWSTR *ppszCoMemXMLResult,
8973         SPXMLRESULTOPTIONS Options);
8974 
8975     HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
8976         ISpXMLRecoResult* This,
8977         SPSEMANTICERRORINFO *pSemanticErrorInfo);
8978 
8979     END_INTERFACE
8980 } ISpXMLRecoResultVtbl;
8981 interface ISpXMLRecoResult {
8982     CONST_VTBL ISpXMLRecoResultVtbl* lpVtbl;
8983 };
8984 
8985 #ifdef COBJMACROS
8986 #ifndef WIDL_C_INLINE_WRAPPERS
8987 /*** IUnknown methods ***/
8988 #define ISpXMLRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8989 #define ISpXMLRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
8990 #define ISpXMLRecoResult_Release(This) (This)->lpVtbl->Release(This)
8991 /*** ISpPhrase methods ***/
8992 #define ISpXMLRecoResult_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
8993 #define ISpXMLRecoResult_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
8994 #define ISpXMLRecoResult_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
8995 #define ISpXMLRecoResult_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
8996 /*** ISpRecoResult methods ***/
8997 #define ISpXMLRecoResult_GetResultTimes(This,pTimes) (This)->lpVtbl->GetResultTimes(This,pTimes)
8998 #define ISpXMLRecoResult_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned) (This)->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
8999 #define ISpXMLRecoResult_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
9000 #define ISpXMLRecoResult_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
9001 #define ISpXMLRecoResult_Serialize(This,ppCoMemSerializedResult) (This)->lpVtbl->Serialize(This,ppCoMemSerializedResult)
9002 #define ISpXMLRecoResult_ScaleAudio(This,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
9003 #define ISpXMLRecoResult_GetRecoContext(This,ppRecoContext) (This)->lpVtbl->GetRecoContext(This,ppRecoContext)
9004 /*** ISpXMLRecoResult methods ***/
9005 #define ISpXMLRecoResult_GetXMLResult(This,ppszCoMemXMLResult,Options) (This)->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options)
9006 #define ISpXMLRecoResult_GetXMLErrorInfo(This,pSemanticErrorInfo) (This)->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo)
9007 #else
9008 /*** IUnknown methods ***/
9009 static FORCEINLINE HRESULT ISpXMLRecoResult_QueryInterface(ISpXMLRecoResult* This,REFIID riid,void **ppvObject) {
9010     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9011 }
9012 static FORCEINLINE ULONG ISpXMLRecoResult_AddRef(ISpXMLRecoResult* This) {
9013     return This->lpVtbl->AddRef(This);
9014 }
9015 static FORCEINLINE ULONG ISpXMLRecoResult_Release(ISpXMLRecoResult* This) {
9016     return This->lpVtbl->Release(This);
9017 }
9018 /*** ISpPhrase methods ***/
9019 static FORCEINLINE HRESULT ISpXMLRecoResult_GetPhrase(ISpXMLRecoResult* This,SPPHRASE **ppCoMemPhrase) {
9020     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
9021 }
9022 static FORCEINLINE HRESULT ISpXMLRecoResult_GetSerializedPhrase(ISpXMLRecoResult* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
9023     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
9024 }
9025 static FORCEINLINE HRESULT ISpXMLRecoResult_GetText(ISpXMLRecoResult* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
9026     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
9027 }
9028 static FORCEINLINE HRESULT ISpXMLRecoResult_Discard(ISpXMLRecoResult* This,DWORD dwValueTypes) {
9029     return This->lpVtbl->Discard(This,dwValueTypes);
9030 }
9031 /*** ISpRecoResult methods ***/
9032 static FORCEINLINE HRESULT ISpXMLRecoResult_GetResultTimes(ISpXMLRecoResult* This,SPRECORESULTTIMES *pTimes) {
9033     return This->lpVtbl->GetResultTimes(This,pTimes);
9034 }
9035 static FORCEINLINE HRESULT ISpXMLRecoResult_GetAlternates(ISpXMLRecoResult* This,ULONG ulStartElement,ULONG cElements,ULONG ulRequestCount,ISpPhraseAlt **ppPhrases,ULONG *pcPhrasesReturned) {
9036     return This->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned);
9037 }
9038 static FORCEINLINE HRESULT ISpXMLRecoResult_GetAudio(ISpXMLRecoResult* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
9039     return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
9040 }
9041 static FORCEINLINE HRESULT ISpXMLRecoResult_SpeakAudio(ISpXMLRecoResult* This,ULONG ulStartElement,ULONG cElements,DWORD dwFlags,ULONG *pulStreamNumber) {
9042     return This->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber);
9043 }
9044 static FORCEINLINE HRESULT ISpXMLRecoResult_Serialize(ISpXMLRecoResult* This,SPSERIALIZEDRESULT **ppCoMemSerializedResult) {
9045     return This->lpVtbl->Serialize(This,ppCoMemSerializedResult);
9046 }
9047 static FORCEINLINE HRESULT ISpXMLRecoResult_ScaleAudio(ISpXMLRecoResult* This,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
9048     return This->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx);
9049 }
9050 static FORCEINLINE HRESULT ISpXMLRecoResult_GetRecoContext(ISpXMLRecoResult* This,ISpRecoContext **ppRecoContext) {
9051     return This->lpVtbl->GetRecoContext(This,ppRecoContext);
9052 }
9053 /*** ISpXMLRecoResult methods ***/
9054 static FORCEINLINE HRESULT ISpXMLRecoResult_GetXMLResult(ISpXMLRecoResult* This,LPWSTR *ppszCoMemXMLResult,SPXMLRESULTOPTIONS Options) {
9055     return This->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options);
9056 }
9057 static FORCEINLINE HRESULT ISpXMLRecoResult_GetXMLErrorInfo(ISpXMLRecoResult* This,SPSEMANTICERRORINFO *pSemanticErrorInfo) {
9058     return This->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo);
9059 }
9060 #endif
9061 #endif
9062 
9063 #endif
9064 
9065 HRESULT STDMETHODCALLTYPE ISpXMLRecoResult_GetXMLResult_Proxy(
9066     ISpXMLRecoResult* This,
9067     LPWSTR *ppszCoMemXMLResult,
9068     SPXMLRESULTOPTIONS Options);
9069 void __RPC_STUB ISpXMLRecoResult_GetXMLResult_Stub(
9070     IRpcStubBuffer* This,
9071     IRpcChannelBuffer* pRpcChannelBuffer,
9072     PRPC_MESSAGE pRpcMessage,
9073     DWORD* pdwStubPhase);
9074 HRESULT STDMETHODCALLTYPE ISpXMLRecoResult_GetXMLErrorInfo_Proxy(
9075     ISpXMLRecoResult* This,
9076     SPSEMANTICERRORINFO *pSemanticErrorInfo);
9077 void __RPC_STUB ISpXMLRecoResult_GetXMLErrorInfo_Stub(
9078     IRpcStubBuffer* This,
9079     IRpcChannelBuffer* pRpcChannelBuffer,
9080     PRPC_MESSAGE pRpcMessage,
9081     DWORD* pdwStubPhase);
9082 
9083 #endif  /* __ISpXMLRecoResult_INTERFACE_DEFINED__ */
9084 
9085 typedef struct tagSPTEXTSELECTIONINFO {
9086     ULONG ulStartActiveOffset;
9087     ULONG cchActiveChars;
9088     ULONG ulStartSelection;
9089     ULONG cchSelection;
9090 } SPTEXTSELECTIONINFO;
9091 typedef enum SPWORDPRONOUNCEABLE {
9092     SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE = 0,
9093     SPWP_UNKNOWN_WORD_PRONOUNCEABLE = 1,
9094     SPWP_KNOWN_WORD_PRONOUNCEABLE = 2
9095 } SPWORDPRONOUNCEABLE;
9096 typedef enum SPGRAMMARSTATE {
9097     SPGS_DISABLED = 0,
9098     SPGS_ENABLED = 1,
9099     SPGS_EXCLUSIVE = 3
9100 } SPGRAMMARSTATE;
9101 typedef enum SPCONTEXTSTATE {
9102     SPCS_DISABLED = 0,
9103     SPCS_ENABLED = 1
9104 } SPCONTEXTSTATE;
9105 typedef enum SPRULESTATE {
9106     SPRS_INACTIVE = 0,
9107     SPRS_ACTIVE = 1,
9108     SPRS_ACTIVE_WITH_AUTO_PAUSE = 3,
9109     SPRS_ACTIVE_USER_DELIMITED = 4
9110 } SPRULESTATE;
9111 #define SP_STREAMPOS_ASAP (0)
9112 
9113 #define SP_STREAMPOS_REALTIME (-1)
9114 
9115 #define SPRULETRANS_TEXTBUFFER (SPSTATEHANDLE) (-1)
9116 #define SPRULETRANS_WILDCARD (SPSTATEHANDLE) (-2)
9117 #define SPRULETRANS_DICTATION (SPSTATEHANDLE) (-3)
9118 typedef enum SPGRAMMARWORDTYPE {
9119     SPWT_DISPLAY = 0,
9120     SPWT_LEXICAL = 1,
9121     SPWT_PRONUNCIATION = 2,
9122     SPWT_LEXICAL_NO_SPECIAL_CHARS = 3
9123 } SPGRAMMARWORDTYPE;
9124 typedef struct tagSPPROPERTYINFO {
9125     LPCWSTR pszName;
9126     ULONG ulId;
9127     LPCWSTR pszValue;
9128     VARIANT vValue;
9129 } SPPROPERTYINFO;
9130 typedef enum SPCFGRULEATTRIBUTES {
9131     SPRAF_TopLevel = 0x1,
9132     SPRAF_Active = 0x2,
9133     SPRAF_Export = 0x4,
9134     SPRAF_Import = 0x8,
9135     SPRAF_Interpreter = 0x10,
9136     SPRAF_Dynamic = 0x20,
9137     SPRAF_Root = 0x40,
9138     SPRAF_AutoPause = 0x10000,
9139     SPRAF_UserDelimited = 0x20000
9140 } SPCFGRULEATTRIBUTES;
9141 /*****************************************************************************
9142  * ISpGrammarBuilder interface
9143  */
9144 #ifndef __ISpGrammarBuilder_INTERFACE_DEFINED__
9145 #define __ISpGrammarBuilder_INTERFACE_DEFINED__
9146 
9147 DEFINE_GUID(IID_ISpGrammarBuilder, 0x8137828f, 0x591a, 0x4a42, 0xbe,0x58, 0x49,0xea,0x7e,0xba,0xac,0x68);
9148 #if defined(__cplusplus) && !defined(CINTERFACE)
9149 MIDL_INTERFACE("8137828f-591a-4a42-be58-49ea7ebaac68")
9150 ISpGrammarBuilder : public IUnknown
9151 {
9152     virtual HRESULT STDMETHODCALLTYPE ResetGrammar(
9153         WORD NewLanguage) = 0;
9154 
9155     virtual HRESULT STDMETHODCALLTYPE GetRule(
9156         LPCWSTR pszRuleName,
9157         DWORD dwRuleId,
9158         DWORD dwAttributes,
9159         WINBOOL fCreateIfNotExist,
9160         SPSTATEHANDLE *phInitialState) = 0;
9161 
9162     virtual HRESULT STDMETHODCALLTYPE ClearRule(
9163         SPSTATEHANDLE hState) = 0;
9164 
9165     virtual HRESULT STDMETHODCALLTYPE CreateNewState(
9166         SPSTATEHANDLE hState,
9167         SPSTATEHANDLE *phState) = 0;
9168 
9169     virtual HRESULT STDMETHODCALLTYPE AddWordTransition(
9170         SPSTATEHANDLE hFromState,
9171         SPSTATEHANDLE hToState,
9172         LPCWSTR psz,
9173         LPCWSTR pszSeparators,
9174         SPGRAMMARWORDTYPE eWordType,
9175         float Weight,
9176         const SPPROPERTYINFO *pPropInfo) = 0;
9177 
9178     virtual HRESULT STDMETHODCALLTYPE AddRuleTransition(
9179         SPSTATEHANDLE hFromState,
9180         SPSTATEHANDLE hToState,
9181         SPSTATEHANDLE hRule,
9182         float Weight,
9183         const SPPROPERTYINFO *pPropInfo) = 0;
9184 
9185     virtual HRESULT STDMETHODCALLTYPE AddResource(
9186         SPSTATEHANDLE hRuleState,
9187         LPCWSTR pszResourceName,
9188         LPCWSTR pszResourceValue) = 0;
9189 
9190     virtual HRESULT STDMETHODCALLTYPE Commit(
9191         DWORD dwReserved) = 0;
9192 
9193 };
9194 #ifdef __CRT_UUID_DECL
9195 __CRT_UUID_DECL(ISpGrammarBuilder, 0x8137828f, 0x591a, 0x4a42, 0xbe,0x58, 0x49,0xea,0x7e,0xba,0xac,0x68)
9196 #endif
9197 #else
9198 typedef struct ISpGrammarBuilderVtbl {
9199     BEGIN_INTERFACE
9200 
9201     /*** IUnknown methods ***/
9202     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9203         ISpGrammarBuilder* This,
9204         REFIID riid,
9205         void **ppvObject);
9206 
9207     ULONG (STDMETHODCALLTYPE *AddRef)(
9208         ISpGrammarBuilder* This);
9209 
9210     ULONG (STDMETHODCALLTYPE *Release)(
9211         ISpGrammarBuilder* This);
9212 
9213     /*** ISpGrammarBuilder methods ***/
9214     HRESULT (STDMETHODCALLTYPE *ResetGrammar)(
9215         ISpGrammarBuilder* This,
9216         WORD NewLanguage);
9217 
9218     HRESULT (STDMETHODCALLTYPE *GetRule)(
9219         ISpGrammarBuilder* This,
9220         LPCWSTR pszRuleName,
9221         DWORD dwRuleId,
9222         DWORD dwAttributes,
9223         WINBOOL fCreateIfNotExist,
9224         SPSTATEHANDLE *phInitialState);
9225 
9226     HRESULT (STDMETHODCALLTYPE *ClearRule)(
9227         ISpGrammarBuilder* This,
9228         SPSTATEHANDLE hState);
9229 
9230     HRESULT (STDMETHODCALLTYPE *CreateNewState)(
9231         ISpGrammarBuilder* This,
9232         SPSTATEHANDLE hState,
9233         SPSTATEHANDLE *phState);
9234 
9235     HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
9236         ISpGrammarBuilder* This,
9237         SPSTATEHANDLE hFromState,
9238         SPSTATEHANDLE hToState,
9239         LPCWSTR psz,
9240         LPCWSTR pszSeparators,
9241         SPGRAMMARWORDTYPE eWordType,
9242         float Weight,
9243         const SPPROPERTYINFO *pPropInfo);
9244 
9245     HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
9246         ISpGrammarBuilder* This,
9247         SPSTATEHANDLE hFromState,
9248         SPSTATEHANDLE hToState,
9249         SPSTATEHANDLE hRule,
9250         float Weight,
9251         const SPPROPERTYINFO *pPropInfo);
9252 
9253     HRESULT (STDMETHODCALLTYPE *AddResource)(
9254         ISpGrammarBuilder* This,
9255         SPSTATEHANDLE hRuleState,
9256         LPCWSTR pszResourceName,
9257         LPCWSTR pszResourceValue);
9258 
9259     HRESULT (STDMETHODCALLTYPE *Commit)(
9260         ISpGrammarBuilder* This,
9261         DWORD dwReserved);
9262 
9263     END_INTERFACE
9264 } ISpGrammarBuilderVtbl;
9265 interface ISpGrammarBuilder {
9266     CONST_VTBL ISpGrammarBuilderVtbl* lpVtbl;
9267 };
9268 
9269 #ifdef COBJMACROS
9270 #ifndef WIDL_C_INLINE_WRAPPERS
9271 /*** IUnknown methods ***/
9272 #define ISpGrammarBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9273 #define ISpGrammarBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
9274 #define ISpGrammarBuilder_Release(This) (This)->lpVtbl->Release(This)
9275 /*** ISpGrammarBuilder methods ***/
9276 #define ISpGrammarBuilder_ResetGrammar(This,NewLanguage) (This)->lpVtbl->ResetGrammar(This,NewLanguage)
9277 #define ISpGrammarBuilder_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState) (This)->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
9278 #define ISpGrammarBuilder_ClearRule(This,hState) (This)->lpVtbl->ClearRule(This,hState)
9279 #define ISpGrammarBuilder_CreateNewState(This,hState,phState) (This)->lpVtbl->CreateNewState(This,hState,phState)
9280 #define ISpGrammarBuilder_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo) (This)->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
9281 #define ISpGrammarBuilder_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo) (This)->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
9282 #define ISpGrammarBuilder_AddResource(This,hRuleState,pszResourceName,pszResourceValue) (This)->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue)
9283 #define ISpGrammarBuilder_Commit(This,dwReserved) (This)->lpVtbl->Commit(This,dwReserved)
9284 #else
9285 /*** IUnknown methods ***/
9286 static FORCEINLINE HRESULT ISpGrammarBuilder_QueryInterface(ISpGrammarBuilder* This,REFIID riid,void **ppvObject) {
9287     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9288 }
9289 static FORCEINLINE ULONG ISpGrammarBuilder_AddRef(ISpGrammarBuilder* This) {
9290     return This->lpVtbl->AddRef(This);
9291 }
9292 static FORCEINLINE ULONG ISpGrammarBuilder_Release(ISpGrammarBuilder* This) {
9293     return This->lpVtbl->Release(This);
9294 }
9295 /*** ISpGrammarBuilder methods ***/
9296 static FORCEINLINE HRESULT ISpGrammarBuilder_ResetGrammar(ISpGrammarBuilder* This,WORD NewLanguage) {
9297     return This->lpVtbl->ResetGrammar(This,NewLanguage);
9298 }
9299 static FORCEINLINE HRESULT ISpGrammarBuilder_GetRule(ISpGrammarBuilder* This,LPCWSTR pszRuleName,DWORD dwRuleId,DWORD dwAttributes,WINBOOL fCreateIfNotExist,SPSTATEHANDLE *phInitialState) {
9300     return This->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState);
9301 }
9302 static FORCEINLINE HRESULT ISpGrammarBuilder_ClearRule(ISpGrammarBuilder* This,SPSTATEHANDLE hState) {
9303     return This->lpVtbl->ClearRule(This,hState);
9304 }
9305 static FORCEINLINE HRESULT ISpGrammarBuilder_CreateNewState(ISpGrammarBuilder* This,SPSTATEHANDLE hState,SPSTATEHANDLE *phState) {
9306     return This->lpVtbl->CreateNewState(This,hState,phState);
9307 }
9308 static FORCEINLINE HRESULT ISpGrammarBuilder_AddWordTransition(ISpGrammarBuilder* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,LPCWSTR pszSeparators,SPGRAMMARWORDTYPE eWordType,float Weight,const SPPROPERTYINFO *pPropInfo) {
9309     return This->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo);
9310 }
9311 static FORCEINLINE HRESULT ISpGrammarBuilder_AddRuleTransition(ISpGrammarBuilder* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,SPSTATEHANDLE hRule,float Weight,const SPPROPERTYINFO *pPropInfo) {
9312     return This->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo);
9313 }
9314 static FORCEINLINE HRESULT ISpGrammarBuilder_AddResource(ISpGrammarBuilder* This,SPSTATEHANDLE hRuleState,LPCWSTR pszResourceName,LPCWSTR pszResourceValue) {
9315     return This->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue);
9316 }
9317 static FORCEINLINE HRESULT ISpGrammarBuilder_Commit(ISpGrammarBuilder* This,DWORD dwReserved) {
9318     return This->lpVtbl->Commit(This,dwReserved);
9319 }
9320 #endif
9321 #endif
9322 
9323 #endif
9324 
9325 HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_ResetGrammar_Proxy(
9326     ISpGrammarBuilder* This,
9327     WORD NewLanguage);
9328 void __RPC_STUB ISpGrammarBuilder_ResetGrammar_Stub(
9329     IRpcStubBuffer* This,
9330     IRpcChannelBuffer* pRpcChannelBuffer,
9331     PRPC_MESSAGE pRpcMessage,
9332     DWORD* pdwStubPhase);
9333 HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_GetRule_Proxy(
9334     ISpGrammarBuilder* This,
9335     LPCWSTR pszRuleName,
9336     DWORD dwRuleId,
9337     DWORD dwAttributes,
9338     WINBOOL fCreateIfNotExist,
9339     SPSTATEHANDLE *phInitialState);
9340 void __RPC_STUB ISpGrammarBuilder_GetRule_Stub(
9341     IRpcStubBuffer* This,
9342     IRpcChannelBuffer* pRpcChannelBuffer,
9343     PRPC_MESSAGE pRpcMessage,
9344     DWORD* pdwStubPhase);
9345 HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_ClearRule_Proxy(
9346     ISpGrammarBuilder* This,
9347     SPSTATEHANDLE hState);
9348 void __RPC_STUB ISpGrammarBuilder_ClearRule_Stub(
9349     IRpcStubBuffer* This,
9350     IRpcChannelBuffer* pRpcChannelBuffer,
9351     PRPC_MESSAGE pRpcMessage,
9352     DWORD* pdwStubPhase);
9353 HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_CreateNewState_Proxy(
9354     ISpGrammarBuilder* This,
9355     SPSTATEHANDLE hState,
9356     SPSTATEHANDLE *phState);
9357 void __RPC_STUB ISpGrammarBuilder_CreateNewState_Stub(
9358     IRpcStubBuffer* This,
9359     IRpcChannelBuffer* pRpcChannelBuffer,
9360     PRPC_MESSAGE pRpcMessage,
9361     DWORD* pdwStubPhase);
9362 HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_AddWordTransition_Proxy(
9363     ISpGrammarBuilder* This,
9364     SPSTATEHANDLE hFromState,
9365     SPSTATEHANDLE hToState,
9366     LPCWSTR psz,
9367     LPCWSTR pszSeparators,
9368     SPGRAMMARWORDTYPE eWordType,
9369     float Weight,
9370     const SPPROPERTYINFO *pPropInfo);
9371 void __RPC_STUB ISpGrammarBuilder_AddWordTransition_Stub(
9372     IRpcStubBuffer* This,
9373     IRpcChannelBuffer* pRpcChannelBuffer,
9374     PRPC_MESSAGE pRpcMessage,
9375     DWORD* pdwStubPhase);
9376 HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_AddRuleTransition_Proxy(
9377     ISpGrammarBuilder* This,
9378     SPSTATEHANDLE hFromState,
9379     SPSTATEHANDLE hToState,
9380     SPSTATEHANDLE hRule,
9381     float Weight,
9382     const SPPROPERTYINFO *pPropInfo);
9383 void __RPC_STUB ISpGrammarBuilder_AddRuleTransition_Stub(
9384     IRpcStubBuffer* This,
9385     IRpcChannelBuffer* pRpcChannelBuffer,
9386     PRPC_MESSAGE pRpcMessage,
9387     DWORD* pdwStubPhase);
9388 HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_AddResource_Proxy(
9389     ISpGrammarBuilder* This,
9390     SPSTATEHANDLE hRuleState,
9391     LPCWSTR pszResourceName,
9392     LPCWSTR pszResourceValue);
9393 void __RPC_STUB ISpGrammarBuilder_AddResource_Stub(
9394     IRpcStubBuffer* This,
9395     IRpcChannelBuffer* pRpcChannelBuffer,
9396     PRPC_MESSAGE pRpcMessage,
9397     DWORD* pdwStubPhase);
9398 HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_Commit_Proxy(
9399     ISpGrammarBuilder* This,
9400     DWORD dwReserved);
9401 void __RPC_STUB ISpGrammarBuilder_Commit_Stub(
9402     IRpcStubBuffer* This,
9403     IRpcChannelBuffer* pRpcChannelBuffer,
9404     PRPC_MESSAGE pRpcMessage,
9405     DWORD* pdwStubPhase);
9406 
9407 #endif  /* __ISpGrammarBuilder_INTERFACE_DEFINED__ */
9408 
9409 typedef enum SPLOADOPTIONS {
9410     SPLO_STATIC = 0,
9411     SPLO_DYNAMIC = 1
9412 } SPLOADOPTIONS;
9413 /*****************************************************************************
9414  * ISpRecoGrammar interface
9415  */
9416 #ifndef __ISpRecoGrammar_INTERFACE_DEFINED__
9417 #define __ISpRecoGrammar_INTERFACE_DEFINED__
9418 
9419 DEFINE_GUID(IID_ISpRecoGrammar, 0x2177db29, 0x7f45, 0x47d0, 0x85,0x54, 0x06,0x7e,0x91,0xc8,0x05,0x02);
9420 #if defined(__cplusplus) && !defined(CINTERFACE)
9421 MIDL_INTERFACE("2177db29-7f45-47d0-8554-067e91c80502")
9422 ISpRecoGrammar : public ISpGrammarBuilder
9423 {
9424     virtual HRESULT STDMETHODCALLTYPE GetGrammarId(
9425         ULONGLONG *pullGrammarId) = 0;
9426 
9427     virtual HRESULT STDMETHODCALLTYPE GetRecoContext(
9428         ISpRecoContext **ppRecoCtxt) = 0;
9429 
9430     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromFile(
9431         LPCWSTR pszFileName,
9432         SPLOADOPTIONS Options) = 0;
9433 
9434     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromObject(
9435         REFCLSID rcid,
9436         LPCWSTR pszGrammarName,
9437         SPLOADOPTIONS Options) = 0;
9438 
9439     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromResource(
9440         HMODULE hModule,
9441         LPCWSTR pszResourceName,
9442         LPCWSTR pszResourceType,
9443         WORD wLanguage,
9444         SPLOADOPTIONS Options) = 0;
9445 
9446     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromMemory(
9447         const SPBINARYGRAMMAR *pGrammar,
9448         SPLOADOPTIONS Options) = 0;
9449 
9450     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromProprietaryGrammar(
9451         REFGUID rguidParam,
9452         LPCWSTR pszStringParam,
9453         const void *pvDataPrarm,
9454         ULONG cbDataSize,
9455         SPLOADOPTIONS Options) = 0;
9456 
9457     virtual HRESULT STDMETHODCALLTYPE SetRuleState(
9458         LPCWSTR pszName,
9459         void *pReserved,
9460         SPRULESTATE NewState) = 0;
9461 
9462     virtual HRESULT STDMETHODCALLTYPE SetRuleIdState(
9463         ULONG ulRuleId,
9464         SPRULESTATE NewState) = 0;
9465 
9466     virtual HRESULT STDMETHODCALLTYPE LoadDictation(
9467         LPCWSTR pszTopicName,
9468         SPLOADOPTIONS Options) = 0;
9469 
9470     virtual HRESULT STDMETHODCALLTYPE UnloadDictation(
9471         ) = 0;
9472 
9473     virtual HRESULT STDMETHODCALLTYPE SetDictationState(
9474         SPRULESTATE NewState) = 0;
9475 
9476     virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData(
9477         const WCHAR *pText,
9478         ULONG cchText,
9479         const SPTEXTSELECTIONINFO *pInfo) = 0;
9480 
9481     virtual HRESULT STDMETHODCALLTYPE SetTextSelection(
9482         const SPTEXTSELECTIONINFO *pInfo) = 0;
9483 
9484     virtual HRESULT STDMETHODCALLTYPE IsPronounceable(
9485         LPCWSTR pszWord,
9486         SPWORDPRONOUNCEABLE *pWordPronounceable) = 0;
9487 
9488     virtual HRESULT STDMETHODCALLTYPE SetGrammarState(
9489         SPGRAMMARSTATE eGrammarState) = 0;
9490 
9491     virtual HRESULT STDMETHODCALLTYPE SaveCmd(
9492         IStream *pStream,
9493         LPWSTR *ppszCoMemErrorText) = 0;
9494 
9495     virtual HRESULT STDMETHODCALLTYPE GetGrammarState(
9496         SPGRAMMARSTATE *peGrammarState) = 0;
9497 
9498 };
9499 #ifdef __CRT_UUID_DECL
9500 __CRT_UUID_DECL(ISpRecoGrammar, 0x2177db29, 0x7f45, 0x47d0, 0x85,0x54, 0x06,0x7e,0x91,0xc8,0x05,0x02)
9501 #endif
9502 #else
9503 typedef struct ISpRecoGrammarVtbl {
9504     BEGIN_INTERFACE
9505 
9506     /*** IUnknown methods ***/
9507     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9508         ISpRecoGrammar* This,
9509         REFIID riid,
9510         void **ppvObject);
9511 
9512     ULONG (STDMETHODCALLTYPE *AddRef)(
9513         ISpRecoGrammar* This);
9514 
9515     ULONG (STDMETHODCALLTYPE *Release)(
9516         ISpRecoGrammar* This);
9517 
9518     /*** ISpGrammarBuilder methods ***/
9519     HRESULT (STDMETHODCALLTYPE *ResetGrammar)(
9520         ISpRecoGrammar* This,
9521         WORD NewLanguage);
9522 
9523     HRESULT (STDMETHODCALLTYPE *GetRule)(
9524         ISpRecoGrammar* This,
9525         LPCWSTR pszRuleName,
9526         DWORD dwRuleId,
9527         DWORD dwAttributes,
9528         WINBOOL fCreateIfNotExist,
9529         SPSTATEHANDLE *phInitialState);
9530 
9531     HRESULT (STDMETHODCALLTYPE *ClearRule)(
9532         ISpRecoGrammar* This,
9533         SPSTATEHANDLE hState);
9534 
9535     HRESULT (STDMETHODCALLTYPE *CreateNewState)(
9536         ISpRecoGrammar* This,
9537         SPSTATEHANDLE hState,
9538         SPSTATEHANDLE *phState);
9539 
9540     HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
9541         ISpRecoGrammar* This,
9542         SPSTATEHANDLE hFromState,
9543         SPSTATEHANDLE hToState,
9544         LPCWSTR psz,
9545         LPCWSTR pszSeparators,
9546         SPGRAMMARWORDTYPE eWordType,
9547         float Weight,
9548         const SPPROPERTYINFO *pPropInfo);
9549 
9550     HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
9551         ISpRecoGrammar* This,
9552         SPSTATEHANDLE hFromState,
9553         SPSTATEHANDLE hToState,
9554         SPSTATEHANDLE hRule,
9555         float Weight,
9556         const SPPROPERTYINFO *pPropInfo);
9557 
9558     HRESULT (STDMETHODCALLTYPE *AddResource)(
9559         ISpRecoGrammar* This,
9560         SPSTATEHANDLE hRuleState,
9561         LPCWSTR pszResourceName,
9562         LPCWSTR pszResourceValue);
9563 
9564     HRESULT (STDMETHODCALLTYPE *Commit)(
9565         ISpRecoGrammar* This,
9566         DWORD dwReserved);
9567 
9568     /*** ISpRecoGrammar methods ***/
9569     HRESULT (STDMETHODCALLTYPE *GetGrammarId)(
9570         ISpRecoGrammar* This,
9571         ULONGLONG *pullGrammarId);
9572 
9573     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
9574         ISpRecoGrammar* This,
9575         ISpRecoContext **ppRecoCtxt);
9576 
9577     HRESULT (STDMETHODCALLTYPE *LoadCmdFromFile)(
9578         ISpRecoGrammar* This,
9579         LPCWSTR pszFileName,
9580         SPLOADOPTIONS Options);
9581 
9582     HRESULT (STDMETHODCALLTYPE *LoadCmdFromObject)(
9583         ISpRecoGrammar* This,
9584         REFCLSID rcid,
9585         LPCWSTR pszGrammarName,
9586         SPLOADOPTIONS Options);
9587 
9588     HRESULT (STDMETHODCALLTYPE *LoadCmdFromResource)(
9589         ISpRecoGrammar* This,
9590         HMODULE hModule,
9591         LPCWSTR pszResourceName,
9592         LPCWSTR pszResourceType,
9593         WORD wLanguage,
9594         SPLOADOPTIONS Options);
9595 
9596     HRESULT (STDMETHODCALLTYPE *LoadCmdFromMemory)(
9597         ISpRecoGrammar* This,
9598         const SPBINARYGRAMMAR *pGrammar,
9599         SPLOADOPTIONS Options);
9600 
9601     HRESULT (STDMETHODCALLTYPE *LoadCmdFromProprietaryGrammar)(
9602         ISpRecoGrammar* This,
9603         REFGUID rguidParam,
9604         LPCWSTR pszStringParam,
9605         const void *pvDataPrarm,
9606         ULONG cbDataSize,
9607         SPLOADOPTIONS Options);
9608 
9609     HRESULT (STDMETHODCALLTYPE *SetRuleState)(
9610         ISpRecoGrammar* This,
9611         LPCWSTR pszName,
9612         void *pReserved,
9613         SPRULESTATE NewState);
9614 
9615     HRESULT (STDMETHODCALLTYPE *SetRuleIdState)(
9616         ISpRecoGrammar* This,
9617         ULONG ulRuleId,
9618         SPRULESTATE NewState);
9619 
9620     HRESULT (STDMETHODCALLTYPE *LoadDictation)(
9621         ISpRecoGrammar* This,
9622         LPCWSTR pszTopicName,
9623         SPLOADOPTIONS Options);
9624 
9625     HRESULT (STDMETHODCALLTYPE *UnloadDictation)(
9626         ISpRecoGrammar* This);
9627 
9628     HRESULT (STDMETHODCALLTYPE *SetDictationState)(
9629         ISpRecoGrammar* This,
9630         SPRULESTATE NewState);
9631 
9632     HRESULT (STDMETHODCALLTYPE *SetWordSequenceData)(
9633         ISpRecoGrammar* This,
9634         const WCHAR *pText,
9635         ULONG cchText,
9636         const SPTEXTSELECTIONINFO *pInfo);
9637 
9638     HRESULT (STDMETHODCALLTYPE *SetTextSelection)(
9639         ISpRecoGrammar* This,
9640         const SPTEXTSELECTIONINFO *pInfo);
9641 
9642     HRESULT (STDMETHODCALLTYPE *IsPronounceable)(
9643         ISpRecoGrammar* This,
9644         LPCWSTR pszWord,
9645         SPWORDPRONOUNCEABLE *pWordPronounceable);
9646 
9647     HRESULT (STDMETHODCALLTYPE *SetGrammarState)(
9648         ISpRecoGrammar* This,
9649         SPGRAMMARSTATE eGrammarState);
9650 
9651     HRESULT (STDMETHODCALLTYPE *SaveCmd)(
9652         ISpRecoGrammar* This,
9653         IStream *pStream,
9654         LPWSTR *ppszCoMemErrorText);
9655 
9656     HRESULT (STDMETHODCALLTYPE *GetGrammarState)(
9657         ISpRecoGrammar* This,
9658         SPGRAMMARSTATE *peGrammarState);
9659 
9660     END_INTERFACE
9661 } ISpRecoGrammarVtbl;
9662 interface ISpRecoGrammar {
9663     CONST_VTBL ISpRecoGrammarVtbl* lpVtbl;
9664 };
9665 
9666 #ifdef COBJMACROS
9667 #ifndef WIDL_C_INLINE_WRAPPERS
9668 /*** IUnknown methods ***/
9669 #define ISpRecoGrammar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9670 #define ISpRecoGrammar_AddRef(This) (This)->lpVtbl->AddRef(This)
9671 #define ISpRecoGrammar_Release(This) (This)->lpVtbl->Release(This)
9672 /*** ISpGrammarBuilder methods ***/
9673 #define ISpRecoGrammar_ResetGrammar(This,NewLanguage) (This)->lpVtbl->ResetGrammar(This,NewLanguage)
9674 #define ISpRecoGrammar_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState) (This)->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
9675 #define ISpRecoGrammar_ClearRule(This,hState) (This)->lpVtbl->ClearRule(This,hState)
9676 #define ISpRecoGrammar_CreateNewState(This,hState,phState) (This)->lpVtbl->CreateNewState(This,hState,phState)
9677 #define ISpRecoGrammar_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo) (This)->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
9678 #define ISpRecoGrammar_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo) (This)->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
9679 #define ISpRecoGrammar_AddResource(This,hRuleState,pszResourceName,pszResourceValue) (This)->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue)
9680 #define ISpRecoGrammar_Commit(This,dwReserved) (This)->lpVtbl->Commit(This,dwReserved)
9681 /*** ISpRecoGrammar methods ***/
9682 #define ISpRecoGrammar_GetGrammarId(This,pullGrammarId) (This)->lpVtbl->GetGrammarId(This,pullGrammarId)
9683 #define ISpRecoGrammar_GetRecoContext(This,ppRecoCtxt) (This)->lpVtbl->GetRecoContext(This,ppRecoCtxt)
9684 #define ISpRecoGrammar_LoadCmdFromFile(This,pszFileName,Options) (This)->lpVtbl->LoadCmdFromFile(This,pszFileName,Options)
9685 #define ISpRecoGrammar_LoadCmdFromObject(This,rcid,pszGrammarName,Options) (This)->lpVtbl->LoadCmdFromObject(This,rcid,pszGrammarName,Options)
9686 #define ISpRecoGrammar_LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options) (This)->lpVtbl->LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options)
9687 #define ISpRecoGrammar_LoadCmdFromMemory(This,pGrammar,Options) (This)->lpVtbl->LoadCmdFromMemory(This,pGrammar,Options)
9688 #define ISpRecoGrammar_LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options) (This)->lpVtbl->LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options)
9689 #define ISpRecoGrammar_SetRuleState(This,pszName,pReserved,NewState) (This)->lpVtbl->SetRuleState(This,pszName,pReserved,NewState)
9690 #define ISpRecoGrammar_SetRuleIdState(This,ulRuleId,NewState) (This)->lpVtbl->SetRuleIdState(This,ulRuleId,NewState)
9691 #define ISpRecoGrammar_LoadDictation(This,pszTopicName,Options) (This)->lpVtbl->LoadDictation(This,pszTopicName,Options)
9692 #define ISpRecoGrammar_UnloadDictation(This) (This)->lpVtbl->UnloadDictation(This)
9693 #define ISpRecoGrammar_SetDictationState(This,NewState) (This)->lpVtbl->SetDictationState(This,NewState)
9694 #define ISpRecoGrammar_SetWordSequenceData(This,pText,cchText,pInfo) (This)->lpVtbl->SetWordSequenceData(This,pText,cchText,pInfo)
9695 #define ISpRecoGrammar_SetTextSelection(This,pInfo) (This)->lpVtbl->SetTextSelection(This,pInfo)
9696 #define ISpRecoGrammar_IsPronounceable(This,pszWord,pWordPronounceable) (This)->lpVtbl->IsPronounceable(This,pszWord,pWordPronounceable)
9697 #define ISpRecoGrammar_SetGrammarState(This,eGrammarState) (This)->lpVtbl->SetGrammarState(This,eGrammarState)
9698 #define ISpRecoGrammar_SaveCmd(This,pStream,ppszCoMemErrorText) (This)->lpVtbl->SaveCmd(This,pStream,ppszCoMemErrorText)
9699 #define ISpRecoGrammar_GetGrammarState(This,peGrammarState) (This)->lpVtbl->GetGrammarState(This,peGrammarState)
9700 #else
9701 /*** IUnknown methods ***/
9702 static FORCEINLINE HRESULT ISpRecoGrammar_QueryInterface(ISpRecoGrammar* This,REFIID riid,void **ppvObject) {
9703     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9704 }
9705 static FORCEINLINE ULONG ISpRecoGrammar_AddRef(ISpRecoGrammar* This) {
9706     return This->lpVtbl->AddRef(This);
9707 }
9708 static FORCEINLINE ULONG ISpRecoGrammar_Release(ISpRecoGrammar* This) {
9709     return This->lpVtbl->Release(This);
9710 }
9711 /*** ISpGrammarBuilder methods ***/
9712 static FORCEINLINE HRESULT ISpRecoGrammar_ResetGrammar(ISpRecoGrammar* This,WORD NewLanguage) {
9713     return This->lpVtbl->ResetGrammar(This,NewLanguage);
9714 }
9715 static FORCEINLINE HRESULT ISpRecoGrammar_GetRule(ISpRecoGrammar* This,LPCWSTR pszRuleName,DWORD dwRuleId,DWORD dwAttributes,WINBOOL fCreateIfNotExist,SPSTATEHANDLE *phInitialState) {
9716     return This->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState);
9717 }
9718 static FORCEINLINE HRESULT ISpRecoGrammar_ClearRule(ISpRecoGrammar* This,SPSTATEHANDLE hState) {
9719     return This->lpVtbl->ClearRule(This,hState);
9720 }
9721 static FORCEINLINE HRESULT ISpRecoGrammar_CreateNewState(ISpRecoGrammar* This,SPSTATEHANDLE hState,SPSTATEHANDLE *phState) {
9722     return This->lpVtbl->CreateNewState(This,hState,phState);
9723 }
9724 static FORCEINLINE HRESULT ISpRecoGrammar_AddWordTransition(ISpRecoGrammar* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,LPCWSTR pszSeparators,SPGRAMMARWORDTYPE eWordType,float Weight,const SPPROPERTYINFO *pPropInfo) {
9725     return This->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo);
9726 }
9727 static FORCEINLINE HRESULT ISpRecoGrammar_AddRuleTransition(ISpRecoGrammar* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,SPSTATEHANDLE hRule,float Weight,const SPPROPERTYINFO *pPropInfo) {
9728     return This->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo);
9729 }
9730 static FORCEINLINE HRESULT ISpRecoGrammar_AddResource(ISpRecoGrammar* This,SPSTATEHANDLE hRuleState,LPCWSTR pszResourceName,LPCWSTR pszResourceValue) {
9731     return This->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue);
9732 }
9733 static FORCEINLINE HRESULT ISpRecoGrammar_Commit(ISpRecoGrammar* This,DWORD dwReserved) {
9734     return This->lpVtbl->Commit(This,dwReserved);
9735 }
9736 /*** ISpRecoGrammar methods ***/
9737 static FORCEINLINE HRESULT ISpRecoGrammar_GetGrammarId(ISpRecoGrammar* This,ULONGLONG *pullGrammarId) {
9738     return This->lpVtbl->GetGrammarId(This,pullGrammarId);
9739 }
9740 static FORCEINLINE HRESULT ISpRecoGrammar_GetRecoContext(ISpRecoGrammar* This,ISpRecoContext **ppRecoCtxt) {
9741     return This->lpVtbl->GetRecoContext(This,ppRecoCtxt);
9742 }
9743 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromFile(ISpRecoGrammar* This,LPCWSTR pszFileName,SPLOADOPTIONS Options) {
9744     return This->lpVtbl->LoadCmdFromFile(This,pszFileName,Options);
9745 }
9746 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromObject(ISpRecoGrammar* This,REFCLSID rcid,LPCWSTR pszGrammarName,SPLOADOPTIONS Options) {
9747     return This->lpVtbl->LoadCmdFromObject(This,rcid,pszGrammarName,Options);
9748 }
9749 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromResource(ISpRecoGrammar* This,HMODULE hModule,LPCWSTR pszResourceName,LPCWSTR pszResourceType,WORD wLanguage,SPLOADOPTIONS Options) {
9750     return This->lpVtbl->LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options);
9751 }
9752 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromMemory(ISpRecoGrammar* This,const SPBINARYGRAMMAR *pGrammar,SPLOADOPTIONS Options) {
9753     return This->lpVtbl->LoadCmdFromMemory(This,pGrammar,Options);
9754 }
9755 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromProprietaryGrammar(ISpRecoGrammar* This,REFGUID rguidParam,LPCWSTR pszStringParam,const void *pvDataPrarm,ULONG cbDataSize,SPLOADOPTIONS Options) {
9756     return This->lpVtbl->LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options);
9757 }
9758 static FORCEINLINE HRESULT ISpRecoGrammar_SetRuleState(ISpRecoGrammar* This,LPCWSTR pszName,void *pReserved,SPRULESTATE NewState) {
9759     return This->lpVtbl->SetRuleState(This,pszName,pReserved,NewState);
9760 }
9761 static FORCEINLINE HRESULT ISpRecoGrammar_SetRuleIdState(ISpRecoGrammar* This,ULONG ulRuleId,SPRULESTATE NewState) {
9762     return This->lpVtbl->SetRuleIdState(This,ulRuleId,NewState);
9763 }
9764 static FORCEINLINE HRESULT ISpRecoGrammar_LoadDictation(ISpRecoGrammar* This,LPCWSTR pszTopicName,SPLOADOPTIONS Options) {
9765     return This->lpVtbl->LoadDictation(This,pszTopicName,Options);
9766 }
9767 static FORCEINLINE HRESULT ISpRecoGrammar_UnloadDictation(ISpRecoGrammar* This) {
9768     return This->lpVtbl->UnloadDictation(This);
9769 }
9770 static FORCEINLINE HRESULT ISpRecoGrammar_SetDictationState(ISpRecoGrammar* This,SPRULESTATE NewState) {
9771     return This->lpVtbl->SetDictationState(This,NewState);
9772 }
9773 static FORCEINLINE HRESULT ISpRecoGrammar_SetWordSequenceData(ISpRecoGrammar* This,const WCHAR *pText,ULONG cchText,const SPTEXTSELECTIONINFO *pInfo) {
9774     return This->lpVtbl->SetWordSequenceData(This,pText,cchText,pInfo);
9775 }
9776 static FORCEINLINE HRESULT ISpRecoGrammar_SetTextSelection(ISpRecoGrammar* This,const SPTEXTSELECTIONINFO *pInfo) {
9777     return This->lpVtbl->SetTextSelection(This,pInfo);
9778 }
9779 static FORCEINLINE HRESULT ISpRecoGrammar_IsPronounceable(ISpRecoGrammar* This,LPCWSTR pszWord,SPWORDPRONOUNCEABLE *pWordPronounceable) {
9780     return This->lpVtbl->IsPronounceable(This,pszWord,pWordPronounceable);
9781 }
9782 static FORCEINLINE HRESULT ISpRecoGrammar_SetGrammarState(ISpRecoGrammar* This,SPGRAMMARSTATE eGrammarState) {
9783     return This->lpVtbl->SetGrammarState(This,eGrammarState);
9784 }
9785 static FORCEINLINE HRESULT ISpRecoGrammar_SaveCmd(ISpRecoGrammar* This,IStream *pStream,LPWSTR *ppszCoMemErrorText) {
9786     return This->lpVtbl->SaveCmd(This,pStream,ppszCoMemErrorText);
9787 }
9788 static FORCEINLINE HRESULT ISpRecoGrammar_GetGrammarState(ISpRecoGrammar* This,SPGRAMMARSTATE *peGrammarState) {
9789     return This->lpVtbl->GetGrammarState(This,peGrammarState);
9790 }
9791 #endif
9792 #endif
9793 
9794 #endif
9795 
9796 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_GetGrammarId_Proxy(
9797     ISpRecoGrammar* This,
9798     ULONGLONG *pullGrammarId);
9799 void __RPC_STUB ISpRecoGrammar_GetGrammarId_Stub(
9800     IRpcStubBuffer* This,
9801     IRpcChannelBuffer* pRpcChannelBuffer,
9802     PRPC_MESSAGE pRpcMessage,
9803     DWORD* pdwStubPhase);
9804 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_GetRecoContext_Proxy(
9805     ISpRecoGrammar* This,
9806     ISpRecoContext **ppRecoCtxt);
9807 void __RPC_STUB ISpRecoGrammar_GetRecoContext_Stub(
9808     IRpcStubBuffer* This,
9809     IRpcChannelBuffer* pRpcChannelBuffer,
9810     PRPC_MESSAGE pRpcMessage,
9811     DWORD* pdwStubPhase);
9812 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadCmdFromFile_Proxy(
9813     ISpRecoGrammar* This,
9814     LPCWSTR pszFileName,
9815     SPLOADOPTIONS Options);
9816 void __RPC_STUB ISpRecoGrammar_LoadCmdFromFile_Stub(
9817     IRpcStubBuffer* This,
9818     IRpcChannelBuffer* pRpcChannelBuffer,
9819     PRPC_MESSAGE pRpcMessage,
9820     DWORD* pdwStubPhase);
9821 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadCmdFromObject_Proxy(
9822     ISpRecoGrammar* This,
9823     REFCLSID rcid,
9824     LPCWSTR pszGrammarName,
9825     SPLOADOPTIONS Options);
9826 void __RPC_STUB ISpRecoGrammar_LoadCmdFromObject_Stub(
9827     IRpcStubBuffer* This,
9828     IRpcChannelBuffer* pRpcChannelBuffer,
9829     PRPC_MESSAGE pRpcMessage,
9830     DWORD* pdwStubPhase);
9831 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadCmdFromResource_Proxy(
9832     ISpRecoGrammar* This,
9833     HMODULE hModule,
9834     LPCWSTR pszResourceName,
9835     LPCWSTR pszResourceType,
9836     WORD wLanguage,
9837     SPLOADOPTIONS Options);
9838 void __RPC_STUB ISpRecoGrammar_LoadCmdFromResource_Stub(
9839     IRpcStubBuffer* This,
9840     IRpcChannelBuffer* pRpcChannelBuffer,
9841     PRPC_MESSAGE pRpcMessage,
9842     DWORD* pdwStubPhase);
9843 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadCmdFromMemory_Proxy(
9844     ISpRecoGrammar* This,
9845     const SPBINARYGRAMMAR *pGrammar,
9846     SPLOADOPTIONS Options);
9847 void __RPC_STUB ISpRecoGrammar_LoadCmdFromMemory_Stub(
9848     IRpcStubBuffer* This,
9849     IRpcChannelBuffer* pRpcChannelBuffer,
9850     PRPC_MESSAGE pRpcMessage,
9851     DWORD* pdwStubPhase);
9852 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadCmdFromProprietaryGrammar_Proxy(
9853     ISpRecoGrammar* This,
9854     REFGUID rguidParam,
9855     LPCWSTR pszStringParam,
9856     const void *pvDataPrarm,
9857     ULONG cbDataSize,
9858     SPLOADOPTIONS Options);
9859 void __RPC_STUB ISpRecoGrammar_LoadCmdFromProprietaryGrammar_Stub(
9860     IRpcStubBuffer* This,
9861     IRpcChannelBuffer* pRpcChannelBuffer,
9862     PRPC_MESSAGE pRpcMessage,
9863     DWORD* pdwStubPhase);
9864 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetRuleState_Proxy(
9865     ISpRecoGrammar* This,
9866     LPCWSTR pszName,
9867     void *pReserved,
9868     SPRULESTATE NewState);
9869 void __RPC_STUB ISpRecoGrammar_SetRuleState_Stub(
9870     IRpcStubBuffer* This,
9871     IRpcChannelBuffer* pRpcChannelBuffer,
9872     PRPC_MESSAGE pRpcMessage,
9873     DWORD* pdwStubPhase);
9874 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetRuleIdState_Proxy(
9875     ISpRecoGrammar* This,
9876     ULONG ulRuleId,
9877     SPRULESTATE NewState);
9878 void __RPC_STUB ISpRecoGrammar_SetRuleIdState_Stub(
9879     IRpcStubBuffer* This,
9880     IRpcChannelBuffer* pRpcChannelBuffer,
9881     PRPC_MESSAGE pRpcMessage,
9882     DWORD* pdwStubPhase);
9883 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadDictation_Proxy(
9884     ISpRecoGrammar* This,
9885     LPCWSTR pszTopicName,
9886     SPLOADOPTIONS Options);
9887 void __RPC_STUB ISpRecoGrammar_LoadDictation_Stub(
9888     IRpcStubBuffer* This,
9889     IRpcChannelBuffer* pRpcChannelBuffer,
9890     PRPC_MESSAGE pRpcMessage,
9891     DWORD* pdwStubPhase);
9892 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_UnloadDictation_Proxy(
9893     ISpRecoGrammar* This);
9894 void __RPC_STUB ISpRecoGrammar_UnloadDictation_Stub(
9895     IRpcStubBuffer* This,
9896     IRpcChannelBuffer* pRpcChannelBuffer,
9897     PRPC_MESSAGE pRpcMessage,
9898     DWORD* pdwStubPhase);
9899 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetDictationState_Proxy(
9900     ISpRecoGrammar* This,
9901     SPRULESTATE NewState);
9902 void __RPC_STUB ISpRecoGrammar_SetDictationState_Stub(
9903     IRpcStubBuffer* This,
9904     IRpcChannelBuffer* pRpcChannelBuffer,
9905     PRPC_MESSAGE pRpcMessage,
9906     DWORD* pdwStubPhase);
9907 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetWordSequenceData_Proxy(
9908     ISpRecoGrammar* This,
9909     const WCHAR *pText,
9910     ULONG cchText,
9911     const SPTEXTSELECTIONINFO *pInfo);
9912 void __RPC_STUB ISpRecoGrammar_SetWordSequenceData_Stub(
9913     IRpcStubBuffer* This,
9914     IRpcChannelBuffer* pRpcChannelBuffer,
9915     PRPC_MESSAGE pRpcMessage,
9916     DWORD* pdwStubPhase);
9917 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetTextSelection_Proxy(
9918     ISpRecoGrammar* This,
9919     const SPTEXTSELECTIONINFO *pInfo);
9920 void __RPC_STUB ISpRecoGrammar_SetTextSelection_Stub(
9921     IRpcStubBuffer* This,
9922     IRpcChannelBuffer* pRpcChannelBuffer,
9923     PRPC_MESSAGE pRpcMessage,
9924     DWORD* pdwStubPhase);
9925 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_IsPronounceable_Proxy(
9926     ISpRecoGrammar* This,
9927     LPCWSTR pszWord,
9928     SPWORDPRONOUNCEABLE *pWordPronounceable);
9929 void __RPC_STUB ISpRecoGrammar_IsPronounceable_Stub(
9930     IRpcStubBuffer* This,
9931     IRpcChannelBuffer* pRpcChannelBuffer,
9932     PRPC_MESSAGE pRpcMessage,
9933     DWORD* pdwStubPhase);
9934 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetGrammarState_Proxy(
9935     ISpRecoGrammar* This,
9936     SPGRAMMARSTATE eGrammarState);
9937 void __RPC_STUB ISpRecoGrammar_SetGrammarState_Stub(
9938     IRpcStubBuffer* This,
9939     IRpcChannelBuffer* pRpcChannelBuffer,
9940     PRPC_MESSAGE pRpcMessage,
9941     DWORD* pdwStubPhase);
9942 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SaveCmd_Proxy(
9943     ISpRecoGrammar* This,
9944     IStream *pStream,
9945     LPWSTR *ppszCoMemErrorText);
9946 void __RPC_STUB ISpRecoGrammar_SaveCmd_Stub(
9947     IRpcStubBuffer* This,
9948     IRpcChannelBuffer* pRpcChannelBuffer,
9949     PRPC_MESSAGE pRpcMessage,
9950     DWORD* pdwStubPhase);
9951 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_GetGrammarState_Proxy(
9952     ISpRecoGrammar* This,
9953     SPGRAMMARSTATE *peGrammarState);
9954 void __RPC_STUB ISpRecoGrammar_GetGrammarState_Stub(
9955     IRpcStubBuffer* This,
9956     IRpcChannelBuffer* pRpcChannelBuffer,
9957     PRPC_MESSAGE pRpcMessage,
9958     DWORD* pdwStubPhase);
9959 
9960 #endif  /* __ISpRecoGrammar_INTERFACE_DEFINED__ */
9961 
9962 typedef enum SPMATCHINGMODE {
9963     AllWords = 0,
9964     Subsequence = 1,
9965     OrderedSubset = 3,
9966     SubsequenceContentRequired = 5,
9967     OrderedSubsetContentRequired = 7
9968 } SPMATCHINGMODE;
9969 typedef enum PHONETICALPHABET {
9970     PA_Ipa = 0,
9971     PA_Ups = 1,
9972     PA_Sapi = 2
9973 } PHONETICALPHABET;
9974 /*****************************************************************************
9975  * ISpGrammarBuilder2 interface
9976  */
9977 #ifndef __ISpGrammarBuilder2_INTERFACE_DEFINED__
9978 #define __ISpGrammarBuilder2_INTERFACE_DEFINED__
9979 
9980 DEFINE_GUID(IID_ISpGrammarBuilder2, 0x8ab10026, 0x20cc, 0x4b20, 0x8c,0x22, 0xa4,0x9c,0x9b,0xa7,0x8f,0x60);
9981 #if defined(__cplusplus) && !defined(CINTERFACE)
9982 MIDL_INTERFACE("8ab10026-20cc-4b20-8c22-a49c9ba78f60")
9983 ISpGrammarBuilder2 : public IUnknown
9984 {
9985     virtual HRESULT STDMETHODCALLTYPE AddTextSubset(
9986         SPSTATEHANDLE hFromState,
9987         SPSTATEHANDLE hToState,
9988         LPCWSTR psz,
9989         SPMATCHINGMODE eMatchMode) = 0;
9990 
9991     virtual HRESULT STDMETHODCALLTYPE SetPhoneticAlphabet(
9992         PHONETICALPHABET phoneticALphabet) = 0;
9993 
9994 };
9995 #ifdef __CRT_UUID_DECL
9996 __CRT_UUID_DECL(ISpGrammarBuilder2, 0x8ab10026, 0x20cc, 0x4b20, 0x8c,0x22, 0xa4,0x9c,0x9b,0xa7,0x8f,0x60)
9997 #endif
9998 #else
9999 typedef struct ISpGrammarBuilder2Vtbl {
10000     BEGIN_INTERFACE
10001 
10002     /*** IUnknown methods ***/
10003     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10004         ISpGrammarBuilder2* This,
10005         REFIID riid,
10006         void **ppvObject);
10007 
10008     ULONG (STDMETHODCALLTYPE *AddRef)(
10009         ISpGrammarBuilder2* This);
10010 
10011     ULONG (STDMETHODCALLTYPE *Release)(
10012         ISpGrammarBuilder2* This);
10013 
10014     /*** ISpGrammarBuilder2 methods ***/
10015     HRESULT (STDMETHODCALLTYPE *AddTextSubset)(
10016         ISpGrammarBuilder2* This,
10017         SPSTATEHANDLE hFromState,
10018         SPSTATEHANDLE hToState,
10019         LPCWSTR psz,
10020         SPMATCHINGMODE eMatchMode);
10021 
10022     HRESULT (STDMETHODCALLTYPE *SetPhoneticAlphabet)(
10023         ISpGrammarBuilder2* This,
10024         PHONETICALPHABET phoneticALphabet);
10025 
10026     END_INTERFACE
10027 } ISpGrammarBuilder2Vtbl;
10028 interface ISpGrammarBuilder2 {
10029     CONST_VTBL ISpGrammarBuilder2Vtbl* lpVtbl;
10030 };
10031 
10032 #ifdef COBJMACROS
10033 #ifndef WIDL_C_INLINE_WRAPPERS
10034 /*** IUnknown methods ***/
10035 #define ISpGrammarBuilder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10036 #define ISpGrammarBuilder2_AddRef(This) (This)->lpVtbl->AddRef(This)
10037 #define ISpGrammarBuilder2_Release(This) (This)->lpVtbl->Release(This)
10038 /*** ISpGrammarBuilder2 methods ***/
10039 #define ISpGrammarBuilder2_AddTextSubset(This,hFromState,hToState,psz,eMatchMode) (This)->lpVtbl->AddTextSubset(This,hFromState,hToState,psz,eMatchMode)
10040 #define ISpGrammarBuilder2_SetPhoneticAlphabet(This,phoneticALphabet) (This)->lpVtbl->SetPhoneticAlphabet(This,phoneticALphabet)
10041 #else
10042 /*** IUnknown methods ***/
10043 static FORCEINLINE HRESULT ISpGrammarBuilder2_QueryInterface(ISpGrammarBuilder2* This,REFIID riid,void **ppvObject) {
10044     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10045 }
10046 static FORCEINLINE ULONG ISpGrammarBuilder2_AddRef(ISpGrammarBuilder2* This) {
10047     return This->lpVtbl->AddRef(This);
10048 }
10049 static FORCEINLINE ULONG ISpGrammarBuilder2_Release(ISpGrammarBuilder2* This) {
10050     return This->lpVtbl->Release(This);
10051 }
10052 /*** ISpGrammarBuilder2 methods ***/
10053 static FORCEINLINE HRESULT ISpGrammarBuilder2_AddTextSubset(ISpGrammarBuilder2* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,SPMATCHINGMODE eMatchMode) {
10054     return This->lpVtbl->AddTextSubset(This,hFromState,hToState,psz,eMatchMode);
10055 }
10056 static FORCEINLINE HRESULT ISpGrammarBuilder2_SetPhoneticAlphabet(ISpGrammarBuilder2* This,PHONETICALPHABET phoneticALphabet) {
10057     return This->lpVtbl->SetPhoneticAlphabet(This,phoneticALphabet);
10058 }
10059 #endif
10060 #endif
10061 
10062 #endif
10063 
10064 HRESULT STDMETHODCALLTYPE ISpGrammarBuilder2_AddTextSubset_Proxy(
10065     ISpGrammarBuilder2* This,
10066     SPSTATEHANDLE hFromState,
10067     SPSTATEHANDLE hToState,
10068     LPCWSTR psz,
10069     SPMATCHINGMODE eMatchMode);
10070 void __RPC_STUB ISpGrammarBuilder2_AddTextSubset_Stub(
10071     IRpcStubBuffer* This,
10072     IRpcChannelBuffer* pRpcChannelBuffer,
10073     PRPC_MESSAGE pRpcMessage,
10074     DWORD* pdwStubPhase);
10075 HRESULT STDMETHODCALLTYPE ISpGrammarBuilder2_SetPhoneticAlphabet_Proxy(
10076     ISpGrammarBuilder2* This,
10077     PHONETICALPHABET phoneticALphabet);
10078 void __RPC_STUB ISpGrammarBuilder2_SetPhoneticAlphabet_Stub(
10079     IRpcStubBuffer* This,
10080     IRpcChannelBuffer* pRpcChannelBuffer,
10081     PRPC_MESSAGE pRpcMessage,
10082     DWORD* pdwStubPhase);
10083 
10084 #endif  /* __ISpGrammarBuilder2_INTERFACE_DEFINED__ */
10085 
10086 #define SPRP_NORMAL 0
10087 /*****************************************************************************
10088  * ISpRecoGrammar2 interface
10089  */
10090 #ifndef __ISpRecoGrammar2_INTERFACE_DEFINED__
10091 #define __ISpRecoGrammar2_INTERFACE_DEFINED__
10092 
10093 DEFINE_GUID(IID_ISpRecoGrammar2, 0x4b37bc9e, 0x9ed6, 0x44a3, 0x93,0xd3, 0x18,0xf0,0x22,0xb7,0x9e,0xc3);
10094 #if defined(__cplusplus) && !defined(CINTERFACE)
10095 MIDL_INTERFACE("4b37bc9e-9ed6-44a3-93d3-18f022b79ec3")
10096 ISpRecoGrammar2 : public IUnknown
10097 {
10098     virtual HRESULT STDMETHODCALLTYPE GetRules(
10099         SPRULE **ppCoMemRules,
10100         UINT *puNumRules) = 0;
10101 
10102     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromFile2(
10103         LPCWSTR pszFileName,
10104         SPLOADOPTIONS Options,
10105         LPCWSTR pszSharingUri,
10106         LPCWSTR pszBaseUri) = 0;
10107 
10108     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromMemory2(
10109         const SPBINARYGRAMMAR *pGrammar,
10110         SPLOADOPTIONS Options,
10111         LPCWSTR pszSharingUri,
10112         LPCWSTR pszBaseUri) = 0;
10113 
10114     virtual HRESULT STDMETHODCALLTYPE SetRulePriority(
10115         LPCWSTR pszRuleName,
10116         ULONG ulRuleId,
10117         int nRulePriority) = 0;
10118 
10119     virtual HRESULT STDMETHODCALLTYPE SetRuleWeight(
10120         LPCWSTR pszRuleName,
10121         ULONG ulRuleId,
10122         float flWeight) = 0;
10123 
10124     virtual HRESULT STDMETHODCALLTYPE SetDictationWeight(
10125         float flWeight) = 0;
10126 
10127     virtual HRESULT STDMETHODCALLTYPE SetGrammarLoader(
10128         ISpeechResourceLoader *pLoader) = 0;
10129 
10130     virtual HRESULT STDMETHODCALLTYPE SetSMLSecurityManager(
10131         IInternetSecurityManager *pSMLSecurityManager) = 0;
10132 
10133 };
10134 #ifdef __CRT_UUID_DECL
10135 __CRT_UUID_DECL(ISpRecoGrammar2, 0x4b37bc9e, 0x9ed6, 0x44a3, 0x93,0xd3, 0x18,0xf0,0x22,0xb7,0x9e,0xc3)
10136 #endif
10137 #else
10138 typedef struct ISpRecoGrammar2Vtbl {
10139     BEGIN_INTERFACE
10140 
10141     /*** IUnknown methods ***/
10142     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10143         ISpRecoGrammar2* This,
10144         REFIID riid,
10145         void **ppvObject);
10146 
10147     ULONG (STDMETHODCALLTYPE *AddRef)(
10148         ISpRecoGrammar2* This);
10149 
10150     ULONG (STDMETHODCALLTYPE *Release)(
10151         ISpRecoGrammar2* This);
10152 
10153     /*** ISpRecoGrammar2 methods ***/
10154     HRESULT (STDMETHODCALLTYPE *GetRules)(
10155         ISpRecoGrammar2* This,
10156         SPRULE **ppCoMemRules,
10157         UINT *puNumRules);
10158 
10159     HRESULT (STDMETHODCALLTYPE *LoadCmdFromFile2)(
10160         ISpRecoGrammar2* This,
10161         LPCWSTR pszFileName,
10162         SPLOADOPTIONS Options,
10163         LPCWSTR pszSharingUri,
10164         LPCWSTR pszBaseUri);
10165 
10166     HRESULT (STDMETHODCALLTYPE *LoadCmdFromMemory2)(
10167         ISpRecoGrammar2* This,
10168         const SPBINARYGRAMMAR *pGrammar,
10169         SPLOADOPTIONS Options,
10170         LPCWSTR pszSharingUri,
10171         LPCWSTR pszBaseUri);
10172 
10173     HRESULT (STDMETHODCALLTYPE *SetRulePriority)(
10174         ISpRecoGrammar2* This,
10175         LPCWSTR pszRuleName,
10176         ULONG ulRuleId,
10177         int nRulePriority);
10178 
10179     HRESULT (STDMETHODCALLTYPE *SetRuleWeight)(
10180         ISpRecoGrammar2* This,
10181         LPCWSTR pszRuleName,
10182         ULONG ulRuleId,
10183         float flWeight);
10184 
10185     HRESULT (STDMETHODCALLTYPE *SetDictationWeight)(
10186         ISpRecoGrammar2* This,
10187         float flWeight);
10188 
10189     HRESULT (STDMETHODCALLTYPE *SetGrammarLoader)(
10190         ISpRecoGrammar2* This,
10191         ISpeechResourceLoader *pLoader);
10192 
10193     HRESULT (STDMETHODCALLTYPE *SetSMLSecurityManager)(
10194         ISpRecoGrammar2* This,
10195         IInternetSecurityManager *pSMLSecurityManager);
10196 
10197     END_INTERFACE
10198 } ISpRecoGrammar2Vtbl;
10199 interface ISpRecoGrammar2 {
10200     CONST_VTBL ISpRecoGrammar2Vtbl* lpVtbl;
10201 };
10202 
10203 #ifdef COBJMACROS
10204 #ifndef WIDL_C_INLINE_WRAPPERS
10205 /*** IUnknown methods ***/
10206 #define ISpRecoGrammar2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10207 #define ISpRecoGrammar2_AddRef(This) (This)->lpVtbl->AddRef(This)
10208 #define ISpRecoGrammar2_Release(This) (This)->lpVtbl->Release(This)
10209 /*** ISpRecoGrammar2 methods ***/
10210 #define ISpRecoGrammar2_GetRules(This,ppCoMemRules,puNumRules) (This)->lpVtbl->GetRules(This,ppCoMemRules,puNumRules)
10211 #define ISpRecoGrammar2_LoadCmdFromFile2(This,pszFileName,Options,pszSharingUri,pszBaseUri) (This)->lpVtbl->LoadCmdFromFile2(This,pszFileName,Options,pszSharingUri,pszBaseUri)
10212 #define ISpRecoGrammar2_LoadCmdFromMemory2(This,pGrammar,Options,pszSharingUri,pszBaseUri) (This)->lpVtbl->LoadCmdFromMemory2(This,pGrammar,Options,pszSharingUri,pszBaseUri)
10213 #define ISpRecoGrammar2_SetRulePriority(This,pszRuleName,ulRuleId,nRulePriority) (This)->lpVtbl->SetRulePriority(This,pszRuleName,ulRuleId,nRulePriority)
10214 #define ISpRecoGrammar2_SetRuleWeight(This,pszRuleName,ulRuleId,flWeight) (This)->lpVtbl->SetRuleWeight(This,pszRuleName,ulRuleId,flWeight)
10215 #define ISpRecoGrammar2_SetDictationWeight(This,flWeight) (This)->lpVtbl->SetDictationWeight(This,flWeight)
10216 #define ISpRecoGrammar2_SetGrammarLoader(This,pLoader) (This)->lpVtbl->SetGrammarLoader(This,pLoader)
10217 #define ISpRecoGrammar2_SetSMLSecurityManager(This,pSMLSecurityManager) (This)->lpVtbl->SetSMLSecurityManager(This,pSMLSecurityManager)
10218 #else
10219 /*** IUnknown methods ***/
10220 static FORCEINLINE HRESULT ISpRecoGrammar2_QueryInterface(ISpRecoGrammar2* This,REFIID riid,void **ppvObject) {
10221     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10222 }
10223 static FORCEINLINE ULONG ISpRecoGrammar2_AddRef(ISpRecoGrammar2* This) {
10224     return This->lpVtbl->AddRef(This);
10225 }
10226 static FORCEINLINE ULONG ISpRecoGrammar2_Release(ISpRecoGrammar2* This) {
10227     return This->lpVtbl->Release(This);
10228 }
10229 /*** ISpRecoGrammar2 methods ***/
10230 static FORCEINLINE HRESULT ISpRecoGrammar2_GetRules(ISpRecoGrammar2* This,SPRULE **ppCoMemRules,UINT *puNumRules) {
10231     return This->lpVtbl->GetRules(This,ppCoMemRules,puNumRules);
10232 }
10233 static FORCEINLINE HRESULT ISpRecoGrammar2_LoadCmdFromFile2(ISpRecoGrammar2* This,LPCWSTR pszFileName,SPLOADOPTIONS Options,LPCWSTR pszSharingUri,LPCWSTR pszBaseUri) {
10234     return This->lpVtbl->LoadCmdFromFile2(This,pszFileName,Options,pszSharingUri,pszBaseUri);
10235 }
10236 static FORCEINLINE HRESULT ISpRecoGrammar2_LoadCmdFromMemory2(ISpRecoGrammar2* This,const SPBINARYGRAMMAR *pGrammar,SPLOADOPTIONS Options,LPCWSTR pszSharingUri,LPCWSTR pszBaseUri) {
10237     return This->lpVtbl->LoadCmdFromMemory2(This,pGrammar,Options,pszSharingUri,pszBaseUri);
10238 }
10239 static FORCEINLINE HRESULT ISpRecoGrammar2_SetRulePriority(ISpRecoGrammar2* This,LPCWSTR pszRuleName,ULONG ulRuleId,int nRulePriority) {
10240     return This->lpVtbl->SetRulePriority(This,pszRuleName,ulRuleId,nRulePriority);
10241 }
10242 static FORCEINLINE HRESULT ISpRecoGrammar2_SetRuleWeight(ISpRecoGrammar2* This,LPCWSTR pszRuleName,ULONG ulRuleId,float flWeight) {
10243     return This->lpVtbl->SetRuleWeight(This,pszRuleName,ulRuleId,flWeight);
10244 }
10245 static FORCEINLINE HRESULT ISpRecoGrammar2_SetDictationWeight(ISpRecoGrammar2* This,float flWeight) {
10246     return This->lpVtbl->SetDictationWeight(This,flWeight);
10247 }
10248 static FORCEINLINE HRESULT ISpRecoGrammar2_SetGrammarLoader(ISpRecoGrammar2* This,ISpeechResourceLoader *pLoader) {
10249     return This->lpVtbl->SetGrammarLoader(This,pLoader);
10250 }
10251 static FORCEINLINE HRESULT ISpRecoGrammar2_SetSMLSecurityManager(ISpRecoGrammar2* This,IInternetSecurityManager *pSMLSecurityManager) {
10252     return This->lpVtbl->SetSMLSecurityManager(This,pSMLSecurityManager);
10253 }
10254 #endif
10255 #endif
10256 
10257 #endif
10258 
10259 HRESULT STDMETHODCALLTYPE ISpRecoGrammar2_GetRules_Proxy(
10260     ISpRecoGrammar2* This,
10261     SPRULE **ppCoMemRules,
10262     UINT *puNumRules);
10263 void __RPC_STUB ISpRecoGrammar2_GetRules_Stub(
10264     IRpcStubBuffer* This,
10265     IRpcChannelBuffer* pRpcChannelBuffer,
10266     PRPC_MESSAGE pRpcMessage,
10267     DWORD* pdwStubPhase);
10268 HRESULT STDMETHODCALLTYPE ISpRecoGrammar2_LoadCmdFromFile2_Proxy(
10269     ISpRecoGrammar2* This,
10270     LPCWSTR pszFileName,
10271     SPLOADOPTIONS Options,
10272     LPCWSTR pszSharingUri,
10273     LPCWSTR pszBaseUri);
10274 void __RPC_STUB ISpRecoGrammar2_LoadCmdFromFile2_Stub(
10275     IRpcStubBuffer* This,
10276     IRpcChannelBuffer* pRpcChannelBuffer,
10277     PRPC_MESSAGE pRpcMessage,
10278     DWORD* pdwStubPhase);
10279 HRESULT STDMETHODCALLTYPE ISpRecoGrammar2_LoadCmdFromMemory2_Proxy(
10280     ISpRecoGrammar2* This,
10281     const SPBINARYGRAMMAR *pGrammar,
10282     SPLOADOPTIONS Options,
10283     LPCWSTR pszSharingUri,
10284     LPCWSTR pszBaseUri);
10285 void __RPC_STUB ISpRecoGrammar2_LoadCmdFromMemory2_Stub(
10286     IRpcStubBuffer* This,
10287     IRpcChannelBuffer* pRpcChannelBuffer,
10288     PRPC_MESSAGE pRpcMessage,
10289     DWORD* pdwStubPhase);
10290 HRESULT STDMETHODCALLTYPE ISpRecoGrammar2_SetRulePriority_Proxy(
10291     ISpRecoGrammar2* This,
10292     LPCWSTR pszRuleName,
10293     ULONG ulRuleId,
10294     int nRulePriority);
10295 void __RPC_STUB ISpRecoGrammar2_SetRulePriority_Stub(
10296     IRpcStubBuffer* This,
10297     IRpcChannelBuffer* pRpcChannelBuffer,
10298     PRPC_MESSAGE pRpcMessage,
10299     DWORD* pdwStubPhase);
10300 HRESULT STDMETHODCALLTYPE ISpRecoGrammar2_SetRuleWeight_Proxy(
10301     ISpRecoGrammar2* This,
10302     LPCWSTR pszRuleName,
10303     ULONG ulRuleId,
10304     float flWeight);
10305 void __RPC_STUB ISpRecoGrammar2_SetRuleWeight_Stub(
10306     IRpcStubBuffer* This,
10307     IRpcChannelBuffer* pRpcChannelBuffer,
10308     PRPC_MESSAGE pRpcMessage,
10309     DWORD* pdwStubPhase);
10310 HRESULT STDMETHODCALLTYPE ISpRecoGrammar2_SetDictationWeight_Proxy(
10311     ISpRecoGrammar2* This,
10312     float flWeight);
10313 void __RPC_STUB ISpRecoGrammar2_SetDictationWeight_Stub(
10314     IRpcStubBuffer* This,
10315     IRpcChannelBuffer* pRpcChannelBuffer,
10316     PRPC_MESSAGE pRpcMessage,
10317     DWORD* pdwStubPhase);
10318 HRESULT STDMETHODCALLTYPE ISpRecoGrammar2_SetGrammarLoader_Proxy(
10319     ISpRecoGrammar2* This,
10320     ISpeechResourceLoader *pLoader);
10321 void __RPC_STUB ISpRecoGrammar2_SetGrammarLoader_Stub(
10322     IRpcStubBuffer* This,
10323     IRpcChannelBuffer* pRpcChannelBuffer,
10324     PRPC_MESSAGE pRpcMessage,
10325     DWORD* pdwStubPhase);
10326 HRESULT STDMETHODCALLTYPE ISpRecoGrammar2_SetSMLSecurityManager_Proxy(
10327     ISpRecoGrammar2* This,
10328     IInternetSecurityManager *pSMLSecurityManager);
10329 void __RPC_STUB ISpRecoGrammar2_SetSMLSecurityManager_Stub(
10330     IRpcStubBuffer* This,
10331     IRpcChannelBuffer* pRpcChannelBuffer,
10332     PRPC_MESSAGE pRpcMessage,
10333     DWORD* pdwStubPhase);
10334 
10335 #endif  /* __ISpRecoGrammar2_INTERFACE_DEFINED__ */
10336 
10337 /*****************************************************************************
10338  * ISpeechResourceLoader interface
10339  */
10340 #ifndef __ISpeechResourceLoader_INTERFACE_DEFINED__
10341 #define __ISpeechResourceLoader_INTERFACE_DEFINED__
10342 
10343 DEFINE_GUID(IID_ISpeechResourceLoader, 0xb9ac5783, 0xfcd0, 0x4b21, 0xb1,0x19, 0xb4,0xf8,0xda,0x8f,0xd2,0xc3);
10344 #if defined(__cplusplus) && !defined(CINTERFACE)
10345 MIDL_INTERFACE("b9ac5783-fcd0-4b21-b119-b4f8da8fd2c3")
10346 ISpeechResourceLoader : public IDispatch
10347 {
10348     virtual HRESULT STDMETHODCALLTYPE LoadResource(
10349         BSTR bstrResourceUri,
10350         VARIANT_BOOL fAlwaysReload,
10351         IUnknown **pStream,
10352         BSTR *pbstrMIMEType,
10353         VARIANT_BOOL *pfModified,
10354         BSTR *pbstrRedirectUrl) = 0;
10355 
10356     virtual HRESULT STDMETHODCALLTYPE GetLocalCopy(
10357         BSTR bstrResourceUri,
10358         BSTR *pbstrLocalPath,
10359         BSTR *pbstrMIMEType,
10360         BSTR *pbstrRedirectUrl) = 0;
10361 
10362     virtual HRESULT STDMETHODCALLTYPE ReleaseLocalCopy(
10363         BSTR pbstrLocalPath) = 0;
10364 
10365 };
10366 #ifdef __CRT_UUID_DECL
10367 __CRT_UUID_DECL(ISpeechResourceLoader, 0xb9ac5783, 0xfcd0, 0x4b21, 0xb1,0x19, 0xb4,0xf8,0xda,0x8f,0xd2,0xc3)
10368 #endif
10369 #else
10370 typedef struct ISpeechResourceLoaderVtbl {
10371     BEGIN_INTERFACE
10372 
10373     /*** IUnknown methods ***/
10374     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10375         ISpeechResourceLoader* This,
10376         REFIID riid,
10377         void **ppvObject);
10378 
10379     ULONG (STDMETHODCALLTYPE *AddRef)(
10380         ISpeechResourceLoader* This);
10381 
10382     ULONG (STDMETHODCALLTYPE *Release)(
10383         ISpeechResourceLoader* This);
10384 
10385     /*** IDispatch methods ***/
10386     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
10387         ISpeechResourceLoader* This,
10388         UINT *pctinfo);
10389 
10390     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
10391         ISpeechResourceLoader* This,
10392         UINT iTInfo,
10393         LCID lcid,
10394         ITypeInfo **ppTInfo);
10395 
10396     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
10397         ISpeechResourceLoader* This,
10398         REFIID riid,
10399         LPOLESTR *rgszNames,
10400         UINT cNames,
10401         LCID lcid,
10402         DISPID *rgDispId);
10403 
10404     HRESULT (STDMETHODCALLTYPE *Invoke)(
10405         ISpeechResourceLoader* This,
10406         DISPID dispIdMember,
10407         REFIID riid,
10408         LCID lcid,
10409         WORD wFlags,
10410         DISPPARAMS *pDispParams,
10411         VARIANT *pVarResult,
10412         EXCEPINFO *pExcepInfo,
10413         UINT *puArgErr);
10414 
10415     /*** ISpeechResourceLoader methods ***/
10416     HRESULT (STDMETHODCALLTYPE *LoadResource)(
10417         ISpeechResourceLoader* This,
10418         BSTR bstrResourceUri,
10419         VARIANT_BOOL fAlwaysReload,
10420         IUnknown **pStream,
10421         BSTR *pbstrMIMEType,
10422         VARIANT_BOOL *pfModified,
10423         BSTR *pbstrRedirectUrl);
10424 
10425     HRESULT (STDMETHODCALLTYPE *GetLocalCopy)(
10426         ISpeechResourceLoader* This,
10427         BSTR bstrResourceUri,
10428         BSTR *pbstrLocalPath,
10429         BSTR *pbstrMIMEType,
10430         BSTR *pbstrRedirectUrl);
10431 
10432     HRESULT (STDMETHODCALLTYPE *ReleaseLocalCopy)(
10433         ISpeechResourceLoader* This,
10434         BSTR pbstrLocalPath);
10435 
10436     END_INTERFACE
10437 } ISpeechResourceLoaderVtbl;
10438 interface ISpeechResourceLoader {
10439     CONST_VTBL ISpeechResourceLoaderVtbl* lpVtbl;
10440 };
10441 
10442 #ifdef COBJMACROS
10443 #ifndef WIDL_C_INLINE_WRAPPERS
10444 /*** IUnknown methods ***/
10445 #define ISpeechResourceLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10446 #define ISpeechResourceLoader_AddRef(This) (This)->lpVtbl->AddRef(This)
10447 #define ISpeechResourceLoader_Release(This) (This)->lpVtbl->Release(This)
10448 /*** IDispatch methods ***/
10449 #define ISpeechResourceLoader_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
10450 #define ISpeechResourceLoader_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
10451 #define ISpeechResourceLoader_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
10452 #define ISpeechResourceLoader_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
10453 /*** ISpeechResourceLoader methods ***/
10454 #define ISpeechResourceLoader_LoadResource(This,bstrResourceUri,fAlwaysReload,pStream,pbstrMIMEType,pfModified,pbstrRedirectUrl) (This)->lpVtbl->LoadResource(This,bstrResourceUri,fAlwaysReload,pStream,pbstrMIMEType,pfModified,pbstrRedirectUrl)
10455 #define ISpeechResourceLoader_GetLocalCopy(This,bstrResourceUri,pbstrLocalPath,pbstrMIMEType,pbstrRedirectUrl) (This)->lpVtbl->GetLocalCopy(This,bstrResourceUri,pbstrLocalPath,pbstrMIMEType,pbstrRedirectUrl)
10456 #define ISpeechResourceLoader_ReleaseLocalCopy(This,pbstrLocalPath) (This)->lpVtbl->ReleaseLocalCopy(This,pbstrLocalPath)
10457 #else
10458 /*** IUnknown methods ***/
10459 static FORCEINLINE HRESULT ISpeechResourceLoader_QueryInterface(ISpeechResourceLoader* This,REFIID riid,void **ppvObject) {
10460     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10461 }
10462 static FORCEINLINE ULONG ISpeechResourceLoader_AddRef(ISpeechResourceLoader* This) {
10463     return This->lpVtbl->AddRef(This);
10464 }
10465 static FORCEINLINE ULONG ISpeechResourceLoader_Release(ISpeechResourceLoader* This) {
10466     return This->lpVtbl->Release(This);
10467 }
10468 /*** IDispatch methods ***/
10469 static FORCEINLINE HRESULT ISpeechResourceLoader_GetTypeInfoCount(ISpeechResourceLoader* This,UINT *pctinfo) {
10470     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
10471 }
10472 static FORCEINLINE HRESULT ISpeechResourceLoader_GetTypeInfo(ISpeechResourceLoader* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
10473     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
10474 }
10475 static FORCEINLINE HRESULT ISpeechResourceLoader_GetIDsOfNames(ISpeechResourceLoader* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
10476     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
10477 }
10478 static FORCEINLINE HRESULT ISpeechResourceLoader_Invoke(ISpeechResourceLoader* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
10479     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
10480 }
10481 /*** ISpeechResourceLoader methods ***/
10482 static FORCEINLINE HRESULT ISpeechResourceLoader_LoadResource(ISpeechResourceLoader* This,BSTR bstrResourceUri,VARIANT_BOOL fAlwaysReload,IUnknown **pStream,BSTR *pbstrMIMEType,VARIANT_BOOL *pfModified,BSTR *pbstrRedirectUrl) {
10483     return This->lpVtbl->LoadResource(This,bstrResourceUri,fAlwaysReload,pStream,pbstrMIMEType,pfModified,pbstrRedirectUrl);
10484 }
10485 static FORCEINLINE HRESULT ISpeechResourceLoader_GetLocalCopy(ISpeechResourceLoader* This,BSTR bstrResourceUri,BSTR *pbstrLocalPath,BSTR *pbstrMIMEType,BSTR *pbstrRedirectUrl) {
10486     return This->lpVtbl->GetLocalCopy(This,bstrResourceUri,pbstrLocalPath,pbstrMIMEType,pbstrRedirectUrl);
10487 }
10488 static FORCEINLINE HRESULT ISpeechResourceLoader_ReleaseLocalCopy(ISpeechResourceLoader* This,BSTR pbstrLocalPath) {
10489     return This->lpVtbl->ReleaseLocalCopy(This,pbstrLocalPath);
10490 }
10491 #endif
10492 #endif
10493 
10494 #endif
10495 
10496 HRESULT STDMETHODCALLTYPE ISpeechResourceLoader_LoadResource_Proxy(
10497     ISpeechResourceLoader* This,
10498     BSTR bstrResourceUri,
10499     VARIANT_BOOL fAlwaysReload,
10500     IUnknown **pStream,
10501     BSTR *pbstrMIMEType,
10502     VARIANT_BOOL *pfModified,
10503     BSTR *pbstrRedirectUrl);
10504 void __RPC_STUB ISpeechResourceLoader_LoadResource_Stub(
10505     IRpcStubBuffer* This,
10506     IRpcChannelBuffer* pRpcChannelBuffer,
10507     PRPC_MESSAGE pRpcMessage,
10508     DWORD* pdwStubPhase);
10509 HRESULT STDMETHODCALLTYPE ISpeechResourceLoader_GetLocalCopy_Proxy(
10510     ISpeechResourceLoader* This,
10511     BSTR bstrResourceUri,
10512     BSTR *pbstrLocalPath,
10513     BSTR *pbstrMIMEType,
10514     BSTR *pbstrRedirectUrl);
10515 void __RPC_STUB ISpeechResourceLoader_GetLocalCopy_Stub(
10516     IRpcStubBuffer* This,
10517     IRpcChannelBuffer* pRpcChannelBuffer,
10518     PRPC_MESSAGE pRpcMessage,
10519     DWORD* pdwStubPhase);
10520 HRESULT STDMETHODCALLTYPE ISpeechResourceLoader_ReleaseLocalCopy_Proxy(
10521     ISpeechResourceLoader* This,
10522     BSTR pbstrLocalPath);
10523 void __RPC_STUB ISpeechResourceLoader_ReleaseLocalCopy_Stub(
10524     IRpcStubBuffer* This,
10525     IRpcChannelBuffer* pRpcChannelBuffer,
10526     PRPC_MESSAGE pRpcMessage,
10527     DWORD* pdwStubPhase);
10528 
10529 #endif  /* __ISpeechResourceLoader_INTERFACE_DEFINED__ */
10530 
10531 typedef struct SPRECOCONTEXTSTATUS {
10532     SPINTERFERENCE eInterference;
10533     WCHAR szRequestTypeOfUI[255];
10534     DWORD dwReserved1;
10535     DWORD dwReserved2;
10536 } SPRECOCONTEXTSTATUS;
10537 typedef enum SPBOOKMARKOPTIONS {
10538     SPBO_NONE = 0,
10539     SPBO_PAUSE = 0x1,
10540     SPBO_AHEAD = 0x2,
10541     SPBO_TIME_UNITS = 0x4
10542 } SPBOOKMARKOPTIONS;
10543 typedef enum SPAUDIOOPTIONS {
10544     SPAO_NONE = 0,
10545     SPAO_RETAIN_AUDIO = 0x1
10546 } SPAUDIOOPTIONS;
10547 /*****************************************************************************
10548  * ISpRecoContext interface
10549  */
10550 #ifndef __ISpRecoContext_INTERFACE_DEFINED__
10551 #define __ISpRecoContext_INTERFACE_DEFINED__
10552 
10553 DEFINE_GUID(IID_ISpRecoContext, 0xf740a62f, 0x7c15, 0x489e, 0x82,0x34, 0x94,0x0a,0x33,0xd9,0x27,0x2d);
10554 #if defined(__cplusplus) && !defined(CINTERFACE)
10555 MIDL_INTERFACE("f740a62f-7c15-489e-8234-940a33d9272d")
10556 ISpRecoContext : public ISpEventSource
10557 {
10558     virtual HRESULT STDMETHODCALLTYPE GetRecognizer(
10559         ISpRecognizer **ppRecognizer) = 0;
10560 
10561     virtual HRESULT STDMETHODCALLTYPE CreateGrammar(
10562         ULONGLONG ullGrammarId,
10563         ISpRecoGrammar **ppGrammar) = 0;
10564 
10565     virtual HRESULT STDMETHODCALLTYPE GetStatus(
10566         SPRECOCONTEXTSTATUS *pStatus) = 0;
10567 
10568     virtual HRESULT STDMETHODCALLTYPE GetMaxAlternates(
10569         ULONG *pcAlternates) = 0;
10570 
10571     virtual HRESULT STDMETHODCALLTYPE SetMaxAlternates(
10572         ULONG cAlternates) = 0;
10573 
10574     virtual HRESULT STDMETHODCALLTYPE SetAudioOptions(
10575         SPAUDIOOPTIONS Options,
10576         const GUID *pAudioFormatId,
10577         const WAVEFORMATEX *pWaveFormatEx) = 0;
10578 
10579     virtual HRESULT STDMETHODCALLTYPE GetAudioOptions(
10580         SPAUDIOOPTIONS *pOptions,
10581         GUID *pAudioFormatId,
10582         WAVEFORMATEX **ppCoMemWFEX) = 0;
10583 
10584     virtual HRESULT STDMETHODCALLTYPE DeserializeResult(
10585         const SPSERIALIZEDRESULT *pSerializedResult,
10586         ISpRecoResult **ppResult) = 0;
10587 
10588     virtual HRESULT STDMETHODCALLTYPE Bookmark(
10589         SPBOOKMARKOPTIONS Options,
10590         ULONGLONG ullStreamPosition,
10591         LPARAM lparamEvent) = 0;
10592 
10593     virtual HRESULT STDMETHODCALLTYPE SetAdaptationData(
10594         LPCWSTR pAdaptationData,
10595         const ULONG cch) = 0;
10596 
10597     virtual HRESULT STDMETHODCALLTYPE Pause(
10598         DWORD dwReserved) = 0;
10599 
10600     virtual HRESULT STDMETHODCALLTYPE Resume(
10601         DWORD dwReserved) = 0;
10602 
10603     virtual HRESULT STDMETHODCALLTYPE SetVoice(
10604         ISpVoice *pVoice,
10605         WINBOOL fAllowFormatChanges) = 0;
10606 
10607     virtual HRESULT STDMETHODCALLTYPE GetVoice(
10608         ISpVoice **ppVoice) = 0;
10609 
10610     virtual HRESULT STDMETHODCALLTYPE SetVoicePurgeEvent(
10611         ULONGLONG ullEventInterest) = 0;
10612 
10613     virtual HRESULT STDMETHODCALLTYPE GetVoicePurgeEvent(
10614         ULONGLONG *pullEventInterest) = 0;
10615 
10616     virtual HRESULT STDMETHODCALLTYPE SetContextState(
10617         SPCONTEXTSTATE eContextState) = 0;
10618 
10619     virtual HRESULT STDMETHODCALLTYPE GetContextState(
10620         SPCONTEXTSTATE *peContextState) = 0;
10621 
10622 };
10623 #ifdef __CRT_UUID_DECL
10624 __CRT_UUID_DECL(ISpRecoContext, 0xf740a62f, 0x7c15, 0x489e, 0x82,0x34, 0x94,0x0a,0x33,0xd9,0x27,0x2d)
10625 #endif
10626 #else
10627 typedef struct ISpRecoContextVtbl {
10628     BEGIN_INTERFACE
10629 
10630     /*** IUnknown methods ***/
10631     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10632         ISpRecoContext* This,
10633         REFIID riid,
10634         void **ppvObject);
10635 
10636     ULONG (STDMETHODCALLTYPE *AddRef)(
10637         ISpRecoContext* This);
10638 
10639     ULONG (STDMETHODCALLTYPE *Release)(
10640         ISpRecoContext* This);
10641 
10642     /*** ISpNotifySource methods ***/
10643     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
10644         ISpRecoContext* This,
10645         ISpNotifySink *pNotifySink);
10646 
10647     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
10648         ISpRecoContext* This,
10649         HWND hWnd,
10650         UINT Msg,
10651         WPARAM wParam,
10652         LPARAM lParam);
10653 
10654     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
10655         ISpRecoContext* This,
10656         SPNOTIFYCALLBACK *pfnCallback,
10657         WPARAM wParam,
10658         LPARAM lParam);
10659 
10660     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
10661         ISpRecoContext* This,
10662         ISpNotifyCallback *pSpCallback,
10663         WPARAM wParam,
10664         LPARAM lParam);
10665 
10666     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
10667         ISpRecoContext* This);
10668 
10669     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
10670         ISpRecoContext* This,
10671         DWORD dwMilliseconds);
10672 
10673     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
10674         ISpRecoContext* This);
10675 
10676     /*** ISpEventSource methods ***/
10677     HRESULT (STDMETHODCALLTYPE *SetInterest)(
10678         ISpRecoContext* This,
10679         ULONGLONG ullEventInterest,
10680         ULONGLONG ullQueuedInterest);
10681 
10682     HRESULT (STDMETHODCALLTYPE *GetEvents)(
10683         ISpRecoContext* This,
10684         ULONG ulCount,
10685         SPEVENT *pEventArray,
10686         ULONG *pulFetched);
10687 
10688     HRESULT (STDMETHODCALLTYPE *GetInfo)(
10689         ISpRecoContext* This,
10690         SPEVENTSOURCEINFO *pInfo);
10691 
10692     /*** ISpRecoContext methods ***/
10693     HRESULT (STDMETHODCALLTYPE *GetRecognizer)(
10694         ISpRecoContext* This,
10695         ISpRecognizer **ppRecognizer);
10696 
10697     HRESULT (STDMETHODCALLTYPE *CreateGrammar)(
10698         ISpRecoContext* This,
10699         ULONGLONG ullGrammarId,
10700         ISpRecoGrammar **ppGrammar);
10701 
10702     HRESULT (STDMETHODCALLTYPE *GetStatus)(
10703         ISpRecoContext* This,
10704         SPRECOCONTEXTSTATUS *pStatus);
10705 
10706     HRESULT (STDMETHODCALLTYPE *GetMaxAlternates)(
10707         ISpRecoContext* This,
10708         ULONG *pcAlternates);
10709 
10710     HRESULT (STDMETHODCALLTYPE *SetMaxAlternates)(
10711         ISpRecoContext* This,
10712         ULONG cAlternates);
10713 
10714     HRESULT (STDMETHODCALLTYPE *SetAudioOptions)(
10715         ISpRecoContext* This,
10716         SPAUDIOOPTIONS Options,
10717         const GUID *pAudioFormatId,
10718         const WAVEFORMATEX *pWaveFormatEx);
10719 
10720     HRESULT (STDMETHODCALLTYPE *GetAudioOptions)(
10721         ISpRecoContext* This,
10722         SPAUDIOOPTIONS *pOptions,
10723         GUID *pAudioFormatId,
10724         WAVEFORMATEX **ppCoMemWFEX);
10725 
10726     HRESULT (STDMETHODCALLTYPE *DeserializeResult)(
10727         ISpRecoContext* This,
10728         const SPSERIALIZEDRESULT *pSerializedResult,
10729         ISpRecoResult **ppResult);
10730 
10731     HRESULT (STDMETHODCALLTYPE *Bookmark)(
10732         ISpRecoContext* This,
10733         SPBOOKMARKOPTIONS Options,
10734         ULONGLONG ullStreamPosition,
10735         LPARAM lparamEvent);
10736 
10737     HRESULT (STDMETHODCALLTYPE *SetAdaptationData)(
10738         ISpRecoContext* This,
10739         LPCWSTR pAdaptationData,
10740         const ULONG cch);
10741 
10742     HRESULT (STDMETHODCALLTYPE *Pause)(
10743         ISpRecoContext* This,
10744         DWORD dwReserved);
10745 
10746     HRESULT (STDMETHODCALLTYPE *Resume)(
10747         ISpRecoContext* This,
10748         DWORD dwReserved);
10749 
10750     HRESULT (STDMETHODCALLTYPE *SetVoice)(
10751         ISpRecoContext* This,
10752         ISpVoice *pVoice,
10753         WINBOOL fAllowFormatChanges);
10754 
10755     HRESULT (STDMETHODCALLTYPE *GetVoice)(
10756         ISpRecoContext* This,
10757         ISpVoice **ppVoice);
10758 
10759     HRESULT (STDMETHODCALLTYPE *SetVoicePurgeEvent)(
10760         ISpRecoContext* This,
10761         ULONGLONG ullEventInterest);
10762 
10763     HRESULT (STDMETHODCALLTYPE *GetVoicePurgeEvent)(
10764         ISpRecoContext* This,
10765         ULONGLONG *pullEventInterest);
10766 
10767     HRESULT (STDMETHODCALLTYPE *SetContextState)(
10768         ISpRecoContext* This,
10769         SPCONTEXTSTATE eContextState);
10770 
10771     HRESULT (STDMETHODCALLTYPE *GetContextState)(
10772         ISpRecoContext* This,
10773         SPCONTEXTSTATE *peContextState);
10774 
10775     END_INTERFACE
10776 } ISpRecoContextVtbl;
10777 interface ISpRecoContext {
10778     CONST_VTBL ISpRecoContextVtbl* lpVtbl;
10779 };
10780 
10781 #ifdef COBJMACROS
10782 #ifndef WIDL_C_INLINE_WRAPPERS
10783 /*** IUnknown methods ***/
10784 #define ISpRecoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10785 #define ISpRecoContext_AddRef(This) (This)->lpVtbl->AddRef(This)
10786 #define ISpRecoContext_Release(This) (This)->lpVtbl->Release(This)
10787 /*** ISpNotifySource methods ***/
10788 #define ISpRecoContext_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
10789 #define ISpRecoContext_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
10790 #define ISpRecoContext_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
10791 #define ISpRecoContext_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
10792 #define ISpRecoContext_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
10793 #define ISpRecoContext_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
10794 #define ISpRecoContext_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
10795 /*** ISpEventSource methods ***/
10796 #define ISpRecoContext_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
10797 #define ISpRecoContext_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
10798 #define ISpRecoContext_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
10799 /*** ISpRecoContext methods ***/
10800 #define ISpRecoContext_GetRecognizer(This,ppRecognizer) (This)->lpVtbl->GetRecognizer(This,ppRecognizer)
10801 #define ISpRecoContext_CreateGrammar(This,ullGrammarId,ppGrammar) (This)->lpVtbl->CreateGrammar(This,ullGrammarId,ppGrammar)
10802 #define ISpRecoContext_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
10803 #define ISpRecoContext_GetMaxAlternates(This,pcAlternates) (This)->lpVtbl->GetMaxAlternates(This,pcAlternates)
10804 #define ISpRecoContext_SetMaxAlternates(This,cAlternates) (This)->lpVtbl->SetMaxAlternates(This,cAlternates)
10805 #define ISpRecoContext_SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx)
10806 #define ISpRecoContext_GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX) (This)->lpVtbl->GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX)
10807 #define ISpRecoContext_DeserializeResult(This,pSerializedResult,ppResult) (This)->lpVtbl->DeserializeResult(This,pSerializedResult,ppResult)
10808 #define ISpRecoContext_Bookmark(This,Options,ullStreamPosition,lparamEvent) (This)->lpVtbl->Bookmark(This,Options,ullStreamPosition,lparamEvent)
10809 #define ISpRecoContext_SetAdaptationData(This,pAdaptationData,cch) (This)->lpVtbl->SetAdaptationData(This,pAdaptationData,cch)
10810 #define ISpRecoContext_Pause(This,dwReserved) (This)->lpVtbl->Pause(This,dwReserved)
10811 #define ISpRecoContext_Resume(This,dwReserved) (This)->lpVtbl->Resume(This,dwReserved)
10812 #define ISpRecoContext_SetVoice(This,pVoice,fAllowFormatChanges) (This)->lpVtbl->SetVoice(This,pVoice,fAllowFormatChanges)
10813 #define ISpRecoContext_GetVoice(This,ppVoice) (This)->lpVtbl->GetVoice(This,ppVoice)
10814 #define ISpRecoContext_SetVoicePurgeEvent(This,ullEventInterest) (This)->lpVtbl->SetVoicePurgeEvent(This,ullEventInterest)
10815 #define ISpRecoContext_GetVoicePurgeEvent(This,pullEventInterest) (This)->lpVtbl->GetVoicePurgeEvent(This,pullEventInterest)
10816 #define ISpRecoContext_SetContextState(This,eContextState) (This)->lpVtbl->SetContextState(This,eContextState)
10817 #define ISpRecoContext_GetContextState(This,peContextState) (This)->lpVtbl->GetContextState(This,peContextState)
10818 #else
10819 /*** IUnknown methods ***/
10820 static FORCEINLINE HRESULT ISpRecoContext_QueryInterface(ISpRecoContext* This,REFIID riid,void **ppvObject) {
10821     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10822 }
10823 static FORCEINLINE ULONG ISpRecoContext_AddRef(ISpRecoContext* This) {
10824     return This->lpVtbl->AddRef(This);
10825 }
10826 static FORCEINLINE ULONG ISpRecoContext_Release(ISpRecoContext* This) {
10827     return This->lpVtbl->Release(This);
10828 }
10829 /*** ISpNotifySource methods ***/
10830 static FORCEINLINE HRESULT ISpRecoContext_SetNotifySink(ISpRecoContext* This,ISpNotifySink *pNotifySink) {
10831     return This->lpVtbl->SetNotifySink(This,pNotifySink);
10832 }
10833 static FORCEINLINE HRESULT ISpRecoContext_SetNotifyWindowMessage(ISpRecoContext* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
10834     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
10835 }
10836 static FORCEINLINE HRESULT ISpRecoContext_SetNotifyCallbackFunction(ISpRecoContext* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
10837     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
10838 }
10839 static FORCEINLINE HRESULT ISpRecoContext_SetNotifyCallbackInterface(ISpRecoContext* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
10840     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
10841 }
10842 static FORCEINLINE HRESULT ISpRecoContext_SetNotifyWin32Event(ISpRecoContext* This) {
10843     return This->lpVtbl->SetNotifyWin32Event(This);
10844 }
10845 static FORCEINLINE HRESULT ISpRecoContext_WaitForNotifyEvent(ISpRecoContext* This,DWORD dwMilliseconds) {
10846     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
10847 }
10848 static FORCEINLINE HANDLE ISpRecoContext_GetNotifyEventHandle(ISpRecoContext* This) {
10849     return This->lpVtbl->GetNotifyEventHandle(This);
10850 }
10851 /*** ISpEventSource methods ***/
10852 static FORCEINLINE HRESULT ISpRecoContext_SetInterest(ISpRecoContext* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
10853     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
10854 }
10855 static FORCEINLINE HRESULT ISpRecoContext_GetEvents(ISpRecoContext* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
10856     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
10857 }
10858 static FORCEINLINE HRESULT ISpRecoContext_GetInfo(ISpRecoContext* This,SPEVENTSOURCEINFO *pInfo) {
10859     return This->lpVtbl->GetInfo(This,pInfo);
10860 }
10861 /*** ISpRecoContext methods ***/
10862 static FORCEINLINE HRESULT ISpRecoContext_GetRecognizer(ISpRecoContext* This,ISpRecognizer **ppRecognizer) {
10863     return This->lpVtbl->GetRecognizer(This,ppRecognizer);
10864 }
10865 static FORCEINLINE HRESULT ISpRecoContext_CreateGrammar(ISpRecoContext* This,ULONGLONG ullGrammarId,ISpRecoGrammar **ppGrammar) {
10866     return This->lpVtbl->CreateGrammar(This,ullGrammarId,ppGrammar);
10867 }
10868 static FORCEINLINE HRESULT ISpRecoContext_GetStatus(ISpRecoContext* This,SPRECOCONTEXTSTATUS *pStatus) {
10869     return This->lpVtbl->GetStatus(This,pStatus);
10870 }
10871 static FORCEINLINE HRESULT ISpRecoContext_GetMaxAlternates(ISpRecoContext* This,ULONG *pcAlternates) {
10872     return This->lpVtbl->GetMaxAlternates(This,pcAlternates);
10873 }
10874 static FORCEINLINE HRESULT ISpRecoContext_SetMaxAlternates(ISpRecoContext* This,ULONG cAlternates) {
10875     return This->lpVtbl->SetMaxAlternates(This,cAlternates);
10876 }
10877 static FORCEINLINE HRESULT ISpRecoContext_SetAudioOptions(ISpRecoContext* This,SPAUDIOOPTIONS Options,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
10878     return This->lpVtbl->SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx);
10879 }
10880 static FORCEINLINE HRESULT ISpRecoContext_GetAudioOptions(ISpRecoContext* This,SPAUDIOOPTIONS *pOptions,GUID *pAudioFormatId,WAVEFORMATEX **ppCoMemWFEX) {
10881     return This->lpVtbl->GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX);
10882 }
10883 static FORCEINLINE HRESULT ISpRecoContext_DeserializeResult(ISpRecoContext* This,const SPSERIALIZEDRESULT *pSerializedResult,ISpRecoResult **ppResult) {
10884     return This->lpVtbl->DeserializeResult(This,pSerializedResult,ppResult);
10885 }
10886 static FORCEINLINE HRESULT ISpRecoContext_Bookmark(ISpRecoContext* This,SPBOOKMARKOPTIONS Options,ULONGLONG ullStreamPosition,LPARAM lparamEvent) {
10887     return This->lpVtbl->Bookmark(This,Options,ullStreamPosition,lparamEvent);
10888 }
10889 static FORCEINLINE HRESULT ISpRecoContext_SetAdaptationData(ISpRecoContext* This,LPCWSTR pAdaptationData,const ULONG cch) {
10890     return This->lpVtbl->SetAdaptationData(This,pAdaptationData,cch);
10891 }
10892 static FORCEINLINE HRESULT ISpRecoContext_Pause(ISpRecoContext* This,DWORD dwReserved) {
10893     return This->lpVtbl->Pause(This,dwReserved);
10894 }
10895 static FORCEINLINE HRESULT ISpRecoContext_Resume(ISpRecoContext* This,DWORD dwReserved) {
10896     return This->lpVtbl->Resume(This,dwReserved);
10897 }
10898 static FORCEINLINE HRESULT ISpRecoContext_SetVoice(ISpRecoContext* This,ISpVoice *pVoice,WINBOOL fAllowFormatChanges) {
10899     return This->lpVtbl->SetVoice(This,pVoice,fAllowFormatChanges);
10900 }
10901 static FORCEINLINE HRESULT ISpRecoContext_GetVoice(ISpRecoContext* This,ISpVoice **ppVoice) {
10902     return This->lpVtbl->GetVoice(This,ppVoice);
10903 }
10904 static FORCEINLINE HRESULT ISpRecoContext_SetVoicePurgeEvent(ISpRecoContext* This,ULONGLONG ullEventInterest) {
10905     return This->lpVtbl->SetVoicePurgeEvent(This,ullEventInterest);
10906 }
10907 static FORCEINLINE HRESULT ISpRecoContext_GetVoicePurgeEvent(ISpRecoContext* This,ULONGLONG *pullEventInterest) {
10908     return This->lpVtbl->GetVoicePurgeEvent(This,pullEventInterest);
10909 }
10910 static FORCEINLINE HRESULT ISpRecoContext_SetContextState(ISpRecoContext* This,SPCONTEXTSTATE eContextState) {
10911     return This->lpVtbl->SetContextState(This,eContextState);
10912 }
10913 static FORCEINLINE HRESULT ISpRecoContext_GetContextState(ISpRecoContext* This,SPCONTEXTSTATE *peContextState) {
10914     return This->lpVtbl->GetContextState(This,peContextState);
10915 }
10916 #endif
10917 #endif
10918 
10919 #endif
10920 
10921 HRESULT STDMETHODCALLTYPE ISpRecoContext_GetRecognizer_Proxy(
10922     ISpRecoContext* This,
10923     ISpRecognizer **ppRecognizer);
10924 void __RPC_STUB ISpRecoContext_GetRecognizer_Stub(
10925     IRpcStubBuffer* This,
10926     IRpcChannelBuffer* pRpcChannelBuffer,
10927     PRPC_MESSAGE pRpcMessage,
10928     DWORD* pdwStubPhase);
10929 HRESULT STDMETHODCALLTYPE ISpRecoContext_CreateGrammar_Proxy(
10930     ISpRecoContext* This,
10931     ULONGLONG ullGrammarId,
10932     ISpRecoGrammar **ppGrammar);
10933 void __RPC_STUB ISpRecoContext_CreateGrammar_Stub(
10934     IRpcStubBuffer* This,
10935     IRpcChannelBuffer* pRpcChannelBuffer,
10936     PRPC_MESSAGE pRpcMessage,
10937     DWORD* pdwStubPhase);
10938 HRESULT STDMETHODCALLTYPE ISpRecoContext_GetStatus_Proxy(
10939     ISpRecoContext* This,
10940     SPRECOCONTEXTSTATUS *pStatus);
10941 void __RPC_STUB ISpRecoContext_GetStatus_Stub(
10942     IRpcStubBuffer* This,
10943     IRpcChannelBuffer* pRpcChannelBuffer,
10944     PRPC_MESSAGE pRpcMessage,
10945     DWORD* pdwStubPhase);
10946 HRESULT STDMETHODCALLTYPE ISpRecoContext_GetMaxAlternates_Proxy(
10947     ISpRecoContext* This,
10948     ULONG *pcAlternates);
10949 void __RPC_STUB ISpRecoContext_GetMaxAlternates_Stub(
10950     IRpcStubBuffer* This,
10951     IRpcChannelBuffer* pRpcChannelBuffer,
10952     PRPC_MESSAGE pRpcMessage,
10953     DWORD* pdwStubPhase);
10954 HRESULT STDMETHODCALLTYPE ISpRecoContext_SetMaxAlternates_Proxy(
10955     ISpRecoContext* This,
10956     ULONG cAlternates);
10957 void __RPC_STUB ISpRecoContext_SetMaxAlternates_Stub(
10958     IRpcStubBuffer* This,
10959     IRpcChannelBuffer* pRpcChannelBuffer,
10960     PRPC_MESSAGE pRpcMessage,
10961     DWORD* pdwStubPhase);
10962 HRESULT STDMETHODCALLTYPE ISpRecoContext_SetAudioOptions_Proxy(
10963     ISpRecoContext* This,
10964     SPAUDIOOPTIONS Options,
10965     const GUID *pAudioFormatId,
10966     const WAVEFORMATEX *pWaveFormatEx);
10967 void __RPC_STUB ISpRecoContext_SetAudioOptions_Stub(
10968     IRpcStubBuffer* This,
10969     IRpcChannelBuffer* pRpcChannelBuffer,
10970     PRPC_MESSAGE pRpcMessage,
10971     DWORD* pdwStubPhase);
10972 HRESULT STDMETHODCALLTYPE ISpRecoContext_GetAudioOptions_Proxy(
10973     ISpRecoContext* This,
10974     SPAUDIOOPTIONS *pOptions,
10975     GUID *pAudioFormatId,
10976     WAVEFORMATEX **ppCoMemWFEX);
10977 void __RPC_STUB ISpRecoContext_GetAudioOptions_Stub(
10978     IRpcStubBuffer* This,
10979     IRpcChannelBuffer* pRpcChannelBuffer,
10980     PRPC_MESSAGE pRpcMessage,
10981     DWORD* pdwStubPhase);
10982 HRESULT STDMETHODCALLTYPE ISpRecoContext_DeserializeResult_Proxy(
10983     ISpRecoContext* This,
10984     const SPSERIALIZEDRESULT *pSerializedResult,
10985     ISpRecoResult **ppResult);
10986 void __RPC_STUB ISpRecoContext_DeserializeResult_Stub(
10987     IRpcStubBuffer* This,
10988     IRpcChannelBuffer* pRpcChannelBuffer,
10989     PRPC_MESSAGE pRpcMessage,
10990     DWORD* pdwStubPhase);
10991 HRESULT STDMETHODCALLTYPE ISpRecoContext_Bookmark_Proxy(
10992     ISpRecoContext* This,
10993     SPBOOKMARKOPTIONS Options,
10994     ULONGLONG ullStreamPosition,
10995     LPARAM lparamEvent);
10996 void __RPC_STUB ISpRecoContext_Bookmark_Stub(
10997     IRpcStubBuffer* This,
10998     IRpcChannelBuffer* pRpcChannelBuffer,
10999     PRPC_MESSAGE pRpcMessage,
11000     DWORD* pdwStubPhase);
11001 HRESULT STDMETHODCALLTYPE ISpRecoContext_SetAdaptationData_Proxy(
11002     ISpRecoContext* This,
11003     LPCWSTR pAdaptationData,
11004     const ULONG cch);
11005 void __RPC_STUB ISpRecoContext_SetAdaptationData_Stub(
11006     IRpcStubBuffer* This,
11007     IRpcChannelBuffer* pRpcChannelBuffer,
11008     PRPC_MESSAGE pRpcMessage,
11009     DWORD* pdwStubPhase);
11010 HRESULT STDMETHODCALLTYPE ISpRecoContext_Pause_Proxy(
11011     ISpRecoContext* This,
11012     DWORD dwReserved);
11013 void __RPC_STUB ISpRecoContext_Pause_Stub(
11014     IRpcStubBuffer* This,
11015     IRpcChannelBuffer* pRpcChannelBuffer,
11016     PRPC_MESSAGE pRpcMessage,
11017     DWORD* pdwStubPhase);
11018 HRESULT STDMETHODCALLTYPE ISpRecoContext_Resume_Proxy(
11019     ISpRecoContext* This,
11020     DWORD dwReserved);
11021 void __RPC_STUB ISpRecoContext_Resume_Stub(
11022     IRpcStubBuffer* This,
11023     IRpcChannelBuffer* pRpcChannelBuffer,
11024     PRPC_MESSAGE pRpcMessage,
11025     DWORD* pdwStubPhase);
11026 HRESULT STDMETHODCALLTYPE ISpRecoContext_SetVoice_Proxy(
11027     ISpRecoContext* This,
11028     ISpVoice *pVoice,
11029     WINBOOL fAllowFormatChanges);
11030 void __RPC_STUB ISpRecoContext_SetVoice_Stub(
11031     IRpcStubBuffer* This,
11032     IRpcChannelBuffer* pRpcChannelBuffer,
11033     PRPC_MESSAGE pRpcMessage,
11034     DWORD* pdwStubPhase);
11035 HRESULT STDMETHODCALLTYPE ISpRecoContext_GetVoice_Proxy(
11036     ISpRecoContext* This,
11037     ISpVoice **ppVoice);
11038 void __RPC_STUB ISpRecoContext_GetVoice_Stub(
11039     IRpcStubBuffer* This,
11040     IRpcChannelBuffer* pRpcChannelBuffer,
11041     PRPC_MESSAGE pRpcMessage,
11042     DWORD* pdwStubPhase);
11043 HRESULT STDMETHODCALLTYPE ISpRecoContext_SetVoicePurgeEvent_Proxy(
11044     ISpRecoContext* This,
11045     ULONGLONG ullEventInterest);
11046 void __RPC_STUB ISpRecoContext_SetVoicePurgeEvent_Stub(
11047     IRpcStubBuffer* This,
11048     IRpcChannelBuffer* pRpcChannelBuffer,
11049     PRPC_MESSAGE pRpcMessage,
11050     DWORD* pdwStubPhase);
11051 HRESULT STDMETHODCALLTYPE ISpRecoContext_GetVoicePurgeEvent_Proxy(
11052     ISpRecoContext* This,
11053     ULONGLONG *pullEventInterest);
11054 void __RPC_STUB ISpRecoContext_GetVoicePurgeEvent_Stub(
11055     IRpcStubBuffer* This,
11056     IRpcChannelBuffer* pRpcChannelBuffer,
11057     PRPC_MESSAGE pRpcMessage,
11058     DWORD* pdwStubPhase);
11059 HRESULT STDMETHODCALLTYPE ISpRecoContext_SetContextState_Proxy(
11060     ISpRecoContext* This,
11061     SPCONTEXTSTATE eContextState);
11062 void __RPC_STUB ISpRecoContext_SetContextState_Stub(
11063     IRpcStubBuffer* This,
11064     IRpcChannelBuffer* pRpcChannelBuffer,
11065     PRPC_MESSAGE pRpcMessage,
11066     DWORD* pdwStubPhase);
11067 HRESULT STDMETHODCALLTYPE ISpRecoContext_GetContextState_Proxy(
11068     ISpRecoContext* This,
11069     SPCONTEXTSTATE *peContextState);
11070 void __RPC_STUB ISpRecoContext_GetContextState_Stub(
11071     IRpcStubBuffer* This,
11072     IRpcChannelBuffer* pRpcChannelBuffer,
11073     PRPC_MESSAGE pRpcMessage,
11074     DWORD* pdwStubPhase);
11075 
11076 #endif  /* __ISpRecoContext_INTERFACE_DEFINED__ */
11077 
11078 typedef enum SPGRAMMAROPTIONS {
11079     SPGO_SAPI = 0x1,
11080     SPGO_SRGS = 0x2,
11081     SPGO_UPS = 0x4,
11082     SPGO_SRGS_MS_SCRIPT = 0x8,
11083     SPGO_FILE = 0x10,
11084     SPGO_HTTP = 0x20,
11085     SPGO_RES = 0x40,
11086     SPGO_OBJECT = 0x80,
11087     SPGO_SRGS_W3C_SCRIPT = 0x100,
11088     SPGO_SRGS_STG_SCRIPT = 0x200,
11089     SPGO_SRGS_SCRIPT = ((SPGO_SRGS | SPGO_SRGS_MS_SCRIPT) | SPGO_SRGS_W3C_SCRIPT) | SPGO_SRGS_STG_SCRIPT,
11090     SPGO_DEFAULT = 0x3fb,
11091     SPGO_ALL = 0x3ff
11092 } SPGRAMMAROPTIONS;
11093 typedef enum SPADAPTATIONSETTINGS {
11094     SPADS_Default = 0x0,
11095     SPADS_CurrentRecognizer = 0x1,
11096     SPADS_RecoProfile = 0x2,
11097     SPADS_Immediate = 0x4,
11098     SPADS_Reset = 0x8,
11099     SPADS_HighVolumeDataSource = 0x10
11100 } SPADAPTATIONSETTINGS;
11101 typedef enum SPADAPTATIONRELEVANCE {
11102     SPAR_Unknown = 0,
11103     SPAR_Low = 1,
11104     SPAR_Medium = 2,
11105     SPAR_High = 3
11106 } SPADAPTATIONRELEVANCE;
11107 /*****************************************************************************
11108  * ISpRecoContext2 interface
11109  */
11110 #ifndef __ISpRecoContext2_INTERFACE_DEFINED__
11111 #define __ISpRecoContext2_INTERFACE_DEFINED__
11112 
11113 DEFINE_GUID(IID_ISpRecoContext2, 0xbead311c, 0x52ff, 0x437f, 0x94,0x64, 0x6b,0x21,0x05,0x4c,0xa7,0x3d);
11114 #if defined(__cplusplus) && !defined(CINTERFACE)
11115 MIDL_INTERFACE("bead311c-52ff-437f-9464-6b21054ca73d")
11116 ISpRecoContext2 : public IUnknown
11117 {
11118     virtual HRESULT STDMETHODCALLTYPE SetGrammarOptions(
11119         DWORD eGrammarOptions) = 0;
11120 
11121     virtual HRESULT STDMETHODCALLTYPE GetGrammarOptions(
11122         DWORD *peGrammarOptions) = 0;
11123 
11124     virtual HRESULT STDMETHODCALLTYPE SetAdaptationData2(
11125         LPCWSTR pAdaptationData,
11126         const ULONG cch,
11127         LPCWSTR pTopicName,
11128         DWORD eAdaptationSettings,
11129         SPADAPTATIONRELEVANCE eRelevance) = 0;
11130 
11131 };
11132 #ifdef __CRT_UUID_DECL
11133 __CRT_UUID_DECL(ISpRecoContext2, 0xbead311c, 0x52ff, 0x437f, 0x94,0x64, 0x6b,0x21,0x05,0x4c,0xa7,0x3d)
11134 #endif
11135 #else
11136 typedef struct ISpRecoContext2Vtbl {
11137     BEGIN_INTERFACE
11138 
11139     /*** IUnknown methods ***/
11140     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11141         ISpRecoContext2* This,
11142         REFIID riid,
11143         void **ppvObject);
11144 
11145     ULONG (STDMETHODCALLTYPE *AddRef)(
11146         ISpRecoContext2* This);
11147 
11148     ULONG (STDMETHODCALLTYPE *Release)(
11149         ISpRecoContext2* This);
11150 
11151     /*** ISpRecoContext2 methods ***/
11152     HRESULT (STDMETHODCALLTYPE *SetGrammarOptions)(
11153         ISpRecoContext2* This,
11154         DWORD eGrammarOptions);
11155 
11156     HRESULT (STDMETHODCALLTYPE *GetGrammarOptions)(
11157         ISpRecoContext2* This,
11158         DWORD *peGrammarOptions);
11159 
11160     HRESULT (STDMETHODCALLTYPE *SetAdaptationData2)(
11161         ISpRecoContext2* This,
11162         LPCWSTR pAdaptationData,
11163         const ULONG cch,
11164         LPCWSTR pTopicName,
11165         DWORD eAdaptationSettings,
11166         SPADAPTATIONRELEVANCE eRelevance);
11167 
11168     END_INTERFACE
11169 } ISpRecoContext2Vtbl;
11170 interface ISpRecoContext2 {
11171     CONST_VTBL ISpRecoContext2Vtbl* lpVtbl;
11172 };
11173 
11174 #ifdef COBJMACROS
11175 #ifndef WIDL_C_INLINE_WRAPPERS
11176 /*** IUnknown methods ***/
11177 #define ISpRecoContext2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11178 #define ISpRecoContext2_AddRef(This) (This)->lpVtbl->AddRef(This)
11179 #define ISpRecoContext2_Release(This) (This)->lpVtbl->Release(This)
11180 /*** ISpRecoContext2 methods ***/
11181 #define ISpRecoContext2_SetGrammarOptions(This,eGrammarOptions) (This)->lpVtbl->SetGrammarOptions(This,eGrammarOptions)
11182 #define ISpRecoContext2_GetGrammarOptions(This,peGrammarOptions) (This)->lpVtbl->GetGrammarOptions(This,peGrammarOptions)
11183 #define ISpRecoContext2_SetAdaptationData2(This,pAdaptationData,cch,pTopicName,eAdaptationSettings,eRelevance) (This)->lpVtbl->SetAdaptationData2(This,pAdaptationData,cch,pTopicName,eAdaptationSettings,eRelevance)
11184 #else
11185 /*** IUnknown methods ***/
11186 static FORCEINLINE HRESULT ISpRecoContext2_QueryInterface(ISpRecoContext2* This,REFIID riid,void **ppvObject) {
11187     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11188 }
11189 static FORCEINLINE ULONG ISpRecoContext2_AddRef(ISpRecoContext2* This) {
11190     return This->lpVtbl->AddRef(This);
11191 }
11192 static FORCEINLINE ULONG ISpRecoContext2_Release(ISpRecoContext2* This) {
11193     return This->lpVtbl->Release(This);
11194 }
11195 /*** ISpRecoContext2 methods ***/
11196 static FORCEINLINE HRESULT ISpRecoContext2_SetGrammarOptions(ISpRecoContext2* This,DWORD eGrammarOptions) {
11197     return This->lpVtbl->SetGrammarOptions(This,eGrammarOptions);
11198 }
11199 static FORCEINLINE HRESULT ISpRecoContext2_GetGrammarOptions(ISpRecoContext2* This,DWORD *peGrammarOptions) {
11200     return This->lpVtbl->GetGrammarOptions(This,peGrammarOptions);
11201 }
11202 static FORCEINLINE HRESULT ISpRecoContext2_SetAdaptationData2(ISpRecoContext2* This,LPCWSTR pAdaptationData,const ULONG cch,LPCWSTR pTopicName,DWORD eAdaptationSettings,SPADAPTATIONRELEVANCE eRelevance) {
11203     return This->lpVtbl->SetAdaptationData2(This,pAdaptationData,cch,pTopicName,eAdaptationSettings,eRelevance);
11204 }
11205 #endif
11206 #endif
11207 
11208 #endif
11209 
11210 HRESULT STDMETHODCALLTYPE ISpRecoContext2_SetGrammarOptions_Proxy(
11211     ISpRecoContext2* This,
11212     DWORD eGrammarOptions);
11213 void __RPC_STUB ISpRecoContext2_SetGrammarOptions_Stub(
11214     IRpcStubBuffer* This,
11215     IRpcChannelBuffer* pRpcChannelBuffer,
11216     PRPC_MESSAGE pRpcMessage,
11217     DWORD* pdwStubPhase);
11218 HRESULT STDMETHODCALLTYPE ISpRecoContext2_GetGrammarOptions_Proxy(
11219     ISpRecoContext2* This,
11220     DWORD *peGrammarOptions);
11221 void __RPC_STUB ISpRecoContext2_GetGrammarOptions_Stub(
11222     IRpcStubBuffer* This,
11223     IRpcChannelBuffer* pRpcChannelBuffer,
11224     PRPC_MESSAGE pRpcMessage,
11225     DWORD* pdwStubPhase);
11226 HRESULT STDMETHODCALLTYPE ISpRecoContext2_SetAdaptationData2_Proxy(
11227     ISpRecoContext2* This,
11228     LPCWSTR pAdaptationData,
11229     const ULONG cch,
11230     LPCWSTR pTopicName,
11231     DWORD eAdaptationSettings,
11232     SPADAPTATIONRELEVANCE eRelevance);
11233 void __RPC_STUB ISpRecoContext2_SetAdaptationData2_Stub(
11234     IRpcStubBuffer* This,
11235     IRpcChannelBuffer* pRpcChannelBuffer,
11236     PRPC_MESSAGE pRpcMessage,
11237     DWORD* pdwStubPhase);
11238 
11239 #endif  /* __ISpRecoContext2_INTERFACE_DEFINED__ */
11240 
11241 /*****************************************************************************
11242  * ISpProperties interface
11243  */
11244 #ifndef __ISpProperties_INTERFACE_DEFINED__
11245 #define __ISpProperties_INTERFACE_DEFINED__
11246 
11247 DEFINE_GUID(IID_ISpProperties, 0x5b4fb971, 0xb115, 0x4de1, 0xad,0x97, 0xe4,0x82,0xe3,0xbf,0x6e,0xe4);
11248 #if defined(__cplusplus) && !defined(CINTERFACE)
11249 MIDL_INTERFACE("5b4fb971-b115-4de1-ad97-e482e3bf6ee4")
11250 ISpProperties : public IUnknown
11251 {
11252     virtual HRESULT STDMETHODCALLTYPE SetPropertyNum(
11253         LPCWSTR pName,
11254         LONG lValue) = 0;
11255 
11256     virtual HRESULT STDMETHODCALLTYPE GetPropertyNum(
11257         LPCWSTR pName,
11258         LONG *plValue) = 0;
11259 
11260     virtual HRESULT STDMETHODCALLTYPE SetPropertyString(
11261         LPCWSTR pName,
11262         LPCWSTR pValue) = 0;
11263 
11264     virtual HRESULT STDMETHODCALLTYPE GetPropertyString(
11265         LPCWSTR pName,
11266         LPWSTR *ppCoMemValue) = 0;
11267 
11268 };
11269 #ifdef __CRT_UUID_DECL
11270 __CRT_UUID_DECL(ISpProperties, 0x5b4fb971, 0xb115, 0x4de1, 0xad,0x97, 0xe4,0x82,0xe3,0xbf,0x6e,0xe4)
11271 #endif
11272 #else
11273 typedef struct ISpPropertiesVtbl {
11274     BEGIN_INTERFACE
11275 
11276     /*** IUnknown methods ***/
11277     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11278         ISpProperties* This,
11279         REFIID riid,
11280         void **ppvObject);
11281 
11282     ULONG (STDMETHODCALLTYPE *AddRef)(
11283         ISpProperties* This);
11284 
11285     ULONG (STDMETHODCALLTYPE *Release)(
11286         ISpProperties* This);
11287 
11288     /*** ISpProperties methods ***/
11289     HRESULT (STDMETHODCALLTYPE *SetPropertyNum)(
11290         ISpProperties* This,
11291         LPCWSTR pName,
11292         LONG lValue);
11293 
11294     HRESULT (STDMETHODCALLTYPE *GetPropertyNum)(
11295         ISpProperties* This,
11296         LPCWSTR pName,
11297         LONG *plValue);
11298 
11299     HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
11300         ISpProperties* This,
11301         LPCWSTR pName,
11302         LPCWSTR pValue);
11303 
11304     HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
11305         ISpProperties* This,
11306         LPCWSTR pName,
11307         LPWSTR *ppCoMemValue);
11308 
11309     END_INTERFACE
11310 } ISpPropertiesVtbl;
11311 interface ISpProperties {
11312     CONST_VTBL ISpPropertiesVtbl* lpVtbl;
11313 };
11314 
11315 #ifdef COBJMACROS
11316 #ifndef WIDL_C_INLINE_WRAPPERS
11317 /*** IUnknown methods ***/
11318 #define ISpProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11319 #define ISpProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
11320 #define ISpProperties_Release(This) (This)->lpVtbl->Release(This)
11321 /*** ISpProperties methods ***/
11322 #define ISpProperties_SetPropertyNum(This,pName,lValue) (This)->lpVtbl->SetPropertyNum(This,pName,lValue)
11323 #define ISpProperties_GetPropertyNum(This,pName,plValue) (This)->lpVtbl->GetPropertyNum(This,pName,plValue)
11324 #define ISpProperties_SetPropertyString(This,pName,pValue) (This)->lpVtbl->SetPropertyString(This,pName,pValue)
11325 #define ISpProperties_GetPropertyString(This,pName,ppCoMemValue) (This)->lpVtbl->GetPropertyString(This,pName,ppCoMemValue)
11326 #else
11327 /*** IUnknown methods ***/
11328 static FORCEINLINE HRESULT ISpProperties_QueryInterface(ISpProperties* This,REFIID riid,void **ppvObject) {
11329     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11330 }
11331 static FORCEINLINE ULONG ISpProperties_AddRef(ISpProperties* This) {
11332     return This->lpVtbl->AddRef(This);
11333 }
11334 static FORCEINLINE ULONG ISpProperties_Release(ISpProperties* This) {
11335     return This->lpVtbl->Release(This);
11336 }
11337 /*** ISpProperties methods ***/
11338 static FORCEINLINE HRESULT ISpProperties_SetPropertyNum(ISpProperties* This,LPCWSTR pName,LONG lValue) {
11339     return This->lpVtbl->SetPropertyNum(This,pName,lValue);
11340 }
11341 static FORCEINLINE HRESULT ISpProperties_GetPropertyNum(ISpProperties* This,LPCWSTR pName,LONG *plValue) {
11342     return This->lpVtbl->GetPropertyNum(This,pName,plValue);
11343 }
11344 static FORCEINLINE HRESULT ISpProperties_SetPropertyString(ISpProperties* This,LPCWSTR pName,LPCWSTR pValue) {
11345     return This->lpVtbl->SetPropertyString(This,pName,pValue);
11346 }
11347 static FORCEINLINE HRESULT ISpProperties_GetPropertyString(ISpProperties* This,LPCWSTR pName,LPWSTR *ppCoMemValue) {
11348     return This->lpVtbl->GetPropertyString(This,pName,ppCoMemValue);
11349 }
11350 #endif
11351 #endif
11352 
11353 #endif
11354 
11355 HRESULT STDMETHODCALLTYPE ISpProperties_SetPropertyNum_Proxy(
11356     ISpProperties* This,
11357     LPCWSTR pName,
11358     LONG lValue);
11359 void __RPC_STUB ISpProperties_SetPropertyNum_Stub(
11360     IRpcStubBuffer* This,
11361     IRpcChannelBuffer* pRpcChannelBuffer,
11362     PRPC_MESSAGE pRpcMessage,
11363     DWORD* pdwStubPhase);
11364 HRESULT STDMETHODCALLTYPE ISpProperties_GetPropertyNum_Proxy(
11365     ISpProperties* This,
11366     LPCWSTR pName,
11367     LONG *plValue);
11368 void __RPC_STUB ISpProperties_GetPropertyNum_Stub(
11369     IRpcStubBuffer* This,
11370     IRpcChannelBuffer* pRpcChannelBuffer,
11371     PRPC_MESSAGE pRpcMessage,
11372     DWORD* pdwStubPhase);
11373 HRESULT STDMETHODCALLTYPE ISpProperties_SetPropertyString_Proxy(
11374     ISpProperties* This,
11375     LPCWSTR pName,
11376     LPCWSTR pValue);
11377 void __RPC_STUB ISpProperties_SetPropertyString_Stub(
11378     IRpcStubBuffer* This,
11379     IRpcChannelBuffer* pRpcChannelBuffer,
11380     PRPC_MESSAGE pRpcMessage,
11381     DWORD* pdwStubPhase);
11382 HRESULT STDMETHODCALLTYPE ISpProperties_GetPropertyString_Proxy(
11383     ISpProperties* This,
11384     LPCWSTR pName,
11385     LPWSTR *ppCoMemValue);
11386 void __RPC_STUB ISpProperties_GetPropertyString_Stub(
11387     IRpcStubBuffer* This,
11388     IRpcChannelBuffer* pRpcChannelBuffer,
11389     PRPC_MESSAGE pRpcMessage,
11390     DWORD* pdwStubPhase);
11391 
11392 #endif  /* __ISpProperties_INTERFACE_DEFINED__ */
11393 
11394 #define SP_MAX_LANGIDS (20)
11395 
11396 typedef struct SPRECOGNIZERSTATUS {
11397     SPAUDIOSTATUS AudioStatus;
11398     ULONGLONG ullRecognitionStreamPos;
11399     ULONG ulStreamNumber;
11400     ULONG ulNumActive;
11401     CLSID clsidEngine;
11402     ULONG cLangIDs;
11403     WORD aLangID[20];
11404     ULONGLONG ullRecognitionStreamTime;
11405 } SPRECOGNIZERSTATUS;
11406 typedef enum SPWAVEFORMATTYPE {
11407     SPWF_INPUT = 0,
11408     SPWF_SRENGINE = 1
11409 } SPSTREAMFORMATTYPE;
11410 typedef enum SPRECOSTATE {
11411     SPRST_INACTIVE = 0,
11412     SPRST_ACTIVE = 1,
11413     SPRST_ACTIVE_ALWAYS = 2,
11414     SPRST_INACTIVE_WITH_PURGE = 3,
11415     SPRST_NUM_STATES = 4
11416 } SPRECOSTATE;
11417 typedef enum SPCATEGORYTYPE {
11418     SPCT_COMMAND = 0,
11419     SPCT_DICTATION = 1,
11420     SPCT_SLEEP = 2,
11421     SPCT_SUB_COMMAND = 3,
11422     SPCT_SUB_DICTATION = 4
11423 } SPCATEGORYTYPE;
11424 /*****************************************************************************
11425  * ISpRecognizer interface
11426  */
11427 #ifndef __ISpRecognizer_INTERFACE_DEFINED__
11428 #define __ISpRecognizer_INTERFACE_DEFINED__
11429 
11430 DEFINE_GUID(IID_ISpRecognizer, 0xc2b5f241, 0xdaa0, 0x4507, 0x9e,0x16, 0x5a,0x1e,0xaa,0x2b,0x7a,0x5c);
11431 #if defined(__cplusplus) && !defined(CINTERFACE)
11432 MIDL_INTERFACE("c2b5f241-daa0-4507-9e16-5a1eaa2b7a5c")
11433 ISpRecognizer : public ISpProperties
11434 {
11435     virtual HRESULT STDMETHODCALLTYPE SetRecognizer(
11436         ISpObjectToken *pRecognizer) = 0;
11437 
11438     virtual HRESULT STDMETHODCALLTYPE GetRecognizer(
11439         ISpObjectToken **ppRecognizer) = 0;
11440 
11441     virtual HRESULT STDMETHODCALLTYPE SetInput(
11442         IUnknown *pUnkInput,
11443         WINBOOL fAllowFormatChanges) = 0;
11444 
11445     virtual HRESULT STDMETHODCALLTYPE GetInputObjectToken(
11446         ISpObjectToken **ppToken) = 0;
11447 
11448     virtual HRESULT STDMETHODCALLTYPE GetInputStream(
11449         ISpStreamFormat **ppStream) = 0;
11450 
11451     virtual HRESULT STDMETHODCALLTYPE CreateRecoContext(
11452         ISpRecoContext **ppNewCtxt) = 0;
11453 
11454     virtual HRESULT STDMETHODCALLTYPE GetRecoProfile(
11455         ISpObjectToken **ppToken) = 0;
11456 
11457     virtual HRESULT STDMETHODCALLTYPE SetRecoProfile(
11458         ISpObjectToken *pToken) = 0;
11459 
11460     virtual HRESULT STDMETHODCALLTYPE IsSharedInstance(
11461         ) = 0;
11462 
11463     virtual HRESULT STDMETHODCALLTYPE GetRecoState(
11464         SPRECOSTATE *pState) = 0;
11465 
11466     virtual HRESULT STDMETHODCALLTYPE SetRecoState(
11467         SPRECOSTATE NewState) = 0;
11468 
11469     virtual HRESULT STDMETHODCALLTYPE GetStatus(
11470         SPRECOGNIZERSTATUS *pStatus) = 0;
11471 
11472     virtual HRESULT STDMETHODCALLTYPE GetFormat(
11473         SPSTREAMFORMATTYPE WaveFormatType,
11474         GUID *pFormatId,
11475         WAVEFORMATEX **ppCoMemWFEX) = 0;
11476 
11477     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
11478         LPCWSTR pszTypeOfUI,
11479         void *pvExtraData,
11480         ULONG cbExtraData,
11481         WINBOOL *pfSupported) = 0;
11482 
11483     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
11484         HWND hwndParent,
11485         LPCWSTR pszTitle,
11486         LPCWSTR pszTypeOfUI,
11487         void *pvExtraData,
11488         ULONG cbExtraData) = 0;
11489 
11490     virtual HRESULT STDMETHODCALLTYPE EmulateRecognition(
11491         ISpPhrase *pPhrase) = 0;
11492 
11493 };
11494 #ifdef __CRT_UUID_DECL
11495 __CRT_UUID_DECL(ISpRecognizer, 0xc2b5f241, 0xdaa0, 0x4507, 0x9e,0x16, 0x5a,0x1e,0xaa,0x2b,0x7a,0x5c)
11496 #endif
11497 #else
11498 typedef struct ISpRecognizerVtbl {
11499     BEGIN_INTERFACE
11500 
11501     /*** IUnknown methods ***/
11502     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11503         ISpRecognizer* This,
11504         REFIID riid,
11505         void **ppvObject);
11506 
11507     ULONG (STDMETHODCALLTYPE *AddRef)(
11508         ISpRecognizer* This);
11509 
11510     ULONG (STDMETHODCALLTYPE *Release)(
11511         ISpRecognizer* This);
11512 
11513     /*** ISpProperties methods ***/
11514     HRESULT (STDMETHODCALLTYPE *SetPropertyNum)(
11515         ISpRecognizer* This,
11516         LPCWSTR pName,
11517         LONG lValue);
11518 
11519     HRESULT (STDMETHODCALLTYPE *GetPropertyNum)(
11520         ISpRecognizer* This,
11521         LPCWSTR pName,
11522         LONG *plValue);
11523 
11524     HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
11525         ISpRecognizer* This,
11526         LPCWSTR pName,
11527         LPCWSTR pValue);
11528 
11529     HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
11530         ISpRecognizer* This,
11531         LPCWSTR pName,
11532         LPWSTR *ppCoMemValue);
11533 
11534     /*** ISpRecognizer methods ***/
11535     HRESULT (STDMETHODCALLTYPE *SetRecognizer)(
11536         ISpRecognizer* This,
11537         ISpObjectToken *pRecognizer);
11538 
11539     HRESULT (STDMETHODCALLTYPE *GetRecognizer)(
11540         ISpRecognizer* This,
11541         ISpObjectToken **ppRecognizer);
11542 
11543     HRESULT (STDMETHODCALLTYPE *SetInput)(
11544         ISpRecognizer* This,
11545         IUnknown *pUnkInput,
11546         WINBOOL fAllowFormatChanges);
11547 
11548     HRESULT (STDMETHODCALLTYPE *GetInputObjectToken)(
11549         ISpRecognizer* This,
11550         ISpObjectToken **ppToken);
11551 
11552     HRESULT (STDMETHODCALLTYPE *GetInputStream)(
11553         ISpRecognizer* This,
11554         ISpStreamFormat **ppStream);
11555 
11556     HRESULT (STDMETHODCALLTYPE *CreateRecoContext)(
11557         ISpRecognizer* This,
11558         ISpRecoContext **ppNewCtxt);
11559 
11560     HRESULT (STDMETHODCALLTYPE *GetRecoProfile)(
11561         ISpRecognizer* This,
11562         ISpObjectToken **ppToken);
11563 
11564     HRESULT (STDMETHODCALLTYPE *SetRecoProfile)(
11565         ISpRecognizer* This,
11566         ISpObjectToken *pToken);
11567 
11568     HRESULT (STDMETHODCALLTYPE *IsSharedInstance)(
11569         ISpRecognizer* This);
11570 
11571     HRESULT (STDMETHODCALLTYPE *GetRecoState)(
11572         ISpRecognizer* This,
11573         SPRECOSTATE *pState);
11574 
11575     HRESULT (STDMETHODCALLTYPE *SetRecoState)(
11576         ISpRecognizer* This,
11577         SPRECOSTATE NewState);
11578 
11579     HRESULT (STDMETHODCALLTYPE *GetStatus)(
11580         ISpRecognizer* This,
11581         SPRECOGNIZERSTATUS *pStatus);
11582 
11583     HRESULT (STDMETHODCALLTYPE *GetFormat)(
11584         ISpRecognizer* This,
11585         SPSTREAMFORMATTYPE WaveFormatType,
11586         GUID *pFormatId,
11587         WAVEFORMATEX **ppCoMemWFEX);
11588 
11589     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
11590         ISpRecognizer* This,
11591         LPCWSTR pszTypeOfUI,
11592         void *pvExtraData,
11593         ULONG cbExtraData,
11594         WINBOOL *pfSupported);
11595 
11596     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
11597         ISpRecognizer* This,
11598         HWND hwndParent,
11599         LPCWSTR pszTitle,
11600         LPCWSTR pszTypeOfUI,
11601         void *pvExtraData,
11602         ULONG cbExtraData);
11603 
11604     HRESULT (STDMETHODCALLTYPE *EmulateRecognition)(
11605         ISpRecognizer* This,
11606         ISpPhrase *pPhrase);
11607 
11608     END_INTERFACE
11609 } ISpRecognizerVtbl;
11610 interface ISpRecognizer {
11611     CONST_VTBL ISpRecognizerVtbl* lpVtbl;
11612 };
11613 
11614 #ifdef COBJMACROS
11615 #ifndef WIDL_C_INLINE_WRAPPERS
11616 /*** IUnknown methods ***/
11617 #define ISpRecognizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11618 #define ISpRecognizer_AddRef(This) (This)->lpVtbl->AddRef(This)
11619 #define ISpRecognizer_Release(This) (This)->lpVtbl->Release(This)
11620 /*** ISpProperties methods ***/
11621 #define ISpRecognizer_SetPropertyNum(This,pName,lValue) (This)->lpVtbl->SetPropertyNum(This,pName,lValue)
11622 #define ISpRecognizer_GetPropertyNum(This,pName,plValue) (This)->lpVtbl->GetPropertyNum(This,pName,plValue)
11623 #define ISpRecognizer_SetPropertyString(This,pName,pValue) (This)->lpVtbl->SetPropertyString(This,pName,pValue)
11624 #define ISpRecognizer_GetPropertyString(This,pName,ppCoMemValue) (This)->lpVtbl->GetPropertyString(This,pName,ppCoMemValue)
11625 /*** ISpRecognizer methods ***/
11626 #define ISpRecognizer_SetRecognizer(This,pRecognizer) (This)->lpVtbl->SetRecognizer(This,pRecognizer)
11627 #define ISpRecognizer_GetRecognizer(This,ppRecognizer) (This)->lpVtbl->GetRecognizer(This,ppRecognizer)
11628 #define ISpRecognizer_SetInput(This,pUnkInput,fAllowFormatChanges) (This)->lpVtbl->SetInput(This,pUnkInput,fAllowFormatChanges)
11629 #define ISpRecognizer_GetInputObjectToken(This,ppToken) (This)->lpVtbl->GetInputObjectToken(This,ppToken)
11630 #define ISpRecognizer_GetInputStream(This,ppStream) (This)->lpVtbl->GetInputStream(This,ppStream)
11631 #define ISpRecognizer_CreateRecoContext(This,ppNewCtxt) (This)->lpVtbl->CreateRecoContext(This,ppNewCtxt)
11632 #define ISpRecognizer_GetRecoProfile(This,ppToken) (This)->lpVtbl->GetRecoProfile(This,ppToken)
11633 #define ISpRecognizer_SetRecoProfile(This,pToken) (This)->lpVtbl->SetRecoProfile(This,pToken)
11634 #define ISpRecognizer_IsSharedInstance(This) (This)->lpVtbl->IsSharedInstance(This)
11635 #define ISpRecognizer_GetRecoState(This,pState) (This)->lpVtbl->GetRecoState(This,pState)
11636 #define ISpRecognizer_SetRecoState(This,NewState) (This)->lpVtbl->SetRecoState(This,NewState)
11637 #define ISpRecognizer_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
11638 #define ISpRecognizer_GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX) (This)->lpVtbl->GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX)
11639 #define ISpRecognizer_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported)
11640 #define ISpRecognizer_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData)
11641 #define ISpRecognizer_EmulateRecognition(This,pPhrase) (This)->lpVtbl->EmulateRecognition(This,pPhrase)
11642 #else
11643 /*** IUnknown methods ***/
11644 static FORCEINLINE HRESULT ISpRecognizer_QueryInterface(ISpRecognizer* This,REFIID riid,void **ppvObject) {
11645     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11646 }
11647 static FORCEINLINE ULONG ISpRecognizer_AddRef(ISpRecognizer* This) {
11648     return This->lpVtbl->AddRef(This);
11649 }
11650 static FORCEINLINE ULONG ISpRecognizer_Release(ISpRecognizer* This) {
11651     return This->lpVtbl->Release(This);
11652 }
11653 /*** ISpProperties methods ***/
11654 static FORCEINLINE HRESULT ISpRecognizer_SetPropertyNum(ISpRecognizer* This,LPCWSTR pName,LONG lValue) {
11655     return This->lpVtbl->SetPropertyNum(This,pName,lValue);
11656 }
11657 static FORCEINLINE HRESULT ISpRecognizer_GetPropertyNum(ISpRecognizer* This,LPCWSTR pName,LONG *plValue) {
11658     return This->lpVtbl->GetPropertyNum(This,pName,plValue);
11659 }
11660 static FORCEINLINE HRESULT ISpRecognizer_SetPropertyString(ISpRecognizer* This,LPCWSTR pName,LPCWSTR pValue) {
11661     return This->lpVtbl->SetPropertyString(This,pName,pValue);
11662 }
11663 static FORCEINLINE HRESULT ISpRecognizer_GetPropertyString(ISpRecognizer* This,LPCWSTR pName,LPWSTR *ppCoMemValue) {
11664     return This->lpVtbl->GetPropertyString(This,pName,ppCoMemValue);
11665 }
11666 /*** ISpRecognizer methods ***/
11667 static FORCEINLINE HRESULT ISpRecognizer_SetRecognizer(ISpRecognizer* This,ISpObjectToken *pRecognizer) {
11668     return This->lpVtbl->SetRecognizer(This,pRecognizer);
11669 }
11670 static FORCEINLINE HRESULT ISpRecognizer_GetRecognizer(ISpRecognizer* This,ISpObjectToken **ppRecognizer) {
11671     return This->lpVtbl->GetRecognizer(This,ppRecognizer);
11672 }
11673 static FORCEINLINE HRESULT ISpRecognizer_SetInput(ISpRecognizer* This,IUnknown *pUnkInput,WINBOOL fAllowFormatChanges) {
11674     return This->lpVtbl->SetInput(This,pUnkInput,fAllowFormatChanges);
11675 }
11676 static FORCEINLINE HRESULT ISpRecognizer_GetInputObjectToken(ISpRecognizer* This,ISpObjectToken **ppToken) {
11677     return This->lpVtbl->GetInputObjectToken(This,ppToken);
11678 }
11679 static FORCEINLINE HRESULT ISpRecognizer_GetInputStream(ISpRecognizer* This,ISpStreamFormat **ppStream) {
11680     return This->lpVtbl->GetInputStream(This,ppStream);
11681 }
11682 static FORCEINLINE HRESULT ISpRecognizer_CreateRecoContext(ISpRecognizer* This,ISpRecoContext **ppNewCtxt) {
11683     return This->lpVtbl->CreateRecoContext(This,ppNewCtxt);
11684 }
11685 static FORCEINLINE HRESULT ISpRecognizer_GetRecoProfile(ISpRecognizer* This,ISpObjectToken **ppToken) {
11686     return This->lpVtbl->GetRecoProfile(This,ppToken);
11687 }
11688 static FORCEINLINE HRESULT ISpRecognizer_SetRecoProfile(ISpRecognizer* This,ISpObjectToken *pToken) {
11689     return This->lpVtbl->SetRecoProfile(This,pToken);
11690 }
11691 static FORCEINLINE HRESULT ISpRecognizer_IsSharedInstance(ISpRecognizer* This) {
11692     return This->lpVtbl->IsSharedInstance(This);
11693 }
11694 static FORCEINLINE HRESULT ISpRecognizer_GetRecoState(ISpRecognizer* This,SPRECOSTATE *pState) {
11695     return This->lpVtbl->GetRecoState(This,pState);
11696 }
11697 static FORCEINLINE HRESULT ISpRecognizer_SetRecoState(ISpRecognizer* This,SPRECOSTATE NewState) {
11698     return This->lpVtbl->SetRecoState(This,NewState);
11699 }
11700 static FORCEINLINE HRESULT ISpRecognizer_GetStatus(ISpRecognizer* This,SPRECOGNIZERSTATUS *pStatus) {
11701     return This->lpVtbl->GetStatus(This,pStatus);
11702 }
11703 static FORCEINLINE HRESULT ISpRecognizer_GetFormat(ISpRecognizer* This,SPSTREAMFORMATTYPE WaveFormatType,GUID *pFormatId,WAVEFORMATEX **ppCoMemWFEX) {
11704     return This->lpVtbl->GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX);
11705 }
11706 static FORCEINLINE HRESULT ISpRecognizer_IsUISupported(ISpRecognizer* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,WINBOOL *pfSupported) {
11707     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported);
11708 }
11709 static FORCEINLINE HRESULT ISpRecognizer_DisplayUI(ISpRecognizer* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData) {
11710     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData);
11711 }
11712 static FORCEINLINE HRESULT ISpRecognizer_EmulateRecognition(ISpRecognizer* This,ISpPhrase *pPhrase) {
11713     return This->lpVtbl->EmulateRecognition(This,pPhrase);
11714 }
11715 #endif
11716 #endif
11717 
11718 #endif
11719 
11720 HRESULT STDMETHODCALLTYPE ISpRecognizer_SetRecognizer_Proxy(
11721     ISpRecognizer* This,
11722     ISpObjectToken *pRecognizer);
11723 void __RPC_STUB ISpRecognizer_SetRecognizer_Stub(
11724     IRpcStubBuffer* This,
11725     IRpcChannelBuffer* pRpcChannelBuffer,
11726     PRPC_MESSAGE pRpcMessage,
11727     DWORD* pdwStubPhase);
11728 HRESULT STDMETHODCALLTYPE ISpRecognizer_GetRecognizer_Proxy(
11729     ISpRecognizer* This,
11730     ISpObjectToken **ppRecognizer);
11731 void __RPC_STUB ISpRecognizer_GetRecognizer_Stub(
11732     IRpcStubBuffer* This,
11733     IRpcChannelBuffer* pRpcChannelBuffer,
11734     PRPC_MESSAGE pRpcMessage,
11735     DWORD* pdwStubPhase);
11736 HRESULT STDMETHODCALLTYPE ISpRecognizer_SetInput_Proxy(
11737     ISpRecognizer* This,
11738     IUnknown *pUnkInput,
11739     WINBOOL fAllowFormatChanges);
11740 void __RPC_STUB ISpRecognizer_SetInput_Stub(
11741     IRpcStubBuffer* This,
11742     IRpcChannelBuffer* pRpcChannelBuffer,
11743     PRPC_MESSAGE pRpcMessage,
11744     DWORD* pdwStubPhase);
11745 HRESULT STDMETHODCALLTYPE ISpRecognizer_GetInputObjectToken_Proxy(
11746     ISpRecognizer* This,
11747     ISpObjectToken **ppToken);
11748 void __RPC_STUB ISpRecognizer_GetInputObjectToken_Stub(
11749     IRpcStubBuffer* This,
11750     IRpcChannelBuffer* pRpcChannelBuffer,
11751     PRPC_MESSAGE pRpcMessage,
11752     DWORD* pdwStubPhase);
11753 HRESULT STDMETHODCALLTYPE ISpRecognizer_GetInputStream_Proxy(
11754     ISpRecognizer* This,
11755     ISpStreamFormat **ppStream);
11756 void __RPC_STUB ISpRecognizer_GetInputStream_Stub(
11757     IRpcStubBuffer* This,
11758     IRpcChannelBuffer* pRpcChannelBuffer,
11759     PRPC_MESSAGE pRpcMessage,
11760     DWORD* pdwStubPhase);
11761 HRESULT STDMETHODCALLTYPE ISpRecognizer_CreateRecoContext_Proxy(
11762     ISpRecognizer* This,
11763     ISpRecoContext **ppNewCtxt);
11764 void __RPC_STUB ISpRecognizer_CreateRecoContext_Stub(
11765     IRpcStubBuffer* This,
11766     IRpcChannelBuffer* pRpcChannelBuffer,
11767     PRPC_MESSAGE pRpcMessage,
11768     DWORD* pdwStubPhase);
11769 HRESULT STDMETHODCALLTYPE ISpRecognizer_GetRecoProfile_Proxy(
11770     ISpRecognizer* This,
11771     ISpObjectToken **ppToken);
11772 void __RPC_STUB ISpRecognizer_GetRecoProfile_Stub(
11773     IRpcStubBuffer* This,
11774     IRpcChannelBuffer* pRpcChannelBuffer,
11775     PRPC_MESSAGE pRpcMessage,
11776     DWORD* pdwStubPhase);
11777 HRESULT STDMETHODCALLTYPE ISpRecognizer_SetRecoProfile_Proxy(
11778     ISpRecognizer* This,
11779     ISpObjectToken *pToken);
11780 void __RPC_STUB ISpRecognizer_SetRecoProfile_Stub(
11781     IRpcStubBuffer* This,
11782     IRpcChannelBuffer* pRpcChannelBuffer,
11783     PRPC_MESSAGE pRpcMessage,
11784     DWORD* pdwStubPhase);
11785 HRESULT STDMETHODCALLTYPE ISpRecognizer_IsSharedInstance_Proxy(
11786     ISpRecognizer* This);
11787 void __RPC_STUB ISpRecognizer_IsSharedInstance_Stub(
11788     IRpcStubBuffer* This,
11789     IRpcChannelBuffer* pRpcChannelBuffer,
11790     PRPC_MESSAGE pRpcMessage,
11791     DWORD* pdwStubPhase);
11792 HRESULT STDMETHODCALLTYPE ISpRecognizer_GetRecoState_Proxy(
11793     ISpRecognizer* This,
11794     SPRECOSTATE *pState);
11795 void __RPC_STUB ISpRecognizer_GetRecoState_Stub(
11796     IRpcStubBuffer* This,
11797     IRpcChannelBuffer* pRpcChannelBuffer,
11798     PRPC_MESSAGE pRpcMessage,
11799     DWORD* pdwStubPhase);
11800 HRESULT STDMETHODCALLTYPE ISpRecognizer_SetRecoState_Proxy(
11801     ISpRecognizer* This,
11802     SPRECOSTATE NewState);
11803 void __RPC_STUB ISpRecognizer_SetRecoState_Stub(
11804     IRpcStubBuffer* This,
11805     IRpcChannelBuffer* pRpcChannelBuffer,
11806     PRPC_MESSAGE pRpcMessage,
11807     DWORD* pdwStubPhase);
11808 HRESULT STDMETHODCALLTYPE ISpRecognizer_GetStatus_Proxy(
11809     ISpRecognizer* This,
11810     SPRECOGNIZERSTATUS *pStatus);
11811 void __RPC_STUB ISpRecognizer_GetStatus_Stub(
11812     IRpcStubBuffer* This,
11813     IRpcChannelBuffer* pRpcChannelBuffer,
11814     PRPC_MESSAGE pRpcMessage,
11815     DWORD* pdwStubPhase);
11816 HRESULT STDMETHODCALLTYPE ISpRecognizer_GetFormat_Proxy(
11817     ISpRecognizer* This,
11818     SPSTREAMFORMATTYPE WaveFormatType,
11819     GUID *pFormatId,
11820     WAVEFORMATEX **ppCoMemWFEX);
11821 void __RPC_STUB ISpRecognizer_GetFormat_Stub(
11822     IRpcStubBuffer* This,
11823     IRpcChannelBuffer* pRpcChannelBuffer,
11824     PRPC_MESSAGE pRpcMessage,
11825     DWORD* pdwStubPhase);
11826 HRESULT STDMETHODCALLTYPE ISpRecognizer_EmulateRecognition_Proxy(
11827     ISpRecognizer* This,
11828     ISpPhrase *pPhrase);
11829 void __RPC_STUB ISpRecognizer_EmulateRecognition_Stub(
11830     IRpcStubBuffer* This,
11831     IRpcChannelBuffer* pRpcChannelBuffer,
11832     PRPC_MESSAGE pRpcMessage,
11833     DWORD* pdwStubPhase);
11834 
11835 #endif  /* __ISpRecognizer_INTERFACE_DEFINED__ */
11836 
11837 /*****************************************************************************
11838  * ISpSerializeState interface
11839  */
11840 #ifndef __ISpSerializeState_INTERFACE_DEFINED__
11841 #define __ISpSerializeState_INTERFACE_DEFINED__
11842 
11843 DEFINE_GUID(IID_ISpSerializeState, 0x21b501a0, 0x0ec7, 0x46c9, 0x92,0xc3, 0xa2,0xbc,0x78,0x4c,0x54,0xb9);
11844 #if defined(__cplusplus) && !defined(CINTERFACE)
11845 MIDL_INTERFACE("21b501a0-0ec7-46c9-92c3-a2bc784c54b9")
11846 ISpSerializeState : public IUnknown
11847 {
11848     virtual HRESULT STDMETHODCALLTYPE GetSerializedState(
11849         BYTE **ppbData,
11850         ULONG *pulSize,
11851         DWORD dwReserved) = 0;
11852 
11853     virtual HRESULT STDMETHODCALLTYPE SetSerializedState(
11854         BYTE *pbData,
11855         ULONG ulSize,
11856         DWORD dwReserved) = 0;
11857 
11858 };
11859 #ifdef __CRT_UUID_DECL
11860 __CRT_UUID_DECL(ISpSerializeState, 0x21b501a0, 0x0ec7, 0x46c9, 0x92,0xc3, 0xa2,0xbc,0x78,0x4c,0x54,0xb9)
11861 #endif
11862 #else
11863 typedef struct ISpSerializeStateVtbl {
11864     BEGIN_INTERFACE
11865 
11866     /*** IUnknown methods ***/
11867     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11868         ISpSerializeState* This,
11869         REFIID riid,
11870         void **ppvObject);
11871 
11872     ULONG (STDMETHODCALLTYPE *AddRef)(
11873         ISpSerializeState* This);
11874 
11875     ULONG (STDMETHODCALLTYPE *Release)(
11876         ISpSerializeState* This);
11877 
11878     /*** ISpSerializeState methods ***/
11879     HRESULT (STDMETHODCALLTYPE *GetSerializedState)(
11880         ISpSerializeState* This,
11881         BYTE **ppbData,
11882         ULONG *pulSize,
11883         DWORD dwReserved);
11884 
11885     HRESULT (STDMETHODCALLTYPE *SetSerializedState)(
11886         ISpSerializeState* This,
11887         BYTE *pbData,
11888         ULONG ulSize,
11889         DWORD dwReserved);
11890 
11891     END_INTERFACE
11892 } ISpSerializeStateVtbl;
11893 interface ISpSerializeState {
11894     CONST_VTBL ISpSerializeStateVtbl* lpVtbl;
11895 };
11896 
11897 #ifdef COBJMACROS
11898 #ifndef WIDL_C_INLINE_WRAPPERS
11899 /*** IUnknown methods ***/
11900 #define ISpSerializeState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11901 #define ISpSerializeState_AddRef(This) (This)->lpVtbl->AddRef(This)
11902 #define ISpSerializeState_Release(This) (This)->lpVtbl->Release(This)
11903 /*** ISpSerializeState methods ***/
11904 #define ISpSerializeState_GetSerializedState(This,ppbData,pulSize,dwReserved) (This)->lpVtbl->GetSerializedState(This,ppbData,pulSize,dwReserved)
11905 #define ISpSerializeState_SetSerializedState(This,pbData,ulSize,dwReserved) (This)->lpVtbl->SetSerializedState(This,pbData,ulSize,dwReserved)
11906 #else
11907 /*** IUnknown methods ***/
11908 static FORCEINLINE HRESULT ISpSerializeState_QueryInterface(ISpSerializeState* This,REFIID riid,void **ppvObject) {
11909     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11910 }
11911 static FORCEINLINE ULONG ISpSerializeState_AddRef(ISpSerializeState* This) {
11912     return This->lpVtbl->AddRef(This);
11913 }
11914 static FORCEINLINE ULONG ISpSerializeState_Release(ISpSerializeState* This) {
11915     return This->lpVtbl->Release(This);
11916 }
11917 /*** ISpSerializeState methods ***/
11918 static FORCEINLINE HRESULT ISpSerializeState_GetSerializedState(ISpSerializeState* This,BYTE **ppbData,ULONG *pulSize,DWORD dwReserved) {
11919     return This->lpVtbl->GetSerializedState(This,ppbData,pulSize,dwReserved);
11920 }
11921 static FORCEINLINE HRESULT ISpSerializeState_SetSerializedState(ISpSerializeState* This,BYTE *pbData,ULONG ulSize,DWORD dwReserved) {
11922     return This->lpVtbl->SetSerializedState(This,pbData,ulSize,dwReserved);
11923 }
11924 #endif
11925 #endif
11926 
11927 #endif
11928 
11929 HRESULT STDMETHODCALLTYPE ISpSerializeState_GetSerializedState_Proxy(
11930     ISpSerializeState* This,
11931     BYTE **ppbData,
11932     ULONG *pulSize,
11933     DWORD dwReserved);
11934 void __RPC_STUB ISpSerializeState_GetSerializedState_Stub(
11935     IRpcStubBuffer* This,
11936     IRpcChannelBuffer* pRpcChannelBuffer,
11937     PRPC_MESSAGE pRpcMessage,
11938     DWORD* pdwStubPhase);
11939 HRESULT STDMETHODCALLTYPE ISpSerializeState_SetSerializedState_Proxy(
11940     ISpSerializeState* This,
11941     BYTE *pbData,
11942     ULONG ulSize,
11943     DWORD dwReserved);
11944 void __RPC_STUB ISpSerializeState_SetSerializedState_Stub(
11945     IRpcStubBuffer* This,
11946     IRpcChannelBuffer* pRpcChannelBuffer,
11947     PRPC_MESSAGE pRpcMessage,
11948     DWORD* pdwStubPhase);
11949 
11950 #endif  /* __ISpSerializeState_INTERFACE_DEFINED__ */
11951 
11952 /*****************************************************************************
11953  * ISpRecognizer2 interface
11954  */
11955 #ifndef __ISpRecognizer2_INTERFACE_DEFINED__
11956 #define __ISpRecognizer2_INTERFACE_DEFINED__
11957 
11958 DEFINE_GUID(IID_ISpRecognizer2, 0x8fc6d974, 0xc81e, 0x4098, 0x93,0xc5, 0x01,0x47,0xf6,0x1e,0xd4,0xd3);
11959 #if defined(__cplusplus) && !defined(CINTERFACE)
11960 MIDL_INTERFACE("8fc6d974-c81e-4098-93c5-0147f61ed4d3")
11961 ISpRecognizer2 : public IUnknown
11962 {
11963     virtual HRESULT STDMETHODCALLTYPE EmulateRecognitionEx(
11964         ISpPhrase *pPhrase,
11965         DWORD dwCompareFlags) = 0;
11966 
11967     virtual HRESULT STDMETHODCALLTYPE SetTrainingState(
11968         WINBOOL fDoingTraining,
11969         WINBOOL fAdaptFromTrainingData) = 0;
11970 
11971     virtual HRESULT STDMETHODCALLTYPE ResetAcousticModelAdaptation(
11972         ) = 0;
11973 
11974 };
11975 #ifdef __CRT_UUID_DECL
11976 __CRT_UUID_DECL(ISpRecognizer2, 0x8fc6d974, 0xc81e, 0x4098, 0x93,0xc5, 0x01,0x47,0xf6,0x1e,0xd4,0xd3)
11977 #endif
11978 #else
11979 typedef struct ISpRecognizer2Vtbl {
11980     BEGIN_INTERFACE
11981 
11982     /*** IUnknown methods ***/
11983     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11984         ISpRecognizer2* This,
11985         REFIID riid,
11986         void **ppvObject);
11987 
11988     ULONG (STDMETHODCALLTYPE *AddRef)(
11989         ISpRecognizer2* This);
11990 
11991     ULONG (STDMETHODCALLTYPE *Release)(
11992         ISpRecognizer2* This);
11993 
11994     /*** ISpRecognizer2 methods ***/
11995     HRESULT (STDMETHODCALLTYPE *EmulateRecognitionEx)(
11996         ISpRecognizer2* This,
11997         ISpPhrase *pPhrase,
11998         DWORD dwCompareFlags);
11999 
12000     HRESULT (STDMETHODCALLTYPE *SetTrainingState)(
12001         ISpRecognizer2* This,
12002         WINBOOL fDoingTraining,
12003         WINBOOL fAdaptFromTrainingData);
12004 
12005     HRESULT (STDMETHODCALLTYPE *ResetAcousticModelAdaptation)(
12006         ISpRecognizer2* This);
12007 
12008     END_INTERFACE
12009 } ISpRecognizer2Vtbl;
12010 interface ISpRecognizer2 {
12011     CONST_VTBL ISpRecognizer2Vtbl* lpVtbl;
12012 };
12013 
12014 #ifdef COBJMACROS
12015 #ifndef WIDL_C_INLINE_WRAPPERS
12016 /*** IUnknown methods ***/
12017 #define ISpRecognizer2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12018 #define ISpRecognizer2_AddRef(This) (This)->lpVtbl->AddRef(This)
12019 #define ISpRecognizer2_Release(This) (This)->lpVtbl->Release(This)
12020 /*** ISpRecognizer2 methods ***/
12021 #define ISpRecognizer2_EmulateRecognitionEx(This,pPhrase,dwCompareFlags) (This)->lpVtbl->EmulateRecognitionEx(This,pPhrase,dwCompareFlags)
12022 #define ISpRecognizer2_SetTrainingState(This,fDoingTraining,fAdaptFromTrainingData) (This)->lpVtbl->SetTrainingState(This,fDoingTraining,fAdaptFromTrainingData)
12023 #define ISpRecognizer2_ResetAcousticModelAdaptation(This) (This)->lpVtbl->ResetAcousticModelAdaptation(This)
12024 #else
12025 /*** IUnknown methods ***/
12026 static FORCEINLINE HRESULT ISpRecognizer2_QueryInterface(ISpRecognizer2* This,REFIID riid,void **ppvObject) {
12027     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12028 }
12029 static FORCEINLINE ULONG ISpRecognizer2_AddRef(ISpRecognizer2* This) {
12030     return This->lpVtbl->AddRef(This);
12031 }
12032 static FORCEINLINE ULONG ISpRecognizer2_Release(ISpRecognizer2* This) {
12033     return This->lpVtbl->Release(This);
12034 }
12035 /*** ISpRecognizer2 methods ***/
12036 static FORCEINLINE HRESULT ISpRecognizer2_EmulateRecognitionEx(ISpRecognizer2* This,ISpPhrase *pPhrase,DWORD dwCompareFlags) {
12037     return This->lpVtbl->EmulateRecognitionEx(This,pPhrase,dwCompareFlags);
12038 }
12039 static FORCEINLINE HRESULT ISpRecognizer2_SetTrainingState(ISpRecognizer2* This,WINBOOL fDoingTraining,WINBOOL fAdaptFromTrainingData) {
12040     return This->lpVtbl->SetTrainingState(This,fDoingTraining,fAdaptFromTrainingData);
12041 }
12042 static FORCEINLINE HRESULT ISpRecognizer2_ResetAcousticModelAdaptation(ISpRecognizer2* This) {
12043     return This->lpVtbl->ResetAcousticModelAdaptation(This);
12044 }
12045 #endif
12046 #endif
12047 
12048 #endif
12049 
12050 HRESULT STDMETHODCALLTYPE ISpRecognizer2_EmulateRecognitionEx_Proxy(
12051     ISpRecognizer2* This,
12052     ISpPhrase *pPhrase,
12053     DWORD dwCompareFlags);
12054 void __RPC_STUB ISpRecognizer2_EmulateRecognitionEx_Stub(
12055     IRpcStubBuffer* This,
12056     IRpcChannelBuffer* pRpcChannelBuffer,
12057     PRPC_MESSAGE pRpcMessage,
12058     DWORD* pdwStubPhase);
12059 HRESULT STDMETHODCALLTYPE ISpRecognizer2_SetTrainingState_Proxy(
12060     ISpRecognizer2* This,
12061     WINBOOL fDoingTraining,
12062     WINBOOL fAdaptFromTrainingData);
12063 void __RPC_STUB ISpRecognizer2_SetTrainingState_Stub(
12064     IRpcStubBuffer* This,
12065     IRpcChannelBuffer* pRpcChannelBuffer,
12066     PRPC_MESSAGE pRpcMessage,
12067     DWORD* pdwStubPhase);
12068 HRESULT STDMETHODCALLTYPE ISpRecognizer2_ResetAcousticModelAdaptation_Proxy(
12069     ISpRecognizer2* This);
12070 void __RPC_STUB ISpRecognizer2_ResetAcousticModelAdaptation_Stub(
12071     IRpcStubBuffer* This,
12072     IRpcChannelBuffer* pRpcChannelBuffer,
12073     PRPC_MESSAGE pRpcMessage,
12074     DWORD* pdwStubPhase);
12075 
12076 #endif  /* __ISpRecognizer2_INTERFACE_DEFINED__ */
12077 
12078 /*****************************************************************************
12079  * ISpRecoCategory interface
12080  */
12081 #ifndef __ISpRecoCategory_INTERFACE_DEFINED__
12082 #define __ISpRecoCategory_INTERFACE_DEFINED__
12083 
12084 DEFINE_GUID(IID_ISpRecoCategory, 0xda0cd0f9, 0x14a2, 0x4f09, 0x8c,0x2a, 0x85,0xcc,0x48,0x97,0x93,0x45);
12085 #if defined(__cplusplus) && !defined(CINTERFACE)
12086 MIDL_INTERFACE("da0cd0f9-14a2-4f09-8c2a-85cc48979345")
12087 ISpRecoCategory : public IUnknown
12088 {
12089     virtual HRESULT STDMETHODCALLTYPE GetType(
12090         SPCATEGORYTYPE *peCategoryType) = 0;
12091 
12092 };
12093 #ifdef __CRT_UUID_DECL
12094 __CRT_UUID_DECL(ISpRecoCategory, 0xda0cd0f9, 0x14a2, 0x4f09, 0x8c,0x2a, 0x85,0xcc,0x48,0x97,0x93,0x45)
12095 #endif
12096 #else
12097 typedef struct ISpRecoCategoryVtbl {
12098     BEGIN_INTERFACE
12099 
12100     /*** IUnknown methods ***/
12101     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12102         ISpRecoCategory* This,
12103         REFIID riid,
12104         void **ppvObject);
12105 
12106     ULONG (STDMETHODCALLTYPE *AddRef)(
12107         ISpRecoCategory* This);
12108 
12109     ULONG (STDMETHODCALLTYPE *Release)(
12110         ISpRecoCategory* This);
12111 
12112     /*** ISpRecoCategory methods ***/
12113     HRESULT (STDMETHODCALLTYPE *GetType)(
12114         ISpRecoCategory* This,
12115         SPCATEGORYTYPE *peCategoryType);
12116 
12117     END_INTERFACE
12118 } ISpRecoCategoryVtbl;
12119 interface ISpRecoCategory {
12120     CONST_VTBL ISpRecoCategoryVtbl* lpVtbl;
12121 };
12122 
12123 #ifdef COBJMACROS
12124 #ifndef WIDL_C_INLINE_WRAPPERS
12125 /*** IUnknown methods ***/
12126 #define ISpRecoCategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12127 #define ISpRecoCategory_AddRef(This) (This)->lpVtbl->AddRef(This)
12128 #define ISpRecoCategory_Release(This) (This)->lpVtbl->Release(This)
12129 /*** ISpRecoCategory methods ***/
12130 #define ISpRecoCategory_GetType(This,peCategoryType) (This)->lpVtbl->GetType(This,peCategoryType)
12131 #else
12132 /*** IUnknown methods ***/
12133 static FORCEINLINE HRESULT ISpRecoCategory_QueryInterface(ISpRecoCategory* This,REFIID riid,void **ppvObject) {
12134     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12135 }
12136 static FORCEINLINE ULONG ISpRecoCategory_AddRef(ISpRecoCategory* This) {
12137     return This->lpVtbl->AddRef(This);
12138 }
12139 static FORCEINLINE ULONG ISpRecoCategory_Release(ISpRecoCategory* This) {
12140     return This->lpVtbl->Release(This);
12141 }
12142 /*** ISpRecoCategory methods ***/
12143 static FORCEINLINE HRESULT ISpRecoCategory_GetType(ISpRecoCategory* This,SPCATEGORYTYPE *peCategoryType) {
12144     return This->lpVtbl->GetType(This,peCategoryType);
12145 }
12146 #endif
12147 #endif
12148 
12149 #endif
12150 
12151 HRESULT STDMETHODCALLTYPE ISpRecoCategory_GetType_Proxy(
12152     ISpRecoCategory* This,
12153     SPCATEGORYTYPE *peCategoryType);
12154 void __RPC_STUB ISpRecoCategory_GetType_Stub(
12155     IRpcStubBuffer* This,
12156     IRpcChannelBuffer* pRpcChannelBuffer,
12157     PRPC_MESSAGE pRpcMessage,
12158     DWORD* pdwStubPhase);
12159 
12160 #endif  /* __ISpRecoCategory_INTERFACE_DEFINED__ */
12161 
12162 /*****************************************************************************
12163  * ISpRecognizer3 interface
12164  */
12165 #ifndef __ISpRecognizer3_INTERFACE_DEFINED__
12166 #define __ISpRecognizer3_INTERFACE_DEFINED__
12167 
12168 DEFINE_GUID(IID_ISpRecognizer3, 0xdf1b943c, 0x5838, 0x4aa2, 0x87,0x06, 0xd7,0xcd,0x5b,0x33,0x34,0x99);
12169 #if defined(__cplusplus) && !defined(CINTERFACE)
12170 MIDL_INTERFACE("df1b943c-5838-4aa2-8706-d7cd5b333499")
12171 ISpRecognizer3 : public IUnknown
12172 {
12173     virtual HRESULT STDMETHODCALLTYPE GetCategory(
12174         SPCATEGORYTYPE categoryType,
12175         ISpRecoCategory **ppCategory) = 0;
12176 
12177     virtual HRESULT STDMETHODCALLTYPE SetActiveCategory(
12178         ISpRecoCategory *pCategory) = 0;
12179 
12180     virtual HRESULT STDMETHODCALLTYPE GetActiveCategory(
12181         ISpRecoCategory **ppCategory) = 0;
12182 
12183 };
12184 #ifdef __CRT_UUID_DECL
12185 __CRT_UUID_DECL(ISpRecognizer3, 0xdf1b943c, 0x5838, 0x4aa2, 0x87,0x06, 0xd7,0xcd,0x5b,0x33,0x34,0x99)
12186 #endif
12187 #else
12188 typedef struct ISpRecognizer3Vtbl {
12189     BEGIN_INTERFACE
12190 
12191     /*** IUnknown methods ***/
12192     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12193         ISpRecognizer3* This,
12194         REFIID riid,
12195         void **ppvObject);
12196 
12197     ULONG (STDMETHODCALLTYPE *AddRef)(
12198         ISpRecognizer3* This);
12199 
12200     ULONG (STDMETHODCALLTYPE *Release)(
12201         ISpRecognizer3* This);
12202 
12203     /*** ISpRecognizer3 methods ***/
12204     HRESULT (STDMETHODCALLTYPE *GetCategory)(
12205         ISpRecognizer3* This,
12206         SPCATEGORYTYPE categoryType,
12207         ISpRecoCategory **ppCategory);
12208 
12209     HRESULT (STDMETHODCALLTYPE *SetActiveCategory)(
12210         ISpRecognizer3* This,
12211         ISpRecoCategory *pCategory);
12212 
12213     HRESULT (STDMETHODCALLTYPE *GetActiveCategory)(
12214         ISpRecognizer3* This,
12215         ISpRecoCategory **ppCategory);
12216 
12217     END_INTERFACE
12218 } ISpRecognizer3Vtbl;
12219 interface ISpRecognizer3 {
12220     CONST_VTBL ISpRecognizer3Vtbl* lpVtbl;
12221 };
12222 
12223 #ifdef COBJMACROS
12224 #ifndef WIDL_C_INLINE_WRAPPERS
12225 /*** IUnknown methods ***/
12226 #define ISpRecognizer3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12227 #define ISpRecognizer3_AddRef(This) (This)->lpVtbl->AddRef(This)
12228 #define ISpRecognizer3_Release(This) (This)->lpVtbl->Release(This)
12229 /*** ISpRecognizer3 methods ***/
12230 #define ISpRecognizer3_GetCategory(This,categoryType,ppCategory) (This)->lpVtbl->GetCategory(This,categoryType,ppCategory)
12231 #define ISpRecognizer3_SetActiveCategory(This,pCategory) (This)->lpVtbl->SetActiveCategory(This,pCategory)
12232 #define ISpRecognizer3_GetActiveCategory(This,ppCategory) (This)->lpVtbl->GetActiveCategory(This,ppCategory)
12233 #else
12234 /*** IUnknown methods ***/
12235 static FORCEINLINE HRESULT ISpRecognizer3_QueryInterface(ISpRecognizer3* This,REFIID riid,void **ppvObject) {
12236     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12237 }
12238 static FORCEINLINE ULONG ISpRecognizer3_AddRef(ISpRecognizer3* This) {
12239     return This->lpVtbl->AddRef(This);
12240 }
12241 static FORCEINLINE ULONG ISpRecognizer3_Release(ISpRecognizer3* This) {
12242     return This->lpVtbl->Release(This);
12243 }
12244 /*** ISpRecognizer3 methods ***/
12245 static FORCEINLINE HRESULT ISpRecognizer3_GetCategory(ISpRecognizer3* This,SPCATEGORYTYPE categoryType,ISpRecoCategory **ppCategory) {
12246     return This->lpVtbl->GetCategory(This,categoryType,ppCategory);
12247 }
12248 static FORCEINLINE HRESULT ISpRecognizer3_SetActiveCategory(ISpRecognizer3* This,ISpRecoCategory *pCategory) {
12249     return This->lpVtbl->SetActiveCategory(This,pCategory);
12250 }
12251 static FORCEINLINE HRESULT ISpRecognizer3_GetActiveCategory(ISpRecognizer3* This,ISpRecoCategory **ppCategory) {
12252     return This->lpVtbl->GetActiveCategory(This,ppCategory);
12253 }
12254 #endif
12255 #endif
12256 
12257 #endif
12258 
12259 HRESULT STDMETHODCALLTYPE ISpRecognizer3_GetCategory_Proxy(
12260     ISpRecognizer3* This,
12261     SPCATEGORYTYPE categoryType,
12262     ISpRecoCategory **ppCategory);
12263 void __RPC_STUB ISpRecognizer3_GetCategory_Stub(
12264     IRpcStubBuffer* This,
12265     IRpcChannelBuffer* pRpcChannelBuffer,
12266     PRPC_MESSAGE pRpcMessage,
12267     DWORD* pdwStubPhase);
12268 HRESULT STDMETHODCALLTYPE ISpRecognizer3_SetActiveCategory_Proxy(
12269     ISpRecognizer3* This,
12270     ISpRecoCategory *pCategory);
12271 void __RPC_STUB ISpRecognizer3_SetActiveCategory_Stub(
12272     IRpcStubBuffer* This,
12273     IRpcChannelBuffer* pRpcChannelBuffer,
12274     PRPC_MESSAGE pRpcMessage,
12275     DWORD* pdwStubPhase);
12276 HRESULT STDMETHODCALLTYPE ISpRecognizer3_GetActiveCategory_Proxy(
12277     ISpRecognizer3* This,
12278     ISpRecoCategory **ppCategory);
12279 void __RPC_STUB ISpRecognizer3_GetActiveCategory_Stub(
12280     IRpcStubBuffer* This,
12281     IRpcChannelBuffer* pRpcChannelBuffer,
12282     PRPC_MESSAGE pRpcMessage,
12283     DWORD* pdwStubPhase);
12284 
12285 #endif  /* __ISpRecognizer3_INTERFACE_DEFINED__ */
12286 
12287 typedef struct SPNORMALIZATIONLIST {
12288     ULONG ulSize;
12289     WCHAR **ppszzNormalizedList;
12290 } SPNORMALIZATIONLIST;
12291 /*****************************************************************************
12292  * ISpEnginePronunciation interface
12293  */
12294 #ifndef __ISpEnginePronunciation_INTERFACE_DEFINED__
12295 #define __ISpEnginePronunciation_INTERFACE_DEFINED__
12296 
12297 DEFINE_GUID(IID_ISpEnginePronunciation, 0xc360ce4b, 0x76d1, 0x4214, 0xad,0x68, 0x52,0x65,0x7d,0x50,0x83,0xda);
12298 #if defined(__cplusplus) && !defined(CINTERFACE)
12299 MIDL_INTERFACE("c360ce4b-76d1-4214-ad68-52657d5083da")
12300 ISpEnginePronunciation : public IUnknown
12301 {
12302     virtual HRESULT STDMETHODCALLTYPE Normalize(
12303         LPCWSTR pszWord,
12304         LPCWSTR pszLeftContext,
12305         LPCWSTR pszRightContext,
12306         WORD LangID,
12307         SPNORMALIZATIONLIST *pNormalizationList) = 0;
12308 
12309     virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
12310         LPCWSTR pszWord,
12311         LPCWSTR pszLeftContext,
12312         LPCWSTR pszRightContext,
12313         WORD LangID,
12314         SPWORDPRONUNCIATIONLIST *pEnginePronunciationList) = 0;
12315 
12316 };
12317 #ifdef __CRT_UUID_DECL
12318 __CRT_UUID_DECL(ISpEnginePronunciation, 0xc360ce4b, 0x76d1, 0x4214, 0xad,0x68, 0x52,0x65,0x7d,0x50,0x83,0xda)
12319 #endif
12320 #else
12321 typedef struct ISpEnginePronunciationVtbl {
12322     BEGIN_INTERFACE
12323 
12324     /*** IUnknown methods ***/
12325     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12326         ISpEnginePronunciation* This,
12327         REFIID riid,
12328         void **ppvObject);
12329 
12330     ULONG (STDMETHODCALLTYPE *AddRef)(
12331         ISpEnginePronunciation* This);
12332 
12333     ULONG (STDMETHODCALLTYPE *Release)(
12334         ISpEnginePronunciation* This);
12335 
12336     /*** ISpEnginePronunciation methods ***/
12337     HRESULT (STDMETHODCALLTYPE *Normalize)(
12338         ISpEnginePronunciation* This,
12339         LPCWSTR pszWord,
12340         LPCWSTR pszLeftContext,
12341         LPCWSTR pszRightContext,
12342         WORD LangID,
12343         SPNORMALIZATIONLIST *pNormalizationList);
12344 
12345     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
12346         ISpEnginePronunciation* This,
12347         LPCWSTR pszWord,
12348         LPCWSTR pszLeftContext,
12349         LPCWSTR pszRightContext,
12350         WORD LangID,
12351         SPWORDPRONUNCIATIONLIST *pEnginePronunciationList);
12352 
12353     END_INTERFACE
12354 } ISpEnginePronunciationVtbl;
12355 interface ISpEnginePronunciation {
12356     CONST_VTBL ISpEnginePronunciationVtbl* lpVtbl;
12357 };
12358 
12359 #ifdef COBJMACROS
12360 #ifndef WIDL_C_INLINE_WRAPPERS
12361 /*** IUnknown methods ***/
12362 #define ISpEnginePronunciation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12363 #define ISpEnginePronunciation_AddRef(This) (This)->lpVtbl->AddRef(This)
12364 #define ISpEnginePronunciation_Release(This) (This)->lpVtbl->Release(This)
12365 /*** ISpEnginePronunciation methods ***/
12366 #define ISpEnginePronunciation_Normalize(This,pszWord,pszLeftContext,pszRightContext,LangID,pNormalizationList) (This)->lpVtbl->Normalize(This,pszWord,pszLeftContext,pszRightContext,LangID,pNormalizationList)
12367 #define ISpEnginePronunciation_GetPronunciations(This,pszWord,pszLeftContext,pszRightContext,LangID,pEnginePronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,pszLeftContext,pszRightContext,LangID,pEnginePronunciationList)
12368 #else
12369 /*** IUnknown methods ***/
12370 static FORCEINLINE HRESULT ISpEnginePronunciation_QueryInterface(ISpEnginePronunciation* This,REFIID riid,void **ppvObject) {
12371     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12372 }
12373 static FORCEINLINE ULONG ISpEnginePronunciation_AddRef(ISpEnginePronunciation* This) {
12374     return This->lpVtbl->AddRef(This);
12375 }
12376 static FORCEINLINE ULONG ISpEnginePronunciation_Release(ISpEnginePronunciation* This) {
12377     return This->lpVtbl->Release(This);
12378 }
12379 /*** ISpEnginePronunciation methods ***/
12380 static FORCEINLINE HRESULT ISpEnginePronunciation_Normalize(ISpEnginePronunciation* This,LPCWSTR pszWord,LPCWSTR pszLeftContext,LPCWSTR pszRightContext,WORD LangID,SPNORMALIZATIONLIST *pNormalizationList) {
12381     return This->lpVtbl->Normalize(This,pszWord,pszLeftContext,pszRightContext,LangID,pNormalizationList);
12382 }
12383 static FORCEINLINE HRESULT ISpEnginePronunciation_GetPronunciations(ISpEnginePronunciation* This,LPCWSTR pszWord,LPCWSTR pszLeftContext,LPCWSTR pszRightContext,WORD LangID,SPWORDPRONUNCIATIONLIST *pEnginePronunciationList) {
12384     return This->lpVtbl->GetPronunciations(This,pszWord,pszLeftContext,pszRightContext,LangID,pEnginePronunciationList);
12385 }
12386 #endif
12387 #endif
12388 
12389 #endif
12390 
12391 HRESULT STDMETHODCALLTYPE ISpEnginePronunciation_Normalize_Proxy(
12392     ISpEnginePronunciation* This,
12393     LPCWSTR pszWord,
12394     LPCWSTR pszLeftContext,
12395     LPCWSTR pszRightContext,
12396     WORD LangID,
12397     SPNORMALIZATIONLIST *pNormalizationList);
12398 void __RPC_STUB ISpEnginePronunciation_Normalize_Stub(
12399     IRpcStubBuffer* This,
12400     IRpcChannelBuffer* pRpcChannelBuffer,
12401     PRPC_MESSAGE pRpcMessage,
12402     DWORD* pdwStubPhase);
12403 HRESULT STDMETHODCALLTYPE ISpEnginePronunciation_GetPronunciations_Proxy(
12404     ISpEnginePronunciation* This,
12405     LPCWSTR pszWord,
12406     LPCWSTR pszLeftContext,
12407     LPCWSTR pszRightContext,
12408     WORD LangID,
12409     SPWORDPRONUNCIATIONLIST *pEnginePronunciationList);
12410 void __RPC_STUB ISpEnginePronunciation_GetPronunciations_Stub(
12411     IRpcStubBuffer* This,
12412     IRpcChannelBuffer* pRpcChannelBuffer,
12413     PRPC_MESSAGE pRpcMessage,
12414     DWORD* pdwStubPhase);
12415 
12416 #endif  /* __ISpEnginePronunciation_INTERFACE_DEFINED__ */
12417 
12418 typedef struct SPDISPLAYTOKEN {
12419     const WCHAR *pszLexical;
12420     const WCHAR *pszDisplay;
12421     BYTE bDisplayAttributes;
12422 } SPDISPLAYTOKEN;
12423 typedef struct SPDISPLAYPHRASE {
12424     ULONG ulNumTokens;
12425     SPDISPLAYTOKEN *pTokens;
12426 } SPDISPLAYPHRASE;
12427 /*****************************************************************************
12428  * ISpDisplayAlternates interface
12429  */
12430 #ifndef __ISpDisplayAlternates_INTERFACE_DEFINED__
12431 #define __ISpDisplayAlternates_INTERFACE_DEFINED__
12432 
12433 DEFINE_GUID(IID_ISpDisplayAlternates, 0xc8d7c7e2, 0x0dde, 0x44b7, 0xaf,0xe3, 0xb0,0xc9,0x91,0xfb,0xeb,0x5e);
12434 #if defined(__cplusplus) && !defined(CINTERFACE)
12435 MIDL_INTERFACE("c8d7c7e2-0dde-44b7-afe3-b0c991fbeb5e")
12436 ISpDisplayAlternates : public IUnknown
12437 {
12438     virtual HRESULT STDMETHODCALLTYPE GetDisplayAlternates(
12439         const SPDISPLAYPHRASE *pPhrase,
12440         ULONG cRequestCount,
12441         SPDISPLAYPHRASE **ppCoMemPhrases,
12442         ULONG *pcPhrasesReturned) = 0;
12443 
12444     virtual HRESULT STDMETHODCALLTYPE SetFullStopTrailSpace(
12445         ULONG ulTrailSpace) = 0;
12446 
12447 };
12448 #ifdef __CRT_UUID_DECL
12449 __CRT_UUID_DECL(ISpDisplayAlternates, 0xc8d7c7e2, 0x0dde, 0x44b7, 0xaf,0xe3, 0xb0,0xc9,0x91,0xfb,0xeb,0x5e)
12450 #endif
12451 #else
12452 typedef struct ISpDisplayAlternatesVtbl {
12453     BEGIN_INTERFACE
12454 
12455     /*** IUnknown methods ***/
12456     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12457         ISpDisplayAlternates* This,
12458         REFIID riid,
12459         void **ppvObject);
12460 
12461     ULONG (STDMETHODCALLTYPE *AddRef)(
12462         ISpDisplayAlternates* This);
12463 
12464     ULONG (STDMETHODCALLTYPE *Release)(
12465         ISpDisplayAlternates* This);
12466 
12467     /*** ISpDisplayAlternates methods ***/
12468     HRESULT (STDMETHODCALLTYPE *GetDisplayAlternates)(
12469         ISpDisplayAlternates* This,
12470         const SPDISPLAYPHRASE *pPhrase,
12471         ULONG cRequestCount,
12472         SPDISPLAYPHRASE **ppCoMemPhrases,
12473         ULONG *pcPhrasesReturned);
12474 
12475     HRESULT (STDMETHODCALLTYPE *SetFullStopTrailSpace)(
12476         ISpDisplayAlternates* This,
12477         ULONG ulTrailSpace);
12478 
12479     END_INTERFACE
12480 } ISpDisplayAlternatesVtbl;
12481 interface ISpDisplayAlternates {
12482     CONST_VTBL ISpDisplayAlternatesVtbl* lpVtbl;
12483 };
12484 
12485 #ifdef COBJMACROS
12486 #ifndef WIDL_C_INLINE_WRAPPERS
12487 /*** IUnknown methods ***/
12488 #define ISpDisplayAlternates_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12489 #define ISpDisplayAlternates_AddRef(This) (This)->lpVtbl->AddRef(This)
12490 #define ISpDisplayAlternates_Release(This) (This)->lpVtbl->Release(This)
12491 /*** ISpDisplayAlternates methods ***/
12492 #define ISpDisplayAlternates_GetDisplayAlternates(This,pPhrase,cRequestCount,ppCoMemPhrases,pcPhrasesReturned) (This)->lpVtbl->GetDisplayAlternates(This,pPhrase,cRequestCount,ppCoMemPhrases,pcPhrasesReturned)
12493 #define ISpDisplayAlternates_SetFullStopTrailSpace(This,ulTrailSpace) (This)->lpVtbl->SetFullStopTrailSpace(This,ulTrailSpace)
12494 #else
12495 /*** IUnknown methods ***/
12496 static FORCEINLINE HRESULT ISpDisplayAlternates_QueryInterface(ISpDisplayAlternates* This,REFIID riid,void **ppvObject) {
12497     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12498 }
12499 static FORCEINLINE ULONG ISpDisplayAlternates_AddRef(ISpDisplayAlternates* This) {
12500     return This->lpVtbl->AddRef(This);
12501 }
12502 static FORCEINLINE ULONG ISpDisplayAlternates_Release(ISpDisplayAlternates* This) {
12503     return This->lpVtbl->Release(This);
12504 }
12505 /*** ISpDisplayAlternates methods ***/
12506 static FORCEINLINE HRESULT ISpDisplayAlternates_GetDisplayAlternates(ISpDisplayAlternates* This,const SPDISPLAYPHRASE *pPhrase,ULONG cRequestCount,SPDISPLAYPHRASE **ppCoMemPhrases,ULONG *pcPhrasesReturned) {
12507     return This->lpVtbl->GetDisplayAlternates(This,pPhrase,cRequestCount,ppCoMemPhrases,pcPhrasesReturned);
12508 }
12509 static FORCEINLINE HRESULT ISpDisplayAlternates_SetFullStopTrailSpace(ISpDisplayAlternates* This,ULONG ulTrailSpace) {
12510     return This->lpVtbl->SetFullStopTrailSpace(This,ulTrailSpace);
12511 }
12512 #endif
12513 #endif
12514 
12515 #endif
12516 
12517 HRESULT STDMETHODCALLTYPE ISpDisplayAlternates_GetDisplayAlternates_Proxy(
12518     ISpDisplayAlternates* This,
12519     const SPDISPLAYPHRASE *pPhrase,
12520     ULONG cRequestCount,
12521     SPDISPLAYPHRASE **ppCoMemPhrases,
12522     ULONG *pcPhrasesReturned);
12523 void __RPC_STUB ISpDisplayAlternates_GetDisplayAlternates_Stub(
12524     IRpcStubBuffer* This,
12525     IRpcChannelBuffer* pRpcChannelBuffer,
12526     PRPC_MESSAGE pRpcMessage,
12527     DWORD* pdwStubPhase);
12528 HRESULT STDMETHODCALLTYPE ISpDisplayAlternates_SetFullStopTrailSpace_Proxy(
12529     ISpDisplayAlternates* This,
12530     ULONG ulTrailSpace);
12531 void __RPC_STUB ISpDisplayAlternates_SetFullStopTrailSpace_Stub(
12532     IRpcStubBuffer* This,
12533     IRpcChannelBuffer* pRpcChannelBuffer,
12534     PRPC_MESSAGE pRpcMessage,
12535     DWORD* pdwStubPhase);
12536 
12537 #endif  /* __ISpDisplayAlternates_INTERFACE_DEFINED__ */
12538 
12539 
12540 DEFINE_GUID(LIBID_SpeechLib, 0xc866ca3a, 0x32f7, 0x11d2, 0x96,0x02, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
12541 
12542 #ifndef __ISpeechDataKey_FWD_DEFINED__
12543 #define __ISpeechDataKey_FWD_DEFINED__
12544 typedef interface ISpeechDataKey ISpeechDataKey;
12545 #endif
12546 
12547 #ifndef __ISpeechObjectToken_FWD_DEFINED__
12548 #define __ISpeechObjectToken_FWD_DEFINED__
12549 typedef interface ISpeechObjectToken ISpeechObjectToken;
12550 #endif
12551 
12552 #ifndef __ISpeechObjectTokens_FWD_DEFINED__
12553 #define __ISpeechObjectTokens_FWD_DEFINED__
12554 typedef interface ISpeechObjectTokens ISpeechObjectTokens;
12555 #endif
12556 
12557 #ifndef __ISpeechObjectTokenCategory_FWD_DEFINED__
12558 #define __ISpeechObjectTokenCategory_FWD_DEFINED__
12559 typedef interface ISpeechObjectTokenCategory ISpeechObjectTokenCategory;
12560 #endif
12561 
12562 #ifndef __ISpeechAudioBufferInfo_FWD_DEFINED__
12563 #define __ISpeechAudioBufferInfo_FWD_DEFINED__
12564 typedef interface ISpeechAudioBufferInfo ISpeechAudioBufferInfo;
12565 #endif
12566 
12567 #ifndef __ISpeechAudioStatus_FWD_DEFINED__
12568 #define __ISpeechAudioStatus_FWD_DEFINED__
12569 typedef interface ISpeechAudioStatus ISpeechAudioStatus;
12570 #endif
12571 
12572 #ifndef __ISpeechAudioFormat_FWD_DEFINED__
12573 #define __ISpeechAudioFormat_FWD_DEFINED__
12574 typedef interface ISpeechAudioFormat ISpeechAudioFormat;
12575 #endif
12576 
12577 #ifndef __ISpeechWaveFormatEx_FWD_DEFINED__
12578 #define __ISpeechWaveFormatEx_FWD_DEFINED__
12579 typedef interface ISpeechWaveFormatEx ISpeechWaveFormatEx;
12580 #endif
12581 
12582 #ifndef __ISpeechBaseStream_FWD_DEFINED__
12583 #define __ISpeechBaseStream_FWD_DEFINED__
12584 typedef interface ISpeechBaseStream ISpeechBaseStream;
12585 #endif
12586 
12587 #ifndef __ISpeechFileStream_FWD_DEFINED__
12588 #define __ISpeechFileStream_FWD_DEFINED__
12589 typedef interface ISpeechFileStream ISpeechFileStream;
12590 #endif
12591 
12592 #ifndef __ISpeechMemoryStream_FWD_DEFINED__
12593 #define __ISpeechMemoryStream_FWD_DEFINED__
12594 typedef interface ISpeechMemoryStream ISpeechMemoryStream;
12595 #endif
12596 
12597 #ifndef __ISpeechCustomStream_FWD_DEFINED__
12598 #define __ISpeechCustomStream_FWD_DEFINED__
12599 typedef interface ISpeechCustomStream ISpeechCustomStream;
12600 #endif
12601 
12602 #ifndef __ISpeechAudio_FWD_DEFINED__
12603 #define __ISpeechAudio_FWD_DEFINED__
12604 typedef interface ISpeechAudio ISpeechAudio;
12605 #endif
12606 
12607 #ifndef __ISpeechMMSysAudio_FWD_DEFINED__
12608 #define __ISpeechMMSysAudio_FWD_DEFINED__
12609 typedef interface ISpeechMMSysAudio ISpeechMMSysAudio;
12610 #endif
12611 
12612 #ifndef __ISpeechVoice_FWD_DEFINED__
12613 #define __ISpeechVoice_FWD_DEFINED__
12614 typedef interface ISpeechVoice ISpeechVoice;
12615 #endif
12616 
12617 #ifndef __ISpeechVoiceStatus_FWD_DEFINED__
12618 #define __ISpeechVoiceStatus_FWD_DEFINED__
12619 typedef interface ISpeechVoiceStatus ISpeechVoiceStatus;
12620 #endif
12621 
12622 #ifndef ___ISpeechVoiceEvents_FWD_DEFINED__
12623 #define ___ISpeechVoiceEvents_FWD_DEFINED__
12624 typedef interface _ISpeechVoiceEvents _ISpeechVoiceEvents;
12625 #endif
12626 
12627 #ifndef __ISpeechRecognizer_FWD_DEFINED__
12628 #define __ISpeechRecognizer_FWD_DEFINED__
12629 typedef interface ISpeechRecognizer ISpeechRecognizer;
12630 #endif
12631 
12632 #ifndef __ISpeechRecognizerStatus_FWD_DEFINED__
12633 #define __ISpeechRecognizerStatus_FWD_DEFINED__
12634 typedef interface ISpeechRecognizerStatus ISpeechRecognizerStatus;
12635 #endif
12636 
12637 #ifndef __ISpeechRecoContext_FWD_DEFINED__
12638 #define __ISpeechRecoContext_FWD_DEFINED__
12639 typedef interface ISpeechRecoContext ISpeechRecoContext;
12640 #endif
12641 
12642 #ifndef __ISpeechRecoGrammar_FWD_DEFINED__
12643 #define __ISpeechRecoGrammar_FWD_DEFINED__
12644 typedef interface ISpeechRecoGrammar ISpeechRecoGrammar;
12645 #endif
12646 
12647 #ifndef ___ISpeechRecoContextEvents_FWD_DEFINED__
12648 #define ___ISpeechRecoContextEvents_FWD_DEFINED__
12649 typedef interface _ISpeechRecoContextEvents _ISpeechRecoContextEvents;
12650 #endif
12651 
12652 #ifndef __ISpeechGrammarRule_FWD_DEFINED__
12653 #define __ISpeechGrammarRule_FWD_DEFINED__
12654 typedef interface ISpeechGrammarRule ISpeechGrammarRule;
12655 #endif
12656 
12657 #ifndef __ISpeechGrammarRules_FWD_DEFINED__
12658 #define __ISpeechGrammarRules_FWD_DEFINED__
12659 typedef interface ISpeechGrammarRules ISpeechGrammarRules;
12660 #endif
12661 
12662 #ifndef __ISpeechGrammarRuleState_FWD_DEFINED__
12663 #define __ISpeechGrammarRuleState_FWD_DEFINED__
12664 typedef interface ISpeechGrammarRuleState ISpeechGrammarRuleState;
12665 #endif
12666 
12667 #ifndef __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
12668 #define __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
12669 typedef interface ISpeechGrammarRuleStateTransition ISpeechGrammarRuleStateTransition;
12670 #endif
12671 
12672 #ifndef __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
12673 #define __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
12674 typedef interface ISpeechGrammarRuleStateTransitions ISpeechGrammarRuleStateTransitions;
12675 #endif
12676 
12677 #ifndef __ISpeechTextSelectionInformation_FWD_DEFINED__
12678 #define __ISpeechTextSelectionInformation_FWD_DEFINED__
12679 typedef interface ISpeechTextSelectionInformation ISpeechTextSelectionInformation;
12680 #endif
12681 
12682 #ifndef __ISpeechRecoResult_FWD_DEFINED__
12683 #define __ISpeechRecoResult_FWD_DEFINED__
12684 typedef interface ISpeechRecoResult ISpeechRecoResult;
12685 #endif
12686 
12687 #ifndef __ISpeechRecoResult2_FWD_DEFINED__
12688 #define __ISpeechRecoResult2_FWD_DEFINED__
12689 typedef interface ISpeechRecoResult2 ISpeechRecoResult2;
12690 #endif
12691 
12692 #ifndef __ISpeechRecoResultTimes_FWD_DEFINED__
12693 #define __ISpeechRecoResultTimes_FWD_DEFINED__
12694 typedef interface ISpeechRecoResultTimes ISpeechRecoResultTimes;
12695 #endif
12696 
12697 #ifndef __ISpeechPhraseAlternate_FWD_DEFINED__
12698 #define __ISpeechPhraseAlternate_FWD_DEFINED__
12699 typedef interface ISpeechPhraseAlternate ISpeechPhraseAlternate;
12700 #endif
12701 
12702 #ifndef __ISpeechPhraseAlternates_FWD_DEFINED__
12703 #define __ISpeechPhraseAlternates_FWD_DEFINED__
12704 typedef interface ISpeechPhraseAlternates ISpeechPhraseAlternates;
12705 #endif
12706 
12707 #ifndef __ISpeechPhraseInfo_FWD_DEFINED__
12708 #define __ISpeechPhraseInfo_FWD_DEFINED__
12709 typedef interface ISpeechPhraseInfo ISpeechPhraseInfo;
12710 #endif
12711 
12712 #ifndef __ISpeechPhraseElement_FWD_DEFINED__
12713 #define __ISpeechPhraseElement_FWD_DEFINED__
12714 typedef interface ISpeechPhraseElement ISpeechPhraseElement;
12715 #endif
12716 
12717 #ifndef __ISpeechPhraseElements_FWD_DEFINED__
12718 #define __ISpeechPhraseElements_FWD_DEFINED__
12719 typedef interface ISpeechPhraseElements ISpeechPhraseElements;
12720 #endif
12721 
12722 #ifndef __ISpeechPhraseReplacement_FWD_DEFINED__
12723 #define __ISpeechPhraseReplacement_FWD_DEFINED__
12724 typedef interface ISpeechPhraseReplacement ISpeechPhraseReplacement;
12725 #endif
12726 
12727 #ifndef __ISpeechPhraseReplacements_FWD_DEFINED__
12728 #define __ISpeechPhraseReplacements_FWD_DEFINED__
12729 typedef interface ISpeechPhraseReplacements ISpeechPhraseReplacements;
12730 #endif
12731 
12732 #ifndef __ISpeechPhraseProperty_FWD_DEFINED__
12733 #define __ISpeechPhraseProperty_FWD_DEFINED__
12734 typedef interface ISpeechPhraseProperty ISpeechPhraseProperty;
12735 #endif
12736 
12737 #ifndef __ISpeechPhraseProperties_FWD_DEFINED__
12738 #define __ISpeechPhraseProperties_FWD_DEFINED__
12739 typedef interface ISpeechPhraseProperties ISpeechPhraseProperties;
12740 #endif
12741 
12742 #ifndef __ISpeechPhraseRule_FWD_DEFINED__
12743 #define __ISpeechPhraseRule_FWD_DEFINED__
12744 typedef interface ISpeechPhraseRule ISpeechPhraseRule;
12745 #endif
12746 
12747 #ifndef __ISpeechPhraseRules_FWD_DEFINED__
12748 #define __ISpeechPhraseRules_FWD_DEFINED__
12749 typedef interface ISpeechPhraseRules ISpeechPhraseRules;
12750 #endif
12751 
12752 #ifndef __ISpeechLexicon_FWD_DEFINED__
12753 #define __ISpeechLexicon_FWD_DEFINED__
12754 typedef interface ISpeechLexicon ISpeechLexicon;
12755 #endif
12756 
12757 #ifndef __ISpeechLexiconWords_FWD_DEFINED__
12758 #define __ISpeechLexiconWords_FWD_DEFINED__
12759 typedef interface ISpeechLexiconWords ISpeechLexiconWords;
12760 #endif
12761 
12762 #ifndef __ISpeechLexiconWord_FWD_DEFINED__
12763 #define __ISpeechLexiconWord_FWD_DEFINED__
12764 typedef interface ISpeechLexiconWord ISpeechLexiconWord;
12765 #endif
12766 
12767 #ifndef __ISpeechLexiconPronunciations_FWD_DEFINED__
12768 #define __ISpeechLexiconPronunciations_FWD_DEFINED__
12769 typedef interface ISpeechLexiconPronunciations ISpeechLexiconPronunciations;
12770 #endif
12771 
12772 #ifndef __ISpeechLexiconPronunciation_FWD_DEFINED__
12773 #define __ISpeechLexiconPronunciation_FWD_DEFINED__
12774 typedef interface ISpeechLexiconPronunciation ISpeechLexiconPronunciation;
12775 #endif
12776 
12777 typedef LONG SpeechLanguageId;
12778 #define __SpeechStringConstants_MODULE_DEFINED__
12779 typedef enum DISPID_SpeechDataKey {
12780     DISPID_SDKSetBinaryValue = 1,
12781     DISPID_SDKGetBinaryValue = 2,
12782     DISPID_SDKSetStringValue = 3,
12783     DISPID_SDKGetStringValue = 4,
12784     DISPID_SDKSetLongValue = 5,
12785     DISPID_SDKGetlongValue = 6,
12786     DISPID_SDKOpenKey = 7,
12787     DISPID_SDKCreateKey = 8,
12788     DISPID_SDKDeleteKey = 9,
12789     DISPID_SDKDeleteValue = 10,
12790     DISPID_SDKEnumKeys = 11,
12791     DISPID_SDKEnumValues = 12
12792 } DISPID_SpeechDataKey;
12793 typedef enum DISPID_SpeechObjectToken {
12794     DISPID_SOTId = 1,
12795     DISPID_SOTDataKey = 2,
12796     DISPID_SOTCategory = 3,
12797     DISPID_SOTGetDescription = 4,
12798     DISPID_SOTSetId = 5,
12799     DISPID_SOTGetAttribute = 6,
12800     DISPID_SOTCreateInstance = 7,
12801     DISPID_SOTRemove = 8,
12802     DISPID_SOTGetStorageFileName = 9,
12803     DISPID_SOTRemoveStorageFileName = 10,
12804     DISPID_SOTIsUISupported = 11,
12805     DISPID_SOTDisplayUI = 12,
12806     DISPID_SOTMatchesAttributes = 13
12807 } DISPID_SpeechObjectToken;
12808 typedef enum SpeechDataKeyLocation {
12809     SDKLDefaultLocation = SPDKL_DefaultLocation,
12810     SDKLCurrentUser = SPDKL_CurrentUser,
12811     SDKLLocalMachine = SPDKL_LocalMachine,
12812     SDKLCurrentConfig = SPDKL_CurrentConfig
12813 } SpeechDataKeyLocation;
12814 typedef enum SpeechTokenContext {
12815     STCInprocServer = CLSCTX_INPROC_SERVER,
12816     STCInprocHandler = CLSCTX_INPROC_HANDLER,
12817     STCLocalServer = CLSCTX_LOCAL_SERVER,
12818     STCRemoteServer = CLSCTX_REMOTE_SERVER,
12819     STCAll = ((CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER) | CLSCTX_LOCAL_SERVER) | CLSCTX_REMOTE_SERVER
12820 } SpeechTokenContext;
12821 typedef enum SpeechTokenShellFolder {
12822     STSF_AppData = 0x1a,
12823     STSF_LocalAppData = 0x1c,
12824     STSF_CommonAppData = 0x23,
12825     STSF_FlagCreate = 0x8000
12826 } SpeechTokenShellFolder;
12827 typedef enum DISPID_SpeechObjectTokens {
12828     DISPID_SOTsCount = 1,
12829     DISPID_SOTsItem = DISPID_VALUE,
12830     DISPID_SOTs_NewEnum = DISPID_NEWENUM
12831 } DISPID_SpeechObjectTokens;
12832 typedef enum DISPID_SpeechObjectTokenCategory {
12833     DISPID_SOTCId = 1,
12834     DISPID_SOTCDefault = 2,
12835     DISPID_SOTCSetId = 3,
12836     DISPID_SOTCGetDataKey = 4,
12837     DISPID_SOTCEnumerateTokens = 5
12838 } DISPID_SpeechObjectTokenCategory;
12839 /*****************************************************************************
12840  * ISpeechDataKey interface
12841  */
12842 #ifndef __ISpeechDataKey_INTERFACE_DEFINED__
12843 #define __ISpeechDataKey_INTERFACE_DEFINED__
12844 
12845 DEFINE_GUID(IID_ISpeechDataKey, 0xce17c09b, 0x4efa, 0x44d5, 0xa4,0xc9, 0x59,0xd9,0x58,0x5a,0xb0,0xcd);
12846 #if defined(__cplusplus) && !defined(CINTERFACE)
12847 MIDL_INTERFACE("ce17c09b-4efa-44d5-a4c9-59d9585ab0cd")
12848 ISpeechDataKey : public IDispatch
12849 {
12850     virtual HRESULT STDMETHODCALLTYPE SetBinaryValue(
12851         const BSTR ValueName,
12852         VARIANT Value) = 0;
12853 
12854     virtual HRESULT STDMETHODCALLTYPE GetBinaryValue(
12855         const BSTR ValueName,
12856         VARIANT *Value) = 0;
12857 
12858     virtual HRESULT STDMETHODCALLTYPE SetStringValue(
12859         const BSTR ValueName,
12860         const BSTR Value) = 0;
12861 
12862     virtual HRESULT STDMETHODCALLTYPE GetStringValue(
12863         const BSTR ValueName,
12864         BSTR *Value) = 0;
12865 
12866     virtual HRESULT STDMETHODCALLTYPE SetLongValue(
12867         const BSTR ValueName,
12868         LONG Value) = 0;
12869 
12870     virtual HRESULT STDMETHODCALLTYPE GetLongValue(
12871         const BSTR ValueName,
12872         LONG *Value) = 0;
12873 
12874     virtual HRESULT STDMETHODCALLTYPE OpenKey(
12875         const BSTR SubKeyName,
12876         ISpeechDataKey **SubKey) = 0;
12877 
12878     virtual HRESULT STDMETHODCALLTYPE CreateKey(
12879         const BSTR SubKeyName,
12880         ISpeechDataKey **SubKey) = 0;
12881 
12882     virtual HRESULT STDMETHODCALLTYPE DeleteKey(
12883         const BSTR SubKeyName) = 0;
12884 
12885     virtual HRESULT STDMETHODCALLTYPE DeleteValue(
12886         const BSTR ValueName) = 0;
12887 
12888     virtual HRESULT STDMETHODCALLTYPE EnumKeys(
12889         LONG Index,
12890         BSTR *SubKeyName) = 0;
12891 
12892     virtual HRESULT STDMETHODCALLTYPE EnumValues(
12893         LONG Index,
12894         BSTR *ValueName) = 0;
12895 
12896 };
12897 #ifdef __CRT_UUID_DECL
12898 __CRT_UUID_DECL(ISpeechDataKey, 0xce17c09b, 0x4efa, 0x44d5, 0xa4,0xc9, 0x59,0xd9,0x58,0x5a,0xb0,0xcd)
12899 #endif
12900 #else
12901 typedef struct ISpeechDataKeyVtbl {
12902     BEGIN_INTERFACE
12903 
12904     /*** IUnknown methods ***/
12905     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12906         ISpeechDataKey* This,
12907         REFIID riid,
12908         void **ppvObject);
12909 
12910     ULONG (STDMETHODCALLTYPE *AddRef)(
12911         ISpeechDataKey* This);
12912 
12913     ULONG (STDMETHODCALLTYPE *Release)(
12914         ISpeechDataKey* This);
12915 
12916     /*** IDispatch methods ***/
12917     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
12918         ISpeechDataKey* This,
12919         UINT *pctinfo);
12920 
12921     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
12922         ISpeechDataKey* This,
12923         UINT iTInfo,
12924         LCID lcid,
12925         ITypeInfo **ppTInfo);
12926 
12927     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
12928         ISpeechDataKey* This,
12929         REFIID riid,
12930         LPOLESTR *rgszNames,
12931         UINT cNames,
12932         LCID lcid,
12933         DISPID *rgDispId);
12934 
12935     HRESULT (STDMETHODCALLTYPE *Invoke)(
12936         ISpeechDataKey* This,
12937         DISPID dispIdMember,
12938         REFIID riid,
12939         LCID lcid,
12940         WORD wFlags,
12941         DISPPARAMS *pDispParams,
12942         VARIANT *pVarResult,
12943         EXCEPINFO *pExcepInfo,
12944         UINT *puArgErr);
12945 
12946     /*** ISpeechDataKey methods ***/
12947     HRESULT (STDMETHODCALLTYPE *SetBinaryValue)(
12948         ISpeechDataKey* This,
12949         const BSTR ValueName,
12950         VARIANT Value);
12951 
12952     HRESULT (STDMETHODCALLTYPE *GetBinaryValue)(
12953         ISpeechDataKey* This,
12954         const BSTR ValueName,
12955         VARIANT *Value);
12956 
12957     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
12958         ISpeechDataKey* This,
12959         const BSTR ValueName,
12960         const BSTR Value);
12961 
12962     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
12963         ISpeechDataKey* This,
12964         const BSTR ValueName,
12965         BSTR *Value);
12966 
12967     HRESULT (STDMETHODCALLTYPE *SetLongValue)(
12968         ISpeechDataKey* This,
12969         const BSTR ValueName,
12970         LONG Value);
12971 
12972     HRESULT (STDMETHODCALLTYPE *GetLongValue)(
12973         ISpeechDataKey* This,
12974         const BSTR ValueName,
12975         LONG *Value);
12976 
12977     HRESULT (STDMETHODCALLTYPE *OpenKey)(
12978         ISpeechDataKey* This,
12979         const BSTR SubKeyName,
12980         ISpeechDataKey **SubKey);
12981 
12982     HRESULT (STDMETHODCALLTYPE *CreateKey)(
12983         ISpeechDataKey* This,
12984         const BSTR SubKeyName,
12985         ISpeechDataKey **SubKey);
12986 
12987     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
12988         ISpeechDataKey* This,
12989         const BSTR SubKeyName);
12990 
12991     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
12992         ISpeechDataKey* This,
12993         const BSTR ValueName);
12994 
12995     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
12996         ISpeechDataKey* This,
12997         LONG Index,
12998         BSTR *SubKeyName);
12999 
13000     HRESULT (STDMETHODCALLTYPE *EnumValues)(
13001         ISpeechDataKey* This,
13002         LONG Index,
13003         BSTR *ValueName);
13004 
13005     END_INTERFACE
13006 } ISpeechDataKeyVtbl;
13007 interface ISpeechDataKey {
13008     CONST_VTBL ISpeechDataKeyVtbl* lpVtbl;
13009 };
13010 
13011 #ifdef COBJMACROS
13012 #ifndef WIDL_C_INLINE_WRAPPERS
13013 /*** IUnknown methods ***/
13014 #define ISpeechDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13015 #define ISpeechDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
13016 #define ISpeechDataKey_Release(This) (This)->lpVtbl->Release(This)
13017 /*** IDispatch methods ***/
13018 #define ISpeechDataKey_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13019 #define ISpeechDataKey_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13020 #define ISpeechDataKey_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13021 #define ISpeechDataKey_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13022 /*** ISpeechDataKey methods ***/
13023 #define ISpeechDataKey_SetBinaryValue(This,ValueName,Value) (This)->lpVtbl->SetBinaryValue(This,ValueName,Value)
13024 #define ISpeechDataKey_GetBinaryValue(This,ValueName,Value) (This)->lpVtbl->GetBinaryValue(This,ValueName,Value)
13025 #define ISpeechDataKey_SetStringValue(This,ValueName,Value) (This)->lpVtbl->SetStringValue(This,ValueName,Value)
13026 #define ISpeechDataKey_GetStringValue(This,ValueName,Value) (This)->lpVtbl->GetStringValue(This,ValueName,Value)
13027 #define ISpeechDataKey_SetLongValue(This,ValueName,Value) (This)->lpVtbl->SetLongValue(This,ValueName,Value)
13028 #define ISpeechDataKey_GetLongValue(This,ValueName,Value) (This)->lpVtbl->GetLongValue(This,ValueName,Value)
13029 #define ISpeechDataKey_OpenKey(This,SubKeyName,SubKey) (This)->lpVtbl->OpenKey(This,SubKeyName,SubKey)
13030 #define ISpeechDataKey_CreateKey(This,SubKeyName,SubKey) (This)->lpVtbl->CreateKey(This,SubKeyName,SubKey)
13031 #define ISpeechDataKey_DeleteKey(This,SubKeyName) (This)->lpVtbl->DeleteKey(This,SubKeyName)
13032 #define ISpeechDataKey_DeleteValue(This,ValueName) (This)->lpVtbl->DeleteValue(This,ValueName)
13033 #define ISpeechDataKey_EnumKeys(This,Index,SubKeyName) (This)->lpVtbl->EnumKeys(This,Index,SubKeyName)
13034 #define ISpeechDataKey_EnumValues(This,Index,ValueName) (This)->lpVtbl->EnumValues(This,Index,ValueName)
13035 #else
13036 /*** IUnknown methods ***/
13037 static FORCEINLINE HRESULT ISpeechDataKey_QueryInterface(ISpeechDataKey* This,REFIID riid,void **ppvObject) {
13038     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13039 }
13040 static FORCEINLINE ULONG ISpeechDataKey_AddRef(ISpeechDataKey* This) {
13041     return This->lpVtbl->AddRef(This);
13042 }
13043 static FORCEINLINE ULONG ISpeechDataKey_Release(ISpeechDataKey* This) {
13044     return This->lpVtbl->Release(This);
13045 }
13046 /*** IDispatch methods ***/
13047 static FORCEINLINE HRESULT ISpeechDataKey_GetTypeInfoCount(ISpeechDataKey* This,UINT *pctinfo) {
13048     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13049 }
13050 static FORCEINLINE HRESULT ISpeechDataKey_GetTypeInfo(ISpeechDataKey* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13051     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13052 }
13053 static FORCEINLINE HRESULT ISpeechDataKey_GetIDsOfNames(ISpeechDataKey* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13054     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13055 }
13056 static FORCEINLINE HRESULT ISpeechDataKey_Invoke(ISpeechDataKey* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13057     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13058 }
13059 /*** ISpeechDataKey methods ***/
13060 static FORCEINLINE HRESULT ISpeechDataKey_SetBinaryValue(ISpeechDataKey* This,const BSTR ValueName,VARIANT Value) {
13061     return This->lpVtbl->SetBinaryValue(This,ValueName,Value);
13062 }
13063 static FORCEINLINE HRESULT ISpeechDataKey_GetBinaryValue(ISpeechDataKey* This,const BSTR ValueName,VARIANT *Value) {
13064     return This->lpVtbl->GetBinaryValue(This,ValueName,Value);
13065 }
13066 static FORCEINLINE HRESULT ISpeechDataKey_SetStringValue(ISpeechDataKey* This,const BSTR ValueName,const BSTR Value) {
13067     return This->lpVtbl->SetStringValue(This,ValueName,Value);
13068 }
13069 static FORCEINLINE HRESULT ISpeechDataKey_GetStringValue(ISpeechDataKey* This,const BSTR ValueName,BSTR *Value) {
13070     return This->lpVtbl->GetStringValue(This,ValueName,Value);
13071 }
13072 static FORCEINLINE HRESULT ISpeechDataKey_SetLongValue(ISpeechDataKey* This,const BSTR ValueName,LONG Value) {
13073     return This->lpVtbl->SetLongValue(This,ValueName,Value);
13074 }
13075 static FORCEINLINE HRESULT ISpeechDataKey_GetLongValue(ISpeechDataKey* This,const BSTR ValueName,LONG *Value) {
13076     return This->lpVtbl->GetLongValue(This,ValueName,Value);
13077 }
13078 static FORCEINLINE HRESULT ISpeechDataKey_OpenKey(ISpeechDataKey* This,const BSTR SubKeyName,ISpeechDataKey **SubKey) {
13079     return This->lpVtbl->OpenKey(This,SubKeyName,SubKey);
13080 }
13081 static FORCEINLINE HRESULT ISpeechDataKey_CreateKey(ISpeechDataKey* This,const BSTR SubKeyName,ISpeechDataKey **SubKey) {
13082     return This->lpVtbl->CreateKey(This,SubKeyName,SubKey);
13083 }
13084 static FORCEINLINE HRESULT ISpeechDataKey_DeleteKey(ISpeechDataKey* This,const BSTR SubKeyName) {
13085     return This->lpVtbl->DeleteKey(This,SubKeyName);
13086 }
13087 static FORCEINLINE HRESULT ISpeechDataKey_DeleteValue(ISpeechDataKey* This,const BSTR ValueName) {
13088     return This->lpVtbl->DeleteValue(This,ValueName);
13089 }
13090 static FORCEINLINE HRESULT ISpeechDataKey_EnumKeys(ISpeechDataKey* This,LONG Index,BSTR *SubKeyName) {
13091     return This->lpVtbl->EnumKeys(This,Index,SubKeyName);
13092 }
13093 static FORCEINLINE HRESULT ISpeechDataKey_EnumValues(ISpeechDataKey* This,LONG Index,BSTR *ValueName) {
13094     return This->lpVtbl->EnumValues(This,Index,ValueName);
13095 }
13096 #endif
13097 #endif
13098 
13099 #endif
13100 
13101 HRESULT STDMETHODCALLTYPE ISpeechDataKey_SetBinaryValue_Proxy(
13102     ISpeechDataKey* This,
13103     const BSTR ValueName,
13104     VARIANT Value);
13105 void __RPC_STUB ISpeechDataKey_SetBinaryValue_Stub(
13106     IRpcStubBuffer* This,
13107     IRpcChannelBuffer* pRpcChannelBuffer,
13108     PRPC_MESSAGE pRpcMessage,
13109     DWORD* pdwStubPhase);
13110 HRESULT STDMETHODCALLTYPE ISpeechDataKey_GetBinaryValue_Proxy(
13111     ISpeechDataKey* This,
13112     const BSTR ValueName,
13113     VARIANT *Value);
13114 void __RPC_STUB ISpeechDataKey_GetBinaryValue_Stub(
13115     IRpcStubBuffer* This,
13116     IRpcChannelBuffer* pRpcChannelBuffer,
13117     PRPC_MESSAGE pRpcMessage,
13118     DWORD* pdwStubPhase);
13119 HRESULT STDMETHODCALLTYPE ISpeechDataKey_SetStringValue_Proxy(
13120     ISpeechDataKey* This,
13121     const BSTR ValueName,
13122     const BSTR Value);
13123 void __RPC_STUB ISpeechDataKey_SetStringValue_Stub(
13124     IRpcStubBuffer* This,
13125     IRpcChannelBuffer* pRpcChannelBuffer,
13126     PRPC_MESSAGE pRpcMessage,
13127     DWORD* pdwStubPhase);
13128 HRESULT STDMETHODCALLTYPE ISpeechDataKey_GetStringValue_Proxy(
13129     ISpeechDataKey* This,
13130     const BSTR ValueName,
13131     BSTR *Value);
13132 void __RPC_STUB ISpeechDataKey_GetStringValue_Stub(
13133     IRpcStubBuffer* This,
13134     IRpcChannelBuffer* pRpcChannelBuffer,
13135     PRPC_MESSAGE pRpcMessage,
13136     DWORD* pdwStubPhase);
13137 HRESULT STDMETHODCALLTYPE ISpeechDataKey_SetLongValue_Proxy(
13138     ISpeechDataKey* This,
13139     const BSTR ValueName,
13140     LONG Value);
13141 void __RPC_STUB ISpeechDataKey_SetLongValue_Stub(
13142     IRpcStubBuffer* This,
13143     IRpcChannelBuffer* pRpcChannelBuffer,
13144     PRPC_MESSAGE pRpcMessage,
13145     DWORD* pdwStubPhase);
13146 HRESULT STDMETHODCALLTYPE ISpeechDataKey_GetLongValue_Proxy(
13147     ISpeechDataKey* This,
13148     const BSTR ValueName,
13149     LONG *Value);
13150 void __RPC_STUB ISpeechDataKey_GetLongValue_Stub(
13151     IRpcStubBuffer* This,
13152     IRpcChannelBuffer* pRpcChannelBuffer,
13153     PRPC_MESSAGE pRpcMessage,
13154     DWORD* pdwStubPhase);
13155 HRESULT STDMETHODCALLTYPE ISpeechDataKey_OpenKey_Proxy(
13156     ISpeechDataKey* This,
13157     const BSTR SubKeyName,
13158     ISpeechDataKey **SubKey);
13159 void __RPC_STUB ISpeechDataKey_OpenKey_Stub(
13160     IRpcStubBuffer* This,
13161     IRpcChannelBuffer* pRpcChannelBuffer,
13162     PRPC_MESSAGE pRpcMessage,
13163     DWORD* pdwStubPhase);
13164 HRESULT STDMETHODCALLTYPE ISpeechDataKey_CreateKey_Proxy(
13165     ISpeechDataKey* This,
13166     const BSTR SubKeyName,
13167     ISpeechDataKey **SubKey);
13168 void __RPC_STUB ISpeechDataKey_CreateKey_Stub(
13169     IRpcStubBuffer* This,
13170     IRpcChannelBuffer* pRpcChannelBuffer,
13171     PRPC_MESSAGE pRpcMessage,
13172     DWORD* pdwStubPhase);
13173 HRESULT STDMETHODCALLTYPE ISpeechDataKey_DeleteKey_Proxy(
13174     ISpeechDataKey* This,
13175     const BSTR SubKeyName);
13176 void __RPC_STUB ISpeechDataKey_DeleteKey_Stub(
13177     IRpcStubBuffer* This,
13178     IRpcChannelBuffer* pRpcChannelBuffer,
13179     PRPC_MESSAGE pRpcMessage,
13180     DWORD* pdwStubPhase);
13181 HRESULT STDMETHODCALLTYPE ISpeechDataKey_DeleteValue_Proxy(
13182     ISpeechDataKey* This,
13183     const BSTR ValueName);
13184 void __RPC_STUB ISpeechDataKey_DeleteValue_Stub(
13185     IRpcStubBuffer* This,
13186     IRpcChannelBuffer* pRpcChannelBuffer,
13187     PRPC_MESSAGE pRpcMessage,
13188     DWORD* pdwStubPhase);
13189 HRESULT STDMETHODCALLTYPE ISpeechDataKey_EnumKeys_Proxy(
13190     ISpeechDataKey* This,
13191     LONG Index,
13192     BSTR *SubKeyName);
13193 void __RPC_STUB ISpeechDataKey_EnumKeys_Stub(
13194     IRpcStubBuffer* This,
13195     IRpcChannelBuffer* pRpcChannelBuffer,
13196     PRPC_MESSAGE pRpcMessage,
13197     DWORD* pdwStubPhase);
13198 HRESULT STDMETHODCALLTYPE ISpeechDataKey_EnumValues_Proxy(
13199     ISpeechDataKey* This,
13200     LONG Index,
13201     BSTR *ValueName);
13202 void __RPC_STUB ISpeechDataKey_EnumValues_Stub(
13203     IRpcStubBuffer* This,
13204     IRpcChannelBuffer* pRpcChannelBuffer,
13205     PRPC_MESSAGE pRpcMessage,
13206     DWORD* pdwStubPhase);
13207 
13208 #endif  /* __ISpeechDataKey_INTERFACE_DEFINED__ */
13209 
13210 /*****************************************************************************
13211  * ISpeechObjectToken interface
13212  */
13213 #ifndef __ISpeechObjectToken_INTERFACE_DEFINED__
13214 #define __ISpeechObjectToken_INTERFACE_DEFINED__
13215 
13216 DEFINE_GUID(IID_ISpeechObjectToken, 0xc74a3adc, 0xb727, 0x4500, 0xa8,0x4a, 0xb5,0x26,0x72,0x1c,0x8b,0x8c);
13217 #if defined(__cplusplus) && !defined(CINTERFACE)
13218 MIDL_INTERFACE("c74a3adc-b727-4500-a84a-b526721c8b8c")
13219 ISpeechObjectToken : public IDispatch
13220 {
13221     virtual HRESULT STDMETHODCALLTYPE get_Id(
13222         BSTR *ObjectId) = 0;
13223 
13224     virtual HRESULT STDMETHODCALLTYPE get_DataKey(
13225         ISpeechDataKey **DataKey) = 0;
13226 
13227     virtual HRESULT STDMETHODCALLTYPE get_Category(
13228         ISpeechObjectTokenCategory **Category) = 0;
13229 
13230     virtual HRESULT STDMETHODCALLTYPE GetDescription(
13231         LONG Locale,
13232         BSTR *Description) = 0;
13233 
13234     virtual HRESULT STDMETHODCALLTYPE SetId(
13235         BSTR Id,
13236         BSTR CategoryID = L"",
13237         VARIANT_BOOL CreateIfNotExist = 0) = 0;
13238 
13239     virtual HRESULT STDMETHODCALLTYPE GetAttribute(
13240         BSTR AttributeName,
13241         BSTR *AttributeValue) = 0;
13242 
13243     virtual HRESULT STDMETHODCALLTYPE CreateInstance(
13244         IUnknown *pUnkOuter,
13245         SpeechTokenContext ClsContext,
13246         IUnknown **Object) = 0;
13247 
13248     virtual HRESULT STDMETHODCALLTYPE Remove(
13249         BSTR ObjectStorageCLSID) = 0;
13250 
13251     virtual HRESULT STDMETHODCALLTYPE GetStorageFileName(
13252         BSTR ObjectStorageCLSID,
13253         BSTR KeyName,
13254         BSTR FileName,
13255         SpeechTokenShellFolder Folder,
13256         BSTR *FilePath) = 0;
13257 
13258     virtual HRESULT STDMETHODCALLTYPE RemoveStorageFileName(
13259         BSTR ObjectStorageCLSID,
13260         BSTR KeyName,
13261         VARIANT_BOOL DeleteFile) = 0;
13262 
13263     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
13264         const BSTR TypeOfUI,
13265         const VARIANT *ExtraData,
13266         IUnknown *Object,
13267         VARIANT_BOOL *Supported) = 0;
13268 
13269     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
13270         LONG hWnd,
13271         BSTR Title,
13272         const BSTR TypeOfUI,
13273         const VARIANT *ExtraData = 0,
13274         IUnknown *Object = 0) = 0;
13275 
13276     virtual HRESULT STDMETHODCALLTYPE MatchesAttributes(
13277         BSTR Attributes,
13278         VARIANT_BOOL *Matches) = 0;
13279 
13280 };
13281 #ifdef __CRT_UUID_DECL
13282 __CRT_UUID_DECL(ISpeechObjectToken, 0xc74a3adc, 0xb727, 0x4500, 0xa8,0x4a, 0xb5,0x26,0x72,0x1c,0x8b,0x8c)
13283 #endif
13284 #else
13285 typedef struct ISpeechObjectTokenVtbl {
13286     BEGIN_INTERFACE
13287 
13288     /*** IUnknown methods ***/
13289     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13290         ISpeechObjectToken* This,
13291         REFIID riid,
13292         void **ppvObject);
13293 
13294     ULONG (STDMETHODCALLTYPE *AddRef)(
13295         ISpeechObjectToken* This);
13296 
13297     ULONG (STDMETHODCALLTYPE *Release)(
13298         ISpeechObjectToken* This);
13299 
13300     /*** IDispatch methods ***/
13301     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13302         ISpeechObjectToken* This,
13303         UINT *pctinfo);
13304 
13305     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13306         ISpeechObjectToken* This,
13307         UINT iTInfo,
13308         LCID lcid,
13309         ITypeInfo **ppTInfo);
13310 
13311     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13312         ISpeechObjectToken* This,
13313         REFIID riid,
13314         LPOLESTR *rgszNames,
13315         UINT cNames,
13316         LCID lcid,
13317         DISPID *rgDispId);
13318 
13319     HRESULT (STDMETHODCALLTYPE *Invoke)(
13320         ISpeechObjectToken* This,
13321         DISPID dispIdMember,
13322         REFIID riid,
13323         LCID lcid,
13324         WORD wFlags,
13325         DISPPARAMS *pDispParams,
13326         VARIANT *pVarResult,
13327         EXCEPINFO *pExcepInfo,
13328         UINT *puArgErr);
13329 
13330     /*** ISpeechObjectToken methods ***/
13331     HRESULT (STDMETHODCALLTYPE *get_Id)(
13332         ISpeechObjectToken* This,
13333         BSTR *ObjectId);
13334 
13335     HRESULT (STDMETHODCALLTYPE *get_DataKey)(
13336         ISpeechObjectToken* This,
13337         ISpeechDataKey **DataKey);
13338 
13339     HRESULT (STDMETHODCALLTYPE *get_Category)(
13340         ISpeechObjectToken* This,
13341         ISpeechObjectTokenCategory **Category);
13342 
13343     HRESULT (STDMETHODCALLTYPE *GetDescription)(
13344         ISpeechObjectToken* This,
13345         LONG Locale,
13346         BSTR *Description);
13347 
13348     HRESULT (STDMETHODCALLTYPE *SetId)(
13349         ISpeechObjectToken* This,
13350         BSTR Id,
13351         BSTR CategoryID,
13352         VARIANT_BOOL CreateIfNotExist);
13353 
13354     HRESULT (STDMETHODCALLTYPE *GetAttribute)(
13355         ISpeechObjectToken* This,
13356         BSTR AttributeName,
13357         BSTR *AttributeValue);
13358 
13359     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
13360         ISpeechObjectToken* This,
13361         IUnknown *pUnkOuter,
13362         SpeechTokenContext ClsContext,
13363         IUnknown **Object);
13364 
13365     HRESULT (STDMETHODCALLTYPE *Remove)(
13366         ISpeechObjectToken* This,
13367         BSTR ObjectStorageCLSID);
13368 
13369     HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
13370         ISpeechObjectToken* This,
13371         BSTR ObjectStorageCLSID,
13372         BSTR KeyName,
13373         BSTR FileName,
13374         SpeechTokenShellFolder Folder,
13375         BSTR *FilePath);
13376 
13377     HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
13378         ISpeechObjectToken* This,
13379         BSTR ObjectStorageCLSID,
13380         BSTR KeyName,
13381         VARIANT_BOOL DeleteFile);
13382 
13383     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
13384         ISpeechObjectToken* This,
13385         const BSTR TypeOfUI,
13386         const VARIANT *ExtraData,
13387         IUnknown *Object,
13388         VARIANT_BOOL *Supported);
13389 
13390     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
13391         ISpeechObjectToken* This,
13392         LONG hWnd,
13393         BSTR Title,
13394         const BSTR TypeOfUI,
13395         const VARIANT *ExtraData,
13396         IUnknown *Object);
13397 
13398     HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
13399         ISpeechObjectToken* This,
13400         BSTR Attributes,
13401         VARIANT_BOOL *Matches);
13402 
13403     END_INTERFACE
13404 } ISpeechObjectTokenVtbl;
13405 interface ISpeechObjectToken {
13406     CONST_VTBL ISpeechObjectTokenVtbl* lpVtbl;
13407 };
13408 
13409 #ifdef COBJMACROS
13410 #ifndef WIDL_C_INLINE_WRAPPERS
13411 /*** IUnknown methods ***/
13412 #define ISpeechObjectToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13413 #define ISpeechObjectToken_AddRef(This) (This)->lpVtbl->AddRef(This)
13414 #define ISpeechObjectToken_Release(This) (This)->lpVtbl->Release(This)
13415 /*** IDispatch methods ***/
13416 #define ISpeechObjectToken_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13417 #define ISpeechObjectToken_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13418 #define ISpeechObjectToken_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13419 #define ISpeechObjectToken_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13420 /*** ISpeechObjectToken methods ***/
13421 #define ISpeechObjectToken_get_Id(This,ObjectId) (This)->lpVtbl->get_Id(This,ObjectId)
13422 #define ISpeechObjectToken_get_DataKey(This,DataKey) (This)->lpVtbl->get_DataKey(This,DataKey)
13423 #define ISpeechObjectToken_get_Category(This,Category) (This)->lpVtbl->get_Category(This,Category)
13424 #define ISpeechObjectToken_GetDescription(This,Locale,Description) (This)->lpVtbl->GetDescription(This,Locale,Description)
13425 #define ISpeechObjectToken_SetId(This,Id,CategoryID,CreateIfNotExist) (This)->lpVtbl->SetId(This,Id,CategoryID,CreateIfNotExist)
13426 #define ISpeechObjectToken_GetAttribute(This,AttributeName,AttributeValue) (This)->lpVtbl->GetAttribute(This,AttributeName,AttributeValue)
13427 #define ISpeechObjectToken_CreateInstance(This,pUnkOuter,ClsContext,Object) (This)->lpVtbl->CreateInstance(This,pUnkOuter,ClsContext,Object)
13428 #define ISpeechObjectToken_Remove(This,ObjectStorageCLSID) (This)->lpVtbl->Remove(This,ObjectStorageCLSID)
13429 #define ISpeechObjectToken_GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath) (This)->lpVtbl->GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath)
13430 #define ISpeechObjectToken_RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile)
13431 #define ISpeechObjectToken_IsUISupported(This,TypeOfUI,ExtraData,Object,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Object,Supported)
13432 #define ISpeechObjectToken_DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object) (This)->lpVtbl->DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object)
13433 #define ISpeechObjectToken_MatchesAttributes(This,Attributes,Matches) (This)->lpVtbl->MatchesAttributes(This,Attributes,Matches)
13434 #else
13435 /*** IUnknown methods ***/
13436 static FORCEINLINE HRESULT ISpeechObjectToken_QueryInterface(ISpeechObjectToken* This,REFIID riid,void **ppvObject) {
13437     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13438 }
13439 static FORCEINLINE ULONG ISpeechObjectToken_AddRef(ISpeechObjectToken* This) {
13440     return This->lpVtbl->AddRef(This);
13441 }
13442 static FORCEINLINE ULONG ISpeechObjectToken_Release(ISpeechObjectToken* This) {
13443     return This->lpVtbl->Release(This);
13444 }
13445 /*** IDispatch methods ***/
13446 static FORCEINLINE HRESULT ISpeechObjectToken_GetTypeInfoCount(ISpeechObjectToken* This,UINT *pctinfo) {
13447     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13448 }
13449 static FORCEINLINE HRESULT ISpeechObjectToken_GetTypeInfo(ISpeechObjectToken* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13450     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13451 }
13452 static FORCEINLINE HRESULT ISpeechObjectToken_GetIDsOfNames(ISpeechObjectToken* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13453     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13454 }
13455 static FORCEINLINE HRESULT ISpeechObjectToken_Invoke(ISpeechObjectToken* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13456     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13457 }
13458 /*** ISpeechObjectToken methods ***/
13459 static FORCEINLINE HRESULT ISpeechObjectToken_get_Id(ISpeechObjectToken* This,BSTR *ObjectId) {
13460     return This->lpVtbl->get_Id(This,ObjectId);
13461 }
13462 static FORCEINLINE HRESULT ISpeechObjectToken_get_DataKey(ISpeechObjectToken* This,ISpeechDataKey **DataKey) {
13463     return This->lpVtbl->get_DataKey(This,DataKey);
13464 }
13465 static FORCEINLINE HRESULT ISpeechObjectToken_get_Category(ISpeechObjectToken* This,ISpeechObjectTokenCategory **Category) {
13466     return This->lpVtbl->get_Category(This,Category);
13467 }
13468 static FORCEINLINE HRESULT ISpeechObjectToken_GetDescription(ISpeechObjectToken* This,LONG Locale,BSTR *Description) {
13469     return This->lpVtbl->GetDescription(This,Locale,Description);
13470 }
13471 static FORCEINLINE HRESULT ISpeechObjectToken_SetId(ISpeechObjectToken* This,BSTR Id,BSTR CategoryID,VARIANT_BOOL CreateIfNotExist) {
13472     return This->lpVtbl->SetId(This,Id,CategoryID,CreateIfNotExist);
13473 }
13474 static FORCEINLINE HRESULT ISpeechObjectToken_GetAttribute(ISpeechObjectToken* This,BSTR AttributeName,BSTR *AttributeValue) {
13475     return This->lpVtbl->GetAttribute(This,AttributeName,AttributeValue);
13476 }
13477 static FORCEINLINE HRESULT ISpeechObjectToken_CreateInstance(ISpeechObjectToken* This,IUnknown *pUnkOuter,SpeechTokenContext ClsContext,IUnknown **Object) {
13478     return This->lpVtbl->CreateInstance(This,pUnkOuter,ClsContext,Object);
13479 }
13480 static FORCEINLINE HRESULT ISpeechObjectToken_Remove(ISpeechObjectToken* This,BSTR ObjectStorageCLSID) {
13481     return This->lpVtbl->Remove(This,ObjectStorageCLSID);
13482 }
13483 static FORCEINLINE HRESULT ISpeechObjectToken_GetStorageFileName(ISpeechObjectToken* This,BSTR ObjectStorageCLSID,BSTR KeyName,BSTR FileName,SpeechTokenShellFolder Folder,BSTR *FilePath) {
13484     return This->lpVtbl->GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath);
13485 }
13486 static FORCEINLINE HRESULT ISpeechObjectToken_RemoveStorageFileName(ISpeechObjectToken* This,BSTR ObjectStorageCLSID,BSTR KeyName,VARIANT_BOOL DeleteFile) {
13487     return This->lpVtbl->RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile);
13488 }
13489 static FORCEINLINE HRESULT ISpeechObjectToken_IsUISupported(ISpeechObjectToken* This,const BSTR TypeOfUI,const VARIANT *ExtraData,IUnknown *Object,VARIANT_BOOL *Supported) {
13490     return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Object,Supported);
13491 }
13492 static FORCEINLINE HRESULT ISpeechObjectToken_DisplayUI(ISpeechObjectToken* This,LONG hWnd,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData,IUnknown *Object) {
13493     return This->lpVtbl->DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object);
13494 }
13495 static FORCEINLINE HRESULT ISpeechObjectToken_MatchesAttributes(ISpeechObjectToken* This,BSTR Attributes,VARIANT_BOOL *Matches) {
13496     return This->lpVtbl->MatchesAttributes(This,Attributes,Matches);
13497 }
13498 #endif
13499 #endif
13500 
13501 #endif
13502 
13503 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_get_Id_Proxy(
13504     ISpeechObjectToken* This,
13505     BSTR *ObjectId);
13506 void __RPC_STUB ISpeechObjectToken_get_Id_Stub(
13507     IRpcStubBuffer* This,
13508     IRpcChannelBuffer* pRpcChannelBuffer,
13509     PRPC_MESSAGE pRpcMessage,
13510     DWORD* pdwStubPhase);
13511 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_get_DataKey_Proxy(
13512     ISpeechObjectToken* This,
13513     ISpeechDataKey **DataKey);
13514 void __RPC_STUB ISpeechObjectToken_get_DataKey_Stub(
13515     IRpcStubBuffer* This,
13516     IRpcChannelBuffer* pRpcChannelBuffer,
13517     PRPC_MESSAGE pRpcMessage,
13518     DWORD* pdwStubPhase);
13519 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_get_Category_Proxy(
13520     ISpeechObjectToken* This,
13521     ISpeechObjectTokenCategory **Category);
13522 void __RPC_STUB ISpeechObjectToken_get_Category_Stub(
13523     IRpcStubBuffer* This,
13524     IRpcChannelBuffer* pRpcChannelBuffer,
13525     PRPC_MESSAGE pRpcMessage,
13526     DWORD* pdwStubPhase);
13527 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_GetDescription_Proxy(
13528     ISpeechObjectToken* This,
13529     LONG Locale,
13530     BSTR *Description);
13531 void __RPC_STUB ISpeechObjectToken_GetDescription_Stub(
13532     IRpcStubBuffer* This,
13533     IRpcChannelBuffer* pRpcChannelBuffer,
13534     PRPC_MESSAGE pRpcMessage,
13535     DWORD* pdwStubPhase);
13536 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_SetId_Proxy(
13537     ISpeechObjectToken* This,
13538     BSTR Id,
13539     BSTR CategoryID,
13540     VARIANT_BOOL CreateIfNotExist);
13541 void __RPC_STUB ISpeechObjectToken_SetId_Stub(
13542     IRpcStubBuffer* This,
13543     IRpcChannelBuffer* pRpcChannelBuffer,
13544     PRPC_MESSAGE pRpcMessage,
13545     DWORD* pdwStubPhase);
13546 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_GetAttribute_Proxy(
13547     ISpeechObjectToken* This,
13548     BSTR AttributeName,
13549     BSTR *AttributeValue);
13550 void __RPC_STUB ISpeechObjectToken_GetAttribute_Stub(
13551     IRpcStubBuffer* This,
13552     IRpcChannelBuffer* pRpcChannelBuffer,
13553     PRPC_MESSAGE pRpcMessage,
13554     DWORD* pdwStubPhase);
13555 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_CreateInstance_Proxy(
13556     ISpeechObjectToken* This,
13557     IUnknown *pUnkOuter,
13558     SpeechTokenContext ClsContext,
13559     IUnknown **Object);
13560 void __RPC_STUB ISpeechObjectToken_CreateInstance_Stub(
13561     IRpcStubBuffer* This,
13562     IRpcChannelBuffer* pRpcChannelBuffer,
13563     PRPC_MESSAGE pRpcMessage,
13564     DWORD* pdwStubPhase);
13565 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_Remove_Proxy(
13566     ISpeechObjectToken* This,
13567     BSTR ObjectStorageCLSID);
13568 void __RPC_STUB ISpeechObjectToken_Remove_Stub(
13569     IRpcStubBuffer* This,
13570     IRpcChannelBuffer* pRpcChannelBuffer,
13571     PRPC_MESSAGE pRpcMessage,
13572     DWORD* pdwStubPhase);
13573 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_GetStorageFileName_Proxy(
13574     ISpeechObjectToken* This,
13575     BSTR ObjectStorageCLSID,
13576     BSTR KeyName,
13577     BSTR FileName,
13578     SpeechTokenShellFolder Folder,
13579     BSTR *FilePath);
13580 void __RPC_STUB ISpeechObjectToken_GetStorageFileName_Stub(
13581     IRpcStubBuffer* This,
13582     IRpcChannelBuffer* pRpcChannelBuffer,
13583     PRPC_MESSAGE pRpcMessage,
13584     DWORD* pdwStubPhase);
13585 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_RemoveStorageFileName_Proxy(
13586     ISpeechObjectToken* This,
13587     BSTR ObjectStorageCLSID,
13588     BSTR KeyName,
13589     VARIANT_BOOL DeleteFile);
13590 void __RPC_STUB ISpeechObjectToken_RemoveStorageFileName_Stub(
13591     IRpcStubBuffer* This,
13592     IRpcChannelBuffer* pRpcChannelBuffer,
13593     PRPC_MESSAGE pRpcMessage,
13594     DWORD* pdwStubPhase);
13595 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_IsUISupported_Proxy(
13596     ISpeechObjectToken* This,
13597     const BSTR TypeOfUI,
13598     const VARIANT *ExtraData,
13599     IUnknown *Object,
13600     VARIANT_BOOL *Supported);
13601 void __RPC_STUB ISpeechObjectToken_IsUISupported_Stub(
13602     IRpcStubBuffer* This,
13603     IRpcChannelBuffer* pRpcChannelBuffer,
13604     PRPC_MESSAGE pRpcMessage,
13605     DWORD* pdwStubPhase);
13606 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_DisplayUI_Proxy(
13607     ISpeechObjectToken* This,
13608     LONG hWnd,
13609     BSTR Title,
13610     const BSTR TypeOfUI,
13611     const VARIANT *ExtraData,
13612     IUnknown *Object);
13613 void __RPC_STUB ISpeechObjectToken_DisplayUI_Stub(
13614     IRpcStubBuffer* This,
13615     IRpcChannelBuffer* pRpcChannelBuffer,
13616     PRPC_MESSAGE pRpcMessage,
13617     DWORD* pdwStubPhase);
13618 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_MatchesAttributes_Proxy(
13619     ISpeechObjectToken* This,
13620     BSTR Attributes,
13621     VARIANT_BOOL *Matches);
13622 void __RPC_STUB ISpeechObjectToken_MatchesAttributes_Stub(
13623     IRpcStubBuffer* This,
13624     IRpcChannelBuffer* pRpcChannelBuffer,
13625     PRPC_MESSAGE pRpcMessage,
13626     DWORD* pdwStubPhase);
13627 
13628 #endif  /* __ISpeechObjectToken_INTERFACE_DEFINED__ */
13629 
13630 /*****************************************************************************
13631  * ISpeechObjectTokens interface
13632  */
13633 #ifndef __ISpeechObjectTokens_INTERFACE_DEFINED__
13634 #define __ISpeechObjectTokens_INTERFACE_DEFINED__
13635 
13636 DEFINE_GUID(IID_ISpeechObjectTokens, 0x9285b776, 0x2e7b, 0x4bc0, 0xb5,0x3e, 0x58,0x0e,0xb6,0xfa,0x96,0x7f);
13637 #if defined(__cplusplus) && !defined(CINTERFACE)
13638 MIDL_INTERFACE("9285b776-2e7b-4bc0-b53e-580eb6fa967f")
13639 ISpeechObjectTokens : public IDispatch
13640 {
13641     virtual HRESULT STDMETHODCALLTYPE get_Count(
13642         LONG *Count) = 0;
13643 
13644     virtual HRESULT STDMETHODCALLTYPE Item(
13645         LONG Index,
13646         ISpeechObjectToken **Token) = 0;
13647 
13648     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
13649         IUnknown **ppEnumVARIANT) = 0;
13650 
13651 };
13652 #ifdef __CRT_UUID_DECL
13653 __CRT_UUID_DECL(ISpeechObjectTokens, 0x9285b776, 0x2e7b, 0x4bc0, 0xb5,0x3e, 0x58,0x0e,0xb6,0xfa,0x96,0x7f)
13654 #endif
13655 #else
13656 typedef struct ISpeechObjectTokensVtbl {
13657     BEGIN_INTERFACE
13658 
13659     /*** IUnknown methods ***/
13660     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13661         ISpeechObjectTokens* This,
13662         REFIID riid,
13663         void **ppvObject);
13664 
13665     ULONG (STDMETHODCALLTYPE *AddRef)(
13666         ISpeechObjectTokens* This);
13667 
13668     ULONG (STDMETHODCALLTYPE *Release)(
13669         ISpeechObjectTokens* This);
13670 
13671     /*** IDispatch methods ***/
13672     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13673         ISpeechObjectTokens* This,
13674         UINT *pctinfo);
13675 
13676     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13677         ISpeechObjectTokens* This,
13678         UINT iTInfo,
13679         LCID lcid,
13680         ITypeInfo **ppTInfo);
13681 
13682     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13683         ISpeechObjectTokens* This,
13684         REFIID riid,
13685         LPOLESTR *rgszNames,
13686         UINT cNames,
13687         LCID lcid,
13688         DISPID *rgDispId);
13689 
13690     HRESULT (STDMETHODCALLTYPE *Invoke)(
13691         ISpeechObjectTokens* This,
13692         DISPID dispIdMember,
13693         REFIID riid,
13694         LCID lcid,
13695         WORD wFlags,
13696         DISPPARAMS *pDispParams,
13697         VARIANT *pVarResult,
13698         EXCEPINFO *pExcepInfo,
13699         UINT *puArgErr);
13700 
13701     /*** ISpeechObjectTokens methods ***/
13702     HRESULT (STDMETHODCALLTYPE *get_Count)(
13703         ISpeechObjectTokens* This,
13704         LONG *Count);
13705 
13706     HRESULT (STDMETHODCALLTYPE *Item)(
13707         ISpeechObjectTokens* This,
13708         LONG Index,
13709         ISpeechObjectToken **Token);
13710 
13711     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
13712         ISpeechObjectTokens* This,
13713         IUnknown **ppEnumVARIANT);
13714 
13715     END_INTERFACE
13716 } ISpeechObjectTokensVtbl;
13717 interface ISpeechObjectTokens {
13718     CONST_VTBL ISpeechObjectTokensVtbl* lpVtbl;
13719 };
13720 
13721 #ifdef COBJMACROS
13722 #ifndef WIDL_C_INLINE_WRAPPERS
13723 /*** IUnknown methods ***/
13724 #define ISpeechObjectTokens_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13725 #define ISpeechObjectTokens_AddRef(This) (This)->lpVtbl->AddRef(This)
13726 #define ISpeechObjectTokens_Release(This) (This)->lpVtbl->Release(This)
13727 /*** IDispatch methods ***/
13728 #define ISpeechObjectTokens_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13729 #define ISpeechObjectTokens_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13730 #define ISpeechObjectTokens_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13731 #define ISpeechObjectTokens_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13732 /*** ISpeechObjectTokens methods ***/
13733 #define ISpeechObjectTokens_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
13734 #define ISpeechObjectTokens_Item(This,Index,Token) (This)->lpVtbl->Item(This,Index,Token)
13735 #define ISpeechObjectTokens_get__NewEnum(This,ppEnumVARIANT) (This)->lpVtbl->get__NewEnum(This,ppEnumVARIANT)
13736 #else
13737 /*** IUnknown methods ***/
13738 static FORCEINLINE HRESULT ISpeechObjectTokens_QueryInterface(ISpeechObjectTokens* This,REFIID riid,void **ppvObject) {
13739     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13740 }
13741 static FORCEINLINE ULONG ISpeechObjectTokens_AddRef(ISpeechObjectTokens* This) {
13742     return This->lpVtbl->AddRef(This);
13743 }
13744 static FORCEINLINE ULONG ISpeechObjectTokens_Release(ISpeechObjectTokens* This) {
13745     return This->lpVtbl->Release(This);
13746 }
13747 /*** IDispatch methods ***/
13748 static FORCEINLINE HRESULT ISpeechObjectTokens_GetTypeInfoCount(ISpeechObjectTokens* This,UINT *pctinfo) {
13749     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13750 }
13751 static FORCEINLINE HRESULT ISpeechObjectTokens_GetTypeInfo(ISpeechObjectTokens* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13752     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13753 }
13754 static FORCEINLINE HRESULT ISpeechObjectTokens_GetIDsOfNames(ISpeechObjectTokens* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13755     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13756 }
13757 static FORCEINLINE HRESULT ISpeechObjectTokens_Invoke(ISpeechObjectTokens* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13758     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13759 }
13760 /*** ISpeechObjectTokens methods ***/
13761 static FORCEINLINE HRESULT ISpeechObjectTokens_get_Count(ISpeechObjectTokens* This,LONG *Count) {
13762     return This->lpVtbl->get_Count(This,Count);
13763 }
13764 static FORCEINLINE HRESULT ISpeechObjectTokens_Item(ISpeechObjectTokens* This,LONG Index,ISpeechObjectToken **Token) {
13765     return This->lpVtbl->Item(This,Index,Token);
13766 }
13767 static FORCEINLINE HRESULT ISpeechObjectTokens_get__NewEnum(ISpeechObjectTokens* This,IUnknown **ppEnumVARIANT) {
13768     return This->lpVtbl->get__NewEnum(This,ppEnumVARIANT);
13769 }
13770 #endif
13771 #endif
13772 
13773 #endif
13774 
13775 HRESULT STDMETHODCALLTYPE ISpeechObjectTokens_get_Count_Proxy(
13776     ISpeechObjectTokens* This,
13777     LONG *Count);
13778 void __RPC_STUB ISpeechObjectTokens_get_Count_Stub(
13779     IRpcStubBuffer* This,
13780     IRpcChannelBuffer* pRpcChannelBuffer,
13781     PRPC_MESSAGE pRpcMessage,
13782     DWORD* pdwStubPhase);
13783 HRESULT STDMETHODCALLTYPE ISpeechObjectTokens_Item_Proxy(
13784     ISpeechObjectTokens* This,
13785     LONG Index,
13786     ISpeechObjectToken **Token);
13787 void __RPC_STUB ISpeechObjectTokens_Item_Stub(
13788     IRpcStubBuffer* This,
13789     IRpcChannelBuffer* pRpcChannelBuffer,
13790     PRPC_MESSAGE pRpcMessage,
13791     DWORD* pdwStubPhase);
13792 HRESULT STDMETHODCALLTYPE ISpeechObjectTokens_get__NewEnum_Proxy(
13793     ISpeechObjectTokens* This,
13794     IUnknown **ppEnumVARIANT);
13795 void __RPC_STUB ISpeechObjectTokens_get__NewEnum_Stub(
13796     IRpcStubBuffer* This,
13797     IRpcChannelBuffer* pRpcChannelBuffer,
13798     PRPC_MESSAGE pRpcMessage,
13799     DWORD* pdwStubPhase);
13800 
13801 #endif  /* __ISpeechObjectTokens_INTERFACE_DEFINED__ */
13802 
13803 /*****************************************************************************
13804  * ISpeechObjectTokenCategory interface
13805  */
13806 #ifndef __ISpeechObjectTokenCategory_INTERFACE_DEFINED__
13807 #define __ISpeechObjectTokenCategory_INTERFACE_DEFINED__
13808 
13809 DEFINE_GUID(IID_ISpeechObjectTokenCategory, 0xca7eac50, 0x2d01, 0x4145, 0x86,0xd4, 0x5a,0xe7,0xd7,0x0f,0x44,0x69);
13810 #if defined(__cplusplus) && !defined(CINTERFACE)
13811 MIDL_INTERFACE("ca7eac50-2d01-4145-86d4-5ae7d70f4469")
13812 ISpeechObjectTokenCategory : public IDispatch
13813 {
13814     virtual HRESULT STDMETHODCALLTYPE get_Id(
13815         BSTR *Id) = 0;
13816 
13817     virtual HRESULT STDMETHODCALLTYPE put_Default(
13818         const BSTR TokenId) = 0;
13819 
13820     virtual HRESULT STDMETHODCALLTYPE get_Default(
13821         BSTR *TokenId) = 0;
13822 
13823     virtual HRESULT STDMETHODCALLTYPE SetId(
13824         const BSTR Id,
13825         VARIANT_BOOL CreateIfNotExist = 0) = 0;
13826 
13827     virtual HRESULT STDMETHODCALLTYPE GetDataKey(
13828         SpeechDataKeyLocation Location,
13829         ISpeechDataKey **DataKey) = 0;
13830 
13831     virtual HRESULT STDMETHODCALLTYPE EnumerateTokens(
13832         BSTR RequiredAttributes,
13833         BSTR OptionalAttributes,
13834         ISpeechObjectTokens **Tokens) = 0;
13835 
13836 };
13837 #ifdef __CRT_UUID_DECL
13838 __CRT_UUID_DECL(ISpeechObjectTokenCategory, 0xca7eac50, 0x2d01, 0x4145, 0x86,0xd4, 0x5a,0xe7,0xd7,0x0f,0x44,0x69)
13839 #endif
13840 #else
13841 typedef struct ISpeechObjectTokenCategoryVtbl {
13842     BEGIN_INTERFACE
13843 
13844     /*** IUnknown methods ***/
13845     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13846         ISpeechObjectTokenCategory* This,
13847         REFIID riid,
13848         void **ppvObject);
13849 
13850     ULONG (STDMETHODCALLTYPE *AddRef)(
13851         ISpeechObjectTokenCategory* This);
13852 
13853     ULONG (STDMETHODCALLTYPE *Release)(
13854         ISpeechObjectTokenCategory* This);
13855 
13856     /*** IDispatch methods ***/
13857     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13858         ISpeechObjectTokenCategory* This,
13859         UINT *pctinfo);
13860 
13861     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13862         ISpeechObjectTokenCategory* This,
13863         UINT iTInfo,
13864         LCID lcid,
13865         ITypeInfo **ppTInfo);
13866 
13867     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13868         ISpeechObjectTokenCategory* This,
13869         REFIID riid,
13870         LPOLESTR *rgszNames,
13871         UINT cNames,
13872         LCID lcid,
13873         DISPID *rgDispId);
13874 
13875     HRESULT (STDMETHODCALLTYPE *Invoke)(
13876         ISpeechObjectTokenCategory* This,
13877         DISPID dispIdMember,
13878         REFIID riid,
13879         LCID lcid,
13880         WORD wFlags,
13881         DISPPARAMS *pDispParams,
13882         VARIANT *pVarResult,
13883         EXCEPINFO *pExcepInfo,
13884         UINT *puArgErr);
13885 
13886     /*** ISpeechObjectTokenCategory methods ***/
13887     HRESULT (STDMETHODCALLTYPE *get_Id)(
13888         ISpeechObjectTokenCategory* This,
13889         BSTR *Id);
13890 
13891     HRESULT (STDMETHODCALLTYPE *put_Default)(
13892         ISpeechObjectTokenCategory* This,
13893         const BSTR TokenId);
13894 
13895     HRESULT (STDMETHODCALLTYPE *get_Default)(
13896         ISpeechObjectTokenCategory* This,
13897         BSTR *TokenId);
13898 
13899     HRESULT (STDMETHODCALLTYPE *SetId)(
13900         ISpeechObjectTokenCategory* This,
13901         const BSTR Id,
13902         VARIANT_BOOL CreateIfNotExist);
13903 
13904     HRESULT (STDMETHODCALLTYPE *GetDataKey)(
13905         ISpeechObjectTokenCategory* This,
13906         SpeechDataKeyLocation Location,
13907         ISpeechDataKey **DataKey);
13908 
13909     HRESULT (STDMETHODCALLTYPE *EnumerateTokens)(
13910         ISpeechObjectTokenCategory* This,
13911         BSTR RequiredAttributes,
13912         BSTR OptionalAttributes,
13913         ISpeechObjectTokens **Tokens);
13914 
13915     END_INTERFACE
13916 } ISpeechObjectTokenCategoryVtbl;
13917 interface ISpeechObjectTokenCategory {
13918     CONST_VTBL ISpeechObjectTokenCategoryVtbl* lpVtbl;
13919 };
13920 
13921 #ifdef COBJMACROS
13922 #ifndef WIDL_C_INLINE_WRAPPERS
13923 /*** IUnknown methods ***/
13924 #define ISpeechObjectTokenCategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13925 #define ISpeechObjectTokenCategory_AddRef(This) (This)->lpVtbl->AddRef(This)
13926 #define ISpeechObjectTokenCategory_Release(This) (This)->lpVtbl->Release(This)
13927 /*** IDispatch methods ***/
13928 #define ISpeechObjectTokenCategory_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13929 #define ISpeechObjectTokenCategory_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13930 #define ISpeechObjectTokenCategory_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13931 #define ISpeechObjectTokenCategory_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13932 /*** ISpeechObjectTokenCategory methods ***/
13933 #define ISpeechObjectTokenCategory_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
13934 #define ISpeechObjectTokenCategory_put_Default(This,TokenId) (This)->lpVtbl->put_Default(This,TokenId)
13935 #define ISpeechObjectTokenCategory_get_Default(This,TokenId) (This)->lpVtbl->get_Default(This,TokenId)
13936 #define ISpeechObjectTokenCategory_SetId(This,Id,CreateIfNotExist) (This)->lpVtbl->SetId(This,Id,CreateIfNotExist)
13937 #define ISpeechObjectTokenCategory_GetDataKey(This,Location,DataKey) (This)->lpVtbl->GetDataKey(This,Location,DataKey)
13938 #define ISpeechObjectTokenCategory_EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens) (This)->lpVtbl->EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens)
13939 #else
13940 /*** IUnknown methods ***/
13941 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_QueryInterface(ISpeechObjectTokenCategory* This,REFIID riid,void **ppvObject) {
13942     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13943 }
13944 static FORCEINLINE ULONG ISpeechObjectTokenCategory_AddRef(ISpeechObjectTokenCategory* This) {
13945     return This->lpVtbl->AddRef(This);
13946 }
13947 static FORCEINLINE ULONG ISpeechObjectTokenCategory_Release(ISpeechObjectTokenCategory* This) {
13948     return This->lpVtbl->Release(This);
13949 }
13950 /*** IDispatch methods ***/
13951 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_GetTypeInfoCount(ISpeechObjectTokenCategory* This,UINT *pctinfo) {
13952     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13953 }
13954 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_GetTypeInfo(ISpeechObjectTokenCategory* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13955     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13956 }
13957 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_GetIDsOfNames(ISpeechObjectTokenCategory* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13958     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13959 }
13960 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_Invoke(ISpeechObjectTokenCategory* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13961     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13962 }
13963 /*** ISpeechObjectTokenCategory methods ***/
13964 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_get_Id(ISpeechObjectTokenCategory* This,BSTR *Id) {
13965     return This->lpVtbl->get_Id(This,Id);
13966 }
13967 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_put_Default(ISpeechObjectTokenCategory* This,const BSTR TokenId) {
13968     return This->lpVtbl->put_Default(This,TokenId);
13969 }
13970 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_get_Default(ISpeechObjectTokenCategory* This,BSTR *TokenId) {
13971     return This->lpVtbl->get_Default(This,TokenId);
13972 }
13973 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_SetId(ISpeechObjectTokenCategory* This,const BSTR Id,VARIANT_BOOL CreateIfNotExist) {
13974     return This->lpVtbl->SetId(This,Id,CreateIfNotExist);
13975 }
13976 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_GetDataKey(ISpeechObjectTokenCategory* This,SpeechDataKeyLocation Location,ISpeechDataKey **DataKey) {
13977     return This->lpVtbl->GetDataKey(This,Location,DataKey);
13978 }
13979 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_EnumerateTokens(ISpeechObjectTokenCategory* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **Tokens) {
13980     return This->lpVtbl->EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens);
13981 }
13982 #endif
13983 #endif
13984 
13985 #endif
13986 
13987 HRESULT STDMETHODCALLTYPE ISpeechObjectTokenCategory_get_Id_Proxy(
13988     ISpeechObjectTokenCategory* This,
13989     BSTR *Id);
13990 void __RPC_STUB ISpeechObjectTokenCategory_get_Id_Stub(
13991     IRpcStubBuffer* This,
13992     IRpcChannelBuffer* pRpcChannelBuffer,
13993     PRPC_MESSAGE pRpcMessage,
13994     DWORD* pdwStubPhase);
13995 HRESULT STDMETHODCALLTYPE ISpeechObjectTokenCategory_put_Default_Proxy(
13996     ISpeechObjectTokenCategory* This,
13997     const BSTR TokenId);
13998 void __RPC_STUB ISpeechObjectTokenCategory_put_Default_Stub(
13999     IRpcStubBuffer* This,
14000     IRpcChannelBuffer* pRpcChannelBuffer,
14001     PRPC_MESSAGE pRpcMessage,
14002     DWORD* pdwStubPhase);
14003 HRESULT STDMETHODCALLTYPE ISpeechObjectTokenCategory_get_Default_Proxy(
14004     ISpeechObjectTokenCategory* This,
14005     BSTR *TokenId);
14006 void __RPC_STUB ISpeechObjectTokenCategory_get_Default_Stub(
14007     IRpcStubBuffer* This,
14008     IRpcChannelBuffer* pRpcChannelBuffer,
14009     PRPC_MESSAGE pRpcMessage,
14010     DWORD* pdwStubPhase);
14011 HRESULT STDMETHODCALLTYPE ISpeechObjectTokenCategory_SetId_Proxy(
14012     ISpeechObjectTokenCategory* This,
14013     const BSTR Id,
14014     VARIANT_BOOL CreateIfNotExist);
14015 void __RPC_STUB ISpeechObjectTokenCategory_SetId_Stub(
14016     IRpcStubBuffer* This,
14017     IRpcChannelBuffer* pRpcChannelBuffer,
14018     PRPC_MESSAGE pRpcMessage,
14019     DWORD* pdwStubPhase);
14020 HRESULT STDMETHODCALLTYPE ISpeechObjectTokenCategory_GetDataKey_Proxy(
14021     ISpeechObjectTokenCategory* This,
14022     SpeechDataKeyLocation Location,
14023     ISpeechDataKey **DataKey);
14024 void __RPC_STUB ISpeechObjectTokenCategory_GetDataKey_Stub(
14025     IRpcStubBuffer* This,
14026     IRpcChannelBuffer* pRpcChannelBuffer,
14027     PRPC_MESSAGE pRpcMessage,
14028     DWORD* pdwStubPhase);
14029 HRESULT STDMETHODCALLTYPE ISpeechObjectTokenCategory_EnumerateTokens_Proxy(
14030     ISpeechObjectTokenCategory* This,
14031     BSTR RequiredAttributes,
14032     BSTR OptionalAttributes,
14033     ISpeechObjectTokens **Tokens);
14034 void __RPC_STUB ISpeechObjectTokenCategory_EnumerateTokens_Stub(
14035     IRpcStubBuffer* This,
14036     IRpcChannelBuffer* pRpcChannelBuffer,
14037     PRPC_MESSAGE pRpcMessage,
14038     DWORD* pdwStubPhase);
14039 
14040 #endif  /* __ISpeechObjectTokenCategory_INTERFACE_DEFINED__ */
14041 
14042 typedef enum SpeechAudioFormatType {
14043     SAFTDefault = -1,
14044     SAFTNoAssignedFormat = 0,
14045     SAFTText = 1,
14046     SAFTNonStandardFormat = 2,
14047     SAFTExtendedAudioFormat = 3,
14048     SAFT8kHz8BitMono = 4,
14049     SAFT8kHz8BitStereo = 5,
14050     SAFT8kHz16BitMono = 6,
14051     SAFT8kHz16BitStereo = 7,
14052     SAFT11kHz8BitMono = 8,
14053     SAFT11kHz8BitStereo = 9,
14054     SAFT11kHz16BitMono = 10,
14055     SAFT11kHz16BitStereo = 11,
14056     SAFT12kHz8BitMono = 12,
14057     SAFT12kHz8BitStereo = 13,
14058     SAFT12kHz16BitMono = 14,
14059     SAFT12kHz16BitStereo = 15,
14060     SAFT16kHz8BitMono = 16,
14061     SAFT16kHz8BitStereo = 17,
14062     SAFT16kHz16BitMono = 18,
14063     SAFT16kHz16BitStereo = 19,
14064     SAFT22kHz8BitMono = 20,
14065     SAFT22kHz8BitStereo = 21,
14066     SAFT22kHz16BitMono = 22,
14067     SAFT22kHz16BitStereo = 23,
14068     SAFT24kHz8BitMono = 24,
14069     SAFT24kHz8BitStereo = 25,
14070     SAFT24kHz16BitMono = 26,
14071     SAFT24kHz16BitStereo = 27,
14072     SAFT32kHz8BitMono = 28,
14073     SAFT32kHz8BitStereo = 29,
14074     SAFT32kHz16BitMono = 30,
14075     SAFT32kHz16BitStereo = 31,
14076     SAFT44kHz8BitMono = 32,
14077     SAFT44kHz8BitStereo = 33,
14078     SAFT44kHz16BitMono = 34,
14079     SAFT44kHz16BitStereo = 35,
14080     SAFT48kHz8BitMono = 36,
14081     SAFT48kHz8BitStereo = 37,
14082     SAFT48kHz16BitMono = 38,
14083     SAFT48kHz16BitStereo = 39,
14084     SAFTTrueSpeech_8kHz1BitMono = 40,
14085     SAFTCCITT_ALaw_8kHzMono = 41,
14086     SAFTCCITT_ALaw_8kHzStereo = 42,
14087     SAFTCCITT_ALaw_11kHzMono = 43,
14088     SAFTCCITT_ALaw_11kHzStereo = 44,
14089     SAFTCCITT_ALaw_22kHzMono = 45,
14090     SAFTCCITT_ALaw_22kHzStereo = 46,
14091     SAFTCCITT_ALaw_44kHzMono = 47,
14092     SAFTCCITT_ALaw_44kHzStereo = 48,
14093     SAFTCCITT_uLaw_8kHzMono = 49,
14094     SAFTCCITT_uLaw_8kHzStereo = 50,
14095     SAFTCCITT_uLaw_11kHzMono = 51,
14096     SAFTCCITT_uLaw_11kHzStereo = 52,
14097     SAFTCCITT_uLaw_22kHzMono = 53,
14098     SAFTCCITT_uLaw_22kHzStereo = 54,
14099     SAFTCCITT_uLaw_44kHzMono = 55,
14100     SAFTCCITT_uLaw_44kHzStereo = 56,
14101     SAFTADPCM_8kHzMono = 57,
14102     SAFTADPCM_8kHzStereo = 58,
14103     SAFTADPCM_11kHzMono = 59,
14104     SAFTADPCM_11kHzStereo = 60,
14105     SAFTADPCM_22kHzMono = 61,
14106     SAFTADPCM_22kHzStereo = 62,
14107     SAFTADPCM_44kHzMono = 63,
14108     SAFTADPCM_44kHzStereo = 64,
14109     SAFTGSM610_8kHzMono = 65,
14110     SAFTGSM610_11kHzMono = 66,
14111     SAFTGSM610_22kHzMono = 67,
14112     SAFTGSM610_44kHzMono = 68
14113 } SpeechAudioFormatType;
14114 typedef enum DISPID_SpeechAudioFormat {
14115     DISPID_SAFType = 1,
14116     DISPID_SAFGuid = 2,
14117     DISPID_SAFGetWaveFormatEx = 3,
14118     DISPID_SAFSetWaveFormatEx = 4
14119 } DISPID_SpeechAudioFormat;
14120 typedef enum DISPID_SpeechBaseStream {
14121     DISPID_SBSFormat = 1,
14122     DISPID_SBSRead = 2,
14123     DISPID_SBSWrite = 3,
14124     DISPID_SBSSeek = 4
14125 } DISPID_SpeechBaseStream;
14126 typedef enum SpeechStreamSeekPositionType {
14127     SSSPTRelativeToStart = STREAM_SEEK_SET,
14128     SSSPTRelativeToCurrentPosition = STREAM_SEEK_CUR,
14129     SSSPTRelativeToEnd = STREAM_SEEK_END
14130 } SpeechStreamSeekPositionType;
14131 typedef enum DISPID_SpeechAudio {
14132     DISPID_SAStatus = 200,
14133     DISPID_SABufferInfo = 201,
14134     DISPID_SADefaultFormat = 202,
14135     DISPID_SAVolume = 203,
14136     DISPID_SABufferNotifySize = 204,
14137     DISPID_SAEventHandle = 205,
14138     DISPID_SASetState = 206
14139 } DISPID_SpeechAudio;
14140 typedef enum SpeechAudioState {
14141     SASClosed = SPAS_CLOSED,
14142     SASStop = SPAS_STOP,
14143     SASPause = SPAS_PAUSE,
14144     SASRun = SPAS_RUN
14145 } SpeechAudioState;
14146 typedef enum DISPID_SpeechMMSysAudio {
14147     DISPID_SMSADeviceId = 300,
14148     DISPID_SMSALineId = 301,
14149     DISPID_SMSAMMHandle = 302
14150 } DISPID_SpeechMMSysAudio;
14151 typedef enum DISPID_SpeechFileStream {
14152     DISPID_SFSOpen = 100,
14153     DISPID_SFSClose = 101
14154 } DISPID_SpeechFileStream;
14155 typedef enum SpeechStreamFileMode {
14156     SSFMOpenForRead = SPFM_OPEN_READONLY,
14157     SSFMOpenReadWrite = SPFM_OPEN_READWRITE,
14158     SSFMCreate = SPFM_CREATE,
14159     SSFMCreateForWrite = SPFM_CREATE_ALWAYS
14160 } SpeechStreamFileMode;
14161 typedef enum DISPID_SpeechCustomStream {
14162     DISPID_SCSBaseStream = 100
14163 } DISPID_SpeechCustomStream;
14164 typedef enum DISPID_SpeechMemoryStream {
14165     DISPID_SMSSetData = 100,
14166     DISPID_SMSGetData = 101
14167 } DISPID_SpeechMemoryStream;
14168 typedef enum DISPID_SpeechAudioStatus {
14169     DISPID_SASFreeBufferSpace = 1,
14170     DISPID_SASNonBlockingIO = 2,
14171     DISPID_SASState = 3,
14172     DISPID_SASCurrentSeekPosition = 4,
14173     DISPID_SASCurrentDevicePosition = 5
14174 } DISPID_SpeechAudioStatus;
14175 typedef enum DISPID_SpeechAudioBufferInfo {
14176     DISPID_SABIMinNotification = 1,
14177     DISPID_SABIBufferSize = 2,
14178     DISPID_SABIEventBias = 3
14179 } DISPID_SpeechAudioBufferInfo;
14180 typedef enum DISPID_SpeechWaveFormatEx {
14181     DISPID_SWFEFormatTag = 1,
14182     DISPID_SWFEChannels = 2,
14183     DISPID_SWFESamplesPerSec = 3,
14184     DISPID_SWFEAvgBytesPerSec = 4,
14185     DISPID_SWFEBlockAlign = 5,
14186     DISPID_SWFEBitsPerSample = 6,
14187     DISPID_SWFEExtraData = 7
14188 } DISPID_SpeechWaveFormatEx;
14189 typedef enum DISPID_SpeechVoice {
14190     DISPID_SVStatus = 1,
14191     DISPID_SVVoice = 2,
14192     DISPID_SVAudioOutput = 3,
14193     DISPID_SVAudioOutputStream = 4,
14194     DISPID_SVRate = 5,
14195     DISPID_SVVolume = 6,
14196     DISPID_SVAllowAudioOuputFormatChangesOnNextSet = 7,
14197     DISPID_SVEventInterests = 8,
14198     DISPID_SVPriority = 9,
14199     DISPID_SVAlertBoundary = 10,
14200     DISPID_SVSyncronousSpeakTimeout = 11,
14201     DISPID_SVSpeak = 12,
14202     DISPID_SVSpeakStream = 13,
14203     DISPID_SVPause = 14,
14204     DISPID_SVResume = 15,
14205     DISPID_SVSkip = 16,
14206     DISPID_SVGetVoices = 17,
14207     DISPID_SVGetAudioOutputs = 18,
14208     DISPID_SVWaitUntilDone = 19,
14209     DISPID_SVSpeakCompleteEvent = 20,
14210     DISPID_SVIsUISupported = 21,
14211     DISPID_SVDisplayUI = 22
14212 } DISPID_SpeechVoice;
14213 typedef enum SpeechVoicePriority {
14214     SVPNormal = SPVPRI_NORMAL,
14215     SVPAlert = SPVPRI_ALERT,
14216     SVPOver = SPVPRI_OVER
14217 } SpeechVoicePriority;
14218 typedef enum SpeechVoiceSpeakFlags {
14219     SVSFDefault = SPF_DEFAULT,
14220     SVSFlagsAsync = SPF_ASYNC,
14221     SVSFPurgeBeforeSpeak = SPF_PURGEBEFORESPEAK,
14222     SVSFIsFilename = SPF_IS_FILENAME,
14223     SVSFIsXML = SPF_IS_XML,
14224     SVSFIsNotXML = SPF_IS_NOT_XML,
14225     SVSFPersistXML = SPF_PERSIST_XML,
14226     SVSFNLPSpeakPunc = SPF_NLP_SPEAK_PUNC,
14227     SVSFParseSapi = SPF_PARSE_SAPI,
14228     SVSFParseSsml = SPF_PARSE_SSML,
14229     SVSFParseAutodetect = SPF_PARSE_AUTODETECT,
14230     SVSFNLPMask = SPF_NLP_MASK,
14231     SVSFParseMask = SPF_PARSE_MASK,
14232     SVSFVoiceMask = SPF_VOICE_MASK,
14233     SVSFUnusedFlags = SPF_UNUSED_FLAGS
14234 } SpeechVoiceSpeakFlags;
14235 typedef enum SpeechVoiceEvents {
14236     SVEStartInputStream = 0x2,
14237     SVEEndInputStream = 0x4,
14238     SVEVoiceChange = 0x8,
14239     SVEBookmark = 0x10,
14240     SVEWordBoundary = 0x20,
14241     SVEPhoneme = 0x40,
14242     SVESentenceBoundary = 0x80,
14243     SVEViseme = 0x100,
14244     SVEAudioLevel = 0x200,
14245     SVEPrivate = 0x8000,
14246     SVEAllEvents = 0x83fe
14247 } SpeechVoiceEvents;
14248 typedef enum DISPID_SpeechVoiceStatus {
14249     DISPID_SVSCurrentStreamNumber = 1,
14250     DISPID_SVSLastStreamNumberQueued = 2,
14251     DISPID_SVSLastResult = 3,
14252     DISPID_SVSRunningState = 4,
14253     DISPID_SVSInputWordPosition = 5,
14254     DISPID_SVSInputWordLength = 6,
14255     DISPID_SVSInputSentencePosition = 7,
14256     DISPID_SVSInputSentenceLength = 8,
14257     DISPID_SVSLastBookmark = 9,
14258     DISPID_SVSLastBookmarkId = 10,
14259     DISPID_SVSPhonemeId = 11,
14260     DISPID_SVSVisemeId = 12
14261 } DISPID_SpeechVoiceStatus;
14262 typedef enum SpeechRunState {
14263     SRSEDone = SPRS_DONE,
14264     SRSEIsSpeaking = SPRS_IS_SPEAKING
14265 } SpeechRunState;
14266 /*****************************************************************************
14267  * ISpeechAudioFormat interface
14268  */
14269 #ifndef __ISpeechAudioFormat_INTERFACE_DEFINED__
14270 #define __ISpeechAudioFormat_INTERFACE_DEFINED__
14271 
14272 DEFINE_GUID(IID_ISpeechAudioFormat, 0xe6e9c590, 0x3e18, 0x40e3, 0x82,0x99, 0x06,0x1f,0x98,0xbd,0xe7,0xc7);
14273 #if defined(__cplusplus) && !defined(CINTERFACE)
14274 MIDL_INTERFACE("e6e9c590-3e18-40e3-8299-061f98bde7c7")
14275 ISpeechAudioFormat : public IDispatch
14276 {
14277     virtual HRESULT STDMETHODCALLTYPE get_Type(
14278         SpeechAudioFormatType *AudioFormat) = 0;
14279 
14280     virtual HRESULT STDMETHODCALLTYPE put_Type(
14281         SpeechAudioFormatType AudioFormat) = 0;
14282 
14283     virtual HRESULT STDMETHODCALLTYPE get_Guid(
14284         BSTR *Guid) = 0;
14285 
14286     virtual HRESULT STDMETHODCALLTYPE put_Guid(
14287         BSTR Guid) = 0;
14288 
14289     virtual HRESULT STDMETHODCALLTYPE GetWaveFormatEx(
14290         ISpeechWaveFormatEx **SpeechWaveFormatEx) = 0;
14291 
14292     virtual HRESULT STDMETHODCALLTYPE SetWaveFormatEx(
14293         ISpeechWaveFormatEx *SpeechWaveFormatEx) = 0;
14294 
14295 };
14296 #ifdef __CRT_UUID_DECL
14297 __CRT_UUID_DECL(ISpeechAudioFormat, 0xe6e9c590, 0x3e18, 0x40e3, 0x82,0x99, 0x06,0x1f,0x98,0xbd,0xe7,0xc7)
14298 #endif
14299 #else
14300 typedef struct ISpeechAudioFormatVtbl {
14301     BEGIN_INTERFACE
14302 
14303     /*** IUnknown methods ***/
14304     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14305         ISpeechAudioFormat* This,
14306         REFIID riid,
14307         void **ppvObject);
14308 
14309     ULONG (STDMETHODCALLTYPE *AddRef)(
14310         ISpeechAudioFormat* This);
14311 
14312     ULONG (STDMETHODCALLTYPE *Release)(
14313         ISpeechAudioFormat* This);
14314 
14315     /*** IDispatch methods ***/
14316     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
14317         ISpeechAudioFormat* This,
14318         UINT *pctinfo);
14319 
14320     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
14321         ISpeechAudioFormat* This,
14322         UINT iTInfo,
14323         LCID lcid,
14324         ITypeInfo **ppTInfo);
14325 
14326     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
14327         ISpeechAudioFormat* This,
14328         REFIID riid,
14329         LPOLESTR *rgszNames,
14330         UINT cNames,
14331         LCID lcid,
14332         DISPID *rgDispId);
14333 
14334     HRESULT (STDMETHODCALLTYPE *Invoke)(
14335         ISpeechAudioFormat* This,
14336         DISPID dispIdMember,
14337         REFIID riid,
14338         LCID lcid,
14339         WORD wFlags,
14340         DISPPARAMS *pDispParams,
14341         VARIANT *pVarResult,
14342         EXCEPINFO *pExcepInfo,
14343         UINT *puArgErr);
14344 
14345     /*** ISpeechAudioFormat methods ***/
14346     HRESULT (STDMETHODCALLTYPE *get_Type)(
14347         ISpeechAudioFormat* This,
14348         SpeechAudioFormatType *AudioFormat);
14349 
14350     HRESULT (STDMETHODCALLTYPE *put_Type)(
14351         ISpeechAudioFormat* This,
14352         SpeechAudioFormatType AudioFormat);
14353 
14354     HRESULT (STDMETHODCALLTYPE *get_Guid)(
14355         ISpeechAudioFormat* This,
14356         BSTR *Guid);
14357 
14358     HRESULT (STDMETHODCALLTYPE *put_Guid)(
14359         ISpeechAudioFormat* This,
14360         BSTR Guid);
14361 
14362     HRESULT (STDMETHODCALLTYPE *GetWaveFormatEx)(
14363         ISpeechAudioFormat* This,
14364         ISpeechWaveFormatEx **SpeechWaveFormatEx);
14365 
14366     HRESULT (STDMETHODCALLTYPE *SetWaveFormatEx)(
14367         ISpeechAudioFormat* This,
14368         ISpeechWaveFormatEx *SpeechWaveFormatEx);
14369 
14370     END_INTERFACE
14371 } ISpeechAudioFormatVtbl;
14372 interface ISpeechAudioFormat {
14373     CONST_VTBL ISpeechAudioFormatVtbl* lpVtbl;
14374 };
14375 
14376 #ifdef COBJMACROS
14377 #ifndef WIDL_C_INLINE_WRAPPERS
14378 /*** IUnknown methods ***/
14379 #define ISpeechAudioFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14380 #define ISpeechAudioFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
14381 #define ISpeechAudioFormat_Release(This) (This)->lpVtbl->Release(This)
14382 /*** IDispatch methods ***/
14383 #define ISpeechAudioFormat_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14384 #define ISpeechAudioFormat_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14385 #define ISpeechAudioFormat_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14386 #define ISpeechAudioFormat_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14387 /*** ISpeechAudioFormat methods ***/
14388 #define ISpeechAudioFormat_get_Type(This,AudioFormat) (This)->lpVtbl->get_Type(This,AudioFormat)
14389 #define ISpeechAudioFormat_put_Type(This,AudioFormat) (This)->lpVtbl->put_Type(This,AudioFormat)
14390 #define ISpeechAudioFormat_get_Guid(This,Guid) (This)->lpVtbl->get_Guid(This,Guid)
14391 #define ISpeechAudioFormat_put_Guid(This,Guid) (This)->lpVtbl->put_Guid(This,Guid)
14392 #define ISpeechAudioFormat_GetWaveFormatEx(This,SpeechWaveFormatEx) (This)->lpVtbl->GetWaveFormatEx(This,SpeechWaveFormatEx)
14393 #define ISpeechAudioFormat_SetWaveFormatEx(This,SpeechWaveFormatEx) (This)->lpVtbl->SetWaveFormatEx(This,SpeechWaveFormatEx)
14394 #else
14395 /*** IUnknown methods ***/
14396 static FORCEINLINE HRESULT ISpeechAudioFormat_QueryInterface(ISpeechAudioFormat* This,REFIID riid,void **ppvObject) {
14397     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14398 }
14399 static FORCEINLINE ULONG ISpeechAudioFormat_AddRef(ISpeechAudioFormat* This) {
14400     return This->lpVtbl->AddRef(This);
14401 }
14402 static FORCEINLINE ULONG ISpeechAudioFormat_Release(ISpeechAudioFormat* This) {
14403     return This->lpVtbl->Release(This);
14404 }
14405 /*** IDispatch methods ***/
14406 static FORCEINLINE HRESULT ISpeechAudioFormat_GetTypeInfoCount(ISpeechAudioFormat* This,UINT *pctinfo) {
14407     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14408 }
14409 static FORCEINLINE HRESULT ISpeechAudioFormat_GetTypeInfo(ISpeechAudioFormat* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14410     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14411 }
14412 static FORCEINLINE HRESULT ISpeechAudioFormat_GetIDsOfNames(ISpeechAudioFormat* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14413     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14414 }
14415 static FORCEINLINE HRESULT ISpeechAudioFormat_Invoke(ISpeechAudioFormat* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14416     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14417 }
14418 /*** ISpeechAudioFormat methods ***/
14419 static FORCEINLINE HRESULT ISpeechAudioFormat_get_Type(ISpeechAudioFormat* This,SpeechAudioFormatType *AudioFormat) {
14420     return This->lpVtbl->get_Type(This,AudioFormat);
14421 }
14422 static FORCEINLINE HRESULT ISpeechAudioFormat_put_Type(ISpeechAudioFormat* This,SpeechAudioFormatType AudioFormat) {
14423     return This->lpVtbl->put_Type(This,AudioFormat);
14424 }
14425 static FORCEINLINE HRESULT ISpeechAudioFormat_get_Guid(ISpeechAudioFormat* This,BSTR *Guid) {
14426     return This->lpVtbl->get_Guid(This,Guid);
14427 }
14428 static FORCEINLINE HRESULT ISpeechAudioFormat_put_Guid(ISpeechAudioFormat* This,BSTR Guid) {
14429     return This->lpVtbl->put_Guid(This,Guid);
14430 }
14431 static FORCEINLINE HRESULT ISpeechAudioFormat_GetWaveFormatEx(ISpeechAudioFormat* This,ISpeechWaveFormatEx **SpeechWaveFormatEx) {
14432     return This->lpVtbl->GetWaveFormatEx(This,SpeechWaveFormatEx);
14433 }
14434 static FORCEINLINE HRESULT ISpeechAudioFormat_SetWaveFormatEx(ISpeechAudioFormat* This,ISpeechWaveFormatEx *SpeechWaveFormatEx) {
14435     return This->lpVtbl->SetWaveFormatEx(This,SpeechWaveFormatEx);
14436 }
14437 #endif
14438 #endif
14439 
14440 #endif
14441 
14442 HRESULT STDMETHODCALLTYPE ISpeechAudioFormat_get_Type_Proxy(
14443     ISpeechAudioFormat* This,
14444     SpeechAudioFormatType *AudioFormat);
14445 void __RPC_STUB ISpeechAudioFormat_get_Type_Stub(
14446     IRpcStubBuffer* This,
14447     IRpcChannelBuffer* pRpcChannelBuffer,
14448     PRPC_MESSAGE pRpcMessage,
14449     DWORD* pdwStubPhase);
14450 HRESULT STDMETHODCALLTYPE ISpeechAudioFormat_put_Type_Proxy(
14451     ISpeechAudioFormat* This,
14452     SpeechAudioFormatType AudioFormat);
14453 void __RPC_STUB ISpeechAudioFormat_put_Type_Stub(
14454     IRpcStubBuffer* This,
14455     IRpcChannelBuffer* pRpcChannelBuffer,
14456     PRPC_MESSAGE pRpcMessage,
14457     DWORD* pdwStubPhase);
14458 HRESULT STDMETHODCALLTYPE ISpeechAudioFormat_get_Guid_Proxy(
14459     ISpeechAudioFormat* This,
14460     BSTR *Guid);
14461 void __RPC_STUB ISpeechAudioFormat_get_Guid_Stub(
14462     IRpcStubBuffer* This,
14463     IRpcChannelBuffer* pRpcChannelBuffer,
14464     PRPC_MESSAGE pRpcMessage,
14465     DWORD* pdwStubPhase);
14466 HRESULT STDMETHODCALLTYPE ISpeechAudioFormat_put_Guid_Proxy(
14467     ISpeechAudioFormat* This,
14468     BSTR Guid);
14469 void __RPC_STUB ISpeechAudioFormat_put_Guid_Stub(
14470     IRpcStubBuffer* This,
14471     IRpcChannelBuffer* pRpcChannelBuffer,
14472     PRPC_MESSAGE pRpcMessage,
14473     DWORD* pdwStubPhase);
14474 HRESULT STDMETHODCALLTYPE ISpeechAudioFormat_GetWaveFormatEx_Proxy(
14475     ISpeechAudioFormat* This,
14476     ISpeechWaveFormatEx **SpeechWaveFormatEx);
14477 void __RPC_STUB ISpeechAudioFormat_GetWaveFormatEx_Stub(
14478     IRpcStubBuffer* This,
14479     IRpcChannelBuffer* pRpcChannelBuffer,
14480     PRPC_MESSAGE pRpcMessage,
14481     DWORD* pdwStubPhase);
14482 HRESULT STDMETHODCALLTYPE ISpeechAudioFormat_SetWaveFormatEx_Proxy(
14483     ISpeechAudioFormat* This,
14484     ISpeechWaveFormatEx *SpeechWaveFormatEx);
14485 void __RPC_STUB ISpeechAudioFormat_SetWaveFormatEx_Stub(
14486     IRpcStubBuffer* This,
14487     IRpcChannelBuffer* pRpcChannelBuffer,
14488     PRPC_MESSAGE pRpcMessage,
14489     DWORD* pdwStubPhase);
14490 
14491 #endif  /* __ISpeechAudioFormat_INTERFACE_DEFINED__ */
14492 
14493 /*****************************************************************************
14494  * ISpeechBaseStream interface
14495  */
14496 #ifndef __ISpeechBaseStream_INTERFACE_DEFINED__
14497 #define __ISpeechBaseStream_INTERFACE_DEFINED__
14498 
14499 DEFINE_GUID(IID_ISpeechBaseStream, 0x6450336f, 0x7d49, 0x4ced, 0x80,0x97, 0x49,0xd6,0xde,0xe3,0x72,0x94);
14500 #if defined(__cplusplus) && !defined(CINTERFACE)
14501 MIDL_INTERFACE("6450336f-7d49-4ced-8097-49d6dee37294")
14502 ISpeechBaseStream : public IDispatch
14503 {
14504     virtual HRESULT STDMETHODCALLTYPE get_Format(
14505         ISpeechAudioFormat **AudioFormat) = 0;
14506 
14507     virtual HRESULT STDMETHODCALLTYPE putref_Format(
14508         ISpeechAudioFormat *AudioFormat) = 0;
14509 
14510     virtual HRESULT STDMETHODCALLTYPE Read(
14511         VARIANT *Buffer,
14512         LONG NumberOfBytes,
14513         LONG *BytesRead) = 0;
14514 
14515     virtual HRESULT STDMETHODCALLTYPE Write(
14516         VARIANT Buffer,
14517         LONG *BytesWritten) = 0;
14518 
14519     virtual HRESULT STDMETHODCALLTYPE Seek(
14520         VARIANT Position,
14521         SpeechStreamSeekPositionType Origin,
14522         VARIANT *NewPosition) = 0;
14523 
14524 };
14525 #ifdef __CRT_UUID_DECL
14526 __CRT_UUID_DECL(ISpeechBaseStream, 0x6450336f, 0x7d49, 0x4ced, 0x80,0x97, 0x49,0xd6,0xde,0xe3,0x72,0x94)
14527 #endif
14528 #else
14529 typedef struct ISpeechBaseStreamVtbl {
14530     BEGIN_INTERFACE
14531 
14532     /*** IUnknown methods ***/
14533     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14534         ISpeechBaseStream* This,
14535         REFIID riid,
14536         void **ppvObject);
14537 
14538     ULONG (STDMETHODCALLTYPE *AddRef)(
14539         ISpeechBaseStream* This);
14540 
14541     ULONG (STDMETHODCALLTYPE *Release)(
14542         ISpeechBaseStream* This);
14543 
14544     /*** IDispatch methods ***/
14545     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
14546         ISpeechBaseStream* This,
14547         UINT *pctinfo);
14548 
14549     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
14550         ISpeechBaseStream* This,
14551         UINT iTInfo,
14552         LCID lcid,
14553         ITypeInfo **ppTInfo);
14554 
14555     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
14556         ISpeechBaseStream* This,
14557         REFIID riid,
14558         LPOLESTR *rgszNames,
14559         UINT cNames,
14560         LCID lcid,
14561         DISPID *rgDispId);
14562 
14563     HRESULT (STDMETHODCALLTYPE *Invoke)(
14564         ISpeechBaseStream* This,
14565         DISPID dispIdMember,
14566         REFIID riid,
14567         LCID lcid,
14568         WORD wFlags,
14569         DISPPARAMS *pDispParams,
14570         VARIANT *pVarResult,
14571         EXCEPINFO *pExcepInfo,
14572         UINT *puArgErr);
14573 
14574     /*** ISpeechBaseStream methods ***/
14575     HRESULT (STDMETHODCALLTYPE *get_Format)(
14576         ISpeechBaseStream* This,
14577         ISpeechAudioFormat **AudioFormat);
14578 
14579     HRESULT (STDMETHODCALLTYPE *putref_Format)(
14580         ISpeechBaseStream* This,
14581         ISpeechAudioFormat *AudioFormat);
14582 
14583     HRESULT (STDMETHODCALLTYPE *Read)(
14584         ISpeechBaseStream* This,
14585         VARIANT *Buffer,
14586         LONG NumberOfBytes,
14587         LONG *BytesRead);
14588 
14589     HRESULT (STDMETHODCALLTYPE *Write)(
14590         ISpeechBaseStream* This,
14591         VARIANT Buffer,
14592         LONG *BytesWritten);
14593 
14594     HRESULT (STDMETHODCALLTYPE *Seek)(
14595         ISpeechBaseStream* This,
14596         VARIANT Position,
14597         SpeechStreamSeekPositionType Origin,
14598         VARIANT *NewPosition);
14599 
14600     END_INTERFACE
14601 } ISpeechBaseStreamVtbl;
14602 interface ISpeechBaseStream {
14603     CONST_VTBL ISpeechBaseStreamVtbl* lpVtbl;
14604 };
14605 
14606 #ifdef COBJMACROS
14607 #ifndef WIDL_C_INLINE_WRAPPERS
14608 /*** IUnknown methods ***/
14609 #define ISpeechBaseStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14610 #define ISpeechBaseStream_AddRef(This) (This)->lpVtbl->AddRef(This)
14611 #define ISpeechBaseStream_Release(This) (This)->lpVtbl->Release(This)
14612 /*** IDispatch methods ***/
14613 #define ISpeechBaseStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14614 #define ISpeechBaseStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14615 #define ISpeechBaseStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14616 #define ISpeechBaseStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14617 /*** ISpeechBaseStream methods ***/
14618 #define ISpeechBaseStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
14619 #define ISpeechBaseStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
14620 #define ISpeechBaseStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
14621 #define ISpeechBaseStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
14622 #define ISpeechBaseStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
14623 #else
14624 /*** IUnknown methods ***/
14625 static FORCEINLINE HRESULT ISpeechBaseStream_QueryInterface(ISpeechBaseStream* This,REFIID riid,void **ppvObject) {
14626     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14627 }
14628 static FORCEINLINE ULONG ISpeechBaseStream_AddRef(ISpeechBaseStream* This) {
14629     return This->lpVtbl->AddRef(This);
14630 }
14631 static FORCEINLINE ULONG ISpeechBaseStream_Release(ISpeechBaseStream* This) {
14632     return This->lpVtbl->Release(This);
14633 }
14634 /*** IDispatch methods ***/
14635 static FORCEINLINE HRESULT ISpeechBaseStream_GetTypeInfoCount(ISpeechBaseStream* This,UINT *pctinfo) {
14636     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14637 }
14638 static FORCEINLINE HRESULT ISpeechBaseStream_GetTypeInfo(ISpeechBaseStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14639     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14640 }
14641 static FORCEINLINE HRESULT ISpeechBaseStream_GetIDsOfNames(ISpeechBaseStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14642     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14643 }
14644 static FORCEINLINE HRESULT ISpeechBaseStream_Invoke(ISpeechBaseStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14645     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14646 }
14647 /*** ISpeechBaseStream methods ***/
14648 static FORCEINLINE HRESULT ISpeechBaseStream_get_Format(ISpeechBaseStream* This,ISpeechAudioFormat **AudioFormat) {
14649     return This->lpVtbl->get_Format(This,AudioFormat);
14650 }
14651 static FORCEINLINE HRESULT ISpeechBaseStream_putref_Format(ISpeechBaseStream* This,ISpeechAudioFormat *AudioFormat) {
14652     return This->lpVtbl->putref_Format(This,AudioFormat);
14653 }
14654 static FORCEINLINE HRESULT ISpeechBaseStream_Read(ISpeechBaseStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
14655     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
14656 }
14657 static FORCEINLINE HRESULT ISpeechBaseStream_Write(ISpeechBaseStream* This,VARIANT Buffer,LONG *BytesWritten) {
14658     return This->lpVtbl->Write(This,Buffer,BytesWritten);
14659 }
14660 static FORCEINLINE HRESULT ISpeechBaseStream_Seek(ISpeechBaseStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
14661     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
14662 }
14663 #endif
14664 #endif
14665 
14666 #endif
14667 
14668 HRESULT STDMETHODCALLTYPE ISpeechBaseStream_get_Format_Proxy(
14669     ISpeechBaseStream* This,
14670     ISpeechAudioFormat **AudioFormat);
14671 void __RPC_STUB ISpeechBaseStream_get_Format_Stub(
14672     IRpcStubBuffer* This,
14673     IRpcChannelBuffer* pRpcChannelBuffer,
14674     PRPC_MESSAGE pRpcMessage,
14675     DWORD* pdwStubPhase);
14676 HRESULT STDMETHODCALLTYPE ISpeechBaseStream_putref_Format_Proxy(
14677     ISpeechBaseStream* This,
14678     ISpeechAudioFormat *AudioFormat);
14679 void __RPC_STUB ISpeechBaseStream_putref_Format_Stub(
14680     IRpcStubBuffer* This,
14681     IRpcChannelBuffer* pRpcChannelBuffer,
14682     PRPC_MESSAGE pRpcMessage,
14683     DWORD* pdwStubPhase);
14684 HRESULT STDMETHODCALLTYPE ISpeechBaseStream_Read_Proxy(
14685     ISpeechBaseStream* This,
14686     VARIANT *Buffer,
14687     LONG NumberOfBytes,
14688     LONG *BytesRead);
14689 void __RPC_STUB ISpeechBaseStream_Read_Stub(
14690     IRpcStubBuffer* This,
14691     IRpcChannelBuffer* pRpcChannelBuffer,
14692     PRPC_MESSAGE pRpcMessage,
14693     DWORD* pdwStubPhase);
14694 HRESULT STDMETHODCALLTYPE ISpeechBaseStream_Write_Proxy(
14695     ISpeechBaseStream* This,
14696     VARIANT Buffer,
14697     LONG *BytesWritten);
14698 void __RPC_STUB ISpeechBaseStream_Write_Stub(
14699     IRpcStubBuffer* This,
14700     IRpcChannelBuffer* pRpcChannelBuffer,
14701     PRPC_MESSAGE pRpcMessage,
14702     DWORD* pdwStubPhase);
14703 HRESULT STDMETHODCALLTYPE ISpeechBaseStream_Seek_Proxy(
14704     ISpeechBaseStream* This,
14705     VARIANT Position,
14706     SpeechStreamSeekPositionType Origin,
14707     VARIANT *NewPosition);
14708 void __RPC_STUB ISpeechBaseStream_Seek_Stub(
14709     IRpcStubBuffer* This,
14710     IRpcChannelBuffer* pRpcChannelBuffer,
14711     PRPC_MESSAGE pRpcMessage,
14712     DWORD* pdwStubPhase);
14713 
14714 #endif  /* __ISpeechBaseStream_INTERFACE_DEFINED__ */
14715 
14716 /*****************************************************************************
14717  * ISpeechAudio interface
14718  */
14719 #ifndef __ISpeechAudio_INTERFACE_DEFINED__
14720 #define __ISpeechAudio_INTERFACE_DEFINED__
14721 
14722 DEFINE_GUID(IID_ISpeechAudio, 0xcff8e175, 0x019e, 0x11d3, 0xa0,0x8e, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5);
14723 #if defined(__cplusplus) && !defined(CINTERFACE)
14724 MIDL_INTERFACE("cff8e175-019e-11d3-a08e-00c04f8ef9b5")
14725 ISpeechAudio : public ISpeechBaseStream
14726 {
14727     virtual HRESULT STDMETHODCALLTYPE get_Status(
14728         ISpeechAudioStatus **Status) = 0;
14729 
14730     virtual HRESULT STDMETHODCALLTYPE get_BufferInfo(
14731         ISpeechAudioBufferInfo **BufferInfo) = 0;
14732 
14733     virtual HRESULT STDMETHODCALLTYPE get_DefaultFormat(
14734         ISpeechAudioFormat **StreamFormat) = 0;
14735 
14736     virtual HRESULT STDMETHODCALLTYPE get_Volume(
14737         LONG *Volume) = 0;
14738 
14739     virtual HRESULT STDMETHODCALLTYPE put_Volume(
14740         LONG Volume) = 0;
14741 
14742     virtual HRESULT STDMETHODCALLTYPE get_BufferNotifySize(
14743         LONG *BufferNotifySize) = 0;
14744 
14745     virtual HRESULT STDMETHODCALLTYPE put_BufferNotifySize(
14746         LONG BufferNotifySize) = 0;
14747 
14748     virtual HRESULT STDMETHODCALLTYPE get_EventHandle(
14749         LONG *EventHandle) = 0;
14750 
14751     virtual HRESULT STDMETHODCALLTYPE SetState(
14752         SpeechAudioState State) = 0;
14753 
14754 };
14755 #ifdef __CRT_UUID_DECL
14756 __CRT_UUID_DECL(ISpeechAudio, 0xcff8e175, 0x019e, 0x11d3, 0xa0,0x8e, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5)
14757 #endif
14758 #else
14759 typedef struct ISpeechAudioVtbl {
14760     BEGIN_INTERFACE
14761 
14762     /*** IUnknown methods ***/
14763     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14764         ISpeechAudio* This,
14765         REFIID riid,
14766         void **ppvObject);
14767 
14768     ULONG (STDMETHODCALLTYPE *AddRef)(
14769         ISpeechAudio* This);
14770 
14771     ULONG (STDMETHODCALLTYPE *Release)(
14772         ISpeechAudio* This);
14773 
14774     /*** IDispatch methods ***/
14775     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
14776         ISpeechAudio* This,
14777         UINT *pctinfo);
14778 
14779     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
14780         ISpeechAudio* This,
14781         UINT iTInfo,
14782         LCID lcid,
14783         ITypeInfo **ppTInfo);
14784 
14785     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
14786         ISpeechAudio* This,
14787         REFIID riid,
14788         LPOLESTR *rgszNames,
14789         UINT cNames,
14790         LCID lcid,
14791         DISPID *rgDispId);
14792 
14793     HRESULT (STDMETHODCALLTYPE *Invoke)(
14794         ISpeechAudio* This,
14795         DISPID dispIdMember,
14796         REFIID riid,
14797         LCID lcid,
14798         WORD wFlags,
14799         DISPPARAMS *pDispParams,
14800         VARIANT *pVarResult,
14801         EXCEPINFO *pExcepInfo,
14802         UINT *puArgErr);
14803 
14804     /*** ISpeechBaseStream methods ***/
14805     HRESULT (STDMETHODCALLTYPE *get_Format)(
14806         ISpeechAudio* This,
14807         ISpeechAudioFormat **AudioFormat);
14808 
14809     HRESULT (STDMETHODCALLTYPE *putref_Format)(
14810         ISpeechAudio* This,
14811         ISpeechAudioFormat *AudioFormat);
14812 
14813     HRESULT (STDMETHODCALLTYPE *Read)(
14814         ISpeechAudio* This,
14815         VARIANT *Buffer,
14816         LONG NumberOfBytes,
14817         LONG *BytesRead);
14818 
14819     HRESULT (STDMETHODCALLTYPE *Write)(
14820         ISpeechAudio* This,
14821         VARIANT Buffer,
14822         LONG *BytesWritten);
14823 
14824     HRESULT (STDMETHODCALLTYPE *Seek)(
14825         ISpeechAudio* This,
14826         VARIANT Position,
14827         SpeechStreamSeekPositionType Origin,
14828         VARIANT *NewPosition);
14829 
14830     /*** ISpeechAudio methods ***/
14831     HRESULT (STDMETHODCALLTYPE *get_Status)(
14832         ISpeechAudio* This,
14833         ISpeechAudioStatus **Status);
14834 
14835     HRESULT (STDMETHODCALLTYPE *get_BufferInfo)(
14836         ISpeechAudio* This,
14837         ISpeechAudioBufferInfo **BufferInfo);
14838 
14839     HRESULT (STDMETHODCALLTYPE *get_DefaultFormat)(
14840         ISpeechAudio* This,
14841         ISpeechAudioFormat **StreamFormat);
14842 
14843     HRESULT (STDMETHODCALLTYPE *get_Volume)(
14844         ISpeechAudio* This,
14845         LONG *Volume);
14846 
14847     HRESULT (STDMETHODCALLTYPE *put_Volume)(
14848         ISpeechAudio* This,
14849         LONG Volume);
14850 
14851     HRESULT (STDMETHODCALLTYPE *get_BufferNotifySize)(
14852         ISpeechAudio* This,
14853         LONG *BufferNotifySize);
14854 
14855     HRESULT (STDMETHODCALLTYPE *put_BufferNotifySize)(
14856         ISpeechAudio* This,
14857         LONG BufferNotifySize);
14858 
14859     HRESULT (STDMETHODCALLTYPE *get_EventHandle)(
14860         ISpeechAudio* This,
14861         LONG *EventHandle);
14862 
14863     HRESULT (STDMETHODCALLTYPE *SetState)(
14864         ISpeechAudio* This,
14865         SpeechAudioState State);
14866 
14867     END_INTERFACE
14868 } ISpeechAudioVtbl;
14869 interface ISpeechAudio {
14870     CONST_VTBL ISpeechAudioVtbl* lpVtbl;
14871 };
14872 
14873 #ifdef COBJMACROS
14874 #ifndef WIDL_C_INLINE_WRAPPERS
14875 /*** IUnknown methods ***/
14876 #define ISpeechAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14877 #define ISpeechAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
14878 #define ISpeechAudio_Release(This) (This)->lpVtbl->Release(This)
14879 /*** IDispatch methods ***/
14880 #define ISpeechAudio_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14881 #define ISpeechAudio_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14882 #define ISpeechAudio_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14883 #define ISpeechAudio_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14884 /*** ISpeechBaseStream methods ***/
14885 #define ISpeechAudio_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
14886 #define ISpeechAudio_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
14887 #define ISpeechAudio_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
14888 #define ISpeechAudio_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
14889 #define ISpeechAudio_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
14890 /*** ISpeechAudio methods ***/
14891 #define ISpeechAudio_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
14892 #define ISpeechAudio_get_BufferInfo(This,BufferInfo) (This)->lpVtbl->get_BufferInfo(This,BufferInfo)
14893 #define ISpeechAudio_get_DefaultFormat(This,StreamFormat) (This)->lpVtbl->get_DefaultFormat(This,StreamFormat)
14894 #define ISpeechAudio_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
14895 #define ISpeechAudio_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
14896 #define ISpeechAudio_get_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->get_BufferNotifySize(This,BufferNotifySize)
14897 #define ISpeechAudio_put_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->put_BufferNotifySize(This,BufferNotifySize)
14898 #define ISpeechAudio_get_EventHandle(This,EventHandle) (This)->lpVtbl->get_EventHandle(This,EventHandle)
14899 #define ISpeechAudio_SetState(This,State) (This)->lpVtbl->SetState(This,State)
14900 #else
14901 /*** IUnknown methods ***/
14902 static FORCEINLINE HRESULT ISpeechAudio_QueryInterface(ISpeechAudio* This,REFIID riid,void **ppvObject) {
14903     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14904 }
14905 static FORCEINLINE ULONG ISpeechAudio_AddRef(ISpeechAudio* This) {
14906     return This->lpVtbl->AddRef(This);
14907 }
14908 static FORCEINLINE ULONG ISpeechAudio_Release(ISpeechAudio* This) {
14909     return This->lpVtbl->Release(This);
14910 }
14911 /*** IDispatch methods ***/
14912 static FORCEINLINE HRESULT ISpeechAudio_GetTypeInfoCount(ISpeechAudio* This,UINT *pctinfo) {
14913     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14914 }
14915 static FORCEINLINE HRESULT ISpeechAudio_GetTypeInfo(ISpeechAudio* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14916     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14917 }
14918 static FORCEINLINE HRESULT ISpeechAudio_GetIDsOfNames(ISpeechAudio* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14919     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14920 }
14921 static FORCEINLINE HRESULT ISpeechAudio_Invoke(ISpeechAudio* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14922     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14923 }
14924 /*** ISpeechBaseStream methods ***/
14925 static FORCEINLINE HRESULT ISpeechAudio_get_Format(ISpeechAudio* This,ISpeechAudioFormat **AudioFormat) {
14926     return This->lpVtbl->get_Format(This,AudioFormat);
14927 }
14928 static FORCEINLINE HRESULT ISpeechAudio_putref_Format(ISpeechAudio* This,ISpeechAudioFormat *AudioFormat) {
14929     return This->lpVtbl->putref_Format(This,AudioFormat);
14930 }
14931 static FORCEINLINE HRESULT ISpeechAudio_Read(ISpeechAudio* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
14932     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
14933 }
14934 static FORCEINLINE HRESULT ISpeechAudio_Write(ISpeechAudio* This,VARIANT Buffer,LONG *BytesWritten) {
14935     return This->lpVtbl->Write(This,Buffer,BytesWritten);
14936 }
14937 static FORCEINLINE HRESULT ISpeechAudio_Seek(ISpeechAudio* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
14938     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
14939 }
14940 /*** ISpeechAudio methods ***/
14941 static FORCEINLINE HRESULT ISpeechAudio_get_Status(ISpeechAudio* This,ISpeechAudioStatus **Status) {
14942     return This->lpVtbl->get_Status(This,Status);
14943 }
14944 static FORCEINLINE HRESULT ISpeechAudio_get_BufferInfo(ISpeechAudio* This,ISpeechAudioBufferInfo **BufferInfo) {
14945     return This->lpVtbl->get_BufferInfo(This,BufferInfo);
14946 }
14947 static FORCEINLINE HRESULT ISpeechAudio_get_DefaultFormat(ISpeechAudio* This,ISpeechAudioFormat **StreamFormat) {
14948     return This->lpVtbl->get_DefaultFormat(This,StreamFormat);
14949 }
14950 static FORCEINLINE HRESULT ISpeechAudio_get_Volume(ISpeechAudio* This,LONG *Volume) {
14951     return This->lpVtbl->get_Volume(This,Volume);
14952 }
14953 static FORCEINLINE HRESULT ISpeechAudio_put_Volume(ISpeechAudio* This,LONG Volume) {
14954     return This->lpVtbl->put_Volume(This,Volume);
14955 }
14956 static FORCEINLINE HRESULT ISpeechAudio_get_BufferNotifySize(ISpeechAudio* This,LONG *BufferNotifySize) {
14957     return This->lpVtbl->get_BufferNotifySize(This,BufferNotifySize);
14958 }
14959 static FORCEINLINE HRESULT ISpeechAudio_put_BufferNotifySize(ISpeechAudio* This,LONG BufferNotifySize) {
14960     return This->lpVtbl->put_BufferNotifySize(This,BufferNotifySize);
14961 }
14962 static FORCEINLINE HRESULT ISpeechAudio_get_EventHandle(ISpeechAudio* This,LONG *EventHandle) {
14963     return This->lpVtbl->get_EventHandle(This,EventHandle);
14964 }
14965 static FORCEINLINE HRESULT ISpeechAudio_SetState(ISpeechAudio* This,SpeechAudioState State) {
14966     return This->lpVtbl->SetState(This,State);
14967 }
14968 #endif
14969 #endif
14970 
14971 #endif
14972 
14973 HRESULT STDMETHODCALLTYPE ISpeechAudio_get_Status_Proxy(
14974     ISpeechAudio* This,
14975     ISpeechAudioStatus **Status);
14976 void __RPC_STUB ISpeechAudio_get_Status_Stub(
14977     IRpcStubBuffer* This,
14978     IRpcChannelBuffer* pRpcChannelBuffer,
14979     PRPC_MESSAGE pRpcMessage,
14980     DWORD* pdwStubPhase);
14981 HRESULT STDMETHODCALLTYPE ISpeechAudio_get_BufferInfo_Proxy(
14982     ISpeechAudio* This,
14983     ISpeechAudioBufferInfo **BufferInfo);
14984 void __RPC_STUB ISpeechAudio_get_BufferInfo_Stub(
14985     IRpcStubBuffer* This,
14986     IRpcChannelBuffer* pRpcChannelBuffer,
14987     PRPC_MESSAGE pRpcMessage,
14988     DWORD* pdwStubPhase);
14989 HRESULT STDMETHODCALLTYPE ISpeechAudio_get_DefaultFormat_Proxy(
14990     ISpeechAudio* This,
14991     ISpeechAudioFormat **StreamFormat);
14992 void __RPC_STUB ISpeechAudio_get_DefaultFormat_Stub(
14993     IRpcStubBuffer* This,
14994     IRpcChannelBuffer* pRpcChannelBuffer,
14995     PRPC_MESSAGE pRpcMessage,
14996     DWORD* pdwStubPhase);
14997 HRESULT STDMETHODCALLTYPE ISpeechAudio_get_Volume_Proxy(
14998     ISpeechAudio* This,
14999     LONG *Volume);
15000 void __RPC_STUB ISpeechAudio_get_Volume_Stub(
15001     IRpcStubBuffer* This,
15002     IRpcChannelBuffer* pRpcChannelBuffer,
15003     PRPC_MESSAGE pRpcMessage,
15004     DWORD* pdwStubPhase);
15005 HRESULT STDMETHODCALLTYPE ISpeechAudio_put_Volume_Proxy(
15006     ISpeechAudio* This,
15007     LONG Volume);
15008 void __RPC_STUB ISpeechAudio_put_Volume_Stub(
15009     IRpcStubBuffer* This,
15010     IRpcChannelBuffer* pRpcChannelBuffer,
15011     PRPC_MESSAGE pRpcMessage,
15012     DWORD* pdwStubPhase);
15013 HRESULT STDMETHODCALLTYPE ISpeechAudio_get_BufferNotifySize_Proxy(
15014     ISpeechAudio* This,
15015     LONG *BufferNotifySize);
15016 void __RPC_STUB ISpeechAudio_get_BufferNotifySize_Stub(
15017     IRpcStubBuffer* This,
15018     IRpcChannelBuffer* pRpcChannelBuffer,
15019     PRPC_MESSAGE pRpcMessage,
15020     DWORD* pdwStubPhase);
15021 HRESULT STDMETHODCALLTYPE ISpeechAudio_put_BufferNotifySize_Proxy(
15022     ISpeechAudio* This,
15023     LONG BufferNotifySize);
15024 void __RPC_STUB ISpeechAudio_put_BufferNotifySize_Stub(
15025     IRpcStubBuffer* This,
15026     IRpcChannelBuffer* pRpcChannelBuffer,
15027     PRPC_MESSAGE pRpcMessage,
15028     DWORD* pdwStubPhase);
15029 HRESULT STDMETHODCALLTYPE ISpeechAudio_get_EventHandle_Proxy(
15030     ISpeechAudio* This,
15031     LONG *EventHandle);
15032 void __RPC_STUB ISpeechAudio_get_EventHandle_Stub(
15033     IRpcStubBuffer* This,
15034     IRpcChannelBuffer* pRpcChannelBuffer,
15035     PRPC_MESSAGE pRpcMessage,
15036     DWORD* pdwStubPhase);
15037 HRESULT STDMETHODCALLTYPE ISpeechAudio_SetState_Proxy(
15038     ISpeechAudio* This,
15039     SpeechAudioState State);
15040 void __RPC_STUB ISpeechAudio_SetState_Stub(
15041     IRpcStubBuffer* This,
15042     IRpcChannelBuffer* pRpcChannelBuffer,
15043     PRPC_MESSAGE pRpcMessage,
15044     DWORD* pdwStubPhase);
15045 
15046 #endif  /* __ISpeechAudio_INTERFACE_DEFINED__ */
15047 
15048 /*****************************************************************************
15049  * ISpeechMMSysAudio interface
15050  */
15051 #ifndef __ISpeechMMSysAudio_INTERFACE_DEFINED__
15052 #define __ISpeechMMSysAudio_INTERFACE_DEFINED__
15053 
15054 DEFINE_GUID(IID_ISpeechMMSysAudio, 0x3c76af6d, 0x1fd7, 0x4831, 0x81,0xd1, 0x3b,0x71,0xd5,0xa1,0x3c,0x44);
15055 #if defined(__cplusplus) && !defined(CINTERFACE)
15056 MIDL_INTERFACE("3c76af6d-1fd7-4831-81d1-3b71d5a13c44")
15057 ISpeechMMSysAudio : public ISpeechAudio
15058 {
15059     virtual HRESULT STDMETHODCALLTYPE get_DeviceId(
15060         LONG *DeviceId) = 0;
15061 
15062     virtual HRESULT STDMETHODCALLTYPE put_DeviceId(
15063         LONG DeviceId) = 0;
15064 
15065     virtual HRESULT STDMETHODCALLTYPE get_LineId(
15066         LONG *LineId) = 0;
15067 
15068     virtual HRESULT STDMETHODCALLTYPE put_LineId(
15069         LONG LineId) = 0;
15070 
15071     virtual HRESULT STDMETHODCALLTYPE get_MMHandle(
15072         LONG *Handle) = 0;
15073 
15074 };
15075 #ifdef __CRT_UUID_DECL
15076 __CRT_UUID_DECL(ISpeechMMSysAudio, 0x3c76af6d, 0x1fd7, 0x4831, 0x81,0xd1, 0x3b,0x71,0xd5,0xa1,0x3c,0x44)
15077 #endif
15078 #else
15079 typedef struct ISpeechMMSysAudioVtbl {
15080     BEGIN_INTERFACE
15081 
15082     /*** IUnknown methods ***/
15083     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15084         ISpeechMMSysAudio* This,
15085         REFIID riid,
15086         void **ppvObject);
15087 
15088     ULONG (STDMETHODCALLTYPE *AddRef)(
15089         ISpeechMMSysAudio* This);
15090 
15091     ULONG (STDMETHODCALLTYPE *Release)(
15092         ISpeechMMSysAudio* This);
15093 
15094     /*** IDispatch methods ***/
15095     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15096         ISpeechMMSysAudio* This,
15097         UINT *pctinfo);
15098 
15099     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15100         ISpeechMMSysAudio* This,
15101         UINT iTInfo,
15102         LCID lcid,
15103         ITypeInfo **ppTInfo);
15104 
15105     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15106         ISpeechMMSysAudio* This,
15107         REFIID riid,
15108         LPOLESTR *rgszNames,
15109         UINT cNames,
15110         LCID lcid,
15111         DISPID *rgDispId);
15112 
15113     HRESULT (STDMETHODCALLTYPE *Invoke)(
15114         ISpeechMMSysAudio* This,
15115         DISPID dispIdMember,
15116         REFIID riid,
15117         LCID lcid,
15118         WORD wFlags,
15119         DISPPARAMS *pDispParams,
15120         VARIANT *pVarResult,
15121         EXCEPINFO *pExcepInfo,
15122         UINT *puArgErr);
15123 
15124     /*** ISpeechBaseStream methods ***/
15125     HRESULT (STDMETHODCALLTYPE *get_Format)(
15126         ISpeechMMSysAudio* This,
15127         ISpeechAudioFormat **AudioFormat);
15128 
15129     HRESULT (STDMETHODCALLTYPE *putref_Format)(
15130         ISpeechMMSysAudio* This,
15131         ISpeechAudioFormat *AudioFormat);
15132 
15133     HRESULT (STDMETHODCALLTYPE *Read)(
15134         ISpeechMMSysAudio* This,
15135         VARIANT *Buffer,
15136         LONG NumberOfBytes,
15137         LONG *BytesRead);
15138 
15139     HRESULT (STDMETHODCALLTYPE *Write)(
15140         ISpeechMMSysAudio* This,
15141         VARIANT Buffer,
15142         LONG *BytesWritten);
15143 
15144     HRESULT (STDMETHODCALLTYPE *Seek)(
15145         ISpeechMMSysAudio* This,
15146         VARIANT Position,
15147         SpeechStreamSeekPositionType Origin,
15148         VARIANT *NewPosition);
15149 
15150     /*** ISpeechAudio methods ***/
15151     HRESULT (STDMETHODCALLTYPE *get_Status)(
15152         ISpeechMMSysAudio* This,
15153         ISpeechAudioStatus **Status);
15154 
15155     HRESULT (STDMETHODCALLTYPE *get_BufferInfo)(
15156         ISpeechMMSysAudio* This,
15157         ISpeechAudioBufferInfo **BufferInfo);
15158 
15159     HRESULT (STDMETHODCALLTYPE *get_DefaultFormat)(
15160         ISpeechMMSysAudio* This,
15161         ISpeechAudioFormat **StreamFormat);
15162 
15163     HRESULT (STDMETHODCALLTYPE *get_Volume)(
15164         ISpeechMMSysAudio* This,
15165         LONG *Volume);
15166 
15167     HRESULT (STDMETHODCALLTYPE *put_Volume)(
15168         ISpeechMMSysAudio* This,
15169         LONG Volume);
15170 
15171     HRESULT (STDMETHODCALLTYPE *get_BufferNotifySize)(
15172         ISpeechMMSysAudio* This,
15173         LONG *BufferNotifySize);
15174 
15175     HRESULT (STDMETHODCALLTYPE *put_BufferNotifySize)(
15176         ISpeechMMSysAudio* This,
15177         LONG BufferNotifySize);
15178 
15179     HRESULT (STDMETHODCALLTYPE *get_EventHandle)(
15180         ISpeechMMSysAudio* This,
15181         LONG *EventHandle);
15182 
15183     HRESULT (STDMETHODCALLTYPE *SetState)(
15184         ISpeechMMSysAudio* This,
15185         SpeechAudioState State);
15186 
15187     /*** ISpeechMMSysAudio methods ***/
15188     HRESULT (STDMETHODCALLTYPE *get_DeviceId)(
15189         ISpeechMMSysAudio* This,
15190         LONG *DeviceId);
15191 
15192     HRESULT (STDMETHODCALLTYPE *put_DeviceId)(
15193         ISpeechMMSysAudio* This,
15194         LONG DeviceId);
15195 
15196     HRESULT (STDMETHODCALLTYPE *get_LineId)(
15197         ISpeechMMSysAudio* This,
15198         LONG *LineId);
15199 
15200     HRESULT (STDMETHODCALLTYPE *put_LineId)(
15201         ISpeechMMSysAudio* This,
15202         LONG LineId);
15203 
15204     HRESULT (STDMETHODCALLTYPE *get_MMHandle)(
15205         ISpeechMMSysAudio* This,
15206         LONG *Handle);
15207 
15208     END_INTERFACE
15209 } ISpeechMMSysAudioVtbl;
15210 interface ISpeechMMSysAudio {
15211     CONST_VTBL ISpeechMMSysAudioVtbl* lpVtbl;
15212 };
15213 
15214 #ifdef COBJMACROS
15215 #ifndef WIDL_C_INLINE_WRAPPERS
15216 /*** IUnknown methods ***/
15217 #define ISpeechMMSysAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15218 #define ISpeechMMSysAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
15219 #define ISpeechMMSysAudio_Release(This) (This)->lpVtbl->Release(This)
15220 /*** IDispatch methods ***/
15221 #define ISpeechMMSysAudio_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
15222 #define ISpeechMMSysAudio_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
15223 #define ISpeechMMSysAudio_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
15224 #define ISpeechMMSysAudio_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
15225 /*** ISpeechBaseStream methods ***/
15226 #define ISpeechMMSysAudio_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
15227 #define ISpeechMMSysAudio_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
15228 #define ISpeechMMSysAudio_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
15229 #define ISpeechMMSysAudio_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
15230 #define ISpeechMMSysAudio_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
15231 /*** ISpeechAudio methods ***/
15232 #define ISpeechMMSysAudio_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
15233 #define ISpeechMMSysAudio_get_BufferInfo(This,BufferInfo) (This)->lpVtbl->get_BufferInfo(This,BufferInfo)
15234 #define ISpeechMMSysAudio_get_DefaultFormat(This,StreamFormat) (This)->lpVtbl->get_DefaultFormat(This,StreamFormat)
15235 #define ISpeechMMSysAudio_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
15236 #define ISpeechMMSysAudio_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
15237 #define ISpeechMMSysAudio_get_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->get_BufferNotifySize(This,BufferNotifySize)
15238 #define ISpeechMMSysAudio_put_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->put_BufferNotifySize(This,BufferNotifySize)
15239 #define ISpeechMMSysAudio_get_EventHandle(This,EventHandle) (This)->lpVtbl->get_EventHandle(This,EventHandle)
15240 #define ISpeechMMSysAudio_SetState(This,State) (This)->lpVtbl->SetState(This,State)
15241 /*** ISpeechMMSysAudio methods ***/
15242 #define ISpeechMMSysAudio_get_DeviceId(This,DeviceId) (This)->lpVtbl->get_DeviceId(This,DeviceId)
15243 #define ISpeechMMSysAudio_put_DeviceId(This,DeviceId) (This)->lpVtbl->put_DeviceId(This,DeviceId)
15244 #define ISpeechMMSysAudio_get_LineId(This,LineId) (This)->lpVtbl->get_LineId(This,LineId)
15245 #define ISpeechMMSysAudio_put_LineId(This,LineId) (This)->lpVtbl->put_LineId(This,LineId)
15246 #define ISpeechMMSysAudio_get_MMHandle(This,Handle) (This)->lpVtbl->get_MMHandle(This,Handle)
15247 #else
15248 /*** IUnknown methods ***/
15249 static FORCEINLINE HRESULT ISpeechMMSysAudio_QueryInterface(ISpeechMMSysAudio* This,REFIID riid,void **ppvObject) {
15250     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15251 }
15252 static FORCEINLINE ULONG ISpeechMMSysAudio_AddRef(ISpeechMMSysAudio* This) {
15253     return This->lpVtbl->AddRef(This);
15254 }
15255 static FORCEINLINE ULONG ISpeechMMSysAudio_Release(ISpeechMMSysAudio* This) {
15256     return This->lpVtbl->Release(This);
15257 }
15258 /*** IDispatch methods ***/
15259 static FORCEINLINE HRESULT ISpeechMMSysAudio_GetTypeInfoCount(ISpeechMMSysAudio* This,UINT *pctinfo) {
15260     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
15261 }
15262 static FORCEINLINE HRESULT ISpeechMMSysAudio_GetTypeInfo(ISpeechMMSysAudio* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
15263     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
15264 }
15265 static FORCEINLINE HRESULT ISpeechMMSysAudio_GetIDsOfNames(ISpeechMMSysAudio* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
15266     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
15267 }
15268 static FORCEINLINE HRESULT ISpeechMMSysAudio_Invoke(ISpeechMMSysAudio* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
15269     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
15270 }
15271 /*** ISpeechBaseStream methods ***/
15272 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_Format(ISpeechMMSysAudio* This,ISpeechAudioFormat **AudioFormat) {
15273     return This->lpVtbl->get_Format(This,AudioFormat);
15274 }
15275 static FORCEINLINE HRESULT ISpeechMMSysAudio_putref_Format(ISpeechMMSysAudio* This,ISpeechAudioFormat *AudioFormat) {
15276     return This->lpVtbl->putref_Format(This,AudioFormat);
15277 }
15278 static FORCEINLINE HRESULT ISpeechMMSysAudio_Read(ISpeechMMSysAudio* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
15279     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
15280 }
15281 static FORCEINLINE HRESULT ISpeechMMSysAudio_Write(ISpeechMMSysAudio* This,VARIANT Buffer,LONG *BytesWritten) {
15282     return This->lpVtbl->Write(This,Buffer,BytesWritten);
15283 }
15284 static FORCEINLINE HRESULT ISpeechMMSysAudio_Seek(ISpeechMMSysAudio* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
15285     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
15286 }
15287 /*** ISpeechAudio methods ***/
15288 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_Status(ISpeechMMSysAudio* This,ISpeechAudioStatus **Status) {
15289     return This->lpVtbl->get_Status(This,Status);
15290 }
15291 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_BufferInfo(ISpeechMMSysAudio* This,ISpeechAudioBufferInfo **BufferInfo) {
15292     return This->lpVtbl->get_BufferInfo(This,BufferInfo);
15293 }
15294 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_DefaultFormat(ISpeechMMSysAudio* This,ISpeechAudioFormat **StreamFormat) {
15295     return This->lpVtbl->get_DefaultFormat(This,StreamFormat);
15296 }
15297 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_Volume(ISpeechMMSysAudio* This,LONG *Volume) {
15298     return This->lpVtbl->get_Volume(This,Volume);
15299 }
15300 static FORCEINLINE HRESULT ISpeechMMSysAudio_put_Volume(ISpeechMMSysAudio* This,LONG Volume) {
15301     return This->lpVtbl->put_Volume(This,Volume);
15302 }
15303 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_BufferNotifySize(ISpeechMMSysAudio* This,LONG *BufferNotifySize) {
15304     return This->lpVtbl->get_BufferNotifySize(This,BufferNotifySize);
15305 }
15306 static FORCEINLINE HRESULT ISpeechMMSysAudio_put_BufferNotifySize(ISpeechMMSysAudio* This,LONG BufferNotifySize) {
15307     return This->lpVtbl->put_BufferNotifySize(This,BufferNotifySize);
15308 }
15309 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_EventHandle(ISpeechMMSysAudio* This,LONG *EventHandle) {
15310     return This->lpVtbl->get_EventHandle(This,EventHandle);
15311 }
15312 static FORCEINLINE HRESULT ISpeechMMSysAudio_SetState(ISpeechMMSysAudio* This,SpeechAudioState State) {
15313     return This->lpVtbl->SetState(This,State);
15314 }
15315 /*** ISpeechMMSysAudio methods ***/
15316 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_DeviceId(ISpeechMMSysAudio* This,LONG *DeviceId) {
15317     return This->lpVtbl->get_DeviceId(This,DeviceId);
15318 }
15319 static FORCEINLINE HRESULT ISpeechMMSysAudio_put_DeviceId(ISpeechMMSysAudio* This,LONG DeviceId) {
15320     return This->lpVtbl->put_DeviceId(This,DeviceId);
15321 }
15322 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_LineId(ISpeechMMSysAudio* This,LONG *LineId) {
15323     return This->lpVtbl->get_LineId(This,LineId);
15324 }
15325 static FORCEINLINE HRESULT ISpeechMMSysAudio_put_LineId(ISpeechMMSysAudio* This,LONG LineId) {
15326     return This->lpVtbl->put_LineId(This,LineId);
15327 }
15328 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_MMHandle(ISpeechMMSysAudio* This,LONG *Handle) {
15329     return This->lpVtbl->get_MMHandle(This,Handle);
15330 }
15331 #endif
15332 #endif
15333 
15334 #endif
15335 
15336 HRESULT STDMETHODCALLTYPE ISpeechMMSysAudio_get_DeviceId_Proxy(
15337     ISpeechMMSysAudio* This,
15338     LONG *DeviceId);
15339 void __RPC_STUB ISpeechMMSysAudio_get_DeviceId_Stub(
15340     IRpcStubBuffer* This,
15341     IRpcChannelBuffer* pRpcChannelBuffer,
15342     PRPC_MESSAGE pRpcMessage,
15343     DWORD* pdwStubPhase);
15344 HRESULT STDMETHODCALLTYPE ISpeechMMSysAudio_put_DeviceId_Proxy(
15345     ISpeechMMSysAudio* This,
15346     LONG DeviceId);
15347 void __RPC_STUB ISpeechMMSysAudio_put_DeviceId_Stub(
15348     IRpcStubBuffer* This,
15349     IRpcChannelBuffer* pRpcChannelBuffer,
15350     PRPC_MESSAGE pRpcMessage,
15351     DWORD* pdwStubPhase);
15352 HRESULT STDMETHODCALLTYPE ISpeechMMSysAudio_get_LineId_Proxy(
15353     ISpeechMMSysAudio* This,
15354     LONG *LineId);
15355 void __RPC_STUB ISpeechMMSysAudio_get_LineId_Stub(
15356     IRpcStubBuffer* This,
15357     IRpcChannelBuffer* pRpcChannelBuffer,
15358     PRPC_MESSAGE pRpcMessage,
15359     DWORD* pdwStubPhase);
15360 HRESULT STDMETHODCALLTYPE ISpeechMMSysAudio_put_LineId_Proxy(
15361     ISpeechMMSysAudio* This,
15362     LONG LineId);
15363 void __RPC_STUB ISpeechMMSysAudio_put_LineId_Stub(
15364     IRpcStubBuffer* This,
15365     IRpcChannelBuffer* pRpcChannelBuffer,
15366     PRPC_MESSAGE pRpcMessage,
15367     DWORD* pdwStubPhase);
15368 HRESULT STDMETHODCALLTYPE ISpeechMMSysAudio_get_MMHandle_Proxy(
15369     ISpeechMMSysAudio* This,
15370     LONG *Handle);
15371 void __RPC_STUB ISpeechMMSysAudio_get_MMHandle_Stub(
15372     IRpcStubBuffer* This,
15373     IRpcChannelBuffer* pRpcChannelBuffer,
15374     PRPC_MESSAGE pRpcMessage,
15375     DWORD* pdwStubPhase);
15376 
15377 #endif  /* __ISpeechMMSysAudio_INTERFACE_DEFINED__ */
15378 
15379 /*****************************************************************************
15380  * ISpeechFileStream interface
15381  */
15382 #ifndef __ISpeechFileStream_INTERFACE_DEFINED__
15383 #define __ISpeechFileStream_INTERFACE_DEFINED__
15384 
15385 DEFINE_GUID(IID_ISpeechFileStream, 0xaf67f125, 0xab39, 0x4e93, 0xb4,0xa2, 0xcc,0x2e,0x66,0xe1,0x82,0xa7);
15386 #if defined(__cplusplus) && !defined(CINTERFACE)
15387 MIDL_INTERFACE("af67f125-ab39-4e93-b4a2-cc2e66e182a7")
15388 ISpeechFileStream : public ISpeechBaseStream
15389 {
15390     virtual HRESULT STDMETHODCALLTYPE Open(
15391         BSTR FileName,
15392         SpeechStreamFileMode FileMode = SSFMOpenForRead,
15393         VARIANT_BOOL DoEvents = 0) = 0;
15394 
15395     virtual HRESULT STDMETHODCALLTYPE Close(
15396         ) = 0;
15397 
15398 };
15399 #ifdef __CRT_UUID_DECL
15400 __CRT_UUID_DECL(ISpeechFileStream, 0xaf67f125, 0xab39, 0x4e93, 0xb4,0xa2, 0xcc,0x2e,0x66,0xe1,0x82,0xa7)
15401 #endif
15402 #else
15403 typedef struct ISpeechFileStreamVtbl {
15404     BEGIN_INTERFACE
15405 
15406     /*** IUnknown methods ***/
15407     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15408         ISpeechFileStream* This,
15409         REFIID riid,
15410         void **ppvObject);
15411 
15412     ULONG (STDMETHODCALLTYPE *AddRef)(
15413         ISpeechFileStream* This);
15414 
15415     ULONG (STDMETHODCALLTYPE *Release)(
15416         ISpeechFileStream* This);
15417 
15418     /*** IDispatch methods ***/
15419     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15420         ISpeechFileStream* This,
15421         UINT *pctinfo);
15422 
15423     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15424         ISpeechFileStream* This,
15425         UINT iTInfo,
15426         LCID lcid,
15427         ITypeInfo **ppTInfo);
15428 
15429     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15430         ISpeechFileStream* This,
15431         REFIID riid,
15432         LPOLESTR *rgszNames,
15433         UINT cNames,
15434         LCID lcid,
15435         DISPID *rgDispId);
15436 
15437     HRESULT (STDMETHODCALLTYPE *Invoke)(
15438         ISpeechFileStream* This,
15439         DISPID dispIdMember,
15440         REFIID riid,
15441         LCID lcid,
15442         WORD wFlags,
15443         DISPPARAMS *pDispParams,
15444         VARIANT *pVarResult,
15445         EXCEPINFO *pExcepInfo,
15446         UINT *puArgErr);
15447 
15448     /*** ISpeechBaseStream methods ***/
15449     HRESULT (STDMETHODCALLTYPE *get_Format)(
15450         ISpeechFileStream* This,
15451         ISpeechAudioFormat **AudioFormat);
15452 
15453     HRESULT (STDMETHODCALLTYPE *putref_Format)(
15454         ISpeechFileStream* This,
15455         ISpeechAudioFormat *AudioFormat);
15456 
15457     HRESULT (STDMETHODCALLTYPE *Read)(
15458         ISpeechFileStream* This,
15459         VARIANT *Buffer,
15460         LONG NumberOfBytes,
15461         LONG *BytesRead);
15462 
15463     HRESULT (STDMETHODCALLTYPE *Write)(
15464         ISpeechFileStream* This,
15465         VARIANT Buffer,
15466         LONG *BytesWritten);
15467 
15468     HRESULT (STDMETHODCALLTYPE *Seek)(
15469         ISpeechFileStream* This,
15470         VARIANT Position,
15471         SpeechStreamSeekPositionType Origin,
15472         VARIANT *NewPosition);
15473 
15474     /*** ISpeechFileStream methods ***/
15475     HRESULT (STDMETHODCALLTYPE *Open)(
15476         ISpeechFileStream* This,
15477         BSTR FileName,
15478         SpeechStreamFileMode FileMode,
15479         VARIANT_BOOL DoEvents);
15480 
15481     HRESULT (STDMETHODCALLTYPE *Close)(
15482         ISpeechFileStream* This);
15483 
15484     END_INTERFACE
15485 } ISpeechFileStreamVtbl;
15486 interface ISpeechFileStream {
15487     CONST_VTBL ISpeechFileStreamVtbl* lpVtbl;
15488 };
15489 
15490 #ifdef COBJMACROS
15491 #ifndef WIDL_C_INLINE_WRAPPERS
15492 /*** IUnknown methods ***/
15493 #define ISpeechFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15494 #define ISpeechFileStream_AddRef(This) (This)->lpVtbl->AddRef(This)
15495 #define ISpeechFileStream_Release(This) (This)->lpVtbl->Release(This)
15496 /*** IDispatch methods ***/
15497 #define ISpeechFileStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
15498 #define ISpeechFileStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
15499 #define ISpeechFileStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
15500 #define ISpeechFileStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
15501 /*** ISpeechBaseStream methods ***/
15502 #define ISpeechFileStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
15503 #define ISpeechFileStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
15504 #define ISpeechFileStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
15505 #define ISpeechFileStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
15506 #define ISpeechFileStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
15507 /*** ISpeechFileStream methods ***/
15508 #define ISpeechFileStream_Open(This,FileName,FileMode,DoEvents) (This)->lpVtbl->Open(This,FileName,FileMode,DoEvents)
15509 #define ISpeechFileStream_Close(This) (This)->lpVtbl->Close(This)
15510 #else
15511 /*** IUnknown methods ***/
15512 static FORCEINLINE HRESULT ISpeechFileStream_QueryInterface(ISpeechFileStream* This,REFIID riid,void **ppvObject) {
15513     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15514 }
15515 static FORCEINLINE ULONG ISpeechFileStream_AddRef(ISpeechFileStream* This) {
15516     return This->lpVtbl->AddRef(This);
15517 }
15518 static FORCEINLINE ULONG ISpeechFileStream_Release(ISpeechFileStream* This) {
15519     return This->lpVtbl->Release(This);
15520 }
15521 /*** IDispatch methods ***/
15522 static FORCEINLINE HRESULT ISpeechFileStream_GetTypeInfoCount(ISpeechFileStream* This,UINT *pctinfo) {
15523     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
15524 }
15525 static FORCEINLINE HRESULT ISpeechFileStream_GetTypeInfo(ISpeechFileStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
15526     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
15527 }
15528 static FORCEINLINE HRESULT ISpeechFileStream_GetIDsOfNames(ISpeechFileStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
15529     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
15530 }
15531 static FORCEINLINE HRESULT ISpeechFileStream_Invoke(ISpeechFileStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
15532     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
15533 }
15534 /*** ISpeechBaseStream methods ***/
15535 static FORCEINLINE HRESULT ISpeechFileStream_get_Format(ISpeechFileStream* This,ISpeechAudioFormat **AudioFormat) {
15536     return This->lpVtbl->get_Format(This,AudioFormat);
15537 }
15538 static FORCEINLINE HRESULT ISpeechFileStream_putref_Format(ISpeechFileStream* This,ISpeechAudioFormat *AudioFormat) {
15539     return This->lpVtbl->putref_Format(This,AudioFormat);
15540 }
15541 static FORCEINLINE HRESULT ISpeechFileStream_Read(ISpeechFileStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
15542     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
15543 }
15544 static FORCEINLINE HRESULT ISpeechFileStream_Write(ISpeechFileStream* This,VARIANT Buffer,LONG *BytesWritten) {
15545     return This->lpVtbl->Write(This,Buffer,BytesWritten);
15546 }
15547 static FORCEINLINE HRESULT ISpeechFileStream_Seek(ISpeechFileStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
15548     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
15549 }
15550 /*** ISpeechFileStream methods ***/
15551 static FORCEINLINE HRESULT ISpeechFileStream_Open(ISpeechFileStream* This,BSTR FileName,SpeechStreamFileMode FileMode,VARIANT_BOOL DoEvents) {
15552     return This->lpVtbl->Open(This,FileName,FileMode,DoEvents);
15553 }
15554 static FORCEINLINE HRESULT ISpeechFileStream_Close(ISpeechFileStream* This) {
15555     return This->lpVtbl->Close(This);
15556 }
15557 #endif
15558 #endif
15559 
15560 #endif
15561 
15562 HRESULT STDMETHODCALLTYPE ISpeechFileStream_Open_Proxy(
15563     ISpeechFileStream* This,
15564     BSTR FileName,
15565     SpeechStreamFileMode FileMode,
15566     VARIANT_BOOL DoEvents);
15567 void __RPC_STUB ISpeechFileStream_Open_Stub(
15568     IRpcStubBuffer* This,
15569     IRpcChannelBuffer* pRpcChannelBuffer,
15570     PRPC_MESSAGE pRpcMessage,
15571     DWORD* pdwStubPhase);
15572 HRESULT STDMETHODCALLTYPE ISpeechFileStream_Close_Proxy(
15573     ISpeechFileStream* This);
15574 void __RPC_STUB ISpeechFileStream_Close_Stub(
15575     IRpcStubBuffer* This,
15576     IRpcChannelBuffer* pRpcChannelBuffer,
15577     PRPC_MESSAGE pRpcMessage,
15578     DWORD* pdwStubPhase);
15579 
15580 #endif  /* __ISpeechFileStream_INTERFACE_DEFINED__ */
15581 
15582 /*****************************************************************************
15583  * ISpeechCustomStream interface
15584  */
15585 #ifndef __ISpeechCustomStream_INTERFACE_DEFINED__
15586 #define __ISpeechCustomStream_INTERFACE_DEFINED__
15587 
15588 DEFINE_GUID(IID_ISpeechCustomStream, 0x1a9e9f4f, 0x104f, 0x4db8, 0xa1,0x15, 0xef,0xd7,0xfd,0x0c,0x97,0xae);
15589 #if defined(__cplusplus) && !defined(CINTERFACE)
15590 MIDL_INTERFACE("1a9e9f4f-104f-4db8-a115-efd7fd0c97ae")
15591 ISpeechCustomStream : public ISpeechBaseStream
15592 {
15593     virtual HRESULT STDMETHODCALLTYPE get_BaseStream(
15594         IUnknown **ppUnkStream) = 0;
15595 
15596     virtual HRESULT STDMETHODCALLTYPE putref_BaseStream(
15597         IUnknown *pUnkStream) = 0;
15598 
15599 };
15600 #ifdef __CRT_UUID_DECL
15601 __CRT_UUID_DECL(ISpeechCustomStream, 0x1a9e9f4f, 0x104f, 0x4db8, 0xa1,0x15, 0xef,0xd7,0xfd,0x0c,0x97,0xae)
15602 #endif
15603 #else
15604 typedef struct ISpeechCustomStreamVtbl {
15605     BEGIN_INTERFACE
15606 
15607     /*** IUnknown methods ***/
15608     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15609         ISpeechCustomStream* This,
15610         REFIID riid,
15611         void **ppvObject);
15612 
15613     ULONG (STDMETHODCALLTYPE *AddRef)(
15614         ISpeechCustomStream* This);
15615 
15616     ULONG (STDMETHODCALLTYPE *Release)(
15617         ISpeechCustomStream* This);
15618 
15619     /*** IDispatch methods ***/
15620     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15621         ISpeechCustomStream* This,
15622         UINT *pctinfo);
15623 
15624     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15625         ISpeechCustomStream* This,
15626         UINT iTInfo,
15627         LCID lcid,
15628         ITypeInfo **ppTInfo);
15629 
15630     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15631         ISpeechCustomStream* This,
15632         REFIID riid,
15633         LPOLESTR *rgszNames,
15634         UINT cNames,
15635         LCID lcid,
15636         DISPID *rgDispId);
15637 
15638     HRESULT (STDMETHODCALLTYPE *Invoke)(
15639         ISpeechCustomStream* This,
15640         DISPID dispIdMember,
15641         REFIID riid,
15642         LCID lcid,
15643         WORD wFlags,
15644         DISPPARAMS *pDispParams,
15645         VARIANT *pVarResult,
15646         EXCEPINFO *pExcepInfo,
15647         UINT *puArgErr);
15648 
15649     /*** ISpeechBaseStream methods ***/
15650     HRESULT (STDMETHODCALLTYPE *get_Format)(
15651         ISpeechCustomStream* This,
15652         ISpeechAudioFormat **AudioFormat);
15653 
15654     HRESULT (STDMETHODCALLTYPE *putref_Format)(
15655         ISpeechCustomStream* This,
15656         ISpeechAudioFormat *AudioFormat);
15657 
15658     HRESULT (STDMETHODCALLTYPE *Read)(
15659         ISpeechCustomStream* This,
15660         VARIANT *Buffer,
15661         LONG NumberOfBytes,
15662         LONG *BytesRead);
15663 
15664     HRESULT (STDMETHODCALLTYPE *Write)(
15665         ISpeechCustomStream* This,
15666         VARIANT Buffer,
15667         LONG *BytesWritten);
15668 
15669     HRESULT (STDMETHODCALLTYPE *Seek)(
15670         ISpeechCustomStream* This,
15671         VARIANT Position,
15672         SpeechStreamSeekPositionType Origin,
15673         VARIANT *NewPosition);
15674 
15675     /*** ISpeechCustomStream methods ***/
15676     HRESULT (STDMETHODCALLTYPE *get_BaseStream)(
15677         ISpeechCustomStream* This,
15678         IUnknown **ppUnkStream);
15679 
15680     HRESULT (STDMETHODCALLTYPE *putref_BaseStream)(
15681         ISpeechCustomStream* This,
15682         IUnknown *pUnkStream);
15683 
15684     END_INTERFACE
15685 } ISpeechCustomStreamVtbl;
15686 interface ISpeechCustomStream {
15687     CONST_VTBL ISpeechCustomStreamVtbl* lpVtbl;
15688 };
15689 
15690 #ifdef COBJMACROS
15691 #ifndef WIDL_C_INLINE_WRAPPERS
15692 /*** IUnknown methods ***/
15693 #define ISpeechCustomStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15694 #define ISpeechCustomStream_AddRef(This) (This)->lpVtbl->AddRef(This)
15695 #define ISpeechCustomStream_Release(This) (This)->lpVtbl->Release(This)
15696 /*** IDispatch methods ***/
15697 #define ISpeechCustomStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
15698 #define ISpeechCustomStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
15699 #define ISpeechCustomStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
15700 #define ISpeechCustomStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
15701 /*** ISpeechBaseStream methods ***/
15702 #define ISpeechCustomStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
15703 #define ISpeechCustomStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
15704 #define ISpeechCustomStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
15705 #define ISpeechCustomStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
15706 #define ISpeechCustomStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
15707 /*** ISpeechCustomStream methods ***/
15708 #define ISpeechCustomStream_get_BaseStream(This,ppUnkStream) (This)->lpVtbl->get_BaseStream(This,ppUnkStream)
15709 #define ISpeechCustomStream_putref_BaseStream(This,pUnkStream) (This)->lpVtbl->putref_BaseStream(This,pUnkStream)
15710 #else
15711 /*** IUnknown methods ***/
15712 static FORCEINLINE HRESULT ISpeechCustomStream_QueryInterface(ISpeechCustomStream* This,REFIID riid,void **ppvObject) {
15713     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15714 }
15715 static FORCEINLINE ULONG ISpeechCustomStream_AddRef(ISpeechCustomStream* This) {
15716     return This->lpVtbl->AddRef(This);
15717 }
15718 static FORCEINLINE ULONG ISpeechCustomStream_Release(ISpeechCustomStream* This) {
15719     return This->lpVtbl->Release(This);
15720 }
15721 /*** IDispatch methods ***/
15722 static FORCEINLINE HRESULT ISpeechCustomStream_GetTypeInfoCount(ISpeechCustomStream* This,UINT *pctinfo) {
15723     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
15724 }
15725 static FORCEINLINE HRESULT ISpeechCustomStream_GetTypeInfo(ISpeechCustomStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
15726     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
15727 }
15728 static FORCEINLINE HRESULT ISpeechCustomStream_GetIDsOfNames(ISpeechCustomStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
15729     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
15730 }
15731 static FORCEINLINE HRESULT ISpeechCustomStream_Invoke(ISpeechCustomStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
15732     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
15733 }
15734 /*** ISpeechBaseStream methods ***/
15735 static FORCEINLINE HRESULT ISpeechCustomStream_get_Format(ISpeechCustomStream* This,ISpeechAudioFormat **AudioFormat) {
15736     return This->lpVtbl->get_Format(This,AudioFormat);
15737 }
15738 static FORCEINLINE HRESULT ISpeechCustomStream_putref_Format(ISpeechCustomStream* This,ISpeechAudioFormat *AudioFormat) {
15739     return This->lpVtbl->putref_Format(This,AudioFormat);
15740 }
15741 static FORCEINLINE HRESULT ISpeechCustomStream_Read(ISpeechCustomStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
15742     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
15743 }
15744 static FORCEINLINE HRESULT ISpeechCustomStream_Write(ISpeechCustomStream* This,VARIANT Buffer,LONG *BytesWritten) {
15745     return This->lpVtbl->Write(This,Buffer,BytesWritten);
15746 }
15747 static FORCEINLINE HRESULT ISpeechCustomStream_Seek(ISpeechCustomStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
15748     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
15749 }
15750 /*** ISpeechCustomStream methods ***/
15751 static FORCEINLINE HRESULT ISpeechCustomStream_get_BaseStream(ISpeechCustomStream* This,IUnknown **ppUnkStream) {
15752     return This->lpVtbl->get_BaseStream(This,ppUnkStream);
15753 }
15754 static FORCEINLINE HRESULT ISpeechCustomStream_putref_BaseStream(ISpeechCustomStream* This,IUnknown *pUnkStream) {
15755     return This->lpVtbl->putref_BaseStream(This,pUnkStream);
15756 }
15757 #endif
15758 #endif
15759 
15760 #endif
15761 
15762 HRESULT STDMETHODCALLTYPE ISpeechCustomStream_get_BaseStream_Proxy(
15763     ISpeechCustomStream* This,
15764     IUnknown **ppUnkStream);
15765 void __RPC_STUB ISpeechCustomStream_get_BaseStream_Stub(
15766     IRpcStubBuffer* This,
15767     IRpcChannelBuffer* pRpcChannelBuffer,
15768     PRPC_MESSAGE pRpcMessage,
15769     DWORD* pdwStubPhase);
15770 HRESULT STDMETHODCALLTYPE ISpeechCustomStream_putref_BaseStream_Proxy(
15771     ISpeechCustomStream* This,
15772     IUnknown *pUnkStream);
15773 void __RPC_STUB ISpeechCustomStream_putref_BaseStream_Stub(
15774     IRpcStubBuffer* This,
15775     IRpcChannelBuffer* pRpcChannelBuffer,
15776     PRPC_MESSAGE pRpcMessage,
15777     DWORD* pdwStubPhase);
15778 
15779 #endif  /* __ISpeechCustomStream_INTERFACE_DEFINED__ */
15780 
15781 /*****************************************************************************
15782  * ISpeechMemoryStream interface
15783  */
15784 #ifndef __ISpeechMemoryStream_INTERFACE_DEFINED__
15785 #define __ISpeechMemoryStream_INTERFACE_DEFINED__
15786 
15787 DEFINE_GUID(IID_ISpeechMemoryStream, 0xeeb14b68, 0x808b, 0x4abe, 0xa5,0xea, 0xb5,0x1d,0xa7,0x58,0x80,0x08);
15788 #if defined(__cplusplus) && !defined(CINTERFACE)
15789 MIDL_INTERFACE("eeb14b68-808b-4abe-a5ea-b51da7588008")
15790 ISpeechMemoryStream : public ISpeechBaseStream
15791 {
15792     virtual HRESULT STDMETHODCALLTYPE SetData(
15793         VARIANT Data) = 0;
15794 
15795     virtual HRESULT STDMETHODCALLTYPE GetData(
15796         VARIANT *pData) = 0;
15797 
15798 };
15799 #ifdef __CRT_UUID_DECL
15800 __CRT_UUID_DECL(ISpeechMemoryStream, 0xeeb14b68, 0x808b, 0x4abe, 0xa5,0xea, 0xb5,0x1d,0xa7,0x58,0x80,0x08)
15801 #endif
15802 #else
15803 typedef struct ISpeechMemoryStreamVtbl {
15804     BEGIN_INTERFACE
15805 
15806     /*** IUnknown methods ***/
15807     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15808         ISpeechMemoryStream* This,
15809         REFIID riid,
15810         void **ppvObject);
15811 
15812     ULONG (STDMETHODCALLTYPE *AddRef)(
15813         ISpeechMemoryStream* This);
15814 
15815     ULONG (STDMETHODCALLTYPE *Release)(
15816         ISpeechMemoryStream* This);
15817 
15818     /*** IDispatch methods ***/
15819     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15820         ISpeechMemoryStream* This,
15821         UINT *pctinfo);
15822 
15823     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15824         ISpeechMemoryStream* This,
15825         UINT iTInfo,
15826         LCID lcid,
15827         ITypeInfo **ppTInfo);
15828 
15829     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15830         ISpeechMemoryStream* This,
15831         REFIID riid,
15832         LPOLESTR *rgszNames,
15833         UINT cNames,
15834         LCID lcid,
15835         DISPID *rgDispId);
15836 
15837     HRESULT (STDMETHODCALLTYPE *Invoke)(
15838         ISpeechMemoryStream* 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     /*** ISpeechBaseStream methods ***/
15849     HRESULT (STDMETHODCALLTYPE *get_Format)(
15850         ISpeechMemoryStream* This,
15851         ISpeechAudioFormat **AudioFormat);
15852 
15853     HRESULT (STDMETHODCALLTYPE *putref_Format)(
15854         ISpeechMemoryStream* This,
15855         ISpeechAudioFormat *AudioFormat);
15856 
15857     HRESULT (STDMETHODCALLTYPE *Read)(
15858         ISpeechMemoryStream* This,
15859         VARIANT *Buffer,
15860         LONG NumberOfBytes,
15861         LONG *BytesRead);
15862 
15863     HRESULT (STDMETHODCALLTYPE *Write)(
15864         ISpeechMemoryStream* This,
15865         VARIANT Buffer,
15866         LONG *BytesWritten);
15867 
15868     HRESULT (STDMETHODCALLTYPE *Seek)(
15869         ISpeechMemoryStream* This,
15870         VARIANT Position,
15871         SpeechStreamSeekPositionType Origin,
15872         VARIANT *NewPosition);
15873 
15874     /*** ISpeechMemoryStream methods ***/
15875     HRESULT (STDMETHODCALLTYPE *SetData)(
15876         ISpeechMemoryStream* This,
15877         VARIANT Data);
15878 
15879     HRESULT (STDMETHODCALLTYPE *GetData)(
15880         ISpeechMemoryStream* This,
15881         VARIANT *pData);
15882 
15883     END_INTERFACE
15884 } ISpeechMemoryStreamVtbl;
15885 interface ISpeechMemoryStream {
15886     CONST_VTBL ISpeechMemoryStreamVtbl* lpVtbl;
15887 };
15888 
15889 #ifdef COBJMACROS
15890 #ifndef WIDL_C_INLINE_WRAPPERS
15891 /*** IUnknown methods ***/
15892 #define ISpeechMemoryStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15893 #define ISpeechMemoryStream_AddRef(This) (This)->lpVtbl->AddRef(This)
15894 #define ISpeechMemoryStream_Release(This) (This)->lpVtbl->Release(This)
15895 /*** IDispatch methods ***/
15896 #define ISpeechMemoryStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
15897 #define ISpeechMemoryStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
15898 #define ISpeechMemoryStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
15899 #define ISpeechMemoryStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
15900 /*** ISpeechBaseStream methods ***/
15901 #define ISpeechMemoryStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
15902 #define ISpeechMemoryStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
15903 #define ISpeechMemoryStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
15904 #define ISpeechMemoryStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
15905 #define ISpeechMemoryStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
15906 /*** ISpeechMemoryStream methods ***/
15907 #define ISpeechMemoryStream_SetData(This,Data) (This)->lpVtbl->SetData(This,Data)
15908 #define ISpeechMemoryStream_GetData(This,pData) (This)->lpVtbl->GetData(This,pData)
15909 #else
15910 /*** IUnknown methods ***/
15911 static FORCEINLINE HRESULT ISpeechMemoryStream_QueryInterface(ISpeechMemoryStream* This,REFIID riid,void **ppvObject) {
15912     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15913 }
15914 static FORCEINLINE ULONG ISpeechMemoryStream_AddRef(ISpeechMemoryStream* This) {
15915     return This->lpVtbl->AddRef(This);
15916 }
15917 static FORCEINLINE ULONG ISpeechMemoryStream_Release(ISpeechMemoryStream* This) {
15918     return This->lpVtbl->Release(This);
15919 }
15920 /*** IDispatch methods ***/
15921 static FORCEINLINE HRESULT ISpeechMemoryStream_GetTypeInfoCount(ISpeechMemoryStream* This,UINT *pctinfo) {
15922     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
15923 }
15924 static FORCEINLINE HRESULT ISpeechMemoryStream_GetTypeInfo(ISpeechMemoryStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
15925     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
15926 }
15927 static FORCEINLINE HRESULT ISpeechMemoryStream_GetIDsOfNames(ISpeechMemoryStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
15928     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
15929 }
15930 static FORCEINLINE HRESULT ISpeechMemoryStream_Invoke(ISpeechMemoryStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
15931     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
15932 }
15933 /*** ISpeechBaseStream methods ***/
15934 static FORCEINLINE HRESULT ISpeechMemoryStream_get_Format(ISpeechMemoryStream* This,ISpeechAudioFormat **AudioFormat) {
15935     return This->lpVtbl->get_Format(This,AudioFormat);
15936 }
15937 static FORCEINLINE HRESULT ISpeechMemoryStream_putref_Format(ISpeechMemoryStream* This,ISpeechAudioFormat *AudioFormat) {
15938     return This->lpVtbl->putref_Format(This,AudioFormat);
15939 }
15940 static FORCEINLINE HRESULT ISpeechMemoryStream_Read(ISpeechMemoryStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
15941     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
15942 }
15943 static FORCEINLINE HRESULT ISpeechMemoryStream_Write(ISpeechMemoryStream* This,VARIANT Buffer,LONG *BytesWritten) {
15944     return This->lpVtbl->Write(This,Buffer,BytesWritten);
15945 }
15946 static FORCEINLINE HRESULT ISpeechMemoryStream_Seek(ISpeechMemoryStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
15947     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
15948 }
15949 /*** ISpeechMemoryStream methods ***/
15950 static FORCEINLINE HRESULT ISpeechMemoryStream_SetData(ISpeechMemoryStream* This,VARIANT Data) {
15951     return This->lpVtbl->SetData(This,Data);
15952 }
15953 static FORCEINLINE HRESULT ISpeechMemoryStream_GetData(ISpeechMemoryStream* This,VARIANT *pData) {
15954     return This->lpVtbl->GetData(This,pData);
15955 }
15956 #endif
15957 #endif
15958 
15959 #endif
15960 
15961 HRESULT STDMETHODCALLTYPE ISpeechMemoryStream_SetData_Proxy(
15962     ISpeechMemoryStream* This,
15963     VARIANT Data);
15964 void __RPC_STUB ISpeechMemoryStream_SetData_Stub(
15965     IRpcStubBuffer* This,
15966     IRpcChannelBuffer* pRpcChannelBuffer,
15967     PRPC_MESSAGE pRpcMessage,
15968     DWORD* pdwStubPhase);
15969 HRESULT STDMETHODCALLTYPE ISpeechMemoryStream_GetData_Proxy(
15970     ISpeechMemoryStream* This,
15971     VARIANT *pData);
15972 void __RPC_STUB ISpeechMemoryStream_GetData_Stub(
15973     IRpcStubBuffer* This,
15974     IRpcChannelBuffer* pRpcChannelBuffer,
15975     PRPC_MESSAGE pRpcMessage,
15976     DWORD* pdwStubPhase);
15977 
15978 #endif  /* __ISpeechMemoryStream_INTERFACE_DEFINED__ */
15979 
15980 /*****************************************************************************
15981  * ISpeechAudioStatus interface
15982  */
15983 #ifndef __ISpeechAudioStatus_INTERFACE_DEFINED__
15984 #define __ISpeechAudioStatus_INTERFACE_DEFINED__
15985 
15986 DEFINE_GUID(IID_ISpeechAudioStatus, 0xc62d9c91, 0x7458, 0x47f6, 0x86,0x2d, 0x1e,0xf8,0x6f,0xb0,0xb2,0x78);
15987 #if defined(__cplusplus) && !defined(CINTERFACE)
15988 MIDL_INTERFACE("c62d9c91-7458-47f6-862d-1ef86fb0b278")
15989 ISpeechAudioStatus : public IDispatch
15990 {
15991     virtual HRESULT STDMETHODCALLTYPE get_FreeBufferSpace(
15992         LONG *FreeBufferSpace) = 0;
15993 
15994     virtual HRESULT STDMETHODCALLTYPE get_NonBlockingIO(
15995         LONG *NonBlockingIO) = 0;
15996 
15997     virtual HRESULT STDMETHODCALLTYPE get_State(
15998         SpeechAudioState *State) = 0;
15999 
16000     virtual HRESULT STDMETHODCALLTYPE get_CurrentSeekPosition(
16001         VARIANT *CurrentSeekPosition) = 0;
16002 
16003     virtual HRESULT STDMETHODCALLTYPE get_CurrentDevicePosition(
16004         VARIANT *CurrentDevicePosition) = 0;
16005 
16006 };
16007 #ifdef __CRT_UUID_DECL
16008 __CRT_UUID_DECL(ISpeechAudioStatus, 0xc62d9c91, 0x7458, 0x47f6, 0x86,0x2d, 0x1e,0xf8,0x6f,0xb0,0xb2,0x78)
16009 #endif
16010 #else
16011 typedef struct ISpeechAudioStatusVtbl {
16012     BEGIN_INTERFACE
16013 
16014     /*** IUnknown methods ***/
16015     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16016         ISpeechAudioStatus* This,
16017         REFIID riid,
16018         void **ppvObject);
16019 
16020     ULONG (STDMETHODCALLTYPE *AddRef)(
16021         ISpeechAudioStatus* This);
16022 
16023     ULONG (STDMETHODCALLTYPE *Release)(
16024         ISpeechAudioStatus* This);
16025 
16026     /*** IDispatch methods ***/
16027     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16028         ISpeechAudioStatus* This,
16029         UINT *pctinfo);
16030 
16031     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16032         ISpeechAudioStatus* This,
16033         UINT iTInfo,
16034         LCID lcid,
16035         ITypeInfo **ppTInfo);
16036 
16037     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16038         ISpeechAudioStatus* This,
16039         REFIID riid,
16040         LPOLESTR *rgszNames,
16041         UINT cNames,
16042         LCID lcid,
16043         DISPID *rgDispId);
16044 
16045     HRESULT (STDMETHODCALLTYPE *Invoke)(
16046         ISpeechAudioStatus* This,
16047         DISPID dispIdMember,
16048         REFIID riid,
16049         LCID lcid,
16050         WORD wFlags,
16051         DISPPARAMS *pDispParams,
16052         VARIANT *pVarResult,
16053         EXCEPINFO *pExcepInfo,
16054         UINT *puArgErr);
16055 
16056     /*** ISpeechAudioStatus methods ***/
16057     HRESULT (STDMETHODCALLTYPE *get_FreeBufferSpace)(
16058         ISpeechAudioStatus* This,
16059         LONG *FreeBufferSpace);
16060 
16061     HRESULT (STDMETHODCALLTYPE *get_NonBlockingIO)(
16062         ISpeechAudioStatus* This,
16063         LONG *NonBlockingIO);
16064 
16065     HRESULT (STDMETHODCALLTYPE *get_State)(
16066         ISpeechAudioStatus* This,
16067         SpeechAudioState *State);
16068 
16069     HRESULT (STDMETHODCALLTYPE *get_CurrentSeekPosition)(
16070         ISpeechAudioStatus* This,
16071         VARIANT *CurrentSeekPosition);
16072 
16073     HRESULT (STDMETHODCALLTYPE *get_CurrentDevicePosition)(
16074         ISpeechAudioStatus* This,
16075         VARIANT *CurrentDevicePosition);
16076 
16077     END_INTERFACE
16078 } ISpeechAudioStatusVtbl;
16079 interface ISpeechAudioStatus {
16080     CONST_VTBL ISpeechAudioStatusVtbl* lpVtbl;
16081 };
16082 
16083 #ifdef COBJMACROS
16084 #ifndef WIDL_C_INLINE_WRAPPERS
16085 /*** IUnknown methods ***/
16086 #define ISpeechAudioStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16087 #define ISpeechAudioStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
16088 #define ISpeechAudioStatus_Release(This) (This)->lpVtbl->Release(This)
16089 /*** IDispatch methods ***/
16090 #define ISpeechAudioStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16091 #define ISpeechAudioStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16092 #define ISpeechAudioStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16093 #define ISpeechAudioStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16094 /*** ISpeechAudioStatus methods ***/
16095 #define ISpeechAudioStatus_get_FreeBufferSpace(This,FreeBufferSpace) (This)->lpVtbl->get_FreeBufferSpace(This,FreeBufferSpace)
16096 #define ISpeechAudioStatus_get_NonBlockingIO(This,NonBlockingIO) (This)->lpVtbl->get_NonBlockingIO(This,NonBlockingIO)
16097 #define ISpeechAudioStatus_get_State(This,State) (This)->lpVtbl->get_State(This,State)
16098 #define ISpeechAudioStatus_get_CurrentSeekPosition(This,CurrentSeekPosition) (This)->lpVtbl->get_CurrentSeekPosition(This,CurrentSeekPosition)
16099 #define ISpeechAudioStatus_get_CurrentDevicePosition(This,CurrentDevicePosition) (This)->lpVtbl->get_CurrentDevicePosition(This,CurrentDevicePosition)
16100 #else
16101 /*** IUnknown methods ***/
16102 static FORCEINLINE HRESULT ISpeechAudioStatus_QueryInterface(ISpeechAudioStatus* This,REFIID riid,void **ppvObject) {
16103     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16104 }
16105 static FORCEINLINE ULONG ISpeechAudioStatus_AddRef(ISpeechAudioStatus* This) {
16106     return This->lpVtbl->AddRef(This);
16107 }
16108 static FORCEINLINE ULONG ISpeechAudioStatus_Release(ISpeechAudioStatus* This) {
16109     return This->lpVtbl->Release(This);
16110 }
16111 /*** IDispatch methods ***/
16112 static FORCEINLINE HRESULT ISpeechAudioStatus_GetTypeInfoCount(ISpeechAudioStatus* This,UINT *pctinfo) {
16113     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16114 }
16115 static FORCEINLINE HRESULT ISpeechAudioStatus_GetTypeInfo(ISpeechAudioStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16116     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16117 }
16118 static FORCEINLINE HRESULT ISpeechAudioStatus_GetIDsOfNames(ISpeechAudioStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16119     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16120 }
16121 static FORCEINLINE HRESULT ISpeechAudioStatus_Invoke(ISpeechAudioStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16122     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16123 }
16124 /*** ISpeechAudioStatus methods ***/
16125 static FORCEINLINE HRESULT ISpeechAudioStatus_get_FreeBufferSpace(ISpeechAudioStatus* This,LONG *FreeBufferSpace) {
16126     return This->lpVtbl->get_FreeBufferSpace(This,FreeBufferSpace);
16127 }
16128 static FORCEINLINE HRESULT ISpeechAudioStatus_get_NonBlockingIO(ISpeechAudioStatus* This,LONG *NonBlockingIO) {
16129     return This->lpVtbl->get_NonBlockingIO(This,NonBlockingIO);
16130 }
16131 static FORCEINLINE HRESULT ISpeechAudioStatus_get_State(ISpeechAudioStatus* This,SpeechAudioState *State) {
16132     return This->lpVtbl->get_State(This,State);
16133 }
16134 static FORCEINLINE HRESULT ISpeechAudioStatus_get_CurrentSeekPosition(ISpeechAudioStatus* This,VARIANT *CurrentSeekPosition) {
16135     return This->lpVtbl->get_CurrentSeekPosition(This,CurrentSeekPosition);
16136 }
16137 static FORCEINLINE HRESULT ISpeechAudioStatus_get_CurrentDevicePosition(ISpeechAudioStatus* This,VARIANT *CurrentDevicePosition) {
16138     return This->lpVtbl->get_CurrentDevicePosition(This,CurrentDevicePosition);
16139 }
16140 #endif
16141 #endif
16142 
16143 #endif
16144 
16145 HRESULT STDMETHODCALLTYPE ISpeechAudioStatus_get_FreeBufferSpace_Proxy(
16146     ISpeechAudioStatus* This,
16147     LONG *FreeBufferSpace);
16148 void __RPC_STUB ISpeechAudioStatus_get_FreeBufferSpace_Stub(
16149     IRpcStubBuffer* This,
16150     IRpcChannelBuffer* pRpcChannelBuffer,
16151     PRPC_MESSAGE pRpcMessage,
16152     DWORD* pdwStubPhase);
16153 HRESULT STDMETHODCALLTYPE ISpeechAudioStatus_get_NonBlockingIO_Proxy(
16154     ISpeechAudioStatus* This,
16155     LONG *NonBlockingIO);
16156 void __RPC_STUB ISpeechAudioStatus_get_NonBlockingIO_Stub(
16157     IRpcStubBuffer* This,
16158     IRpcChannelBuffer* pRpcChannelBuffer,
16159     PRPC_MESSAGE pRpcMessage,
16160     DWORD* pdwStubPhase);
16161 HRESULT STDMETHODCALLTYPE ISpeechAudioStatus_get_State_Proxy(
16162     ISpeechAudioStatus* This,
16163     SpeechAudioState *State);
16164 void __RPC_STUB ISpeechAudioStatus_get_State_Stub(
16165     IRpcStubBuffer* This,
16166     IRpcChannelBuffer* pRpcChannelBuffer,
16167     PRPC_MESSAGE pRpcMessage,
16168     DWORD* pdwStubPhase);
16169 HRESULT STDMETHODCALLTYPE ISpeechAudioStatus_get_CurrentSeekPosition_Proxy(
16170     ISpeechAudioStatus* This,
16171     VARIANT *CurrentSeekPosition);
16172 void __RPC_STUB ISpeechAudioStatus_get_CurrentSeekPosition_Stub(
16173     IRpcStubBuffer* This,
16174     IRpcChannelBuffer* pRpcChannelBuffer,
16175     PRPC_MESSAGE pRpcMessage,
16176     DWORD* pdwStubPhase);
16177 HRESULT STDMETHODCALLTYPE ISpeechAudioStatus_get_CurrentDevicePosition_Proxy(
16178     ISpeechAudioStatus* This,
16179     VARIANT *CurrentDevicePosition);
16180 void __RPC_STUB ISpeechAudioStatus_get_CurrentDevicePosition_Stub(
16181     IRpcStubBuffer* This,
16182     IRpcChannelBuffer* pRpcChannelBuffer,
16183     PRPC_MESSAGE pRpcMessage,
16184     DWORD* pdwStubPhase);
16185 
16186 #endif  /* __ISpeechAudioStatus_INTERFACE_DEFINED__ */
16187 
16188 /*****************************************************************************
16189  * ISpeechAudioBufferInfo interface
16190  */
16191 #ifndef __ISpeechAudioBufferInfo_INTERFACE_DEFINED__
16192 #define __ISpeechAudioBufferInfo_INTERFACE_DEFINED__
16193 
16194 DEFINE_GUID(IID_ISpeechAudioBufferInfo, 0x11b103d8, 0x1142, 0x4edf, 0xa0,0x93, 0x82,0xfb,0x39,0x15,0xf8,0xcc);
16195 #if defined(__cplusplus) && !defined(CINTERFACE)
16196 MIDL_INTERFACE("11b103d8-1142-4edf-a093-82fb3915f8cc")
16197 ISpeechAudioBufferInfo : public IDispatch
16198 {
16199     virtual HRESULT STDMETHODCALLTYPE get_MinNotification(
16200         LONG *MinNotification) = 0;
16201 
16202     virtual HRESULT STDMETHODCALLTYPE put_MinNotification(
16203         LONG MinNotification) = 0;
16204 
16205     virtual HRESULT STDMETHODCALLTYPE get_BufferSize(
16206         LONG *BufferSize) = 0;
16207 
16208     virtual HRESULT STDMETHODCALLTYPE put_BufferSize(
16209         LONG BufferSize) = 0;
16210 
16211     virtual HRESULT STDMETHODCALLTYPE get_EventBias(
16212         LONG *EventBias) = 0;
16213 
16214     virtual HRESULT STDMETHODCALLTYPE put_EventBias(
16215         LONG EventBias) = 0;
16216 
16217 };
16218 #ifdef __CRT_UUID_DECL
16219 __CRT_UUID_DECL(ISpeechAudioBufferInfo, 0x11b103d8, 0x1142, 0x4edf, 0xa0,0x93, 0x82,0xfb,0x39,0x15,0xf8,0xcc)
16220 #endif
16221 #else
16222 typedef struct ISpeechAudioBufferInfoVtbl {
16223     BEGIN_INTERFACE
16224 
16225     /*** IUnknown methods ***/
16226     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16227         ISpeechAudioBufferInfo* This,
16228         REFIID riid,
16229         void **ppvObject);
16230 
16231     ULONG (STDMETHODCALLTYPE *AddRef)(
16232         ISpeechAudioBufferInfo* This);
16233 
16234     ULONG (STDMETHODCALLTYPE *Release)(
16235         ISpeechAudioBufferInfo* This);
16236 
16237     /*** IDispatch methods ***/
16238     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16239         ISpeechAudioBufferInfo* This,
16240         UINT *pctinfo);
16241 
16242     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16243         ISpeechAudioBufferInfo* This,
16244         UINT iTInfo,
16245         LCID lcid,
16246         ITypeInfo **ppTInfo);
16247 
16248     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16249         ISpeechAudioBufferInfo* This,
16250         REFIID riid,
16251         LPOLESTR *rgszNames,
16252         UINT cNames,
16253         LCID lcid,
16254         DISPID *rgDispId);
16255 
16256     HRESULT (STDMETHODCALLTYPE *Invoke)(
16257         ISpeechAudioBufferInfo* This,
16258         DISPID dispIdMember,
16259         REFIID riid,
16260         LCID lcid,
16261         WORD wFlags,
16262         DISPPARAMS *pDispParams,
16263         VARIANT *pVarResult,
16264         EXCEPINFO *pExcepInfo,
16265         UINT *puArgErr);
16266 
16267     /*** ISpeechAudioBufferInfo methods ***/
16268     HRESULT (STDMETHODCALLTYPE *get_MinNotification)(
16269         ISpeechAudioBufferInfo* This,
16270         LONG *MinNotification);
16271 
16272     HRESULT (STDMETHODCALLTYPE *put_MinNotification)(
16273         ISpeechAudioBufferInfo* This,
16274         LONG MinNotification);
16275 
16276     HRESULT (STDMETHODCALLTYPE *get_BufferSize)(
16277         ISpeechAudioBufferInfo* This,
16278         LONG *BufferSize);
16279 
16280     HRESULT (STDMETHODCALLTYPE *put_BufferSize)(
16281         ISpeechAudioBufferInfo* This,
16282         LONG BufferSize);
16283 
16284     HRESULT (STDMETHODCALLTYPE *get_EventBias)(
16285         ISpeechAudioBufferInfo* This,
16286         LONG *EventBias);
16287 
16288     HRESULT (STDMETHODCALLTYPE *put_EventBias)(
16289         ISpeechAudioBufferInfo* This,
16290         LONG EventBias);
16291 
16292     END_INTERFACE
16293 } ISpeechAudioBufferInfoVtbl;
16294 interface ISpeechAudioBufferInfo {
16295     CONST_VTBL ISpeechAudioBufferInfoVtbl* lpVtbl;
16296 };
16297 
16298 #ifdef COBJMACROS
16299 #ifndef WIDL_C_INLINE_WRAPPERS
16300 /*** IUnknown methods ***/
16301 #define ISpeechAudioBufferInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16302 #define ISpeechAudioBufferInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
16303 #define ISpeechAudioBufferInfo_Release(This) (This)->lpVtbl->Release(This)
16304 /*** IDispatch methods ***/
16305 #define ISpeechAudioBufferInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16306 #define ISpeechAudioBufferInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16307 #define ISpeechAudioBufferInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16308 #define ISpeechAudioBufferInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16309 /*** ISpeechAudioBufferInfo methods ***/
16310 #define ISpeechAudioBufferInfo_get_MinNotification(This,MinNotification) (This)->lpVtbl->get_MinNotification(This,MinNotification)
16311 #define ISpeechAudioBufferInfo_put_MinNotification(This,MinNotification) (This)->lpVtbl->put_MinNotification(This,MinNotification)
16312 #define ISpeechAudioBufferInfo_get_BufferSize(This,BufferSize) (This)->lpVtbl->get_BufferSize(This,BufferSize)
16313 #define ISpeechAudioBufferInfo_put_BufferSize(This,BufferSize) (This)->lpVtbl->put_BufferSize(This,BufferSize)
16314 #define ISpeechAudioBufferInfo_get_EventBias(This,EventBias) (This)->lpVtbl->get_EventBias(This,EventBias)
16315 #define ISpeechAudioBufferInfo_put_EventBias(This,EventBias) (This)->lpVtbl->put_EventBias(This,EventBias)
16316 #else
16317 /*** IUnknown methods ***/
16318 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_QueryInterface(ISpeechAudioBufferInfo* This,REFIID riid,void **ppvObject) {
16319     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16320 }
16321 static FORCEINLINE ULONG ISpeechAudioBufferInfo_AddRef(ISpeechAudioBufferInfo* This) {
16322     return This->lpVtbl->AddRef(This);
16323 }
16324 static FORCEINLINE ULONG ISpeechAudioBufferInfo_Release(ISpeechAudioBufferInfo* This) {
16325     return This->lpVtbl->Release(This);
16326 }
16327 /*** IDispatch methods ***/
16328 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_GetTypeInfoCount(ISpeechAudioBufferInfo* This,UINT *pctinfo) {
16329     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16330 }
16331 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_GetTypeInfo(ISpeechAudioBufferInfo* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16332     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16333 }
16334 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_GetIDsOfNames(ISpeechAudioBufferInfo* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16335     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16336 }
16337 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_Invoke(ISpeechAudioBufferInfo* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16338     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16339 }
16340 /*** ISpeechAudioBufferInfo methods ***/
16341 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_get_MinNotification(ISpeechAudioBufferInfo* This,LONG *MinNotification) {
16342     return This->lpVtbl->get_MinNotification(This,MinNotification);
16343 }
16344 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_put_MinNotification(ISpeechAudioBufferInfo* This,LONG MinNotification) {
16345     return This->lpVtbl->put_MinNotification(This,MinNotification);
16346 }
16347 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_get_BufferSize(ISpeechAudioBufferInfo* This,LONG *BufferSize) {
16348     return This->lpVtbl->get_BufferSize(This,BufferSize);
16349 }
16350 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_put_BufferSize(ISpeechAudioBufferInfo* This,LONG BufferSize) {
16351     return This->lpVtbl->put_BufferSize(This,BufferSize);
16352 }
16353 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_get_EventBias(ISpeechAudioBufferInfo* This,LONG *EventBias) {
16354     return This->lpVtbl->get_EventBias(This,EventBias);
16355 }
16356 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_put_EventBias(ISpeechAudioBufferInfo* This,LONG EventBias) {
16357     return This->lpVtbl->put_EventBias(This,EventBias);
16358 }
16359 #endif
16360 #endif
16361 
16362 #endif
16363 
16364 HRESULT STDMETHODCALLTYPE ISpeechAudioBufferInfo_get_MinNotification_Proxy(
16365     ISpeechAudioBufferInfo* This,
16366     LONG *MinNotification);
16367 void __RPC_STUB ISpeechAudioBufferInfo_get_MinNotification_Stub(
16368     IRpcStubBuffer* This,
16369     IRpcChannelBuffer* pRpcChannelBuffer,
16370     PRPC_MESSAGE pRpcMessage,
16371     DWORD* pdwStubPhase);
16372 HRESULT STDMETHODCALLTYPE ISpeechAudioBufferInfo_put_MinNotification_Proxy(
16373     ISpeechAudioBufferInfo* This,
16374     LONG MinNotification);
16375 void __RPC_STUB ISpeechAudioBufferInfo_put_MinNotification_Stub(
16376     IRpcStubBuffer* This,
16377     IRpcChannelBuffer* pRpcChannelBuffer,
16378     PRPC_MESSAGE pRpcMessage,
16379     DWORD* pdwStubPhase);
16380 HRESULT STDMETHODCALLTYPE ISpeechAudioBufferInfo_get_BufferSize_Proxy(
16381     ISpeechAudioBufferInfo* This,
16382     LONG *BufferSize);
16383 void __RPC_STUB ISpeechAudioBufferInfo_get_BufferSize_Stub(
16384     IRpcStubBuffer* This,
16385     IRpcChannelBuffer* pRpcChannelBuffer,
16386     PRPC_MESSAGE pRpcMessage,
16387     DWORD* pdwStubPhase);
16388 HRESULT STDMETHODCALLTYPE ISpeechAudioBufferInfo_put_BufferSize_Proxy(
16389     ISpeechAudioBufferInfo* This,
16390     LONG BufferSize);
16391 void __RPC_STUB ISpeechAudioBufferInfo_put_BufferSize_Stub(
16392     IRpcStubBuffer* This,
16393     IRpcChannelBuffer* pRpcChannelBuffer,
16394     PRPC_MESSAGE pRpcMessage,
16395     DWORD* pdwStubPhase);
16396 HRESULT STDMETHODCALLTYPE ISpeechAudioBufferInfo_get_EventBias_Proxy(
16397     ISpeechAudioBufferInfo* This,
16398     LONG *EventBias);
16399 void __RPC_STUB ISpeechAudioBufferInfo_get_EventBias_Stub(
16400     IRpcStubBuffer* This,
16401     IRpcChannelBuffer* pRpcChannelBuffer,
16402     PRPC_MESSAGE pRpcMessage,
16403     DWORD* pdwStubPhase);
16404 HRESULT STDMETHODCALLTYPE ISpeechAudioBufferInfo_put_EventBias_Proxy(
16405     ISpeechAudioBufferInfo* This,
16406     LONG EventBias);
16407 void __RPC_STUB ISpeechAudioBufferInfo_put_EventBias_Stub(
16408     IRpcStubBuffer* This,
16409     IRpcChannelBuffer* pRpcChannelBuffer,
16410     PRPC_MESSAGE pRpcMessage,
16411     DWORD* pdwStubPhase);
16412 
16413 #endif  /* __ISpeechAudioBufferInfo_INTERFACE_DEFINED__ */
16414 
16415 /*****************************************************************************
16416  * ISpeechWaveFormatEx interface
16417  */
16418 #ifndef __ISpeechWaveFormatEx_INTERFACE_DEFINED__
16419 #define __ISpeechWaveFormatEx_INTERFACE_DEFINED__
16420 
16421 DEFINE_GUID(IID_ISpeechWaveFormatEx, 0x7a1ef0d5, 0x1581, 0x4741, 0x88,0xe4, 0x20,0x9a,0x49,0xf1,0x1a,0x10);
16422 #if defined(__cplusplus) && !defined(CINTERFACE)
16423 MIDL_INTERFACE("7a1ef0d5-1581-4741-88e4-209a49f11a10")
16424 ISpeechWaveFormatEx : public IDispatch
16425 {
16426     virtual HRESULT STDMETHODCALLTYPE get_FormatTag(
16427         short *FormatTag) = 0;
16428 
16429     virtual HRESULT STDMETHODCALLTYPE put_FormatTag(
16430         short FormatTag) = 0;
16431 
16432     virtual HRESULT STDMETHODCALLTYPE get_Channels(
16433         short *Channels) = 0;
16434 
16435     virtual HRESULT STDMETHODCALLTYPE put_Channels(
16436         short Channels) = 0;
16437 
16438     virtual HRESULT STDMETHODCALLTYPE get_SamplesPerSec(
16439         LONG *SamplesPerSec) = 0;
16440 
16441     virtual HRESULT STDMETHODCALLTYPE put_SamplesPerSec(
16442         LONG SamplesPerSec) = 0;
16443 
16444     virtual HRESULT STDMETHODCALLTYPE get_AvgBytesPerSec(
16445         LONG *AvgBytesPerSec) = 0;
16446 
16447     virtual HRESULT STDMETHODCALLTYPE put_AvgBytesPerSec(
16448         LONG AvgBytesPerSec) = 0;
16449 
16450     virtual HRESULT STDMETHODCALLTYPE get_BlockAlign(
16451         short *BlockAlign) = 0;
16452 
16453     virtual HRESULT STDMETHODCALLTYPE put_BlockAlign(
16454         short BlockAlign) = 0;
16455 
16456     virtual HRESULT STDMETHODCALLTYPE get_BitsPerSample(
16457         short *BitsPerSample) = 0;
16458 
16459     virtual HRESULT STDMETHODCALLTYPE put_BitsPerSample(
16460         short BitsPerSample) = 0;
16461 
16462     virtual HRESULT STDMETHODCALLTYPE get_ExtraData(
16463         VARIANT *ExtraData) = 0;
16464 
16465     virtual HRESULT STDMETHODCALLTYPE put_ExtraData(
16466         VARIANT ExtraData) = 0;
16467 
16468 };
16469 #ifdef __CRT_UUID_DECL
16470 __CRT_UUID_DECL(ISpeechWaveFormatEx, 0x7a1ef0d5, 0x1581, 0x4741, 0x88,0xe4, 0x20,0x9a,0x49,0xf1,0x1a,0x10)
16471 #endif
16472 #else
16473 typedef struct ISpeechWaveFormatExVtbl {
16474     BEGIN_INTERFACE
16475 
16476     /*** IUnknown methods ***/
16477     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16478         ISpeechWaveFormatEx* This,
16479         REFIID riid,
16480         void **ppvObject);
16481 
16482     ULONG (STDMETHODCALLTYPE *AddRef)(
16483         ISpeechWaveFormatEx* This);
16484 
16485     ULONG (STDMETHODCALLTYPE *Release)(
16486         ISpeechWaveFormatEx* This);
16487 
16488     /*** IDispatch methods ***/
16489     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16490         ISpeechWaveFormatEx* This,
16491         UINT *pctinfo);
16492 
16493     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16494         ISpeechWaveFormatEx* This,
16495         UINT iTInfo,
16496         LCID lcid,
16497         ITypeInfo **ppTInfo);
16498 
16499     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16500         ISpeechWaveFormatEx* This,
16501         REFIID riid,
16502         LPOLESTR *rgszNames,
16503         UINT cNames,
16504         LCID lcid,
16505         DISPID *rgDispId);
16506 
16507     HRESULT (STDMETHODCALLTYPE *Invoke)(
16508         ISpeechWaveFormatEx* This,
16509         DISPID dispIdMember,
16510         REFIID riid,
16511         LCID lcid,
16512         WORD wFlags,
16513         DISPPARAMS *pDispParams,
16514         VARIANT *pVarResult,
16515         EXCEPINFO *pExcepInfo,
16516         UINT *puArgErr);
16517 
16518     /*** ISpeechWaveFormatEx methods ***/
16519     HRESULT (STDMETHODCALLTYPE *get_FormatTag)(
16520         ISpeechWaveFormatEx* This,
16521         short *FormatTag);
16522 
16523     HRESULT (STDMETHODCALLTYPE *put_FormatTag)(
16524         ISpeechWaveFormatEx* This,
16525         short FormatTag);
16526 
16527     HRESULT (STDMETHODCALLTYPE *get_Channels)(
16528         ISpeechWaveFormatEx* This,
16529         short *Channels);
16530 
16531     HRESULT (STDMETHODCALLTYPE *put_Channels)(
16532         ISpeechWaveFormatEx* This,
16533         short Channels);
16534 
16535     HRESULT (STDMETHODCALLTYPE *get_SamplesPerSec)(
16536         ISpeechWaveFormatEx* This,
16537         LONG *SamplesPerSec);
16538 
16539     HRESULT (STDMETHODCALLTYPE *put_SamplesPerSec)(
16540         ISpeechWaveFormatEx* This,
16541         LONG SamplesPerSec);
16542 
16543     HRESULT (STDMETHODCALLTYPE *get_AvgBytesPerSec)(
16544         ISpeechWaveFormatEx* This,
16545         LONG *AvgBytesPerSec);
16546 
16547     HRESULT (STDMETHODCALLTYPE *put_AvgBytesPerSec)(
16548         ISpeechWaveFormatEx* This,
16549         LONG AvgBytesPerSec);
16550 
16551     HRESULT (STDMETHODCALLTYPE *get_BlockAlign)(
16552         ISpeechWaveFormatEx* This,
16553         short *BlockAlign);
16554 
16555     HRESULT (STDMETHODCALLTYPE *put_BlockAlign)(
16556         ISpeechWaveFormatEx* This,
16557         short BlockAlign);
16558 
16559     HRESULT (STDMETHODCALLTYPE *get_BitsPerSample)(
16560         ISpeechWaveFormatEx* This,
16561         short *BitsPerSample);
16562 
16563     HRESULT (STDMETHODCALLTYPE *put_BitsPerSample)(
16564         ISpeechWaveFormatEx* This,
16565         short BitsPerSample);
16566 
16567     HRESULT (STDMETHODCALLTYPE *get_ExtraData)(
16568         ISpeechWaveFormatEx* This,
16569         VARIANT *ExtraData);
16570 
16571     HRESULT (STDMETHODCALLTYPE *put_ExtraData)(
16572         ISpeechWaveFormatEx* This,
16573         VARIANT ExtraData);
16574 
16575     END_INTERFACE
16576 } ISpeechWaveFormatExVtbl;
16577 interface ISpeechWaveFormatEx {
16578     CONST_VTBL ISpeechWaveFormatExVtbl* lpVtbl;
16579 };
16580 
16581 #ifdef COBJMACROS
16582 #ifndef WIDL_C_INLINE_WRAPPERS
16583 /*** IUnknown methods ***/
16584 #define ISpeechWaveFormatEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16585 #define ISpeechWaveFormatEx_AddRef(This) (This)->lpVtbl->AddRef(This)
16586 #define ISpeechWaveFormatEx_Release(This) (This)->lpVtbl->Release(This)
16587 /*** IDispatch methods ***/
16588 #define ISpeechWaveFormatEx_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16589 #define ISpeechWaveFormatEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16590 #define ISpeechWaveFormatEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16591 #define ISpeechWaveFormatEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16592 /*** ISpeechWaveFormatEx methods ***/
16593 #define ISpeechWaveFormatEx_get_FormatTag(This,FormatTag) (This)->lpVtbl->get_FormatTag(This,FormatTag)
16594 #define ISpeechWaveFormatEx_put_FormatTag(This,FormatTag) (This)->lpVtbl->put_FormatTag(This,FormatTag)
16595 #define ISpeechWaveFormatEx_get_Channels(This,Channels) (This)->lpVtbl->get_Channels(This,Channels)
16596 #define ISpeechWaveFormatEx_put_Channels(This,Channels) (This)->lpVtbl->put_Channels(This,Channels)
16597 #define ISpeechWaveFormatEx_get_SamplesPerSec(This,SamplesPerSec) (This)->lpVtbl->get_SamplesPerSec(This,SamplesPerSec)
16598 #define ISpeechWaveFormatEx_put_SamplesPerSec(This,SamplesPerSec) (This)->lpVtbl->put_SamplesPerSec(This,SamplesPerSec)
16599 #define ISpeechWaveFormatEx_get_AvgBytesPerSec(This,AvgBytesPerSec) (This)->lpVtbl->get_AvgBytesPerSec(This,AvgBytesPerSec)
16600 #define ISpeechWaveFormatEx_put_AvgBytesPerSec(This,AvgBytesPerSec) (This)->lpVtbl->put_AvgBytesPerSec(This,AvgBytesPerSec)
16601 #define ISpeechWaveFormatEx_get_BlockAlign(This,BlockAlign) (This)->lpVtbl->get_BlockAlign(This,BlockAlign)
16602 #define ISpeechWaveFormatEx_put_BlockAlign(This,BlockAlign) (This)->lpVtbl->put_BlockAlign(This,BlockAlign)
16603 #define ISpeechWaveFormatEx_get_BitsPerSample(This,BitsPerSample) (This)->lpVtbl->get_BitsPerSample(This,BitsPerSample)
16604 #define ISpeechWaveFormatEx_put_BitsPerSample(This,BitsPerSample) (This)->lpVtbl->put_BitsPerSample(This,BitsPerSample)
16605 #define ISpeechWaveFormatEx_get_ExtraData(This,ExtraData) (This)->lpVtbl->get_ExtraData(This,ExtraData)
16606 #define ISpeechWaveFormatEx_put_ExtraData(This,ExtraData) (This)->lpVtbl->put_ExtraData(This,ExtraData)
16607 #else
16608 /*** IUnknown methods ***/
16609 static FORCEINLINE HRESULT ISpeechWaveFormatEx_QueryInterface(ISpeechWaveFormatEx* This,REFIID riid,void **ppvObject) {
16610     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16611 }
16612 static FORCEINLINE ULONG ISpeechWaveFormatEx_AddRef(ISpeechWaveFormatEx* This) {
16613     return This->lpVtbl->AddRef(This);
16614 }
16615 static FORCEINLINE ULONG ISpeechWaveFormatEx_Release(ISpeechWaveFormatEx* This) {
16616     return This->lpVtbl->Release(This);
16617 }
16618 /*** IDispatch methods ***/
16619 static FORCEINLINE HRESULT ISpeechWaveFormatEx_GetTypeInfoCount(ISpeechWaveFormatEx* This,UINT *pctinfo) {
16620     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16621 }
16622 static FORCEINLINE HRESULT ISpeechWaveFormatEx_GetTypeInfo(ISpeechWaveFormatEx* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16623     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16624 }
16625 static FORCEINLINE HRESULT ISpeechWaveFormatEx_GetIDsOfNames(ISpeechWaveFormatEx* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16626     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16627 }
16628 static FORCEINLINE HRESULT ISpeechWaveFormatEx_Invoke(ISpeechWaveFormatEx* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16629     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16630 }
16631 /*** ISpeechWaveFormatEx methods ***/
16632 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_FormatTag(ISpeechWaveFormatEx* This,short *FormatTag) {
16633     return This->lpVtbl->get_FormatTag(This,FormatTag);
16634 }
16635 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_FormatTag(ISpeechWaveFormatEx* This,short FormatTag) {
16636     return This->lpVtbl->put_FormatTag(This,FormatTag);
16637 }
16638 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_Channels(ISpeechWaveFormatEx* This,short *Channels) {
16639     return This->lpVtbl->get_Channels(This,Channels);
16640 }
16641 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_Channels(ISpeechWaveFormatEx* This,short Channels) {
16642     return This->lpVtbl->put_Channels(This,Channels);
16643 }
16644 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_SamplesPerSec(ISpeechWaveFormatEx* This,LONG *SamplesPerSec) {
16645     return This->lpVtbl->get_SamplesPerSec(This,SamplesPerSec);
16646 }
16647 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_SamplesPerSec(ISpeechWaveFormatEx* This,LONG SamplesPerSec) {
16648     return This->lpVtbl->put_SamplesPerSec(This,SamplesPerSec);
16649 }
16650 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_AvgBytesPerSec(ISpeechWaveFormatEx* This,LONG *AvgBytesPerSec) {
16651     return This->lpVtbl->get_AvgBytesPerSec(This,AvgBytesPerSec);
16652 }
16653 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_AvgBytesPerSec(ISpeechWaveFormatEx* This,LONG AvgBytesPerSec) {
16654     return This->lpVtbl->put_AvgBytesPerSec(This,AvgBytesPerSec);
16655 }
16656 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_BlockAlign(ISpeechWaveFormatEx* This,short *BlockAlign) {
16657     return This->lpVtbl->get_BlockAlign(This,BlockAlign);
16658 }
16659 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_BlockAlign(ISpeechWaveFormatEx* This,short BlockAlign) {
16660     return This->lpVtbl->put_BlockAlign(This,BlockAlign);
16661 }
16662 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_BitsPerSample(ISpeechWaveFormatEx* This,short *BitsPerSample) {
16663     return This->lpVtbl->get_BitsPerSample(This,BitsPerSample);
16664 }
16665 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_BitsPerSample(ISpeechWaveFormatEx* This,short BitsPerSample) {
16666     return This->lpVtbl->put_BitsPerSample(This,BitsPerSample);
16667 }
16668 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_ExtraData(ISpeechWaveFormatEx* This,VARIANT *ExtraData) {
16669     return This->lpVtbl->get_ExtraData(This,ExtraData);
16670 }
16671 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_ExtraData(ISpeechWaveFormatEx* This,VARIANT ExtraData) {
16672     return This->lpVtbl->put_ExtraData(This,ExtraData);
16673 }
16674 #endif
16675 #endif
16676 
16677 #endif
16678 
16679 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_get_FormatTag_Proxy(
16680     ISpeechWaveFormatEx* This,
16681     short *FormatTag);
16682 void __RPC_STUB ISpeechWaveFormatEx_get_FormatTag_Stub(
16683     IRpcStubBuffer* This,
16684     IRpcChannelBuffer* pRpcChannelBuffer,
16685     PRPC_MESSAGE pRpcMessage,
16686     DWORD* pdwStubPhase);
16687 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_put_FormatTag_Proxy(
16688     ISpeechWaveFormatEx* This,
16689     short FormatTag);
16690 void __RPC_STUB ISpeechWaveFormatEx_put_FormatTag_Stub(
16691     IRpcStubBuffer* This,
16692     IRpcChannelBuffer* pRpcChannelBuffer,
16693     PRPC_MESSAGE pRpcMessage,
16694     DWORD* pdwStubPhase);
16695 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_get_Channels_Proxy(
16696     ISpeechWaveFormatEx* This,
16697     short *Channels);
16698 void __RPC_STUB ISpeechWaveFormatEx_get_Channels_Stub(
16699     IRpcStubBuffer* This,
16700     IRpcChannelBuffer* pRpcChannelBuffer,
16701     PRPC_MESSAGE pRpcMessage,
16702     DWORD* pdwStubPhase);
16703 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_put_Channels_Proxy(
16704     ISpeechWaveFormatEx* This,
16705     short Channels);
16706 void __RPC_STUB ISpeechWaveFormatEx_put_Channels_Stub(
16707     IRpcStubBuffer* This,
16708     IRpcChannelBuffer* pRpcChannelBuffer,
16709     PRPC_MESSAGE pRpcMessage,
16710     DWORD* pdwStubPhase);
16711 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_get_SamplesPerSec_Proxy(
16712     ISpeechWaveFormatEx* This,
16713     LONG *SamplesPerSec);
16714 void __RPC_STUB ISpeechWaveFormatEx_get_SamplesPerSec_Stub(
16715     IRpcStubBuffer* This,
16716     IRpcChannelBuffer* pRpcChannelBuffer,
16717     PRPC_MESSAGE pRpcMessage,
16718     DWORD* pdwStubPhase);
16719 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_put_SamplesPerSec_Proxy(
16720     ISpeechWaveFormatEx* This,
16721     LONG SamplesPerSec);
16722 void __RPC_STUB ISpeechWaveFormatEx_put_SamplesPerSec_Stub(
16723     IRpcStubBuffer* This,
16724     IRpcChannelBuffer* pRpcChannelBuffer,
16725     PRPC_MESSAGE pRpcMessage,
16726     DWORD* pdwStubPhase);
16727 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_get_AvgBytesPerSec_Proxy(
16728     ISpeechWaveFormatEx* This,
16729     LONG *AvgBytesPerSec);
16730 void __RPC_STUB ISpeechWaveFormatEx_get_AvgBytesPerSec_Stub(
16731     IRpcStubBuffer* This,
16732     IRpcChannelBuffer* pRpcChannelBuffer,
16733     PRPC_MESSAGE pRpcMessage,
16734     DWORD* pdwStubPhase);
16735 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_put_AvgBytesPerSec_Proxy(
16736     ISpeechWaveFormatEx* This,
16737     LONG AvgBytesPerSec);
16738 void __RPC_STUB ISpeechWaveFormatEx_put_AvgBytesPerSec_Stub(
16739     IRpcStubBuffer* This,
16740     IRpcChannelBuffer* pRpcChannelBuffer,
16741     PRPC_MESSAGE pRpcMessage,
16742     DWORD* pdwStubPhase);
16743 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_get_BlockAlign_Proxy(
16744     ISpeechWaveFormatEx* This,
16745     short *BlockAlign);
16746 void __RPC_STUB ISpeechWaveFormatEx_get_BlockAlign_Stub(
16747     IRpcStubBuffer* This,
16748     IRpcChannelBuffer* pRpcChannelBuffer,
16749     PRPC_MESSAGE pRpcMessage,
16750     DWORD* pdwStubPhase);
16751 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_put_BlockAlign_Proxy(
16752     ISpeechWaveFormatEx* This,
16753     short BlockAlign);
16754 void __RPC_STUB ISpeechWaveFormatEx_put_BlockAlign_Stub(
16755     IRpcStubBuffer* This,
16756     IRpcChannelBuffer* pRpcChannelBuffer,
16757     PRPC_MESSAGE pRpcMessage,
16758     DWORD* pdwStubPhase);
16759 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_get_BitsPerSample_Proxy(
16760     ISpeechWaveFormatEx* This,
16761     short *BitsPerSample);
16762 void __RPC_STUB ISpeechWaveFormatEx_get_BitsPerSample_Stub(
16763     IRpcStubBuffer* This,
16764     IRpcChannelBuffer* pRpcChannelBuffer,
16765     PRPC_MESSAGE pRpcMessage,
16766     DWORD* pdwStubPhase);
16767 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_put_BitsPerSample_Proxy(
16768     ISpeechWaveFormatEx* This,
16769     short BitsPerSample);
16770 void __RPC_STUB ISpeechWaveFormatEx_put_BitsPerSample_Stub(
16771     IRpcStubBuffer* This,
16772     IRpcChannelBuffer* pRpcChannelBuffer,
16773     PRPC_MESSAGE pRpcMessage,
16774     DWORD* pdwStubPhase);
16775 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_get_ExtraData_Proxy(
16776     ISpeechWaveFormatEx* This,
16777     VARIANT *ExtraData);
16778 void __RPC_STUB ISpeechWaveFormatEx_get_ExtraData_Stub(
16779     IRpcStubBuffer* This,
16780     IRpcChannelBuffer* pRpcChannelBuffer,
16781     PRPC_MESSAGE pRpcMessage,
16782     DWORD* pdwStubPhase);
16783 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_put_ExtraData_Proxy(
16784     ISpeechWaveFormatEx* This,
16785     VARIANT ExtraData);
16786 void __RPC_STUB ISpeechWaveFormatEx_put_ExtraData_Stub(
16787     IRpcStubBuffer* This,
16788     IRpcChannelBuffer* pRpcChannelBuffer,
16789     PRPC_MESSAGE pRpcMessage,
16790     DWORD* pdwStubPhase);
16791 
16792 #endif  /* __ISpeechWaveFormatEx_INTERFACE_DEFINED__ */
16793 
16794 /*****************************************************************************
16795  * ISpeechVoice interface
16796  */
16797 #ifndef __ISpeechVoice_INTERFACE_DEFINED__
16798 #define __ISpeechVoice_INTERFACE_DEFINED__
16799 
16800 DEFINE_GUID(IID_ISpeechVoice, 0x269316d8, 0x57bd, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96);
16801 #if defined(__cplusplus) && !defined(CINTERFACE)
16802 MIDL_INTERFACE("269316d8-57bd-11d2-9eee-00c04f797396")
16803 ISpeechVoice : public IDispatch
16804 {
16805     virtual HRESULT STDMETHODCALLTYPE get_Status(
16806         ISpeechVoiceStatus **Status) = 0;
16807 
16808     virtual HRESULT STDMETHODCALLTYPE get_Voice(
16809         ISpeechObjectToken **Voice) = 0;
16810 
16811     virtual HRESULT STDMETHODCALLTYPE putref_Voice(
16812         ISpeechObjectToken *Voice) = 0;
16813 
16814     virtual HRESULT STDMETHODCALLTYPE get_AudioOutput(
16815         ISpeechObjectToken **AudioOutput) = 0;
16816 
16817     virtual HRESULT STDMETHODCALLTYPE putref_AudioOutput(
16818         ISpeechObjectToken *AudioOutput) = 0;
16819 
16820     virtual HRESULT STDMETHODCALLTYPE get_AudioOutputStream(
16821         ISpeechBaseStream **AudioOutputStream) = 0;
16822 
16823     virtual HRESULT STDMETHODCALLTYPE putref_AudioOutputStream(
16824         ISpeechBaseStream *AudioOutputStream) = 0;
16825 
16826     virtual HRESULT STDMETHODCALLTYPE get_Rate(
16827         LONG *Rate) = 0;
16828 
16829     virtual HRESULT STDMETHODCALLTYPE put_Rate(
16830         LONG Rate) = 0;
16831 
16832     virtual HRESULT STDMETHODCALLTYPE get_Volume(
16833         LONG *Volume) = 0;
16834 
16835     virtual HRESULT STDMETHODCALLTYPE put_Volume(
16836         LONG Volume) = 0;
16837 
16838     virtual HRESULT STDMETHODCALLTYPE put_AllowAudioOutputFormatChangesOnNextSet(
16839         VARIANT_BOOL Allow) = 0;
16840 
16841     virtual HRESULT STDMETHODCALLTYPE get_AllowAudioOutputFormatChangesOnNextSet(
16842         VARIANT_BOOL *Allow) = 0;
16843 
16844     virtual HRESULT STDMETHODCALLTYPE get_EventInterests(
16845         SpeechVoiceEvents *EventInterestFlags) = 0;
16846 
16847     virtual HRESULT STDMETHODCALLTYPE put_EventInterests(
16848         SpeechVoiceEvents EventInterestFlags) = 0;
16849 
16850     virtual HRESULT STDMETHODCALLTYPE put_Priority(
16851         SpeechVoicePriority Priority) = 0;
16852 
16853     virtual HRESULT STDMETHODCALLTYPE get_Priority(
16854         SpeechVoicePriority *Priority) = 0;
16855 
16856     virtual HRESULT STDMETHODCALLTYPE put_AlertBoundary(
16857         SpeechVoiceEvents Boundary) = 0;
16858 
16859     virtual HRESULT STDMETHODCALLTYPE get_AlertBoundary(
16860         SpeechVoiceEvents *Boundary) = 0;
16861 
16862     virtual HRESULT STDMETHODCALLTYPE put_SynchronousSpeakTimeout(
16863         LONG msTimeout) = 0;
16864 
16865     virtual HRESULT STDMETHODCALLTYPE get_SynchronousSpeakTimeout(
16866         LONG *msTimeout) = 0;
16867 
16868     virtual HRESULT STDMETHODCALLTYPE Speak(
16869         BSTR Text,
16870         SpeechVoiceSpeakFlags Flags,
16871         LONG *StreamNumber) = 0;
16872 
16873     virtual HRESULT STDMETHODCALLTYPE SpeakStream(
16874         ISpeechBaseStream *Stream,
16875         SpeechVoiceSpeakFlags Flags,
16876         LONG *StreamNumber) = 0;
16877 
16878     virtual HRESULT STDMETHODCALLTYPE Pause(
16879         ) = 0;
16880 
16881     virtual HRESULT STDMETHODCALLTYPE Resume(
16882         ) = 0;
16883 
16884     virtual HRESULT STDMETHODCALLTYPE Skip(
16885         const BSTR Type,
16886         LONG NumItems,
16887         LONG *NumSkipped) = 0;
16888 
16889     virtual HRESULT STDMETHODCALLTYPE GetVoices(
16890         BSTR RequiredAttributes,
16891         BSTR OptionalAttributes,
16892         ISpeechObjectTokens **ObjectTokens) = 0;
16893 
16894     virtual HRESULT STDMETHODCALLTYPE GetAudioOutputs(
16895         BSTR RequiredAttributes,
16896         BSTR OptionalAttributes,
16897         ISpeechObjectTokens **ObjectTokens) = 0;
16898 
16899     virtual HRESULT STDMETHODCALLTYPE WaitUntilDone(
16900         LONG msTimeout,
16901         VARIANT_BOOL *Done) = 0;
16902 
16903     virtual HRESULT STDMETHODCALLTYPE SpeakCompleteEvent(
16904         LONG *Handle) = 0;
16905 
16906     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
16907         const BSTR TypeOfUI,
16908         const VARIANT *ExtraData,
16909         VARIANT_BOOL *Supported) = 0;
16910 
16911     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
16912         LONG hWndParent,
16913         BSTR Title,
16914         const BSTR TypeOfUI,
16915         const VARIANT *ExtraData = 0) = 0;
16916 
16917 };
16918 #ifdef __CRT_UUID_DECL
16919 __CRT_UUID_DECL(ISpeechVoice, 0x269316d8, 0x57bd, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96)
16920 #endif
16921 #else
16922 typedef struct ISpeechVoiceVtbl {
16923     BEGIN_INTERFACE
16924 
16925     /*** IUnknown methods ***/
16926     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16927         ISpeechVoice* This,
16928         REFIID riid,
16929         void **ppvObject);
16930 
16931     ULONG (STDMETHODCALLTYPE *AddRef)(
16932         ISpeechVoice* This);
16933 
16934     ULONG (STDMETHODCALLTYPE *Release)(
16935         ISpeechVoice* This);
16936 
16937     /*** IDispatch methods ***/
16938     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16939         ISpeechVoice* This,
16940         UINT *pctinfo);
16941 
16942     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16943         ISpeechVoice* This,
16944         UINT iTInfo,
16945         LCID lcid,
16946         ITypeInfo **ppTInfo);
16947 
16948     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16949         ISpeechVoice* This,
16950         REFIID riid,
16951         LPOLESTR *rgszNames,
16952         UINT cNames,
16953         LCID lcid,
16954         DISPID *rgDispId);
16955 
16956     HRESULT (STDMETHODCALLTYPE *Invoke)(
16957         ISpeechVoice* This,
16958         DISPID dispIdMember,
16959         REFIID riid,
16960         LCID lcid,
16961         WORD wFlags,
16962         DISPPARAMS *pDispParams,
16963         VARIANT *pVarResult,
16964         EXCEPINFO *pExcepInfo,
16965         UINT *puArgErr);
16966 
16967     /*** ISpeechVoice methods ***/
16968     HRESULT (STDMETHODCALLTYPE *get_Status)(
16969         ISpeechVoice* This,
16970         ISpeechVoiceStatus **Status);
16971 
16972     HRESULT (STDMETHODCALLTYPE *get_Voice)(
16973         ISpeechVoice* This,
16974         ISpeechObjectToken **Voice);
16975 
16976     HRESULT (STDMETHODCALLTYPE *putref_Voice)(
16977         ISpeechVoice* This,
16978         ISpeechObjectToken *Voice);
16979 
16980     HRESULT (STDMETHODCALLTYPE *get_AudioOutput)(
16981         ISpeechVoice* This,
16982         ISpeechObjectToken **AudioOutput);
16983 
16984     HRESULT (STDMETHODCALLTYPE *putref_AudioOutput)(
16985         ISpeechVoice* This,
16986         ISpeechObjectToken *AudioOutput);
16987 
16988     HRESULT (STDMETHODCALLTYPE *get_AudioOutputStream)(
16989         ISpeechVoice* This,
16990         ISpeechBaseStream **AudioOutputStream);
16991 
16992     HRESULT (STDMETHODCALLTYPE *putref_AudioOutputStream)(
16993         ISpeechVoice* This,
16994         ISpeechBaseStream *AudioOutputStream);
16995 
16996     HRESULT (STDMETHODCALLTYPE *get_Rate)(
16997         ISpeechVoice* This,
16998         LONG *Rate);
16999 
17000     HRESULT (STDMETHODCALLTYPE *put_Rate)(
17001         ISpeechVoice* This,
17002         LONG Rate);
17003 
17004     HRESULT (STDMETHODCALLTYPE *get_Volume)(
17005         ISpeechVoice* This,
17006         LONG *Volume);
17007 
17008     HRESULT (STDMETHODCALLTYPE *put_Volume)(
17009         ISpeechVoice* This,
17010         LONG Volume);
17011 
17012     HRESULT (STDMETHODCALLTYPE *put_AllowAudioOutputFormatChangesOnNextSet)(
17013         ISpeechVoice* This,
17014         VARIANT_BOOL Allow);
17015 
17016     HRESULT (STDMETHODCALLTYPE *get_AllowAudioOutputFormatChangesOnNextSet)(
17017         ISpeechVoice* This,
17018         VARIANT_BOOL *Allow);
17019 
17020     HRESULT (STDMETHODCALLTYPE *get_EventInterests)(
17021         ISpeechVoice* This,
17022         SpeechVoiceEvents *EventInterestFlags);
17023 
17024     HRESULT (STDMETHODCALLTYPE *put_EventInterests)(
17025         ISpeechVoice* This,
17026         SpeechVoiceEvents EventInterestFlags);
17027 
17028     HRESULT (STDMETHODCALLTYPE *put_Priority)(
17029         ISpeechVoice* This,
17030         SpeechVoicePriority Priority);
17031 
17032     HRESULT (STDMETHODCALLTYPE *get_Priority)(
17033         ISpeechVoice* This,
17034         SpeechVoicePriority *Priority);
17035 
17036     HRESULT (STDMETHODCALLTYPE *put_AlertBoundary)(
17037         ISpeechVoice* This,
17038         SpeechVoiceEvents Boundary);
17039 
17040     HRESULT (STDMETHODCALLTYPE *get_AlertBoundary)(
17041         ISpeechVoice* This,
17042         SpeechVoiceEvents *Boundary);
17043 
17044     HRESULT (STDMETHODCALLTYPE *put_SynchronousSpeakTimeout)(
17045         ISpeechVoice* This,
17046         LONG msTimeout);
17047 
17048     HRESULT (STDMETHODCALLTYPE *get_SynchronousSpeakTimeout)(
17049         ISpeechVoice* This,
17050         LONG *msTimeout);
17051 
17052     HRESULT (STDMETHODCALLTYPE *Speak)(
17053         ISpeechVoice* This,
17054         BSTR Text,
17055         SpeechVoiceSpeakFlags Flags,
17056         LONG *StreamNumber);
17057 
17058     HRESULT (STDMETHODCALLTYPE *SpeakStream)(
17059         ISpeechVoice* This,
17060         ISpeechBaseStream *Stream,
17061         SpeechVoiceSpeakFlags Flags,
17062         LONG *StreamNumber);
17063 
17064     HRESULT (STDMETHODCALLTYPE *Pause)(
17065         ISpeechVoice* This);
17066 
17067     HRESULT (STDMETHODCALLTYPE *Resume)(
17068         ISpeechVoice* This);
17069 
17070     HRESULT (STDMETHODCALLTYPE *Skip)(
17071         ISpeechVoice* This,
17072         const BSTR Type,
17073         LONG NumItems,
17074         LONG *NumSkipped);
17075 
17076     HRESULT (STDMETHODCALLTYPE *GetVoices)(
17077         ISpeechVoice* This,
17078         BSTR RequiredAttributes,
17079         BSTR OptionalAttributes,
17080         ISpeechObjectTokens **ObjectTokens);
17081 
17082     HRESULT (STDMETHODCALLTYPE *GetAudioOutputs)(
17083         ISpeechVoice* This,
17084         BSTR RequiredAttributes,
17085         BSTR OptionalAttributes,
17086         ISpeechObjectTokens **ObjectTokens);
17087 
17088     HRESULT (STDMETHODCALLTYPE *WaitUntilDone)(
17089         ISpeechVoice* This,
17090         LONG msTimeout,
17091         VARIANT_BOOL *Done);
17092 
17093     HRESULT (STDMETHODCALLTYPE *SpeakCompleteEvent)(
17094         ISpeechVoice* This,
17095         LONG *Handle);
17096 
17097     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
17098         ISpeechVoice* This,
17099         const BSTR TypeOfUI,
17100         const VARIANT *ExtraData,
17101         VARIANT_BOOL *Supported);
17102 
17103     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
17104         ISpeechVoice* This,
17105         LONG hWndParent,
17106         BSTR Title,
17107         const BSTR TypeOfUI,
17108         const VARIANT *ExtraData);
17109 
17110     END_INTERFACE
17111 } ISpeechVoiceVtbl;
17112 interface ISpeechVoice {
17113     CONST_VTBL ISpeechVoiceVtbl* lpVtbl;
17114 };
17115 
17116 #ifdef COBJMACROS
17117 #ifndef WIDL_C_INLINE_WRAPPERS
17118 /*** IUnknown methods ***/
17119 #define ISpeechVoice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17120 #define ISpeechVoice_AddRef(This) (This)->lpVtbl->AddRef(This)
17121 #define ISpeechVoice_Release(This) (This)->lpVtbl->Release(This)
17122 /*** IDispatch methods ***/
17123 #define ISpeechVoice_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17124 #define ISpeechVoice_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17125 #define ISpeechVoice_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17126 #define ISpeechVoice_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17127 /*** ISpeechVoice methods ***/
17128 #define ISpeechVoice_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
17129 #define ISpeechVoice_get_Voice(This,Voice) (This)->lpVtbl->get_Voice(This,Voice)
17130 #define ISpeechVoice_putref_Voice(This,Voice) (This)->lpVtbl->putref_Voice(This,Voice)
17131 #define ISpeechVoice_get_AudioOutput(This,AudioOutput) (This)->lpVtbl->get_AudioOutput(This,AudioOutput)
17132 #define ISpeechVoice_putref_AudioOutput(This,AudioOutput) (This)->lpVtbl->putref_AudioOutput(This,AudioOutput)
17133 #define ISpeechVoice_get_AudioOutputStream(This,AudioOutputStream) (This)->lpVtbl->get_AudioOutputStream(This,AudioOutputStream)
17134 #define ISpeechVoice_putref_AudioOutputStream(This,AudioOutputStream) (This)->lpVtbl->putref_AudioOutputStream(This,AudioOutputStream)
17135 #define ISpeechVoice_get_Rate(This,Rate) (This)->lpVtbl->get_Rate(This,Rate)
17136 #define ISpeechVoice_put_Rate(This,Rate) (This)->lpVtbl->put_Rate(This,Rate)
17137 #define ISpeechVoice_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
17138 #define ISpeechVoice_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
17139 #define ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->put_AllowAudioOutputFormatChangesOnNextSet(This,Allow)
17140 #define ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->get_AllowAudioOutputFormatChangesOnNextSet(This,Allow)
17141 #define ISpeechVoice_get_EventInterests(This,EventInterestFlags) (This)->lpVtbl->get_EventInterests(This,EventInterestFlags)
17142 #define ISpeechVoice_put_EventInterests(This,EventInterestFlags) (This)->lpVtbl->put_EventInterests(This,EventInterestFlags)
17143 #define ISpeechVoice_put_Priority(This,Priority) (This)->lpVtbl->put_Priority(This,Priority)
17144 #define ISpeechVoice_get_Priority(This,Priority) (This)->lpVtbl->get_Priority(This,Priority)
17145 #define ISpeechVoice_put_AlertBoundary(This,Boundary) (This)->lpVtbl->put_AlertBoundary(This,Boundary)
17146 #define ISpeechVoice_get_AlertBoundary(This,Boundary) (This)->lpVtbl->get_AlertBoundary(This,Boundary)
17147 #define ISpeechVoice_put_SynchronousSpeakTimeout(This,msTimeout) (This)->lpVtbl->put_SynchronousSpeakTimeout(This,msTimeout)
17148 #define ISpeechVoice_get_SynchronousSpeakTimeout(This,msTimeout) (This)->lpVtbl->get_SynchronousSpeakTimeout(This,msTimeout)
17149 #define ISpeechVoice_Speak(This,Text,Flags,StreamNumber) (This)->lpVtbl->Speak(This,Text,Flags,StreamNumber)
17150 #define ISpeechVoice_SpeakStream(This,Stream,Flags,StreamNumber) (This)->lpVtbl->SpeakStream(This,Stream,Flags,StreamNumber)
17151 #define ISpeechVoice_Pause(This) (This)->lpVtbl->Pause(This)
17152 #define ISpeechVoice_Resume(This) (This)->lpVtbl->Resume(This)
17153 #define ISpeechVoice_Skip(This,Type,NumItems,NumSkipped) (This)->lpVtbl->Skip(This,Type,NumItems,NumSkipped)
17154 #define ISpeechVoice_GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
17155 #define ISpeechVoice_GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
17156 #define ISpeechVoice_WaitUntilDone(This,msTimeout,Done) (This)->lpVtbl->WaitUntilDone(This,msTimeout,Done)
17157 #define ISpeechVoice_SpeakCompleteEvent(This,Handle) (This)->lpVtbl->SpeakCompleteEvent(This,Handle)
17158 #define ISpeechVoice_IsUISupported(This,TypeOfUI,ExtraData,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported)
17159 #define ISpeechVoice_DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData) (This)->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData)
17160 #else
17161 /*** IUnknown methods ***/
17162 static FORCEINLINE HRESULT ISpeechVoice_QueryInterface(ISpeechVoice* This,REFIID riid,void **ppvObject) {
17163     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17164 }
17165 static FORCEINLINE ULONG ISpeechVoice_AddRef(ISpeechVoice* This) {
17166     return This->lpVtbl->AddRef(This);
17167 }
17168 static FORCEINLINE ULONG ISpeechVoice_Release(ISpeechVoice* This) {
17169     return This->lpVtbl->Release(This);
17170 }
17171 /*** IDispatch methods ***/
17172 static FORCEINLINE HRESULT ISpeechVoice_GetTypeInfoCount(ISpeechVoice* This,UINT *pctinfo) {
17173     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17174 }
17175 static FORCEINLINE HRESULT ISpeechVoice_GetTypeInfo(ISpeechVoice* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17176     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17177 }
17178 static FORCEINLINE HRESULT ISpeechVoice_GetIDsOfNames(ISpeechVoice* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17179     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17180 }
17181 static FORCEINLINE HRESULT ISpeechVoice_Invoke(ISpeechVoice* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17182     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17183 }
17184 /*** ISpeechVoice methods ***/
17185 static FORCEINLINE HRESULT ISpeechVoice_get_Status(ISpeechVoice* This,ISpeechVoiceStatus **Status) {
17186     return This->lpVtbl->get_Status(This,Status);
17187 }
17188 static FORCEINLINE HRESULT ISpeechVoice_get_Voice(ISpeechVoice* This,ISpeechObjectToken **Voice) {
17189     return This->lpVtbl->get_Voice(This,Voice);
17190 }
17191 static FORCEINLINE HRESULT ISpeechVoice_putref_Voice(ISpeechVoice* This,ISpeechObjectToken *Voice) {
17192     return This->lpVtbl->putref_Voice(This,Voice);
17193 }
17194 static FORCEINLINE HRESULT ISpeechVoice_get_AudioOutput(ISpeechVoice* This,ISpeechObjectToken **AudioOutput) {
17195     return This->lpVtbl->get_AudioOutput(This,AudioOutput);
17196 }
17197 static FORCEINLINE HRESULT ISpeechVoice_putref_AudioOutput(ISpeechVoice* This,ISpeechObjectToken *AudioOutput) {
17198     return This->lpVtbl->putref_AudioOutput(This,AudioOutput);
17199 }
17200 static FORCEINLINE HRESULT ISpeechVoice_get_AudioOutputStream(ISpeechVoice* This,ISpeechBaseStream **AudioOutputStream) {
17201     return This->lpVtbl->get_AudioOutputStream(This,AudioOutputStream);
17202 }
17203 static FORCEINLINE HRESULT ISpeechVoice_putref_AudioOutputStream(ISpeechVoice* This,ISpeechBaseStream *AudioOutputStream) {
17204     return This->lpVtbl->putref_AudioOutputStream(This,AudioOutputStream);
17205 }
17206 static FORCEINLINE HRESULT ISpeechVoice_get_Rate(ISpeechVoice* This,LONG *Rate) {
17207     return This->lpVtbl->get_Rate(This,Rate);
17208 }
17209 static FORCEINLINE HRESULT ISpeechVoice_put_Rate(ISpeechVoice* This,LONG Rate) {
17210     return This->lpVtbl->put_Rate(This,Rate);
17211 }
17212 static FORCEINLINE HRESULT ISpeechVoice_get_Volume(ISpeechVoice* This,LONG *Volume) {
17213     return This->lpVtbl->get_Volume(This,Volume);
17214 }
17215 static FORCEINLINE HRESULT ISpeechVoice_put_Volume(ISpeechVoice* This,LONG Volume) {
17216     return This->lpVtbl->put_Volume(This,Volume);
17217 }
17218 static FORCEINLINE HRESULT ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet(ISpeechVoice* This,VARIANT_BOOL Allow) {
17219     return This->lpVtbl->put_AllowAudioOutputFormatChangesOnNextSet(This,Allow);
17220 }
17221 static FORCEINLINE HRESULT ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet(ISpeechVoice* This,VARIANT_BOOL *Allow) {
17222     return This->lpVtbl->get_AllowAudioOutputFormatChangesOnNextSet(This,Allow);
17223 }
17224 static FORCEINLINE HRESULT ISpeechVoice_get_EventInterests(ISpeechVoice* This,SpeechVoiceEvents *EventInterestFlags) {
17225     return This->lpVtbl->get_EventInterests(This,EventInterestFlags);
17226 }
17227 static FORCEINLINE HRESULT ISpeechVoice_put_EventInterests(ISpeechVoice* This,SpeechVoiceEvents EventInterestFlags) {
17228     return This->lpVtbl->put_EventInterests(This,EventInterestFlags);
17229 }
17230 static FORCEINLINE HRESULT ISpeechVoice_put_Priority(ISpeechVoice* This,SpeechVoicePriority Priority) {
17231     return This->lpVtbl->put_Priority(This,Priority);
17232 }
17233 static FORCEINLINE HRESULT ISpeechVoice_get_Priority(ISpeechVoice* This,SpeechVoicePriority *Priority) {
17234     return This->lpVtbl->get_Priority(This,Priority);
17235 }
17236 static FORCEINLINE HRESULT ISpeechVoice_put_AlertBoundary(ISpeechVoice* This,SpeechVoiceEvents Boundary) {
17237     return This->lpVtbl->put_AlertBoundary(This,Boundary);
17238 }
17239 static FORCEINLINE HRESULT ISpeechVoice_get_AlertBoundary(ISpeechVoice* This,SpeechVoiceEvents *Boundary) {
17240     return This->lpVtbl->get_AlertBoundary(This,Boundary);
17241 }
17242 static FORCEINLINE HRESULT ISpeechVoice_put_SynchronousSpeakTimeout(ISpeechVoice* This,LONG msTimeout) {
17243     return This->lpVtbl->put_SynchronousSpeakTimeout(This,msTimeout);
17244 }
17245 static FORCEINLINE HRESULT ISpeechVoice_get_SynchronousSpeakTimeout(ISpeechVoice* This,LONG *msTimeout) {
17246     return This->lpVtbl->get_SynchronousSpeakTimeout(This,msTimeout);
17247 }
17248 static FORCEINLINE HRESULT ISpeechVoice_Speak(ISpeechVoice* This,BSTR Text,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
17249     return This->lpVtbl->Speak(This,Text,Flags,StreamNumber);
17250 }
17251 static FORCEINLINE HRESULT ISpeechVoice_SpeakStream(ISpeechVoice* This,ISpeechBaseStream *Stream,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
17252     return This->lpVtbl->SpeakStream(This,Stream,Flags,StreamNumber);
17253 }
17254 static FORCEINLINE HRESULT ISpeechVoice_Pause(ISpeechVoice* This) {
17255     return This->lpVtbl->Pause(This);
17256 }
17257 static FORCEINLINE HRESULT ISpeechVoice_Resume(ISpeechVoice* This) {
17258     return This->lpVtbl->Resume(This);
17259 }
17260 static FORCEINLINE HRESULT ISpeechVoice_Skip(ISpeechVoice* This,const BSTR Type,LONG NumItems,LONG *NumSkipped) {
17261     return This->lpVtbl->Skip(This,Type,NumItems,NumSkipped);
17262 }
17263 static FORCEINLINE HRESULT ISpeechVoice_GetVoices(ISpeechVoice* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
17264     return This->lpVtbl->GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
17265 }
17266 static FORCEINLINE HRESULT ISpeechVoice_GetAudioOutputs(ISpeechVoice* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
17267     return This->lpVtbl->GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
17268 }
17269 static FORCEINLINE HRESULT ISpeechVoice_WaitUntilDone(ISpeechVoice* This,LONG msTimeout,VARIANT_BOOL *Done) {
17270     return This->lpVtbl->WaitUntilDone(This,msTimeout,Done);
17271 }
17272 static FORCEINLINE HRESULT ISpeechVoice_SpeakCompleteEvent(ISpeechVoice* This,LONG *Handle) {
17273     return This->lpVtbl->SpeakCompleteEvent(This,Handle);
17274 }
17275 static FORCEINLINE HRESULT ISpeechVoice_IsUISupported(ISpeechVoice* This,const BSTR TypeOfUI,const VARIANT *ExtraData,VARIANT_BOOL *Supported) {
17276     return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported);
17277 }
17278 static FORCEINLINE HRESULT ISpeechVoice_DisplayUI(ISpeechVoice* This,LONG hWndParent,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData) {
17279     return This->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData);
17280 }
17281 #endif
17282 #endif
17283 
17284 #endif
17285 
17286 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_Status_Proxy(
17287     ISpeechVoice* This,
17288     ISpeechVoiceStatus **Status);
17289 void __RPC_STUB ISpeechVoice_get_Status_Stub(
17290     IRpcStubBuffer* This,
17291     IRpcChannelBuffer* pRpcChannelBuffer,
17292     PRPC_MESSAGE pRpcMessage,
17293     DWORD* pdwStubPhase);
17294 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_Voice_Proxy(
17295     ISpeechVoice* This,
17296     ISpeechObjectToken **Voice);
17297 void __RPC_STUB ISpeechVoice_get_Voice_Stub(
17298     IRpcStubBuffer* This,
17299     IRpcChannelBuffer* pRpcChannelBuffer,
17300     PRPC_MESSAGE pRpcMessage,
17301     DWORD* pdwStubPhase);
17302 HRESULT STDMETHODCALLTYPE ISpeechVoice_putref_Voice_Proxy(
17303     ISpeechVoice* This,
17304     ISpeechObjectToken *Voice);
17305 void __RPC_STUB ISpeechVoice_putref_Voice_Stub(
17306     IRpcStubBuffer* This,
17307     IRpcChannelBuffer* pRpcChannelBuffer,
17308     PRPC_MESSAGE pRpcMessage,
17309     DWORD* pdwStubPhase);
17310 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_AudioOutput_Proxy(
17311     ISpeechVoice* This,
17312     ISpeechObjectToken **AudioOutput);
17313 void __RPC_STUB ISpeechVoice_get_AudioOutput_Stub(
17314     IRpcStubBuffer* This,
17315     IRpcChannelBuffer* pRpcChannelBuffer,
17316     PRPC_MESSAGE pRpcMessage,
17317     DWORD* pdwStubPhase);
17318 HRESULT STDMETHODCALLTYPE ISpeechVoice_putref_AudioOutput_Proxy(
17319     ISpeechVoice* This,
17320     ISpeechObjectToken *AudioOutput);
17321 void __RPC_STUB ISpeechVoice_putref_AudioOutput_Stub(
17322     IRpcStubBuffer* This,
17323     IRpcChannelBuffer* pRpcChannelBuffer,
17324     PRPC_MESSAGE pRpcMessage,
17325     DWORD* pdwStubPhase);
17326 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_AudioOutputStream_Proxy(
17327     ISpeechVoice* This,
17328     ISpeechBaseStream **AudioOutputStream);
17329 void __RPC_STUB ISpeechVoice_get_AudioOutputStream_Stub(
17330     IRpcStubBuffer* This,
17331     IRpcChannelBuffer* pRpcChannelBuffer,
17332     PRPC_MESSAGE pRpcMessage,
17333     DWORD* pdwStubPhase);
17334 HRESULT STDMETHODCALLTYPE ISpeechVoice_putref_AudioOutputStream_Proxy(
17335     ISpeechVoice* This,
17336     ISpeechBaseStream *AudioOutputStream);
17337 void __RPC_STUB ISpeechVoice_putref_AudioOutputStream_Stub(
17338     IRpcStubBuffer* This,
17339     IRpcChannelBuffer* pRpcChannelBuffer,
17340     PRPC_MESSAGE pRpcMessage,
17341     DWORD* pdwStubPhase);
17342 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_Rate_Proxy(
17343     ISpeechVoice* This,
17344     LONG *Rate);
17345 void __RPC_STUB ISpeechVoice_get_Rate_Stub(
17346     IRpcStubBuffer* This,
17347     IRpcChannelBuffer* pRpcChannelBuffer,
17348     PRPC_MESSAGE pRpcMessage,
17349     DWORD* pdwStubPhase);
17350 HRESULT STDMETHODCALLTYPE ISpeechVoice_put_Rate_Proxy(
17351     ISpeechVoice* This,
17352     LONG Rate);
17353 void __RPC_STUB ISpeechVoice_put_Rate_Stub(
17354     IRpcStubBuffer* This,
17355     IRpcChannelBuffer* pRpcChannelBuffer,
17356     PRPC_MESSAGE pRpcMessage,
17357     DWORD* pdwStubPhase);
17358 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_Volume_Proxy(
17359     ISpeechVoice* This,
17360     LONG *Volume);
17361 void __RPC_STUB ISpeechVoice_get_Volume_Stub(
17362     IRpcStubBuffer* This,
17363     IRpcChannelBuffer* pRpcChannelBuffer,
17364     PRPC_MESSAGE pRpcMessage,
17365     DWORD* pdwStubPhase);
17366 HRESULT STDMETHODCALLTYPE ISpeechVoice_put_Volume_Proxy(
17367     ISpeechVoice* This,
17368     LONG Volume);
17369 void __RPC_STUB ISpeechVoice_put_Volume_Stub(
17370     IRpcStubBuffer* This,
17371     IRpcChannelBuffer* pRpcChannelBuffer,
17372     PRPC_MESSAGE pRpcMessage,
17373     DWORD* pdwStubPhase);
17374 HRESULT STDMETHODCALLTYPE ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet_Proxy(
17375     ISpeechVoice* This,
17376     VARIANT_BOOL Allow);
17377 void __RPC_STUB ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet_Stub(
17378     IRpcStubBuffer* This,
17379     IRpcChannelBuffer* pRpcChannelBuffer,
17380     PRPC_MESSAGE pRpcMessage,
17381     DWORD* pdwStubPhase);
17382 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet_Proxy(
17383     ISpeechVoice* This,
17384     VARIANT_BOOL *Allow);
17385 void __RPC_STUB ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet_Stub(
17386     IRpcStubBuffer* This,
17387     IRpcChannelBuffer* pRpcChannelBuffer,
17388     PRPC_MESSAGE pRpcMessage,
17389     DWORD* pdwStubPhase);
17390 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_EventInterests_Proxy(
17391     ISpeechVoice* This,
17392     SpeechVoiceEvents *EventInterestFlags);
17393 void __RPC_STUB ISpeechVoice_get_EventInterests_Stub(
17394     IRpcStubBuffer* This,
17395     IRpcChannelBuffer* pRpcChannelBuffer,
17396     PRPC_MESSAGE pRpcMessage,
17397     DWORD* pdwStubPhase);
17398 HRESULT STDMETHODCALLTYPE ISpeechVoice_put_EventInterests_Proxy(
17399     ISpeechVoice* This,
17400     SpeechVoiceEvents EventInterestFlags);
17401 void __RPC_STUB ISpeechVoice_put_EventInterests_Stub(
17402     IRpcStubBuffer* This,
17403     IRpcChannelBuffer* pRpcChannelBuffer,
17404     PRPC_MESSAGE pRpcMessage,
17405     DWORD* pdwStubPhase);
17406 HRESULT STDMETHODCALLTYPE ISpeechVoice_put_Priority_Proxy(
17407     ISpeechVoice* This,
17408     SpeechVoicePriority Priority);
17409 void __RPC_STUB ISpeechVoice_put_Priority_Stub(
17410     IRpcStubBuffer* This,
17411     IRpcChannelBuffer* pRpcChannelBuffer,
17412     PRPC_MESSAGE pRpcMessage,
17413     DWORD* pdwStubPhase);
17414 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_Priority_Proxy(
17415     ISpeechVoice* This,
17416     SpeechVoicePriority *Priority);
17417 void __RPC_STUB ISpeechVoice_get_Priority_Stub(
17418     IRpcStubBuffer* This,
17419     IRpcChannelBuffer* pRpcChannelBuffer,
17420     PRPC_MESSAGE pRpcMessage,
17421     DWORD* pdwStubPhase);
17422 HRESULT STDMETHODCALLTYPE ISpeechVoice_put_AlertBoundary_Proxy(
17423     ISpeechVoice* This,
17424     SpeechVoiceEvents Boundary);
17425 void __RPC_STUB ISpeechVoice_put_AlertBoundary_Stub(
17426     IRpcStubBuffer* This,
17427     IRpcChannelBuffer* pRpcChannelBuffer,
17428     PRPC_MESSAGE pRpcMessage,
17429     DWORD* pdwStubPhase);
17430 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_AlertBoundary_Proxy(
17431     ISpeechVoice* This,
17432     SpeechVoiceEvents *Boundary);
17433 void __RPC_STUB ISpeechVoice_get_AlertBoundary_Stub(
17434     IRpcStubBuffer* This,
17435     IRpcChannelBuffer* pRpcChannelBuffer,
17436     PRPC_MESSAGE pRpcMessage,
17437     DWORD* pdwStubPhase);
17438 HRESULT STDMETHODCALLTYPE ISpeechVoice_put_SynchronousSpeakTimeout_Proxy(
17439     ISpeechVoice* This,
17440     LONG msTimeout);
17441 void __RPC_STUB ISpeechVoice_put_SynchronousSpeakTimeout_Stub(
17442     IRpcStubBuffer* This,
17443     IRpcChannelBuffer* pRpcChannelBuffer,
17444     PRPC_MESSAGE pRpcMessage,
17445     DWORD* pdwStubPhase);
17446 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_SynchronousSpeakTimeout_Proxy(
17447     ISpeechVoice* This,
17448     LONG *msTimeout);
17449 void __RPC_STUB ISpeechVoice_get_SynchronousSpeakTimeout_Stub(
17450     IRpcStubBuffer* This,
17451     IRpcChannelBuffer* pRpcChannelBuffer,
17452     PRPC_MESSAGE pRpcMessage,
17453     DWORD* pdwStubPhase);
17454 HRESULT STDMETHODCALLTYPE ISpeechVoice_Speak_Proxy(
17455     ISpeechVoice* This,
17456     BSTR Text,
17457     SpeechVoiceSpeakFlags Flags,
17458     LONG *StreamNumber);
17459 void __RPC_STUB ISpeechVoice_Speak_Stub(
17460     IRpcStubBuffer* This,
17461     IRpcChannelBuffer* pRpcChannelBuffer,
17462     PRPC_MESSAGE pRpcMessage,
17463     DWORD* pdwStubPhase);
17464 HRESULT STDMETHODCALLTYPE ISpeechVoice_SpeakStream_Proxy(
17465     ISpeechVoice* This,
17466     ISpeechBaseStream *Stream,
17467     SpeechVoiceSpeakFlags Flags,
17468     LONG *StreamNumber);
17469 void __RPC_STUB ISpeechVoice_SpeakStream_Stub(
17470     IRpcStubBuffer* This,
17471     IRpcChannelBuffer* pRpcChannelBuffer,
17472     PRPC_MESSAGE pRpcMessage,
17473     DWORD* pdwStubPhase);
17474 HRESULT STDMETHODCALLTYPE ISpeechVoice_Pause_Proxy(
17475     ISpeechVoice* This);
17476 void __RPC_STUB ISpeechVoice_Pause_Stub(
17477     IRpcStubBuffer* This,
17478     IRpcChannelBuffer* pRpcChannelBuffer,
17479     PRPC_MESSAGE pRpcMessage,
17480     DWORD* pdwStubPhase);
17481 HRESULT STDMETHODCALLTYPE ISpeechVoice_Resume_Proxy(
17482     ISpeechVoice* This);
17483 void __RPC_STUB ISpeechVoice_Resume_Stub(
17484     IRpcStubBuffer* This,
17485     IRpcChannelBuffer* pRpcChannelBuffer,
17486     PRPC_MESSAGE pRpcMessage,
17487     DWORD* pdwStubPhase);
17488 HRESULT STDMETHODCALLTYPE ISpeechVoice_Skip_Proxy(
17489     ISpeechVoice* This,
17490     const BSTR Type,
17491     LONG NumItems,
17492     LONG *NumSkipped);
17493 void __RPC_STUB ISpeechVoice_Skip_Stub(
17494     IRpcStubBuffer* This,
17495     IRpcChannelBuffer* pRpcChannelBuffer,
17496     PRPC_MESSAGE pRpcMessage,
17497     DWORD* pdwStubPhase);
17498 HRESULT STDMETHODCALLTYPE ISpeechVoice_GetVoices_Proxy(
17499     ISpeechVoice* This,
17500     BSTR RequiredAttributes,
17501     BSTR OptionalAttributes,
17502     ISpeechObjectTokens **ObjectTokens);
17503 void __RPC_STUB ISpeechVoice_GetVoices_Stub(
17504     IRpcStubBuffer* This,
17505     IRpcChannelBuffer* pRpcChannelBuffer,
17506     PRPC_MESSAGE pRpcMessage,
17507     DWORD* pdwStubPhase);
17508 HRESULT STDMETHODCALLTYPE ISpeechVoice_GetAudioOutputs_Proxy(
17509     ISpeechVoice* This,
17510     BSTR RequiredAttributes,
17511     BSTR OptionalAttributes,
17512     ISpeechObjectTokens **ObjectTokens);
17513 void __RPC_STUB ISpeechVoice_GetAudioOutputs_Stub(
17514     IRpcStubBuffer* This,
17515     IRpcChannelBuffer* pRpcChannelBuffer,
17516     PRPC_MESSAGE pRpcMessage,
17517     DWORD* pdwStubPhase);
17518 HRESULT STDMETHODCALLTYPE ISpeechVoice_WaitUntilDone_Proxy(
17519     ISpeechVoice* This,
17520     LONG msTimeout,
17521     VARIANT_BOOL *Done);
17522 void __RPC_STUB ISpeechVoice_WaitUntilDone_Stub(
17523     IRpcStubBuffer* This,
17524     IRpcChannelBuffer* pRpcChannelBuffer,
17525     PRPC_MESSAGE pRpcMessage,
17526     DWORD* pdwStubPhase);
17527 HRESULT STDMETHODCALLTYPE ISpeechVoice_SpeakCompleteEvent_Proxy(
17528     ISpeechVoice* This,
17529     LONG *Handle);
17530 void __RPC_STUB ISpeechVoice_SpeakCompleteEvent_Stub(
17531     IRpcStubBuffer* This,
17532     IRpcChannelBuffer* pRpcChannelBuffer,
17533     PRPC_MESSAGE pRpcMessage,
17534     DWORD* pdwStubPhase);
17535 HRESULT STDMETHODCALLTYPE ISpeechVoice_IsUISupported_Proxy(
17536     ISpeechVoice* This,
17537     const BSTR TypeOfUI,
17538     const VARIANT *ExtraData,
17539     VARIANT_BOOL *Supported);
17540 void __RPC_STUB ISpeechVoice_IsUISupported_Stub(
17541     IRpcStubBuffer* This,
17542     IRpcChannelBuffer* pRpcChannelBuffer,
17543     PRPC_MESSAGE pRpcMessage,
17544     DWORD* pdwStubPhase);
17545 HRESULT STDMETHODCALLTYPE ISpeechVoice_DisplayUI_Proxy(
17546     ISpeechVoice* This,
17547     LONG hWndParent,
17548     BSTR Title,
17549     const BSTR TypeOfUI,
17550     const VARIANT *ExtraData);
17551 void __RPC_STUB ISpeechVoice_DisplayUI_Stub(
17552     IRpcStubBuffer* This,
17553     IRpcChannelBuffer* pRpcChannelBuffer,
17554     PRPC_MESSAGE pRpcMessage,
17555     DWORD* pdwStubPhase);
17556 
17557 #endif  /* __ISpeechVoice_INTERFACE_DEFINED__ */
17558 
17559 /*****************************************************************************
17560  * ISpeechVoiceStatus interface
17561  */
17562 #ifndef __ISpeechVoiceStatus_INTERFACE_DEFINED__
17563 #define __ISpeechVoiceStatus_INTERFACE_DEFINED__
17564 
17565 DEFINE_GUID(IID_ISpeechVoiceStatus, 0x8be47b07, 0x57f6, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96);
17566 #if defined(__cplusplus) && !defined(CINTERFACE)
17567 MIDL_INTERFACE("8be47b07-57f6-11d2-9eee-00c04f797396")
17568 ISpeechVoiceStatus : public IDispatch
17569 {
17570     virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamNumber(
17571         LONG *StreamNumber) = 0;
17572 
17573     virtual HRESULT STDMETHODCALLTYPE get_LastStreamNumberQueued(
17574         LONG *StreamNumber) = 0;
17575 
17576     virtual HRESULT STDMETHODCALLTYPE get_LastHResult(
17577         LONG *HResult) = 0;
17578 
17579     virtual HRESULT STDMETHODCALLTYPE get_RunningState(
17580         SpeechRunState *State) = 0;
17581 
17582     virtual HRESULT STDMETHODCALLTYPE get_InputWordPosition(
17583         LONG *Position) = 0;
17584 
17585     virtual HRESULT STDMETHODCALLTYPE get_InputWordLength(
17586         LONG *Length) = 0;
17587 
17588     virtual HRESULT STDMETHODCALLTYPE get_InputSentencePosition(
17589         LONG *Position) = 0;
17590 
17591     virtual HRESULT STDMETHODCALLTYPE get_InputSentenceLength(
17592         LONG *Length) = 0;
17593 
17594     virtual HRESULT STDMETHODCALLTYPE get_LastBookmark(
17595         BSTR *Bookmark) = 0;
17596 
17597     virtual HRESULT STDMETHODCALLTYPE get_LastBookmarkId(
17598         LONG *BookmarkId) = 0;
17599 
17600     virtual HRESULT STDMETHODCALLTYPE get_PhonemeId(
17601         short *PhoneId) = 0;
17602 
17603     virtual HRESULT STDMETHODCALLTYPE get_VisemeId(
17604         short *VisemeId) = 0;
17605 
17606 };
17607 #ifdef __CRT_UUID_DECL
17608 __CRT_UUID_DECL(ISpeechVoiceStatus, 0x8be47b07, 0x57f6, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96)
17609 #endif
17610 #else
17611 typedef struct ISpeechVoiceStatusVtbl {
17612     BEGIN_INTERFACE
17613 
17614     /*** IUnknown methods ***/
17615     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17616         ISpeechVoiceStatus* This,
17617         REFIID riid,
17618         void **ppvObject);
17619 
17620     ULONG (STDMETHODCALLTYPE *AddRef)(
17621         ISpeechVoiceStatus* This);
17622 
17623     ULONG (STDMETHODCALLTYPE *Release)(
17624         ISpeechVoiceStatus* This);
17625 
17626     /*** IDispatch methods ***/
17627     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17628         ISpeechVoiceStatus* This,
17629         UINT *pctinfo);
17630 
17631     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17632         ISpeechVoiceStatus* This,
17633         UINT iTInfo,
17634         LCID lcid,
17635         ITypeInfo **ppTInfo);
17636 
17637     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17638         ISpeechVoiceStatus* This,
17639         REFIID riid,
17640         LPOLESTR *rgszNames,
17641         UINT cNames,
17642         LCID lcid,
17643         DISPID *rgDispId);
17644 
17645     HRESULT (STDMETHODCALLTYPE *Invoke)(
17646         ISpeechVoiceStatus* This,
17647         DISPID dispIdMember,
17648         REFIID riid,
17649         LCID lcid,
17650         WORD wFlags,
17651         DISPPARAMS *pDispParams,
17652         VARIANT *pVarResult,
17653         EXCEPINFO *pExcepInfo,
17654         UINT *puArgErr);
17655 
17656     /*** ISpeechVoiceStatus methods ***/
17657     HRESULT (STDMETHODCALLTYPE *get_CurrentStreamNumber)(
17658         ISpeechVoiceStatus* This,
17659         LONG *StreamNumber);
17660 
17661     HRESULT (STDMETHODCALLTYPE *get_LastStreamNumberQueued)(
17662         ISpeechVoiceStatus* This,
17663         LONG *StreamNumber);
17664 
17665     HRESULT (STDMETHODCALLTYPE *get_LastHResult)(
17666         ISpeechVoiceStatus* This,
17667         LONG *HResult);
17668 
17669     HRESULT (STDMETHODCALLTYPE *get_RunningState)(
17670         ISpeechVoiceStatus* This,
17671         SpeechRunState *State);
17672 
17673     HRESULT (STDMETHODCALLTYPE *get_InputWordPosition)(
17674         ISpeechVoiceStatus* This,
17675         LONG *Position);
17676 
17677     HRESULT (STDMETHODCALLTYPE *get_InputWordLength)(
17678         ISpeechVoiceStatus* This,
17679         LONG *Length);
17680 
17681     HRESULT (STDMETHODCALLTYPE *get_InputSentencePosition)(
17682         ISpeechVoiceStatus* This,
17683         LONG *Position);
17684 
17685     HRESULT (STDMETHODCALLTYPE *get_InputSentenceLength)(
17686         ISpeechVoiceStatus* This,
17687         LONG *Length);
17688 
17689     HRESULT (STDMETHODCALLTYPE *get_LastBookmark)(
17690         ISpeechVoiceStatus* This,
17691         BSTR *Bookmark);
17692 
17693     HRESULT (STDMETHODCALLTYPE *get_LastBookmarkId)(
17694         ISpeechVoiceStatus* This,
17695         LONG *BookmarkId);
17696 
17697     HRESULT (STDMETHODCALLTYPE *get_PhonemeId)(
17698         ISpeechVoiceStatus* This,
17699         short *PhoneId);
17700 
17701     HRESULT (STDMETHODCALLTYPE *get_VisemeId)(
17702         ISpeechVoiceStatus* This,
17703         short *VisemeId);
17704 
17705     END_INTERFACE
17706 } ISpeechVoiceStatusVtbl;
17707 interface ISpeechVoiceStatus {
17708     CONST_VTBL ISpeechVoiceStatusVtbl* lpVtbl;
17709 };
17710 
17711 #ifdef COBJMACROS
17712 #ifndef WIDL_C_INLINE_WRAPPERS
17713 /*** IUnknown methods ***/
17714 #define ISpeechVoiceStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17715 #define ISpeechVoiceStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
17716 #define ISpeechVoiceStatus_Release(This) (This)->lpVtbl->Release(This)
17717 /*** IDispatch methods ***/
17718 #define ISpeechVoiceStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17719 #define ISpeechVoiceStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17720 #define ISpeechVoiceStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17721 #define ISpeechVoiceStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17722 /*** ISpeechVoiceStatus methods ***/
17723 #define ISpeechVoiceStatus_get_CurrentStreamNumber(This,StreamNumber) (This)->lpVtbl->get_CurrentStreamNumber(This,StreamNumber)
17724 #define ISpeechVoiceStatus_get_LastStreamNumberQueued(This,StreamNumber) (This)->lpVtbl->get_LastStreamNumberQueued(This,StreamNumber)
17725 #define ISpeechVoiceStatus_get_LastHResult(This,HResult) (This)->lpVtbl->get_LastHResult(This,HResult)
17726 #define ISpeechVoiceStatus_get_RunningState(This,State) (This)->lpVtbl->get_RunningState(This,State)
17727 #define ISpeechVoiceStatus_get_InputWordPosition(This,Position) (This)->lpVtbl->get_InputWordPosition(This,Position)
17728 #define ISpeechVoiceStatus_get_InputWordLength(This,Length) (This)->lpVtbl->get_InputWordLength(This,Length)
17729 #define ISpeechVoiceStatus_get_InputSentencePosition(This,Position) (This)->lpVtbl->get_InputSentencePosition(This,Position)
17730 #define ISpeechVoiceStatus_get_InputSentenceLength(This,Length) (This)->lpVtbl->get_InputSentenceLength(This,Length)
17731 #define ISpeechVoiceStatus_get_LastBookmark(This,Bookmark) (This)->lpVtbl->get_LastBookmark(This,Bookmark)
17732 #define ISpeechVoiceStatus_get_LastBookmarkId(This,BookmarkId) (This)->lpVtbl->get_LastBookmarkId(This,BookmarkId)
17733 #define ISpeechVoiceStatus_get_PhonemeId(This,PhoneId) (This)->lpVtbl->get_PhonemeId(This,PhoneId)
17734 #define ISpeechVoiceStatus_get_VisemeId(This,VisemeId) (This)->lpVtbl->get_VisemeId(This,VisemeId)
17735 #else
17736 /*** IUnknown methods ***/
17737 static FORCEINLINE HRESULT ISpeechVoiceStatus_QueryInterface(ISpeechVoiceStatus* This,REFIID riid,void **ppvObject) {
17738     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17739 }
17740 static FORCEINLINE ULONG ISpeechVoiceStatus_AddRef(ISpeechVoiceStatus* This) {
17741     return This->lpVtbl->AddRef(This);
17742 }
17743 static FORCEINLINE ULONG ISpeechVoiceStatus_Release(ISpeechVoiceStatus* This) {
17744     return This->lpVtbl->Release(This);
17745 }
17746 /*** IDispatch methods ***/
17747 static FORCEINLINE HRESULT ISpeechVoiceStatus_GetTypeInfoCount(ISpeechVoiceStatus* This,UINT *pctinfo) {
17748     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17749 }
17750 static FORCEINLINE HRESULT ISpeechVoiceStatus_GetTypeInfo(ISpeechVoiceStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17751     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17752 }
17753 static FORCEINLINE HRESULT ISpeechVoiceStatus_GetIDsOfNames(ISpeechVoiceStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17754     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17755 }
17756 static FORCEINLINE HRESULT ISpeechVoiceStatus_Invoke(ISpeechVoiceStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17757     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17758 }
17759 /*** ISpeechVoiceStatus methods ***/
17760 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_CurrentStreamNumber(ISpeechVoiceStatus* This,LONG *StreamNumber) {
17761     return This->lpVtbl->get_CurrentStreamNumber(This,StreamNumber);
17762 }
17763 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_LastStreamNumberQueued(ISpeechVoiceStatus* This,LONG *StreamNumber) {
17764     return This->lpVtbl->get_LastStreamNumberQueued(This,StreamNumber);
17765 }
17766 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_LastHResult(ISpeechVoiceStatus* This,LONG *HResult) {
17767     return This->lpVtbl->get_LastHResult(This,HResult);
17768 }
17769 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_RunningState(ISpeechVoiceStatus* This,SpeechRunState *State) {
17770     return This->lpVtbl->get_RunningState(This,State);
17771 }
17772 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_InputWordPosition(ISpeechVoiceStatus* This,LONG *Position) {
17773     return This->lpVtbl->get_InputWordPosition(This,Position);
17774 }
17775 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_InputWordLength(ISpeechVoiceStatus* This,LONG *Length) {
17776     return This->lpVtbl->get_InputWordLength(This,Length);
17777 }
17778 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_InputSentencePosition(ISpeechVoiceStatus* This,LONG *Position) {
17779     return This->lpVtbl->get_InputSentencePosition(This,Position);
17780 }
17781 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_InputSentenceLength(ISpeechVoiceStatus* This,LONG *Length) {
17782     return This->lpVtbl->get_InputSentenceLength(This,Length);
17783 }
17784 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_LastBookmark(ISpeechVoiceStatus* This,BSTR *Bookmark) {
17785     return This->lpVtbl->get_LastBookmark(This,Bookmark);
17786 }
17787 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_LastBookmarkId(ISpeechVoiceStatus* This,LONG *BookmarkId) {
17788     return This->lpVtbl->get_LastBookmarkId(This,BookmarkId);
17789 }
17790 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_PhonemeId(ISpeechVoiceStatus* This,short *PhoneId) {
17791     return This->lpVtbl->get_PhonemeId(This,PhoneId);
17792 }
17793 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_VisemeId(ISpeechVoiceStatus* This,short *VisemeId) {
17794     return This->lpVtbl->get_VisemeId(This,VisemeId);
17795 }
17796 #endif
17797 #endif
17798 
17799 #endif
17800 
17801 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_CurrentStreamNumber_Proxy(
17802     ISpeechVoiceStatus* This,
17803     LONG *StreamNumber);
17804 void __RPC_STUB ISpeechVoiceStatus_get_CurrentStreamNumber_Stub(
17805     IRpcStubBuffer* This,
17806     IRpcChannelBuffer* pRpcChannelBuffer,
17807     PRPC_MESSAGE pRpcMessage,
17808     DWORD* pdwStubPhase);
17809 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_LastStreamNumberQueued_Proxy(
17810     ISpeechVoiceStatus* This,
17811     LONG *StreamNumber);
17812 void __RPC_STUB ISpeechVoiceStatus_get_LastStreamNumberQueued_Stub(
17813     IRpcStubBuffer* This,
17814     IRpcChannelBuffer* pRpcChannelBuffer,
17815     PRPC_MESSAGE pRpcMessage,
17816     DWORD* pdwStubPhase);
17817 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_LastHResult_Proxy(
17818     ISpeechVoiceStatus* This,
17819     LONG *HResult);
17820 void __RPC_STUB ISpeechVoiceStatus_get_LastHResult_Stub(
17821     IRpcStubBuffer* This,
17822     IRpcChannelBuffer* pRpcChannelBuffer,
17823     PRPC_MESSAGE pRpcMessage,
17824     DWORD* pdwStubPhase);
17825 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_RunningState_Proxy(
17826     ISpeechVoiceStatus* This,
17827     SpeechRunState *State);
17828 void __RPC_STUB ISpeechVoiceStatus_get_RunningState_Stub(
17829     IRpcStubBuffer* This,
17830     IRpcChannelBuffer* pRpcChannelBuffer,
17831     PRPC_MESSAGE pRpcMessage,
17832     DWORD* pdwStubPhase);
17833 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_InputWordPosition_Proxy(
17834     ISpeechVoiceStatus* This,
17835     LONG *Position);
17836 void __RPC_STUB ISpeechVoiceStatus_get_InputWordPosition_Stub(
17837     IRpcStubBuffer* This,
17838     IRpcChannelBuffer* pRpcChannelBuffer,
17839     PRPC_MESSAGE pRpcMessage,
17840     DWORD* pdwStubPhase);
17841 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_InputWordLength_Proxy(
17842     ISpeechVoiceStatus* This,
17843     LONG *Length);
17844 void __RPC_STUB ISpeechVoiceStatus_get_InputWordLength_Stub(
17845     IRpcStubBuffer* This,
17846     IRpcChannelBuffer* pRpcChannelBuffer,
17847     PRPC_MESSAGE pRpcMessage,
17848     DWORD* pdwStubPhase);
17849 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_InputSentencePosition_Proxy(
17850     ISpeechVoiceStatus* This,
17851     LONG *Position);
17852 void __RPC_STUB ISpeechVoiceStatus_get_InputSentencePosition_Stub(
17853     IRpcStubBuffer* This,
17854     IRpcChannelBuffer* pRpcChannelBuffer,
17855     PRPC_MESSAGE pRpcMessage,
17856     DWORD* pdwStubPhase);
17857 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_InputSentenceLength_Proxy(
17858     ISpeechVoiceStatus* This,
17859     LONG *Length);
17860 void __RPC_STUB ISpeechVoiceStatus_get_InputSentenceLength_Stub(
17861     IRpcStubBuffer* This,
17862     IRpcChannelBuffer* pRpcChannelBuffer,
17863     PRPC_MESSAGE pRpcMessage,
17864     DWORD* pdwStubPhase);
17865 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_LastBookmark_Proxy(
17866     ISpeechVoiceStatus* This,
17867     BSTR *Bookmark);
17868 void __RPC_STUB ISpeechVoiceStatus_get_LastBookmark_Stub(
17869     IRpcStubBuffer* This,
17870     IRpcChannelBuffer* pRpcChannelBuffer,
17871     PRPC_MESSAGE pRpcMessage,
17872     DWORD* pdwStubPhase);
17873 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_LastBookmarkId_Proxy(
17874     ISpeechVoiceStatus* This,
17875     LONG *BookmarkId);
17876 void __RPC_STUB ISpeechVoiceStatus_get_LastBookmarkId_Stub(
17877     IRpcStubBuffer* This,
17878     IRpcChannelBuffer* pRpcChannelBuffer,
17879     PRPC_MESSAGE pRpcMessage,
17880     DWORD* pdwStubPhase);
17881 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_PhonemeId_Proxy(
17882     ISpeechVoiceStatus* This,
17883     short *PhoneId);
17884 void __RPC_STUB ISpeechVoiceStatus_get_PhonemeId_Stub(
17885     IRpcStubBuffer* This,
17886     IRpcChannelBuffer* pRpcChannelBuffer,
17887     PRPC_MESSAGE pRpcMessage,
17888     DWORD* pdwStubPhase);
17889 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_VisemeId_Proxy(
17890     ISpeechVoiceStatus* This,
17891     short *VisemeId);
17892 void __RPC_STUB ISpeechVoiceStatus_get_VisemeId_Stub(
17893     IRpcStubBuffer* This,
17894     IRpcChannelBuffer* pRpcChannelBuffer,
17895     PRPC_MESSAGE pRpcMessage,
17896     DWORD* pdwStubPhase);
17897 
17898 #endif  /* __ISpeechVoiceStatus_INTERFACE_DEFINED__ */
17899 
17900 typedef enum SpeechVisemeType {
17901     SVP_0 = 0,
17902     SVP_1 = 1,
17903     SVP_2 = 2,
17904     SVP_3 = 3,
17905     SVP_4 = 4,
17906     SVP_5 = 5,
17907     SVP_6 = 6,
17908     SVP_7 = 7,
17909     SVP_8 = 8,
17910     SVP_9 = 9,
17911     SVP_10 = 10,
17912     SVP_11 = 11,
17913     SVP_12 = 12,
17914     SVP_13 = 13,
17915     SVP_14 = 14,
17916     SVP_15 = 15,
17917     SVP_16 = 16,
17918     SVP_17 = 17,
17919     SVP_18 = 18,
17920     SVP_19 = 19,
17921     SVP_20 = 20,
17922     SVP_21 = 21
17923 } SpeechVisemeType;
17924 typedef enum SpeechVisemeFeature {
17925     SVF_None = 0,
17926     SVF_Stressed = SPVFEATURE_STRESSED,
17927     SVF_Emphasis = SPVFEATURE_EMPHASIS
17928 } SpeechVisemeFeature;
17929 typedef enum DISPID_SpeechVoiceEvent {
17930     DISPID_SVEStreamStart = 1,
17931     DISPID_SVEStreamEnd = 2,
17932     DISPID_SVEVoiceChange = 3,
17933     DISPID_SVEBookmark = 4,
17934     DISPID_SVEWord = 5,
17935     DISPID_SVEPhoneme = 6,
17936     DISPID_SVESentenceBoundary = 7,
17937     DISPID_SVEViseme = 8,
17938     DISPID_SVEAudioLevel = 9,
17939     DISPID_SVEEnginePrivate = 10
17940 } DISPID_SpeechVoiceEvent;
17941 typedef enum DISPID_SpeechRecognizer {
17942     DISPID_SRRecognizer = 1,
17943     DISPID_SRAllowAudioInputFormatChangesOnNextSet = 2,
17944     DISPID_SRAudioInput = 3,
17945     DISPID_SRAudioInputStream = 4,
17946     DISPID_SRIsShared = 5,
17947     DISPID_SRState = 6,
17948     DISPID_SRStatus = 7,
17949     DISPID_SRProfile = 8,
17950     DISPID_SREmulateRecognition = 9,
17951     DISPID_SRCreateRecoContext = 10,
17952     DISPID_SRGetFormat = 11,
17953     DISPID_SRSetPropertyNumber = 12,
17954     DISPID_SRGetPropertyNumber = 13,
17955     DISPID_SRSetPropertyString = 14,
17956     DISPID_SRGetPropertyString = 15,
17957     DISPID_SRIsUISupported = 16,
17958     DISPID_SRDisplayUI = 17,
17959     DISPID_SRGetRecognizers = 18,
17960     DISPID_SVGetAudioInputs = 19,
17961     DISPID_SVGetProfiles = 20
17962 } DISPID_SpeechRecognizer;
17963 typedef enum SpeechRecognizerState {
17964     SRSInactive = SPRST_INACTIVE,
17965     SRSActive = SPRST_ACTIVE,
17966     SRSActiveAlways = SPRST_ACTIVE_ALWAYS,
17967     SRSInactiveWithPurge = SPRST_INACTIVE_WITH_PURGE
17968 } SpeechRecognizerState;
17969 typedef enum SpeechDisplayAttributes {
17970     SDA_No_Trailing_Space = 0,
17971     SDA_One_Trailing_Space = SPAF_ONE_TRAILING_SPACE,
17972     SDA_Two_Trailing_Spaces = SPAF_TWO_TRAILING_SPACES,
17973     SDA_Consume_Leading_Spaces = SPAF_CONSUME_LEADING_SPACES
17974 } SpeechDisplayAttributes;
17975 typedef enum SpeechFormatType {
17976     SFTInput = SPWF_INPUT,
17977     SFTSREngine = SPWF_SRENGINE
17978 } SpeechFormatType;
17979 typedef enum DISPID_SpeechRecognizerStatus {
17980     DISPID_SRSAudioStatus = 1,
17981     DISPID_SRSCurrentStreamPosition = 2,
17982     DISPID_SRSCurrentStreamNumber = 3,
17983     DISPID_SRSNumberOfActiveRules = 4,
17984     DISPID_SRSClsidEngine = 5,
17985     DISPID_SRSSupportedLanguages = 6
17986 } DISPID_SpeechRecognizerStatus;
17987 typedef enum DISPID_SpeechRecoContext {
17988     DISPID_SRCRecognizer = 1,
17989     DISPID_SRCAudioInInterferenceStatus = 2,
17990     DISPID_SRCRequestedUIType = 3,
17991     DISPID_SRCVoice = 4,
17992     DISPID_SRAllowVoiceFormatMatchingOnNextSet = 5,
17993     DISPID_SRCVoicePurgeEvent = 6,
17994     DISPID_SRCEventInterests = 7,
17995     DISPID_SRCCmdMaxAlternates = 8,
17996     DISPID_SRCState = 9,
17997     DISPID_SRCRetainedAudio = 10,
17998     DISPID_SRCRetainedAudioFormat = 11,
17999     DISPID_SRCPause = 12,
18000     DISPID_SRCResume = 13,
18001     DISPID_SRCCreateGrammar = 14,
18002     DISPID_SRCCreateResultFromMemory = 15,
18003     DISPID_SRCBookmark = 16,
18004     DISPID_SRCSetAdaptationData = 17
18005 } DISPID_SpeechRecoContext;
18006 typedef enum SpeechRetainedAudioOptions {
18007     SRAONone = SPAO_NONE,
18008     SRAORetainAudio = SPAO_RETAIN_AUDIO
18009 } SpeechRetainedAudioOptions;
18010 typedef enum SpeechBookmarkOptions {
18011     SBONone = SPBO_NONE,
18012     SBOPause = SPBO_PAUSE
18013 } SpeechBookmarkOptions;
18014 typedef enum SpeechInterference {
18015     SINone = SPINTERFERENCE_NONE,
18016     SINoise = SPINTERFERENCE_NOISE,
18017     SINoSignal = SPINTERFERENCE_NOSIGNAL,
18018     SITooLoud = SPINTERFERENCE_TOOLOUD,
18019     SITooQuiet = SPINTERFERENCE_TOOQUIET,
18020     SITooFast = SPINTERFERENCE_TOOFAST,
18021     SITooSlow = SPINTERFERENCE_TOOSLOW
18022 } SpeechInterference;
18023 typedef enum SpeechRecoEvents {
18024     SREStreamEnd = 0x1,
18025     SRESoundStart = 0x2,
18026     SRESoundEnd = 0x4,
18027     SREPhraseStart = 0x8,
18028     SRERecognition = 0x10,
18029     SREHypothesis = 0x20,
18030     SREBookmark = 0x40,
18031     SREPropertyNumChange = 0x80,
18032     SREPropertyStringChange = 0x100,
18033     SREFalseRecognition = 0x200,
18034     SREInterference = 0x400,
18035     SRERequestUI = 0x800,
18036     SREStateChange = 0x1000,
18037     SREAdaptation = 0x2000,
18038     SREStreamStart = 0x4000,
18039     SRERecoOtherContext = 0x8000,
18040     SREAudioLevel = 0x10000,
18041     SREPrivate = 0x40000,
18042     SREAllEvents = 0x5ffff
18043 } SpeechRecoEvents;
18044 typedef enum SpeechRecoContextState {
18045     SRCS_Disabled = SPCS_DISABLED,
18046     SRCS_Enabled = SPCS_ENABLED
18047 } SpeechRecoContextState;
18048 typedef enum DISPIDSPRG {
18049     DISPID_SRGId = 1,
18050     DISPID_SRGRecoContext = 2,
18051     DISPID_SRGState = 3,
18052     DISPID_SRGRules = 4,
18053     DISPID_SRGReset = 5,
18054     DISPID_SRGCommit = 6,
18055     DISPID_SRGCmdLoadFromFile = 7,
18056     DISPID_SRGCmdLoadFromObject = 8,
18057     DISPID_SRGCmdLoadFromResource = 9,
18058     DISPID_SRGCmdLoadFromMemory = 10,
18059     DISPID_SRGCmdLoadFromProprietaryGrammar = 11,
18060     DISPID_SRGCmdSetRuleState = 12,
18061     DISPID_SRGCmdSetRuleIdState = 13,
18062     DISPID_SRGDictationLoad = 14,
18063     DISPID_SRGDictationUnload = 15,
18064     DISPID_SRGDictationSetState = 16,
18065     DISPID_SRGSetWordSequenceData = 17,
18066     DISPID_SRGSetTextSelection = 18,
18067     DISPID_SRGIsPronounceable = 19
18068 } DISPIDSPRG;
18069 typedef enum SpeechLoadOption {
18070     SLOStatic = SPLO_STATIC,
18071     SLODynamic = SPLO_DYNAMIC
18072 } SpeechLoadOption;
18073 typedef enum SpeechWordPronounceable {
18074     SWPUnknownWordUnpronounceable = SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE,
18075     SWPUnknownWordPronounceable = SPWP_UNKNOWN_WORD_PRONOUNCEABLE,
18076     SWPKnownWordPronounceable = SPWP_KNOWN_WORD_PRONOUNCEABLE
18077 } SpeechWordPronounceable;
18078 typedef enum SpeechGrammarState {
18079     SGSEnabled = SPGS_ENABLED,
18080     SGSDisabled = SPGS_DISABLED,
18081     SGSExclusive = SPGS_EXCLUSIVE
18082 } SpeechGrammarState;
18083 typedef enum SpeechRuleState {
18084     SGDSInactive = SPRS_INACTIVE,
18085     SGDSActive = SPRS_ACTIVE,
18086     SGDSActiveWithAutoPause = SPRS_ACTIVE_WITH_AUTO_PAUSE,
18087     SGDSActiveUserDelimited = SPRS_ACTIVE_USER_DELIMITED
18088 } SpeechRuleState;
18089 typedef enum SpeechRuleAttributes {
18090     SRATopLevel = SPRAF_TopLevel,
18091     SRADefaultToActive = SPRAF_Active,
18092     SRAExport = SPRAF_Export,
18093     SRAImport = SPRAF_Import,
18094     SRAInterpreter = SPRAF_Interpreter,
18095     SRADynamic = SPRAF_Dynamic,
18096     SRARoot = SPRAF_Root
18097 } SpeechRuleAttributes;
18098 typedef enum SpeechGrammarWordType {
18099     SGDisplay = SPWT_DISPLAY,
18100     SGLexical = SPWT_LEXICAL,
18101     SGPronounciation = SPWT_PRONUNCIATION,
18102     SGLexicalNoSpecialChars = SPWT_LEXICAL_NO_SPECIAL_CHARS
18103 } SpeechGrammarWordType;
18104 typedef enum DISPID_SpeechRecoContextEvents {
18105     DISPID_SRCEStartStream = 1,
18106     DISPID_SRCEEndStream = 2,
18107     DISPID_SRCEBookmark = 3,
18108     DISPID_SRCESoundStart = 4,
18109     DISPID_SRCESoundEnd = 5,
18110     DISPID_SRCEPhraseStart = 6,
18111     DISPID_SRCERecognition = 7,
18112     DISPID_SRCEHypothesis = 8,
18113     DISPID_SRCEPropertyNumberChange = 9,
18114     DISPID_SRCEPropertyStringChange = 10,
18115     DISPID_SRCEFalseRecognition = 11,
18116     DISPID_SRCEInterference = 12,
18117     DISPID_SRCERequestUI = 13,
18118     DISPID_SRCERecognizerStateChange = 14,
18119     DISPID_SRCEAdaptation = 15,
18120     DISPID_SRCERecognitionForOtherContext = 16,
18121     DISPID_SRCEAudioLevel = 17,
18122     DISPID_SRCEEnginePrivate = 18
18123 } DISPID_SpeechRecoContextEvents;
18124 typedef enum SpeechRecognitionType {
18125     SRTStandard = 0,
18126     SRTAutopause = SPREF_AutoPause,
18127     SRTEmulated = SPREF_Emulated,
18128     SRTSMLTimeout = SPREF_SMLTimeout,
18129     SRTExtendableParse = SPREF_ExtendableParse,
18130     SRTReSent = SPREF_ReSent
18131 } SpeechRecognitionType;
18132 typedef enum DISPID_SpeechGrammarRule {
18133     DISPID_SGRAttributes = 1,
18134     DISPID_SGRInitialState = 2,
18135     DISPID_SGRName = 3,
18136     DISPID_SGRId = 4,
18137     DISPID_SGRClear = 5,
18138     DISPID_SGRAddResource = 6,
18139     DISPID_SGRAddState = 7
18140 } DISPID_SpeechGrammarRule;
18141 typedef enum DISPID_SpeechGrammarRules {
18142     DISPID_SGRsCount = 1,
18143     DISPID_SGRsDynamic = 2,
18144     DISPID_SGRsAdd = 3,
18145     DISPID_SGRsCommit = 4,
18146     DISPID_SGRsCommitAndSave = 5,
18147     DISPID_SGRsFindRule = 6,
18148     DISPID_SGRsItem = DISPID_VALUE,
18149     DISPID_SGRs_NewEnum = DISPID_NEWENUM
18150 } DISPID_SpeechGrammarRules;
18151 typedef enum DISPID_SpeechGrammarRuleState {
18152     DISPID_SGRSRule = 1,
18153     DISPID_SGRSTransitions = 2,
18154     DISPID_SGRSAddWordTransition = 3,
18155     DISPID_SGRSAddRuleTransition = 4,
18156     DISPID_SGRSAddSpecialTransition = 5
18157 } DISPID_SpeechGrammarRuleState;
18158 typedef enum SpeechSpecialTransitionType {
18159     SSTTWildcard = 1,
18160     SSTTDictation = 2,
18161     SSTTTextBuffer = 3
18162 } SpeechSpecialTransitionType;
18163 typedef enum DISPID_SpeechGrammarRuleStateTransitions {
18164     DISPID_SGRSTsCount = 1,
18165     DISPID_SGRSTsItem = DISPID_VALUE,
18166     DISPID_SGRSTs_NewEnum = DISPID_NEWENUM
18167 } DISPID_SpeechGrammarRuleStateTransitions;
18168 typedef enum DISPID_SpeechGrammarRuleStateTransition {
18169     DISPID_SGRSTType = 1,
18170     DISPID_SGRSTText = 2,
18171     DISPID_SGRSTRule = 3,
18172     DISPID_SGRSTWeight = 4,
18173     DISPID_SGRSTPropertyName = 5,
18174     DISPID_SGRSTPropertyId = 6,
18175     DISPID_SGRSTPropertyValue = 7,
18176     DISPID_SGRSTNextState = 8
18177 } DISPID_SpeechGrammarRuleStateTransition;
18178 typedef enum SpeechGrammarRuleStateTransitionType {
18179     SGRSTTEpsilon = 0,
18180     SGRSTTWord = 1,
18181     SGRSTTRule = 2,
18182     SGRSTTDictation = 3,
18183     SGRSTTWildcard = 4,
18184     SGRSTTTextBuffer = 5
18185 } SpeechGrammarRuleStateTransitionType;
18186 typedef enum DISPIDSPTSI {
18187     DISPIDSPTSI_ActiveOffset = 1,
18188     DISPIDSPTSI_ActiveLength = 2,
18189     DISPIDSPTSI_SelectionOffset = 3,
18190     DISPIDSPTSI_SelectionLength = 4
18191 } DISPIDSPTSI;
18192 typedef enum DISPID_SpeechRecoResult {
18193     DISPID_SRRRecoContext = 1,
18194     DISPID_SRRTimes = 2,
18195     DISPID_SRRAudioFormat = 3,
18196     DISPID_SRRPhraseInfo = 4,
18197     DISPID_SRRAlternates = 5,
18198     DISPID_SRRAudio = 6,
18199     DISPID_SRRSpeakAudio = 7,
18200     DISPID_SRRSaveToMemory = 8,
18201     DISPID_SRRDiscardResultInfo = 9
18202 } DISPID_SpeechRecoResult;
18203 typedef enum SpeechDiscardType {
18204     SDTProperty = SPDF_PROPERTY,
18205     SDTReplacement = SPDF_REPLACEMENT,
18206     SDTRule = SPDF_RULE,
18207     SDTDisplayText = SPDF_DISPLAYTEXT,
18208     SDTLexicalForm = SPDF_LEXICALFORM,
18209     SDTPronunciation = SPDF_PRONUNCIATION,
18210     SDTAudio = SPDF_AUDIO,
18211     SDTAlternates = SPDF_ALTERNATES,
18212     SDTAll = SPDF_ALL
18213 } SpeechDiscardType;
18214 typedef enum SpeechEmulationCompareFlags {
18215     SECFIgnoreCase = 0x1,
18216     SECFIgnoreKanaType = 0x10000,
18217     SECFIgnoreWidth = 0x20000,
18218     SECFNoSpecialChars = 0x20000000,
18219     SECFEmulateResult = 0x40000000,
18220     SECFDefault = (SECFIgnoreCase | SECFIgnoreKanaType) | SECFIgnoreWidth
18221 } SpeechEmulationCompareFlags;
18222 typedef enum DISPID_SpeechXMLRecoResult {
18223     DISPID_SRRGetXMLResult = DISPID_SRRDiscardResultInfo + 1,
18224     DISPID_SRRGetXMLErrorInfo = DISPID_SRRGetXMLResult + 1
18225 } DISPID_SpeechXMLRecoResult;
18226 typedef enum DISPID_SpeechRecoResult2 {
18227     DISPID_SRRSetTextFeedback = DISPID_SRRGetXMLErrorInfo + 1
18228 } DISPID_SpeechRecoResult2;
18229 typedef enum DISPID_SpeechPhraseBuilder {
18230     DISPID_SPPBRestorePhraseFromMemory = 1
18231 } DISPID_SpeechPhraseBuilder;
18232 typedef enum DISPID_SpeechRecoResultTimes {
18233     DISPID_SRRTStreamTime = 1,
18234     DISPID_SRRTLength = 2,
18235     DISPID_SRRTTickCount = 3,
18236     DISPID_SRRTOffsetFromStart = 4
18237 } DISPID_SpeechRecoResultTimes;
18238 typedef enum DISPID_SpeechPhraseAlternate {
18239     DISPID_SPARecoResult = 1,
18240     DISPID_SPAStartElementInResult = 2,
18241     DISPID_SPANumberOfElementsInResult = 3,
18242     DISPID_SPAPhraseInfo = 4,
18243     DISPID_SPACommit = 5
18244 } DISPID_SpeechPhraseAlternate;
18245 typedef enum DISPID_SpeechPhraseAlternates {
18246     DISPID_SPAsCount = 1,
18247     DISPID_SPAsItem = DISPID_VALUE,
18248     DISPID_SPAs_NewEnum = DISPID_NEWENUM
18249 } DISPID_SpeechPhraseAlternates;
18250 typedef enum DISPID_SpeechPhraseInfo {
18251     DISPID_SPILanguageId = 1,
18252     DISPID_SPIGrammarId = 2,
18253     DISPID_SPIStartTime = 3,
18254     DISPID_SPIAudioStreamPosition = 4,
18255     DISPID_SPIAudioSizeBytes = 5,
18256     DISPID_SPIRetainedSizeBytes = 6,
18257     DISPID_SPIAudioSizeTime = 7,
18258     DISPID_SPIRule = 8,
18259     DISPID_SPIProperties = 9,
18260     DISPID_SPIElements = 10,
18261     DISPID_SPIReplacements = 11,
18262     DISPID_SPIEngineId = 12,
18263     DISPID_SPIEnginePrivateData = 13,
18264     DISPID_SPISaveToMemory = 14,
18265     DISPID_SPIGetText = 15,
18266     DISPID_SPIGetDisplayAttributes = 16
18267 } DISPID_SpeechPhraseInfo;
18268 typedef enum DISPID_SpeechPhraseElement {
18269     DISPID_SPEAudioTimeOffset = 1,
18270     DISPID_SPEAudioSizeTime = 2,
18271     DISPID_SPEAudioStreamOffset = 3,
18272     DISPID_SPEAudioSizeBytes = 4,
18273     DISPID_SPERetainedStreamOffset = 5,
18274     DISPID_SPERetainedSizeBytes = 6,
18275     DISPID_SPEDisplayText = 7,
18276     DISPID_SPELexicalForm = 8,
18277     DISPID_SPEPronunciation = 9,
18278     DISPID_SPEDisplayAttributes = 10,
18279     DISPID_SPERequiredConfidence = 11,
18280     DISPID_SPEActualConfidence = 12,
18281     DISPID_SPEEngineConfidence = 13
18282 } DISPID_SpeechPhraseElement;
18283 typedef enum SpeechEngineConfidence {
18284     SECLowConfidence = -1,
18285     SECNormalConfidence = 0,
18286     SECHighConfidence = 1
18287 } SpeechEngineConfidence;
18288 typedef enum DISPID_SpeechPhraseElements {
18289     DISPID_SPEsCount = 1,
18290     DISPID_SPEsItem = DISPID_VALUE,
18291     DISPID_SPEs_NewEnum = DISPID_NEWENUM
18292 } DISPID_SpeechPhraseElements;
18293 typedef enum DISPID_SpeechPhraseReplacement {
18294     DISPID_SPRDisplayAttributes = 1,
18295     DISPID_SPRText = 2,
18296     DISPID_SPRFirstElement = 3,
18297     DISPID_SPRNumberOfElements = 4
18298 } DISPID_SpeechPhraseReplacement;
18299 typedef enum DISPID_SpeechPhraseReplacements {
18300     DISPID_SPRsCount = 1,
18301     DISPID_SPRsItem = DISPID_VALUE,
18302     DISPID_SPRs_NewEnum = DISPID_NEWENUM
18303 } DISPID_SpeechPhraseReplacements;
18304 typedef enum DISPID_SpeechPhraseProperty {
18305     DISPID_SPPName = 1,
18306     DISPID_SPPId = 2,
18307     DISPID_SPPValue = 3,
18308     DISPID_SPPFirstElement = 4,
18309     DISPID_SPPNumberOfElements = 5,
18310     DISPID_SPPEngineConfidence = 6,
18311     DISPID_SPPConfidence = 7,
18312     DISPID_SPPParent = 8,
18313     DISPID_SPPChildren = 9
18314 } DISPID_SpeechPhraseProperty;
18315 typedef enum DISPID_SpeechPhraseProperties {
18316     DISPID_SPPsCount = 1,
18317     DISPID_SPPsItem = DISPID_VALUE,
18318     DISPID_SPPs_NewEnum = DISPID_NEWENUM
18319 } DISPID_SpeechPhraseProperties;
18320 typedef enum DISPID_SpeechPhraseRule {
18321     DISPID_SPRuleName = 1,
18322     DISPID_SPRuleId = 2,
18323     DISPID_SPRuleFirstElement = 3,
18324     DISPID_SPRuleNumberOfElements = 4,
18325     DISPID_SPRuleParent = 5,
18326     DISPID_SPRuleChildren = 6,
18327     DISPID_SPRuleConfidence = 7,
18328     DISPID_SPRuleEngineConfidence = 8
18329 } DISPID_SpeechPhraseRule;
18330 typedef enum DISPID_SpeechPhraseRules {
18331     DISPID_SPRulesCount = 1,
18332     DISPID_SPRulesItem = DISPID_VALUE,
18333     DISPID_SPRules_NewEnum = DISPID_NEWENUM
18334 } DISPID_SpeechPhraseRules;
18335 typedef enum DISPID_SpeechLexicon {
18336     DISPID_SLGenerationId = 1,
18337     DISPID_SLGetWords = 2,
18338     DISPID_SLAddPronunciation = 3,
18339     DISPID_SLAddPronunciationByPhoneIds = 4,
18340     DISPID_SLRemovePronunciation = 5,
18341     DISPID_SLRemovePronunciationByPhoneIds = 6,
18342     DISPID_SLGetPronunciations = 7,
18343     DISPID_SLGetGenerationChange = 8
18344 } DISPID_SpeechLexicon;
18345 typedef enum SpeechLexiconType {
18346     SLTUser = eLEXTYPE_USER,
18347     SLTApp = eLEXTYPE_APP
18348 } SpeechLexiconType;
18349 typedef enum SpeechPartOfSpeech {
18350     SPSNotOverriden = SPPS_NotOverriden,
18351     SPSUnknown = SPPS_Unknown,
18352     SPSNoun = SPPS_Noun,
18353     SPSVerb = SPPS_Verb,
18354     SPSModifier = SPPS_Modifier,
18355     SPSFunction = SPPS_Function,
18356     SPSInterjection = SPPS_Interjection,
18357     SPSLMA = SPPS_LMA,
18358     SPSSuppressWord = SPPS_SuppressWord
18359 } SpeechPartOfSpeech;
18360 typedef enum DISPID_SpeechLexiconWords {
18361     DISPID_SLWsCount = 1,
18362     DISPID_SLWsItem = DISPID_VALUE,
18363     DISPID_SLWs_NewEnum = DISPID_NEWENUM
18364 } DISPID_SpeechLexiconWords;
18365 typedef enum SpeechWordType {
18366     SWTAdded = eWORDTYPE_ADDED,
18367     SWTDeleted = eWORDTYPE_DELETED
18368 } SpeechWordType;
18369 typedef enum DISPID_SpeechLexiconWord {
18370     DISPID_SLWLangId = 1,
18371     DISPID_SLWType = 2,
18372     DISPID_SLWWord = 3,
18373     DISPID_SLWPronunciations = 4
18374 } DISPID_SpeechLexiconWord;
18375 typedef enum DISPID_SpeechLexiconProns {
18376     DISPID_SLPsCount = 1,
18377     DISPID_SLPsItem = DISPID_VALUE,
18378     DISPID_SLPs_NewEnum = DISPID_NEWENUM
18379 } DISPID_SpeechLexiconProns;
18380 typedef enum DISPID_SpeechLexiconPronunciation {
18381     DISPID_SLPType = 1,
18382     DISPID_SLPLangId = 2,
18383     DISPID_SLPPartOfSpeech = 3,
18384     DISPID_SLPPhoneIds = 4,
18385     DISPID_SLPSymbolic = 5
18386 } DISPID_SpeechLexiconPronunciation;
18387 typedef enum DISPID_SpeechPhoneConverter {
18388     DISPID_SPCLangId = 1,
18389     DISPID_SPCPhoneToId = 2,
18390     DISPID_SPCIdToPhone = 3
18391 } DISPID_SpeechPhoneConverter;
18392 /*****************************************************************************
18393  * _ISpeechVoiceEvents dispinterface
18394  */
18395 #ifndef ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__
18396 #define ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__
18397 
18398 DEFINE_GUID(DIID__ISpeechVoiceEvents, 0xa372acd1, 0x3bef, 0x4bbd, 0x8f,0xfb, 0xcb,0x3e,0x2b,0x41,0x6a,0xf8);
18399 #if defined(__cplusplus) && !defined(CINTERFACE)
18400 MIDL_INTERFACE("a372acd1-3bef-4bbd-8ffb-cb3e2b416af8")
18401 _ISpeechVoiceEvents : public IDispatch
18402 {
18403 };
18404 #ifdef __CRT_UUID_DECL
18405 __CRT_UUID_DECL(_ISpeechVoiceEvents, 0xa372acd1, 0x3bef, 0x4bbd, 0x8f,0xfb, 0xcb,0x3e,0x2b,0x41,0x6a,0xf8)
18406 #endif
18407 #else
18408 typedef struct _ISpeechVoiceEventsVtbl {
18409     BEGIN_INTERFACE
18410 
18411     /*** IUnknown methods ***/
18412     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18413         _ISpeechVoiceEvents* This,
18414         REFIID riid,
18415         void **ppvObject);
18416 
18417     ULONG (STDMETHODCALLTYPE *AddRef)(
18418         _ISpeechVoiceEvents* This);
18419 
18420     ULONG (STDMETHODCALLTYPE *Release)(
18421         _ISpeechVoiceEvents* This);
18422 
18423     /*** IDispatch methods ***/
18424     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18425         _ISpeechVoiceEvents* This,
18426         UINT *pctinfo);
18427 
18428     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18429         _ISpeechVoiceEvents* This,
18430         UINT iTInfo,
18431         LCID lcid,
18432         ITypeInfo **ppTInfo);
18433 
18434     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18435         _ISpeechVoiceEvents* This,
18436         REFIID riid,
18437         LPOLESTR *rgszNames,
18438         UINT cNames,
18439         LCID lcid,
18440         DISPID *rgDispId);
18441 
18442     HRESULT (STDMETHODCALLTYPE *Invoke)(
18443         _ISpeechVoiceEvents* This,
18444         DISPID dispIdMember,
18445         REFIID riid,
18446         LCID lcid,
18447         WORD wFlags,
18448         DISPPARAMS *pDispParams,
18449         VARIANT *pVarResult,
18450         EXCEPINFO *pExcepInfo,
18451         UINT *puArgErr);
18452 
18453     END_INTERFACE
18454 } _ISpeechVoiceEventsVtbl;
18455 interface _ISpeechVoiceEvents {
18456     CONST_VTBL _ISpeechVoiceEventsVtbl* lpVtbl;
18457 };
18458 
18459 #ifdef COBJMACROS
18460 #ifndef WIDL_C_INLINE_WRAPPERS
18461 /*** IUnknown methods ***/
18462 #define _ISpeechVoiceEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18463 #define _ISpeechVoiceEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
18464 #define _ISpeechVoiceEvents_Release(This) (This)->lpVtbl->Release(This)
18465 /*** IDispatch methods ***/
18466 #define _ISpeechVoiceEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18467 #define _ISpeechVoiceEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18468 #define _ISpeechVoiceEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18469 #define _ISpeechVoiceEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18470 #else
18471 /*** IUnknown methods ***/
18472 static FORCEINLINE HRESULT _ISpeechVoiceEvents_QueryInterface(_ISpeechVoiceEvents* This,REFIID riid,void **ppvObject) {
18473     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18474 }
18475 static FORCEINLINE ULONG _ISpeechVoiceEvents_AddRef(_ISpeechVoiceEvents* This) {
18476     return This->lpVtbl->AddRef(This);
18477 }
18478 static FORCEINLINE ULONG _ISpeechVoiceEvents_Release(_ISpeechVoiceEvents* This) {
18479     return This->lpVtbl->Release(This);
18480 }
18481 /*** IDispatch methods ***/
18482 static FORCEINLINE HRESULT _ISpeechVoiceEvents_GetTypeInfoCount(_ISpeechVoiceEvents* This,UINT *pctinfo) {
18483     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18484 }
18485 static FORCEINLINE HRESULT _ISpeechVoiceEvents_GetTypeInfo(_ISpeechVoiceEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18486     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18487 }
18488 static FORCEINLINE HRESULT _ISpeechVoiceEvents_GetIDsOfNames(_ISpeechVoiceEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18489     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18490 }
18491 static FORCEINLINE HRESULT _ISpeechVoiceEvents_Invoke(_ISpeechVoiceEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18492     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18493 }
18494 #endif
18495 #endif
18496 
18497 #endif
18498 
18499 #endif  /* ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__ */
18500 
18501 /*****************************************************************************
18502  * ISpeechRecognizer interface
18503  */
18504 #ifndef __ISpeechRecognizer_INTERFACE_DEFINED__
18505 #define __ISpeechRecognizer_INTERFACE_DEFINED__
18506 
18507 DEFINE_GUID(IID_ISpeechRecognizer, 0x2d5f1c0c, 0xbd75, 0x4b08, 0x94,0x78, 0x3b,0x11,0xfe,0xa2,0x58,0x6c);
18508 #if defined(__cplusplus) && !defined(CINTERFACE)
18509 MIDL_INTERFACE("2d5f1c0c-bd75-4b08-9478-3b11fea2586c")
18510 ISpeechRecognizer : public IDispatch
18511 {
18512     virtual HRESULT STDMETHODCALLTYPE putref_Recognizer(
18513         ISpeechObjectToken *Recognizer) = 0;
18514 
18515     virtual HRESULT STDMETHODCALLTYPE get_Recognizer(
18516         ISpeechObjectToken **Recognizer) = 0;
18517 
18518     virtual HRESULT STDMETHODCALLTYPE put_AllowAudioInputFormatChangesOnNextSet(
18519         VARIANT_BOOL Allow) = 0;
18520 
18521     virtual HRESULT STDMETHODCALLTYPE get_AllowAudioInputFormatChangesOnNextSet(
18522         VARIANT_BOOL *Allow) = 0;
18523 
18524     virtual HRESULT STDMETHODCALLTYPE putref_AudioInput(
18525         ISpeechObjectToken *AudioInput = 0) = 0;
18526 
18527     virtual HRESULT STDMETHODCALLTYPE get_AudioInput(
18528         ISpeechObjectToken **AudioInput) = 0;
18529 
18530     virtual HRESULT STDMETHODCALLTYPE putref_AudioInputStream(
18531         ISpeechBaseStream *AudioInputStream = 0) = 0;
18532 
18533     virtual HRESULT STDMETHODCALLTYPE get_AudioInputStream(
18534         ISpeechBaseStream **AudioInputStream) = 0;
18535 
18536     virtual HRESULT STDMETHODCALLTYPE get_IsShared(
18537         VARIANT_BOOL *Shared) = 0;
18538 
18539     virtual HRESULT STDMETHODCALLTYPE put_State(
18540         SpeechRecognizerState State) = 0;
18541 
18542     virtual HRESULT STDMETHODCALLTYPE get_State(
18543         SpeechRecognizerState *State) = 0;
18544 
18545     virtual HRESULT STDMETHODCALLTYPE get_Status(
18546         ISpeechRecognizerStatus **Status) = 0;
18547 
18548     virtual HRESULT STDMETHODCALLTYPE putref_Profile(
18549         ISpeechObjectToken *Profile = 0) = 0;
18550 
18551     virtual HRESULT STDMETHODCALLTYPE get_Profile(
18552         ISpeechObjectToken **Profile) = 0;
18553 
18554     virtual HRESULT STDMETHODCALLTYPE EmulateRecognition(
18555         VARIANT TextElements,
18556         VARIANT *ElementDisplayAttributes = 0,
18557         LONG LanguageId = 0) = 0;
18558 
18559     virtual HRESULT STDMETHODCALLTYPE CreateRecoContext(
18560         ISpeechRecoContext **NewContext) = 0;
18561 
18562     virtual HRESULT STDMETHODCALLTYPE GetFormat(
18563         SpeechFormatType Type,
18564         ISpeechAudioFormat **Format) = 0;
18565 
18566     virtual HRESULT STDMETHODCALLTYPE SetPropertyNumber(
18567         const BSTR Name,
18568         LONG Value,
18569         VARIANT_BOOL *Supported) = 0;
18570 
18571     virtual HRESULT STDMETHODCALLTYPE GetPropertyNumber(
18572         const BSTR Name,
18573         LONG *Value,
18574         VARIANT_BOOL *Supported) = 0;
18575 
18576     virtual HRESULT STDMETHODCALLTYPE SetPropertyString(
18577         const BSTR Name,
18578         const BSTR Value,
18579         VARIANT_BOOL *Supported) = 0;
18580 
18581     virtual HRESULT STDMETHODCALLTYPE GetPropertyString(
18582         const BSTR Name,
18583         BSTR *Value,
18584         VARIANT_BOOL *Supported) = 0;
18585 
18586     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
18587         const BSTR TypeOfUI,
18588         const VARIANT *ExtraData,
18589         VARIANT_BOOL *Supported) = 0;
18590 
18591     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
18592         LONG hWndParent,
18593         BSTR Title,
18594         const BSTR TypeOfUI,
18595         const VARIANT *ExtraData = 0) = 0;
18596 
18597     virtual HRESULT STDMETHODCALLTYPE GetRecognizers(
18598         BSTR RequiredAttributes,
18599         BSTR OptionalAttributes,
18600         ISpeechObjectTokens **ObjectTokens) = 0;
18601 
18602     virtual HRESULT STDMETHODCALLTYPE GetAudioInputs(
18603         BSTR RequiredAttributes,
18604         BSTR OptionalAttributes,
18605         ISpeechObjectTokens **ObjectTokens) = 0;
18606 
18607     virtual HRESULT STDMETHODCALLTYPE GetProfiles(
18608         BSTR RequiredAttributes,
18609         BSTR OptionalAttributes,
18610         ISpeechObjectTokens **ObjectTokens) = 0;
18611 
18612 };
18613 #ifdef __CRT_UUID_DECL
18614 __CRT_UUID_DECL(ISpeechRecognizer, 0x2d5f1c0c, 0xbd75, 0x4b08, 0x94,0x78, 0x3b,0x11,0xfe,0xa2,0x58,0x6c)
18615 #endif
18616 #else
18617 typedef struct ISpeechRecognizerVtbl {
18618     BEGIN_INTERFACE
18619 
18620     /*** IUnknown methods ***/
18621     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18622         ISpeechRecognizer* This,
18623         REFIID riid,
18624         void **ppvObject);
18625 
18626     ULONG (STDMETHODCALLTYPE *AddRef)(
18627         ISpeechRecognizer* This);
18628 
18629     ULONG (STDMETHODCALLTYPE *Release)(
18630         ISpeechRecognizer* This);
18631 
18632     /*** IDispatch methods ***/
18633     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18634         ISpeechRecognizer* This,
18635         UINT *pctinfo);
18636 
18637     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18638         ISpeechRecognizer* This,
18639         UINT iTInfo,
18640         LCID lcid,
18641         ITypeInfo **ppTInfo);
18642 
18643     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18644         ISpeechRecognizer* This,
18645         REFIID riid,
18646         LPOLESTR *rgszNames,
18647         UINT cNames,
18648         LCID lcid,
18649         DISPID *rgDispId);
18650 
18651     HRESULT (STDMETHODCALLTYPE *Invoke)(
18652         ISpeechRecognizer* This,
18653         DISPID dispIdMember,
18654         REFIID riid,
18655         LCID lcid,
18656         WORD wFlags,
18657         DISPPARAMS *pDispParams,
18658         VARIANT *pVarResult,
18659         EXCEPINFO *pExcepInfo,
18660         UINT *puArgErr);
18661 
18662     /*** ISpeechRecognizer methods ***/
18663     HRESULT (STDMETHODCALLTYPE *putref_Recognizer)(
18664         ISpeechRecognizer* This,
18665         ISpeechObjectToken *Recognizer);
18666 
18667     HRESULT (STDMETHODCALLTYPE *get_Recognizer)(
18668         ISpeechRecognizer* This,
18669         ISpeechObjectToken **Recognizer);
18670 
18671     HRESULT (STDMETHODCALLTYPE *put_AllowAudioInputFormatChangesOnNextSet)(
18672         ISpeechRecognizer* This,
18673         VARIANT_BOOL Allow);
18674 
18675     HRESULT (STDMETHODCALLTYPE *get_AllowAudioInputFormatChangesOnNextSet)(
18676         ISpeechRecognizer* This,
18677         VARIANT_BOOL *Allow);
18678 
18679     HRESULT (STDMETHODCALLTYPE *putref_AudioInput)(
18680         ISpeechRecognizer* This,
18681         ISpeechObjectToken *AudioInput);
18682 
18683     HRESULT (STDMETHODCALLTYPE *get_AudioInput)(
18684         ISpeechRecognizer* This,
18685         ISpeechObjectToken **AudioInput);
18686 
18687     HRESULT (STDMETHODCALLTYPE *putref_AudioInputStream)(
18688         ISpeechRecognizer* This,
18689         ISpeechBaseStream *AudioInputStream);
18690 
18691     HRESULT (STDMETHODCALLTYPE *get_AudioInputStream)(
18692         ISpeechRecognizer* This,
18693         ISpeechBaseStream **AudioInputStream);
18694 
18695     HRESULT (STDMETHODCALLTYPE *get_IsShared)(
18696         ISpeechRecognizer* This,
18697         VARIANT_BOOL *Shared);
18698 
18699     HRESULT (STDMETHODCALLTYPE *put_State)(
18700         ISpeechRecognizer* This,
18701         SpeechRecognizerState State);
18702 
18703     HRESULT (STDMETHODCALLTYPE *get_State)(
18704         ISpeechRecognizer* This,
18705         SpeechRecognizerState *State);
18706 
18707     HRESULT (STDMETHODCALLTYPE *get_Status)(
18708         ISpeechRecognizer* This,
18709         ISpeechRecognizerStatus **Status);
18710 
18711     HRESULT (STDMETHODCALLTYPE *putref_Profile)(
18712         ISpeechRecognizer* This,
18713         ISpeechObjectToken *Profile);
18714 
18715     HRESULT (STDMETHODCALLTYPE *get_Profile)(
18716         ISpeechRecognizer* This,
18717         ISpeechObjectToken **Profile);
18718 
18719     HRESULT (STDMETHODCALLTYPE *EmulateRecognition)(
18720         ISpeechRecognizer* This,
18721         VARIANT TextElements,
18722         VARIANT *ElementDisplayAttributes,
18723         LONG LanguageId);
18724 
18725     HRESULT (STDMETHODCALLTYPE *CreateRecoContext)(
18726         ISpeechRecognizer* This,
18727         ISpeechRecoContext **NewContext);
18728 
18729     HRESULT (STDMETHODCALLTYPE *GetFormat)(
18730         ISpeechRecognizer* This,
18731         SpeechFormatType Type,
18732         ISpeechAudioFormat **Format);
18733 
18734     HRESULT (STDMETHODCALLTYPE *SetPropertyNumber)(
18735         ISpeechRecognizer* This,
18736         const BSTR Name,
18737         LONG Value,
18738         VARIANT_BOOL *Supported);
18739 
18740     HRESULT (STDMETHODCALLTYPE *GetPropertyNumber)(
18741         ISpeechRecognizer* This,
18742         const BSTR Name,
18743         LONG *Value,
18744         VARIANT_BOOL *Supported);
18745 
18746     HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
18747         ISpeechRecognizer* This,
18748         const BSTR Name,
18749         const BSTR Value,
18750         VARIANT_BOOL *Supported);
18751 
18752     HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
18753         ISpeechRecognizer* This,
18754         const BSTR Name,
18755         BSTR *Value,
18756         VARIANT_BOOL *Supported);
18757 
18758     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
18759         ISpeechRecognizer* This,
18760         const BSTR TypeOfUI,
18761         const VARIANT *ExtraData,
18762         VARIANT_BOOL *Supported);
18763 
18764     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
18765         ISpeechRecognizer* This,
18766         LONG hWndParent,
18767         BSTR Title,
18768         const BSTR TypeOfUI,
18769         const VARIANT *ExtraData);
18770 
18771     HRESULT (STDMETHODCALLTYPE *GetRecognizers)(
18772         ISpeechRecognizer* This,
18773         BSTR RequiredAttributes,
18774         BSTR OptionalAttributes,
18775         ISpeechObjectTokens **ObjectTokens);
18776 
18777     HRESULT (STDMETHODCALLTYPE *GetAudioInputs)(
18778         ISpeechRecognizer* This,
18779         BSTR RequiredAttributes,
18780         BSTR OptionalAttributes,
18781         ISpeechObjectTokens **ObjectTokens);
18782 
18783     HRESULT (STDMETHODCALLTYPE *GetProfiles)(
18784         ISpeechRecognizer* This,
18785         BSTR RequiredAttributes,
18786         BSTR OptionalAttributes,
18787         ISpeechObjectTokens **ObjectTokens);
18788 
18789     END_INTERFACE
18790 } ISpeechRecognizerVtbl;
18791 interface ISpeechRecognizer {
18792     CONST_VTBL ISpeechRecognizerVtbl* lpVtbl;
18793 };
18794 
18795 #ifdef COBJMACROS
18796 #ifndef WIDL_C_INLINE_WRAPPERS
18797 /*** IUnknown methods ***/
18798 #define ISpeechRecognizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18799 #define ISpeechRecognizer_AddRef(This) (This)->lpVtbl->AddRef(This)
18800 #define ISpeechRecognizer_Release(This) (This)->lpVtbl->Release(This)
18801 /*** IDispatch methods ***/
18802 #define ISpeechRecognizer_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18803 #define ISpeechRecognizer_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18804 #define ISpeechRecognizer_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18805 #define ISpeechRecognizer_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18806 /*** ISpeechRecognizer methods ***/
18807 #define ISpeechRecognizer_putref_Recognizer(This,Recognizer) (This)->lpVtbl->putref_Recognizer(This,Recognizer)
18808 #define ISpeechRecognizer_get_Recognizer(This,Recognizer) (This)->lpVtbl->get_Recognizer(This,Recognizer)
18809 #define ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->put_AllowAudioInputFormatChangesOnNextSet(This,Allow)
18810 #define ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->get_AllowAudioInputFormatChangesOnNextSet(This,Allow)
18811 #define ISpeechRecognizer_putref_AudioInput(This,AudioInput) (This)->lpVtbl->putref_AudioInput(This,AudioInput)
18812 #define ISpeechRecognizer_get_AudioInput(This,AudioInput) (This)->lpVtbl->get_AudioInput(This,AudioInput)
18813 #define ISpeechRecognizer_putref_AudioInputStream(This,AudioInputStream) (This)->lpVtbl->putref_AudioInputStream(This,AudioInputStream)
18814 #define ISpeechRecognizer_get_AudioInputStream(This,AudioInputStream) (This)->lpVtbl->get_AudioInputStream(This,AudioInputStream)
18815 #define ISpeechRecognizer_get_IsShared(This,Shared) (This)->lpVtbl->get_IsShared(This,Shared)
18816 #define ISpeechRecognizer_put_State(This,State) (This)->lpVtbl->put_State(This,State)
18817 #define ISpeechRecognizer_get_State(This,State) (This)->lpVtbl->get_State(This,State)
18818 #define ISpeechRecognizer_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
18819 #define ISpeechRecognizer_putref_Profile(This,Profile) (This)->lpVtbl->putref_Profile(This,Profile)
18820 #define ISpeechRecognizer_get_Profile(This,Profile) (This)->lpVtbl->get_Profile(This,Profile)
18821 #define ISpeechRecognizer_EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId) (This)->lpVtbl->EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId)
18822 #define ISpeechRecognizer_CreateRecoContext(This,NewContext) (This)->lpVtbl->CreateRecoContext(This,NewContext)
18823 #define ISpeechRecognizer_GetFormat(This,Type,Format) (This)->lpVtbl->GetFormat(This,Type,Format)
18824 #define ISpeechRecognizer_SetPropertyNumber(This,Name,Value,Supported) (This)->lpVtbl->SetPropertyNumber(This,Name,Value,Supported)
18825 #define ISpeechRecognizer_GetPropertyNumber(This,Name,Value,Supported) (This)->lpVtbl->GetPropertyNumber(This,Name,Value,Supported)
18826 #define ISpeechRecognizer_SetPropertyString(This,Name,Value,Supported) (This)->lpVtbl->SetPropertyString(This,Name,Value,Supported)
18827 #define ISpeechRecognizer_GetPropertyString(This,Name,Value,Supported) (This)->lpVtbl->GetPropertyString(This,Name,Value,Supported)
18828 #define ISpeechRecognizer_IsUISupported(This,TypeOfUI,ExtraData,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported)
18829 #define ISpeechRecognizer_DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData) (This)->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData)
18830 #define ISpeechRecognizer_GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
18831 #define ISpeechRecognizer_GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
18832 #define ISpeechRecognizer_GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
18833 #else
18834 /*** IUnknown methods ***/
18835 static FORCEINLINE HRESULT ISpeechRecognizer_QueryInterface(ISpeechRecognizer* This,REFIID riid,void **ppvObject) {
18836     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18837 }
18838 static FORCEINLINE ULONG ISpeechRecognizer_AddRef(ISpeechRecognizer* This) {
18839     return This->lpVtbl->AddRef(This);
18840 }
18841 static FORCEINLINE ULONG ISpeechRecognizer_Release(ISpeechRecognizer* This) {
18842     return This->lpVtbl->Release(This);
18843 }
18844 /*** IDispatch methods ***/
18845 static FORCEINLINE HRESULT ISpeechRecognizer_GetTypeInfoCount(ISpeechRecognizer* This,UINT *pctinfo) {
18846     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18847 }
18848 static FORCEINLINE HRESULT ISpeechRecognizer_GetTypeInfo(ISpeechRecognizer* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18849     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18850 }
18851 static FORCEINLINE HRESULT ISpeechRecognizer_GetIDsOfNames(ISpeechRecognizer* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18852     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18853 }
18854 static FORCEINLINE HRESULT ISpeechRecognizer_Invoke(ISpeechRecognizer* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18855     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18856 }
18857 /*** ISpeechRecognizer methods ***/
18858 static FORCEINLINE HRESULT ISpeechRecognizer_putref_Recognizer(ISpeechRecognizer* This,ISpeechObjectToken *Recognizer) {
18859     return This->lpVtbl->putref_Recognizer(This,Recognizer);
18860 }
18861 static FORCEINLINE HRESULT ISpeechRecognizer_get_Recognizer(ISpeechRecognizer* This,ISpeechObjectToken **Recognizer) {
18862     return This->lpVtbl->get_Recognizer(This,Recognizer);
18863 }
18864 static FORCEINLINE HRESULT ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet(ISpeechRecognizer* This,VARIANT_BOOL Allow) {
18865     return This->lpVtbl->put_AllowAudioInputFormatChangesOnNextSet(This,Allow);
18866 }
18867 static FORCEINLINE HRESULT ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet(ISpeechRecognizer* This,VARIANT_BOOL *Allow) {
18868     return This->lpVtbl->get_AllowAudioInputFormatChangesOnNextSet(This,Allow);
18869 }
18870 static FORCEINLINE HRESULT ISpeechRecognizer_putref_AudioInput(ISpeechRecognizer* This,ISpeechObjectToken *AudioInput) {
18871     return This->lpVtbl->putref_AudioInput(This,AudioInput);
18872 }
18873 static FORCEINLINE HRESULT ISpeechRecognizer_get_AudioInput(ISpeechRecognizer* This,ISpeechObjectToken **AudioInput) {
18874     return This->lpVtbl->get_AudioInput(This,AudioInput);
18875 }
18876 static FORCEINLINE HRESULT ISpeechRecognizer_putref_AudioInputStream(ISpeechRecognizer* This,ISpeechBaseStream *AudioInputStream) {
18877     return This->lpVtbl->putref_AudioInputStream(This,AudioInputStream);
18878 }
18879 static FORCEINLINE HRESULT ISpeechRecognizer_get_AudioInputStream(ISpeechRecognizer* This,ISpeechBaseStream **AudioInputStream) {
18880     return This->lpVtbl->get_AudioInputStream(This,AudioInputStream);
18881 }
18882 static FORCEINLINE HRESULT ISpeechRecognizer_get_IsShared(ISpeechRecognizer* This,VARIANT_BOOL *Shared) {
18883     return This->lpVtbl->get_IsShared(This,Shared);
18884 }
18885 static FORCEINLINE HRESULT ISpeechRecognizer_put_State(ISpeechRecognizer* This,SpeechRecognizerState State) {
18886     return This->lpVtbl->put_State(This,State);
18887 }
18888 static FORCEINLINE HRESULT ISpeechRecognizer_get_State(ISpeechRecognizer* This,SpeechRecognizerState *State) {
18889     return This->lpVtbl->get_State(This,State);
18890 }
18891 static FORCEINLINE HRESULT ISpeechRecognizer_get_Status(ISpeechRecognizer* This,ISpeechRecognizerStatus **Status) {
18892     return This->lpVtbl->get_Status(This,Status);
18893 }
18894 static FORCEINLINE HRESULT ISpeechRecognizer_putref_Profile(ISpeechRecognizer* This,ISpeechObjectToken *Profile) {
18895     return This->lpVtbl->putref_Profile(This,Profile);
18896 }
18897 static FORCEINLINE HRESULT ISpeechRecognizer_get_Profile(ISpeechRecognizer* This,ISpeechObjectToken **Profile) {
18898     return This->lpVtbl->get_Profile(This,Profile);
18899 }
18900 static FORCEINLINE HRESULT ISpeechRecognizer_EmulateRecognition(ISpeechRecognizer* This,VARIANT TextElements,VARIANT *ElementDisplayAttributes,LONG LanguageId) {
18901     return This->lpVtbl->EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId);
18902 }
18903 static FORCEINLINE HRESULT ISpeechRecognizer_CreateRecoContext(ISpeechRecognizer* This,ISpeechRecoContext **NewContext) {
18904     return This->lpVtbl->CreateRecoContext(This,NewContext);
18905 }
18906 static FORCEINLINE HRESULT ISpeechRecognizer_GetFormat(ISpeechRecognizer* This,SpeechFormatType Type,ISpeechAudioFormat **Format) {
18907     return This->lpVtbl->GetFormat(This,Type,Format);
18908 }
18909 static FORCEINLINE HRESULT ISpeechRecognizer_SetPropertyNumber(ISpeechRecognizer* This,const BSTR Name,LONG Value,VARIANT_BOOL *Supported) {
18910     return This->lpVtbl->SetPropertyNumber(This,Name,Value,Supported);
18911 }
18912 static FORCEINLINE HRESULT ISpeechRecognizer_GetPropertyNumber(ISpeechRecognizer* This,const BSTR Name,LONG *Value,VARIANT_BOOL *Supported) {
18913     return This->lpVtbl->GetPropertyNumber(This,Name,Value,Supported);
18914 }
18915 static FORCEINLINE HRESULT ISpeechRecognizer_SetPropertyString(ISpeechRecognizer* This,const BSTR Name,const BSTR Value,VARIANT_BOOL *Supported) {
18916     return This->lpVtbl->SetPropertyString(This,Name,Value,Supported);
18917 }
18918 static FORCEINLINE HRESULT ISpeechRecognizer_GetPropertyString(ISpeechRecognizer* This,const BSTR Name,BSTR *Value,VARIANT_BOOL *Supported) {
18919     return This->lpVtbl->GetPropertyString(This,Name,Value,Supported);
18920 }
18921 static FORCEINLINE HRESULT ISpeechRecognizer_IsUISupported(ISpeechRecognizer* This,const BSTR TypeOfUI,const VARIANT *ExtraData,VARIANT_BOOL *Supported) {
18922     return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported);
18923 }
18924 static FORCEINLINE HRESULT ISpeechRecognizer_DisplayUI(ISpeechRecognizer* This,LONG hWndParent,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData) {
18925     return This->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData);
18926 }
18927 static FORCEINLINE HRESULT ISpeechRecognizer_GetRecognizers(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
18928     return This->lpVtbl->GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
18929 }
18930 static FORCEINLINE HRESULT ISpeechRecognizer_GetAudioInputs(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
18931     return This->lpVtbl->GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
18932 }
18933 static FORCEINLINE HRESULT ISpeechRecognizer_GetProfiles(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
18934     return This->lpVtbl->GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
18935 }
18936 #endif
18937 #endif
18938 
18939 #endif
18940 
18941 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_putref_Recognizer_Proxy(
18942     ISpeechRecognizer* This,
18943     ISpeechObjectToken *Recognizer);
18944 void __RPC_STUB ISpeechRecognizer_putref_Recognizer_Stub(
18945     IRpcStubBuffer* This,
18946     IRpcChannelBuffer* pRpcChannelBuffer,
18947     PRPC_MESSAGE pRpcMessage,
18948     DWORD* pdwStubPhase);
18949 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_Recognizer_Proxy(
18950     ISpeechRecognizer* This,
18951     ISpeechObjectToken **Recognizer);
18952 void __RPC_STUB ISpeechRecognizer_get_Recognizer_Stub(
18953     IRpcStubBuffer* This,
18954     IRpcChannelBuffer* pRpcChannelBuffer,
18955     PRPC_MESSAGE pRpcMessage,
18956     DWORD* pdwStubPhase);
18957 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet_Proxy(
18958     ISpeechRecognizer* This,
18959     VARIANT_BOOL Allow);
18960 void __RPC_STUB ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet_Stub(
18961     IRpcStubBuffer* This,
18962     IRpcChannelBuffer* pRpcChannelBuffer,
18963     PRPC_MESSAGE pRpcMessage,
18964     DWORD* pdwStubPhase);
18965 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet_Proxy(
18966     ISpeechRecognizer* This,
18967     VARIANT_BOOL *Allow);
18968 void __RPC_STUB ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet_Stub(
18969     IRpcStubBuffer* This,
18970     IRpcChannelBuffer* pRpcChannelBuffer,
18971     PRPC_MESSAGE pRpcMessage,
18972     DWORD* pdwStubPhase);
18973 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_putref_AudioInput_Proxy(
18974     ISpeechRecognizer* This,
18975     ISpeechObjectToken *AudioInput);
18976 void __RPC_STUB ISpeechRecognizer_putref_AudioInput_Stub(
18977     IRpcStubBuffer* This,
18978     IRpcChannelBuffer* pRpcChannelBuffer,
18979     PRPC_MESSAGE pRpcMessage,
18980     DWORD* pdwStubPhase);
18981 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_AudioInput_Proxy(
18982     ISpeechRecognizer* This,
18983     ISpeechObjectToken **AudioInput);
18984 void __RPC_STUB ISpeechRecognizer_get_AudioInput_Stub(
18985     IRpcStubBuffer* This,
18986     IRpcChannelBuffer* pRpcChannelBuffer,
18987     PRPC_MESSAGE pRpcMessage,
18988     DWORD* pdwStubPhase);
18989 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_putref_AudioInputStream_Proxy(
18990     ISpeechRecognizer* This,
18991     ISpeechBaseStream *AudioInputStream);
18992 void __RPC_STUB ISpeechRecognizer_putref_AudioInputStream_Stub(
18993     IRpcStubBuffer* This,
18994     IRpcChannelBuffer* pRpcChannelBuffer,
18995     PRPC_MESSAGE pRpcMessage,
18996     DWORD* pdwStubPhase);
18997 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_AudioInputStream_Proxy(
18998     ISpeechRecognizer* This,
18999     ISpeechBaseStream **AudioInputStream);
19000 void __RPC_STUB ISpeechRecognizer_get_AudioInputStream_Stub(
19001     IRpcStubBuffer* This,
19002     IRpcChannelBuffer* pRpcChannelBuffer,
19003     PRPC_MESSAGE pRpcMessage,
19004     DWORD* pdwStubPhase);
19005 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_IsShared_Proxy(
19006     ISpeechRecognizer* This,
19007     VARIANT_BOOL *Shared);
19008 void __RPC_STUB ISpeechRecognizer_get_IsShared_Stub(
19009     IRpcStubBuffer* This,
19010     IRpcChannelBuffer* pRpcChannelBuffer,
19011     PRPC_MESSAGE pRpcMessage,
19012     DWORD* pdwStubPhase);
19013 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_put_State_Proxy(
19014     ISpeechRecognizer* This,
19015     SpeechRecognizerState State);
19016 void __RPC_STUB ISpeechRecognizer_put_State_Stub(
19017     IRpcStubBuffer* This,
19018     IRpcChannelBuffer* pRpcChannelBuffer,
19019     PRPC_MESSAGE pRpcMessage,
19020     DWORD* pdwStubPhase);
19021 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_State_Proxy(
19022     ISpeechRecognizer* This,
19023     SpeechRecognizerState *State);
19024 void __RPC_STUB ISpeechRecognizer_get_State_Stub(
19025     IRpcStubBuffer* This,
19026     IRpcChannelBuffer* pRpcChannelBuffer,
19027     PRPC_MESSAGE pRpcMessage,
19028     DWORD* pdwStubPhase);
19029 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_Status_Proxy(
19030     ISpeechRecognizer* This,
19031     ISpeechRecognizerStatus **Status);
19032 void __RPC_STUB ISpeechRecognizer_get_Status_Stub(
19033     IRpcStubBuffer* This,
19034     IRpcChannelBuffer* pRpcChannelBuffer,
19035     PRPC_MESSAGE pRpcMessage,
19036     DWORD* pdwStubPhase);
19037 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_putref_Profile_Proxy(
19038     ISpeechRecognizer* This,
19039     ISpeechObjectToken *Profile);
19040 void __RPC_STUB ISpeechRecognizer_putref_Profile_Stub(
19041     IRpcStubBuffer* This,
19042     IRpcChannelBuffer* pRpcChannelBuffer,
19043     PRPC_MESSAGE pRpcMessage,
19044     DWORD* pdwStubPhase);
19045 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_Profile_Proxy(
19046     ISpeechRecognizer* This,
19047     ISpeechObjectToken **Profile);
19048 void __RPC_STUB ISpeechRecognizer_get_Profile_Stub(
19049     IRpcStubBuffer* This,
19050     IRpcChannelBuffer* pRpcChannelBuffer,
19051     PRPC_MESSAGE pRpcMessage,
19052     DWORD* pdwStubPhase);
19053 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_EmulateRecognition_Proxy(
19054     ISpeechRecognizer* This,
19055     VARIANT TextElements,
19056     VARIANT *ElementDisplayAttributes,
19057     LONG LanguageId);
19058 void __RPC_STUB ISpeechRecognizer_EmulateRecognition_Stub(
19059     IRpcStubBuffer* This,
19060     IRpcChannelBuffer* pRpcChannelBuffer,
19061     PRPC_MESSAGE pRpcMessage,
19062     DWORD* pdwStubPhase);
19063 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_CreateRecoContext_Proxy(
19064     ISpeechRecognizer* This,
19065     ISpeechRecoContext **NewContext);
19066 void __RPC_STUB ISpeechRecognizer_CreateRecoContext_Stub(
19067     IRpcStubBuffer* This,
19068     IRpcChannelBuffer* pRpcChannelBuffer,
19069     PRPC_MESSAGE pRpcMessage,
19070     DWORD* pdwStubPhase);
19071 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_GetFormat_Proxy(
19072     ISpeechRecognizer* This,
19073     SpeechFormatType Type,
19074     ISpeechAudioFormat **Format);
19075 void __RPC_STUB ISpeechRecognizer_GetFormat_Stub(
19076     IRpcStubBuffer* This,
19077     IRpcChannelBuffer* pRpcChannelBuffer,
19078     PRPC_MESSAGE pRpcMessage,
19079     DWORD* pdwStubPhase);
19080 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_SetPropertyNumber_Proxy(
19081     ISpeechRecognizer* This,
19082     const BSTR Name,
19083     LONG Value,
19084     VARIANT_BOOL *Supported);
19085 void __RPC_STUB ISpeechRecognizer_SetPropertyNumber_Stub(
19086     IRpcStubBuffer* This,
19087     IRpcChannelBuffer* pRpcChannelBuffer,
19088     PRPC_MESSAGE pRpcMessage,
19089     DWORD* pdwStubPhase);
19090 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_GetPropertyNumber_Proxy(
19091     ISpeechRecognizer* This,
19092     const BSTR Name,
19093     LONG *Value,
19094     VARIANT_BOOL *Supported);
19095 void __RPC_STUB ISpeechRecognizer_GetPropertyNumber_Stub(
19096     IRpcStubBuffer* This,
19097     IRpcChannelBuffer* pRpcChannelBuffer,
19098     PRPC_MESSAGE pRpcMessage,
19099     DWORD* pdwStubPhase);
19100 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_SetPropertyString_Proxy(
19101     ISpeechRecognizer* This,
19102     const BSTR Name,
19103     const BSTR Value,
19104     VARIANT_BOOL *Supported);
19105 void __RPC_STUB ISpeechRecognizer_SetPropertyString_Stub(
19106     IRpcStubBuffer* This,
19107     IRpcChannelBuffer* pRpcChannelBuffer,
19108     PRPC_MESSAGE pRpcMessage,
19109     DWORD* pdwStubPhase);
19110 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_GetPropertyString_Proxy(
19111     ISpeechRecognizer* This,
19112     const BSTR Name,
19113     BSTR *Value,
19114     VARIANT_BOOL *Supported);
19115 void __RPC_STUB ISpeechRecognizer_GetPropertyString_Stub(
19116     IRpcStubBuffer* This,
19117     IRpcChannelBuffer* pRpcChannelBuffer,
19118     PRPC_MESSAGE pRpcMessage,
19119     DWORD* pdwStubPhase);
19120 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_IsUISupported_Proxy(
19121     ISpeechRecognizer* This,
19122     const BSTR TypeOfUI,
19123     const VARIANT *ExtraData,
19124     VARIANT_BOOL *Supported);
19125 void __RPC_STUB ISpeechRecognizer_IsUISupported_Stub(
19126     IRpcStubBuffer* This,
19127     IRpcChannelBuffer* pRpcChannelBuffer,
19128     PRPC_MESSAGE pRpcMessage,
19129     DWORD* pdwStubPhase);
19130 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_DisplayUI_Proxy(
19131     ISpeechRecognizer* This,
19132     LONG hWndParent,
19133     BSTR Title,
19134     const BSTR TypeOfUI,
19135     const VARIANT *ExtraData);
19136 void __RPC_STUB ISpeechRecognizer_DisplayUI_Stub(
19137     IRpcStubBuffer* This,
19138     IRpcChannelBuffer* pRpcChannelBuffer,
19139     PRPC_MESSAGE pRpcMessage,
19140     DWORD* pdwStubPhase);
19141 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_GetRecognizers_Proxy(
19142     ISpeechRecognizer* This,
19143     BSTR RequiredAttributes,
19144     BSTR OptionalAttributes,
19145     ISpeechObjectTokens **ObjectTokens);
19146 void __RPC_STUB ISpeechRecognizer_GetRecognizers_Stub(
19147     IRpcStubBuffer* This,
19148     IRpcChannelBuffer* pRpcChannelBuffer,
19149     PRPC_MESSAGE pRpcMessage,
19150     DWORD* pdwStubPhase);
19151 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_GetAudioInputs_Proxy(
19152     ISpeechRecognizer* This,
19153     BSTR RequiredAttributes,
19154     BSTR OptionalAttributes,
19155     ISpeechObjectTokens **ObjectTokens);
19156 void __RPC_STUB ISpeechRecognizer_GetAudioInputs_Stub(
19157     IRpcStubBuffer* This,
19158     IRpcChannelBuffer* pRpcChannelBuffer,
19159     PRPC_MESSAGE pRpcMessage,
19160     DWORD* pdwStubPhase);
19161 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_GetProfiles_Proxy(
19162     ISpeechRecognizer* This,
19163     BSTR RequiredAttributes,
19164     BSTR OptionalAttributes,
19165     ISpeechObjectTokens **ObjectTokens);
19166 void __RPC_STUB ISpeechRecognizer_GetProfiles_Stub(
19167     IRpcStubBuffer* This,
19168     IRpcChannelBuffer* pRpcChannelBuffer,
19169     PRPC_MESSAGE pRpcMessage,
19170     DWORD* pdwStubPhase);
19171 
19172 #endif  /* __ISpeechRecognizer_INTERFACE_DEFINED__ */
19173 
19174 /*****************************************************************************
19175  * ISpeechRecognizerStatus interface
19176  */
19177 #ifndef __ISpeechRecognizerStatus_INTERFACE_DEFINED__
19178 #define __ISpeechRecognizerStatus_INTERFACE_DEFINED__
19179 
19180 DEFINE_GUID(IID_ISpeechRecognizerStatus, 0xbff9e781, 0x53ec, 0x484e, 0xbb,0x8a, 0x0e,0x1b,0x55,0x51,0xe3,0x5c);
19181 #if defined(__cplusplus) && !defined(CINTERFACE)
19182 MIDL_INTERFACE("bff9e781-53ec-484e-bb8a-0e1b5551e35c")
19183 ISpeechRecognizerStatus : public IDispatch
19184 {
19185     virtual HRESULT STDMETHODCALLTYPE get_AudioStatus(
19186         ISpeechAudioStatus **AudioStatus) = 0;
19187 
19188     virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamPosition(
19189         VARIANT *pCurrentStreamPos) = 0;
19190 
19191     virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamNumber(
19192         LONG *StreamNumber) = 0;
19193 
19194     virtual HRESULT STDMETHODCALLTYPE get_NumberOfActiveRules(
19195         LONG *NumberOfActiveRules) = 0;
19196 
19197     virtual HRESULT STDMETHODCALLTYPE get_ClsidEngine(
19198         BSTR *ClsidEngine) = 0;
19199 
19200     virtual HRESULT STDMETHODCALLTYPE get_SupportedLanguages(
19201         VARIANT *SupportedLanguages) = 0;
19202 
19203 };
19204 #ifdef __CRT_UUID_DECL
19205 __CRT_UUID_DECL(ISpeechRecognizerStatus, 0xbff9e781, 0x53ec, 0x484e, 0xbb,0x8a, 0x0e,0x1b,0x55,0x51,0xe3,0x5c)
19206 #endif
19207 #else
19208 typedef struct ISpeechRecognizerStatusVtbl {
19209     BEGIN_INTERFACE
19210 
19211     /*** IUnknown methods ***/
19212     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19213         ISpeechRecognizerStatus* This,
19214         REFIID riid,
19215         void **ppvObject);
19216 
19217     ULONG (STDMETHODCALLTYPE *AddRef)(
19218         ISpeechRecognizerStatus* This);
19219 
19220     ULONG (STDMETHODCALLTYPE *Release)(
19221         ISpeechRecognizerStatus* This);
19222 
19223     /*** IDispatch methods ***/
19224     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19225         ISpeechRecognizerStatus* This,
19226         UINT *pctinfo);
19227 
19228     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19229         ISpeechRecognizerStatus* This,
19230         UINT iTInfo,
19231         LCID lcid,
19232         ITypeInfo **ppTInfo);
19233 
19234     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19235         ISpeechRecognizerStatus* This,
19236         REFIID riid,
19237         LPOLESTR *rgszNames,
19238         UINT cNames,
19239         LCID lcid,
19240         DISPID *rgDispId);
19241 
19242     HRESULT (STDMETHODCALLTYPE *Invoke)(
19243         ISpeechRecognizerStatus* This,
19244         DISPID dispIdMember,
19245         REFIID riid,
19246         LCID lcid,
19247         WORD wFlags,
19248         DISPPARAMS *pDispParams,
19249         VARIANT *pVarResult,
19250         EXCEPINFO *pExcepInfo,
19251         UINT *puArgErr);
19252 
19253     /*** ISpeechRecognizerStatus methods ***/
19254     HRESULT (STDMETHODCALLTYPE *get_AudioStatus)(
19255         ISpeechRecognizerStatus* This,
19256         ISpeechAudioStatus **AudioStatus);
19257 
19258     HRESULT (STDMETHODCALLTYPE *get_CurrentStreamPosition)(
19259         ISpeechRecognizerStatus* This,
19260         VARIANT *pCurrentStreamPos);
19261 
19262     HRESULT (STDMETHODCALLTYPE *get_CurrentStreamNumber)(
19263         ISpeechRecognizerStatus* This,
19264         LONG *StreamNumber);
19265 
19266     HRESULT (STDMETHODCALLTYPE *get_NumberOfActiveRules)(
19267         ISpeechRecognizerStatus* This,
19268         LONG *NumberOfActiveRules);
19269 
19270     HRESULT (STDMETHODCALLTYPE *get_ClsidEngine)(
19271         ISpeechRecognizerStatus* This,
19272         BSTR *ClsidEngine);
19273 
19274     HRESULT (STDMETHODCALLTYPE *get_SupportedLanguages)(
19275         ISpeechRecognizerStatus* This,
19276         VARIANT *SupportedLanguages);
19277 
19278     END_INTERFACE
19279 } ISpeechRecognizerStatusVtbl;
19280 interface ISpeechRecognizerStatus {
19281     CONST_VTBL ISpeechRecognizerStatusVtbl* lpVtbl;
19282 };
19283 
19284 #ifdef COBJMACROS
19285 #ifndef WIDL_C_INLINE_WRAPPERS
19286 /*** IUnknown methods ***/
19287 #define ISpeechRecognizerStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19288 #define ISpeechRecognizerStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
19289 #define ISpeechRecognizerStatus_Release(This) (This)->lpVtbl->Release(This)
19290 /*** IDispatch methods ***/
19291 #define ISpeechRecognizerStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19292 #define ISpeechRecognizerStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19293 #define ISpeechRecognizerStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19294 #define ISpeechRecognizerStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19295 /*** ISpeechRecognizerStatus methods ***/
19296 #define ISpeechRecognizerStatus_get_AudioStatus(This,AudioStatus) (This)->lpVtbl->get_AudioStatus(This,AudioStatus)
19297 #define ISpeechRecognizerStatus_get_CurrentStreamPosition(This,pCurrentStreamPos) (This)->lpVtbl->get_CurrentStreamPosition(This,pCurrentStreamPos)
19298 #define ISpeechRecognizerStatus_get_CurrentStreamNumber(This,StreamNumber) (This)->lpVtbl->get_CurrentStreamNumber(This,StreamNumber)
19299 #define ISpeechRecognizerStatus_get_NumberOfActiveRules(This,NumberOfActiveRules) (This)->lpVtbl->get_NumberOfActiveRules(This,NumberOfActiveRules)
19300 #define ISpeechRecognizerStatus_get_ClsidEngine(This,ClsidEngine) (This)->lpVtbl->get_ClsidEngine(This,ClsidEngine)
19301 #define ISpeechRecognizerStatus_get_SupportedLanguages(This,SupportedLanguages) (This)->lpVtbl->get_SupportedLanguages(This,SupportedLanguages)
19302 #else
19303 /*** IUnknown methods ***/
19304 static FORCEINLINE HRESULT ISpeechRecognizerStatus_QueryInterface(ISpeechRecognizerStatus* This,REFIID riid,void **ppvObject) {
19305     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19306 }
19307 static FORCEINLINE ULONG ISpeechRecognizerStatus_AddRef(ISpeechRecognizerStatus* This) {
19308     return This->lpVtbl->AddRef(This);
19309 }
19310 static FORCEINLINE ULONG ISpeechRecognizerStatus_Release(ISpeechRecognizerStatus* This) {
19311     return This->lpVtbl->Release(This);
19312 }
19313 /*** IDispatch methods ***/
19314 static FORCEINLINE HRESULT ISpeechRecognizerStatus_GetTypeInfoCount(ISpeechRecognizerStatus* This,UINT *pctinfo) {
19315     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19316 }
19317 static FORCEINLINE HRESULT ISpeechRecognizerStatus_GetTypeInfo(ISpeechRecognizerStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19318     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19319 }
19320 static FORCEINLINE HRESULT ISpeechRecognizerStatus_GetIDsOfNames(ISpeechRecognizerStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19321     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19322 }
19323 static FORCEINLINE HRESULT ISpeechRecognizerStatus_Invoke(ISpeechRecognizerStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19324     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19325 }
19326 /*** ISpeechRecognizerStatus methods ***/
19327 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_AudioStatus(ISpeechRecognizerStatus* This,ISpeechAudioStatus **AudioStatus) {
19328     return This->lpVtbl->get_AudioStatus(This,AudioStatus);
19329 }
19330 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_CurrentStreamPosition(ISpeechRecognizerStatus* This,VARIANT *pCurrentStreamPos) {
19331     return This->lpVtbl->get_CurrentStreamPosition(This,pCurrentStreamPos);
19332 }
19333 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_CurrentStreamNumber(ISpeechRecognizerStatus* This,LONG *StreamNumber) {
19334     return This->lpVtbl->get_CurrentStreamNumber(This,StreamNumber);
19335 }
19336 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_NumberOfActiveRules(ISpeechRecognizerStatus* This,LONG *NumberOfActiveRules) {
19337     return This->lpVtbl->get_NumberOfActiveRules(This,NumberOfActiveRules);
19338 }
19339 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_ClsidEngine(ISpeechRecognizerStatus* This,BSTR *ClsidEngine) {
19340     return This->lpVtbl->get_ClsidEngine(This,ClsidEngine);
19341 }
19342 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_SupportedLanguages(ISpeechRecognizerStatus* This,VARIANT *SupportedLanguages) {
19343     return This->lpVtbl->get_SupportedLanguages(This,SupportedLanguages);
19344 }
19345 #endif
19346 #endif
19347 
19348 #endif
19349 
19350 HRESULT STDMETHODCALLTYPE ISpeechRecognizerStatus_get_AudioStatus_Proxy(
19351     ISpeechRecognizerStatus* This,
19352     ISpeechAudioStatus **AudioStatus);
19353 void __RPC_STUB ISpeechRecognizerStatus_get_AudioStatus_Stub(
19354     IRpcStubBuffer* This,
19355     IRpcChannelBuffer* pRpcChannelBuffer,
19356     PRPC_MESSAGE pRpcMessage,
19357     DWORD* pdwStubPhase);
19358 HRESULT STDMETHODCALLTYPE ISpeechRecognizerStatus_get_CurrentStreamPosition_Proxy(
19359     ISpeechRecognizerStatus* This,
19360     VARIANT *pCurrentStreamPos);
19361 void __RPC_STUB ISpeechRecognizerStatus_get_CurrentStreamPosition_Stub(
19362     IRpcStubBuffer* This,
19363     IRpcChannelBuffer* pRpcChannelBuffer,
19364     PRPC_MESSAGE pRpcMessage,
19365     DWORD* pdwStubPhase);
19366 HRESULT STDMETHODCALLTYPE ISpeechRecognizerStatus_get_CurrentStreamNumber_Proxy(
19367     ISpeechRecognizerStatus* This,
19368     LONG *StreamNumber);
19369 void __RPC_STUB ISpeechRecognizerStatus_get_CurrentStreamNumber_Stub(
19370     IRpcStubBuffer* This,
19371     IRpcChannelBuffer* pRpcChannelBuffer,
19372     PRPC_MESSAGE pRpcMessage,
19373     DWORD* pdwStubPhase);
19374 HRESULT STDMETHODCALLTYPE ISpeechRecognizerStatus_get_NumberOfActiveRules_Proxy(
19375     ISpeechRecognizerStatus* This,
19376     LONG *NumberOfActiveRules);
19377 void __RPC_STUB ISpeechRecognizerStatus_get_NumberOfActiveRules_Stub(
19378     IRpcStubBuffer* This,
19379     IRpcChannelBuffer* pRpcChannelBuffer,
19380     PRPC_MESSAGE pRpcMessage,
19381     DWORD* pdwStubPhase);
19382 HRESULT STDMETHODCALLTYPE ISpeechRecognizerStatus_get_ClsidEngine_Proxy(
19383     ISpeechRecognizerStatus* This,
19384     BSTR *ClsidEngine);
19385 void __RPC_STUB ISpeechRecognizerStatus_get_ClsidEngine_Stub(
19386     IRpcStubBuffer* This,
19387     IRpcChannelBuffer* pRpcChannelBuffer,
19388     PRPC_MESSAGE pRpcMessage,
19389     DWORD* pdwStubPhase);
19390 HRESULT STDMETHODCALLTYPE ISpeechRecognizerStatus_get_SupportedLanguages_Proxy(
19391     ISpeechRecognizerStatus* This,
19392     VARIANT *SupportedLanguages);
19393 void __RPC_STUB ISpeechRecognizerStatus_get_SupportedLanguages_Stub(
19394     IRpcStubBuffer* This,
19395     IRpcChannelBuffer* pRpcChannelBuffer,
19396     PRPC_MESSAGE pRpcMessage,
19397     DWORD* pdwStubPhase);
19398 
19399 #endif  /* __ISpeechRecognizerStatus_INTERFACE_DEFINED__ */
19400 
19401 /*****************************************************************************
19402  * ISpeechRecoContext interface
19403  */
19404 #ifndef __ISpeechRecoContext_INTERFACE_DEFINED__
19405 #define __ISpeechRecoContext_INTERFACE_DEFINED__
19406 
19407 DEFINE_GUID(IID_ISpeechRecoContext, 0x580aa49d, 0x7e1e, 0x4809, 0xb8,0xe2, 0x57,0xda,0x80,0x61,0x04,0xb8);
19408 #if defined(__cplusplus) && !defined(CINTERFACE)
19409 MIDL_INTERFACE("580aa49d-7e1e-4809-b8e2-57da806104b8")
19410 ISpeechRecoContext : public IDispatch
19411 {
19412     virtual HRESULT STDMETHODCALLTYPE get_Recognizer(
19413         ISpeechRecognizer **Recognizer) = 0;
19414 
19415     virtual HRESULT STDMETHODCALLTYPE get_AudioInputInterferenceStatus(
19416         SpeechInterference *Interference) = 0;
19417 
19418     virtual HRESULT STDMETHODCALLTYPE get_RequestedUIType(
19419         BSTR *UIType) = 0;
19420 
19421     virtual HRESULT STDMETHODCALLTYPE putref_Voice(
19422         ISpeechVoice *Voice) = 0;
19423 
19424     virtual HRESULT STDMETHODCALLTYPE get_Voice(
19425         ISpeechVoice **Voice) = 0;
19426 
19427     virtual HRESULT STDMETHODCALLTYPE put_AllowVoiceFormatMatchingOnNextSet(
19428         VARIANT_BOOL Allow) = 0;
19429 
19430     virtual HRESULT STDMETHODCALLTYPE get_AllowVoiceFormatMatchingOnNextSet(
19431         VARIANT_BOOL *pAllow) = 0;
19432 
19433     virtual HRESULT STDMETHODCALLTYPE put_VoicePurgeEvent(
19434         SpeechRecoEvents EventInterest) = 0;
19435 
19436     virtual HRESULT STDMETHODCALLTYPE get_VoicePurgeEvent(
19437         SpeechRecoEvents *EventInterest) = 0;
19438 
19439     virtual HRESULT STDMETHODCALLTYPE put_EventInterests(
19440         SpeechRecoEvents EventInterest) = 0;
19441 
19442     virtual HRESULT STDMETHODCALLTYPE get_EventInterests(
19443         SpeechRecoEvents *EventInterest) = 0;
19444 
19445     virtual HRESULT STDMETHODCALLTYPE put_CmdMaxAlternates(
19446         LONG MaxAlternates) = 0;
19447 
19448     virtual HRESULT STDMETHODCALLTYPE get_CmdMaxAlternates(
19449         LONG *MaxAlternates) = 0;
19450 
19451     virtual HRESULT STDMETHODCALLTYPE put_State(
19452         SpeechRecoContextState State) = 0;
19453 
19454     virtual HRESULT STDMETHODCALLTYPE get_State(
19455         SpeechRecoContextState *State) = 0;
19456 
19457     virtual HRESULT STDMETHODCALLTYPE put_RetainedAudio(
19458         SpeechRetainedAudioOptions Option) = 0;
19459 
19460     virtual HRESULT STDMETHODCALLTYPE get_RetainedAudio(
19461         SpeechRetainedAudioOptions *Option) = 0;
19462 
19463     virtual HRESULT STDMETHODCALLTYPE putref_RetainedAudioFormat(
19464         ISpeechAudioFormat *Format) = 0;
19465 
19466     virtual HRESULT STDMETHODCALLTYPE get_RetainedAudioFormat(
19467         ISpeechAudioFormat **Format) = 0;
19468 
19469     virtual HRESULT STDMETHODCALLTYPE Pause(
19470         ) = 0;
19471 
19472     virtual HRESULT STDMETHODCALLTYPE Resume(
19473         ) = 0;
19474 
19475     virtual HRESULT STDMETHODCALLTYPE CreateGrammar(
19476         VARIANT GrammarId,
19477         ISpeechRecoGrammar **Grammar) = 0;
19478 
19479     virtual HRESULT STDMETHODCALLTYPE CreateResultFromMemory(
19480         VARIANT *ResultBlock,
19481         ISpeechRecoResult **Result) = 0;
19482 
19483     virtual HRESULT STDMETHODCALLTYPE Bookmark(
19484         SpeechBookmarkOptions Options,
19485         VARIANT StreamPos,
19486         VARIANT BookmarkId) = 0;
19487 
19488     virtual HRESULT STDMETHODCALLTYPE SetAdaptationData(
19489         BSTR AdaptationString) = 0;
19490 
19491 };
19492 #ifdef __CRT_UUID_DECL
19493 __CRT_UUID_DECL(ISpeechRecoContext, 0x580aa49d, 0x7e1e, 0x4809, 0xb8,0xe2, 0x57,0xda,0x80,0x61,0x04,0xb8)
19494 #endif
19495 #else
19496 typedef struct ISpeechRecoContextVtbl {
19497     BEGIN_INTERFACE
19498 
19499     /*** IUnknown methods ***/
19500     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19501         ISpeechRecoContext* This,
19502         REFIID riid,
19503         void **ppvObject);
19504 
19505     ULONG (STDMETHODCALLTYPE *AddRef)(
19506         ISpeechRecoContext* This);
19507 
19508     ULONG (STDMETHODCALLTYPE *Release)(
19509         ISpeechRecoContext* This);
19510 
19511     /*** IDispatch methods ***/
19512     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19513         ISpeechRecoContext* This,
19514         UINT *pctinfo);
19515 
19516     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19517         ISpeechRecoContext* This,
19518         UINT iTInfo,
19519         LCID lcid,
19520         ITypeInfo **ppTInfo);
19521 
19522     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19523         ISpeechRecoContext* This,
19524         REFIID riid,
19525         LPOLESTR *rgszNames,
19526         UINT cNames,
19527         LCID lcid,
19528         DISPID *rgDispId);
19529 
19530     HRESULT (STDMETHODCALLTYPE *Invoke)(
19531         ISpeechRecoContext* This,
19532         DISPID dispIdMember,
19533         REFIID riid,
19534         LCID lcid,
19535         WORD wFlags,
19536         DISPPARAMS *pDispParams,
19537         VARIANT *pVarResult,
19538         EXCEPINFO *pExcepInfo,
19539         UINT *puArgErr);
19540 
19541     /*** ISpeechRecoContext methods ***/
19542     HRESULT (STDMETHODCALLTYPE *get_Recognizer)(
19543         ISpeechRecoContext* This,
19544         ISpeechRecognizer **Recognizer);
19545 
19546     HRESULT (STDMETHODCALLTYPE *get_AudioInputInterferenceStatus)(
19547         ISpeechRecoContext* This,
19548         SpeechInterference *Interference);
19549 
19550     HRESULT (STDMETHODCALLTYPE *get_RequestedUIType)(
19551         ISpeechRecoContext* This,
19552         BSTR *UIType);
19553 
19554     HRESULT (STDMETHODCALLTYPE *putref_Voice)(
19555         ISpeechRecoContext* This,
19556         ISpeechVoice *Voice);
19557 
19558     HRESULT (STDMETHODCALLTYPE *get_Voice)(
19559         ISpeechRecoContext* This,
19560         ISpeechVoice **Voice);
19561 
19562     HRESULT (STDMETHODCALLTYPE *put_AllowVoiceFormatMatchingOnNextSet)(
19563         ISpeechRecoContext* This,
19564         VARIANT_BOOL Allow);
19565 
19566     HRESULT (STDMETHODCALLTYPE *get_AllowVoiceFormatMatchingOnNextSet)(
19567         ISpeechRecoContext* This,
19568         VARIANT_BOOL *pAllow);
19569 
19570     HRESULT (STDMETHODCALLTYPE *put_VoicePurgeEvent)(
19571         ISpeechRecoContext* This,
19572         SpeechRecoEvents EventInterest);
19573 
19574     HRESULT (STDMETHODCALLTYPE *get_VoicePurgeEvent)(
19575         ISpeechRecoContext* This,
19576         SpeechRecoEvents *EventInterest);
19577 
19578     HRESULT (STDMETHODCALLTYPE *put_EventInterests)(
19579         ISpeechRecoContext* This,
19580         SpeechRecoEvents EventInterest);
19581 
19582     HRESULT (STDMETHODCALLTYPE *get_EventInterests)(
19583         ISpeechRecoContext* This,
19584         SpeechRecoEvents *EventInterest);
19585 
19586     HRESULT (STDMETHODCALLTYPE *put_CmdMaxAlternates)(
19587         ISpeechRecoContext* This,
19588         LONG MaxAlternates);
19589 
19590     HRESULT (STDMETHODCALLTYPE *get_CmdMaxAlternates)(
19591         ISpeechRecoContext* This,
19592         LONG *MaxAlternates);
19593 
19594     HRESULT (STDMETHODCALLTYPE *put_State)(
19595         ISpeechRecoContext* This,
19596         SpeechRecoContextState State);
19597 
19598     HRESULT (STDMETHODCALLTYPE *get_State)(
19599         ISpeechRecoContext* This,
19600         SpeechRecoContextState *State);
19601 
19602     HRESULT (STDMETHODCALLTYPE *put_RetainedAudio)(
19603         ISpeechRecoContext* This,
19604         SpeechRetainedAudioOptions Option);
19605 
19606     HRESULT (STDMETHODCALLTYPE *get_RetainedAudio)(
19607         ISpeechRecoContext* This,
19608         SpeechRetainedAudioOptions *Option);
19609 
19610     HRESULT (STDMETHODCALLTYPE *putref_RetainedAudioFormat)(
19611         ISpeechRecoContext* This,
19612         ISpeechAudioFormat *Format);
19613 
19614     HRESULT (STDMETHODCALLTYPE *get_RetainedAudioFormat)(
19615         ISpeechRecoContext* This,
19616         ISpeechAudioFormat **Format);
19617 
19618     HRESULT (STDMETHODCALLTYPE *Pause)(
19619         ISpeechRecoContext* This);
19620 
19621     HRESULT (STDMETHODCALLTYPE *Resume)(
19622         ISpeechRecoContext* This);
19623 
19624     HRESULT (STDMETHODCALLTYPE *CreateGrammar)(
19625         ISpeechRecoContext* This,
19626         VARIANT GrammarId,
19627         ISpeechRecoGrammar **Grammar);
19628 
19629     HRESULT (STDMETHODCALLTYPE *CreateResultFromMemory)(
19630         ISpeechRecoContext* This,
19631         VARIANT *ResultBlock,
19632         ISpeechRecoResult **Result);
19633 
19634     HRESULT (STDMETHODCALLTYPE *Bookmark)(
19635         ISpeechRecoContext* This,
19636         SpeechBookmarkOptions Options,
19637         VARIANT StreamPos,
19638         VARIANT BookmarkId);
19639 
19640     HRESULT (STDMETHODCALLTYPE *SetAdaptationData)(
19641         ISpeechRecoContext* This,
19642         BSTR AdaptationString);
19643 
19644     END_INTERFACE
19645 } ISpeechRecoContextVtbl;
19646 interface ISpeechRecoContext {
19647     CONST_VTBL ISpeechRecoContextVtbl* lpVtbl;
19648 };
19649 
19650 #ifdef COBJMACROS
19651 #ifndef WIDL_C_INLINE_WRAPPERS
19652 /*** IUnknown methods ***/
19653 #define ISpeechRecoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19654 #define ISpeechRecoContext_AddRef(This) (This)->lpVtbl->AddRef(This)
19655 #define ISpeechRecoContext_Release(This) (This)->lpVtbl->Release(This)
19656 /*** IDispatch methods ***/
19657 #define ISpeechRecoContext_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19658 #define ISpeechRecoContext_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19659 #define ISpeechRecoContext_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19660 #define ISpeechRecoContext_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19661 /*** ISpeechRecoContext methods ***/
19662 #define ISpeechRecoContext_get_Recognizer(This,Recognizer) (This)->lpVtbl->get_Recognizer(This,Recognizer)
19663 #define ISpeechRecoContext_get_AudioInputInterferenceStatus(This,Interference) (This)->lpVtbl->get_AudioInputInterferenceStatus(This,Interference)
19664 #define ISpeechRecoContext_get_RequestedUIType(This,UIType) (This)->lpVtbl->get_RequestedUIType(This,UIType)
19665 #define ISpeechRecoContext_putref_Voice(This,Voice) (This)->lpVtbl->putref_Voice(This,Voice)
19666 #define ISpeechRecoContext_get_Voice(This,Voice) (This)->lpVtbl->get_Voice(This,Voice)
19667 #define ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet(This,Allow) (This)->lpVtbl->put_AllowVoiceFormatMatchingOnNextSet(This,Allow)
19668 #define ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet(This,pAllow) (This)->lpVtbl->get_AllowVoiceFormatMatchingOnNextSet(This,pAllow)
19669 #define ISpeechRecoContext_put_VoicePurgeEvent(This,EventInterest) (This)->lpVtbl->put_VoicePurgeEvent(This,EventInterest)
19670 #define ISpeechRecoContext_get_VoicePurgeEvent(This,EventInterest) (This)->lpVtbl->get_VoicePurgeEvent(This,EventInterest)
19671 #define ISpeechRecoContext_put_EventInterests(This,EventInterest) (This)->lpVtbl->put_EventInterests(This,EventInterest)
19672 #define ISpeechRecoContext_get_EventInterests(This,EventInterest) (This)->lpVtbl->get_EventInterests(This,EventInterest)
19673 #define ISpeechRecoContext_put_CmdMaxAlternates(This,MaxAlternates) (This)->lpVtbl->put_CmdMaxAlternates(This,MaxAlternates)
19674 #define ISpeechRecoContext_get_CmdMaxAlternates(This,MaxAlternates) (This)->lpVtbl->get_CmdMaxAlternates(This,MaxAlternates)
19675 #define ISpeechRecoContext_put_State(This,State) (This)->lpVtbl->put_State(This,State)
19676 #define ISpeechRecoContext_get_State(This,State) (This)->lpVtbl->get_State(This,State)
19677 #define ISpeechRecoContext_put_RetainedAudio(This,Option) (This)->lpVtbl->put_RetainedAudio(This,Option)
19678 #define ISpeechRecoContext_get_RetainedAudio(This,Option) (This)->lpVtbl->get_RetainedAudio(This,Option)
19679 #define ISpeechRecoContext_putref_RetainedAudioFormat(This,Format) (This)->lpVtbl->putref_RetainedAudioFormat(This,Format)
19680 #define ISpeechRecoContext_get_RetainedAudioFormat(This,Format) (This)->lpVtbl->get_RetainedAudioFormat(This,Format)
19681 #define ISpeechRecoContext_Pause(This) (This)->lpVtbl->Pause(This)
19682 #define ISpeechRecoContext_Resume(This) (This)->lpVtbl->Resume(This)
19683 #define ISpeechRecoContext_CreateGrammar(This,GrammarId,Grammar) (This)->lpVtbl->CreateGrammar(This,GrammarId,Grammar)
19684 #define ISpeechRecoContext_CreateResultFromMemory(This,ResultBlock,Result) (This)->lpVtbl->CreateResultFromMemory(This,ResultBlock,Result)
19685 #define ISpeechRecoContext_Bookmark(This,Options,StreamPos,BookmarkId) (This)->lpVtbl->Bookmark(This,Options,StreamPos,BookmarkId)
19686 #define ISpeechRecoContext_SetAdaptationData(This,AdaptationString) (This)->lpVtbl->SetAdaptationData(This,AdaptationString)
19687 #else
19688 /*** IUnknown methods ***/
19689 static FORCEINLINE HRESULT ISpeechRecoContext_QueryInterface(ISpeechRecoContext* This,REFIID riid,void **ppvObject) {
19690     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19691 }
19692 static FORCEINLINE ULONG ISpeechRecoContext_AddRef(ISpeechRecoContext* This) {
19693     return This->lpVtbl->AddRef(This);
19694 }
19695 static FORCEINLINE ULONG ISpeechRecoContext_Release(ISpeechRecoContext* This) {
19696     return This->lpVtbl->Release(This);
19697 }
19698 /*** IDispatch methods ***/
19699 static FORCEINLINE HRESULT ISpeechRecoContext_GetTypeInfoCount(ISpeechRecoContext* This,UINT *pctinfo) {
19700     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19701 }
19702 static FORCEINLINE HRESULT ISpeechRecoContext_GetTypeInfo(ISpeechRecoContext* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19703     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19704 }
19705 static FORCEINLINE HRESULT ISpeechRecoContext_GetIDsOfNames(ISpeechRecoContext* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19706     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19707 }
19708 static FORCEINLINE HRESULT ISpeechRecoContext_Invoke(ISpeechRecoContext* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19709     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19710 }
19711 /*** ISpeechRecoContext methods ***/
19712 static FORCEINLINE HRESULT ISpeechRecoContext_get_Recognizer(ISpeechRecoContext* This,ISpeechRecognizer **Recognizer) {
19713     return This->lpVtbl->get_Recognizer(This,Recognizer);
19714 }
19715 static FORCEINLINE HRESULT ISpeechRecoContext_get_AudioInputInterferenceStatus(ISpeechRecoContext* This,SpeechInterference *Interference) {
19716     return This->lpVtbl->get_AudioInputInterferenceStatus(This,Interference);
19717 }
19718 static FORCEINLINE HRESULT ISpeechRecoContext_get_RequestedUIType(ISpeechRecoContext* This,BSTR *UIType) {
19719     return This->lpVtbl->get_RequestedUIType(This,UIType);
19720 }
19721 static FORCEINLINE HRESULT ISpeechRecoContext_putref_Voice(ISpeechRecoContext* This,ISpeechVoice *Voice) {
19722     return This->lpVtbl->putref_Voice(This,Voice);
19723 }
19724 static FORCEINLINE HRESULT ISpeechRecoContext_get_Voice(ISpeechRecoContext* This,ISpeechVoice **Voice) {
19725     return This->lpVtbl->get_Voice(This,Voice);
19726 }
19727 static FORCEINLINE HRESULT ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet(ISpeechRecoContext* This,VARIANT_BOOL Allow) {
19728     return This->lpVtbl->put_AllowVoiceFormatMatchingOnNextSet(This,Allow);
19729 }
19730 static FORCEINLINE HRESULT ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet(ISpeechRecoContext* This,VARIANT_BOOL *pAllow) {
19731     return This->lpVtbl->get_AllowVoiceFormatMatchingOnNextSet(This,pAllow);
19732 }
19733 static FORCEINLINE HRESULT ISpeechRecoContext_put_VoicePurgeEvent(ISpeechRecoContext* This,SpeechRecoEvents EventInterest) {
19734     return This->lpVtbl->put_VoicePurgeEvent(This,EventInterest);
19735 }
19736 static FORCEINLINE HRESULT ISpeechRecoContext_get_VoicePurgeEvent(ISpeechRecoContext* This,SpeechRecoEvents *EventInterest) {
19737     return This->lpVtbl->get_VoicePurgeEvent(This,EventInterest);
19738 }
19739 static FORCEINLINE HRESULT ISpeechRecoContext_put_EventInterests(ISpeechRecoContext* This,SpeechRecoEvents EventInterest) {
19740     return This->lpVtbl->put_EventInterests(This,EventInterest);
19741 }
19742 static FORCEINLINE HRESULT ISpeechRecoContext_get_EventInterests(ISpeechRecoContext* This,SpeechRecoEvents *EventInterest) {
19743     return This->lpVtbl->get_EventInterests(This,EventInterest);
19744 }
19745 static FORCEINLINE HRESULT ISpeechRecoContext_put_CmdMaxAlternates(ISpeechRecoContext* This,LONG MaxAlternates) {
19746     return This->lpVtbl->put_CmdMaxAlternates(This,MaxAlternates);
19747 }
19748 static FORCEINLINE HRESULT ISpeechRecoContext_get_CmdMaxAlternates(ISpeechRecoContext* This,LONG *MaxAlternates) {
19749     return This->lpVtbl->get_CmdMaxAlternates(This,MaxAlternates);
19750 }
19751 static FORCEINLINE HRESULT ISpeechRecoContext_put_State(ISpeechRecoContext* This,SpeechRecoContextState State) {
19752     return This->lpVtbl->put_State(This,State);
19753 }
19754 static FORCEINLINE HRESULT ISpeechRecoContext_get_State(ISpeechRecoContext* This,SpeechRecoContextState *State) {
19755     return This->lpVtbl->get_State(This,State);
19756 }
19757 static FORCEINLINE HRESULT ISpeechRecoContext_put_RetainedAudio(ISpeechRecoContext* This,SpeechRetainedAudioOptions Option) {
19758     return This->lpVtbl->put_RetainedAudio(This,Option);
19759 }
19760 static FORCEINLINE HRESULT ISpeechRecoContext_get_RetainedAudio(ISpeechRecoContext* This,SpeechRetainedAudioOptions *Option) {
19761     return This->lpVtbl->get_RetainedAudio(This,Option);
19762 }
19763 static FORCEINLINE HRESULT ISpeechRecoContext_putref_RetainedAudioFormat(ISpeechRecoContext* This,ISpeechAudioFormat *Format) {
19764     return This->lpVtbl->putref_RetainedAudioFormat(This,Format);
19765 }
19766 static FORCEINLINE HRESULT ISpeechRecoContext_get_RetainedAudioFormat(ISpeechRecoContext* This,ISpeechAudioFormat **Format) {
19767     return This->lpVtbl->get_RetainedAudioFormat(This,Format);
19768 }
19769 static FORCEINLINE HRESULT ISpeechRecoContext_Pause(ISpeechRecoContext* This) {
19770     return This->lpVtbl->Pause(This);
19771 }
19772 static FORCEINLINE HRESULT ISpeechRecoContext_Resume(ISpeechRecoContext* This) {
19773     return This->lpVtbl->Resume(This);
19774 }
19775 static FORCEINLINE HRESULT ISpeechRecoContext_CreateGrammar(ISpeechRecoContext* This,VARIANT GrammarId,ISpeechRecoGrammar **Grammar) {
19776     return This->lpVtbl->CreateGrammar(This,GrammarId,Grammar);
19777 }
19778 static FORCEINLINE HRESULT ISpeechRecoContext_CreateResultFromMemory(ISpeechRecoContext* This,VARIANT *ResultBlock,ISpeechRecoResult **Result) {
19779     return This->lpVtbl->CreateResultFromMemory(This,ResultBlock,Result);
19780 }
19781 static FORCEINLINE HRESULT ISpeechRecoContext_Bookmark(ISpeechRecoContext* This,SpeechBookmarkOptions Options,VARIANT StreamPos,VARIANT BookmarkId) {
19782     return This->lpVtbl->Bookmark(This,Options,StreamPos,BookmarkId);
19783 }
19784 static FORCEINLINE HRESULT ISpeechRecoContext_SetAdaptationData(ISpeechRecoContext* This,BSTR AdaptationString) {
19785     return This->lpVtbl->SetAdaptationData(This,AdaptationString);
19786 }
19787 #endif
19788 #endif
19789 
19790 #endif
19791 
19792 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_Recognizer_Proxy(
19793     ISpeechRecoContext* This,
19794     ISpeechRecognizer **Recognizer);
19795 void __RPC_STUB ISpeechRecoContext_get_Recognizer_Stub(
19796     IRpcStubBuffer* This,
19797     IRpcChannelBuffer* pRpcChannelBuffer,
19798     PRPC_MESSAGE pRpcMessage,
19799     DWORD* pdwStubPhase);
19800 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_AudioInputInterferenceStatus_Proxy(
19801     ISpeechRecoContext* This,
19802     SpeechInterference *Interference);
19803 void __RPC_STUB ISpeechRecoContext_get_AudioInputInterferenceStatus_Stub(
19804     IRpcStubBuffer* This,
19805     IRpcChannelBuffer* pRpcChannelBuffer,
19806     PRPC_MESSAGE pRpcMessage,
19807     DWORD* pdwStubPhase);
19808 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_RequestedUIType_Proxy(
19809     ISpeechRecoContext* This,
19810     BSTR *UIType);
19811 void __RPC_STUB ISpeechRecoContext_get_RequestedUIType_Stub(
19812     IRpcStubBuffer* This,
19813     IRpcChannelBuffer* pRpcChannelBuffer,
19814     PRPC_MESSAGE pRpcMessage,
19815     DWORD* pdwStubPhase);
19816 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_putref_Voice_Proxy(
19817     ISpeechRecoContext* This,
19818     ISpeechVoice *Voice);
19819 void __RPC_STUB ISpeechRecoContext_putref_Voice_Stub(
19820     IRpcStubBuffer* This,
19821     IRpcChannelBuffer* pRpcChannelBuffer,
19822     PRPC_MESSAGE pRpcMessage,
19823     DWORD* pdwStubPhase);
19824 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_Voice_Proxy(
19825     ISpeechRecoContext* This,
19826     ISpeechVoice **Voice);
19827 void __RPC_STUB ISpeechRecoContext_get_Voice_Stub(
19828     IRpcStubBuffer* This,
19829     IRpcChannelBuffer* pRpcChannelBuffer,
19830     PRPC_MESSAGE pRpcMessage,
19831     DWORD* pdwStubPhase);
19832 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet_Proxy(
19833     ISpeechRecoContext* This,
19834     VARIANT_BOOL Allow);
19835 void __RPC_STUB ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet_Stub(
19836     IRpcStubBuffer* This,
19837     IRpcChannelBuffer* pRpcChannelBuffer,
19838     PRPC_MESSAGE pRpcMessage,
19839     DWORD* pdwStubPhase);
19840 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet_Proxy(
19841     ISpeechRecoContext* This,
19842     VARIANT_BOOL *pAllow);
19843 void __RPC_STUB ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet_Stub(
19844     IRpcStubBuffer* This,
19845     IRpcChannelBuffer* pRpcChannelBuffer,
19846     PRPC_MESSAGE pRpcMessage,
19847     DWORD* pdwStubPhase);
19848 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_put_VoicePurgeEvent_Proxy(
19849     ISpeechRecoContext* This,
19850     SpeechRecoEvents EventInterest);
19851 void __RPC_STUB ISpeechRecoContext_put_VoicePurgeEvent_Stub(
19852     IRpcStubBuffer* This,
19853     IRpcChannelBuffer* pRpcChannelBuffer,
19854     PRPC_MESSAGE pRpcMessage,
19855     DWORD* pdwStubPhase);
19856 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_VoicePurgeEvent_Proxy(
19857     ISpeechRecoContext* This,
19858     SpeechRecoEvents *EventInterest);
19859 void __RPC_STUB ISpeechRecoContext_get_VoicePurgeEvent_Stub(
19860     IRpcStubBuffer* This,
19861     IRpcChannelBuffer* pRpcChannelBuffer,
19862     PRPC_MESSAGE pRpcMessage,
19863     DWORD* pdwStubPhase);
19864 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_put_EventInterests_Proxy(
19865     ISpeechRecoContext* This,
19866     SpeechRecoEvents EventInterest);
19867 void __RPC_STUB ISpeechRecoContext_put_EventInterests_Stub(
19868     IRpcStubBuffer* This,
19869     IRpcChannelBuffer* pRpcChannelBuffer,
19870     PRPC_MESSAGE pRpcMessage,
19871     DWORD* pdwStubPhase);
19872 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_EventInterests_Proxy(
19873     ISpeechRecoContext* This,
19874     SpeechRecoEvents *EventInterest);
19875 void __RPC_STUB ISpeechRecoContext_get_EventInterests_Stub(
19876     IRpcStubBuffer* This,
19877     IRpcChannelBuffer* pRpcChannelBuffer,
19878     PRPC_MESSAGE pRpcMessage,
19879     DWORD* pdwStubPhase);
19880 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_put_CmdMaxAlternates_Proxy(
19881     ISpeechRecoContext* This,
19882     LONG MaxAlternates);
19883 void __RPC_STUB ISpeechRecoContext_put_CmdMaxAlternates_Stub(
19884     IRpcStubBuffer* This,
19885     IRpcChannelBuffer* pRpcChannelBuffer,
19886     PRPC_MESSAGE pRpcMessage,
19887     DWORD* pdwStubPhase);
19888 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_CmdMaxAlternates_Proxy(
19889     ISpeechRecoContext* This,
19890     LONG *MaxAlternates);
19891 void __RPC_STUB ISpeechRecoContext_get_CmdMaxAlternates_Stub(
19892     IRpcStubBuffer* This,
19893     IRpcChannelBuffer* pRpcChannelBuffer,
19894     PRPC_MESSAGE pRpcMessage,
19895     DWORD* pdwStubPhase);
19896 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_put_State_Proxy(
19897     ISpeechRecoContext* This,
19898     SpeechRecoContextState State);
19899 void __RPC_STUB ISpeechRecoContext_put_State_Stub(
19900     IRpcStubBuffer* This,
19901     IRpcChannelBuffer* pRpcChannelBuffer,
19902     PRPC_MESSAGE pRpcMessage,
19903     DWORD* pdwStubPhase);
19904 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_State_Proxy(
19905     ISpeechRecoContext* This,
19906     SpeechRecoContextState *State);
19907 void __RPC_STUB ISpeechRecoContext_get_State_Stub(
19908     IRpcStubBuffer* This,
19909     IRpcChannelBuffer* pRpcChannelBuffer,
19910     PRPC_MESSAGE pRpcMessage,
19911     DWORD* pdwStubPhase);
19912 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_put_RetainedAudio_Proxy(
19913     ISpeechRecoContext* This,
19914     SpeechRetainedAudioOptions Option);
19915 void __RPC_STUB ISpeechRecoContext_put_RetainedAudio_Stub(
19916     IRpcStubBuffer* This,
19917     IRpcChannelBuffer* pRpcChannelBuffer,
19918     PRPC_MESSAGE pRpcMessage,
19919     DWORD* pdwStubPhase);
19920 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_RetainedAudio_Proxy(
19921     ISpeechRecoContext* This,
19922     SpeechRetainedAudioOptions *Option);
19923 void __RPC_STUB ISpeechRecoContext_get_RetainedAudio_Stub(
19924     IRpcStubBuffer* This,
19925     IRpcChannelBuffer* pRpcChannelBuffer,
19926     PRPC_MESSAGE pRpcMessage,
19927     DWORD* pdwStubPhase);
19928 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_putref_RetainedAudioFormat_Proxy(
19929     ISpeechRecoContext* This,
19930     ISpeechAudioFormat *Format);
19931 void __RPC_STUB ISpeechRecoContext_putref_RetainedAudioFormat_Stub(
19932     IRpcStubBuffer* This,
19933     IRpcChannelBuffer* pRpcChannelBuffer,
19934     PRPC_MESSAGE pRpcMessage,
19935     DWORD* pdwStubPhase);
19936 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_RetainedAudioFormat_Proxy(
19937     ISpeechRecoContext* This,
19938     ISpeechAudioFormat **Format);
19939 void __RPC_STUB ISpeechRecoContext_get_RetainedAudioFormat_Stub(
19940     IRpcStubBuffer* This,
19941     IRpcChannelBuffer* pRpcChannelBuffer,
19942     PRPC_MESSAGE pRpcMessage,
19943     DWORD* pdwStubPhase);
19944 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_Pause_Proxy(
19945     ISpeechRecoContext* This);
19946 void __RPC_STUB ISpeechRecoContext_Pause_Stub(
19947     IRpcStubBuffer* This,
19948     IRpcChannelBuffer* pRpcChannelBuffer,
19949     PRPC_MESSAGE pRpcMessage,
19950     DWORD* pdwStubPhase);
19951 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_Resume_Proxy(
19952     ISpeechRecoContext* This);
19953 void __RPC_STUB ISpeechRecoContext_Resume_Stub(
19954     IRpcStubBuffer* This,
19955     IRpcChannelBuffer* pRpcChannelBuffer,
19956     PRPC_MESSAGE pRpcMessage,
19957     DWORD* pdwStubPhase);
19958 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_CreateGrammar_Proxy(
19959     ISpeechRecoContext* This,
19960     VARIANT GrammarId,
19961     ISpeechRecoGrammar **Grammar);
19962 void __RPC_STUB ISpeechRecoContext_CreateGrammar_Stub(
19963     IRpcStubBuffer* This,
19964     IRpcChannelBuffer* pRpcChannelBuffer,
19965     PRPC_MESSAGE pRpcMessage,
19966     DWORD* pdwStubPhase);
19967 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_CreateResultFromMemory_Proxy(
19968     ISpeechRecoContext* This,
19969     VARIANT *ResultBlock,
19970     ISpeechRecoResult **Result);
19971 void __RPC_STUB ISpeechRecoContext_CreateResultFromMemory_Stub(
19972     IRpcStubBuffer* This,
19973     IRpcChannelBuffer* pRpcChannelBuffer,
19974     PRPC_MESSAGE pRpcMessage,
19975     DWORD* pdwStubPhase);
19976 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_Bookmark_Proxy(
19977     ISpeechRecoContext* This,
19978     SpeechBookmarkOptions Options,
19979     VARIANT StreamPos,
19980     VARIANT BookmarkId);
19981 void __RPC_STUB ISpeechRecoContext_Bookmark_Stub(
19982     IRpcStubBuffer* This,
19983     IRpcChannelBuffer* pRpcChannelBuffer,
19984     PRPC_MESSAGE pRpcMessage,
19985     DWORD* pdwStubPhase);
19986 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_SetAdaptationData_Proxy(
19987     ISpeechRecoContext* This,
19988     BSTR AdaptationString);
19989 void __RPC_STUB ISpeechRecoContext_SetAdaptationData_Stub(
19990     IRpcStubBuffer* This,
19991     IRpcChannelBuffer* pRpcChannelBuffer,
19992     PRPC_MESSAGE pRpcMessage,
19993     DWORD* pdwStubPhase);
19994 
19995 #endif  /* __ISpeechRecoContext_INTERFACE_DEFINED__ */
19996 
19997 /*****************************************************************************
19998  * ISpeechRecoGrammar interface
19999  */
20000 #ifndef __ISpeechRecoGrammar_INTERFACE_DEFINED__
20001 #define __ISpeechRecoGrammar_INTERFACE_DEFINED__
20002 
20003 DEFINE_GUID(IID_ISpeechRecoGrammar, 0xb6d6f79f, 0x2158, 0x4e50, 0xb5,0xbc, 0x9a,0x9c,0xcd,0x85,0x2a,0x09);
20004 #if defined(__cplusplus) && !defined(CINTERFACE)
20005 MIDL_INTERFACE("b6d6f79f-2158-4e50-b5bc-9a9ccd852a09")
20006 ISpeechRecoGrammar : public IDispatch
20007 {
20008     virtual HRESULT STDMETHODCALLTYPE get_Id(
20009         VARIANT *Id) = 0;
20010 
20011     virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
20012         ISpeechRecoContext **RecoContext) = 0;
20013 
20014     virtual HRESULT STDMETHODCALLTYPE put_State(
20015         SpeechGrammarState State) = 0;
20016 
20017     virtual HRESULT STDMETHODCALLTYPE get_State(
20018         SpeechGrammarState *State) = 0;
20019 
20020     virtual HRESULT STDMETHODCALLTYPE get_Rules(
20021         ISpeechGrammarRules **Rules) = 0;
20022 
20023     virtual HRESULT STDMETHODCALLTYPE Reset(
20024         SpeechLanguageId NewLanguage = 0) = 0;
20025 
20026     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromFile(
20027         const BSTR FileName,
20028         SpeechLoadOption LoadOption = SLOStatic) = 0;
20029 
20030     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromObject(
20031         const BSTR ClassId,
20032         const BSTR GrammarName,
20033         SpeechLoadOption LoadOption = SLOStatic) = 0;
20034 
20035     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromResource(
20036         LONG hModule,
20037         VARIANT ResourceName,
20038         VARIANT ResourceType,
20039         SpeechLanguageId LanguageId,
20040         SpeechLoadOption LoadOption = SLOStatic) = 0;
20041 
20042     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromMemory(
20043         VARIANT GrammarData,
20044         SpeechLoadOption LoadOption = SLOStatic) = 0;
20045 
20046     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromProprietaryGrammar(
20047         const BSTR ProprietaryGuid,
20048         const BSTR ProprietaryString,
20049         VARIANT ProprietaryData,
20050         SpeechLoadOption LoadOption = SLOStatic) = 0;
20051 
20052     virtual HRESULT STDMETHODCALLTYPE CmdSetRuleState(
20053         const BSTR Name,
20054         SpeechRuleState State) = 0;
20055 
20056     virtual HRESULT STDMETHODCALLTYPE CmdSetRuleIdState(
20057         LONG RuleId,
20058         SpeechRuleState State) = 0;
20059 
20060     virtual HRESULT STDMETHODCALLTYPE DictationLoad(
20061         const BSTR TopicName = L"",
20062         SpeechLoadOption LoadOption = SLOStatic) = 0;
20063 
20064     virtual HRESULT STDMETHODCALLTYPE DictationUnload(
20065         ) = 0;
20066 
20067     virtual HRESULT STDMETHODCALLTYPE DictationSetState(
20068         SpeechRuleState State) = 0;
20069 
20070     virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData(
20071         const BSTR Text,
20072         LONG TextLength,
20073         ISpeechTextSelectionInformation *Info) = 0;
20074 
20075     virtual HRESULT STDMETHODCALLTYPE SetTextSelection(
20076         ISpeechTextSelectionInformation *Info) = 0;
20077 
20078     virtual HRESULT STDMETHODCALLTYPE IsPronounceable(
20079         const BSTR Word,
20080         SpeechWordPronounceable *WordPronounceable) = 0;
20081 
20082 };
20083 #ifdef __CRT_UUID_DECL
20084 __CRT_UUID_DECL(ISpeechRecoGrammar, 0xb6d6f79f, 0x2158, 0x4e50, 0xb5,0xbc, 0x9a,0x9c,0xcd,0x85,0x2a,0x09)
20085 #endif
20086 #else
20087 typedef struct ISpeechRecoGrammarVtbl {
20088     BEGIN_INTERFACE
20089 
20090     /*** IUnknown methods ***/
20091     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20092         ISpeechRecoGrammar* This,
20093         REFIID riid,
20094         void **ppvObject);
20095 
20096     ULONG (STDMETHODCALLTYPE *AddRef)(
20097         ISpeechRecoGrammar* This);
20098 
20099     ULONG (STDMETHODCALLTYPE *Release)(
20100         ISpeechRecoGrammar* This);
20101 
20102     /*** IDispatch methods ***/
20103     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20104         ISpeechRecoGrammar* This,
20105         UINT *pctinfo);
20106 
20107     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20108         ISpeechRecoGrammar* This,
20109         UINT iTInfo,
20110         LCID lcid,
20111         ITypeInfo **ppTInfo);
20112 
20113     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20114         ISpeechRecoGrammar* This,
20115         REFIID riid,
20116         LPOLESTR *rgszNames,
20117         UINT cNames,
20118         LCID lcid,
20119         DISPID *rgDispId);
20120 
20121     HRESULT (STDMETHODCALLTYPE *Invoke)(
20122         ISpeechRecoGrammar* This,
20123         DISPID dispIdMember,
20124         REFIID riid,
20125         LCID lcid,
20126         WORD wFlags,
20127         DISPPARAMS *pDispParams,
20128         VARIANT *pVarResult,
20129         EXCEPINFO *pExcepInfo,
20130         UINT *puArgErr);
20131 
20132     /*** ISpeechRecoGrammar methods ***/
20133     HRESULT (STDMETHODCALLTYPE *get_Id)(
20134         ISpeechRecoGrammar* This,
20135         VARIANT *Id);
20136 
20137     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
20138         ISpeechRecoGrammar* This,
20139         ISpeechRecoContext **RecoContext);
20140 
20141     HRESULT (STDMETHODCALLTYPE *put_State)(
20142         ISpeechRecoGrammar* This,
20143         SpeechGrammarState State);
20144 
20145     HRESULT (STDMETHODCALLTYPE *get_State)(
20146         ISpeechRecoGrammar* This,
20147         SpeechGrammarState *State);
20148 
20149     HRESULT (STDMETHODCALLTYPE *get_Rules)(
20150         ISpeechRecoGrammar* This,
20151         ISpeechGrammarRules **Rules);
20152 
20153     HRESULT (STDMETHODCALLTYPE *Reset)(
20154         ISpeechRecoGrammar* This,
20155         SpeechLanguageId NewLanguage);
20156 
20157     HRESULT (STDMETHODCALLTYPE *CmdLoadFromFile)(
20158         ISpeechRecoGrammar* This,
20159         const BSTR FileName,
20160         SpeechLoadOption LoadOption);
20161 
20162     HRESULT (STDMETHODCALLTYPE *CmdLoadFromObject)(
20163         ISpeechRecoGrammar* This,
20164         const BSTR ClassId,
20165         const BSTR GrammarName,
20166         SpeechLoadOption LoadOption);
20167 
20168     HRESULT (STDMETHODCALLTYPE *CmdLoadFromResource)(
20169         ISpeechRecoGrammar* This,
20170         LONG hModule,
20171         VARIANT ResourceName,
20172         VARIANT ResourceType,
20173         SpeechLanguageId LanguageId,
20174         SpeechLoadOption LoadOption);
20175 
20176     HRESULT (STDMETHODCALLTYPE *CmdLoadFromMemory)(
20177         ISpeechRecoGrammar* This,
20178         VARIANT GrammarData,
20179         SpeechLoadOption LoadOption);
20180 
20181     HRESULT (STDMETHODCALLTYPE *CmdLoadFromProprietaryGrammar)(
20182         ISpeechRecoGrammar* This,
20183         const BSTR ProprietaryGuid,
20184         const BSTR ProprietaryString,
20185         VARIANT ProprietaryData,
20186         SpeechLoadOption LoadOption);
20187 
20188     HRESULT (STDMETHODCALLTYPE *CmdSetRuleState)(
20189         ISpeechRecoGrammar* This,
20190         const BSTR Name,
20191         SpeechRuleState State);
20192 
20193     HRESULT (STDMETHODCALLTYPE *CmdSetRuleIdState)(
20194         ISpeechRecoGrammar* This,
20195         LONG RuleId,
20196         SpeechRuleState State);
20197 
20198     HRESULT (STDMETHODCALLTYPE *DictationLoad)(
20199         ISpeechRecoGrammar* This,
20200         const BSTR TopicName,
20201         SpeechLoadOption LoadOption);
20202 
20203     HRESULT (STDMETHODCALLTYPE *DictationUnload)(
20204         ISpeechRecoGrammar* This);
20205 
20206     HRESULT (STDMETHODCALLTYPE *DictationSetState)(
20207         ISpeechRecoGrammar* This,
20208         SpeechRuleState State);
20209 
20210     HRESULT (STDMETHODCALLTYPE *SetWordSequenceData)(
20211         ISpeechRecoGrammar* This,
20212         const BSTR Text,
20213         LONG TextLength,
20214         ISpeechTextSelectionInformation *Info);
20215 
20216     HRESULT (STDMETHODCALLTYPE *SetTextSelection)(
20217         ISpeechRecoGrammar* This,
20218         ISpeechTextSelectionInformation *Info);
20219 
20220     HRESULT (STDMETHODCALLTYPE *IsPronounceable)(
20221         ISpeechRecoGrammar* This,
20222         const BSTR Word,
20223         SpeechWordPronounceable *WordPronounceable);
20224 
20225     END_INTERFACE
20226 } ISpeechRecoGrammarVtbl;
20227 interface ISpeechRecoGrammar {
20228     CONST_VTBL ISpeechRecoGrammarVtbl* lpVtbl;
20229 };
20230 
20231 #ifdef COBJMACROS
20232 #ifndef WIDL_C_INLINE_WRAPPERS
20233 /*** IUnknown methods ***/
20234 #define ISpeechRecoGrammar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20235 #define ISpeechRecoGrammar_AddRef(This) (This)->lpVtbl->AddRef(This)
20236 #define ISpeechRecoGrammar_Release(This) (This)->lpVtbl->Release(This)
20237 /*** IDispatch methods ***/
20238 #define ISpeechRecoGrammar_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20239 #define ISpeechRecoGrammar_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
20240 #define ISpeechRecoGrammar_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
20241 #define ISpeechRecoGrammar_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
20242 /*** ISpeechRecoGrammar methods ***/
20243 #define ISpeechRecoGrammar_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
20244 #define ISpeechRecoGrammar_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
20245 #define ISpeechRecoGrammar_put_State(This,State) (This)->lpVtbl->put_State(This,State)
20246 #define ISpeechRecoGrammar_get_State(This,State) (This)->lpVtbl->get_State(This,State)
20247 #define ISpeechRecoGrammar_get_Rules(This,Rules) (This)->lpVtbl->get_Rules(This,Rules)
20248 #define ISpeechRecoGrammar_Reset(This,NewLanguage) (This)->lpVtbl->Reset(This,NewLanguage)
20249 #define ISpeechRecoGrammar_CmdLoadFromFile(This,FileName,LoadOption) (This)->lpVtbl->CmdLoadFromFile(This,FileName,LoadOption)
20250 #define ISpeechRecoGrammar_CmdLoadFromObject(This,ClassId,GrammarName,LoadOption) (This)->lpVtbl->CmdLoadFromObject(This,ClassId,GrammarName,LoadOption)
20251 #define ISpeechRecoGrammar_CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption) (This)->lpVtbl->CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption)
20252 #define ISpeechRecoGrammar_CmdLoadFromMemory(This,GrammarData,LoadOption) (This)->lpVtbl->CmdLoadFromMemory(This,GrammarData,LoadOption)
20253 #define ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption) (This)->lpVtbl->CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption)
20254 #define ISpeechRecoGrammar_CmdSetRuleState(This,Name,State) (This)->lpVtbl->CmdSetRuleState(This,Name,State)
20255 #define ISpeechRecoGrammar_CmdSetRuleIdState(This,RuleId,State) (This)->lpVtbl->CmdSetRuleIdState(This,RuleId,State)
20256 #define ISpeechRecoGrammar_DictationLoad(This,TopicName,LoadOption) (This)->lpVtbl->DictationLoad(This,TopicName,LoadOption)
20257 #define ISpeechRecoGrammar_DictationUnload(This) (This)->lpVtbl->DictationUnload(This)
20258 #define ISpeechRecoGrammar_DictationSetState(This,State) (This)->lpVtbl->DictationSetState(This,State)
20259 #define ISpeechRecoGrammar_SetWordSequenceData(This,Text,TextLength,Info) (This)->lpVtbl->SetWordSequenceData(This,Text,TextLength,Info)
20260 #define ISpeechRecoGrammar_SetTextSelection(This,Info) (This)->lpVtbl->SetTextSelection(This,Info)
20261 #define ISpeechRecoGrammar_IsPronounceable(This,Word,WordPronounceable) (This)->lpVtbl->IsPronounceable(This,Word,WordPronounceable)
20262 #else
20263 /*** IUnknown methods ***/
20264 static FORCEINLINE HRESULT ISpeechRecoGrammar_QueryInterface(ISpeechRecoGrammar* This,REFIID riid,void **ppvObject) {
20265     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20266 }
20267 static FORCEINLINE ULONG ISpeechRecoGrammar_AddRef(ISpeechRecoGrammar* This) {
20268     return This->lpVtbl->AddRef(This);
20269 }
20270 static FORCEINLINE ULONG ISpeechRecoGrammar_Release(ISpeechRecoGrammar* This) {
20271     return This->lpVtbl->Release(This);
20272 }
20273 /*** IDispatch methods ***/
20274 static FORCEINLINE HRESULT ISpeechRecoGrammar_GetTypeInfoCount(ISpeechRecoGrammar* This,UINT *pctinfo) {
20275     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
20276 }
20277 static FORCEINLINE HRESULT ISpeechRecoGrammar_GetTypeInfo(ISpeechRecoGrammar* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
20278     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
20279 }
20280 static FORCEINLINE HRESULT ISpeechRecoGrammar_GetIDsOfNames(ISpeechRecoGrammar* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
20281     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
20282 }
20283 static FORCEINLINE HRESULT ISpeechRecoGrammar_Invoke(ISpeechRecoGrammar* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
20284     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
20285 }
20286 /*** ISpeechRecoGrammar methods ***/
20287 static FORCEINLINE HRESULT ISpeechRecoGrammar_get_Id(ISpeechRecoGrammar* This,VARIANT *Id) {
20288     return This->lpVtbl->get_Id(This,Id);
20289 }
20290 static FORCEINLINE HRESULT ISpeechRecoGrammar_get_RecoContext(ISpeechRecoGrammar* This,ISpeechRecoContext **RecoContext) {
20291     return This->lpVtbl->get_RecoContext(This,RecoContext);
20292 }
20293 static FORCEINLINE HRESULT ISpeechRecoGrammar_put_State(ISpeechRecoGrammar* This,SpeechGrammarState State) {
20294     return This->lpVtbl->put_State(This,State);
20295 }
20296 static FORCEINLINE HRESULT ISpeechRecoGrammar_get_State(ISpeechRecoGrammar* This,SpeechGrammarState *State) {
20297     return This->lpVtbl->get_State(This,State);
20298 }
20299 static FORCEINLINE HRESULT ISpeechRecoGrammar_get_Rules(ISpeechRecoGrammar* This,ISpeechGrammarRules **Rules) {
20300     return This->lpVtbl->get_Rules(This,Rules);
20301 }
20302 static FORCEINLINE HRESULT ISpeechRecoGrammar_Reset(ISpeechRecoGrammar* This,SpeechLanguageId NewLanguage) {
20303     return This->lpVtbl->Reset(This,NewLanguage);
20304 }
20305 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromFile(ISpeechRecoGrammar* This,const BSTR FileName,SpeechLoadOption LoadOption) {
20306     return This->lpVtbl->CmdLoadFromFile(This,FileName,LoadOption);
20307 }
20308 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromObject(ISpeechRecoGrammar* This,const BSTR ClassId,const BSTR GrammarName,SpeechLoadOption LoadOption) {
20309     return This->lpVtbl->CmdLoadFromObject(This,ClassId,GrammarName,LoadOption);
20310 }
20311 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromResource(ISpeechRecoGrammar* This,LONG hModule,VARIANT ResourceName,VARIANT ResourceType,SpeechLanguageId LanguageId,SpeechLoadOption LoadOption) {
20312     return This->lpVtbl->CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption);
20313 }
20314 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromMemory(ISpeechRecoGrammar* This,VARIANT GrammarData,SpeechLoadOption LoadOption) {
20315     return This->lpVtbl->CmdLoadFromMemory(This,GrammarData,LoadOption);
20316 }
20317 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar(ISpeechRecoGrammar* This,const BSTR ProprietaryGuid,const BSTR ProprietaryString,VARIANT ProprietaryData,SpeechLoadOption LoadOption) {
20318     return This->lpVtbl->CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption);
20319 }
20320 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdSetRuleState(ISpeechRecoGrammar* This,const BSTR Name,SpeechRuleState State) {
20321     return This->lpVtbl->CmdSetRuleState(This,Name,State);
20322 }
20323 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdSetRuleIdState(ISpeechRecoGrammar* This,LONG RuleId,SpeechRuleState State) {
20324     return This->lpVtbl->CmdSetRuleIdState(This,RuleId,State);
20325 }
20326 static FORCEINLINE HRESULT ISpeechRecoGrammar_DictationLoad(ISpeechRecoGrammar* This,const BSTR TopicName,SpeechLoadOption LoadOption) {
20327     return This->lpVtbl->DictationLoad(This,TopicName,LoadOption);
20328 }
20329 static FORCEINLINE HRESULT ISpeechRecoGrammar_DictationUnload(ISpeechRecoGrammar* This) {
20330     return This->lpVtbl->DictationUnload(This);
20331 }
20332 static FORCEINLINE HRESULT ISpeechRecoGrammar_DictationSetState(ISpeechRecoGrammar* This,SpeechRuleState State) {
20333     return This->lpVtbl->DictationSetState(This,State);
20334 }
20335 static FORCEINLINE HRESULT ISpeechRecoGrammar_SetWordSequenceData(ISpeechRecoGrammar* This,const BSTR Text,LONG TextLength,ISpeechTextSelectionInformation *Info) {
20336     return This->lpVtbl->SetWordSequenceData(This,Text,TextLength,Info);
20337 }
20338 static FORCEINLINE HRESULT ISpeechRecoGrammar_SetTextSelection(ISpeechRecoGrammar* This,ISpeechTextSelectionInformation *Info) {
20339     return This->lpVtbl->SetTextSelection(This,Info);
20340 }
20341 static FORCEINLINE HRESULT ISpeechRecoGrammar_IsPronounceable(ISpeechRecoGrammar* This,const BSTR Word,SpeechWordPronounceable *WordPronounceable) {
20342     return This->lpVtbl->IsPronounceable(This,Word,WordPronounceable);
20343 }
20344 #endif
20345 #endif
20346 
20347 #endif
20348 
20349 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_get_Id_Proxy(
20350     ISpeechRecoGrammar* This,
20351     VARIANT *Id);
20352 void __RPC_STUB ISpeechRecoGrammar_get_Id_Stub(
20353     IRpcStubBuffer* This,
20354     IRpcChannelBuffer* pRpcChannelBuffer,
20355     PRPC_MESSAGE pRpcMessage,
20356     DWORD* pdwStubPhase);
20357 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_get_RecoContext_Proxy(
20358     ISpeechRecoGrammar* This,
20359     ISpeechRecoContext **RecoContext);
20360 void __RPC_STUB ISpeechRecoGrammar_get_RecoContext_Stub(
20361     IRpcStubBuffer* This,
20362     IRpcChannelBuffer* pRpcChannelBuffer,
20363     PRPC_MESSAGE pRpcMessage,
20364     DWORD* pdwStubPhase);
20365 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_put_State_Proxy(
20366     ISpeechRecoGrammar* This,
20367     SpeechGrammarState State);
20368 void __RPC_STUB ISpeechRecoGrammar_put_State_Stub(
20369     IRpcStubBuffer* This,
20370     IRpcChannelBuffer* pRpcChannelBuffer,
20371     PRPC_MESSAGE pRpcMessage,
20372     DWORD* pdwStubPhase);
20373 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_get_State_Proxy(
20374     ISpeechRecoGrammar* This,
20375     SpeechGrammarState *State);
20376 void __RPC_STUB ISpeechRecoGrammar_get_State_Stub(
20377     IRpcStubBuffer* This,
20378     IRpcChannelBuffer* pRpcChannelBuffer,
20379     PRPC_MESSAGE pRpcMessage,
20380     DWORD* pdwStubPhase);
20381 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_get_Rules_Proxy(
20382     ISpeechRecoGrammar* This,
20383     ISpeechGrammarRules **Rules);
20384 void __RPC_STUB ISpeechRecoGrammar_get_Rules_Stub(
20385     IRpcStubBuffer* This,
20386     IRpcChannelBuffer* pRpcChannelBuffer,
20387     PRPC_MESSAGE pRpcMessage,
20388     DWORD* pdwStubPhase);
20389 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_Reset_Proxy(
20390     ISpeechRecoGrammar* This,
20391     SpeechLanguageId NewLanguage);
20392 void __RPC_STUB ISpeechRecoGrammar_Reset_Stub(
20393     IRpcStubBuffer* This,
20394     IRpcChannelBuffer* pRpcChannelBuffer,
20395     PRPC_MESSAGE pRpcMessage,
20396     DWORD* pdwStubPhase);
20397 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_CmdLoadFromFile_Proxy(
20398     ISpeechRecoGrammar* This,
20399     const BSTR FileName,
20400     SpeechLoadOption LoadOption);
20401 void __RPC_STUB ISpeechRecoGrammar_CmdLoadFromFile_Stub(
20402     IRpcStubBuffer* This,
20403     IRpcChannelBuffer* pRpcChannelBuffer,
20404     PRPC_MESSAGE pRpcMessage,
20405     DWORD* pdwStubPhase);
20406 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_CmdLoadFromObject_Proxy(
20407     ISpeechRecoGrammar* This,
20408     const BSTR ClassId,
20409     const BSTR GrammarName,
20410     SpeechLoadOption LoadOption);
20411 void __RPC_STUB ISpeechRecoGrammar_CmdLoadFromObject_Stub(
20412     IRpcStubBuffer* This,
20413     IRpcChannelBuffer* pRpcChannelBuffer,
20414     PRPC_MESSAGE pRpcMessage,
20415     DWORD* pdwStubPhase);
20416 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_CmdLoadFromResource_Proxy(
20417     ISpeechRecoGrammar* This,
20418     LONG hModule,
20419     VARIANT ResourceName,
20420     VARIANT ResourceType,
20421     SpeechLanguageId LanguageId,
20422     SpeechLoadOption LoadOption);
20423 void __RPC_STUB ISpeechRecoGrammar_CmdLoadFromResource_Stub(
20424     IRpcStubBuffer* This,
20425     IRpcChannelBuffer* pRpcChannelBuffer,
20426     PRPC_MESSAGE pRpcMessage,
20427     DWORD* pdwStubPhase);
20428 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_CmdLoadFromMemory_Proxy(
20429     ISpeechRecoGrammar* This,
20430     VARIANT GrammarData,
20431     SpeechLoadOption LoadOption);
20432 void __RPC_STUB ISpeechRecoGrammar_CmdLoadFromMemory_Stub(
20433     IRpcStubBuffer* This,
20434     IRpcChannelBuffer* pRpcChannelBuffer,
20435     PRPC_MESSAGE pRpcMessage,
20436     DWORD* pdwStubPhase);
20437 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar_Proxy(
20438     ISpeechRecoGrammar* This,
20439     const BSTR ProprietaryGuid,
20440     const BSTR ProprietaryString,
20441     VARIANT ProprietaryData,
20442     SpeechLoadOption LoadOption);
20443 void __RPC_STUB ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar_Stub(
20444     IRpcStubBuffer* This,
20445     IRpcChannelBuffer* pRpcChannelBuffer,
20446     PRPC_MESSAGE pRpcMessage,
20447     DWORD* pdwStubPhase);
20448 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_CmdSetRuleState_Proxy(
20449     ISpeechRecoGrammar* This,
20450     const BSTR Name,
20451     SpeechRuleState State);
20452 void __RPC_STUB ISpeechRecoGrammar_CmdSetRuleState_Stub(
20453     IRpcStubBuffer* This,
20454     IRpcChannelBuffer* pRpcChannelBuffer,
20455     PRPC_MESSAGE pRpcMessage,
20456     DWORD* pdwStubPhase);
20457 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_CmdSetRuleIdState_Proxy(
20458     ISpeechRecoGrammar* This,
20459     LONG RuleId,
20460     SpeechRuleState State);
20461 void __RPC_STUB ISpeechRecoGrammar_CmdSetRuleIdState_Stub(
20462     IRpcStubBuffer* This,
20463     IRpcChannelBuffer* pRpcChannelBuffer,
20464     PRPC_MESSAGE pRpcMessage,
20465     DWORD* pdwStubPhase);
20466 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_DictationLoad_Proxy(
20467     ISpeechRecoGrammar* This,
20468     const BSTR TopicName,
20469     SpeechLoadOption LoadOption);
20470 void __RPC_STUB ISpeechRecoGrammar_DictationLoad_Stub(
20471     IRpcStubBuffer* This,
20472     IRpcChannelBuffer* pRpcChannelBuffer,
20473     PRPC_MESSAGE pRpcMessage,
20474     DWORD* pdwStubPhase);
20475 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_DictationUnload_Proxy(
20476     ISpeechRecoGrammar* This);
20477 void __RPC_STUB ISpeechRecoGrammar_DictationUnload_Stub(
20478     IRpcStubBuffer* This,
20479     IRpcChannelBuffer* pRpcChannelBuffer,
20480     PRPC_MESSAGE pRpcMessage,
20481     DWORD* pdwStubPhase);
20482 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_DictationSetState_Proxy(
20483     ISpeechRecoGrammar* This,
20484     SpeechRuleState State);
20485 void __RPC_STUB ISpeechRecoGrammar_DictationSetState_Stub(
20486     IRpcStubBuffer* This,
20487     IRpcChannelBuffer* pRpcChannelBuffer,
20488     PRPC_MESSAGE pRpcMessage,
20489     DWORD* pdwStubPhase);
20490 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_SetWordSequenceData_Proxy(
20491     ISpeechRecoGrammar* This,
20492     const BSTR Text,
20493     LONG TextLength,
20494     ISpeechTextSelectionInformation *Info);
20495 void __RPC_STUB ISpeechRecoGrammar_SetWordSequenceData_Stub(
20496     IRpcStubBuffer* This,
20497     IRpcChannelBuffer* pRpcChannelBuffer,
20498     PRPC_MESSAGE pRpcMessage,
20499     DWORD* pdwStubPhase);
20500 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_SetTextSelection_Proxy(
20501     ISpeechRecoGrammar* This,
20502     ISpeechTextSelectionInformation *Info);
20503 void __RPC_STUB ISpeechRecoGrammar_SetTextSelection_Stub(
20504     IRpcStubBuffer* This,
20505     IRpcChannelBuffer* pRpcChannelBuffer,
20506     PRPC_MESSAGE pRpcMessage,
20507     DWORD* pdwStubPhase);
20508 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_IsPronounceable_Proxy(
20509     ISpeechRecoGrammar* This,
20510     const BSTR Word,
20511     SpeechWordPronounceable *WordPronounceable);
20512 void __RPC_STUB ISpeechRecoGrammar_IsPronounceable_Stub(
20513     IRpcStubBuffer* This,
20514     IRpcChannelBuffer* pRpcChannelBuffer,
20515     PRPC_MESSAGE pRpcMessage,
20516     DWORD* pdwStubPhase);
20517 
20518 #endif  /* __ISpeechRecoGrammar_INTERFACE_DEFINED__ */
20519 
20520 /*****************************************************************************
20521  * _ISpeechRecoContextEvents dispinterface
20522  */
20523 #ifndef ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__
20524 #define ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__
20525 
20526 DEFINE_GUID(DIID__ISpeechRecoContextEvents, 0x7b8fcb42, 0x0e9d, 0x4f00, 0xa0,0x48, 0x7b,0x04,0xd6,0x17,0x9d,0x3d);
20527 #if defined(__cplusplus) && !defined(CINTERFACE)
20528 MIDL_INTERFACE("7b8fcb42-0e9d-4f00-a048-7b04d6179d3d")
20529 _ISpeechRecoContextEvents : public IDispatch
20530 {
20531 };
20532 #ifdef __CRT_UUID_DECL
20533 __CRT_UUID_DECL(_ISpeechRecoContextEvents, 0x7b8fcb42, 0x0e9d, 0x4f00, 0xa0,0x48, 0x7b,0x04,0xd6,0x17,0x9d,0x3d)
20534 #endif
20535 #else
20536 typedef struct _ISpeechRecoContextEventsVtbl {
20537     BEGIN_INTERFACE
20538 
20539     /*** IUnknown methods ***/
20540     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20541         _ISpeechRecoContextEvents* This,
20542         REFIID riid,
20543         void **ppvObject);
20544 
20545     ULONG (STDMETHODCALLTYPE *AddRef)(
20546         _ISpeechRecoContextEvents* This);
20547 
20548     ULONG (STDMETHODCALLTYPE *Release)(
20549         _ISpeechRecoContextEvents* This);
20550 
20551     /*** IDispatch methods ***/
20552     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20553         _ISpeechRecoContextEvents* This,
20554         UINT *pctinfo);
20555 
20556     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20557         _ISpeechRecoContextEvents* This,
20558         UINT iTInfo,
20559         LCID lcid,
20560         ITypeInfo **ppTInfo);
20561 
20562     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20563         _ISpeechRecoContextEvents* This,
20564         REFIID riid,
20565         LPOLESTR *rgszNames,
20566         UINT cNames,
20567         LCID lcid,
20568         DISPID *rgDispId);
20569 
20570     HRESULT (STDMETHODCALLTYPE *Invoke)(
20571         _ISpeechRecoContextEvents* This,
20572         DISPID dispIdMember,
20573         REFIID riid,
20574         LCID lcid,
20575         WORD wFlags,
20576         DISPPARAMS *pDispParams,
20577         VARIANT *pVarResult,
20578         EXCEPINFO *pExcepInfo,
20579         UINT *puArgErr);
20580 
20581     END_INTERFACE
20582 } _ISpeechRecoContextEventsVtbl;
20583 interface _ISpeechRecoContextEvents {
20584     CONST_VTBL _ISpeechRecoContextEventsVtbl* lpVtbl;
20585 };
20586 
20587 #ifdef COBJMACROS
20588 #ifndef WIDL_C_INLINE_WRAPPERS
20589 /*** IUnknown methods ***/
20590 #define _ISpeechRecoContextEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20591 #define _ISpeechRecoContextEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
20592 #define _ISpeechRecoContextEvents_Release(This) (This)->lpVtbl->Release(This)
20593 /*** IDispatch methods ***/
20594 #define _ISpeechRecoContextEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20595 #define _ISpeechRecoContextEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
20596 #define _ISpeechRecoContextEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
20597 #define _ISpeechRecoContextEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
20598 #else
20599 /*** IUnknown methods ***/
20600 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_QueryInterface(_ISpeechRecoContextEvents* This,REFIID riid,void **ppvObject) {
20601     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20602 }
20603 static FORCEINLINE ULONG _ISpeechRecoContextEvents_AddRef(_ISpeechRecoContextEvents* This) {
20604     return This->lpVtbl->AddRef(This);
20605 }
20606 static FORCEINLINE ULONG _ISpeechRecoContextEvents_Release(_ISpeechRecoContextEvents* This) {
20607     return This->lpVtbl->Release(This);
20608 }
20609 /*** IDispatch methods ***/
20610 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_GetTypeInfoCount(_ISpeechRecoContextEvents* This,UINT *pctinfo) {
20611     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
20612 }
20613 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_GetTypeInfo(_ISpeechRecoContextEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
20614     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
20615 }
20616 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_GetIDsOfNames(_ISpeechRecoContextEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
20617     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
20618 }
20619 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_Invoke(_ISpeechRecoContextEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
20620     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
20621 }
20622 #endif
20623 #endif
20624 
20625 #endif
20626 
20627 #endif  /* ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__ */
20628 
20629 /*****************************************************************************
20630  * ISpeechGrammarRule interface
20631  */
20632 #ifndef __ISpeechGrammarRule_INTERFACE_DEFINED__
20633 #define __ISpeechGrammarRule_INTERFACE_DEFINED__
20634 
20635 DEFINE_GUID(IID_ISpeechGrammarRule, 0xafe719cf, 0x5dd1, 0x44f2, 0x99,0x9c, 0x7a,0x39,0x9f,0x1c,0xfc,0xcc);
20636 #if defined(__cplusplus) && !defined(CINTERFACE)
20637 MIDL_INTERFACE("afe719cf-5dd1-44f2-999c-7a399f1cfccc")
20638 ISpeechGrammarRule : public IDispatch
20639 {
20640     virtual HRESULT STDMETHODCALLTYPE get_Attributes(
20641         SpeechRuleAttributes *Attributes) = 0;
20642 
20643     virtual HRESULT STDMETHODCALLTYPE get_InitialState(
20644         ISpeechGrammarRuleState **State) = 0;
20645 
20646     virtual HRESULT STDMETHODCALLTYPE get_Name(
20647         BSTR *Name) = 0;
20648 
20649     virtual HRESULT STDMETHODCALLTYPE get_Id(
20650         LONG *Id) = 0;
20651 
20652     virtual HRESULT STDMETHODCALLTYPE Clear(
20653         ) = 0;
20654 
20655     virtual HRESULT STDMETHODCALLTYPE AddResource(
20656         const BSTR ResourceName,
20657         const BSTR ResourceValue) = 0;
20658 
20659     virtual HRESULT STDMETHODCALLTYPE AddState(
20660         ISpeechGrammarRuleState **State) = 0;
20661 
20662 };
20663 #ifdef __CRT_UUID_DECL
20664 __CRT_UUID_DECL(ISpeechGrammarRule, 0xafe719cf, 0x5dd1, 0x44f2, 0x99,0x9c, 0x7a,0x39,0x9f,0x1c,0xfc,0xcc)
20665 #endif
20666 #else
20667 typedef struct ISpeechGrammarRuleVtbl {
20668     BEGIN_INTERFACE
20669 
20670     /*** IUnknown methods ***/
20671     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20672         ISpeechGrammarRule* This,
20673         REFIID riid,
20674         void **ppvObject);
20675 
20676     ULONG (STDMETHODCALLTYPE *AddRef)(
20677         ISpeechGrammarRule* This);
20678 
20679     ULONG (STDMETHODCALLTYPE *Release)(
20680         ISpeechGrammarRule* This);
20681 
20682     /*** IDispatch methods ***/
20683     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20684         ISpeechGrammarRule* This,
20685         UINT *pctinfo);
20686 
20687     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20688         ISpeechGrammarRule* This,
20689         UINT iTInfo,
20690         LCID lcid,
20691         ITypeInfo **ppTInfo);
20692 
20693     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20694         ISpeechGrammarRule* This,
20695         REFIID riid,
20696         LPOLESTR *rgszNames,
20697         UINT cNames,
20698         LCID lcid,
20699         DISPID *rgDispId);
20700 
20701     HRESULT (STDMETHODCALLTYPE *Invoke)(
20702         ISpeechGrammarRule* This,
20703         DISPID dispIdMember,
20704         REFIID riid,
20705         LCID lcid,
20706         WORD wFlags,
20707         DISPPARAMS *pDispParams,
20708         VARIANT *pVarResult,
20709         EXCEPINFO *pExcepInfo,
20710         UINT *puArgErr);
20711 
20712     /*** ISpeechGrammarRule methods ***/
20713     HRESULT (STDMETHODCALLTYPE *get_Attributes)(
20714         ISpeechGrammarRule* This,
20715         SpeechRuleAttributes *Attributes);
20716 
20717     HRESULT (STDMETHODCALLTYPE *get_InitialState)(
20718         ISpeechGrammarRule* This,
20719         ISpeechGrammarRuleState **State);
20720 
20721     HRESULT (STDMETHODCALLTYPE *get_Name)(
20722         ISpeechGrammarRule* This,
20723         BSTR *Name);
20724 
20725     HRESULT (STDMETHODCALLTYPE *get_Id)(
20726         ISpeechGrammarRule* This,
20727         LONG *Id);
20728 
20729     HRESULT (STDMETHODCALLTYPE *Clear)(
20730         ISpeechGrammarRule* This);
20731 
20732     HRESULT (STDMETHODCALLTYPE *AddResource)(
20733         ISpeechGrammarRule* This,
20734         const BSTR ResourceName,
20735         const BSTR ResourceValue);
20736 
20737     HRESULT (STDMETHODCALLTYPE *AddState)(
20738         ISpeechGrammarRule* This,
20739         ISpeechGrammarRuleState **State);
20740 
20741     END_INTERFACE
20742 } ISpeechGrammarRuleVtbl;
20743 interface ISpeechGrammarRule {
20744     CONST_VTBL ISpeechGrammarRuleVtbl* lpVtbl;
20745 };
20746 
20747 #ifdef COBJMACROS
20748 #ifndef WIDL_C_INLINE_WRAPPERS
20749 /*** IUnknown methods ***/
20750 #define ISpeechGrammarRule_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20751 #define ISpeechGrammarRule_AddRef(This) (This)->lpVtbl->AddRef(This)
20752 #define ISpeechGrammarRule_Release(This) (This)->lpVtbl->Release(This)
20753 /*** IDispatch methods ***/
20754 #define ISpeechGrammarRule_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20755 #define ISpeechGrammarRule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
20756 #define ISpeechGrammarRule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
20757 #define ISpeechGrammarRule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
20758 /*** ISpeechGrammarRule methods ***/
20759 #define ISpeechGrammarRule_get_Attributes(This,Attributes) (This)->lpVtbl->get_Attributes(This,Attributes)
20760 #define ISpeechGrammarRule_get_InitialState(This,State) (This)->lpVtbl->get_InitialState(This,State)
20761 #define ISpeechGrammarRule_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
20762 #define ISpeechGrammarRule_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
20763 #define ISpeechGrammarRule_Clear(This) (This)->lpVtbl->Clear(This)
20764 #define ISpeechGrammarRule_AddResource(This,ResourceName,ResourceValue) (This)->lpVtbl->AddResource(This,ResourceName,ResourceValue)
20765 #define ISpeechGrammarRule_AddState(This,State) (This)->lpVtbl->AddState(This,State)
20766 #else
20767 /*** IUnknown methods ***/
20768 static FORCEINLINE HRESULT ISpeechGrammarRule_QueryInterface(ISpeechGrammarRule* This,REFIID riid,void **ppvObject) {
20769     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20770 }
20771 static FORCEINLINE ULONG ISpeechGrammarRule_AddRef(ISpeechGrammarRule* This) {
20772     return This->lpVtbl->AddRef(This);
20773 }
20774 static FORCEINLINE ULONG ISpeechGrammarRule_Release(ISpeechGrammarRule* This) {
20775     return This->lpVtbl->Release(This);
20776 }
20777 /*** IDispatch methods ***/
20778 static FORCEINLINE HRESULT ISpeechGrammarRule_GetTypeInfoCount(ISpeechGrammarRule* This,UINT *pctinfo) {
20779     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
20780 }
20781 static FORCEINLINE HRESULT ISpeechGrammarRule_GetTypeInfo(ISpeechGrammarRule* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
20782     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
20783 }
20784 static FORCEINLINE HRESULT ISpeechGrammarRule_GetIDsOfNames(ISpeechGrammarRule* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
20785     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
20786 }
20787 static FORCEINLINE HRESULT ISpeechGrammarRule_Invoke(ISpeechGrammarRule* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
20788     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
20789 }
20790 /*** ISpeechGrammarRule methods ***/
20791 static FORCEINLINE HRESULT ISpeechGrammarRule_get_Attributes(ISpeechGrammarRule* This,SpeechRuleAttributes *Attributes) {
20792     return This->lpVtbl->get_Attributes(This,Attributes);
20793 }
20794 static FORCEINLINE HRESULT ISpeechGrammarRule_get_InitialState(ISpeechGrammarRule* This,ISpeechGrammarRuleState **State) {
20795     return This->lpVtbl->get_InitialState(This,State);
20796 }
20797 static FORCEINLINE HRESULT ISpeechGrammarRule_get_Name(ISpeechGrammarRule* This,BSTR *Name) {
20798     return This->lpVtbl->get_Name(This,Name);
20799 }
20800 static FORCEINLINE HRESULT ISpeechGrammarRule_get_Id(ISpeechGrammarRule* This,LONG *Id) {
20801     return This->lpVtbl->get_Id(This,Id);
20802 }
20803 static FORCEINLINE HRESULT ISpeechGrammarRule_Clear(ISpeechGrammarRule* This) {
20804     return This->lpVtbl->Clear(This);
20805 }
20806 static FORCEINLINE HRESULT ISpeechGrammarRule_AddResource(ISpeechGrammarRule* This,const BSTR ResourceName,const BSTR ResourceValue) {
20807     return This->lpVtbl->AddResource(This,ResourceName,ResourceValue);
20808 }
20809 static FORCEINLINE HRESULT ISpeechGrammarRule_AddState(ISpeechGrammarRule* This,ISpeechGrammarRuleState **State) {
20810     return This->lpVtbl->AddState(This,State);
20811 }
20812 #endif
20813 #endif
20814 
20815 #endif
20816 
20817 HRESULT STDMETHODCALLTYPE ISpeechGrammarRule_get_Attributes_Proxy(
20818     ISpeechGrammarRule* This,
20819     SpeechRuleAttributes *Attributes);
20820 void __RPC_STUB ISpeechGrammarRule_get_Attributes_Stub(
20821     IRpcStubBuffer* This,
20822     IRpcChannelBuffer* pRpcChannelBuffer,
20823     PRPC_MESSAGE pRpcMessage,
20824     DWORD* pdwStubPhase);
20825 HRESULT STDMETHODCALLTYPE ISpeechGrammarRule_get_InitialState_Proxy(
20826     ISpeechGrammarRule* This,
20827     ISpeechGrammarRuleState **State);
20828 void __RPC_STUB ISpeechGrammarRule_get_InitialState_Stub(
20829     IRpcStubBuffer* This,
20830     IRpcChannelBuffer* pRpcChannelBuffer,
20831     PRPC_MESSAGE pRpcMessage,
20832     DWORD* pdwStubPhase);
20833 HRESULT STDMETHODCALLTYPE ISpeechGrammarRule_get_Name_Proxy(
20834     ISpeechGrammarRule* This,
20835     BSTR *Name);
20836 void __RPC_STUB ISpeechGrammarRule_get_Name_Stub(
20837     IRpcStubBuffer* This,
20838     IRpcChannelBuffer* pRpcChannelBuffer,
20839     PRPC_MESSAGE pRpcMessage,
20840     DWORD* pdwStubPhase);
20841 HRESULT STDMETHODCALLTYPE ISpeechGrammarRule_get_Id_Proxy(
20842     ISpeechGrammarRule* This,
20843     LONG *Id);
20844 void __RPC_STUB ISpeechGrammarRule_get_Id_Stub(
20845     IRpcStubBuffer* This,
20846     IRpcChannelBuffer* pRpcChannelBuffer,
20847     PRPC_MESSAGE pRpcMessage,
20848     DWORD* pdwStubPhase);
20849 HRESULT STDMETHODCALLTYPE ISpeechGrammarRule_Clear_Proxy(
20850     ISpeechGrammarRule* This);
20851 void __RPC_STUB ISpeechGrammarRule_Clear_Stub(
20852     IRpcStubBuffer* This,
20853     IRpcChannelBuffer* pRpcChannelBuffer,
20854     PRPC_MESSAGE pRpcMessage,
20855     DWORD* pdwStubPhase);
20856 HRESULT STDMETHODCALLTYPE ISpeechGrammarRule_AddResource_Proxy(
20857     ISpeechGrammarRule* This,
20858     const BSTR ResourceName,
20859     const BSTR ResourceValue);
20860 void __RPC_STUB ISpeechGrammarRule_AddResource_Stub(
20861     IRpcStubBuffer* This,
20862     IRpcChannelBuffer* pRpcChannelBuffer,
20863     PRPC_MESSAGE pRpcMessage,
20864     DWORD* pdwStubPhase);
20865 HRESULT STDMETHODCALLTYPE ISpeechGrammarRule_AddState_Proxy(
20866     ISpeechGrammarRule* This,
20867     ISpeechGrammarRuleState **State);
20868 void __RPC_STUB ISpeechGrammarRule_AddState_Stub(
20869     IRpcStubBuffer* This,
20870     IRpcChannelBuffer* pRpcChannelBuffer,
20871     PRPC_MESSAGE pRpcMessage,
20872     DWORD* pdwStubPhase);
20873 
20874 #endif  /* __ISpeechGrammarRule_INTERFACE_DEFINED__ */
20875 
20876 /*****************************************************************************
20877  * ISpeechGrammarRules interface
20878  */
20879 #ifndef __ISpeechGrammarRules_INTERFACE_DEFINED__
20880 #define __ISpeechGrammarRules_INTERFACE_DEFINED__
20881 
20882 DEFINE_GUID(IID_ISpeechGrammarRules, 0x6ffa3b44, 0xfc2d, 0x40d1, 0x8a,0xfc, 0x32,0x91,0x1c,0x7f,0x1a,0xd1);
20883 #if defined(__cplusplus) && !defined(CINTERFACE)
20884 MIDL_INTERFACE("6ffa3b44-fc2d-40d1-8afc-32911c7f1ad1")
20885 ISpeechGrammarRules : public IDispatch
20886 {
20887     virtual HRESULT STDMETHODCALLTYPE get_Count(
20888         LONG *Count) = 0;
20889 
20890     virtual HRESULT STDMETHODCALLTYPE FindRule(
20891         VARIANT RuleNameOrId,
20892         ISpeechGrammarRule **Rule) = 0;
20893 
20894     virtual HRESULT STDMETHODCALLTYPE Item(
20895         LONG Index,
20896         ISpeechGrammarRule **Rule) = 0;
20897 
20898     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
20899         IUnknown **EnumVARIANT) = 0;
20900 
20901     virtual HRESULT STDMETHODCALLTYPE get_Dynamic(
20902         VARIANT_BOOL *Dynamic) = 0;
20903 
20904     virtual HRESULT STDMETHODCALLTYPE Add(
20905         BSTR RuleName,
20906         SpeechRuleAttributes Attributes,
20907         LONG RuleId,
20908         ISpeechGrammarRule **Rule) = 0;
20909 
20910     virtual HRESULT STDMETHODCALLTYPE Commit(
20911         ) = 0;
20912 
20913     virtual HRESULT STDMETHODCALLTYPE CommitAndSave(
20914         BSTR *ErrorText,
20915         VARIANT *SaveStream) = 0;
20916 
20917 };
20918 #ifdef __CRT_UUID_DECL
20919 __CRT_UUID_DECL(ISpeechGrammarRules, 0x6ffa3b44, 0xfc2d, 0x40d1, 0x8a,0xfc, 0x32,0x91,0x1c,0x7f,0x1a,0xd1)
20920 #endif
20921 #else
20922 typedef struct ISpeechGrammarRulesVtbl {
20923     BEGIN_INTERFACE
20924 
20925     /*** IUnknown methods ***/
20926     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20927         ISpeechGrammarRules* This,
20928         REFIID riid,
20929         void **ppvObject);
20930 
20931     ULONG (STDMETHODCALLTYPE *AddRef)(
20932         ISpeechGrammarRules* This);
20933 
20934     ULONG (STDMETHODCALLTYPE *Release)(
20935         ISpeechGrammarRules* This);
20936 
20937     /*** IDispatch methods ***/
20938     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20939         ISpeechGrammarRules* This,
20940         UINT *pctinfo);
20941 
20942     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20943         ISpeechGrammarRules* This,
20944         UINT iTInfo,
20945         LCID lcid,
20946         ITypeInfo **ppTInfo);
20947 
20948     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20949         ISpeechGrammarRules* This,
20950         REFIID riid,
20951         LPOLESTR *rgszNames,
20952         UINT cNames,
20953         LCID lcid,
20954         DISPID *rgDispId);
20955 
20956     HRESULT (STDMETHODCALLTYPE *Invoke)(
20957         ISpeechGrammarRules* This,
20958         DISPID dispIdMember,
20959         REFIID riid,
20960         LCID lcid,
20961         WORD wFlags,
20962         DISPPARAMS *pDispParams,
20963         VARIANT *pVarResult,
20964         EXCEPINFO *pExcepInfo,
20965         UINT *puArgErr);
20966 
20967     /*** ISpeechGrammarRules methods ***/
20968     HRESULT (STDMETHODCALLTYPE *get_Count)(
20969         ISpeechGrammarRules* This,
20970         LONG *Count);
20971 
20972     HRESULT (STDMETHODCALLTYPE *FindRule)(
20973         ISpeechGrammarRules* This,
20974         VARIANT RuleNameOrId,
20975         ISpeechGrammarRule **Rule);
20976 
20977     HRESULT (STDMETHODCALLTYPE *Item)(
20978         ISpeechGrammarRules* This,
20979         LONG Index,
20980         ISpeechGrammarRule **Rule);
20981 
20982     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
20983         ISpeechGrammarRules* This,
20984         IUnknown **EnumVARIANT);
20985 
20986     HRESULT (STDMETHODCALLTYPE *get_Dynamic)(
20987         ISpeechGrammarRules* This,
20988         VARIANT_BOOL *Dynamic);
20989 
20990     HRESULT (STDMETHODCALLTYPE *Add)(
20991         ISpeechGrammarRules* This,
20992         BSTR RuleName,
20993         SpeechRuleAttributes Attributes,
20994         LONG RuleId,
20995         ISpeechGrammarRule **Rule);
20996 
20997     HRESULT (STDMETHODCALLTYPE *Commit)(
20998         ISpeechGrammarRules* This);
20999 
21000     HRESULT (STDMETHODCALLTYPE *CommitAndSave)(
21001         ISpeechGrammarRules* This,
21002         BSTR *ErrorText,
21003         VARIANT *SaveStream);
21004 
21005     END_INTERFACE
21006 } ISpeechGrammarRulesVtbl;
21007 interface ISpeechGrammarRules {
21008     CONST_VTBL ISpeechGrammarRulesVtbl* lpVtbl;
21009 };
21010 
21011 #ifdef COBJMACROS
21012 #ifndef WIDL_C_INLINE_WRAPPERS
21013 /*** IUnknown methods ***/
21014 #define ISpeechGrammarRules_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21015 #define ISpeechGrammarRules_AddRef(This) (This)->lpVtbl->AddRef(This)
21016 #define ISpeechGrammarRules_Release(This) (This)->lpVtbl->Release(This)
21017 /*** IDispatch methods ***/
21018 #define ISpeechGrammarRules_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21019 #define ISpeechGrammarRules_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21020 #define ISpeechGrammarRules_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21021 #define ISpeechGrammarRules_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21022 /*** ISpeechGrammarRules methods ***/
21023 #define ISpeechGrammarRules_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
21024 #define ISpeechGrammarRules_FindRule(This,RuleNameOrId,Rule) (This)->lpVtbl->FindRule(This,RuleNameOrId,Rule)
21025 #define ISpeechGrammarRules_Item(This,Index,Rule) (This)->lpVtbl->Item(This,Index,Rule)
21026 #define ISpeechGrammarRules_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
21027 #define ISpeechGrammarRules_get_Dynamic(This,Dynamic) (This)->lpVtbl->get_Dynamic(This,Dynamic)
21028 #define ISpeechGrammarRules_Add(This,RuleName,Attributes,RuleId,Rule) (This)->lpVtbl->Add(This,RuleName,Attributes,RuleId,Rule)
21029 #define ISpeechGrammarRules_Commit(This) (This)->lpVtbl->Commit(This)
21030 #define ISpeechGrammarRules_CommitAndSave(This,ErrorText,SaveStream) (This)->lpVtbl->CommitAndSave(This,ErrorText,SaveStream)
21031 #else
21032 /*** IUnknown methods ***/
21033 static FORCEINLINE HRESULT ISpeechGrammarRules_QueryInterface(ISpeechGrammarRules* This,REFIID riid,void **ppvObject) {
21034     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21035 }
21036 static FORCEINLINE ULONG ISpeechGrammarRules_AddRef(ISpeechGrammarRules* This) {
21037     return This->lpVtbl->AddRef(This);
21038 }
21039 static FORCEINLINE ULONG ISpeechGrammarRules_Release(ISpeechGrammarRules* This) {
21040     return This->lpVtbl->Release(This);
21041 }
21042 /*** IDispatch methods ***/
21043 static FORCEINLINE HRESULT ISpeechGrammarRules_GetTypeInfoCount(ISpeechGrammarRules* This,UINT *pctinfo) {
21044     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21045 }
21046 static FORCEINLINE HRESULT ISpeechGrammarRules_GetTypeInfo(ISpeechGrammarRules* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21047     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21048 }
21049 static FORCEINLINE HRESULT ISpeechGrammarRules_GetIDsOfNames(ISpeechGrammarRules* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21050     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21051 }
21052 static FORCEINLINE HRESULT ISpeechGrammarRules_Invoke(ISpeechGrammarRules* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21053     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21054 }
21055 /*** ISpeechGrammarRules methods ***/
21056 static FORCEINLINE HRESULT ISpeechGrammarRules_get_Count(ISpeechGrammarRules* This,LONG *Count) {
21057     return This->lpVtbl->get_Count(This,Count);
21058 }
21059 static FORCEINLINE HRESULT ISpeechGrammarRules_FindRule(ISpeechGrammarRules* This,VARIANT RuleNameOrId,ISpeechGrammarRule **Rule) {
21060     return This->lpVtbl->FindRule(This,RuleNameOrId,Rule);
21061 }
21062 static FORCEINLINE HRESULT ISpeechGrammarRules_Item(ISpeechGrammarRules* This,LONG Index,ISpeechGrammarRule **Rule) {
21063     return This->lpVtbl->Item(This,Index,Rule);
21064 }
21065 static FORCEINLINE HRESULT ISpeechGrammarRules_get__NewEnum(ISpeechGrammarRules* This,IUnknown **EnumVARIANT) {
21066     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
21067 }
21068 static FORCEINLINE HRESULT ISpeechGrammarRules_get_Dynamic(ISpeechGrammarRules* This,VARIANT_BOOL *Dynamic) {
21069     return This->lpVtbl->get_Dynamic(This,Dynamic);
21070 }
21071 static FORCEINLINE HRESULT ISpeechGrammarRules_Add(ISpeechGrammarRules* This,BSTR RuleName,SpeechRuleAttributes Attributes,LONG RuleId,ISpeechGrammarRule **Rule) {
21072     return This->lpVtbl->Add(This,RuleName,Attributes,RuleId,Rule);
21073 }
21074 static FORCEINLINE HRESULT ISpeechGrammarRules_Commit(ISpeechGrammarRules* This) {
21075     return This->lpVtbl->Commit(This);
21076 }
21077 static FORCEINLINE HRESULT ISpeechGrammarRules_CommitAndSave(ISpeechGrammarRules* This,BSTR *ErrorText,VARIANT *SaveStream) {
21078     return This->lpVtbl->CommitAndSave(This,ErrorText,SaveStream);
21079 }
21080 #endif
21081 #endif
21082 
21083 #endif
21084 
21085 HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_get_Count_Proxy(
21086     ISpeechGrammarRules* This,
21087     LONG *Count);
21088 void __RPC_STUB ISpeechGrammarRules_get_Count_Stub(
21089     IRpcStubBuffer* This,
21090     IRpcChannelBuffer* pRpcChannelBuffer,
21091     PRPC_MESSAGE pRpcMessage,
21092     DWORD* pdwStubPhase);
21093 HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_FindRule_Proxy(
21094     ISpeechGrammarRules* This,
21095     VARIANT RuleNameOrId,
21096     ISpeechGrammarRule **Rule);
21097 void __RPC_STUB ISpeechGrammarRules_FindRule_Stub(
21098     IRpcStubBuffer* This,
21099     IRpcChannelBuffer* pRpcChannelBuffer,
21100     PRPC_MESSAGE pRpcMessage,
21101     DWORD* pdwStubPhase);
21102 HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_Item_Proxy(
21103     ISpeechGrammarRules* This,
21104     LONG Index,
21105     ISpeechGrammarRule **Rule);
21106 void __RPC_STUB ISpeechGrammarRules_Item_Stub(
21107     IRpcStubBuffer* This,
21108     IRpcChannelBuffer* pRpcChannelBuffer,
21109     PRPC_MESSAGE pRpcMessage,
21110     DWORD* pdwStubPhase);
21111 HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_get__NewEnum_Proxy(
21112     ISpeechGrammarRules* This,
21113     IUnknown **EnumVARIANT);
21114 void __RPC_STUB ISpeechGrammarRules_get__NewEnum_Stub(
21115     IRpcStubBuffer* This,
21116     IRpcChannelBuffer* pRpcChannelBuffer,
21117     PRPC_MESSAGE pRpcMessage,
21118     DWORD* pdwStubPhase);
21119 HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_get_Dynamic_Proxy(
21120     ISpeechGrammarRules* This,
21121     VARIANT_BOOL *Dynamic);
21122 void __RPC_STUB ISpeechGrammarRules_get_Dynamic_Stub(
21123     IRpcStubBuffer* This,
21124     IRpcChannelBuffer* pRpcChannelBuffer,
21125     PRPC_MESSAGE pRpcMessage,
21126     DWORD* pdwStubPhase);
21127 HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_Add_Proxy(
21128     ISpeechGrammarRules* This,
21129     BSTR RuleName,
21130     SpeechRuleAttributes Attributes,
21131     LONG RuleId,
21132     ISpeechGrammarRule **Rule);
21133 void __RPC_STUB ISpeechGrammarRules_Add_Stub(
21134     IRpcStubBuffer* This,
21135     IRpcChannelBuffer* pRpcChannelBuffer,
21136     PRPC_MESSAGE pRpcMessage,
21137     DWORD* pdwStubPhase);
21138 HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_Commit_Proxy(
21139     ISpeechGrammarRules* This);
21140 void __RPC_STUB ISpeechGrammarRules_Commit_Stub(
21141     IRpcStubBuffer* This,
21142     IRpcChannelBuffer* pRpcChannelBuffer,
21143     PRPC_MESSAGE pRpcMessage,
21144     DWORD* pdwStubPhase);
21145 HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_CommitAndSave_Proxy(
21146     ISpeechGrammarRules* This,
21147     BSTR *ErrorText,
21148     VARIANT *SaveStream);
21149 void __RPC_STUB ISpeechGrammarRules_CommitAndSave_Stub(
21150     IRpcStubBuffer* This,
21151     IRpcChannelBuffer* pRpcChannelBuffer,
21152     PRPC_MESSAGE pRpcMessage,
21153     DWORD* pdwStubPhase);
21154 
21155 #endif  /* __ISpeechGrammarRules_INTERFACE_DEFINED__ */
21156 
21157 /*****************************************************************************
21158  * ISpeechGrammarRuleState interface
21159  */
21160 #ifndef __ISpeechGrammarRuleState_INTERFACE_DEFINED__
21161 #define __ISpeechGrammarRuleState_INTERFACE_DEFINED__
21162 
21163 DEFINE_GUID(IID_ISpeechGrammarRuleState, 0xd4286f2c, 0xee67, 0x45ae, 0xb9,0x28, 0x28,0xd6,0x95,0x36,0x2e,0xda);
21164 #if defined(__cplusplus) && !defined(CINTERFACE)
21165 MIDL_INTERFACE("d4286f2c-ee67-45ae-b928-28d695362eda")
21166 ISpeechGrammarRuleState : public IDispatch
21167 {
21168     virtual HRESULT STDMETHODCALLTYPE get_Rule(
21169         ISpeechGrammarRule **Rule) = 0;
21170 
21171     virtual HRESULT STDMETHODCALLTYPE get_Transitions(
21172         ISpeechGrammarRuleStateTransitions **Transitions) = 0;
21173 
21174     virtual HRESULT STDMETHODCALLTYPE AddWordTransition(
21175         ISpeechGrammarRuleState *DestState,
21176         const BSTR Words,
21177         const BSTR Separators = L" ",
21178         SpeechGrammarWordType Type = SGLexical,
21179         const BSTR PropertyName = L"",
21180         LONG PropertyId = 0,
21181         VARIANT *PropertyValue = 0,
21182         float Weight = 1) = 0;
21183 
21184     virtual HRESULT STDMETHODCALLTYPE AddRuleTransition(
21185         ISpeechGrammarRuleState *DestinationState,
21186         ISpeechGrammarRule *Rule,
21187         const BSTR PropertyName = L"",
21188         LONG PropertyId = 0,
21189         VARIANT *PropertyValue = 0,
21190         float Weight = 1) = 0;
21191 
21192     virtual HRESULT STDMETHODCALLTYPE AddSpecialTransition(
21193         ISpeechGrammarRuleState *DestinationState,
21194         SpeechSpecialTransitionType Type,
21195         const BSTR PropertyName = L"",
21196         LONG PropertyId = 0,
21197         VARIANT *PropertyValue = 0,
21198         float Weight = 1) = 0;
21199 
21200 };
21201 #ifdef __CRT_UUID_DECL
21202 __CRT_UUID_DECL(ISpeechGrammarRuleState, 0xd4286f2c, 0xee67, 0x45ae, 0xb9,0x28, 0x28,0xd6,0x95,0x36,0x2e,0xda)
21203 #endif
21204 #else
21205 typedef struct ISpeechGrammarRuleStateVtbl {
21206     BEGIN_INTERFACE
21207 
21208     /*** IUnknown methods ***/
21209     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21210         ISpeechGrammarRuleState* This,
21211         REFIID riid,
21212         void **ppvObject);
21213 
21214     ULONG (STDMETHODCALLTYPE *AddRef)(
21215         ISpeechGrammarRuleState* This);
21216 
21217     ULONG (STDMETHODCALLTYPE *Release)(
21218         ISpeechGrammarRuleState* This);
21219 
21220     /*** IDispatch methods ***/
21221     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21222         ISpeechGrammarRuleState* This,
21223         UINT *pctinfo);
21224 
21225     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21226         ISpeechGrammarRuleState* This,
21227         UINT iTInfo,
21228         LCID lcid,
21229         ITypeInfo **ppTInfo);
21230 
21231     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21232         ISpeechGrammarRuleState* This,
21233         REFIID riid,
21234         LPOLESTR *rgszNames,
21235         UINT cNames,
21236         LCID lcid,
21237         DISPID *rgDispId);
21238 
21239     HRESULT (STDMETHODCALLTYPE *Invoke)(
21240         ISpeechGrammarRuleState* This,
21241         DISPID dispIdMember,
21242         REFIID riid,
21243         LCID lcid,
21244         WORD wFlags,
21245         DISPPARAMS *pDispParams,
21246         VARIANT *pVarResult,
21247         EXCEPINFO *pExcepInfo,
21248         UINT *puArgErr);
21249 
21250     /*** ISpeechGrammarRuleState methods ***/
21251     HRESULT (STDMETHODCALLTYPE *get_Rule)(
21252         ISpeechGrammarRuleState* This,
21253         ISpeechGrammarRule **Rule);
21254 
21255     HRESULT (STDMETHODCALLTYPE *get_Transitions)(
21256         ISpeechGrammarRuleState* This,
21257         ISpeechGrammarRuleStateTransitions **Transitions);
21258 
21259     HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
21260         ISpeechGrammarRuleState* This,
21261         ISpeechGrammarRuleState *DestState,
21262         const BSTR Words,
21263         const BSTR Separators,
21264         SpeechGrammarWordType Type,
21265         const BSTR PropertyName,
21266         LONG PropertyId,
21267         VARIANT *PropertyValue,
21268         float Weight);
21269 
21270     HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
21271         ISpeechGrammarRuleState* This,
21272         ISpeechGrammarRuleState *DestinationState,
21273         ISpeechGrammarRule *Rule,
21274         const BSTR PropertyName,
21275         LONG PropertyId,
21276         VARIANT *PropertyValue,
21277         float Weight);
21278 
21279     HRESULT (STDMETHODCALLTYPE *AddSpecialTransition)(
21280         ISpeechGrammarRuleState* This,
21281         ISpeechGrammarRuleState *DestinationState,
21282         SpeechSpecialTransitionType Type,
21283         const BSTR PropertyName,
21284         LONG PropertyId,
21285         VARIANT *PropertyValue,
21286         float Weight);
21287 
21288     END_INTERFACE
21289 } ISpeechGrammarRuleStateVtbl;
21290 interface ISpeechGrammarRuleState {
21291     CONST_VTBL ISpeechGrammarRuleStateVtbl* lpVtbl;
21292 };
21293 
21294 #ifdef COBJMACROS
21295 #ifndef WIDL_C_INLINE_WRAPPERS
21296 /*** IUnknown methods ***/
21297 #define ISpeechGrammarRuleState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21298 #define ISpeechGrammarRuleState_AddRef(This) (This)->lpVtbl->AddRef(This)
21299 #define ISpeechGrammarRuleState_Release(This) (This)->lpVtbl->Release(This)
21300 /*** IDispatch methods ***/
21301 #define ISpeechGrammarRuleState_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21302 #define ISpeechGrammarRuleState_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21303 #define ISpeechGrammarRuleState_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21304 #define ISpeechGrammarRuleState_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21305 /*** ISpeechGrammarRuleState methods ***/
21306 #define ISpeechGrammarRuleState_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
21307 #define ISpeechGrammarRuleState_get_Transitions(This,Transitions) (This)->lpVtbl->get_Transitions(This,Transitions)
21308 #define ISpeechGrammarRuleState_AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight)
21309 #define ISpeechGrammarRuleState_AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight)
21310 #define ISpeechGrammarRuleState_AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight)
21311 #else
21312 /*** IUnknown methods ***/
21313 static FORCEINLINE HRESULT ISpeechGrammarRuleState_QueryInterface(ISpeechGrammarRuleState* This,REFIID riid,void **ppvObject) {
21314     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21315 }
21316 static FORCEINLINE ULONG ISpeechGrammarRuleState_AddRef(ISpeechGrammarRuleState* This) {
21317     return This->lpVtbl->AddRef(This);
21318 }
21319 static FORCEINLINE ULONG ISpeechGrammarRuleState_Release(ISpeechGrammarRuleState* This) {
21320     return This->lpVtbl->Release(This);
21321 }
21322 /*** IDispatch methods ***/
21323 static FORCEINLINE HRESULT ISpeechGrammarRuleState_GetTypeInfoCount(ISpeechGrammarRuleState* This,UINT *pctinfo) {
21324     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21325 }
21326 static FORCEINLINE HRESULT ISpeechGrammarRuleState_GetTypeInfo(ISpeechGrammarRuleState* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21327     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21328 }
21329 static FORCEINLINE HRESULT ISpeechGrammarRuleState_GetIDsOfNames(ISpeechGrammarRuleState* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21330     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21331 }
21332 static FORCEINLINE HRESULT ISpeechGrammarRuleState_Invoke(ISpeechGrammarRuleState* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21333     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21334 }
21335 /*** ISpeechGrammarRuleState methods ***/
21336 static FORCEINLINE HRESULT ISpeechGrammarRuleState_get_Rule(ISpeechGrammarRuleState* This,ISpeechGrammarRule **Rule) {
21337     return This->lpVtbl->get_Rule(This,Rule);
21338 }
21339 static FORCEINLINE HRESULT ISpeechGrammarRuleState_get_Transitions(ISpeechGrammarRuleState* This,ISpeechGrammarRuleStateTransitions **Transitions) {
21340     return This->lpVtbl->get_Transitions(This,Transitions);
21341 }
21342 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) {
21343     return This->lpVtbl->AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight);
21344 }
21345 static FORCEINLINE HRESULT ISpeechGrammarRuleState_AddRuleTransition(ISpeechGrammarRuleState* This,ISpeechGrammarRuleState *DestinationState,ISpeechGrammarRule *Rule,const BSTR PropertyName,LONG PropertyId,VARIANT *PropertyValue,float Weight) {
21346     return This->lpVtbl->AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight);
21347 }
21348 static FORCEINLINE HRESULT ISpeechGrammarRuleState_AddSpecialTransition(ISpeechGrammarRuleState* This,ISpeechGrammarRuleState *DestinationState,SpeechSpecialTransitionType Type,const BSTR PropertyName,LONG PropertyId,VARIANT *PropertyValue,float Weight) {
21349     return This->lpVtbl->AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight);
21350 }
21351 #endif
21352 #endif
21353 
21354 #endif
21355 
21356 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleState_get_Rule_Proxy(
21357     ISpeechGrammarRuleState* This,
21358     ISpeechGrammarRule **Rule);
21359 void __RPC_STUB ISpeechGrammarRuleState_get_Rule_Stub(
21360     IRpcStubBuffer* This,
21361     IRpcChannelBuffer* pRpcChannelBuffer,
21362     PRPC_MESSAGE pRpcMessage,
21363     DWORD* pdwStubPhase);
21364 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleState_get_Transitions_Proxy(
21365     ISpeechGrammarRuleState* This,
21366     ISpeechGrammarRuleStateTransitions **Transitions);
21367 void __RPC_STUB ISpeechGrammarRuleState_get_Transitions_Stub(
21368     IRpcStubBuffer* This,
21369     IRpcChannelBuffer* pRpcChannelBuffer,
21370     PRPC_MESSAGE pRpcMessage,
21371     DWORD* pdwStubPhase);
21372 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleState_AddWordTransition_Proxy(
21373     ISpeechGrammarRuleState* This,
21374     ISpeechGrammarRuleState *DestState,
21375     const BSTR Words,
21376     const BSTR Separators,
21377     SpeechGrammarWordType Type,
21378     const BSTR PropertyName,
21379     LONG PropertyId,
21380     VARIANT *PropertyValue,
21381     float Weight);
21382 void __RPC_STUB ISpeechGrammarRuleState_AddWordTransition_Stub(
21383     IRpcStubBuffer* This,
21384     IRpcChannelBuffer* pRpcChannelBuffer,
21385     PRPC_MESSAGE pRpcMessage,
21386     DWORD* pdwStubPhase);
21387 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleState_AddRuleTransition_Proxy(
21388     ISpeechGrammarRuleState* This,
21389     ISpeechGrammarRuleState *DestinationState,
21390     ISpeechGrammarRule *Rule,
21391     const BSTR PropertyName,
21392     LONG PropertyId,
21393     VARIANT *PropertyValue,
21394     float Weight);
21395 void __RPC_STUB ISpeechGrammarRuleState_AddRuleTransition_Stub(
21396     IRpcStubBuffer* This,
21397     IRpcChannelBuffer* pRpcChannelBuffer,
21398     PRPC_MESSAGE pRpcMessage,
21399     DWORD* pdwStubPhase);
21400 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleState_AddSpecialTransition_Proxy(
21401     ISpeechGrammarRuleState* This,
21402     ISpeechGrammarRuleState *DestinationState,
21403     SpeechSpecialTransitionType Type,
21404     const BSTR PropertyName,
21405     LONG PropertyId,
21406     VARIANT *PropertyValue,
21407     float Weight);
21408 void __RPC_STUB ISpeechGrammarRuleState_AddSpecialTransition_Stub(
21409     IRpcStubBuffer* This,
21410     IRpcChannelBuffer* pRpcChannelBuffer,
21411     PRPC_MESSAGE pRpcMessage,
21412     DWORD* pdwStubPhase);
21413 
21414 #endif  /* __ISpeechGrammarRuleState_INTERFACE_DEFINED__ */
21415 
21416 /*****************************************************************************
21417  * ISpeechGrammarRuleStateTransitions interface
21418  */
21419 #ifndef __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__
21420 #define __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__
21421 
21422 DEFINE_GUID(IID_ISpeechGrammarRuleStateTransitions, 0xeabce657, 0x75bc, 0x44a2, 0xaa,0x7f, 0xc5,0x64,0x76,0x74,0x29,0x63);
21423 #if defined(__cplusplus) && !defined(CINTERFACE)
21424 MIDL_INTERFACE("eabce657-75bc-44a2-aa7f-c56476742963")
21425 ISpeechGrammarRuleStateTransitions : public IDispatch
21426 {
21427     virtual HRESULT STDMETHODCALLTYPE get_Count(
21428         LONG *Count) = 0;
21429 
21430     virtual HRESULT STDMETHODCALLTYPE Item(
21431         LONG Index,
21432         ISpeechGrammarRuleStateTransition **Transition) = 0;
21433 
21434     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
21435         IUnknown **EnumVARIANT) = 0;
21436 
21437 };
21438 #ifdef __CRT_UUID_DECL
21439 __CRT_UUID_DECL(ISpeechGrammarRuleStateTransitions, 0xeabce657, 0x75bc, 0x44a2, 0xaa,0x7f, 0xc5,0x64,0x76,0x74,0x29,0x63)
21440 #endif
21441 #else
21442 typedef struct ISpeechGrammarRuleStateTransitionsVtbl {
21443     BEGIN_INTERFACE
21444 
21445     /*** IUnknown methods ***/
21446     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21447         ISpeechGrammarRuleStateTransitions* This,
21448         REFIID riid,
21449         void **ppvObject);
21450 
21451     ULONG (STDMETHODCALLTYPE *AddRef)(
21452         ISpeechGrammarRuleStateTransitions* This);
21453 
21454     ULONG (STDMETHODCALLTYPE *Release)(
21455         ISpeechGrammarRuleStateTransitions* This);
21456 
21457     /*** IDispatch methods ***/
21458     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21459         ISpeechGrammarRuleStateTransitions* This,
21460         UINT *pctinfo);
21461 
21462     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21463         ISpeechGrammarRuleStateTransitions* This,
21464         UINT iTInfo,
21465         LCID lcid,
21466         ITypeInfo **ppTInfo);
21467 
21468     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21469         ISpeechGrammarRuleStateTransitions* This,
21470         REFIID riid,
21471         LPOLESTR *rgszNames,
21472         UINT cNames,
21473         LCID lcid,
21474         DISPID *rgDispId);
21475 
21476     HRESULT (STDMETHODCALLTYPE *Invoke)(
21477         ISpeechGrammarRuleStateTransitions* This,
21478         DISPID dispIdMember,
21479         REFIID riid,
21480         LCID lcid,
21481         WORD wFlags,
21482         DISPPARAMS *pDispParams,
21483         VARIANT *pVarResult,
21484         EXCEPINFO *pExcepInfo,
21485         UINT *puArgErr);
21486 
21487     /*** ISpeechGrammarRuleStateTransitions methods ***/
21488     HRESULT (STDMETHODCALLTYPE *get_Count)(
21489         ISpeechGrammarRuleStateTransitions* This,
21490         LONG *Count);
21491 
21492     HRESULT (STDMETHODCALLTYPE *Item)(
21493         ISpeechGrammarRuleStateTransitions* This,
21494         LONG Index,
21495         ISpeechGrammarRuleStateTransition **Transition);
21496 
21497     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
21498         ISpeechGrammarRuleStateTransitions* This,
21499         IUnknown **EnumVARIANT);
21500 
21501     END_INTERFACE
21502 } ISpeechGrammarRuleStateTransitionsVtbl;
21503 interface ISpeechGrammarRuleStateTransitions {
21504     CONST_VTBL ISpeechGrammarRuleStateTransitionsVtbl* lpVtbl;
21505 };
21506 
21507 #ifdef COBJMACROS
21508 #ifndef WIDL_C_INLINE_WRAPPERS
21509 /*** IUnknown methods ***/
21510 #define ISpeechGrammarRuleStateTransitions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21511 #define ISpeechGrammarRuleStateTransitions_AddRef(This) (This)->lpVtbl->AddRef(This)
21512 #define ISpeechGrammarRuleStateTransitions_Release(This) (This)->lpVtbl->Release(This)
21513 /*** IDispatch methods ***/
21514 #define ISpeechGrammarRuleStateTransitions_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21515 #define ISpeechGrammarRuleStateTransitions_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21516 #define ISpeechGrammarRuleStateTransitions_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21517 #define ISpeechGrammarRuleStateTransitions_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21518 /*** ISpeechGrammarRuleStateTransitions methods ***/
21519 #define ISpeechGrammarRuleStateTransitions_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
21520 #define ISpeechGrammarRuleStateTransitions_Item(This,Index,Transition) (This)->lpVtbl->Item(This,Index,Transition)
21521 #define ISpeechGrammarRuleStateTransitions_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
21522 #else
21523 /*** IUnknown methods ***/
21524 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_QueryInterface(ISpeechGrammarRuleStateTransitions* This,REFIID riid,void **ppvObject) {
21525     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21526 }
21527 static FORCEINLINE ULONG ISpeechGrammarRuleStateTransitions_AddRef(ISpeechGrammarRuleStateTransitions* This) {
21528     return This->lpVtbl->AddRef(This);
21529 }
21530 static FORCEINLINE ULONG ISpeechGrammarRuleStateTransitions_Release(ISpeechGrammarRuleStateTransitions* This) {
21531     return This->lpVtbl->Release(This);
21532 }
21533 /*** IDispatch methods ***/
21534 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_GetTypeInfoCount(ISpeechGrammarRuleStateTransitions* This,UINT *pctinfo) {
21535     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21536 }
21537 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_GetTypeInfo(ISpeechGrammarRuleStateTransitions* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21538     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21539 }
21540 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_GetIDsOfNames(ISpeechGrammarRuleStateTransitions* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21541     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21542 }
21543 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_Invoke(ISpeechGrammarRuleStateTransitions* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21544     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21545 }
21546 /*** ISpeechGrammarRuleStateTransitions methods ***/
21547 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_get_Count(ISpeechGrammarRuleStateTransitions* This,LONG *Count) {
21548     return This->lpVtbl->get_Count(This,Count);
21549 }
21550 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_Item(ISpeechGrammarRuleStateTransitions* This,LONG Index,ISpeechGrammarRuleStateTransition **Transition) {
21551     return This->lpVtbl->Item(This,Index,Transition);
21552 }
21553 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_get__NewEnum(ISpeechGrammarRuleStateTransitions* This,IUnknown **EnumVARIANT) {
21554     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
21555 }
21556 #endif
21557 #endif
21558 
21559 #endif
21560 
21561 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransitions_get_Count_Proxy(
21562     ISpeechGrammarRuleStateTransitions* This,
21563     LONG *Count);
21564 void __RPC_STUB ISpeechGrammarRuleStateTransitions_get_Count_Stub(
21565     IRpcStubBuffer* This,
21566     IRpcChannelBuffer* pRpcChannelBuffer,
21567     PRPC_MESSAGE pRpcMessage,
21568     DWORD* pdwStubPhase);
21569 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransitions_Item_Proxy(
21570     ISpeechGrammarRuleStateTransitions* This,
21571     LONG Index,
21572     ISpeechGrammarRuleStateTransition **Transition);
21573 void __RPC_STUB ISpeechGrammarRuleStateTransitions_Item_Stub(
21574     IRpcStubBuffer* This,
21575     IRpcChannelBuffer* pRpcChannelBuffer,
21576     PRPC_MESSAGE pRpcMessage,
21577     DWORD* pdwStubPhase);
21578 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransitions_get__NewEnum_Proxy(
21579     ISpeechGrammarRuleStateTransitions* This,
21580     IUnknown **EnumVARIANT);
21581 void __RPC_STUB ISpeechGrammarRuleStateTransitions_get__NewEnum_Stub(
21582     IRpcStubBuffer* This,
21583     IRpcChannelBuffer* pRpcChannelBuffer,
21584     PRPC_MESSAGE pRpcMessage,
21585     DWORD* pdwStubPhase);
21586 
21587 #endif  /* __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__ */
21588 
21589 /*****************************************************************************
21590  * ISpeechGrammarRuleStateTransition interface
21591  */
21592 #ifndef __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__
21593 #define __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__
21594 
21595 DEFINE_GUID(IID_ISpeechGrammarRuleStateTransition, 0xcafd1db1, 0x41d1, 0x4a06, 0x98,0x63, 0xe2,0xe8,0x1d,0xa1,0x7a,0x9a);
21596 #if defined(__cplusplus) && !defined(CINTERFACE)
21597 MIDL_INTERFACE("cafd1db1-41d1-4a06-9863-e2e81da17a9a")
21598 ISpeechGrammarRuleStateTransition : public IDispatch
21599 {
21600     virtual HRESULT STDMETHODCALLTYPE get_Type(
21601         SpeechGrammarRuleStateTransitionType *Type) = 0;
21602 
21603     virtual HRESULT STDMETHODCALLTYPE get_Text(
21604         BSTR *Text) = 0;
21605 
21606     virtual HRESULT STDMETHODCALLTYPE get_Rule(
21607         ISpeechGrammarRule **Rule) = 0;
21608 
21609     virtual HRESULT STDMETHODCALLTYPE get_Weight(
21610         VARIANT *Weight) = 0;
21611 
21612     virtual HRESULT STDMETHODCALLTYPE get_PropertyName(
21613         BSTR *PropertyName) = 0;
21614 
21615     virtual HRESULT STDMETHODCALLTYPE get_PropertyId(
21616         LONG *PropertyId) = 0;
21617 
21618     virtual HRESULT STDMETHODCALLTYPE get_PropertyValue(
21619         VARIANT *PropertyValue) = 0;
21620 
21621     virtual HRESULT STDMETHODCALLTYPE get_NextState(
21622         ISpeechGrammarRuleState **NextState) = 0;
21623 
21624 };
21625 #ifdef __CRT_UUID_DECL
21626 __CRT_UUID_DECL(ISpeechGrammarRuleStateTransition, 0xcafd1db1, 0x41d1, 0x4a06, 0x98,0x63, 0xe2,0xe8,0x1d,0xa1,0x7a,0x9a)
21627 #endif
21628 #else
21629 typedef struct ISpeechGrammarRuleStateTransitionVtbl {
21630     BEGIN_INTERFACE
21631 
21632     /*** IUnknown methods ***/
21633     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21634         ISpeechGrammarRuleStateTransition* This,
21635         REFIID riid,
21636         void **ppvObject);
21637 
21638     ULONG (STDMETHODCALLTYPE *AddRef)(
21639         ISpeechGrammarRuleStateTransition* This);
21640 
21641     ULONG (STDMETHODCALLTYPE *Release)(
21642         ISpeechGrammarRuleStateTransition* This);
21643 
21644     /*** IDispatch methods ***/
21645     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21646         ISpeechGrammarRuleStateTransition* This,
21647         UINT *pctinfo);
21648 
21649     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21650         ISpeechGrammarRuleStateTransition* This,
21651         UINT iTInfo,
21652         LCID lcid,
21653         ITypeInfo **ppTInfo);
21654 
21655     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21656         ISpeechGrammarRuleStateTransition* This,
21657         REFIID riid,
21658         LPOLESTR *rgszNames,
21659         UINT cNames,
21660         LCID lcid,
21661         DISPID *rgDispId);
21662 
21663     HRESULT (STDMETHODCALLTYPE *Invoke)(
21664         ISpeechGrammarRuleStateTransition* This,
21665         DISPID dispIdMember,
21666         REFIID riid,
21667         LCID lcid,
21668         WORD wFlags,
21669         DISPPARAMS *pDispParams,
21670         VARIANT *pVarResult,
21671         EXCEPINFO *pExcepInfo,
21672         UINT *puArgErr);
21673 
21674     /*** ISpeechGrammarRuleStateTransition methods ***/
21675     HRESULT (STDMETHODCALLTYPE *get_Type)(
21676         ISpeechGrammarRuleStateTransition* This,
21677         SpeechGrammarRuleStateTransitionType *Type);
21678 
21679     HRESULT (STDMETHODCALLTYPE *get_Text)(
21680         ISpeechGrammarRuleStateTransition* This,
21681         BSTR *Text);
21682 
21683     HRESULT (STDMETHODCALLTYPE *get_Rule)(
21684         ISpeechGrammarRuleStateTransition* This,
21685         ISpeechGrammarRule **Rule);
21686 
21687     HRESULT (STDMETHODCALLTYPE *get_Weight)(
21688         ISpeechGrammarRuleStateTransition* This,
21689         VARIANT *Weight);
21690 
21691     HRESULT (STDMETHODCALLTYPE *get_PropertyName)(
21692         ISpeechGrammarRuleStateTransition* This,
21693         BSTR *PropertyName);
21694 
21695     HRESULT (STDMETHODCALLTYPE *get_PropertyId)(
21696         ISpeechGrammarRuleStateTransition* This,
21697         LONG *PropertyId);
21698 
21699     HRESULT (STDMETHODCALLTYPE *get_PropertyValue)(
21700         ISpeechGrammarRuleStateTransition* This,
21701         VARIANT *PropertyValue);
21702 
21703     HRESULT (STDMETHODCALLTYPE *get_NextState)(
21704         ISpeechGrammarRuleStateTransition* This,
21705         ISpeechGrammarRuleState **NextState);
21706 
21707     END_INTERFACE
21708 } ISpeechGrammarRuleStateTransitionVtbl;
21709 interface ISpeechGrammarRuleStateTransition {
21710     CONST_VTBL ISpeechGrammarRuleStateTransitionVtbl* lpVtbl;
21711 };
21712 
21713 #ifdef COBJMACROS
21714 #ifndef WIDL_C_INLINE_WRAPPERS
21715 /*** IUnknown methods ***/
21716 #define ISpeechGrammarRuleStateTransition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21717 #define ISpeechGrammarRuleStateTransition_AddRef(This) (This)->lpVtbl->AddRef(This)
21718 #define ISpeechGrammarRuleStateTransition_Release(This) (This)->lpVtbl->Release(This)
21719 /*** IDispatch methods ***/
21720 #define ISpeechGrammarRuleStateTransition_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21721 #define ISpeechGrammarRuleStateTransition_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21722 #define ISpeechGrammarRuleStateTransition_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21723 #define ISpeechGrammarRuleStateTransition_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21724 /*** ISpeechGrammarRuleStateTransition methods ***/
21725 #define ISpeechGrammarRuleStateTransition_get_Type(This,Type) (This)->lpVtbl->get_Type(This,Type)
21726 #define ISpeechGrammarRuleStateTransition_get_Text(This,Text) (This)->lpVtbl->get_Text(This,Text)
21727 #define ISpeechGrammarRuleStateTransition_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
21728 #define ISpeechGrammarRuleStateTransition_get_Weight(This,Weight) (This)->lpVtbl->get_Weight(This,Weight)
21729 #define ISpeechGrammarRuleStateTransition_get_PropertyName(This,PropertyName) (This)->lpVtbl->get_PropertyName(This,PropertyName)
21730 #define ISpeechGrammarRuleStateTransition_get_PropertyId(This,PropertyId) (This)->lpVtbl->get_PropertyId(This,PropertyId)
21731 #define ISpeechGrammarRuleStateTransition_get_PropertyValue(This,PropertyValue) (This)->lpVtbl->get_PropertyValue(This,PropertyValue)
21732 #define ISpeechGrammarRuleStateTransition_get_NextState(This,NextState) (This)->lpVtbl->get_NextState(This,NextState)
21733 #else
21734 /*** IUnknown methods ***/
21735 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_QueryInterface(ISpeechGrammarRuleStateTransition* This,REFIID riid,void **ppvObject) {
21736     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21737 }
21738 static FORCEINLINE ULONG ISpeechGrammarRuleStateTransition_AddRef(ISpeechGrammarRuleStateTransition* This) {
21739     return This->lpVtbl->AddRef(This);
21740 }
21741 static FORCEINLINE ULONG ISpeechGrammarRuleStateTransition_Release(ISpeechGrammarRuleStateTransition* This) {
21742     return This->lpVtbl->Release(This);
21743 }
21744 /*** IDispatch methods ***/
21745 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_GetTypeInfoCount(ISpeechGrammarRuleStateTransition* This,UINT *pctinfo) {
21746     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21747 }
21748 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_GetTypeInfo(ISpeechGrammarRuleStateTransition* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21749     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21750 }
21751 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_GetIDsOfNames(ISpeechGrammarRuleStateTransition* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21752     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21753 }
21754 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_Invoke(ISpeechGrammarRuleStateTransition* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21755     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21756 }
21757 /*** ISpeechGrammarRuleStateTransition methods ***/
21758 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_Type(ISpeechGrammarRuleStateTransition* This,SpeechGrammarRuleStateTransitionType *Type) {
21759     return This->lpVtbl->get_Type(This,Type);
21760 }
21761 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_Text(ISpeechGrammarRuleStateTransition* This,BSTR *Text) {
21762     return This->lpVtbl->get_Text(This,Text);
21763 }
21764 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_Rule(ISpeechGrammarRuleStateTransition* This,ISpeechGrammarRule **Rule) {
21765     return This->lpVtbl->get_Rule(This,Rule);
21766 }
21767 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_Weight(ISpeechGrammarRuleStateTransition* This,VARIANT *Weight) {
21768     return This->lpVtbl->get_Weight(This,Weight);
21769 }
21770 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_PropertyName(ISpeechGrammarRuleStateTransition* This,BSTR *PropertyName) {
21771     return This->lpVtbl->get_PropertyName(This,PropertyName);
21772 }
21773 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_PropertyId(ISpeechGrammarRuleStateTransition* This,LONG *PropertyId) {
21774     return This->lpVtbl->get_PropertyId(This,PropertyId);
21775 }
21776 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_PropertyValue(ISpeechGrammarRuleStateTransition* This,VARIANT *PropertyValue) {
21777     return This->lpVtbl->get_PropertyValue(This,PropertyValue);
21778 }
21779 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_NextState(ISpeechGrammarRuleStateTransition* This,ISpeechGrammarRuleState **NextState) {
21780     return This->lpVtbl->get_NextState(This,NextState);
21781 }
21782 #endif
21783 #endif
21784 
21785 #endif
21786 
21787 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_Type_Proxy(
21788     ISpeechGrammarRuleStateTransition* This,
21789     SpeechGrammarRuleStateTransitionType *Type);
21790 void __RPC_STUB ISpeechGrammarRuleStateTransition_get_Type_Stub(
21791     IRpcStubBuffer* This,
21792     IRpcChannelBuffer* pRpcChannelBuffer,
21793     PRPC_MESSAGE pRpcMessage,
21794     DWORD* pdwStubPhase);
21795 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_Text_Proxy(
21796     ISpeechGrammarRuleStateTransition* This,
21797     BSTR *Text);
21798 void __RPC_STUB ISpeechGrammarRuleStateTransition_get_Text_Stub(
21799     IRpcStubBuffer* This,
21800     IRpcChannelBuffer* pRpcChannelBuffer,
21801     PRPC_MESSAGE pRpcMessage,
21802     DWORD* pdwStubPhase);
21803 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_Rule_Proxy(
21804     ISpeechGrammarRuleStateTransition* This,
21805     ISpeechGrammarRule **Rule);
21806 void __RPC_STUB ISpeechGrammarRuleStateTransition_get_Rule_Stub(
21807     IRpcStubBuffer* This,
21808     IRpcChannelBuffer* pRpcChannelBuffer,
21809     PRPC_MESSAGE pRpcMessage,
21810     DWORD* pdwStubPhase);
21811 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_Weight_Proxy(
21812     ISpeechGrammarRuleStateTransition* This,
21813     VARIANT *Weight);
21814 void __RPC_STUB ISpeechGrammarRuleStateTransition_get_Weight_Stub(
21815     IRpcStubBuffer* This,
21816     IRpcChannelBuffer* pRpcChannelBuffer,
21817     PRPC_MESSAGE pRpcMessage,
21818     DWORD* pdwStubPhase);
21819 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_PropertyName_Proxy(
21820     ISpeechGrammarRuleStateTransition* This,
21821     BSTR *PropertyName);
21822 void __RPC_STUB ISpeechGrammarRuleStateTransition_get_PropertyName_Stub(
21823     IRpcStubBuffer* This,
21824     IRpcChannelBuffer* pRpcChannelBuffer,
21825     PRPC_MESSAGE pRpcMessage,
21826     DWORD* pdwStubPhase);
21827 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_PropertyId_Proxy(
21828     ISpeechGrammarRuleStateTransition* This,
21829     LONG *PropertyId);
21830 void __RPC_STUB ISpeechGrammarRuleStateTransition_get_PropertyId_Stub(
21831     IRpcStubBuffer* This,
21832     IRpcChannelBuffer* pRpcChannelBuffer,
21833     PRPC_MESSAGE pRpcMessage,
21834     DWORD* pdwStubPhase);
21835 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_PropertyValue_Proxy(
21836     ISpeechGrammarRuleStateTransition* This,
21837     VARIANT *PropertyValue);
21838 void __RPC_STUB ISpeechGrammarRuleStateTransition_get_PropertyValue_Stub(
21839     IRpcStubBuffer* This,
21840     IRpcChannelBuffer* pRpcChannelBuffer,
21841     PRPC_MESSAGE pRpcMessage,
21842     DWORD* pdwStubPhase);
21843 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_NextState_Proxy(
21844     ISpeechGrammarRuleStateTransition* This,
21845     ISpeechGrammarRuleState **NextState);
21846 void __RPC_STUB ISpeechGrammarRuleStateTransition_get_NextState_Stub(
21847     IRpcStubBuffer* This,
21848     IRpcChannelBuffer* pRpcChannelBuffer,
21849     PRPC_MESSAGE pRpcMessage,
21850     DWORD* pdwStubPhase);
21851 
21852 #endif  /* __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__ */
21853 
21854 /*****************************************************************************
21855  * ISpeechTextSelectionInformation interface
21856  */
21857 #ifndef __ISpeechTextSelectionInformation_INTERFACE_DEFINED__
21858 #define __ISpeechTextSelectionInformation_INTERFACE_DEFINED__
21859 
21860 DEFINE_GUID(IID_ISpeechTextSelectionInformation, 0x3b9c7e7a, 0x6eee, 0x4ded, 0x90,0x92, 0x11,0x65,0x72,0x79,0xad,0xbe);
21861 #if defined(__cplusplus) && !defined(CINTERFACE)
21862 MIDL_INTERFACE("3b9c7e7a-6eee-4ded-9092-11657279adbe")
21863 ISpeechTextSelectionInformation : public IDispatch
21864 {
21865     virtual HRESULT STDMETHODCALLTYPE put_ActiveOffset(
21866         LONG ActiveOffset) = 0;
21867 
21868     virtual HRESULT STDMETHODCALLTYPE get_ActiveOffset(
21869         LONG *ActiveOffset) = 0;
21870 
21871     virtual HRESULT STDMETHODCALLTYPE put_ActiveLength(
21872         LONG ActiveLength) = 0;
21873 
21874     virtual HRESULT STDMETHODCALLTYPE get_ActiveLength(
21875         LONG *ActiveLength) = 0;
21876 
21877     virtual HRESULT STDMETHODCALLTYPE put_SelectionOffset(
21878         LONG SelectionOffset) = 0;
21879 
21880     virtual HRESULT STDMETHODCALLTYPE get_SelectionOffset(
21881         LONG *SelectionOffset) = 0;
21882 
21883     virtual HRESULT STDMETHODCALLTYPE put_SelectionLength(
21884         LONG SelectionLength) = 0;
21885 
21886     virtual HRESULT STDMETHODCALLTYPE get_SelectionLength(
21887         LONG *SelectionLength) = 0;
21888 
21889 };
21890 #ifdef __CRT_UUID_DECL
21891 __CRT_UUID_DECL(ISpeechTextSelectionInformation, 0x3b9c7e7a, 0x6eee, 0x4ded, 0x90,0x92, 0x11,0x65,0x72,0x79,0xad,0xbe)
21892 #endif
21893 #else
21894 typedef struct ISpeechTextSelectionInformationVtbl {
21895     BEGIN_INTERFACE
21896 
21897     /*** IUnknown methods ***/
21898     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21899         ISpeechTextSelectionInformation* This,
21900         REFIID riid,
21901         void **ppvObject);
21902 
21903     ULONG (STDMETHODCALLTYPE *AddRef)(
21904         ISpeechTextSelectionInformation* This);
21905 
21906     ULONG (STDMETHODCALLTYPE *Release)(
21907         ISpeechTextSelectionInformation* This);
21908 
21909     /*** IDispatch methods ***/
21910     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21911         ISpeechTextSelectionInformation* This,
21912         UINT *pctinfo);
21913 
21914     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21915         ISpeechTextSelectionInformation* This,
21916         UINT iTInfo,
21917         LCID lcid,
21918         ITypeInfo **ppTInfo);
21919 
21920     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21921         ISpeechTextSelectionInformation* This,
21922         REFIID riid,
21923         LPOLESTR *rgszNames,
21924         UINT cNames,
21925         LCID lcid,
21926         DISPID *rgDispId);
21927 
21928     HRESULT (STDMETHODCALLTYPE *Invoke)(
21929         ISpeechTextSelectionInformation* This,
21930         DISPID dispIdMember,
21931         REFIID riid,
21932         LCID lcid,
21933         WORD wFlags,
21934         DISPPARAMS *pDispParams,
21935         VARIANT *pVarResult,
21936         EXCEPINFO *pExcepInfo,
21937         UINT *puArgErr);
21938 
21939     /*** ISpeechTextSelectionInformation methods ***/
21940     HRESULT (STDMETHODCALLTYPE *put_ActiveOffset)(
21941         ISpeechTextSelectionInformation* This,
21942         LONG ActiveOffset);
21943 
21944     HRESULT (STDMETHODCALLTYPE *get_ActiveOffset)(
21945         ISpeechTextSelectionInformation* This,
21946         LONG *ActiveOffset);
21947 
21948     HRESULT (STDMETHODCALLTYPE *put_ActiveLength)(
21949         ISpeechTextSelectionInformation* This,
21950         LONG ActiveLength);
21951 
21952     HRESULT (STDMETHODCALLTYPE *get_ActiveLength)(
21953         ISpeechTextSelectionInformation* This,
21954         LONG *ActiveLength);
21955 
21956     HRESULT (STDMETHODCALLTYPE *put_SelectionOffset)(
21957         ISpeechTextSelectionInformation* This,
21958         LONG SelectionOffset);
21959 
21960     HRESULT (STDMETHODCALLTYPE *get_SelectionOffset)(
21961         ISpeechTextSelectionInformation* This,
21962         LONG *SelectionOffset);
21963 
21964     HRESULT (STDMETHODCALLTYPE *put_SelectionLength)(
21965         ISpeechTextSelectionInformation* This,
21966         LONG SelectionLength);
21967 
21968     HRESULT (STDMETHODCALLTYPE *get_SelectionLength)(
21969         ISpeechTextSelectionInformation* This,
21970         LONG *SelectionLength);
21971 
21972     END_INTERFACE
21973 } ISpeechTextSelectionInformationVtbl;
21974 interface ISpeechTextSelectionInformation {
21975     CONST_VTBL ISpeechTextSelectionInformationVtbl* lpVtbl;
21976 };
21977 
21978 #ifdef COBJMACROS
21979 #ifndef WIDL_C_INLINE_WRAPPERS
21980 /*** IUnknown methods ***/
21981 #define ISpeechTextSelectionInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21982 #define ISpeechTextSelectionInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
21983 #define ISpeechTextSelectionInformation_Release(This) (This)->lpVtbl->Release(This)
21984 /*** IDispatch methods ***/
21985 #define ISpeechTextSelectionInformation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21986 #define ISpeechTextSelectionInformation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21987 #define ISpeechTextSelectionInformation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21988 #define ISpeechTextSelectionInformation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21989 /*** ISpeechTextSelectionInformation methods ***/
21990 #define ISpeechTextSelectionInformation_put_ActiveOffset(This,ActiveOffset) (This)->lpVtbl->put_ActiveOffset(This,ActiveOffset)
21991 #define ISpeechTextSelectionInformation_get_ActiveOffset(This,ActiveOffset) (This)->lpVtbl->get_ActiveOffset(This,ActiveOffset)
21992 #define ISpeechTextSelectionInformation_put_ActiveLength(This,ActiveLength) (This)->lpVtbl->put_ActiveLength(This,ActiveLength)
21993 #define ISpeechTextSelectionInformation_get_ActiveLength(This,ActiveLength) (This)->lpVtbl->get_ActiveLength(This,ActiveLength)
21994 #define ISpeechTextSelectionInformation_put_SelectionOffset(This,SelectionOffset) (This)->lpVtbl->put_SelectionOffset(This,SelectionOffset)
21995 #define ISpeechTextSelectionInformation_get_SelectionOffset(This,SelectionOffset) (This)->lpVtbl->get_SelectionOffset(This,SelectionOffset)
21996 #define ISpeechTextSelectionInformation_put_SelectionLength(This,SelectionLength) (This)->lpVtbl->put_SelectionLength(This,SelectionLength)
21997 #define ISpeechTextSelectionInformation_get_SelectionLength(This,SelectionLength) (This)->lpVtbl->get_SelectionLength(This,SelectionLength)
21998 #else
21999 /*** IUnknown methods ***/
22000 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_QueryInterface(ISpeechTextSelectionInformation* This,REFIID riid,void **ppvObject) {
22001     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22002 }
22003 static FORCEINLINE ULONG ISpeechTextSelectionInformation_AddRef(ISpeechTextSelectionInformation* This) {
22004     return This->lpVtbl->AddRef(This);
22005 }
22006 static FORCEINLINE ULONG ISpeechTextSelectionInformation_Release(ISpeechTextSelectionInformation* This) {
22007     return This->lpVtbl->Release(This);
22008 }
22009 /*** IDispatch methods ***/
22010 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_GetTypeInfoCount(ISpeechTextSelectionInformation* This,UINT *pctinfo) {
22011     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22012 }
22013 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_GetTypeInfo(ISpeechTextSelectionInformation* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22014     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22015 }
22016 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_GetIDsOfNames(ISpeechTextSelectionInformation* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22017     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22018 }
22019 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_Invoke(ISpeechTextSelectionInformation* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22020     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22021 }
22022 /*** ISpeechTextSelectionInformation methods ***/
22023 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_put_ActiveOffset(ISpeechTextSelectionInformation* This,LONG ActiveOffset) {
22024     return This->lpVtbl->put_ActiveOffset(This,ActiveOffset);
22025 }
22026 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_get_ActiveOffset(ISpeechTextSelectionInformation* This,LONG *ActiveOffset) {
22027     return This->lpVtbl->get_ActiveOffset(This,ActiveOffset);
22028 }
22029 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_put_ActiveLength(ISpeechTextSelectionInformation* This,LONG ActiveLength) {
22030     return This->lpVtbl->put_ActiveLength(This,ActiveLength);
22031 }
22032 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_get_ActiveLength(ISpeechTextSelectionInformation* This,LONG *ActiveLength) {
22033     return This->lpVtbl->get_ActiveLength(This,ActiveLength);
22034 }
22035 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_put_SelectionOffset(ISpeechTextSelectionInformation* This,LONG SelectionOffset) {
22036     return This->lpVtbl->put_SelectionOffset(This,SelectionOffset);
22037 }
22038 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_get_SelectionOffset(ISpeechTextSelectionInformation* This,LONG *SelectionOffset) {
22039     return This->lpVtbl->get_SelectionOffset(This,SelectionOffset);
22040 }
22041 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_put_SelectionLength(ISpeechTextSelectionInformation* This,LONG SelectionLength) {
22042     return This->lpVtbl->put_SelectionLength(This,SelectionLength);
22043 }
22044 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_get_SelectionLength(ISpeechTextSelectionInformation* This,LONG *SelectionLength) {
22045     return This->lpVtbl->get_SelectionLength(This,SelectionLength);
22046 }
22047 #endif
22048 #endif
22049 
22050 #endif
22051 
22052 HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_put_ActiveOffset_Proxy(
22053     ISpeechTextSelectionInformation* This,
22054     LONG ActiveOffset);
22055 void __RPC_STUB ISpeechTextSelectionInformation_put_ActiveOffset_Stub(
22056     IRpcStubBuffer* This,
22057     IRpcChannelBuffer* pRpcChannelBuffer,
22058     PRPC_MESSAGE pRpcMessage,
22059     DWORD* pdwStubPhase);
22060 HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_get_ActiveOffset_Proxy(
22061     ISpeechTextSelectionInformation* This,
22062     LONG *ActiveOffset);
22063 void __RPC_STUB ISpeechTextSelectionInformation_get_ActiveOffset_Stub(
22064     IRpcStubBuffer* This,
22065     IRpcChannelBuffer* pRpcChannelBuffer,
22066     PRPC_MESSAGE pRpcMessage,
22067     DWORD* pdwStubPhase);
22068 HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_put_ActiveLength_Proxy(
22069     ISpeechTextSelectionInformation* This,
22070     LONG ActiveLength);
22071 void __RPC_STUB ISpeechTextSelectionInformation_put_ActiveLength_Stub(
22072     IRpcStubBuffer* This,
22073     IRpcChannelBuffer* pRpcChannelBuffer,
22074     PRPC_MESSAGE pRpcMessage,
22075     DWORD* pdwStubPhase);
22076 HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_get_ActiveLength_Proxy(
22077     ISpeechTextSelectionInformation* This,
22078     LONG *ActiveLength);
22079 void __RPC_STUB ISpeechTextSelectionInformation_get_ActiveLength_Stub(
22080     IRpcStubBuffer* This,
22081     IRpcChannelBuffer* pRpcChannelBuffer,
22082     PRPC_MESSAGE pRpcMessage,
22083     DWORD* pdwStubPhase);
22084 HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_put_SelectionOffset_Proxy(
22085     ISpeechTextSelectionInformation* This,
22086     LONG SelectionOffset);
22087 void __RPC_STUB ISpeechTextSelectionInformation_put_SelectionOffset_Stub(
22088     IRpcStubBuffer* This,
22089     IRpcChannelBuffer* pRpcChannelBuffer,
22090     PRPC_MESSAGE pRpcMessage,
22091     DWORD* pdwStubPhase);
22092 HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_get_SelectionOffset_Proxy(
22093     ISpeechTextSelectionInformation* This,
22094     LONG *SelectionOffset);
22095 void __RPC_STUB ISpeechTextSelectionInformation_get_SelectionOffset_Stub(
22096     IRpcStubBuffer* This,
22097     IRpcChannelBuffer* pRpcChannelBuffer,
22098     PRPC_MESSAGE pRpcMessage,
22099     DWORD* pdwStubPhase);
22100 HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_put_SelectionLength_Proxy(
22101     ISpeechTextSelectionInformation* This,
22102     LONG SelectionLength);
22103 void __RPC_STUB ISpeechTextSelectionInformation_put_SelectionLength_Stub(
22104     IRpcStubBuffer* This,
22105     IRpcChannelBuffer* pRpcChannelBuffer,
22106     PRPC_MESSAGE pRpcMessage,
22107     DWORD* pdwStubPhase);
22108 HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_get_SelectionLength_Proxy(
22109     ISpeechTextSelectionInformation* This,
22110     LONG *SelectionLength);
22111 void __RPC_STUB ISpeechTextSelectionInformation_get_SelectionLength_Stub(
22112     IRpcStubBuffer* This,
22113     IRpcChannelBuffer* pRpcChannelBuffer,
22114     PRPC_MESSAGE pRpcMessage,
22115     DWORD* pdwStubPhase);
22116 
22117 #endif  /* __ISpeechTextSelectionInformation_INTERFACE_DEFINED__ */
22118 
22119 /*****************************************************************************
22120  * ISpeechRecoResult interface
22121  */
22122 #ifndef __ISpeechRecoResult_INTERFACE_DEFINED__
22123 #define __ISpeechRecoResult_INTERFACE_DEFINED__
22124 
22125 DEFINE_GUID(IID_ISpeechRecoResult, 0xed2879cf, 0xced9, 0x4ee6, 0xa5,0x34, 0xde,0x01,0x91,0xd5,0x46,0x8d);
22126 #if defined(__cplusplus) && !defined(CINTERFACE)
22127 MIDL_INTERFACE("ed2879cf-ced9-4ee6-a534-de0191d5468d")
22128 ISpeechRecoResult : public IDispatch
22129 {
22130     virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
22131         ISpeechRecoContext **RecoContext) = 0;
22132 
22133     virtual HRESULT STDMETHODCALLTYPE get_Times(
22134         ISpeechRecoResultTimes **Times) = 0;
22135 
22136     virtual HRESULT STDMETHODCALLTYPE putref_AudioFormat(
22137         ISpeechAudioFormat *Format) = 0;
22138 
22139     virtual HRESULT STDMETHODCALLTYPE get_AudioFormat(
22140         ISpeechAudioFormat **Format) = 0;
22141 
22142     virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
22143         ISpeechPhraseInfo **PhraseInfo) = 0;
22144 
22145     virtual HRESULT STDMETHODCALLTYPE Alternates(
22146         LONG RequestCount,
22147         LONG StartElement,
22148         LONG Elements,
22149         ISpeechPhraseAlternates **Alternates) = 0;
22150 
22151     virtual HRESULT STDMETHODCALLTYPE Audio(
22152         LONG StartElement,
22153         LONG Elements,
22154         ISpeechMemoryStream **Stream) = 0;
22155 
22156     virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
22157         LONG StartElement,
22158         LONG Elements,
22159         SpeechVoiceSpeakFlags Flags,
22160         LONG *StreamNumber) = 0;
22161 
22162     virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
22163         VARIANT *ResultBlock) = 0;
22164 
22165     virtual HRESULT STDMETHODCALLTYPE DiscardResultInfo(
22166         SpeechDiscardType ValueTypes) = 0;
22167 
22168 };
22169 #ifdef __CRT_UUID_DECL
22170 __CRT_UUID_DECL(ISpeechRecoResult, 0xed2879cf, 0xced9, 0x4ee6, 0xa5,0x34, 0xde,0x01,0x91,0xd5,0x46,0x8d)
22171 #endif
22172 #else
22173 typedef struct ISpeechRecoResultVtbl {
22174     BEGIN_INTERFACE
22175 
22176     /*** IUnknown methods ***/
22177     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22178         ISpeechRecoResult* This,
22179         REFIID riid,
22180         void **ppvObject);
22181 
22182     ULONG (STDMETHODCALLTYPE *AddRef)(
22183         ISpeechRecoResult* This);
22184 
22185     ULONG (STDMETHODCALLTYPE *Release)(
22186         ISpeechRecoResult* This);
22187 
22188     /*** IDispatch methods ***/
22189     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
22190         ISpeechRecoResult* This,
22191         UINT *pctinfo);
22192 
22193     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
22194         ISpeechRecoResult* This,
22195         UINT iTInfo,
22196         LCID lcid,
22197         ITypeInfo **ppTInfo);
22198 
22199     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
22200         ISpeechRecoResult* This,
22201         REFIID riid,
22202         LPOLESTR *rgszNames,
22203         UINT cNames,
22204         LCID lcid,
22205         DISPID *rgDispId);
22206 
22207     HRESULT (STDMETHODCALLTYPE *Invoke)(
22208         ISpeechRecoResult* This,
22209         DISPID dispIdMember,
22210         REFIID riid,
22211         LCID lcid,
22212         WORD wFlags,
22213         DISPPARAMS *pDispParams,
22214         VARIANT *pVarResult,
22215         EXCEPINFO *pExcepInfo,
22216         UINT *puArgErr);
22217 
22218     /*** ISpeechRecoResult methods ***/
22219     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
22220         ISpeechRecoResult* This,
22221         ISpeechRecoContext **RecoContext);
22222 
22223     HRESULT (STDMETHODCALLTYPE *get_Times)(
22224         ISpeechRecoResult* This,
22225         ISpeechRecoResultTimes **Times);
22226 
22227     HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
22228         ISpeechRecoResult* This,
22229         ISpeechAudioFormat *Format);
22230 
22231     HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
22232         ISpeechRecoResult* This,
22233         ISpeechAudioFormat **Format);
22234 
22235     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
22236         ISpeechRecoResult* This,
22237         ISpeechPhraseInfo **PhraseInfo);
22238 
22239     HRESULT (STDMETHODCALLTYPE *Alternates)(
22240         ISpeechRecoResult* This,
22241         LONG RequestCount,
22242         LONG StartElement,
22243         LONG Elements,
22244         ISpeechPhraseAlternates **Alternates);
22245 
22246     HRESULT (STDMETHODCALLTYPE *Audio)(
22247         ISpeechRecoResult* This,
22248         LONG StartElement,
22249         LONG Elements,
22250         ISpeechMemoryStream **Stream);
22251 
22252     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
22253         ISpeechRecoResult* This,
22254         LONG StartElement,
22255         LONG Elements,
22256         SpeechVoiceSpeakFlags Flags,
22257         LONG *StreamNumber);
22258 
22259     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
22260         ISpeechRecoResult* This,
22261         VARIANT *ResultBlock);
22262 
22263     HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
22264         ISpeechRecoResult* This,
22265         SpeechDiscardType ValueTypes);
22266 
22267     END_INTERFACE
22268 } ISpeechRecoResultVtbl;
22269 interface ISpeechRecoResult {
22270     CONST_VTBL ISpeechRecoResultVtbl* lpVtbl;
22271 };
22272 
22273 #ifdef COBJMACROS
22274 #ifndef WIDL_C_INLINE_WRAPPERS
22275 /*** IUnknown methods ***/
22276 #define ISpeechRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22277 #define ISpeechRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
22278 #define ISpeechRecoResult_Release(This) (This)->lpVtbl->Release(This)
22279 /*** IDispatch methods ***/
22280 #define ISpeechRecoResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22281 #define ISpeechRecoResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22282 #define ISpeechRecoResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22283 #define ISpeechRecoResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22284 /*** ISpeechRecoResult methods ***/
22285 #define ISpeechRecoResult_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
22286 #define ISpeechRecoResult_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
22287 #define ISpeechRecoResult_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
22288 #define ISpeechRecoResult_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
22289 #define ISpeechRecoResult_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
22290 #define ISpeechRecoResult_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
22291 #define ISpeechRecoResult_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
22292 #define ISpeechRecoResult_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
22293 #define ISpeechRecoResult_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
22294 #define ISpeechRecoResult_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
22295 #else
22296 /*** IUnknown methods ***/
22297 static FORCEINLINE HRESULT ISpeechRecoResult_QueryInterface(ISpeechRecoResult* This,REFIID riid,void **ppvObject) {
22298     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22299 }
22300 static FORCEINLINE ULONG ISpeechRecoResult_AddRef(ISpeechRecoResult* This) {
22301     return This->lpVtbl->AddRef(This);
22302 }
22303 static FORCEINLINE ULONG ISpeechRecoResult_Release(ISpeechRecoResult* This) {
22304     return This->lpVtbl->Release(This);
22305 }
22306 /*** IDispatch methods ***/
22307 static FORCEINLINE HRESULT ISpeechRecoResult_GetTypeInfoCount(ISpeechRecoResult* This,UINT *pctinfo) {
22308     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22309 }
22310 static FORCEINLINE HRESULT ISpeechRecoResult_GetTypeInfo(ISpeechRecoResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22311     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22312 }
22313 static FORCEINLINE HRESULT ISpeechRecoResult_GetIDsOfNames(ISpeechRecoResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22314     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22315 }
22316 static FORCEINLINE HRESULT ISpeechRecoResult_Invoke(ISpeechRecoResult* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22317     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22318 }
22319 /*** ISpeechRecoResult methods ***/
22320 static FORCEINLINE HRESULT ISpeechRecoResult_get_RecoContext(ISpeechRecoResult* This,ISpeechRecoContext **RecoContext) {
22321     return This->lpVtbl->get_RecoContext(This,RecoContext);
22322 }
22323 static FORCEINLINE HRESULT ISpeechRecoResult_get_Times(ISpeechRecoResult* This,ISpeechRecoResultTimes **Times) {
22324     return This->lpVtbl->get_Times(This,Times);
22325 }
22326 static FORCEINLINE HRESULT ISpeechRecoResult_putref_AudioFormat(ISpeechRecoResult* This,ISpeechAudioFormat *Format) {
22327     return This->lpVtbl->putref_AudioFormat(This,Format);
22328 }
22329 static FORCEINLINE HRESULT ISpeechRecoResult_get_AudioFormat(ISpeechRecoResult* This,ISpeechAudioFormat **Format) {
22330     return This->lpVtbl->get_AudioFormat(This,Format);
22331 }
22332 static FORCEINLINE HRESULT ISpeechRecoResult_get_PhraseInfo(ISpeechRecoResult* This,ISpeechPhraseInfo **PhraseInfo) {
22333     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
22334 }
22335 static FORCEINLINE HRESULT ISpeechRecoResult_Alternates(ISpeechRecoResult* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
22336     return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
22337 }
22338 static FORCEINLINE HRESULT ISpeechRecoResult_Audio(ISpeechRecoResult* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
22339     return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
22340 }
22341 static FORCEINLINE HRESULT ISpeechRecoResult_SpeakAudio(ISpeechRecoResult* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
22342     return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
22343 }
22344 static FORCEINLINE HRESULT ISpeechRecoResult_SaveToMemory(ISpeechRecoResult* This,VARIANT *ResultBlock) {
22345     return This->lpVtbl->SaveToMemory(This,ResultBlock);
22346 }
22347 static FORCEINLINE HRESULT ISpeechRecoResult_DiscardResultInfo(ISpeechRecoResult* This,SpeechDiscardType ValueTypes) {
22348     return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
22349 }
22350 #endif
22351 #endif
22352 
22353 #endif
22354 
22355 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_get_RecoContext_Proxy(
22356     ISpeechRecoResult* This,
22357     ISpeechRecoContext **RecoContext);
22358 void __RPC_STUB ISpeechRecoResult_get_RecoContext_Stub(
22359     IRpcStubBuffer* This,
22360     IRpcChannelBuffer* pRpcChannelBuffer,
22361     PRPC_MESSAGE pRpcMessage,
22362     DWORD* pdwStubPhase);
22363 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_get_Times_Proxy(
22364     ISpeechRecoResult* This,
22365     ISpeechRecoResultTimes **Times);
22366 void __RPC_STUB ISpeechRecoResult_get_Times_Stub(
22367     IRpcStubBuffer* This,
22368     IRpcChannelBuffer* pRpcChannelBuffer,
22369     PRPC_MESSAGE pRpcMessage,
22370     DWORD* pdwStubPhase);
22371 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_putref_AudioFormat_Proxy(
22372     ISpeechRecoResult* This,
22373     ISpeechAudioFormat *Format);
22374 void __RPC_STUB ISpeechRecoResult_putref_AudioFormat_Stub(
22375     IRpcStubBuffer* This,
22376     IRpcChannelBuffer* pRpcChannelBuffer,
22377     PRPC_MESSAGE pRpcMessage,
22378     DWORD* pdwStubPhase);
22379 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_get_AudioFormat_Proxy(
22380     ISpeechRecoResult* This,
22381     ISpeechAudioFormat **Format);
22382 void __RPC_STUB ISpeechRecoResult_get_AudioFormat_Stub(
22383     IRpcStubBuffer* This,
22384     IRpcChannelBuffer* pRpcChannelBuffer,
22385     PRPC_MESSAGE pRpcMessage,
22386     DWORD* pdwStubPhase);
22387 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_get_PhraseInfo_Proxy(
22388     ISpeechRecoResult* This,
22389     ISpeechPhraseInfo **PhraseInfo);
22390 void __RPC_STUB ISpeechRecoResult_get_PhraseInfo_Stub(
22391     IRpcStubBuffer* This,
22392     IRpcChannelBuffer* pRpcChannelBuffer,
22393     PRPC_MESSAGE pRpcMessage,
22394     DWORD* pdwStubPhase);
22395 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_Alternates_Proxy(
22396     ISpeechRecoResult* This,
22397     LONG RequestCount,
22398     LONG StartElement,
22399     LONG Elements,
22400     ISpeechPhraseAlternates **Alternates);
22401 void __RPC_STUB ISpeechRecoResult_Alternates_Stub(
22402     IRpcStubBuffer* This,
22403     IRpcChannelBuffer* pRpcChannelBuffer,
22404     PRPC_MESSAGE pRpcMessage,
22405     DWORD* pdwStubPhase);
22406 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_Audio_Proxy(
22407     ISpeechRecoResult* This,
22408     LONG StartElement,
22409     LONG Elements,
22410     ISpeechMemoryStream **Stream);
22411 void __RPC_STUB ISpeechRecoResult_Audio_Stub(
22412     IRpcStubBuffer* This,
22413     IRpcChannelBuffer* pRpcChannelBuffer,
22414     PRPC_MESSAGE pRpcMessage,
22415     DWORD* pdwStubPhase);
22416 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_SpeakAudio_Proxy(
22417     ISpeechRecoResult* This,
22418     LONG StartElement,
22419     LONG Elements,
22420     SpeechVoiceSpeakFlags Flags,
22421     LONG *StreamNumber);
22422 void __RPC_STUB ISpeechRecoResult_SpeakAudio_Stub(
22423     IRpcStubBuffer* This,
22424     IRpcChannelBuffer* pRpcChannelBuffer,
22425     PRPC_MESSAGE pRpcMessage,
22426     DWORD* pdwStubPhase);
22427 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_SaveToMemory_Proxy(
22428     ISpeechRecoResult* This,
22429     VARIANT *ResultBlock);
22430 void __RPC_STUB ISpeechRecoResult_SaveToMemory_Stub(
22431     IRpcStubBuffer* This,
22432     IRpcChannelBuffer* pRpcChannelBuffer,
22433     PRPC_MESSAGE pRpcMessage,
22434     DWORD* pdwStubPhase);
22435 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_DiscardResultInfo_Proxy(
22436     ISpeechRecoResult* This,
22437     SpeechDiscardType ValueTypes);
22438 void __RPC_STUB ISpeechRecoResult_DiscardResultInfo_Stub(
22439     IRpcStubBuffer* This,
22440     IRpcChannelBuffer* pRpcChannelBuffer,
22441     PRPC_MESSAGE pRpcMessage,
22442     DWORD* pdwStubPhase);
22443 
22444 #endif  /* __ISpeechRecoResult_INTERFACE_DEFINED__ */
22445 
22446 /*****************************************************************************
22447  * ISpeechXMLRecoResult interface
22448  */
22449 #ifndef __ISpeechXMLRecoResult_INTERFACE_DEFINED__
22450 #define __ISpeechXMLRecoResult_INTERFACE_DEFINED__
22451 
22452 DEFINE_GUID(IID_ISpeechXMLRecoResult, 0xaaec54af, 0x8f85, 0x4924, 0x94,0x4d, 0xb7,0x9d,0x39,0xd7,0x2e,0x19);
22453 #if defined(__cplusplus) && !defined(CINTERFACE)
22454 MIDL_INTERFACE("aaec54af-8f85-4924-944d-b79d39d72e19")
22455 ISpeechXMLRecoResult : public ISpeechRecoResult
22456 {
22457     virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
22458         SPXMLRESULTOPTIONS Options,
22459         BSTR *pResult) = 0;
22460 
22461     virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
22462         LONG *LineNumber,
22463         BSTR *ScriptLine,
22464         BSTR *Source,
22465         BSTR *Description,
22466         LONG *ResultCode,
22467         VARIANT_BOOL *IsError) = 0;
22468 
22469 };
22470 #ifdef __CRT_UUID_DECL
22471 __CRT_UUID_DECL(ISpeechXMLRecoResult, 0xaaec54af, 0x8f85, 0x4924, 0x94,0x4d, 0xb7,0x9d,0x39,0xd7,0x2e,0x19)
22472 #endif
22473 #else
22474 typedef struct ISpeechXMLRecoResultVtbl {
22475     BEGIN_INTERFACE
22476 
22477     /*** IUnknown methods ***/
22478     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22479         ISpeechXMLRecoResult* This,
22480         REFIID riid,
22481         void **ppvObject);
22482 
22483     ULONG (STDMETHODCALLTYPE *AddRef)(
22484         ISpeechXMLRecoResult* This);
22485 
22486     ULONG (STDMETHODCALLTYPE *Release)(
22487         ISpeechXMLRecoResult* This);
22488 
22489     /*** IDispatch methods ***/
22490     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
22491         ISpeechXMLRecoResult* This,
22492         UINT *pctinfo);
22493 
22494     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
22495         ISpeechXMLRecoResult* This,
22496         UINT iTInfo,
22497         LCID lcid,
22498         ITypeInfo **ppTInfo);
22499 
22500     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
22501         ISpeechXMLRecoResult* This,
22502         REFIID riid,
22503         LPOLESTR *rgszNames,
22504         UINT cNames,
22505         LCID lcid,
22506         DISPID *rgDispId);
22507 
22508     HRESULT (STDMETHODCALLTYPE *Invoke)(
22509         ISpeechXMLRecoResult* This,
22510         DISPID dispIdMember,
22511         REFIID riid,
22512         LCID lcid,
22513         WORD wFlags,
22514         DISPPARAMS *pDispParams,
22515         VARIANT *pVarResult,
22516         EXCEPINFO *pExcepInfo,
22517         UINT *puArgErr);
22518 
22519     /*** ISpeechRecoResult methods ***/
22520     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
22521         ISpeechXMLRecoResult* This,
22522         ISpeechRecoContext **RecoContext);
22523 
22524     HRESULT (STDMETHODCALLTYPE *get_Times)(
22525         ISpeechXMLRecoResult* This,
22526         ISpeechRecoResultTimes **Times);
22527 
22528     HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
22529         ISpeechXMLRecoResult* This,
22530         ISpeechAudioFormat *Format);
22531 
22532     HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
22533         ISpeechXMLRecoResult* This,
22534         ISpeechAudioFormat **Format);
22535 
22536     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
22537         ISpeechXMLRecoResult* This,
22538         ISpeechPhraseInfo **PhraseInfo);
22539 
22540     HRESULT (STDMETHODCALLTYPE *Alternates)(
22541         ISpeechXMLRecoResult* This,
22542         LONG RequestCount,
22543         LONG StartElement,
22544         LONG Elements,
22545         ISpeechPhraseAlternates **Alternates);
22546 
22547     HRESULT (STDMETHODCALLTYPE *Audio)(
22548         ISpeechXMLRecoResult* This,
22549         LONG StartElement,
22550         LONG Elements,
22551         ISpeechMemoryStream **Stream);
22552 
22553     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
22554         ISpeechXMLRecoResult* This,
22555         LONG StartElement,
22556         LONG Elements,
22557         SpeechVoiceSpeakFlags Flags,
22558         LONG *StreamNumber);
22559 
22560     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
22561         ISpeechXMLRecoResult* This,
22562         VARIANT *ResultBlock);
22563 
22564     HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
22565         ISpeechXMLRecoResult* This,
22566         SpeechDiscardType ValueTypes);
22567 
22568     /*** ISpeechXMLRecoResult methods ***/
22569     HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
22570         ISpeechXMLRecoResult* This,
22571         SPXMLRESULTOPTIONS Options,
22572         BSTR *pResult);
22573 
22574     HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
22575         ISpeechXMLRecoResult* This,
22576         LONG *LineNumber,
22577         BSTR *ScriptLine,
22578         BSTR *Source,
22579         BSTR *Description,
22580         LONG *ResultCode,
22581         VARIANT_BOOL *IsError);
22582 
22583     END_INTERFACE
22584 } ISpeechXMLRecoResultVtbl;
22585 interface ISpeechXMLRecoResult {
22586     CONST_VTBL ISpeechXMLRecoResultVtbl* lpVtbl;
22587 };
22588 
22589 #ifdef COBJMACROS
22590 #ifndef WIDL_C_INLINE_WRAPPERS
22591 /*** IUnknown methods ***/
22592 #define ISpeechXMLRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22593 #define ISpeechXMLRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
22594 #define ISpeechXMLRecoResult_Release(This) (This)->lpVtbl->Release(This)
22595 /*** IDispatch methods ***/
22596 #define ISpeechXMLRecoResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22597 #define ISpeechXMLRecoResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22598 #define ISpeechXMLRecoResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22599 #define ISpeechXMLRecoResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22600 /*** ISpeechRecoResult methods ***/
22601 #define ISpeechXMLRecoResult_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
22602 #define ISpeechXMLRecoResult_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
22603 #define ISpeechXMLRecoResult_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
22604 #define ISpeechXMLRecoResult_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
22605 #define ISpeechXMLRecoResult_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
22606 #define ISpeechXMLRecoResult_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
22607 #define ISpeechXMLRecoResult_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
22608 #define ISpeechXMLRecoResult_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
22609 #define ISpeechXMLRecoResult_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
22610 #define ISpeechXMLRecoResult_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
22611 /*** ISpeechXMLRecoResult methods ***/
22612 #define ISpeechXMLRecoResult_GetXMLResult(This,Options,pResult) (This)->lpVtbl->GetXMLResult(This,Options,pResult)
22613 #define ISpeechXMLRecoResult_GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError) (This)->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError)
22614 #else
22615 /*** IUnknown methods ***/
22616 static FORCEINLINE HRESULT ISpeechXMLRecoResult_QueryInterface(ISpeechXMLRecoResult* This,REFIID riid,void **ppvObject) {
22617     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22618 }
22619 static FORCEINLINE ULONG ISpeechXMLRecoResult_AddRef(ISpeechXMLRecoResult* This) {
22620     return This->lpVtbl->AddRef(This);
22621 }
22622 static FORCEINLINE ULONG ISpeechXMLRecoResult_Release(ISpeechXMLRecoResult* This) {
22623     return This->lpVtbl->Release(This);
22624 }
22625 /*** IDispatch methods ***/
22626 static FORCEINLINE HRESULT ISpeechXMLRecoResult_GetTypeInfoCount(ISpeechXMLRecoResult* This,UINT *pctinfo) {
22627     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22628 }
22629 static FORCEINLINE HRESULT ISpeechXMLRecoResult_GetTypeInfo(ISpeechXMLRecoResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22630     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22631 }
22632 static FORCEINLINE HRESULT ISpeechXMLRecoResult_GetIDsOfNames(ISpeechXMLRecoResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22633     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22634 }
22635 static FORCEINLINE HRESULT ISpeechXMLRecoResult_Invoke(ISpeechXMLRecoResult* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22636     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22637 }
22638 /*** ISpeechRecoResult methods ***/
22639 static FORCEINLINE HRESULT ISpeechXMLRecoResult_get_RecoContext(ISpeechXMLRecoResult* This,ISpeechRecoContext **RecoContext) {
22640     return This->lpVtbl->get_RecoContext(This,RecoContext);
22641 }
22642 static FORCEINLINE HRESULT ISpeechXMLRecoResult_get_Times(ISpeechXMLRecoResult* This,ISpeechRecoResultTimes **Times) {
22643     return This->lpVtbl->get_Times(This,Times);
22644 }
22645 static FORCEINLINE HRESULT ISpeechXMLRecoResult_putref_AudioFormat(ISpeechXMLRecoResult* This,ISpeechAudioFormat *Format) {
22646     return This->lpVtbl->putref_AudioFormat(This,Format);
22647 }
22648 static FORCEINLINE HRESULT ISpeechXMLRecoResult_get_AudioFormat(ISpeechXMLRecoResult* This,ISpeechAudioFormat **Format) {
22649     return This->lpVtbl->get_AudioFormat(This,Format);
22650 }
22651 static FORCEINLINE HRESULT ISpeechXMLRecoResult_get_PhraseInfo(ISpeechXMLRecoResult* This,ISpeechPhraseInfo **PhraseInfo) {
22652     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
22653 }
22654 static FORCEINLINE HRESULT ISpeechXMLRecoResult_Alternates(ISpeechXMLRecoResult* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
22655     return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
22656 }
22657 static FORCEINLINE HRESULT ISpeechXMLRecoResult_Audio(ISpeechXMLRecoResult* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
22658     return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
22659 }
22660 static FORCEINLINE HRESULT ISpeechXMLRecoResult_SpeakAudio(ISpeechXMLRecoResult* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
22661     return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
22662 }
22663 static FORCEINLINE HRESULT ISpeechXMLRecoResult_SaveToMemory(ISpeechXMLRecoResult* This,VARIANT *ResultBlock) {
22664     return This->lpVtbl->SaveToMemory(This,ResultBlock);
22665 }
22666 static FORCEINLINE HRESULT ISpeechXMLRecoResult_DiscardResultInfo(ISpeechXMLRecoResult* This,SpeechDiscardType ValueTypes) {
22667     return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
22668 }
22669 /*** ISpeechXMLRecoResult methods ***/
22670 static FORCEINLINE HRESULT ISpeechXMLRecoResult_GetXMLResult(ISpeechXMLRecoResult* This,SPXMLRESULTOPTIONS Options,BSTR *pResult) {
22671     return This->lpVtbl->GetXMLResult(This,Options,pResult);
22672 }
22673 static FORCEINLINE HRESULT ISpeechXMLRecoResult_GetXMLErrorInfo(ISpeechXMLRecoResult* This,LONG *LineNumber,BSTR *ScriptLine,BSTR *Source,BSTR *Description,LONG *ResultCode,VARIANT_BOOL *IsError) {
22674     return This->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError);
22675 }
22676 #endif
22677 #endif
22678 
22679 #endif
22680 
22681 HRESULT STDMETHODCALLTYPE ISpeechXMLRecoResult_GetXMLResult_Proxy(
22682     ISpeechXMLRecoResult* This,
22683     SPXMLRESULTOPTIONS Options,
22684     BSTR *pResult);
22685 void __RPC_STUB ISpeechXMLRecoResult_GetXMLResult_Stub(
22686     IRpcStubBuffer* This,
22687     IRpcChannelBuffer* pRpcChannelBuffer,
22688     PRPC_MESSAGE pRpcMessage,
22689     DWORD* pdwStubPhase);
22690 HRESULT STDMETHODCALLTYPE ISpeechXMLRecoResult_GetXMLErrorInfo_Proxy(
22691     ISpeechXMLRecoResult* This,
22692     LONG *LineNumber,
22693     BSTR *ScriptLine,
22694     BSTR *Source,
22695     BSTR *Description,
22696     LONG *ResultCode,
22697     VARIANT_BOOL *IsError);
22698 void __RPC_STUB ISpeechXMLRecoResult_GetXMLErrorInfo_Stub(
22699     IRpcStubBuffer* This,
22700     IRpcChannelBuffer* pRpcChannelBuffer,
22701     PRPC_MESSAGE pRpcMessage,
22702     DWORD* pdwStubPhase);
22703 
22704 #endif  /* __ISpeechXMLRecoResult_INTERFACE_DEFINED__ */
22705 
22706 /*****************************************************************************
22707  * ISpeechRecoResult2 interface
22708  */
22709 #ifndef __ISpeechRecoResult2_INTERFACE_DEFINED__
22710 #define __ISpeechRecoResult2_INTERFACE_DEFINED__
22711 
22712 DEFINE_GUID(IID_ISpeechRecoResult2, 0x8e0a246d, 0xd3c8, 0x45de, 0x86,0x57, 0x04,0x29,0x0c,0x45,0x8c,0x3c);
22713 #if defined(__cplusplus) && !defined(CINTERFACE)
22714 MIDL_INTERFACE("8e0a246d-d3c8-45de-8657-04290c458c3c")
22715 ISpeechRecoResult2 : public ISpeechRecoResult
22716 {
22717     virtual HRESULT STDMETHODCALLTYPE SetTextFeedback(
22718         BSTR Feedback,
22719         VARIANT_BOOL WasSuccessful) = 0;
22720 
22721 };
22722 #ifdef __CRT_UUID_DECL
22723 __CRT_UUID_DECL(ISpeechRecoResult2, 0x8e0a246d, 0xd3c8, 0x45de, 0x86,0x57, 0x04,0x29,0x0c,0x45,0x8c,0x3c)
22724 #endif
22725 #else
22726 typedef struct ISpeechRecoResult2Vtbl {
22727     BEGIN_INTERFACE
22728 
22729     /*** IUnknown methods ***/
22730     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22731         ISpeechRecoResult2* This,
22732         REFIID riid,
22733         void **ppvObject);
22734 
22735     ULONG (STDMETHODCALLTYPE *AddRef)(
22736         ISpeechRecoResult2* This);
22737 
22738     ULONG (STDMETHODCALLTYPE *Release)(
22739         ISpeechRecoResult2* This);
22740 
22741     /*** IDispatch methods ***/
22742     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
22743         ISpeechRecoResult2* This,
22744         UINT *pctinfo);
22745 
22746     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
22747         ISpeechRecoResult2* This,
22748         UINT iTInfo,
22749         LCID lcid,
22750         ITypeInfo **ppTInfo);
22751 
22752     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
22753         ISpeechRecoResult2* This,
22754         REFIID riid,
22755         LPOLESTR *rgszNames,
22756         UINT cNames,
22757         LCID lcid,
22758         DISPID *rgDispId);
22759 
22760     HRESULT (STDMETHODCALLTYPE *Invoke)(
22761         ISpeechRecoResult2* This,
22762         DISPID dispIdMember,
22763         REFIID riid,
22764         LCID lcid,
22765         WORD wFlags,
22766         DISPPARAMS *pDispParams,
22767         VARIANT *pVarResult,
22768         EXCEPINFO *pExcepInfo,
22769         UINT *puArgErr);
22770 
22771     /*** ISpeechRecoResult methods ***/
22772     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
22773         ISpeechRecoResult2* This,
22774         ISpeechRecoContext **RecoContext);
22775 
22776     HRESULT (STDMETHODCALLTYPE *get_Times)(
22777         ISpeechRecoResult2* This,
22778         ISpeechRecoResultTimes **Times);
22779 
22780     HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
22781         ISpeechRecoResult2* This,
22782         ISpeechAudioFormat *Format);
22783 
22784     HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
22785         ISpeechRecoResult2* This,
22786         ISpeechAudioFormat **Format);
22787 
22788     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
22789         ISpeechRecoResult2* This,
22790         ISpeechPhraseInfo **PhraseInfo);
22791 
22792     HRESULT (STDMETHODCALLTYPE *Alternates)(
22793         ISpeechRecoResult2* This,
22794         LONG RequestCount,
22795         LONG StartElement,
22796         LONG Elements,
22797         ISpeechPhraseAlternates **Alternates);
22798 
22799     HRESULT (STDMETHODCALLTYPE *Audio)(
22800         ISpeechRecoResult2* This,
22801         LONG StartElement,
22802         LONG Elements,
22803         ISpeechMemoryStream **Stream);
22804 
22805     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
22806         ISpeechRecoResult2* This,
22807         LONG StartElement,
22808         LONG Elements,
22809         SpeechVoiceSpeakFlags Flags,
22810         LONG *StreamNumber);
22811 
22812     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
22813         ISpeechRecoResult2* This,
22814         VARIANT *ResultBlock);
22815 
22816     HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
22817         ISpeechRecoResult2* This,
22818         SpeechDiscardType ValueTypes);
22819 
22820     /*** ISpeechRecoResult2 methods ***/
22821     HRESULT (STDMETHODCALLTYPE *SetTextFeedback)(
22822         ISpeechRecoResult2* This,
22823         BSTR Feedback,
22824         VARIANT_BOOL WasSuccessful);
22825 
22826     END_INTERFACE
22827 } ISpeechRecoResult2Vtbl;
22828 interface ISpeechRecoResult2 {
22829     CONST_VTBL ISpeechRecoResult2Vtbl* lpVtbl;
22830 };
22831 
22832 #ifdef COBJMACROS
22833 #ifndef WIDL_C_INLINE_WRAPPERS
22834 /*** IUnknown methods ***/
22835 #define ISpeechRecoResult2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22836 #define ISpeechRecoResult2_AddRef(This) (This)->lpVtbl->AddRef(This)
22837 #define ISpeechRecoResult2_Release(This) (This)->lpVtbl->Release(This)
22838 /*** IDispatch methods ***/
22839 #define ISpeechRecoResult2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22840 #define ISpeechRecoResult2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22841 #define ISpeechRecoResult2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22842 #define ISpeechRecoResult2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22843 /*** ISpeechRecoResult methods ***/
22844 #define ISpeechRecoResult2_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
22845 #define ISpeechRecoResult2_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
22846 #define ISpeechRecoResult2_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
22847 #define ISpeechRecoResult2_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
22848 #define ISpeechRecoResult2_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
22849 #define ISpeechRecoResult2_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
22850 #define ISpeechRecoResult2_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
22851 #define ISpeechRecoResult2_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
22852 #define ISpeechRecoResult2_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
22853 #define ISpeechRecoResult2_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
22854 /*** ISpeechRecoResult2 methods ***/
22855 #define ISpeechRecoResult2_SetTextFeedback(This,Feedback,WasSuccessful) (This)->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful)
22856 #else
22857 /*** IUnknown methods ***/
22858 static FORCEINLINE HRESULT ISpeechRecoResult2_QueryInterface(ISpeechRecoResult2* This,REFIID riid,void **ppvObject) {
22859     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22860 }
22861 static FORCEINLINE ULONG ISpeechRecoResult2_AddRef(ISpeechRecoResult2* This) {
22862     return This->lpVtbl->AddRef(This);
22863 }
22864 static FORCEINLINE ULONG ISpeechRecoResult2_Release(ISpeechRecoResult2* This) {
22865     return This->lpVtbl->Release(This);
22866 }
22867 /*** IDispatch methods ***/
22868 static FORCEINLINE HRESULT ISpeechRecoResult2_GetTypeInfoCount(ISpeechRecoResult2* This,UINT *pctinfo) {
22869     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22870 }
22871 static FORCEINLINE HRESULT ISpeechRecoResult2_GetTypeInfo(ISpeechRecoResult2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22872     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22873 }
22874 static FORCEINLINE HRESULT ISpeechRecoResult2_GetIDsOfNames(ISpeechRecoResult2* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22875     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22876 }
22877 static FORCEINLINE HRESULT ISpeechRecoResult2_Invoke(ISpeechRecoResult2* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22878     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22879 }
22880 /*** ISpeechRecoResult methods ***/
22881 static FORCEINLINE HRESULT ISpeechRecoResult2_get_RecoContext(ISpeechRecoResult2* This,ISpeechRecoContext **RecoContext) {
22882     return This->lpVtbl->get_RecoContext(This,RecoContext);
22883 }
22884 static FORCEINLINE HRESULT ISpeechRecoResult2_get_Times(ISpeechRecoResult2* This,ISpeechRecoResultTimes **Times) {
22885     return This->lpVtbl->get_Times(This,Times);
22886 }
22887 static FORCEINLINE HRESULT ISpeechRecoResult2_putref_AudioFormat(ISpeechRecoResult2* This,ISpeechAudioFormat *Format) {
22888     return This->lpVtbl->putref_AudioFormat(This,Format);
22889 }
22890 static FORCEINLINE HRESULT ISpeechRecoResult2_get_AudioFormat(ISpeechRecoResult2* This,ISpeechAudioFormat **Format) {
22891     return This->lpVtbl->get_AudioFormat(This,Format);
22892 }
22893 static FORCEINLINE HRESULT ISpeechRecoResult2_get_PhraseInfo(ISpeechRecoResult2* This,ISpeechPhraseInfo **PhraseInfo) {
22894     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
22895 }
22896 static FORCEINLINE HRESULT ISpeechRecoResult2_Alternates(ISpeechRecoResult2* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
22897     return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
22898 }
22899 static FORCEINLINE HRESULT ISpeechRecoResult2_Audio(ISpeechRecoResult2* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
22900     return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
22901 }
22902 static FORCEINLINE HRESULT ISpeechRecoResult2_SpeakAudio(ISpeechRecoResult2* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
22903     return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
22904 }
22905 static FORCEINLINE HRESULT ISpeechRecoResult2_SaveToMemory(ISpeechRecoResult2* This,VARIANT *ResultBlock) {
22906     return This->lpVtbl->SaveToMemory(This,ResultBlock);
22907 }
22908 static FORCEINLINE HRESULT ISpeechRecoResult2_DiscardResultInfo(ISpeechRecoResult2* This,SpeechDiscardType ValueTypes) {
22909     return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
22910 }
22911 /*** ISpeechRecoResult2 methods ***/
22912 static FORCEINLINE HRESULT ISpeechRecoResult2_SetTextFeedback(ISpeechRecoResult2* This,BSTR Feedback,VARIANT_BOOL WasSuccessful) {
22913     return This->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful);
22914 }
22915 #endif
22916 #endif
22917 
22918 #endif
22919 
22920 HRESULT STDMETHODCALLTYPE ISpeechRecoResult2_SetTextFeedback_Proxy(
22921     ISpeechRecoResult2* This,
22922     BSTR Feedback,
22923     VARIANT_BOOL WasSuccessful);
22924 void __RPC_STUB ISpeechRecoResult2_SetTextFeedback_Stub(
22925     IRpcStubBuffer* This,
22926     IRpcChannelBuffer* pRpcChannelBuffer,
22927     PRPC_MESSAGE pRpcMessage,
22928     DWORD* pdwStubPhase);
22929 
22930 #endif  /* __ISpeechRecoResult2_INTERFACE_DEFINED__ */
22931 
22932 /*****************************************************************************
22933  * ISpeechRecoResultDispatch interface
22934  */
22935 #ifndef __ISpeechRecoResultDispatch_INTERFACE_DEFINED__
22936 #define __ISpeechRecoResultDispatch_INTERFACE_DEFINED__
22937 
22938 DEFINE_GUID(IID_ISpeechRecoResultDispatch, 0x6d60eb64, 0xaced, 0x40a6, 0xbb,0xf3, 0x4e,0x55,0x7f,0x71,0xde,0xe2);
22939 #if defined(__cplusplus) && !defined(CINTERFACE)
22940 MIDL_INTERFACE("6d60eb64-aced-40a6-bbf3-4e557f71dee2")
22941 ISpeechRecoResultDispatch : public IDispatch
22942 {
22943     virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
22944         ISpeechRecoContext **RecoContext) = 0;
22945 
22946     virtual HRESULT STDMETHODCALLTYPE get_Times(
22947         ISpeechRecoResultTimes **Times) = 0;
22948 
22949     virtual HRESULT STDMETHODCALLTYPE putref_AudioFormat(
22950         ISpeechAudioFormat *Format) = 0;
22951 
22952     virtual HRESULT STDMETHODCALLTYPE get_AudioFormat(
22953         ISpeechAudioFormat **Format) = 0;
22954 
22955     virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
22956         ISpeechPhraseInfo **PhraseInfo) = 0;
22957 
22958     virtual HRESULT STDMETHODCALLTYPE Alternates(
22959         LONG RequestCount,
22960         LONG StartElement,
22961         LONG Elements,
22962         ISpeechPhraseAlternates **Alternates) = 0;
22963 
22964     virtual HRESULT STDMETHODCALLTYPE Audio(
22965         LONG StartElement,
22966         LONG Elements,
22967         ISpeechMemoryStream **Stream) = 0;
22968 
22969     virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
22970         LONG StartElement,
22971         LONG Elements,
22972         SpeechVoiceSpeakFlags Flags,
22973         LONG *StreamNumber) = 0;
22974 
22975     virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
22976         VARIANT *ResultBlock) = 0;
22977 
22978     virtual HRESULT STDMETHODCALLTYPE DiscardResultInfo(
22979         SpeechDiscardType ValueTypes) = 0;
22980 
22981     virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
22982         SPXMLRESULTOPTIONS Options,
22983         BSTR *pResult) = 0;
22984 
22985     virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
22986         LONG *LineNumber,
22987         BSTR *ScriptLine,
22988         BSTR *Source,
22989         BSTR *Description,
22990         HRESULT *ResultCode,
22991         VARIANT_BOOL *IsError) = 0;
22992 
22993     virtual HRESULT STDMETHODCALLTYPE SetTextFeedback(
22994         BSTR Feedback,
22995         VARIANT_BOOL WasSuccessful) = 0;
22996 
22997 };
22998 #ifdef __CRT_UUID_DECL
22999 __CRT_UUID_DECL(ISpeechRecoResultDispatch, 0x6d60eb64, 0xaced, 0x40a6, 0xbb,0xf3, 0x4e,0x55,0x7f,0x71,0xde,0xe2)
23000 #endif
23001 #else
23002 typedef struct ISpeechRecoResultDispatchVtbl {
23003     BEGIN_INTERFACE
23004 
23005     /*** IUnknown methods ***/
23006     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23007         ISpeechRecoResultDispatch* This,
23008         REFIID riid,
23009         void **ppvObject);
23010 
23011     ULONG (STDMETHODCALLTYPE *AddRef)(
23012         ISpeechRecoResultDispatch* This);
23013 
23014     ULONG (STDMETHODCALLTYPE *Release)(
23015         ISpeechRecoResultDispatch* This);
23016 
23017     /*** IDispatch methods ***/
23018     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
23019         ISpeechRecoResultDispatch* This,
23020         UINT *pctinfo);
23021 
23022     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
23023         ISpeechRecoResultDispatch* This,
23024         UINT iTInfo,
23025         LCID lcid,
23026         ITypeInfo **ppTInfo);
23027 
23028     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
23029         ISpeechRecoResultDispatch* This,
23030         REFIID riid,
23031         LPOLESTR *rgszNames,
23032         UINT cNames,
23033         LCID lcid,
23034         DISPID *rgDispId);
23035 
23036     HRESULT (STDMETHODCALLTYPE *Invoke)(
23037         ISpeechRecoResultDispatch* This,
23038         DISPID dispIdMember,
23039         REFIID riid,
23040         LCID lcid,
23041         WORD wFlags,
23042         DISPPARAMS *pDispParams,
23043         VARIANT *pVarResult,
23044         EXCEPINFO *pExcepInfo,
23045         UINT *puArgErr);
23046 
23047     /*** ISpeechRecoResultDispatch methods ***/
23048     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
23049         ISpeechRecoResultDispatch* This,
23050         ISpeechRecoContext **RecoContext);
23051 
23052     HRESULT (STDMETHODCALLTYPE *get_Times)(
23053         ISpeechRecoResultDispatch* This,
23054         ISpeechRecoResultTimes **Times);
23055 
23056     HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
23057         ISpeechRecoResultDispatch* This,
23058         ISpeechAudioFormat *Format);
23059 
23060     HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
23061         ISpeechRecoResultDispatch* This,
23062         ISpeechAudioFormat **Format);
23063 
23064     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
23065         ISpeechRecoResultDispatch* This,
23066         ISpeechPhraseInfo **PhraseInfo);
23067 
23068     HRESULT (STDMETHODCALLTYPE *Alternates)(
23069         ISpeechRecoResultDispatch* This,
23070         LONG RequestCount,
23071         LONG StartElement,
23072         LONG Elements,
23073         ISpeechPhraseAlternates **Alternates);
23074 
23075     HRESULT (STDMETHODCALLTYPE *Audio)(
23076         ISpeechRecoResultDispatch* This,
23077         LONG StartElement,
23078         LONG Elements,
23079         ISpeechMemoryStream **Stream);
23080 
23081     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
23082         ISpeechRecoResultDispatch* This,
23083         LONG StartElement,
23084         LONG Elements,
23085         SpeechVoiceSpeakFlags Flags,
23086         LONG *StreamNumber);
23087 
23088     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
23089         ISpeechRecoResultDispatch* This,
23090         VARIANT *ResultBlock);
23091 
23092     HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
23093         ISpeechRecoResultDispatch* This,
23094         SpeechDiscardType ValueTypes);
23095 
23096     HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
23097         ISpeechRecoResultDispatch* This,
23098         SPXMLRESULTOPTIONS Options,
23099         BSTR *pResult);
23100 
23101     HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
23102         ISpeechRecoResultDispatch* This,
23103         LONG *LineNumber,
23104         BSTR *ScriptLine,
23105         BSTR *Source,
23106         BSTR *Description,
23107         HRESULT *ResultCode,
23108         VARIANT_BOOL *IsError);
23109 
23110     HRESULT (STDMETHODCALLTYPE *SetTextFeedback)(
23111         ISpeechRecoResultDispatch* This,
23112         BSTR Feedback,
23113         VARIANT_BOOL WasSuccessful);
23114 
23115     END_INTERFACE
23116 } ISpeechRecoResultDispatchVtbl;
23117 interface ISpeechRecoResultDispatch {
23118     CONST_VTBL ISpeechRecoResultDispatchVtbl* lpVtbl;
23119 };
23120 
23121 #ifdef COBJMACROS
23122 #ifndef WIDL_C_INLINE_WRAPPERS
23123 /*** IUnknown methods ***/
23124 #define ISpeechRecoResultDispatch_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23125 #define ISpeechRecoResultDispatch_AddRef(This) (This)->lpVtbl->AddRef(This)
23126 #define ISpeechRecoResultDispatch_Release(This) (This)->lpVtbl->Release(This)
23127 /*** IDispatch methods ***/
23128 #define ISpeechRecoResultDispatch_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
23129 #define ISpeechRecoResultDispatch_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
23130 #define ISpeechRecoResultDispatch_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
23131 #define ISpeechRecoResultDispatch_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
23132 /*** ISpeechRecoResultDispatch methods ***/
23133 #define ISpeechRecoResultDispatch_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
23134 #define ISpeechRecoResultDispatch_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
23135 #define ISpeechRecoResultDispatch_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
23136 #define ISpeechRecoResultDispatch_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
23137 #define ISpeechRecoResultDispatch_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
23138 #define ISpeechRecoResultDispatch_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
23139 #define ISpeechRecoResultDispatch_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
23140 #define ISpeechRecoResultDispatch_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
23141 #define ISpeechRecoResultDispatch_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
23142 #define ISpeechRecoResultDispatch_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
23143 #define ISpeechRecoResultDispatch_GetXMLResult(This,Options,pResult) (This)->lpVtbl->GetXMLResult(This,Options,pResult)
23144 #define ISpeechRecoResultDispatch_GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError) (This)->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError)
23145 #define ISpeechRecoResultDispatch_SetTextFeedback(This,Feedback,WasSuccessful) (This)->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful)
23146 #else
23147 /*** IUnknown methods ***/
23148 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_QueryInterface(ISpeechRecoResultDispatch* This,REFIID riid,void **ppvObject) {
23149     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23150 }
23151 static FORCEINLINE ULONG ISpeechRecoResultDispatch_AddRef(ISpeechRecoResultDispatch* This) {
23152     return This->lpVtbl->AddRef(This);
23153 }
23154 static FORCEINLINE ULONG ISpeechRecoResultDispatch_Release(ISpeechRecoResultDispatch* This) {
23155     return This->lpVtbl->Release(This);
23156 }
23157 /*** IDispatch methods ***/
23158 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_GetTypeInfoCount(ISpeechRecoResultDispatch* This,UINT *pctinfo) {
23159     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
23160 }
23161 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_GetTypeInfo(ISpeechRecoResultDispatch* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
23162     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
23163 }
23164 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_GetIDsOfNames(ISpeechRecoResultDispatch* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
23165     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
23166 }
23167 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_Invoke(ISpeechRecoResultDispatch* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
23168     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
23169 }
23170 /*** ISpeechRecoResultDispatch methods ***/
23171 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_get_RecoContext(ISpeechRecoResultDispatch* This,ISpeechRecoContext **RecoContext) {
23172     return This->lpVtbl->get_RecoContext(This,RecoContext);
23173 }
23174 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_get_Times(ISpeechRecoResultDispatch* This,ISpeechRecoResultTimes **Times) {
23175     return This->lpVtbl->get_Times(This,Times);
23176 }
23177 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_putref_AudioFormat(ISpeechRecoResultDispatch* This,ISpeechAudioFormat *Format) {
23178     return This->lpVtbl->putref_AudioFormat(This,Format);
23179 }
23180 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_get_AudioFormat(ISpeechRecoResultDispatch* This,ISpeechAudioFormat **Format) {
23181     return This->lpVtbl->get_AudioFormat(This,Format);
23182 }
23183 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_get_PhraseInfo(ISpeechRecoResultDispatch* This,ISpeechPhraseInfo **PhraseInfo) {
23184     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
23185 }
23186 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_Alternates(ISpeechRecoResultDispatch* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
23187     return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
23188 }
23189 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_Audio(ISpeechRecoResultDispatch* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
23190     return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
23191 }
23192 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_SpeakAudio(ISpeechRecoResultDispatch* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
23193     return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
23194 }
23195 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_SaveToMemory(ISpeechRecoResultDispatch* This,VARIANT *ResultBlock) {
23196     return This->lpVtbl->SaveToMemory(This,ResultBlock);
23197 }
23198 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_DiscardResultInfo(ISpeechRecoResultDispatch* This,SpeechDiscardType ValueTypes) {
23199     return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
23200 }
23201 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_GetXMLResult(ISpeechRecoResultDispatch* This,SPXMLRESULTOPTIONS Options,BSTR *pResult) {
23202     return This->lpVtbl->GetXMLResult(This,Options,pResult);
23203 }
23204 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_GetXMLErrorInfo(ISpeechRecoResultDispatch* This,LONG *LineNumber,BSTR *ScriptLine,BSTR *Source,BSTR *Description,HRESULT *ResultCode,VARIANT_BOOL *IsError) {
23205     return This->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError);
23206 }
23207 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_SetTextFeedback(ISpeechRecoResultDispatch* This,BSTR Feedback,VARIANT_BOOL WasSuccessful) {
23208     return This->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful);
23209 }
23210 #endif
23211 #endif
23212 
23213 #endif
23214 
23215 HRESULT STDMETHODCALLTYPE ISpeechRecoResultDispatch_get_RecoContext_Proxy(
23216     ISpeechRecoResultDispatch* This,
23217     ISpeechRecoContext **RecoContext);
23218 void __RPC_STUB ISpeechRecoResultDispatch_get_RecoContext_Stub(
23219     IRpcStubBuffer* This,
23220     IRpcChannelBuffer* pRpcChannelBuffer,
23221     PRPC_MESSAGE pRpcMessage,
23222     DWORD* pdwStubPhase);
23223 HRESULT STDMETHODCALLTYPE ISpeechRecoResultDispatch_get_Times_Proxy(
23224     ISpeechRecoResultDispatch* This,
23225     ISpeechRecoResultTimes **Times);
23226 void __RPC_STUB ISpeechRecoResultDispatch_get_Times_Stub(
23227     IRpcStubBuffer* This,
23228     IRpcChannelBuffer* pRpcChannelBuffer,
23229     PRPC_MESSAGE pRpcMessage,
23230     DWORD* pdwStubPhase);
23231 HRESULT STDMETHODCALLTYPE ISpeechRecoResultDispatch_putref_AudioFormat_Proxy(
23232     ISpeechRecoResultDispatch* This,
23233     ISpeechAudioFormat *Format);
23234 void __RPC_STUB ISpeechRecoResultDispatch_putref_AudioFormat_Stub(
23235     IRpcStubBuffer* This,
23236     IRpcChannelBuffer* pRpcChannelBuffer,
23237     PRPC_MESSAGE pRpcMessage,
23238     DWORD* pdwStubPhase);
23239 HRESULT STDMETHODCALLTYPE ISpeechRecoResultDispatch_get_AudioFormat_Proxy(
23240     ISpeechRecoResultDispatch* This,
23241     ISpeechAudioFormat **Format);
23242 void __RPC_STUB ISpeechRecoResultDispatch_get_AudioFormat_Stub(
23243     IRpcStubBuffer* This,
23244     IRpcChannelBuffer* pRpcChannelBuffer,
23245     PRPC_MESSAGE pRpcMessage,
23246     DWORD* pdwStubPhase);
23247 HRESULT STDMETHODCALLTYPE ISpeechRecoResultDispatch_get_PhraseInfo_Proxy(
23248     ISpeechRecoResultDispatch* This,
23249     ISpeechPhraseInfo **PhraseInfo);
23250 void __RPC_STUB ISpeechRecoResultDispatch_get_PhraseInfo_Stub(
23251     IRpcStubBuffer* This,
23252     IRpcChannelBuffer* pRpcChannelBuffer,
23253     PRPC_MESSAGE pRpcMessage,
23254     DWORD* pdwStubPhase);
23255 HRESULT STDMETHODCALLTYPE ISpeechRecoResultDispatch_Alternates_Proxy(
23256     ISpeechRecoResultDispatch* This,
23257     LONG RequestCount,
23258     LONG StartElement,
23259     LONG Elements,
23260     ISpeechPhraseAlternates **Alternates);
23261 void __RPC_STUB ISpeechRecoResultDispatch_Alternates_Stub(
23262     IRpcStubBuffer* This,
23263     IRpcChannelBuffer* pRpcChannelBuffer,
23264     PRPC_MESSAGE pRpcMessage,
23265     DWORD* pdwStubPhase);
23266 HRESULT STDMETHODCALLTYPE ISpeechRecoResultDispatch_Audio_Proxy(
23267     ISpeechRecoResultDispatch* This,
23268     LONG StartElement,
23269     LONG Elements,
23270     ISpeechMemoryStream **Stream);
23271 void __RPC_STUB ISpeechRecoResultDispatch_Audio_Stub(
23272     IRpcStubBuffer* This,
23273     IRpcChannelBuffer* pRpcChannelBuffer,
23274     PRPC_MESSAGE pRpcMessage,
23275     DWORD* pdwStubPhase);
23276 HRESULT STDMETHODCALLTYPE ISpeechRecoResultDispatch_SpeakAudio_Proxy(
23277     ISpeechRecoResultDispatch* This,
23278     LONG StartElement,
23279     LONG Elements,
23280     SpeechVoiceSpeakFlags Flags,
23281     LONG *StreamNumber);
23282 void __RPC_STUB ISpeechRecoResultDispatch_SpeakAudio_Stub(
23283     IRpcStubBuffer* This,
23284     IRpcChannelBuffer* pRpcChannelBuffer,
23285     PRPC_MESSAGE pRpcMessage,
23286     DWORD* pdwStubPhase);
23287 HRESULT STDMETHODCALLTYPE ISpeechRecoResultDispatch_SaveToMemory_Proxy(
23288     ISpeechRecoResultDispatch* This,
23289     VARIANT *ResultBlock);
23290 void __RPC_STUB ISpeechRecoResultDispatch_SaveToMemory_Stub(
23291     IRpcStubBuffer* This,
23292     IRpcChannelBuffer* pRpcChannelBuffer,
23293     PRPC_MESSAGE pRpcMessage,
23294     DWORD* pdwStubPhase);
23295 HRESULT STDMETHODCALLTYPE ISpeechRecoResultDispatch_DiscardResultInfo_Proxy(
23296     ISpeechRecoResultDispatch* This,
23297     SpeechDiscardType ValueTypes);
23298 void __RPC_STUB ISpeechRecoResultDispatch_DiscardResultInfo_Stub(
23299     IRpcStubBuffer* This,
23300     IRpcChannelBuffer* pRpcChannelBuffer,
23301     PRPC_MESSAGE pRpcMessage,
23302     DWORD* pdwStubPhase);
23303 HRESULT STDMETHODCALLTYPE ISpeechRecoResultDispatch_GetXMLResult_Proxy(
23304     ISpeechRecoResultDispatch* This,
23305     SPXMLRESULTOPTIONS Options,
23306     BSTR *pResult);
23307 void __RPC_STUB ISpeechRecoResultDispatch_GetXMLResult_Stub(
23308     IRpcStubBuffer* This,
23309     IRpcChannelBuffer* pRpcChannelBuffer,
23310     PRPC_MESSAGE pRpcMessage,
23311     DWORD* pdwStubPhase);
23312 HRESULT STDMETHODCALLTYPE ISpeechRecoResultDispatch_GetXMLErrorInfo_Proxy(
23313     ISpeechRecoResultDispatch* This,
23314     LONG *LineNumber,
23315     BSTR *ScriptLine,
23316     BSTR *Source,
23317     BSTR *Description,
23318     HRESULT *ResultCode,
23319     VARIANT_BOOL *IsError);
23320 void __RPC_STUB ISpeechRecoResultDispatch_GetXMLErrorInfo_Stub(
23321     IRpcStubBuffer* This,
23322     IRpcChannelBuffer* pRpcChannelBuffer,
23323     PRPC_MESSAGE pRpcMessage,
23324     DWORD* pdwStubPhase);
23325 HRESULT STDMETHODCALLTYPE ISpeechRecoResultDispatch_SetTextFeedback_Proxy(
23326     ISpeechRecoResultDispatch* This,
23327     BSTR Feedback,
23328     VARIANT_BOOL WasSuccessful);
23329 void __RPC_STUB ISpeechRecoResultDispatch_SetTextFeedback_Stub(
23330     IRpcStubBuffer* This,
23331     IRpcChannelBuffer* pRpcChannelBuffer,
23332     PRPC_MESSAGE pRpcMessage,
23333     DWORD* pdwStubPhase);
23334 
23335 #endif  /* __ISpeechRecoResultDispatch_INTERFACE_DEFINED__ */
23336 
23337 /*****************************************************************************
23338  * ISpeechPhraseInfoBuilder interface
23339  */
23340 #ifndef __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__
23341 #define __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__
23342 
23343 DEFINE_GUID(IID_ISpeechPhraseInfoBuilder, 0x3b151836, 0xdf3a, 0x4e0a, 0x84,0x6c, 0xd2,0xad,0xc9,0x33,0x43,0x33);
23344 #if defined(__cplusplus) && !defined(CINTERFACE)
23345 MIDL_INTERFACE("3b151836-df3a-4e0a-846c-d2adc9334333")
23346 ISpeechPhraseInfoBuilder : public IDispatch
23347 {
23348     virtual HRESULT STDMETHODCALLTYPE RestorePhraseFromMemory(
23349         VARIANT *PhraseInMemory,
23350         ISpeechPhraseInfo **PhraseInfo) = 0;
23351 
23352 };
23353 #ifdef __CRT_UUID_DECL
23354 __CRT_UUID_DECL(ISpeechPhraseInfoBuilder, 0x3b151836, 0xdf3a, 0x4e0a, 0x84,0x6c, 0xd2,0xad,0xc9,0x33,0x43,0x33)
23355 #endif
23356 #else
23357 typedef struct ISpeechPhraseInfoBuilderVtbl {
23358     BEGIN_INTERFACE
23359 
23360     /*** IUnknown methods ***/
23361     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23362         ISpeechPhraseInfoBuilder* This,
23363         REFIID riid,
23364         void **ppvObject);
23365 
23366     ULONG (STDMETHODCALLTYPE *AddRef)(
23367         ISpeechPhraseInfoBuilder* This);
23368 
23369     ULONG (STDMETHODCALLTYPE *Release)(
23370         ISpeechPhraseInfoBuilder* This);
23371 
23372     /*** IDispatch methods ***/
23373     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
23374         ISpeechPhraseInfoBuilder* This,
23375         UINT *pctinfo);
23376 
23377     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
23378         ISpeechPhraseInfoBuilder* This,
23379         UINT iTInfo,
23380         LCID lcid,
23381         ITypeInfo **ppTInfo);
23382 
23383     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
23384         ISpeechPhraseInfoBuilder* This,
23385         REFIID riid,
23386         LPOLESTR *rgszNames,
23387         UINT cNames,
23388         LCID lcid,
23389         DISPID *rgDispId);
23390 
23391     HRESULT (STDMETHODCALLTYPE *Invoke)(
23392         ISpeechPhraseInfoBuilder* This,
23393         DISPID dispIdMember,
23394         REFIID riid,
23395         LCID lcid,
23396         WORD wFlags,
23397         DISPPARAMS *pDispParams,
23398         VARIANT *pVarResult,
23399         EXCEPINFO *pExcepInfo,
23400         UINT *puArgErr);
23401 
23402     /*** ISpeechPhraseInfoBuilder methods ***/
23403     HRESULT (STDMETHODCALLTYPE *RestorePhraseFromMemory)(
23404         ISpeechPhraseInfoBuilder* This,
23405         VARIANT *PhraseInMemory,
23406         ISpeechPhraseInfo **PhraseInfo);
23407 
23408     END_INTERFACE
23409 } ISpeechPhraseInfoBuilderVtbl;
23410 interface ISpeechPhraseInfoBuilder {
23411     CONST_VTBL ISpeechPhraseInfoBuilderVtbl* lpVtbl;
23412 };
23413 
23414 #ifdef COBJMACROS
23415 #ifndef WIDL_C_INLINE_WRAPPERS
23416 /*** IUnknown methods ***/
23417 #define ISpeechPhraseInfoBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23418 #define ISpeechPhraseInfoBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
23419 #define ISpeechPhraseInfoBuilder_Release(This) (This)->lpVtbl->Release(This)
23420 /*** IDispatch methods ***/
23421 #define ISpeechPhraseInfoBuilder_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
23422 #define ISpeechPhraseInfoBuilder_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
23423 #define ISpeechPhraseInfoBuilder_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
23424 #define ISpeechPhraseInfoBuilder_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
23425 /*** ISpeechPhraseInfoBuilder methods ***/
23426 #define ISpeechPhraseInfoBuilder_RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo) (This)->lpVtbl->RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo)
23427 #else
23428 /*** IUnknown methods ***/
23429 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_QueryInterface(ISpeechPhraseInfoBuilder* This,REFIID riid,void **ppvObject) {
23430     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23431 }
23432 static FORCEINLINE ULONG ISpeechPhraseInfoBuilder_AddRef(ISpeechPhraseInfoBuilder* This) {
23433     return This->lpVtbl->AddRef(This);
23434 }
23435 static FORCEINLINE ULONG ISpeechPhraseInfoBuilder_Release(ISpeechPhraseInfoBuilder* This) {
23436     return This->lpVtbl->Release(This);
23437 }
23438 /*** IDispatch methods ***/
23439 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_GetTypeInfoCount(ISpeechPhraseInfoBuilder* This,UINT *pctinfo) {
23440     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
23441 }
23442 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_GetTypeInfo(ISpeechPhraseInfoBuilder* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
23443     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
23444 }
23445 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_GetIDsOfNames(ISpeechPhraseInfoBuilder* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
23446     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
23447 }
23448 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_Invoke(ISpeechPhraseInfoBuilder* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
23449     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
23450 }
23451 /*** ISpeechPhraseInfoBuilder methods ***/
23452 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_RestorePhraseFromMemory(ISpeechPhraseInfoBuilder* This,VARIANT *PhraseInMemory,ISpeechPhraseInfo **PhraseInfo) {
23453     return This->lpVtbl->RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo);
23454 }
23455 #endif
23456 #endif
23457 
23458 #endif
23459 
23460 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfoBuilder_RestorePhraseFromMemory_Proxy(
23461     ISpeechPhraseInfoBuilder* This,
23462     VARIANT *PhraseInMemory,
23463     ISpeechPhraseInfo **PhraseInfo);
23464 void __RPC_STUB ISpeechPhraseInfoBuilder_RestorePhraseFromMemory_Stub(
23465     IRpcStubBuffer* This,
23466     IRpcChannelBuffer* pRpcChannelBuffer,
23467     PRPC_MESSAGE pRpcMessage,
23468     DWORD* pdwStubPhase);
23469 
23470 #endif  /* __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__ */
23471 
23472 /*****************************************************************************
23473  * ISpeechRecoResultTimes interface
23474  */
23475 #ifndef __ISpeechRecoResultTimes_INTERFACE_DEFINED__
23476 #define __ISpeechRecoResultTimes_INTERFACE_DEFINED__
23477 
23478 DEFINE_GUID(IID_ISpeechRecoResultTimes, 0x62b3b8fb, 0xf6e7, 0x41be, 0xbd,0xcb, 0x05,0x6b,0x1c,0x29,0xef,0xc0);
23479 #if defined(__cplusplus) && !defined(CINTERFACE)
23480 MIDL_INTERFACE("62b3b8fb-f6e7-41be-bdcb-056b1c29efc0")
23481 ISpeechRecoResultTimes : public IDispatch
23482 {
23483     virtual HRESULT STDMETHODCALLTYPE get_StreamTime(
23484         VARIANT *Time) = 0;
23485 
23486     virtual HRESULT STDMETHODCALLTYPE get_Length(
23487         VARIANT *Length) = 0;
23488 
23489     virtual HRESULT STDMETHODCALLTYPE get_TickCount(
23490         LONG *TickCount) = 0;
23491 
23492     virtual HRESULT STDMETHODCALLTYPE get_OffsetFromStart(
23493         VARIANT *OffsetFromStart) = 0;
23494 
23495 };
23496 #ifdef __CRT_UUID_DECL
23497 __CRT_UUID_DECL(ISpeechRecoResultTimes, 0x62b3b8fb, 0xf6e7, 0x41be, 0xbd,0xcb, 0x05,0x6b,0x1c,0x29,0xef,0xc0)
23498 #endif
23499 #else
23500 typedef struct ISpeechRecoResultTimesVtbl {
23501     BEGIN_INTERFACE
23502 
23503     /*** IUnknown methods ***/
23504     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23505         ISpeechRecoResultTimes* This,
23506         REFIID riid,
23507         void **ppvObject);
23508 
23509     ULONG (STDMETHODCALLTYPE *AddRef)(
23510         ISpeechRecoResultTimes* This);
23511 
23512     ULONG (STDMETHODCALLTYPE *Release)(
23513         ISpeechRecoResultTimes* This);
23514 
23515     /*** IDispatch methods ***/
23516     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
23517         ISpeechRecoResultTimes* This,
23518         UINT *pctinfo);
23519 
23520     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
23521         ISpeechRecoResultTimes* This,
23522         UINT iTInfo,
23523         LCID lcid,
23524         ITypeInfo **ppTInfo);
23525 
23526     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
23527         ISpeechRecoResultTimes* This,
23528         REFIID riid,
23529         LPOLESTR *rgszNames,
23530         UINT cNames,
23531         LCID lcid,
23532         DISPID *rgDispId);
23533 
23534     HRESULT (STDMETHODCALLTYPE *Invoke)(
23535         ISpeechRecoResultTimes* This,
23536         DISPID dispIdMember,
23537         REFIID riid,
23538         LCID lcid,
23539         WORD wFlags,
23540         DISPPARAMS *pDispParams,
23541         VARIANT *pVarResult,
23542         EXCEPINFO *pExcepInfo,
23543         UINT *puArgErr);
23544 
23545     /*** ISpeechRecoResultTimes methods ***/
23546     HRESULT (STDMETHODCALLTYPE *get_StreamTime)(
23547         ISpeechRecoResultTimes* This,
23548         VARIANT *Time);
23549 
23550     HRESULT (STDMETHODCALLTYPE *get_Length)(
23551         ISpeechRecoResultTimes* This,
23552         VARIANT *Length);
23553 
23554     HRESULT (STDMETHODCALLTYPE *get_TickCount)(
23555         ISpeechRecoResultTimes* This,
23556         LONG *TickCount);
23557 
23558     HRESULT (STDMETHODCALLTYPE *get_OffsetFromStart)(
23559         ISpeechRecoResultTimes* This,
23560         VARIANT *OffsetFromStart);
23561 
23562     END_INTERFACE
23563 } ISpeechRecoResultTimesVtbl;
23564 interface ISpeechRecoResultTimes {
23565     CONST_VTBL ISpeechRecoResultTimesVtbl* lpVtbl;
23566 };
23567 
23568 #ifdef COBJMACROS
23569 #ifndef WIDL_C_INLINE_WRAPPERS
23570 /*** IUnknown methods ***/
23571 #define ISpeechRecoResultTimes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23572 #define ISpeechRecoResultTimes_AddRef(This) (This)->lpVtbl->AddRef(This)
23573 #define ISpeechRecoResultTimes_Release(This) (This)->lpVtbl->Release(This)
23574 /*** IDispatch methods ***/
23575 #define ISpeechRecoResultTimes_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
23576 #define ISpeechRecoResultTimes_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
23577 #define ISpeechRecoResultTimes_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
23578 #define ISpeechRecoResultTimes_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
23579 /*** ISpeechRecoResultTimes methods ***/
23580 #define ISpeechRecoResultTimes_get_StreamTime(This,Time) (This)->lpVtbl->get_StreamTime(This,Time)
23581 #define ISpeechRecoResultTimes_get_Length(This,Length) (This)->lpVtbl->get_Length(This,Length)
23582 #define ISpeechRecoResultTimes_get_TickCount(This,TickCount) (This)->lpVtbl->get_TickCount(This,TickCount)
23583 #define ISpeechRecoResultTimes_get_OffsetFromStart(This,OffsetFromStart) (This)->lpVtbl->get_OffsetFromStart(This,OffsetFromStart)
23584 #else
23585 /*** IUnknown methods ***/
23586 static FORCEINLINE HRESULT ISpeechRecoResultTimes_QueryInterface(ISpeechRecoResultTimes* This,REFIID riid,void **ppvObject) {
23587     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23588 }
23589 static FORCEINLINE ULONG ISpeechRecoResultTimes_AddRef(ISpeechRecoResultTimes* This) {
23590     return This->lpVtbl->AddRef(This);
23591 }
23592 static FORCEINLINE ULONG ISpeechRecoResultTimes_Release(ISpeechRecoResultTimes* This) {
23593     return This->lpVtbl->Release(This);
23594 }
23595 /*** IDispatch methods ***/
23596 static FORCEINLINE HRESULT ISpeechRecoResultTimes_GetTypeInfoCount(ISpeechRecoResultTimes* This,UINT *pctinfo) {
23597     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
23598 }
23599 static FORCEINLINE HRESULT ISpeechRecoResultTimes_GetTypeInfo(ISpeechRecoResultTimes* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
23600     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
23601 }
23602 static FORCEINLINE HRESULT ISpeechRecoResultTimes_GetIDsOfNames(ISpeechRecoResultTimes* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
23603     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
23604 }
23605 static FORCEINLINE HRESULT ISpeechRecoResultTimes_Invoke(ISpeechRecoResultTimes* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
23606     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
23607 }
23608 /*** ISpeechRecoResultTimes methods ***/
23609 static FORCEINLINE HRESULT ISpeechRecoResultTimes_get_StreamTime(ISpeechRecoResultTimes* This,VARIANT *Time) {
23610     return This->lpVtbl->get_StreamTime(This,Time);
23611 }
23612 static FORCEINLINE HRESULT ISpeechRecoResultTimes_get_Length(ISpeechRecoResultTimes* This,VARIANT *Length) {
23613     return This->lpVtbl->get_Length(This,Length);
23614 }
23615 static FORCEINLINE HRESULT ISpeechRecoResultTimes_get_TickCount(ISpeechRecoResultTimes* This,LONG *TickCount) {
23616     return This->lpVtbl->get_TickCount(This,TickCount);
23617 }
23618 static FORCEINLINE HRESULT ISpeechRecoResultTimes_get_OffsetFromStart(ISpeechRecoResultTimes* This,VARIANT *OffsetFromStart) {
23619     return This->lpVtbl->get_OffsetFromStart(This,OffsetFromStart);
23620 }
23621 #endif
23622 #endif
23623 
23624 #endif
23625 
23626 HRESULT STDMETHODCALLTYPE ISpeechRecoResultTimes_get_StreamTime_Proxy(
23627     ISpeechRecoResultTimes* This,
23628     VARIANT *Time);
23629 void __RPC_STUB ISpeechRecoResultTimes_get_StreamTime_Stub(
23630     IRpcStubBuffer* This,
23631     IRpcChannelBuffer* pRpcChannelBuffer,
23632     PRPC_MESSAGE pRpcMessage,
23633     DWORD* pdwStubPhase);
23634 HRESULT STDMETHODCALLTYPE ISpeechRecoResultTimes_get_Length_Proxy(
23635     ISpeechRecoResultTimes* This,
23636     VARIANT *Length);
23637 void __RPC_STUB ISpeechRecoResultTimes_get_Length_Stub(
23638     IRpcStubBuffer* This,
23639     IRpcChannelBuffer* pRpcChannelBuffer,
23640     PRPC_MESSAGE pRpcMessage,
23641     DWORD* pdwStubPhase);
23642 HRESULT STDMETHODCALLTYPE ISpeechRecoResultTimes_get_TickCount_Proxy(
23643     ISpeechRecoResultTimes* This,
23644     LONG *TickCount);
23645 void __RPC_STUB ISpeechRecoResultTimes_get_TickCount_Stub(
23646     IRpcStubBuffer* This,
23647     IRpcChannelBuffer* pRpcChannelBuffer,
23648     PRPC_MESSAGE pRpcMessage,
23649     DWORD* pdwStubPhase);
23650 HRESULT STDMETHODCALLTYPE ISpeechRecoResultTimes_get_OffsetFromStart_Proxy(
23651     ISpeechRecoResultTimes* This,
23652     VARIANT *OffsetFromStart);
23653 void __RPC_STUB ISpeechRecoResultTimes_get_OffsetFromStart_Stub(
23654     IRpcStubBuffer* This,
23655     IRpcChannelBuffer* pRpcChannelBuffer,
23656     PRPC_MESSAGE pRpcMessage,
23657     DWORD* pdwStubPhase);
23658 
23659 #endif  /* __ISpeechRecoResultTimes_INTERFACE_DEFINED__ */
23660 
23661 /*****************************************************************************
23662  * ISpeechPhraseAlternate interface
23663  */
23664 #ifndef __ISpeechPhraseAlternate_INTERFACE_DEFINED__
23665 #define __ISpeechPhraseAlternate_INTERFACE_DEFINED__
23666 
23667 DEFINE_GUID(IID_ISpeechPhraseAlternate, 0x27864a2a, 0x2b9f, 0x4cb8, 0x92,0xd3, 0x0d,0x27,0x22,0xfd,0x1e,0x73);
23668 #if defined(__cplusplus) && !defined(CINTERFACE)
23669 MIDL_INTERFACE("27864a2a-2b9f-4cb8-92d3-0d2722fd1e73")
23670 ISpeechPhraseAlternate : public IDispatch
23671 {
23672     virtual HRESULT STDMETHODCALLTYPE get_RecoResult(
23673         ISpeechRecoResult **RecoResult) = 0;
23674 
23675     virtual HRESULT STDMETHODCALLTYPE get_StartElementInResult(
23676         LONG *StartElement) = 0;
23677 
23678     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElementsInResult(
23679         LONG *NumberOfElements) = 0;
23680 
23681     virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
23682         ISpeechPhraseInfo **PhraseInfo) = 0;
23683 
23684     virtual HRESULT STDMETHODCALLTYPE Commit(
23685         ) = 0;
23686 
23687 };
23688 #ifdef __CRT_UUID_DECL
23689 __CRT_UUID_DECL(ISpeechPhraseAlternate, 0x27864a2a, 0x2b9f, 0x4cb8, 0x92,0xd3, 0x0d,0x27,0x22,0xfd,0x1e,0x73)
23690 #endif
23691 #else
23692 typedef struct ISpeechPhraseAlternateVtbl {
23693     BEGIN_INTERFACE
23694 
23695     /*** IUnknown methods ***/
23696     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23697         ISpeechPhraseAlternate* This,
23698         REFIID riid,
23699         void **ppvObject);
23700 
23701     ULONG (STDMETHODCALLTYPE *AddRef)(
23702         ISpeechPhraseAlternate* This);
23703 
23704     ULONG (STDMETHODCALLTYPE *Release)(
23705         ISpeechPhraseAlternate* This);
23706 
23707     /*** IDispatch methods ***/
23708     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
23709         ISpeechPhraseAlternate* This,
23710         UINT *pctinfo);
23711 
23712     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
23713         ISpeechPhraseAlternate* This,
23714         UINT iTInfo,
23715         LCID lcid,
23716         ITypeInfo **ppTInfo);
23717 
23718     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
23719         ISpeechPhraseAlternate* This,
23720         REFIID riid,
23721         LPOLESTR *rgszNames,
23722         UINT cNames,
23723         LCID lcid,
23724         DISPID *rgDispId);
23725 
23726     HRESULT (STDMETHODCALLTYPE *Invoke)(
23727         ISpeechPhraseAlternate* This,
23728         DISPID dispIdMember,
23729         REFIID riid,
23730         LCID lcid,
23731         WORD wFlags,
23732         DISPPARAMS *pDispParams,
23733         VARIANT *pVarResult,
23734         EXCEPINFO *pExcepInfo,
23735         UINT *puArgErr);
23736 
23737     /*** ISpeechPhraseAlternate methods ***/
23738     HRESULT (STDMETHODCALLTYPE *get_RecoResult)(
23739         ISpeechPhraseAlternate* This,
23740         ISpeechRecoResult **RecoResult);
23741 
23742     HRESULT (STDMETHODCALLTYPE *get_StartElementInResult)(
23743         ISpeechPhraseAlternate* This,
23744         LONG *StartElement);
23745 
23746     HRESULT (STDMETHODCALLTYPE *get_NumberOfElementsInResult)(
23747         ISpeechPhraseAlternate* This,
23748         LONG *NumberOfElements);
23749 
23750     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
23751         ISpeechPhraseAlternate* This,
23752         ISpeechPhraseInfo **PhraseInfo);
23753 
23754     HRESULT (STDMETHODCALLTYPE *Commit)(
23755         ISpeechPhraseAlternate* This);
23756 
23757     END_INTERFACE
23758 } ISpeechPhraseAlternateVtbl;
23759 interface ISpeechPhraseAlternate {
23760     CONST_VTBL ISpeechPhraseAlternateVtbl* lpVtbl;
23761 };
23762 
23763 #ifdef COBJMACROS
23764 #ifndef WIDL_C_INLINE_WRAPPERS
23765 /*** IUnknown methods ***/
23766 #define ISpeechPhraseAlternate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23767 #define ISpeechPhraseAlternate_AddRef(This) (This)->lpVtbl->AddRef(This)
23768 #define ISpeechPhraseAlternate_Release(This) (This)->lpVtbl->Release(This)
23769 /*** IDispatch methods ***/
23770 #define ISpeechPhraseAlternate_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
23771 #define ISpeechPhraseAlternate_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
23772 #define ISpeechPhraseAlternate_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
23773 #define ISpeechPhraseAlternate_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
23774 /*** ISpeechPhraseAlternate methods ***/
23775 #define ISpeechPhraseAlternate_get_RecoResult(This,RecoResult) (This)->lpVtbl->get_RecoResult(This,RecoResult)
23776 #define ISpeechPhraseAlternate_get_StartElementInResult(This,StartElement) (This)->lpVtbl->get_StartElementInResult(This,StartElement)
23777 #define ISpeechPhraseAlternate_get_NumberOfElementsInResult(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElementsInResult(This,NumberOfElements)
23778 #define ISpeechPhraseAlternate_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
23779 #define ISpeechPhraseAlternate_Commit(This) (This)->lpVtbl->Commit(This)
23780 #else
23781 /*** IUnknown methods ***/
23782 static FORCEINLINE HRESULT ISpeechPhraseAlternate_QueryInterface(ISpeechPhraseAlternate* This,REFIID riid,void **ppvObject) {
23783     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23784 }
23785 static FORCEINLINE ULONG ISpeechPhraseAlternate_AddRef(ISpeechPhraseAlternate* This) {
23786     return This->lpVtbl->AddRef(This);
23787 }
23788 static FORCEINLINE ULONG ISpeechPhraseAlternate_Release(ISpeechPhraseAlternate* This) {
23789     return This->lpVtbl->Release(This);
23790 }
23791 /*** IDispatch methods ***/
23792 static FORCEINLINE HRESULT ISpeechPhraseAlternate_GetTypeInfoCount(ISpeechPhraseAlternate* This,UINT *pctinfo) {
23793     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
23794 }
23795 static FORCEINLINE HRESULT ISpeechPhraseAlternate_GetTypeInfo(ISpeechPhraseAlternate* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
23796     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
23797 }
23798 static FORCEINLINE HRESULT ISpeechPhraseAlternate_GetIDsOfNames(ISpeechPhraseAlternate* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
23799     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
23800 }
23801 static FORCEINLINE HRESULT ISpeechPhraseAlternate_Invoke(ISpeechPhraseAlternate* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
23802     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
23803 }
23804 /*** ISpeechPhraseAlternate methods ***/
23805 static FORCEINLINE HRESULT ISpeechPhraseAlternate_get_RecoResult(ISpeechPhraseAlternate* This,ISpeechRecoResult **RecoResult) {
23806     return This->lpVtbl->get_RecoResult(This,RecoResult);
23807 }
23808 static FORCEINLINE HRESULT ISpeechPhraseAlternate_get_StartElementInResult(ISpeechPhraseAlternate* This,LONG *StartElement) {
23809     return This->lpVtbl->get_StartElementInResult(This,StartElement);
23810 }
23811 static FORCEINLINE HRESULT ISpeechPhraseAlternate_get_NumberOfElementsInResult(ISpeechPhraseAlternate* This,LONG *NumberOfElements) {
23812     return This->lpVtbl->get_NumberOfElementsInResult(This,NumberOfElements);
23813 }
23814 static FORCEINLINE HRESULT ISpeechPhraseAlternate_get_PhraseInfo(ISpeechPhraseAlternate* This,ISpeechPhraseInfo **PhraseInfo) {
23815     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
23816 }
23817 static FORCEINLINE HRESULT ISpeechPhraseAlternate_Commit(ISpeechPhraseAlternate* This) {
23818     return This->lpVtbl->Commit(This);
23819 }
23820 #endif
23821 #endif
23822 
23823 #endif
23824 
23825 HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternate_get_RecoResult_Proxy(
23826     ISpeechPhraseAlternate* This,
23827     ISpeechRecoResult **RecoResult);
23828 void __RPC_STUB ISpeechPhraseAlternate_get_RecoResult_Stub(
23829     IRpcStubBuffer* This,
23830     IRpcChannelBuffer* pRpcChannelBuffer,
23831     PRPC_MESSAGE pRpcMessage,
23832     DWORD* pdwStubPhase);
23833 HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternate_get_StartElementInResult_Proxy(
23834     ISpeechPhraseAlternate* This,
23835     LONG *StartElement);
23836 void __RPC_STUB ISpeechPhraseAlternate_get_StartElementInResult_Stub(
23837     IRpcStubBuffer* This,
23838     IRpcChannelBuffer* pRpcChannelBuffer,
23839     PRPC_MESSAGE pRpcMessage,
23840     DWORD* pdwStubPhase);
23841 HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternate_get_NumberOfElementsInResult_Proxy(
23842     ISpeechPhraseAlternate* This,
23843     LONG *NumberOfElements);
23844 void __RPC_STUB ISpeechPhraseAlternate_get_NumberOfElementsInResult_Stub(
23845     IRpcStubBuffer* This,
23846     IRpcChannelBuffer* pRpcChannelBuffer,
23847     PRPC_MESSAGE pRpcMessage,
23848     DWORD* pdwStubPhase);
23849 HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternate_get_PhraseInfo_Proxy(
23850     ISpeechPhraseAlternate* This,
23851     ISpeechPhraseInfo **PhraseInfo);
23852 void __RPC_STUB ISpeechPhraseAlternate_get_PhraseInfo_Stub(
23853     IRpcStubBuffer* This,
23854     IRpcChannelBuffer* pRpcChannelBuffer,
23855     PRPC_MESSAGE pRpcMessage,
23856     DWORD* pdwStubPhase);
23857 HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternate_Commit_Proxy(
23858     ISpeechPhraseAlternate* This);
23859 void __RPC_STUB ISpeechPhraseAlternate_Commit_Stub(
23860     IRpcStubBuffer* This,
23861     IRpcChannelBuffer* pRpcChannelBuffer,
23862     PRPC_MESSAGE pRpcMessage,
23863     DWORD* pdwStubPhase);
23864 
23865 #endif  /* __ISpeechPhraseAlternate_INTERFACE_DEFINED__ */
23866 
23867 /*****************************************************************************
23868  * ISpeechPhraseAlternates interface
23869  */
23870 #ifndef __ISpeechPhraseAlternates_INTERFACE_DEFINED__
23871 #define __ISpeechPhraseAlternates_INTERFACE_DEFINED__
23872 
23873 DEFINE_GUID(IID_ISpeechPhraseAlternates, 0xb238b6d5, 0xf276, 0x4c3d, 0xa6,0xc1, 0x29,0x74,0x80,0x1c,0x3c,0xc2);
23874 #if defined(__cplusplus) && !defined(CINTERFACE)
23875 MIDL_INTERFACE("b238b6d5-f276-4c3d-a6c1-2974801c3cc2")
23876 ISpeechPhraseAlternates : public IDispatch
23877 {
23878     virtual HRESULT STDMETHODCALLTYPE get_Count(
23879         LONG *Count) = 0;
23880 
23881     virtual HRESULT STDMETHODCALLTYPE Item(
23882         LONG Index,
23883         ISpeechPhraseAlternate **PhraseAlternate) = 0;
23884 
23885     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
23886         IUnknown **EnumVARIANT) = 0;
23887 
23888 };
23889 #ifdef __CRT_UUID_DECL
23890 __CRT_UUID_DECL(ISpeechPhraseAlternates, 0xb238b6d5, 0xf276, 0x4c3d, 0xa6,0xc1, 0x29,0x74,0x80,0x1c,0x3c,0xc2)
23891 #endif
23892 #else
23893 typedef struct ISpeechPhraseAlternatesVtbl {
23894     BEGIN_INTERFACE
23895 
23896     /*** IUnknown methods ***/
23897     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23898         ISpeechPhraseAlternates* This,
23899         REFIID riid,
23900         void **ppvObject);
23901 
23902     ULONG (STDMETHODCALLTYPE *AddRef)(
23903         ISpeechPhraseAlternates* This);
23904 
23905     ULONG (STDMETHODCALLTYPE *Release)(
23906         ISpeechPhraseAlternates* This);
23907 
23908     /*** IDispatch methods ***/
23909     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
23910         ISpeechPhraseAlternates* This,
23911         UINT *pctinfo);
23912 
23913     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
23914         ISpeechPhraseAlternates* This,
23915         UINT iTInfo,
23916         LCID lcid,
23917         ITypeInfo **ppTInfo);
23918 
23919     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
23920         ISpeechPhraseAlternates* This,
23921         REFIID riid,
23922         LPOLESTR *rgszNames,
23923         UINT cNames,
23924         LCID lcid,
23925         DISPID *rgDispId);
23926 
23927     HRESULT (STDMETHODCALLTYPE *Invoke)(
23928         ISpeechPhraseAlternates* This,
23929         DISPID dispIdMember,
23930         REFIID riid,
23931         LCID lcid,
23932         WORD wFlags,
23933         DISPPARAMS *pDispParams,
23934         VARIANT *pVarResult,
23935         EXCEPINFO *pExcepInfo,
23936         UINT *puArgErr);
23937 
23938     /*** ISpeechPhraseAlternates methods ***/
23939     HRESULT (STDMETHODCALLTYPE *get_Count)(
23940         ISpeechPhraseAlternates* This,
23941         LONG *Count);
23942 
23943     HRESULT (STDMETHODCALLTYPE *Item)(
23944         ISpeechPhraseAlternates* This,
23945         LONG Index,
23946         ISpeechPhraseAlternate **PhraseAlternate);
23947 
23948     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
23949         ISpeechPhraseAlternates* This,
23950         IUnknown **EnumVARIANT);
23951 
23952     END_INTERFACE
23953 } ISpeechPhraseAlternatesVtbl;
23954 interface ISpeechPhraseAlternates {
23955     CONST_VTBL ISpeechPhraseAlternatesVtbl* lpVtbl;
23956 };
23957 
23958 #ifdef COBJMACROS
23959 #ifndef WIDL_C_INLINE_WRAPPERS
23960 /*** IUnknown methods ***/
23961 #define ISpeechPhraseAlternates_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23962 #define ISpeechPhraseAlternates_AddRef(This) (This)->lpVtbl->AddRef(This)
23963 #define ISpeechPhraseAlternates_Release(This) (This)->lpVtbl->Release(This)
23964 /*** IDispatch methods ***/
23965 #define ISpeechPhraseAlternates_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
23966 #define ISpeechPhraseAlternates_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
23967 #define ISpeechPhraseAlternates_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
23968 #define ISpeechPhraseAlternates_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
23969 /*** ISpeechPhraseAlternates methods ***/
23970 #define ISpeechPhraseAlternates_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
23971 #define ISpeechPhraseAlternates_Item(This,Index,PhraseAlternate) (This)->lpVtbl->Item(This,Index,PhraseAlternate)
23972 #define ISpeechPhraseAlternates_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
23973 #else
23974 /*** IUnknown methods ***/
23975 static FORCEINLINE HRESULT ISpeechPhraseAlternates_QueryInterface(ISpeechPhraseAlternates* This,REFIID riid,void **ppvObject) {
23976     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23977 }
23978 static FORCEINLINE ULONG ISpeechPhraseAlternates_AddRef(ISpeechPhraseAlternates* This) {
23979     return This->lpVtbl->AddRef(This);
23980 }
23981 static FORCEINLINE ULONG ISpeechPhraseAlternates_Release(ISpeechPhraseAlternates* This) {
23982     return This->lpVtbl->Release(This);
23983 }
23984 /*** IDispatch methods ***/
23985 static FORCEINLINE HRESULT ISpeechPhraseAlternates_GetTypeInfoCount(ISpeechPhraseAlternates* This,UINT *pctinfo) {
23986     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
23987 }
23988 static FORCEINLINE HRESULT ISpeechPhraseAlternates_GetTypeInfo(ISpeechPhraseAlternates* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
23989     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
23990 }
23991 static FORCEINLINE HRESULT ISpeechPhraseAlternates_GetIDsOfNames(ISpeechPhraseAlternates* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
23992     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
23993 }
23994 static FORCEINLINE HRESULT ISpeechPhraseAlternates_Invoke(ISpeechPhraseAlternates* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
23995     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
23996 }
23997 /*** ISpeechPhraseAlternates methods ***/
23998 static FORCEINLINE HRESULT ISpeechPhraseAlternates_get_Count(ISpeechPhraseAlternates* This,LONG *Count) {
23999     return This->lpVtbl->get_Count(This,Count);
24000 }
24001 static FORCEINLINE HRESULT ISpeechPhraseAlternates_Item(ISpeechPhraseAlternates* This,LONG Index,ISpeechPhraseAlternate **PhraseAlternate) {
24002     return This->lpVtbl->Item(This,Index,PhraseAlternate);
24003 }
24004 static FORCEINLINE HRESULT ISpeechPhraseAlternates_get__NewEnum(ISpeechPhraseAlternates* This,IUnknown **EnumVARIANT) {
24005     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
24006 }
24007 #endif
24008 #endif
24009 
24010 #endif
24011 
24012 HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternates_get_Count_Proxy(
24013     ISpeechPhraseAlternates* This,
24014     LONG *Count);
24015 void __RPC_STUB ISpeechPhraseAlternates_get_Count_Stub(
24016     IRpcStubBuffer* This,
24017     IRpcChannelBuffer* pRpcChannelBuffer,
24018     PRPC_MESSAGE pRpcMessage,
24019     DWORD* pdwStubPhase);
24020 HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternates_Item_Proxy(
24021     ISpeechPhraseAlternates* This,
24022     LONG Index,
24023     ISpeechPhraseAlternate **PhraseAlternate);
24024 void __RPC_STUB ISpeechPhraseAlternates_Item_Stub(
24025     IRpcStubBuffer* This,
24026     IRpcChannelBuffer* pRpcChannelBuffer,
24027     PRPC_MESSAGE pRpcMessage,
24028     DWORD* pdwStubPhase);
24029 HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternates_get__NewEnum_Proxy(
24030     ISpeechPhraseAlternates* This,
24031     IUnknown **EnumVARIANT);
24032 void __RPC_STUB ISpeechPhraseAlternates_get__NewEnum_Stub(
24033     IRpcStubBuffer* This,
24034     IRpcChannelBuffer* pRpcChannelBuffer,
24035     PRPC_MESSAGE pRpcMessage,
24036     DWORD* pdwStubPhase);
24037 
24038 #endif  /* __ISpeechPhraseAlternates_INTERFACE_DEFINED__ */
24039 
24040 /*****************************************************************************
24041  * ISpeechPhraseInfo interface
24042  */
24043 #ifndef __ISpeechPhraseInfo_INTERFACE_DEFINED__
24044 #define __ISpeechPhraseInfo_INTERFACE_DEFINED__
24045 
24046 DEFINE_GUID(IID_ISpeechPhraseInfo, 0x961559cf, 0x4e67, 0x4662, 0x8b,0xf0, 0xd9,0x3f,0x1f,0xcd,0x61,0xb3);
24047 #if defined(__cplusplus) && !defined(CINTERFACE)
24048 MIDL_INTERFACE("961559cf-4e67-4662-8bf0-d93f1fcd61b3")
24049 ISpeechPhraseInfo : public IDispatch
24050 {
24051     virtual HRESULT STDMETHODCALLTYPE get_LanguageId(
24052         LONG *LanguageId) = 0;
24053 
24054     virtual HRESULT STDMETHODCALLTYPE get_GrammarId(
24055         VARIANT *GrammarId) = 0;
24056 
24057     virtual HRESULT STDMETHODCALLTYPE get_StartTime(
24058         VARIANT *StartTime) = 0;
24059 
24060     virtual HRESULT STDMETHODCALLTYPE get_AudioStreamPosition(
24061         VARIANT *AudioStreamPosition) = 0;
24062 
24063     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeBytes(
24064         LONG *pAudioSizeBytes) = 0;
24065 
24066     virtual HRESULT STDMETHODCALLTYPE get_RetainedSizeBytes(
24067         LONG *RetainedSizeBytes) = 0;
24068 
24069     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeTime(
24070         LONG *AudioSizeTime) = 0;
24071 
24072     virtual HRESULT STDMETHODCALLTYPE get_Rule(
24073         ISpeechPhraseRule **Rule) = 0;
24074 
24075     virtual HRESULT STDMETHODCALLTYPE get_Properties(
24076         ISpeechPhraseProperties **Properties) = 0;
24077 
24078     virtual HRESULT STDMETHODCALLTYPE get_Elements(
24079         ISpeechPhraseElements **Elements) = 0;
24080 
24081     virtual HRESULT STDMETHODCALLTYPE get_Replacements(
24082         ISpeechPhraseReplacements **Replacements) = 0;
24083 
24084     virtual HRESULT STDMETHODCALLTYPE get_EngineId(
24085         BSTR *EngineIdGuid) = 0;
24086 
24087     virtual HRESULT STDMETHODCALLTYPE get_EnginePrivateData(
24088         VARIANT *PrivateData) = 0;
24089 
24090     virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
24091         VARIANT *PhraseBlock) = 0;
24092 
24093     virtual HRESULT STDMETHODCALLTYPE GetText(
24094         LONG StartElement,
24095         LONG Elements,
24096         VARIANT_BOOL UseReplacements,
24097         BSTR *Text) = 0;
24098 
24099     virtual HRESULT STDMETHODCALLTYPE GetDisplayAttributes(
24100         LONG StartElement,
24101         LONG Elements,
24102         VARIANT_BOOL UseReplacements,
24103         SpeechDisplayAttributes *DisplayAttributes) = 0;
24104 
24105 };
24106 #ifdef __CRT_UUID_DECL
24107 __CRT_UUID_DECL(ISpeechPhraseInfo, 0x961559cf, 0x4e67, 0x4662, 0x8b,0xf0, 0xd9,0x3f,0x1f,0xcd,0x61,0xb3)
24108 #endif
24109 #else
24110 typedef struct ISpeechPhraseInfoVtbl {
24111     BEGIN_INTERFACE
24112 
24113     /*** IUnknown methods ***/
24114     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
24115         ISpeechPhraseInfo* This,
24116         REFIID riid,
24117         void **ppvObject);
24118 
24119     ULONG (STDMETHODCALLTYPE *AddRef)(
24120         ISpeechPhraseInfo* This);
24121 
24122     ULONG (STDMETHODCALLTYPE *Release)(
24123         ISpeechPhraseInfo* This);
24124 
24125     /*** IDispatch methods ***/
24126     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
24127         ISpeechPhraseInfo* This,
24128         UINT *pctinfo);
24129 
24130     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
24131         ISpeechPhraseInfo* This,
24132         UINT iTInfo,
24133         LCID lcid,
24134         ITypeInfo **ppTInfo);
24135 
24136     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
24137         ISpeechPhraseInfo* This,
24138         REFIID riid,
24139         LPOLESTR *rgszNames,
24140         UINT cNames,
24141         LCID lcid,
24142         DISPID *rgDispId);
24143 
24144     HRESULT (STDMETHODCALLTYPE *Invoke)(
24145         ISpeechPhraseInfo* This,
24146         DISPID dispIdMember,
24147         REFIID riid,
24148         LCID lcid,
24149         WORD wFlags,
24150         DISPPARAMS *pDispParams,
24151         VARIANT *pVarResult,
24152         EXCEPINFO *pExcepInfo,
24153         UINT *puArgErr);
24154 
24155     /*** ISpeechPhraseInfo methods ***/
24156     HRESULT (STDMETHODCALLTYPE *get_LanguageId)(
24157         ISpeechPhraseInfo* This,
24158         LONG *LanguageId);
24159 
24160     HRESULT (STDMETHODCALLTYPE *get_GrammarId)(
24161         ISpeechPhraseInfo* This,
24162         VARIANT *GrammarId);
24163 
24164     HRESULT (STDMETHODCALLTYPE *get_StartTime)(
24165         ISpeechPhraseInfo* This,
24166         VARIANT *StartTime);
24167 
24168     HRESULT (STDMETHODCALLTYPE *get_AudioStreamPosition)(
24169         ISpeechPhraseInfo* This,
24170         VARIANT *AudioStreamPosition);
24171 
24172     HRESULT (STDMETHODCALLTYPE *get_AudioSizeBytes)(
24173         ISpeechPhraseInfo* This,
24174         LONG *pAudioSizeBytes);
24175 
24176     HRESULT (STDMETHODCALLTYPE *get_RetainedSizeBytes)(
24177         ISpeechPhraseInfo* This,
24178         LONG *RetainedSizeBytes);
24179 
24180     HRESULT (STDMETHODCALLTYPE *get_AudioSizeTime)(
24181         ISpeechPhraseInfo* This,
24182         LONG *AudioSizeTime);
24183 
24184     HRESULT (STDMETHODCALLTYPE *get_Rule)(
24185         ISpeechPhraseInfo* This,
24186         ISpeechPhraseRule **Rule);
24187 
24188     HRESULT (STDMETHODCALLTYPE *get_Properties)(
24189         ISpeechPhraseInfo* This,
24190         ISpeechPhraseProperties **Properties);
24191 
24192     HRESULT (STDMETHODCALLTYPE *get_Elements)(
24193         ISpeechPhraseInfo* This,
24194         ISpeechPhraseElements **Elements);
24195 
24196     HRESULT (STDMETHODCALLTYPE *get_Replacements)(
24197         ISpeechPhraseInfo* This,
24198         ISpeechPhraseReplacements **Replacements);
24199 
24200     HRESULT (STDMETHODCALLTYPE *get_EngineId)(
24201         ISpeechPhraseInfo* This,
24202         BSTR *EngineIdGuid);
24203 
24204     HRESULT (STDMETHODCALLTYPE *get_EnginePrivateData)(
24205         ISpeechPhraseInfo* This,
24206         VARIANT *PrivateData);
24207 
24208     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
24209         ISpeechPhraseInfo* This,
24210         VARIANT *PhraseBlock);
24211 
24212     HRESULT (STDMETHODCALLTYPE *GetText)(
24213         ISpeechPhraseInfo* This,
24214         LONG StartElement,
24215         LONG Elements,
24216         VARIANT_BOOL UseReplacements,
24217         BSTR *Text);
24218 
24219     HRESULT (STDMETHODCALLTYPE *GetDisplayAttributes)(
24220         ISpeechPhraseInfo* This,
24221         LONG StartElement,
24222         LONG Elements,
24223         VARIANT_BOOL UseReplacements,
24224         SpeechDisplayAttributes *DisplayAttributes);
24225 
24226     END_INTERFACE
24227 } ISpeechPhraseInfoVtbl;
24228 interface ISpeechPhraseInfo {
24229     CONST_VTBL ISpeechPhraseInfoVtbl* lpVtbl;
24230 };
24231 
24232 #ifdef COBJMACROS
24233 #ifndef WIDL_C_INLINE_WRAPPERS
24234 /*** IUnknown methods ***/
24235 #define ISpeechPhraseInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
24236 #define ISpeechPhraseInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
24237 #define ISpeechPhraseInfo_Release(This) (This)->lpVtbl->Release(This)
24238 /*** IDispatch methods ***/
24239 #define ISpeechPhraseInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
24240 #define ISpeechPhraseInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
24241 #define ISpeechPhraseInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
24242 #define ISpeechPhraseInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
24243 /*** ISpeechPhraseInfo methods ***/
24244 #define ISpeechPhraseInfo_get_LanguageId(This,LanguageId) (This)->lpVtbl->get_LanguageId(This,LanguageId)
24245 #define ISpeechPhraseInfo_get_GrammarId(This,GrammarId) (This)->lpVtbl->get_GrammarId(This,GrammarId)
24246 #define ISpeechPhraseInfo_get_StartTime(This,StartTime) (This)->lpVtbl->get_StartTime(This,StartTime)
24247 #define ISpeechPhraseInfo_get_AudioStreamPosition(This,AudioStreamPosition) (This)->lpVtbl->get_AudioStreamPosition(This,AudioStreamPosition)
24248 #define ISpeechPhraseInfo_get_AudioSizeBytes(This,pAudioSizeBytes) (This)->lpVtbl->get_AudioSizeBytes(This,pAudioSizeBytes)
24249 #define ISpeechPhraseInfo_get_RetainedSizeBytes(This,RetainedSizeBytes) (This)->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes)
24250 #define ISpeechPhraseInfo_get_AudioSizeTime(This,AudioSizeTime) (This)->lpVtbl->get_AudioSizeTime(This,AudioSizeTime)
24251 #define ISpeechPhraseInfo_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
24252 #define ISpeechPhraseInfo_get_Properties(This,Properties) (This)->lpVtbl->get_Properties(This,Properties)
24253 #define ISpeechPhraseInfo_get_Elements(This,Elements) (This)->lpVtbl->get_Elements(This,Elements)
24254 #define ISpeechPhraseInfo_get_Replacements(This,Replacements) (This)->lpVtbl->get_Replacements(This,Replacements)
24255 #define ISpeechPhraseInfo_get_EngineId(This,EngineIdGuid) (This)->lpVtbl->get_EngineId(This,EngineIdGuid)
24256 #define ISpeechPhraseInfo_get_EnginePrivateData(This,PrivateData) (This)->lpVtbl->get_EnginePrivateData(This,PrivateData)
24257 #define ISpeechPhraseInfo_SaveToMemory(This,PhraseBlock) (This)->lpVtbl->SaveToMemory(This,PhraseBlock)
24258 #define ISpeechPhraseInfo_GetText(This,StartElement,Elements,UseReplacements,Text) (This)->lpVtbl->GetText(This,StartElement,Elements,UseReplacements,Text)
24259 #define ISpeechPhraseInfo_GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes) (This)->lpVtbl->GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes)
24260 #else
24261 /*** IUnknown methods ***/
24262 static FORCEINLINE HRESULT ISpeechPhraseInfo_QueryInterface(ISpeechPhraseInfo* This,REFIID riid,void **ppvObject) {
24263     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
24264 }
24265 static FORCEINLINE ULONG ISpeechPhraseInfo_AddRef(ISpeechPhraseInfo* This) {
24266     return This->lpVtbl->AddRef(This);
24267 }
24268 static FORCEINLINE ULONG ISpeechPhraseInfo_Release(ISpeechPhraseInfo* This) {
24269     return This->lpVtbl->Release(This);
24270 }
24271 /*** IDispatch methods ***/
24272 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetTypeInfoCount(ISpeechPhraseInfo* This,UINT *pctinfo) {
24273     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
24274 }
24275 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetTypeInfo(ISpeechPhraseInfo* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
24276     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
24277 }
24278 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetIDsOfNames(ISpeechPhraseInfo* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
24279     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
24280 }
24281 static FORCEINLINE HRESULT ISpeechPhraseInfo_Invoke(ISpeechPhraseInfo* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
24282     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
24283 }
24284 /*** ISpeechPhraseInfo methods ***/
24285 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_LanguageId(ISpeechPhraseInfo* This,LONG *LanguageId) {
24286     return This->lpVtbl->get_LanguageId(This,LanguageId);
24287 }
24288 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_GrammarId(ISpeechPhraseInfo* This,VARIANT *GrammarId) {
24289     return This->lpVtbl->get_GrammarId(This,GrammarId);
24290 }
24291 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_StartTime(ISpeechPhraseInfo* This,VARIANT *StartTime) {
24292     return This->lpVtbl->get_StartTime(This,StartTime);
24293 }
24294 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_AudioStreamPosition(ISpeechPhraseInfo* This,VARIANT *AudioStreamPosition) {
24295     return This->lpVtbl->get_AudioStreamPosition(This,AudioStreamPosition);
24296 }
24297 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_AudioSizeBytes(ISpeechPhraseInfo* This,LONG *pAudioSizeBytes) {
24298     return This->lpVtbl->get_AudioSizeBytes(This,pAudioSizeBytes);
24299 }
24300 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_RetainedSizeBytes(ISpeechPhraseInfo* This,LONG *RetainedSizeBytes) {
24301     return This->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes);
24302 }
24303 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_AudioSizeTime(ISpeechPhraseInfo* This,LONG *AudioSizeTime) {
24304     return This->lpVtbl->get_AudioSizeTime(This,AudioSizeTime);
24305 }
24306 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_Rule(ISpeechPhraseInfo* This,ISpeechPhraseRule **Rule) {
24307     return This->lpVtbl->get_Rule(This,Rule);
24308 }
24309 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_Properties(ISpeechPhraseInfo* This,ISpeechPhraseProperties **Properties) {
24310     return This->lpVtbl->get_Properties(This,Properties);
24311 }
24312 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_Elements(ISpeechPhraseInfo* This,ISpeechPhraseElements **Elements) {
24313     return This->lpVtbl->get_Elements(This,Elements);
24314 }
24315 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_Replacements(ISpeechPhraseInfo* This,ISpeechPhraseReplacements **Replacements) {
24316     return This->lpVtbl->get_Replacements(This,Replacements);
24317 }
24318 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_EngineId(ISpeechPhraseInfo* This,BSTR *EngineIdGuid) {
24319     return This->lpVtbl->get_EngineId(This,EngineIdGuid);
24320 }
24321 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_EnginePrivateData(ISpeechPhraseInfo* This,VARIANT *PrivateData) {
24322     return This->lpVtbl->get_EnginePrivateData(This,PrivateData);
24323 }
24324 static FORCEINLINE HRESULT ISpeechPhraseInfo_SaveToMemory(ISpeechPhraseInfo* This,VARIANT *PhraseBlock) {
24325     return This->lpVtbl->SaveToMemory(This,PhraseBlock);
24326 }
24327 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetText(ISpeechPhraseInfo* This,LONG StartElement,LONG Elements,VARIANT_BOOL UseReplacements,BSTR *Text) {
24328     return This->lpVtbl->GetText(This,StartElement,Elements,UseReplacements,Text);
24329 }
24330 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetDisplayAttributes(ISpeechPhraseInfo* This,LONG StartElement,LONG Elements,VARIANT_BOOL UseReplacements,SpeechDisplayAttributes *DisplayAttributes) {
24331     return This->lpVtbl->GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes);
24332 }
24333 #endif
24334 #endif
24335 
24336 #endif
24337 
24338 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_LanguageId_Proxy(
24339     ISpeechPhraseInfo* This,
24340     LONG *LanguageId);
24341 void __RPC_STUB ISpeechPhraseInfo_get_LanguageId_Stub(
24342     IRpcStubBuffer* This,
24343     IRpcChannelBuffer* pRpcChannelBuffer,
24344     PRPC_MESSAGE pRpcMessage,
24345     DWORD* pdwStubPhase);
24346 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_GrammarId_Proxy(
24347     ISpeechPhraseInfo* This,
24348     VARIANT *GrammarId);
24349 void __RPC_STUB ISpeechPhraseInfo_get_GrammarId_Stub(
24350     IRpcStubBuffer* This,
24351     IRpcChannelBuffer* pRpcChannelBuffer,
24352     PRPC_MESSAGE pRpcMessage,
24353     DWORD* pdwStubPhase);
24354 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_StartTime_Proxy(
24355     ISpeechPhraseInfo* This,
24356     VARIANT *StartTime);
24357 void __RPC_STUB ISpeechPhraseInfo_get_StartTime_Stub(
24358     IRpcStubBuffer* This,
24359     IRpcChannelBuffer* pRpcChannelBuffer,
24360     PRPC_MESSAGE pRpcMessage,
24361     DWORD* pdwStubPhase);
24362 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_AudioStreamPosition_Proxy(
24363     ISpeechPhraseInfo* This,
24364     VARIANT *AudioStreamPosition);
24365 void __RPC_STUB ISpeechPhraseInfo_get_AudioStreamPosition_Stub(
24366     IRpcStubBuffer* This,
24367     IRpcChannelBuffer* pRpcChannelBuffer,
24368     PRPC_MESSAGE pRpcMessage,
24369     DWORD* pdwStubPhase);
24370 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_AudioSizeBytes_Proxy(
24371     ISpeechPhraseInfo* This,
24372     LONG *pAudioSizeBytes);
24373 void __RPC_STUB ISpeechPhraseInfo_get_AudioSizeBytes_Stub(
24374     IRpcStubBuffer* This,
24375     IRpcChannelBuffer* pRpcChannelBuffer,
24376     PRPC_MESSAGE pRpcMessage,
24377     DWORD* pdwStubPhase);
24378 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_RetainedSizeBytes_Proxy(
24379     ISpeechPhraseInfo* This,
24380     LONG *RetainedSizeBytes);
24381 void __RPC_STUB ISpeechPhraseInfo_get_RetainedSizeBytes_Stub(
24382     IRpcStubBuffer* This,
24383     IRpcChannelBuffer* pRpcChannelBuffer,
24384     PRPC_MESSAGE pRpcMessage,
24385     DWORD* pdwStubPhase);
24386 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_AudioSizeTime_Proxy(
24387     ISpeechPhraseInfo* This,
24388     LONG *AudioSizeTime);
24389 void __RPC_STUB ISpeechPhraseInfo_get_AudioSizeTime_Stub(
24390     IRpcStubBuffer* This,
24391     IRpcChannelBuffer* pRpcChannelBuffer,
24392     PRPC_MESSAGE pRpcMessage,
24393     DWORD* pdwStubPhase);
24394 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_Rule_Proxy(
24395     ISpeechPhraseInfo* This,
24396     ISpeechPhraseRule **Rule);
24397 void __RPC_STUB ISpeechPhraseInfo_get_Rule_Stub(
24398     IRpcStubBuffer* This,
24399     IRpcChannelBuffer* pRpcChannelBuffer,
24400     PRPC_MESSAGE pRpcMessage,
24401     DWORD* pdwStubPhase);
24402 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_Properties_Proxy(
24403     ISpeechPhraseInfo* This,
24404     ISpeechPhraseProperties **Properties);
24405 void __RPC_STUB ISpeechPhraseInfo_get_Properties_Stub(
24406     IRpcStubBuffer* This,
24407     IRpcChannelBuffer* pRpcChannelBuffer,
24408     PRPC_MESSAGE pRpcMessage,
24409     DWORD* pdwStubPhase);
24410 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_Elements_Proxy(
24411     ISpeechPhraseInfo* This,
24412     ISpeechPhraseElements **Elements);
24413 void __RPC_STUB ISpeechPhraseInfo_get_Elements_Stub(
24414     IRpcStubBuffer* This,
24415     IRpcChannelBuffer* pRpcChannelBuffer,
24416     PRPC_MESSAGE pRpcMessage,
24417     DWORD* pdwStubPhase);
24418 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_Replacements_Proxy(
24419     ISpeechPhraseInfo* This,
24420     ISpeechPhraseReplacements **Replacements);
24421 void __RPC_STUB ISpeechPhraseInfo_get_Replacements_Stub(
24422     IRpcStubBuffer* This,
24423     IRpcChannelBuffer* pRpcChannelBuffer,
24424     PRPC_MESSAGE pRpcMessage,
24425     DWORD* pdwStubPhase);
24426 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_EngineId_Proxy(
24427     ISpeechPhraseInfo* This,
24428     BSTR *EngineIdGuid);
24429 void __RPC_STUB ISpeechPhraseInfo_get_EngineId_Stub(
24430     IRpcStubBuffer* This,
24431     IRpcChannelBuffer* pRpcChannelBuffer,
24432     PRPC_MESSAGE pRpcMessage,
24433     DWORD* pdwStubPhase);
24434 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_EnginePrivateData_Proxy(
24435     ISpeechPhraseInfo* This,
24436     VARIANT *PrivateData);
24437 void __RPC_STUB ISpeechPhraseInfo_get_EnginePrivateData_Stub(
24438     IRpcStubBuffer* This,
24439     IRpcChannelBuffer* pRpcChannelBuffer,
24440     PRPC_MESSAGE pRpcMessage,
24441     DWORD* pdwStubPhase);
24442 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_SaveToMemory_Proxy(
24443     ISpeechPhraseInfo* This,
24444     VARIANT *PhraseBlock);
24445 void __RPC_STUB ISpeechPhraseInfo_SaveToMemory_Stub(
24446     IRpcStubBuffer* This,
24447     IRpcChannelBuffer* pRpcChannelBuffer,
24448     PRPC_MESSAGE pRpcMessage,
24449     DWORD* pdwStubPhase);
24450 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_GetText_Proxy(
24451     ISpeechPhraseInfo* This,
24452     LONG StartElement,
24453     LONG Elements,
24454     VARIANT_BOOL UseReplacements,
24455     BSTR *Text);
24456 void __RPC_STUB ISpeechPhraseInfo_GetText_Stub(
24457     IRpcStubBuffer* This,
24458     IRpcChannelBuffer* pRpcChannelBuffer,
24459     PRPC_MESSAGE pRpcMessage,
24460     DWORD* pdwStubPhase);
24461 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_GetDisplayAttributes_Proxy(
24462     ISpeechPhraseInfo* This,
24463     LONG StartElement,
24464     LONG Elements,
24465     VARIANT_BOOL UseReplacements,
24466     SpeechDisplayAttributes *DisplayAttributes);
24467 void __RPC_STUB ISpeechPhraseInfo_GetDisplayAttributes_Stub(
24468     IRpcStubBuffer* This,
24469     IRpcChannelBuffer* pRpcChannelBuffer,
24470     PRPC_MESSAGE pRpcMessage,
24471     DWORD* pdwStubPhase);
24472 
24473 #endif  /* __ISpeechPhraseInfo_INTERFACE_DEFINED__ */
24474 
24475 /*****************************************************************************
24476  * ISpeechPhraseElement interface
24477  */
24478 #ifndef __ISpeechPhraseElement_INTERFACE_DEFINED__
24479 #define __ISpeechPhraseElement_INTERFACE_DEFINED__
24480 
24481 DEFINE_GUID(IID_ISpeechPhraseElement, 0xe6176f96, 0xe373, 0x4801, 0xb2,0x23, 0x3b,0x62,0xc0,0x68,0xc0,0xb4);
24482 #if defined(__cplusplus) && !defined(CINTERFACE)
24483 MIDL_INTERFACE("e6176f96-e373-4801-b223-3b62c068c0b4")
24484 ISpeechPhraseElement : public IDispatch
24485 {
24486     virtual HRESULT STDMETHODCALLTYPE get_AudioTimeOffset(
24487         LONG *AudioTimeOffset) = 0;
24488 
24489     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeTime(
24490         LONG *AudioSizeTime) = 0;
24491 
24492     virtual HRESULT STDMETHODCALLTYPE get_AudioStreamOffset(
24493         LONG *AudioStreamOffset) = 0;
24494 
24495     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeBytes(
24496         LONG *AudioSizeBytes) = 0;
24497 
24498     virtual HRESULT STDMETHODCALLTYPE get_RetainedStreamOffset(
24499         LONG *RetainedStreamOffset) = 0;
24500 
24501     virtual HRESULT STDMETHODCALLTYPE get_RetainedSizeBytes(
24502         LONG *RetainedSizeBytes) = 0;
24503 
24504     virtual HRESULT STDMETHODCALLTYPE get_DisplayText(
24505         BSTR *DisplayText) = 0;
24506 
24507     virtual HRESULT STDMETHODCALLTYPE get_LexicalForm(
24508         BSTR *LexicalForm) = 0;
24509 
24510     virtual HRESULT STDMETHODCALLTYPE get_Pronunciation(
24511         VARIANT *Pronunciation) = 0;
24512 
24513     virtual HRESULT STDMETHODCALLTYPE get_DisplayAttributes(
24514         SpeechDisplayAttributes *DisplayAttributes) = 0;
24515 
24516     virtual HRESULT STDMETHODCALLTYPE get_RequiredConfidence(
24517         SpeechEngineConfidence *RequiredConfidence) = 0;
24518 
24519     virtual HRESULT STDMETHODCALLTYPE get_ActualConfidence(
24520         SpeechEngineConfidence *ActualConfidence) = 0;
24521 
24522     virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
24523         float *EngineConfidence) = 0;
24524 
24525 };
24526 #ifdef __CRT_UUID_DECL
24527 __CRT_UUID_DECL(ISpeechPhraseElement, 0xe6176f96, 0xe373, 0x4801, 0xb2,0x23, 0x3b,0x62,0xc0,0x68,0xc0,0xb4)
24528 #endif
24529 #else
24530 typedef struct ISpeechPhraseElementVtbl {
24531     BEGIN_INTERFACE
24532 
24533     /*** IUnknown methods ***/
24534     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
24535         ISpeechPhraseElement* This,
24536         REFIID riid,
24537         void **ppvObject);
24538 
24539     ULONG (STDMETHODCALLTYPE *AddRef)(
24540         ISpeechPhraseElement* This);
24541 
24542     ULONG (STDMETHODCALLTYPE *Release)(
24543         ISpeechPhraseElement* This);
24544 
24545     /*** IDispatch methods ***/
24546     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
24547         ISpeechPhraseElement* This,
24548         UINT *pctinfo);
24549 
24550     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
24551         ISpeechPhraseElement* This,
24552         UINT iTInfo,
24553         LCID lcid,
24554         ITypeInfo **ppTInfo);
24555 
24556     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
24557         ISpeechPhraseElement* This,
24558         REFIID riid,
24559         LPOLESTR *rgszNames,
24560         UINT cNames,
24561         LCID lcid,
24562         DISPID *rgDispId);
24563 
24564     HRESULT (STDMETHODCALLTYPE *Invoke)(
24565         ISpeechPhraseElement* This,
24566         DISPID dispIdMember,
24567         REFIID riid,
24568         LCID lcid,
24569         WORD wFlags,
24570         DISPPARAMS *pDispParams,
24571         VARIANT *pVarResult,
24572         EXCEPINFO *pExcepInfo,
24573         UINT *puArgErr);
24574 
24575     /*** ISpeechPhraseElement methods ***/
24576     HRESULT (STDMETHODCALLTYPE *get_AudioTimeOffset)(
24577         ISpeechPhraseElement* This,
24578         LONG *AudioTimeOffset);
24579 
24580     HRESULT (STDMETHODCALLTYPE *get_AudioSizeTime)(
24581         ISpeechPhraseElement* This,
24582         LONG *AudioSizeTime);
24583 
24584     HRESULT (STDMETHODCALLTYPE *get_AudioStreamOffset)(
24585         ISpeechPhraseElement* This,
24586         LONG *AudioStreamOffset);
24587 
24588     HRESULT (STDMETHODCALLTYPE *get_AudioSizeBytes)(
24589         ISpeechPhraseElement* This,
24590         LONG *AudioSizeBytes);
24591 
24592     HRESULT (STDMETHODCALLTYPE *get_RetainedStreamOffset)(
24593         ISpeechPhraseElement* This,
24594         LONG *RetainedStreamOffset);
24595 
24596     HRESULT (STDMETHODCALLTYPE *get_RetainedSizeBytes)(
24597         ISpeechPhraseElement* This,
24598         LONG *RetainedSizeBytes);
24599 
24600     HRESULT (STDMETHODCALLTYPE *get_DisplayText)(
24601         ISpeechPhraseElement* This,
24602         BSTR *DisplayText);
24603 
24604     HRESULT (STDMETHODCALLTYPE *get_LexicalForm)(
24605         ISpeechPhraseElement* This,
24606         BSTR *LexicalForm);
24607 
24608     HRESULT (STDMETHODCALLTYPE *get_Pronunciation)(
24609         ISpeechPhraseElement* This,
24610         VARIANT *Pronunciation);
24611 
24612     HRESULT (STDMETHODCALLTYPE *get_DisplayAttributes)(
24613         ISpeechPhraseElement* This,
24614         SpeechDisplayAttributes *DisplayAttributes);
24615 
24616     HRESULT (STDMETHODCALLTYPE *get_RequiredConfidence)(
24617         ISpeechPhraseElement* This,
24618         SpeechEngineConfidence *RequiredConfidence);
24619 
24620     HRESULT (STDMETHODCALLTYPE *get_ActualConfidence)(
24621         ISpeechPhraseElement* This,
24622         SpeechEngineConfidence *ActualConfidence);
24623 
24624     HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
24625         ISpeechPhraseElement* This,
24626         float *EngineConfidence);
24627 
24628     END_INTERFACE
24629 } ISpeechPhraseElementVtbl;
24630 interface ISpeechPhraseElement {
24631     CONST_VTBL ISpeechPhraseElementVtbl* lpVtbl;
24632 };
24633 
24634 #ifdef COBJMACROS
24635 #ifndef WIDL_C_INLINE_WRAPPERS
24636 /*** IUnknown methods ***/
24637 #define ISpeechPhraseElement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
24638 #define ISpeechPhraseElement_AddRef(This) (This)->lpVtbl->AddRef(This)
24639 #define ISpeechPhraseElement_Release(This) (This)->lpVtbl->Release(This)
24640 /*** IDispatch methods ***/
24641 #define ISpeechPhraseElement_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
24642 #define ISpeechPhraseElement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
24643 #define ISpeechPhraseElement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
24644 #define ISpeechPhraseElement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
24645 /*** ISpeechPhraseElement methods ***/
24646 #define ISpeechPhraseElement_get_AudioTimeOffset(This,AudioTimeOffset) (This)->lpVtbl->get_AudioTimeOffset(This,AudioTimeOffset)
24647 #define ISpeechPhraseElement_get_AudioSizeTime(This,AudioSizeTime) (This)->lpVtbl->get_AudioSizeTime(This,AudioSizeTime)
24648 #define ISpeechPhraseElement_get_AudioStreamOffset(This,AudioStreamOffset) (This)->lpVtbl->get_AudioStreamOffset(This,AudioStreamOffset)
24649 #define ISpeechPhraseElement_get_AudioSizeBytes(This,AudioSizeBytes) (This)->lpVtbl->get_AudioSizeBytes(This,AudioSizeBytes)
24650 #define ISpeechPhraseElement_get_RetainedStreamOffset(This,RetainedStreamOffset) (This)->lpVtbl->get_RetainedStreamOffset(This,RetainedStreamOffset)
24651 #define ISpeechPhraseElement_get_RetainedSizeBytes(This,RetainedSizeBytes) (This)->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes)
24652 #define ISpeechPhraseElement_get_DisplayText(This,DisplayText) (This)->lpVtbl->get_DisplayText(This,DisplayText)
24653 #define ISpeechPhraseElement_get_LexicalForm(This,LexicalForm) (This)->lpVtbl->get_LexicalForm(This,LexicalForm)
24654 #define ISpeechPhraseElement_get_Pronunciation(This,Pronunciation) (This)->lpVtbl->get_Pronunciation(This,Pronunciation)
24655 #define ISpeechPhraseElement_get_DisplayAttributes(This,DisplayAttributes) (This)->lpVtbl->get_DisplayAttributes(This,DisplayAttributes)
24656 #define ISpeechPhraseElement_get_RequiredConfidence(This,RequiredConfidence) (This)->lpVtbl->get_RequiredConfidence(This,RequiredConfidence)
24657 #define ISpeechPhraseElement_get_ActualConfidence(This,ActualConfidence) (This)->lpVtbl->get_ActualConfidence(This,ActualConfidence)
24658 #define ISpeechPhraseElement_get_EngineConfidence(This,EngineConfidence) (This)->lpVtbl->get_EngineConfidence(This,EngineConfidence)
24659 #else
24660 /*** IUnknown methods ***/
24661 static FORCEINLINE HRESULT ISpeechPhraseElement_QueryInterface(ISpeechPhraseElement* This,REFIID riid,void **ppvObject) {
24662     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
24663 }
24664 static FORCEINLINE ULONG ISpeechPhraseElement_AddRef(ISpeechPhraseElement* This) {
24665     return This->lpVtbl->AddRef(This);
24666 }
24667 static FORCEINLINE ULONG ISpeechPhraseElement_Release(ISpeechPhraseElement* This) {
24668     return This->lpVtbl->Release(This);
24669 }
24670 /*** IDispatch methods ***/
24671 static FORCEINLINE HRESULT ISpeechPhraseElement_GetTypeInfoCount(ISpeechPhraseElement* This,UINT *pctinfo) {
24672     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
24673 }
24674 static FORCEINLINE HRESULT ISpeechPhraseElement_GetTypeInfo(ISpeechPhraseElement* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
24675     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
24676 }
24677 static FORCEINLINE HRESULT ISpeechPhraseElement_GetIDsOfNames(ISpeechPhraseElement* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
24678     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
24679 }
24680 static FORCEINLINE HRESULT ISpeechPhraseElement_Invoke(ISpeechPhraseElement* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
24681     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
24682 }
24683 /*** ISpeechPhraseElement methods ***/
24684 static FORCEINLINE HRESULT ISpeechPhraseElement_get_AudioTimeOffset(ISpeechPhraseElement* This,LONG *AudioTimeOffset) {
24685     return This->lpVtbl->get_AudioTimeOffset(This,AudioTimeOffset);
24686 }
24687 static FORCEINLINE HRESULT ISpeechPhraseElement_get_AudioSizeTime(ISpeechPhraseElement* This,LONG *AudioSizeTime) {
24688     return This->lpVtbl->get_AudioSizeTime(This,AudioSizeTime);
24689 }
24690 static FORCEINLINE HRESULT ISpeechPhraseElement_get_AudioStreamOffset(ISpeechPhraseElement* This,LONG *AudioStreamOffset) {
24691     return This->lpVtbl->get_AudioStreamOffset(This,AudioStreamOffset);
24692 }
24693 static FORCEINLINE HRESULT ISpeechPhraseElement_get_AudioSizeBytes(ISpeechPhraseElement* This,LONG *AudioSizeBytes) {
24694     return This->lpVtbl->get_AudioSizeBytes(This,AudioSizeBytes);
24695 }
24696 static FORCEINLINE HRESULT ISpeechPhraseElement_get_RetainedStreamOffset(ISpeechPhraseElement* This,LONG *RetainedStreamOffset) {
24697     return This->lpVtbl->get_RetainedStreamOffset(This,RetainedStreamOffset);
24698 }
24699 static FORCEINLINE HRESULT ISpeechPhraseElement_get_RetainedSizeBytes(ISpeechPhraseElement* This,LONG *RetainedSizeBytes) {
24700     return This->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes);
24701 }
24702 static FORCEINLINE HRESULT ISpeechPhraseElement_get_DisplayText(ISpeechPhraseElement* This,BSTR *DisplayText) {
24703     return This->lpVtbl->get_DisplayText(This,DisplayText);
24704 }
24705 static FORCEINLINE HRESULT ISpeechPhraseElement_get_LexicalForm(ISpeechPhraseElement* This,BSTR *LexicalForm) {
24706     return This->lpVtbl->get_LexicalForm(This,LexicalForm);
24707 }
24708 static FORCEINLINE HRESULT ISpeechPhraseElement_get_Pronunciation(ISpeechPhraseElement* This,VARIANT *Pronunciation) {
24709     return This->lpVtbl->get_Pronunciation(This,Pronunciation);
24710 }
24711 static FORCEINLINE HRESULT ISpeechPhraseElement_get_DisplayAttributes(ISpeechPhraseElement* This,SpeechDisplayAttributes *DisplayAttributes) {
24712     return This->lpVtbl->get_DisplayAttributes(This,DisplayAttributes);
24713 }
24714 static FORCEINLINE HRESULT ISpeechPhraseElement_get_RequiredConfidence(ISpeechPhraseElement* This,SpeechEngineConfidence *RequiredConfidence) {
24715     return This->lpVtbl->get_RequiredConfidence(This,RequiredConfidence);
24716 }
24717 static FORCEINLINE HRESULT ISpeechPhraseElement_get_ActualConfidence(ISpeechPhraseElement* This,SpeechEngineConfidence *ActualConfidence) {
24718     return This->lpVtbl->get_ActualConfidence(This,ActualConfidence);
24719 }
24720 static FORCEINLINE HRESULT ISpeechPhraseElement_get_EngineConfidence(ISpeechPhraseElement* This,float *EngineConfidence) {
24721     return This->lpVtbl->get_EngineConfidence(This,EngineConfidence);
24722 }
24723 #endif
24724 #endif
24725 
24726 #endif
24727 
24728 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_AudioTimeOffset_Proxy(
24729     ISpeechPhraseElement* This,
24730     LONG *AudioTimeOffset);
24731 void __RPC_STUB ISpeechPhraseElement_get_AudioTimeOffset_Stub(
24732     IRpcStubBuffer* This,
24733     IRpcChannelBuffer* pRpcChannelBuffer,
24734     PRPC_MESSAGE pRpcMessage,
24735     DWORD* pdwStubPhase);
24736 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_AudioSizeTime_Proxy(
24737     ISpeechPhraseElement* This,
24738     LONG *AudioSizeTime);
24739 void __RPC_STUB ISpeechPhraseElement_get_AudioSizeTime_Stub(
24740     IRpcStubBuffer* This,
24741     IRpcChannelBuffer* pRpcChannelBuffer,
24742     PRPC_MESSAGE pRpcMessage,
24743     DWORD* pdwStubPhase);
24744 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_AudioStreamOffset_Proxy(
24745     ISpeechPhraseElement* This,
24746     LONG *AudioStreamOffset);
24747 void __RPC_STUB ISpeechPhraseElement_get_AudioStreamOffset_Stub(
24748     IRpcStubBuffer* This,
24749     IRpcChannelBuffer* pRpcChannelBuffer,
24750     PRPC_MESSAGE pRpcMessage,
24751     DWORD* pdwStubPhase);
24752 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_AudioSizeBytes_Proxy(
24753     ISpeechPhraseElement* This,
24754     LONG *AudioSizeBytes);
24755 void __RPC_STUB ISpeechPhraseElement_get_AudioSizeBytes_Stub(
24756     IRpcStubBuffer* This,
24757     IRpcChannelBuffer* pRpcChannelBuffer,
24758     PRPC_MESSAGE pRpcMessage,
24759     DWORD* pdwStubPhase);
24760 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_RetainedStreamOffset_Proxy(
24761     ISpeechPhraseElement* This,
24762     LONG *RetainedStreamOffset);
24763 void __RPC_STUB ISpeechPhraseElement_get_RetainedStreamOffset_Stub(
24764     IRpcStubBuffer* This,
24765     IRpcChannelBuffer* pRpcChannelBuffer,
24766     PRPC_MESSAGE pRpcMessage,
24767     DWORD* pdwStubPhase);
24768 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_RetainedSizeBytes_Proxy(
24769     ISpeechPhraseElement* This,
24770     LONG *RetainedSizeBytes);
24771 void __RPC_STUB ISpeechPhraseElement_get_RetainedSizeBytes_Stub(
24772     IRpcStubBuffer* This,
24773     IRpcChannelBuffer* pRpcChannelBuffer,
24774     PRPC_MESSAGE pRpcMessage,
24775     DWORD* pdwStubPhase);
24776 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_DisplayText_Proxy(
24777     ISpeechPhraseElement* This,
24778     BSTR *DisplayText);
24779 void __RPC_STUB ISpeechPhraseElement_get_DisplayText_Stub(
24780     IRpcStubBuffer* This,
24781     IRpcChannelBuffer* pRpcChannelBuffer,
24782     PRPC_MESSAGE pRpcMessage,
24783     DWORD* pdwStubPhase);
24784 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_LexicalForm_Proxy(
24785     ISpeechPhraseElement* This,
24786     BSTR *LexicalForm);
24787 void __RPC_STUB ISpeechPhraseElement_get_LexicalForm_Stub(
24788     IRpcStubBuffer* This,
24789     IRpcChannelBuffer* pRpcChannelBuffer,
24790     PRPC_MESSAGE pRpcMessage,
24791     DWORD* pdwStubPhase);
24792 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_Pronunciation_Proxy(
24793     ISpeechPhraseElement* This,
24794     VARIANT *Pronunciation);
24795 void __RPC_STUB ISpeechPhraseElement_get_Pronunciation_Stub(
24796     IRpcStubBuffer* This,
24797     IRpcChannelBuffer* pRpcChannelBuffer,
24798     PRPC_MESSAGE pRpcMessage,
24799     DWORD* pdwStubPhase);
24800 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_DisplayAttributes_Proxy(
24801     ISpeechPhraseElement* This,
24802     SpeechDisplayAttributes *DisplayAttributes);
24803 void __RPC_STUB ISpeechPhraseElement_get_DisplayAttributes_Stub(
24804     IRpcStubBuffer* This,
24805     IRpcChannelBuffer* pRpcChannelBuffer,
24806     PRPC_MESSAGE pRpcMessage,
24807     DWORD* pdwStubPhase);
24808 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_RequiredConfidence_Proxy(
24809     ISpeechPhraseElement* This,
24810     SpeechEngineConfidence *RequiredConfidence);
24811 void __RPC_STUB ISpeechPhraseElement_get_RequiredConfidence_Stub(
24812     IRpcStubBuffer* This,
24813     IRpcChannelBuffer* pRpcChannelBuffer,
24814     PRPC_MESSAGE pRpcMessage,
24815     DWORD* pdwStubPhase);
24816 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_ActualConfidence_Proxy(
24817     ISpeechPhraseElement* This,
24818     SpeechEngineConfidence *ActualConfidence);
24819 void __RPC_STUB ISpeechPhraseElement_get_ActualConfidence_Stub(
24820     IRpcStubBuffer* This,
24821     IRpcChannelBuffer* pRpcChannelBuffer,
24822     PRPC_MESSAGE pRpcMessage,
24823     DWORD* pdwStubPhase);
24824 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_EngineConfidence_Proxy(
24825     ISpeechPhraseElement* This,
24826     float *EngineConfidence);
24827 void __RPC_STUB ISpeechPhraseElement_get_EngineConfidence_Stub(
24828     IRpcStubBuffer* This,
24829     IRpcChannelBuffer* pRpcChannelBuffer,
24830     PRPC_MESSAGE pRpcMessage,
24831     DWORD* pdwStubPhase);
24832 
24833 #endif  /* __ISpeechPhraseElement_INTERFACE_DEFINED__ */
24834 
24835 /*****************************************************************************
24836  * ISpeechPhraseElements interface
24837  */
24838 #ifndef __ISpeechPhraseElements_INTERFACE_DEFINED__
24839 #define __ISpeechPhraseElements_INTERFACE_DEFINED__
24840 
24841 DEFINE_GUID(IID_ISpeechPhraseElements, 0x0626b328, 0x3478, 0x467d, 0xa0,0xb3, 0xd0,0x85,0x3b,0x93,0xdd,0xa3);
24842 #if defined(__cplusplus) && !defined(CINTERFACE)
24843 MIDL_INTERFACE("0626b328-3478-467d-a0b3-d0853b93dda3")
24844 ISpeechPhraseElements : public IDispatch
24845 {
24846     virtual HRESULT STDMETHODCALLTYPE get_Count(
24847         LONG *Count) = 0;
24848 
24849     virtual HRESULT STDMETHODCALLTYPE Item(
24850         LONG Index,
24851         ISpeechPhraseElement **Element) = 0;
24852 
24853     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
24854         IUnknown **EnumVARIANT) = 0;
24855 
24856 };
24857 #ifdef __CRT_UUID_DECL
24858 __CRT_UUID_DECL(ISpeechPhraseElements, 0x0626b328, 0x3478, 0x467d, 0xa0,0xb3, 0xd0,0x85,0x3b,0x93,0xdd,0xa3)
24859 #endif
24860 #else
24861 typedef struct ISpeechPhraseElementsVtbl {
24862     BEGIN_INTERFACE
24863 
24864     /*** IUnknown methods ***/
24865     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
24866         ISpeechPhraseElements* This,
24867         REFIID riid,
24868         void **ppvObject);
24869 
24870     ULONG (STDMETHODCALLTYPE *AddRef)(
24871         ISpeechPhraseElements* This);
24872 
24873     ULONG (STDMETHODCALLTYPE *Release)(
24874         ISpeechPhraseElements* This);
24875 
24876     /*** IDispatch methods ***/
24877     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
24878         ISpeechPhraseElements* This,
24879         UINT *pctinfo);
24880 
24881     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
24882         ISpeechPhraseElements* This,
24883         UINT iTInfo,
24884         LCID lcid,
24885         ITypeInfo **ppTInfo);
24886 
24887     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
24888         ISpeechPhraseElements* This,
24889         REFIID riid,
24890         LPOLESTR *rgszNames,
24891         UINT cNames,
24892         LCID lcid,
24893         DISPID *rgDispId);
24894 
24895     HRESULT (STDMETHODCALLTYPE *Invoke)(
24896         ISpeechPhraseElements* This,
24897         DISPID dispIdMember,
24898         REFIID riid,
24899         LCID lcid,
24900         WORD wFlags,
24901         DISPPARAMS *pDispParams,
24902         VARIANT *pVarResult,
24903         EXCEPINFO *pExcepInfo,
24904         UINT *puArgErr);
24905 
24906     /*** ISpeechPhraseElements methods ***/
24907     HRESULT (STDMETHODCALLTYPE *get_Count)(
24908         ISpeechPhraseElements* This,
24909         LONG *Count);
24910 
24911     HRESULT (STDMETHODCALLTYPE *Item)(
24912         ISpeechPhraseElements* This,
24913         LONG Index,
24914         ISpeechPhraseElement **Element);
24915 
24916     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
24917         ISpeechPhraseElements* This,
24918         IUnknown **EnumVARIANT);
24919 
24920     END_INTERFACE
24921 } ISpeechPhraseElementsVtbl;
24922 interface ISpeechPhraseElements {
24923     CONST_VTBL ISpeechPhraseElementsVtbl* lpVtbl;
24924 };
24925 
24926 #ifdef COBJMACROS
24927 #ifndef WIDL_C_INLINE_WRAPPERS
24928 /*** IUnknown methods ***/
24929 #define ISpeechPhraseElements_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
24930 #define ISpeechPhraseElements_AddRef(This) (This)->lpVtbl->AddRef(This)
24931 #define ISpeechPhraseElements_Release(This) (This)->lpVtbl->Release(This)
24932 /*** IDispatch methods ***/
24933 #define ISpeechPhraseElements_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
24934 #define ISpeechPhraseElements_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
24935 #define ISpeechPhraseElements_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
24936 #define ISpeechPhraseElements_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
24937 /*** ISpeechPhraseElements methods ***/
24938 #define ISpeechPhraseElements_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
24939 #define ISpeechPhraseElements_Item(This,Index,Element) (This)->lpVtbl->Item(This,Index,Element)
24940 #define ISpeechPhraseElements_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
24941 #else
24942 /*** IUnknown methods ***/
24943 static FORCEINLINE HRESULT ISpeechPhraseElements_QueryInterface(ISpeechPhraseElements* This,REFIID riid,void **ppvObject) {
24944     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
24945 }
24946 static FORCEINLINE ULONG ISpeechPhraseElements_AddRef(ISpeechPhraseElements* This) {
24947     return This->lpVtbl->AddRef(This);
24948 }
24949 static FORCEINLINE ULONG ISpeechPhraseElements_Release(ISpeechPhraseElements* This) {
24950     return This->lpVtbl->Release(This);
24951 }
24952 /*** IDispatch methods ***/
24953 static FORCEINLINE HRESULT ISpeechPhraseElements_GetTypeInfoCount(ISpeechPhraseElements* This,UINT *pctinfo) {
24954     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
24955 }
24956 static FORCEINLINE HRESULT ISpeechPhraseElements_GetTypeInfo(ISpeechPhraseElements* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
24957     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
24958 }
24959 static FORCEINLINE HRESULT ISpeechPhraseElements_GetIDsOfNames(ISpeechPhraseElements* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
24960     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
24961 }
24962 static FORCEINLINE HRESULT ISpeechPhraseElements_Invoke(ISpeechPhraseElements* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
24963     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
24964 }
24965 /*** ISpeechPhraseElements methods ***/
24966 static FORCEINLINE HRESULT ISpeechPhraseElements_get_Count(ISpeechPhraseElements* This,LONG *Count) {
24967     return This->lpVtbl->get_Count(This,Count);
24968 }
24969 static FORCEINLINE HRESULT ISpeechPhraseElements_Item(ISpeechPhraseElements* This,LONG Index,ISpeechPhraseElement **Element) {
24970     return This->lpVtbl->Item(This,Index,Element);
24971 }
24972 static FORCEINLINE HRESULT ISpeechPhraseElements_get__NewEnum(ISpeechPhraseElements* This,IUnknown **EnumVARIANT) {
24973     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
24974 }
24975 #endif
24976 #endif
24977 
24978 #endif
24979 
24980 HRESULT STDMETHODCALLTYPE ISpeechPhraseElements_get_Count_Proxy(
24981     ISpeechPhraseElements* This,
24982     LONG *Count);
24983 void __RPC_STUB ISpeechPhraseElements_get_Count_Stub(
24984     IRpcStubBuffer* This,
24985     IRpcChannelBuffer* pRpcChannelBuffer,
24986     PRPC_MESSAGE pRpcMessage,
24987     DWORD* pdwStubPhase);
24988 HRESULT STDMETHODCALLTYPE ISpeechPhraseElements_Item_Proxy(
24989     ISpeechPhraseElements* This,
24990     LONG Index,
24991     ISpeechPhraseElement **Element);
24992 void __RPC_STUB ISpeechPhraseElements_Item_Stub(
24993     IRpcStubBuffer* This,
24994     IRpcChannelBuffer* pRpcChannelBuffer,
24995     PRPC_MESSAGE pRpcMessage,
24996     DWORD* pdwStubPhase);
24997 HRESULT STDMETHODCALLTYPE ISpeechPhraseElements_get__NewEnum_Proxy(
24998     ISpeechPhraseElements* This,
24999     IUnknown **EnumVARIANT);
25000 void __RPC_STUB ISpeechPhraseElements_get__NewEnum_Stub(
25001     IRpcStubBuffer* This,
25002     IRpcChannelBuffer* pRpcChannelBuffer,
25003     PRPC_MESSAGE pRpcMessage,
25004     DWORD* pdwStubPhase);
25005 
25006 #endif  /* __ISpeechPhraseElements_INTERFACE_DEFINED__ */
25007 
25008 /*****************************************************************************
25009  * ISpeechPhraseReplacement interface
25010  */
25011 #ifndef __ISpeechPhraseReplacement_INTERFACE_DEFINED__
25012 #define __ISpeechPhraseReplacement_INTERFACE_DEFINED__
25013 
25014 DEFINE_GUID(IID_ISpeechPhraseReplacement, 0x2890a410, 0x53a7, 0x4fb5, 0x94,0xec, 0x06,0xd4,0x99,0x8e,0x3d,0x02);
25015 #if defined(__cplusplus) && !defined(CINTERFACE)
25016 MIDL_INTERFACE("2890a410-53a7-4fb5-94ec-06d4998e3d02")
25017 ISpeechPhraseReplacement : public IDispatch
25018 {
25019     virtual HRESULT STDMETHODCALLTYPE get_DisplayAttributes(
25020         SpeechDisplayAttributes *DisplayAttributes) = 0;
25021 
25022     virtual HRESULT STDMETHODCALLTYPE get_Text(
25023         BSTR *Text) = 0;
25024 
25025     virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
25026         LONG *FirstElement) = 0;
25027 
25028     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
25029         LONG *NumberOfElements) = 0;
25030 
25031 };
25032 #ifdef __CRT_UUID_DECL
25033 __CRT_UUID_DECL(ISpeechPhraseReplacement, 0x2890a410, 0x53a7, 0x4fb5, 0x94,0xec, 0x06,0xd4,0x99,0x8e,0x3d,0x02)
25034 #endif
25035 #else
25036 typedef struct ISpeechPhraseReplacementVtbl {
25037     BEGIN_INTERFACE
25038 
25039     /*** IUnknown methods ***/
25040     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25041         ISpeechPhraseReplacement* This,
25042         REFIID riid,
25043         void **ppvObject);
25044 
25045     ULONG (STDMETHODCALLTYPE *AddRef)(
25046         ISpeechPhraseReplacement* This);
25047 
25048     ULONG (STDMETHODCALLTYPE *Release)(
25049         ISpeechPhraseReplacement* This);
25050 
25051     /*** IDispatch methods ***/
25052     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
25053         ISpeechPhraseReplacement* This,
25054         UINT *pctinfo);
25055 
25056     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
25057         ISpeechPhraseReplacement* This,
25058         UINT iTInfo,
25059         LCID lcid,
25060         ITypeInfo **ppTInfo);
25061 
25062     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
25063         ISpeechPhraseReplacement* This,
25064         REFIID riid,
25065         LPOLESTR *rgszNames,
25066         UINT cNames,
25067         LCID lcid,
25068         DISPID *rgDispId);
25069 
25070     HRESULT (STDMETHODCALLTYPE *Invoke)(
25071         ISpeechPhraseReplacement* This,
25072         DISPID dispIdMember,
25073         REFIID riid,
25074         LCID lcid,
25075         WORD wFlags,
25076         DISPPARAMS *pDispParams,
25077         VARIANT *pVarResult,
25078         EXCEPINFO *pExcepInfo,
25079         UINT *puArgErr);
25080 
25081     /*** ISpeechPhraseReplacement methods ***/
25082     HRESULT (STDMETHODCALLTYPE *get_DisplayAttributes)(
25083         ISpeechPhraseReplacement* This,
25084         SpeechDisplayAttributes *DisplayAttributes);
25085 
25086     HRESULT (STDMETHODCALLTYPE *get_Text)(
25087         ISpeechPhraseReplacement* This,
25088         BSTR *Text);
25089 
25090     HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
25091         ISpeechPhraseReplacement* This,
25092         LONG *FirstElement);
25093 
25094     HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
25095         ISpeechPhraseReplacement* This,
25096         LONG *NumberOfElements);
25097 
25098     END_INTERFACE
25099 } ISpeechPhraseReplacementVtbl;
25100 interface ISpeechPhraseReplacement {
25101     CONST_VTBL ISpeechPhraseReplacementVtbl* lpVtbl;
25102 };
25103 
25104 #ifdef COBJMACROS
25105 #ifndef WIDL_C_INLINE_WRAPPERS
25106 /*** IUnknown methods ***/
25107 #define ISpeechPhraseReplacement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25108 #define ISpeechPhraseReplacement_AddRef(This) (This)->lpVtbl->AddRef(This)
25109 #define ISpeechPhraseReplacement_Release(This) (This)->lpVtbl->Release(This)
25110 /*** IDispatch methods ***/
25111 #define ISpeechPhraseReplacement_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
25112 #define ISpeechPhraseReplacement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
25113 #define ISpeechPhraseReplacement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
25114 #define ISpeechPhraseReplacement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
25115 /*** ISpeechPhraseReplacement methods ***/
25116 #define ISpeechPhraseReplacement_get_DisplayAttributes(This,DisplayAttributes) (This)->lpVtbl->get_DisplayAttributes(This,DisplayAttributes)
25117 #define ISpeechPhraseReplacement_get_Text(This,Text) (This)->lpVtbl->get_Text(This,Text)
25118 #define ISpeechPhraseReplacement_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
25119 #define ISpeechPhraseReplacement_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
25120 #else
25121 /*** IUnknown methods ***/
25122 static FORCEINLINE HRESULT ISpeechPhraseReplacement_QueryInterface(ISpeechPhraseReplacement* This,REFIID riid,void **ppvObject) {
25123     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25124 }
25125 static FORCEINLINE ULONG ISpeechPhraseReplacement_AddRef(ISpeechPhraseReplacement* This) {
25126     return This->lpVtbl->AddRef(This);
25127 }
25128 static FORCEINLINE ULONG ISpeechPhraseReplacement_Release(ISpeechPhraseReplacement* This) {
25129     return This->lpVtbl->Release(This);
25130 }
25131 /*** IDispatch methods ***/
25132 static FORCEINLINE HRESULT ISpeechPhraseReplacement_GetTypeInfoCount(ISpeechPhraseReplacement* This,UINT *pctinfo) {
25133     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
25134 }
25135 static FORCEINLINE HRESULT ISpeechPhraseReplacement_GetTypeInfo(ISpeechPhraseReplacement* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
25136     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
25137 }
25138 static FORCEINLINE HRESULT ISpeechPhraseReplacement_GetIDsOfNames(ISpeechPhraseReplacement* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
25139     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
25140 }
25141 static FORCEINLINE HRESULT ISpeechPhraseReplacement_Invoke(ISpeechPhraseReplacement* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
25142     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
25143 }
25144 /*** ISpeechPhraseReplacement methods ***/
25145 static FORCEINLINE HRESULT ISpeechPhraseReplacement_get_DisplayAttributes(ISpeechPhraseReplacement* This,SpeechDisplayAttributes *DisplayAttributes) {
25146     return This->lpVtbl->get_DisplayAttributes(This,DisplayAttributes);
25147 }
25148 static FORCEINLINE HRESULT ISpeechPhraseReplacement_get_Text(ISpeechPhraseReplacement* This,BSTR *Text) {
25149     return This->lpVtbl->get_Text(This,Text);
25150 }
25151 static FORCEINLINE HRESULT ISpeechPhraseReplacement_get_FirstElement(ISpeechPhraseReplacement* This,LONG *FirstElement) {
25152     return This->lpVtbl->get_FirstElement(This,FirstElement);
25153 }
25154 static FORCEINLINE HRESULT ISpeechPhraseReplacement_get_NumberOfElements(ISpeechPhraseReplacement* This,LONG *NumberOfElements) {
25155     return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
25156 }
25157 #endif
25158 #endif
25159 
25160 #endif
25161 
25162 HRESULT STDMETHODCALLTYPE ISpeechPhraseReplacement_get_DisplayAttributes_Proxy(
25163     ISpeechPhraseReplacement* This,
25164     SpeechDisplayAttributes *DisplayAttributes);
25165 void __RPC_STUB ISpeechPhraseReplacement_get_DisplayAttributes_Stub(
25166     IRpcStubBuffer* This,
25167     IRpcChannelBuffer* pRpcChannelBuffer,
25168     PRPC_MESSAGE pRpcMessage,
25169     DWORD* pdwStubPhase);
25170 HRESULT STDMETHODCALLTYPE ISpeechPhraseReplacement_get_Text_Proxy(
25171     ISpeechPhraseReplacement* This,
25172     BSTR *Text);
25173 void __RPC_STUB ISpeechPhraseReplacement_get_Text_Stub(
25174     IRpcStubBuffer* This,
25175     IRpcChannelBuffer* pRpcChannelBuffer,
25176     PRPC_MESSAGE pRpcMessage,
25177     DWORD* pdwStubPhase);
25178 HRESULT STDMETHODCALLTYPE ISpeechPhraseReplacement_get_FirstElement_Proxy(
25179     ISpeechPhraseReplacement* This,
25180     LONG *FirstElement);
25181 void __RPC_STUB ISpeechPhraseReplacement_get_FirstElement_Stub(
25182     IRpcStubBuffer* This,
25183     IRpcChannelBuffer* pRpcChannelBuffer,
25184     PRPC_MESSAGE pRpcMessage,
25185     DWORD* pdwStubPhase);
25186 HRESULT STDMETHODCALLTYPE ISpeechPhraseReplacement_get_NumberOfElements_Proxy(
25187     ISpeechPhraseReplacement* This,
25188     LONG *NumberOfElements);
25189 void __RPC_STUB ISpeechPhraseReplacement_get_NumberOfElements_Stub(
25190     IRpcStubBuffer* This,
25191     IRpcChannelBuffer* pRpcChannelBuffer,
25192     PRPC_MESSAGE pRpcMessage,
25193     DWORD* pdwStubPhase);
25194 
25195 #endif  /* __ISpeechPhraseReplacement_INTERFACE_DEFINED__ */
25196 
25197 /*****************************************************************************
25198  * ISpeechPhraseReplacements interface
25199  */
25200 #ifndef __ISpeechPhraseReplacements_INTERFACE_DEFINED__
25201 #define __ISpeechPhraseReplacements_INTERFACE_DEFINED__
25202 
25203 DEFINE_GUID(IID_ISpeechPhraseReplacements, 0x38bc662f, 0x2257, 0x4525, 0x95,0x9e, 0x20,0x69,0xd2,0x59,0x6c,0x05);
25204 #if defined(__cplusplus) && !defined(CINTERFACE)
25205 MIDL_INTERFACE("38bc662f-2257-4525-959e-2069d2596c05")
25206 ISpeechPhraseReplacements : public IDispatch
25207 {
25208     virtual HRESULT STDMETHODCALLTYPE get_Count(
25209         LONG *Count) = 0;
25210 
25211     virtual HRESULT STDMETHODCALLTYPE Item(
25212         LONG Index,
25213         ISpeechPhraseReplacement **Reps) = 0;
25214 
25215     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
25216         IUnknown **EnumVARIANT) = 0;
25217 
25218 };
25219 #ifdef __CRT_UUID_DECL
25220 __CRT_UUID_DECL(ISpeechPhraseReplacements, 0x38bc662f, 0x2257, 0x4525, 0x95,0x9e, 0x20,0x69,0xd2,0x59,0x6c,0x05)
25221 #endif
25222 #else
25223 typedef struct ISpeechPhraseReplacementsVtbl {
25224     BEGIN_INTERFACE
25225 
25226     /*** IUnknown methods ***/
25227     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25228         ISpeechPhraseReplacements* This,
25229         REFIID riid,
25230         void **ppvObject);
25231 
25232     ULONG (STDMETHODCALLTYPE *AddRef)(
25233         ISpeechPhraseReplacements* This);
25234 
25235     ULONG (STDMETHODCALLTYPE *Release)(
25236         ISpeechPhraseReplacements* This);
25237 
25238     /*** IDispatch methods ***/
25239     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
25240         ISpeechPhraseReplacements* This,
25241         UINT *pctinfo);
25242 
25243     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
25244         ISpeechPhraseReplacements* This,
25245         UINT iTInfo,
25246         LCID lcid,
25247         ITypeInfo **ppTInfo);
25248 
25249     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
25250         ISpeechPhraseReplacements* This,
25251         REFIID riid,
25252         LPOLESTR *rgszNames,
25253         UINT cNames,
25254         LCID lcid,
25255         DISPID *rgDispId);
25256 
25257     HRESULT (STDMETHODCALLTYPE *Invoke)(
25258         ISpeechPhraseReplacements* This,
25259         DISPID dispIdMember,
25260         REFIID riid,
25261         LCID lcid,
25262         WORD wFlags,
25263         DISPPARAMS *pDispParams,
25264         VARIANT *pVarResult,
25265         EXCEPINFO *pExcepInfo,
25266         UINT *puArgErr);
25267 
25268     /*** ISpeechPhraseReplacements methods ***/
25269     HRESULT (STDMETHODCALLTYPE *get_Count)(
25270         ISpeechPhraseReplacements* This,
25271         LONG *Count);
25272 
25273     HRESULT (STDMETHODCALLTYPE *Item)(
25274         ISpeechPhraseReplacements* This,
25275         LONG Index,
25276         ISpeechPhraseReplacement **Reps);
25277 
25278     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
25279         ISpeechPhraseReplacements* This,
25280         IUnknown **EnumVARIANT);
25281 
25282     END_INTERFACE
25283 } ISpeechPhraseReplacementsVtbl;
25284 interface ISpeechPhraseReplacements {
25285     CONST_VTBL ISpeechPhraseReplacementsVtbl* lpVtbl;
25286 };
25287 
25288 #ifdef COBJMACROS
25289 #ifndef WIDL_C_INLINE_WRAPPERS
25290 /*** IUnknown methods ***/
25291 #define ISpeechPhraseReplacements_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25292 #define ISpeechPhraseReplacements_AddRef(This) (This)->lpVtbl->AddRef(This)
25293 #define ISpeechPhraseReplacements_Release(This) (This)->lpVtbl->Release(This)
25294 /*** IDispatch methods ***/
25295 #define ISpeechPhraseReplacements_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
25296 #define ISpeechPhraseReplacements_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
25297 #define ISpeechPhraseReplacements_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
25298 #define ISpeechPhraseReplacements_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
25299 /*** ISpeechPhraseReplacements methods ***/
25300 #define ISpeechPhraseReplacements_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
25301 #define ISpeechPhraseReplacements_Item(This,Index,Reps) (This)->lpVtbl->Item(This,Index,Reps)
25302 #define ISpeechPhraseReplacements_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
25303 #else
25304 /*** IUnknown methods ***/
25305 static FORCEINLINE HRESULT ISpeechPhraseReplacements_QueryInterface(ISpeechPhraseReplacements* This,REFIID riid,void **ppvObject) {
25306     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25307 }
25308 static FORCEINLINE ULONG ISpeechPhraseReplacements_AddRef(ISpeechPhraseReplacements* This) {
25309     return This->lpVtbl->AddRef(This);
25310 }
25311 static FORCEINLINE ULONG ISpeechPhraseReplacements_Release(ISpeechPhraseReplacements* This) {
25312     return This->lpVtbl->Release(This);
25313 }
25314 /*** IDispatch methods ***/
25315 static FORCEINLINE HRESULT ISpeechPhraseReplacements_GetTypeInfoCount(ISpeechPhraseReplacements* This,UINT *pctinfo) {
25316     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
25317 }
25318 static FORCEINLINE HRESULT ISpeechPhraseReplacements_GetTypeInfo(ISpeechPhraseReplacements* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
25319     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
25320 }
25321 static FORCEINLINE HRESULT ISpeechPhraseReplacements_GetIDsOfNames(ISpeechPhraseReplacements* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
25322     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
25323 }
25324 static FORCEINLINE HRESULT ISpeechPhraseReplacements_Invoke(ISpeechPhraseReplacements* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
25325     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
25326 }
25327 /*** ISpeechPhraseReplacements methods ***/
25328 static FORCEINLINE HRESULT ISpeechPhraseReplacements_get_Count(ISpeechPhraseReplacements* This,LONG *Count) {
25329     return This->lpVtbl->get_Count(This,Count);
25330 }
25331 static FORCEINLINE HRESULT ISpeechPhraseReplacements_Item(ISpeechPhraseReplacements* This,LONG Index,ISpeechPhraseReplacement **Reps) {
25332     return This->lpVtbl->Item(This,Index,Reps);
25333 }
25334 static FORCEINLINE HRESULT ISpeechPhraseReplacements_get__NewEnum(ISpeechPhraseReplacements* This,IUnknown **EnumVARIANT) {
25335     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
25336 }
25337 #endif
25338 #endif
25339 
25340 #endif
25341 
25342 HRESULT STDMETHODCALLTYPE ISpeechPhraseReplacements_get_Count_Proxy(
25343     ISpeechPhraseReplacements* This,
25344     LONG *Count);
25345 void __RPC_STUB ISpeechPhraseReplacements_get_Count_Stub(
25346     IRpcStubBuffer* This,
25347     IRpcChannelBuffer* pRpcChannelBuffer,
25348     PRPC_MESSAGE pRpcMessage,
25349     DWORD* pdwStubPhase);
25350 HRESULT STDMETHODCALLTYPE ISpeechPhraseReplacements_Item_Proxy(
25351     ISpeechPhraseReplacements* This,
25352     LONG Index,
25353     ISpeechPhraseReplacement **Reps);
25354 void __RPC_STUB ISpeechPhraseReplacements_Item_Stub(
25355     IRpcStubBuffer* This,
25356     IRpcChannelBuffer* pRpcChannelBuffer,
25357     PRPC_MESSAGE pRpcMessage,
25358     DWORD* pdwStubPhase);
25359 HRESULT STDMETHODCALLTYPE ISpeechPhraseReplacements_get__NewEnum_Proxy(
25360     ISpeechPhraseReplacements* This,
25361     IUnknown **EnumVARIANT);
25362 void __RPC_STUB ISpeechPhraseReplacements_get__NewEnum_Stub(
25363     IRpcStubBuffer* This,
25364     IRpcChannelBuffer* pRpcChannelBuffer,
25365     PRPC_MESSAGE pRpcMessage,
25366     DWORD* pdwStubPhase);
25367 
25368 #endif  /* __ISpeechPhraseReplacements_INTERFACE_DEFINED__ */
25369 
25370 /*****************************************************************************
25371  * ISpeechPhraseProperty interface
25372  */
25373 #ifndef __ISpeechPhraseProperty_INTERFACE_DEFINED__
25374 #define __ISpeechPhraseProperty_INTERFACE_DEFINED__
25375 
25376 DEFINE_GUID(IID_ISpeechPhraseProperty, 0xce563d48, 0x961e, 0x4732, 0xa2,0xe1, 0x37,0x8a,0x42,0xb4,0x30,0xbe);
25377 #if defined(__cplusplus) && !defined(CINTERFACE)
25378 MIDL_INTERFACE("ce563d48-961e-4732-a2e1-378a42b430be")
25379 ISpeechPhraseProperty : public IDispatch
25380 {
25381     virtual HRESULT STDMETHODCALLTYPE get_Name(
25382         BSTR *Name) = 0;
25383 
25384     virtual HRESULT STDMETHODCALLTYPE get_Id(
25385         LONG *Id) = 0;
25386 
25387     virtual HRESULT STDMETHODCALLTYPE get_Value(
25388         VARIANT *Value) = 0;
25389 
25390     virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
25391         LONG *FirstElement) = 0;
25392 
25393     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
25394         LONG *NumberOfElements) = 0;
25395 
25396     virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
25397         float *Confidence) = 0;
25398 
25399     virtual HRESULT STDMETHODCALLTYPE get_Confidence(
25400         SpeechEngineConfidence *Confidence) = 0;
25401 
25402     virtual HRESULT STDMETHODCALLTYPE get_Parent(
25403         ISpeechPhraseProperty **ParentProperty) = 0;
25404 
25405     virtual HRESULT STDMETHODCALLTYPE get_Children(
25406         ISpeechPhraseProperties **Children) = 0;
25407 
25408 };
25409 #ifdef __CRT_UUID_DECL
25410 __CRT_UUID_DECL(ISpeechPhraseProperty, 0xce563d48, 0x961e, 0x4732, 0xa2,0xe1, 0x37,0x8a,0x42,0xb4,0x30,0xbe)
25411 #endif
25412 #else
25413 typedef struct ISpeechPhrasePropertyVtbl {
25414     BEGIN_INTERFACE
25415 
25416     /*** IUnknown methods ***/
25417     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25418         ISpeechPhraseProperty* This,
25419         REFIID riid,
25420         void **ppvObject);
25421 
25422     ULONG (STDMETHODCALLTYPE *AddRef)(
25423         ISpeechPhraseProperty* This);
25424 
25425     ULONG (STDMETHODCALLTYPE *Release)(
25426         ISpeechPhraseProperty* This);
25427 
25428     /*** IDispatch methods ***/
25429     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
25430         ISpeechPhraseProperty* This,
25431         UINT *pctinfo);
25432 
25433     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
25434         ISpeechPhraseProperty* This,
25435         UINT iTInfo,
25436         LCID lcid,
25437         ITypeInfo **ppTInfo);
25438 
25439     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
25440         ISpeechPhraseProperty* This,
25441         REFIID riid,
25442         LPOLESTR *rgszNames,
25443         UINT cNames,
25444         LCID lcid,
25445         DISPID *rgDispId);
25446 
25447     HRESULT (STDMETHODCALLTYPE *Invoke)(
25448         ISpeechPhraseProperty* This,
25449         DISPID dispIdMember,
25450         REFIID riid,
25451         LCID lcid,
25452         WORD wFlags,
25453         DISPPARAMS *pDispParams,
25454         VARIANT *pVarResult,
25455         EXCEPINFO *pExcepInfo,
25456         UINT *puArgErr);
25457 
25458     /*** ISpeechPhraseProperty methods ***/
25459     HRESULT (STDMETHODCALLTYPE *get_Name)(
25460         ISpeechPhraseProperty* This,
25461         BSTR *Name);
25462 
25463     HRESULT (STDMETHODCALLTYPE *get_Id)(
25464         ISpeechPhraseProperty* This,
25465         LONG *Id);
25466 
25467     HRESULT (STDMETHODCALLTYPE *get_Value)(
25468         ISpeechPhraseProperty* This,
25469         VARIANT *Value);
25470 
25471     HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
25472         ISpeechPhraseProperty* This,
25473         LONG *FirstElement);
25474 
25475     HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
25476         ISpeechPhraseProperty* This,
25477         LONG *NumberOfElements);
25478 
25479     HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
25480         ISpeechPhraseProperty* This,
25481         float *Confidence);
25482 
25483     HRESULT (STDMETHODCALLTYPE *get_Confidence)(
25484         ISpeechPhraseProperty* This,
25485         SpeechEngineConfidence *Confidence);
25486 
25487     HRESULT (STDMETHODCALLTYPE *get_Parent)(
25488         ISpeechPhraseProperty* This,
25489         ISpeechPhraseProperty **ParentProperty);
25490 
25491     HRESULT (STDMETHODCALLTYPE *get_Children)(
25492         ISpeechPhraseProperty* This,
25493         ISpeechPhraseProperties **Children);
25494 
25495     END_INTERFACE
25496 } ISpeechPhrasePropertyVtbl;
25497 interface ISpeechPhraseProperty {
25498     CONST_VTBL ISpeechPhrasePropertyVtbl* lpVtbl;
25499 };
25500 
25501 #ifdef COBJMACROS
25502 #ifndef WIDL_C_INLINE_WRAPPERS
25503 /*** IUnknown methods ***/
25504 #define ISpeechPhraseProperty_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25505 #define ISpeechPhraseProperty_AddRef(This) (This)->lpVtbl->AddRef(This)
25506 #define ISpeechPhraseProperty_Release(This) (This)->lpVtbl->Release(This)
25507 /*** IDispatch methods ***/
25508 #define ISpeechPhraseProperty_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
25509 #define ISpeechPhraseProperty_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
25510 #define ISpeechPhraseProperty_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
25511 #define ISpeechPhraseProperty_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
25512 /*** ISpeechPhraseProperty methods ***/
25513 #define ISpeechPhraseProperty_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
25514 #define ISpeechPhraseProperty_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
25515 #define ISpeechPhraseProperty_get_Value(This,Value) (This)->lpVtbl->get_Value(This,Value)
25516 #define ISpeechPhraseProperty_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
25517 #define ISpeechPhraseProperty_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
25518 #define ISpeechPhraseProperty_get_EngineConfidence(This,Confidence) (This)->lpVtbl->get_EngineConfidence(This,Confidence)
25519 #define ISpeechPhraseProperty_get_Confidence(This,Confidence) (This)->lpVtbl->get_Confidence(This,Confidence)
25520 #define ISpeechPhraseProperty_get_Parent(This,ParentProperty) (This)->lpVtbl->get_Parent(This,ParentProperty)
25521 #define ISpeechPhraseProperty_get_Children(This,Children) (This)->lpVtbl->get_Children(This,Children)
25522 #else
25523 /*** IUnknown methods ***/
25524 static FORCEINLINE HRESULT ISpeechPhraseProperty_QueryInterface(ISpeechPhraseProperty* This,REFIID riid,void **ppvObject) {
25525     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25526 }
25527 static FORCEINLINE ULONG ISpeechPhraseProperty_AddRef(ISpeechPhraseProperty* This) {
25528     return This->lpVtbl->AddRef(This);
25529 }
25530 static FORCEINLINE ULONG ISpeechPhraseProperty_Release(ISpeechPhraseProperty* This) {
25531     return This->lpVtbl->Release(This);
25532 }
25533 /*** IDispatch methods ***/
25534 static FORCEINLINE HRESULT ISpeechPhraseProperty_GetTypeInfoCount(ISpeechPhraseProperty* This,UINT *pctinfo) {
25535     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
25536 }
25537 static FORCEINLINE HRESULT ISpeechPhraseProperty_GetTypeInfo(ISpeechPhraseProperty* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
25538     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
25539 }
25540 static FORCEINLINE HRESULT ISpeechPhraseProperty_GetIDsOfNames(ISpeechPhraseProperty* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
25541     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
25542 }
25543 static FORCEINLINE HRESULT ISpeechPhraseProperty_Invoke(ISpeechPhraseProperty* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
25544     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
25545 }
25546 /*** ISpeechPhraseProperty methods ***/
25547 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Name(ISpeechPhraseProperty* This,BSTR *Name) {
25548     return This->lpVtbl->get_Name(This,Name);
25549 }
25550 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Id(ISpeechPhraseProperty* This,LONG *Id) {
25551     return This->lpVtbl->get_Id(This,Id);
25552 }
25553 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Value(ISpeechPhraseProperty* This,VARIANT *Value) {
25554     return This->lpVtbl->get_Value(This,Value);
25555 }
25556 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_FirstElement(ISpeechPhraseProperty* This,LONG *FirstElement) {
25557     return This->lpVtbl->get_FirstElement(This,FirstElement);
25558 }
25559 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_NumberOfElements(ISpeechPhraseProperty* This,LONG *NumberOfElements) {
25560     return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
25561 }
25562 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_EngineConfidence(ISpeechPhraseProperty* This,float *Confidence) {
25563     return This->lpVtbl->get_EngineConfidence(This,Confidence);
25564 }
25565 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Confidence(ISpeechPhraseProperty* This,SpeechEngineConfidence *Confidence) {
25566     return This->lpVtbl->get_Confidence(This,Confidence);
25567 }
25568 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Parent(ISpeechPhraseProperty* This,ISpeechPhraseProperty **ParentProperty) {
25569     return This->lpVtbl->get_Parent(This,ParentProperty);
25570 }
25571 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Children(ISpeechPhraseProperty* This,ISpeechPhraseProperties **Children) {
25572     return This->lpVtbl->get_Children(This,Children);
25573 }
25574 #endif
25575 #endif
25576 
25577 #endif
25578 
25579 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_Name_Proxy(
25580     ISpeechPhraseProperty* This,
25581     BSTR *Name);
25582 void __RPC_STUB ISpeechPhraseProperty_get_Name_Stub(
25583     IRpcStubBuffer* This,
25584     IRpcChannelBuffer* pRpcChannelBuffer,
25585     PRPC_MESSAGE pRpcMessage,
25586     DWORD* pdwStubPhase);
25587 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_Id_Proxy(
25588     ISpeechPhraseProperty* This,
25589     LONG *Id);
25590 void __RPC_STUB ISpeechPhraseProperty_get_Id_Stub(
25591     IRpcStubBuffer* This,
25592     IRpcChannelBuffer* pRpcChannelBuffer,
25593     PRPC_MESSAGE pRpcMessage,
25594     DWORD* pdwStubPhase);
25595 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_Value_Proxy(
25596     ISpeechPhraseProperty* This,
25597     VARIANT *Value);
25598 void __RPC_STUB ISpeechPhraseProperty_get_Value_Stub(
25599     IRpcStubBuffer* This,
25600     IRpcChannelBuffer* pRpcChannelBuffer,
25601     PRPC_MESSAGE pRpcMessage,
25602     DWORD* pdwStubPhase);
25603 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_FirstElement_Proxy(
25604     ISpeechPhraseProperty* This,
25605     LONG *FirstElement);
25606 void __RPC_STUB ISpeechPhraseProperty_get_FirstElement_Stub(
25607     IRpcStubBuffer* This,
25608     IRpcChannelBuffer* pRpcChannelBuffer,
25609     PRPC_MESSAGE pRpcMessage,
25610     DWORD* pdwStubPhase);
25611 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_NumberOfElements_Proxy(
25612     ISpeechPhraseProperty* This,
25613     LONG *NumberOfElements);
25614 void __RPC_STUB ISpeechPhraseProperty_get_NumberOfElements_Stub(
25615     IRpcStubBuffer* This,
25616     IRpcChannelBuffer* pRpcChannelBuffer,
25617     PRPC_MESSAGE pRpcMessage,
25618     DWORD* pdwStubPhase);
25619 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_EngineConfidence_Proxy(
25620     ISpeechPhraseProperty* This,
25621     float *Confidence);
25622 void __RPC_STUB ISpeechPhraseProperty_get_EngineConfidence_Stub(
25623     IRpcStubBuffer* This,
25624     IRpcChannelBuffer* pRpcChannelBuffer,
25625     PRPC_MESSAGE pRpcMessage,
25626     DWORD* pdwStubPhase);
25627 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_Confidence_Proxy(
25628     ISpeechPhraseProperty* This,
25629     SpeechEngineConfidence *Confidence);
25630 void __RPC_STUB ISpeechPhraseProperty_get_Confidence_Stub(
25631     IRpcStubBuffer* This,
25632     IRpcChannelBuffer* pRpcChannelBuffer,
25633     PRPC_MESSAGE pRpcMessage,
25634     DWORD* pdwStubPhase);
25635 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_Parent_Proxy(
25636     ISpeechPhraseProperty* This,
25637     ISpeechPhraseProperty **ParentProperty);
25638 void __RPC_STUB ISpeechPhraseProperty_get_Parent_Stub(
25639     IRpcStubBuffer* This,
25640     IRpcChannelBuffer* pRpcChannelBuffer,
25641     PRPC_MESSAGE pRpcMessage,
25642     DWORD* pdwStubPhase);
25643 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_Children_Proxy(
25644     ISpeechPhraseProperty* This,
25645     ISpeechPhraseProperties **Children);
25646 void __RPC_STUB ISpeechPhraseProperty_get_Children_Stub(
25647     IRpcStubBuffer* This,
25648     IRpcChannelBuffer* pRpcChannelBuffer,
25649     PRPC_MESSAGE pRpcMessage,
25650     DWORD* pdwStubPhase);
25651 
25652 #endif  /* __ISpeechPhraseProperty_INTERFACE_DEFINED__ */
25653 
25654 /*****************************************************************************
25655  * ISpeechPhraseProperties interface
25656  */
25657 #ifndef __ISpeechPhraseProperties_INTERFACE_DEFINED__
25658 #define __ISpeechPhraseProperties_INTERFACE_DEFINED__
25659 
25660 DEFINE_GUID(IID_ISpeechPhraseProperties, 0x08166b47, 0x102e, 0x4b23, 0xa5,0x99, 0xbd,0xb9,0x8d,0xbf,0xd1,0xf4);
25661 #if defined(__cplusplus) && !defined(CINTERFACE)
25662 MIDL_INTERFACE("08166b47-102e-4b23-a599-bdb98dbfd1f4")
25663 ISpeechPhraseProperties : public IDispatch
25664 {
25665     virtual HRESULT STDMETHODCALLTYPE get_Count(
25666         LONG *Count) = 0;
25667 
25668     virtual HRESULT STDMETHODCALLTYPE Item(
25669         LONG Index,
25670         ISpeechPhraseProperty **Property) = 0;
25671 
25672     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
25673         IUnknown **EnumVARIANT) = 0;
25674 
25675 };
25676 #ifdef __CRT_UUID_DECL
25677 __CRT_UUID_DECL(ISpeechPhraseProperties, 0x08166b47, 0x102e, 0x4b23, 0xa5,0x99, 0xbd,0xb9,0x8d,0xbf,0xd1,0xf4)
25678 #endif
25679 #else
25680 typedef struct ISpeechPhrasePropertiesVtbl {
25681     BEGIN_INTERFACE
25682 
25683     /*** IUnknown methods ***/
25684     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25685         ISpeechPhraseProperties* This,
25686         REFIID riid,
25687         void **ppvObject);
25688 
25689     ULONG (STDMETHODCALLTYPE *AddRef)(
25690         ISpeechPhraseProperties* This);
25691 
25692     ULONG (STDMETHODCALLTYPE *Release)(
25693         ISpeechPhraseProperties* This);
25694 
25695     /*** IDispatch methods ***/
25696     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
25697         ISpeechPhraseProperties* This,
25698         UINT *pctinfo);
25699 
25700     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
25701         ISpeechPhraseProperties* This,
25702         UINT iTInfo,
25703         LCID lcid,
25704         ITypeInfo **ppTInfo);
25705 
25706     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
25707         ISpeechPhraseProperties* This,
25708         REFIID riid,
25709         LPOLESTR *rgszNames,
25710         UINT cNames,
25711         LCID lcid,
25712         DISPID *rgDispId);
25713 
25714     HRESULT (STDMETHODCALLTYPE *Invoke)(
25715         ISpeechPhraseProperties* This,
25716         DISPID dispIdMember,
25717         REFIID riid,
25718         LCID lcid,
25719         WORD wFlags,
25720         DISPPARAMS *pDispParams,
25721         VARIANT *pVarResult,
25722         EXCEPINFO *pExcepInfo,
25723         UINT *puArgErr);
25724 
25725     /*** ISpeechPhraseProperties methods ***/
25726     HRESULT (STDMETHODCALLTYPE *get_Count)(
25727         ISpeechPhraseProperties* This,
25728         LONG *Count);
25729 
25730     HRESULT (STDMETHODCALLTYPE *Item)(
25731         ISpeechPhraseProperties* This,
25732         LONG Index,
25733         ISpeechPhraseProperty **Property);
25734 
25735     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
25736         ISpeechPhraseProperties* This,
25737         IUnknown **EnumVARIANT);
25738 
25739     END_INTERFACE
25740 } ISpeechPhrasePropertiesVtbl;
25741 interface ISpeechPhraseProperties {
25742     CONST_VTBL ISpeechPhrasePropertiesVtbl* lpVtbl;
25743 };
25744 
25745 #ifdef COBJMACROS
25746 #ifndef WIDL_C_INLINE_WRAPPERS
25747 /*** IUnknown methods ***/
25748 #define ISpeechPhraseProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25749 #define ISpeechPhraseProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
25750 #define ISpeechPhraseProperties_Release(This) (This)->lpVtbl->Release(This)
25751 /*** IDispatch methods ***/
25752 #define ISpeechPhraseProperties_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
25753 #define ISpeechPhraseProperties_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
25754 #define ISpeechPhraseProperties_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
25755 #define ISpeechPhraseProperties_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
25756 /*** ISpeechPhraseProperties methods ***/
25757 #define ISpeechPhraseProperties_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
25758 #define ISpeechPhraseProperties_Item(This,Index,Property) (This)->lpVtbl->Item(This,Index,Property)
25759 #define ISpeechPhraseProperties_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
25760 #else
25761 /*** IUnknown methods ***/
25762 static FORCEINLINE HRESULT ISpeechPhraseProperties_QueryInterface(ISpeechPhraseProperties* This,REFIID riid,void **ppvObject) {
25763     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25764 }
25765 static FORCEINLINE ULONG ISpeechPhraseProperties_AddRef(ISpeechPhraseProperties* This) {
25766     return This->lpVtbl->AddRef(This);
25767 }
25768 static FORCEINLINE ULONG ISpeechPhraseProperties_Release(ISpeechPhraseProperties* This) {
25769     return This->lpVtbl->Release(This);
25770 }
25771 /*** IDispatch methods ***/
25772 static FORCEINLINE HRESULT ISpeechPhraseProperties_GetTypeInfoCount(ISpeechPhraseProperties* This,UINT *pctinfo) {
25773     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
25774 }
25775 static FORCEINLINE HRESULT ISpeechPhraseProperties_GetTypeInfo(ISpeechPhraseProperties* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
25776     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
25777 }
25778 static FORCEINLINE HRESULT ISpeechPhraseProperties_GetIDsOfNames(ISpeechPhraseProperties* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
25779     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
25780 }
25781 static FORCEINLINE HRESULT ISpeechPhraseProperties_Invoke(ISpeechPhraseProperties* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
25782     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
25783 }
25784 /*** ISpeechPhraseProperties methods ***/
25785 static FORCEINLINE HRESULT ISpeechPhraseProperties_get_Count(ISpeechPhraseProperties* This,LONG *Count) {
25786     return This->lpVtbl->get_Count(This,Count);
25787 }
25788 static FORCEINLINE HRESULT ISpeechPhraseProperties_Item(ISpeechPhraseProperties* This,LONG Index,ISpeechPhraseProperty **Property) {
25789     return This->lpVtbl->Item(This,Index,Property);
25790 }
25791 static FORCEINLINE HRESULT ISpeechPhraseProperties_get__NewEnum(ISpeechPhraseProperties* This,IUnknown **EnumVARIANT) {
25792     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
25793 }
25794 #endif
25795 #endif
25796 
25797 #endif
25798 
25799 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperties_get_Count_Proxy(
25800     ISpeechPhraseProperties* This,
25801     LONG *Count);
25802 void __RPC_STUB ISpeechPhraseProperties_get_Count_Stub(
25803     IRpcStubBuffer* This,
25804     IRpcChannelBuffer* pRpcChannelBuffer,
25805     PRPC_MESSAGE pRpcMessage,
25806     DWORD* pdwStubPhase);
25807 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperties_Item_Proxy(
25808     ISpeechPhraseProperties* This,
25809     LONG Index,
25810     ISpeechPhraseProperty **Property);
25811 void __RPC_STUB ISpeechPhraseProperties_Item_Stub(
25812     IRpcStubBuffer* This,
25813     IRpcChannelBuffer* pRpcChannelBuffer,
25814     PRPC_MESSAGE pRpcMessage,
25815     DWORD* pdwStubPhase);
25816 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperties_get__NewEnum_Proxy(
25817     ISpeechPhraseProperties* This,
25818     IUnknown **EnumVARIANT);
25819 void __RPC_STUB ISpeechPhraseProperties_get__NewEnum_Stub(
25820     IRpcStubBuffer* This,
25821     IRpcChannelBuffer* pRpcChannelBuffer,
25822     PRPC_MESSAGE pRpcMessage,
25823     DWORD* pdwStubPhase);
25824 
25825 #endif  /* __ISpeechPhraseProperties_INTERFACE_DEFINED__ */
25826 
25827 /*****************************************************************************
25828  * ISpeechPhraseRule interface
25829  */
25830 #ifndef __ISpeechPhraseRule_INTERFACE_DEFINED__
25831 #define __ISpeechPhraseRule_INTERFACE_DEFINED__
25832 
25833 DEFINE_GUID(IID_ISpeechPhraseRule, 0xa7bfe112, 0xa4a0, 0x48d9, 0xb6,0x02, 0xc3,0x13,0x84,0x3f,0x69,0x64);
25834 #if defined(__cplusplus) && !defined(CINTERFACE)
25835 MIDL_INTERFACE("a7bfe112-a4a0-48d9-b602-c313843f6964")
25836 ISpeechPhraseRule : public IDispatch
25837 {
25838     virtual HRESULT STDMETHODCALLTYPE get_Name(
25839         BSTR *Name) = 0;
25840 
25841     virtual HRESULT STDMETHODCALLTYPE get_Id(
25842         LONG *Id) = 0;
25843 
25844     virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
25845         LONG *FirstElement) = 0;
25846 
25847     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
25848         LONG *NumberOfElements) = 0;
25849 
25850     virtual HRESULT STDMETHODCALLTYPE get_Parent(
25851         ISpeechPhraseRule **Parent) = 0;
25852 
25853     virtual HRESULT STDMETHODCALLTYPE get_Children(
25854         ISpeechPhraseRules **Children) = 0;
25855 
25856     virtual HRESULT STDMETHODCALLTYPE get_Confidence(
25857         SpeechEngineConfidence *ActualConfidence) = 0;
25858 
25859     virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
25860         float *EngineConfidence) = 0;
25861 
25862 };
25863 #ifdef __CRT_UUID_DECL
25864 __CRT_UUID_DECL(ISpeechPhraseRule, 0xa7bfe112, 0xa4a0, 0x48d9, 0xb6,0x02, 0xc3,0x13,0x84,0x3f,0x69,0x64)
25865 #endif
25866 #else
25867 typedef struct ISpeechPhraseRuleVtbl {
25868     BEGIN_INTERFACE
25869 
25870     /*** IUnknown methods ***/
25871     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25872         ISpeechPhraseRule* This,
25873         REFIID riid,
25874         void **ppvObject);
25875 
25876     ULONG (STDMETHODCALLTYPE *AddRef)(
25877         ISpeechPhraseRule* This);
25878 
25879     ULONG (STDMETHODCALLTYPE *Release)(
25880         ISpeechPhraseRule* This);
25881 
25882     /*** IDispatch methods ***/
25883     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
25884         ISpeechPhraseRule* This,
25885         UINT *pctinfo);
25886 
25887     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
25888         ISpeechPhraseRule* This,
25889         UINT iTInfo,
25890         LCID lcid,
25891         ITypeInfo **ppTInfo);
25892 
25893     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
25894         ISpeechPhraseRule* This,
25895         REFIID riid,
25896         LPOLESTR *rgszNames,
25897         UINT cNames,
25898         LCID lcid,
25899         DISPID *rgDispId);
25900 
25901     HRESULT (STDMETHODCALLTYPE *Invoke)(
25902         ISpeechPhraseRule* This,
25903         DISPID dispIdMember,
25904         REFIID riid,
25905         LCID lcid,
25906         WORD wFlags,
25907         DISPPARAMS *pDispParams,
25908         VARIANT *pVarResult,
25909         EXCEPINFO *pExcepInfo,
25910         UINT *puArgErr);
25911 
25912     /*** ISpeechPhraseRule methods ***/
25913     HRESULT (STDMETHODCALLTYPE *get_Name)(
25914         ISpeechPhraseRule* This,
25915         BSTR *Name);
25916 
25917     HRESULT (STDMETHODCALLTYPE *get_Id)(
25918         ISpeechPhraseRule* This,
25919         LONG *Id);
25920 
25921     HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
25922         ISpeechPhraseRule* This,
25923         LONG *FirstElement);
25924 
25925     HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
25926         ISpeechPhraseRule* This,
25927         LONG *NumberOfElements);
25928 
25929     HRESULT (STDMETHODCALLTYPE *get_Parent)(
25930         ISpeechPhraseRule* This,
25931         ISpeechPhraseRule **Parent);
25932 
25933     HRESULT (STDMETHODCALLTYPE *get_Children)(
25934         ISpeechPhraseRule* This,
25935         ISpeechPhraseRules **Children);
25936 
25937     HRESULT (STDMETHODCALLTYPE *get_Confidence)(
25938         ISpeechPhraseRule* This,
25939         SpeechEngineConfidence *ActualConfidence);
25940 
25941     HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
25942         ISpeechPhraseRule* This,
25943         float *EngineConfidence);
25944 
25945     END_INTERFACE
25946 } ISpeechPhraseRuleVtbl;
25947 interface ISpeechPhraseRule {
25948     CONST_VTBL ISpeechPhraseRuleVtbl* lpVtbl;
25949 };
25950 
25951 #ifdef COBJMACROS
25952 #ifndef WIDL_C_INLINE_WRAPPERS
25953 /*** IUnknown methods ***/
25954 #define ISpeechPhraseRule_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25955 #define ISpeechPhraseRule_AddRef(This) (This)->lpVtbl->AddRef(This)
25956 #define ISpeechPhraseRule_Release(This) (This)->lpVtbl->Release(This)
25957 /*** IDispatch methods ***/
25958 #define ISpeechPhraseRule_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
25959 #define ISpeechPhraseRule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
25960 #define ISpeechPhraseRule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
25961 #define ISpeechPhraseRule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
25962 /*** ISpeechPhraseRule methods ***/
25963 #define ISpeechPhraseRule_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
25964 #define ISpeechPhraseRule_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
25965 #define ISpeechPhraseRule_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
25966 #define ISpeechPhraseRule_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
25967 #define ISpeechPhraseRule_get_Parent(This,Parent) (This)->lpVtbl->get_Parent(This,Parent)
25968 #define ISpeechPhraseRule_get_Children(This,Children) (This)->lpVtbl->get_Children(This,Children)
25969 #define ISpeechPhraseRule_get_Confidence(This,ActualConfidence) (This)->lpVtbl->get_Confidence(This,ActualConfidence)
25970 #define ISpeechPhraseRule_get_EngineConfidence(This,EngineConfidence) (This)->lpVtbl->get_EngineConfidence(This,EngineConfidence)
25971 #else
25972 /*** IUnknown methods ***/
25973 static FORCEINLINE HRESULT ISpeechPhraseRule_QueryInterface(ISpeechPhraseRule* This,REFIID riid,void **ppvObject) {
25974     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25975 }
25976 static FORCEINLINE ULONG ISpeechPhraseRule_AddRef(ISpeechPhraseRule* This) {
25977     return This->lpVtbl->AddRef(This);
25978 }
25979 static FORCEINLINE ULONG ISpeechPhraseRule_Release(ISpeechPhraseRule* This) {
25980     return This->lpVtbl->Release(This);
25981 }
25982 /*** IDispatch methods ***/
25983 static FORCEINLINE HRESULT ISpeechPhraseRule_GetTypeInfoCount(ISpeechPhraseRule* This,UINT *pctinfo) {
25984     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
25985 }
25986 static FORCEINLINE HRESULT ISpeechPhraseRule_GetTypeInfo(ISpeechPhraseRule* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
25987     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
25988 }
25989 static FORCEINLINE HRESULT ISpeechPhraseRule_GetIDsOfNames(ISpeechPhraseRule* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
25990     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
25991 }
25992 static FORCEINLINE HRESULT ISpeechPhraseRule_Invoke(ISpeechPhraseRule* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
25993     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
25994 }
25995 /*** ISpeechPhraseRule methods ***/
25996 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Name(ISpeechPhraseRule* This,BSTR *Name) {
25997     return This->lpVtbl->get_Name(This,Name);
25998 }
25999 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Id(ISpeechPhraseRule* This,LONG *Id) {
26000     return This->lpVtbl->get_Id(This,Id);
26001 }
26002 static FORCEINLINE HRESULT ISpeechPhraseRule_get_FirstElement(ISpeechPhraseRule* This,LONG *FirstElement) {
26003     return This->lpVtbl->get_FirstElement(This,FirstElement);
26004 }
26005 static FORCEINLINE HRESULT ISpeechPhraseRule_get_NumberOfElements(ISpeechPhraseRule* This,LONG *NumberOfElements) {
26006     return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
26007 }
26008 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Parent(ISpeechPhraseRule* This,ISpeechPhraseRule **Parent) {
26009     return This->lpVtbl->get_Parent(This,Parent);
26010 }
26011 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Children(ISpeechPhraseRule* This,ISpeechPhraseRules **Children) {
26012     return This->lpVtbl->get_Children(This,Children);
26013 }
26014 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Confidence(ISpeechPhraseRule* This,SpeechEngineConfidence *ActualConfidence) {
26015     return This->lpVtbl->get_Confidence(This,ActualConfidence);
26016 }
26017 static FORCEINLINE HRESULT ISpeechPhraseRule_get_EngineConfidence(ISpeechPhraseRule* This,float *EngineConfidence) {
26018     return This->lpVtbl->get_EngineConfidence(This,EngineConfidence);
26019 }
26020 #endif
26021 #endif
26022 
26023 #endif
26024 
26025 HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_Name_Proxy(
26026     ISpeechPhraseRule* This,
26027     BSTR *Name);
26028 void __RPC_STUB ISpeechPhraseRule_get_Name_Stub(
26029     IRpcStubBuffer* This,
26030     IRpcChannelBuffer* pRpcChannelBuffer,
26031     PRPC_MESSAGE pRpcMessage,
26032     DWORD* pdwStubPhase);
26033 HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_Id_Proxy(
26034     ISpeechPhraseRule* This,
26035     LONG *Id);
26036 void __RPC_STUB ISpeechPhraseRule_get_Id_Stub(
26037     IRpcStubBuffer* This,
26038     IRpcChannelBuffer* pRpcChannelBuffer,
26039     PRPC_MESSAGE pRpcMessage,
26040     DWORD* pdwStubPhase);
26041 HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_FirstElement_Proxy(
26042     ISpeechPhraseRule* This,
26043     LONG *FirstElement);
26044 void __RPC_STUB ISpeechPhraseRule_get_FirstElement_Stub(
26045     IRpcStubBuffer* This,
26046     IRpcChannelBuffer* pRpcChannelBuffer,
26047     PRPC_MESSAGE pRpcMessage,
26048     DWORD* pdwStubPhase);
26049 HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_NumberOfElements_Proxy(
26050     ISpeechPhraseRule* This,
26051     LONG *NumberOfElements);
26052 void __RPC_STUB ISpeechPhraseRule_get_NumberOfElements_Stub(
26053     IRpcStubBuffer* This,
26054     IRpcChannelBuffer* pRpcChannelBuffer,
26055     PRPC_MESSAGE pRpcMessage,
26056     DWORD* pdwStubPhase);
26057 HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_Parent_Proxy(
26058     ISpeechPhraseRule* This,
26059     ISpeechPhraseRule **Parent);
26060 void __RPC_STUB ISpeechPhraseRule_get_Parent_Stub(
26061     IRpcStubBuffer* This,
26062     IRpcChannelBuffer* pRpcChannelBuffer,
26063     PRPC_MESSAGE pRpcMessage,
26064     DWORD* pdwStubPhase);
26065 HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_Children_Proxy(
26066     ISpeechPhraseRule* This,
26067     ISpeechPhraseRules **Children);
26068 void __RPC_STUB ISpeechPhraseRule_get_Children_Stub(
26069     IRpcStubBuffer* This,
26070     IRpcChannelBuffer* pRpcChannelBuffer,
26071     PRPC_MESSAGE pRpcMessage,
26072     DWORD* pdwStubPhase);
26073 HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_Confidence_Proxy(
26074     ISpeechPhraseRule* This,
26075     SpeechEngineConfidence *ActualConfidence);
26076 void __RPC_STUB ISpeechPhraseRule_get_Confidence_Stub(
26077     IRpcStubBuffer* This,
26078     IRpcChannelBuffer* pRpcChannelBuffer,
26079     PRPC_MESSAGE pRpcMessage,
26080     DWORD* pdwStubPhase);
26081 HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_EngineConfidence_Proxy(
26082     ISpeechPhraseRule* This,
26083     float *EngineConfidence);
26084 void __RPC_STUB ISpeechPhraseRule_get_EngineConfidence_Stub(
26085     IRpcStubBuffer* This,
26086     IRpcChannelBuffer* pRpcChannelBuffer,
26087     PRPC_MESSAGE pRpcMessage,
26088     DWORD* pdwStubPhase);
26089 
26090 #endif  /* __ISpeechPhraseRule_INTERFACE_DEFINED__ */
26091 
26092 /*****************************************************************************
26093  * ISpeechPhraseRules interface
26094  */
26095 #ifndef __ISpeechPhraseRules_INTERFACE_DEFINED__
26096 #define __ISpeechPhraseRules_INTERFACE_DEFINED__
26097 
26098 DEFINE_GUID(IID_ISpeechPhraseRules, 0x9047d593, 0x01dd, 0x4b72, 0x81,0xa3, 0xe4,0xa0,0xca,0x69,0xf4,0x07);
26099 #if defined(__cplusplus) && !defined(CINTERFACE)
26100 MIDL_INTERFACE("9047d593-01dd-4b72-81a3-e4a0ca69f407")
26101 ISpeechPhraseRules : public IDispatch
26102 {
26103     virtual HRESULT STDMETHODCALLTYPE get_Count(
26104         LONG *Count) = 0;
26105 
26106     virtual HRESULT STDMETHODCALLTYPE Item(
26107         LONG Index,
26108         ISpeechPhraseRule **Rule) = 0;
26109 
26110     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
26111         IUnknown **EnumVARIANT) = 0;
26112 
26113 };
26114 #ifdef __CRT_UUID_DECL
26115 __CRT_UUID_DECL(ISpeechPhraseRules, 0x9047d593, 0x01dd, 0x4b72, 0x81,0xa3, 0xe4,0xa0,0xca,0x69,0xf4,0x07)
26116 #endif
26117 #else
26118 typedef struct ISpeechPhraseRulesVtbl {
26119     BEGIN_INTERFACE
26120 
26121     /*** IUnknown methods ***/
26122     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
26123         ISpeechPhraseRules* This,
26124         REFIID riid,
26125         void **ppvObject);
26126 
26127     ULONG (STDMETHODCALLTYPE *AddRef)(
26128         ISpeechPhraseRules* This);
26129 
26130     ULONG (STDMETHODCALLTYPE *Release)(
26131         ISpeechPhraseRules* This);
26132 
26133     /*** IDispatch methods ***/
26134     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
26135         ISpeechPhraseRules* This,
26136         UINT *pctinfo);
26137 
26138     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
26139         ISpeechPhraseRules* This,
26140         UINT iTInfo,
26141         LCID lcid,
26142         ITypeInfo **ppTInfo);
26143 
26144     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
26145         ISpeechPhraseRules* This,
26146         REFIID riid,
26147         LPOLESTR *rgszNames,
26148         UINT cNames,
26149         LCID lcid,
26150         DISPID *rgDispId);
26151 
26152     HRESULT (STDMETHODCALLTYPE *Invoke)(
26153         ISpeechPhraseRules* This,
26154         DISPID dispIdMember,
26155         REFIID riid,
26156         LCID lcid,
26157         WORD wFlags,
26158         DISPPARAMS *pDispParams,
26159         VARIANT *pVarResult,
26160         EXCEPINFO *pExcepInfo,
26161         UINT *puArgErr);
26162 
26163     /*** ISpeechPhraseRules methods ***/
26164     HRESULT (STDMETHODCALLTYPE *get_Count)(
26165         ISpeechPhraseRules* This,
26166         LONG *Count);
26167 
26168     HRESULT (STDMETHODCALLTYPE *Item)(
26169         ISpeechPhraseRules* This,
26170         LONG Index,
26171         ISpeechPhraseRule **Rule);
26172 
26173     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
26174         ISpeechPhraseRules* This,
26175         IUnknown **EnumVARIANT);
26176 
26177     END_INTERFACE
26178 } ISpeechPhraseRulesVtbl;
26179 interface ISpeechPhraseRules {
26180     CONST_VTBL ISpeechPhraseRulesVtbl* lpVtbl;
26181 };
26182 
26183 #ifdef COBJMACROS
26184 #ifndef WIDL_C_INLINE_WRAPPERS
26185 /*** IUnknown methods ***/
26186 #define ISpeechPhraseRules_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
26187 #define ISpeechPhraseRules_AddRef(This) (This)->lpVtbl->AddRef(This)
26188 #define ISpeechPhraseRules_Release(This) (This)->lpVtbl->Release(This)
26189 /*** IDispatch methods ***/
26190 #define ISpeechPhraseRules_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
26191 #define ISpeechPhraseRules_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
26192 #define ISpeechPhraseRules_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
26193 #define ISpeechPhraseRules_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
26194 /*** ISpeechPhraseRules methods ***/
26195 #define ISpeechPhraseRules_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
26196 #define ISpeechPhraseRules_Item(This,Index,Rule) (This)->lpVtbl->Item(This,Index,Rule)
26197 #define ISpeechPhraseRules_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
26198 #else
26199 /*** IUnknown methods ***/
26200 static FORCEINLINE HRESULT ISpeechPhraseRules_QueryInterface(ISpeechPhraseRules* This,REFIID riid,void **ppvObject) {
26201     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
26202 }
26203 static FORCEINLINE ULONG ISpeechPhraseRules_AddRef(ISpeechPhraseRules* This) {
26204     return This->lpVtbl->AddRef(This);
26205 }
26206 static FORCEINLINE ULONG ISpeechPhraseRules_Release(ISpeechPhraseRules* This) {
26207     return This->lpVtbl->Release(This);
26208 }
26209 /*** IDispatch methods ***/
26210 static FORCEINLINE HRESULT ISpeechPhraseRules_GetTypeInfoCount(ISpeechPhraseRules* This,UINT *pctinfo) {
26211     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
26212 }
26213 static FORCEINLINE HRESULT ISpeechPhraseRules_GetTypeInfo(ISpeechPhraseRules* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
26214     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
26215 }
26216 static FORCEINLINE HRESULT ISpeechPhraseRules_GetIDsOfNames(ISpeechPhraseRules* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
26217     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
26218 }
26219 static FORCEINLINE HRESULT ISpeechPhraseRules_Invoke(ISpeechPhraseRules* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
26220     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
26221 }
26222 /*** ISpeechPhraseRules methods ***/
26223 static FORCEINLINE HRESULT ISpeechPhraseRules_get_Count(ISpeechPhraseRules* This,LONG *Count) {
26224     return This->lpVtbl->get_Count(This,Count);
26225 }
26226 static FORCEINLINE HRESULT ISpeechPhraseRules_Item(ISpeechPhraseRules* This,LONG Index,ISpeechPhraseRule **Rule) {
26227     return This->lpVtbl->Item(This,Index,Rule);
26228 }
26229 static FORCEINLINE HRESULT ISpeechPhraseRules_get__NewEnum(ISpeechPhraseRules* This,IUnknown **EnumVARIANT) {
26230     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
26231 }
26232 #endif
26233 #endif
26234 
26235 #endif
26236 
26237 HRESULT STDMETHODCALLTYPE ISpeechPhraseRules_get_Count_Proxy(
26238     ISpeechPhraseRules* This,
26239     LONG *Count);
26240 void __RPC_STUB ISpeechPhraseRules_get_Count_Stub(
26241     IRpcStubBuffer* This,
26242     IRpcChannelBuffer* pRpcChannelBuffer,
26243     PRPC_MESSAGE pRpcMessage,
26244     DWORD* pdwStubPhase);
26245 HRESULT STDMETHODCALLTYPE ISpeechPhraseRules_Item_Proxy(
26246     ISpeechPhraseRules* This,
26247     LONG Index,
26248     ISpeechPhraseRule **Rule);
26249 void __RPC_STUB ISpeechPhraseRules_Item_Stub(
26250     IRpcStubBuffer* This,
26251     IRpcChannelBuffer* pRpcChannelBuffer,
26252     PRPC_MESSAGE pRpcMessage,
26253     DWORD* pdwStubPhase);
26254 HRESULT STDMETHODCALLTYPE ISpeechPhraseRules_get__NewEnum_Proxy(
26255     ISpeechPhraseRules* This,
26256     IUnknown **EnumVARIANT);
26257 void __RPC_STUB ISpeechPhraseRules_get__NewEnum_Stub(
26258     IRpcStubBuffer* This,
26259     IRpcChannelBuffer* pRpcChannelBuffer,
26260     PRPC_MESSAGE pRpcMessage,
26261     DWORD* pdwStubPhase);
26262 
26263 #endif  /* __ISpeechPhraseRules_INTERFACE_DEFINED__ */
26264 
26265 /*****************************************************************************
26266  * ISpeechLexiconWords interface
26267  */
26268 #ifndef __ISpeechLexiconWords_INTERFACE_DEFINED__
26269 #define __ISpeechLexiconWords_INTERFACE_DEFINED__
26270 
26271 DEFINE_GUID(IID_ISpeechLexiconWords, 0x8d199862, 0x415e, 0x47d5, 0xac,0x4f, 0xfa,0xa6,0x08,0xb4,0x24,0xe6);
26272 #if defined(__cplusplus) && !defined(CINTERFACE)
26273 MIDL_INTERFACE("8d199862-415e-47d5-ac4f-faa608b424e6")
26274 ISpeechLexiconWords : public IDispatch
26275 {
26276     virtual HRESULT STDMETHODCALLTYPE get_Count(
26277         LONG *Count) = 0;
26278 
26279     virtual HRESULT STDMETHODCALLTYPE Item(
26280         LONG Index,
26281         ISpeechLexiconWord **Word) = 0;
26282 
26283     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
26284         IUnknown **EnumVARIANT) = 0;
26285 
26286 };
26287 #ifdef __CRT_UUID_DECL
26288 __CRT_UUID_DECL(ISpeechLexiconWords, 0x8d199862, 0x415e, 0x47d5, 0xac,0x4f, 0xfa,0xa6,0x08,0xb4,0x24,0xe6)
26289 #endif
26290 #else
26291 typedef struct ISpeechLexiconWordsVtbl {
26292     BEGIN_INTERFACE
26293 
26294     /*** IUnknown methods ***/
26295     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
26296         ISpeechLexiconWords* This,
26297         REFIID riid,
26298         void **ppvObject);
26299 
26300     ULONG (STDMETHODCALLTYPE *AddRef)(
26301         ISpeechLexiconWords* This);
26302 
26303     ULONG (STDMETHODCALLTYPE *Release)(
26304         ISpeechLexiconWords* This);
26305 
26306     /*** IDispatch methods ***/
26307     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
26308         ISpeechLexiconWords* This,
26309         UINT *pctinfo);
26310 
26311     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
26312         ISpeechLexiconWords* This,
26313         UINT iTInfo,
26314         LCID lcid,
26315         ITypeInfo **ppTInfo);
26316 
26317     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
26318         ISpeechLexiconWords* This,
26319         REFIID riid,
26320         LPOLESTR *rgszNames,
26321         UINT cNames,
26322         LCID lcid,
26323         DISPID *rgDispId);
26324 
26325     HRESULT (STDMETHODCALLTYPE *Invoke)(
26326         ISpeechLexiconWords* This,
26327         DISPID dispIdMember,
26328         REFIID riid,
26329         LCID lcid,
26330         WORD wFlags,
26331         DISPPARAMS *pDispParams,
26332         VARIANT *pVarResult,
26333         EXCEPINFO *pExcepInfo,
26334         UINT *puArgErr);
26335 
26336     /*** ISpeechLexiconWords methods ***/
26337     HRESULT (STDMETHODCALLTYPE *get_Count)(
26338         ISpeechLexiconWords* This,
26339         LONG *Count);
26340 
26341     HRESULT (STDMETHODCALLTYPE *Item)(
26342         ISpeechLexiconWords* This,
26343         LONG Index,
26344         ISpeechLexiconWord **Word);
26345 
26346     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
26347         ISpeechLexiconWords* This,
26348         IUnknown **EnumVARIANT);
26349 
26350     END_INTERFACE
26351 } ISpeechLexiconWordsVtbl;
26352 interface ISpeechLexiconWords {
26353     CONST_VTBL ISpeechLexiconWordsVtbl* lpVtbl;
26354 };
26355 
26356 #ifdef COBJMACROS
26357 #ifndef WIDL_C_INLINE_WRAPPERS
26358 /*** IUnknown methods ***/
26359 #define ISpeechLexiconWords_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
26360 #define ISpeechLexiconWords_AddRef(This) (This)->lpVtbl->AddRef(This)
26361 #define ISpeechLexiconWords_Release(This) (This)->lpVtbl->Release(This)
26362 /*** IDispatch methods ***/
26363 #define ISpeechLexiconWords_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
26364 #define ISpeechLexiconWords_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
26365 #define ISpeechLexiconWords_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
26366 #define ISpeechLexiconWords_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
26367 /*** ISpeechLexiconWords methods ***/
26368 #define ISpeechLexiconWords_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
26369 #define ISpeechLexiconWords_Item(This,Index,Word) (This)->lpVtbl->Item(This,Index,Word)
26370 #define ISpeechLexiconWords_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
26371 #else
26372 /*** IUnknown methods ***/
26373 static FORCEINLINE HRESULT ISpeechLexiconWords_QueryInterface(ISpeechLexiconWords* This,REFIID riid,void **ppvObject) {
26374     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
26375 }
26376 static FORCEINLINE ULONG ISpeechLexiconWords_AddRef(ISpeechLexiconWords* This) {
26377     return This->lpVtbl->AddRef(This);
26378 }
26379 static FORCEINLINE ULONG ISpeechLexiconWords_Release(ISpeechLexiconWords* This) {
26380     return This->lpVtbl->Release(This);
26381 }
26382 /*** IDispatch methods ***/
26383 static FORCEINLINE HRESULT ISpeechLexiconWords_GetTypeInfoCount(ISpeechLexiconWords* This,UINT *pctinfo) {
26384     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
26385 }
26386 static FORCEINLINE HRESULT ISpeechLexiconWords_GetTypeInfo(ISpeechLexiconWords* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
26387     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
26388 }
26389 static FORCEINLINE HRESULT ISpeechLexiconWords_GetIDsOfNames(ISpeechLexiconWords* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
26390     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
26391 }
26392 static FORCEINLINE HRESULT ISpeechLexiconWords_Invoke(ISpeechLexiconWords* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
26393     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
26394 }
26395 /*** ISpeechLexiconWords methods ***/
26396 static FORCEINLINE HRESULT ISpeechLexiconWords_get_Count(ISpeechLexiconWords* This,LONG *Count) {
26397     return This->lpVtbl->get_Count(This,Count);
26398 }
26399 static FORCEINLINE HRESULT ISpeechLexiconWords_Item(ISpeechLexiconWords* This,LONG Index,ISpeechLexiconWord **Word) {
26400     return This->lpVtbl->Item(This,Index,Word);
26401 }
26402 static FORCEINLINE HRESULT ISpeechLexiconWords_get__NewEnum(ISpeechLexiconWords* This,IUnknown **EnumVARIANT) {
26403     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
26404 }
26405 #endif
26406 #endif
26407 
26408 #endif
26409 
26410 HRESULT STDMETHODCALLTYPE ISpeechLexiconWords_get_Count_Proxy(
26411     ISpeechLexiconWords* This,
26412     LONG *Count);
26413 void __RPC_STUB ISpeechLexiconWords_get_Count_Stub(
26414     IRpcStubBuffer* This,
26415     IRpcChannelBuffer* pRpcChannelBuffer,
26416     PRPC_MESSAGE pRpcMessage,
26417     DWORD* pdwStubPhase);
26418 HRESULT STDMETHODCALLTYPE ISpeechLexiconWords_Item_Proxy(
26419     ISpeechLexiconWords* This,
26420     LONG Index,
26421     ISpeechLexiconWord **Word);
26422 void __RPC_STUB ISpeechLexiconWords_Item_Stub(
26423     IRpcStubBuffer* This,
26424     IRpcChannelBuffer* pRpcChannelBuffer,
26425     PRPC_MESSAGE pRpcMessage,
26426     DWORD* pdwStubPhase);
26427 HRESULT STDMETHODCALLTYPE ISpeechLexiconWords_get__NewEnum_Proxy(
26428     ISpeechLexiconWords* This,
26429     IUnknown **EnumVARIANT);
26430 void __RPC_STUB ISpeechLexiconWords_get__NewEnum_Stub(
26431     IRpcStubBuffer* This,
26432     IRpcChannelBuffer* pRpcChannelBuffer,
26433     PRPC_MESSAGE pRpcMessage,
26434     DWORD* pdwStubPhase);
26435 
26436 #endif  /* __ISpeechLexiconWords_INTERFACE_DEFINED__ */
26437 
26438 /*****************************************************************************
26439  * ISpeechLexicon interface
26440  */
26441 #ifndef __ISpeechLexicon_INTERFACE_DEFINED__
26442 #define __ISpeechLexicon_INTERFACE_DEFINED__
26443 
26444 DEFINE_GUID(IID_ISpeechLexicon, 0x3da7627a, 0xc7ae, 0x4b23, 0x87,0x08, 0x63,0x8c,0x50,0x36,0x2c,0x25);
26445 #if defined(__cplusplus) && !defined(CINTERFACE)
26446 MIDL_INTERFACE("3da7627a-c7ae-4b23-8708-638c50362c25")
26447 ISpeechLexicon : public IDispatch
26448 {
26449     virtual HRESULT STDMETHODCALLTYPE get_GenerationId(
26450         LONG *GenerationId) = 0;
26451 
26452     virtual HRESULT STDMETHODCALLTYPE GetWords(
26453         SpeechLexiconType Flags,
26454         LONG *GenerationID,
26455         ISpeechLexiconWords **Words) = 0;
26456 
26457     virtual HRESULT STDMETHODCALLTYPE AddPronunciation(
26458         BSTR bstrWord,
26459         SpeechLanguageId LangId,
26460         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
26461         BSTR bstrPronunciation = L"") = 0;
26462 
26463     virtual HRESULT STDMETHODCALLTYPE AddPronunciationByPhoneIds(
26464         BSTR bstrWord,
26465         SpeechLanguageId LangId,
26466         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
26467         VARIANT *PhoneIds = 0) = 0;
26468 
26469     virtual HRESULT STDMETHODCALLTYPE RemovePronunciation(
26470         BSTR bstrWord,
26471         SpeechLanguageId LangId,
26472         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
26473         BSTR bstrPronunciation = L"") = 0;
26474 
26475     virtual HRESULT STDMETHODCALLTYPE RemovePronunciationByPhoneIds(
26476         BSTR bstrWord,
26477         SpeechLanguageId LangId,
26478         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
26479         VARIANT *PhoneIds = 0) = 0;
26480 
26481     virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
26482         BSTR bstrWord,
26483         SpeechLanguageId LangId,
26484         SpeechLexiconType TypeFlags,
26485         ISpeechLexiconPronunciations **ppPronunciations) = 0;
26486 
26487     virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
26488         LONG *GenerationID,
26489         ISpeechLexiconWords **ppWords) = 0;
26490 
26491 };
26492 #ifdef __CRT_UUID_DECL
26493 __CRT_UUID_DECL(ISpeechLexicon, 0x3da7627a, 0xc7ae, 0x4b23, 0x87,0x08, 0x63,0x8c,0x50,0x36,0x2c,0x25)
26494 #endif
26495 #else
26496 typedef struct ISpeechLexiconVtbl {
26497     BEGIN_INTERFACE
26498 
26499     /*** IUnknown methods ***/
26500     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
26501         ISpeechLexicon* This,
26502         REFIID riid,
26503         void **ppvObject);
26504 
26505     ULONG (STDMETHODCALLTYPE *AddRef)(
26506         ISpeechLexicon* This);
26507 
26508     ULONG (STDMETHODCALLTYPE *Release)(
26509         ISpeechLexicon* This);
26510 
26511     /*** IDispatch methods ***/
26512     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
26513         ISpeechLexicon* This,
26514         UINT *pctinfo);
26515 
26516     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
26517         ISpeechLexicon* This,
26518         UINT iTInfo,
26519         LCID lcid,
26520         ITypeInfo **ppTInfo);
26521 
26522     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
26523         ISpeechLexicon* This,
26524         REFIID riid,
26525         LPOLESTR *rgszNames,
26526         UINT cNames,
26527         LCID lcid,
26528         DISPID *rgDispId);
26529 
26530     HRESULT (STDMETHODCALLTYPE *Invoke)(
26531         ISpeechLexicon* This,
26532         DISPID dispIdMember,
26533         REFIID riid,
26534         LCID lcid,
26535         WORD wFlags,
26536         DISPPARAMS *pDispParams,
26537         VARIANT *pVarResult,
26538         EXCEPINFO *pExcepInfo,
26539         UINT *puArgErr);
26540 
26541     /*** ISpeechLexicon methods ***/
26542     HRESULT (STDMETHODCALLTYPE *get_GenerationId)(
26543         ISpeechLexicon* This,
26544         LONG *GenerationId);
26545 
26546     HRESULT (STDMETHODCALLTYPE *GetWords)(
26547         ISpeechLexicon* This,
26548         SpeechLexiconType Flags,
26549         LONG *GenerationID,
26550         ISpeechLexiconWords **Words);
26551 
26552     HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
26553         ISpeechLexicon* This,
26554         BSTR bstrWord,
26555         SpeechLanguageId LangId,
26556         SpeechPartOfSpeech PartOfSpeech,
26557         BSTR bstrPronunciation);
26558 
26559     HRESULT (STDMETHODCALLTYPE *AddPronunciationByPhoneIds)(
26560         ISpeechLexicon* This,
26561         BSTR bstrWord,
26562         SpeechLanguageId LangId,
26563         SpeechPartOfSpeech PartOfSpeech,
26564         VARIANT *PhoneIds);
26565 
26566     HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
26567         ISpeechLexicon* This,
26568         BSTR bstrWord,
26569         SpeechLanguageId LangId,
26570         SpeechPartOfSpeech PartOfSpeech,
26571         BSTR bstrPronunciation);
26572 
26573     HRESULT (STDMETHODCALLTYPE *RemovePronunciationByPhoneIds)(
26574         ISpeechLexicon* This,
26575         BSTR bstrWord,
26576         SpeechLanguageId LangId,
26577         SpeechPartOfSpeech PartOfSpeech,
26578         VARIANT *PhoneIds);
26579 
26580     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
26581         ISpeechLexicon* This,
26582         BSTR bstrWord,
26583         SpeechLanguageId LangId,
26584         SpeechLexiconType TypeFlags,
26585         ISpeechLexiconPronunciations **ppPronunciations);
26586 
26587     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
26588         ISpeechLexicon* This,
26589         LONG *GenerationID,
26590         ISpeechLexiconWords **ppWords);
26591 
26592     END_INTERFACE
26593 } ISpeechLexiconVtbl;
26594 interface ISpeechLexicon {
26595     CONST_VTBL ISpeechLexiconVtbl* lpVtbl;
26596 };
26597 
26598 #ifdef COBJMACROS
26599 #ifndef WIDL_C_INLINE_WRAPPERS
26600 /*** IUnknown methods ***/
26601 #define ISpeechLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
26602 #define ISpeechLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
26603 #define ISpeechLexicon_Release(This) (This)->lpVtbl->Release(This)
26604 /*** IDispatch methods ***/
26605 #define ISpeechLexicon_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
26606 #define ISpeechLexicon_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
26607 #define ISpeechLexicon_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
26608 #define ISpeechLexicon_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
26609 /*** ISpeechLexicon methods ***/
26610 #define ISpeechLexicon_get_GenerationId(This,GenerationId) (This)->lpVtbl->get_GenerationId(This,GenerationId)
26611 #define ISpeechLexicon_GetWords(This,Flags,GenerationID,Words) (This)->lpVtbl->GetWords(This,Flags,GenerationID,Words)
26612 #define ISpeechLexicon_AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation) (This)->lpVtbl->AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation)
26613 #define ISpeechLexicon_AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds) (This)->lpVtbl->AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds)
26614 #define ISpeechLexicon_RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation) (This)->lpVtbl->RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation)
26615 #define ISpeechLexicon_RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds) (This)->lpVtbl->RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds)
26616 #define ISpeechLexicon_GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations) (This)->lpVtbl->GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations)
26617 #define ISpeechLexicon_GetGenerationChange(This,GenerationID,ppWords) (This)->lpVtbl->GetGenerationChange(This,GenerationID,ppWords)
26618 #else
26619 /*** IUnknown methods ***/
26620 static FORCEINLINE HRESULT ISpeechLexicon_QueryInterface(ISpeechLexicon* This,REFIID riid,void **ppvObject) {
26621     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
26622 }
26623 static FORCEINLINE ULONG ISpeechLexicon_AddRef(ISpeechLexicon* This) {
26624     return This->lpVtbl->AddRef(This);
26625 }
26626 static FORCEINLINE ULONG ISpeechLexicon_Release(ISpeechLexicon* This) {
26627     return This->lpVtbl->Release(This);
26628 }
26629 /*** IDispatch methods ***/
26630 static FORCEINLINE HRESULT ISpeechLexicon_GetTypeInfoCount(ISpeechLexicon* This,UINT *pctinfo) {
26631     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
26632 }
26633 static FORCEINLINE HRESULT ISpeechLexicon_GetTypeInfo(ISpeechLexicon* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
26634     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
26635 }
26636 static FORCEINLINE HRESULT ISpeechLexicon_GetIDsOfNames(ISpeechLexicon* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
26637     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
26638 }
26639 static FORCEINLINE HRESULT ISpeechLexicon_Invoke(ISpeechLexicon* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
26640     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
26641 }
26642 /*** ISpeechLexicon methods ***/
26643 static FORCEINLINE HRESULT ISpeechLexicon_get_GenerationId(ISpeechLexicon* This,LONG *GenerationId) {
26644     return This->lpVtbl->get_GenerationId(This,GenerationId);
26645 }
26646 static FORCEINLINE HRESULT ISpeechLexicon_GetWords(ISpeechLexicon* This,SpeechLexiconType Flags,LONG *GenerationID,ISpeechLexiconWords **Words) {
26647     return This->lpVtbl->GetWords(This,Flags,GenerationID,Words);
26648 }
26649 static FORCEINLINE HRESULT ISpeechLexicon_AddPronunciation(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,BSTR bstrPronunciation) {
26650     return This->lpVtbl->AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation);
26651 }
26652 static FORCEINLINE HRESULT ISpeechLexicon_AddPronunciationByPhoneIds(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,VARIANT *PhoneIds) {
26653     return This->lpVtbl->AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds);
26654 }
26655 static FORCEINLINE HRESULT ISpeechLexicon_RemovePronunciation(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,BSTR bstrPronunciation) {
26656     return This->lpVtbl->RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation);
26657 }
26658 static FORCEINLINE HRESULT ISpeechLexicon_RemovePronunciationByPhoneIds(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,VARIANT *PhoneIds) {
26659     return This->lpVtbl->RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds);
26660 }
26661 static FORCEINLINE HRESULT ISpeechLexicon_GetPronunciations(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechLexiconType TypeFlags,ISpeechLexiconPronunciations **ppPronunciations) {
26662     return This->lpVtbl->GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations);
26663 }
26664 static FORCEINLINE HRESULT ISpeechLexicon_GetGenerationChange(ISpeechLexicon* This,LONG *GenerationID,ISpeechLexiconWords **ppWords) {
26665     return This->lpVtbl->GetGenerationChange(This,GenerationID,ppWords);
26666 }
26667 #endif
26668 #endif
26669 
26670 #endif
26671 
26672 HRESULT STDMETHODCALLTYPE ISpeechLexicon_get_GenerationId_Proxy(
26673     ISpeechLexicon* This,
26674     LONG *GenerationId);
26675 void __RPC_STUB ISpeechLexicon_get_GenerationId_Stub(
26676     IRpcStubBuffer* This,
26677     IRpcChannelBuffer* pRpcChannelBuffer,
26678     PRPC_MESSAGE pRpcMessage,
26679     DWORD* pdwStubPhase);
26680 HRESULT STDMETHODCALLTYPE ISpeechLexicon_GetWords_Proxy(
26681     ISpeechLexicon* This,
26682     SpeechLexiconType Flags,
26683     LONG *GenerationID,
26684     ISpeechLexiconWords **Words);
26685 void __RPC_STUB ISpeechLexicon_GetWords_Stub(
26686     IRpcStubBuffer* This,
26687     IRpcChannelBuffer* pRpcChannelBuffer,
26688     PRPC_MESSAGE pRpcMessage,
26689     DWORD* pdwStubPhase);
26690 HRESULT STDMETHODCALLTYPE ISpeechLexicon_AddPronunciation_Proxy(
26691     ISpeechLexicon* This,
26692     BSTR bstrWord,
26693     SpeechLanguageId LangId,
26694     SpeechPartOfSpeech PartOfSpeech,
26695     BSTR bstrPronunciation);
26696 void __RPC_STUB ISpeechLexicon_AddPronunciation_Stub(
26697     IRpcStubBuffer* This,
26698     IRpcChannelBuffer* pRpcChannelBuffer,
26699     PRPC_MESSAGE pRpcMessage,
26700     DWORD* pdwStubPhase);
26701 HRESULT STDMETHODCALLTYPE ISpeechLexicon_AddPronunciationByPhoneIds_Proxy(
26702     ISpeechLexicon* This,
26703     BSTR bstrWord,
26704     SpeechLanguageId LangId,
26705     SpeechPartOfSpeech PartOfSpeech,
26706     VARIANT *PhoneIds);
26707 void __RPC_STUB ISpeechLexicon_AddPronunciationByPhoneIds_Stub(
26708     IRpcStubBuffer* This,
26709     IRpcChannelBuffer* pRpcChannelBuffer,
26710     PRPC_MESSAGE pRpcMessage,
26711     DWORD* pdwStubPhase);
26712 HRESULT STDMETHODCALLTYPE ISpeechLexicon_RemovePronunciation_Proxy(
26713     ISpeechLexicon* This,
26714     BSTR bstrWord,
26715     SpeechLanguageId LangId,
26716     SpeechPartOfSpeech PartOfSpeech,
26717     BSTR bstrPronunciation);
26718 void __RPC_STUB ISpeechLexicon_RemovePronunciation_Stub(
26719     IRpcStubBuffer* This,
26720     IRpcChannelBuffer* pRpcChannelBuffer,
26721     PRPC_MESSAGE pRpcMessage,
26722     DWORD* pdwStubPhase);
26723 HRESULT STDMETHODCALLTYPE ISpeechLexicon_RemovePronunciationByPhoneIds_Proxy(
26724     ISpeechLexicon* This,
26725     BSTR bstrWord,
26726     SpeechLanguageId LangId,
26727     SpeechPartOfSpeech PartOfSpeech,
26728     VARIANT *PhoneIds);
26729 void __RPC_STUB ISpeechLexicon_RemovePronunciationByPhoneIds_Stub(
26730     IRpcStubBuffer* This,
26731     IRpcChannelBuffer* pRpcChannelBuffer,
26732     PRPC_MESSAGE pRpcMessage,
26733     DWORD* pdwStubPhase);
26734 HRESULT STDMETHODCALLTYPE ISpeechLexicon_GetPronunciations_Proxy(
26735     ISpeechLexicon* This,
26736     BSTR bstrWord,
26737     SpeechLanguageId LangId,
26738     SpeechLexiconType TypeFlags,
26739     ISpeechLexiconPronunciations **ppPronunciations);
26740 void __RPC_STUB ISpeechLexicon_GetPronunciations_Stub(
26741     IRpcStubBuffer* This,
26742     IRpcChannelBuffer* pRpcChannelBuffer,
26743     PRPC_MESSAGE pRpcMessage,
26744     DWORD* pdwStubPhase);
26745 HRESULT STDMETHODCALLTYPE ISpeechLexicon_GetGenerationChange_Proxy(
26746     ISpeechLexicon* This,
26747     LONG *GenerationID,
26748     ISpeechLexiconWords **ppWords);
26749 void __RPC_STUB ISpeechLexicon_GetGenerationChange_Stub(
26750     IRpcStubBuffer* This,
26751     IRpcChannelBuffer* pRpcChannelBuffer,
26752     PRPC_MESSAGE pRpcMessage,
26753     DWORD* pdwStubPhase);
26754 
26755 #endif  /* __ISpeechLexicon_INTERFACE_DEFINED__ */
26756 
26757 /*****************************************************************************
26758  * ISpeechLexiconWord interface
26759  */
26760 #ifndef __ISpeechLexiconWord_INTERFACE_DEFINED__
26761 #define __ISpeechLexiconWord_INTERFACE_DEFINED__
26762 
26763 DEFINE_GUID(IID_ISpeechLexiconWord, 0x4e5b933c, 0xc9be, 0x48ed, 0x88,0x42, 0x1e,0xe5,0x1b,0xb1,0xd4,0xff);
26764 #if defined(__cplusplus) && !defined(CINTERFACE)
26765 MIDL_INTERFACE("4e5b933c-c9be-48ed-8842-1ee51bb1d4ff")
26766 ISpeechLexiconWord : public IDispatch
26767 {
26768     virtual HRESULT STDMETHODCALLTYPE get_LangId(
26769         SpeechLanguageId *LangId) = 0;
26770 
26771     virtual HRESULT STDMETHODCALLTYPE get_Type(
26772         SpeechWordType *WordType) = 0;
26773 
26774     virtual HRESULT STDMETHODCALLTYPE get_Word(
26775         BSTR *Word) = 0;
26776 
26777     virtual HRESULT STDMETHODCALLTYPE get_Pronunciations(
26778         ISpeechLexiconPronunciations **Pronunciations) = 0;
26779 
26780 };
26781 #ifdef __CRT_UUID_DECL
26782 __CRT_UUID_DECL(ISpeechLexiconWord, 0x4e5b933c, 0xc9be, 0x48ed, 0x88,0x42, 0x1e,0xe5,0x1b,0xb1,0xd4,0xff)
26783 #endif
26784 #else
26785 typedef struct ISpeechLexiconWordVtbl {
26786     BEGIN_INTERFACE
26787 
26788     /*** IUnknown methods ***/
26789     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
26790         ISpeechLexiconWord* This,
26791         REFIID riid,
26792         void **ppvObject);
26793 
26794     ULONG (STDMETHODCALLTYPE *AddRef)(
26795         ISpeechLexiconWord* This);
26796 
26797     ULONG (STDMETHODCALLTYPE *Release)(
26798         ISpeechLexiconWord* This);
26799 
26800     /*** IDispatch methods ***/
26801     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
26802         ISpeechLexiconWord* This,
26803         UINT *pctinfo);
26804 
26805     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
26806         ISpeechLexiconWord* This,
26807         UINT iTInfo,
26808         LCID lcid,
26809         ITypeInfo **ppTInfo);
26810 
26811     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
26812         ISpeechLexiconWord* This,
26813         REFIID riid,
26814         LPOLESTR *rgszNames,
26815         UINT cNames,
26816         LCID lcid,
26817         DISPID *rgDispId);
26818 
26819     HRESULT (STDMETHODCALLTYPE *Invoke)(
26820         ISpeechLexiconWord* This,
26821         DISPID dispIdMember,
26822         REFIID riid,
26823         LCID lcid,
26824         WORD wFlags,
26825         DISPPARAMS *pDispParams,
26826         VARIANT *pVarResult,
26827         EXCEPINFO *pExcepInfo,
26828         UINT *puArgErr);
26829 
26830     /*** ISpeechLexiconWord methods ***/
26831     HRESULT (STDMETHODCALLTYPE *get_LangId)(
26832         ISpeechLexiconWord* This,
26833         SpeechLanguageId *LangId);
26834 
26835     HRESULT (STDMETHODCALLTYPE *get_Type)(
26836         ISpeechLexiconWord* This,
26837         SpeechWordType *WordType);
26838 
26839     HRESULT (STDMETHODCALLTYPE *get_Word)(
26840         ISpeechLexiconWord* This,
26841         BSTR *Word);
26842 
26843     HRESULT (STDMETHODCALLTYPE *get_Pronunciations)(
26844         ISpeechLexiconWord* This,
26845         ISpeechLexiconPronunciations **Pronunciations);
26846 
26847     END_INTERFACE
26848 } ISpeechLexiconWordVtbl;
26849 interface ISpeechLexiconWord {
26850     CONST_VTBL ISpeechLexiconWordVtbl* lpVtbl;
26851 };
26852 
26853 #ifdef COBJMACROS
26854 #ifndef WIDL_C_INLINE_WRAPPERS
26855 /*** IUnknown methods ***/
26856 #define ISpeechLexiconWord_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
26857 #define ISpeechLexiconWord_AddRef(This) (This)->lpVtbl->AddRef(This)
26858 #define ISpeechLexiconWord_Release(This) (This)->lpVtbl->Release(This)
26859 /*** IDispatch methods ***/
26860 #define ISpeechLexiconWord_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
26861 #define ISpeechLexiconWord_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
26862 #define ISpeechLexiconWord_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
26863 #define ISpeechLexiconWord_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
26864 /*** ISpeechLexiconWord methods ***/
26865 #define ISpeechLexiconWord_get_LangId(This,LangId) (This)->lpVtbl->get_LangId(This,LangId)
26866 #define ISpeechLexiconWord_get_Type(This,WordType) (This)->lpVtbl->get_Type(This,WordType)
26867 #define ISpeechLexiconWord_get_Word(This,Word) (This)->lpVtbl->get_Word(This,Word)
26868 #define ISpeechLexiconWord_get_Pronunciations(This,Pronunciations) (This)->lpVtbl->get_Pronunciations(This,Pronunciations)
26869 #else
26870 /*** IUnknown methods ***/
26871 static FORCEINLINE HRESULT ISpeechLexiconWord_QueryInterface(ISpeechLexiconWord* This,REFIID riid,void **ppvObject) {
26872     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
26873 }
26874 static FORCEINLINE ULONG ISpeechLexiconWord_AddRef(ISpeechLexiconWord* This) {
26875     return This->lpVtbl->AddRef(This);
26876 }
26877 static FORCEINLINE ULONG ISpeechLexiconWord_Release(ISpeechLexiconWord* This) {
26878     return This->lpVtbl->Release(This);
26879 }
26880 /*** IDispatch methods ***/
26881 static FORCEINLINE HRESULT ISpeechLexiconWord_GetTypeInfoCount(ISpeechLexiconWord* This,UINT *pctinfo) {
26882     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
26883 }
26884 static FORCEINLINE HRESULT ISpeechLexiconWord_GetTypeInfo(ISpeechLexiconWord* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
26885     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
26886 }
26887 static FORCEINLINE HRESULT ISpeechLexiconWord_GetIDsOfNames(ISpeechLexiconWord* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
26888     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
26889 }
26890 static FORCEINLINE HRESULT ISpeechLexiconWord_Invoke(ISpeechLexiconWord* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
26891     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
26892 }
26893 /*** ISpeechLexiconWord methods ***/
26894 static FORCEINLINE HRESULT ISpeechLexiconWord_get_LangId(ISpeechLexiconWord* This,SpeechLanguageId *LangId) {
26895     return This->lpVtbl->get_LangId(This,LangId);
26896 }
26897 static FORCEINLINE HRESULT ISpeechLexiconWord_get_Type(ISpeechLexiconWord* This,SpeechWordType *WordType) {
26898     return This->lpVtbl->get_Type(This,WordType);
26899 }
26900 static FORCEINLINE HRESULT ISpeechLexiconWord_get_Word(ISpeechLexiconWord* This,BSTR *Word) {
26901     return This->lpVtbl->get_Word(This,Word);
26902 }
26903 static FORCEINLINE HRESULT ISpeechLexiconWord_get_Pronunciations(ISpeechLexiconWord* This,ISpeechLexiconPronunciations **Pronunciations) {
26904     return This->lpVtbl->get_Pronunciations(This,Pronunciations);
26905 }
26906 #endif
26907 #endif
26908 
26909 #endif
26910 
26911 HRESULT STDMETHODCALLTYPE ISpeechLexiconWord_get_LangId_Proxy(
26912     ISpeechLexiconWord* This,
26913     SpeechLanguageId *LangId);
26914 void __RPC_STUB ISpeechLexiconWord_get_LangId_Stub(
26915     IRpcStubBuffer* This,
26916     IRpcChannelBuffer* pRpcChannelBuffer,
26917     PRPC_MESSAGE pRpcMessage,
26918     DWORD* pdwStubPhase);
26919 HRESULT STDMETHODCALLTYPE ISpeechLexiconWord_get_Type_Proxy(
26920     ISpeechLexiconWord* This,
26921     SpeechWordType *WordType);
26922 void __RPC_STUB ISpeechLexiconWord_get_Type_Stub(
26923     IRpcStubBuffer* This,
26924     IRpcChannelBuffer* pRpcChannelBuffer,
26925     PRPC_MESSAGE pRpcMessage,
26926     DWORD* pdwStubPhase);
26927 HRESULT STDMETHODCALLTYPE ISpeechLexiconWord_get_Word_Proxy(
26928     ISpeechLexiconWord* This,
26929     BSTR *Word);
26930 void __RPC_STUB ISpeechLexiconWord_get_Word_Stub(
26931     IRpcStubBuffer* This,
26932     IRpcChannelBuffer* pRpcChannelBuffer,
26933     PRPC_MESSAGE pRpcMessage,
26934     DWORD* pdwStubPhase);
26935 HRESULT STDMETHODCALLTYPE ISpeechLexiconWord_get_Pronunciations_Proxy(
26936     ISpeechLexiconWord* This,
26937     ISpeechLexiconPronunciations **Pronunciations);
26938 void __RPC_STUB ISpeechLexiconWord_get_Pronunciations_Stub(
26939     IRpcStubBuffer* This,
26940     IRpcChannelBuffer* pRpcChannelBuffer,
26941     PRPC_MESSAGE pRpcMessage,
26942     DWORD* pdwStubPhase);
26943 
26944 #endif  /* __ISpeechLexiconWord_INTERFACE_DEFINED__ */
26945 
26946 /*****************************************************************************
26947  * ISpeechLexiconPronunciations interface
26948  */
26949 #ifndef __ISpeechLexiconPronunciations_INTERFACE_DEFINED__
26950 #define __ISpeechLexiconPronunciations_INTERFACE_DEFINED__
26951 
26952 DEFINE_GUID(IID_ISpeechLexiconPronunciations, 0x72829128, 0x5682, 0x4704, 0xa0,0xd4, 0x3e,0x2b,0xb6,0xf2,0xea,0xd3);
26953 #if defined(__cplusplus) && !defined(CINTERFACE)
26954 MIDL_INTERFACE("72829128-5682-4704-a0d4-3e2bb6f2ead3")
26955 ISpeechLexiconPronunciations : public IDispatch
26956 {
26957     virtual HRESULT STDMETHODCALLTYPE get_Count(
26958         LONG *Count) = 0;
26959 
26960     virtual HRESULT STDMETHODCALLTYPE Item(
26961         LONG Index,
26962         ISpeechLexiconPronunciation **Pronunciation) = 0;
26963 
26964     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
26965         IUnknown **EnumVARIANT) = 0;
26966 
26967 };
26968 #ifdef __CRT_UUID_DECL
26969 __CRT_UUID_DECL(ISpeechLexiconPronunciations, 0x72829128, 0x5682, 0x4704, 0xa0,0xd4, 0x3e,0x2b,0xb6,0xf2,0xea,0xd3)
26970 #endif
26971 #else
26972 typedef struct ISpeechLexiconPronunciationsVtbl {
26973     BEGIN_INTERFACE
26974 
26975     /*** IUnknown methods ***/
26976     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
26977         ISpeechLexiconPronunciations* This,
26978         REFIID riid,
26979         void **ppvObject);
26980 
26981     ULONG (STDMETHODCALLTYPE *AddRef)(
26982         ISpeechLexiconPronunciations* This);
26983 
26984     ULONG (STDMETHODCALLTYPE *Release)(
26985         ISpeechLexiconPronunciations* This);
26986 
26987     /*** IDispatch methods ***/
26988     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
26989         ISpeechLexiconPronunciations* This,
26990         UINT *pctinfo);
26991 
26992     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
26993         ISpeechLexiconPronunciations* This,
26994         UINT iTInfo,
26995         LCID lcid,
26996         ITypeInfo **ppTInfo);
26997 
26998     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
26999         ISpeechLexiconPronunciations* This,
27000         REFIID riid,
27001         LPOLESTR *rgszNames,
27002         UINT cNames,
27003         LCID lcid,
27004         DISPID *rgDispId);
27005 
27006     HRESULT (STDMETHODCALLTYPE *Invoke)(
27007         ISpeechLexiconPronunciations* This,
27008         DISPID dispIdMember,
27009         REFIID riid,
27010         LCID lcid,
27011         WORD wFlags,
27012         DISPPARAMS *pDispParams,
27013         VARIANT *pVarResult,
27014         EXCEPINFO *pExcepInfo,
27015         UINT *puArgErr);
27016 
27017     /*** ISpeechLexiconPronunciations methods ***/
27018     HRESULT (STDMETHODCALLTYPE *get_Count)(
27019         ISpeechLexiconPronunciations* This,
27020         LONG *Count);
27021 
27022     HRESULT (STDMETHODCALLTYPE *Item)(
27023         ISpeechLexiconPronunciations* This,
27024         LONG Index,
27025         ISpeechLexiconPronunciation **Pronunciation);
27026 
27027     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
27028         ISpeechLexiconPronunciations* This,
27029         IUnknown **EnumVARIANT);
27030 
27031     END_INTERFACE
27032 } ISpeechLexiconPronunciationsVtbl;
27033 interface ISpeechLexiconPronunciations {
27034     CONST_VTBL ISpeechLexiconPronunciationsVtbl* lpVtbl;
27035 };
27036 
27037 #ifdef COBJMACROS
27038 #ifndef WIDL_C_INLINE_WRAPPERS
27039 /*** IUnknown methods ***/
27040 #define ISpeechLexiconPronunciations_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
27041 #define ISpeechLexiconPronunciations_AddRef(This) (This)->lpVtbl->AddRef(This)
27042 #define ISpeechLexiconPronunciations_Release(This) (This)->lpVtbl->Release(This)
27043 /*** IDispatch methods ***/
27044 #define ISpeechLexiconPronunciations_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
27045 #define ISpeechLexiconPronunciations_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
27046 #define ISpeechLexiconPronunciations_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
27047 #define ISpeechLexiconPronunciations_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
27048 /*** ISpeechLexiconPronunciations methods ***/
27049 #define ISpeechLexiconPronunciations_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
27050 #define ISpeechLexiconPronunciations_Item(This,Index,Pronunciation) (This)->lpVtbl->Item(This,Index,Pronunciation)
27051 #define ISpeechLexiconPronunciations_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
27052 #else
27053 /*** IUnknown methods ***/
27054 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_QueryInterface(ISpeechLexiconPronunciations* This,REFIID riid,void **ppvObject) {
27055     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
27056 }
27057 static FORCEINLINE ULONG ISpeechLexiconPronunciations_AddRef(ISpeechLexiconPronunciations* This) {
27058     return This->lpVtbl->AddRef(This);
27059 }
27060 static FORCEINLINE ULONG ISpeechLexiconPronunciations_Release(ISpeechLexiconPronunciations* This) {
27061     return This->lpVtbl->Release(This);
27062 }
27063 /*** IDispatch methods ***/
27064 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_GetTypeInfoCount(ISpeechLexiconPronunciations* This,UINT *pctinfo) {
27065     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
27066 }
27067 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_GetTypeInfo(ISpeechLexiconPronunciations* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
27068     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
27069 }
27070 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_GetIDsOfNames(ISpeechLexiconPronunciations* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
27071     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
27072 }
27073 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_Invoke(ISpeechLexiconPronunciations* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
27074     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
27075 }
27076 /*** ISpeechLexiconPronunciations methods ***/
27077 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_get_Count(ISpeechLexiconPronunciations* This,LONG *Count) {
27078     return This->lpVtbl->get_Count(This,Count);
27079 }
27080 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_Item(ISpeechLexiconPronunciations* This,LONG Index,ISpeechLexiconPronunciation **Pronunciation) {
27081     return This->lpVtbl->Item(This,Index,Pronunciation);
27082 }
27083 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_get__NewEnum(ISpeechLexiconPronunciations* This,IUnknown **EnumVARIANT) {
27084     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
27085 }
27086 #endif
27087 #endif
27088 
27089 #endif
27090 
27091 HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciations_get_Count_Proxy(
27092     ISpeechLexiconPronunciations* This,
27093     LONG *Count);
27094 void __RPC_STUB ISpeechLexiconPronunciations_get_Count_Stub(
27095     IRpcStubBuffer* This,
27096     IRpcChannelBuffer* pRpcChannelBuffer,
27097     PRPC_MESSAGE pRpcMessage,
27098     DWORD* pdwStubPhase);
27099 HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciations_Item_Proxy(
27100     ISpeechLexiconPronunciations* This,
27101     LONG Index,
27102     ISpeechLexiconPronunciation **Pronunciation);
27103 void __RPC_STUB ISpeechLexiconPronunciations_Item_Stub(
27104     IRpcStubBuffer* This,
27105     IRpcChannelBuffer* pRpcChannelBuffer,
27106     PRPC_MESSAGE pRpcMessage,
27107     DWORD* pdwStubPhase);
27108 HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciations_get__NewEnum_Proxy(
27109     ISpeechLexiconPronunciations* This,
27110     IUnknown **EnumVARIANT);
27111 void __RPC_STUB ISpeechLexiconPronunciations_get__NewEnum_Stub(
27112     IRpcStubBuffer* This,
27113     IRpcChannelBuffer* pRpcChannelBuffer,
27114     PRPC_MESSAGE pRpcMessage,
27115     DWORD* pdwStubPhase);
27116 
27117 #endif  /* __ISpeechLexiconPronunciations_INTERFACE_DEFINED__ */
27118 
27119 /*****************************************************************************
27120  * ISpeechLexiconPronunciation interface
27121  */
27122 #ifndef __ISpeechLexiconPronunciation_INTERFACE_DEFINED__
27123 #define __ISpeechLexiconPronunciation_INTERFACE_DEFINED__
27124 
27125 DEFINE_GUID(IID_ISpeechLexiconPronunciation, 0x95252c5d, 0x9e43, 0x4f4a, 0x98,0x99, 0x48,0xee,0x73,0x35,0x2f,0x9f);
27126 #if defined(__cplusplus) && !defined(CINTERFACE)
27127 MIDL_INTERFACE("95252c5d-9e43-4f4a-9899-48ee73352f9f")
27128 ISpeechLexiconPronunciation : public IDispatch
27129 {
27130     virtual HRESULT STDMETHODCALLTYPE get_Type(
27131         SpeechLexiconType *LexiconType) = 0;
27132 
27133     virtual HRESULT STDMETHODCALLTYPE get_LangId(
27134         SpeechLanguageId *LangId) = 0;
27135 
27136     virtual HRESULT STDMETHODCALLTYPE get_PartOfSpeech(
27137         SpeechPartOfSpeech *PartOfSpeech) = 0;
27138 
27139     virtual HRESULT STDMETHODCALLTYPE get_PhoneIds(
27140         VARIANT *PhoneIds) = 0;
27141 
27142     virtual HRESULT STDMETHODCALLTYPE get_Symbolic(
27143         BSTR *Symbolic) = 0;
27144 
27145 };
27146 #ifdef __CRT_UUID_DECL
27147 __CRT_UUID_DECL(ISpeechLexiconPronunciation, 0x95252c5d, 0x9e43, 0x4f4a, 0x98,0x99, 0x48,0xee,0x73,0x35,0x2f,0x9f)
27148 #endif
27149 #else
27150 typedef struct ISpeechLexiconPronunciationVtbl {
27151     BEGIN_INTERFACE
27152 
27153     /*** IUnknown methods ***/
27154     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
27155         ISpeechLexiconPronunciation* This,
27156         REFIID riid,
27157         void **ppvObject);
27158 
27159     ULONG (STDMETHODCALLTYPE *AddRef)(
27160         ISpeechLexiconPronunciation* This);
27161 
27162     ULONG (STDMETHODCALLTYPE *Release)(
27163         ISpeechLexiconPronunciation* This);
27164 
27165     /*** IDispatch methods ***/
27166     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
27167         ISpeechLexiconPronunciation* This,
27168         UINT *pctinfo);
27169 
27170     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
27171         ISpeechLexiconPronunciation* This,
27172         UINT iTInfo,
27173         LCID lcid,
27174         ITypeInfo **ppTInfo);
27175 
27176     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
27177         ISpeechLexiconPronunciation* This,
27178         REFIID riid,
27179         LPOLESTR *rgszNames,
27180         UINT cNames,
27181         LCID lcid,
27182         DISPID *rgDispId);
27183 
27184     HRESULT (STDMETHODCALLTYPE *Invoke)(
27185         ISpeechLexiconPronunciation* This,
27186         DISPID dispIdMember,
27187         REFIID riid,
27188         LCID lcid,
27189         WORD wFlags,
27190         DISPPARAMS *pDispParams,
27191         VARIANT *pVarResult,
27192         EXCEPINFO *pExcepInfo,
27193         UINT *puArgErr);
27194 
27195     /*** ISpeechLexiconPronunciation methods ***/
27196     HRESULT (STDMETHODCALLTYPE *get_Type)(
27197         ISpeechLexiconPronunciation* This,
27198         SpeechLexiconType *LexiconType);
27199 
27200     HRESULT (STDMETHODCALLTYPE *get_LangId)(
27201         ISpeechLexiconPronunciation* This,
27202         SpeechLanguageId *LangId);
27203 
27204     HRESULT (STDMETHODCALLTYPE *get_PartOfSpeech)(
27205         ISpeechLexiconPronunciation* This,
27206         SpeechPartOfSpeech *PartOfSpeech);
27207 
27208     HRESULT (STDMETHODCALLTYPE *get_PhoneIds)(
27209         ISpeechLexiconPronunciation* This,
27210         VARIANT *PhoneIds);
27211 
27212     HRESULT (STDMETHODCALLTYPE *get_Symbolic)(
27213         ISpeechLexiconPronunciation* This,
27214         BSTR *Symbolic);
27215 
27216     END_INTERFACE
27217 } ISpeechLexiconPronunciationVtbl;
27218 interface ISpeechLexiconPronunciation {
27219     CONST_VTBL ISpeechLexiconPronunciationVtbl* lpVtbl;
27220 };
27221 
27222 #ifdef COBJMACROS
27223 #ifndef WIDL_C_INLINE_WRAPPERS
27224 /*** IUnknown methods ***/
27225 #define ISpeechLexiconPronunciation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
27226 #define ISpeechLexiconPronunciation_AddRef(This) (This)->lpVtbl->AddRef(This)
27227 #define ISpeechLexiconPronunciation_Release(This) (This)->lpVtbl->Release(This)
27228 /*** IDispatch methods ***/
27229 #define ISpeechLexiconPronunciation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
27230 #define ISpeechLexiconPronunciation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
27231 #define ISpeechLexiconPronunciation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
27232 #define ISpeechLexiconPronunciation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
27233 /*** ISpeechLexiconPronunciation methods ***/
27234 #define ISpeechLexiconPronunciation_get_Type(This,LexiconType) (This)->lpVtbl->get_Type(This,LexiconType)
27235 #define ISpeechLexiconPronunciation_get_LangId(This,LangId) (This)->lpVtbl->get_LangId(This,LangId)
27236 #define ISpeechLexiconPronunciation_get_PartOfSpeech(This,PartOfSpeech) (This)->lpVtbl->get_PartOfSpeech(This,PartOfSpeech)
27237 #define ISpeechLexiconPronunciation_get_PhoneIds(This,PhoneIds) (This)->lpVtbl->get_PhoneIds(This,PhoneIds)
27238 #define ISpeechLexiconPronunciation_get_Symbolic(This,Symbolic) (This)->lpVtbl->get_Symbolic(This,Symbolic)
27239 #else
27240 /*** IUnknown methods ***/
27241 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_QueryInterface(ISpeechLexiconPronunciation* This,REFIID riid,void **ppvObject) {
27242     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
27243 }
27244 static FORCEINLINE ULONG ISpeechLexiconPronunciation_AddRef(ISpeechLexiconPronunciation* This) {
27245     return This->lpVtbl->AddRef(This);
27246 }
27247 static FORCEINLINE ULONG ISpeechLexiconPronunciation_Release(ISpeechLexiconPronunciation* This) {
27248     return This->lpVtbl->Release(This);
27249 }
27250 /*** IDispatch methods ***/
27251 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_GetTypeInfoCount(ISpeechLexiconPronunciation* This,UINT *pctinfo) {
27252     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
27253 }
27254 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_GetTypeInfo(ISpeechLexiconPronunciation* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
27255     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
27256 }
27257 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_GetIDsOfNames(ISpeechLexiconPronunciation* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
27258     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
27259 }
27260 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_Invoke(ISpeechLexiconPronunciation* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
27261     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
27262 }
27263 /*** ISpeechLexiconPronunciation methods ***/
27264 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_Type(ISpeechLexiconPronunciation* This,SpeechLexiconType *LexiconType) {
27265     return This->lpVtbl->get_Type(This,LexiconType);
27266 }
27267 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_LangId(ISpeechLexiconPronunciation* This,SpeechLanguageId *LangId) {
27268     return This->lpVtbl->get_LangId(This,LangId);
27269 }
27270 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_PartOfSpeech(ISpeechLexiconPronunciation* This,SpeechPartOfSpeech *PartOfSpeech) {
27271     return This->lpVtbl->get_PartOfSpeech(This,PartOfSpeech);
27272 }
27273 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_PhoneIds(ISpeechLexiconPronunciation* This,VARIANT *PhoneIds) {
27274     return This->lpVtbl->get_PhoneIds(This,PhoneIds);
27275 }
27276 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_Symbolic(ISpeechLexiconPronunciation* This,BSTR *Symbolic) {
27277     return This->lpVtbl->get_Symbolic(This,Symbolic);
27278 }
27279 #endif
27280 #endif
27281 
27282 #endif
27283 
27284 HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciation_get_Type_Proxy(
27285     ISpeechLexiconPronunciation* This,
27286     SpeechLexiconType *LexiconType);
27287 void __RPC_STUB ISpeechLexiconPronunciation_get_Type_Stub(
27288     IRpcStubBuffer* This,
27289     IRpcChannelBuffer* pRpcChannelBuffer,
27290     PRPC_MESSAGE pRpcMessage,
27291     DWORD* pdwStubPhase);
27292 HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciation_get_LangId_Proxy(
27293     ISpeechLexiconPronunciation* This,
27294     SpeechLanguageId *LangId);
27295 void __RPC_STUB ISpeechLexiconPronunciation_get_LangId_Stub(
27296     IRpcStubBuffer* This,
27297     IRpcChannelBuffer* pRpcChannelBuffer,
27298     PRPC_MESSAGE pRpcMessage,
27299     DWORD* pdwStubPhase);
27300 HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciation_get_PartOfSpeech_Proxy(
27301     ISpeechLexiconPronunciation* This,
27302     SpeechPartOfSpeech *PartOfSpeech);
27303 void __RPC_STUB ISpeechLexiconPronunciation_get_PartOfSpeech_Stub(
27304     IRpcStubBuffer* This,
27305     IRpcChannelBuffer* pRpcChannelBuffer,
27306     PRPC_MESSAGE pRpcMessage,
27307     DWORD* pdwStubPhase);
27308 HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciation_get_PhoneIds_Proxy(
27309     ISpeechLexiconPronunciation* This,
27310     VARIANT *PhoneIds);
27311 void __RPC_STUB ISpeechLexiconPronunciation_get_PhoneIds_Stub(
27312     IRpcStubBuffer* This,
27313     IRpcChannelBuffer* pRpcChannelBuffer,
27314     PRPC_MESSAGE pRpcMessage,
27315     DWORD* pdwStubPhase);
27316 HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciation_get_Symbolic_Proxy(
27317     ISpeechLexiconPronunciation* This,
27318     BSTR *Symbolic);
27319 void __RPC_STUB ISpeechLexiconPronunciation_get_Symbolic_Stub(
27320     IRpcStubBuffer* This,
27321     IRpcChannelBuffer* pRpcChannelBuffer,
27322     PRPC_MESSAGE pRpcMessage,
27323     DWORD* pdwStubPhase);
27324 
27325 #endif  /* __ISpeechLexiconPronunciation_INTERFACE_DEFINED__ */
27326 
27327 /*****************************************************************************
27328  * ISpeechPhoneConverter interface
27329  */
27330 #ifndef __ISpeechPhoneConverter_INTERFACE_DEFINED__
27331 #define __ISpeechPhoneConverter_INTERFACE_DEFINED__
27332 
27333 DEFINE_GUID(IID_ISpeechPhoneConverter, 0xc3e4f353, 0x433f, 0x43d6, 0x89,0xa1, 0x6a,0x62,0xa7,0x05,0x4c,0x3d);
27334 #if defined(__cplusplus) && !defined(CINTERFACE)
27335 MIDL_INTERFACE("c3e4f353-433f-43d6-89a1-6a62a7054c3d")
27336 ISpeechPhoneConverter : public IDispatch
27337 {
27338     virtual HRESULT STDMETHODCALLTYPE get_LanguageId(
27339         SpeechLanguageId *LanguageId) = 0;
27340 
27341     virtual HRESULT STDMETHODCALLTYPE put_LanguageId(
27342         SpeechLanguageId LanguageId) = 0;
27343 
27344     virtual HRESULT STDMETHODCALLTYPE PhoneToId(
27345         const BSTR Phonemes,
27346         VARIANT *IdArray) = 0;
27347 
27348     virtual HRESULT STDMETHODCALLTYPE IdToPhone(
27349         const VARIANT IdArray,
27350         BSTR *Phonemes) = 0;
27351 
27352 };
27353 #ifdef __CRT_UUID_DECL
27354 __CRT_UUID_DECL(ISpeechPhoneConverter, 0xc3e4f353, 0x433f, 0x43d6, 0x89,0xa1, 0x6a,0x62,0xa7,0x05,0x4c,0x3d)
27355 #endif
27356 #else
27357 typedef struct ISpeechPhoneConverterVtbl {
27358     BEGIN_INTERFACE
27359 
27360     /*** IUnknown methods ***/
27361     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
27362         ISpeechPhoneConverter* This,
27363         REFIID riid,
27364         void **ppvObject);
27365 
27366     ULONG (STDMETHODCALLTYPE *AddRef)(
27367         ISpeechPhoneConverter* This);
27368 
27369     ULONG (STDMETHODCALLTYPE *Release)(
27370         ISpeechPhoneConverter* This);
27371 
27372     /*** IDispatch methods ***/
27373     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
27374         ISpeechPhoneConverter* This,
27375         UINT *pctinfo);
27376 
27377     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
27378         ISpeechPhoneConverter* This,
27379         UINT iTInfo,
27380         LCID lcid,
27381         ITypeInfo **ppTInfo);
27382 
27383     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
27384         ISpeechPhoneConverter* This,
27385         REFIID riid,
27386         LPOLESTR *rgszNames,
27387         UINT cNames,
27388         LCID lcid,
27389         DISPID *rgDispId);
27390 
27391     HRESULT (STDMETHODCALLTYPE *Invoke)(
27392         ISpeechPhoneConverter* This,
27393         DISPID dispIdMember,
27394         REFIID riid,
27395         LCID lcid,
27396         WORD wFlags,
27397         DISPPARAMS *pDispParams,
27398         VARIANT *pVarResult,
27399         EXCEPINFO *pExcepInfo,
27400         UINT *puArgErr);
27401 
27402     /*** ISpeechPhoneConverter methods ***/
27403     HRESULT (STDMETHODCALLTYPE *get_LanguageId)(
27404         ISpeechPhoneConverter* This,
27405         SpeechLanguageId *LanguageId);
27406 
27407     HRESULT (STDMETHODCALLTYPE *put_LanguageId)(
27408         ISpeechPhoneConverter* This,
27409         SpeechLanguageId LanguageId);
27410 
27411     HRESULT (STDMETHODCALLTYPE *PhoneToId)(
27412         ISpeechPhoneConverter* This,
27413         const BSTR Phonemes,
27414         VARIANT *IdArray);
27415 
27416     HRESULT (STDMETHODCALLTYPE *IdToPhone)(
27417         ISpeechPhoneConverter* This,
27418         const VARIANT IdArray,
27419         BSTR *Phonemes);
27420 
27421     END_INTERFACE
27422 } ISpeechPhoneConverterVtbl;
27423 interface ISpeechPhoneConverter {
27424     CONST_VTBL ISpeechPhoneConverterVtbl* lpVtbl;
27425 };
27426 
27427 #ifdef COBJMACROS
27428 #ifndef WIDL_C_INLINE_WRAPPERS
27429 /*** IUnknown methods ***/
27430 #define ISpeechPhoneConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
27431 #define ISpeechPhoneConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
27432 #define ISpeechPhoneConverter_Release(This) (This)->lpVtbl->Release(This)
27433 /*** IDispatch methods ***/
27434 #define ISpeechPhoneConverter_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
27435 #define ISpeechPhoneConverter_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
27436 #define ISpeechPhoneConverter_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
27437 #define ISpeechPhoneConverter_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
27438 /*** ISpeechPhoneConverter methods ***/
27439 #define ISpeechPhoneConverter_get_LanguageId(This,LanguageId) (This)->lpVtbl->get_LanguageId(This,LanguageId)
27440 #define ISpeechPhoneConverter_put_LanguageId(This,LanguageId) (This)->lpVtbl->put_LanguageId(This,LanguageId)
27441 #define ISpeechPhoneConverter_PhoneToId(This,Phonemes,IdArray) (This)->lpVtbl->PhoneToId(This,Phonemes,IdArray)
27442 #define ISpeechPhoneConverter_IdToPhone(This,IdArray,Phonemes) (This)->lpVtbl->IdToPhone(This,IdArray,Phonemes)
27443 #else
27444 /*** IUnknown methods ***/
27445 static FORCEINLINE HRESULT ISpeechPhoneConverter_QueryInterface(ISpeechPhoneConverter* This,REFIID riid,void **ppvObject) {
27446     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
27447 }
27448 static FORCEINLINE ULONG ISpeechPhoneConverter_AddRef(ISpeechPhoneConverter* This) {
27449     return This->lpVtbl->AddRef(This);
27450 }
27451 static FORCEINLINE ULONG ISpeechPhoneConverter_Release(ISpeechPhoneConverter* This) {
27452     return This->lpVtbl->Release(This);
27453 }
27454 /*** IDispatch methods ***/
27455 static FORCEINLINE HRESULT ISpeechPhoneConverter_GetTypeInfoCount(ISpeechPhoneConverter* This,UINT *pctinfo) {
27456     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
27457 }
27458 static FORCEINLINE HRESULT ISpeechPhoneConverter_GetTypeInfo(ISpeechPhoneConverter* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
27459     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
27460 }
27461 static FORCEINLINE HRESULT ISpeechPhoneConverter_GetIDsOfNames(ISpeechPhoneConverter* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
27462     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
27463 }
27464 static FORCEINLINE HRESULT ISpeechPhoneConverter_Invoke(ISpeechPhoneConverter* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
27465     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
27466 }
27467 /*** ISpeechPhoneConverter methods ***/
27468 static FORCEINLINE HRESULT ISpeechPhoneConverter_get_LanguageId(ISpeechPhoneConverter* This,SpeechLanguageId *LanguageId) {
27469     return This->lpVtbl->get_LanguageId(This,LanguageId);
27470 }
27471 static FORCEINLINE HRESULT ISpeechPhoneConverter_put_LanguageId(ISpeechPhoneConverter* This,SpeechLanguageId LanguageId) {
27472     return This->lpVtbl->put_LanguageId(This,LanguageId);
27473 }
27474 static FORCEINLINE HRESULT ISpeechPhoneConverter_PhoneToId(ISpeechPhoneConverter* This,const BSTR Phonemes,VARIANT *IdArray) {
27475     return This->lpVtbl->PhoneToId(This,Phonemes,IdArray);
27476 }
27477 static FORCEINLINE HRESULT ISpeechPhoneConverter_IdToPhone(ISpeechPhoneConverter* This,const VARIANT IdArray,BSTR *Phonemes) {
27478     return This->lpVtbl->IdToPhone(This,IdArray,Phonemes);
27479 }
27480 #endif
27481 #endif
27482 
27483 #endif
27484 
27485 HRESULT STDMETHODCALLTYPE ISpeechPhoneConverter_get_LanguageId_Proxy(
27486     ISpeechPhoneConverter* This,
27487     SpeechLanguageId *LanguageId);
27488 void __RPC_STUB ISpeechPhoneConverter_get_LanguageId_Stub(
27489     IRpcStubBuffer* This,
27490     IRpcChannelBuffer* pRpcChannelBuffer,
27491     PRPC_MESSAGE pRpcMessage,
27492     DWORD* pdwStubPhase);
27493 HRESULT STDMETHODCALLTYPE ISpeechPhoneConverter_put_LanguageId_Proxy(
27494     ISpeechPhoneConverter* This,
27495     SpeechLanguageId LanguageId);
27496 void __RPC_STUB ISpeechPhoneConverter_put_LanguageId_Stub(
27497     IRpcStubBuffer* This,
27498     IRpcChannelBuffer* pRpcChannelBuffer,
27499     PRPC_MESSAGE pRpcMessage,
27500     DWORD* pdwStubPhase);
27501 HRESULT STDMETHODCALLTYPE ISpeechPhoneConverter_PhoneToId_Proxy(
27502     ISpeechPhoneConverter* This,
27503     const BSTR Phonemes,
27504     VARIANT *IdArray);
27505 void __RPC_STUB ISpeechPhoneConverter_PhoneToId_Stub(
27506     IRpcStubBuffer* This,
27507     IRpcChannelBuffer* pRpcChannelBuffer,
27508     PRPC_MESSAGE pRpcMessage,
27509     DWORD* pdwStubPhase);
27510 HRESULT STDMETHODCALLTYPE ISpeechPhoneConverter_IdToPhone_Proxy(
27511     ISpeechPhoneConverter* This,
27512     const VARIANT IdArray,
27513     BSTR *Phonemes);
27514 void __RPC_STUB ISpeechPhoneConverter_IdToPhone_Stub(
27515     IRpcStubBuffer* This,
27516     IRpcChannelBuffer* pRpcChannelBuffer,
27517     PRPC_MESSAGE pRpcMessage,
27518     DWORD* pdwStubPhase);
27519 
27520 #endif  /* __ISpeechPhoneConverter_INTERFACE_DEFINED__ */
27521 
27522 /*****************************************************************************
27523  * SpNotifyTranslator coclass
27524  */
27525 
27526 DEFINE_GUID(CLSID_SpNotifyTranslator, 0xe2ae5372, 0x5d40, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
27527 
27528 #ifdef __cplusplus
27529 class DECLSPEC_UUID("e2ae5372-5d40-11d2-960e-00c04f8ee628") SpNotifyTranslator;
27530 #ifdef __CRT_UUID_DECL
27531 __CRT_UUID_DECL(SpNotifyTranslator, 0xe2ae5372, 0x5d40, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
27532 #endif
27533 #endif
27534 
27535 /*****************************************************************************
27536  * SpObjectTokenCategory coclass
27537  */
27538 
27539 DEFINE_GUID(CLSID_SpObjectTokenCategory, 0xa910187f, 0x0c7a, 0x45ac, 0x92,0xcc, 0x59,0xed,0xaf,0xb7,0x7b,0x53);
27540 
27541 #ifdef __cplusplus
27542 class DECLSPEC_UUID("a910187f-0c7a-45ac-92cc-59edafb77b53") SpObjectTokenCategory;
27543 #ifdef __CRT_UUID_DECL
27544 __CRT_UUID_DECL(SpObjectTokenCategory, 0xa910187f, 0x0c7a, 0x45ac, 0x92,0xcc, 0x59,0xed,0xaf,0xb7,0x7b,0x53)
27545 #endif
27546 #endif
27547 
27548 /*****************************************************************************
27549  * SpObjectToken coclass
27550  */
27551 
27552 DEFINE_GUID(CLSID_SpObjectToken, 0xef411752, 0x3736, 0x4cb4, 0x9c,0x8c, 0x8e,0xf4,0xcc,0xb5,0x8e,0xfe);
27553 
27554 #ifdef __cplusplus
27555 class DECLSPEC_UUID("ef411752-3736-4cb4-9c8c-8ef4ccb58efe") SpObjectToken;
27556 #ifdef __CRT_UUID_DECL
27557 __CRT_UUID_DECL(SpObjectToken, 0xef411752, 0x3736, 0x4cb4, 0x9c,0x8c, 0x8e,0xf4,0xcc,0xb5,0x8e,0xfe)
27558 #endif
27559 #endif
27560 
27561 /*****************************************************************************
27562  * SpResourceManager coclass
27563  */
27564 
27565 DEFINE_GUID(CLSID_SpResourceManager, 0x96749373, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96);
27566 
27567 #ifdef __cplusplus
27568 class DECLSPEC_UUID("96749373-3391-11d2-9ee3-00c04f797396") SpResourceManager;
27569 #ifdef __CRT_UUID_DECL
27570 __CRT_UUID_DECL(SpResourceManager, 0x96749373, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96)
27571 #endif
27572 #endif
27573 
27574 /*****************************************************************************
27575  * SpStreamFormatConverter coclass
27576  */
27577 
27578 DEFINE_GUID(CLSID_SpStreamFormatConverter, 0x7013943a, 0xe2ec, 0x11d2, 0xa0,0x86, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5);
27579 
27580 #ifdef __cplusplus
27581 class DECLSPEC_UUID("7013943a-e2ec-11d2-a086-00c04f8ef9b5") SpStreamFormatConverter;
27582 #ifdef __CRT_UUID_DECL
27583 __CRT_UUID_DECL(SpStreamFormatConverter, 0x7013943a, 0xe2ec, 0x11d2, 0xa0,0x86, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5)
27584 #endif
27585 #endif
27586 
27587 /*****************************************************************************
27588  * SpMMAudioEnum coclass
27589  */
27590 
27591 DEFINE_GUID(CLSID_SpMMAudioEnum, 0xab1890a0, 0xe91f, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
27592 
27593 #ifdef __cplusplus
27594 class DECLSPEC_UUID("ab1890a0-e91f-11d2-bb91-00c04f8ee6c0") SpMMAudioEnum;
27595 #ifdef __CRT_UUID_DECL
27596 __CRT_UUID_DECL(SpMMAudioEnum, 0xab1890a0, 0xe91f, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
27597 #endif
27598 #endif
27599 
27600 /*****************************************************************************
27601  * SpMMAudioIn coclass
27602  */
27603 
27604 DEFINE_GUID(CLSID_SpMMAudioIn, 0xcf3d2e50, 0x53f2, 0x11d2, 0x96,0x0c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
27605 
27606 #ifdef __cplusplus
27607 class DECLSPEC_UUID("cf3d2e50-53f2-11d2-960c-00c04f8ee628") SpMMAudioIn;
27608 #ifdef __CRT_UUID_DECL
27609 __CRT_UUID_DECL(SpMMAudioIn, 0xcf3d2e50, 0x53f2, 0x11d2, 0x96,0x0c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
27610 #endif
27611 #endif
27612 
27613 /*****************************************************************************
27614  * SpMMAudioOut coclass
27615  */
27616 
27617 DEFINE_GUID(CLSID_SpMMAudioOut, 0xa8c680eb, 0x3d32, 0x11d2, 0x9e,0xe7, 0x00,0xc0,0x4f,0x79,0x73,0x96);
27618 
27619 #ifdef __cplusplus
27620 class DECLSPEC_UUID("a8c680eb-3d32-11d2-9ee7-00c04f797396") SpMMAudioOut;
27621 #ifdef __CRT_UUID_DECL
27622 __CRT_UUID_DECL(SpMMAudioOut, 0xa8c680eb, 0x3d32, 0x11d2, 0x9e,0xe7, 0x00,0xc0,0x4f,0x79,0x73,0x96)
27623 #endif
27624 #endif
27625 
27626 /*****************************************************************************
27627  * SpStream coclass
27628  */
27629 
27630 DEFINE_GUID(CLSID_SpStream, 0x715d9c59, 0x4442, 0x11d2, 0x96,0x05, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
27631 
27632 #ifdef __cplusplus
27633 class DECLSPEC_UUID("715d9c59-4442-11d2-9605-00c04f8ee628") SpStream;
27634 #ifdef __CRT_UUID_DECL
27635 __CRT_UUID_DECL(SpStream, 0x715d9c59, 0x4442, 0x11d2, 0x96,0x05, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
27636 #endif
27637 #endif
27638 
27639 /*****************************************************************************
27640  * SpVoice coclass
27641  */
27642 
27643 DEFINE_GUID(CLSID_SpVoice, 0x96749377, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96);
27644 
27645 #ifdef __cplusplus
27646 class DECLSPEC_UUID("96749377-3391-11d2-9ee3-00c04f797396") SpVoice;
27647 #ifdef __CRT_UUID_DECL
27648 __CRT_UUID_DECL(SpVoice, 0x96749377, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96)
27649 #endif
27650 #endif
27651 
27652 /*****************************************************************************
27653  * SpSharedRecoContext coclass
27654  */
27655 
27656 DEFINE_GUID(CLSID_SpSharedRecoContext, 0x47206204, 0x5eca, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
27657 
27658 #ifdef __cplusplus
27659 class DECLSPEC_UUID("47206204-5eca-11d2-960f-00c04f8ee628") SpSharedRecoContext;
27660 #ifdef __CRT_UUID_DECL
27661 __CRT_UUID_DECL(SpSharedRecoContext, 0x47206204, 0x5eca, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
27662 #endif
27663 #endif
27664 
27665 /*****************************************************************************
27666  * SpInprocRecognizer coclass
27667  */
27668 
27669 DEFINE_GUID(CLSID_SpInprocRecognizer, 0x41b89b6b, 0x9399, 0x11d2, 0x96,0x23, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
27670 
27671 #ifdef __cplusplus
27672 class DECLSPEC_UUID("41b89b6b-9399-11d2-9623-00c04f8ee628") SpInprocRecognizer;
27673 #ifdef __CRT_UUID_DECL
27674 __CRT_UUID_DECL(SpInprocRecognizer, 0x41b89b6b, 0x9399, 0x11d2, 0x96,0x23, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
27675 #endif
27676 #endif
27677 
27678 /*****************************************************************************
27679  * SpSharedRecognizer coclass
27680  */
27681 
27682 DEFINE_GUID(CLSID_SpSharedRecognizer, 0x3bee4890, 0x4fe9, 0x4a37, 0x8c,0x1e, 0x5e,0x7e,0x12,0x79,0x1c,0x1f);
27683 
27684 #ifdef __cplusplus
27685 class DECLSPEC_UUID("3bee4890-4fe9-4a37-8c1e-5e7e12791c1f") SpSharedRecognizer;
27686 #ifdef __CRT_UUID_DECL
27687 __CRT_UUID_DECL(SpSharedRecognizer, 0x3bee4890, 0x4fe9, 0x4a37, 0x8c,0x1e, 0x5e,0x7e,0x12,0x79,0x1c,0x1f)
27688 #endif
27689 #endif
27690 
27691 /*****************************************************************************
27692  * SpLexicon coclass
27693  */
27694 
27695 DEFINE_GUID(CLSID_SpLexicon, 0x0655e396, 0x25d0, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c);
27696 
27697 #ifdef __cplusplus
27698 class DECLSPEC_UUID("0655e396-25d0-11d3-9c26-00c04f8ef87c") SpLexicon;
27699 #ifdef __CRT_UUID_DECL
27700 __CRT_UUID_DECL(SpLexicon, 0x0655e396, 0x25d0, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c)
27701 #endif
27702 #endif
27703 
27704 /*****************************************************************************
27705  * SpUnCompressedLexicon coclass
27706  */
27707 
27708 DEFINE_GUID(CLSID_SpUnCompressedLexicon, 0xc9e37c15, 0xdf92, 0x4727, 0x85,0xd6, 0x72,0xe5,0xee,0xb6,0x99,0x5a);
27709 
27710 #ifdef __cplusplus
27711 class DECLSPEC_UUID("c9e37c15-df92-4727-85d6-72e5eeb6995a") SpUnCompressedLexicon;
27712 #ifdef __CRT_UUID_DECL
27713 __CRT_UUID_DECL(SpUnCompressedLexicon, 0xc9e37c15, 0xdf92, 0x4727, 0x85,0xd6, 0x72,0xe5,0xee,0xb6,0x99,0x5a)
27714 #endif
27715 #endif
27716 
27717 /*****************************************************************************
27718  * SpCompressedLexicon coclass
27719  */
27720 
27721 DEFINE_GUID(CLSID_SpCompressedLexicon, 0x90903716, 0x2f42, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c);
27722 
27723 #ifdef __cplusplus
27724 class DECLSPEC_UUID("90903716-2f42-11d3-9c26-00c04f8ef87c") SpCompressedLexicon;
27725 #ifdef __CRT_UUID_DECL
27726 __CRT_UUID_DECL(SpCompressedLexicon, 0x90903716, 0x2f42, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c)
27727 #endif
27728 #endif
27729 
27730 /*****************************************************************************
27731  * SpShortcut coclass
27732  */
27733 
27734 DEFINE_GUID(CLSID_SpShortcut, 0x0d722f1a, 0x9fcf, 0x4e62, 0x96,0xd8, 0x6d,0xf8,0xf0,0x1a,0x26,0xaa);
27735 
27736 #ifdef __cplusplus
27737 class DECLSPEC_UUID("0d722f1a-9fcf-4e62-96d8-6df8f01a26aa") SpShortcut;
27738 #ifdef __CRT_UUID_DECL
27739 __CRT_UUID_DECL(SpShortcut, 0x0d722f1a, 0x9fcf, 0x4e62, 0x96,0xd8, 0x6d,0xf8,0xf0,0x1a,0x26,0xaa)
27740 #endif
27741 #endif
27742 
27743 /*****************************************************************************
27744  * SpPhoneConverter coclass
27745  */
27746 
27747 DEFINE_GUID(CLSID_SpPhoneConverter, 0x9185f743, 0x1143, 0x4c28, 0x86,0xb5, 0xbf,0xf1,0x4f,0x20,0xe5,0xc8);
27748 
27749 #ifdef __cplusplus
27750 class DECLSPEC_UUID("9185f743-1143-4c28-86b5-bff14f20e5c8") SpPhoneConverter;
27751 #ifdef __CRT_UUID_DECL
27752 __CRT_UUID_DECL(SpPhoneConverter, 0x9185f743, 0x1143, 0x4c28, 0x86,0xb5, 0xbf,0xf1,0x4f,0x20,0xe5,0xc8)
27753 #endif
27754 #endif
27755 
27756 /*****************************************************************************
27757  * SpPhoneticAlphabetConverter coclass
27758  */
27759 
27760 DEFINE_GUID(CLSID_SpPhoneticAlphabetConverter, 0x4f414126, 0xdfe3, 0x4629, 0x99,0xee, 0x79,0x79,0x78,0x31,0x7e,0xad);
27761 
27762 #ifdef __cplusplus
27763 class DECLSPEC_UUID("4f414126-dfe3-4629-99ee-797978317ead") SpPhoneticAlphabetConverter;
27764 #ifdef __CRT_UUID_DECL
27765 __CRT_UUID_DECL(SpPhoneticAlphabetConverter, 0x4f414126, 0xdfe3, 0x4629, 0x99,0xee, 0x79,0x79,0x78,0x31,0x7e,0xad)
27766 #endif
27767 #endif
27768 
27769 /*****************************************************************************
27770  * SpNullPhoneConverter coclass
27771  */
27772 
27773 DEFINE_GUID(CLSID_SpNullPhoneConverter, 0x455f24e9, 0x7396, 0x4a16, 0x97,0x15, 0x7c,0x0f,0xdb,0xe3,0xef,0xe3);
27774 
27775 #ifdef __cplusplus
27776 class DECLSPEC_UUID("455f24e9-7396-4a16-9715-7c0fdbe3efe3") SpNullPhoneConverter;
27777 #ifdef __CRT_UUID_DECL
27778 __CRT_UUID_DECL(SpNullPhoneConverter, 0x455f24e9, 0x7396, 0x4a16, 0x97,0x15, 0x7c,0x0f,0xdb,0xe3,0xef,0xe3)
27779 #endif
27780 #endif
27781 
27782 /*****************************************************************************
27783  * SpTextSelectionInformation coclass
27784  */
27785 
27786 DEFINE_GUID(CLSID_SpTextSelectionInformation, 0x0f92030a, 0xcbfd, 0x4ab8, 0xa1,0x64, 0xff,0x59,0x85,0x54,0x7f,0xf6);
27787 
27788 #ifdef __cplusplus
27789 class DECLSPEC_UUID("0f92030a-cbfd-4ab8-a164-ff5985547ff6") SpTextSelectionInformation;
27790 #ifdef __CRT_UUID_DECL
27791 __CRT_UUID_DECL(SpTextSelectionInformation, 0x0f92030a, 0xcbfd, 0x4ab8, 0xa1,0x64, 0xff,0x59,0x85,0x54,0x7f,0xf6)
27792 #endif
27793 #endif
27794 
27795 /*****************************************************************************
27796  * SpPhraseInfoBuilder coclass
27797  */
27798 
27799 DEFINE_GUID(CLSID_SpPhraseInfoBuilder, 0xc23fc28d, 0xc55f, 0x4720, 0x8b,0x32, 0x91,0xf7,0x3c,0x2b,0xd5,0xd1);
27800 
27801 #ifdef __cplusplus
27802 class DECLSPEC_UUID("c23fc28d-c55f-4720-8b32-91f73c2bd5d1") SpPhraseInfoBuilder;
27803 #ifdef __CRT_UUID_DECL
27804 __CRT_UUID_DECL(SpPhraseInfoBuilder, 0xc23fc28d, 0xc55f, 0x4720, 0x8b,0x32, 0x91,0xf7,0x3c,0x2b,0xd5,0xd1)
27805 #endif
27806 #endif
27807 
27808 /*****************************************************************************
27809  * SpAudioFormat coclass
27810  */
27811 
27812 DEFINE_GUID(CLSID_SpAudioFormat, 0x9ef96870, 0xe160, 0x4792, 0x82,0x0d, 0x48,0xcf,0x06,0x49,0xe4,0xec);
27813 
27814 #ifdef __cplusplus
27815 class DECLSPEC_UUID("9ef96870-e160-4792-820d-48cf0649e4ec") SpAudioFormat;
27816 #ifdef __CRT_UUID_DECL
27817 __CRT_UUID_DECL(SpAudioFormat, 0x9ef96870, 0xe160, 0x4792, 0x82,0x0d, 0x48,0xcf,0x06,0x49,0xe4,0xec)
27818 #endif
27819 #endif
27820 
27821 /*****************************************************************************
27822  * SpWaveFormatEx coclass
27823  */
27824 
27825 DEFINE_GUID(CLSID_SpWaveFormatEx, 0xc79a574c, 0x63be, 0x44b9, 0x80,0x1f, 0x28,0x3f,0x87,0xf8,0x98,0xbe);
27826 
27827 #ifdef __cplusplus
27828 class DECLSPEC_UUID("c79a574c-63be-44b9-801f-283f87f898be") SpWaveFormatEx;
27829 #ifdef __CRT_UUID_DECL
27830 __CRT_UUID_DECL(SpWaveFormatEx, 0xc79a574c, 0x63be, 0x44b9, 0x80,0x1f, 0x28,0x3f,0x87,0xf8,0x98,0xbe)
27831 #endif
27832 #endif
27833 
27834 /*****************************************************************************
27835  * SpInProcRecoContext coclass
27836  */
27837 
27838 DEFINE_GUID(CLSID_SpInProcRecoContext, 0x73ad6842, 0xace0, 0x45e8, 0xa4,0xdd, 0x87,0x95,0x88,0x1a,0x2c,0x2a);
27839 
27840 #ifdef __cplusplus
27841 class DECLSPEC_UUID("73ad6842-ace0-45e8-a4dd-8795881a2c2a") SpInProcRecoContext;
27842 #ifdef __CRT_UUID_DECL
27843 __CRT_UUID_DECL(SpInProcRecoContext, 0x73ad6842, 0xace0, 0x45e8, 0xa4,0xdd, 0x87,0x95,0x88,0x1a,0x2c,0x2a)
27844 #endif
27845 #endif
27846 
27847 /*****************************************************************************
27848  * SpCustomStream coclass
27849  */
27850 
27851 DEFINE_GUID(CLSID_SpCustomStream, 0x8dbef13f, 0x1948, 0x4aa8, 0x8c,0xf0, 0x04,0x8e,0xeb,0xed,0x95,0xd8);
27852 
27853 #ifdef __cplusplus
27854 class DECLSPEC_UUID("8dbef13f-1948-4aa8-8cf0-048eebed95d8") SpCustomStream;
27855 #ifdef __CRT_UUID_DECL
27856 __CRT_UUID_DECL(SpCustomStream, 0x8dbef13f, 0x1948, 0x4aa8, 0x8c,0xf0, 0x04,0x8e,0xeb,0xed,0x95,0xd8)
27857 #endif
27858 #endif
27859 
27860 /*****************************************************************************
27861  * SpFileStream coclass
27862  */
27863 
27864 DEFINE_GUID(CLSID_SpFileStream, 0x947812b3, 0x2ae1, 0x4644, 0xba,0x86, 0x9e,0x90,0xde,0xd7,0xec,0x91);
27865 
27866 #ifdef __cplusplus
27867 class DECLSPEC_UUID("947812b3-2ae1-4644-ba86-9e90ded7ec91") SpFileStream;
27868 #ifdef __CRT_UUID_DECL
27869 __CRT_UUID_DECL(SpFileStream, 0x947812b3, 0x2ae1, 0x4644, 0xba,0x86, 0x9e,0x90,0xde,0xd7,0xec,0x91)
27870 #endif
27871 #endif
27872 
27873 /*****************************************************************************
27874  * SpMemoryStream coclass
27875  */
27876 
27877 DEFINE_GUID(CLSID_SpMemoryStream, 0x5fb7ef7d, 0xdff4, 0x468a, 0xb6,0xb7, 0x2f,0xcb,0xd1,0x88,0xf9,0x94);
27878 
27879 #ifdef __cplusplus
27880 class DECLSPEC_UUID("5fb7ef7d-dff4-468a-b6b7-2fcbd188f994") SpMemoryStream;
27881 #ifdef __CRT_UUID_DECL
27882 __CRT_UUID_DECL(SpMemoryStream, 0x5fb7ef7d, 0xdff4, 0x468a, 0xb6,0xb7, 0x2f,0xcb,0xd1,0x88,0xf9,0x94)
27883 #endif
27884 #endif
27885 
27886 #ifndef __ISpXMLRecoResult_FWD_DEFINED__
27887 #define __ISpXMLRecoResult_FWD_DEFINED__
27888 typedef interface ISpXMLRecoResult ISpXMLRecoResult;
27889 #endif
27890 
27891 #ifndef __ISpRecoGrammar2_FWD_DEFINED__
27892 #define __ISpRecoGrammar2_FWD_DEFINED__
27893 typedef interface ISpRecoGrammar2 ISpRecoGrammar2;
27894 #endif
27895 
27896 #ifndef __ISpeechResourceLoader_FWD_DEFINED__
27897 #define __ISpeechResourceLoader_FWD_DEFINED__
27898 typedef interface ISpeechResourceLoader ISpeechResourceLoader;
27899 #endif
27900 
27901 /* Begin additional prototypes for all interfaces */
27902 
27903 ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
27904 unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
27905 unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
27906 void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
27907 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
27908 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
27909 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
27910 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
27911 ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
27912 unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
27913 unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
27914 void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
27915 
27916 /* End additional prototypes */
27917 
27918 #ifdef __cplusplus
27919 }
27920 #endif
27921 
27922 #endif /* __sapi54_h__ */
27923