1 /*** Autogenerated by WIDL 1.6 from include/sapi53.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 __sapi53_h__
16 #define __sapi53_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 __ISpEnginePronunciation_FWD_DEFINED__
241 #define __ISpEnginePronunciation_FWD_DEFINED__
242 typedef interface ISpEnginePronunciation ISpEnginePronunciation;
243 #endif
244 
245 #ifndef __ISpDisplayAlternates_FWD_DEFINED__
246 #define __ISpDisplayAlternates_FWD_DEFINED__
247 typedef interface ISpDisplayAlternates ISpDisplayAlternates;
248 #endif
249 
250 #ifndef __ISpeechDataKey_FWD_DEFINED__
251 #define __ISpeechDataKey_FWD_DEFINED__
252 typedef interface ISpeechDataKey ISpeechDataKey;
253 #endif
254 
255 #ifndef __ISpeechObjectToken_FWD_DEFINED__
256 #define __ISpeechObjectToken_FWD_DEFINED__
257 typedef interface ISpeechObjectToken ISpeechObjectToken;
258 #endif
259 
260 #ifndef __ISpeechObjectTokens_FWD_DEFINED__
261 #define __ISpeechObjectTokens_FWD_DEFINED__
262 typedef interface ISpeechObjectTokens ISpeechObjectTokens;
263 #endif
264 
265 #ifndef __ISpeechObjectTokenCategory_FWD_DEFINED__
266 #define __ISpeechObjectTokenCategory_FWD_DEFINED__
267 typedef interface ISpeechObjectTokenCategory ISpeechObjectTokenCategory;
268 #endif
269 
270 #ifndef __ISpeechAudioFormat_FWD_DEFINED__
271 #define __ISpeechAudioFormat_FWD_DEFINED__
272 typedef interface ISpeechAudioFormat ISpeechAudioFormat;
273 #endif
274 
275 #ifndef __ISpeechBaseStream_FWD_DEFINED__
276 #define __ISpeechBaseStream_FWD_DEFINED__
277 typedef interface ISpeechBaseStream ISpeechBaseStream;
278 #endif
279 
280 #ifndef __ISpeechAudio_FWD_DEFINED__
281 #define __ISpeechAudio_FWD_DEFINED__
282 typedef interface ISpeechAudio ISpeechAudio;
283 #endif
284 
285 #ifndef __ISpeechMMSysAudio_FWD_DEFINED__
286 #define __ISpeechMMSysAudio_FWD_DEFINED__
287 typedef interface ISpeechMMSysAudio ISpeechMMSysAudio;
288 #endif
289 
290 #ifndef __ISpeechFileStream_FWD_DEFINED__
291 #define __ISpeechFileStream_FWD_DEFINED__
292 typedef interface ISpeechFileStream ISpeechFileStream;
293 #endif
294 
295 #ifndef __ISpeechCustomStream_FWD_DEFINED__
296 #define __ISpeechCustomStream_FWD_DEFINED__
297 typedef interface ISpeechCustomStream ISpeechCustomStream;
298 #endif
299 
300 #ifndef __ISpeechMemoryStream_FWD_DEFINED__
301 #define __ISpeechMemoryStream_FWD_DEFINED__
302 typedef interface ISpeechMemoryStream ISpeechMemoryStream;
303 #endif
304 
305 #ifndef __ISpeechAudioStatus_FWD_DEFINED__
306 #define __ISpeechAudioStatus_FWD_DEFINED__
307 typedef interface ISpeechAudioStatus ISpeechAudioStatus;
308 #endif
309 
310 #ifndef __ISpeechAudioBufferInfo_FWD_DEFINED__
311 #define __ISpeechAudioBufferInfo_FWD_DEFINED__
312 typedef interface ISpeechAudioBufferInfo ISpeechAudioBufferInfo;
313 #endif
314 
315 #ifndef __ISpeechWaveFormatEx_FWD_DEFINED__
316 #define __ISpeechWaveFormatEx_FWD_DEFINED__
317 typedef interface ISpeechWaveFormatEx ISpeechWaveFormatEx;
318 #endif
319 
320 #ifndef __ISpeechVoice_FWD_DEFINED__
321 #define __ISpeechVoice_FWD_DEFINED__
322 typedef interface ISpeechVoice ISpeechVoice;
323 #endif
324 
325 #ifndef __ISpeechVoiceStatus_FWD_DEFINED__
326 #define __ISpeechVoiceStatus_FWD_DEFINED__
327 typedef interface ISpeechVoiceStatus ISpeechVoiceStatus;
328 #endif
329 
330 #ifndef ___ISpeechVoiceEvents_FWD_DEFINED__
331 #define ___ISpeechVoiceEvents_FWD_DEFINED__
332 typedef interface _ISpeechVoiceEvents _ISpeechVoiceEvents;
333 #endif
334 
335 #ifndef __ISpeechRecognizer_FWD_DEFINED__
336 #define __ISpeechRecognizer_FWD_DEFINED__
337 typedef interface ISpeechRecognizer ISpeechRecognizer;
338 #endif
339 
340 #ifndef __ISpeechRecognizerStatus_FWD_DEFINED__
341 #define __ISpeechRecognizerStatus_FWD_DEFINED__
342 typedef interface ISpeechRecognizerStatus ISpeechRecognizerStatus;
343 #endif
344 
345 #ifndef __ISpeechRecoContext_FWD_DEFINED__
346 #define __ISpeechRecoContext_FWD_DEFINED__
347 typedef interface ISpeechRecoContext ISpeechRecoContext;
348 #endif
349 
350 #ifndef __ISpeechRecoGrammar_FWD_DEFINED__
351 #define __ISpeechRecoGrammar_FWD_DEFINED__
352 typedef interface ISpeechRecoGrammar ISpeechRecoGrammar;
353 #endif
354 
355 #ifndef ___ISpeechRecoContextEvents_FWD_DEFINED__
356 #define ___ISpeechRecoContextEvents_FWD_DEFINED__
357 typedef interface _ISpeechRecoContextEvents _ISpeechRecoContextEvents;
358 #endif
359 
360 #ifndef __ISpeechGrammarRule_FWD_DEFINED__
361 #define __ISpeechGrammarRule_FWD_DEFINED__
362 typedef interface ISpeechGrammarRule ISpeechGrammarRule;
363 #endif
364 
365 #ifndef __ISpeechGrammarRules_FWD_DEFINED__
366 #define __ISpeechGrammarRules_FWD_DEFINED__
367 typedef interface ISpeechGrammarRules ISpeechGrammarRules;
368 #endif
369 
370 #ifndef __ISpeechGrammarRuleState_FWD_DEFINED__
371 #define __ISpeechGrammarRuleState_FWD_DEFINED__
372 typedef interface ISpeechGrammarRuleState ISpeechGrammarRuleState;
373 #endif
374 
375 #ifndef __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
376 #define __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
377 typedef interface ISpeechGrammarRuleStateTransitions ISpeechGrammarRuleStateTransitions;
378 #endif
379 
380 #ifndef __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
381 #define __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
382 typedef interface ISpeechGrammarRuleStateTransition ISpeechGrammarRuleStateTransition;
383 #endif
384 
385 #ifndef __ISpeechTextSelectionInformation_FWD_DEFINED__
386 #define __ISpeechTextSelectionInformation_FWD_DEFINED__
387 typedef interface ISpeechTextSelectionInformation ISpeechTextSelectionInformation;
388 #endif
389 
390 #ifndef __ISpeechRecoResult_FWD_DEFINED__
391 #define __ISpeechRecoResult_FWD_DEFINED__
392 typedef interface ISpeechRecoResult ISpeechRecoResult;
393 #endif
394 
395 #ifndef __ISpeechXMLRecoResult_FWD_DEFINED__
396 #define __ISpeechXMLRecoResult_FWD_DEFINED__
397 typedef interface ISpeechXMLRecoResult ISpeechXMLRecoResult;
398 #endif
399 
400 #ifndef __ISpeechRecoResult2_FWD_DEFINED__
401 #define __ISpeechRecoResult2_FWD_DEFINED__
402 typedef interface ISpeechRecoResult2 ISpeechRecoResult2;
403 #endif
404 
405 #ifndef __ISpeechRecoResultDispatch_FWD_DEFINED__
406 #define __ISpeechRecoResultDispatch_FWD_DEFINED__
407 typedef interface ISpeechRecoResultDispatch ISpeechRecoResultDispatch;
408 #endif
409 
410 #ifndef __ISpeechPhraseInfoBuilder_FWD_DEFINED__
411 #define __ISpeechPhraseInfoBuilder_FWD_DEFINED__
412 typedef interface ISpeechPhraseInfoBuilder ISpeechPhraseInfoBuilder;
413 #endif
414 
415 #ifndef __ISpeechRecoResultTimes_FWD_DEFINED__
416 #define __ISpeechRecoResultTimes_FWD_DEFINED__
417 typedef interface ISpeechRecoResultTimes ISpeechRecoResultTimes;
418 #endif
419 
420 #ifndef __ISpeechPhraseAlternate_FWD_DEFINED__
421 #define __ISpeechPhraseAlternate_FWD_DEFINED__
422 typedef interface ISpeechPhraseAlternate ISpeechPhraseAlternate;
423 #endif
424 
425 #ifndef __ISpeechPhraseAlternates_FWD_DEFINED__
426 #define __ISpeechPhraseAlternates_FWD_DEFINED__
427 typedef interface ISpeechPhraseAlternates ISpeechPhraseAlternates;
428 #endif
429 
430 #ifndef __ISpeechPhraseInfo_FWD_DEFINED__
431 #define __ISpeechPhraseInfo_FWD_DEFINED__
432 typedef interface ISpeechPhraseInfo ISpeechPhraseInfo;
433 #endif
434 
435 #ifndef __ISpeechPhraseElement_FWD_DEFINED__
436 #define __ISpeechPhraseElement_FWD_DEFINED__
437 typedef interface ISpeechPhraseElement ISpeechPhraseElement;
438 #endif
439 
440 #ifndef __ISpeechPhraseElements_FWD_DEFINED__
441 #define __ISpeechPhraseElements_FWD_DEFINED__
442 typedef interface ISpeechPhraseElements ISpeechPhraseElements;
443 #endif
444 
445 #ifndef __ISpeechPhraseReplacement_FWD_DEFINED__
446 #define __ISpeechPhraseReplacement_FWD_DEFINED__
447 typedef interface ISpeechPhraseReplacement ISpeechPhraseReplacement;
448 #endif
449 
450 #ifndef __ISpeechPhraseReplacements_FWD_DEFINED__
451 #define __ISpeechPhraseReplacements_FWD_DEFINED__
452 typedef interface ISpeechPhraseReplacements ISpeechPhraseReplacements;
453 #endif
454 
455 #ifndef __ISpeechPhraseProperty_FWD_DEFINED__
456 #define __ISpeechPhraseProperty_FWD_DEFINED__
457 typedef interface ISpeechPhraseProperty ISpeechPhraseProperty;
458 #endif
459 
460 #ifndef __ISpeechPhraseProperties_FWD_DEFINED__
461 #define __ISpeechPhraseProperties_FWD_DEFINED__
462 typedef interface ISpeechPhraseProperties ISpeechPhraseProperties;
463 #endif
464 
465 #ifndef __ISpeechPhraseRule_FWD_DEFINED__
466 #define __ISpeechPhraseRule_FWD_DEFINED__
467 typedef interface ISpeechPhraseRule ISpeechPhraseRule;
468 #endif
469 
470 #ifndef __ISpeechPhraseRules_FWD_DEFINED__
471 #define __ISpeechPhraseRules_FWD_DEFINED__
472 typedef interface ISpeechPhraseRules ISpeechPhraseRules;
473 #endif
474 
475 #ifndef __ISpeechLexiconWords_FWD_DEFINED__
476 #define __ISpeechLexiconWords_FWD_DEFINED__
477 typedef interface ISpeechLexiconWords ISpeechLexiconWords;
478 #endif
479 
480 #ifndef __ISpeechLexicon_FWD_DEFINED__
481 #define __ISpeechLexicon_FWD_DEFINED__
482 typedef interface ISpeechLexicon ISpeechLexicon;
483 #endif
484 
485 #ifndef __ISpeechLexiconWord_FWD_DEFINED__
486 #define __ISpeechLexiconWord_FWD_DEFINED__
487 typedef interface ISpeechLexiconWord ISpeechLexiconWord;
488 #endif
489 
490 #ifndef __ISpeechLexiconPronunciations_FWD_DEFINED__
491 #define __ISpeechLexiconPronunciations_FWD_DEFINED__
492 typedef interface ISpeechLexiconPronunciations ISpeechLexiconPronunciations;
493 #endif
494 
495 #ifndef __ISpeechLexiconPronunciation_FWD_DEFINED__
496 #define __ISpeechLexiconPronunciation_FWD_DEFINED__
497 typedef interface ISpeechLexiconPronunciation ISpeechLexiconPronunciation;
498 #endif
499 
500 #ifndef __ISpeechPhoneConverter_FWD_DEFINED__
501 #define __ISpeechPhoneConverter_FWD_DEFINED__
502 typedef interface ISpeechPhoneConverter ISpeechPhoneConverter;
503 #endif
504 
505 #ifndef __SpNotifyTranslator_FWD_DEFINED__
506 #define __SpNotifyTranslator_FWD_DEFINED__
507 #ifdef __cplusplus
508 typedef class SpNotifyTranslator SpNotifyTranslator;
509 #else
510 typedef struct SpNotifyTranslator SpNotifyTranslator;
511 #endif /* defined __cplusplus */
512 #endif /* defined __SpNotifyTranslator_FWD_DEFINED__ */
513 
514 #ifndef __SpObjectTokenCategory_FWD_DEFINED__
515 #define __SpObjectTokenCategory_FWD_DEFINED__
516 #ifdef __cplusplus
517 typedef class SpObjectTokenCategory SpObjectTokenCategory;
518 #else
519 typedef struct SpObjectTokenCategory SpObjectTokenCategory;
520 #endif /* defined __cplusplus */
521 #endif /* defined __SpObjectTokenCategory_FWD_DEFINED__ */
522 
523 #ifndef __SpObjectToken_FWD_DEFINED__
524 #define __SpObjectToken_FWD_DEFINED__
525 #ifdef __cplusplus
526 typedef class SpObjectToken SpObjectToken;
527 #else
528 typedef struct SpObjectToken SpObjectToken;
529 #endif /* defined __cplusplus */
530 #endif /* defined __SpObjectToken_FWD_DEFINED__ */
531 
532 #ifndef __SpResourceManager_FWD_DEFINED__
533 #define __SpResourceManager_FWD_DEFINED__
534 #ifdef __cplusplus
535 typedef class SpResourceManager SpResourceManager;
536 #else
537 typedef struct SpResourceManager SpResourceManager;
538 #endif /* defined __cplusplus */
539 #endif /* defined __SpResourceManager_FWD_DEFINED__ */
540 
541 #ifndef __SpStreamFormatConverter_FWD_DEFINED__
542 #define __SpStreamFormatConverter_FWD_DEFINED__
543 #ifdef __cplusplus
544 typedef class SpStreamFormatConverter SpStreamFormatConverter;
545 #else
546 typedef struct SpStreamFormatConverter SpStreamFormatConverter;
547 #endif /* defined __cplusplus */
548 #endif /* defined __SpStreamFormatConverter_FWD_DEFINED__ */
549 
550 #ifndef __SpMMAudioEnum_FWD_DEFINED__
551 #define __SpMMAudioEnum_FWD_DEFINED__
552 #ifdef __cplusplus
553 typedef class SpMMAudioEnum SpMMAudioEnum;
554 #else
555 typedef struct SpMMAudioEnum SpMMAudioEnum;
556 #endif /* defined __cplusplus */
557 #endif /* defined __SpMMAudioEnum_FWD_DEFINED__ */
558 
559 #ifndef __SpMMAudioIn_FWD_DEFINED__
560 #define __SpMMAudioIn_FWD_DEFINED__
561 #ifdef __cplusplus
562 typedef class SpMMAudioIn SpMMAudioIn;
563 #else
564 typedef struct SpMMAudioIn SpMMAudioIn;
565 #endif /* defined __cplusplus */
566 #endif /* defined __SpMMAudioIn_FWD_DEFINED__ */
567 
568 #ifndef __SpMMAudioOut_FWD_DEFINED__
569 #define __SpMMAudioOut_FWD_DEFINED__
570 #ifdef __cplusplus
571 typedef class SpMMAudioOut SpMMAudioOut;
572 #else
573 typedef struct SpMMAudioOut SpMMAudioOut;
574 #endif /* defined __cplusplus */
575 #endif /* defined __SpMMAudioOut_FWD_DEFINED__ */
576 
577 #ifndef __SpStream_FWD_DEFINED__
578 #define __SpStream_FWD_DEFINED__
579 #ifdef __cplusplus
580 typedef class SpStream SpStream;
581 #else
582 typedef struct SpStream SpStream;
583 #endif /* defined __cplusplus */
584 #endif /* defined __SpStream_FWD_DEFINED__ */
585 
586 #ifndef __SpVoice_FWD_DEFINED__
587 #define __SpVoice_FWD_DEFINED__
588 #ifdef __cplusplus
589 typedef class SpVoice SpVoice;
590 #else
591 typedef struct SpVoice SpVoice;
592 #endif /* defined __cplusplus */
593 #endif /* defined __SpVoice_FWD_DEFINED__ */
594 
595 #ifndef __SpSharedRecoContext_FWD_DEFINED__
596 #define __SpSharedRecoContext_FWD_DEFINED__
597 #ifdef __cplusplus
598 typedef class SpSharedRecoContext SpSharedRecoContext;
599 #else
600 typedef struct SpSharedRecoContext SpSharedRecoContext;
601 #endif /* defined __cplusplus */
602 #endif /* defined __SpSharedRecoContext_FWD_DEFINED__ */
603 
604 #ifndef __SpInprocRecognizer_FWD_DEFINED__
605 #define __SpInprocRecognizer_FWD_DEFINED__
606 #ifdef __cplusplus
607 typedef class SpInprocRecognizer SpInprocRecognizer;
608 #else
609 typedef struct SpInprocRecognizer SpInprocRecognizer;
610 #endif /* defined __cplusplus */
611 #endif /* defined __SpInprocRecognizer_FWD_DEFINED__ */
612 
613 #ifndef __SpSharedRecognizer_FWD_DEFINED__
614 #define __SpSharedRecognizer_FWD_DEFINED__
615 #ifdef __cplusplus
616 typedef class SpSharedRecognizer SpSharedRecognizer;
617 #else
618 typedef struct SpSharedRecognizer SpSharedRecognizer;
619 #endif /* defined __cplusplus */
620 #endif /* defined __SpSharedRecognizer_FWD_DEFINED__ */
621 
622 #ifndef __SpLexicon_FWD_DEFINED__
623 #define __SpLexicon_FWD_DEFINED__
624 #ifdef __cplusplus
625 typedef class SpLexicon SpLexicon;
626 #else
627 typedef struct SpLexicon SpLexicon;
628 #endif /* defined __cplusplus */
629 #endif /* defined __SpLexicon_FWD_DEFINED__ */
630 
631 #ifndef __SpUnCompressedLexicon_FWD_DEFINED__
632 #define __SpUnCompressedLexicon_FWD_DEFINED__
633 #ifdef __cplusplus
634 typedef class SpUnCompressedLexicon SpUnCompressedLexicon;
635 #else
636 typedef struct SpUnCompressedLexicon SpUnCompressedLexicon;
637 #endif /* defined __cplusplus */
638 #endif /* defined __SpUnCompressedLexicon_FWD_DEFINED__ */
639 
640 #ifndef __SpCompressedLexicon_FWD_DEFINED__
641 #define __SpCompressedLexicon_FWD_DEFINED__
642 #ifdef __cplusplus
643 typedef class SpCompressedLexicon SpCompressedLexicon;
644 #else
645 typedef struct SpCompressedLexicon SpCompressedLexicon;
646 #endif /* defined __cplusplus */
647 #endif /* defined __SpCompressedLexicon_FWD_DEFINED__ */
648 
649 #ifndef __SpShortcut_FWD_DEFINED__
650 #define __SpShortcut_FWD_DEFINED__
651 #ifdef __cplusplus
652 typedef class SpShortcut SpShortcut;
653 #else
654 typedef struct SpShortcut SpShortcut;
655 #endif /* defined __cplusplus */
656 #endif /* defined __SpShortcut_FWD_DEFINED__ */
657 
658 #ifndef __SpPhoneConverter_FWD_DEFINED__
659 #define __SpPhoneConverter_FWD_DEFINED__
660 #ifdef __cplusplus
661 typedef class SpPhoneConverter SpPhoneConverter;
662 #else
663 typedef struct SpPhoneConverter SpPhoneConverter;
664 #endif /* defined __cplusplus */
665 #endif /* defined __SpPhoneConverter_FWD_DEFINED__ */
666 
667 #ifndef __SpPhoneticAlphabetConverter_FWD_DEFINED__
668 #define __SpPhoneticAlphabetConverter_FWD_DEFINED__
669 #ifdef __cplusplus
670 typedef class SpPhoneticAlphabetConverter SpPhoneticAlphabetConverter;
671 #else
672 typedef struct SpPhoneticAlphabetConverter SpPhoneticAlphabetConverter;
673 #endif /* defined __cplusplus */
674 #endif /* defined __SpPhoneticAlphabetConverter_FWD_DEFINED__ */
675 
676 #ifndef __SpNullPhoneConverter_FWD_DEFINED__
677 #define __SpNullPhoneConverter_FWD_DEFINED__
678 #ifdef __cplusplus
679 typedef class SpNullPhoneConverter SpNullPhoneConverter;
680 #else
681 typedef struct SpNullPhoneConverter SpNullPhoneConverter;
682 #endif /* defined __cplusplus */
683 #endif /* defined __SpNullPhoneConverter_FWD_DEFINED__ */
684 
685 #ifndef __SpTextSelectionInformation_FWD_DEFINED__
686 #define __SpTextSelectionInformation_FWD_DEFINED__
687 #ifdef __cplusplus
688 typedef class SpTextSelectionInformation SpTextSelectionInformation;
689 #else
690 typedef struct SpTextSelectionInformation SpTextSelectionInformation;
691 #endif /* defined __cplusplus */
692 #endif /* defined __SpTextSelectionInformation_FWD_DEFINED__ */
693 
694 #ifndef __SpPhraseInfoBuilder_FWD_DEFINED__
695 #define __SpPhraseInfoBuilder_FWD_DEFINED__
696 #ifdef __cplusplus
697 typedef class SpPhraseInfoBuilder SpPhraseInfoBuilder;
698 #else
699 typedef struct SpPhraseInfoBuilder SpPhraseInfoBuilder;
700 #endif /* defined __cplusplus */
701 #endif /* defined __SpPhraseInfoBuilder_FWD_DEFINED__ */
702 
703 #ifndef __SpAudioFormat_FWD_DEFINED__
704 #define __SpAudioFormat_FWD_DEFINED__
705 #ifdef __cplusplus
706 typedef class SpAudioFormat SpAudioFormat;
707 #else
708 typedef struct SpAudioFormat SpAudioFormat;
709 #endif /* defined __cplusplus */
710 #endif /* defined __SpAudioFormat_FWD_DEFINED__ */
711 
712 #ifndef __SpWaveFormatEx_FWD_DEFINED__
713 #define __SpWaveFormatEx_FWD_DEFINED__
714 #ifdef __cplusplus
715 typedef class SpWaveFormatEx SpWaveFormatEx;
716 #else
717 typedef struct SpWaveFormatEx SpWaveFormatEx;
718 #endif /* defined __cplusplus */
719 #endif /* defined __SpWaveFormatEx_FWD_DEFINED__ */
720 
721 #ifndef __SpInProcRecoContext_FWD_DEFINED__
722 #define __SpInProcRecoContext_FWD_DEFINED__
723 #ifdef __cplusplus
724 typedef class SpInProcRecoContext SpInProcRecoContext;
725 #else
726 typedef struct SpInProcRecoContext SpInProcRecoContext;
727 #endif /* defined __cplusplus */
728 #endif /* defined __SpInProcRecoContext_FWD_DEFINED__ */
729 
730 #ifndef __SpCustomStream_FWD_DEFINED__
731 #define __SpCustomStream_FWD_DEFINED__
732 #ifdef __cplusplus
733 typedef class SpCustomStream SpCustomStream;
734 #else
735 typedef struct SpCustomStream SpCustomStream;
736 #endif /* defined __cplusplus */
737 #endif /* defined __SpCustomStream_FWD_DEFINED__ */
738 
739 #ifndef __SpFileStream_FWD_DEFINED__
740 #define __SpFileStream_FWD_DEFINED__
741 #ifdef __cplusplus
742 typedef class SpFileStream SpFileStream;
743 #else
744 typedef struct SpFileStream SpFileStream;
745 #endif /* defined __cplusplus */
746 #endif /* defined __SpFileStream_FWD_DEFINED__ */
747 
748 #ifndef __SpMemoryStream_FWD_DEFINED__
749 #define __SpMemoryStream_FWD_DEFINED__
750 #ifdef __cplusplus
751 typedef class SpMemoryStream SpMemoryStream;
752 #else
753 typedef struct SpMemoryStream SpMemoryStream;
754 #endif /* defined __cplusplus */
755 #endif /* defined __SpMemoryStream_FWD_DEFINED__ */
756 
757 /* Headers for imported files */
758 
759 #include <oaidl.h>
760 #include <ocidl.h>
761 
762 #ifdef __cplusplus
763 extern "C" {
764 #endif
765 
766 #ifndef _SAPI_VER
767 #error "you have to include <sapi.h> header before this."
768 #endif
769 #if 0
770 typedef struct WAVEFORMATEX {
771     WORD wFormatTag;
772     WORD nChannels;
773     DWORD nSamplesPerSec;
774     DWORD nAvgBytesPerSec;
775     WORD nBlockAlign;
776     WORD wBitsPerSample;
777     WORD cbSize;
778 } WAVEFORMATEX;
779 #endif
780 #ifndef __ISpNotifySource_FWD_DEFINED__
781 #define __ISpNotifySource_FWD_DEFINED__
782 typedef interface ISpNotifySource ISpNotifySource;
783 #endif
784 
785 #ifndef __ISpNotifySink_FWD_DEFINED__
786 #define __ISpNotifySink_FWD_DEFINED__
787 typedef interface ISpNotifySink ISpNotifySink;
788 #endif
789 
790 #ifndef __ISpNotifyTranslator_FWD_DEFINED__
791 #define __ISpNotifyTranslator_FWD_DEFINED__
792 typedef interface ISpNotifyTranslator ISpNotifyTranslator;
793 #endif
794 
795 #ifndef __ISpDataKey_FWD_DEFINED__
796 #define __ISpDataKey_FWD_DEFINED__
797 typedef interface ISpDataKey ISpDataKey;
798 #endif
799 
800 #ifndef __ISpObjectTokenCategory_FWD_DEFINED__
801 #define __ISpObjectTokenCategory_FWD_DEFINED__
802 typedef interface ISpObjectTokenCategory ISpObjectTokenCategory;
803 #endif
804 
805 #ifndef __ISpObjectToken_FWD_DEFINED__
806 #define __ISpObjectToken_FWD_DEFINED__
807 typedef interface ISpObjectToken ISpObjectToken;
808 #endif
809 
810 #ifndef __IEnumSpObjectTokens_FWD_DEFINED__
811 #define __IEnumSpObjectTokens_FWD_DEFINED__
812 typedef interface IEnumSpObjectTokens IEnumSpObjectTokens;
813 #endif
814 
815 #ifndef __ISpObjectWithToken_FWD_DEFINED__
816 #define __ISpObjectWithToken_FWD_DEFINED__
817 typedef interface ISpObjectWithToken ISpObjectWithToken;
818 #endif
819 
820 #ifndef __ISpResourceManager_FWD_DEFINED__
821 #define __ISpResourceManager_FWD_DEFINED__
822 typedef interface ISpResourceManager ISpResourceManager;
823 #endif
824 
825 #ifndef __ISpEventSource_FWD_DEFINED__
826 #define __ISpEventSource_FWD_DEFINED__
827 typedef interface ISpEventSource ISpEventSource;
828 #endif
829 
830 #ifndef __ISpEventSink_FWD_DEFINED__
831 #define __ISpEventSink_FWD_DEFINED__
832 typedef interface ISpEventSink ISpEventSink;
833 #endif
834 
835 #ifndef __ISpStreamFormat_FWD_DEFINED__
836 #define __ISpStreamFormat_FWD_DEFINED__
837 typedef interface ISpStreamFormat ISpStreamFormat;
838 #endif
839 
840 #ifndef __ISpStream_FWD_DEFINED__
841 #define __ISpStream_FWD_DEFINED__
842 typedef interface ISpStream ISpStream;
843 #endif
844 
845 #ifndef __ISpStreamFormatConverter_FWD_DEFINED__
846 #define __ISpStreamFormatConverter_FWD_DEFINED__
847 typedef interface ISpStreamFormatConverter ISpStreamFormatConverter;
848 #endif
849 
850 #ifndef __ISpAudio_FWD_DEFINED__
851 #define __ISpAudio_FWD_DEFINED__
852 typedef interface ISpAudio ISpAudio;
853 #endif
854 
855 #ifndef __ISpMMSysAudio_FWD_DEFINED__
856 #define __ISpMMSysAudio_FWD_DEFINED__
857 typedef interface ISpMMSysAudio ISpMMSysAudio;
858 #endif
859 
860 #ifndef __ISpTranscript_FWD_DEFINED__
861 #define __ISpTranscript_FWD_DEFINED__
862 typedef interface ISpTranscript ISpTranscript;
863 #endif
864 
865 #ifndef __ISpVoice_FWD_DEFINED__
866 #define __ISpVoice_FWD_DEFINED__
867 typedef interface ISpVoice ISpVoice;
868 #endif
869 
870 #ifndef __ISpRecoResult_FWD_DEFINED__
871 #define __ISpRecoResult_FWD_DEFINED__
872 typedef interface ISpRecoResult ISpRecoResult;
873 #endif
874 
875 #ifndef __ISpRecoContext_FWD_DEFINED__
876 #define __ISpRecoContext_FWD_DEFINED__
877 typedef interface ISpRecoContext ISpRecoContext;
878 #endif
879 
880 #ifndef __ISpRecognizer_FWD_DEFINED__
881 #define __ISpRecognizer_FWD_DEFINED__
882 typedef interface ISpRecognizer ISpRecognizer;
883 #endif
884 
885 #ifndef __ISpProperties_FWD_DEFINED__
886 #define __ISpProperties_FWD_DEFINED__
887 typedef interface ISpProperties ISpProperties;
888 #endif
889 
890 #ifndef __ISpLexicon_FWD_DEFINED__
891 #define __ISpLexicon_FWD_DEFINED__
892 typedef interface ISpLexicon ISpLexicon;
893 #endif
894 
895 #ifndef __ISpPhoneConverter_FWD_DEFINED__
896 #define __ISpPhoneConverter_FWD_DEFINED__
897 typedef interface ISpPhoneConverter ISpPhoneConverter;
898 #endif
899 
900 #ifndef __ISpPhrase_FWD_DEFINED__
901 #define __ISpPhrase_FWD_DEFINED__
902 typedef interface ISpPhrase ISpPhrase;
903 #endif
904 
905 #ifndef __ISpRecoContext2_FWD_DEFINED__
906 #define __ISpRecoContext2_FWD_DEFINED__
907 typedef interface ISpRecoContext2 ISpRecoContext2;
908 #endif
909 
910 #ifndef __ISpRecognizer2_FWD_DEFINED__
911 #define __ISpRecognizer2_FWD_DEFINED__
912 typedef interface ISpRecognizer2 ISpRecognizer2;
913 #endif
914 
915 #ifndef __ISpShortcut_FWD_DEFINED__
916 #define __ISpShortcut_FWD_DEFINED__
917 typedef interface ISpShortcut ISpShortcut;
918 #endif
919 
920 #ifndef __ISpPhoneticAlphabetConverter_FWD_DEFINED__
921 #define __ISpPhoneticAlphabetConverter_FWD_DEFINED__
922 typedef interface ISpPhoneticAlphabetConverter ISpPhoneticAlphabetConverter;
923 #endif
924 
925 #ifndef __ISpPhoneticAlphabetSelection_FWD_DEFINED__
926 #define __ISpPhoneticAlphabetSelection_FWD_DEFINED__
927 typedef interface ISpPhoneticAlphabetSelection ISpPhoneticAlphabetSelection;
928 #endif
929 
930 #ifndef __ISpRecoGrammar2_FWD_DEFINED__
931 #define __ISpRecoGrammar2_FWD_DEFINED__
932 typedef interface ISpRecoGrammar2 ISpRecoGrammar2;
933 #endif
934 
935 #ifndef __ISpeechResourceLoader_FWD_DEFINED__
936 #define __ISpeechResourceLoader_FWD_DEFINED__
937 typedef interface ISpeechResourceLoader ISpeechResourceLoader;
938 #endif
939 
940 typedef enum SPDATAKEYLOCATION {
941     SPDKL_DefaultLocation = 0,
942     SPDKL_CurrentUser = 1,
943     SPDKL_LocalMachine = 2,
944     SPDKL_CurrentConfig = 5
945 } SPDATAKEYLOCATION;
946 typedef enum SPSTREAMFORMAT {
947     SPSF_Default = -1,
948     SPSF_NoAssignedFormat = 0,
949     SPSF_Text = 1,
950     SPSF_NonStandardFormat = 2,
951     SPSF_ExtendedAudioFormat = 3,
952     SPSF_8kHz8BitMono = 4,
953     SPSF_8kHz8BitStereo = 5,
954     SPSF_8kHz16BitMono = 6,
955     SPSF_8kHz16BitStereo = 7,
956     SPSF_11kHz8BitMono = 8,
957     SPSF_11kHz8BitStereo = 9,
958     SPSF_11kHz16BitMono = 10,
959     SPSF_11kHz16BitStereo = 11,
960     SPSF_12kHz8BitMono = 12,
961     SPSF_12kHz8BitStereo = 13,
962     SPSF_12kHz16BitMono = 14,
963     SPSF_12kHz16BitStereo = 15,
964     SPSF_16kHz8BitMono = 16,
965     SPSF_16kHz8BitStereo = 17,
966     SPSF_16kHz16BitMono = 18,
967     SPSF_16kHz16BitStereo = 19,
968     SPSF_22kHz8BitMono = 20,
969     SPSF_22kHz8BitStereo = 21,
970     SPSF_22kHz16BitMono = 22,
971     SPSF_22kHz16BitStereo = 23,
972     SPSF_24kHz8BitMono = 24,
973     SPSF_24kHz8BitStereo = 25,
974     SPSF_24kHz16BitMono = 26,
975     SPSF_24kHz16BitStereo = 27,
976     SPSF_32kHz8BitMono = 28,
977     SPSF_32kHz8BitStereo = 29,
978     SPSF_32kHz16BitMono = 30,
979     SPSF_32kHz16BitStereo = 31,
980     SPSF_44kHz8BitMono = 32,
981     SPSF_44kHz8BitStereo = 33,
982     SPSF_44kHz16BitMono = 34,
983     SPSF_44kHz16BitStereo = 35,
984     SPSF_48kHz8BitMono = 36,
985     SPSF_48kHz8BitStereo = 37,
986     SPSF_48kHz16BitMono = 38,
987     SPSF_48kHz16BitStereo = 39,
988     SPSF_TrueSpeech_8kHz1BitMono = 40,
989     SPSF_CCITT_ALaw_8kHzMono = 41,
990     SPSF_CCITT_ALaw_8kHzStereo = 42,
991     SPSF_CCITT_ALaw_11kHzMono = 43,
992     SPSF_CCITT_ALaw_11kHzStereo = 44,
993     SPSF_CCITT_ALaw_22kHzMono = 45,
994     SPSF_CCITT_ALaw_22kHzStereo = 46,
995     SPSF_CCITT_ALaw_44kHzMono = 47,
996     SPSF_CCITT_ALaw_44kHzStereo = 48,
997     SPSF_CCITT_uLaw_8kHzMono = 49,
998     SPSF_CCITT_uLaw_8kHzStereo = 50,
999     SPSF_CCITT_uLaw_11kHzMono = 51,
1000     SPSF_CCITT_uLaw_11kHzStereo = 52,
1001     SPSF_CCITT_uLaw_22kHzMono = 53,
1002     SPSF_CCITT_uLaw_22kHzStereo = 54,
1003     SPSF_CCITT_uLaw_44kHzMono = 55,
1004     SPSF_CCITT_uLaw_44kHzStereo = 56,
1005     SPSF_ADPCM_8kHzMono = 57,
1006     SPSF_ADPCM_8kHzStereo = 58,
1007     SPSF_ADPCM_11kHzMono = 59,
1008     SPSF_ADPCM_11kHzStereo = 60,
1009     SPSF_ADPCM_22kHzMono = 61,
1010     SPSF_ADPCM_22kHzStereo = 62,
1011     SPSF_ADPCM_44kHzMono = 63,
1012     SPSF_ADPCM_44kHzStereo = 64,
1013     SPSF_GSM610_8kHzMono = 65,
1014     SPSF_GSM610_11kHzMono = 66,
1015     SPSF_GSM610_22kHzMono = 67,
1016     SPSF_GSM610_44kHzMono = 68,
1017     SPSF_NUM_FORMATS = 69
1018 } SPSTREAMFORMAT;
1019 typedef enum SPEVENTLPARAMTYPE {
1020     SPET_LPARAM_IS_UNDEFINED = 0,
1021     SPET_LPARAM_IS_TOKEN = 1,
1022     SPET_LPARAM_IS_OBJECT = 2,
1023     SPET_LPARAM_IS_POINTER = 3,
1024     SPET_LPARAM_IS_STRING = 4
1025 } SPEVENTLPARAMTYPE;
1026 typedef enum SPEVENTENUM {
1027     SPEI_UNDEFINED = 0,
1028     SPEI_START_INPUT_STREAM = 1,
1029     SPEI_END_INPUT_STREAM = 2,
1030     SPEI_VOICE_CHANGE = 3,
1031     SPEI_TTS_BOOKMARK = 4,
1032     SPEI_WORD_BOUNDARY = 5,
1033     SPEI_PHONEME = 6,
1034     SPEI_SENTENCE_BOUNDARY = 7,
1035     SPEI_VISEME = 8,
1036     SPEI_TTS_AUDIO_LEVEL = 9,
1037     SPEI_TTS_PRIVATE = 15,
1038     SPEI_MIN_TTS = 1,
1039     SPEI_MAX_TTS = 15,
1040     SPEI_END_SR_STREAM = 34,
1041     SPEI_SOUND_START = 35,
1042     SPEI_SOUND_END = 36,
1043     SPEI_PHRASE_START = 37,
1044     SPEI_RECOGNITION = 38,
1045     SPEI_HYPOTHESIS = 39,
1046     SPEI_SR_BOOKMARK = 40,
1047     SPEI_PROPERTY_NUM_CHANGE = 41,
1048     SPEI_PROPERTY_STRING_CHANGE = 42,
1049     SPEI_FALSE_RECOGNITION = 43,
1050     SPEI_INTERFERENCE = 44,
1051     SPEI_REQUEST_UI = 45,
1052     SPEI_RECO_STATE_CHANGE = 46,
1053     SPEI_ADAPTATION = 47,
1054     SPEI_START_SR_STREAM = 48,
1055     SPEI_RECO_OTHER_CONTEXT = 49,
1056     SPEI_SR_AUDIO_LEVEL = 50,
1057     SPEI_SR_RETAINEDAUDIO = 51,
1058     SPEI_SR_PRIVATE = 52,
1059     SPEI_RESERVED4 = 53,
1060     SPEI_RESERVED5 = 54,
1061     SPEI_RESERVED6 = 55,
1062     SPEI_MIN_SR = 34,
1063     SPEI_MAX_SR = 55,
1064     SPEI_RESERVED1 = 30,
1065     SPEI_RESERVED2 = 33,
1066     SPEI_RESERVED3 = 63
1067 } SPEVENTENUM;
1068 typedef enum SPINTERFERENCE {
1069     SPINTERFERENCE_NONE = 0,
1070     SPINTERFERENCE_NOISE = 1,
1071     SPINTERFERENCE_NOSIGNAL = 2,
1072     SPINTERFERENCE_TOOLOUD = 3,
1073     SPINTERFERENCE_TOOQUIET = 4,
1074     SPINTERFERENCE_TOOFAST = 5,
1075     SPINTERFERENCE_TOOSLOW = 6,
1076     SPINTERFERENCE_LATENCY_WARNING = 7,
1077     SPINTERFERENCE_LATENCY_TRUNCATE_BEGIN = 8,
1078     SPINTERFERENCE_LATENCY_TRUNCATE_END = 9
1079 } SPINTERFERENCE;
1080 typedef enum SPENDSRSTREAMFLAGS {
1081     SPESF_NONE = 0,
1082     SPESF_STREAM_RELEASED = 1,
1083     SPESF_EMULATED = 2
1084 } SPENDSRSTREAMFLAGS;
1085 typedef enum SPVFEATURE {
1086     SPVFEATURE_STRESSED = 1,
1087     SPVFEATURE_EMPHASIS = 2
1088 } SPVFEATURE;
1089 typedef enum SPVISEMES {
1090     SP_VISEME_0 = 0,
1091     SP_VISEME_1 = 1,
1092     SP_VISEME_2 = 2,
1093     SP_VISEME_3 = 3,
1094     SP_VISEME_4 = 4,
1095     SP_VISEME_5 = 5,
1096     SP_VISEME_6 = 6,
1097     SP_VISEME_7 = 7,
1098     SP_VISEME_8 = 8,
1099     SP_VISEME_9 = 9,
1100     SP_VISEME_10 = 10,
1101     SP_VISEME_11 = 11,
1102     SP_VISEME_12 = 12,
1103     SP_VISEME_13 = 13,
1104     SP_VISEME_14 = 14,
1105     SP_VISEME_15 = 15,
1106     SP_VISEME_16 = 16,
1107     SP_VISEME_17 = 17,
1108     SP_VISEME_18 = 18,
1109     SP_VISEME_19 = 19,
1110     SP_VISEME_20 = 20,
1111     SP_VISEME_21 = 21
1112 } SPVISEMES;
1113 typedef enum SPFILEMODE {
1114     SPFM_OPEN_READONLY = 0,
1115     SPFM_OPEN_READWRITE = 1,
1116     SPFM_CREATE = 2,
1117     SPFM_CREATE_ALWAYS = 3,
1118     SPFM_NUM_MODES = 4
1119 } SPFILEMODE;
1120 typedef enum _SPAUDIOSTATE {
1121     SPAS_CLOSED = 0,
1122     SPAS_STOP = 1,
1123     SPAS_PAUSE = 2,
1124     SPAS_RUN = 3
1125 } SPAUDIOSTATE;
1126 typedef enum SPDISPLYATTRIBUTES {
1127     SPAF_ONE_TRAILING_SPACE = 0x2,
1128     SPAF_TWO_TRAILING_SPACES = 0x4,
1129     SPAF_CONSUME_LEADING_SPACES = 0x8,
1130     SPAF_BUFFER_POSITION = 0x10,
1131     SPAF_ALL = 0x1f,
1132     SPAF_USER_SPECIFIED = 0x80
1133 } SPDISPLAYATTRIBUTES;
1134 typedef enum SPPHRASEPROPERTYUNIONTYPE {
1135     SPPPUT_UNUSED = 0,
1136     SPPPUT_ARRAY_INDEX = 1
1137 } SPPHRASEPROPERTYUNIONTYPE;
1138 typedef enum SPSEMANTICFORMAT {
1139     SPSMF_SAPI_PROPERTIES = 0,
1140     SPSMF_SRGS_SEMANTICINTERPRETATION_MS = 1,
1141     SPSMF_SRGS_SAPIPROPERTIES = 2,
1142     SPSMF_UPS = 4,
1143     SPSMF_SRGS_SEMANTICINTERPRETATION_W3C = 8
1144 } SPSEMANTICFORMAT;
1145 typedef enum SPRECOEVENTFLAGS {
1146     SPREF_AutoPause = 0x1,
1147     SPREF_Emulated = 0x2,
1148     SPREF_SMLTimeout = 0x4,
1149     SPREF_ExtendableParse = 0x8,
1150     SPREF_ReSent = 0x10,
1151     SPREF_Hypothesis = 0x20,
1152     SPREF_FalseRecognition = 0x40
1153 } SPRECOEVENTFLAGS;
1154 typedef enum SPPARTOFSPEECH {
1155     SPPS_NotOverriden = -1,
1156     SPPS_Unknown = 0,
1157     SPPS_Noun = 0x1000,
1158     SPPS_Verb = 0x2000,
1159     SPPS_Modifier = 0x3000,
1160     SPPS_Function = 0x4000,
1161     SPPS_Interjection = 0x5000,
1162     SPPS_Noncontent = 0x6000,
1163     SPPS_LMA = 0x7000,
1164     SPPS_SuppressWord = 0xf000
1165 } SPPARTOFSPEECH;
1166 typedef enum SPLEXICONTYPE {
1167     eLEXTYPE_USER = 0x1,
1168     eLEXTYPE_APP = 0x2,
1169     eLEXTYPE_VENDORLEXICON = 0x4,
1170     eLEXTYPE_LETTERTOSOUND = 0x8,
1171     eLEXTYPE_MORPHOLOGY = 0x10,
1172     eLEXTYPE_RESERVED4 = 0x20,
1173     eLEXTYPE_USER_SHORTCUT = 0x40,
1174     eLEXTYPE_RESERVED6 = 0x80,
1175     eLEXTYPE_RESERVED7 = 0x100,
1176     eLEXTYPE_RESERVED8 = 0x200,
1177     eLEXTYPE_RESERVED9 = 0x400,
1178     eLEXTYPE_RESERVED10 = 0x800,
1179     eLEXTYPE_PRIVATE1 = 0x1000,
1180     eLEXTYPE_PRIVATE2 = 0x2000,
1181     eLEXTYPE_PRIVATE3 = 0x4000,
1182     eLEXTYPE_PRIVATE4 = 0x8000,
1183     eLEXTYPE_PRIVATE5 = 0x10000,
1184     eLEXTYPE_PRIVATE6 = 0x20000,
1185     eLEXTYPE_PRIVATE7 = 0x40000,
1186     eLEXTYPE_PRIVATE8 = 0x80000,
1187     eLEXTYPE_PRIVATE9 = 0x100000,
1188     eLEXTYPE_PRIVATE10 = 0x200000,
1189     eLEXTYPE_PRIVATE11 = 0x400000,
1190     eLEXTYPE_PRIVATE12 = 0x800000,
1191     eLEXTYPE_PRIVATE13 = 0x1000000,
1192     eLEXTYPE_PRIVATE14 = 0x2000000,
1193     eLEXTYPE_PRIVATE15 = 0x4000000,
1194     eLEXTYPE_PRIVATE16 = 0x8000000,
1195     eLEXTYPE_PRIVATE17 = 0x10000000,
1196     eLEXTYPE_PRIVATE18 = 0x20000000,
1197     eLEXTYPE_PRIVATE19 = 0x40000000,
1198     eLEXTYPE_PRIVATE20 = 0x80000000
1199 } SPLEXICONTYPE;
1200 typedef enum SPWORDTYPE {
1201     eWORDTYPE_ADDED = 1,
1202     eWORDTYPE_DELETED = 2
1203 } SPWORDTYPE;
1204 typedef enum SPPRONUNCIATIONFLAGS {
1205     ePRONFLAG_USED = 1
1206 } SPPRONUNCIATIONFLAGS;
1207 typedef enum SPSHORTCUTTYPE {
1208     SPSHT_NotOverriden = -1,
1209     SPSHT_Unknown = 0,
1210     SPSHT_EMAIL = 0x1000,
1211     SPSHT_OTHER = 0x2000,
1212     SPPS_RESERVED1 = 0x3000,
1213     SPPS_RESERVED2 = 0x4000,
1214     SPPS_RESERVED3 = 0x5000,
1215     SPPS_RESERVED4 = 0xf000
1216 } SPSHORTCUTTYPE;
1217 typedef enum SPVALUETYPE {
1218     SPDF_PROPERTY = 0x1,
1219     SPDF_REPLACEMENT = 0x2,
1220     SPDF_RULE = 0x4,
1221     SPDF_DISPLAYTEXT = 0x8,
1222     SPDF_LEXICALFORM = 0x10,
1223     SPDF_PRONUNCIATION = 0x20,
1224     SPDF_AUDIO = 0x40,
1225     SPDF_ALTERNATES = 0x80,
1226     SPDF_ALL = 0xff
1227 } SPVALUETYPE;
1228 typedef enum SPPHRASERNG {
1229     SPPR_ALL_ELEMENTS = -1
1230 } SPPHRASERNG;
1231 typedef enum SPVACTIONS {
1232     SPVA_Speak = 0,
1233     SPVA_Silence = 1,
1234     SPVA_Pronounce = 2,
1235     SPVA_Bookmark = 3,
1236     SPVA_SpellOut = 4,
1237     SPVA_Section = 5,
1238     SPVA_ParseUnknownTag = 6
1239 } SPVACTIONS;
1240 typedef enum SPRUNSTATE {
1241     SPRS_DONE = 1,
1242     SPRS_IS_SPEAKING = 2
1243 } SPRUNSTATE;
1244 typedef enum SPVLIMITS {
1245     SPMIN_VOLUME = 0,
1246     SPMAX_VOLUME = 100,
1247     SPMIN_RATE = -10,
1248     SPMAX_RATE = 10
1249 } SPVLIMITS;
1250 typedef enum SPVPRIORITY {
1251     SPVPRI_NORMAL = 0,
1252     SPVPRI_ALERT = 1,
1253     SPVPRI_OVER = 2
1254 } SPVPRIORITY;
1255 EXTERN_C const GUID SPDFID_Text;
1256 EXTERN_C const GUID SPDFID_WaveFormatEx;
1257 
1258 #define SP_LOW_CONFIDENCE (-1)
1259 
1260 #define SP_NORMAL_CONFIDENCE (0)
1261 
1262 #define SP_HIGH_CONFIDENCE (+1)
1263 
1264 #define DEFAULT_WEIGHT (1)
1265 
1266 #define SP_MAX_WORD_LENGTH (128)
1267 
1268 #define SP_MAX_PRON_LENGTH (384)
1269 
1270 #define SP_EMULATE_RESULT (0x40000000)
1271 
1272 
1273 #ifdef __cplusplus
1274 interface ISpNotifyCallback {
1275   virtual HRESULT STDMETHODCALLTYPE NotifyCallback(WPARAM wParam, LPARAM lParam) = 0;
1276 };
1277 #else
1278 typedef void *ISpNotifyCallback;
1279 #endif
1280 #if 0
1281 typedef void *SPNOTIFYCALLBACK;
1282 #else
1283 typedef void __stdcall SPNOTIFYCALLBACK(WPARAM wParam, LPARAM lParam);
1284 #endif
1285 /*****************************************************************************
1286  * ISpNotifySource interface
1287  */
1288 #ifndef __ISpNotifySource_INTERFACE_DEFINED__
1289 #define __ISpNotifySource_INTERFACE_DEFINED__
1290 
1291 DEFINE_GUID(IID_ISpNotifySource, 0x5eff4aef, 0x8487, 0x11d2, 0x96,0x1c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
1292 #if defined(__cplusplus) && !defined(CINTERFACE)
1293 MIDL_INTERFACE("5eff4aef-8487-11d2-961c-00c04f8ee628")
1294 ISpNotifySource : public IUnknown
1295 {
1296     virtual HRESULT STDMETHODCALLTYPE SetNotifySink(
1297         ISpNotifySink *pNotifySink) = 0;
1298 
1299     virtual HRESULT STDMETHODCALLTYPE SetNotifyWindowMessage(
1300         HWND hWnd,
1301         UINT Msg,
1302         WPARAM wParam,
1303         LPARAM lParam) = 0;
1304 
1305     virtual HRESULT STDMETHODCALLTYPE SetNotifyCallbackFunction(
1306         SPNOTIFYCALLBACK *pfnCallback,
1307         WPARAM wParam,
1308         LPARAM lParam) = 0;
1309 
1310     virtual HRESULT STDMETHODCALLTYPE SetNotifyCallbackInterface(
1311         ISpNotifyCallback *pSpCallback,
1312         WPARAM wParam,
1313         LPARAM lParam) = 0;
1314 
1315     virtual HRESULT STDMETHODCALLTYPE SetNotifyWin32Event(
1316         ) = 0;
1317 
1318     virtual HRESULT STDMETHODCALLTYPE WaitForNotifyEvent(
1319         DWORD dwMilliseconds) = 0;
1320 
1321     virtual HANDLE STDMETHODCALLTYPE GetNotifyEventHandle(
1322         ) = 0;
1323 
1324 };
1325 #ifdef __CRT_UUID_DECL
1326 __CRT_UUID_DECL(ISpNotifySource, 0x5eff4aef, 0x8487, 0x11d2, 0x96,0x1c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
1327 #endif
1328 #else
1329 typedef struct ISpNotifySourceVtbl {
1330     BEGIN_INTERFACE
1331 
1332     /*** IUnknown methods ***/
1333     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1334         ISpNotifySource* This,
1335         REFIID riid,
1336         void **ppvObject);
1337 
1338     ULONG (STDMETHODCALLTYPE *AddRef)(
1339         ISpNotifySource* This);
1340 
1341     ULONG (STDMETHODCALLTYPE *Release)(
1342         ISpNotifySource* This);
1343 
1344     /*** ISpNotifySource methods ***/
1345     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
1346         ISpNotifySource* This,
1347         ISpNotifySink *pNotifySink);
1348 
1349     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
1350         ISpNotifySource* This,
1351         HWND hWnd,
1352         UINT Msg,
1353         WPARAM wParam,
1354         LPARAM lParam);
1355 
1356     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
1357         ISpNotifySource* This,
1358         SPNOTIFYCALLBACK *pfnCallback,
1359         WPARAM wParam,
1360         LPARAM lParam);
1361 
1362     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
1363         ISpNotifySource* This,
1364         ISpNotifyCallback *pSpCallback,
1365         WPARAM wParam,
1366         LPARAM lParam);
1367 
1368     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
1369         ISpNotifySource* This);
1370 
1371     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
1372         ISpNotifySource* This,
1373         DWORD dwMilliseconds);
1374 
1375     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
1376         ISpNotifySource* This);
1377 
1378     END_INTERFACE
1379 } ISpNotifySourceVtbl;
1380 interface ISpNotifySource {
1381     CONST_VTBL ISpNotifySourceVtbl* lpVtbl;
1382 };
1383 
1384 #ifdef COBJMACROS
1385 #ifndef WIDL_C_INLINE_WRAPPERS
1386 /*** IUnknown methods ***/
1387 #define ISpNotifySource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1388 #define ISpNotifySource_AddRef(This) (This)->lpVtbl->AddRef(This)
1389 #define ISpNotifySource_Release(This) (This)->lpVtbl->Release(This)
1390 /*** ISpNotifySource methods ***/
1391 #define ISpNotifySource_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
1392 #define ISpNotifySource_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
1393 #define ISpNotifySource_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
1394 #define ISpNotifySource_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
1395 #define ISpNotifySource_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
1396 #define ISpNotifySource_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
1397 #define ISpNotifySource_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
1398 #else
1399 /*** IUnknown methods ***/
1400 static FORCEINLINE HRESULT ISpNotifySource_QueryInterface(ISpNotifySource* This,REFIID riid,void **ppvObject) {
1401     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1402 }
1403 static FORCEINLINE ULONG ISpNotifySource_AddRef(ISpNotifySource* This) {
1404     return This->lpVtbl->AddRef(This);
1405 }
1406 static FORCEINLINE ULONG ISpNotifySource_Release(ISpNotifySource* This) {
1407     return This->lpVtbl->Release(This);
1408 }
1409 /*** ISpNotifySource methods ***/
1410 static FORCEINLINE HRESULT ISpNotifySource_SetNotifySink(ISpNotifySource* This,ISpNotifySink *pNotifySink) {
1411     return This->lpVtbl->SetNotifySink(This,pNotifySink);
1412 }
1413 static FORCEINLINE HRESULT ISpNotifySource_SetNotifyWindowMessage(ISpNotifySource* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
1414     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
1415 }
1416 static FORCEINLINE HRESULT ISpNotifySource_SetNotifyCallbackFunction(ISpNotifySource* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
1417     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
1418 }
1419 static FORCEINLINE HRESULT ISpNotifySource_SetNotifyCallbackInterface(ISpNotifySource* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
1420     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
1421 }
1422 static FORCEINLINE HRESULT ISpNotifySource_SetNotifyWin32Event(ISpNotifySource* This) {
1423     return This->lpVtbl->SetNotifyWin32Event(This);
1424 }
1425 static FORCEINLINE HRESULT ISpNotifySource_WaitForNotifyEvent(ISpNotifySource* This,DWORD dwMilliseconds) {
1426     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
1427 }
1428 static FORCEINLINE HANDLE ISpNotifySource_GetNotifyEventHandle(ISpNotifySource* This) {
1429     return This->lpVtbl->GetNotifyEventHandle(This);
1430 }
1431 #endif
1432 #endif
1433 
1434 #endif
1435 
1436 HRESULT STDMETHODCALLTYPE ISpNotifySource_SetNotifySink_Proxy(
1437     ISpNotifySource* This,
1438     ISpNotifySink *pNotifySink);
1439 void __RPC_STUB ISpNotifySource_SetNotifySink_Stub(
1440     IRpcStubBuffer* This,
1441     IRpcChannelBuffer* pRpcChannelBuffer,
1442     PRPC_MESSAGE pRpcMessage,
1443     DWORD* pdwStubPhase);
1444 
1445 #endif  /* __ISpNotifySource_INTERFACE_DEFINED__ */
1446 
1447 /*****************************************************************************
1448  * ISpNotifySink interface
1449  */
1450 #ifndef __ISpNotifySink_INTERFACE_DEFINED__
1451 #define __ISpNotifySink_INTERFACE_DEFINED__
1452 
1453 DEFINE_GUID(IID_ISpNotifySink, 0x259684dc, 0x37c3, 0x11d2, 0x96,0x03, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
1454 #if defined(__cplusplus) && !defined(CINTERFACE)
1455 MIDL_INTERFACE("259684dc-37c3-11d2-9603-00c04f8ee628")
1456 ISpNotifySink : public IUnknown
1457 {
1458     virtual HRESULT STDMETHODCALLTYPE Notify(
1459         ) = 0;
1460 
1461 };
1462 #ifdef __CRT_UUID_DECL
1463 __CRT_UUID_DECL(ISpNotifySink, 0x259684dc, 0x37c3, 0x11d2, 0x96,0x03, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
1464 #endif
1465 #else
1466 typedef struct ISpNotifySinkVtbl {
1467     BEGIN_INTERFACE
1468 
1469     /*** IUnknown methods ***/
1470     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1471         ISpNotifySink* This,
1472         REFIID riid,
1473         void **ppvObject);
1474 
1475     ULONG (STDMETHODCALLTYPE *AddRef)(
1476         ISpNotifySink* This);
1477 
1478     ULONG (STDMETHODCALLTYPE *Release)(
1479         ISpNotifySink* This);
1480 
1481     /*** ISpNotifySink methods ***/
1482     HRESULT (STDMETHODCALLTYPE *Notify)(
1483         ISpNotifySink* This);
1484 
1485     END_INTERFACE
1486 } ISpNotifySinkVtbl;
1487 interface ISpNotifySink {
1488     CONST_VTBL ISpNotifySinkVtbl* lpVtbl;
1489 };
1490 
1491 #ifdef COBJMACROS
1492 #ifndef WIDL_C_INLINE_WRAPPERS
1493 /*** IUnknown methods ***/
1494 #define ISpNotifySink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1495 #define ISpNotifySink_AddRef(This) (This)->lpVtbl->AddRef(This)
1496 #define ISpNotifySink_Release(This) (This)->lpVtbl->Release(This)
1497 /*** ISpNotifySink methods ***/
1498 #define ISpNotifySink_Notify(This) (This)->lpVtbl->Notify(This)
1499 #else
1500 /*** IUnknown methods ***/
1501 static FORCEINLINE HRESULT ISpNotifySink_QueryInterface(ISpNotifySink* This,REFIID riid,void **ppvObject) {
1502     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1503 }
1504 static FORCEINLINE ULONG ISpNotifySink_AddRef(ISpNotifySink* This) {
1505     return This->lpVtbl->AddRef(This);
1506 }
1507 static FORCEINLINE ULONG ISpNotifySink_Release(ISpNotifySink* This) {
1508     return This->lpVtbl->Release(This);
1509 }
1510 /*** ISpNotifySink methods ***/
1511 static FORCEINLINE HRESULT ISpNotifySink_Notify(ISpNotifySink* This) {
1512     return This->lpVtbl->Notify(This);
1513 }
1514 #endif
1515 #endif
1516 
1517 #endif
1518 
1519 HRESULT STDMETHODCALLTYPE ISpNotifySink_Notify_Proxy(
1520     ISpNotifySink* This);
1521 void __RPC_STUB ISpNotifySink_Notify_Stub(
1522     IRpcStubBuffer* This,
1523     IRpcChannelBuffer* pRpcChannelBuffer,
1524     PRPC_MESSAGE pRpcMessage,
1525     DWORD* pdwStubPhase);
1526 
1527 #endif  /* __ISpNotifySink_INTERFACE_DEFINED__ */
1528 
1529 /*****************************************************************************
1530  * ISpNotifyTranslator interface
1531  */
1532 #ifndef __ISpNotifyTranslator_INTERFACE_DEFINED__
1533 #define __ISpNotifyTranslator_INTERFACE_DEFINED__
1534 
1535 DEFINE_GUID(IID_ISpNotifyTranslator, 0xaca16614, 0x5d3d, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
1536 #if defined(__cplusplus) && !defined(CINTERFACE)
1537 MIDL_INTERFACE("aca16614-5d3d-11d2-960e-00c04f8ee628")
1538 ISpNotifyTranslator : public ISpNotifySink
1539 {
1540     virtual HRESULT STDMETHODCALLTYPE InitWindowMessage(
1541         HWND hWnd,
1542         UINT Msg,
1543         WPARAM wParam,
1544         LPARAM lParam) = 0;
1545 
1546     virtual HRESULT STDMETHODCALLTYPE InitCallback(
1547         SPNOTIFYCALLBACK *pfnCallback,
1548         WPARAM wParam,
1549         LPARAM lParam) = 0;
1550 
1551     virtual HRESULT STDMETHODCALLTYPE InitSpNotifyCallback(
1552         ISpNotifyCallback *pSpCallback,
1553         WPARAM wParam,
1554         LPARAM lParam) = 0;
1555 
1556     virtual HRESULT STDMETHODCALLTYPE InitWin32Event(
1557         HANDLE hEvent,
1558         WINBOOL fCloseHandleOnRelease) = 0;
1559 
1560     virtual HRESULT STDMETHODCALLTYPE Wait(
1561         DWORD dwMilliseconds) = 0;
1562 
1563     virtual HANDLE STDMETHODCALLTYPE GetEventHandle(
1564         ) = 0;
1565 
1566 };
1567 #ifdef __CRT_UUID_DECL
1568 __CRT_UUID_DECL(ISpNotifyTranslator, 0xaca16614, 0x5d3d, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
1569 #endif
1570 #else
1571 typedef struct ISpNotifyTranslatorVtbl {
1572     BEGIN_INTERFACE
1573 
1574     /*** IUnknown methods ***/
1575     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1576         ISpNotifyTranslator* This,
1577         REFIID riid,
1578         void **ppvObject);
1579 
1580     ULONG (STDMETHODCALLTYPE *AddRef)(
1581         ISpNotifyTranslator* This);
1582 
1583     ULONG (STDMETHODCALLTYPE *Release)(
1584         ISpNotifyTranslator* This);
1585 
1586     /*** ISpNotifySink methods ***/
1587     HRESULT (STDMETHODCALLTYPE *Notify)(
1588         ISpNotifyTranslator* This);
1589 
1590     /*** ISpNotifyTranslator methods ***/
1591     HRESULT (STDMETHODCALLTYPE *InitWindowMessage)(
1592         ISpNotifyTranslator* This,
1593         HWND hWnd,
1594         UINT Msg,
1595         WPARAM wParam,
1596         LPARAM lParam);
1597 
1598     HRESULT (STDMETHODCALLTYPE *InitCallback)(
1599         ISpNotifyTranslator* This,
1600         SPNOTIFYCALLBACK *pfnCallback,
1601         WPARAM wParam,
1602         LPARAM lParam);
1603 
1604     HRESULT (STDMETHODCALLTYPE *InitSpNotifyCallback)(
1605         ISpNotifyTranslator* This,
1606         ISpNotifyCallback *pSpCallback,
1607         WPARAM wParam,
1608         LPARAM lParam);
1609 
1610     HRESULT (STDMETHODCALLTYPE *InitWin32Event)(
1611         ISpNotifyTranslator* This,
1612         HANDLE hEvent,
1613         WINBOOL fCloseHandleOnRelease);
1614 
1615     HRESULT (STDMETHODCALLTYPE *Wait)(
1616         ISpNotifyTranslator* This,
1617         DWORD dwMilliseconds);
1618 
1619     HANDLE (STDMETHODCALLTYPE *GetEventHandle)(
1620         ISpNotifyTranslator* This);
1621 
1622     END_INTERFACE
1623 } ISpNotifyTranslatorVtbl;
1624 interface ISpNotifyTranslator {
1625     CONST_VTBL ISpNotifyTranslatorVtbl* lpVtbl;
1626 };
1627 
1628 #ifdef COBJMACROS
1629 #ifndef WIDL_C_INLINE_WRAPPERS
1630 /*** IUnknown methods ***/
1631 #define ISpNotifyTranslator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1632 #define ISpNotifyTranslator_AddRef(This) (This)->lpVtbl->AddRef(This)
1633 #define ISpNotifyTranslator_Release(This) (This)->lpVtbl->Release(This)
1634 /*** ISpNotifySink methods ***/
1635 #define ISpNotifyTranslator_Notify(This) (This)->lpVtbl->Notify(This)
1636 /*** ISpNotifyTranslator methods ***/
1637 #define ISpNotifyTranslator_InitWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->InitWindowMessage(This,hWnd,Msg,wParam,lParam)
1638 #define ISpNotifyTranslator_InitCallback(This,pfnCallback,wParam,lParam) (This)->lpVtbl->InitCallback(This,pfnCallback,wParam,lParam)
1639 #define ISpNotifyTranslator_InitSpNotifyCallback(This,pSpCallback,wParam,lParam) (This)->lpVtbl->InitSpNotifyCallback(This,pSpCallback,wParam,lParam)
1640 #define ISpNotifyTranslator_InitWin32Event(This,hEvent,fCloseHandleOnRelease) (This)->lpVtbl->InitWin32Event(This,hEvent,fCloseHandleOnRelease)
1641 #define ISpNotifyTranslator_Wait(This,dwMilliseconds) (This)->lpVtbl->Wait(This,dwMilliseconds)
1642 #define ISpNotifyTranslator_GetEventHandle(This) (This)->lpVtbl->GetEventHandle(This)
1643 #else
1644 /*** IUnknown methods ***/
1645 static FORCEINLINE HRESULT ISpNotifyTranslator_QueryInterface(ISpNotifyTranslator* This,REFIID riid,void **ppvObject) {
1646     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1647 }
1648 static FORCEINLINE ULONG ISpNotifyTranslator_AddRef(ISpNotifyTranslator* This) {
1649     return This->lpVtbl->AddRef(This);
1650 }
1651 static FORCEINLINE ULONG ISpNotifyTranslator_Release(ISpNotifyTranslator* This) {
1652     return This->lpVtbl->Release(This);
1653 }
1654 /*** ISpNotifySink methods ***/
1655 static FORCEINLINE HRESULT ISpNotifyTranslator_Notify(ISpNotifyTranslator* This) {
1656     return This->lpVtbl->Notify(This);
1657 }
1658 /*** ISpNotifyTranslator methods ***/
1659 static FORCEINLINE HRESULT ISpNotifyTranslator_InitWindowMessage(ISpNotifyTranslator* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
1660     return This->lpVtbl->InitWindowMessage(This,hWnd,Msg,wParam,lParam);
1661 }
1662 static FORCEINLINE HRESULT ISpNotifyTranslator_InitCallback(ISpNotifyTranslator* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
1663     return This->lpVtbl->InitCallback(This,pfnCallback,wParam,lParam);
1664 }
1665 static FORCEINLINE HRESULT ISpNotifyTranslator_InitSpNotifyCallback(ISpNotifyTranslator* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
1666     return This->lpVtbl->InitSpNotifyCallback(This,pSpCallback,wParam,lParam);
1667 }
1668 static FORCEINLINE HRESULT ISpNotifyTranslator_InitWin32Event(ISpNotifyTranslator* This,HANDLE hEvent,WINBOOL fCloseHandleOnRelease) {
1669     return This->lpVtbl->InitWin32Event(This,hEvent,fCloseHandleOnRelease);
1670 }
1671 static FORCEINLINE HRESULT ISpNotifyTranslator_Wait(ISpNotifyTranslator* This,DWORD dwMilliseconds) {
1672     return This->lpVtbl->Wait(This,dwMilliseconds);
1673 }
1674 static FORCEINLINE HANDLE ISpNotifyTranslator_GetEventHandle(ISpNotifyTranslator* This) {
1675     return This->lpVtbl->GetEventHandle(This);
1676 }
1677 #endif
1678 #endif
1679 
1680 #endif
1681 
1682 HRESULT STDMETHODCALLTYPE ISpNotifyTranslator_InitWindowMessage_Proxy(
1683     ISpNotifyTranslator* This,
1684     HWND hWnd,
1685     UINT Msg,
1686     WPARAM wParam,
1687     LPARAM lParam);
1688 void __RPC_STUB ISpNotifyTranslator_InitWindowMessage_Stub(
1689     IRpcStubBuffer* This,
1690     IRpcChannelBuffer* pRpcChannelBuffer,
1691     PRPC_MESSAGE pRpcMessage,
1692     DWORD* pdwStubPhase);
1693 HRESULT STDMETHODCALLTYPE ISpNotifyTranslator_InitCallback_Proxy(
1694     ISpNotifyTranslator* This,
1695     SPNOTIFYCALLBACK *pfnCallback,
1696     WPARAM wParam,
1697     LPARAM lParam);
1698 void __RPC_STUB ISpNotifyTranslator_InitCallback_Stub(
1699     IRpcStubBuffer* This,
1700     IRpcChannelBuffer* pRpcChannelBuffer,
1701     PRPC_MESSAGE pRpcMessage,
1702     DWORD* pdwStubPhase);
1703 HRESULT STDMETHODCALLTYPE ISpNotifyTranslator_InitSpNotifyCallback_Proxy(
1704     ISpNotifyTranslator* This,
1705     ISpNotifyCallback *pSpCallback,
1706     WPARAM wParam,
1707     LPARAM lParam);
1708 void __RPC_STUB ISpNotifyTranslator_InitSpNotifyCallback_Stub(
1709     IRpcStubBuffer* This,
1710     IRpcChannelBuffer* pRpcChannelBuffer,
1711     PRPC_MESSAGE pRpcMessage,
1712     DWORD* pdwStubPhase);
1713 HRESULT STDMETHODCALLTYPE ISpNotifyTranslator_InitWin32Event_Proxy(
1714     ISpNotifyTranslator* This,
1715     HANDLE hEvent,
1716     WINBOOL fCloseHandleOnRelease);
1717 void __RPC_STUB ISpNotifyTranslator_InitWin32Event_Stub(
1718     IRpcStubBuffer* This,
1719     IRpcChannelBuffer* pRpcChannelBuffer,
1720     PRPC_MESSAGE pRpcMessage,
1721     DWORD* pdwStubPhase);
1722 HRESULT STDMETHODCALLTYPE ISpNotifyTranslator_Wait_Proxy(
1723     ISpNotifyTranslator* This,
1724     DWORD dwMilliseconds);
1725 void __RPC_STUB ISpNotifyTranslator_Wait_Stub(
1726     IRpcStubBuffer* This,
1727     IRpcChannelBuffer* pRpcChannelBuffer,
1728     PRPC_MESSAGE pRpcMessage,
1729     DWORD* pdwStubPhase);
1730 HANDLE STDMETHODCALLTYPE ISpNotifyTranslator_GetEventHandle_Proxy(
1731     ISpNotifyTranslator* This);
1732 void __RPC_STUB ISpNotifyTranslator_GetEventHandle_Stub(
1733     IRpcStubBuffer* This,
1734     IRpcChannelBuffer* pRpcChannelBuffer,
1735     PRPC_MESSAGE pRpcMessage,
1736     DWORD* pdwStubPhase);
1737 
1738 #endif  /* __ISpNotifyTranslator_INTERFACE_DEFINED__ */
1739 
1740 /*****************************************************************************
1741  * ISpDataKey interface
1742  */
1743 #ifndef __ISpDataKey_INTERFACE_DEFINED__
1744 #define __ISpDataKey_INTERFACE_DEFINED__
1745 
1746 DEFINE_GUID(IID_ISpDataKey, 0x14056581, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
1747 #if defined(__cplusplus) && !defined(CINTERFACE)
1748 MIDL_INTERFACE("14056581-e16c-11d2-bb90-00c04f8ee6c0")
1749 ISpDataKey : public IUnknown
1750 {
1751     virtual HRESULT STDMETHODCALLTYPE SetData(
1752         LPCWSTR pszValueName,
1753         ULONG cbData,
1754         const BYTE *pData) = 0;
1755 
1756     virtual HRESULT STDMETHODCALLTYPE GetData(
1757         LPCWSTR pszValueName,
1758         ULONG *pcbData,
1759         BYTE *pData) = 0;
1760 
1761     virtual HRESULT STDMETHODCALLTYPE SetStringValue(
1762         LPCWSTR pszValueName,
1763         LPCWSTR pszValue) = 0;
1764 
1765     virtual HRESULT STDMETHODCALLTYPE GetStringValue(
1766         LPCWSTR pszValueName,
1767         LPWSTR *ppszValue) = 0;
1768 
1769     virtual HRESULT STDMETHODCALLTYPE SetDWORD(
1770         LPCWSTR pszValueName,
1771         DWORD dwValue) = 0;
1772 
1773     virtual HRESULT STDMETHODCALLTYPE GetDWORD(
1774         LPCWSTR pszValueName,
1775         DWORD *pdwValue) = 0;
1776 
1777     virtual HRESULT STDMETHODCALLTYPE OpenKey(
1778         LPCWSTR pszSubKeyName,
1779         ISpDataKey **ppSubKey) = 0;
1780 
1781     virtual HRESULT STDMETHODCALLTYPE CreateKey(
1782         LPCWSTR pszSubKey,
1783         ISpDataKey **ppSubKey) = 0;
1784 
1785     virtual HRESULT STDMETHODCALLTYPE DeleteKey(
1786         LPCWSTR pszSubKey) = 0;
1787 
1788     virtual HRESULT STDMETHODCALLTYPE DeleteValue(
1789         LPCWSTR pszValueName) = 0;
1790 
1791     virtual HRESULT STDMETHODCALLTYPE EnumKeys(
1792         ULONG Index,
1793         LPWSTR *ppszSubKeyName) = 0;
1794 
1795     virtual HRESULT STDMETHODCALLTYPE EnumValues(
1796         ULONG Index,
1797         LPWSTR *ppszValueName) = 0;
1798 
1799 };
1800 #ifdef __CRT_UUID_DECL
1801 __CRT_UUID_DECL(ISpDataKey, 0x14056581, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
1802 #endif
1803 #else
1804 typedef struct ISpDataKeyVtbl {
1805     BEGIN_INTERFACE
1806 
1807     /*** IUnknown methods ***/
1808     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1809         ISpDataKey* This,
1810         REFIID riid,
1811         void **ppvObject);
1812 
1813     ULONG (STDMETHODCALLTYPE *AddRef)(
1814         ISpDataKey* This);
1815 
1816     ULONG (STDMETHODCALLTYPE *Release)(
1817         ISpDataKey* This);
1818 
1819     /*** ISpDataKey methods ***/
1820     HRESULT (STDMETHODCALLTYPE *SetData)(
1821         ISpDataKey* This,
1822         LPCWSTR pszValueName,
1823         ULONG cbData,
1824         const BYTE *pData);
1825 
1826     HRESULT (STDMETHODCALLTYPE *GetData)(
1827         ISpDataKey* This,
1828         LPCWSTR pszValueName,
1829         ULONG *pcbData,
1830         BYTE *pData);
1831 
1832     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
1833         ISpDataKey* This,
1834         LPCWSTR pszValueName,
1835         LPCWSTR pszValue);
1836 
1837     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
1838         ISpDataKey* This,
1839         LPCWSTR pszValueName,
1840         LPWSTR *ppszValue);
1841 
1842     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
1843         ISpDataKey* This,
1844         LPCWSTR pszValueName,
1845         DWORD dwValue);
1846 
1847     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
1848         ISpDataKey* This,
1849         LPCWSTR pszValueName,
1850         DWORD *pdwValue);
1851 
1852     HRESULT (STDMETHODCALLTYPE *OpenKey)(
1853         ISpDataKey* This,
1854         LPCWSTR pszSubKeyName,
1855         ISpDataKey **ppSubKey);
1856 
1857     HRESULT (STDMETHODCALLTYPE *CreateKey)(
1858         ISpDataKey* This,
1859         LPCWSTR pszSubKey,
1860         ISpDataKey **ppSubKey);
1861 
1862     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
1863         ISpDataKey* This,
1864         LPCWSTR pszSubKey);
1865 
1866     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
1867         ISpDataKey* This,
1868         LPCWSTR pszValueName);
1869 
1870     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
1871         ISpDataKey* This,
1872         ULONG Index,
1873         LPWSTR *ppszSubKeyName);
1874 
1875     HRESULT (STDMETHODCALLTYPE *EnumValues)(
1876         ISpDataKey* This,
1877         ULONG Index,
1878         LPWSTR *ppszValueName);
1879 
1880     END_INTERFACE
1881 } ISpDataKeyVtbl;
1882 interface ISpDataKey {
1883     CONST_VTBL ISpDataKeyVtbl* lpVtbl;
1884 };
1885 
1886 #ifdef COBJMACROS
1887 #ifndef WIDL_C_INLINE_WRAPPERS
1888 /*** IUnknown methods ***/
1889 #define ISpDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1890 #define ISpDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
1891 #define ISpDataKey_Release(This) (This)->lpVtbl->Release(This)
1892 /*** ISpDataKey methods ***/
1893 #define ISpDataKey_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
1894 #define ISpDataKey_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
1895 #define ISpDataKey_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
1896 #define ISpDataKey_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
1897 #define ISpDataKey_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
1898 #define ISpDataKey_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
1899 #define ISpDataKey_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
1900 #define ISpDataKey_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
1901 #define ISpDataKey_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
1902 #define ISpDataKey_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
1903 #define ISpDataKey_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
1904 #define ISpDataKey_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
1905 #else
1906 /*** IUnknown methods ***/
1907 static FORCEINLINE HRESULT ISpDataKey_QueryInterface(ISpDataKey* This,REFIID riid,void **ppvObject) {
1908     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1909 }
1910 static FORCEINLINE ULONG ISpDataKey_AddRef(ISpDataKey* This) {
1911     return This->lpVtbl->AddRef(This);
1912 }
1913 static FORCEINLINE ULONG ISpDataKey_Release(ISpDataKey* This) {
1914     return This->lpVtbl->Release(This);
1915 }
1916 /*** ISpDataKey methods ***/
1917 static FORCEINLINE HRESULT ISpDataKey_SetData(ISpDataKey* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
1918     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
1919 }
1920 static FORCEINLINE HRESULT ISpDataKey_GetData(ISpDataKey* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
1921     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
1922 }
1923 static FORCEINLINE HRESULT ISpDataKey_SetStringValue(ISpDataKey* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
1924     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
1925 }
1926 static FORCEINLINE HRESULT ISpDataKey_GetStringValue(ISpDataKey* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
1927     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
1928 }
1929 static FORCEINLINE HRESULT ISpDataKey_SetDWORD(ISpDataKey* This,LPCWSTR pszValueName,DWORD dwValue) {
1930     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
1931 }
1932 static FORCEINLINE HRESULT ISpDataKey_GetDWORD(ISpDataKey* This,LPCWSTR pszValueName,DWORD *pdwValue) {
1933     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
1934 }
1935 static FORCEINLINE HRESULT ISpDataKey_OpenKey(ISpDataKey* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
1936     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
1937 }
1938 static FORCEINLINE HRESULT ISpDataKey_CreateKey(ISpDataKey* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
1939     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
1940 }
1941 static FORCEINLINE HRESULT ISpDataKey_DeleteKey(ISpDataKey* This,LPCWSTR pszSubKey) {
1942     return This->lpVtbl->DeleteKey(This,pszSubKey);
1943 }
1944 static FORCEINLINE HRESULT ISpDataKey_DeleteValue(ISpDataKey* This,LPCWSTR pszValueName) {
1945     return This->lpVtbl->DeleteValue(This,pszValueName);
1946 }
1947 static FORCEINLINE HRESULT ISpDataKey_EnumKeys(ISpDataKey* This,ULONG Index,LPWSTR *ppszSubKeyName) {
1948     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
1949 }
1950 static FORCEINLINE HRESULT ISpDataKey_EnumValues(ISpDataKey* This,ULONG Index,LPWSTR *ppszValueName) {
1951     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
1952 }
1953 #endif
1954 #endif
1955 
1956 #endif
1957 
1958 HRESULT STDMETHODCALLTYPE ISpDataKey_SetData_Proxy(
1959     ISpDataKey* This,
1960     LPCWSTR pszValueName,
1961     ULONG cbData,
1962     const BYTE *pData);
1963 void __RPC_STUB ISpDataKey_SetData_Stub(
1964     IRpcStubBuffer* This,
1965     IRpcChannelBuffer* pRpcChannelBuffer,
1966     PRPC_MESSAGE pRpcMessage,
1967     DWORD* pdwStubPhase);
1968 HRESULT STDMETHODCALLTYPE ISpDataKey_GetData_Proxy(
1969     ISpDataKey* This,
1970     LPCWSTR pszValueName,
1971     ULONG *pcbData,
1972     BYTE *pData);
1973 void __RPC_STUB ISpDataKey_GetData_Stub(
1974     IRpcStubBuffer* This,
1975     IRpcChannelBuffer* pRpcChannelBuffer,
1976     PRPC_MESSAGE pRpcMessage,
1977     DWORD* pdwStubPhase);
1978 HRESULT STDMETHODCALLTYPE ISpDataKey_SetStringValue_Proxy(
1979     ISpDataKey* This,
1980     LPCWSTR pszValueName,
1981     LPCWSTR pszValue);
1982 void __RPC_STUB ISpDataKey_SetStringValue_Stub(
1983     IRpcStubBuffer* This,
1984     IRpcChannelBuffer* pRpcChannelBuffer,
1985     PRPC_MESSAGE pRpcMessage,
1986     DWORD* pdwStubPhase);
1987 HRESULT STDMETHODCALLTYPE ISpDataKey_GetStringValue_Proxy(
1988     ISpDataKey* This,
1989     LPCWSTR pszValueName,
1990     LPWSTR *ppszValue);
1991 void __RPC_STUB ISpDataKey_GetStringValue_Stub(
1992     IRpcStubBuffer* This,
1993     IRpcChannelBuffer* pRpcChannelBuffer,
1994     PRPC_MESSAGE pRpcMessage,
1995     DWORD* pdwStubPhase);
1996 HRESULT STDMETHODCALLTYPE ISpDataKey_SetDWORD_Proxy(
1997     ISpDataKey* This,
1998     LPCWSTR pszValueName,
1999     DWORD dwValue);
2000 void __RPC_STUB ISpDataKey_SetDWORD_Stub(
2001     IRpcStubBuffer* This,
2002     IRpcChannelBuffer* pRpcChannelBuffer,
2003     PRPC_MESSAGE pRpcMessage,
2004     DWORD* pdwStubPhase);
2005 HRESULT STDMETHODCALLTYPE ISpDataKey_GetDWORD_Proxy(
2006     ISpDataKey* This,
2007     LPCWSTR pszValueName,
2008     DWORD *pdwValue);
2009 void __RPC_STUB ISpDataKey_GetDWORD_Stub(
2010     IRpcStubBuffer* This,
2011     IRpcChannelBuffer* pRpcChannelBuffer,
2012     PRPC_MESSAGE pRpcMessage,
2013     DWORD* pdwStubPhase);
2014 HRESULT STDMETHODCALLTYPE ISpDataKey_OpenKey_Proxy(
2015     ISpDataKey* This,
2016     LPCWSTR pszSubKeyName,
2017     ISpDataKey **ppSubKey);
2018 void __RPC_STUB ISpDataKey_OpenKey_Stub(
2019     IRpcStubBuffer* This,
2020     IRpcChannelBuffer* pRpcChannelBuffer,
2021     PRPC_MESSAGE pRpcMessage,
2022     DWORD* pdwStubPhase);
2023 HRESULT STDMETHODCALLTYPE ISpDataKey_CreateKey_Proxy(
2024     ISpDataKey* This,
2025     LPCWSTR pszSubKey,
2026     ISpDataKey **ppSubKey);
2027 void __RPC_STUB ISpDataKey_CreateKey_Stub(
2028     IRpcStubBuffer* This,
2029     IRpcChannelBuffer* pRpcChannelBuffer,
2030     PRPC_MESSAGE pRpcMessage,
2031     DWORD* pdwStubPhase);
2032 HRESULT STDMETHODCALLTYPE ISpDataKey_DeleteKey_Proxy(
2033     ISpDataKey* This,
2034     LPCWSTR pszSubKey);
2035 void __RPC_STUB ISpDataKey_DeleteKey_Stub(
2036     IRpcStubBuffer* This,
2037     IRpcChannelBuffer* pRpcChannelBuffer,
2038     PRPC_MESSAGE pRpcMessage,
2039     DWORD* pdwStubPhase);
2040 HRESULT STDMETHODCALLTYPE ISpDataKey_DeleteValue_Proxy(
2041     ISpDataKey* This,
2042     LPCWSTR pszValueName);
2043 void __RPC_STUB ISpDataKey_DeleteValue_Stub(
2044     IRpcStubBuffer* This,
2045     IRpcChannelBuffer* pRpcChannelBuffer,
2046     PRPC_MESSAGE pRpcMessage,
2047     DWORD* pdwStubPhase);
2048 HRESULT STDMETHODCALLTYPE ISpDataKey_EnumKeys_Proxy(
2049     ISpDataKey* This,
2050     ULONG Index,
2051     LPWSTR *ppszSubKeyName);
2052 void __RPC_STUB ISpDataKey_EnumKeys_Stub(
2053     IRpcStubBuffer* This,
2054     IRpcChannelBuffer* pRpcChannelBuffer,
2055     PRPC_MESSAGE pRpcMessage,
2056     DWORD* pdwStubPhase);
2057 HRESULT STDMETHODCALLTYPE ISpDataKey_EnumValues_Proxy(
2058     ISpDataKey* This,
2059     ULONG Index,
2060     LPWSTR *ppszValueName);
2061 void __RPC_STUB ISpDataKey_EnumValues_Stub(
2062     IRpcStubBuffer* This,
2063     IRpcChannelBuffer* pRpcChannelBuffer,
2064     PRPC_MESSAGE pRpcMessage,
2065     DWORD* pdwStubPhase);
2066 
2067 #endif  /* __ISpDataKey_INTERFACE_DEFINED__ */
2068 
2069 /*****************************************************************************
2070  * ISpObjectWithToken interface
2071  */
2072 #ifndef __ISpObjectWithToken_INTERFACE_DEFINED__
2073 #define __ISpObjectWithToken_INTERFACE_DEFINED__
2074 
2075 DEFINE_GUID(IID_ISpObjectWithToken, 0x5b559f40, 0xe952, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
2076 #if defined(__cplusplus) && !defined(CINTERFACE)
2077 MIDL_INTERFACE("5b559f40-e952-11d2-bb91-00c04f8ee6c0")
2078 ISpObjectWithToken : public IUnknown
2079 {
2080     virtual HRESULT STDMETHODCALLTYPE SetObjectToken(
2081         ISpObjectToken *pToken) = 0;
2082 
2083     virtual HRESULT STDMETHODCALLTYPE GetObjectToken(
2084         ISpObjectToken **ppToken) = 0;
2085 
2086 };
2087 #ifdef __CRT_UUID_DECL
2088 __CRT_UUID_DECL(ISpObjectWithToken, 0x5b559f40, 0xe952, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
2089 #endif
2090 #else
2091 typedef struct ISpObjectWithTokenVtbl {
2092     BEGIN_INTERFACE
2093 
2094     /*** IUnknown methods ***/
2095     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2096         ISpObjectWithToken* This,
2097         REFIID riid,
2098         void **ppvObject);
2099 
2100     ULONG (STDMETHODCALLTYPE *AddRef)(
2101         ISpObjectWithToken* This);
2102 
2103     ULONG (STDMETHODCALLTYPE *Release)(
2104         ISpObjectWithToken* This);
2105 
2106     /*** ISpObjectWithToken methods ***/
2107     HRESULT (STDMETHODCALLTYPE *SetObjectToken)(
2108         ISpObjectWithToken* This,
2109         ISpObjectToken *pToken);
2110 
2111     HRESULT (STDMETHODCALLTYPE *GetObjectToken)(
2112         ISpObjectWithToken* This,
2113         ISpObjectToken **ppToken);
2114 
2115     END_INTERFACE
2116 } ISpObjectWithTokenVtbl;
2117 interface ISpObjectWithToken {
2118     CONST_VTBL ISpObjectWithTokenVtbl* lpVtbl;
2119 };
2120 
2121 #ifdef COBJMACROS
2122 #ifndef WIDL_C_INLINE_WRAPPERS
2123 /*** IUnknown methods ***/
2124 #define ISpObjectWithToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2125 #define ISpObjectWithToken_AddRef(This) (This)->lpVtbl->AddRef(This)
2126 #define ISpObjectWithToken_Release(This) (This)->lpVtbl->Release(This)
2127 /*** ISpObjectWithToken methods ***/
2128 #define ISpObjectWithToken_SetObjectToken(This,pToken) (This)->lpVtbl->SetObjectToken(This,pToken)
2129 #define ISpObjectWithToken_GetObjectToken(This,ppToken) (This)->lpVtbl->GetObjectToken(This,ppToken)
2130 #else
2131 /*** IUnknown methods ***/
2132 static FORCEINLINE HRESULT ISpObjectWithToken_QueryInterface(ISpObjectWithToken* This,REFIID riid,void **ppvObject) {
2133     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2134 }
2135 static FORCEINLINE ULONG ISpObjectWithToken_AddRef(ISpObjectWithToken* This) {
2136     return This->lpVtbl->AddRef(This);
2137 }
2138 static FORCEINLINE ULONG ISpObjectWithToken_Release(ISpObjectWithToken* This) {
2139     return This->lpVtbl->Release(This);
2140 }
2141 /*** ISpObjectWithToken methods ***/
2142 static FORCEINLINE HRESULT ISpObjectWithToken_SetObjectToken(ISpObjectWithToken* This,ISpObjectToken *pToken) {
2143     return This->lpVtbl->SetObjectToken(This,pToken);
2144 }
2145 static FORCEINLINE HRESULT ISpObjectWithToken_GetObjectToken(ISpObjectWithToken* This,ISpObjectToken **ppToken) {
2146     return This->lpVtbl->GetObjectToken(This,ppToken);
2147 }
2148 #endif
2149 #endif
2150 
2151 #endif
2152 
2153 HRESULT STDMETHODCALLTYPE ISpObjectWithToken_SetObjectToken_Proxy(
2154     ISpObjectWithToken* This,
2155     ISpObjectToken *pToken);
2156 void __RPC_STUB ISpObjectWithToken_SetObjectToken_Stub(
2157     IRpcStubBuffer* This,
2158     IRpcChannelBuffer* pRpcChannelBuffer,
2159     PRPC_MESSAGE pRpcMessage,
2160     DWORD* pdwStubPhase);
2161 HRESULT STDMETHODCALLTYPE ISpObjectWithToken_GetObjectToken_Proxy(
2162     ISpObjectWithToken* This,
2163     ISpObjectToken **ppToken);
2164 void __RPC_STUB ISpObjectWithToken_GetObjectToken_Stub(
2165     IRpcStubBuffer* This,
2166     IRpcChannelBuffer* pRpcChannelBuffer,
2167     PRPC_MESSAGE pRpcMessage,
2168     DWORD* pdwStubPhase);
2169 
2170 #endif  /* __ISpObjectWithToken_INTERFACE_DEFINED__ */
2171 
2172 /*****************************************************************************
2173  * IEnumSpObjectTokens interface
2174  */
2175 #ifndef __IEnumSpObjectTokens_INTERFACE_DEFINED__
2176 #define __IEnumSpObjectTokens_INTERFACE_DEFINED__
2177 
2178 DEFINE_GUID(IID_IEnumSpObjectTokens, 0x06b64f9e, 0x7fda, 0x11d2, 0xb4,0xf2, 0x00,0xc0,0x4f,0x79,0x73,0x96);
2179 #if defined(__cplusplus) && !defined(CINTERFACE)
2180 MIDL_INTERFACE("06b64f9e-7fda-11d2-b4f2-00c04f797396")
2181 IEnumSpObjectTokens : public IUnknown
2182 {
2183     virtual HRESULT STDMETHODCALLTYPE Next(
2184         ULONG celt,
2185         ISpObjectToken **pelt,
2186         ULONG *pceltFetched) = 0;
2187 
2188     virtual HRESULT STDMETHODCALLTYPE Skip(
2189         ULONG celt) = 0;
2190 
2191     virtual HRESULT STDMETHODCALLTYPE Reset(
2192         ) = 0;
2193 
2194     virtual HRESULT STDMETHODCALLTYPE Clone(
2195         IEnumSpObjectTokens **ppEnum) = 0;
2196 
2197     virtual HRESULT STDMETHODCALLTYPE Item(
2198         ULONG Index,
2199         ISpObjectToken **ppToken) = 0;
2200 
2201     virtual HRESULT STDMETHODCALLTYPE GetCount(
2202         ULONG *pCount) = 0;
2203 
2204 };
2205 #ifdef __CRT_UUID_DECL
2206 __CRT_UUID_DECL(IEnumSpObjectTokens, 0x06b64f9e, 0x7fda, 0x11d2, 0xb4,0xf2, 0x00,0xc0,0x4f,0x79,0x73,0x96)
2207 #endif
2208 #else
2209 typedef struct IEnumSpObjectTokensVtbl {
2210     BEGIN_INTERFACE
2211 
2212     /*** IUnknown methods ***/
2213     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2214         IEnumSpObjectTokens* This,
2215         REFIID riid,
2216         void **ppvObject);
2217 
2218     ULONG (STDMETHODCALLTYPE *AddRef)(
2219         IEnumSpObjectTokens* This);
2220 
2221     ULONG (STDMETHODCALLTYPE *Release)(
2222         IEnumSpObjectTokens* This);
2223 
2224     /*** IEnumSpObjectTokens methods ***/
2225     HRESULT (STDMETHODCALLTYPE *Next)(
2226         IEnumSpObjectTokens* This,
2227         ULONG celt,
2228         ISpObjectToken **pelt,
2229         ULONG *pceltFetched);
2230 
2231     HRESULT (STDMETHODCALLTYPE *Skip)(
2232         IEnumSpObjectTokens* This,
2233         ULONG celt);
2234 
2235     HRESULT (STDMETHODCALLTYPE *Reset)(
2236         IEnumSpObjectTokens* This);
2237 
2238     HRESULT (STDMETHODCALLTYPE *Clone)(
2239         IEnumSpObjectTokens* This,
2240         IEnumSpObjectTokens **ppEnum);
2241 
2242     HRESULT (STDMETHODCALLTYPE *Item)(
2243         IEnumSpObjectTokens* This,
2244         ULONG Index,
2245         ISpObjectToken **ppToken);
2246 
2247     HRESULT (STDMETHODCALLTYPE *GetCount)(
2248         IEnumSpObjectTokens* This,
2249         ULONG *pCount);
2250 
2251     END_INTERFACE
2252 } IEnumSpObjectTokensVtbl;
2253 interface IEnumSpObjectTokens {
2254     CONST_VTBL IEnumSpObjectTokensVtbl* lpVtbl;
2255 };
2256 
2257 #ifdef COBJMACROS
2258 #ifndef WIDL_C_INLINE_WRAPPERS
2259 /*** IUnknown methods ***/
2260 #define IEnumSpObjectTokens_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2261 #define IEnumSpObjectTokens_AddRef(This) (This)->lpVtbl->AddRef(This)
2262 #define IEnumSpObjectTokens_Release(This) (This)->lpVtbl->Release(This)
2263 /*** IEnumSpObjectTokens methods ***/
2264 #define IEnumSpObjectTokens_Next(This,celt,pelt,pceltFetched) (This)->lpVtbl->Next(This,celt,pelt,pceltFetched)
2265 #define IEnumSpObjectTokens_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
2266 #define IEnumSpObjectTokens_Reset(This) (This)->lpVtbl->Reset(This)
2267 #define IEnumSpObjectTokens_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
2268 #define IEnumSpObjectTokens_Item(This,Index,ppToken) (This)->lpVtbl->Item(This,Index,ppToken)
2269 #define IEnumSpObjectTokens_GetCount(This,pCount) (This)->lpVtbl->GetCount(This,pCount)
2270 #else
2271 /*** IUnknown methods ***/
2272 static FORCEINLINE HRESULT IEnumSpObjectTokens_QueryInterface(IEnumSpObjectTokens* This,REFIID riid,void **ppvObject) {
2273     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2274 }
2275 static FORCEINLINE ULONG IEnumSpObjectTokens_AddRef(IEnumSpObjectTokens* This) {
2276     return This->lpVtbl->AddRef(This);
2277 }
2278 static FORCEINLINE ULONG IEnumSpObjectTokens_Release(IEnumSpObjectTokens* This) {
2279     return This->lpVtbl->Release(This);
2280 }
2281 /*** IEnumSpObjectTokens methods ***/
2282 static FORCEINLINE HRESULT IEnumSpObjectTokens_Next(IEnumSpObjectTokens* This,ULONG celt,ISpObjectToken **pelt,ULONG *pceltFetched) {
2283     return This->lpVtbl->Next(This,celt,pelt,pceltFetched);
2284 }
2285 static FORCEINLINE HRESULT IEnumSpObjectTokens_Skip(IEnumSpObjectTokens* This,ULONG celt) {
2286     return This->lpVtbl->Skip(This,celt);
2287 }
2288 static FORCEINLINE HRESULT IEnumSpObjectTokens_Reset(IEnumSpObjectTokens* This) {
2289     return This->lpVtbl->Reset(This);
2290 }
2291 static FORCEINLINE HRESULT IEnumSpObjectTokens_Clone(IEnumSpObjectTokens* This,IEnumSpObjectTokens **ppEnum) {
2292     return This->lpVtbl->Clone(This,ppEnum);
2293 }
2294 static FORCEINLINE HRESULT IEnumSpObjectTokens_Item(IEnumSpObjectTokens* This,ULONG Index,ISpObjectToken **ppToken) {
2295     return This->lpVtbl->Item(This,Index,ppToken);
2296 }
2297 static FORCEINLINE HRESULT IEnumSpObjectTokens_GetCount(IEnumSpObjectTokens* This,ULONG *pCount) {
2298     return This->lpVtbl->GetCount(This,pCount);
2299 }
2300 #endif
2301 #endif
2302 
2303 #endif
2304 
2305 HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_Next_Proxy(
2306     IEnumSpObjectTokens* This,
2307     ULONG celt,
2308     ISpObjectToken **pelt,
2309     ULONG *pceltFetched);
2310 void __RPC_STUB IEnumSpObjectTokens_Next_Stub(
2311     IRpcStubBuffer* This,
2312     IRpcChannelBuffer* pRpcChannelBuffer,
2313     PRPC_MESSAGE pRpcMessage,
2314     DWORD* pdwStubPhase);
2315 HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_Skip_Proxy(
2316     IEnumSpObjectTokens* This,
2317     ULONG celt);
2318 void __RPC_STUB IEnumSpObjectTokens_Skip_Stub(
2319     IRpcStubBuffer* This,
2320     IRpcChannelBuffer* pRpcChannelBuffer,
2321     PRPC_MESSAGE pRpcMessage,
2322     DWORD* pdwStubPhase);
2323 HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_Reset_Proxy(
2324     IEnumSpObjectTokens* This);
2325 void __RPC_STUB IEnumSpObjectTokens_Reset_Stub(
2326     IRpcStubBuffer* This,
2327     IRpcChannelBuffer* pRpcChannelBuffer,
2328     PRPC_MESSAGE pRpcMessage,
2329     DWORD* pdwStubPhase);
2330 HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_Clone_Proxy(
2331     IEnumSpObjectTokens* This,
2332     IEnumSpObjectTokens **ppEnum);
2333 void __RPC_STUB IEnumSpObjectTokens_Clone_Stub(
2334     IRpcStubBuffer* This,
2335     IRpcChannelBuffer* pRpcChannelBuffer,
2336     PRPC_MESSAGE pRpcMessage,
2337     DWORD* pdwStubPhase);
2338 HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_Item_Proxy(
2339     IEnumSpObjectTokens* This,
2340     ULONG Index,
2341     ISpObjectToken **ppToken);
2342 void __RPC_STUB IEnumSpObjectTokens_Item_Stub(
2343     IRpcStubBuffer* This,
2344     IRpcChannelBuffer* pRpcChannelBuffer,
2345     PRPC_MESSAGE pRpcMessage,
2346     DWORD* pdwStubPhase);
2347 HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_GetCount_Proxy(
2348     IEnumSpObjectTokens* This,
2349     ULONG *pCount);
2350 void __RPC_STUB IEnumSpObjectTokens_GetCount_Stub(
2351     IRpcStubBuffer* This,
2352     IRpcChannelBuffer* pRpcChannelBuffer,
2353     PRPC_MESSAGE pRpcMessage,
2354     DWORD* pdwStubPhase);
2355 
2356 #endif  /* __IEnumSpObjectTokens_INTERFACE_DEFINED__ */
2357 
2358 /*****************************************************************************
2359  * ISpRegDataKey interface
2360  */
2361 #ifndef __ISpRegDataKey_INTERFACE_DEFINED__
2362 #define __ISpRegDataKey_INTERFACE_DEFINED__
2363 
2364 DEFINE_GUID(IID_ISpRegDataKey, 0x92a66e2b, 0xc830, 0x4149, 0x83,0xdf, 0x6f,0xc2,0xba,0x1e,0x7a,0x5b);
2365 #if defined(__cplusplus) && !defined(CINTERFACE)
2366 MIDL_INTERFACE("92a66e2b-c830-4149-83df-6fc2ba1e7a5b")
2367 ISpRegDataKey : public ISpDataKey
2368 {
2369     virtual HRESULT STDMETHODCALLTYPE SetKey(
2370         HKEY hkey,
2371         WINBOOL fReadOnly) = 0;
2372 
2373 };
2374 #ifdef __CRT_UUID_DECL
2375 __CRT_UUID_DECL(ISpRegDataKey, 0x92a66e2b, 0xc830, 0x4149, 0x83,0xdf, 0x6f,0xc2,0xba,0x1e,0x7a,0x5b)
2376 #endif
2377 #else
2378 typedef struct ISpRegDataKeyVtbl {
2379     BEGIN_INTERFACE
2380 
2381     /*** IUnknown methods ***/
2382     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2383         ISpRegDataKey* This,
2384         REFIID riid,
2385         void **ppvObject);
2386 
2387     ULONG (STDMETHODCALLTYPE *AddRef)(
2388         ISpRegDataKey* This);
2389 
2390     ULONG (STDMETHODCALLTYPE *Release)(
2391         ISpRegDataKey* This);
2392 
2393     /*** ISpDataKey methods ***/
2394     HRESULT (STDMETHODCALLTYPE *SetData)(
2395         ISpRegDataKey* This,
2396         LPCWSTR pszValueName,
2397         ULONG cbData,
2398         const BYTE *pData);
2399 
2400     HRESULT (STDMETHODCALLTYPE *GetData)(
2401         ISpRegDataKey* This,
2402         LPCWSTR pszValueName,
2403         ULONG *pcbData,
2404         BYTE *pData);
2405 
2406     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
2407         ISpRegDataKey* This,
2408         LPCWSTR pszValueName,
2409         LPCWSTR pszValue);
2410 
2411     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
2412         ISpRegDataKey* This,
2413         LPCWSTR pszValueName,
2414         LPWSTR *ppszValue);
2415 
2416     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
2417         ISpRegDataKey* This,
2418         LPCWSTR pszValueName,
2419         DWORD dwValue);
2420 
2421     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
2422         ISpRegDataKey* This,
2423         LPCWSTR pszValueName,
2424         DWORD *pdwValue);
2425 
2426     HRESULT (STDMETHODCALLTYPE *OpenKey)(
2427         ISpRegDataKey* This,
2428         LPCWSTR pszSubKeyName,
2429         ISpDataKey **ppSubKey);
2430 
2431     HRESULT (STDMETHODCALLTYPE *CreateKey)(
2432         ISpRegDataKey* This,
2433         LPCWSTR pszSubKey,
2434         ISpDataKey **ppSubKey);
2435 
2436     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
2437         ISpRegDataKey* This,
2438         LPCWSTR pszSubKey);
2439 
2440     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
2441         ISpRegDataKey* This,
2442         LPCWSTR pszValueName);
2443 
2444     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
2445         ISpRegDataKey* This,
2446         ULONG Index,
2447         LPWSTR *ppszSubKeyName);
2448 
2449     HRESULT (STDMETHODCALLTYPE *EnumValues)(
2450         ISpRegDataKey* This,
2451         ULONG Index,
2452         LPWSTR *ppszValueName);
2453 
2454     /*** ISpRegDataKey methods ***/
2455     HRESULT (STDMETHODCALLTYPE *SetKey)(
2456         ISpRegDataKey* This,
2457         HKEY hkey,
2458         WINBOOL fReadOnly);
2459 
2460     END_INTERFACE
2461 } ISpRegDataKeyVtbl;
2462 interface ISpRegDataKey {
2463     CONST_VTBL ISpRegDataKeyVtbl* lpVtbl;
2464 };
2465 
2466 #ifdef COBJMACROS
2467 #ifndef WIDL_C_INLINE_WRAPPERS
2468 /*** IUnknown methods ***/
2469 #define ISpRegDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2470 #define ISpRegDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
2471 #define ISpRegDataKey_Release(This) (This)->lpVtbl->Release(This)
2472 /*** ISpDataKey methods ***/
2473 #define ISpRegDataKey_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
2474 #define ISpRegDataKey_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
2475 #define ISpRegDataKey_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
2476 #define ISpRegDataKey_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
2477 #define ISpRegDataKey_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
2478 #define ISpRegDataKey_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
2479 #define ISpRegDataKey_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
2480 #define ISpRegDataKey_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
2481 #define ISpRegDataKey_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
2482 #define ISpRegDataKey_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
2483 #define ISpRegDataKey_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
2484 #define ISpRegDataKey_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
2485 /*** ISpRegDataKey methods ***/
2486 #define ISpRegDataKey_SetKey(This,hkey,fReadOnly) (This)->lpVtbl->SetKey(This,hkey,fReadOnly)
2487 #else
2488 /*** IUnknown methods ***/
2489 static FORCEINLINE HRESULT ISpRegDataKey_QueryInterface(ISpRegDataKey* This,REFIID riid,void **ppvObject) {
2490     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2491 }
2492 static FORCEINLINE ULONG ISpRegDataKey_AddRef(ISpRegDataKey* This) {
2493     return This->lpVtbl->AddRef(This);
2494 }
2495 static FORCEINLINE ULONG ISpRegDataKey_Release(ISpRegDataKey* This) {
2496     return This->lpVtbl->Release(This);
2497 }
2498 /*** ISpDataKey methods ***/
2499 static FORCEINLINE HRESULT ISpRegDataKey_SetData(ISpRegDataKey* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
2500     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
2501 }
2502 static FORCEINLINE HRESULT ISpRegDataKey_GetData(ISpRegDataKey* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
2503     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
2504 }
2505 static FORCEINLINE HRESULT ISpRegDataKey_SetStringValue(ISpRegDataKey* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
2506     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
2507 }
2508 static FORCEINLINE HRESULT ISpRegDataKey_GetStringValue(ISpRegDataKey* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
2509     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
2510 }
2511 static FORCEINLINE HRESULT ISpRegDataKey_SetDWORD(ISpRegDataKey* This,LPCWSTR pszValueName,DWORD dwValue) {
2512     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
2513 }
2514 static FORCEINLINE HRESULT ISpRegDataKey_GetDWORD(ISpRegDataKey* This,LPCWSTR pszValueName,DWORD *pdwValue) {
2515     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
2516 }
2517 static FORCEINLINE HRESULT ISpRegDataKey_OpenKey(ISpRegDataKey* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
2518     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
2519 }
2520 static FORCEINLINE HRESULT ISpRegDataKey_CreateKey(ISpRegDataKey* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
2521     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
2522 }
2523 static FORCEINLINE HRESULT ISpRegDataKey_DeleteKey(ISpRegDataKey* This,LPCWSTR pszSubKey) {
2524     return This->lpVtbl->DeleteKey(This,pszSubKey);
2525 }
2526 static FORCEINLINE HRESULT ISpRegDataKey_DeleteValue(ISpRegDataKey* This,LPCWSTR pszValueName) {
2527     return This->lpVtbl->DeleteValue(This,pszValueName);
2528 }
2529 static FORCEINLINE HRESULT ISpRegDataKey_EnumKeys(ISpRegDataKey* This,ULONG Index,LPWSTR *ppszSubKeyName) {
2530     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
2531 }
2532 static FORCEINLINE HRESULT ISpRegDataKey_EnumValues(ISpRegDataKey* This,ULONG Index,LPWSTR *ppszValueName) {
2533     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
2534 }
2535 /*** ISpRegDataKey methods ***/
2536 static FORCEINLINE HRESULT ISpRegDataKey_SetKey(ISpRegDataKey* This,HKEY hkey,WINBOOL fReadOnly) {
2537     return This->lpVtbl->SetKey(This,hkey,fReadOnly);
2538 }
2539 #endif
2540 #endif
2541 
2542 #endif
2543 
2544 
2545 #endif  /* __ISpRegDataKey_INTERFACE_DEFINED__ */
2546 
2547 /*****************************************************************************
2548  * ISpObjectTokenCategory interface
2549  */
2550 #ifndef __ISpObjectTokenCategory_INTERFACE_DEFINED__
2551 #define __ISpObjectTokenCategory_INTERFACE_DEFINED__
2552 
2553 DEFINE_GUID(IID_ISpObjectTokenCategory, 0x2d3d3845, 0x39af, 0x4850, 0xbb,0xf9, 0x40,0xb4,0x97,0x80,0x01,0x1d);
2554 #if defined(__cplusplus) && !defined(CINTERFACE)
2555 MIDL_INTERFACE("2d3d3845-39af-4850-bbf9-40b49780011d")
2556 ISpObjectTokenCategory : public ISpDataKey
2557 {
2558     virtual HRESULT STDMETHODCALLTYPE SetId(
2559         LPCWSTR pszCategoryId,
2560         WINBOOL fCreateIfNotExist) = 0;
2561 
2562     virtual HRESULT STDMETHODCALLTYPE GetId(
2563         LPWSTR *ppszCoMemCategoryId) = 0;
2564 
2565     virtual HRESULT STDMETHODCALLTYPE GetDataKey(
2566         SPDATAKEYLOCATION spdkl,
2567         ISpDataKey **ppDataKey) = 0;
2568 
2569     virtual HRESULT STDMETHODCALLTYPE EnumTokens(
2570         LPCWSTR pzsReqAttribs,
2571         LPCWSTR pszOptAttribs,
2572         IEnumSpObjectTokens **ppEnum) = 0;
2573 
2574     virtual HRESULT STDMETHODCALLTYPE SetDefaultTokenId(
2575         LPCWSTR pszTokenId) = 0;
2576 
2577     virtual HRESULT STDMETHODCALLTYPE GetDefaultTokenId(
2578         LPWSTR *ppszCoMemTokenId) = 0;
2579 
2580 };
2581 #ifdef __CRT_UUID_DECL
2582 __CRT_UUID_DECL(ISpObjectTokenCategory, 0x2d3d3845, 0x39af, 0x4850, 0xbb,0xf9, 0x40,0xb4,0x97,0x80,0x01,0x1d)
2583 #endif
2584 #else
2585 typedef struct ISpObjectTokenCategoryVtbl {
2586     BEGIN_INTERFACE
2587 
2588     /*** IUnknown methods ***/
2589     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2590         ISpObjectTokenCategory* This,
2591         REFIID riid,
2592         void **ppvObject);
2593 
2594     ULONG (STDMETHODCALLTYPE *AddRef)(
2595         ISpObjectTokenCategory* This);
2596 
2597     ULONG (STDMETHODCALLTYPE *Release)(
2598         ISpObjectTokenCategory* This);
2599 
2600     /*** ISpDataKey methods ***/
2601     HRESULT (STDMETHODCALLTYPE *SetData)(
2602         ISpObjectTokenCategory* This,
2603         LPCWSTR pszValueName,
2604         ULONG cbData,
2605         const BYTE *pData);
2606 
2607     HRESULT (STDMETHODCALLTYPE *GetData)(
2608         ISpObjectTokenCategory* This,
2609         LPCWSTR pszValueName,
2610         ULONG *pcbData,
2611         BYTE *pData);
2612 
2613     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
2614         ISpObjectTokenCategory* This,
2615         LPCWSTR pszValueName,
2616         LPCWSTR pszValue);
2617 
2618     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
2619         ISpObjectTokenCategory* This,
2620         LPCWSTR pszValueName,
2621         LPWSTR *ppszValue);
2622 
2623     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
2624         ISpObjectTokenCategory* This,
2625         LPCWSTR pszValueName,
2626         DWORD dwValue);
2627 
2628     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
2629         ISpObjectTokenCategory* This,
2630         LPCWSTR pszValueName,
2631         DWORD *pdwValue);
2632 
2633     HRESULT (STDMETHODCALLTYPE *OpenKey)(
2634         ISpObjectTokenCategory* This,
2635         LPCWSTR pszSubKeyName,
2636         ISpDataKey **ppSubKey);
2637 
2638     HRESULT (STDMETHODCALLTYPE *CreateKey)(
2639         ISpObjectTokenCategory* This,
2640         LPCWSTR pszSubKey,
2641         ISpDataKey **ppSubKey);
2642 
2643     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
2644         ISpObjectTokenCategory* This,
2645         LPCWSTR pszSubKey);
2646 
2647     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
2648         ISpObjectTokenCategory* This,
2649         LPCWSTR pszValueName);
2650 
2651     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
2652         ISpObjectTokenCategory* This,
2653         ULONG Index,
2654         LPWSTR *ppszSubKeyName);
2655 
2656     HRESULT (STDMETHODCALLTYPE *EnumValues)(
2657         ISpObjectTokenCategory* This,
2658         ULONG Index,
2659         LPWSTR *ppszValueName);
2660 
2661     /*** ISpObjectTokenCategory methods ***/
2662     HRESULT (STDMETHODCALLTYPE *SetId)(
2663         ISpObjectTokenCategory* This,
2664         LPCWSTR pszCategoryId,
2665         WINBOOL fCreateIfNotExist);
2666 
2667     HRESULT (STDMETHODCALLTYPE *GetId)(
2668         ISpObjectTokenCategory* This,
2669         LPWSTR *ppszCoMemCategoryId);
2670 
2671     HRESULT (STDMETHODCALLTYPE *GetDataKey)(
2672         ISpObjectTokenCategory* This,
2673         SPDATAKEYLOCATION spdkl,
2674         ISpDataKey **ppDataKey);
2675 
2676     HRESULT (STDMETHODCALLTYPE *EnumTokens)(
2677         ISpObjectTokenCategory* This,
2678         LPCWSTR pzsReqAttribs,
2679         LPCWSTR pszOptAttribs,
2680         IEnumSpObjectTokens **ppEnum);
2681 
2682     HRESULT (STDMETHODCALLTYPE *SetDefaultTokenId)(
2683         ISpObjectTokenCategory* This,
2684         LPCWSTR pszTokenId);
2685 
2686     HRESULT (STDMETHODCALLTYPE *GetDefaultTokenId)(
2687         ISpObjectTokenCategory* This,
2688         LPWSTR *ppszCoMemTokenId);
2689 
2690     END_INTERFACE
2691 } ISpObjectTokenCategoryVtbl;
2692 interface ISpObjectTokenCategory {
2693     CONST_VTBL ISpObjectTokenCategoryVtbl* lpVtbl;
2694 };
2695 
2696 #ifdef COBJMACROS
2697 #ifndef WIDL_C_INLINE_WRAPPERS
2698 /*** IUnknown methods ***/
2699 #define ISpObjectTokenCategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2700 #define ISpObjectTokenCategory_AddRef(This) (This)->lpVtbl->AddRef(This)
2701 #define ISpObjectTokenCategory_Release(This) (This)->lpVtbl->Release(This)
2702 /*** ISpDataKey methods ***/
2703 #define ISpObjectTokenCategory_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
2704 #define ISpObjectTokenCategory_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
2705 #define ISpObjectTokenCategory_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
2706 #define ISpObjectTokenCategory_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
2707 #define ISpObjectTokenCategory_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
2708 #define ISpObjectTokenCategory_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
2709 #define ISpObjectTokenCategory_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
2710 #define ISpObjectTokenCategory_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
2711 #define ISpObjectTokenCategory_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
2712 #define ISpObjectTokenCategory_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
2713 #define ISpObjectTokenCategory_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
2714 #define ISpObjectTokenCategory_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
2715 /*** ISpObjectTokenCategory methods ***/
2716 #define ISpObjectTokenCategory_SetId(This,pszCategoryId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,fCreateIfNotExist)
2717 #define ISpObjectTokenCategory_GetId(This,ppszCoMemCategoryId) (This)->lpVtbl->GetId(This,ppszCoMemCategoryId)
2718 #define ISpObjectTokenCategory_GetDataKey(This,spdkl,ppDataKey) (This)->lpVtbl->GetDataKey(This,spdkl,ppDataKey)
2719 #define ISpObjectTokenCategory_EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum) (This)->lpVtbl->EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum)
2720 #define ISpObjectTokenCategory_SetDefaultTokenId(This,pszTokenId) (This)->lpVtbl->SetDefaultTokenId(This,pszTokenId)
2721 #define ISpObjectTokenCategory_GetDefaultTokenId(This,ppszCoMemTokenId) (This)->lpVtbl->GetDefaultTokenId(This,ppszCoMemTokenId)
2722 #else
2723 /*** IUnknown methods ***/
2724 static FORCEINLINE HRESULT ISpObjectTokenCategory_QueryInterface(ISpObjectTokenCategory* This,REFIID riid,void **ppvObject) {
2725     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2726 }
2727 static FORCEINLINE ULONG ISpObjectTokenCategory_AddRef(ISpObjectTokenCategory* This) {
2728     return This->lpVtbl->AddRef(This);
2729 }
2730 static FORCEINLINE ULONG ISpObjectTokenCategory_Release(ISpObjectTokenCategory* This) {
2731     return This->lpVtbl->Release(This);
2732 }
2733 /*** ISpDataKey methods ***/
2734 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetData(ISpObjectTokenCategory* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
2735     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
2736 }
2737 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetData(ISpObjectTokenCategory* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
2738     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
2739 }
2740 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetStringValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
2741     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
2742 }
2743 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetStringValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
2744     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
2745 }
2746 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetDWORD(ISpObjectTokenCategory* This,LPCWSTR pszValueName,DWORD dwValue) {
2747     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
2748 }
2749 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetDWORD(ISpObjectTokenCategory* This,LPCWSTR pszValueName,DWORD *pdwValue) {
2750     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
2751 }
2752 static FORCEINLINE HRESULT ISpObjectTokenCategory_OpenKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
2753     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
2754 }
2755 static FORCEINLINE HRESULT ISpObjectTokenCategory_CreateKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
2756     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
2757 }
2758 static FORCEINLINE HRESULT ISpObjectTokenCategory_DeleteKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKey) {
2759     return This->lpVtbl->DeleteKey(This,pszSubKey);
2760 }
2761 static FORCEINLINE HRESULT ISpObjectTokenCategory_DeleteValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName) {
2762     return This->lpVtbl->DeleteValue(This,pszValueName);
2763 }
2764 static FORCEINLINE HRESULT ISpObjectTokenCategory_EnumKeys(ISpObjectTokenCategory* This,ULONG Index,LPWSTR *ppszSubKeyName) {
2765     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
2766 }
2767 static FORCEINLINE HRESULT ISpObjectTokenCategory_EnumValues(ISpObjectTokenCategory* This,ULONG Index,LPWSTR *ppszValueName) {
2768     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
2769 }
2770 /*** ISpObjectTokenCategory methods ***/
2771 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetId(ISpObjectTokenCategory* This,LPCWSTR pszCategoryId,WINBOOL fCreateIfNotExist) {
2772     return This->lpVtbl->SetId(This,pszCategoryId,fCreateIfNotExist);
2773 }
2774 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetId(ISpObjectTokenCategory* This,LPWSTR *ppszCoMemCategoryId) {
2775     return This->lpVtbl->GetId(This,ppszCoMemCategoryId);
2776 }
2777 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetDataKey(ISpObjectTokenCategory* This,SPDATAKEYLOCATION spdkl,ISpDataKey **ppDataKey) {
2778     return This->lpVtbl->GetDataKey(This,spdkl,ppDataKey);
2779 }
2780 static FORCEINLINE HRESULT ISpObjectTokenCategory_EnumTokens(ISpObjectTokenCategory* This,LPCWSTR pzsReqAttribs,LPCWSTR pszOptAttribs,IEnumSpObjectTokens **ppEnum) {
2781     return This->lpVtbl->EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum);
2782 }
2783 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetDefaultTokenId(ISpObjectTokenCategory* This,LPCWSTR pszTokenId) {
2784     return This->lpVtbl->SetDefaultTokenId(This,pszTokenId);
2785 }
2786 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetDefaultTokenId(ISpObjectTokenCategory* This,LPWSTR *ppszCoMemTokenId) {
2787     return This->lpVtbl->GetDefaultTokenId(This,ppszCoMemTokenId);
2788 }
2789 #endif
2790 #endif
2791 
2792 #endif
2793 
2794 HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_SetId_Proxy(
2795     ISpObjectTokenCategory* This,
2796     LPCWSTR pszCategoryId,
2797     WINBOOL fCreateIfNotExist);
2798 void __RPC_STUB ISpObjectTokenCategory_SetId_Stub(
2799     IRpcStubBuffer* This,
2800     IRpcChannelBuffer* pRpcChannelBuffer,
2801     PRPC_MESSAGE pRpcMessage,
2802     DWORD* pdwStubPhase);
2803 HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_GetId_Proxy(
2804     ISpObjectTokenCategory* This,
2805     LPWSTR *ppszCoMemCategoryId);
2806 void __RPC_STUB ISpObjectTokenCategory_GetId_Stub(
2807     IRpcStubBuffer* This,
2808     IRpcChannelBuffer* pRpcChannelBuffer,
2809     PRPC_MESSAGE pRpcMessage,
2810     DWORD* pdwStubPhase);
2811 HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_GetDataKey_Proxy(
2812     ISpObjectTokenCategory* This,
2813     SPDATAKEYLOCATION spdkl,
2814     ISpDataKey **ppDataKey);
2815 void __RPC_STUB ISpObjectTokenCategory_GetDataKey_Stub(
2816     IRpcStubBuffer* This,
2817     IRpcChannelBuffer* pRpcChannelBuffer,
2818     PRPC_MESSAGE pRpcMessage,
2819     DWORD* pdwStubPhase);
2820 HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_EnumTokens_Proxy(
2821     ISpObjectTokenCategory* This,
2822     LPCWSTR pzsReqAttribs,
2823     LPCWSTR pszOptAttribs,
2824     IEnumSpObjectTokens **ppEnum);
2825 void __RPC_STUB ISpObjectTokenCategory_EnumTokens_Stub(
2826     IRpcStubBuffer* This,
2827     IRpcChannelBuffer* pRpcChannelBuffer,
2828     PRPC_MESSAGE pRpcMessage,
2829     DWORD* pdwStubPhase);
2830 HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_SetDefaultTokenId_Proxy(
2831     ISpObjectTokenCategory* This,
2832     LPCWSTR pszTokenId);
2833 void __RPC_STUB ISpObjectTokenCategory_SetDefaultTokenId_Stub(
2834     IRpcStubBuffer* This,
2835     IRpcChannelBuffer* pRpcChannelBuffer,
2836     PRPC_MESSAGE pRpcMessage,
2837     DWORD* pdwStubPhase);
2838 HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_GetDefaultTokenId_Proxy(
2839     ISpObjectTokenCategory* This,
2840     LPWSTR *ppszCoMemTokenId);
2841 void __RPC_STUB ISpObjectTokenCategory_GetDefaultTokenId_Stub(
2842     IRpcStubBuffer* This,
2843     IRpcChannelBuffer* pRpcChannelBuffer,
2844     PRPC_MESSAGE pRpcMessage,
2845     DWORD* pdwStubPhase);
2846 
2847 #endif  /* __ISpObjectTokenCategory_INTERFACE_DEFINED__ */
2848 
2849 /*****************************************************************************
2850  * ISpObjectToken interface
2851  */
2852 #ifndef __ISpObjectToken_INTERFACE_DEFINED__
2853 #define __ISpObjectToken_INTERFACE_DEFINED__
2854 
2855 DEFINE_GUID(IID_ISpObjectToken, 0x14056589, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
2856 #if defined(__cplusplus) && !defined(CINTERFACE)
2857 MIDL_INTERFACE("14056589-e16c-11d2-bb90-00c04f8ee6c0")
2858 ISpObjectToken : public ISpDataKey
2859 {
2860     virtual HRESULT STDMETHODCALLTYPE SetId(
2861         LPCWSTR pszCategoryId,
2862         LPCWSTR pszTokenId,
2863         WINBOOL fCreateIfNotExist) = 0;
2864 
2865     virtual HRESULT STDMETHODCALLTYPE GetId(
2866         LPWSTR *ppszCoMemTokenId) = 0;
2867 
2868     virtual HRESULT STDMETHODCALLTYPE GetCategory(
2869         ISpObjectTokenCategory **ppTokenCategory) = 0;
2870 
2871     virtual HRESULT STDMETHODCALLTYPE CreateInstance(
2872         IUnknown *pUnkOuter,
2873         DWORD dwClsContext,
2874         REFIID riid,
2875         void **ppvObject) = 0;
2876 
2877     virtual HRESULT STDMETHODCALLTYPE GetStorageFileName(
2878         REFCLSID clsidCaller,
2879         LPCWSTR pszValueName,
2880         LPCWSTR pszFileNameSpecifier,
2881         ULONG nFolder,
2882         LPWSTR *ppszFilePath) = 0;
2883 
2884     virtual HRESULT STDMETHODCALLTYPE RemoveStorageFileName(
2885         REFCLSID clsidCaller,
2886         LPCWSTR pszKeyName,
2887         WINBOOL fDeleteFile) = 0;
2888 
2889     virtual HRESULT STDMETHODCALLTYPE Remove(
2890         const CLSID *pclsidCaller) = 0;
2891 
2892     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
2893         LPCWSTR pszTypeOfUI,
2894         void *pvExtraData,
2895         ULONG cbExtraData,
2896         IUnknown *punkObject,
2897         WINBOOL *pfSupported) = 0;
2898 
2899     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
2900         HWND hwndParent,
2901         LPCWSTR pszTitle,
2902         LPCWSTR pszTypeOfUI,
2903         void *pvExtraData,
2904         ULONG cbExtraData,
2905         IUnknown *punkObject) = 0;
2906 
2907     virtual HRESULT STDMETHODCALLTYPE MatchesAttributes(
2908         LPCWSTR pszAttributes,
2909         WINBOOL *pfMatches) = 0;
2910 
2911 };
2912 #ifdef __CRT_UUID_DECL
2913 __CRT_UUID_DECL(ISpObjectToken, 0x14056589, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
2914 #endif
2915 #else
2916 typedef struct ISpObjectTokenVtbl {
2917     BEGIN_INTERFACE
2918 
2919     /*** IUnknown methods ***/
2920     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2921         ISpObjectToken* This,
2922         REFIID riid,
2923         void **ppvObject);
2924 
2925     ULONG (STDMETHODCALLTYPE *AddRef)(
2926         ISpObjectToken* This);
2927 
2928     ULONG (STDMETHODCALLTYPE *Release)(
2929         ISpObjectToken* This);
2930 
2931     /*** ISpDataKey methods ***/
2932     HRESULT (STDMETHODCALLTYPE *SetData)(
2933         ISpObjectToken* This,
2934         LPCWSTR pszValueName,
2935         ULONG cbData,
2936         const BYTE *pData);
2937 
2938     HRESULT (STDMETHODCALLTYPE *GetData)(
2939         ISpObjectToken* This,
2940         LPCWSTR pszValueName,
2941         ULONG *pcbData,
2942         BYTE *pData);
2943 
2944     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
2945         ISpObjectToken* This,
2946         LPCWSTR pszValueName,
2947         LPCWSTR pszValue);
2948 
2949     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
2950         ISpObjectToken* This,
2951         LPCWSTR pszValueName,
2952         LPWSTR *ppszValue);
2953 
2954     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
2955         ISpObjectToken* This,
2956         LPCWSTR pszValueName,
2957         DWORD dwValue);
2958 
2959     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
2960         ISpObjectToken* This,
2961         LPCWSTR pszValueName,
2962         DWORD *pdwValue);
2963 
2964     HRESULT (STDMETHODCALLTYPE *OpenKey)(
2965         ISpObjectToken* This,
2966         LPCWSTR pszSubKeyName,
2967         ISpDataKey **ppSubKey);
2968 
2969     HRESULT (STDMETHODCALLTYPE *CreateKey)(
2970         ISpObjectToken* This,
2971         LPCWSTR pszSubKey,
2972         ISpDataKey **ppSubKey);
2973 
2974     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
2975         ISpObjectToken* This,
2976         LPCWSTR pszSubKey);
2977 
2978     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
2979         ISpObjectToken* This,
2980         LPCWSTR pszValueName);
2981 
2982     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
2983         ISpObjectToken* This,
2984         ULONG Index,
2985         LPWSTR *ppszSubKeyName);
2986 
2987     HRESULT (STDMETHODCALLTYPE *EnumValues)(
2988         ISpObjectToken* This,
2989         ULONG Index,
2990         LPWSTR *ppszValueName);
2991 
2992     /*** ISpObjectToken methods ***/
2993     HRESULT (STDMETHODCALLTYPE *SetId)(
2994         ISpObjectToken* This,
2995         LPCWSTR pszCategoryId,
2996         LPCWSTR pszTokenId,
2997         WINBOOL fCreateIfNotExist);
2998 
2999     HRESULT (STDMETHODCALLTYPE *GetId)(
3000         ISpObjectToken* This,
3001         LPWSTR *ppszCoMemTokenId);
3002 
3003     HRESULT (STDMETHODCALLTYPE *GetCategory)(
3004         ISpObjectToken* This,
3005         ISpObjectTokenCategory **ppTokenCategory);
3006 
3007     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
3008         ISpObjectToken* This,
3009         IUnknown *pUnkOuter,
3010         DWORD dwClsContext,
3011         REFIID riid,
3012         void **ppvObject);
3013 
3014     HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
3015         ISpObjectToken* This,
3016         REFCLSID clsidCaller,
3017         LPCWSTR pszValueName,
3018         LPCWSTR pszFileNameSpecifier,
3019         ULONG nFolder,
3020         LPWSTR *ppszFilePath);
3021 
3022     HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
3023         ISpObjectToken* This,
3024         REFCLSID clsidCaller,
3025         LPCWSTR pszKeyName,
3026         WINBOOL fDeleteFile);
3027 
3028     HRESULT (STDMETHODCALLTYPE *Remove)(
3029         ISpObjectToken* This,
3030         const CLSID *pclsidCaller);
3031 
3032     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
3033         ISpObjectToken* This,
3034         LPCWSTR pszTypeOfUI,
3035         void *pvExtraData,
3036         ULONG cbExtraData,
3037         IUnknown *punkObject,
3038         WINBOOL *pfSupported);
3039 
3040     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
3041         ISpObjectToken* This,
3042         HWND hwndParent,
3043         LPCWSTR pszTitle,
3044         LPCWSTR pszTypeOfUI,
3045         void *pvExtraData,
3046         ULONG cbExtraData,
3047         IUnknown *punkObject);
3048 
3049     HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
3050         ISpObjectToken* This,
3051         LPCWSTR pszAttributes,
3052         WINBOOL *pfMatches);
3053 
3054     END_INTERFACE
3055 } ISpObjectTokenVtbl;
3056 interface ISpObjectToken {
3057     CONST_VTBL ISpObjectTokenVtbl* lpVtbl;
3058 };
3059 
3060 #ifdef COBJMACROS
3061 #ifndef WIDL_C_INLINE_WRAPPERS
3062 /*** IUnknown methods ***/
3063 #define ISpObjectToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3064 #define ISpObjectToken_AddRef(This) (This)->lpVtbl->AddRef(This)
3065 #define ISpObjectToken_Release(This) (This)->lpVtbl->Release(This)
3066 /*** ISpDataKey methods ***/
3067 #define ISpObjectToken_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
3068 #define ISpObjectToken_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
3069 #define ISpObjectToken_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
3070 #define ISpObjectToken_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
3071 #define ISpObjectToken_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
3072 #define ISpObjectToken_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
3073 #define ISpObjectToken_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
3074 #define ISpObjectToken_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
3075 #define ISpObjectToken_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
3076 #define ISpObjectToken_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
3077 #define ISpObjectToken_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
3078 #define ISpObjectToken_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
3079 /*** ISpObjectToken methods ***/
3080 #define ISpObjectToken_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
3081 #define ISpObjectToken_GetId(This,ppszCoMemTokenId) (This)->lpVtbl->GetId(This,ppszCoMemTokenId)
3082 #define ISpObjectToken_GetCategory(This,ppTokenCategory) (This)->lpVtbl->GetCategory(This,ppTokenCategory)
3083 #define ISpObjectToken_CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
3084 #define ISpObjectToken_GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath) (This)->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
3085 #define ISpObjectToken_RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
3086 #define ISpObjectToken_Remove(This,pclsidCaller) (This)->lpVtbl->Remove(This,pclsidCaller)
3087 #define ISpObjectToken_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
3088 #define ISpObjectToken_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
3089 #define ISpObjectToken_MatchesAttributes(This,pszAttributes,pfMatches) (This)->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches)
3090 #else
3091 /*** IUnknown methods ***/
3092 static FORCEINLINE HRESULT ISpObjectToken_QueryInterface(ISpObjectToken* This,REFIID riid,void **ppvObject) {
3093     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3094 }
3095 static FORCEINLINE ULONG ISpObjectToken_AddRef(ISpObjectToken* This) {
3096     return This->lpVtbl->AddRef(This);
3097 }
3098 static FORCEINLINE ULONG ISpObjectToken_Release(ISpObjectToken* This) {
3099     return This->lpVtbl->Release(This);
3100 }
3101 /*** ISpDataKey methods ***/
3102 static FORCEINLINE HRESULT ISpObjectToken_SetData(ISpObjectToken* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
3103     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
3104 }
3105 static FORCEINLINE HRESULT ISpObjectToken_GetData(ISpObjectToken* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
3106     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
3107 }
3108 static FORCEINLINE HRESULT ISpObjectToken_SetStringValue(ISpObjectToken* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
3109     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
3110 }
3111 static FORCEINLINE HRESULT ISpObjectToken_GetStringValue(ISpObjectToken* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
3112     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
3113 }
3114 static FORCEINLINE HRESULT ISpObjectToken_SetDWORD(ISpObjectToken* This,LPCWSTR pszValueName,DWORD dwValue) {
3115     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
3116 }
3117 static FORCEINLINE HRESULT ISpObjectToken_GetDWORD(ISpObjectToken* This,LPCWSTR pszValueName,DWORD *pdwValue) {
3118     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
3119 }
3120 static FORCEINLINE HRESULT ISpObjectToken_OpenKey(ISpObjectToken* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
3121     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
3122 }
3123 static FORCEINLINE HRESULT ISpObjectToken_CreateKey(ISpObjectToken* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
3124     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
3125 }
3126 static FORCEINLINE HRESULT ISpObjectToken_DeleteKey(ISpObjectToken* This,LPCWSTR pszSubKey) {
3127     return This->lpVtbl->DeleteKey(This,pszSubKey);
3128 }
3129 static FORCEINLINE HRESULT ISpObjectToken_DeleteValue(ISpObjectToken* This,LPCWSTR pszValueName) {
3130     return This->lpVtbl->DeleteValue(This,pszValueName);
3131 }
3132 static FORCEINLINE HRESULT ISpObjectToken_EnumKeys(ISpObjectToken* This,ULONG Index,LPWSTR *ppszSubKeyName) {
3133     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
3134 }
3135 static FORCEINLINE HRESULT ISpObjectToken_EnumValues(ISpObjectToken* This,ULONG Index,LPWSTR *ppszValueName) {
3136     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
3137 }
3138 /*** ISpObjectToken methods ***/
3139 static FORCEINLINE HRESULT ISpObjectToken_SetId(ISpObjectToken* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,WINBOOL fCreateIfNotExist) {
3140     return This->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist);
3141 }
3142 static FORCEINLINE HRESULT ISpObjectToken_GetId(ISpObjectToken* This,LPWSTR *ppszCoMemTokenId) {
3143     return This->lpVtbl->GetId(This,ppszCoMemTokenId);
3144 }
3145 static FORCEINLINE HRESULT ISpObjectToken_GetCategory(ISpObjectToken* This,ISpObjectTokenCategory **ppTokenCategory) {
3146     return This->lpVtbl->GetCategory(This,ppTokenCategory);
3147 }
3148 static FORCEINLINE HRESULT ISpObjectToken_CreateInstance(ISpObjectToken* This,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,void **ppvObject) {
3149     return This->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject);
3150 }
3151 static FORCEINLINE HRESULT ISpObjectToken_GetStorageFileName(ISpObjectToken* This,REFCLSID clsidCaller,LPCWSTR pszValueName,LPCWSTR pszFileNameSpecifier,ULONG nFolder,LPWSTR *ppszFilePath) {
3152     return This->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath);
3153 }
3154 static FORCEINLINE HRESULT ISpObjectToken_RemoveStorageFileName(ISpObjectToken* This,REFCLSID clsidCaller,LPCWSTR pszKeyName,WINBOOL fDeleteFile) {
3155     return This->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile);
3156 }
3157 static FORCEINLINE HRESULT ISpObjectToken_Remove(ISpObjectToken* This,const CLSID *pclsidCaller) {
3158     return This->lpVtbl->Remove(This,pclsidCaller);
3159 }
3160 static FORCEINLINE HRESULT ISpObjectToken_IsUISupported(ISpObjectToken* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject,WINBOOL *pfSupported) {
3161     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported);
3162 }
3163 static FORCEINLINE HRESULT ISpObjectToken_DisplayUI(ISpObjectToken* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject) {
3164     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject);
3165 }
3166 static FORCEINLINE HRESULT ISpObjectToken_MatchesAttributes(ISpObjectToken* This,LPCWSTR pszAttributes,WINBOOL *pfMatches) {
3167     return This->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches);
3168 }
3169 #endif
3170 #endif
3171 
3172 #endif
3173 
3174 HRESULT STDMETHODCALLTYPE ISpObjectToken_SetId_Proxy(
3175     ISpObjectToken* This,
3176     LPCWSTR pszCategoryId,
3177     LPCWSTR pszTokenId,
3178     WINBOOL fCreateIfNotExist);
3179 void __RPC_STUB ISpObjectToken_SetId_Stub(
3180     IRpcStubBuffer* This,
3181     IRpcChannelBuffer* pRpcChannelBuffer,
3182     PRPC_MESSAGE pRpcMessage,
3183     DWORD* pdwStubPhase);
3184 HRESULT STDMETHODCALLTYPE ISpObjectToken_GetId_Proxy(
3185     ISpObjectToken* This,
3186     LPWSTR *ppszCoMemTokenId);
3187 void __RPC_STUB ISpObjectToken_GetId_Stub(
3188     IRpcStubBuffer* This,
3189     IRpcChannelBuffer* pRpcChannelBuffer,
3190     PRPC_MESSAGE pRpcMessage,
3191     DWORD* pdwStubPhase);
3192 HRESULT STDMETHODCALLTYPE ISpObjectToken_GetCategory_Proxy(
3193     ISpObjectToken* This,
3194     ISpObjectTokenCategory **ppTokenCategory);
3195 void __RPC_STUB ISpObjectToken_GetCategory_Stub(
3196     IRpcStubBuffer* This,
3197     IRpcChannelBuffer* pRpcChannelBuffer,
3198     PRPC_MESSAGE pRpcMessage,
3199     DWORD* pdwStubPhase);
3200 HRESULT STDMETHODCALLTYPE ISpObjectToken_CreateInstance_Proxy(
3201     ISpObjectToken* This,
3202     IUnknown *pUnkOuter,
3203     DWORD dwClsContext,
3204     REFIID riid,
3205     void **ppvObject);
3206 void __RPC_STUB ISpObjectToken_CreateInstance_Stub(
3207     IRpcStubBuffer* This,
3208     IRpcChannelBuffer* pRpcChannelBuffer,
3209     PRPC_MESSAGE pRpcMessage,
3210     DWORD* pdwStubPhase);
3211 HRESULT STDMETHODCALLTYPE ISpObjectToken_GetStorageFileName_Proxy(
3212     ISpObjectToken* This,
3213     REFCLSID clsidCaller,
3214     LPCWSTR pszValueName,
3215     LPCWSTR pszFileNameSpecifier,
3216     ULONG nFolder,
3217     LPWSTR *ppszFilePath);
3218 void __RPC_STUB ISpObjectToken_GetStorageFileName_Stub(
3219     IRpcStubBuffer* This,
3220     IRpcChannelBuffer* pRpcChannelBuffer,
3221     PRPC_MESSAGE pRpcMessage,
3222     DWORD* pdwStubPhase);
3223 HRESULT STDMETHODCALLTYPE ISpObjectToken_RemoveStorageFileName_Proxy(
3224     ISpObjectToken* This,
3225     REFCLSID clsidCaller,
3226     LPCWSTR pszKeyName,
3227     WINBOOL fDeleteFile);
3228 void __RPC_STUB ISpObjectToken_RemoveStorageFileName_Stub(
3229     IRpcStubBuffer* This,
3230     IRpcChannelBuffer* pRpcChannelBuffer,
3231     PRPC_MESSAGE pRpcMessage,
3232     DWORD* pdwStubPhase);
3233 HRESULT STDMETHODCALLTYPE ISpObjectToken_Remove_Proxy(
3234     ISpObjectToken* This,
3235     const CLSID *pclsidCaller);
3236 void __RPC_STUB ISpObjectToken_Remove_Stub(
3237     IRpcStubBuffer* This,
3238     IRpcChannelBuffer* pRpcChannelBuffer,
3239     PRPC_MESSAGE pRpcMessage,
3240     DWORD* pdwStubPhase);
3241 HRESULT STDMETHODCALLTYPE ISpObjectToken_MatchesAttributes_Proxy(
3242     ISpObjectToken* This,
3243     LPCWSTR pszAttributes,
3244     WINBOOL *pfMatches);
3245 void __RPC_STUB ISpObjectToken_MatchesAttributes_Stub(
3246     IRpcStubBuffer* This,
3247     IRpcChannelBuffer* pRpcChannelBuffer,
3248     PRPC_MESSAGE pRpcMessage,
3249     DWORD* pdwStubPhase);
3250 
3251 #endif  /* __ISpObjectToken_INTERFACE_DEFINED__ */
3252 
3253 /*****************************************************************************
3254  * ISpObjectTokenInit interface
3255  */
3256 #ifndef __ISpObjectTokenInit_INTERFACE_DEFINED__
3257 #define __ISpObjectTokenInit_INTERFACE_DEFINED__
3258 
3259 DEFINE_GUID(IID_ISpObjectTokenInit, 0xb8aab0cf, 0x346f, 0x49d8, 0x94,0x99, 0xc8,0xb0,0x3f,0x16,0x1d,0x51);
3260 #if defined(__cplusplus) && !defined(CINTERFACE)
3261 MIDL_INTERFACE("b8aab0cf-346f-49d8-9499-c8b03f161d51")
3262 ISpObjectTokenInit : public ISpObjectToken
3263 {
3264     virtual HRESULT STDMETHODCALLTYPE InitFromDataKey(
3265         LPCWSTR pszCategoryId,
3266         LPCWSTR pszTokenId,
3267         ISpDataKey *pDataKey) = 0;
3268 
3269 };
3270 #ifdef __CRT_UUID_DECL
3271 __CRT_UUID_DECL(ISpObjectTokenInit, 0xb8aab0cf, 0x346f, 0x49d8, 0x94,0x99, 0xc8,0xb0,0x3f,0x16,0x1d,0x51)
3272 #endif
3273 #else
3274 typedef struct ISpObjectTokenInitVtbl {
3275     BEGIN_INTERFACE
3276 
3277     /*** IUnknown methods ***/
3278     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3279         ISpObjectTokenInit* This,
3280         REFIID riid,
3281         void **ppvObject);
3282 
3283     ULONG (STDMETHODCALLTYPE *AddRef)(
3284         ISpObjectTokenInit* This);
3285 
3286     ULONG (STDMETHODCALLTYPE *Release)(
3287         ISpObjectTokenInit* This);
3288 
3289     /*** ISpDataKey methods ***/
3290     HRESULT (STDMETHODCALLTYPE *SetData)(
3291         ISpObjectTokenInit* This,
3292         LPCWSTR pszValueName,
3293         ULONG cbData,
3294         const BYTE *pData);
3295 
3296     HRESULT (STDMETHODCALLTYPE *GetData)(
3297         ISpObjectTokenInit* This,
3298         LPCWSTR pszValueName,
3299         ULONG *pcbData,
3300         BYTE *pData);
3301 
3302     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
3303         ISpObjectTokenInit* This,
3304         LPCWSTR pszValueName,
3305         LPCWSTR pszValue);
3306 
3307     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
3308         ISpObjectTokenInit* This,
3309         LPCWSTR pszValueName,
3310         LPWSTR *ppszValue);
3311 
3312     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
3313         ISpObjectTokenInit* This,
3314         LPCWSTR pszValueName,
3315         DWORD dwValue);
3316 
3317     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
3318         ISpObjectTokenInit* This,
3319         LPCWSTR pszValueName,
3320         DWORD *pdwValue);
3321 
3322     HRESULT (STDMETHODCALLTYPE *OpenKey)(
3323         ISpObjectTokenInit* This,
3324         LPCWSTR pszSubKeyName,
3325         ISpDataKey **ppSubKey);
3326 
3327     HRESULT (STDMETHODCALLTYPE *CreateKey)(
3328         ISpObjectTokenInit* This,
3329         LPCWSTR pszSubKey,
3330         ISpDataKey **ppSubKey);
3331 
3332     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
3333         ISpObjectTokenInit* This,
3334         LPCWSTR pszSubKey);
3335 
3336     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
3337         ISpObjectTokenInit* This,
3338         LPCWSTR pszValueName);
3339 
3340     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
3341         ISpObjectTokenInit* This,
3342         ULONG Index,
3343         LPWSTR *ppszSubKeyName);
3344 
3345     HRESULT (STDMETHODCALLTYPE *EnumValues)(
3346         ISpObjectTokenInit* This,
3347         ULONG Index,
3348         LPWSTR *ppszValueName);
3349 
3350     /*** ISpObjectToken methods ***/
3351     HRESULT (STDMETHODCALLTYPE *SetId)(
3352         ISpObjectTokenInit* This,
3353         LPCWSTR pszCategoryId,
3354         LPCWSTR pszTokenId,
3355         WINBOOL fCreateIfNotExist);
3356 
3357     HRESULT (STDMETHODCALLTYPE *GetId)(
3358         ISpObjectTokenInit* This,
3359         LPWSTR *ppszCoMemTokenId);
3360 
3361     HRESULT (STDMETHODCALLTYPE *GetCategory)(
3362         ISpObjectTokenInit* This,
3363         ISpObjectTokenCategory **ppTokenCategory);
3364 
3365     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
3366         ISpObjectTokenInit* This,
3367         IUnknown *pUnkOuter,
3368         DWORD dwClsContext,
3369         REFIID riid,
3370         void **ppvObject);
3371 
3372     HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
3373         ISpObjectTokenInit* This,
3374         REFCLSID clsidCaller,
3375         LPCWSTR pszValueName,
3376         LPCWSTR pszFileNameSpecifier,
3377         ULONG nFolder,
3378         LPWSTR *ppszFilePath);
3379 
3380     HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
3381         ISpObjectTokenInit* This,
3382         REFCLSID clsidCaller,
3383         LPCWSTR pszKeyName,
3384         WINBOOL fDeleteFile);
3385 
3386     HRESULT (STDMETHODCALLTYPE *Remove)(
3387         ISpObjectTokenInit* This,
3388         const CLSID *pclsidCaller);
3389 
3390     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
3391         ISpObjectTokenInit* This,
3392         LPCWSTR pszTypeOfUI,
3393         void *pvExtraData,
3394         ULONG cbExtraData,
3395         IUnknown *punkObject,
3396         WINBOOL *pfSupported);
3397 
3398     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
3399         ISpObjectTokenInit* This,
3400         HWND hwndParent,
3401         LPCWSTR pszTitle,
3402         LPCWSTR pszTypeOfUI,
3403         void *pvExtraData,
3404         ULONG cbExtraData,
3405         IUnknown *punkObject);
3406 
3407     HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
3408         ISpObjectTokenInit* This,
3409         LPCWSTR pszAttributes,
3410         WINBOOL *pfMatches);
3411 
3412     /*** ISpObjectTokenInit methods ***/
3413     HRESULT (STDMETHODCALLTYPE *InitFromDataKey)(
3414         ISpObjectTokenInit* This,
3415         LPCWSTR pszCategoryId,
3416         LPCWSTR pszTokenId,
3417         ISpDataKey *pDataKey);
3418 
3419     END_INTERFACE
3420 } ISpObjectTokenInitVtbl;
3421 interface ISpObjectTokenInit {
3422     CONST_VTBL ISpObjectTokenInitVtbl* lpVtbl;
3423 };
3424 
3425 #ifdef COBJMACROS
3426 #ifndef WIDL_C_INLINE_WRAPPERS
3427 /*** IUnknown methods ***/
3428 #define ISpObjectTokenInit_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3429 #define ISpObjectTokenInit_AddRef(This) (This)->lpVtbl->AddRef(This)
3430 #define ISpObjectTokenInit_Release(This) (This)->lpVtbl->Release(This)
3431 /*** ISpDataKey methods ***/
3432 #define ISpObjectTokenInit_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
3433 #define ISpObjectTokenInit_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
3434 #define ISpObjectTokenInit_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
3435 #define ISpObjectTokenInit_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
3436 #define ISpObjectTokenInit_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
3437 #define ISpObjectTokenInit_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
3438 #define ISpObjectTokenInit_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
3439 #define ISpObjectTokenInit_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
3440 #define ISpObjectTokenInit_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
3441 #define ISpObjectTokenInit_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
3442 #define ISpObjectTokenInit_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
3443 #define ISpObjectTokenInit_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
3444 /*** ISpObjectToken methods ***/
3445 #define ISpObjectTokenInit_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
3446 #define ISpObjectTokenInit_GetId(This,ppszCoMemTokenId) (This)->lpVtbl->GetId(This,ppszCoMemTokenId)
3447 #define ISpObjectTokenInit_GetCategory(This,ppTokenCategory) (This)->lpVtbl->GetCategory(This,ppTokenCategory)
3448 #define ISpObjectTokenInit_CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
3449 #define ISpObjectTokenInit_GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath) (This)->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
3450 #define ISpObjectTokenInit_RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
3451 #define ISpObjectTokenInit_Remove(This,pclsidCaller) (This)->lpVtbl->Remove(This,pclsidCaller)
3452 #define ISpObjectTokenInit_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
3453 #define ISpObjectTokenInit_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
3454 #define ISpObjectTokenInit_MatchesAttributes(This,pszAttributes,pfMatches) (This)->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches)
3455 /*** ISpObjectTokenInit methods ***/
3456 #define ISpObjectTokenInit_InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey) (This)->lpVtbl->InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey)
3457 #else
3458 /*** IUnknown methods ***/
3459 static FORCEINLINE HRESULT ISpObjectTokenInit_QueryInterface(ISpObjectTokenInit* This,REFIID riid,void **ppvObject) {
3460     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3461 }
3462 static FORCEINLINE ULONG ISpObjectTokenInit_AddRef(ISpObjectTokenInit* This) {
3463     return This->lpVtbl->AddRef(This);
3464 }
3465 static FORCEINLINE ULONG ISpObjectTokenInit_Release(ISpObjectTokenInit* This) {
3466     return This->lpVtbl->Release(This);
3467 }
3468 /*** ISpDataKey methods ***/
3469 static FORCEINLINE HRESULT ISpObjectTokenInit_SetData(ISpObjectTokenInit* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
3470     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
3471 }
3472 static FORCEINLINE HRESULT ISpObjectTokenInit_GetData(ISpObjectTokenInit* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
3473     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
3474 }
3475 static FORCEINLINE HRESULT ISpObjectTokenInit_SetStringValue(ISpObjectTokenInit* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
3476     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
3477 }
3478 static FORCEINLINE HRESULT ISpObjectTokenInit_GetStringValue(ISpObjectTokenInit* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
3479     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
3480 }
3481 static FORCEINLINE HRESULT ISpObjectTokenInit_SetDWORD(ISpObjectTokenInit* This,LPCWSTR pszValueName,DWORD dwValue) {
3482     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
3483 }
3484 static FORCEINLINE HRESULT ISpObjectTokenInit_GetDWORD(ISpObjectTokenInit* This,LPCWSTR pszValueName,DWORD *pdwValue) {
3485     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
3486 }
3487 static FORCEINLINE HRESULT ISpObjectTokenInit_OpenKey(ISpObjectTokenInit* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
3488     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
3489 }
3490 static FORCEINLINE HRESULT ISpObjectTokenInit_CreateKey(ISpObjectTokenInit* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
3491     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
3492 }
3493 static FORCEINLINE HRESULT ISpObjectTokenInit_DeleteKey(ISpObjectTokenInit* This,LPCWSTR pszSubKey) {
3494     return This->lpVtbl->DeleteKey(This,pszSubKey);
3495 }
3496 static FORCEINLINE HRESULT ISpObjectTokenInit_DeleteValue(ISpObjectTokenInit* This,LPCWSTR pszValueName) {
3497     return This->lpVtbl->DeleteValue(This,pszValueName);
3498 }
3499 static FORCEINLINE HRESULT ISpObjectTokenInit_EnumKeys(ISpObjectTokenInit* This,ULONG Index,LPWSTR *ppszSubKeyName) {
3500     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
3501 }
3502 static FORCEINLINE HRESULT ISpObjectTokenInit_EnumValues(ISpObjectTokenInit* This,ULONG Index,LPWSTR *ppszValueName) {
3503     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
3504 }
3505 /*** ISpObjectToken methods ***/
3506 static FORCEINLINE HRESULT ISpObjectTokenInit_SetId(ISpObjectTokenInit* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,WINBOOL fCreateIfNotExist) {
3507     return This->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist);
3508 }
3509 static FORCEINLINE HRESULT ISpObjectTokenInit_GetId(ISpObjectTokenInit* This,LPWSTR *ppszCoMemTokenId) {
3510     return This->lpVtbl->GetId(This,ppszCoMemTokenId);
3511 }
3512 static FORCEINLINE HRESULT ISpObjectTokenInit_GetCategory(ISpObjectTokenInit* This,ISpObjectTokenCategory **ppTokenCategory) {
3513     return This->lpVtbl->GetCategory(This,ppTokenCategory);
3514 }
3515 static FORCEINLINE HRESULT ISpObjectTokenInit_CreateInstance(ISpObjectTokenInit* This,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,void **ppvObject) {
3516     return This->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject);
3517 }
3518 static FORCEINLINE HRESULT ISpObjectTokenInit_GetStorageFileName(ISpObjectTokenInit* This,REFCLSID clsidCaller,LPCWSTR pszValueName,LPCWSTR pszFileNameSpecifier,ULONG nFolder,LPWSTR *ppszFilePath) {
3519     return This->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath);
3520 }
3521 static FORCEINLINE HRESULT ISpObjectTokenInit_RemoveStorageFileName(ISpObjectTokenInit* This,REFCLSID clsidCaller,LPCWSTR pszKeyName,WINBOOL fDeleteFile) {
3522     return This->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile);
3523 }
3524 static FORCEINLINE HRESULT ISpObjectTokenInit_Remove(ISpObjectTokenInit* This,const CLSID *pclsidCaller) {
3525     return This->lpVtbl->Remove(This,pclsidCaller);
3526 }
3527 static FORCEINLINE HRESULT ISpObjectTokenInit_IsUISupported(ISpObjectTokenInit* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject,WINBOOL *pfSupported) {
3528     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported);
3529 }
3530 static FORCEINLINE HRESULT ISpObjectTokenInit_DisplayUI(ISpObjectTokenInit* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject) {
3531     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject);
3532 }
3533 static FORCEINLINE HRESULT ISpObjectTokenInit_MatchesAttributes(ISpObjectTokenInit* This,LPCWSTR pszAttributes,WINBOOL *pfMatches) {
3534     return This->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches);
3535 }
3536 /*** ISpObjectTokenInit methods ***/
3537 static FORCEINLINE HRESULT ISpObjectTokenInit_InitFromDataKey(ISpObjectTokenInit* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,ISpDataKey *pDataKey) {
3538     return This->lpVtbl->InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey);
3539 }
3540 #endif
3541 #endif
3542 
3543 #endif
3544 
3545 HRESULT STDMETHODCALLTYPE ISpObjectTokenInit_InitFromDataKey_Proxy(
3546     ISpObjectTokenInit* This,
3547     LPCWSTR pszCategoryId,
3548     LPCWSTR pszTokenId,
3549     ISpDataKey *pDataKey);
3550 void __RPC_STUB ISpObjectTokenInit_InitFromDataKey_Stub(
3551     IRpcStubBuffer* This,
3552     IRpcChannelBuffer* pRpcChannelBuffer,
3553     PRPC_MESSAGE pRpcMessage,
3554     DWORD* pdwStubPhase);
3555 
3556 #endif  /* __ISpObjectTokenInit_INTERFACE_DEFINED__ */
3557 
3558 /*****************************************************************************
3559  * ISpResourceManager interface
3560  */
3561 #ifndef __ISpResourceManager_INTERFACE_DEFINED__
3562 #define __ISpResourceManager_INTERFACE_DEFINED__
3563 
3564 DEFINE_GUID(IID_ISpResourceManager, 0x93384e18, 0x5014, 0x43d5, 0xad,0xbb, 0xa7,0x8e,0x05,0x59,0x26,0xbd);
3565 #if defined(__cplusplus) && !defined(CINTERFACE)
3566 MIDL_INTERFACE("93384e18-5014-43d5-adbb-a78e055926bd")
3567 ISpResourceManager : public IServiceProvider
3568 {
3569     virtual HRESULT STDMETHODCALLTYPE SetObject(
3570         REFGUID guidServiceId,
3571         IUnknown *pUnkObject) = 0;
3572 
3573     virtual HRESULT STDMETHODCALLTYPE GetObject(
3574         REFGUID guidServiceId,
3575         REFCLSID ObjectCLSID,
3576         REFIID ObjectIID,
3577         WINBOOL fReleaseWhenLastExternalRefReleased,
3578         void **ppObject) = 0;
3579 
3580 };
3581 #ifdef __CRT_UUID_DECL
3582 __CRT_UUID_DECL(ISpResourceManager, 0x93384e18, 0x5014, 0x43d5, 0xad,0xbb, 0xa7,0x8e,0x05,0x59,0x26,0xbd)
3583 #endif
3584 #else
3585 typedef struct ISpResourceManagerVtbl {
3586     BEGIN_INTERFACE
3587 
3588     /*** IUnknown methods ***/
3589     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3590         ISpResourceManager* This,
3591         REFIID riid,
3592         void **ppvObject);
3593 
3594     ULONG (STDMETHODCALLTYPE *AddRef)(
3595         ISpResourceManager* This);
3596 
3597     ULONG (STDMETHODCALLTYPE *Release)(
3598         ISpResourceManager* This);
3599 
3600     /*** IServiceProvider methods ***/
3601     HRESULT (STDMETHODCALLTYPE *QueryService)(
3602         ISpResourceManager* This,
3603         REFGUID guidService,
3604         REFIID riid,
3605         void **ppvObject);
3606 
3607     /*** ISpResourceManager methods ***/
3608     HRESULT (STDMETHODCALLTYPE *SetObject)(
3609         ISpResourceManager* This,
3610         REFGUID guidServiceId,
3611         IUnknown *pUnkObject);
3612 
3613     HRESULT (STDMETHODCALLTYPE *GetObject)(
3614         ISpResourceManager* This,
3615         REFGUID guidServiceId,
3616         REFCLSID ObjectCLSID,
3617         REFIID ObjectIID,
3618         WINBOOL fReleaseWhenLastExternalRefReleased,
3619         void **ppObject);
3620 
3621     END_INTERFACE
3622 } ISpResourceManagerVtbl;
3623 interface ISpResourceManager {
3624     CONST_VTBL ISpResourceManagerVtbl* lpVtbl;
3625 };
3626 
3627 #ifdef COBJMACROS
3628 #ifndef WIDL_C_INLINE_WRAPPERS
3629 /*** IUnknown methods ***/
3630 #define ISpResourceManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3631 #define ISpResourceManager_AddRef(This) (This)->lpVtbl->AddRef(This)
3632 #define ISpResourceManager_Release(This) (This)->lpVtbl->Release(This)
3633 /*** IServiceProvider methods ***/
3634 #define ISpResourceManager_QueryService(This,guidService,riid,ppvObject) (This)->lpVtbl->QueryService(This,guidService,riid,ppvObject)
3635 /*** ISpResourceManager methods ***/
3636 #define ISpResourceManager_SetObject(This,guidServiceId,pUnkObject) (This)->lpVtbl->SetObject(This,guidServiceId,pUnkObject)
3637 #define ISpResourceManager_GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject) (This)->lpVtbl->GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject)
3638 #else
3639 /*** IUnknown methods ***/
3640 static FORCEINLINE HRESULT ISpResourceManager_QueryInterface(ISpResourceManager* This,REFIID riid,void **ppvObject) {
3641     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3642 }
3643 static FORCEINLINE ULONG ISpResourceManager_AddRef(ISpResourceManager* This) {
3644     return This->lpVtbl->AddRef(This);
3645 }
3646 static FORCEINLINE ULONG ISpResourceManager_Release(ISpResourceManager* This) {
3647     return This->lpVtbl->Release(This);
3648 }
3649 /*** IServiceProvider methods ***/
3650 static FORCEINLINE HRESULT ISpResourceManager_QueryService(ISpResourceManager* This,REFGUID guidService,REFIID riid,void **ppvObject) {
3651     return This->lpVtbl->QueryService(This,guidService,riid,ppvObject);
3652 }
3653 /*** ISpResourceManager methods ***/
3654 static FORCEINLINE HRESULT ISpResourceManager_SetObject(ISpResourceManager* This,REFGUID guidServiceId,IUnknown *pUnkObject) {
3655     return This->lpVtbl->SetObject(This,guidServiceId,pUnkObject);
3656 }
3657 static FORCEINLINE HRESULT ISpResourceManager_GetObject(ISpResourceManager* This,REFGUID guidServiceId,REFCLSID ObjectCLSID,REFIID ObjectIID,WINBOOL fReleaseWhenLastExternalRefReleased,void **ppObject) {
3658     return This->lpVtbl->GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject);
3659 }
3660 #endif
3661 #endif
3662 
3663 #endif
3664 
3665 HRESULT STDMETHODCALLTYPE ISpResourceManager_SetObject_Proxy(
3666     ISpResourceManager* This,
3667     REFGUID guidServiceId,
3668     IUnknown *pUnkObject);
3669 void __RPC_STUB ISpResourceManager_SetObject_Stub(
3670     IRpcStubBuffer* This,
3671     IRpcChannelBuffer* pRpcChannelBuffer,
3672     PRPC_MESSAGE pRpcMessage,
3673     DWORD* pdwStubPhase);
3674 HRESULT STDMETHODCALLTYPE ISpResourceManager_GetObject_Proxy(
3675     ISpResourceManager* This,
3676     REFGUID guidServiceId,
3677     REFCLSID ObjectCLSID,
3678     REFIID ObjectIID,
3679     WINBOOL fReleaseWhenLastExternalRefReleased,
3680     void **ppObject);
3681 void __RPC_STUB ISpResourceManager_GetObject_Stub(
3682     IRpcStubBuffer* This,
3683     IRpcChannelBuffer* pRpcChannelBuffer,
3684     PRPC_MESSAGE pRpcMessage,
3685     DWORD* pdwStubPhase);
3686 
3687 #endif  /* __ISpResourceManager_INTERFACE_DEFINED__ */
3688 
3689 #if 0
3690 typedef struct SPEVENT {
3691     WORD eEventId;
3692     WORD elParamType;
3693     ULONG ulStreamNum;
3694     ULONGLONG ullAudioStreamOffset;
3695     WPARAM wParam;
3696     LPARAM lParam;
3697 } SPEVENT;
3698 typedef struct SPSERIALIZEDEVENT {
3699     WORD eEventId;
3700     WORD elParamType;
3701     ULONG ulStreamNum;
3702     ULONGLONG ullAudioStreamOffset;
3703     ULONG SerializedwParam;
3704     LONG SerializedlParam;
3705 } SPSERIALIZEDEVENT;
3706 typedef struct SPSERIALIZEDEVENT64 {
3707     WORD eEventId;
3708     WORD elParamType;
3709     ULONG ulStreamNum;
3710     ULONGLONG ullAudioStreamOffset;
3711     ULONGLONG SerializedwParam;
3712     LONGLONG SerializedlParam;
3713 } SPSERIALIZEDEVENT64;
3714 #else
3715 typedef struct SPEVENT {
3716   SPEVENTENUM eEventId : 16;
3717   SPEVENTLPARAMTYPE elParamType : 16;
3718   ULONG ulStreamNum;
3719   ULONGLONG ullAudioStreamOffset;
3720   WPARAM      wParam;
3721   LPARAM      lParam;
3722 } SPEVENT;
3723 
3724 typedef struct SPSERIALIZEDEVENT {
3725   SPEVENTENUM eEventId : 16;
3726   SPEVENTLPARAMTYPE elParamType : 16;
3727   ULONG ulStreamNum;
3728   ULONGLONG ullAudioStreamOffset;
3729   ULONG SerializedwParam;
3730   LONG SerializedlParam;
3731 } SPSERIALIZEDEVENT;
3732 
3733 typedef struct SPSERIALIZEDEVENT64 {
3734   SPEVENTENUM eEventId : 16;
3735   SPEVENTLPARAMTYPE elParamType : 16;
3736   ULONG ulStreamNum;
3737   ULONGLONG ullAudioStreamOffset;
3738   ULONGLONG SerializedwParam;
3739   LONGLONG SerializedlParam;
3740 } SPSERIALIZEDEVENT64;
3741 #endif
3742 #if 0
3743 typedef struct SPEVENTEX {
3744     WORD eEventId;
3745     WORD elParamType;
3746     ULONG ulStreamNum;
3747     ULONGLONG ullAudioStreamOffset;
3748     WPARAM wParam;
3749     LPARAM lParam;
3750     ULONGLONG ullAudioTimeOffset;
3751 } SPEVENTEX;
3752 #else
3753 typedef struct SPEVENTEX {
3754   SPEVENTENUM eEventId : 16;
3755   SPEVENTLPARAMTYPE elParamType : 16;
3756   ULONG ulStreamNum;
3757   ULONGLONG ullAudioStreamOffset;
3758   WPARAM wParam;
3759   LPARAM lParam;
3760   ULONGLONG ullAudioTimeOffset;
3761 } SPEVENTEX;
3762 #endif
3763 typedef struct SPEVENTSOURCEINFO {
3764     ULONGLONG ullEventInterest;
3765     ULONGLONG ullQueuedInterest;
3766     ULONG ulCount;
3767 } SPEVENTSOURCEINFO;
3768 /*****************************************************************************
3769  * ISpEventSource interface
3770  */
3771 #ifndef __ISpEventSource_INTERFACE_DEFINED__
3772 #define __ISpEventSource_INTERFACE_DEFINED__
3773 
3774 DEFINE_GUID(IID_ISpEventSource, 0xbe7a9cce, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
3775 #if defined(__cplusplus) && !defined(CINTERFACE)
3776 MIDL_INTERFACE("be7a9cce-5f9e-11d2-960f-00c04f8ee628")
3777 ISpEventSource : public ISpNotifySource
3778 {
3779     virtual HRESULT STDMETHODCALLTYPE SetInterest(
3780         ULONGLONG ullEventInterest,
3781         ULONGLONG ullQueuedInterest) = 0;
3782 
3783     virtual HRESULT STDMETHODCALLTYPE GetEvents(
3784         ULONG ulCount,
3785         SPEVENT *pEventArray,
3786         ULONG *pulFetched) = 0;
3787 
3788     virtual HRESULT STDMETHODCALLTYPE GetInfo(
3789         SPEVENTSOURCEINFO *pInfo) = 0;
3790 
3791 };
3792 #ifdef __CRT_UUID_DECL
3793 __CRT_UUID_DECL(ISpEventSource, 0xbe7a9cce, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
3794 #endif
3795 #else
3796 typedef struct ISpEventSourceVtbl {
3797     BEGIN_INTERFACE
3798 
3799     /*** IUnknown methods ***/
3800     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3801         ISpEventSource* This,
3802         REFIID riid,
3803         void **ppvObject);
3804 
3805     ULONG (STDMETHODCALLTYPE *AddRef)(
3806         ISpEventSource* This);
3807 
3808     ULONG (STDMETHODCALLTYPE *Release)(
3809         ISpEventSource* This);
3810 
3811     /*** ISpNotifySource methods ***/
3812     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
3813         ISpEventSource* This,
3814         ISpNotifySink *pNotifySink);
3815 
3816     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
3817         ISpEventSource* This,
3818         HWND hWnd,
3819         UINT Msg,
3820         WPARAM wParam,
3821         LPARAM lParam);
3822 
3823     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
3824         ISpEventSource* This,
3825         SPNOTIFYCALLBACK *pfnCallback,
3826         WPARAM wParam,
3827         LPARAM lParam);
3828 
3829     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
3830         ISpEventSource* This,
3831         ISpNotifyCallback *pSpCallback,
3832         WPARAM wParam,
3833         LPARAM lParam);
3834 
3835     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
3836         ISpEventSource* This);
3837 
3838     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
3839         ISpEventSource* This,
3840         DWORD dwMilliseconds);
3841 
3842     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
3843         ISpEventSource* This);
3844 
3845     /*** ISpEventSource methods ***/
3846     HRESULT (STDMETHODCALLTYPE *SetInterest)(
3847         ISpEventSource* This,
3848         ULONGLONG ullEventInterest,
3849         ULONGLONG ullQueuedInterest);
3850 
3851     HRESULT (STDMETHODCALLTYPE *GetEvents)(
3852         ISpEventSource* This,
3853         ULONG ulCount,
3854         SPEVENT *pEventArray,
3855         ULONG *pulFetched);
3856 
3857     HRESULT (STDMETHODCALLTYPE *GetInfo)(
3858         ISpEventSource* This,
3859         SPEVENTSOURCEINFO *pInfo);
3860 
3861     END_INTERFACE
3862 } ISpEventSourceVtbl;
3863 interface ISpEventSource {
3864     CONST_VTBL ISpEventSourceVtbl* lpVtbl;
3865 };
3866 
3867 #ifdef COBJMACROS
3868 #ifndef WIDL_C_INLINE_WRAPPERS
3869 /*** IUnknown methods ***/
3870 #define ISpEventSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3871 #define ISpEventSource_AddRef(This) (This)->lpVtbl->AddRef(This)
3872 #define ISpEventSource_Release(This) (This)->lpVtbl->Release(This)
3873 /*** ISpNotifySource methods ***/
3874 #define ISpEventSource_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
3875 #define ISpEventSource_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
3876 #define ISpEventSource_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
3877 #define ISpEventSource_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
3878 #define ISpEventSource_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
3879 #define ISpEventSource_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
3880 #define ISpEventSource_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
3881 /*** ISpEventSource methods ***/
3882 #define ISpEventSource_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
3883 #define ISpEventSource_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
3884 #define ISpEventSource_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
3885 #else
3886 /*** IUnknown methods ***/
3887 static FORCEINLINE HRESULT ISpEventSource_QueryInterface(ISpEventSource* This,REFIID riid,void **ppvObject) {
3888     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3889 }
3890 static FORCEINLINE ULONG ISpEventSource_AddRef(ISpEventSource* This) {
3891     return This->lpVtbl->AddRef(This);
3892 }
3893 static FORCEINLINE ULONG ISpEventSource_Release(ISpEventSource* This) {
3894     return This->lpVtbl->Release(This);
3895 }
3896 /*** ISpNotifySource methods ***/
3897 static FORCEINLINE HRESULT ISpEventSource_SetNotifySink(ISpEventSource* This,ISpNotifySink *pNotifySink) {
3898     return This->lpVtbl->SetNotifySink(This,pNotifySink);
3899 }
3900 static FORCEINLINE HRESULT ISpEventSource_SetNotifyWindowMessage(ISpEventSource* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
3901     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
3902 }
3903 static FORCEINLINE HRESULT ISpEventSource_SetNotifyCallbackFunction(ISpEventSource* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
3904     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
3905 }
3906 static FORCEINLINE HRESULT ISpEventSource_SetNotifyCallbackInterface(ISpEventSource* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
3907     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
3908 }
3909 static FORCEINLINE HRESULT ISpEventSource_SetNotifyWin32Event(ISpEventSource* This) {
3910     return This->lpVtbl->SetNotifyWin32Event(This);
3911 }
3912 static FORCEINLINE HRESULT ISpEventSource_WaitForNotifyEvent(ISpEventSource* This,DWORD dwMilliseconds) {
3913     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
3914 }
3915 static FORCEINLINE HANDLE ISpEventSource_GetNotifyEventHandle(ISpEventSource* This) {
3916     return This->lpVtbl->GetNotifyEventHandle(This);
3917 }
3918 /*** ISpEventSource methods ***/
3919 static FORCEINLINE HRESULT ISpEventSource_SetInterest(ISpEventSource* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
3920     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
3921 }
3922 static FORCEINLINE HRESULT ISpEventSource_GetEvents(ISpEventSource* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
3923     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
3924 }
3925 static FORCEINLINE HRESULT ISpEventSource_GetInfo(ISpEventSource* This,SPEVENTSOURCEINFO *pInfo) {
3926     return This->lpVtbl->GetInfo(This,pInfo);
3927 }
3928 #endif
3929 #endif
3930 
3931 #endif
3932 
3933 HRESULT STDMETHODCALLTYPE ISpEventSource_SetInterest_Proxy(
3934     ISpEventSource* This,
3935     ULONGLONG ullEventInterest,
3936     ULONGLONG ullQueuedInterest);
3937 void __RPC_STUB ISpEventSource_SetInterest_Stub(
3938     IRpcStubBuffer* This,
3939     IRpcChannelBuffer* pRpcChannelBuffer,
3940     PRPC_MESSAGE pRpcMessage,
3941     DWORD* pdwStubPhase);
3942 HRESULT STDMETHODCALLTYPE ISpEventSource_GetEvents_Proxy(
3943     ISpEventSource* This,
3944     ULONG ulCount,
3945     SPEVENT *pEventArray,
3946     ULONG *pulFetched);
3947 void __RPC_STUB ISpEventSource_GetEvents_Stub(
3948     IRpcStubBuffer* This,
3949     IRpcChannelBuffer* pRpcChannelBuffer,
3950     PRPC_MESSAGE pRpcMessage,
3951     DWORD* pdwStubPhase);
3952 HRESULT STDMETHODCALLTYPE ISpEventSource_GetInfo_Proxy(
3953     ISpEventSource* This,
3954     SPEVENTSOURCEINFO *pInfo);
3955 void __RPC_STUB ISpEventSource_GetInfo_Stub(
3956     IRpcStubBuffer* This,
3957     IRpcChannelBuffer* pRpcChannelBuffer,
3958     PRPC_MESSAGE pRpcMessage,
3959     DWORD* pdwStubPhase);
3960 
3961 #endif  /* __ISpEventSource_INTERFACE_DEFINED__ */
3962 
3963 /*****************************************************************************
3964  * ISpEventSource2 interface
3965  */
3966 #ifndef __ISpEventSource2_INTERFACE_DEFINED__
3967 #define __ISpEventSource2_INTERFACE_DEFINED__
3968 
3969 DEFINE_GUID(IID_ISpEventSource2, 0x2373a435, 0x6a4b, 0x429e, 0xa6,0xac, 0xd4,0x23,0x1a,0x61,0x97,0x5b);
3970 #if defined(__cplusplus) && !defined(CINTERFACE)
3971 MIDL_INTERFACE("2373a435-6a4b-429e-a6ac-d4231a61975b")
3972 ISpEventSource2 : public ISpEventSource
3973 {
3974     virtual HRESULT STDMETHODCALLTYPE GetEventsEx(
3975         ULONG ulCount,
3976         SPEVENTEX *pEventArray,
3977         ULONG *pulFetched) = 0;
3978 
3979 };
3980 #ifdef __CRT_UUID_DECL
3981 __CRT_UUID_DECL(ISpEventSource2, 0x2373a435, 0x6a4b, 0x429e, 0xa6,0xac, 0xd4,0x23,0x1a,0x61,0x97,0x5b)
3982 #endif
3983 #else
3984 typedef struct ISpEventSource2Vtbl {
3985     BEGIN_INTERFACE
3986 
3987     /*** IUnknown methods ***/
3988     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3989         ISpEventSource2* This,
3990         REFIID riid,
3991         void **ppvObject);
3992 
3993     ULONG (STDMETHODCALLTYPE *AddRef)(
3994         ISpEventSource2* This);
3995 
3996     ULONG (STDMETHODCALLTYPE *Release)(
3997         ISpEventSource2* This);
3998 
3999     /*** ISpNotifySource methods ***/
4000     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
4001         ISpEventSource2* This,
4002         ISpNotifySink *pNotifySink);
4003 
4004     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
4005         ISpEventSource2* This,
4006         HWND hWnd,
4007         UINT Msg,
4008         WPARAM wParam,
4009         LPARAM lParam);
4010 
4011     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
4012         ISpEventSource2* This,
4013         SPNOTIFYCALLBACK *pfnCallback,
4014         WPARAM wParam,
4015         LPARAM lParam);
4016 
4017     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
4018         ISpEventSource2* This,
4019         ISpNotifyCallback *pSpCallback,
4020         WPARAM wParam,
4021         LPARAM lParam);
4022 
4023     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
4024         ISpEventSource2* This);
4025 
4026     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
4027         ISpEventSource2* This,
4028         DWORD dwMilliseconds);
4029 
4030     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
4031         ISpEventSource2* This);
4032 
4033     /*** ISpEventSource methods ***/
4034     HRESULT (STDMETHODCALLTYPE *SetInterest)(
4035         ISpEventSource2* This,
4036         ULONGLONG ullEventInterest,
4037         ULONGLONG ullQueuedInterest);
4038 
4039     HRESULT (STDMETHODCALLTYPE *GetEvents)(
4040         ISpEventSource2* This,
4041         ULONG ulCount,
4042         SPEVENT *pEventArray,
4043         ULONG *pulFetched);
4044 
4045     HRESULT (STDMETHODCALLTYPE *GetInfo)(
4046         ISpEventSource2* This,
4047         SPEVENTSOURCEINFO *pInfo);
4048 
4049     /*** ISpEventSource2 methods ***/
4050     HRESULT (STDMETHODCALLTYPE *GetEventsEx)(
4051         ISpEventSource2* This,
4052         ULONG ulCount,
4053         SPEVENTEX *pEventArray,
4054         ULONG *pulFetched);
4055 
4056     END_INTERFACE
4057 } ISpEventSource2Vtbl;
4058 interface ISpEventSource2 {
4059     CONST_VTBL ISpEventSource2Vtbl* lpVtbl;
4060 };
4061 
4062 #ifdef COBJMACROS
4063 #ifndef WIDL_C_INLINE_WRAPPERS
4064 /*** IUnknown methods ***/
4065 #define ISpEventSource2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4066 #define ISpEventSource2_AddRef(This) (This)->lpVtbl->AddRef(This)
4067 #define ISpEventSource2_Release(This) (This)->lpVtbl->Release(This)
4068 /*** ISpNotifySource methods ***/
4069 #define ISpEventSource2_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
4070 #define ISpEventSource2_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
4071 #define ISpEventSource2_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
4072 #define ISpEventSource2_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
4073 #define ISpEventSource2_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
4074 #define ISpEventSource2_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
4075 #define ISpEventSource2_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
4076 /*** ISpEventSource methods ***/
4077 #define ISpEventSource2_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
4078 #define ISpEventSource2_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
4079 #define ISpEventSource2_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
4080 /*** ISpEventSource2 methods ***/
4081 #define ISpEventSource2_GetEventsEx(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEventsEx(This,ulCount,pEventArray,pulFetched)
4082 #else
4083 /*** IUnknown methods ***/
4084 static FORCEINLINE HRESULT ISpEventSource2_QueryInterface(ISpEventSource2* This,REFIID riid,void **ppvObject) {
4085     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4086 }
4087 static FORCEINLINE ULONG ISpEventSource2_AddRef(ISpEventSource2* This) {
4088     return This->lpVtbl->AddRef(This);
4089 }
4090 static FORCEINLINE ULONG ISpEventSource2_Release(ISpEventSource2* This) {
4091     return This->lpVtbl->Release(This);
4092 }
4093 /*** ISpNotifySource methods ***/
4094 static FORCEINLINE HRESULT ISpEventSource2_SetNotifySink(ISpEventSource2* This,ISpNotifySink *pNotifySink) {
4095     return This->lpVtbl->SetNotifySink(This,pNotifySink);
4096 }
4097 static FORCEINLINE HRESULT ISpEventSource2_SetNotifyWindowMessage(ISpEventSource2* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
4098     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
4099 }
4100 static FORCEINLINE HRESULT ISpEventSource2_SetNotifyCallbackFunction(ISpEventSource2* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
4101     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
4102 }
4103 static FORCEINLINE HRESULT ISpEventSource2_SetNotifyCallbackInterface(ISpEventSource2* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
4104     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
4105 }
4106 static FORCEINLINE HRESULT ISpEventSource2_SetNotifyWin32Event(ISpEventSource2* This) {
4107     return This->lpVtbl->SetNotifyWin32Event(This);
4108 }
4109 static FORCEINLINE HRESULT ISpEventSource2_WaitForNotifyEvent(ISpEventSource2* This,DWORD dwMilliseconds) {
4110     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
4111 }
4112 static FORCEINLINE HANDLE ISpEventSource2_GetNotifyEventHandle(ISpEventSource2* This) {
4113     return This->lpVtbl->GetNotifyEventHandle(This);
4114 }
4115 /*** ISpEventSource methods ***/
4116 static FORCEINLINE HRESULT ISpEventSource2_SetInterest(ISpEventSource2* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
4117     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
4118 }
4119 static FORCEINLINE HRESULT ISpEventSource2_GetEvents(ISpEventSource2* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
4120     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
4121 }
4122 static FORCEINLINE HRESULT ISpEventSource2_GetInfo(ISpEventSource2* This,SPEVENTSOURCEINFO *pInfo) {
4123     return This->lpVtbl->GetInfo(This,pInfo);
4124 }
4125 /*** ISpEventSource2 methods ***/
4126 static FORCEINLINE HRESULT ISpEventSource2_GetEventsEx(ISpEventSource2* This,ULONG ulCount,SPEVENTEX *pEventArray,ULONG *pulFetched) {
4127     return This->lpVtbl->GetEventsEx(This,ulCount,pEventArray,pulFetched);
4128 }
4129 #endif
4130 #endif
4131 
4132 #endif
4133 
4134 HRESULT STDMETHODCALLTYPE ISpEventSource2_GetEventsEx_Proxy(
4135     ISpEventSource2* This,
4136     ULONG ulCount,
4137     SPEVENTEX *pEventArray,
4138     ULONG *pulFetched);
4139 void __RPC_STUB ISpEventSource2_GetEventsEx_Stub(
4140     IRpcStubBuffer* This,
4141     IRpcChannelBuffer* pRpcChannelBuffer,
4142     PRPC_MESSAGE pRpcMessage,
4143     DWORD* pdwStubPhase);
4144 
4145 #endif  /* __ISpEventSource2_INTERFACE_DEFINED__ */
4146 
4147 /*****************************************************************************
4148  * ISpEventSink interface
4149  */
4150 #ifndef __ISpEventSink_INTERFACE_DEFINED__
4151 #define __ISpEventSink_INTERFACE_DEFINED__
4152 
4153 DEFINE_GUID(IID_ISpEventSink, 0xbe7a9cc9, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
4154 #if defined(__cplusplus) && !defined(CINTERFACE)
4155 MIDL_INTERFACE("be7a9cc9-5f9e-11d2-960f-00c04f8ee628")
4156 ISpEventSink : public IUnknown
4157 {
4158     virtual HRESULT STDMETHODCALLTYPE AddEvents(
4159         const SPEVENT *pEventArray,
4160         ULONG ulCount) = 0;
4161 
4162     virtual HRESULT STDMETHODCALLTYPE GetEventInterest(
4163         ULONGLONG *pullEventInterest) = 0;
4164 
4165 };
4166 #ifdef __CRT_UUID_DECL
4167 __CRT_UUID_DECL(ISpEventSink, 0xbe7a9cc9, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
4168 #endif
4169 #else
4170 typedef struct ISpEventSinkVtbl {
4171     BEGIN_INTERFACE
4172 
4173     /*** IUnknown methods ***/
4174     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4175         ISpEventSink* This,
4176         REFIID riid,
4177         void **ppvObject);
4178 
4179     ULONG (STDMETHODCALLTYPE *AddRef)(
4180         ISpEventSink* This);
4181 
4182     ULONG (STDMETHODCALLTYPE *Release)(
4183         ISpEventSink* This);
4184 
4185     /*** ISpEventSink methods ***/
4186     HRESULT (STDMETHODCALLTYPE *AddEvents)(
4187         ISpEventSink* This,
4188         const SPEVENT *pEventArray,
4189         ULONG ulCount);
4190 
4191     HRESULT (STDMETHODCALLTYPE *GetEventInterest)(
4192         ISpEventSink* This,
4193         ULONGLONG *pullEventInterest);
4194 
4195     END_INTERFACE
4196 } ISpEventSinkVtbl;
4197 interface ISpEventSink {
4198     CONST_VTBL ISpEventSinkVtbl* lpVtbl;
4199 };
4200 
4201 #ifdef COBJMACROS
4202 #ifndef WIDL_C_INLINE_WRAPPERS
4203 /*** IUnknown methods ***/
4204 #define ISpEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4205 #define ISpEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
4206 #define ISpEventSink_Release(This) (This)->lpVtbl->Release(This)
4207 /*** ISpEventSink methods ***/
4208 #define ISpEventSink_AddEvents(This,pEventArray,ulCount) (This)->lpVtbl->AddEvents(This,pEventArray,ulCount)
4209 #define ISpEventSink_GetEventInterest(This,pullEventInterest) (This)->lpVtbl->GetEventInterest(This,pullEventInterest)
4210 #else
4211 /*** IUnknown methods ***/
4212 static FORCEINLINE HRESULT ISpEventSink_QueryInterface(ISpEventSink* This,REFIID riid,void **ppvObject) {
4213     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4214 }
4215 static FORCEINLINE ULONG ISpEventSink_AddRef(ISpEventSink* This) {
4216     return This->lpVtbl->AddRef(This);
4217 }
4218 static FORCEINLINE ULONG ISpEventSink_Release(ISpEventSink* This) {
4219     return This->lpVtbl->Release(This);
4220 }
4221 /*** ISpEventSink methods ***/
4222 static FORCEINLINE HRESULT ISpEventSink_AddEvents(ISpEventSink* This,const SPEVENT *pEventArray,ULONG ulCount) {
4223     return This->lpVtbl->AddEvents(This,pEventArray,ulCount);
4224 }
4225 static FORCEINLINE HRESULT ISpEventSink_GetEventInterest(ISpEventSink* This,ULONGLONG *pullEventInterest) {
4226     return This->lpVtbl->GetEventInterest(This,pullEventInterest);
4227 }
4228 #endif
4229 #endif
4230 
4231 #endif
4232 
4233 HRESULT STDMETHODCALLTYPE ISpEventSink_AddEvents_Proxy(
4234     ISpEventSink* This,
4235     const SPEVENT *pEventArray,
4236     ULONG ulCount);
4237 void __RPC_STUB ISpEventSink_AddEvents_Stub(
4238     IRpcStubBuffer* This,
4239     IRpcChannelBuffer* pRpcChannelBuffer,
4240     PRPC_MESSAGE pRpcMessage,
4241     DWORD* pdwStubPhase);
4242 HRESULT STDMETHODCALLTYPE ISpEventSink_GetEventInterest_Proxy(
4243     ISpEventSink* This,
4244     ULONGLONG *pullEventInterest);
4245 void __RPC_STUB ISpEventSink_GetEventInterest_Stub(
4246     IRpcStubBuffer* This,
4247     IRpcChannelBuffer* pRpcChannelBuffer,
4248     PRPC_MESSAGE pRpcMessage,
4249     DWORD* pdwStubPhase);
4250 
4251 #endif  /* __ISpEventSink_INTERFACE_DEFINED__ */
4252 
4253 /*****************************************************************************
4254  * ISpStreamFormat interface
4255  */
4256 #ifndef __ISpStreamFormat_INTERFACE_DEFINED__
4257 #define __ISpStreamFormat_INTERFACE_DEFINED__
4258 
4259 DEFINE_GUID(IID_ISpStreamFormat, 0xbed530be, 0x2606, 0x4f4d, 0xa1,0xc0, 0x54,0xc5,0xcd,0xa5,0x56,0x6f);
4260 #if defined(__cplusplus) && !defined(CINTERFACE)
4261 MIDL_INTERFACE("bed530be-2606-4f4d-a1c0-54c5cda5566f")
4262 ISpStreamFormat : public IStream
4263 {
4264     virtual HRESULT STDMETHODCALLTYPE GetFormat(
4265         GUID *pguidFormatId,
4266         WAVEFORMATEX **ppCoMemWaveFormatEx) = 0;
4267 
4268 };
4269 #ifdef __CRT_UUID_DECL
4270 __CRT_UUID_DECL(ISpStreamFormat, 0xbed530be, 0x2606, 0x4f4d, 0xa1,0xc0, 0x54,0xc5,0xcd,0xa5,0x56,0x6f)
4271 #endif
4272 #else
4273 typedef struct ISpStreamFormatVtbl {
4274     BEGIN_INTERFACE
4275 
4276     /*** IUnknown methods ***/
4277     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4278         ISpStreamFormat* This,
4279         REFIID riid,
4280         void **ppvObject);
4281 
4282     ULONG (STDMETHODCALLTYPE *AddRef)(
4283         ISpStreamFormat* This);
4284 
4285     ULONG (STDMETHODCALLTYPE *Release)(
4286         ISpStreamFormat* This);
4287 
4288     /*** ISequentialStream methods ***/
4289     HRESULT (STDMETHODCALLTYPE *Read)(
4290         ISpStreamFormat* This,
4291         void *pv,
4292         ULONG cb,
4293         ULONG *pcbRead);
4294 
4295     HRESULT (STDMETHODCALLTYPE *Write)(
4296         ISpStreamFormat* This,
4297         const void *pv,
4298         ULONG cb,
4299         ULONG *pcbWritten);
4300 
4301     /*** IStream methods ***/
4302     HRESULT (STDMETHODCALLTYPE *Seek)(
4303         ISpStreamFormat* This,
4304         LARGE_INTEGER dlibMove,
4305         DWORD dwOrigin,
4306         ULARGE_INTEGER *plibNewPosition);
4307 
4308     HRESULT (STDMETHODCALLTYPE *SetSize)(
4309         ISpStreamFormat* This,
4310         ULARGE_INTEGER libNewSize);
4311 
4312     HRESULT (STDMETHODCALLTYPE *CopyTo)(
4313         ISpStreamFormat* This,
4314         IStream *pstm,
4315         ULARGE_INTEGER cb,
4316         ULARGE_INTEGER *pcbRead,
4317         ULARGE_INTEGER *pcbWritten);
4318 
4319     HRESULT (STDMETHODCALLTYPE *Commit)(
4320         ISpStreamFormat* This,
4321         DWORD grfCommitFlags);
4322 
4323     HRESULT (STDMETHODCALLTYPE *Revert)(
4324         ISpStreamFormat* This);
4325 
4326     HRESULT (STDMETHODCALLTYPE *LockRegion)(
4327         ISpStreamFormat* This,
4328         ULARGE_INTEGER libOffset,
4329         ULARGE_INTEGER cb,
4330         DWORD dwLockType);
4331 
4332     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
4333         ISpStreamFormat* This,
4334         ULARGE_INTEGER libOffset,
4335         ULARGE_INTEGER cb,
4336         DWORD dwLockType);
4337 
4338     HRESULT (STDMETHODCALLTYPE *Stat)(
4339         ISpStreamFormat* This,
4340         STATSTG *pstatstg,
4341         DWORD grfStatFlag);
4342 
4343     HRESULT (STDMETHODCALLTYPE *Clone)(
4344         ISpStreamFormat* This,
4345         IStream **ppstm);
4346 
4347     /*** ISpStreamFormat methods ***/
4348     HRESULT (STDMETHODCALLTYPE *GetFormat)(
4349         ISpStreamFormat* This,
4350         GUID *pguidFormatId,
4351         WAVEFORMATEX **ppCoMemWaveFormatEx);
4352 
4353     END_INTERFACE
4354 } ISpStreamFormatVtbl;
4355 interface ISpStreamFormat {
4356     CONST_VTBL ISpStreamFormatVtbl* lpVtbl;
4357 };
4358 
4359 #ifdef COBJMACROS
4360 #ifndef WIDL_C_INLINE_WRAPPERS
4361 /*** IUnknown methods ***/
4362 #define ISpStreamFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4363 #define ISpStreamFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
4364 #define ISpStreamFormat_Release(This) (This)->lpVtbl->Release(This)
4365 /*** ISequentialStream methods ***/
4366 #define ISpStreamFormat_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
4367 #define ISpStreamFormat_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
4368 /*** IStream methods ***/
4369 #define ISpStreamFormat_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
4370 #define ISpStreamFormat_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
4371 #define ISpStreamFormat_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
4372 #define ISpStreamFormat_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
4373 #define ISpStreamFormat_Revert(This) (This)->lpVtbl->Revert(This)
4374 #define ISpStreamFormat_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
4375 #define ISpStreamFormat_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
4376 #define ISpStreamFormat_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
4377 #define ISpStreamFormat_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
4378 /*** ISpStreamFormat methods ***/
4379 #define ISpStreamFormat_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
4380 #else
4381 /*** IUnknown methods ***/
4382 static FORCEINLINE HRESULT ISpStreamFormat_QueryInterface(ISpStreamFormat* This,REFIID riid,void **ppvObject) {
4383     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4384 }
4385 static FORCEINLINE ULONG ISpStreamFormat_AddRef(ISpStreamFormat* This) {
4386     return This->lpVtbl->AddRef(This);
4387 }
4388 static FORCEINLINE ULONG ISpStreamFormat_Release(ISpStreamFormat* This) {
4389     return This->lpVtbl->Release(This);
4390 }
4391 /*** ISequentialStream methods ***/
4392 static FORCEINLINE HRESULT ISpStreamFormat_Read(ISpStreamFormat* This,void *pv,ULONG cb,ULONG *pcbRead) {
4393     return This->lpVtbl->Read(This,pv,cb,pcbRead);
4394 }
4395 static FORCEINLINE HRESULT ISpStreamFormat_Write(ISpStreamFormat* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
4396     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
4397 }
4398 /*** IStream methods ***/
4399 static FORCEINLINE HRESULT ISpStreamFormat_Seek(ISpStreamFormat* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
4400     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
4401 }
4402 static FORCEINLINE HRESULT ISpStreamFormat_SetSize(ISpStreamFormat* This,ULARGE_INTEGER libNewSize) {
4403     return This->lpVtbl->SetSize(This,libNewSize);
4404 }
4405 static FORCEINLINE HRESULT ISpStreamFormat_CopyTo(ISpStreamFormat* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
4406     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
4407 }
4408 static FORCEINLINE HRESULT ISpStreamFormat_Commit(ISpStreamFormat* This,DWORD grfCommitFlags) {
4409     return This->lpVtbl->Commit(This,grfCommitFlags);
4410 }
4411 static FORCEINLINE HRESULT ISpStreamFormat_Revert(ISpStreamFormat* This) {
4412     return This->lpVtbl->Revert(This);
4413 }
4414 static FORCEINLINE HRESULT ISpStreamFormat_LockRegion(ISpStreamFormat* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4415     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
4416 }
4417 static FORCEINLINE HRESULT ISpStreamFormat_UnlockRegion(ISpStreamFormat* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4418     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
4419 }
4420 static FORCEINLINE HRESULT ISpStreamFormat_Stat(ISpStreamFormat* This,STATSTG *pstatstg,DWORD grfStatFlag) {
4421     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
4422 }
4423 static FORCEINLINE HRESULT ISpStreamFormat_Clone(ISpStreamFormat* This,IStream **ppstm) {
4424     return This->lpVtbl->Clone(This,ppstm);
4425 }
4426 /*** ISpStreamFormat methods ***/
4427 static FORCEINLINE HRESULT ISpStreamFormat_GetFormat(ISpStreamFormat* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
4428     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
4429 }
4430 #endif
4431 #endif
4432 
4433 #endif
4434 
4435 HRESULT STDMETHODCALLTYPE ISpStreamFormat_GetFormat_Proxy(
4436     ISpStreamFormat* This,
4437     GUID *pguidFormatId,
4438     WAVEFORMATEX **ppCoMemWaveFormatEx);
4439 void __RPC_STUB ISpStreamFormat_GetFormat_Stub(
4440     IRpcStubBuffer* This,
4441     IRpcChannelBuffer* pRpcChannelBuffer,
4442     PRPC_MESSAGE pRpcMessage,
4443     DWORD* pdwStubPhase);
4444 
4445 #endif  /* __ISpStreamFormat_INTERFACE_DEFINED__ */
4446 
4447 /*****************************************************************************
4448  * ISpStream interface
4449  */
4450 #ifndef __ISpStream_INTERFACE_DEFINED__
4451 #define __ISpStream_INTERFACE_DEFINED__
4452 
4453 DEFINE_GUID(IID_ISpStream, 0x12e3cca9, 0x7518, 0x44c5, 0xa5,0xe7, 0xba,0x5a,0x79,0xcb,0x92,0x9e);
4454 #if defined(__cplusplus) && !defined(CINTERFACE)
4455 MIDL_INTERFACE("12e3cca9-7518-44c5-a5e7-ba5a79cb929e")
4456 ISpStream : public ISpStreamFormat
4457 {
4458     virtual HRESULT STDMETHODCALLTYPE SetBaseStream(
4459         IStream *pStream,
4460         REFGUID rguidFormat,
4461         const WAVEFORMATEX *pWaveFormatEx) = 0;
4462 
4463     virtual HRESULT STDMETHODCALLTYPE GetBaseStream(
4464         IStream **ppStream) = 0;
4465 
4466     virtual HRESULT STDMETHODCALLTYPE BindToFile(
4467         LPCWSTR pszFileName,
4468         SPFILEMODE eMode,
4469         const GUID *pFormatId,
4470         const WAVEFORMATEX *pWaveFormatEx,
4471         ULONGLONG ullEventInterest) = 0;
4472 
4473     virtual HRESULT STDMETHODCALLTYPE Close(
4474         ) = 0;
4475 
4476 };
4477 #ifdef __CRT_UUID_DECL
4478 __CRT_UUID_DECL(ISpStream, 0x12e3cca9, 0x7518, 0x44c5, 0xa5,0xe7, 0xba,0x5a,0x79,0xcb,0x92,0x9e)
4479 #endif
4480 #else
4481 typedef struct ISpStreamVtbl {
4482     BEGIN_INTERFACE
4483 
4484     /*** IUnknown methods ***/
4485     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4486         ISpStream* This,
4487         REFIID riid,
4488         void **ppvObject);
4489 
4490     ULONG (STDMETHODCALLTYPE *AddRef)(
4491         ISpStream* This);
4492 
4493     ULONG (STDMETHODCALLTYPE *Release)(
4494         ISpStream* This);
4495 
4496     /*** ISequentialStream methods ***/
4497     HRESULT (STDMETHODCALLTYPE *Read)(
4498         ISpStream* This,
4499         void *pv,
4500         ULONG cb,
4501         ULONG *pcbRead);
4502 
4503     HRESULT (STDMETHODCALLTYPE *Write)(
4504         ISpStream* This,
4505         const void *pv,
4506         ULONG cb,
4507         ULONG *pcbWritten);
4508 
4509     /*** IStream methods ***/
4510     HRESULT (STDMETHODCALLTYPE *Seek)(
4511         ISpStream* This,
4512         LARGE_INTEGER dlibMove,
4513         DWORD dwOrigin,
4514         ULARGE_INTEGER *plibNewPosition);
4515 
4516     HRESULT (STDMETHODCALLTYPE *SetSize)(
4517         ISpStream* This,
4518         ULARGE_INTEGER libNewSize);
4519 
4520     HRESULT (STDMETHODCALLTYPE *CopyTo)(
4521         ISpStream* This,
4522         IStream *pstm,
4523         ULARGE_INTEGER cb,
4524         ULARGE_INTEGER *pcbRead,
4525         ULARGE_INTEGER *pcbWritten);
4526 
4527     HRESULT (STDMETHODCALLTYPE *Commit)(
4528         ISpStream* This,
4529         DWORD grfCommitFlags);
4530 
4531     HRESULT (STDMETHODCALLTYPE *Revert)(
4532         ISpStream* This);
4533 
4534     HRESULT (STDMETHODCALLTYPE *LockRegion)(
4535         ISpStream* This,
4536         ULARGE_INTEGER libOffset,
4537         ULARGE_INTEGER cb,
4538         DWORD dwLockType);
4539 
4540     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
4541         ISpStream* This,
4542         ULARGE_INTEGER libOffset,
4543         ULARGE_INTEGER cb,
4544         DWORD dwLockType);
4545 
4546     HRESULT (STDMETHODCALLTYPE *Stat)(
4547         ISpStream* This,
4548         STATSTG *pstatstg,
4549         DWORD grfStatFlag);
4550 
4551     HRESULT (STDMETHODCALLTYPE *Clone)(
4552         ISpStream* This,
4553         IStream **ppstm);
4554 
4555     /*** ISpStreamFormat methods ***/
4556     HRESULT (STDMETHODCALLTYPE *GetFormat)(
4557         ISpStream* This,
4558         GUID *pguidFormatId,
4559         WAVEFORMATEX **ppCoMemWaveFormatEx);
4560 
4561     /*** ISpStream methods ***/
4562     HRESULT (STDMETHODCALLTYPE *SetBaseStream)(
4563         ISpStream* This,
4564         IStream *pStream,
4565         REFGUID rguidFormat,
4566         const WAVEFORMATEX *pWaveFormatEx);
4567 
4568     HRESULT (STDMETHODCALLTYPE *GetBaseStream)(
4569         ISpStream* This,
4570         IStream **ppStream);
4571 
4572     HRESULT (STDMETHODCALLTYPE *BindToFile)(
4573         ISpStream* This,
4574         LPCWSTR pszFileName,
4575         SPFILEMODE eMode,
4576         const GUID *pFormatId,
4577         const WAVEFORMATEX *pWaveFormatEx,
4578         ULONGLONG ullEventInterest);
4579 
4580     HRESULT (STDMETHODCALLTYPE *Close)(
4581         ISpStream* This);
4582 
4583     END_INTERFACE
4584 } ISpStreamVtbl;
4585 interface ISpStream {
4586     CONST_VTBL ISpStreamVtbl* lpVtbl;
4587 };
4588 
4589 #ifdef COBJMACROS
4590 #ifndef WIDL_C_INLINE_WRAPPERS
4591 /*** IUnknown methods ***/
4592 #define ISpStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4593 #define ISpStream_AddRef(This) (This)->lpVtbl->AddRef(This)
4594 #define ISpStream_Release(This) (This)->lpVtbl->Release(This)
4595 /*** ISequentialStream methods ***/
4596 #define ISpStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
4597 #define ISpStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
4598 /*** IStream methods ***/
4599 #define ISpStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
4600 #define ISpStream_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
4601 #define ISpStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
4602 #define ISpStream_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
4603 #define ISpStream_Revert(This) (This)->lpVtbl->Revert(This)
4604 #define ISpStream_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
4605 #define ISpStream_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
4606 #define ISpStream_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
4607 #define ISpStream_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
4608 /*** ISpStreamFormat methods ***/
4609 #define ISpStream_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
4610 /*** ISpStream methods ***/
4611 #define ISpStream_SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx) (This)->lpVtbl->SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx)
4612 #define ISpStream_GetBaseStream(This,ppStream) (This)->lpVtbl->GetBaseStream(This,ppStream)
4613 #define ISpStream_BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest) (This)->lpVtbl->BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest)
4614 #define ISpStream_Close(This) (This)->lpVtbl->Close(This)
4615 #else
4616 /*** IUnknown methods ***/
4617 static FORCEINLINE HRESULT ISpStream_QueryInterface(ISpStream* This,REFIID riid,void **ppvObject) {
4618     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4619 }
4620 static FORCEINLINE ULONG ISpStream_AddRef(ISpStream* This) {
4621     return This->lpVtbl->AddRef(This);
4622 }
4623 static FORCEINLINE ULONG ISpStream_Release(ISpStream* This) {
4624     return This->lpVtbl->Release(This);
4625 }
4626 /*** ISequentialStream methods ***/
4627 static FORCEINLINE HRESULT ISpStream_Read(ISpStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
4628     return This->lpVtbl->Read(This,pv,cb,pcbRead);
4629 }
4630 static FORCEINLINE HRESULT ISpStream_Write(ISpStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
4631     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
4632 }
4633 /*** IStream methods ***/
4634 static FORCEINLINE HRESULT ISpStream_Seek(ISpStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
4635     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
4636 }
4637 static FORCEINLINE HRESULT ISpStream_SetSize(ISpStream* This,ULARGE_INTEGER libNewSize) {
4638     return This->lpVtbl->SetSize(This,libNewSize);
4639 }
4640 static FORCEINLINE HRESULT ISpStream_CopyTo(ISpStream* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
4641     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
4642 }
4643 static FORCEINLINE HRESULT ISpStream_Commit(ISpStream* This,DWORD grfCommitFlags) {
4644     return This->lpVtbl->Commit(This,grfCommitFlags);
4645 }
4646 static FORCEINLINE HRESULT ISpStream_Revert(ISpStream* This) {
4647     return This->lpVtbl->Revert(This);
4648 }
4649 static FORCEINLINE HRESULT ISpStream_LockRegion(ISpStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4650     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
4651 }
4652 static FORCEINLINE HRESULT ISpStream_UnlockRegion(ISpStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4653     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
4654 }
4655 static FORCEINLINE HRESULT ISpStream_Stat(ISpStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
4656     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
4657 }
4658 static FORCEINLINE HRESULT ISpStream_Clone(ISpStream* This,IStream **ppstm) {
4659     return This->lpVtbl->Clone(This,ppstm);
4660 }
4661 /*** ISpStreamFormat methods ***/
4662 static FORCEINLINE HRESULT ISpStream_GetFormat(ISpStream* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
4663     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
4664 }
4665 /*** ISpStream methods ***/
4666 static FORCEINLINE HRESULT ISpStream_SetBaseStream(ISpStream* This,IStream *pStream,REFGUID rguidFormat,const WAVEFORMATEX *pWaveFormatEx) {
4667     return This->lpVtbl->SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx);
4668 }
4669 static FORCEINLINE HRESULT ISpStream_GetBaseStream(ISpStream* This,IStream **ppStream) {
4670     return This->lpVtbl->GetBaseStream(This,ppStream);
4671 }
4672 static FORCEINLINE HRESULT ISpStream_BindToFile(ISpStream* This,LPCWSTR pszFileName,SPFILEMODE eMode,const GUID *pFormatId,const WAVEFORMATEX *pWaveFormatEx,ULONGLONG ullEventInterest) {
4673     return This->lpVtbl->BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest);
4674 }
4675 static FORCEINLINE HRESULT ISpStream_Close(ISpStream* This) {
4676     return This->lpVtbl->Close(This);
4677 }
4678 #endif
4679 #endif
4680 
4681 #endif
4682 
4683 HRESULT STDMETHODCALLTYPE ISpStream_SetBaseStream_Proxy(
4684     ISpStream* This,
4685     IStream *pStream,
4686     REFGUID rguidFormat,
4687     const WAVEFORMATEX *pWaveFormatEx);
4688 void __RPC_STUB ISpStream_SetBaseStream_Stub(
4689     IRpcStubBuffer* This,
4690     IRpcChannelBuffer* pRpcChannelBuffer,
4691     PRPC_MESSAGE pRpcMessage,
4692     DWORD* pdwStubPhase);
4693 HRESULT STDMETHODCALLTYPE ISpStream_GetBaseStream_Proxy(
4694     ISpStream* This,
4695     IStream **ppStream);
4696 void __RPC_STUB ISpStream_GetBaseStream_Stub(
4697     IRpcStubBuffer* This,
4698     IRpcChannelBuffer* pRpcChannelBuffer,
4699     PRPC_MESSAGE pRpcMessage,
4700     DWORD* pdwStubPhase);
4701 HRESULT STDMETHODCALLTYPE ISpStream_BindToFile_Proxy(
4702     ISpStream* This,
4703     LPCWSTR pszFileName,
4704     SPFILEMODE eMode,
4705     const GUID *pFormatId,
4706     const WAVEFORMATEX *pWaveFormatEx,
4707     ULONGLONG ullEventInterest);
4708 void __RPC_STUB ISpStream_BindToFile_Stub(
4709     IRpcStubBuffer* This,
4710     IRpcChannelBuffer* pRpcChannelBuffer,
4711     PRPC_MESSAGE pRpcMessage,
4712     DWORD* pdwStubPhase);
4713 HRESULT STDMETHODCALLTYPE ISpStream_Close_Proxy(
4714     ISpStream* This);
4715 void __RPC_STUB ISpStream_Close_Stub(
4716     IRpcStubBuffer* This,
4717     IRpcChannelBuffer* pRpcChannelBuffer,
4718     PRPC_MESSAGE pRpcMessage,
4719     DWORD* pdwStubPhase);
4720 
4721 #endif  /* __ISpStream_INTERFACE_DEFINED__ */
4722 
4723 /*****************************************************************************
4724  * ISpStreamFormatConverter interface
4725  */
4726 #ifndef __ISpStreamFormatConverter_INTERFACE_DEFINED__
4727 #define __ISpStreamFormatConverter_INTERFACE_DEFINED__
4728 
4729 DEFINE_GUID(IID_ISpStreamFormatConverter, 0x678a932c, 0xea71, 0x4446, 0x9b,0x41, 0x78,0xfd,0xa6,0x28,0x0a,0x29);
4730 #if defined(__cplusplus) && !defined(CINTERFACE)
4731 MIDL_INTERFACE("678a932c-ea71-4446-9b41-78fda6280a29")
4732 ISpStreamFormatConverter : public ISpStreamFormat
4733 {
4734     virtual HRESULT STDMETHODCALLTYPE SetBaseStream(
4735         ISpStreamFormat *pStream,
4736         WINBOOL fSetFormatToBaseStreamFormat,
4737         WINBOOL fWriteToBaseStream) = 0;
4738 
4739     virtual HRESULT STDMETHODCALLTYPE GetBaseStream(
4740         ISpStreamFormat **ppStream) = 0;
4741 
4742     virtual HRESULT STDMETHODCALLTYPE SetFormat(
4743         REFGUID rguidFormatIdOfConvertedStream,
4744         const WAVEFORMATEX *pWaveFormatExOfConvertedStream) = 0;
4745 
4746     virtual HRESULT STDMETHODCALLTYPE ResetSeekPosition(
4747         ) = 0;
4748 
4749     virtual HRESULT STDMETHODCALLTYPE ScaleConvertedToBaseOffset(
4750         ULONGLONG ullOffsetConvertedStream,
4751         ULONGLONG *pullOffsetBaseStream) = 0;
4752 
4753     virtual HRESULT STDMETHODCALLTYPE ScaleBaseToConvertedOffset(
4754         ULONGLONG ullOffsetBaseStream,
4755         ULONGLONG *pullOffsetConvertedStream) = 0;
4756 
4757 };
4758 #ifdef __CRT_UUID_DECL
4759 __CRT_UUID_DECL(ISpStreamFormatConverter, 0x678a932c, 0xea71, 0x4446, 0x9b,0x41, 0x78,0xfd,0xa6,0x28,0x0a,0x29)
4760 #endif
4761 #else
4762 typedef struct ISpStreamFormatConverterVtbl {
4763     BEGIN_INTERFACE
4764 
4765     /*** IUnknown methods ***/
4766     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4767         ISpStreamFormatConverter* This,
4768         REFIID riid,
4769         void **ppvObject);
4770 
4771     ULONG (STDMETHODCALLTYPE *AddRef)(
4772         ISpStreamFormatConverter* This);
4773 
4774     ULONG (STDMETHODCALLTYPE *Release)(
4775         ISpStreamFormatConverter* This);
4776 
4777     /*** ISequentialStream methods ***/
4778     HRESULT (STDMETHODCALLTYPE *Read)(
4779         ISpStreamFormatConverter* This,
4780         void *pv,
4781         ULONG cb,
4782         ULONG *pcbRead);
4783 
4784     HRESULT (STDMETHODCALLTYPE *Write)(
4785         ISpStreamFormatConverter* This,
4786         const void *pv,
4787         ULONG cb,
4788         ULONG *pcbWritten);
4789 
4790     /*** IStream methods ***/
4791     HRESULT (STDMETHODCALLTYPE *Seek)(
4792         ISpStreamFormatConverter* This,
4793         LARGE_INTEGER dlibMove,
4794         DWORD dwOrigin,
4795         ULARGE_INTEGER *plibNewPosition);
4796 
4797     HRESULT (STDMETHODCALLTYPE *SetSize)(
4798         ISpStreamFormatConverter* This,
4799         ULARGE_INTEGER libNewSize);
4800 
4801     HRESULT (STDMETHODCALLTYPE *CopyTo)(
4802         ISpStreamFormatConverter* This,
4803         IStream *pstm,
4804         ULARGE_INTEGER cb,
4805         ULARGE_INTEGER *pcbRead,
4806         ULARGE_INTEGER *pcbWritten);
4807 
4808     HRESULT (STDMETHODCALLTYPE *Commit)(
4809         ISpStreamFormatConverter* This,
4810         DWORD grfCommitFlags);
4811 
4812     HRESULT (STDMETHODCALLTYPE *Revert)(
4813         ISpStreamFormatConverter* This);
4814 
4815     HRESULT (STDMETHODCALLTYPE *LockRegion)(
4816         ISpStreamFormatConverter* This,
4817         ULARGE_INTEGER libOffset,
4818         ULARGE_INTEGER cb,
4819         DWORD dwLockType);
4820 
4821     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
4822         ISpStreamFormatConverter* This,
4823         ULARGE_INTEGER libOffset,
4824         ULARGE_INTEGER cb,
4825         DWORD dwLockType);
4826 
4827     HRESULT (STDMETHODCALLTYPE *Stat)(
4828         ISpStreamFormatConverter* This,
4829         STATSTG *pstatstg,
4830         DWORD grfStatFlag);
4831 
4832     HRESULT (STDMETHODCALLTYPE *Clone)(
4833         ISpStreamFormatConverter* This,
4834         IStream **ppstm);
4835 
4836     /*** ISpStreamFormat methods ***/
4837     HRESULT (STDMETHODCALLTYPE *GetFormat)(
4838         ISpStreamFormatConverter* This,
4839         GUID *pguidFormatId,
4840         WAVEFORMATEX **ppCoMemWaveFormatEx);
4841 
4842     /*** ISpStreamFormatConverter methods ***/
4843     HRESULT (STDMETHODCALLTYPE *SetBaseStream)(
4844         ISpStreamFormatConverter* This,
4845         ISpStreamFormat *pStream,
4846         WINBOOL fSetFormatToBaseStreamFormat,
4847         WINBOOL fWriteToBaseStream);
4848 
4849     HRESULT (STDMETHODCALLTYPE *GetBaseStream)(
4850         ISpStreamFormatConverter* This,
4851         ISpStreamFormat **ppStream);
4852 
4853     HRESULT (STDMETHODCALLTYPE *SetFormat)(
4854         ISpStreamFormatConverter* This,
4855         REFGUID rguidFormatIdOfConvertedStream,
4856         const WAVEFORMATEX *pWaveFormatExOfConvertedStream);
4857 
4858     HRESULT (STDMETHODCALLTYPE *ResetSeekPosition)(
4859         ISpStreamFormatConverter* This);
4860 
4861     HRESULT (STDMETHODCALLTYPE *ScaleConvertedToBaseOffset)(
4862         ISpStreamFormatConverter* This,
4863         ULONGLONG ullOffsetConvertedStream,
4864         ULONGLONG *pullOffsetBaseStream);
4865 
4866     HRESULT (STDMETHODCALLTYPE *ScaleBaseToConvertedOffset)(
4867         ISpStreamFormatConverter* This,
4868         ULONGLONG ullOffsetBaseStream,
4869         ULONGLONG *pullOffsetConvertedStream);
4870 
4871     END_INTERFACE
4872 } ISpStreamFormatConverterVtbl;
4873 interface ISpStreamFormatConverter {
4874     CONST_VTBL ISpStreamFormatConverterVtbl* lpVtbl;
4875 };
4876 
4877 #ifdef COBJMACROS
4878 #ifndef WIDL_C_INLINE_WRAPPERS
4879 /*** IUnknown methods ***/
4880 #define ISpStreamFormatConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4881 #define ISpStreamFormatConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
4882 #define ISpStreamFormatConverter_Release(This) (This)->lpVtbl->Release(This)
4883 /*** ISequentialStream methods ***/
4884 #define ISpStreamFormatConverter_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
4885 #define ISpStreamFormatConverter_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
4886 /*** IStream methods ***/
4887 #define ISpStreamFormatConverter_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
4888 #define ISpStreamFormatConverter_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
4889 #define ISpStreamFormatConverter_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
4890 #define ISpStreamFormatConverter_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
4891 #define ISpStreamFormatConverter_Revert(This) (This)->lpVtbl->Revert(This)
4892 #define ISpStreamFormatConverter_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
4893 #define ISpStreamFormatConverter_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
4894 #define ISpStreamFormatConverter_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
4895 #define ISpStreamFormatConverter_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
4896 /*** ISpStreamFormat methods ***/
4897 #define ISpStreamFormatConverter_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
4898 /*** ISpStreamFormatConverter methods ***/
4899 #define ISpStreamFormatConverter_SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream) (This)->lpVtbl->SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream)
4900 #define ISpStreamFormatConverter_GetBaseStream(This,ppStream) (This)->lpVtbl->GetBaseStream(This,ppStream)
4901 #define ISpStreamFormatConverter_SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream) (This)->lpVtbl->SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream)
4902 #define ISpStreamFormatConverter_ResetSeekPosition(This) (This)->lpVtbl->ResetSeekPosition(This)
4903 #define ISpStreamFormatConverter_ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream) (This)->lpVtbl->ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream)
4904 #define ISpStreamFormatConverter_ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream) (This)->lpVtbl->ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream)
4905 #else
4906 /*** IUnknown methods ***/
4907 static FORCEINLINE HRESULT ISpStreamFormatConverter_QueryInterface(ISpStreamFormatConverter* This,REFIID riid,void **ppvObject) {
4908     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4909 }
4910 static FORCEINLINE ULONG ISpStreamFormatConverter_AddRef(ISpStreamFormatConverter* This) {
4911     return This->lpVtbl->AddRef(This);
4912 }
4913 static FORCEINLINE ULONG ISpStreamFormatConverter_Release(ISpStreamFormatConverter* This) {
4914     return This->lpVtbl->Release(This);
4915 }
4916 /*** ISequentialStream methods ***/
4917 static FORCEINLINE HRESULT ISpStreamFormatConverter_Read(ISpStreamFormatConverter* This,void *pv,ULONG cb,ULONG *pcbRead) {
4918     return This->lpVtbl->Read(This,pv,cb,pcbRead);
4919 }
4920 static FORCEINLINE HRESULT ISpStreamFormatConverter_Write(ISpStreamFormatConverter* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
4921     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
4922 }
4923 /*** IStream methods ***/
4924 static FORCEINLINE HRESULT ISpStreamFormatConverter_Seek(ISpStreamFormatConverter* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
4925     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
4926 }
4927 static FORCEINLINE HRESULT ISpStreamFormatConverter_SetSize(ISpStreamFormatConverter* This,ULARGE_INTEGER libNewSize) {
4928     return This->lpVtbl->SetSize(This,libNewSize);
4929 }
4930 static FORCEINLINE HRESULT ISpStreamFormatConverter_CopyTo(ISpStreamFormatConverter* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
4931     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
4932 }
4933 static FORCEINLINE HRESULT ISpStreamFormatConverter_Commit(ISpStreamFormatConverter* This,DWORD grfCommitFlags) {
4934     return This->lpVtbl->Commit(This,grfCommitFlags);
4935 }
4936 static FORCEINLINE HRESULT ISpStreamFormatConverter_Revert(ISpStreamFormatConverter* This) {
4937     return This->lpVtbl->Revert(This);
4938 }
4939 static FORCEINLINE HRESULT ISpStreamFormatConverter_LockRegion(ISpStreamFormatConverter* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4940     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
4941 }
4942 static FORCEINLINE HRESULT ISpStreamFormatConverter_UnlockRegion(ISpStreamFormatConverter* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4943     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
4944 }
4945 static FORCEINLINE HRESULT ISpStreamFormatConverter_Stat(ISpStreamFormatConverter* This,STATSTG *pstatstg,DWORD grfStatFlag) {
4946     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
4947 }
4948 static FORCEINLINE HRESULT ISpStreamFormatConverter_Clone(ISpStreamFormatConverter* This,IStream **ppstm) {
4949     return This->lpVtbl->Clone(This,ppstm);
4950 }
4951 /*** ISpStreamFormat methods ***/
4952 static FORCEINLINE HRESULT ISpStreamFormatConverter_GetFormat(ISpStreamFormatConverter* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
4953     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
4954 }
4955 /*** ISpStreamFormatConverter methods ***/
4956 static FORCEINLINE HRESULT ISpStreamFormatConverter_SetBaseStream(ISpStreamFormatConverter* This,ISpStreamFormat *pStream,WINBOOL fSetFormatToBaseStreamFormat,WINBOOL fWriteToBaseStream) {
4957     return This->lpVtbl->SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream);
4958 }
4959 static FORCEINLINE HRESULT ISpStreamFormatConverter_GetBaseStream(ISpStreamFormatConverter* This,ISpStreamFormat **ppStream) {
4960     return This->lpVtbl->GetBaseStream(This,ppStream);
4961 }
4962 static FORCEINLINE HRESULT ISpStreamFormatConverter_SetFormat(ISpStreamFormatConverter* This,REFGUID rguidFormatIdOfConvertedStream,const WAVEFORMATEX *pWaveFormatExOfConvertedStream) {
4963     return This->lpVtbl->SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream);
4964 }
4965 static FORCEINLINE HRESULT ISpStreamFormatConverter_ResetSeekPosition(ISpStreamFormatConverter* This) {
4966     return This->lpVtbl->ResetSeekPosition(This);
4967 }
4968 static FORCEINLINE HRESULT ISpStreamFormatConverter_ScaleConvertedToBaseOffset(ISpStreamFormatConverter* This,ULONGLONG ullOffsetConvertedStream,ULONGLONG *pullOffsetBaseStream) {
4969     return This->lpVtbl->ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream);
4970 }
4971 static FORCEINLINE HRESULT ISpStreamFormatConverter_ScaleBaseToConvertedOffset(ISpStreamFormatConverter* This,ULONGLONG ullOffsetBaseStream,ULONGLONG *pullOffsetConvertedStream) {
4972     return This->lpVtbl->ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream);
4973 }
4974 #endif
4975 #endif
4976 
4977 #endif
4978 
4979 HRESULT STDMETHODCALLTYPE ISpStreamFormatConverter_SetBaseStream_Proxy(
4980     ISpStreamFormatConverter* This,
4981     ISpStreamFormat *pStream,
4982     WINBOOL fSetFormatToBaseStreamFormat,
4983     WINBOOL fWriteToBaseStream);
4984 void __RPC_STUB ISpStreamFormatConverter_SetBaseStream_Stub(
4985     IRpcStubBuffer* This,
4986     IRpcChannelBuffer* pRpcChannelBuffer,
4987     PRPC_MESSAGE pRpcMessage,
4988     DWORD* pdwStubPhase);
4989 HRESULT STDMETHODCALLTYPE ISpStreamFormatConverter_GetBaseStream_Proxy(
4990     ISpStreamFormatConverter* This,
4991     ISpStreamFormat **ppStream);
4992 void __RPC_STUB ISpStreamFormatConverter_GetBaseStream_Stub(
4993     IRpcStubBuffer* This,
4994     IRpcChannelBuffer* pRpcChannelBuffer,
4995     PRPC_MESSAGE pRpcMessage,
4996     DWORD* pdwStubPhase);
4997 HRESULT STDMETHODCALLTYPE ISpStreamFormatConverter_SetFormat_Proxy(
4998     ISpStreamFormatConverter* This,
4999     REFGUID rguidFormatIdOfConvertedStream,
5000     const WAVEFORMATEX *pWaveFormatExOfConvertedStream);
5001 void __RPC_STUB ISpStreamFormatConverter_SetFormat_Stub(
5002     IRpcStubBuffer* This,
5003     IRpcChannelBuffer* pRpcChannelBuffer,
5004     PRPC_MESSAGE pRpcMessage,
5005     DWORD* pdwStubPhase);
5006 HRESULT STDMETHODCALLTYPE ISpStreamFormatConverter_ResetSeekPosition_Proxy(
5007     ISpStreamFormatConverter* This);
5008 void __RPC_STUB ISpStreamFormatConverter_ResetSeekPosition_Stub(
5009     IRpcStubBuffer* This,
5010     IRpcChannelBuffer* pRpcChannelBuffer,
5011     PRPC_MESSAGE pRpcMessage,
5012     DWORD* pdwStubPhase);
5013 HRESULT STDMETHODCALLTYPE ISpStreamFormatConverter_ScaleConvertedToBaseOffset_Proxy(
5014     ISpStreamFormatConverter* This,
5015     ULONGLONG ullOffsetConvertedStream,
5016     ULONGLONG *pullOffsetBaseStream);
5017 void __RPC_STUB ISpStreamFormatConverter_ScaleConvertedToBaseOffset_Stub(
5018     IRpcStubBuffer* This,
5019     IRpcChannelBuffer* pRpcChannelBuffer,
5020     PRPC_MESSAGE pRpcMessage,
5021     DWORD* pdwStubPhase);
5022 HRESULT STDMETHODCALLTYPE ISpStreamFormatConverter_ScaleBaseToConvertedOffset_Proxy(
5023     ISpStreamFormatConverter* This,
5024     ULONGLONG ullOffsetBaseStream,
5025     ULONGLONG *pullOffsetConvertedStream);
5026 void __RPC_STUB ISpStreamFormatConverter_ScaleBaseToConvertedOffset_Stub(
5027     IRpcStubBuffer* This,
5028     IRpcChannelBuffer* pRpcChannelBuffer,
5029     PRPC_MESSAGE pRpcMessage,
5030     DWORD* pdwStubPhase);
5031 
5032 #endif  /* __ISpStreamFormatConverter_INTERFACE_DEFINED__ */
5033 
5034 typedef struct SPAUDIOSTATUS {
5035     LONG cbFreeBuffSpace;
5036     ULONG cbNonBlockingIO;
5037     SPAUDIOSTATE State;
5038     ULONGLONG CurSeekPos;
5039     ULONGLONG CurDevicePos;
5040     DWORD dwAudioLevel;
5041     DWORD dwReserved2;
5042 } SPAUDIOSTATUS;
5043 typedef struct SPAUDIOBUFFERINFO {
5044     ULONG ulMsMinNotification;
5045     ULONG ulMsBufferSize;
5046     ULONG ulMsEventBias;
5047 } SPAUDIOBUFFERINFO;
5048 /*****************************************************************************
5049  * ISpAudio interface
5050  */
5051 #ifndef __ISpAudio_INTERFACE_DEFINED__
5052 #define __ISpAudio_INTERFACE_DEFINED__
5053 
5054 DEFINE_GUID(IID_ISpAudio, 0xc05c768f, 0xfae8, 0x4ec2, 0x8e,0x07, 0x33,0x83,0x21,0xc1,0x24,0x52);
5055 #if defined(__cplusplus) && !defined(CINTERFACE)
5056 MIDL_INTERFACE("c05c768f-fae8-4ec2-8e07-338321c12452")
5057 ISpAudio : public ISpStreamFormat
5058 {
5059     virtual HRESULT STDMETHODCALLTYPE SetState(
5060         SPAUDIOSTATE NewState,
5061         ULONGLONG ullReserved) = 0;
5062 
5063     virtual HRESULT STDMETHODCALLTYPE SetFormat(
5064         REFGUID rguidFmtId,
5065         const WAVEFORMATEX *pWaveFormatEx) = 0;
5066 
5067     virtual HRESULT STDMETHODCALLTYPE GetStatus(
5068         SPAUDIOSTATUS *pStatus) = 0;
5069 
5070     virtual HRESULT STDMETHODCALLTYPE SetBufferInfo(
5071         const SPAUDIOBUFFERINFO *pBuffInfo) = 0;
5072 
5073     virtual HRESULT STDMETHODCALLTYPE GetBufferInfo(
5074         SPAUDIOBUFFERINFO *pBuffInfo) = 0;
5075 
5076     virtual HRESULT STDMETHODCALLTYPE GetDefaultFormat(
5077         GUID *pFormatId,
5078         WAVEFORMATEX **ppCoMemWaveFormatEx) = 0;
5079 
5080     virtual HANDLE STDMETHODCALLTYPE EventHandle(
5081         ) = 0;
5082 
5083     virtual HRESULT STDMETHODCALLTYPE GetVolumeLevel(
5084         ULONG *pLevel) = 0;
5085 
5086     virtual HRESULT STDMETHODCALLTYPE SetVolumeLevel(
5087         ULONG Level) = 0;
5088 
5089     virtual HRESULT STDMETHODCALLTYPE GetBufferNotifySize(
5090         ULONG *pcbSize) = 0;
5091 
5092     virtual HRESULT STDMETHODCALLTYPE SetBufferNotifySize(
5093         ULONG cbSize) = 0;
5094 
5095 };
5096 #ifdef __CRT_UUID_DECL
5097 __CRT_UUID_DECL(ISpAudio, 0xc05c768f, 0xfae8, 0x4ec2, 0x8e,0x07, 0x33,0x83,0x21,0xc1,0x24,0x52)
5098 #endif
5099 #else
5100 typedef struct ISpAudioVtbl {
5101     BEGIN_INTERFACE
5102 
5103     /*** IUnknown methods ***/
5104     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5105         ISpAudio* This,
5106         REFIID riid,
5107         void **ppvObject);
5108 
5109     ULONG (STDMETHODCALLTYPE *AddRef)(
5110         ISpAudio* This);
5111 
5112     ULONG (STDMETHODCALLTYPE *Release)(
5113         ISpAudio* This);
5114 
5115     /*** ISequentialStream methods ***/
5116     HRESULT (STDMETHODCALLTYPE *Read)(
5117         ISpAudio* This,
5118         void *pv,
5119         ULONG cb,
5120         ULONG *pcbRead);
5121 
5122     HRESULT (STDMETHODCALLTYPE *Write)(
5123         ISpAudio* This,
5124         const void *pv,
5125         ULONG cb,
5126         ULONG *pcbWritten);
5127 
5128     /*** IStream methods ***/
5129     HRESULT (STDMETHODCALLTYPE *Seek)(
5130         ISpAudio* This,
5131         LARGE_INTEGER dlibMove,
5132         DWORD dwOrigin,
5133         ULARGE_INTEGER *plibNewPosition);
5134 
5135     HRESULT (STDMETHODCALLTYPE *SetSize)(
5136         ISpAudio* This,
5137         ULARGE_INTEGER libNewSize);
5138 
5139     HRESULT (STDMETHODCALLTYPE *CopyTo)(
5140         ISpAudio* This,
5141         IStream *pstm,
5142         ULARGE_INTEGER cb,
5143         ULARGE_INTEGER *pcbRead,
5144         ULARGE_INTEGER *pcbWritten);
5145 
5146     HRESULT (STDMETHODCALLTYPE *Commit)(
5147         ISpAudio* This,
5148         DWORD grfCommitFlags);
5149 
5150     HRESULT (STDMETHODCALLTYPE *Revert)(
5151         ISpAudio* This);
5152 
5153     HRESULT (STDMETHODCALLTYPE *LockRegion)(
5154         ISpAudio* This,
5155         ULARGE_INTEGER libOffset,
5156         ULARGE_INTEGER cb,
5157         DWORD dwLockType);
5158 
5159     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
5160         ISpAudio* This,
5161         ULARGE_INTEGER libOffset,
5162         ULARGE_INTEGER cb,
5163         DWORD dwLockType);
5164 
5165     HRESULT (STDMETHODCALLTYPE *Stat)(
5166         ISpAudio* This,
5167         STATSTG *pstatstg,
5168         DWORD grfStatFlag);
5169 
5170     HRESULT (STDMETHODCALLTYPE *Clone)(
5171         ISpAudio* This,
5172         IStream **ppstm);
5173 
5174     /*** ISpStreamFormat methods ***/
5175     HRESULT (STDMETHODCALLTYPE *GetFormat)(
5176         ISpAudio* This,
5177         GUID *pguidFormatId,
5178         WAVEFORMATEX **ppCoMemWaveFormatEx);
5179 
5180     /*** ISpAudio methods ***/
5181     HRESULT (STDMETHODCALLTYPE *SetState)(
5182         ISpAudio* This,
5183         SPAUDIOSTATE NewState,
5184         ULONGLONG ullReserved);
5185 
5186     HRESULT (STDMETHODCALLTYPE *SetFormat)(
5187         ISpAudio* This,
5188         REFGUID rguidFmtId,
5189         const WAVEFORMATEX *pWaveFormatEx);
5190 
5191     HRESULT (STDMETHODCALLTYPE *GetStatus)(
5192         ISpAudio* This,
5193         SPAUDIOSTATUS *pStatus);
5194 
5195     HRESULT (STDMETHODCALLTYPE *SetBufferInfo)(
5196         ISpAudio* This,
5197         const SPAUDIOBUFFERINFO *pBuffInfo);
5198 
5199     HRESULT (STDMETHODCALLTYPE *GetBufferInfo)(
5200         ISpAudio* This,
5201         SPAUDIOBUFFERINFO *pBuffInfo);
5202 
5203     HRESULT (STDMETHODCALLTYPE *GetDefaultFormat)(
5204         ISpAudio* This,
5205         GUID *pFormatId,
5206         WAVEFORMATEX **ppCoMemWaveFormatEx);
5207 
5208     HANDLE (STDMETHODCALLTYPE *EventHandle)(
5209         ISpAudio* This);
5210 
5211     HRESULT (STDMETHODCALLTYPE *GetVolumeLevel)(
5212         ISpAudio* This,
5213         ULONG *pLevel);
5214 
5215     HRESULT (STDMETHODCALLTYPE *SetVolumeLevel)(
5216         ISpAudio* This,
5217         ULONG Level);
5218 
5219     HRESULT (STDMETHODCALLTYPE *GetBufferNotifySize)(
5220         ISpAudio* This,
5221         ULONG *pcbSize);
5222 
5223     HRESULT (STDMETHODCALLTYPE *SetBufferNotifySize)(
5224         ISpAudio* This,
5225         ULONG cbSize);
5226 
5227     END_INTERFACE
5228 } ISpAudioVtbl;
5229 interface ISpAudio {
5230     CONST_VTBL ISpAudioVtbl* lpVtbl;
5231 };
5232 
5233 #ifdef COBJMACROS
5234 #ifndef WIDL_C_INLINE_WRAPPERS
5235 /*** IUnknown methods ***/
5236 #define ISpAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5237 #define ISpAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
5238 #define ISpAudio_Release(This) (This)->lpVtbl->Release(This)
5239 /*** ISequentialStream methods ***/
5240 #define ISpAudio_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
5241 #define ISpAudio_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
5242 /*** IStream methods ***/
5243 #define ISpAudio_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
5244 #define ISpAudio_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
5245 #define ISpAudio_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
5246 #define ISpAudio_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
5247 #define ISpAudio_Revert(This) (This)->lpVtbl->Revert(This)
5248 #define ISpAudio_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
5249 #define ISpAudio_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
5250 #define ISpAudio_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
5251 #define ISpAudio_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
5252 /*** ISpStreamFormat methods ***/
5253 #define ISpAudio_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
5254 /*** ISpAudio methods ***/
5255 #define ISpAudio_SetState(This,NewState,ullReserved) (This)->lpVtbl->SetState(This,NewState,ullReserved)
5256 #define ISpAudio_SetFormat(This,rguidFmtId,pWaveFormatEx) (This)->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx)
5257 #define ISpAudio_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
5258 #define ISpAudio_SetBufferInfo(This,pBuffInfo) (This)->lpVtbl->SetBufferInfo(This,pBuffInfo)
5259 #define ISpAudio_GetBufferInfo(This,pBuffInfo) (This)->lpVtbl->GetBufferInfo(This,pBuffInfo)
5260 #define ISpAudio_GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx)
5261 #define ISpAudio_EventHandle(This) (This)->lpVtbl->EventHandle(This)
5262 #define ISpAudio_GetVolumeLevel(This,pLevel) (This)->lpVtbl->GetVolumeLevel(This,pLevel)
5263 #define ISpAudio_SetVolumeLevel(This,Level) (This)->lpVtbl->SetVolumeLevel(This,Level)
5264 #define ISpAudio_GetBufferNotifySize(This,pcbSize) (This)->lpVtbl->GetBufferNotifySize(This,pcbSize)
5265 #define ISpAudio_SetBufferNotifySize(This,cbSize) (This)->lpVtbl->SetBufferNotifySize(This,cbSize)
5266 #else
5267 /*** IUnknown methods ***/
5268 static FORCEINLINE HRESULT ISpAudio_QueryInterface(ISpAudio* This,REFIID riid,void **ppvObject) {
5269     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5270 }
5271 static FORCEINLINE ULONG ISpAudio_AddRef(ISpAudio* This) {
5272     return This->lpVtbl->AddRef(This);
5273 }
5274 static FORCEINLINE ULONG ISpAudio_Release(ISpAudio* This) {
5275     return This->lpVtbl->Release(This);
5276 }
5277 /*** ISequentialStream methods ***/
5278 static FORCEINLINE HRESULT ISpAudio_Read(ISpAudio* This,void *pv,ULONG cb,ULONG *pcbRead) {
5279     return This->lpVtbl->Read(This,pv,cb,pcbRead);
5280 }
5281 static FORCEINLINE HRESULT ISpAudio_Write(ISpAudio* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
5282     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
5283 }
5284 /*** IStream methods ***/
5285 static FORCEINLINE HRESULT ISpAudio_Seek(ISpAudio* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
5286     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
5287 }
5288 static FORCEINLINE HRESULT ISpAudio_SetSize(ISpAudio* This,ULARGE_INTEGER libNewSize) {
5289     return This->lpVtbl->SetSize(This,libNewSize);
5290 }
5291 static FORCEINLINE HRESULT ISpAudio_CopyTo(ISpAudio* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
5292     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
5293 }
5294 static FORCEINLINE HRESULT ISpAudio_Commit(ISpAudio* This,DWORD grfCommitFlags) {
5295     return This->lpVtbl->Commit(This,grfCommitFlags);
5296 }
5297 static FORCEINLINE HRESULT ISpAudio_Revert(ISpAudio* This) {
5298     return This->lpVtbl->Revert(This);
5299 }
5300 static FORCEINLINE HRESULT ISpAudio_LockRegion(ISpAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
5301     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
5302 }
5303 static FORCEINLINE HRESULT ISpAudio_UnlockRegion(ISpAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
5304     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
5305 }
5306 static FORCEINLINE HRESULT ISpAudio_Stat(ISpAudio* This,STATSTG *pstatstg,DWORD grfStatFlag) {
5307     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
5308 }
5309 static FORCEINLINE HRESULT ISpAudio_Clone(ISpAudio* This,IStream **ppstm) {
5310     return This->lpVtbl->Clone(This,ppstm);
5311 }
5312 /*** ISpStreamFormat methods ***/
5313 static FORCEINLINE HRESULT ISpAudio_GetFormat(ISpAudio* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
5314     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
5315 }
5316 /*** ISpAudio methods ***/
5317 static FORCEINLINE HRESULT ISpAudio_SetState(ISpAudio* This,SPAUDIOSTATE NewState,ULONGLONG ullReserved) {
5318     return This->lpVtbl->SetState(This,NewState,ullReserved);
5319 }
5320 static FORCEINLINE HRESULT ISpAudio_SetFormat(ISpAudio* This,REFGUID rguidFmtId,const WAVEFORMATEX *pWaveFormatEx) {
5321     return This->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx);
5322 }
5323 static FORCEINLINE HRESULT ISpAudio_GetStatus(ISpAudio* This,SPAUDIOSTATUS *pStatus) {
5324     return This->lpVtbl->GetStatus(This,pStatus);
5325 }
5326 static FORCEINLINE HRESULT ISpAudio_SetBufferInfo(ISpAudio* This,const SPAUDIOBUFFERINFO *pBuffInfo) {
5327     return This->lpVtbl->SetBufferInfo(This,pBuffInfo);
5328 }
5329 static FORCEINLINE HRESULT ISpAudio_GetBufferInfo(ISpAudio* This,SPAUDIOBUFFERINFO *pBuffInfo) {
5330     return This->lpVtbl->GetBufferInfo(This,pBuffInfo);
5331 }
5332 static FORCEINLINE HRESULT ISpAudio_GetDefaultFormat(ISpAudio* This,GUID *pFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
5333     return This->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx);
5334 }
5335 static FORCEINLINE HANDLE ISpAudio_EventHandle(ISpAudio* This) {
5336     return This->lpVtbl->EventHandle(This);
5337 }
5338 static FORCEINLINE HRESULT ISpAudio_GetVolumeLevel(ISpAudio* This,ULONG *pLevel) {
5339     return This->lpVtbl->GetVolumeLevel(This,pLevel);
5340 }
5341 static FORCEINLINE HRESULT ISpAudio_SetVolumeLevel(ISpAudio* This,ULONG Level) {
5342     return This->lpVtbl->SetVolumeLevel(This,Level);
5343 }
5344 static FORCEINLINE HRESULT ISpAudio_GetBufferNotifySize(ISpAudio* This,ULONG *pcbSize) {
5345     return This->lpVtbl->GetBufferNotifySize(This,pcbSize);
5346 }
5347 static FORCEINLINE HRESULT ISpAudio_SetBufferNotifySize(ISpAudio* This,ULONG cbSize) {
5348     return This->lpVtbl->SetBufferNotifySize(This,cbSize);
5349 }
5350 #endif
5351 #endif
5352 
5353 #endif
5354 
5355 HRESULT STDMETHODCALLTYPE ISpAudio_SetState_Proxy(
5356     ISpAudio* This,
5357     SPAUDIOSTATE NewState,
5358     ULONGLONG ullReserved);
5359 void __RPC_STUB ISpAudio_SetState_Stub(
5360     IRpcStubBuffer* This,
5361     IRpcChannelBuffer* pRpcChannelBuffer,
5362     PRPC_MESSAGE pRpcMessage,
5363     DWORD* pdwStubPhase);
5364 HRESULT STDMETHODCALLTYPE ISpAudio_SetFormat_Proxy(
5365     ISpAudio* This,
5366     REFGUID rguidFmtId,
5367     const WAVEFORMATEX *pWaveFormatEx);
5368 void __RPC_STUB ISpAudio_SetFormat_Stub(
5369     IRpcStubBuffer* This,
5370     IRpcChannelBuffer* pRpcChannelBuffer,
5371     PRPC_MESSAGE pRpcMessage,
5372     DWORD* pdwStubPhase);
5373 HRESULT STDMETHODCALLTYPE ISpAudio_GetStatus_Proxy(
5374     ISpAudio* This,
5375     SPAUDIOSTATUS *pStatus);
5376 void __RPC_STUB ISpAudio_GetStatus_Stub(
5377     IRpcStubBuffer* This,
5378     IRpcChannelBuffer* pRpcChannelBuffer,
5379     PRPC_MESSAGE pRpcMessage,
5380     DWORD* pdwStubPhase);
5381 HRESULT STDMETHODCALLTYPE ISpAudio_SetBufferInfo_Proxy(
5382     ISpAudio* This,
5383     const SPAUDIOBUFFERINFO *pBuffInfo);
5384 void __RPC_STUB ISpAudio_SetBufferInfo_Stub(
5385     IRpcStubBuffer* This,
5386     IRpcChannelBuffer* pRpcChannelBuffer,
5387     PRPC_MESSAGE pRpcMessage,
5388     DWORD* pdwStubPhase);
5389 HRESULT STDMETHODCALLTYPE ISpAudio_GetBufferInfo_Proxy(
5390     ISpAudio* This,
5391     SPAUDIOBUFFERINFO *pBuffInfo);
5392 void __RPC_STUB ISpAudio_GetBufferInfo_Stub(
5393     IRpcStubBuffer* This,
5394     IRpcChannelBuffer* pRpcChannelBuffer,
5395     PRPC_MESSAGE pRpcMessage,
5396     DWORD* pdwStubPhase);
5397 HRESULT STDMETHODCALLTYPE ISpAudio_GetDefaultFormat_Proxy(
5398     ISpAudio* This,
5399     GUID *pFormatId,
5400     WAVEFORMATEX **ppCoMemWaveFormatEx);
5401 void __RPC_STUB ISpAudio_GetDefaultFormat_Stub(
5402     IRpcStubBuffer* This,
5403     IRpcChannelBuffer* pRpcChannelBuffer,
5404     PRPC_MESSAGE pRpcMessage,
5405     DWORD* pdwStubPhase);
5406 HANDLE STDMETHODCALLTYPE ISpAudio_EventHandle_Proxy(
5407     ISpAudio* This);
5408 void __RPC_STUB ISpAudio_EventHandle_Stub(
5409     IRpcStubBuffer* This,
5410     IRpcChannelBuffer* pRpcChannelBuffer,
5411     PRPC_MESSAGE pRpcMessage,
5412     DWORD* pdwStubPhase);
5413 HRESULT STDMETHODCALLTYPE ISpAudio_GetVolumeLevel_Proxy(
5414     ISpAudio* This,
5415     ULONG *pLevel);
5416 void __RPC_STUB ISpAudio_GetVolumeLevel_Stub(
5417     IRpcStubBuffer* This,
5418     IRpcChannelBuffer* pRpcChannelBuffer,
5419     PRPC_MESSAGE pRpcMessage,
5420     DWORD* pdwStubPhase);
5421 HRESULT STDMETHODCALLTYPE ISpAudio_SetVolumeLevel_Proxy(
5422     ISpAudio* This,
5423     ULONG Level);
5424 void __RPC_STUB ISpAudio_SetVolumeLevel_Stub(
5425     IRpcStubBuffer* This,
5426     IRpcChannelBuffer* pRpcChannelBuffer,
5427     PRPC_MESSAGE pRpcMessage,
5428     DWORD* pdwStubPhase);
5429 HRESULT STDMETHODCALLTYPE ISpAudio_GetBufferNotifySize_Proxy(
5430     ISpAudio* This,
5431     ULONG *pcbSize);
5432 void __RPC_STUB ISpAudio_GetBufferNotifySize_Stub(
5433     IRpcStubBuffer* This,
5434     IRpcChannelBuffer* pRpcChannelBuffer,
5435     PRPC_MESSAGE pRpcMessage,
5436     DWORD* pdwStubPhase);
5437 HRESULT STDMETHODCALLTYPE ISpAudio_SetBufferNotifySize_Proxy(
5438     ISpAudio* This,
5439     ULONG cbSize);
5440 void __RPC_STUB ISpAudio_SetBufferNotifySize_Stub(
5441     IRpcStubBuffer* This,
5442     IRpcChannelBuffer* pRpcChannelBuffer,
5443     PRPC_MESSAGE pRpcMessage,
5444     DWORD* pdwStubPhase);
5445 
5446 #endif  /* __ISpAudio_INTERFACE_DEFINED__ */
5447 
5448 /*****************************************************************************
5449  * ISpMMSysAudio interface
5450  */
5451 #ifndef __ISpMMSysAudio_INTERFACE_DEFINED__
5452 #define __ISpMMSysAudio_INTERFACE_DEFINED__
5453 
5454 DEFINE_GUID(IID_ISpMMSysAudio, 0x15806f6e, 0x1d70, 0x4b48, 0x98,0xe6, 0x3b,0x1a,0x00,0x75,0x09,0xab);
5455 #if defined(__cplusplus) && !defined(CINTERFACE)
5456 MIDL_INTERFACE("15806f6e-1d70-4b48-98e6-3b1a007509ab")
5457 ISpMMSysAudio : public ISpAudio
5458 {
5459     virtual HRESULT STDMETHODCALLTYPE GetDeviceId(
5460         UINT *puDeviceId) = 0;
5461 
5462     virtual HRESULT STDMETHODCALLTYPE SetDeviceId(
5463         UINT uDeviceId) = 0;
5464 
5465     virtual HRESULT STDMETHODCALLTYPE GetMMHandle(
5466         void **pHandle) = 0;
5467 
5468     virtual HRESULT STDMETHODCALLTYPE GetLineId(
5469         UINT *puLineId) = 0;
5470 
5471     virtual HRESULT STDMETHODCALLTYPE SetLineId(
5472         UINT uLineId) = 0;
5473 
5474 };
5475 #ifdef __CRT_UUID_DECL
5476 __CRT_UUID_DECL(ISpMMSysAudio, 0x15806f6e, 0x1d70, 0x4b48, 0x98,0xe6, 0x3b,0x1a,0x00,0x75,0x09,0xab)
5477 #endif
5478 #else
5479 typedef struct ISpMMSysAudioVtbl {
5480     BEGIN_INTERFACE
5481 
5482     /*** IUnknown methods ***/
5483     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5484         ISpMMSysAudio* This,
5485         REFIID riid,
5486         void **ppvObject);
5487 
5488     ULONG (STDMETHODCALLTYPE *AddRef)(
5489         ISpMMSysAudio* This);
5490 
5491     ULONG (STDMETHODCALLTYPE *Release)(
5492         ISpMMSysAudio* This);
5493 
5494     /*** ISequentialStream methods ***/
5495     HRESULT (STDMETHODCALLTYPE *Read)(
5496         ISpMMSysAudio* This,
5497         void *pv,
5498         ULONG cb,
5499         ULONG *pcbRead);
5500 
5501     HRESULT (STDMETHODCALLTYPE *Write)(
5502         ISpMMSysAudio* This,
5503         const void *pv,
5504         ULONG cb,
5505         ULONG *pcbWritten);
5506 
5507     /*** IStream methods ***/
5508     HRESULT (STDMETHODCALLTYPE *Seek)(
5509         ISpMMSysAudio* This,
5510         LARGE_INTEGER dlibMove,
5511         DWORD dwOrigin,
5512         ULARGE_INTEGER *plibNewPosition);
5513 
5514     HRESULT (STDMETHODCALLTYPE *SetSize)(
5515         ISpMMSysAudio* This,
5516         ULARGE_INTEGER libNewSize);
5517 
5518     HRESULT (STDMETHODCALLTYPE *CopyTo)(
5519         ISpMMSysAudio* This,
5520         IStream *pstm,
5521         ULARGE_INTEGER cb,
5522         ULARGE_INTEGER *pcbRead,
5523         ULARGE_INTEGER *pcbWritten);
5524 
5525     HRESULT (STDMETHODCALLTYPE *Commit)(
5526         ISpMMSysAudio* This,
5527         DWORD grfCommitFlags);
5528 
5529     HRESULT (STDMETHODCALLTYPE *Revert)(
5530         ISpMMSysAudio* This);
5531 
5532     HRESULT (STDMETHODCALLTYPE *LockRegion)(
5533         ISpMMSysAudio* This,
5534         ULARGE_INTEGER libOffset,
5535         ULARGE_INTEGER cb,
5536         DWORD dwLockType);
5537 
5538     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
5539         ISpMMSysAudio* This,
5540         ULARGE_INTEGER libOffset,
5541         ULARGE_INTEGER cb,
5542         DWORD dwLockType);
5543 
5544     HRESULT (STDMETHODCALLTYPE *Stat)(
5545         ISpMMSysAudio* This,
5546         STATSTG *pstatstg,
5547         DWORD grfStatFlag);
5548 
5549     HRESULT (STDMETHODCALLTYPE *Clone)(
5550         ISpMMSysAudio* This,
5551         IStream **ppstm);
5552 
5553     /*** ISpStreamFormat methods ***/
5554     HRESULT (STDMETHODCALLTYPE *GetFormat)(
5555         ISpMMSysAudio* This,
5556         GUID *pguidFormatId,
5557         WAVEFORMATEX **ppCoMemWaveFormatEx);
5558 
5559     /*** ISpAudio methods ***/
5560     HRESULT (STDMETHODCALLTYPE *SetState)(
5561         ISpMMSysAudio* This,
5562         SPAUDIOSTATE NewState,
5563         ULONGLONG ullReserved);
5564 
5565     HRESULT (STDMETHODCALLTYPE *SetFormat)(
5566         ISpMMSysAudio* This,
5567         REFGUID rguidFmtId,
5568         const WAVEFORMATEX *pWaveFormatEx);
5569 
5570     HRESULT (STDMETHODCALLTYPE *GetStatus)(
5571         ISpMMSysAudio* This,
5572         SPAUDIOSTATUS *pStatus);
5573 
5574     HRESULT (STDMETHODCALLTYPE *SetBufferInfo)(
5575         ISpMMSysAudio* This,
5576         const SPAUDIOBUFFERINFO *pBuffInfo);
5577 
5578     HRESULT (STDMETHODCALLTYPE *GetBufferInfo)(
5579         ISpMMSysAudio* This,
5580         SPAUDIOBUFFERINFO *pBuffInfo);
5581 
5582     HRESULT (STDMETHODCALLTYPE *GetDefaultFormat)(
5583         ISpMMSysAudio* This,
5584         GUID *pFormatId,
5585         WAVEFORMATEX **ppCoMemWaveFormatEx);
5586 
5587     HANDLE (STDMETHODCALLTYPE *EventHandle)(
5588         ISpMMSysAudio* This);
5589 
5590     HRESULT (STDMETHODCALLTYPE *GetVolumeLevel)(
5591         ISpMMSysAudio* This,
5592         ULONG *pLevel);
5593 
5594     HRESULT (STDMETHODCALLTYPE *SetVolumeLevel)(
5595         ISpMMSysAudio* This,
5596         ULONG Level);
5597 
5598     HRESULT (STDMETHODCALLTYPE *GetBufferNotifySize)(
5599         ISpMMSysAudio* This,
5600         ULONG *pcbSize);
5601 
5602     HRESULT (STDMETHODCALLTYPE *SetBufferNotifySize)(
5603         ISpMMSysAudio* This,
5604         ULONG cbSize);
5605 
5606     /*** ISpMMSysAudio methods ***/
5607     HRESULT (STDMETHODCALLTYPE *GetDeviceId)(
5608         ISpMMSysAudio* This,
5609         UINT *puDeviceId);
5610 
5611     HRESULT (STDMETHODCALLTYPE *SetDeviceId)(
5612         ISpMMSysAudio* This,
5613         UINT uDeviceId);
5614 
5615     HRESULT (STDMETHODCALLTYPE *GetMMHandle)(
5616         ISpMMSysAudio* This,
5617         void **pHandle);
5618 
5619     HRESULT (STDMETHODCALLTYPE *GetLineId)(
5620         ISpMMSysAudio* This,
5621         UINT *puLineId);
5622 
5623     HRESULT (STDMETHODCALLTYPE *SetLineId)(
5624         ISpMMSysAudio* This,
5625         UINT uLineId);
5626 
5627     END_INTERFACE
5628 } ISpMMSysAudioVtbl;
5629 interface ISpMMSysAudio {
5630     CONST_VTBL ISpMMSysAudioVtbl* lpVtbl;
5631 };
5632 
5633 #ifdef COBJMACROS
5634 #ifndef WIDL_C_INLINE_WRAPPERS
5635 /*** IUnknown methods ***/
5636 #define ISpMMSysAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5637 #define ISpMMSysAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
5638 #define ISpMMSysAudio_Release(This) (This)->lpVtbl->Release(This)
5639 /*** ISequentialStream methods ***/
5640 #define ISpMMSysAudio_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
5641 #define ISpMMSysAudio_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
5642 /*** IStream methods ***/
5643 #define ISpMMSysAudio_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
5644 #define ISpMMSysAudio_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
5645 #define ISpMMSysAudio_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
5646 #define ISpMMSysAudio_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
5647 #define ISpMMSysAudio_Revert(This) (This)->lpVtbl->Revert(This)
5648 #define ISpMMSysAudio_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
5649 #define ISpMMSysAudio_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
5650 #define ISpMMSysAudio_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
5651 #define ISpMMSysAudio_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
5652 /*** ISpStreamFormat methods ***/
5653 #define ISpMMSysAudio_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
5654 /*** ISpAudio methods ***/
5655 #define ISpMMSysAudio_SetState(This,NewState,ullReserved) (This)->lpVtbl->SetState(This,NewState,ullReserved)
5656 #define ISpMMSysAudio_SetFormat(This,rguidFmtId,pWaveFormatEx) (This)->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx)
5657 #define ISpMMSysAudio_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
5658 #define ISpMMSysAudio_SetBufferInfo(This,pBuffInfo) (This)->lpVtbl->SetBufferInfo(This,pBuffInfo)
5659 #define ISpMMSysAudio_GetBufferInfo(This,pBuffInfo) (This)->lpVtbl->GetBufferInfo(This,pBuffInfo)
5660 #define ISpMMSysAudio_GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx)
5661 #define ISpMMSysAudio_EventHandle(This) (This)->lpVtbl->EventHandle(This)
5662 #define ISpMMSysAudio_GetVolumeLevel(This,pLevel) (This)->lpVtbl->GetVolumeLevel(This,pLevel)
5663 #define ISpMMSysAudio_SetVolumeLevel(This,Level) (This)->lpVtbl->SetVolumeLevel(This,Level)
5664 #define ISpMMSysAudio_GetBufferNotifySize(This,pcbSize) (This)->lpVtbl->GetBufferNotifySize(This,pcbSize)
5665 #define ISpMMSysAudio_SetBufferNotifySize(This,cbSize) (This)->lpVtbl->SetBufferNotifySize(This,cbSize)
5666 /*** ISpMMSysAudio methods ***/
5667 #define ISpMMSysAudio_GetDeviceId(This,puDeviceId) (This)->lpVtbl->GetDeviceId(This,puDeviceId)
5668 #define ISpMMSysAudio_SetDeviceId(This,uDeviceId) (This)->lpVtbl->SetDeviceId(This,uDeviceId)
5669 #define ISpMMSysAudio_GetMMHandle(This,pHandle) (This)->lpVtbl->GetMMHandle(This,pHandle)
5670 #define ISpMMSysAudio_GetLineId(This,puLineId) (This)->lpVtbl->GetLineId(This,puLineId)
5671 #define ISpMMSysAudio_SetLineId(This,uLineId) (This)->lpVtbl->SetLineId(This,uLineId)
5672 #else
5673 /*** IUnknown methods ***/
5674 static FORCEINLINE HRESULT ISpMMSysAudio_QueryInterface(ISpMMSysAudio* This,REFIID riid,void **ppvObject) {
5675     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5676 }
5677 static FORCEINLINE ULONG ISpMMSysAudio_AddRef(ISpMMSysAudio* This) {
5678     return This->lpVtbl->AddRef(This);
5679 }
5680 static FORCEINLINE ULONG ISpMMSysAudio_Release(ISpMMSysAudio* This) {
5681     return This->lpVtbl->Release(This);
5682 }
5683 /*** ISequentialStream methods ***/
5684 static FORCEINLINE HRESULT ISpMMSysAudio_Read(ISpMMSysAudio* This,void *pv,ULONG cb,ULONG *pcbRead) {
5685     return This->lpVtbl->Read(This,pv,cb,pcbRead);
5686 }
5687 static FORCEINLINE HRESULT ISpMMSysAudio_Write(ISpMMSysAudio* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
5688     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
5689 }
5690 /*** IStream methods ***/
5691 static FORCEINLINE HRESULT ISpMMSysAudio_Seek(ISpMMSysAudio* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
5692     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
5693 }
5694 static FORCEINLINE HRESULT ISpMMSysAudio_SetSize(ISpMMSysAudio* This,ULARGE_INTEGER libNewSize) {
5695     return This->lpVtbl->SetSize(This,libNewSize);
5696 }
5697 static FORCEINLINE HRESULT ISpMMSysAudio_CopyTo(ISpMMSysAudio* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
5698     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
5699 }
5700 static FORCEINLINE HRESULT ISpMMSysAudio_Commit(ISpMMSysAudio* This,DWORD grfCommitFlags) {
5701     return This->lpVtbl->Commit(This,grfCommitFlags);
5702 }
5703 static FORCEINLINE HRESULT ISpMMSysAudio_Revert(ISpMMSysAudio* This) {
5704     return This->lpVtbl->Revert(This);
5705 }
5706 static FORCEINLINE HRESULT ISpMMSysAudio_LockRegion(ISpMMSysAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
5707     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
5708 }
5709 static FORCEINLINE HRESULT ISpMMSysAudio_UnlockRegion(ISpMMSysAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
5710     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
5711 }
5712 static FORCEINLINE HRESULT ISpMMSysAudio_Stat(ISpMMSysAudio* This,STATSTG *pstatstg,DWORD grfStatFlag) {
5713     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
5714 }
5715 static FORCEINLINE HRESULT ISpMMSysAudio_Clone(ISpMMSysAudio* This,IStream **ppstm) {
5716     return This->lpVtbl->Clone(This,ppstm);
5717 }
5718 /*** ISpStreamFormat methods ***/
5719 static FORCEINLINE HRESULT ISpMMSysAudio_GetFormat(ISpMMSysAudio* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
5720     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
5721 }
5722 /*** ISpAudio methods ***/
5723 static FORCEINLINE HRESULT ISpMMSysAudio_SetState(ISpMMSysAudio* This,SPAUDIOSTATE NewState,ULONGLONG ullReserved) {
5724     return This->lpVtbl->SetState(This,NewState,ullReserved);
5725 }
5726 static FORCEINLINE HRESULT ISpMMSysAudio_SetFormat(ISpMMSysAudio* This,REFGUID rguidFmtId,const WAVEFORMATEX *pWaveFormatEx) {
5727     return This->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx);
5728 }
5729 static FORCEINLINE HRESULT ISpMMSysAudio_GetStatus(ISpMMSysAudio* This,SPAUDIOSTATUS *pStatus) {
5730     return This->lpVtbl->GetStatus(This,pStatus);
5731 }
5732 static FORCEINLINE HRESULT ISpMMSysAudio_SetBufferInfo(ISpMMSysAudio* This,const SPAUDIOBUFFERINFO *pBuffInfo) {
5733     return This->lpVtbl->SetBufferInfo(This,pBuffInfo);
5734 }
5735 static FORCEINLINE HRESULT ISpMMSysAudio_GetBufferInfo(ISpMMSysAudio* This,SPAUDIOBUFFERINFO *pBuffInfo) {
5736     return This->lpVtbl->GetBufferInfo(This,pBuffInfo);
5737 }
5738 static FORCEINLINE HRESULT ISpMMSysAudio_GetDefaultFormat(ISpMMSysAudio* This,GUID *pFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
5739     return This->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx);
5740 }
5741 static FORCEINLINE HANDLE ISpMMSysAudio_EventHandle(ISpMMSysAudio* This) {
5742     return This->lpVtbl->EventHandle(This);
5743 }
5744 static FORCEINLINE HRESULT ISpMMSysAudio_GetVolumeLevel(ISpMMSysAudio* This,ULONG *pLevel) {
5745     return This->lpVtbl->GetVolumeLevel(This,pLevel);
5746 }
5747 static FORCEINLINE HRESULT ISpMMSysAudio_SetVolumeLevel(ISpMMSysAudio* This,ULONG Level) {
5748     return This->lpVtbl->SetVolumeLevel(This,Level);
5749 }
5750 static FORCEINLINE HRESULT ISpMMSysAudio_GetBufferNotifySize(ISpMMSysAudio* This,ULONG *pcbSize) {
5751     return This->lpVtbl->GetBufferNotifySize(This,pcbSize);
5752 }
5753 static FORCEINLINE HRESULT ISpMMSysAudio_SetBufferNotifySize(ISpMMSysAudio* This,ULONG cbSize) {
5754     return This->lpVtbl->SetBufferNotifySize(This,cbSize);
5755 }
5756 /*** ISpMMSysAudio methods ***/
5757 static FORCEINLINE HRESULT ISpMMSysAudio_GetDeviceId(ISpMMSysAudio* This,UINT *puDeviceId) {
5758     return This->lpVtbl->GetDeviceId(This,puDeviceId);
5759 }
5760 static FORCEINLINE HRESULT ISpMMSysAudio_SetDeviceId(ISpMMSysAudio* This,UINT uDeviceId) {
5761     return This->lpVtbl->SetDeviceId(This,uDeviceId);
5762 }
5763 static FORCEINLINE HRESULT ISpMMSysAudio_GetMMHandle(ISpMMSysAudio* This,void **pHandle) {
5764     return This->lpVtbl->GetMMHandle(This,pHandle);
5765 }
5766 static FORCEINLINE HRESULT ISpMMSysAudio_GetLineId(ISpMMSysAudio* This,UINT *puLineId) {
5767     return This->lpVtbl->GetLineId(This,puLineId);
5768 }
5769 static FORCEINLINE HRESULT ISpMMSysAudio_SetLineId(ISpMMSysAudio* This,UINT uLineId) {
5770     return This->lpVtbl->SetLineId(This,uLineId);
5771 }
5772 #endif
5773 #endif
5774 
5775 #endif
5776 
5777 HRESULT STDMETHODCALLTYPE ISpMMSysAudio_GetDeviceId_Proxy(
5778     ISpMMSysAudio* This,
5779     UINT *puDeviceId);
5780 void __RPC_STUB ISpMMSysAudio_GetDeviceId_Stub(
5781     IRpcStubBuffer* This,
5782     IRpcChannelBuffer* pRpcChannelBuffer,
5783     PRPC_MESSAGE pRpcMessage,
5784     DWORD* pdwStubPhase);
5785 HRESULT STDMETHODCALLTYPE ISpMMSysAudio_SetDeviceId_Proxy(
5786     ISpMMSysAudio* This,
5787     UINT uDeviceId);
5788 void __RPC_STUB ISpMMSysAudio_SetDeviceId_Stub(
5789     IRpcStubBuffer* This,
5790     IRpcChannelBuffer* pRpcChannelBuffer,
5791     PRPC_MESSAGE pRpcMessage,
5792     DWORD* pdwStubPhase);
5793 HRESULT STDMETHODCALLTYPE ISpMMSysAudio_GetMMHandle_Proxy(
5794     ISpMMSysAudio* This,
5795     void **pHandle);
5796 void __RPC_STUB ISpMMSysAudio_GetMMHandle_Stub(
5797     IRpcStubBuffer* This,
5798     IRpcChannelBuffer* pRpcChannelBuffer,
5799     PRPC_MESSAGE pRpcMessage,
5800     DWORD* pdwStubPhase);
5801 HRESULT STDMETHODCALLTYPE ISpMMSysAudio_GetLineId_Proxy(
5802     ISpMMSysAudio* This,
5803     UINT *puLineId);
5804 void __RPC_STUB ISpMMSysAudio_GetLineId_Stub(
5805     IRpcStubBuffer* This,
5806     IRpcChannelBuffer* pRpcChannelBuffer,
5807     PRPC_MESSAGE pRpcMessage,
5808     DWORD* pdwStubPhase);
5809 HRESULT STDMETHODCALLTYPE ISpMMSysAudio_SetLineId_Proxy(
5810     ISpMMSysAudio* This,
5811     UINT uLineId);
5812 void __RPC_STUB ISpMMSysAudio_SetLineId_Stub(
5813     IRpcStubBuffer* This,
5814     IRpcChannelBuffer* pRpcChannelBuffer,
5815     PRPC_MESSAGE pRpcMessage,
5816     DWORD* pdwStubPhase);
5817 
5818 #endif  /* __ISpMMSysAudio_INTERFACE_DEFINED__ */
5819 
5820 /*****************************************************************************
5821  * ISpTranscript interface
5822  */
5823 #ifndef __ISpTranscript_INTERFACE_DEFINED__
5824 #define __ISpTranscript_INTERFACE_DEFINED__
5825 
5826 DEFINE_GUID(IID_ISpTranscript, 0x10f63bce, 0x201a, 0x11d3, 0xac,0x70, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
5827 #if defined(__cplusplus) && !defined(CINTERFACE)
5828 MIDL_INTERFACE("10f63bce-201a-11d3-ac70-00c04f8ee6c0")
5829 ISpTranscript : public IUnknown
5830 {
5831     virtual HRESULT STDMETHODCALLTYPE GetTranscript(
5832         LPWSTR *ppszTranscript) = 0;
5833 
5834     virtual HRESULT STDMETHODCALLTYPE AppendTranscript(
5835         LPCWSTR pszTranscript) = 0;
5836 
5837 };
5838 #ifdef __CRT_UUID_DECL
5839 __CRT_UUID_DECL(ISpTranscript, 0x10f63bce, 0x201a, 0x11d3, 0xac,0x70, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
5840 #endif
5841 #else
5842 typedef struct ISpTranscriptVtbl {
5843     BEGIN_INTERFACE
5844 
5845     /*** IUnknown methods ***/
5846     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5847         ISpTranscript* This,
5848         REFIID riid,
5849         void **ppvObject);
5850 
5851     ULONG (STDMETHODCALLTYPE *AddRef)(
5852         ISpTranscript* This);
5853 
5854     ULONG (STDMETHODCALLTYPE *Release)(
5855         ISpTranscript* This);
5856 
5857     /*** ISpTranscript methods ***/
5858     HRESULT (STDMETHODCALLTYPE *GetTranscript)(
5859         ISpTranscript* This,
5860         LPWSTR *ppszTranscript);
5861 
5862     HRESULT (STDMETHODCALLTYPE *AppendTranscript)(
5863         ISpTranscript* This,
5864         LPCWSTR pszTranscript);
5865 
5866     END_INTERFACE
5867 } ISpTranscriptVtbl;
5868 interface ISpTranscript {
5869     CONST_VTBL ISpTranscriptVtbl* lpVtbl;
5870 };
5871 
5872 #ifdef COBJMACROS
5873 #ifndef WIDL_C_INLINE_WRAPPERS
5874 /*** IUnknown methods ***/
5875 #define ISpTranscript_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5876 #define ISpTranscript_AddRef(This) (This)->lpVtbl->AddRef(This)
5877 #define ISpTranscript_Release(This) (This)->lpVtbl->Release(This)
5878 /*** ISpTranscript methods ***/
5879 #define ISpTranscript_GetTranscript(This,ppszTranscript) (This)->lpVtbl->GetTranscript(This,ppszTranscript)
5880 #define ISpTranscript_AppendTranscript(This,pszTranscript) (This)->lpVtbl->AppendTranscript(This,pszTranscript)
5881 #else
5882 /*** IUnknown methods ***/
5883 static FORCEINLINE HRESULT ISpTranscript_QueryInterface(ISpTranscript* This,REFIID riid,void **ppvObject) {
5884     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5885 }
5886 static FORCEINLINE ULONG ISpTranscript_AddRef(ISpTranscript* This) {
5887     return This->lpVtbl->AddRef(This);
5888 }
5889 static FORCEINLINE ULONG ISpTranscript_Release(ISpTranscript* This) {
5890     return This->lpVtbl->Release(This);
5891 }
5892 /*** ISpTranscript methods ***/
5893 static FORCEINLINE HRESULT ISpTranscript_GetTranscript(ISpTranscript* This,LPWSTR *ppszTranscript) {
5894     return This->lpVtbl->GetTranscript(This,ppszTranscript);
5895 }
5896 static FORCEINLINE HRESULT ISpTranscript_AppendTranscript(ISpTranscript* This,LPCWSTR pszTranscript) {
5897     return This->lpVtbl->AppendTranscript(This,pszTranscript);
5898 }
5899 #endif
5900 #endif
5901 
5902 #endif
5903 
5904 HRESULT STDMETHODCALLTYPE ISpTranscript_GetTranscript_Proxy(
5905     ISpTranscript* This,
5906     LPWSTR *ppszTranscript);
5907 void __RPC_STUB ISpTranscript_GetTranscript_Stub(
5908     IRpcStubBuffer* This,
5909     IRpcChannelBuffer* pRpcChannelBuffer,
5910     PRPC_MESSAGE pRpcMessage,
5911     DWORD* pdwStubPhase);
5912 HRESULT STDMETHODCALLTYPE ISpTranscript_AppendTranscript_Proxy(
5913     ISpTranscript* This,
5914     LPCWSTR pszTranscript);
5915 void __RPC_STUB ISpTranscript_AppendTranscript_Stub(
5916     IRpcStubBuffer* This,
5917     IRpcChannelBuffer* pRpcChannelBuffer,
5918     PRPC_MESSAGE pRpcMessage,
5919     DWORD* pdwStubPhase);
5920 
5921 #endif  /* __ISpTranscript_INTERFACE_DEFINED__ */
5922 
5923 typedef WCHAR SPPHONEID;
5924 typedef LPWSTR PSPPHONEID;
5925 typedef LPCWSTR PCSPPHONEID;
5926 typedef struct SPPHRASEELEMENT {
5927     ULONG ulAudioTimeOffset;
5928     ULONG ulAudioSizeTime;
5929     ULONG ulAudioStreamOffset;
5930     ULONG ulAudioSizeBytes;
5931     ULONG ulRetainedStreamOffset;
5932     ULONG ulRetainedSizeBytes;
5933     LPCWSTR pszDisplayText;
5934     LPCWSTR pszLexicalForm;
5935     const SPPHONEID *pszPronunciation;
5936     BYTE bDisplayAttributes;
5937     signed char RequiredConfidence;
5938     signed char ActualConfidence;
5939     BYTE Reserved;
5940     float SREngineConfidence;
5941 } SPPHRASEELEMENT;
5942 typedef struct SPPHRASERULE SPPHRASERULE;
5943 typedef struct SPPHRASEPROPERTY SPPHRASEPROPERTY;
5944 struct SPPHRASERULE {
5945     LPCWSTR pszName;
5946     ULONG ulId;
5947     ULONG ulFirstElement;
5948     ULONG ulCountOfElements;
5949     const SPPHRASERULE *pNextSibling;
5950     const SPPHRASERULE *pFirstChild;
5951     float SREngineConfidence;
5952     signed char Confidence;
5953 };
5954 
5955 struct SPPHRASEPROPERTY {
5956     LPCWSTR pszName;
5957     __C89_NAMELESS union {
5958         ULONG ulId;
5959         __C89_NAMELESS struct {
5960             byte bType;
5961             byte bReserved;
5962             unsigned short usArrayIndex;
5963         } __C89_NAMELESSSTRUCTNAME;
5964     } __C89_NAMELESSUNIONNAME;
5965     LPCWSTR pszValue;
5966     VARIANT vValue;
5967     ULONG ulFirstElement;
5968     ULONG ulCountOfElements;
5969     const SPPHRASEPROPERTY *pNextSibling;
5970     const SPPHRASEPROPERTY *pFirstChild;
5971     float SREngineConfidence;
5972     signed char Confidence;
5973 };
5974 
5975 typedef struct SPPHRASEREPLACEMENT {
5976     BYTE bDisplayAttributes;
5977     LPCWSTR pszReplacementText;
5978     ULONG ulFirstElement;
5979     ULONG ulCountOfElements;
5980 } SPPHRASEREPLACEMENT;
5981 typedef struct SPSEMANTICERRORINFO {
5982     ULONG ulLineNumber;
5983     LPWSTR pszScriptLine;
5984     LPWSTR pszSource;
5985     LPWSTR pszDescription;
5986     HRESULT hrResultCode;
5987 } SPSEMANTICERRORINFO;
5988 typedef struct SPPHRASE_50 {
5989     ULONG cbSize;
5990     WORD LangID;
5991     WORD wHomophoneGroupId;
5992     ULONGLONG ullGrammarID;
5993     ULONGLONG ftStartTime;
5994     ULONGLONG ullAudioStreamPosition;
5995     ULONG ulAudioSizeBytes;
5996     ULONG ulRetainedSizeBytes;
5997     ULONG ulAudioSizeTime;
5998     SPPHRASERULE Rule;
5999     const SPPHRASEPROPERTY *pProperties;
6000     const SPPHRASEELEMENT *pElements;
6001     ULONG cReplacements;
6002     const SPPHRASEREPLACEMENT *pReplacements;
6003     GUID SREngineID;
6004     ULONG ulSREnginePrivateDataSize;
6005     const BYTE *pSREnginePrivateData;
6006 } SPPHRASE_50;
6007 #define SP_SPPHRASESIZE_500 sizeof (SPPHRASE_50)
6008 #ifdef __cplusplus
6009 typedef struct SPPHRASE : public SPPHRASE_50 {
6010   LPWSTR pSML;
6011   SPSEMANTICERRORINFO* pSemanticErrorInfo;
6012 } SPPHRASE;
6013 #else
6014 typedef struct SPPHRASE {
6015     ULONG cbSize;
6016     WORD LangID;
6017     WORD wHomophoneGroupId;
6018     ULONGLONG ullGrammarID;
6019     ULONGLONG ftStartTime;
6020     ULONGLONG ullAudioStreamPosition;
6021     ULONG ulAudioSizeBytes;
6022     ULONG ulRetainedSizeBytes;
6023     ULONG ulAudioSizeTime;
6024     SPPHRASERULE Rule;
6025     const SPPHRASEPROPERTY *pProperties;
6026     const SPPHRASEELEMENT *pElements;
6027     ULONG cReplacements;
6028     const SPPHRASEREPLACEMENT *pReplacements;
6029     GUID SREngineID;
6030     ULONG ulSREnginePrivateDataSize;
6031     const BYTE *pSREnginePrivateData;
6032     LPWSTR pSML;
6033     SPSEMANTICERRORINFO *pSemanticErrorInfo;
6034 } SPPHRASE;
6035 #endif
6036 typedef struct SPSERIALIZEDPHRASE {
6037     ULONG ulSerializedSize;
6038 } SPSERIALIZEDPHRASE;
6039 typedef struct SPRULE {
6040     LPCWSTR pszRuleName;
6041     ULONG ulRuleId;
6042     DWORD dwAttributes;
6043 } SPRULE;
6044 typedef struct SPBINARYGRAMMAR {
6045     ULONG ulTotalSerializedSize;
6046 } SPBINARYGRAMMAR;
6047 #if 0
6048 typedef void *SPSTATEHANDLE;
6049 #else
6050 DECLARE_HANDLE(SPSTATEHANDLE);
6051 #endif
6052 typedef struct SPWORDPRONUNCIATION {
6053     struct SPWORDPRONUNCIATION *pNextWordPronunciation;
6054     SPLEXICONTYPE eLexiconType;
6055     WORD LangID;
6056     WORD wPronunciationFlags;
6057     SPPARTOFSPEECH ePartOfSpeech;
6058     SPPHONEID szPronunciation[1];
6059 } SPWORDPRONUNCIATION;
6060 typedef struct SPWORDPRONUNCIATIONLIST {
6061     ULONG ulSize;
6062     BYTE *pvBuffer;
6063     SPWORDPRONUNCIATION *pFirstWordPronunciation;
6064 } SPWORDPRONUNCIATIONLIST;
6065 typedef struct SPWORD {
6066     struct SPWORD *pNextWord;
6067     WORD LangID;
6068     WORD wReserved;
6069     SPWORDTYPE eWordType;
6070     LPWSTR pszWord;
6071     SPWORDPRONUNCIATION *pFirstWordPronunciation;
6072 } SPWORD;
6073 typedef struct SPWORDLIST {
6074     ULONG ulSize;
6075     BYTE *pvBuffer;
6076     SPWORD *pFirstWord;
6077 } SPWORDLIST;
6078 /*****************************************************************************
6079  * ISpLexicon interface
6080  */
6081 #ifndef __ISpLexicon_INTERFACE_DEFINED__
6082 #define __ISpLexicon_INTERFACE_DEFINED__
6083 
6084 DEFINE_GUID(IID_ISpLexicon, 0xda41a7c2, 0x5383, 0x4db2, 0x91,0x6b, 0x6c,0x17,0x19,0xe3,0xdb,0x58);
6085 #if defined(__cplusplus) && !defined(CINTERFACE)
6086 MIDL_INTERFACE("da41a7c2-5383-4db2-916b-6c1719e3db58")
6087 ISpLexicon : public IUnknown
6088 {
6089     virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
6090         LPCWSTR pszWord,
6091         WORD LangID,
6092         DWORD dwFlags,
6093         SPWORDPRONUNCIATIONLIST *pWordPronunciationList) = 0;
6094 
6095     virtual HRESULT STDMETHODCALLTYPE AddPronunciation(
6096         LPCWSTR pszWord,
6097         WORD LangID,
6098         SPPARTOFSPEECH ePartOfSpeech,
6099         PCSPPHONEID pszPronunciation) = 0;
6100 
6101     virtual HRESULT STDMETHODCALLTYPE RemovePronunciation(
6102         LPCWSTR pszWord,
6103         WORD LangID,
6104         SPPARTOFSPEECH ePartOfSpeech,
6105         PCSPPHONEID pszPronunciation) = 0;
6106 
6107     virtual HRESULT STDMETHODCALLTYPE GetGeneration(
6108         DWORD *pdwGeneration) = 0;
6109 
6110     virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
6111         DWORD dwFlags,
6112         DWORD *pdwGeneration,
6113         SPWORDLIST *pWordList) = 0;
6114 
6115     virtual HRESULT STDMETHODCALLTYPE GetWords(
6116         DWORD dwFlags,
6117         DWORD *pdwGeneration,
6118         DWORD *pdwCookie,
6119         SPWORDLIST *pWordList) = 0;
6120 
6121 };
6122 #ifdef __CRT_UUID_DECL
6123 __CRT_UUID_DECL(ISpLexicon, 0xda41a7c2, 0x5383, 0x4db2, 0x91,0x6b, 0x6c,0x17,0x19,0xe3,0xdb,0x58)
6124 #endif
6125 #else
6126 typedef struct ISpLexiconVtbl {
6127     BEGIN_INTERFACE
6128 
6129     /*** IUnknown methods ***/
6130     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6131         ISpLexicon* This,
6132         REFIID riid,
6133         void **ppvObject);
6134 
6135     ULONG (STDMETHODCALLTYPE *AddRef)(
6136         ISpLexicon* This);
6137 
6138     ULONG (STDMETHODCALLTYPE *Release)(
6139         ISpLexicon* This);
6140 
6141     /*** ISpLexicon methods ***/
6142     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
6143         ISpLexicon* This,
6144         LPCWSTR pszWord,
6145         WORD LangID,
6146         DWORD dwFlags,
6147         SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
6148 
6149     HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
6150         ISpLexicon* This,
6151         LPCWSTR pszWord,
6152         WORD LangID,
6153         SPPARTOFSPEECH ePartOfSpeech,
6154         PCSPPHONEID pszPronunciation);
6155 
6156     HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
6157         ISpLexicon* This,
6158         LPCWSTR pszWord,
6159         WORD LangID,
6160         SPPARTOFSPEECH ePartOfSpeech,
6161         PCSPPHONEID pszPronunciation);
6162 
6163     HRESULT (STDMETHODCALLTYPE *GetGeneration)(
6164         ISpLexicon* This,
6165         DWORD *pdwGeneration);
6166 
6167     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
6168         ISpLexicon* This,
6169         DWORD dwFlags,
6170         DWORD *pdwGeneration,
6171         SPWORDLIST *pWordList);
6172 
6173     HRESULT (STDMETHODCALLTYPE *GetWords)(
6174         ISpLexicon* This,
6175         DWORD dwFlags,
6176         DWORD *pdwGeneration,
6177         DWORD *pdwCookie,
6178         SPWORDLIST *pWordList);
6179 
6180     END_INTERFACE
6181 } ISpLexiconVtbl;
6182 interface ISpLexicon {
6183     CONST_VTBL ISpLexiconVtbl* lpVtbl;
6184 };
6185 
6186 #ifdef COBJMACROS
6187 #ifndef WIDL_C_INLINE_WRAPPERS
6188 /*** IUnknown methods ***/
6189 #define ISpLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6190 #define ISpLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
6191 #define ISpLexicon_Release(This) (This)->lpVtbl->Release(This)
6192 /*** ISpLexicon methods ***/
6193 #define ISpLexicon_GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList)
6194 #define ISpLexicon_AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
6195 #define ISpLexicon_RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
6196 #define ISpLexicon_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
6197 #define ISpLexicon_GetGenerationChange(This,dwFlags,pdwGeneration,pWordList) (This)->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList)
6198 #define ISpLexicon_GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList)
6199 #else
6200 /*** IUnknown methods ***/
6201 static FORCEINLINE HRESULT ISpLexicon_QueryInterface(ISpLexicon* This,REFIID riid,void **ppvObject) {
6202     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6203 }
6204 static FORCEINLINE ULONG ISpLexicon_AddRef(ISpLexicon* This) {
6205     return This->lpVtbl->AddRef(This);
6206 }
6207 static FORCEINLINE ULONG ISpLexicon_Release(ISpLexicon* This) {
6208     return This->lpVtbl->Release(This);
6209 }
6210 /*** ISpLexicon methods ***/
6211 static FORCEINLINE HRESULT ISpLexicon_GetPronunciations(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,DWORD dwFlags,SPWORDPRONUNCIATIONLIST *pWordPronunciationList) {
6212     return This->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList);
6213 }
6214 static FORCEINLINE HRESULT ISpLexicon_AddPronunciation(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
6215     return This->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
6216 }
6217 static FORCEINLINE HRESULT ISpLexicon_RemovePronunciation(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
6218     return This->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
6219 }
6220 static FORCEINLINE HRESULT ISpLexicon_GetGeneration(ISpLexicon* This,DWORD *pdwGeneration) {
6221     return This->lpVtbl->GetGeneration(This,pdwGeneration);
6222 }
6223 static FORCEINLINE HRESULT ISpLexicon_GetGenerationChange(ISpLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
6224     return This->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList);
6225 }
6226 static FORCEINLINE HRESULT ISpLexicon_GetWords(ISpLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
6227     return This->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList);
6228 }
6229 #endif
6230 #endif
6231 
6232 #endif
6233 
6234 HRESULT STDMETHODCALLTYPE ISpLexicon_GetPronunciations_Proxy(
6235     ISpLexicon* This,
6236     LPCWSTR pszWord,
6237     WORD LangID,
6238     DWORD dwFlags,
6239     SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
6240 void __RPC_STUB ISpLexicon_GetPronunciations_Stub(
6241     IRpcStubBuffer* This,
6242     IRpcChannelBuffer* pRpcChannelBuffer,
6243     PRPC_MESSAGE pRpcMessage,
6244     DWORD* pdwStubPhase);
6245 HRESULT STDMETHODCALLTYPE ISpLexicon_AddPronunciation_Proxy(
6246     ISpLexicon* This,
6247     LPCWSTR pszWord,
6248     WORD LangID,
6249     SPPARTOFSPEECH ePartOfSpeech,
6250     PCSPPHONEID pszPronunciation);
6251 void __RPC_STUB ISpLexicon_AddPronunciation_Stub(
6252     IRpcStubBuffer* This,
6253     IRpcChannelBuffer* pRpcChannelBuffer,
6254     PRPC_MESSAGE pRpcMessage,
6255     DWORD* pdwStubPhase);
6256 HRESULT STDMETHODCALLTYPE ISpLexicon_RemovePronunciation_Proxy(
6257     ISpLexicon* This,
6258     LPCWSTR pszWord,
6259     WORD LangID,
6260     SPPARTOFSPEECH ePartOfSpeech,
6261     PCSPPHONEID pszPronunciation);
6262 void __RPC_STUB ISpLexicon_RemovePronunciation_Stub(
6263     IRpcStubBuffer* This,
6264     IRpcChannelBuffer* pRpcChannelBuffer,
6265     PRPC_MESSAGE pRpcMessage,
6266     DWORD* pdwStubPhase);
6267 HRESULT STDMETHODCALLTYPE ISpLexicon_GetGeneration_Proxy(
6268     ISpLexicon* This,
6269     DWORD *pdwGeneration);
6270 void __RPC_STUB ISpLexicon_GetGeneration_Stub(
6271     IRpcStubBuffer* This,
6272     IRpcChannelBuffer* pRpcChannelBuffer,
6273     PRPC_MESSAGE pRpcMessage,
6274     DWORD* pdwStubPhase);
6275 HRESULT STDMETHODCALLTYPE ISpLexicon_GetGenerationChange_Proxy(
6276     ISpLexicon* This,
6277     DWORD dwFlags,
6278     DWORD *pdwGeneration,
6279     SPWORDLIST *pWordList);
6280 void __RPC_STUB ISpLexicon_GetGenerationChange_Stub(
6281     IRpcStubBuffer* This,
6282     IRpcChannelBuffer* pRpcChannelBuffer,
6283     PRPC_MESSAGE pRpcMessage,
6284     DWORD* pdwStubPhase);
6285 HRESULT STDMETHODCALLTYPE ISpLexicon_GetWords_Proxy(
6286     ISpLexicon* This,
6287     DWORD dwFlags,
6288     DWORD *pdwGeneration,
6289     DWORD *pdwCookie,
6290     SPWORDLIST *pWordList);
6291 void __RPC_STUB ISpLexicon_GetWords_Stub(
6292     IRpcStubBuffer* This,
6293     IRpcChannelBuffer* pRpcChannelBuffer,
6294     PRPC_MESSAGE pRpcMessage,
6295     DWORD* pdwStubPhase);
6296 
6297 #endif  /* __ISpLexicon_INTERFACE_DEFINED__ */
6298 
6299 /*****************************************************************************
6300  * ISpContainerLexicon interface
6301  */
6302 #ifndef __ISpContainerLexicon_INTERFACE_DEFINED__
6303 #define __ISpContainerLexicon_INTERFACE_DEFINED__
6304 
6305 DEFINE_GUID(IID_ISpContainerLexicon, 0x8565572f, 0xc094, 0x41cc, 0xb5,0x6e, 0x10,0xbd,0x9c,0x3f,0xf0,0x44);
6306 #if defined(__cplusplus) && !defined(CINTERFACE)
6307 MIDL_INTERFACE("8565572f-c094-41cc-b56e-10bd9c3ff044")
6308 ISpContainerLexicon : public ISpLexicon
6309 {
6310     virtual HRESULT STDMETHODCALLTYPE AddLexicon(
6311         ISpLexicon *pAddLexicon,
6312         DWORD dwFlags) = 0;
6313 
6314 };
6315 #ifdef __CRT_UUID_DECL
6316 __CRT_UUID_DECL(ISpContainerLexicon, 0x8565572f, 0xc094, 0x41cc, 0xb5,0x6e, 0x10,0xbd,0x9c,0x3f,0xf0,0x44)
6317 #endif
6318 #else
6319 typedef struct ISpContainerLexiconVtbl {
6320     BEGIN_INTERFACE
6321 
6322     /*** IUnknown methods ***/
6323     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6324         ISpContainerLexicon* This,
6325         REFIID riid,
6326         void **ppvObject);
6327 
6328     ULONG (STDMETHODCALLTYPE *AddRef)(
6329         ISpContainerLexicon* This);
6330 
6331     ULONG (STDMETHODCALLTYPE *Release)(
6332         ISpContainerLexicon* This);
6333 
6334     /*** ISpLexicon methods ***/
6335     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
6336         ISpContainerLexicon* This,
6337         LPCWSTR pszWord,
6338         WORD LangID,
6339         DWORD dwFlags,
6340         SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
6341 
6342     HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
6343         ISpContainerLexicon* This,
6344         LPCWSTR pszWord,
6345         WORD LangID,
6346         SPPARTOFSPEECH ePartOfSpeech,
6347         PCSPPHONEID pszPronunciation);
6348 
6349     HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
6350         ISpContainerLexicon* This,
6351         LPCWSTR pszWord,
6352         WORD LangID,
6353         SPPARTOFSPEECH ePartOfSpeech,
6354         PCSPPHONEID pszPronunciation);
6355 
6356     HRESULT (STDMETHODCALLTYPE *GetGeneration)(
6357         ISpContainerLexicon* This,
6358         DWORD *pdwGeneration);
6359 
6360     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
6361         ISpContainerLexicon* This,
6362         DWORD dwFlags,
6363         DWORD *pdwGeneration,
6364         SPWORDLIST *pWordList);
6365 
6366     HRESULT (STDMETHODCALLTYPE *GetWords)(
6367         ISpContainerLexicon* This,
6368         DWORD dwFlags,
6369         DWORD *pdwGeneration,
6370         DWORD *pdwCookie,
6371         SPWORDLIST *pWordList);
6372 
6373     /*** ISpContainerLexicon methods ***/
6374     HRESULT (STDMETHODCALLTYPE *AddLexicon)(
6375         ISpContainerLexicon* This,
6376         ISpLexicon *pAddLexicon,
6377         DWORD dwFlags);
6378 
6379     END_INTERFACE
6380 } ISpContainerLexiconVtbl;
6381 interface ISpContainerLexicon {
6382     CONST_VTBL ISpContainerLexiconVtbl* lpVtbl;
6383 };
6384 
6385 #ifdef COBJMACROS
6386 #ifndef WIDL_C_INLINE_WRAPPERS
6387 /*** IUnknown methods ***/
6388 #define ISpContainerLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6389 #define ISpContainerLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
6390 #define ISpContainerLexicon_Release(This) (This)->lpVtbl->Release(This)
6391 /*** ISpLexicon methods ***/
6392 #define ISpContainerLexicon_GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList)
6393 #define ISpContainerLexicon_AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
6394 #define ISpContainerLexicon_RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
6395 #define ISpContainerLexicon_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
6396 #define ISpContainerLexicon_GetGenerationChange(This,dwFlags,pdwGeneration,pWordList) (This)->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList)
6397 #define ISpContainerLexicon_GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList)
6398 /*** ISpContainerLexicon methods ***/
6399 #define ISpContainerLexicon_AddLexicon(This,pAddLexicon,dwFlags) (This)->lpVtbl->AddLexicon(This,pAddLexicon,dwFlags)
6400 #else
6401 /*** IUnknown methods ***/
6402 static FORCEINLINE HRESULT ISpContainerLexicon_QueryInterface(ISpContainerLexicon* This,REFIID riid,void **ppvObject) {
6403     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6404 }
6405 static FORCEINLINE ULONG ISpContainerLexicon_AddRef(ISpContainerLexicon* This) {
6406     return This->lpVtbl->AddRef(This);
6407 }
6408 static FORCEINLINE ULONG ISpContainerLexicon_Release(ISpContainerLexicon* This) {
6409     return This->lpVtbl->Release(This);
6410 }
6411 /*** ISpLexicon methods ***/
6412 static FORCEINLINE HRESULT ISpContainerLexicon_GetPronunciations(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,DWORD dwFlags,SPWORDPRONUNCIATIONLIST *pWordPronunciationList) {
6413     return This->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList);
6414 }
6415 static FORCEINLINE HRESULT ISpContainerLexicon_AddPronunciation(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
6416     return This->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
6417 }
6418 static FORCEINLINE HRESULT ISpContainerLexicon_RemovePronunciation(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
6419     return This->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
6420 }
6421 static FORCEINLINE HRESULT ISpContainerLexicon_GetGeneration(ISpContainerLexicon* This,DWORD *pdwGeneration) {
6422     return This->lpVtbl->GetGeneration(This,pdwGeneration);
6423 }
6424 static FORCEINLINE HRESULT ISpContainerLexicon_GetGenerationChange(ISpContainerLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
6425     return This->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList);
6426 }
6427 static FORCEINLINE HRESULT ISpContainerLexicon_GetWords(ISpContainerLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
6428     return This->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList);
6429 }
6430 /*** ISpContainerLexicon methods ***/
6431 static FORCEINLINE HRESULT ISpContainerLexicon_AddLexicon(ISpContainerLexicon* This,ISpLexicon *pAddLexicon,DWORD dwFlags) {
6432     return This->lpVtbl->AddLexicon(This,pAddLexicon,dwFlags);
6433 }
6434 #endif
6435 #endif
6436 
6437 #endif
6438 
6439 HRESULT STDMETHODCALLTYPE ISpContainerLexicon_AddLexicon_Proxy(
6440     ISpContainerLexicon* This,
6441     ISpLexicon *pAddLexicon,
6442     DWORD dwFlags);
6443 void __RPC_STUB ISpContainerLexicon_AddLexicon_Stub(
6444     IRpcStubBuffer* This,
6445     IRpcChannelBuffer* pRpcChannelBuffer,
6446     PRPC_MESSAGE pRpcMessage,
6447     DWORD* pdwStubPhase);
6448 
6449 #endif  /* __ISpContainerLexicon_INTERFACE_DEFINED__ */
6450 
6451 typedef struct SPSHORTCUTPAIR {
6452     struct SPSHORTCUTPAIR *pNextSHORTCUTPAIR;
6453     WORD LangID;
6454     SPSHORTCUTTYPE shType;
6455     LPWSTR pszDisplay;
6456     LPWSTR pszSpoken;
6457 } SPSHORTCUTPAIR;
6458 typedef struct SPSHORTCUTPAIRLIST {
6459     ULONG ulSize;
6460     BYTE *pvBuffer;
6461     SPSHORTCUTPAIR *pFirstShortcutPair;
6462 } SPSHORTCUTPAIRLIST;
6463 /*****************************************************************************
6464  * ISpShortcut interface
6465  */
6466 #ifndef __ISpShortcut_INTERFACE_DEFINED__
6467 #define __ISpShortcut_INTERFACE_DEFINED__
6468 
6469 DEFINE_GUID(IID_ISpShortcut, 0x3df681e2, 0xea56, 0x11d9, 0x8b,0xde, 0xf6,0x6b,0xad,0x1e,0x3f,0x3a);
6470 #if defined(__cplusplus) && !defined(CINTERFACE)
6471 MIDL_INTERFACE("3df681e2-ea56-11d9-8bde-f66bad1e3f3a")
6472 ISpShortcut : public IUnknown
6473 {
6474     virtual HRESULT STDMETHODCALLTYPE AddShortcut(
6475         LPCWSTR pszDisplay,
6476         WORD LangID,
6477         LPCWSTR pszSpoken,
6478         SPSHORTCUTTYPE shType) = 0;
6479 
6480     virtual HRESULT STDMETHODCALLTYPE RemoveShortcut(
6481         LPCWSTR pszDisplay,
6482         WORD LangID,
6483         LPCWSTR pszSpoken,
6484         SPSHORTCUTTYPE shType) = 0;
6485 
6486     virtual HRESULT STDMETHODCALLTYPE GetShortcuts(
6487         WORD LangID,
6488         SPSHORTCUTPAIRLIST *pShortcutpairList) = 0;
6489 
6490     virtual HRESULT STDMETHODCALLTYPE GetGeneration(
6491         DWORD *pdwGeneration) = 0;
6492 
6493     virtual HRESULT STDMETHODCALLTYPE GetWordsFromGenerationChange(
6494         DWORD *pdwGeneration,
6495         SPWORDLIST *pWordList) = 0;
6496 
6497     virtual HRESULT STDMETHODCALLTYPE GetWords(
6498         DWORD *pdwGeneration,
6499         DWORD *pdwCookie,
6500         SPWORDLIST *pWordList) = 0;
6501 
6502     virtual HRESULT STDMETHODCALLTYPE GetShortcutsForGeneration(
6503         DWORD *pdwGeneration,
6504         DWORD *pdwCookie,
6505         SPSHORTCUTPAIRLIST *pShortcutpairList) = 0;
6506 
6507     virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
6508         DWORD *pdwGeneration,
6509         SPSHORTCUTPAIRLIST *pShortcutpairList) = 0;
6510 
6511 };
6512 #ifdef __CRT_UUID_DECL
6513 __CRT_UUID_DECL(ISpShortcut, 0x3df681e2, 0xea56, 0x11d9, 0x8b,0xde, 0xf6,0x6b,0xad,0x1e,0x3f,0x3a)
6514 #endif
6515 #else
6516 typedef struct ISpShortcutVtbl {
6517     BEGIN_INTERFACE
6518 
6519     /*** IUnknown methods ***/
6520     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6521         ISpShortcut* This,
6522         REFIID riid,
6523         void **ppvObject);
6524 
6525     ULONG (STDMETHODCALLTYPE *AddRef)(
6526         ISpShortcut* This);
6527 
6528     ULONG (STDMETHODCALLTYPE *Release)(
6529         ISpShortcut* This);
6530 
6531     /*** ISpShortcut methods ***/
6532     HRESULT (STDMETHODCALLTYPE *AddShortcut)(
6533         ISpShortcut* This,
6534         LPCWSTR pszDisplay,
6535         WORD LangID,
6536         LPCWSTR pszSpoken,
6537         SPSHORTCUTTYPE shType);
6538 
6539     HRESULT (STDMETHODCALLTYPE *RemoveShortcut)(
6540         ISpShortcut* This,
6541         LPCWSTR pszDisplay,
6542         WORD LangID,
6543         LPCWSTR pszSpoken,
6544         SPSHORTCUTTYPE shType);
6545 
6546     HRESULT (STDMETHODCALLTYPE *GetShortcuts)(
6547         ISpShortcut* This,
6548         WORD LangID,
6549         SPSHORTCUTPAIRLIST *pShortcutpairList);
6550 
6551     HRESULT (STDMETHODCALLTYPE *GetGeneration)(
6552         ISpShortcut* This,
6553         DWORD *pdwGeneration);
6554 
6555     HRESULT (STDMETHODCALLTYPE *GetWordsFromGenerationChange)(
6556         ISpShortcut* This,
6557         DWORD *pdwGeneration,
6558         SPWORDLIST *pWordList);
6559 
6560     HRESULT (STDMETHODCALLTYPE *GetWords)(
6561         ISpShortcut* This,
6562         DWORD *pdwGeneration,
6563         DWORD *pdwCookie,
6564         SPWORDLIST *pWordList);
6565 
6566     HRESULT (STDMETHODCALLTYPE *GetShortcutsForGeneration)(
6567         ISpShortcut* This,
6568         DWORD *pdwGeneration,
6569         DWORD *pdwCookie,
6570         SPSHORTCUTPAIRLIST *pShortcutpairList);
6571 
6572     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
6573         ISpShortcut* This,
6574         DWORD *pdwGeneration,
6575         SPSHORTCUTPAIRLIST *pShortcutpairList);
6576 
6577     END_INTERFACE
6578 } ISpShortcutVtbl;
6579 interface ISpShortcut {
6580     CONST_VTBL ISpShortcutVtbl* lpVtbl;
6581 };
6582 
6583 #ifdef COBJMACROS
6584 #ifndef WIDL_C_INLINE_WRAPPERS
6585 /*** IUnknown methods ***/
6586 #define ISpShortcut_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6587 #define ISpShortcut_AddRef(This) (This)->lpVtbl->AddRef(This)
6588 #define ISpShortcut_Release(This) (This)->lpVtbl->Release(This)
6589 /*** ISpShortcut methods ***/
6590 #define ISpShortcut_AddShortcut(This,pszDisplay,LangID,pszSpoken,shType) (This)->lpVtbl->AddShortcut(This,pszDisplay,LangID,pszSpoken,shType)
6591 #define ISpShortcut_RemoveShortcut(This,pszDisplay,LangID,pszSpoken,shType) (This)->lpVtbl->RemoveShortcut(This,pszDisplay,LangID,pszSpoken,shType)
6592 #define ISpShortcut_GetShortcuts(This,LangID,pShortcutpairList) (This)->lpVtbl->GetShortcuts(This,LangID,pShortcutpairList)
6593 #define ISpShortcut_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
6594 #define ISpShortcut_GetWordsFromGenerationChange(This,pdwGeneration,pWordList) (This)->lpVtbl->GetWordsFromGenerationChange(This,pdwGeneration,pWordList)
6595 #define ISpShortcut_GetWords(This,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,pdwGeneration,pdwCookie,pWordList)
6596 #define ISpShortcut_GetShortcutsForGeneration(This,pdwGeneration,pdwCookie,pShortcutpairList) (This)->lpVtbl->GetShortcutsForGeneration(This,pdwGeneration,pdwCookie,pShortcutpairList)
6597 #define ISpShortcut_GetGenerationChange(This,pdwGeneration,pShortcutpairList) (This)->lpVtbl->GetGenerationChange(This,pdwGeneration,pShortcutpairList)
6598 #else
6599 /*** IUnknown methods ***/
6600 static FORCEINLINE HRESULT ISpShortcut_QueryInterface(ISpShortcut* This,REFIID riid,void **ppvObject) {
6601     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6602 }
6603 static FORCEINLINE ULONG ISpShortcut_AddRef(ISpShortcut* This) {
6604     return This->lpVtbl->AddRef(This);
6605 }
6606 static FORCEINLINE ULONG ISpShortcut_Release(ISpShortcut* This) {
6607     return This->lpVtbl->Release(This);
6608 }
6609 /*** ISpShortcut methods ***/
6610 static FORCEINLINE HRESULT ISpShortcut_AddShortcut(ISpShortcut* This,LPCWSTR pszDisplay,WORD LangID,LPCWSTR pszSpoken,SPSHORTCUTTYPE shType) {
6611     return This->lpVtbl->AddShortcut(This,pszDisplay,LangID,pszSpoken,shType);
6612 }
6613 static FORCEINLINE HRESULT ISpShortcut_RemoveShortcut(ISpShortcut* This,LPCWSTR pszDisplay,WORD LangID,LPCWSTR pszSpoken,SPSHORTCUTTYPE shType) {
6614     return This->lpVtbl->RemoveShortcut(This,pszDisplay,LangID,pszSpoken,shType);
6615 }
6616 static FORCEINLINE HRESULT ISpShortcut_GetShortcuts(ISpShortcut* This,WORD LangID,SPSHORTCUTPAIRLIST *pShortcutpairList) {
6617     return This->lpVtbl->GetShortcuts(This,LangID,pShortcutpairList);
6618 }
6619 static FORCEINLINE HRESULT ISpShortcut_GetGeneration(ISpShortcut* This,DWORD *pdwGeneration) {
6620     return This->lpVtbl->GetGeneration(This,pdwGeneration);
6621 }
6622 static FORCEINLINE HRESULT ISpShortcut_GetWordsFromGenerationChange(ISpShortcut* This,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
6623     return This->lpVtbl->GetWordsFromGenerationChange(This,pdwGeneration,pWordList);
6624 }
6625 static FORCEINLINE HRESULT ISpShortcut_GetWords(ISpShortcut* This,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
6626     return This->lpVtbl->GetWords(This,pdwGeneration,pdwCookie,pWordList);
6627 }
6628 static FORCEINLINE HRESULT ISpShortcut_GetShortcutsForGeneration(ISpShortcut* This,DWORD *pdwGeneration,DWORD *pdwCookie,SPSHORTCUTPAIRLIST *pShortcutpairList) {
6629     return This->lpVtbl->GetShortcutsForGeneration(This,pdwGeneration,pdwCookie,pShortcutpairList);
6630 }
6631 static FORCEINLINE HRESULT ISpShortcut_GetGenerationChange(ISpShortcut* This,DWORD *pdwGeneration,SPSHORTCUTPAIRLIST *pShortcutpairList) {
6632     return This->lpVtbl->GetGenerationChange(This,pdwGeneration,pShortcutpairList);
6633 }
6634 #endif
6635 #endif
6636 
6637 #endif
6638 
6639 HRESULT STDMETHODCALLTYPE ISpShortcut_AddShortcut_Proxy(
6640     ISpShortcut* This,
6641     LPCWSTR pszDisplay,
6642     WORD LangID,
6643     LPCWSTR pszSpoken,
6644     SPSHORTCUTTYPE shType);
6645 void __RPC_STUB ISpShortcut_AddShortcut_Stub(
6646     IRpcStubBuffer* This,
6647     IRpcChannelBuffer* pRpcChannelBuffer,
6648     PRPC_MESSAGE pRpcMessage,
6649     DWORD* pdwStubPhase);
6650 HRESULT STDMETHODCALLTYPE ISpShortcut_RemoveShortcut_Proxy(
6651     ISpShortcut* This,
6652     LPCWSTR pszDisplay,
6653     WORD LangID,
6654     LPCWSTR pszSpoken,
6655     SPSHORTCUTTYPE shType);
6656 void __RPC_STUB ISpShortcut_RemoveShortcut_Stub(
6657     IRpcStubBuffer* This,
6658     IRpcChannelBuffer* pRpcChannelBuffer,
6659     PRPC_MESSAGE pRpcMessage,
6660     DWORD* pdwStubPhase);
6661 HRESULT STDMETHODCALLTYPE ISpShortcut_GetShortcuts_Proxy(
6662     ISpShortcut* This,
6663     WORD LangID,
6664     SPSHORTCUTPAIRLIST *pShortcutpairList);
6665 void __RPC_STUB ISpShortcut_GetShortcuts_Stub(
6666     IRpcStubBuffer* This,
6667     IRpcChannelBuffer* pRpcChannelBuffer,
6668     PRPC_MESSAGE pRpcMessage,
6669     DWORD* pdwStubPhase);
6670 HRESULT STDMETHODCALLTYPE ISpShortcut_GetGeneration_Proxy(
6671     ISpShortcut* This,
6672     DWORD *pdwGeneration);
6673 void __RPC_STUB ISpShortcut_GetGeneration_Stub(
6674     IRpcStubBuffer* This,
6675     IRpcChannelBuffer* pRpcChannelBuffer,
6676     PRPC_MESSAGE pRpcMessage,
6677     DWORD* pdwStubPhase);
6678 HRESULT STDMETHODCALLTYPE ISpShortcut_GetWordsFromGenerationChange_Proxy(
6679     ISpShortcut* This,
6680     DWORD *pdwGeneration,
6681     SPWORDLIST *pWordList);
6682 void __RPC_STUB ISpShortcut_GetWordsFromGenerationChange_Stub(
6683     IRpcStubBuffer* This,
6684     IRpcChannelBuffer* pRpcChannelBuffer,
6685     PRPC_MESSAGE pRpcMessage,
6686     DWORD* pdwStubPhase);
6687 HRESULT STDMETHODCALLTYPE ISpShortcut_GetWords_Proxy(
6688     ISpShortcut* This,
6689     DWORD *pdwGeneration,
6690     DWORD *pdwCookie,
6691     SPWORDLIST *pWordList);
6692 void __RPC_STUB ISpShortcut_GetWords_Stub(
6693     IRpcStubBuffer* This,
6694     IRpcChannelBuffer* pRpcChannelBuffer,
6695     PRPC_MESSAGE pRpcMessage,
6696     DWORD* pdwStubPhase);
6697 HRESULT STDMETHODCALLTYPE ISpShortcut_GetShortcutsForGeneration_Proxy(
6698     ISpShortcut* This,
6699     DWORD *pdwGeneration,
6700     DWORD *pdwCookie,
6701     SPSHORTCUTPAIRLIST *pShortcutpairList);
6702 void __RPC_STUB ISpShortcut_GetShortcutsForGeneration_Stub(
6703     IRpcStubBuffer* This,
6704     IRpcChannelBuffer* pRpcChannelBuffer,
6705     PRPC_MESSAGE pRpcMessage,
6706     DWORD* pdwStubPhase);
6707 HRESULT STDMETHODCALLTYPE ISpShortcut_GetGenerationChange_Proxy(
6708     ISpShortcut* This,
6709     DWORD *pdwGeneration,
6710     SPSHORTCUTPAIRLIST *pShortcutpairList);
6711 void __RPC_STUB ISpShortcut_GetGenerationChange_Stub(
6712     IRpcStubBuffer* This,
6713     IRpcChannelBuffer* pRpcChannelBuffer,
6714     PRPC_MESSAGE pRpcMessage,
6715     DWORD* pdwStubPhase);
6716 
6717 #endif  /* __ISpShortcut_INTERFACE_DEFINED__ */
6718 
6719 /*****************************************************************************
6720  * ISpPhoneConverter interface
6721  */
6722 #ifndef __ISpPhoneConverter_INTERFACE_DEFINED__
6723 #define __ISpPhoneConverter_INTERFACE_DEFINED__
6724 
6725 DEFINE_GUID(IID_ISpPhoneConverter, 0x8445c581, 0x0cac, 0x4a38, 0xab,0xfe, 0x9b,0x2c,0xe2,0x82,0x64,0x55);
6726 #if defined(__cplusplus) && !defined(CINTERFACE)
6727 MIDL_INTERFACE("8445c581-0cac-4a38-abfe-9b2ce2826455")
6728 ISpPhoneConverter : public ISpObjectWithToken
6729 {
6730     virtual HRESULT STDMETHODCALLTYPE PhoneToId(
6731         LPCWSTR pszPhone,
6732         SPPHONEID *pId) = 0;
6733 
6734     virtual HRESULT STDMETHODCALLTYPE IdToPhone(
6735         PCSPPHONEID pId,
6736         WCHAR *pszPhone) = 0;
6737 
6738 };
6739 #ifdef __CRT_UUID_DECL
6740 __CRT_UUID_DECL(ISpPhoneConverter, 0x8445c581, 0x0cac, 0x4a38, 0xab,0xfe, 0x9b,0x2c,0xe2,0x82,0x64,0x55)
6741 #endif
6742 #else
6743 typedef struct ISpPhoneConverterVtbl {
6744     BEGIN_INTERFACE
6745 
6746     /*** IUnknown methods ***/
6747     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6748         ISpPhoneConverter* This,
6749         REFIID riid,
6750         void **ppvObject);
6751 
6752     ULONG (STDMETHODCALLTYPE *AddRef)(
6753         ISpPhoneConverter* This);
6754 
6755     ULONG (STDMETHODCALLTYPE *Release)(
6756         ISpPhoneConverter* This);
6757 
6758     /*** ISpObjectWithToken methods ***/
6759     HRESULT (STDMETHODCALLTYPE *SetObjectToken)(
6760         ISpPhoneConverter* This,
6761         ISpObjectToken *pToken);
6762 
6763     HRESULT (STDMETHODCALLTYPE *GetObjectToken)(
6764         ISpPhoneConverter* This,
6765         ISpObjectToken **ppToken);
6766 
6767     /*** ISpPhoneConverter methods ***/
6768     HRESULT (STDMETHODCALLTYPE *PhoneToId)(
6769         ISpPhoneConverter* This,
6770         LPCWSTR pszPhone,
6771         SPPHONEID *pId);
6772 
6773     HRESULT (STDMETHODCALLTYPE *IdToPhone)(
6774         ISpPhoneConverter* This,
6775         PCSPPHONEID pId,
6776         WCHAR *pszPhone);
6777 
6778     END_INTERFACE
6779 } ISpPhoneConverterVtbl;
6780 interface ISpPhoneConverter {
6781     CONST_VTBL ISpPhoneConverterVtbl* lpVtbl;
6782 };
6783 
6784 #ifdef COBJMACROS
6785 #ifndef WIDL_C_INLINE_WRAPPERS
6786 /*** IUnknown methods ***/
6787 #define ISpPhoneConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6788 #define ISpPhoneConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
6789 #define ISpPhoneConverter_Release(This) (This)->lpVtbl->Release(This)
6790 /*** ISpObjectWithToken methods ***/
6791 #define ISpPhoneConverter_SetObjectToken(This,pToken) (This)->lpVtbl->SetObjectToken(This,pToken)
6792 #define ISpPhoneConverter_GetObjectToken(This,ppToken) (This)->lpVtbl->GetObjectToken(This,ppToken)
6793 /*** ISpPhoneConverter methods ***/
6794 #define ISpPhoneConverter_PhoneToId(This,pszPhone,pId) (This)->lpVtbl->PhoneToId(This,pszPhone,pId)
6795 #define ISpPhoneConverter_IdToPhone(This,pId,pszPhone) (This)->lpVtbl->IdToPhone(This,pId,pszPhone)
6796 #else
6797 /*** IUnknown methods ***/
6798 static FORCEINLINE HRESULT ISpPhoneConverter_QueryInterface(ISpPhoneConverter* This,REFIID riid,void **ppvObject) {
6799     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6800 }
6801 static FORCEINLINE ULONG ISpPhoneConverter_AddRef(ISpPhoneConverter* This) {
6802     return This->lpVtbl->AddRef(This);
6803 }
6804 static FORCEINLINE ULONG ISpPhoneConverter_Release(ISpPhoneConverter* This) {
6805     return This->lpVtbl->Release(This);
6806 }
6807 /*** ISpObjectWithToken methods ***/
6808 static FORCEINLINE HRESULT ISpPhoneConverter_SetObjectToken(ISpPhoneConverter* This,ISpObjectToken *pToken) {
6809     return This->lpVtbl->SetObjectToken(This,pToken);
6810 }
6811 static FORCEINLINE HRESULT ISpPhoneConverter_GetObjectToken(ISpPhoneConverter* This,ISpObjectToken **ppToken) {
6812     return This->lpVtbl->GetObjectToken(This,ppToken);
6813 }
6814 /*** ISpPhoneConverter methods ***/
6815 static FORCEINLINE HRESULT ISpPhoneConverter_PhoneToId(ISpPhoneConverter* This,LPCWSTR pszPhone,SPPHONEID *pId) {
6816     return This->lpVtbl->PhoneToId(This,pszPhone,pId);
6817 }
6818 static FORCEINLINE HRESULT ISpPhoneConverter_IdToPhone(ISpPhoneConverter* This,PCSPPHONEID pId,WCHAR *pszPhone) {
6819     return This->lpVtbl->IdToPhone(This,pId,pszPhone);
6820 }
6821 #endif
6822 #endif
6823 
6824 #endif
6825 
6826 HRESULT STDMETHODCALLTYPE ISpPhoneConverter_PhoneToId_Proxy(
6827     ISpPhoneConverter* This,
6828     LPCWSTR pszPhone,
6829     SPPHONEID *pId);
6830 void __RPC_STUB ISpPhoneConverter_PhoneToId_Stub(
6831     IRpcStubBuffer* This,
6832     IRpcChannelBuffer* pRpcChannelBuffer,
6833     PRPC_MESSAGE pRpcMessage,
6834     DWORD* pdwStubPhase);
6835 HRESULT STDMETHODCALLTYPE ISpPhoneConverter_IdToPhone_Proxy(
6836     ISpPhoneConverter* This,
6837     PCSPPHONEID pId,
6838     WCHAR *pszPhone);
6839 void __RPC_STUB ISpPhoneConverter_IdToPhone_Stub(
6840     IRpcStubBuffer* This,
6841     IRpcChannelBuffer* pRpcChannelBuffer,
6842     PRPC_MESSAGE pRpcMessage,
6843     DWORD* pdwStubPhase);
6844 
6845 #endif  /* __ISpPhoneConverter_INTERFACE_DEFINED__ */
6846 
6847 /*****************************************************************************
6848  * ISpPhoneticAlphabetConverter interface
6849  */
6850 #ifndef __ISpPhoneticAlphabetConverter_INTERFACE_DEFINED__
6851 #define __ISpPhoneticAlphabetConverter_INTERFACE_DEFINED__
6852 
6853 DEFINE_GUID(IID_ISpPhoneticAlphabetConverter, 0x133adcd4, 0x19b4, 0x4020, 0x9f,0xdc, 0x84,0x2e,0x78,0x25,0x3b,0x17);
6854 #if defined(__cplusplus) && !defined(CINTERFACE)
6855 MIDL_INTERFACE("133adcd4-19b4-4020-9fdc-842e78253b17")
6856 ISpPhoneticAlphabetConverter : public IUnknown
6857 {
6858     virtual HRESULT STDMETHODCALLTYPE GetLangId(
6859         WORD *pLangID) = 0;
6860 
6861     virtual HRESULT STDMETHODCALLTYPE SetLangId(
6862         WORD LangID) = 0;
6863 
6864     virtual HRESULT STDMETHODCALLTYPE SAPI2UPS(
6865         const SPPHONEID *pszSAPIId,
6866         SPPHONEID *pszUPSId,
6867         DWORD cMaxLength) = 0;
6868 
6869     virtual HRESULT STDMETHODCALLTYPE UPS2SAPI(
6870         const SPPHONEID *pszUPSId,
6871         SPPHONEID *pszSAPIId,
6872         DWORD cMaxLength) = 0;
6873 
6874     virtual HRESULT STDMETHODCALLTYPE GetMaxConvertLength(
6875         DWORD cSrcLength,
6876         WINBOOL bSAPI2UPS,
6877         DWORD *pcMaxDestLength) = 0;
6878 
6879 };
6880 #ifdef __CRT_UUID_DECL
6881 __CRT_UUID_DECL(ISpPhoneticAlphabetConverter, 0x133adcd4, 0x19b4, 0x4020, 0x9f,0xdc, 0x84,0x2e,0x78,0x25,0x3b,0x17)
6882 #endif
6883 #else
6884 typedef struct ISpPhoneticAlphabetConverterVtbl {
6885     BEGIN_INTERFACE
6886 
6887     /*** IUnknown methods ***/
6888     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6889         ISpPhoneticAlphabetConverter* This,
6890         REFIID riid,
6891         void **ppvObject);
6892 
6893     ULONG (STDMETHODCALLTYPE *AddRef)(
6894         ISpPhoneticAlphabetConverter* This);
6895 
6896     ULONG (STDMETHODCALLTYPE *Release)(
6897         ISpPhoneticAlphabetConverter* This);
6898 
6899     /*** ISpPhoneticAlphabetConverter methods ***/
6900     HRESULT (STDMETHODCALLTYPE *GetLangId)(
6901         ISpPhoneticAlphabetConverter* This,
6902         WORD *pLangID);
6903 
6904     HRESULT (STDMETHODCALLTYPE *SetLangId)(
6905         ISpPhoneticAlphabetConverter* This,
6906         WORD LangID);
6907 
6908     HRESULT (STDMETHODCALLTYPE *SAPI2UPS)(
6909         ISpPhoneticAlphabetConverter* This,
6910         const SPPHONEID *pszSAPIId,
6911         SPPHONEID *pszUPSId,
6912         DWORD cMaxLength);
6913 
6914     HRESULT (STDMETHODCALLTYPE *UPS2SAPI)(
6915         ISpPhoneticAlphabetConverter* This,
6916         const SPPHONEID *pszUPSId,
6917         SPPHONEID *pszSAPIId,
6918         DWORD cMaxLength);
6919 
6920     HRESULT (STDMETHODCALLTYPE *GetMaxConvertLength)(
6921         ISpPhoneticAlphabetConverter* This,
6922         DWORD cSrcLength,
6923         WINBOOL bSAPI2UPS,
6924         DWORD *pcMaxDestLength);
6925 
6926     END_INTERFACE
6927 } ISpPhoneticAlphabetConverterVtbl;
6928 interface ISpPhoneticAlphabetConverter {
6929     CONST_VTBL ISpPhoneticAlphabetConverterVtbl* lpVtbl;
6930 };
6931 
6932 #ifdef COBJMACROS
6933 #ifndef WIDL_C_INLINE_WRAPPERS
6934 /*** IUnknown methods ***/
6935 #define ISpPhoneticAlphabetConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6936 #define ISpPhoneticAlphabetConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
6937 #define ISpPhoneticAlphabetConverter_Release(This) (This)->lpVtbl->Release(This)
6938 /*** ISpPhoneticAlphabetConverter methods ***/
6939 #define ISpPhoneticAlphabetConverter_GetLangId(This,pLangID) (This)->lpVtbl->GetLangId(This,pLangID)
6940 #define ISpPhoneticAlphabetConverter_SetLangId(This,LangID) (This)->lpVtbl->SetLangId(This,LangID)
6941 #define ISpPhoneticAlphabetConverter_SAPI2UPS(This,pszSAPIId,pszUPSId,cMaxLength) (This)->lpVtbl->SAPI2UPS(This,pszSAPIId,pszUPSId,cMaxLength)
6942 #define ISpPhoneticAlphabetConverter_UPS2SAPI(This,pszUPSId,pszSAPIId,cMaxLength) (This)->lpVtbl->UPS2SAPI(This,pszUPSId,pszSAPIId,cMaxLength)
6943 #define ISpPhoneticAlphabetConverter_GetMaxConvertLength(This,cSrcLength,bSAPI2UPS,pcMaxDestLength) (This)->lpVtbl->GetMaxConvertLength(This,cSrcLength,bSAPI2UPS,pcMaxDestLength)
6944 #else
6945 /*** IUnknown methods ***/
6946 static FORCEINLINE HRESULT ISpPhoneticAlphabetConverter_QueryInterface(ISpPhoneticAlphabetConverter* This,REFIID riid,void **ppvObject) {
6947     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6948 }
6949 static FORCEINLINE ULONG ISpPhoneticAlphabetConverter_AddRef(ISpPhoneticAlphabetConverter* This) {
6950     return This->lpVtbl->AddRef(This);
6951 }
6952 static FORCEINLINE ULONG ISpPhoneticAlphabetConverter_Release(ISpPhoneticAlphabetConverter* This) {
6953     return This->lpVtbl->Release(This);
6954 }
6955 /*** ISpPhoneticAlphabetConverter methods ***/
6956 static FORCEINLINE HRESULT ISpPhoneticAlphabetConverter_GetLangId(ISpPhoneticAlphabetConverter* This,WORD *pLangID) {
6957     return This->lpVtbl->GetLangId(This,pLangID);
6958 }
6959 static FORCEINLINE HRESULT ISpPhoneticAlphabetConverter_SetLangId(ISpPhoneticAlphabetConverter* This,WORD LangID) {
6960     return This->lpVtbl->SetLangId(This,LangID);
6961 }
6962 static FORCEINLINE HRESULT ISpPhoneticAlphabetConverter_SAPI2UPS(ISpPhoneticAlphabetConverter* This,const SPPHONEID *pszSAPIId,SPPHONEID *pszUPSId,DWORD cMaxLength) {
6963     return This->lpVtbl->SAPI2UPS(This,pszSAPIId,pszUPSId,cMaxLength);
6964 }
6965 static FORCEINLINE HRESULT ISpPhoneticAlphabetConverter_UPS2SAPI(ISpPhoneticAlphabetConverter* This,const SPPHONEID *pszUPSId,SPPHONEID *pszSAPIId,DWORD cMaxLength) {
6966     return This->lpVtbl->UPS2SAPI(This,pszUPSId,pszSAPIId,cMaxLength);
6967 }
6968 static FORCEINLINE HRESULT ISpPhoneticAlphabetConverter_GetMaxConvertLength(ISpPhoneticAlphabetConverter* This,DWORD cSrcLength,WINBOOL bSAPI2UPS,DWORD *pcMaxDestLength) {
6969     return This->lpVtbl->GetMaxConvertLength(This,cSrcLength,bSAPI2UPS,pcMaxDestLength);
6970 }
6971 #endif
6972 #endif
6973 
6974 #endif
6975 
6976 HRESULT STDMETHODCALLTYPE ISpPhoneticAlphabetConverter_GetLangId_Proxy(
6977     ISpPhoneticAlphabetConverter* This,
6978     WORD *pLangID);
6979 void __RPC_STUB ISpPhoneticAlphabetConverter_GetLangId_Stub(
6980     IRpcStubBuffer* This,
6981     IRpcChannelBuffer* pRpcChannelBuffer,
6982     PRPC_MESSAGE pRpcMessage,
6983     DWORD* pdwStubPhase);
6984 HRESULT STDMETHODCALLTYPE ISpPhoneticAlphabetConverter_SetLangId_Proxy(
6985     ISpPhoneticAlphabetConverter* This,
6986     WORD LangID);
6987 void __RPC_STUB ISpPhoneticAlphabetConverter_SetLangId_Stub(
6988     IRpcStubBuffer* This,
6989     IRpcChannelBuffer* pRpcChannelBuffer,
6990     PRPC_MESSAGE pRpcMessage,
6991     DWORD* pdwStubPhase);
6992 HRESULT STDMETHODCALLTYPE ISpPhoneticAlphabetConverter_SAPI2UPS_Proxy(
6993     ISpPhoneticAlphabetConverter* This,
6994     const SPPHONEID *pszSAPIId,
6995     SPPHONEID *pszUPSId,
6996     DWORD cMaxLength);
6997 void __RPC_STUB ISpPhoneticAlphabetConverter_SAPI2UPS_Stub(
6998     IRpcStubBuffer* This,
6999     IRpcChannelBuffer* pRpcChannelBuffer,
7000     PRPC_MESSAGE pRpcMessage,
7001     DWORD* pdwStubPhase);
7002 HRESULT STDMETHODCALLTYPE ISpPhoneticAlphabetConverter_UPS2SAPI_Proxy(
7003     ISpPhoneticAlphabetConverter* This,
7004     const SPPHONEID *pszUPSId,
7005     SPPHONEID *pszSAPIId,
7006     DWORD cMaxLength);
7007 void __RPC_STUB ISpPhoneticAlphabetConverter_UPS2SAPI_Stub(
7008     IRpcStubBuffer* This,
7009     IRpcChannelBuffer* pRpcChannelBuffer,
7010     PRPC_MESSAGE pRpcMessage,
7011     DWORD* pdwStubPhase);
7012 HRESULT STDMETHODCALLTYPE ISpPhoneticAlphabetConverter_GetMaxConvertLength_Proxy(
7013     ISpPhoneticAlphabetConverter* This,
7014     DWORD cSrcLength,
7015     WINBOOL bSAPI2UPS,
7016     DWORD *pcMaxDestLength);
7017 void __RPC_STUB ISpPhoneticAlphabetConverter_GetMaxConvertLength_Stub(
7018     IRpcStubBuffer* This,
7019     IRpcChannelBuffer* pRpcChannelBuffer,
7020     PRPC_MESSAGE pRpcMessage,
7021     DWORD* pdwStubPhase);
7022 
7023 #endif  /* __ISpPhoneticAlphabetConverter_INTERFACE_DEFINED__ */
7024 
7025 /*****************************************************************************
7026  * ISpPhoneticAlphabetSelection interface
7027  */
7028 #ifndef __ISpPhoneticAlphabetSelection_INTERFACE_DEFINED__
7029 #define __ISpPhoneticAlphabetSelection_INTERFACE_DEFINED__
7030 
7031 DEFINE_GUID(IID_ISpPhoneticAlphabetSelection, 0xb2745efd, 0x42ce, 0x48ca, 0x81,0xf1, 0xa9,0x6e,0x02,0x53,0x8a,0x90);
7032 #if defined(__cplusplus) && !defined(CINTERFACE)
7033 MIDL_INTERFACE("b2745efd-42ce-48ca-81f1-a96e02538a90")
7034 ISpPhoneticAlphabetSelection : public IUnknown
7035 {
7036     virtual HRESULT STDMETHODCALLTYPE IsAlphabetUPS(
7037         WINBOOL *pfIsUPS) = 0;
7038 
7039     virtual HRESULT STDMETHODCALLTYPE SetAlphabetToUPS(
7040         WINBOOL fForceUPS) = 0;
7041 
7042 };
7043 #ifdef __CRT_UUID_DECL
7044 __CRT_UUID_DECL(ISpPhoneticAlphabetSelection, 0xb2745efd, 0x42ce, 0x48ca, 0x81,0xf1, 0xa9,0x6e,0x02,0x53,0x8a,0x90)
7045 #endif
7046 #else
7047 typedef struct ISpPhoneticAlphabetSelectionVtbl {
7048     BEGIN_INTERFACE
7049 
7050     /*** IUnknown methods ***/
7051     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7052         ISpPhoneticAlphabetSelection* This,
7053         REFIID riid,
7054         void **ppvObject);
7055 
7056     ULONG (STDMETHODCALLTYPE *AddRef)(
7057         ISpPhoneticAlphabetSelection* This);
7058 
7059     ULONG (STDMETHODCALLTYPE *Release)(
7060         ISpPhoneticAlphabetSelection* This);
7061 
7062     /*** ISpPhoneticAlphabetSelection methods ***/
7063     HRESULT (STDMETHODCALLTYPE *IsAlphabetUPS)(
7064         ISpPhoneticAlphabetSelection* This,
7065         WINBOOL *pfIsUPS);
7066 
7067     HRESULT (STDMETHODCALLTYPE *SetAlphabetToUPS)(
7068         ISpPhoneticAlphabetSelection* This,
7069         WINBOOL fForceUPS);
7070 
7071     END_INTERFACE
7072 } ISpPhoneticAlphabetSelectionVtbl;
7073 interface ISpPhoneticAlphabetSelection {
7074     CONST_VTBL ISpPhoneticAlphabetSelectionVtbl* lpVtbl;
7075 };
7076 
7077 #ifdef COBJMACROS
7078 #ifndef WIDL_C_INLINE_WRAPPERS
7079 /*** IUnknown methods ***/
7080 #define ISpPhoneticAlphabetSelection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7081 #define ISpPhoneticAlphabetSelection_AddRef(This) (This)->lpVtbl->AddRef(This)
7082 #define ISpPhoneticAlphabetSelection_Release(This) (This)->lpVtbl->Release(This)
7083 /*** ISpPhoneticAlphabetSelection methods ***/
7084 #define ISpPhoneticAlphabetSelection_IsAlphabetUPS(This,pfIsUPS) (This)->lpVtbl->IsAlphabetUPS(This,pfIsUPS)
7085 #define ISpPhoneticAlphabetSelection_SetAlphabetToUPS(This,fForceUPS) (This)->lpVtbl->SetAlphabetToUPS(This,fForceUPS)
7086 #else
7087 /*** IUnknown methods ***/
7088 static FORCEINLINE HRESULT ISpPhoneticAlphabetSelection_QueryInterface(ISpPhoneticAlphabetSelection* This,REFIID riid,void **ppvObject) {
7089     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7090 }
7091 static FORCEINLINE ULONG ISpPhoneticAlphabetSelection_AddRef(ISpPhoneticAlphabetSelection* This) {
7092     return This->lpVtbl->AddRef(This);
7093 }
7094 static FORCEINLINE ULONG ISpPhoneticAlphabetSelection_Release(ISpPhoneticAlphabetSelection* This) {
7095     return This->lpVtbl->Release(This);
7096 }
7097 /*** ISpPhoneticAlphabetSelection methods ***/
7098 static FORCEINLINE HRESULT ISpPhoneticAlphabetSelection_IsAlphabetUPS(ISpPhoneticAlphabetSelection* This,WINBOOL *pfIsUPS) {
7099     return This->lpVtbl->IsAlphabetUPS(This,pfIsUPS);
7100 }
7101 static FORCEINLINE HRESULT ISpPhoneticAlphabetSelection_SetAlphabetToUPS(ISpPhoneticAlphabetSelection* This,WINBOOL fForceUPS) {
7102     return This->lpVtbl->SetAlphabetToUPS(This,fForceUPS);
7103 }
7104 #endif
7105 #endif
7106 
7107 #endif
7108 
7109 HRESULT STDMETHODCALLTYPE ISpPhoneticAlphabetSelection_IsAlphabetUPS_Proxy(
7110     ISpPhoneticAlphabetSelection* This,
7111     WINBOOL *pfIsUPS);
7112 void __RPC_STUB ISpPhoneticAlphabetSelection_IsAlphabetUPS_Stub(
7113     IRpcStubBuffer* This,
7114     IRpcChannelBuffer* pRpcChannelBuffer,
7115     PRPC_MESSAGE pRpcMessage,
7116     DWORD* pdwStubPhase);
7117 HRESULT STDMETHODCALLTYPE ISpPhoneticAlphabetSelection_SetAlphabetToUPS_Proxy(
7118     ISpPhoneticAlphabetSelection* This,
7119     WINBOOL fForceUPS);
7120 void __RPC_STUB ISpPhoneticAlphabetSelection_SetAlphabetToUPS_Stub(
7121     IRpcStubBuffer* This,
7122     IRpcChannelBuffer* pRpcChannelBuffer,
7123     PRPC_MESSAGE pRpcMessage,
7124     DWORD* pdwStubPhase);
7125 
7126 #endif  /* __ISpPhoneticAlphabetSelection_INTERFACE_DEFINED__ */
7127 
7128 typedef struct SPVPITCH {
7129     LONG MiddleAdj;
7130     LONG RangeAdj;
7131 } SPVPITCH;
7132 typedef struct SPVCONTEXT {
7133     LPCWSTR pCategory;
7134     LPCWSTR pBefore;
7135     LPCWSTR pAfter;
7136 } SPVCONTEXT;
7137 typedef struct SPVSTATE {
7138     SPVACTIONS eAction;
7139     WORD LangID;
7140     WORD wReserved;
7141     LONG EmphAdj;
7142     LONG RateAdj;
7143     ULONG Volume;
7144     SPVPITCH PitchAdj;
7145     ULONG SilenceMSecs;
7146     SPPHONEID *pPhoneIds;
7147     SPPARTOFSPEECH ePartOfSpeech;
7148     SPVCONTEXT Context;
7149 } SPVSTATE;
7150 typedef struct SPVOICESTATUS {
7151     ULONG ulCurrentStream;
7152     ULONG ulLastStreamQueued;
7153     HRESULT hrLastResult;
7154     DWORD dwRunningState;
7155     ULONG ulInputWordPos;
7156     ULONG ulInputWordLen;
7157     ULONG ulInputSentPos;
7158     ULONG ulInputSentLen;
7159     LONG lBookmarkId;
7160     SPPHONEID PhonemeId;
7161     SPVISEMES VisemeId;
7162     DWORD dwReserved1;
7163     DWORD dwReserved2;
7164 } SPVOICESTATUS;
7165 typedef enum SPEAKFLAGS {
7166     SPF_DEFAULT = 0,
7167     SPF_ASYNC = 1,
7168     SPF_PURGEBEFORESPEAK = 2,
7169     SPF_IS_FILENAME = 4,
7170     SPF_IS_XML = 8,
7171     SPF_IS_NOT_XML = 0x10,
7172     SPF_PERSIST_XML = 0x20,
7173     SPF_NLP_SPEAK_PUNC = 0x40,
7174     SPF_PARSE_SAPI = 0x80,
7175     SPF_PARSE_SSML = 0x100,
7176     SPF_PARSE_AUTODETECT = 0,
7177     SPF_NLP_MASK = SPF_NLP_SPEAK_PUNC,
7178     SPF_PARSE_MASK = SPF_PARSE_SAPI | SPF_PARSE_SSML,
7179     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,
7180     SPF_UNUSED_FLAGS = ~SPF_VOICE_MASK
7181 } SPEAKFLAGS;
7182 /*****************************************************************************
7183  * ISpVoice interface
7184  */
7185 #ifndef __ISpVoice_INTERFACE_DEFINED__
7186 #define __ISpVoice_INTERFACE_DEFINED__
7187 
7188 DEFINE_GUID(IID_ISpVoice, 0x6c44df74, 0x72b9, 0x4992, 0xa1,0xec, 0xef,0x99,0x6e,0x04,0x22,0xd4);
7189 #if defined(__cplusplus) && !defined(CINTERFACE)
7190 MIDL_INTERFACE("6c44df74-72b9-4992-a1ec-ef996e0422d4")
7191 ISpVoice : public ISpEventSource
7192 {
7193     virtual HRESULT STDMETHODCALLTYPE SetOutput(
7194         IUnknown *pUnkOutput,
7195         WINBOOL fAllowFormatChanges) = 0;
7196 
7197     virtual HRESULT STDMETHODCALLTYPE GetOutputObjectToken(
7198         ISpObjectToken **ppObjectToken) = 0;
7199 
7200     virtual HRESULT STDMETHODCALLTYPE GetOutputStream(
7201         ISpStreamFormat **ppStream) = 0;
7202 
7203     virtual HRESULT STDMETHODCALLTYPE Pause(
7204         ) = 0;
7205 
7206     virtual HRESULT STDMETHODCALLTYPE Resume(
7207         ) = 0;
7208 
7209     virtual HRESULT STDMETHODCALLTYPE SetVoice(
7210         ISpObjectToken *pToken) = 0;
7211 
7212     virtual HRESULT STDMETHODCALLTYPE GetVoice(
7213         ISpObjectToken **ppToken) = 0;
7214 
7215     virtual HRESULT STDMETHODCALLTYPE Speak(
7216         LPCWSTR pwcs,
7217         DWORD dwFlags,
7218         ULONG *pulStreamNumber) = 0;
7219 
7220     virtual HRESULT STDMETHODCALLTYPE SpeakStream(
7221         IStream *pStream,
7222         DWORD dwFlags,
7223         ULONG *pulStreamNumber) = 0;
7224 
7225     virtual HRESULT STDMETHODCALLTYPE GetStatus(
7226         SPVOICESTATUS *pStatus,
7227         LPWSTR *ppszLastBookmark) = 0;
7228 
7229     virtual HRESULT STDMETHODCALLTYPE Skip(
7230         LPCWSTR pItemType,
7231         LONG lNumItems,
7232         ULONG *pulNumSkipped) = 0;
7233 
7234     virtual HRESULT STDMETHODCALLTYPE SetPriority(
7235         SPVPRIORITY ePriority) = 0;
7236 
7237     virtual HRESULT STDMETHODCALLTYPE GetPriority(
7238         SPVPRIORITY *pePriority) = 0;
7239 
7240     virtual HRESULT STDMETHODCALLTYPE SetAlertBoundary(
7241         SPEVENTENUM eBoundary) = 0;
7242 
7243     virtual HRESULT STDMETHODCALLTYPE GetAlertBoundary(
7244         SPEVENTENUM *peBoundary) = 0;
7245 
7246     virtual HRESULT STDMETHODCALLTYPE SetRate(
7247         LONG RateAdjust) = 0;
7248 
7249     virtual HRESULT STDMETHODCALLTYPE GetRate(
7250         LONG *pRateAdjust) = 0;
7251 
7252     virtual HRESULT STDMETHODCALLTYPE SetVolume(
7253         USHORT usVolume) = 0;
7254 
7255     virtual HRESULT STDMETHODCALLTYPE GetVolume(
7256         USHORT *pusVolume) = 0;
7257 
7258     virtual HRESULT STDMETHODCALLTYPE WaitUntilDone(
7259         ULONG msTimeout) = 0;
7260 
7261     virtual HRESULT STDMETHODCALLTYPE SetSyncSpeakTimeout(
7262         ULONG msTimeout) = 0;
7263 
7264     virtual HRESULT STDMETHODCALLTYPE GetSyncSpeakTimeout(
7265         ULONG *pmsTimeout) = 0;
7266 
7267     virtual HANDLE STDMETHODCALLTYPE SpeakCompleteEvent(
7268         ) = 0;
7269 
7270     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
7271         LPCWSTR pszTypeOfUI,
7272         void *pvExtraData,
7273         ULONG cbExtraData,
7274         WINBOOL *pfSupported) = 0;
7275 
7276     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
7277         HWND hwndParent,
7278         LPCWSTR pszTitle,
7279         LPCWSTR pszTypeOfUI,
7280         void *pvExtraData,
7281         ULONG cbExtraData) = 0;
7282 
7283 };
7284 #ifdef __CRT_UUID_DECL
7285 __CRT_UUID_DECL(ISpVoice, 0x6c44df74, 0x72b9, 0x4992, 0xa1,0xec, 0xef,0x99,0x6e,0x04,0x22,0xd4)
7286 #endif
7287 #else
7288 typedef struct ISpVoiceVtbl {
7289     BEGIN_INTERFACE
7290 
7291     /*** IUnknown methods ***/
7292     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7293         ISpVoice* This,
7294         REFIID riid,
7295         void **ppvObject);
7296 
7297     ULONG (STDMETHODCALLTYPE *AddRef)(
7298         ISpVoice* This);
7299 
7300     ULONG (STDMETHODCALLTYPE *Release)(
7301         ISpVoice* This);
7302 
7303     /*** ISpNotifySource methods ***/
7304     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
7305         ISpVoice* This,
7306         ISpNotifySink *pNotifySink);
7307 
7308     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
7309         ISpVoice* This,
7310         HWND hWnd,
7311         UINT Msg,
7312         WPARAM wParam,
7313         LPARAM lParam);
7314 
7315     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
7316         ISpVoice* This,
7317         SPNOTIFYCALLBACK *pfnCallback,
7318         WPARAM wParam,
7319         LPARAM lParam);
7320 
7321     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
7322         ISpVoice* This,
7323         ISpNotifyCallback *pSpCallback,
7324         WPARAM wParam,
7325         LPARAM lParam);
7326 
7327     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
7328         ISpVoice* This);
7329 
7330     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
7331         ISpVoice* This,
7332         DWORD dwMilliseconds);
7333 
7334     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
7335         ISpVoice* This);
7336 
7337     /*** ISpEventSource methods ***/
7338     HRESULT (STDMETHODCALLTYPE *SetInterest)(
7339         ISpVoice* This,
7340         ULONGLONG ullEventInterest,
7341         ULONGLONG ullQueuedInterest);
7342 
7343     HRESULT (STDMETHODCALLTYPE *GetEvents)(
7344         ISpVoice* This,
7345         ULONG ulCount,
7346         SPEVENT *pEventArray,
7347         ULONG *pulFetched);
7348 
7349     HRESULT (STDMETHODCALLTYPE *GetInfo)(
7350         ISpVoice* This,
7351         SPEVENTSOURCEINFO *pInfo);
7352 
7353     /*** ISpVoice methods ***/
7354     HRESULT (STDMETHODCALLTYPE *SetOutput)(
7355         ISpVoice* This,
7356         IUnknown *pUnkOutput,
7357         WINBOOL fAllowFormatChanges);
7358 
7359     HRESULT (STDMETHODCALLTYPE *GetOutputObjectToken)(
7360         ISpVoice* This,
7361         ISpObjectToken **ppObjectToken);
7362 
7363     HRESULT (STDMETHODCALLTYPE *GetOutputStream)(
7364         ISpVoice* This,
7365         ISpStreamFormat **ppStream);
7366 
7367     HRESULT (STDMETHODCALLTYPE *Pause)(
7368         ISpVoice* This);
7369 
7370     HRESULT (STDMETHODCALLTYPE *Resume)(
7371         ISpVoice* This);
7372 
7373     HRESULT (STDMETHODCALLTYPE *SetVoice)(
7374         ISpVoice* This,
7375         ISpObjectToken *pToken);
7376 
7377     HRESULT (STDMETHODCALLTYPE *GetVoice)(
7378         ISpVoice* This,
7379         ISpObjectToken **ppToken);
7380 
7381     HRESULT (STDMETHODCALLTYPE *Speak)(
7382         ISpVoice* This,
7383         LPCWSTR pwcs,
7384         DWORD dwFlags,
7385         ULONG *pulStreamNumber);
7386 
7387     HRESULT (STDMETHODCALLTYPE *SpeakStream)(
7388         ISpVoice* This,
7389         IStream *pStream,
7390         DWORD dwFlags,
7391         ULONG *pulStreamNumber);
7392 
7393     HRESULT (STDMETHODCALLTYPE *GetStatus)(
7394         ISpVoice* This,
7395         SPVOICESTATUS *pStatus,
7396         LPWSTR *ppszLastBookmark);
7397 
7398     HRESULT (STDMETHODCALLTYPE *Skip)(
7399         ISpVoice* This,
7400         LPCWSTR pItemType,
7401         LONG lNumItems,
7402         ULONG *pulNumSkipped);
7403 
7404     HRESULT (STDMETHODCALLTYPE *SetPriority)(
7405         ISpVoice* This,
7406         SPVPRIORITY ePriority);
7407 
7408     HRESULT (STDMETHODCALLTYPE *GetPriority)(
7409         ISpVoice* This,
7410         SPVPRIORITY *pePriority);
7411 
7412     HRESULT (STDMETHODCALLTYPE *SetAlertBoundary)(
7413         ISpVoice* This,
7414         SPEVENTENUM eBoundary);
7415 
7416     HRESULT (STDMETHODCALLTYPE *GetAlertBoundary)(
7417         ISpVoice* This,
7418         SPEVENTENUM *peBoundary);
7419 
7420     HRESULT (STDMETHODCALLTYPE *SetRate)(
7421         ISpVoice* This,
7422         LONG RateAdjust);
7423 
7424     HRESULT (STDMETHODCALLTYPE *GetRate)(
7425         ISpVoice* This,
7426         LONG *pRateAdjust);
7427 
7428     HRESULT (STDMETHODCALLTYPE *SetVolume)(
7429         ISpVoice* This,
7430         USHORT usVolume);
7431 
7432     HRESULT (STDMETHODCALLTYPE *GetVolume)(
7433         ISpVoice* This,
7434         USHORT *pusVolume);
7435 
7436     HRESULT (STDMETHODCALLTYPE *WaitUntilDone)(
7437         ISpVoice* This,
7438         ULONG msTimeout);
7439 
7440     HRESULT (STDMETHODCALLTYPE *SetSyncSpeakTimeout)(
7441         ISpVoice* This,
7442         ULONG msTimeout);
7443 
7444     HRESULT (STDMETHODCALLTYPE *GetSyncSpeakTimeout)(
7445         ISpVoice* This,
7446         ULONG *pmsTimeout);
7447 
7448     HANDLE (STDMETHODCALLTYPE *SpeakCompleteEvent)(
7449         ISpVoice* This);
7450 
7451     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
7452         ISpVoice* This,
7453         LPCWSTR pszTypeOfUI,
7454         void *pvExtraData,
7455         ULONG cbExtraData,
7456         WINBOOL *pfSupported);
7457 
7458     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
7459         ISpVoice* This,
7460         HWND hwndParent,
7461         LPCWSTR pszTitle,
7462         LPCWSTR pszTypeOfUI,
7463         void *pvExtraData,
7464         ULONG cbExtraData);
7465 
7466     END_INTERFACE
7467 } ISpVoiceVtbl;
7468 interface ISpVoice {
7469     CONST_VTBL ISpVoiceVtbl* lpVtbl;
7470 };
7471 
7472 #ifdef COBJMACROS
7473 #ifndef WIDL_C_INLINE_WRAPPERS
7474 /*** IUnknown methods ***/
7475 #define ISpVoice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7476 #define ISpVoice_AddRef(This) (This)->lpVtbl->AddRef(This)
7477 #define ISpVoice_Release(This) (This)->lpVtbl->Release(This)
7478 /*** ISpNotifySource methods ***/
7479 #define ISpVoice_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
7480 #define ISpVoice_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
7481 #define ISpVoice_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
7482 #define ISpVoice_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
7483 #define ISpVoice_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
7484 #define ISpVoice_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
7485 #define ISpVoice_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
7486 /*** ISpEventSource methods ***/
7487 #define ISpVoice_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
7488 #define ISpVoice_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
7489 #define ISpVoice_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
7490 /*** ISpVoice methods ***/
7491 #define ISpVoice_SetOutput(This,pUnkOutput,fAllowFormatChanges) (This)->lpVtbl->SetOutput(This,pUnkOutput,fAllowFormatChanges)
7492 #define ISpVoice_GetOutputObjectToken(This,ppObjectToken) (This)->lpVtbl->GetOutputObjectToken(This,ppObjectToken)
7493 #define ISpVoice_GetOutputStream(This,ppStream) (This)->lpVtbl->GetOutputStream(This,ppStream)
7494 #define ISpVoice_Pause(This) (This)->lpVtbl->Pause(This)
7495 #define ISpVoice_Resume(This) (This)->lpVtbl->Resume(This)
7496 #define ISpVoice_SetVoice(This,pToken) (This)->lpVtbl->SetVoice(This,pToken)
7497 #define ISpVoice_GetVoice(This,ppToken) (This)->lpVtbl->GetVoice(This,ppToken)
7498 #define ISpVoice_Speak(This,pwcs,dwFlags,pulStreamNumber) (This)->lpVtbl->Speak(This,pwcs,dwFlags,pulStreamNumber)
7499 #define ISpVoice_SpeakStream(This,pStream,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakStream(This,pStream,dwFlags,pulStreamNumber)
7500 #define ISpVoice_GetStatus(This,pStatus,ppszLastBookmark) (This)->lpVtbl->GetStatus(This,pStatus,ppszLastBookmark)
7501 #define ISpVoice_Skip(This,pItemType,lNumItems,pulNumSkipped) (This)->lpVtbl->Skip(This,pItemType,lNumItems,pulNumSkipped)
7502 #define ISpVoice_SetPriority(This,ePriority) (This)->lpVtbl->SetPriority(This,ePriority)
7503 #define ISpVoice_GetPriority(This,pePriority) (This)->lpVtbl->GetPriority(This,pePriority)
7504 #define ISpVoice_SetAlertBoundary(This,eBoundary) (This)->lpVtbl->SetAlertBoundary(This,eBoundary)
7505 #define ISpVoice_GetAlertBoundary(This,peBoundary) (This)->lpVtbl->GetAlertBoundary(This,peBoundary)
7506 #define ISpVoice_SetRate(This,RateAdjust) (This)->lpVtbl->SetRate(This,RateAdjust)
7507 #define ISpVoice_GetRate(This,pRateAdjust) (This)->lpVtbl->GetRate(This,pRateAdjust)
7508 #define ISpVoice_SetVolume(This,usVolume) (This)->lpVtbl->SetVolume(This,usVolume)
7509 #define ISpVoice_GetVolume(This,pusVolume) (This)->lpVtbl->GetVolume(This,pusVolume)
7510 #define ISpVoice_WaitUntilDone(This,msTimeout) (This)->lpVtbl->WaitUntilDone(This,msTimeout)
7511 #define ISpVoice_SetSyncSpeakTimeout(This,msTimeout) (This)->lpVtbl->SetSyncSpeakTimeout(This,msTimeout)
7512 #define ISpVoice_GetSyncSpeakTimeout(This,pmsTimeout) (This)->lpVtbl->GetSyncSpeakTimeout(This,pmsTimeout)
7513 #define ISpVoice_SpeakCompleteEvent(This) (This)->lpVtbl->SpeakCompleteEvent(This)
7514 #define ISpVoice_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported)
7515 #define ISpVoice_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData)
7516 #else
7517 /*** IUnknown methods ***/
7518 static FORCEINLINE HRESULT ISpVoice_QueryInterface(ISpVoice* This,REFIID riid,void **ppvObject) {
7519     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7520 }
7521 static FORCEINLINE ULONG ISpVoice_AddRef(ISpVoice* This) {
7522     return This->lpVtbl->AddRef(This);
7523 }
7524 static FORCEINLINE ULONG ISpVoice_Release(ISpVoice* This) {
7525     return This->lpVtbl->Release(This);
7526 }
7527 /*** ISpNotifySource methods ***/
7528 static FORCEINLINE HRESULT ISpVoice_SetNotifySink(ISpVoice* This,ISpNotifySink *pNotifySink) {
7529     return This->lpVtbl->SetNotifySink(This,pNotifySink);
7530 }
7531 static FORCEINLINE HRESULT ISpVoice_SetNotifyWindowMessage(ISpVoice* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
7532     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
7533 }
7534 static FORCEINLINE HRESULT ISpVoice_SetNotifyCallbackFunction(ISpVoice* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
7535     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
7536 }
7537 static FORCEINLINE HRESULT ISpVoice_SetNotifyCallbackInterface(ISpVoice* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
7538     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
7539 }
7540 static FORCEINLINE HRESULT ISpVoice_SetNotifyWin32Event(ISpVoice* This) {
7541     return This->lpVtbl->SetNotifyWin32Event(This);
7542 }
7543 static FORCEINLINE HRESULT ISpVoice_WaitForNotifyEvent(ISpVoice* This,DWORD dwMilliseconds) {
7544     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
7545 }
7546 static FORCEINLINE HANDLE ISpVoice_GetNotifyEventHandle(ISpVoice* This) {
7547     return This->lpVtbl->GetNotifyEventHandle(This);
7548 }
7549 /*** ISpEventSource methods ***/
7550 static FORCEINLINE HRESULT ISpVoice_SetInterest(ISpVoice* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
7551     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
7552 }
7553 static FORCEINLINE HRESULT ISpVoice_GetEvents(ISpVoice* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
7554     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
7555 }
7556 static FORCEINLINE HRESULT ISpVoice_GetInfo(ISpVoice* This,SPEVENTSOURCEINFO *pInfo) {
7557     return This->lpVtbl->GetInfo(This,pInfo);
7558 }
7559 /*** ISpVoice methods ***/
7560 static FORCEINLINE HRESULT ISpVoice_SetOutput(ISpVoice* This,IUnknown *pUnkOutput,WINBOOL fAllowFormatChanges) {
7561     return This->lpVtbl->SetOutput(This,pUnkOutput,fAllowFormatChanges);
7562 }
7563 static FORCEINLINE HRESULT ISpVoice_GetOutputObjectToken(ISpVoice* This,ISpObjectToken **ppObjectToken) {
7564     return This->lpVtbl->GetOutputObjectToken(This,ppObjectToken);
7565 }
7566 static FORCEINLINE HRESULT ISpVoice_GetOutputStream(ISpVoice* This,ISpStreamFormat **ppStream) {
7567     return This->lpVtbl->GetOutputStream(This,ppStream);
7568 }
7569 static FORCEINLINE HRESULT ISpVoice_Pause(ISpVoice* This) {
7570     return This->lpVtbl->Pause(This);
7571 }
7572 static FORCEINLINE HRESULT ISpVoice_Resume(ISpVoice* This) {
7573     return This->lpVtbl->Resume(This);
7574 }
7575 static FORCEINLINE HRESULT ISpVoice_SetVoice(ISpVoice* This,ISpObjectToken *pToken) {
7576     return This->lpVtbl->SetVoice(This,pToken);
7577 }
7578 static FORCEINLINE HRESULT ISpVoice_GetVoice(ISpVoice* This,ISpObjectToken **ppToken) {
7579     return This->lpVtbl->GetVoice(This,ppToken);
7580 }
7581 static FORCEINLINE HRESULT ISpVoice_Speak(ISpVoice* This,LPCWSTR pwcs,DWORD dwFlags,ULONG *pulStreamNumber) {
7582     return This->lpVtbl->Speak(This,pwcs,dwFlags,pulStreamNumber);
7583 }
7584 static FORCEINLINE HRESULT ISpVoice_SpeakStream(ISpVoice* This,IStream *pStream,DWORD dwFlags,ULONG *pulStreamNumber) {
7585     return This->lpVtbl->SpeakStream(This,pStream,dwFlags,pulStreamNumber);
7586 }
7587 static FORCEINLINE HRESULT ISpVoice_GetStatus(ISpVoice* This,SPVOICESTATUS *pStatus,LPWSTR *ppszLastBookmark) {
7588     return This->lpVtbl->GetStatus(This,pStatus,ppszLastBookmark);
7589 }
7590 static FORCEINLINE HRESULT ISpVoice_Skip(ISpVoice* This,LPCWSTR pItemType,LONG lNumItems,ULONG *pulNumSkipped) {
7591     return This->lpVtbl->Skip(This,pItemType,lNumItems,pulNumSkipped);
7592 }
7593 static FORCEINLINE HRESULT ISpVoice_SetPriority(ISpVoice* This,SPVPRIORITY ePriority) {
7594     return This->lpVtbl->SetPriority(This,ePriority);
7595 }
7596 static FORCEINLINE HRESULT ISpVoice_GetPriority(ISpVoice* This,SPVPRIORITY *pePriority) {
7597     return This->lpVtbl->GetPriority(This,pePriority);
7598 }
7599 static FORCEINLINE HRESULT ISpVoice_SetAlertBoundary(ISpVoice* This,SPEVENTENUM eBoundary) {
7600     return This->lpVtbl->SetAlertBoundary(This,eBoundary);
7601 }
7602 static FORCEINLINE HRESULT ISpVoice_GetAlertBoundary(ISpVoice* This,SPEVENTENUM *peBoundary) {
7603     return This->lpVtbl->GetAlertBoundary(This,peBoundary);
7604 }
7605 static FORCEINLINE HRESULT ISpVoice_SetRate(ISpVoice* This,LONG RateAdjust) {
7606     return This->lpVtbl->SetRate(This,RateAdjust);
7607 }
7608 static FORCEINLINE HRESULT ISpVoice_GetRate(ISpVoice* This,LONG *pRateAdjust) {
7609     return This->lpVtbl->GetRate(This,pRateAdjust);
7610 }
7611 static FORCEINLINE HRESULT ISpVoice_SetVolume(ISpVoice* This,USHORT usVolume) {
7612     return This->lpVtbl->SetVolume(This,usVolume);
7613 }
7614 static FORCEINLINE HRESULT ISpVoice_GetVolume(ISpVoice* This,USHORT *pusVolume) {
7615     return This->lpVtbl->GetVolume(This,pusVolume);
7616 }
7617 static FORCEINLINE HRESULT ISpVoice_WaitUntilDone(ISpVoice* This,ULONG msTimeout) {
7618     return This->lpVtbl->WaitUntilDone(This,msTimeout);
7619 }
7620 static FORCEINLINE HRESULT ISpVoice_SetSyncSpeakTimeout(ISpVoice* This,ULONG msTimeout) {
7621     return This->lpVtbl->SetSyncSpeakTimeout(This,msTimeout);
7622 }
7623 static FORCEINLINE HRESULT ISpVoice_GetSyncSpeakTimeout(ISpVoice* This,ULONG *pmsTimeout) {
7624     return This->lpVtbl->GetSyncSpeakTimeout(This,pmsTimeout);
7625 }
7626 static FORCEINLINE HANDLE ISpVoice_SpeakCompleteEvent(ISpVoice* This) {
7627     return This->lpVtbl->SpeakCompleteEvent(This);
7628 }
7629 static FORCEINLINE HRESULT ISpVoice_IsUISupported(ISpVoice* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,WINBOOL *pfSupported) {
7630     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported);
7631 }
7632 static FORCEINLINE HRESULT ISpVoice_DisplayUI(ISpVoice* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData) {
7633     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData);
7634 }
7635 #endif
7636 #endif
7637 
7638 #endif
7639 
7640 HRESULT STDMETHODCALLTYPE ISpVoice_SetOutput_Proxy(
7641     ISpVoice* This,
7642     IUnknown *pUnkOutput,
7643     WINBOOL fAllowFormatChanges);
7644 void __RPC_STUB ISpVoice_SetOutput_Stub(
7645     IRpcStubBuffer* This,
7646     IRpcChannelBuffer* pRpcChannelBuffer,
7647     PRPC_MESSAGE pRpcMessage,
7648     DWORD* pdwStubPhase);
7649 HRESULT STDMETHODCALLTYPE ISpVoice_GetOutputObjectToken_Proxy(
7650     ISpVoice* This,
7651     ISpObjectToken **ppObjectToken);
7652 void __RPC_STUB ISpVoice_GetOutputObjectToken_Stub(
7653     IRpcStubBuffer* This,
7654     IRpcChannelBuffer* pRpcChannelBuffer,
7655     PRPC_MESSAGE pRpcMessage,
7656     DWORD* pdwStubPhase);
7657 HRESULT STDMETHODCALLTYPE ISpVoice_GetOutputStream_Proxy(
7658     ISpVoice* This,
7659     ISpStreamFormat **ppStream);
7660 void __RPC_STUB ISpVoice_GetOutputStream_Stub(
7661     IRpcStubBuffer* This,
7662     IRpcChannelBuffer* pRpcChannelBuffer,
7663     PRPC_MESSAGE pRpcMessage,
7664     DWORD* pdwStubPhase);
7665 HRESULT STDMETHODCALLTYPE ISpVoice_Pause_Proxy(
7666     ISpVoice* This);
7667 void __RPC_STUB ISpVoice_Pause_Stub(
7668     IRpcStubBuffer* This,
7669     IRpcChannelBuffer* pRpcChannelBuffer,
7670     PRPC_MESSAGE pRpcMessage,
7671     DWORD* pdwStubPhase);
7672 HRESULT STDMETHODCALLTYPE ISpVoice_Resume_Proxy(
7673     ISpVoice* This);
7674 void __RPC_STUB ISpVoice_Resume_Stub(
7675     IRpcStubBuffer* This,
7676     IRpcChannelBuffer* pRpcChannelBuffer,
7677     PRPC_MESSAGE pRpcMessage,
7678     DWORD* pdwStubPhase);
7679 HRESULT STDMETHODCALLTYPE ISpVoice_SetVoice_Proxy(
7680     ISpVoice* This,
7681     ISpObjectToken *pToken);
7682 void __RPC_STUB ISpVoice_SetVoice_Stub(
7683     IRpcStubBuffer* This,
7684     IRpcChannelBuffer* pRpcChannelBuffer,
7685     PRPC_MESSAGE pRpcMessage,
7686     DWORD* pdwStubPhase);
7687 HRESULT STDMETHODCALLTYPE ISpVoice_GetVoice_Proxy(
7688     ISpVoice* This,
7689     ISpObjectToken **ppToken);
7690 void __RPC_STUB ISpVoice_GetVoice_Stub(
7691     IRpcStubBuffer* This,
7692     IRpcChannelBuffer* pRpcChannelBuffer,
7693     PRPC_MESSAGE pRpcMessage,
7694     DWORD* pdwStubPhase);
7695 HRESULT STDMETHODCALLTYPE ISpVoice_Speak_Proxy(
7696     ISpVoice* This,
7697     LPCWSTR pwcs,
7698     DWORD dwFlags,
7699     ULONG *pulStreamNumber);
7700 void __RPC_STUB ISpVoice_Speak_Stub(
7701     IRpcStubBuffer* This,
7702     IRpcChannelBuffer* pRpcChannelBuffer,
7703     PRPC_MESSAGE pRpcMessage,
7704     DWORD* pdwStubPhase);
7705 HRESULT STDMETHODCALLTYPE ISpVoice_SpeakStream_Proxy(
7706     ISpVoice* This,
7707     IStream *pStream,
7708     DWORD dwFlags,
7709     ULONG *pulStreamNumber);
7710 void __RPC_STUB ISpVoice_SpeakStream_Stub(
7711     IRpcStubBuffer* This,
7712     IRpcChannelBuffer* pRpcChannelBuffer,
7713     PRPC_MESSAGE pRpcMessage,
7714     DWORD* pdwStubPhase);
7715 HRESULT STDMETHODCALLTYPE ISpVoice_GetStatus_Proxy(
7716     ISpVoice* This,
7717     SPVOICESTATUS *pStatus,
7718     LPWSTR *ppszLastBookmark);
7719 void __RPC_STUB ISpVoice_GetStatus_Stub(
7720     IRpcStubBuffer* This,
7721     IRpcChannelBuffer* pRpcChannelBuffer,
7722     PRPC_MESSAGE pRpcMessage,
7723     DWORD* pdwStubPhase);
7724 HRESULT STDMETHODCALLTYPE ISpVoice_Skip_Proxy(
7725     ISpVoice* This,
7726     LPCWSTR pItemType,
7727     LONG lNumItems,
7728     ULONG *pulNumSkipped);
7729 void __RPC_STUB ISpVoice_Skip_Stub(
7730     IRpcStubBuffer* This,
7731     IRpcChannelBuffer* pRpcChannelBuffer,
7732     PRPC_MESSAGE pRpcMessage,
7733     DWORD* pdwStubPhase);
7734 HRESULT STDMETHODCALLTYPE ISpVoice_SetPriority_Proxy(
7735     ISpVoice* This,
7736     SPVPRIORITY ePriority);
7737 void __RPC_STUB ISpVoice_SetPriority_Stub(
7738     IRpcStubBuffer* This,
7739     IRpcChannelBuffer* pRpcChannelBuffer,
7740     PRPC_MESSAGE pRpcMessage,
7741     DWORD* pdwStubPhase);
7742 HRESULT STDMETHODCALLTYPE ISpVoice_GetPriority_Proxy(
7743     ISpVoice* This,
7744     SPVPRIORITY *pePriority);
7745 void __RPC_STUB ISpVoice_GetPriority_Stub(
7746     IRpcStubBuffer* This,
7747     IRpcChannelBuffer* pRpcChannelBuffer,
7748     PRPC_MESSAGE pRpcMessage,
7749     DWORD* pdwStubPhase);
7750 HRESULT STDMETHODCALLTYPE ISpVoice_SetAlertBoundary_Proxy(
7751     ISpVoice* This,
7752     SPEVENTENUM eBoundary);
7753 void __RPC_STUB ISpVoice_SetAlertBoundary_Stub(
7754     IRpcStubBuffer* This,
7755     IRpcChannelBuffer* pRpcChannelBuffer,
7756     PRPC_MESSAGE pRpcMessage,
7757     DWORD* pdwStubPhase);
7758 HRESULT STDMETHODCALLTYPE ISpVoice_GetAlertBoundary_Proxy(
7759     ISpVoice* This,
7760     SPEVENTENUM *peBoundary);
7761 void __RPC_STUB ISpVoice_GetAlertBoundary_Stub(
7762     IRpcStubBuffer* This,
7763     IRpcChannelBuffer* pRpcChannelBuffer,
7764     PRPC_MESSAGE pRpcMessage,
7765     DWORD* pdwStubPhase);
7766 HRESULT STDMETHODCALLTYPE ISpVoice_SetRate_Proxy(
7767     ISpVoice* This,
7768     LONG RateAdjust);
7769 void __RPC_STUB ISpVoice_SetRate_Stub(
7770     IRpcStubBuffer* This,
7771     IRpcChannelBuffer* pRpcChannelBuffer,
7772     PRPC_MESSAGE pRpcMessage,
7773     DWORD* pdwStubPhase);
7774 HRESULT STDMETHODCALLTYPE ISpVoice_GetRate_Proxy(
7775     ISpVoice* This,
7776     LONG *pRateAdjust);
7777 void __RPC_STUB ISpVoice_GetRate_Stub(
7778     IRpcStubBuffer* This,
7779     IRpcChannelBuffer* pRpcChannelBuffer,
7780     PRPC_MESSAGE pRpcMessage,
7781     DWORD* pdwStubPhase);
7782 HRESULT STDMETHODCALLTYPE ISpVoice_SetVolume_Proxy(
7783     ISpVoice* This,
7784     USHORT usVolume);
7785 void __RPC_STUB ISpVoice_SetVolume_Stub(
7786     IRpcStubBuffer* This,
7787     IRpcChannelBuffer* pRpcChannelBuffer,
7788     PRPC_MESSAGE pRpcMessage,
7789     DWORD* pdwStubPhase);
7790 HRESULT STDMETHODCALLTYPE ISpVoice_GetVolume_Proxy(
7791     ISpVoice* This,
7792     USHORT *pusVolume);
7793 void __RPC_STUB ISpVoice_GetVolume_Stub(
7794     IRpcStubBuffer* This,
7795     IRpcChannelBuffer* pRpcChannelBuffer,
7796     PRPC_MESSAGE pRpcMessage,
7797     DWORD* pdwStubPhase);
7798 HRESULT STDMETHODCALLTYPE ISpVoice_WaitUntilDone_Proxy(
7799     ISpVoice* This,
7800     ULONG msTimeout);
7801 void __RPC_STUB ISpVoice_WaitUntilDone_Stub(
7802     IRpcStubBuffer* This,
7803     IRpcChannelBuffer* pRpcChannelBuffer,
7804     PRPC_MESSAGE pRpcMessage,
7805     DWORD* pdwStubPhase);
7806 HRESULT STDMETHODCALLTYPE ISpVoice_SetSyncSpeakTimeout_Proxy(
7807     ISpVoice* This,
7808     ULONG msTimeout);
7809 void __RPC_STUB ISpVoice_SetSyncSpeakTimeout_Stub(
7810     IRpcStubBuffer* This,
7811     IRpcChannelBuffer* pRpcChannelBuffer,
7812     PRPC_MESSAGE pRpcMessage,
7813     DWORD* pdwStubPhase);
7814 HRESULT STDMETHODCALLTYPE ISpVoice_GetSyncSpeakTimeout_Proxy(
7815     ISpVoice* This,
7816     ULONG *pmsTimeout);
7817 void __RPC_STUB ISpVoice_GetSyncSpeakTimeout_Stub(
7818     IRpcStubBuffer* This,
7819     IRpcChannelBuffer* pRpcChannelBuffer,
7820     PRPC_MESSAGE pRpcMessage,
7821     DWORD* pdwStubPhase);
7822 
7823 #endif  /* __ISpVoice_INTERFACE_DEFINED__ */
7824 
7825 /*****************************************************************************
7826  * ISpPhrase interface
7827  */
7828 #ifndef __ISpPhrase_INTERFACE_DEFINED__
7829 #define __ISpPhrase_INTERFACE_DEFINED__
7830 
7831 DEFINE_GUID(IID_ISpPhrase, 0x1a5c0354, 0xb621, 0x4b5a, 0x87,0x91, 0xd3,0x06,0xed,0x37,0x9e,0x53);
7832 #if defined(__cplusplus) && !defined(CINTERFACE)
7833 MIDL_INTERFACE("1a5c0354-b621-4b5a-8791-d306ed379e53")
7834 ISpPhrase : public IUnknown
7835 {
7836     virtual HRESULT STDMETHODCALLTYPE GetPhrase(
7837         SPPHRASE **ppCoMemPhrase) = 0;
7838 
7839     virtual HRESULT STDMETHODCALLTYPE GetSerializedPhrase(
7840         SPSERIALIZEDPHRASE **ppCoMemPhrase) = 0;
7841 
7842     virtual HRESULT STDMETHODCALLTYPE GetText(
7843         ULONG ulStart,
7844         ULONG ulCount,
7845         WINBOOL fUseTextReplacements,
7846         LPWSTR *ppszCoMemText,
7847         BYTE *pbDisplayAttributes) = 0;
7848 
7849     virtual HRESULT STDMETHODCALLTYPE Discard(
7850         DWORD dwValueTypes) = 0;
7851 
7852 };
7853 #ifdef __CRT_UUID_DECL
7854 __CRT_UUID_DECL(ISpPhrase, 0x1a5c0354, 0xb621, 0x4b5a, 0x87,0x91, 0xd3,0x06,0xed,0x37,0x9e,0x53)
7855 #endif
7856 #else
7857 typedef struct ISpPhraseVtbl {
7858     BEGIN_INTERFACE
7859 
7860     /*** IUnknown methods ***/
7861     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7862         ISpPhrase* This,
7863         REFIID riid,
7864         void **ppvObject);
7865 
7866     ULONG (STDMETHODCALLTYPE *AddRef)(
7867         ISpPhrase* This);
7868 
7869     ULONG (STDMETHODCALLTYPE *Release)(
7870         ISpPhrase* This);
7871 
7872     /*** ISpPhrase methods ***/
7873     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
7874         ISpPhrase* This,
7875         SPPHRASE **ppCoMemPhrase);
7876 
7877     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
7878         ISpPhrase* This,
7879         SPSERIALIZEDPHRASE **ppCoMemPhrase);
7880 
7881     HRESULT (STDMETHODCALLTYPE *GetText)(
7882         ISpPhrase* This,
7883         ULONG ulStart,
7884         ULONG ulCount,
7885         WINBOOL fUseTextReplacements,
7886         LPWSTR *ppszCoMemText,
7887         BYTE *pbDisplayAttributes);
7888 
7889     HRESULT (STDMETHODCALLTYPE *Discard)(
7890         ISpPhrase* This,
7891         DWORD dwValueTypes);
7892 
7893     END_INTERFACE
7894 } ISpPhraseVtbl;
7895 interface ISpPhrase {
7896     CONST_VTBL ISpPhraseVtbl* lpVtbl;
7897 };
7898 
7899 #ifdef COBJMACROS
7900 #ifndef WIDL_C_INLINE_WRAPPERS
7901 /*** IUnknown methods ***/
7902 #define ISpPhrase_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7903 #define ISpPhrase_AddRef(This) (This)->lpVtbl->AddRef(This)
7904 #define ISpPhrase_Release(This) (This)->lpVtbl->Release(This)
7905 /*** ISpPhrase methods ***/
7906 #define ISpPhrase_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
7907 #define ISpPhrase_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
7908 #define ISpPhrase_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
7909 #define ISpPhrase_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
7910 #else
7911 /*** IUnknown methods ***/
7912 static FORCEINLINE HRESULT ISpPhrase_QueryInterface(ISpPhrase* This,REFIID riid,void **ppvObject) {
7913     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7914 }
7915 static FORCEINLINE ULONG ISpPhrase_AddRef(ISpPhrase* This) {
7916     return This->lpVtbl->AddRef(This);
7917 }
7918 static FORCEINLINE ULONG ISpPhrase_Release(ISpPhrase* This) {
7919     return This->lpVtbl->Release(This);
7920 }
7921 /*** ISpPhrase methods ***/
7922 static FORCEINLINE HRESULT ISpPhrase_GetPhrase(ISpPhrase* This,SPPHRASE **ppCoMemPhrase) {
7923     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
7924 }
7925 static FORCEINLINE HRESULT ISpPhrase_GetSerializedPhrase(ISpPhrase* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
7926     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
7927 }
7928 static FORCEINLINE HRESULT ISpPhrase_GetText(ISpPhrase* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
7929     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
7930 }
7931 static FORCEINLINE HRESULT ISpPhrase_Discard(ISpPhrase* This,DWORD dwValueTypes) {
7932     return This->lpVtbl->Discard(This,dwValueTypes);
7933 }
7934 #endif
7935 #endif
7936 
7937 #endif
7938 
7939 HRESULT STDMETHODCALLTYPE ISpPhrase_GetPhrase_Proxy(
7940     ISpPhrase* This,
7941     SPPHRASE **ppCoMemPhrase);
7942 void __RPC_STUB ISpPhrase_GetPhrase_Stub(
7943     IRpcStubBuffer* This,
7944     IRpcChannelBuffer* pRpcChannelBuffer,
7945     PRPC_MESSAGE pRpcMessage,
7946     DWORD* pdwStubPhase);
7947 HRESULT STDMETHODCALLTYPE ISpPhrase_GetSerializedPhrase_Proxy(
7948     ISpPhrase* This,
7949     SPSERIALIZEDPHRASE **ppCoMemPhrase);
7950 void __RPC_STUB ISpPhrase_GetSerializedPhrase_Stub(
7951     IRpcStubBuffer* This,
7952     IRpcChannelBuffer* pRpcChannelBuffer,
7953     PRPC_MESSAGE pRpcMessage,
7954     DWORD* pdwStubPhase);
7955 HRESULT STDMETHODCALLTYPE ISpPhrase_GetText_Proxy(
7956     ISpPhrase* This,
7957     ULONG ulStart,
7958     ULONG ulCount,
7959     WINBOOL fUseTextReplacements,
7960     LPWSTR *ppszCoMemText,
7961     BYTE *pbDisplayAttributes);
7962 void __RPC_STUB ISpPhrase_GetText_Stub(
7963     IRpcStubBuffer* This,
7964     IRpcChannelBuffer* pRpcChannelBuffer,
7965     PRPC_MESSAGE pRpcMessage,
7966     DWORD* pdwStubPhase);
7967 HRESULT STDMETHODCALLTYPE ISpPhrase_Discard_Proxy(
7968     ISpPhrase* This,
7969     DWORD dwValueTypes);
7970 void __RPC_STUB ISpPhrase_Discard_Stub(
7971     IRpcStubBuffer* This,
7972     IRpcChannelBuffer* pRpcChannelBuffer,
7973     PRPC_MESSAGE pRpcMessage,
7974     DWORD* pdwStubPhase);
7975 
7976 #endif  /* __ISpPhrase_INTERFACE_DEFINED__ */
7977 
7978 /*****************************************************************************
7979  * ISpPhraseAlt interface
7980  */
7981 #ifndef __ISpPhraseAlt_INTERFACE_DEFINED__
7982 #define __ISpPhraseAlt_INTERFACE_DEFINED__
7983 
7984 DEFINE_GUID(IID_ISpPhraseAlt, 0x8fcebc98, 0x4e49, 0x4067, 0x9c,0x6c, 0xd8,0x6a,0x0e,0x09,0x2e,0x3d);
7985 #if defined(__cplusplus) && !defined(CINTERFACE)
7986 MIDL_INTERFACE("8fcebc98-4e49-4067-9c6c-d86a0e092e3d")
7987 ISpPhraseAlt : public ISpPhrase
7988 {
7989     virtual HRESULT STDMETHODCALLTYPE GetAltInfo(
7990         ISpPhrase **ppParent,
7991         ULONG *pulStartElementInParent,
7992         ULONG *pcElementsInParent,
7993         ULONG *pcElementsInAlt) = 0;
7994 
7995     virtual HRESULT STDMETHODCALLTYPE Commit(
7996         ) = 0;
7997 
7998 };
7999 #ifdef __CRT_UUID_DECL
8000 __CRT_UUID_DECL(ISpPhraseAlt, 0x8fcebc98, 0x4e49, 0x4067, 0x9c,0x6c, 0xd8,0x6a,0x0e,0x09,0x2e,0x3d)
8001 #endif
8002 #else
8003 typedef struct ISpPhraseAltVtbl {
8004     BEGIN_INTERFACE
8005 
8006     /*** IUnknown methods ***/
8007     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8008         ISpPhraseAlt* This,
8009         REFIID riid,
8010         void **ppvObject);
8011 
8012     ULONG (STDMETHODCALLTYPE *AddRef)(
8013         ISpPhraseAlt* This);
8014 
8015     ULONG (STDMETHODCALLTYPE *Release)(
8016         ISpPhraseAlt* This);
8017 
8018     /*** ISpPhrase methods ***/
8019     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
8020         ISpPhraseAlt* This,
8021         SPPHRASE **ppCoMemPhrase);
8022 
8023     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
8024         ISpPhraseAlt* This,
8025         SPSERIALIZEDPHRASE **ppCoMemPhrase);
8026 
8027     HRESULT (STDMETHODCALLTYPE *GetText)(
8028         ISpPhraseAlt* This,
8029         ULONG ulStart,
8030         ULONG ulCount,
8031         WINBOOL fUseTextReplacements,
8032         LPWSTR *ppszCoMemText,
8033         BYTE *pbDisplayAttributes);
8034 
8035     HRESULT (STDMETHODCALLTYPE *Discard)(
8036         ISpPhraseAlt* This,
8037         DWORD dwValueTypes);
8038 
8039     /*** ISpPhraseAlt methods ***/
8040     HRESULT (STDMETHODCALLTYPE *GetAltInfo)(
8041         ISpPhraseAlt* This,
8042         ISpPhrase **ppParent,
8043         ULONG *pulStartElementInParent,
8044         ULONG *pcElementsInParent,
8045         ULONG *pcElementsInAlt);
8046 
8047     HRESULT (STDMETHODCALLTYPE *Commit)(
8048         ISpPhraseAlt* This);
8049 
8050     END_INTERFACE
8051 } ISpPhraseAltVtbl;
8052 interface ISpPhraseAlt {
8053     CONST_VTBL ISpPhraseAltVtbl* lpVtbl;
8054 };
8055 
8056 #ifdef COBJMACROS
8057 #ifndef WIDL_C_INLINE_WRAPPERS
8058 /*** IUnknown methods ***/
8059 #define ISpPhraseAlt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8060 #define ISpPhraseAlt_AddRef(This) (This)->lpVtbl->AddRef(This)
8061 #define ISpPhraseAlt_Release(This) (This)->lpVtbl->Release(This)
8062 /*** ISpPhrase methods ***/
8063 #define ISpPhraseAlt_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
8064 #define ISpPhraseAlt_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
8065 #define ISpPhraseAlt_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
8066 #define ISpPhraseAlt_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
8067 /*** ISpPhraseAlt methods ***/
8068 #define ISpPhraseAlt_GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt) (This)->lpVtbl->GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt)
8069 #define ISpPhraseAlt_Commit(This) (This)->lpVtbl->Commit(This)
8070 #else
8071 /*** IUnknown methods ***/
8072 static FORCEINLINE HRESULT ISpPhraseAlt_QueryInterface(ISpPhraseAlt* This,REFIID riid,void **ppvObject) {
8073     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8074 }
8075 static FORCEINLINE ULONG ISpPhraseAlt_AddRef(ISpPhraseAlt* This) {
8076     return This->lpVtbl->AddRef(This);
8077 }
8078 static FORCEINLINE ULONG ISpPhraseAlt_Release(ISpPhraseAlt* This) {
8079     return This->lpVtbl->Release(This);
8080 }
8081 /*** ISpPhrase methods ***/
8082 static FORCEINLINE HRESULT ISpPhraseAlt_GetPhrase(ISpPhraseAlt* This,SPPHRASE **ppCoMemPhrase) {
8083     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
8084 }
8085 static FORCEINLINE HRESULT ISpPhraseAlt_GetSerializedPhrase(ISpPhraseAlt* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
8086     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
8087 }
8088 static FORCEINLINE HRESULT ISpPhraseAlt_GetText(ISpPhraseAlt* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
8089     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
8090 }
8091 static FORCEINLINE HRESULT ISpPhraseAlt_Discard(ISpPhraseAlt* This,DWORD dwValueTypes) {
8092     return This->lpVtbl->Discard(This,dwValueTypes);
8093 }
8094 /*** ISpPhraseAlt methods ***/
8095 static FORCEINLINE HRESULT ISpPhraseAlt_GetAltInfo(ISpPhraseAlt* This,ISpPhrase **ppParent,ULONG *pulStartElementInParent,ULONG *pcElementsInParent,ULONG *pcElementsInAlt) {
8096     return This->lpVtbl->GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt);
8097 }
8098 static FORCEINLINE HRESULT ISpPhraseAlt_Commit(ISpPhraseAlt* This) {
8099     return This->lpVtbl->Commit(This);
8100 }
8101 #endif
8102 #endif
8103 
8104 #endif
8105 
8106 HRESULT STDMETHODCALLTYPE ISpPhraseAlt_GetAltInfo_Proxy(
8107     ISpPhraseAlt* This,
8108     ISpPhrase **ppParent,
8109     ULONG *pulStartElementInParent,
8110     ULONG *pcElementsInParent,
8111     ULONG *pcElementsInAlt);
8112 void __RPC_STUB ISpPhraseAlt_GetAltInfo_Stub(
8113     IRpcStubBuffer* This,
8114     IRpcChannelBuffer* pRpcChannelBuffer,
8115     PRPC_MESSAGE pRpcMessage,
8116     DWORD* pdwStubPhase);
8117 HRESULT STDMETHODCALLTYPE ISpPhraseAlt_Commit_Proxy(
8118     ISpPhraseAlt* This);
8119 void __RPC_STUB ISpPhraseAlt_Commit_Stub(
8120     IRpcStubBuffer* This,
8121     IRpcChannelBuffer* pRpcChannelBuffer,
8122     PRPC_MESSAGE pRpcMessage,
8123     DWORD* pdwStubPhase);
8124 
8125 #endif  /* __ISpPhraseAlt_INTERFACE_DEFINED__ */
8126 
8127 typedef enum SPXMLRESULTOPTIONS {
8128     SPXRO_SML = 0,
8129     SPXRO_Alternates_SML = 1
8130 } SPXMLRESULTOPTIONS;
8131 /*****************************************************************************
8132  * ISpPhrase2 interface
8133  */
8134 #ifndef __ISpPhrase2_INTERFACE_DEFINED__
8135 #define __ISpPhrase2_INTERFACE_DEFINED__
8136 
8137 DEFINE_GUID(IID_ISpPhrase2, 0xf264da52, 0xe457, 0x4696, 0xb8,0x56, 0xa7,0x37,0xb7,0x17,0xaf,0x79);
8138 #if defined(__cplusplus) && !defined(CINTERFACE)
8139 MIDL_INTERFACE("f264da52-e457-4696-b856-a737b717af79")
8140 ISpPhrase2 : public ISpPhrase
8141 {
8142     virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
8143         LPWSTR *ppszCoMemXMLResult,
8144         SPXMLRESULTOPTIONS Options) = 0;
8145 
8146     virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
8147         SPSEMANTICERRORINFO *pSemanticErrorInfo) = 0;
8148 
8149     virtual HRESULT STDMETHODCALLTYPE GetAudio(
8150         ULONG ulStartElement,
8151         ULONG cElements,
8152         ISpStreamFormat **ppStream) = 0;
8153 
8154 };
8155 #ifdef __CRT_UUID_DECL
8156 __CRT_UUID_DECL(ISpPhrase2, 0xf264da52, 0xe457, 0x4696, 0xb8,0x56, 0xa7,0x37,0xb7,0x17,0xaf,0x79)
8157 #endif
8158 #else
8159 typedef struct ISpPhrase2Vtbl {
8160     BEGIN_INTERFACE
8161 
8162     /*** IUnknown methods ***/
8163     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8164         ISpPhrase2* This,
8165         REFIID riid,
8166         void **ppvObject);
8167 
8168     ULONG (STDMETHODCALLTYPE *AddRef)(
8169         ISpPhrase2* This);
8170 
8171     ULONG (STDMETHODCALLTYPE *Release)(
8172         ISpPhrase2* This);
8173 
8174     /*** ISpPhrase methods ***/
8175     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
8176         ISpPhrase2* This,
8177         SPPHRASE **ppCoMemPhrase);
8178 
8179     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
8180         ISpPhrase2* This,
8181         SPSERIALIZEDPHRASE **ppCoMemPhrase);
8182 
8183     HRESULT (STDMETHODCALLTYPE *GetText)(
8184         ISpPhrase2* This,
8185         ULONG ulStart,
8186         ULONG ulCount,
8187         WINBOOL fUseTextReplacements,
8188         LPWSTR *ppszCoMemText,
8189         BYTE *pbDisplayAttributes);
8190 
8191     HRESULT (STDMETHODCALLTYPE *Discard)(
8192         ISpPhrase2* This,
8193         DWORD dwValueTypes);
8194 
8195     /*** ISpPhrase2 methods ***/
8196     HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
8197         ISpPhrase2* This,
8198         LPWSTR *ppszCoMemXMLResult,
8199         SPXMLRESULTOPTIONS Options);
8200 
8201     HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
8202         ISpPhrase2* This,
8203         SPSEMANTICERRORINFO *pSemanticErrorInfo);
8204 
8205     HRESULT (STDMETHODCALLTYPE *GetAudio)(
8206         ISpPhrase2* This,
8207         ULONG ulStartElement,
8208         ULONG cElements,
8209         ISpStreamFormat **ppStream);
8210 
8211     END_INTERFACE
8212 } ISpPhrase2Vtbl;
8213 interface ISpPhrase2 {
8214     CONST_VTBL ISpPhrase2Vtbl* lpVtbl;
8215 };
8216 
8217 #ifdef COBJMACROS
8218 #ifndef WIDL_C_INLINE_WRAPPERS
8219 /*** IUnknown methods ***/
8220 #define ISpPhrase2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8221 #define ISpPhrase2_AddRef(This) (This)->lpVtbl->AddRef(This)
8222 #define ISpPhrase2_Release(This) (This)->lpVtbl->Release(This)
8223 /*** ISpPhrase methods ***/
8224 #define ISpPhrase2_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
8225 #define ISpPhrase2_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
8226 #define ISpPhrase2_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
8227 #define ISpPhrase2_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
8228 /*** ISpPhrase2 methods ***/
8229 #define ISpPhrase2_GetXMLResult(This,ppszCoMemXMLResult,Options) (This)->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options)
8230 #define ISpPhrase2_GetXMLErrorInfo(This,pSemanticErrorInfo) (This)->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo)
8231 #define ISpPhrase2_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
8232 #else
8233 /*** IUnknown methods ***/
8234 static FORCEINLINE HRESULT ISpPhrase2_QueryInterface(ISpPhrase2* This,REFIID riid,void **ppvObject) {
8235     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8236 }
8237 static FORCEINLINE ULONG ISpPhrase2_AddRef(ISpPhrase2* This) {
8238     return This->lpVtbl->AddRef(This);
8239 }
8240 static FORCEINLINE ULONG ISpPhrase2_Release(ISpPhrase2* This) {
8241     return This->lpVtbl->Release(This);
8242 }
8243 /*** ISpPhrase methods ***/
8244 static FORCEINLINE HRESULT ISpPhrase2_GetPhrase(ISpPhrase2* This,SPPHRASE **ppCoMemPhrase) {
8245     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
8246 }
8247 static FORCEINLINE HRESULT ISpPhrase2_GetSerializedPhrase(ISpPhrase2* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
8248     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
8249 }
8250 static FORCEINLINE HRESULT ISpPhrase2_GetText(ISpPhrase2* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
8251     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
8252 }
8253 static FORCEINLINE HRESULT ISpPhrase2_Discard(ISpPhrase2* This,DWORD dwValueTypes) {
8254     return This->lpVtbl->Discard(This,dwValueTypes);
8255 }
8256 /*** ISpPhrase2 methods ***/
8257 static FORCEINLINE HRESULT ISpPhrase2_GetXMLResult(ISpPhrase2* This,LPWSTR *ppszCoMemXMLResult,SPXMLRESULTOPTIONS Options) {
8258     return This->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options);
8259 }
8260 static FORCEINLINE HRESULT ISpPhrase2_GetXMLErrorInfo(ISpPhrase2* This,SPSEMANTICERRORINFO *pSemanticErrorInfo) {
8261     return This->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo);
8262 }
8263 static FORCEINLINE HRESULT ISpPhrase2_GetAudio(ISpPhrase2* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
8264     return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
8265 }
8266 #endif
8267 #endif
8268 
8269 #endif
8270 
8271 HRESULT STDMETHODCALLTYPE ISpPhrase2_GetXMLResult_Proxy(
8272     ISpPhrase2* This,
8273     LPWSTR *ppszCoMemXMLResult,
8274     SPXMLRESULTOPTIONS Options);
8275 void __RPC_STUB ISpPhrase2_GetXMLResult_Stub(
8276     IRpcStubBuffer* This,
8277     IRpcChannelBuffer* pRpcChannelBuffer,
8278     PRPC_MESSAGE pRpcMessage,
8279     DWORD* pdwStubPhase);
8280 HRESULT STDMETHODCALLTYPE ISpPhrase2_GetXMLErrorInfo_Proxy(
8281     ISpPhrase2* This,
8282     SPSEMANTICERRORINFO *pSemanticErrorInfo);
8283 void __RPC_STUB ISpPhrase2_GetXMLErrorInfo_Stub(
8284     IRpcStubBuffer* This,
8285     IRpcChannelBuffer* pRpcChannelBuffer,
8286     PRPC_MESSAGE pRpcMessage,
8287     DWORD* pdwStubPhase);
8288 HRESULT STDMETHODCALLTYPE ISpPhrase2_GetAudio_Proxy(
8289     ISpPhrase2* This,
8290     ULONG ulStartElement,
8291     ULONG cElements,
8292     ISpStreamFormat **ppStream);
8293 void __RPC_STUB ISpPhrase2_GetAudio_Stub(
8294     IRpcStubBuffer* This,
8295     IRpcChannelBuffer* pRpcChannelBuffer,
8296     PRPC_MESSAGE pRpcMessage,
8297     DWORD* pdwStubPhase);
8298 
8299 #endif  /* __ISpPhrase2_INTERFACE_DEFINED__ */
8300 
8301 typedef struct SPRECORESULTTIMES {
8302     FILETIME ftStreamTime;
8303     ULONGLONG ullLength;
8304     DWORD dwTickCount;
8305     ULONGLONG ullStart;
8306 } SPRECORESULTTIMES;
8307 typedef struct SPSERIALIZEDRESULT {
8308     ULONG ulSerializedSize;
8309 } SPSERIALIZEDRESULT;
8310 /*****************************************************************************
8311  * ISpRecoResult interface
8312  */
8313 #ifndef __ISpRecoResult_INTERFACE_DEFINED__
8314 #define __ISpRecoResult_INTERFACE_DEFINED__
8315 
8316 DEFINE_GUID(IID_ISpRecoResult, 0x20b053be, 0xe235, 0x43cd, 0x9a,0x2a, 0x8d,0x17,0xa4,0x8b,0x78,0x42);
8317 #if defined(__cplusplus) && !defined(CINTERFACE)
8318 MIDL_INTERFACE("20b053be-e235-43cd-9a2a-8d17a48b7842")
8319 ISpRecoResult : public ISpPhrase
8320 {
8321     virtual HRESULT STDMETHODCALLTYPE GetResultTimes(
8322         SPRECORESULTTIMES *pTimes) = 0;
8323 
8324     virtual HRESULT STDMETHODCALLTYPE GetAlternates(
8325         ULONG ulStartElement,
8326         ULONG cElements,
8327         ULONG ulRequestCount,
8328         ISpPhraseAlt **ppPhrases,
8329         ULONG *pcPhrasesReturned) = 0;
8330 
8331     virtual HRESULT STDMETHODCALLTYPE GetAudio(
8332         ULONG ulStartElement,
8333         ULONG cElements,
8334         ISpStreamFormat **ppStream) = 0;
8335 
8336     virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
8337         ULONG ulStartElement,
8338         ULONG cElements,
8339         DWORD dwFlags,
8340         ULONG *pulStreamNumber) = 0;
8341 
8342     virtual HRESULT STDMETHODCALLTYPE Serialize(
8343         SPSERIALIZEDRESULT **ppCoMemSerializedResult) = 0;
8344 
8345     virtual HRESULT STDMETHODCALLTYPE ScaleAudio(
8346         const GUID *pAudioFormatId,
8347         const WAVEFORMATEX *pWaveFormatEx) = 0;
8348 
8349     virtual HRESULT STDMETHODCALLTYPE GetRecoContext(
8350         ISpRecoContext **ppRecoContext) = 0;
8351 
8352 };
8353 #ifdef __CRT_UUID_DECL
8354 __CRT_UUID_DECL(ISpRecoResult, 0x20b053be, 0xe235, 0x43cd, 0x9a,0x2a, 0x8d,0x17,0xa4,0x8b,0x78,0x42)
8355 #endif
8356 #else
8357 typedef struct ISpRecoResultVtbl {
8358     BEGIN_INTERFACE
8359 
8360     /*** IUnknown methods ***/
8361     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8362         ISpRecoResult* This,
8363         REFIID riid,
8364         void **ppvObject);
8365 
8366     ULONG (STDMETHODCALLTYPE *AddRef)(
8367         ISpRecoResult* This);
8368 
8369     ULONG (STDMETHODCALLTYPE *Release)(
8370         ISpRecoResult* This);
8371 
8372     /*** ISpPhrase methods ***/
8373     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
8374         ISpRecoResult* This,
8375         SPPHRASE **ppCoMemPhrase);
8376 
8377     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
8378         ISpRecoResult* This,
8379         SPSERIALIZEDPHRASE **ppCoMemPhrase);
8380 
8381     HRESULT (STDMETHODCALLTYPE *GetText)(
8382         ISpRecoResult* This,
8383         ULONG ulStart,
8384         ULONG ulCount,
8385         WINBOOL fUseTextReplacements,
8386         LPWSTR *ppszCoMemText,
8387         BYTE *pbDisplayAttributes);
8388 
8389     HRESULT (STDMETHODCALLTYPE *Discard)(
8390         ISpRecoResult* This,
8391         DWORD dwValueTypes);
8392 
8393     /*** ISpRecoResult methods ***/
8394     HRESULT (STDMETHODCALLTYPE *GetResultTimes)(
8395         ISpRecoResult* This,
8396         SPRECORESULTTIMES *pTimes);
8397 
8398     HRESULT (STDMETHODCALLTYPE *GetAlternates)(
8399         ISpRecoResult* This,
8400         ULONG ulStartElement,
8401         ULONG cElements,
8402         ULONG ulRequestCount,
8403         ISpPhraseAlt **ppPhrases,
8404         ULONG *pcPhrasesReturned);
8405 
8406     HRESULT (STDMETHODCALLTYPE *GetAudio)(
8407         ISpRecoResult* This,
8408         ULONG ulStartElement,
8409         ULONG cElements,
8410         ISpStreamFormat **ppStream);
8411 
8412     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
8413         ISpRecoResult* This,
8414         ULONG ulStartElement,
8415         ULONG cElements,
8416         DWORD dwFlags,
8417         ULONG *pulStreamNumber);
8418 
8419     HRESULT (STDMETHODCALLTYPE *Serialize)(
8420         ISpRecoResult* This,
8421         SPSERIALIZEDRESULT **ppCoMemSerializedResult);
8422 
8423     HRESULT (STDMETHODCALLTYPE *ScaleAudio)(
8424         ISpRecoResult* This,
8425         const GUID *pAudioFormatId,
8426         const WAVEFORMATEX *pWaveFormatEx);
8427 
8428     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
8429         ISpRecoResult* This,
8430         ISpRecoContext **ppRecoContext);
8431 
8432     END_INTERFACE
8433 } ISpRecoResultVtbl;
8434 interface ISpRecoResult {
8435     CONST_VTBL ISpRecoResultVtbl* lpVtbl;
8436 };
8437 
8438 #ifdef COBJMACROS
8439 #ifndef WIDL_C_INLINE_WRAPPERS
8440 /*** IUnknown methods ***/
8441 #define ISpRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8442 #define ISpRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
8443 #define ISpRecoResult_Release(This) (This)->lpVtbl->Release(This)
8444 /*** ISpPhrase methods ***/
8445 #define ISpRecoResult_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
8446 #define ISpRecoResult_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
8447 #define ISpRecoResult_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
8448 #define ISpRecoResult_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
8449 /*** ISpRecoResult methods ***/
8450 #define ISpRecoResult_GetResultTimes(This,pTimes) (This)->lpVtbl->GetResultTimes(This,pTimes)
8451 #define ISpRecoResult_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned) (This)->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
8452 #define ISpRecoResult_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
8453 #define ISpRecoResult_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
8454 #define ISpRecoResult_Serialize(This,ppCoMemSerializedResult) (This)->lpVtbl->Serialize(This,ppCoMemSerializedResult)
8455 #define ISpRecoResult_ScaleAudio(This,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
8456 #define ISpRecoResult_GetRecoContext(This,ppRecoContext) (This)->lpVtbl->GetRecoContext(This,ppRecoContext)
8457 #else
8458 /*** IUnknown methods ***/
8459 static FORCEINLINE HRESULT ISpRecoResult_QueryInterface(ISpRecoResult* This,REFIID riid,void **ppvObject) {
8460     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8461 }
8462 static FORCEINLINE ULONG ISpRecoResult_AddRef(ISpRecoResult* This) {
8463     return This->lpVtbl->AddRef(This);
8464 }
8465 static FORCEINLINE ULONG ISpRecoResult_Release(ISpRecoResult* This) {
8466     return This->lpVtbl->Release(This);
8467 }
8468 /*** ISpPhrase methods ***/
8469 static FORCEINLINE HRESULT ISpRecoResult_GetPhrase(ISpRecoResult* This,SPPHRASE **ppCoMemPhrase) {
8470     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
8471 }
8472 static FORCEINLINE HRESULT ISpRecoResult_GetSerializedPhrase(ISpRecoResult* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
8473     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
8474 }
8475 static FORCEINLINE HRESULT ISpRecoResult_GetText(ISpRecoResult* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
8476     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
8477 }
8478 static FORCEINLINE HRESULT ISpRecoResult_Discard(ISpRecoResult* This,DWORD dwValueTypes) {
8479     return This->lpVtbl->Discard(This,dwValueTypes);
8480 }
8481 /*** ISpRecoResult methods ***/
8482 static FORCEINLINE HRESULT ISpRecoResult_GetResultTimes(ISpRecoResult* This,SPRECORESULTTIMES *pTimes) {
8483     return This->lpVtbl->GetResultTimes(This,pTimes);
8484 }
8485 static FORCEINLINE HRESULT ISpRecoResult_GetAlternates(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,ULONG ulRequestCount,ISpPhraseAlt **ppPhrases,ULONG *pcPhrasesReturned) {
8486     return This->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned);
8487 }
8488 static FORCEINLINE HRESULT ISpRecoResult_GetAudio(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
8489     return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
8490 }
8491 static FORCEINLINE HRESULT ISpRecoResult_SpeakAudio(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,DWORD dwFlags,ULONG *pulStreamNumber) {
8492     return This->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber);
8493 }
8494 static FORCEINLINE HRESULT ISpRecoResult_Serialize(ISpRecoResult* This,SPSERIALIZEDRESULT **ppCoMemSerializedResult) {
8495     return This->lpVtbl->Serialize(This,ppCoMemSerializedResult);
8496 }
8497 static FORCEINLINE HRESULT ISpRecoResult_ScaleAudio(ISpRecoResult* This,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
8498     return This->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx);
8499 }
8500 static FORCEINLINE HRESULT ISpRecoResult_GetRecoContext(ISpRecoResult* This,ISpRecoContext **ppRecoContext) {
8501     return This->lpVtbl->GetRecoContext(This,ppRecoContext);
8502 }
8503 #endif
8504 #endif
8505 
8506 #endif
8507 
8508 HRESULT STDMETHODCALLTYPE ISpRecoResult_GetResultTimes_Proxy(
8509     ISpRecoResult* This,
8510     SPRECORESULTTIMES *pTimes);
8511 void __RPC_STUB ISpRecoResult_GetResultTimes_Stub(
8512     IRpcStubBuffer* This,
8513     IRpcChannelBuffer* pRpcChannelBuffer,
8514     PRPC_MESSAGE pRpcMessage,
8515     DWORD* pdwStubPhase);
8516 HRESULT STDMETHODCALLTYPE ISpRecoResult_GetAlternates_Proxy(
8517     ISpRecoResult* This,
8518     ULONG ulStartElement,
8519     ULONG cElements,
8520     ULONG ulRequestCount,
8521     ISpPhraseAlt **ppPhrases,
8522     ULONG *pcPhrasesReturned);
8523 void __RPC_STUB ISpRecoResult_GetAlternates_Stub(
8524     IRpcStubBuffer* This,
8525     IRpcChannelBuffer* pRpcChannelBuffer,
8526     PRPC_MESSAGE pRpcMessage,
8527     DWORD* pdwStubPhase);
8528 HRESULT STDMETHODCALLTYPE ISpRecoResult_GetAudio_Proxy(
8529     ISpRecoResult* This,
8530     ULONG ulStartElement,
8531     ULONG cElements,
8532     ISpStreamFormat **ppStream);
8533 void __RPC_STUB ISpRecoResult_GetAudio_Stub(
8534     IRpcStubBuffer* This,
8535     IRpcChannelBuffer* pRpcChannelBuffer,
8536     PRPC_MESSAGE pRpcMessage,
8537     DWORD* pdwStubPhase);
8538 HRESULT STDMETHODCALLTYPE ISpRecoResult_SpeakAudio_Proxy(
8539     ISpRecoResult* This,
8540     ULONG ulStartElement,
8541     ULONG cElements,
8542     DWORD dwFlags,
8543     ULONG *pulStreamNumber);
8544 void __RPC_STUB ISpRecoResult_SpeakAudio_Stub(
8545     IRpcStubBuffer* This,
8546     IRpcChannelBuffer* pRpcChannelBuffer,
8547     PRPC_MESSAGE pRpcMessage,
8548     DWORD* pdwStubPhase);
8549 HRESULT STDMETHODCALLTYPE ISpRecoResult_Serialize_Proxy(
8550     ISpRecoResult* This,
8551     SPSERIALIZEDRESULT **ppCoMemSerializedResult);
8552 void __RPC_STUB ISpRecoResult_Serialize_Stub(
8553     IRpcStubBuffer* This,
8554     IRpcChannelBuffer* pRpcChannelBuffer,
8555     PRPC_MESSAGE pRpcMessage,
8556     DWORD* pdwStubPhase);
8557 HRESULT STDMETHODCALLTYPE ISpRecoResult_ScaleAudio_Proxy(
8558     ISpRecoResult* This,
8559     const GUID *pAudioFormatId,
8560     const WAVEFORMATEX *pWaveFormatEx);
8561 void __RPC_STUB ISpRecoResult_ScaleAudio_Stub(
8562     IRpcStubBuffer* This,
8563     IRpcChannelBuffer* pRpcChannelBuffer,
8564     PRPC_MESSAGE pRpcMessage,
8565     DWORD* pdwStubPhase);
8566 HRESULT STDMETHODCALLTYPE ISpRecoResult_GetRecoContext_Proxy(
8567     ISpRecoResult* This,
8568     ISpRecoContext **ppRecoContext);
8569 void __RPC_STUB ISpRecoResult_GetRecoContext_Stub(
8570     IRpcStubBuffer* This,
8571     IRpcChannelBuffer* pRpcChannelBuffer,
8572     PRPC_MESSAGE pRpcMessage,
8573     DWORD* pdwStubPhase);
8574 
8575 #endif  /* __ISpRecoResult_INTERFACE_DEFINED__ */
8576 
8577 typedef enum SPCOMMITFLAGS {
8578     SPCF_NONE = 0,
8579     SPCF_ADD_TO_USER_LEXICON = 1 << 0,
8580     SPCF_DEFINITE_CORRECTION = 1 << 1
8581 } SPCOMMITFLAGS;
8582 /*****************************************************************************
8583  * ISpRecoResult2 interface
8584  */
8585 #ifndef __ISpRecoResult2_INTERFACE_DEFINED__
8586 #define __ISpRecoResult2_INTERFACE_DEFINED__
8587 
8588 DEFINE_GUID(IID_ISpRecoResult2, 0x27cac6c4, 0x88f2, 0x41f2, 0x88,0x17, 0x0c,0x95,0xe5,0x9f,0x1e,0x6e);
8589 #if defined(__cplusplus) && !defined(CINTERFACE)
8590 MIDL_INTERFACE("27cac6c4-88f2-41f2-8817-0c95e59f1e6e")
8591 ISpRecoResult2 : public ISpRecoResult
8592 {
8593     virtual HRESULT STDMETHODCALLTYPE CommitAlternate(
8594         ISpPhraseAlt *pPhraseAlt,
8595         ISpRecoResult **ppNewResult) = 0;
8596 
8597     virtual HRESULT STDMETHODCALLTYPE CommitText(
8598         ULONG ulStartElement,
8599         ULONG cElements,
8600         LPCWSTR pszCorrectedData,
8601         DWORD eCommitFlags) = 0;
8602 
8603     virtual HRESULT STDMETHODCALLTYPE SetTextFeedback(
8604         LPCWSTR pszFeedback,
8605         WINBOOL fSuccessful) = 0;
8606 
8607 };
8608 #ifdef __CRT_UUID_DECL
8609 __CRT_UUID_DECL(ISpRecoResult2, 0x27cac6c4, 0x88f2, 0x41f2, 0x88,0x17, 0x0c,0x95,0xe5,0x9f,0x1e,0x6e)
8610 #endif
8611 #else
8612 typedef struct ISpRecoResult2Vtbl {
8613     BEGIN_INTERFACE
8614 
8615     /*** IUnknown methods ***/
8616     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8617         ISpRecoResult2* This,
8618         REFIID riid,
8619         void **ppvObject);
8620 
8621     ULONG (STDMETHODCALLTYPE *AddRef)(
8622         ISpRecoResult2* This);
8623 
8624     ULONG (STDMETHODCALLTYPE *Release)(
8625         ISpRecoResult2* This);
8626 
8627     /*** ISpPhrase methods ***/
8628     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
8629         ISpRecoResult2* This,
8630         SPPHRASE **ppCoMemPhrase);
8631 
8632     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
8633         ISpRecoResult2* This,
8634         SPSERIALIZEDPHRASE **ppCoMemPhrase);
8635 
8636     HRESULT (STDMETHODCALLTYPE *GetText)(
8637         ISpRecoResult2* This,
8638         ULONG ulStart,
8639         ULONG ulCount,
8640         WINBOOL fUseTextReplacements,
8641         LPWSTR *ppszCoMemText,
8642         BYTE *pbDisplayAttributes);
8643 
8644     HRESULT (STDMETHODCALLTYPE *Discard)(
8645         ISpRecoResult2* This,
8646         DWORD dwValueTypes);
8647 
8648     /*** ISpRecoResult methods ***/
8649     HRESULT (STDMETHODCALLTYPE *GetResultTimes)(
8650         ISpRecoResult2* This,
8651         SPRECORESULTTIMES *pTimes);
8652 
8653     HRESULT (STDMETHODCALLTYPE *GetAlternates)(
8654         ISpRecoResult2* This,
8655         ULONG ulStartElement,
8656         ULONG cElements,
8657         ULONG ulRequestCount,
8658         ISpPhraseAlt **ppPhrases,
8659         ULONG *pcPhrasesReturned);
8660 
8661     HRESULT (STDMETHODCALLTYPE *GetAudio)(
8662         ISpRecoResult2* This,
8663         ULONG ulStartElement,
8664         ULONG cElements,
8665         ISpStreamFormat **ppStream);
8666 
8667     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
8668         ISpRecoResult2* This,
8669         ULONG ulStartElement,
8670         ULONG cElements,
8671         DWORD dwFlags,
8672         ULONG *pulStreamNumber);
8673 
8674     HRESULT (STDMETHODCALLTYPE *Serialize)(
8675         ISpRecoResult2* This,
8676         SPSERIALIZEDRESULT **ppCoMemSerializedResult);
8677 
8678     HRESULT (STDMETHODCALLTYPE *ScaleAudio)(
8679         ISpRecoResult2* This,
8680         const GUID *pAudioFormatId,
8681         const WAVEFORMATEX *pWaveFormatEx);
8682 
8683     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
8684         ISpRecoResult2* This,
8685         ISpRecoContext **ppRecoContext);
8686 
8687     /*** ISpRecoResult2 methods ***/
8688     HRESULT (STDMETHODCALLTYPE *CommitAlternate)(
8689         ISpRecoResult2* This,
8690         ISpPhraseAlt *pPhraseAlt,
8691         ISpRecoResult **ppNewResult);
8692 
8693     HRESULT (STDMETHODCALLTYPE *CommitText)(
8694         ISpRecoResult2* This,
8695         ULONG ulStartElement,
8696         ULONG cElements,
8697         LPCWSTR pszCorrectedData,
8698         DWORD eCommitFlags);
8699 
8700     HRESULT (STDMETHODCALLTYPE *SetTextFeedback)(
8701         ISpRecoResult2* This,
8702         LPCWSTR pszFeedback,
8703         WINBOOL fSuccessful);
8704 
8705     END_INTERFACE
8706 } ISpRecoResult2Vtbl;
8707 interface ISpRecoResult2 {
8708     CONST_VTBL ISpRecoResult2Vtbl* lpVtbl;
8709 };
8710 
8711 #ifdef COBJMACROS
8712 #ifndef WIDL_C_INLINE_WRAPPERS
8713 /*** IUnknown methods ***/
8714 #define ISpRecoResult2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8715 #define ISpRecoResult2_AddRef(This) (This)->lpVtbl->AddRef(This)
8716 #define ISpRecoResult2_Release(This) (This)->lpVtbl->Release(This)
8717 /*** ISpPhrase methods ***/
8718 #define ISpRecoResult2_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
8719 #define ISpRecoResult2_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
8720 #define ISpRecoResult2_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
8721 #define ISpRecoResult2_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
8722 /*** ISpRecoResult methods ***/
8723 #define ISpRecoResult2_GetResultTimes(This,pTimes) (This)->lpVtbl->GetResultTimes(This,pTimes)
8724 #define ISpRecoResult2_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned) (This)->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
8725 #define ISpRecoResult2_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
8726 #define ISpRecoResult2_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
8727 #define ISpRecoResult2_Serialize(This,ppCoMemSerializedResult) (This)->lpVtbl->Serialize(This,ppCoMemSerializedResult)
8728 #define ISpRecoResult2_ScaleAudio(This,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
8729 #define ISpRecoResult2_GetRecoContext(This,ppRecoContext) (This)->lpVtbl->GetRecoContext(This,ppRecoContext)
8730 /*** ISpRecoResult2 methods ***/
8731 #define ISpRecoResult2_CommitAlternate(This,pPhraseAlt,ppNewResult) (This)->lpVtbl->CommitAlternate(This,pPhraseAlt,ppNewResult)
8732 #define ISpRecoResult2_CommitText(This,ulStartElement,cElements,pszCorrectedData,eCommitFlags) (This)->lpVtbl->CommitText(This,ulStartElement,cElements,pszCorrectedData,eCommitFlags)
8733 #define ISpRecoResult2_SetTextFeedback(This,pszFeedback,fSuccessful) (This)->lpVtbl->SetTextFeedback(This,pszFeedback,fSuccessful)
8734 #else
8735 /*** IUnknown methods ***/
8736 static FORCEINLINE HRESULT ISpRecoResult2_QueryInterface(ISpRecoResult2* This,REFIID riid,void **ppvObject) {
8737     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8738 }
8739 static FORCEINLINE ULONG ISpRecoResult2_AddRef(ISpRecoResult2* This) {
8740     return This->lpVtbl->AddRef(This);
8741 }
8742 static FORCEINLINE ULONG ISpRecoResult2_Release(ISpRecoResult2* This) {
8743     return This->lpVtbl->Release(This);
8744 }
8745 /*** ISpPhrase methods ***/
8746 static FORCEINLINE HRESULT ISpRecoResult2_GetPhrase(ISpRecoResult2* This,SPPHRASE **ppCoMemPhrase) {
8747     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
8748 }
8749 static FORCEINLINE HRESULT ISpRecoResult2_GetSerializedPhrase(ISpRecoResult2* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
8750     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
8751 }
8752 static FORCEINLINE HRESULT ISpRecoResult2_GetText(ISpRecoResult2* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
8753     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
8754 }
8755 static FORCEINLINE HRESULT ISpRecoResult2_Discard(ISpRecoResult2* This,DWORD dwValueTypes) {
8756     return This->lpVtbl->Discard(This,dwValueTypes);
8757 }
8758 /*** ISpRecoResult methods ***/
8759 static FORCEINLINE HRESULT ISpRecoResult2_GetResultTimes(ISpRecoResult2* This,SPRECORESULTTIMES *pTimes) {
8760     return This->lpVtbl->GetResultTimes(This,pTimes);
8761 }
8762 static FORCEINLINE HRESULT ISpRecoResult2_GetAlternates(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,ULONG ulRequestCount,ISpPhraseAlt **ppPhrases,ULONG *pcPhrasesReturned) {
8763     return This->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned);
8764 }
8765 static FORCEINLINE HRESULT ISpRecoResult2_GetAudio(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
8766     return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
8767 }
8768 static FORCEINLINE HRESULT ISpRecoResult2_SpeakAudio(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,DWORD dwFlags,ULONG *pulStreamNumber) {
8769     return This->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber);
8770 }
8771 static FORCEINLINE HRESULT ISpRecoResult2_Serialize(ISpRecoResult2* This,SPSERIALIZEDRESULT **ppCoMemSerializedResult) {
8772     return This->lpVtbl->Serialize(This,ppCoMemSerializedResult);
8773 }
8774 static FORCEINLINE HRESULT ISpRecoResult2_ScaleAudio(ISpRecoResult2* This,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
8775     return This->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx);
8776 }
8777 static FORCEINLINE HRESULT ISpRecoResult2_GetRecoContext(ISpRecoResult2* This,ISpRecoContext **ppRecoContext) {
8778     return This->lpVtbl->GetRecoContext(This,ppRecoContext);
8779 }
8780 /*** ISpRecoResult2 methods ***/
8781 static FORCEINLINE HRESULT ISpRecoResult2_CommitAlternate(ISpRecoResult2* This,ISpPhraseAlt *pPhraseAlt,ISpRecoResult **ppNewResult) {
8782     return This->lpVtbl->CommitAlternate(This,pPhraseAlt,ppNewResult);
8783 }
8784 static FORCEINLINE HRESULT ISpRecoResult2_CommitText(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,LPCWSTR pszCorrectedData,DWORD eCommitFlags) {
8785     return This->lpVtbl->CommitText(This,ulStartElement,cElements,pszCorrectedData,eCommitFlags);
8786 }
8787 static FORCEINLINE HRESULT ISpRecoResult2_SetTextFeedback(ISpRecoResult2* This,LPCWSTR pszFeedback,WINBOOL fSuccessful) {
8788     return This->lpVtbl->SetTextFeedback(This,pszFeedback,fSuccessful);
8789 }
8790 #endif
8791 #endif
8792 
8793 #endif
8794 
8795 HRESULT STDMETHODCALLTYPE ISpRecoResult2_CommitAlternate_Proxy(
8796     ISpRecoResult2* This,
8797     ISpPhraseAlt *pPhraseAlt,
8798     ISpRecoResult **ppNewResult);
8799 void __RPC_STUB ISpRecoResult2_CommitAlternate_Stub(
8800     IRpcStubBuffer* This,
8801     IRpcChannelBuffer* pRpcChannelBuffer,
8802     PRPC_MESSAGE pRpcMessage,
8803     DWORD* pdwStubPhase);
8804 HRESULT STDMETHODCALLTYPE ISpRecoResult2_CommitText_Proxy(
8805     ISpRecoResult2* This,
8806     ULONG ulStartElement,
8807     ULONG cElements,
8808     LPCWSTR pszCorrectedData,
8809     DWORD eCommitFlags);
8810 void __RPC_STUB ISpRecoResult2_CommitText_Stub(
8811     IRpcStubBuffer* This,
8812     IRpcChannelBuffer* pRpcChannelBuffer,
8813     PRPC_MESSAGE pRpcMessage,
8814     DWORD* pdwStubPhase);
8815 HRESULT STDMETHODCALLTYPE ISpRecoResult2_SetTextFeedback_Proxy(
8816     ISpRecoResult2* This,
8817     LPCWSTR pszFeedback,
8818     WINBOOL fSuccessful);
8819 void __RPC_STUB ISpRecoResult2_SetTextFeedback_Stub(
8820     IRpcStubBuffer* This,
8821     IRpcChannelBuffer* pRpcChannelBuffer,
8822     PRPC_MESSAGE pRpcMessage,
8823     DWORD* pdwStubPhase);
8824 
8825 #endif  /* __ISpRecoResult2_INTERFACE_DEFINED__ */
8826 
8827 /*****************************************************************************
8828  * ISpXMLRecoResult interface
8829  */
8830 #ifndef __ISpXMLRecoResult_INTERFACE_DEFINED__
8831 #define __ISpXMLRecoResult_INTERFACE_DEFINED__
8832 
8833 DEFINE_GUID(IID_ISpXMLRecoResult, 0xae39362b, 0x45a8, 0x4074, 0x9b,0x9e, 0xcc,0xf4,0x9a,0xa2,0xd0,0xb6);
8834 #if defined(__cplusplus) && !defined(CINTERFACE)
8835 MIDL_INTERFACE("ae39362b-45a8-4074-9b9e-ccf49aa2d0b6")
8836 ISpXMLRecoResult : public ISpRecoResult
8837 {
8838     virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
8839         LPWSTR *ppszCoMemXMLResult,
8840         SPXMLRESULTOPTIONS Options) = 0;
8841 
8842     virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
8843         SPSEMANTICERRORINFO *pSemanticErrorInfo) = 0;
8844 
8845 };
8846 #ifdef __CRT_UUID_DECL
8847 __CRT_UUID_DECL(ISpXMLRecoResult, 0xae39362b, 0x45a8, 0x4074, 0x9b,0x9e, 0xcc,0xf4,0x9a,0xa2,0xd0,0xb6)
8848 #endif
8849 #else
8850 typedef struct ISpXMLRecoResultVtbl {
8851     BEGIN_INTERFACE
8852 
8853     /*** IUnknown methods ***/
8854     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8855         ISpXMLRecoResult* This,
8856         REFIID riid,
8857         void **ppvObject);
8858 
8859     ULONG (STDMETHODCALLTYPE *AddRef)(
8860         ISpXMLRecoResult* This);
8861 
8862     ULONG (STDMETHODCALLTYPE *Release)(
8863         ISpXMLRecoResult* This);
8864 
8865     /*** ISpPhrase methods ***/
8866     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
8867         ISpXMLRecoResult* This,
8868         SPPHRASE **ppCoMemPhrase);
8869 
8870     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
8871         ISpXMLRecoResult* This,
8872         SPSERIALIZEDPHRASE **ppCoMemPhrase);
8873 
8874     HRESULT (STDMETHODCALLTYPE *GetText)(
8875         ISpXMLRecoResult* This,
8876         ULONG ulStart,
8877         ULONG ulCount,
8878         WINBOOL fUseTextReplacements,
8879         LPWSTR *ppszCoMemText,
8880         BYTE *pbDisplayAttributes);
8881 
8882     HRESULT (STDMETHODCALLTYPE *Discard)(
8883         ISpXMLRecoResult* This,
8884         DWORD dwValueTypes);
8885 
8886     /*** ISpRecoResult methods ***/
8887     HRESULT (STDMETHODCALLTYPE *GetResultTimes)(
8888         ISpXMLRecoResult* This,
8889         SPRECORESULTTIMES *pTimes);
8890 
8891     HRESULT (STDMETHODCALLTYPE *GetAlternates)(
8892         ISpXMLRecoResult* This,
8893         ULONG ulStartElement,
8894         ULONG cElements,
8895         ULONG ulRequestCount,
8896         ISpPhraseAlt **ppPhrases,
8897         ULONG *pcPhrasesReturned);
8898 
8899     HRESULT (STDMETHODCALLTYPE *GetAudio)(
8900         ISpXMLRecoResult* This,
8901         ULONG ulStartElement,
8902         ULONG cElements,
8903         ISpStreamFormat **ppStream);
8904 
8905     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
8906         ISpXMLRecoResult* This,
8907         ULONG ulStartElement,
8908         ULONG cElements,
8909         DWORD dwFlags,
8910         ULONG *pulStreamNumber);
8911 
8912     HRESULT (STDMETHODCALLTYPE *Serialize)(
8913         ISpXMLRecoResult* This,
8914         SPSERIALIZEDRESULT **ppCoMemSerializedResult);
8915 
8916     HRESULT (STDMETHODCALLTYPE *ScaleAudio)(
8917         ISpXMLRecoResult* This,
8918         const GUID *pAudioFormatId,
8919         const WAVEFORMATEX *pWaveFormatEx);
8920 
8921     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
8922         ISpXMLRecoResult* This,
8923         ISpRecoContext **ppRecoContext);
8924 
8925     /*** ISpXMLRecoResult methods ***/
8926     HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
8927         ISpXMLRecoResult* This,
8928         LPWSTR *ppszCoMemXMLResult,
8929         SPXMLRESULTOPTIONS Options);
8930 
8931     HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
8932         ISpXMLRecoResult* This,
8933         SPSEMANTICERRORINFO *pSemanticErrorInfo);
8934 
8935     END_INTERFACE
8936 } ISpXMLRecoResultVtbl;
8937 interface ISpXMLRecoResult {
8938     CONST_VTBL ISpXMLRecoResultVtbl* lpVtbl;
8939 };
8940 
8941 #ifdef COBJMACROS
8942 #ifndef WIDL_C_INLINE_WRAPPERS
8943 /*** IUnknown methods ***/
8944 #define ISpXMLRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8945 #define ISpXMLRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
8946 #define ISpXMLRecoResult_Release(This) (This)->lpVtbl->Release(This)
8947 /*** ISpPhrase methods ***/
8948 #define ISpXMLRecoResult_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
8949 #define ISpXMLRecoResult_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
8950 #define ISpXMLRecoResult_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
8951 #define ISpXMLRecoResult_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
8952 /*** ISpRecoResult methods ***/
8953 #define ISpXMLRecoResult_GetResultTimes(This,pTimes) (This)->lpVtbl->GetResultTimes(This,pTimes)
8954 #define ISpXMLRecoResult_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned) (This)->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
8955 #define ISpXMLRecoResult_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
8956 #define ISpXMLRecoResult_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
8957 #define ISpXMLRecoResult_Serialize(This,ppCoMemSerializedResult) (This)->lpVtbl->Serialize(This,ppCoMemSerializedResult)
8958 #define ISpXMLRecoResult_ScaleAudio(This,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
8959 #define ISpXMLRecoResult_GetRecoContext(This,ppRecoContext) (This)->lpVtbl->GetRecoContext(This,ppRecoContext)
8960 /*** ISpXMLRecoResult methods ***/
8961 #define ISpXMLRecoResult_GetXMLResult(This,ppszCoMemXMLResult,Options) (This)->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options)
8962 #define ISpXMLRecoResult_GetXMLErrorInfo(This,pSemanticErrorInfo) (This)->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo)
8963 #else
8964 /*** IUnknown methods ***/
8965 static FORCEINLINE HRESULT ISpXMLRecoResult_QueryInterface(ISpXMLRecoResult* This,REFIID riid,void **ppvObject) {
8966     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8967 }
8968 static FORCEINLINE ULONG ISpXMLRecoResult_AddRef(ISpXMLRecoResult* This) {
8969     return This->lpVtbl->AddRef(This);
8970 }
8971 static FORCEINLINE ULONG ISpXMLRecoResult_Release(ISpXMLRecoResult* This) {
8972     return This->lpVtbl->Release(This);
8973 }
8974 /*** ISpPhrase methods ***/
8975 static FORCEINLINE HRESULT ISpXMLRecoResult_GetPhrase(ISpXMLRecoResult* This,SPPHRASE **ppCoMemPhrase) {
8976     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
8977 }
8978 static FORCEINLINE HRESULT ISpXMLRecoResult_GetSerializedPhrase(ISpXMLRecoResult* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
8979     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
8980 }
8981 static FORCEINLINE HRESULT ISpXMLRecoResult_GetText(ISpXMLRecoResult* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
8982     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
8983 }
8984 static FORCEINLINE HRESULT ISpXMLRecoResult_Discard(ISpXMLRecoResult* This,DWORD dwValueTypes) {
8985     return This->lpVtbl->Discard(This,dwValueTypes);
8986 }
8987 /*** ISpRecoResult methods ***/
8988 static FORCEINLINE HRESULT ISpXMLRecoResult_GetResultTimes(ISpXMLRecoResult* This,SPRECORESULTTIMES *pTimes) {
8989     return This->lpVtbl->GetResultTimes(This,pTimes);
8990 }
8991 static FORCEINLINE HRESULT ISpXMLRecoResult_GetAlternates(ISpXMLRecoResult* This,ULONG ulStartElement,ULONG cElements,ULONG ulRequestCount,ISpPhraseAlt **ppPhrases,ULONG *pcPhrasesReturned) {
8992     return This->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned);
8993 }
8994 static FORCEINLINE HRESULT ISpXMLRecoResult_GetAudio(ISpXMLRecoResult* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
8995     return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
8996 }
8997 static FORCEINLINE HRESULT ISpXMLRecoResult_SpeakAudio(ISpXMLRecoResult* This,ULONG ulStartElement,ULONG cElements,DWORD dwFlags,ULONG *pulStreamNumber) {
8998     return This->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber);
8999 }
9000 static FORCEINLINE HRESULT ISpXMLRecoResult_Serialize(ISpXMLRecoResult* This,SPSERIALIZEDRESULT **ppCoMemSerializedResult) {
9001     return This->lpVtbl->Serialize(This,ppCoMemSerializedResult);
9002 }
9003 static FORCEINLINE HRESULT ISpXMLRecoResult_ScaleAudio(ISpXMLRecoResult* This,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
9004     return This->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx);
9005 }
9006 static FORCEINLINE HRESULT ISpXMLRecoResult_GetRecoContext(ISpXMLRecoResult* This,ISpRecoContext **ppRecoContext) {
9007     return This->lpVtbl->GetRecoContext(This,ppRecoContext);
9008 }
9009 /*** ISpXMLRecoResult methods ***/
9010 static FORCEINLINE HRESULT ISpXMLRecoResult_GetXMLResult(ISpXMLRecoResult* This,LPWSTR *ppszCoMemXMLResult,SPXMLRESULTOPTIONS Options) {
9011     return This->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options);
9012 }
9013 static FORCEINLINE HRESULT ISpXMLRecoResult_GetXMLErrorInfo(ISpXMLRecoResult* This,SPSEMANTICERRORINFO *pSemanticErrorInfo) {
9014     return This->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo);
9015 }
9016 #endif
9017 #endif
9018 
9019 #endif
9020 
9021 HRESULT STDMETHODCALLTYPE ISpXMLRecoResult_GetXMLResult_Proxy(
9022     ISpXMLRecoResult* This,
9023     LPWSTR *ppszCoMemXMLResult,
9024     SPXMLRESULTOPTIONS Options);
9025 void __RPC_STUB ISpXMLRecoResult_GetXMLResult_Stub(
9026     IRpcStubBuffer* This,
9027     IRpcChannelBuffer* pRpcChannelBuffer,
9028     PRPC_MESSAGE pRpcMessage,
9029     DWORD* pdwStubPhase);
9030 HRESULT STDMETHODCALLTYPE ISpXMLRecoResult_GetXMLErrorInfo_Proxy(
9031     ISpXMLRecoResult* This,
9032     SPSEMANTICERRORINFO *pSemanticErrorInfo);
9033 void __RPC_STUB ISpXMLRecoResult_GetXMLErrorInfo_Stub(
9034     IRpcStubBuffer* This,
9035     IRpcChannelBuffer* pRpcChannelBuffer,
9036     PRPC_MESSAGE pRpcMessage,
9037     DWORD* pdwStubPhase);
9038 
9039 #endif  /* __ISpXMLRecoResult_INTERFACE_DEFINED__ */
9040 
9041 typedef struct tagSPTEXTSELECTIONINFO {
9042     ULONG ulStartActiveOffset;
9043     ULONG cchActiveChars;
9044     ULONG ulStartSelection;
9045     ULONG cchSelection;
9046 } SPTEXTSELECTIONINFO;
9047 typedef enum SPWORDPRONOUNCEABLE {
9048     SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE = 0,
9049     SPWP_UNKNOWN_WORD_PRONOUNCEABLE = 1,
9050     SPWP_KNOWN_WORD_PRONOUNCEABLE = 2
9051 } SPWORDPRONOUNCEABLE;
9052 typedef enum SPGRAMMARSTATE {
9053     SPGS_DISABLED = 0,
9054     SPGS_ENABLED = 1,
9055     SPGS_EXCLUSIVE = 3
9056 } SPGRAMMARSTATE;
9057 typedef enum SPCONTEXTSTATE {
9058     SPCS_DISABLED = 0,
9059     SPCS_ENABLED = 1
9060 } SPCONTEXTSTATE;
9061 typedef enum SPRULESTATE {
9062     SPRS_INACTIVE = 0,
9063     SPRS_ACTIVE = 1,
9064     SPRS_ACTIVE_WITH_AUTO_PAUSE = 3,
9065     SPRS_ACTIVE_USER_DELIMITED = 4
9066 } SPRULESTATE;
9067 #define SP_STREAMPOS_ASAP (0)
9068 
9069 #define SP_STREAMPOS_REALTIME (-1)
9070 
9071 #define SPRULETRANS_TEXTBUFFER (SPSTATEHANDLE) (-1)
9072 #define SPRULETRANS_WILDCARD (SPSTATEHANDLE) (-2)
9073 #define SPRULETRANS_DICTATION (SPSTATEHANDLE) (-3)
9074 typedef enum SPGRAMMARWORDTYPE {
9075     SPWT_DISPLAY = 0,
9076     SPWT_LEXICAL = 1,
9077     SPWT_PRONUNCIATION = 2,
9078     SPWT_LEXICAL_NO_SPECIAL_CHARS = 3
9079 } SPGRAMMARWORDTYPE;
9080 typedef struct tagSPPROPERTYINFO {
9081     LPCWSTR pszName;
9082     ULONG ulId;
9083     LPCWSTR pszValue;
9084     VARIANT vValue;
9085 } SPPROPERTYINFO;
9086 typedef enum SPCFGRULEATTRIBUTES {
9087     SPRAF_TopLevel = 0x1,
9088     SPRAF_Active = 0x2,
9089     SPRAF_Export = 0x4,
9090     SPRAF_Import = 0x8,
9091     SPRAF_Interpreter = 0x10,
9092     SPRAF_Dynamic = 0x20,
9093     SPRAF_Root = 0x40,
9094     SPRAF_AutoPause = 0x10000,
9095     SPRAF_UserDelimited = 0x20000
9096 } SPCFGRULEATTRIBUTES;
9097 /*****************************************************************************
9098  * ISpGrammarBuilder interface
9099  */
9100 #ifndef __ISpGrammarBuilder_INTERFACE_DEFINED__
9101 #define __ISpGrammarBuilder_INTERFACE_DEFINED__
9102 
9103 DEFINE_GUID(IID_ISpGrammarBuilder, 0x8137828f, 0x591a, 0x4a42, 0xbe,0x58, 0x49,0xea,0x7e,0xba,0xac,0x68);
9104 #if defined(__cplusplus) && !defined(CINTERFACE)
9105 MIDL_INTERFACE("8137828f-591a-4a42-be58-49ea7ebaac68")
9106 ISpGrammarBuilder : public IUnknown
9107 {
9108     virtual HRESULT STDMETHODCALLTYPE ResetGrammar(
9109         WORD NewLanguage) = 0;
9110 
9111     virtual HRESULT STDMETHODCALLTYPE GetRule(
9112         LPCWSTR pszRuleName,
9113         DWORD dwRuleId,
9114         DWORD dwAttributes,
9115         WINBOOL fCreateIfNotExist,
9116         SPSTATEHANDLE *phInitialState) = 0;
9117 
9118     virtual HRESULT STDMETHODCALLTYPE ClearRule(
9119         SPSTATEHANDLE hState) = 0;
9120 
9121     virtual HRESULT STDMETHODCALLTYPE CreateNewState(
9122         SPSTATEHANDLE hState,
9123         SPSTATEHANDLE *phState) = 0;
9124 
9125     virtual HRESULT STDMETHODCALLTYPE AddWordTransition(
9126         SPSTATEHANDLE hFromState,
9127         SPSTATEHANDLE hToState,
9128         LPCWSTR psz,
9129         LPCWSTR pszSeparators,
9130         SPGRAMMARWORDTYPE eWordType,
9131         float Weight,
9132         const SPPROPERTYINFO *pPropInfo) = 0;
9133 
9134     virtual HRESULT STDMETHODCALLTYPE AddRuleTransition(
9135         SPSTATEHANDLE hFromState,
9136         SPSTATEHANDLE hToState,
9137         SPSTATEHANDLE hRule,
9138         float Weight,
9139         const SPPROPERTYINFO *pPropInfo) = 0;
9140 
9141     virtual HRESULT STDMETHODCALLTYPE AddResource(
9142         SPSTATEHANDLE hRuleState,
9143         LPCWSTR pszResourceName,
9144         LPCWSTR pszResourceValue) = 0;
9145 
9146     virtual HRESULT STDMETHODCALLTYPE Commit(
9147         DWORD dwReserved) = 0;
9148 
9149 };
9150 #ifdef __CRT_UUID_DECL
9151 __CRT_UUID_DECL(ISpGrammarBuilder, 0x8137828f, 0x591a, 0x4a42, 0xbe,0x58, 0x49,0xea,0x7e,0xba,0xac,0x68)
9152 #endif
9153 #else
9154 typedef struct ISpGrammarBuilderVtbl {
9155     BEGIN_INTERFACE
9156 
9157     /*** IUnknown methods ***/
9158     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9159         ISpGrammarBuilder* This,
9160         REFIID riid,
9161         void **ppvObject);
9162 
9163     ULONG (STDMETHODCALLTYPE *AddRef)(
9164         ISpGrammarBuilder* This);
9165 
9166     ULONG (STDMETHODCALLTYPE *Release)(
9167         ISpGrammarBuilder* This);
9168 
9169     /*** ISpGrammarBuilder methods ***/
9170     HRESULT (STDMETHODCALLTYPE *ResetGrammar)(
9171         ISpGrammarBuilder* This,
9172         WORD NewLanguage);
9173 
9174     HRESULT (STDMETHODCALLTYPE *GetRule)(
9175         ISpGrammarBuilder* This,
9176         LPCWSTR pszRuleName,
9177         DWORD dwRuleId,
9178         DWORD dwAttributes,
9179         WINBOOL fCreateIfNotExist,
9180         SPSTATEHANDLE *phInitialState);
9181 
9182     HRESULT (STDMETHODCALLTYPE *ClearRule)(
9183         ISpGrammarBuilder* This,
9184         SPSTATEHANDLE hState);
9185 
9186     HRESULT (STDMETHODCALLTYPE *CreateNewState)(
9187         ISpGrammarBuilder* This,
9188         SPSTATEHANDLE hState,
9189         SPSTATEHANDLE *phState);
9190 
9191     HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
9192         ISpGrammarBuilder* This,
9193         SPSTATEHANDLE hFromState,
9194         SPSTATEHANDLE hToState,
9195         LPCWSTR psz,
9196         LPCWSTR pszSeparators,
9197         SPGRAMMARWORDTYPE eWordType,
9198         float Weight,
9199         const SPPROPERTYINFO *pPropInfo);
9200 
9201     HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
9202         ISpGrammarBuilder* This,
9203         SPSTATEHANDLE hFromState,
9204         SPSTATEHANDLE hToState,
9205         SPSTATEHANDLE hRule,
9206         float Weight,
9207         const SPPROPERTYINFO *pPropInfo);
9208 
9209     HRESULT (STDMETHODCALLTYPE *AddResource)(
9210         ISpGrammarBuilder* This,
9211         SPSTATEHANDLE hRuleState,
9212         LPCWSTR pszResourceName,
9213         LPCWSTR pszResourceValue);
9214 
9215     HRESULT (STDMETHODCALLTYPE *Commit)(
9216         ISpGrammarBuilder* This,
9217         DWORD dwReserved);
9218 
9219     END_INTERFACE
9220 } ISpGrammarBuilderVtbl;
9221 interface ISpGrammarBuilder {
9222     CONST_VTBL ISpGrammarBuilderVtbl* lpVtbl;
9223 };
9224 
9225 #ifdef COBJMACROS
9226 #ifndef WIDL_C_INLINE_WRAPPERS
9227 /*** IUnknown methods ***/
9228 #define ISpGrammarBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9229 #define ISpGrammarBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
9230 #define ISpGrammarBuilder_Release(This) (This)->lpVtbl->Release(This)
9231 /*** ISpGrammarBuilder methods ***/
9232 #define ISpGrammarBuilder_ResetGrammar(This,NewLanguage) (This)->lpVtbl->ResetGrammar(This,NewLanguage)
9233 #define ISpGrammarBuilder_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState) (This)->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
9234 #define ISpGrammarBuilder_ClearRule(This,hState) (This)->lpVtbl->ClearRule(This,hState)
9235 #define ISpGrammarBuilder_CreateNewState(This,hState,phState) (This)->lpVtbl->CreateNewState(This,hState,phState)
9236 #define ISpGrammarBuilder_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo) (This)->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
9237 #define ISpGrammarBuilder_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo) (This)->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
9238 #define ISpGrammarBuilder_AddResource(This,hRuleState,pszResourceName,pszResourceValue) (This)->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue)
9239 #define ISpGrammarBuilder_Commit(This,dwReserved) (This)->lpVtbl->Commit(This,dwReserved)
9240 #else
9241 /*** IUnknown methods ***/
9242 static FORCEINLINE HRESULT ISpGrammarBuilder_QueryInterface(ISpGrammarBuilder* This,REFIID riid,void **ppvObject) {
9243     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9244 }
9245 static FORCEINLINE ULONG ISpGrammarBuilder_AddRef(ISpGrammarBuilder* This) {
9246     return This->lpVtbl->AddRef(This);
9247 }
9248 static FORCEINLINE ULONG ISpGrammarBuilder_Release(ISpGrammarBuilder* This) {
9249     return This->lpVtbl->Release(This);
9250 }
9251 /*** ISpGrammarBuilder methods ***/
9252 static FORCEINLINE HRESULT ISpGrammarBuilder_ResetGrammar(ISpGrammarBuilder* This,WORD NewLanguage) {
9253     return This->lpVtbl->ResetGrammar(This,NewLanguage);
9254 }
9255 static FORCEINLINE HRESULT ISpGrammarBuilder_GetRule(ISpGrammarBuilder* This,LPCWSTR pszRuleName,DWORD dwRuleId,DWORD dwAttributes,WINBOOL fCreateIfNotExist,SPSTATEHANDLE *phInitialState) {
9256     return This->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState);
9257 }
9258 static FORCEINLINE HRESULT ISpGrammarBuilder_ClearRule(ISpGrammarBuilder* This,SPSTATEHANDLE hState) {
9259     return This->lpVtbl->ClearRule(This,hState);
9260 }
9261 static FORCEINLINE HRESULT ISpGrammarBuilder_CreateNewState(ISpGrammarBuilder* This,SPSTATEHANDLE hState,SPSTATEHANDLE *phState) {
9262     return This->lpVtbl->CreateNewState(This,hState,phState);
9263 }
9264 static FORCEINLINE HRESULT ISpGrammarBuilder_AddWordTransition(ISpGrammarBuilder* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,LPCWSTR pszSeparators,SPGRAMMARWORDTYPE eWordType,float Weight,const SPPROPERTYINFO *pPropInfo) {
9265     return This->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo);
9266 }
9267 static FORCEINLINE HRESULT ISpGrammarBuilder_AddRuleTransition(ISpGrammarBuilder* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,SPSTATEHANDLE hRule,float Weight,const SPPROPERTYINFO *pPropInfo) {
9268     return This->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo);
9269 }
9270 static FORCEINLINE HRESULT ISpGrammarBuilder_AddResource(ISpGrammarBuilder* This,SPSTATEHANDLE hRuleState,LPCWSTR pszResourceName,LPCWSTR pszResourceValue) {
9271     return This->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue);
9272 }
9273 static FORCEINLINE HRESULT ISpGrammarBuilder_Commit(ISpGrammarBuilder* This,DWORD dwReserved) {
9274     return This->lpVtbl->Commit(This,dwReserved);
9275 }
9276 #endif
9277 #endif
9278 
9279 #endif
9280 
9281 HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_ResetGrammar_Proxy(
9282     ISpGrammarBuilder* This,
9283     WORD NewLanguage);
9284 void __RPC_STUB ISpGrammarBuilder_ResetGrammar_Stub(
9285     IRpcStubBuffer* This,
9286     IRpcChannelBuffer* pRpcChannelBuffer,
9287     PRPC_MESSAGE pRpcMessage,
9288     DWORD* pdwStubPhase);
9289 HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_GetRule_Proxy(
9290     ISpGrammarBuilder* This,
9291     LPCWSTR pszRuleName,
9292     DWORD dwRuleId,
9293     DWORD dwAttributes,
9294     WINBOOL fCreateIfNotExist,
9295     SPSTATEHANDLE *phInitialState);
9296 void __RPC_STUB ISpGrammarBuilder_GetRule_Stub(
9297     IRpcStubBuffer* This,
9298     IRpcChannelBuffer* pRpcChannelBuffer,
9299     PRPC_MESSAGE pRpcMessage,
9300     DWORD* pdwStubPhase);
9301 HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_ClearRule_Proxy(
9302     ISpGrammarBuilder* This,
9303     SPSTATEHANDLE hState);
9304 void __RPC_STUB ISpGrammarBuilder_ClearRule_Stub(
9305     IRpcStubBuffer* This,
9306     IRpcChannelBuffer* pRpcChannelBuffer,
9307     PRPC_MESSAGE pRpcMessage,
9308     DWORD* pdwStubPhase);
9309 HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_CreateNewState_Proxy(
9310     ISpGrammarBuilder* This,
9311     SPSTATEHANDLE hState,
9312     SPSTATEHANDLE *phState);
9313 void __RPC_STUB ISpGrammarBuilder_CreateNewState_Stub(
9314     IRpcStubBuffer* This,
9315     IRpcChannelBuffer* pRpcChannelBuffer,
9316     PRPC_MESSAGE pRpcMessage,
9317     DWORD* pdwStubPhase);
9318 HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_AddWordTransition_Proxy(
9319     ISpGrammarBuilder* This,
9320     SPSTATEHANDLE hFromState,
9321     SPSTATEHANDLE hToState,
9322     LPCWSTR psz,
9323     LPCWSTR pszSeparators,
9324     SPGRAMMARWORDTYPE eWordType,
9325     float Weight,
9326     const SPPROPERTYINFO *pPropInfo);
9327 void __RPC_STUB ISpGrammarBuilder_AddWordTransition_Stub(
9328     IRpcStubBuffer* This,
9329     IRpcChannelBuffer* pRpcChannelBuffer,
9330     PRPC_MESSAGE pRpcMessage,
9331     DWORD* pdwStubPhase);
9332 HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_AddRuleTransition_Proxy(
9333     ISpGrammarBuilder* This,
9334     SPSTATEHANDLE hFromState,
9335     SPSTATEHANDLE hToState,
9336     SPSTATEHANDLE hRule,
9337     float Weight,
9338     const SPPROPERTYINFO *pPropInfo);
9339 void __RPC_STUB ISpGrammarBuilder_AddRuleTransition_Stub(
9340     IRpcStubBuffer* This,
9341     IRpcChannelBuffer* pRpcChannelBuffer,
9342     PRPC_MESSAGE pRpcMessage,
9343     DWORD* pdwStubPhase);
9344 HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_AddResource_Proxy(
9345     ISpGrammarBuilder* This,
9346     SPSTATEHANDLE hRuleState,
9347     LPCWSTR pszResourceName,
9348     LPCWSTR pszResourceValue);
9349 void __RPC_STUB ISpGrammarBuilder_AddResource_Stub(
9350     IRpcStubBuffer* This,
9351     IRpcChannelBuffer* pRpcChannelBuffer,
9352     PRPC_MESSAGE pRpcMessage,
9353     DWORD* pdwStubPhase);
9354 HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_Commit_Proxy(
9355     ISpGrammarBuilder* This,
9356     DWORD dwReserved);
9357 void __RPC_STUB ISpGrammarBuilder_Commit_Stub(
9358     IRpcStubBuffer* This,
9359     IRpcChannelBuffer* pRpcChannelBuffer,
9360     PRPC_MESSAGE pRpcMessage,
9361     DWORD* pdwStubPhase);
9362 
9363 #endif  /* __ISpGrammarBuilder_INTERFACE_DEFINED__ */
9364 
9365 typedef enum SPLOADOPTIONS {
9366     SPLO_STATIC = 0,
9367     SPLO_DYNAMIC = 1
9368 } SPLOADOPTIONS;
9369 /*****************************************************************************
9370  * ISpRecoGrammar interface
9371  */
9372 #ifndef __ISpRecoGrammar_INTERFACE_DEFINED__
9373 #define __ISpRecoGrammar_INTERFACE_DEFINED__
9374 
9375 DEFINE_GUID(IID_ISpRecoGrammar, 0x2177db29, 0x7f45, 0x47d0, 0x85,0x54, 0x06,0x7e,0x91,0xc8,0x05,0x02);
9376 #if defined(__cplusplus) && !defined(CINTERFACE)
9377 MIDL_INTERFACE("2177db29-7f45-47d0-8554-067e91c80502")
9378 ISpRecoGrammar : public ISpGrammarBuilder
9379 {
9380     virtual HRESULT STDMETHODCALLTYPE GetGrammarId(
9381         ULONGLONG *pullGrammarId) = 0;
9382 
9383     virtual HRESULT STDMETHODCALLTYPE GetRecoContext(
9384         ISpRecoContext **ppRecoCtxt) = 0;
9385 
9386     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromFile(
9387         LPCWSTR pszFileName,
9388         SPLOADOPTIONS Options) = 0;
9389 
9390     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromObject(
9391         REFCLSID rcid,
9392         LPCWSTR pszGrammarName,
9393         SPLOADOPTIONS Options) = 0;
9394 
9395     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromResource(
9396         HMODULE hModule,
9397         LPCWSTR pszResourceName,
9398         LPCWSTR pszResourceType,
9399         WORD wLanguage,
9400         SPLOADOPTIONS Options) = 0;
9401 
9402     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromMemory(
9403         const SPBINARYGRAMMAR *pGrammar,
9404         SPLOADOPTIONS Options) = 0;
9405 
9406     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromProprietaryGrammar(
9407         REFGUID rguidParam,
9408         LPCWSTR pszStringParam,
9409         const void *pvDataPrarm,
9410         ULONG cbDataSize,
9411         SPLOADOPTIONS Options) = 0;
9412 
9413     virtual HRESULT STDMETHODCALLTYPE SetRuleState(
9414         LPCWSTR pszName,
9415         void *pReserved,
9416         SPRULESTATE NewState) = 0;
9417 
9418     virtual HRESULT STDMETHODCALLTYPE SetRuleIdState(
9419         ULONG ulRuleId,
9420         SPRULESTATE NewState) = 0;
9421 
9422     virtual HRESULT STDMETHODCALLTYPE LoadDictation(
9423         LPCWSTR pszTopicName,
9424         SPLOADOPTIONS Options) = 0;
9425 
9426     virtual HRESULT STDMETHODCALLTYPE UnloadDictation(
9427         ) = 0;
9428 
9429     virtual HRESULT STDMETHODCALLTYPE SetDictationState(
9430         SPRULESTATE NewState) = 0;
9431 
9432     virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData(
9433         const WCHAR *pText,
9434         ULONG cchText,
9435         const SPTEXTSELECTIONINFO *pInfo) = 0;
9436 
9437     virtual HRESULT STDMETHODCALLTYPE SetTextSelection(
9438         const SPTEXTSELECTIONINFO *pInfo) = 0;
9439 
9440     virtual HRESULT STDMETHODCALLTYPE IsPronounceable(
9441         LPCWSTR pszWord,
9442         SPWORDPRONOUNCEABLE *pWordPronounceable) = 0;
9443 
9444     virtual HRESULT STDMETHODCALLTYPE SetGrammarState(
9445         SPGRAMMARSTATE eGrammarState) = 0;
9446 
9447     virtual HRESULT STDMETHODCALLTYPE SaveCmd(
9448         IStream *pStream,
9449         LPWSTR *ppszCoMemErrorText) = 0;
9450 
9451     virtual HRESULT STDMETHODCALLTYPE GetGrammarState(
9452         SPGRAMMARSTATE *peGrammarState) = 0;
9453 
9454 };
9455 #ifdef __CRT_UUID_DECL
9456 __CRT_UUID_DECL(ISpRecoGrammar, 0x2177db29, 0x7f45, 0x47d0, 0x85,0x54, 0x06,0x7e,0x91,0xc8,0x05,0x02)
9457 #endif
9458 #else
9459 typedef struct ISpRecoGrammarVtbl {
9460     BEGIN_INTERFACE
9461 
9462     /*** IUnknown methods ***/
9463     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9464         ISpRecoGrammar* This,
9465         REFIID riid,
9466         void **ppvObject);
9467 
9468     ULONG (STDMETHODCALLTYPE *AddRef)(
9469         ISpRecoGrammar* This);
9470 
9471     ULONG (STDMETHODCALLTYPE *Release)(
9472         ISpRecoGrammar* This);
9473 
9474     /*** ISpGrammarBuilder methods ***/
9475     HRESULT (STDMETHODCALLTYPE *ResetGrammar)(
9476         ISpRecoGrammar* This,
9477         WORD NewLanguage);
9478 
9479     HRESULT (STDMETHODCALLTYPE *GetRule)(
9480         ISpRecoGrammar* This,
9481         LPCWSTR pszRuleName,
9482         DWORD dwRuleId,
9483         DWORD dwAttributes,
9484         WINBOOL fCreateIfNotExist,
9485         SPSTATEHANDLE *phInitialState);
9486 
9487     HRESULT (STDMETHODCALLTYPE *ClearRule)(
9488         ISpRecoGrammar* This,
9489         SPSTATEHANDLE hState);
9490 
9491     HRESULT (STDMETHODCALLTYPE *CreateNewState)(
9492         ISpRecoGrammar* This,
9493         SPSTATEHANDLE hState,
9494         SPSTATEHANDLE *phState);
9495 
9496     HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
9497         ISpRecoGrammar* This,
9498         SPSTATEHANDLE hFromState,
9499         SPSTATEHANDLE hToState,
9500         LPCWSTR psz,
9501         LPCWSTR pszSeparators,
9502         SPGRAMMARWORDTYPE eWordType,
9503         float Weight,
9504         const SPPROPERTYINFO *pPropInfo);
9505 
9506     HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
9507         ISpRecoGrammar* This,
9508         SPSTATEHANDLE hFromState,
9509         SPSTATEHANDLE hToState,
9510         SPSTATEHANDLE hRule,
9511         float Weight,
9512         const SPPROPERTYINFO *pPropInfo);
9513 
9514     HRESULT (STDMETHODCALLTYPE *AddResource)(
9515         ISpRecoGrammar* This,
9516         SPSTATEHANDLE hRuleState,
9517         LPCWSTR pszResourceName,
9518         LPCWSTR pszResourceValue);
9519 
9520     HRESULT (STDMETHODCALLTYPE *Commit)(
9521         ISpRecoGrammar* This,
9522         DWORD dwReserved);
9523 
9524     /*** ISpRecoGrammar methods ***/
9525     HRESULT (STDMETHODCALLTYPE *GetGrammarId)(
9526         ISpRecoGrammar* This,
9527         ULONGLONG *pullGrammarId);
9528 
9529     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
9530         ISpRecoGrammar* This,
9531         ISpRecoContext **ppRecoCtxt);
9532 
9533     HRESULT (STDMETHODCALLTYPE *LoadCmdFromFile)(
9534         ISpRecoGrammar* This,
9535         LPCWSTR pszFileName,
9536         SPLOADOPTIONS Options);
9537 
9538     HRESULT (STDMETHODCALLTYPE *LoadCmdFromObject)(
9539         ISpRecoGrammar* This,
9540         REFCLSID rcid,
9541         LPCWSTR pszGrammarName,
9542         SPLOADOPTIONS Options);
9543 
9544     HRESULT (STDMETHODCALLTYPE *LoadCmdFromResource)(
9545         ISpRecoGrammar* This,
9546         HMODULE hModule,
9547         LPCWSTR pszResourceName,
9548         LPCWSTR pszResourceType,
9549         WORD wLanguage,
9550         SPLOADOPTIONS Options);
9551 
9552     HRESULT (STDMETHODCALLTYPE *LoadCmdFromMemory)(
9553         ISpRecoGrammar* This,
9554         const SPBINARYGRAMMAR *pGrammar,
9555         SPLOADOPTIONS Options);
9556 
9557     HRESULT (STDMETHODCALLTYPE *LoadCmdFromProprietaryGrammar)(
9558         ISpRecoGrammar* This,
9559         REFGUID rguidParam,
9560         LPCWSTR pszStringParam,
9561         const void *pvDataPrarm,
9562         ULONG cbDataSize,
9563         SPLOADOPTIONS Options);
9564 
9565     HRESULT (STDMETHODCALLTYPE *SetRuleState)(
9566         ISpRecoGrammar* This,
9567         LPCWSTR pszName,
9568         void *pReserved,
9569         SPRULESTATE NewState);
9570 
9571     HRESULT (STDMETHODCALLTYPE *SetRuleIdState)(
9572         ISpRecoGrammar* This,
9573         ULONG ulRuleId,
9574         SPRULESTATE NewState);
9575 
9576     HRESULT (STDMETHODCALLTYPE *LoadDictation)(
9577         ISpRecoGrammar* This,
9578         LPCWSTR pszTopicName,
9579         SPLOADOPTIONS Options);
9580 
9581     HRESULT (STDMETHODCALLTYPE *UnloadDictation)(
9582         ISpRecoGrammar* This);
9583 
9584     HRESULT (STDMETHODCALLTYPE *SetDictationState)(
9585         ISpRecoGrammar* This,
9586         SPRULESTATE NewState);
9587 
9588     HRESULT (STDMETHODCALLTYPE *SetWordSequenceData)(
9589         ISpRecoGrammar* This,
9590         const WCHAR *pText,
9591         ULONG cchText,
9592         const SPTEXTSELECTIONINFO *pInfo);
9593 
9594     HRESULT (STDMETHODCALLTYPE *SetTextSelection)(
9595         ISpRecoGrammar* This,
9596         const SPTEXTSELECTIONINFO *pInfo);
9597 
9598     HRESULT (STDMETHODCALLTYPE *IsPronounceable)(
9599         ISpRecoGrammar* This,
9600         LPCWSTR pszWord,
9601         SPWORDPRONOUNCEABLE *pWordPronounceable);
9602 
9603     HRESULT (STDMETHODCALLTYPE *SetGrammarState)(
9604         ISpRecoGrammar* This,
9605         SPGRAMMARSTATE eGrammarState);
9606 
9607     HRESULT (STDMETHODCALLTYPE *SaveCmd)(
9608         ISpRecoGrammar* This,
9609         IStream *pStream,
9610         LPWSTR *ppszCoMemErrorText);
9611 
9612     HRESULT (STDMETHODCALLTYPE *GetGrammarState)(
9613         ISpRecoGrammar* This,
9614         SPGRAMMARSTATE *peGrammarState);
9615 
9616     END_INTERFACE
9617 } ISpRecoGrammarVtbl;
9618 interface ISpRecoGrammar {
9619     CONST_VTBL ISpRecoGrammarVtbl* lpVtbl;
9620 };
9621 
9622 #ifdef COBJMACROS
9623 #ifndef WIDL_C_INLINE_WRAPPERS
9624 /*** IUnknown methods ***/
9625 #define ISpRecoGrammar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9626 #define ISpRecoGrammar_AddRef(This) (This)->lpVtbl->AddRef(This)
9627 #define ISpRecoGrammar_Release(This) (This)->lpVtbl->Release(This)
9628 /*** ISpGrammarBuilder methods ***/
9629 #define ISpRecoGrammar_ResetGrammar(This,NewLanguage) (This)->lpVtbl->ResetGrammar(This,NewLanguage)
9630 #define ISpRecoGrammar_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState) (This)->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
9631 #define ISpRecoGrammar_ClearRule(This,hState) (This)->lpVtbl->ClearRule(This,hState)
9632 #define ISpRecoGrammar_CreateNewState(This,hState,phState) (This)->lpVtbl->CreateNewState(This,hState,phState)
9633 #define ISpRecoGrammar_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo) (This)->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
9634 #define ISpRecoGrammar_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo) (This)->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
9635 #define ISpRecoGrammar_AddResource(This,hRuleState,pszResourceName,pszResourceValue) (This)->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue)
9636 #define ISpRecoGrammar_Commit(This,dwReserved) (This)->lpVtbl->Commit(This,dwReserved)
9637 /*** ISpRecoGrammar methods ***/
9638 #define ISpRecoGrammar_GetGrammarId(This,pullGrammarId) (This)->lpVtbl->GetGrammarId(This,pullGrammarId)
9639 #define ISpRecoGrammar_GetRecoContext(This,ppRecoCtxt) (This)->lpVtbl->GetRecoContext(This,ppRecoCtxt)
9640 #define ISpRecoGrammar_LoadCmdFromFile(This,pszFileName,Options) (This)->lpVtbl->LoadCmdFromFile(This,pszFileName,Options)
9641 #define ISpRecoGrammar_LoadCmdFromObject(This,rcid,pszGrammarName,Options) (This)->lpVtbl->LoadCmdFromObject(This,rcid,pszGrammarName,Options)
9642 #define ISpRecoGrammar_LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options) (This)->lpVtbl->LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options)
9643 #define ISpRecoGrammar_LoadCmdFromMemory(This,pGrammar,Options) (This)->lpVtbl->LoadCmdFromMemory(This,pGrammar,Options)
9644 #define ISpRecoGrammar_LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options) (This)->lpVtbl->LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options)
9645 #define ISpRecoGrammar_SetRuleState(This,pszName,pReserved,NewState) (This)->lpVtbl->SetRuleState(This,pszName,pReserved,NewState)
9646 #define ISpRecoGrammar_SetRuleIdState(This,ulRuleId,NewState) (This)->lpVtbl->SetRuleIdState(This,ulRuleId,NewState)
9647 #define ISpRecoGrammar_LoadDictation(This,pszTopicName,Options) (This)->lpVtbl->LoadDictation(This,pszTopicName,Options)
9648 #define ISpRecoGrammar_UnloadDictation(This) (This)->lpVtbl->UnloadDictation(This)
9649 #define ISpRecoGrammar_SetDictationState(This,NewState) (This)->lpVtbl->SetDictationState(This,NewState)
9650 #define ISpRecoGrammar_SetWordSequenceData(This,pText,cchText,pInfo) (This)->lpVtbl->SetWordSequenceData(This,pText,cchText,pInfo)
9651 #define ISpRecoGrammar_SetTextSelection(This,pInfo) (This)->lpVtbl->SetTextSelection(This,pInfo)
9652 #define ISpRecoGrammar_IsPronounceable(This,pszWord,pWordPronounceable) (This)->lpVtbl->IsPronounceable(This,pszWord,pWordPronounceable)
9653 #define ISpRecoGrammar_SetGrammarState(This,eGrammarState) (This)->lpVtbl->SetGrammarState(This,eGrammarState)
9654 #define ISpRecoGrammar_SaveCmd(This,pStream,ppszCoMemErrorText) (This)->lpVtbl->SaveCmd(This,pStream,ppszCoMemErrorText)
9655 #define ISpRecoGrammar_GetGrammarState(This,peGrammarState) (This)->lpVtbl->GetGrammarState(This,peGrammarState)
9656 #else
9657 /*** IUnknown methods ***/
9658 static FORCEINLINE HRESULT ISpRecoGrammar_QueryInterface(ISpRecoGrammar* This,REFIID riid,void **ppvObject) {
9659     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9660 }
9661 static FORCEINLINE ULONG ISpRecoGrammar_AddRef(ISpRecoGrammar* This) {
9662     return This->lpVtbl->AddRef(This);
9663 }
9664 static FORCEINLINE ULONG ISpRecoGrammar_Release(ISpRecoGrammar* This) {
9665     return This->lpVtbl->Release(This);
9666 }
9667 /*** ISpGrammarBuilder methods ***/
9668 static FORCEINLINE HRESULT ISpRecoGrammar_ResetGrammar(ISpRecoGrammar* This,WORD NewLanguage) {
9669     return This->lpVtbl->ResetGrammar(This,NewLanguage);
9670 }
9671 static FORCEINLINE HRESULT ISpRecoGrammar_GetRule(ISpRecoGrammar* This,LPCWSTR pszRuleName,DWORD dwRuleId,DWORD dwAttributes,WINBOOL fCreateIfNotExist,SPSTATEHANDLE *phInitialState) {
9672     return This->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState);
9673 }
9674 static FORCEINLINE HRESULT ISpRecoGrammar_ClearRule(ISpRecoGrammar* This,SPSTATEHANDLE hState) {
9675     return This->lpVtbl->ClearRule(This,hState);
9676 }
9677 static FORCEINLINE HRESULT ISpRecoGrammar_CreateNewState(ISpRecoGrammar* This,SPSTATEHANDLE hState,SPSTATEHANDLE *phState) {
9678     return This->lpVtbl->CreateNewState(This,hState,phState);
9679 }
9680 static FORCEINLINE HRESULT ISpRecoGrammar_AddWordTransition(ISpRecoGrammar* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,LPCWSTR pszSeparators,SPGRAMMARWORDTYPE eWordType,float Weight,const SPPROPERTYINFO *pPropInfo) {
9681     return This->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo);
9682 }
9683 static FORCEINLINE HRESULT ISpRecoGrammar_AddRuleTransition(ISpRecoGrammar* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,SPSTATEHANDLE hRule,float Weight,const SPPROPERTYINFO *pPropInfo) {
9684     return This->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo);
9685 }
9686 static FORCEINLINE HRESULT ISpRecoGrammar_AddResource(ISpRecoGrammar* This,SPSTATEHANDLE hRuleState,LPCWSTR pszResourceName,LPCWSTR pszResourceValue) {
9687     return This->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue);
9688 }
9689 static FORCEINLINE HRESULT ISpRecoGrammar_Commit(ISpRecoGrammar* This,DWORD dwReserved) {
9690     return This->lpVtbl->Commit(This,dwReserved);
9691 }
9692 /*** ISpRecoGrammar methods ***/
9693 static FORCEINLINE HRESULT ISpRecoGrammar_GetGrammarId(ISpRecoGrammar* This,ULONGLONG *pullGrammarId) {
9694     return This->lpVtbl->GetGrammarId(This,pullGrammarId);
9695 }
9696 static FORCEINLINE HRESULT ISpRecoGrammar_GetRecoContext(ISpRecoGrammar* This,ISpRecoContext **ppRecoCtxt) {
9697     return This->lpVtbl->GetRecoContext(This,ppRecoCtxt);
9698 }
9699 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromFile(ISpRecoGrammar* This,LPCWSTR pszFileName,SPLOADOPTIONS Options) {
9700     return This->lpVtbl->LoadCmdFromFile(This,pszFileName,Options);
9701 }
9702 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromObject(ISpRecoGrammar* This,REFCLSID rcid,LPCWSTR pszGrammarName,SPLOADOPTIONS Options) {
9703     return This->lpVtbl->LoadCmdFromObject(This,rcid,pszGrammarName,Options);
9704 }
9705 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromResource(ISpRecoGrammar* This,HMODULE hModule,LPCWSTR pszResourceName,LPCWSTR pszResourceType,WORD wLanguage,SPLOADOPTIONS Options) {
9706     return This->lpVtbl->LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options);
9707 }
9708 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromMemory(ISpRecoGrammar* This,const SPBINARYGRAMMAR *pGrammar,SPLOADOPTIONS Options) {
9709     return This->lpVtbl->LoadCmdFromMemory(This,pGrammar,Options);
9710 }
9711 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromProprietaryGrammar(ISpRecoGrammar* This,REFGUID rguidParam,LPCWSTR pszStringParam,const void *pvDataPrarm,ULONG cbDataSize,SPLOADOPTIONS Options) {
9712     return This->lpVtbl->LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options);
9713 }
9714 static FORCEINLINE HRESULT ISpRecoGrammar_SetRuleState(ISpRecoGrammar* This,LPCWSTR pszName,void *pReserved,SPRULESTATE NewState) {
9715     return This->lpVtbl->SetRuleState(This,pszName,pReserved,NewState);
9716 }
9717 static FORCEINLINE HRESULT ISpRecoGrammar_SetRuleIdState(ISpRecoGrammar* This,ULONG ulRuleId,SPRULESTATE NewState) {
9718     return This->lpVtbl->SetRuleIdState(This,ulRuleId,NewState);
9719 }
9720 static FORCEINLINE HRESULT ISpRecoGrammar_LoadDictation(ISpRecoGrammar* This,LPCWSTR pszTopicName,SPLOADOPTIONS Options) {
9721     return This->lpVtbl->LoadDictation(This,pszTopicName,Options);
9722 }
9723 static FORCEINLINE HRESULT ISpRecoGrammar_UnloadDictation(ISpRecoGrammar* This) {
9724     return This->lpVtbl->UnloadDictation(This);
9725 }
9726 static FORCEINLINE HRESULT ISpRecoGrammar_SetDictationState(ISpRecoGrammar* This,SPRULESTATE NewState) {
9727     return This->lpVtbl->SetDictationState(This,NewState);
9728 }
9729 static FORCEINLINE HRESULT ISpRecoGrammar_SetWordSequenceData(ISpRecoGrammar* This,const WCHAR *pText,ULONG cchText,const SPTEXTSELECTIONINFO *pInfo) {
9730     return This->lpVtbl->SetWordSequenceData(This,pText,cchText,pInfo);
9731 }
9732 static FORCEINLINE HRESULT ISpRecoGrammar_SetTextSelection(ISpRecoGrammar* This,const SPTEXTSELECTIONINFO *pInfo) {
9733     return This->lpVtbl->SetTextSelection(This,pInfo);
9734 }
9735 static FORCEINLINE HRESULT ISpRecoGrammar_IsPronounceable(ISpRecoGrammar* This,LPCWSTR pszWord,SPWORDPRONOUNCEABLE *pWordPronounceable) {
9736     return This->lpVtbl->IsPronounceable(This,pszWord,pWordPronounceable);
9737 }
9738 static FORCEINLINE HRESULT ISpRecoGrammar_SetGrammarState(ISpRecoGrammar* This,SPGRAMMARSTATE eGrammarState) {
9739     return This->lpVtbl->SetGrammarState(This,eGrammarState);
9740 }
9741 static FORCEINLINE HRESULT ISpRecoGrammar_SaveCmd(ISpRecoGrammar* This,IStream *pStream,LPWSTR *ppszCoMemErrorText) {
9742     return This->lpVtbl->SaveCmd(This,pStream,ppszCoMemErrorText);
9743 }
9744 static FORCEINLINE HRESULT ISpRecoGrammar_GetGrammarState(ISpRecoGrammar* This,SPGRAMMARSTATE *peGrammarState) {
9745     return This->lpVtbl->GetGrammarState(This,peGrammarState);
9746 }
9747 #endif
9748 #endif
9749 
9750 #endif
9751 
9752 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_GetGrammarId_Proxy(
9753     ISpRecoGrammar* This,
9754     ULONGLONG *pullGrammarId);
9755 void __RPC_STUB ISpRecoGrammar_GetGrammarId_Stub(
9756     IRpcStubBuffer* This,
9757     IRpcChannelBuffer* pRpcChannelBuffer,
9758     PRPC_MESSAGE pRpcMessage,
9759     DWORD* pdwStubPhase);
9760 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_GetRecoContext_Proxy(
9761     ISpRecoGrammar* This,
9762     ISpRecoContext **ppRecoCtxt);
9763 void __RPC_STUB ISpRecoGrammar_GetRecoContext_Stub(
9764     IRpcStubBuffer* This,
9765     IRpcChannelBuffer* pRpcChannelBuffer,
9766     PRPC_MESSAGE pRpcMessage,
9767     DWORD* pdwStubPhase);
9768 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadCmdFromFile_Proxy(
9769     ISpRecoGrammar* This,
9770     LPCWSTR pszFileName,
9771     SPLOADOPTIONS Options);
9772 void __RPC_STUB ISpRecoGrammar_LoadCmdFromFile_Stub(
9773     IRpcStubBuffer* This,
9774     IRpcChannelBuffer* pRpcChannelBuffer,
9775     PRPC_MESSAGE pRpcMessage,
9776     DWORD* pdwStubPhase);
9777 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadCmdFromObject_Proxy(
9778     ISpRecoGrammar* This,
9779     REFCLSID rcid,
9780     LPCWSTR pszGrammarName,
9781     SPLOADOPTIONS Options);
9782 void __RPC_STUB ISpRecoGrammar_LoadCmdFromObject_Stub(
9783     IRpcStubBuffer* This,
9784     IRpcChannelBuffer* pRpcChannelBuffer,
9785     PRPC_MESSAGE pRpcMessage,
9786     DWORD* pdwStubPhase);
9787 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadCmdFromResource_Proxy(
9788     ISpRecoGrammar* This,
9789     HMODULE hModule,
9790     LPCWSTR pszResourceName,
9791     LPCWSTR pszResourceType,
9792     WORD wLanguage,
9793     SPLOADOPTIONS Options);
9794 void __RPC_STUB ISpRecoGrammar_LoadCmdFromResource_Stub(
9795     IRpcStubBuffer* This,
9796     IRpcChannelBuffer* pRpcChannelBuffer,
9797     PRPC_MESSAGE pRpcMessage,
9798     DWORD* pdwStubPhase);
9799 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadCmdFromMemory_Proxy(
9800     ISpRecoGrammar* This,
9801     const SPBINARYGRAMMAR *pGrammar,
9802     SPLOADOPTIONS Options);
9803 void __RPC_STUB ISpRecoGrammar_LoadCmdFromMemory_Stub(
9804     IRpcStubBuffer* This,
9805     IRpcChannelBuffer* pRpcChannelBuffer,
9806     PRPC_MESSAGE pRpcMessage,
9807     DWORD* pdwStubPhase);
9808 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadCmdFromProprietaryGrammar_Proxy(
9809     ISpRecoGrammar* This,
9810     REFGUID rguidParam,
9811     LPCWSTR pszStringParam,
9812     const void *pvDataPrarm,
9813     ULONG cbDataSize,
9814     SPLOADOPTIONS Options);
9815 void __RPC_STUB ISpRecoGrammar_LoadCmdFromProprietaryGrammar_Stub(
9816     IRpcStubBuffer* This,
9817     IRpcChannelBuffer* pRpcChannelBuffer,
9818     PRPC_MESSAGE pRpcMessage,
9819     DWORD* pdwStubPhase);
9820 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetRuleState_Proxy(
9821     ISpRecoGrammar* This,
9822     LPCWSTR pszName,
9823     void *pReserved,
9824     SPRULESTATE NewState);
9825 void __RPC_STUB ISpRecoGrammar_SetRuleState_Stub(
9826     IRpcStubBuffer* This,
9827     IRpcChannelBuffer* pRpcChannelBuffer,
9828     PRPC_MESSAGE pRpcMessage,
9829     DWORD* pdwStubPhase);
9830 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetRuleIdState_Proxy(
9831     ISpRecoGrammar* This,
9832     ULONG ulRuleId,
9833     SPRULESTATE NewState);
9834 void __RPC_STUB ISpRecoGrammar_SetRuleIdState_Stub(
9835     IRpcStubBuffer* This,
9836     IRpcChannelBuffer* pRpcChannelBuffer,
9837     PRPC_MESSAGE pRpcMessage,
9838     DWORD* pdwStubPhase);
9839 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadDictation_Proxy(
9840     ISpRecoGrammar* This,
9841     LPCWSTR pszTopicName,
9842     SPLOADOPTIONS Options);
9843 void __RPC_STUB ISpRecoGrammar_LoadDictation_Stub(
9844     IRpcStubBuffer* This,
9845     IRpcChannelBuffer* pRpcChannelBuffer,
9846     PRPC_MESSAGE pRpcMessage,
9847     DWORD* pdwStubPhase);
9848 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_UnloadDictation_Proxy(
9849     ISpRecoGrammar* This);
9850 void __RPC_STUB ISpRecoGrammar_UnloadDictation_Stub(
9851     IRpcStubBuffer* This,
9852     IRpcChannelBuffer* pRpcChannelBuffer,
9853     PRPC_MESSAGE pRpcMessage,
9854     DWORD* pdwStubPhase);
9855 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetDictationState_Proxy(
9856     ISpRecoGrammar* This,
9857     SPRULESTATE NewState);
9858 void __RPC_STUB ISpRecoGrammar_SetDictationState_Stub(
9859     IRpcStubBuffer* This,
9860     IRpcChannelBuffer* pRpcChannelBuffer,
9861     PRPC_MESSAGE pRpcMessage,
9862     DWORD* pdwStubPhase);
9863 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetWordSequenceData_Proxy(
9864     ISpRecoGrammar* This,
9865     const WCHAR *pText,
9866     ULONG cchText,
9867     const SPTEXTSELECTIONINFO *pInfo);
9868 void __RPC_STUB ISpRecoGrammar_SetWordSequenceData_Stub(
9869     IRpcStubBuffer* This,
9870     IRpcChannelBuffer* pRpcChannelBuffer,
9871     PRPC_MESSAGE pRpcMessage,
9872     DWORD* pdwStubPhase);
9873 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetTextSelection_Proxy(
9874     ISpRecoGrammar* This,
9875     const SPTEXTSELECTIONINFO *pInfo);
9876 void __RPC_STUB ISpRecoGrammar_SetTextSelection_Stub(
9877     IRpcStubBuffer* This,
9878     IRpcChannelBuffer* pRpcChannelBuffer,
9879     PRPC_MESSAGE pRpcMessage,
9880     DWORD* pdwStubPhase);
9881 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_IsPronounceable_Proxy(
9882     ISpRecoGrammar* This,
9883     LPCWSTR pszWord,
9884     SPWORDPRONOUNCEABLE *pWordPronounceable);
9885 void __RPC_STUB ISpRecoGrammar_IsPronounceable_Stub(
9886     IRpcStubBuffer* This,
9887     IRpcChannelBuffer* pRpcChannelBuffer,
9888     PRPC_MESSAGE pRpcMessage,
9889     DWORD* pdwStubPhase);
9890 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetGrammarState_Proxy(
9891     ISpRecoGrammar* This,
9892     SPGRAMMARSTATE eGrammarState);
9893 void __RPC_STUB ISpRecoGrammar_SetGrammarState_Stub(
9894     IRpcStubBuffer* This,
9895     IRpcChannelBuffer* pRpcChannelBuffer,
9896     PRPC_MESSAGE pRpcMessage,
9897     DWORD* pdwStubPhase);
9898 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SaveCmd_Proxy(
9899     ISpRecoGrammar* This,
9900     IStream *pStream,
9901     LPWSTR *ppszCoMemErrorText);
9902 void __RPC_STUB ISpRecoGrammar_SaveCmd_Stub(
9903     IRpcStubBuffer* This,
9904     IRpcChannelBuffer* pRpcChannelBuffer,
9905     PRPC_MESSAGE pRpcMessage,
9906     DWORD* pdwStubPhase);
9907 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_GetGrammarState_Proxy(
9908     ISpRecoGrammar* This,
9909     SPGRAMMARSTATE *peGrammarState);
9910 void __RPC_STUB ISpRecoGrammar_GetGrammarState_Stub(
9911     IRpcStubBuffer* This,
9912     IRpcChannelBuffer* pRpcChannelBuffer,
9913     PRPC_MESSAGE pRpcMessage,
9914     DWORD* pdwStubPhase);
9915 
9916 #endif  /* __ISpRecoGrammar_INTERFACE_DEFINED__ */
9917 
9918 typedef enum SPMATCHINGMODE {
9919     AllWords = 0,
9920     Subsequence = 1,
9921     OrderedSubset = 3,
9922     SubsequenceContentRequired = 5,
9923     OrderedSubsetContentRequired = 7
9924 } SPMATCHINGMODE;
9925 typedef enum PHONETICALPHABET {
9926     PA_Ipa = 0,
9927     PA_Ups = 1,
9928     PA_Sapi = 2
9929 } PHONETICALPHABET;
9930 /*****************************************************************************
9931  * ISpGrammarBuilder2 interface
9932  */
9933 #ifndef __ISpGrammarBuilder2_INTERFACE_DEFINED__
9934 #define __ISpGrammarBuilder2_INTERFACE_DEFINED__
9935 
9936 DEFINE_GUID(IID_ISpGrammarBuilder2, 0x8ab10026, 0x20cc, 0x4b20, 0x8c,0x22, 0xa4,0x9c,0x9b,0xa7,0x8f,0x60);
9937 #if defined(__cplusplus) && !defined(CINTERFACE)
9938 MIDL_INTERFACE("8ab10026-20cc-4b20-8c22-a49c9ba78f60")
9939 ISpGrammarBuilder2 : public IUnknown
9940 {
9941     virtual HRESULT STDMETHODCALLTYPE AddTextSubset(
9942         SPSTATEHANDLE hFromState,
9943         SPSTATEHANDLE hToState,
9944         LPCWSTR psz,
9945         SPMATCHINGMODE eMatchMode) = 0;
9946 
9947     virtual HRESULT STDMETHODCALLTYPE SetPhoneticAlphabet(
9948         PHONETICALPHABET phoneticALphabet) = 0;
9949 
9950 };
9951 #ifdef __CRT_UUID_DECL
9952 __CRT_UUID_DECL(ISpGrammarBuilder2, 0x8ab10026, 0x20cc, 0x4b20, 0x8c,0x22, 0xa4,0x9c,0x9b,0xa7,0x8f,0x60)
9953 #endif
9954 #else
9955 typedef struct ISpGrammarBuilder2Vtbl {
9956     BEGIN_INTERFACE
9957 
9958     /*** IUnknown methods ***/
9959     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9960         ISpGrammarBuilder2* This,
9961         REFIID riid,
9962         void **ppvObject);
9963 
9964     ULONG (STDMETHODCALLTYPE *AddRef)(
9965         ISpGrammarBuilder2* This);
9966 
9967     ULONG (STDMETHODCALLTYPE *Release)(
9968         ISpGrammarBuilder2* This);
9969 
9970     /*** ISpGrammarBuilder2 methods ***/
9971     HRESULT (STDMETHODCALLTYPE *AddTextSubset)(
9972         ISpGrammarBuilder2* This,
9973         SPSTATEHANDLE hFromState,
9974         SPSTATEHANDLE hToState,
9975         LPCWSTR psz,
9976         SPMATCHINGMODE eMatchMode);
9977 
9978     HRESULT (STDMETHODCALLTYPE *SetPhoneticAlphabet)(
9979         ISpGrammarBuilder2* This,
9980         PHONETICALPHABET phoneticALphabet);
9981 
9982     END_INTERFACE
9983 } ISpGrammarBuilder2Vtbl;
9984 interface ISpGrammarBuilder2 {
9985     CONST_VTBL ISpGrammarBuilder2Vtbl* lpVtbl;
9986 };
9987 
9988 #ifdef COBJMACROS
9989 #ifndef WIDL_C_INLINE_WRAPPERS
9990 /*** IUnknown methods ***/
9991 #define ISpGrammarBuilder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9992 #define ISpGrammarBuilder2_AddRef(This) (This)->lpVtbl->AddRef(This)
9993 #define ISpGrammarBuilder2_Release(This) (This)->lpVtbl->Release(This)
9994 /*** ISpGrammarBuilder2 methods ***/
9995 #define ISpGrammarBuilder2_AddTextSubset(This,hFromState,hToState,psz,eMatchMode) (This)->lpVtbl->AddTextSubset(This,hFromState,hToState,psz,eMatchMode)
9996 #define ISpGrammarBuilder2_SetPhoneticAlphabet(This,phoneticALphabet) (This)->lpVtbl->SetPhoneticAlphabet(This,phoneticALphabet)
9997 #else
9998 /*** IUnknown methods ***/
9999 static FORCEINLINE HRESULT ISpGrammarBuilder2_QueryInterface(ISpGrammarBuilder2* This,REFIID riid,void **ppvObject) {
10000     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10001 }
10002 static FORCEINLINE ULONG ISpGrammarBuilder2_AddRef(ISpGrammarBuilder2* This) {
10003     return This->lpVtbl->AddRef(This);
10004 }
10005 static FORCEINLINE ULONG ISpGrammarBuilder2_Release(ISpGrammarBuilder2* This) {
10006     return This->lpVtbl->Release(This);
10007 }
10008 /*** ISpGrammarBuilder2 methods ***/
10009 static FORCEINLINE HRESULT ISpGrammarBuilder2_AddTextSubset(ISpGrammarBuilder2* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,SPMATCHINGMODE eMatchMode) {
10010     return This->lpVtbl->AddTextSubset(This,hFromState,hToState,psz,eMatchMode);
10011 }
10012 static FORCEINLINE HRESULT ISpGrammarBuilder2_SetPhoneticAlphabet(ISpGrammarBuilder2* This,PHONETICALPHABET phoneticALphabet) {
10013     return This->lpVtbl->SetPhoneticAlphabet(This,phoneticALphabet);
10014 }
10015 #endif
10016 #endif
10017 
10018 #endif
10019 
10020 HRESULT STDMETHODCALLTYPE ISpGrammarBuilder2_AddTextSubset_Proxy(
10021     ISpGrammarBuilder2* This,
10022     SPSTATEHANDLE hFromState,
10023     SPSTATEHANDLE hToState,
10024     LPCWSTR psz,
10025     SPMATCHINGMODE eMatchMode);
10026 void __RPC_STUB ISpGrammarBuilder2_AddTextSubset_Stub(
10027     IRpcStubBuffer* This,
10028     IRpcChannelBuffer* pRpcChannelBuffer,
10029     PRPC_MESSAGE pRpcMessage,
10030     DWORD* pdwStubPhase);
10031 HRESULT STDMETHODCALLTYPE ISpGrammarBuilder2_SetPhoneticAlphabet_Proxy(
10032     ISpGrammarBuilder2* This,
10033     PHONETICALPHABET phoneticALphabet);
10034 void __RPC_STUB ISpGrammarBuilder2_SetPhoneticAlphabet_Stub(
10035     IRpcStubBuffer* This,
10036     IRpcChannelBuffer* pRpcChannelBuffer,
10037     PRPC_MESSAGE pRpcMessage,
10038     DWORD* pdwStubPhase);
10039 
10040 #endif  /* __ISpGrammarBuilder2_INTERFACE_DEFINED__ */
10041 
10042 #define SPRP_NORMAL 0
10043 /*****************************************************************************
10044  * ISpRecoGrammar2 interface
10045  */
10046 #ifndef __ISpRecoGrammar2_INTERFACE_DEFINED__
10047 #define __ISpRecoGrammar2_INTERFACE_DEFINED__
10048 
10049 DEFINE_GUID(IID_ISpRecoGrammar2, 0x4b37bc9e, 0x9ed6, 0x44a3, 0x93,0xd3, 0x18,0xf0,0x22,0xb7,0x9e,0xc3);
10050 #if defined(__cplusplus) && !defined(CINTERFACE)
10051 MIDL_INTERFACE("4b37bc9e-9ed6-44a3-93d3-18f022b79ec3")
10052 ISpRecoGrammar2 : public IUnknown
10053 {
10054     virtual HRESULT STDMETHODCALLTYPE GetRules(
10055         SPRULE **ppCoMemRules,
10056         UINT *puNumRules) = 0;
10057 
10058     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromFile2(
10059         LPCWSTR pszFileName,
10060         SPLOADOPTIONS Options,
10061         LPCWSTR pszSharingUri,
10062         LPCWSTR pszBaseUri) = 0;
10063 
10064     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromMemory2(
10065         const SPBINARYGRAMMAR *pGrammar,
10066         SPLOADOPTIONS Options,
10067         LPCWSTR pszSharingUri,
10068         LPCWSTR pszBaseUri) = 0;
10069 
10070     virtual HRESULT STDMETHODCALLTYPE SetRulePriority(
10071         LPCWSTR pszRuleName,
10072         ULONG ulRuleId,
10073         int nRulePriority) = 0;
10074 
10075     virtual HRESULT STDMETHODCALLTYPE SetRuleWeight(
10076         LPCWSTR pszRuleName,
10077         ULONG ulRuleId,
10078         float flWeight) = 0;
10079 
10080     virtual HRESULT STDMETHODCALLTYPE SetDictationWeight(
10081         float flWeight) = 0;
10082 
10083     virtual HRESULT STDMETHODCALLTYPE SetGrammarLoader(
10084         ISpeechResourceLoader *pLoader) = 0;
10085 
10086     virtual HRESULT STDMETHODCALLTYPE SetSMLSecurityManager(
10087         IInternetSecurityManager *pSMLSecurityManager) = 0;
10088 
10089 };
10090 #ifdef __CRT_UUID_DECL
10091 __CRT_UUID_DECL(ISpRecoGrammar2, 0x4b37bc9e, 0x9ed6, 0x44a3, 0x93,0xd3, 0x18,0xf0,0x22,0xb7,0x9e,0xc3)
10092 #endif
10093 #else
10094 typedef struct ISpRecoGrammar2Vtbl {
10095     BEGIN_INTERFACE
10096 
10097     /*** IUnknown methods ***/
10098     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10099         ISpRecoGrammar2* This,
10100         REFIID riid,
10101         void **ppvObject);
10102 
10103     ULONG (STDMETHODCALLTYPE *AddRef)(
10104         ISpRecoGrammar2* This);
10105 
10106     ULONG (STDMETHODCALLTYPE *Release)(
10107         ISpRecoGrammar2* This);
10108 
10109     /*** ISpRecoGrammar2 methods ***/
10110     HRESULT (STDMETHODCALLTYPE *GetRules)(
10111         ISpRecoGrammar2* This,
10112         SPRULE **ppCoMemRules,
10113         UINT *puNumRules);
10114 
10115     HRESULT (STDMETHODCALLTYPE *LoadCmdFromFile2)(
10116         ISpRecoGrammar2* This,
10117         LPCWSTR pszFileName,
10118         SPLOADOPTIONS Options,
10119         LPCWSTR pszSharingUri,
10120         LPCWSTR pszBaseUri);
10121 
10122     HRESULT (STDMETHODCALLTYPE *LoadCmdFromMemory2)(
10123         ISpRecoGrammar2* This,
10124         const SPBINARYGRAMMAR *pGrammar,
10125         SPLOADOPTIONS Options,
10126         LPCWSTR pszSharingUri,
10127         LPCWSTR pszBaseUri);
10128 
10129     HRESULT (STDMETHODCALLTYPE *SetRulePriority)(
10130         ISpRecoGrammar2* This,
10131         LPCWSTR pszRuleName,
10132         ULONG ulRuleId,
10133         int nRulePriority);
10134 
10135     HRESULT (STDMETHODCALLTYPE *SetRuleWeight)(
10136         ISpRecoGrammar2* This,
10137         LPCWSTR pszRuleName,
10138         ULONG ulRuleId,
10139         float flWeight);
10140 
10141     HRESULT (STDMETHODCALLTYPE *SetDictationWeight)(
10142         ISpRecoGrammar2* This,
10143         float flWeight);
10144 
10145     HRESULT (STDMETHODCALLTYPE *SetGrammarLoader)(
10146         ISpRecoGrammar2* This,
10147         ISpeechResourceLoader *pLoader);
10148 
10149     HRESULT (STDMETHODCALLTYPE *SetSMLSecurityManager)(
10150         ISpRecoGrammar2* This,
10151         IInternetSecurityManager *pSMLSecurityManager);
10152 
10153     END_INTERFACE
10154 } ISpRecoGrammar2Vtbl;
10155 interface ISpRecoGrammar2 {
10156     CONST_VTBL ISpRecoGrammar2Vtbl* lpVtbl;
10157 };
10158 
10159 #ifdef COBJMACROS
10160 #ifndef WIDL_C_INLINE_WRAPPERS
10161 /*** IUnknown methods ***/
10162 #define ISpRecoGrammar2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10163 #define ISpRecoGrammar2_AddRef(This) (This)->lpVtbl->AddRef(This)
10164 #define ISpRecoGrammar2_Release(This) (This)->lpVtbl->Release(This)
10165 /*** ISpRecoGrammar2 methods ***/
10166 #define ISpRecoGrammar2_GetRules(This,ppCoMemRules,puNumRules) (This)->lpVtbl->GetRules(This,ppCoMemRules,puNumRules)
10167 #define ISpRecoGrammar2_LoadCmdFromFile2(This,pszFileName,Options,pszSharingUri,pszBaseUri) (This)->lpVtbl->LoadCmdFromFile2(This,pszFileName,Options,pszSharingUri,pszBaseUri)
10168 #define ISpRecoGrammar2_LoadCmdFromMemory2(This,pGrammar,Options,pszSharingUri,pszBaseUri) (This)->lpVtbl->LoadCmdFromMemory2(This,pGrammar,Options,pszSharingUri,pszBaseUri)
10169 #define ISpRecoGrammar2_SetRulePriority(This,pszRuleName,ulRuleId,nRulePriority) (This)->lpVtbl->SetRulePriority(This,pszRuleName,ulRuleId,nRulePriority)
10170 #define ISpRecoGrammar2_SetRuleWeight(This,pszRuleName,ulRuleId,flWeight) (This)->lpVtbl->SetRuleWeight(This,pszRuleName,ulRuleId,flWeight)
10171 #define ISpRecoGrammar2_SetDictationWeight(This,flWeight) (This)->lpVtbl->SetDictationWeight(This,flWeight)
10172 #define ISpRecoGrammar2_SetGrammarLoader(This,pLoader) (This)->lpVtbl->SetGrammarLoader(This,pLoader)
10173 #define ISpRecoGrammar2_SetSMLSecurityManager(This,pSMLSecurityManager) (This)->lpVtbl->SetSMLSecurityManager(This,pSMLSecurityManager)
10174 #else
10175 /*** IUnknown methods ***/
10176 static FORCEINLINE HRESULT ISpRecoGrammar2_QueryInterface(ISpRecoGrammar2* This,REFIID riid,void **ppvObject) {
10177     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10178 }
10179 static FORCEINLINE ULONG ISpRecoGrammar2_AddRef(ISpRecoGrammar2* This) {
10180     return This->lpVtbl->AddRef(This);
10181 }
10182 static FORCEINLINE ULONG ISpRecoGrammar2_Release(ISpRecoGrammar2* This) {
10183     return This->lpVtbl->Release(This);
10184 }
10185 /*** ISpRecoGrammar2 methods ***/
10186 static FORCEINLINE HRESULT ISpRecoGrammar2_GetRules(ISpRecoGrammar2* This,SPRULE **ppCoMemRules,UINT *puNumRules) {
10187     return This->lpVtbl->GetRules(This,ppCoMemRules,puNumRules);
10188 }
10189 static FORCEINLINE HRESULT ISpRecoGrammar2_LoadCmdFromFile2(ISpRecoGrammar2* This,LPCWSTR pszFileName,SPLOADOPTIONS Options,LPCWSTR pszSharingUri,LPCWSTR pszBaseUri) {
10190     return This->lpVtbl->LoadCmdFromFile2(This,pszFileName,Options,pszSharingUri,pszBaseUri);
10191 }
10192 static FORCEINLINE HRESULT ISpRecoGrammar2_LoadCmdFromMemory2(ISpRecoGrammar2* This,const SPBINARYGRAMMAR *pGrammar,SPLOADOPTIONS Options,LPCWSTR pszSharingUri,LPCWSTR pszBaseUri) {
10193     return This->lpVtbl->LoadCmdFromMemory2(This,pGrammar,Options,pszSharingUri,pszBaseUri);
10194 }
10195 static FORCEINLINE HRESULT ISpRecoGrammar2_SetRulePriority(ISpRecoGrammar2* This,LPCWSTR pszRuleName,ULONG ulRuleId,int nRulePriority) {
10196     return This->lpVtbl->SetRulePriority(This,pszRuleName,ulRuleId,nRulePriority);
10197 }
10198 static FORCEINLINE HRESULT ISpRecoGrammar2_SetRuleWeight(ISpRecoGrammar2* This,LPCWSTR pszRuleName,ULONG ulRuleId,float flWeight) {
10199     return This->lpVtbl->SetRuleWeight(This,pszRuleName,ulRuleId,flWeight);
10200 }
10201 static FORCEINLINE HRESULT ISpRecoGrammar2_SetDictationWeight(ISpRecoGrammar2* This,float flWeight) {
10202     return This->lpVtbl->SetDictationWeight(This,flWeight);
10203 }
10204 static FORCEINLINE HRESULT ISpRecoGrammar2_SetGrammarLoader(ISpRecoGrammar2* This,ISpeechResourceLoader *pLoader) {
10205     return This->lpVtbl->SetGrammarLoader(This,pLoader);
10206 }
10207 static FORCEINLINE HRESULT ISpRecoGrammar2_SetSMLSecurityManager(ISpRecoGrammar2* This,IInternetSecurityManager *pSMLSecurityManager) {
10208     return This->lpVtbl->SetSMLSecurityManager(This,pSMLSecurityManager);
10209 }
10210 #endif
10211 #endif
10212 
10213 #endif
10214 
10215 HRESULT STDMETHODCALLTYPE ISpRecoGrammar2_GetRules_Proxy(
10216     ISpRecoGrammar2* This,
10217     SPRULE **ppCoMemRules,
10218     UINT *puNumRules);
10219 void __RPC_STUB ISpRecoGrammar2_GetRules_Stub(
10220     IRpcStubBuffer* This,
10221     IRpcChannelBuffer* pRpcChannelBuffer,
10222     PRPC_MESSAGE pRpcMessage,
10223     DWORD* pdwStubPhase);
10224 HRESULT STDMETHODCALLTYPE ISpRecoGrammar2_LoadCmdFromFile2_Proxy(
10225     ISpRecoGrammar2* This,
10226     LPCWSTR pszFileName,
10227     SPLOADOPTIONS Options,
10228     LPCWSTR pszSharingUri,
10229     LPCWSTR pszBaseUri);
10230 void __RPC_STUB ISpRecoGrammar2_LoadCmdFromFile2_Stub(
10231     IRpcStubBuffer* This,
10232     IRpcChannelBuffer* pRpcChannelBuffer,
10233     PRPC_MESSAGE pRpcMessage,
10234     DWORD* pdwStubPhase);
10235 HRESULT STDMETHODCALLTYPE ISpRecoGrammar2_LoadCmdFromMemory2_Proxy(
10236     ISpRecoGrammar2* This,
10237     const SPBINARYGRAMMAR *pGrammar,
10238     SPLOADOPTIONS Options,
10239     LPCWSTR pszSharingUri,
10240     LPCWSTR pszBaseUri);
10241 void __RPC_STUB ISpRecoGrammar2_LoadCmdFromMemory2_Stub(
10242     IRpcStubBuffer* This,
10243     IRpcChannelBuffer* pRpcChannelBuffer,
10244     PRPC_MESSAGE pRpcMessage,
10245     DWORD* pdwStubPhase);
10246 HRESULT STDMETHODCALLTYPE ISpRecoGrammar2_SetRulePriority_Proxy(
10247     ISpRecoGrammar2* This,
10248     LPCWSTR pszRuleName,
10249     ULONG ulRuleId,
10250     int nRulePriority);
10251 void __RPC_STUB ISpRecoGrammar2_SetRulePriority_Stub(
10252     IRpcStubBuffer* This,
10253     IRpcChannelBuffer* pRpcChannelBuffer,
10254     PRPC_MESSAGE pRpcMessage,
10255     DWORD* pdwStubPhase);
10256 HRESULT STDMETHODCALLTYPE ISpRecoGrammar2_SetRuleWeight_Proxy(
10257     ISpRecoGrammar2* This,
10258     LPCWSTR pszRuleName,
10259     ULONG ulRuleId,
10260     float flWeight);
10261 void __RPC_STUB ISpRecoGrammar2_SetRuleWeight_Stub(
10262     IRpcStubBuffer* This,
10263     IRpcChannelBuffer* pRpcChannelBuffer,
10264     PRPC_MESSAGE pRpcMessage,
10265     DWORD* pdwStubPhase);
10266 HRESULT STDMETHODCALLTYPE ISpRecoGrammar2_SetDictationWeight_Proxy(
10267     ISpRecoGrammar2* This,
10268     float flWeight);
10269 void __RPC_STUB ISpRecoGrammar2_SetDictationWeight_Stub(
10270     IRpcStubBuffer* This,
10271     IRpcChannelBuffer* pRpcChannelBuffer,
10272     PRPC_MESSAGE pRpcMessage,
10273     DWORD* pdwStubPhase);
10274 HRESULT STDMETHODCALLTYPE ISpRecoGrammar2_SetGrammarLoader_Proxy(
10275     ISpRecoGrammar2* This,
10276     ISpeechResourceLoader *pLoader);
10277 void __RPC_STUB ISpRecoGrammar2_SetGrammarLoader_Stub(
10278     IRpcStubBuffer* This,
10279     IRpcChannelBuffer* pRpcChannelBuffer,
10280     PRPC_MESSAGE pRpcMessage,
10281     DWORD* pdwStubPhase);
10282 HRESULT STDMETHODCALLTYPE ISpRecoGrammar2_SetSMLSecurityManager_Proxy(
10283     ISpRecoGrammar2* This,
10284     IInternetSecurityManager *pSMLSecurityManager);
10285 void __RPC_STUB ISpRecoGrammar2_SetSMLSecurityManager_Stub(
10286     IRpcStubBuffer* This,
10287     IRpcChannelBuffer* pRpcChannelBuffer,
10288     PRPC_MESSAGE pRpcMessage,
10289     DWORD* pdwStubPhase);
10290 
10291 #endif  /* __ISpRecoGrammar2_INTERFACE_DEFINED__ */
10292 
10293 /*****************************************************************************
10294  * ISpeechResourceLoader interface
10295  */
10296 #ifndef __ISpeechResourceLoader_INTERFACE_DEFINED__
10297 #define __ISpeechResourceLoader_INTERFACE_DEFINED__
10298 
10299 DEFINE_GUID(IID_ISpeechResourceLoader, 0xb9ac5783, 0xfcd0, 0x4b21, 0xb1,0x19, 0xb4,0xf8,0xda,0x8f,0xd2,0xc3);
10300 #if defined(__cplusplus) && !defined(CINTERFACE)
10301 MIDL_INTERFACE("b9ac5783-fcd0-4b21-b119-b4f8da8fd2c3")
10302 ISpeechResourceLoader : public IDispatch
10303 {
10304     virtual HRESULT STDMETHODCALLTYPE LoadResource(
10305         BSTR bstrResourceUri,
10306         VARIANT_BOOL fAlwaysReload,
10307         IUnknown **pStream,
10308         BSTR *pbstrMIMEType,
10309         VARIANT_BOOL *pfModified,
10310         BSTR *pbstrRedirectUrl) = 0;
10311 
10312     virtual HRESULT STDMETHODCALLTYPE GetLocalCopy(
10313         BSTR bstrResourceUri,
10314         BSTR *pbstrLocalPath,
10315         BSTR *pbstrMIMEType,
10316         BSTR *pbstrRedirectUrl) = 0;
10317 
10318     virtual HRESULT STDMETHODCALLTYPE ReleaseLocalCopy(
10319         BSTR pbstrLocalPath) = 0;
10320 
10321 };
10322 #ifdef __CRT_UUID_DECL
10323 __CRT_UUID_DECL(ISpeechResourceLoader, 0xb9ac5783, 0xfcd0, 0x4b21, 0xb1,0x19, 0xb4,0xf8,0xda,0x8f,0xd2,0xc3)
10324 #endif
10325 #else
10326 typedef struct ISpeechResourceLoaderVtbl {
10327     BEGIN_INTERFACE
10328 
10329     /*** IUnknown methods ***/
10330     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10331         ISpeechResourceLoader* This,
10332         REFIID riid,
10333         void **ppvObject);
10334 
10335     ULONG (STDMETHODCALLTYPE *AddRef)(
10336         ISpeechResourceLoader* This);
10337 
10338     ULONG (STDMETHODCALLTYPE *Release)(
10339         ISpeechResourceLoader* This);
10340 
10341     /*** IDispatch methods ***/
10342     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
10343         ISpeechResourceLoader* This,
10344         UINT *pctinfo);
10345 
10346     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
10347         ISpeechResourceLoader* This,
10348         UINT iTInfo,
10349         LCID lcid,
10350         ITypeInfo **ppTInfo);
10351 
10352     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
10353         ISpeechResourceLoader* This,
10354         REFIID riid,
10355         LPOLESTR *rgszNames,
10356         UINT cNames,
10357         LCID lcid,
10358         DISPID *rgDispId);
10359 
10360     HRESULT (STDMETHODCALLTYPE *Invoke)(
10361         ISpeechResourceLoader* This,
10362         DISPID dispIdMember,
10363         REFIID riid,
10364         LCID lcid,
10365         WORD wFlags,
10366         DISPPARAMS *pDispParams,
10367         VARIANT *pVarResult,
10368         EXCEPINFO *pExcepInfo,
10369         UINT *puArgErr);
10370 
10371     /*** ISpeechResourceLoader methods ***/
10372     HRESULT (STDMETHODCALLTYPE *LoadResource)(
10373         ISpeechResourceLoader* This,
10374         BSTR bstrResourceUri,
10375         VARIANT_BOOL fAlwaysReload,
10376         IUnknown **pStream,
10377         BSTR *pbstrMIMEType,
10378         VARIANT_BOOL *pfModified,
10379         BSTR *pbstrRedirectUrl);
10380 
10381     HRESULT (STDMETHODCALLTYPE *GetLocalCopy)(
10382         ISpeechResourceLoader* This,
10383         BSTR bstrResourceUri,
10384         BSTR *pbstrLocalPath,
10385         BSTR *pbstrMIMEType,
10386         BSTR *pbstrRedirectUrl);
10387 
10388     HRESULT (STDMETHODCALLTYPE *ReleaseLocalCopy)(
10389         ISpeechResourceLoader* This,
10390         BSTR pbstrLocalPath);
10391 
10392     END_INTERFACE
10393 } ISpeechResourceLoaderVtbl;
10394 interface ISpeechResourceLoader {
10395     CONST_VTBL ISpeechResourceLoaderVtbl* lpVtbl;
10396 };
10397 
10398 #ifdef COBJMACROS
10399 #ifndef WIDL_C_INLINE_WRAPPERS
10400 /*** IUnknown methods ***/
10401 #define ISpeechResourceLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10402 #define ISpeechResourceLoader_AddRef(This) (This)->lpVtbl->AddRef(This)
10403 #define ISpeechResourceLoader_Release(This) (This)->lpVtbl->Release(This)
10404 /*** IDispatch methods ***/
10405 #define ISpeechResourceLoader_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
10406 #define ISpeechResourceLoader_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
10407 #define ISpeechResourceLoader_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
10408 #define ISpeechResourceLoader_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
10409 /*** ISpeechResourceLoader methods ***/
10410 #define ISpeechResourceLoader_LoadResource(This,bstrResourceUri,fAlwaysReload,pStream,pbstrMIMEType,pfModified,pbstrRedirectUrl) (This)->lpVtbl->LoadResource(This,bstrResourceUri,fAlwaysReload,pStream,pbstrMIMEType,pfModified,pbstrRedirectUrl)
10411 #define ISpeechResourceLoader_GetLocalCopy(This,bstrResourceUri,pbstrLocalPath,pbstrMIMEType,pbstrRedirectUrl) (This)->lpVtbl->GetLocalCopy(This,bstrResourceUri,pbstrLocalPath,pbstrMIMEType,pbstrRedirectUrl)
10412 #define ISpeechResourceLoader_ReleaseLocalCopy(This,pbstrLocalPath) (This)->lpVtbl->ReleaseLocalCopy(This,pbstrLocalPath)
10413 #else
10414 /*** IUnknown methods ***/
10415 static FORCEINLINE HRESULT ISpeechResourceLoader_QueryInterface(ISpeechResourceLoader* This,REFIID riid,void **ppvObject) {
10416     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10417 }
10418 static FORCEINLINE ULONG ISpeechResourceLoader_AddRef(ISpeechResourceLoader* This) {
10419     return This->lpVtbl->AddRef(This);
10420 }
10421 static FORCEINLINE ULONG ISpeechResourceLoader_Release(ISpeechResourceLoader* This) {
10422     return This->lpVtbl->Release(This);
10423 }
10424 /*** IDispatch methods ***/
10425 static FORCEINLINE HRESULT ISpeechResourceLoader_GetTypeInfoCount(ISpeechResourceLoader* This,UINT *pctinfo) {
10426     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
10427 }
10428 static FORCEINLINE HRESULT ISpeechResourceLoader_GetTypeInfo(ISpeechResourceLoader* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
10429     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
10430 }
10431 static FORCEINLINE HRESULT ISpeechResourceLoader_GetIDsOfNames(ISpeechResourceLoader* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
10432     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
10433 }
10434 static FORCEINLINE HRESULT ISpeechResourceLoader_Invoke(ISpeechResourceLoader* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
10435     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
10436 }
10437 /*** ISpeechResourceLoader methods ***/
10438 static FORCEINLINE HRESULT ISpeechResourceLoader_LoadResource(ISpeechResourceLoader* This,BSTR bstrResourceUri,VARIANT_BOOL fAlwaysReload,IUnknown **pStream,BSTR *pbstrMIMEType,VARIANT_BOOL *pfModified,BSTR *pbstrRedirectUrl) {
10439     return This->lpVtbl->LoadResource(This,bstrResourceUri,fAlwaysReload,pStream,pbstrMIMEType,pfModified,pbstrRedirectUrl);
10440 }
10441 static FORCEINLINE HRESULT ISpeechResourceLoader_GetLocalCopy(ISpeechResourceLoader* This,BSTR bstrResourceUri,BSTR *pbstrLocalPath,BSTR *pbstrMIMEType,BSTR *pbstrRedirectUrl) {
10442     return This->lpVtbl->GetLocalCopy(This,bstrResourceUri,pbstrLocalPath,pbstrMIMEType,pbstrRedirectUrl);
10443 }
10444 static FORCEINLINE HRESULT ISpeechResourceLoader_ReleaseLocalCopy(ISpeechResourceLoader* This,BSTR pbstrLocalPath) {
10445     return This->lpVtbl->ReleaseLocalCopy(This,pbstrLocalPath);
10446 }
10447 #endif
10448 #endif
10449 
10450 #endif
10451 
10452 HRESULT STDMETHODCALLTYPE ISpeechResourceLoader_LoadResource_Proxy(
10453     ISpeechResourceLoader* This,
10454     BSTR bstrResourceUri,
10455     VARIANT_BOOL fAlwaysReload,
10456     IUnknown **pStream,
10457     BSTR *pbstrMIMEType,
10458     VARIANT_BOOL *pfModified,
10459     BSTR *pbstrRedirectUrl);
10460 void __RPC_STUB ISpeechResourceLoader_LoadResource_Stub(
10461     IRpcStubBuffer* This,
10462     IRpcChannelBuffer* pRpcChannelBuffer,
10463     PRPC_MESSAGE pRpcMessage,
10464     DWORD* pdwStubPhase);
10465 HRESULT STDMETHODCALLTYPE ISpeechResourceLoader_GetLocalCopy_Proxy(
10466     ISpeechResourceLoader* This,
10467     BSTR bstrResourceUri,
10468     BSTR *pbstrLocalPath,
10469     BSTR *pbstrMIMEType,
10470     BSTR *pbstrRedirectUrl);
10471 void __RPC_STUB ISpeechResourceLoader_GetLocalCopy_Stub(
10472     IRpcStubBuffer* This,
10473     IRpcChannelBuffer* pRpcChannelBuffer,
10474     PRPC_MESSAGE pRpcMessage,
10475     DWORD* pdwStubPhase);
10476 HRESULT STDMETHODCALLTYPE ISpeechResourceLoader_ReleaseLocalCopy_Proxy(
10477     ISpeechResourceLoader* This,
10478     BSTR pbstrLocalPath);
10479 void __RPC_STUB ISpeechResourceLoader_ReleaseLocalCopy_Stub(
10480     IRpcStubBuffer* This,
10481     IRpcChannelBuffer* pRpcChannelBuffer,
10482     PRPC_MESSAGE pRpcMessage,
10483     DWORD* pdwStubPhase);
10484 
10485 #endif  /* __ISpeechResourceLoader_INTERFACE_DEFINED__ */
10486 
10487 typedef struct SPRECOCONTEXTSTATUS {
10488     SPINTERFERENCE eInterference;
10489     WCHAR szRequestTypeOfUI[255];
10490     DWORD dwReserved1;
10491     DWORD dwReserved2;
10492 } SPRECOCONTEXTSTATUS;
10493 typedef enum SPBOOKMARKOPTIONS {
10494     SPBO_NONE = 0,
10495     SPBO_PAUSE = 0x1,
10496     SPBO_AHEAD = 0x2,
10497     SPBO_TIME_UNITS = 0x4
10498 } SPBOOKMARKOPTIONS;
10499 typedef enum SPAUDIOOPTIONS {
10500     SPAO_NONE = 0,
10501     SPAO_RETAIN_AUDIO = 0x1
10502 } SPAUDIOOPTIONS;
10503 /*****************************************************************************
10504  * ISpRecoContext interface
10505  */
10506 #ifndef __ISpRecoContext_INTERFACE_DEFINED__
10507 #define __ISpRecoContext_INTERFACE_DEFINED__
10508 
10509 DEFINE_GUID(IID_ISpRecoContext, 0xf740a62f, 0x7c15, 0x489e, 0x82,0x34, 0x94,0x0a,0x33,0xd9,0x27,0x2d);
10510 #if defined(__cplusplus) && !defined(CINTERFACE)
10511 MIDL_INTERFACE("f740a62f-7c15-489e-8234-940a33d9272d")
10512 ISpRecoContext : public ISpEventSource
10513 {
10514     virtual HRESULT STDMETHODCALLTYPE GetRecognizer(
10515         ISpRecognizer **ppRecognizer) = 0;
10516 
10517     virtual HRESULT STDMETHODCALLTYPE CreateGrammar(
10518         ULONGLONG ullGrammarId,
10519         ISpRecoGrammar **ppGrammar) = 0;
10520 
10521     virtual HRESULT STDMETHODCALLTYPE GetStatus(
10522         SPRECOCONTEXTSTATUS *pStatus) = 0;
10523 
10524     virtual HRESULT STDMETHODCALLTYPE GetMaxAlternates(
10525         ULONG *pcAlternates) = 0;
10526 
10527     virtual HRESULT STDMETHODCALLTYPE SetMaxAlternates(
10528         ULONG cAlternates) = 0;
10529 
10530     virtual HRESULT STDMETHODCALLTYPE SetAudioOptions(
10531         SPAUDIOOPTIONS Options,
10532         const GUID *pAudioFormatId,
10533         const WAVEFORMATEX *pWaveFormatEx) = 0;
10534 
10535     virtual HRESULT STDMETHODCALLTYPE GetAudioOptions(
10536         SPAUDIOOPTIONS *pOptions,
10537         GUID *pAudioFormatId,
10538         WAVEFORMATEX **ppCoMemWFEX) = 0;
10539 
10540     virtual HRESULT STDMETHODCALLTYPE DeserializeResult(
10541         const SPSERIALIZEDRESULT *pSerializedResult,
10542         ISpRecoResult **ppResult) = 0;
10543 
10544     virtual HRESULT STDMETHODCALLTYPE Bookmark(
10545         SPBOOKMARKOPTIONS Options,
10546         ULONGLONG ullStreamPosition,
10547         LPARAM lparamEvent) = 0;
10548 
10549     virtual HRESULT STDMETHODCALLTYPE SetAdaptationData(
10550         LPCWSTR pAdaptationData,
10551         const ULONG cch) = 0;
10552 
10553     virtual HRESULT STDMETHODCALLTYPE Pause(
10554         DWORD dwReserved) = 0;
10555 
10556     virtual HRESULT STDMETHODCALLTYPE Resume(
10557         DWORD dwReserved) = 0;
10558 
10559     virtual HRESULT STDMETHODCALLTYPE SetVoice(
10560         ISpVoice *pVoice,
10561         WINBOOL fAllowFormatChanges) = 0;
10562 
10563     virtual HRESULT STDMETHODCALLTYPE GetVoice(
10564         ISpVoice **ppVoice) = 0;
10565 
10566     virtual HRESULT STDMETHODCALLTYPE SetVoicePurgeEvent(
10567         ULONGLONG ullEventInterest) = 0;
10568 
10569     virtual HRESULT STDMETHODCALLTYPE GetVoicePurgeEvent(
10570         ULONGLONG *pullEventInterest) = 0;
10571 
10572     virtual HRESULT STDMETHODCALLTYPE SetContextState(
10573         SPCONTEXTSTATE eContextState) = 0;
10574 
10575     virtual HRESULT STDMETHODCALLTYPE GetContextState(
10576         SPCONTEXTSTATE *peContextState) = 0;
10577 
10578 };
10579 #ifdef __CRT_UUID_DECL
10580 __CRT_UUID_DECL(ISpRecoContext, 0xf740a62f, 0x7c15, 0x489e, 0x82,0x34, 0x94,0x0a,0x33,0xd9,0x27,0x2d)
10581 #endif
10582 #else
10583 typedef struct ISpRecoContextVtbl {
10584     BEGIN_INTERFACE
10585 
10586     /*** IUnknown methods ***/
10587     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10588         ISpRecoContext* This,
10589         REFIID riid,
10590         void **ppvObject);
10591 
10592     ULONG (STDMETHODCALLTYPE *AddRef)(
10593         ISpRecoContext* This);
10594 
10595     ULONG (STDMETHODCALLTYPE *Release)(
10596         ISpRecoContext* This);
10597 
10598     /*** ISpNotifySource methods ***/
10599     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
10600         ISpRecoContext* This,
10601         ISpNotifySink *pNotifySink);
10602 
10603     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
10604         ISpRecoContext* This,
10605         HWND hWnd,
10606         UINT Msg,
10607         WPARAM wParam,
10608         LPARAM lParam);
10609 
10610     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
10611         ISpRecoContext* This,
10612         SPNOTIFYCALLBACK *pfnCallback,
10613         WPARAM wParam,
10614         LPARAM lParam);
10615 
10616     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
10617         ISpRecoContext* This,
10618         ISpNotifyCallback *pSpCallback,
10619         WPARAM wParam,
10620         LPARAM lParam);
10621 
10622     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
10623         ISpRecoContext* This);
10624 
10625     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
10626         ISpRecoContext* This,
10627         DWORD dwMilliseconds);
10628 
10629     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
10630         ISpRecoContext* This);
10631 
10632     /*** ISpEventSource methods ***/
10633     HRESULT (STDMETHODCALLTYPE *SetInterest)(
10634         ISpRecoContext* This,
10635         ULONGLONG ullEventInterest,
10636         ULONGLONG ullQueuedInterest);
10637 
10638     HRESULT (STDMETHODCALLTYPE *GetEvents)(
10639         ISpRecoContext* This,
10640         ULONG ulCount,
10641         SPEVENT *pEventArray,
10642         ULONG *pulFetched);
10643 
10644     HRESULT (STDMETHODCALLTYPE *GetInfo)(
10645         ISpRecoContext* This,
10646         SPEVENTSOURCEINFO *pInfo);
10647 
10648     /*** ISpRecoContext methods ***/
10649     HRESULT (STDMETHODCALLTYPE *GetRecognizer)(
10650         ISpRecoContext* This,
10651         ISpRecognizer **ppRecognizer);
10652 
10653     HRESULT (STDMETHODCALLTYPE *CreateGrammar)(
10654         ISpRecoContext* This,
10655         ULONGLONG ullGrammarId,
10656         ISpRecoGrammar **ppGrammar);
10657 
10658     HRESULT (STDMETHODCALLTYPE *GetStatus)(
10659         ISpRecoContext* This,
10660         SPRECOCONTEXTSTATUS *pStatus);
10661 
10662     HRESULT (STDMETHODCALLTYPE *GetMaxAlternates)(
10663         ISpRecoContext* This,
10664         ULONG *pcAlternates);
10665 
10666     HRESULT (STDMETHODCALLTYPE *SetMaxAlternates)(
10667         ISpRecoContext* This,
10668         ULONG cAlternates);
10669 
10670     HRESULT (STDMETHODCALLTYPE *SetAudioOptions)(
10671         ISpRecoContext* This,
10672         SPAUDIOOPTIONS Options,
10673         const GUID *pAudioFormatId,
10674         const WAVEFORMATEX *pWaveFormatEx);
10675 
10676     HRESULT (STDMETHODCALLTYPE *GetAudioOptions)(
10677         ISpRecoContext* This,
10678         SPAUDIOOPTIONS *pOptions,
10679         GUID *pAudioFormatId,
10680         WAVEFORMATEX **ppCoMemWFEX);
10681 
10682     HRESULT (STDMETHODCALLTYPE *DeserializeResult)(
10683         ISpRecoContext* This,
10684         const SPSERIALIZEDRESULT *pSerializedResult,
10685         ISpRecoResult **ppResult);
10686 
10687     HRESULT (STDMETHODCALLTYPE *Bookmark)(
10688         ISpRecoContext* This,
10689         SPBOOKMARKOPTIONS Options,
10690         ULONGLONG ullStreamPosition,
10691         LPARAM lparamEvent);
10692 
10693     HRESULT (STDMETHODCALLTYPE *SetAdaptationData)(
10694         ISpRecoContext* This,
10695         LPCWSTR pAdaptationData,
10696         const ULONG cch);
10697 
10698     HRESULT (STDMETHODCALLTYPE *Pause)(
10699         ISpRecoContext* This,
10700         DWORD dwReserved);
10701 
10702     HRESULT (STDMETHODCALLTYPE *Resume)(
10703         ISpRecoContext* This,
10704         DWORD dwReserved);
10705 
10706     HRESULT (STDMETHODCALLTYPE *SetVoice)(
10707         ISpRecoContext* This,
10708         ISpVoice *pVoice,
10709         WINBOOL fAllowFormatChanges);
10710 
10711     HRESULT (STDMETHODCALLTYPE *GetVoice)(
10712         ISpRecoContext* This,
10713         ISpVoice **ppVoice);
10714 
10715     HRESULT (STDMETHODCALLTYPE *SetVoicePurgeEvent)(
10716         ISpRecoContext* This,
10717         ULONGLONG ullEventInterest);
10718 
10719     HRESULT (STDMETHODCALLTYPE *GetVoicePurgeEvent)(
10720         ISpRecoContext* This,
10721         ULONGLONG *pullEventInterest);
10722 
10723     HRESULT (STDMETHODCALLTYPE *SetContextState)(
10724         ISpRecoContext* This,
10725         SPCONTEXTSTATE eContextState);
10726 
10727     HRESULT (STDMETHODCALLTYPE *GetContextState)(
10728         ISpRecoContext* This,
10729         SPCONTEXTSTATE *peContextState);
10730 
10731     END_INTERFACE
10732 } ISpRecoContextVtbl;
10733 interface ISpRecoContext {
10734     CONST_VTBL ISpRecoContextVtbl* lpVtbl;
10735 };
10736 
10737 #ifdef COBJMACROS
10738 #ifndef WIDL_C_INLINE_WRAPPERS
10739 /*** IUnknown methods ***/
10740 #define ISpRecoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10741 #define ISpRecoContext_AddRef(This) (This)->lpVtbl->AddRef(This)
10742 #define ISpRecoContext_Release(This) (This)->lpVtbl->Release(This)
10743 /*** ISpNotifySource methods ***/
10744 #define ISpRecoContext_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
10745 #define ISpRecoContext_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
10746 #define ISpRecoContext_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
10747 #define ISpRecoContext_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
10748 #define ISpRecoContext_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
10749 #define ISpRecoContext_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
10750 #define ISpRecoContext_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
10751 /*** ISpEventSource methods ***/
10752 #define ISpRecoContext_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
10753 #define ISpRecoContext_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
10754 #define ISpRecoContext_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
10755 /*** ISpRecoContext methods ***/
10756 #define ISpRecoContext_GetRecognizer(This,ppRecognizer) (This)->lpVtbl->GetRecognizer(This,ppRecognizer)
10757 #define ISpRecoContext_CreateGrammar(This,ullGrammarId,ppGrammar) (This)->lpVtbl->CreateGrammar(This,ullGrammarId,ppGrammar)
10758 #define ISpRecoContext_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
10759 #define ISpRecoContext_GetMaxAlternates(This,pcAlternates) (This)->lpVtbl->GetMaxAlternates(This,pcAlternates)
10760 #define ISpRecoContext_SetMaxAlternates(This,cAlternates) (This)->lpVtbl->SetMaxAlternates(This,cAlternates)
10761 #define ISpRecoContext_SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx)
10762 #define ISpRecoContext_GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX) (This)->lpVtbl->GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX)
10763 #define ISpRecoContext_DeserializeResult(This,pSerializedResult,ppResult) (This)->lpVtbl->DeserializeResult(This,pSerializedResult,ppResult)
10764 #define ISpRecoContext_Bookmark(This,Options,ullStreamPosition,lparamEvent) (This)->lpVtbl->Bookmark(This,Options,ullStreamPosition,lparamEvent)
10765 #define ISpRecoContext_SetAdaptationData(This,pAdaptationData,cch) (This)->lpVtbl->SetAdaptationData(This,pAdaptationData,cch)
10766 #define ISpRecoContext_Pause(This,dwReserved) (This)->lpVtbl->Pause(This,dwReserved)
10767 #define ISpRecoContext_Resume(This,dwReserved) (This)->lpVtbl->Resume(This,dwReserved)
10768 #define ISpRecoContext_SetVoice(This,pVoice,fAllowFormatChanges) (This)->lpVtbl->SetVoice(This,pVoice,fAllowFormatChanges)
10769 #define ISpRecoContext_GetVoice(This,ppVoice) (This)->lpVtbl->GetVoice(This,ppVoice)
10770 #define ISpRecoContext_SetVoicePurgeEvent(This,ullEventInterest) (This)->lpVtbl->SetVoicePurgeEvent(This,ullEventInterest)
10771 #define ISpRecoContext_GetVoicePurgeEvent(This,pullEventInterest) (This)->lpVtbl->GetVoicePurgeEvent(This,pullEventInterest)
10772 #define ISpRecoContext_SetContextState(This,eContextState) (This)->lpVtbl->SetContextState(This,eContextState)
10773 #define ISpRecoContext_GetContextState(This,peContextState) (This)->lpVtbl->GetContextState(This,peContextState)
10774 #else
10775 /*** IUnknown methods ***/
10776 static FORCEINLINE HRESULT ISpRecoContext_QueryInterface(ISpRecoContext* This,REFIID riid,void **ppvObject) {
10777     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10778 }
10779 static FORCEINLINE ULONG ISpRecoContext_AddRef(ISpRecoContext* This) {
10780     return This->lpVtbl->AddRef(This);
10781 }
10782 static FORCEINLINE ULONG ISpRecoContext_Release(ISpRecoContext* This) {
10783     return This->lpVtbl->Release(This);
10784 }
10785 /*** ISpNotifySource methods ***/
10786 static FORCEINLINE HRESULT ISpRecoContext_SetNotifySink(ISpRecoContext* This,ISpNotifySink *pNotifySink) {
10787     return This->lpVtbl->SetNotifySink(This,pNotifySink);
10788 }
10789 static FORCEINLINE HRESULT ISpRecoContext_SetNotifyWindowMessage(ISpRecoContext* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
10790     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
10791 }
10792 static FORCEINLINE HRESULT ISpRecoContext_SetNotifyCallbackFunction(ISpRecoContext* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
10793     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
10794 }
10795 static FORCEINLINE HRESULT ISpRecoContext_SetNotifyCallbackInterface(ISpRecoContext* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
10796     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
10797 }
10798 static FORCEINLINE HRESULT ISpRecoContext_SetNotifyWin32Event(ISpRecoContext* This) {
10799     return This->lpVtbl->SetNotifyWin32Event(This);
10800 }
10801 static FORCEINLINE HRESULT ISpRecoContext_WaitForNotifyEvent(ISpRecoContext* This,DWORD dwMilliseconds) {
10802     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
10803 }
10804 static FORCEINLINE HANDLE ISpRecoContext_GetNotifyEventHandle(ISpRecoContext* This) {
10805     return This->lpVtbl->GetNotifyEventHandle(This);
10806 }
10807 /*** ISpEventSource methods ***/
10808 static FORCEINLINE HRESULT ISpRecoContext_SetInterest(ISpRecoContext* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
10809     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
10810 }
10811 static FORCEINLINE HRESULT ISpRecoContext_GetEvents(ISpRecoContext* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
10812     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
10813 }
10814 static FORCEINLINE HRESULT ISpRecoContext_GetInfo(ISpRecoContext* This,SPEVENTSOURCEINFO *pInfo) {
10815     return This->lpVtbl->GetInfo(This,pInfo);
10816 }
10817 /*** ISpRecoContext methods ***/
10818 static FORCEINLINE HRESULT ISpRecoContext_GetRecognizer(ISpRecoContext* This,ISpRecognizer **ppRecognizer) {
10819     return This->lpVtbl->GetRecognizer(This,ppRecognizer);
10820 }
10821 static FORCEINLINE HRESULT ISpRecoContext_CreateGrammar(ISpRecoContext* This,ULONGLONG ullGrammarId,ISpRecoGrammar **ppGrammar) {
10822     return This->lpVtbl->CreateGrammar(This,ullGrammarId,ppGrammar);
10823 }
10824 static FORCEINLINE HRESULT ISpRecoContext_GetStatus(ISpRecoContext* This,SPRECOCONTEXTSTATUS *pStatus) {
10825     return This->lpVtbl->GetStatus(This,pStatus);
10826 }
10827 static FORCEINLINE HRESULT ISpRecoContext_GetMaxAlternates(ISpRecoContext* This,ULONG *pcAlternates) {
10828     return This->lpVtbl->GetMaxAlternates(This,pcAlternates);
10829 }
10830 static FORCEINLINE HRESULT ISpRecoContext_SetMaxAlternates(ISpRecoContext* This,ULONG cAlternates) {
10831     return This->lpVtbl->SetMaxAlternates(This,cAlternates);
10832 }
10833 static FORCEINLINE HRESULT ISpRecoContext_SetAudioOptions(ISpRecoContext* This,SPAUDIOOPTIONS Options,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
10834     return This->lpVtbl->SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx);
10835 }
10836 static FORCEINLINE HRESULT ISpRecoContext_GetAudioOptions(ISpRecoContext* This,SPAUDIOOPTIONS *pOptions,GUID *pAudioFormatId,WAVEFORMATEX **ppCoMemWFEX) {
10837     return This->lpVtbl->GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX);
10838 }
10839 static FORCEINLINE HRESULT ISpRecoContext_DeserializeResult(ISpRecoContext* This,const SPSERIALIZEDRESULT *pSerializedResult,ISpRecoResult **ppResult) {
10840     return This->lpVtbl->DeserializeResult(This,pSerializedResult,ppResult);
10841 }
10842 static FORCEINLINE HRESULT ISpRecoContext_Bookmark(ISpRecoContext* This,SPBOOKMARKOPTIONS Options,ULONGLONG ullStreamPosition,LPARAM lparamEvent) {
10843     return This->lpVtbl->Bookmark(This,Options,ullStreamPosition,lparamEvent);
10844 }
10845 static FORCEINLINE HRESULT ISpRecoContext_SetAdaptationData(ISpRecoContext* This,LPCWSTR pAdaptationData,const ULONG cch) {
10846     return This->lpVtbl->SetAdaptationData(This,pAdaptationData,cch);
10847 }
10848 static FORCEINLINE HRESULT ISpRecoContext_Pause(ISpRecoContext* This,DWORD dwReserved) {
10849     return This->lpVtbl->Pause(This,dwReserved);
10850 }
10851 static FORCEINLINE HRESULT ISpRecoContext_Resume(ISpRecoContext* This,DWORD dwReserved) {
10852     return This->lpVtbl->Resume(This,dwReserved);
10853 }
10854 static FORCEINLINE HRESULT ISpRecoContext_SetVoice(ISpRecoContext* This,ISpVoice *pVoice,WINBOOL fAllowFormatChanges) {
10855     return This->lpVtbl->SetVoice(This,pVoice,fAllowFormatChanges);
10856 }
10857 static FORCEINLINE HRESULT ISpRecoContext_GetVoice(ISpRecoContext* This,ISpVoice **ppVoice) {
10858     return This->lpVtbl->GetVoice(This,ppVoice);
10859 }
10860 static FORCEINLINE HRESULT ISpRecoContext_SetVoicePurgeEvent(ISpRecoContext* This,ULONGLONG ullEventInterest) {
10861     return This->lpVtbl->SetVoicePurgeEvent(This,ullEventInterest);
10862 }
10863 static FORCEINLINE HRESULT ISpRecoContext_GetVoicePurgeEvent(ISpRecoContext* This,ULONGLONG *pullEventInterest) {
10864     return This->lpVtbl->GetVoicePurgeEvent(This,pullEventInterest);
10865 }
10866 static FORCEINLINE HRESULT ISpRecoContext_SetContextState(ISpRecoContext* This,SPCONTEXTSTATE eContextState) {
10867     return This->lpVtbl->SetContextState(This,eContextState);
10868 }
10869 static FORCEINLINE HRESULT ISpRecoContext_GetContextState(ISpRecoContext* This,SPCONTEXTSTATE *peContextState) {
10870     return This->lpVtbl->GetContextState(This,peContextState);
10871 }
10872 #endif
10873 #endif
10874 
10875 #endif
10876 
10877 HRESULT STDMETHODCALLTYPE ISpRecoContext_GetRecognizer_Proxy(
10878     ISpRecoContext* This,
10879     ISpRecognizer **ppRecognizer);
10880 void __RPC_STUB ISpRecoContext_GetRecognizer_Stub(
10881     IRpcStubBuffer* This,
10882     IRpcChannelBuffer* pRpcChannelBuffer,
10883     PRPC_MESSAGE pRpcMessage,
10884     DWORD* pdwStubPhase);
10885 HRESULT STDMETHODCALLTYPE ISpRecoContext_CreateGrammar_Proxy(
10886     ISpRecoContext* This,
10887     ULONGLONG ullGrammarId,
10888     ISpRecoGrammar **ppGrammar);
10889 void __RPC_STUB ISpRecoContext_CreateGrammar_Stub(
10890     IRpcStubBuffer* This,
10891     IRpcChannelBuffer* pRpcChannelBuffer,
10892     PRPC_MESSAGE pRpcMessage,
10893     DWORD* pdwStubPhase);
10894 HRESULT STDMETHODCALLTYPE ISpRecoContext_GetStatus_Proxy(
10895     ISpRecoContext* This,
10896     SPRECOCONTEXTSTATUS *pStatus);
10897 void __RPC_STUB ISpRecoContext_GetStatus_Stub(
10898     IRpcStubBuffer* This,
10899     IRpcChannelBuffer* pRpcChannelBuffer,
10900     PRPC_MESSAGE pRpcMessage,
10901     DWORD* pdwStubPhase);
10902 HRESULT STDMETHODCALLTYPE ISpRecoContext_GetMaxAlternates_Proxy(
10903     ISpRecoContext* This,
10904     ULONG *pcAlternates);
10905 void __RPC_STUB ISpRecoContext_GetMaxAlternates_Stub(
10906     IRpcStubBuffer* This,
10907     IRpcChannelBuffer* pRpcChannelBuffer,
10908     PRPC_MESSAGE pRpcMessage,
10909     DWORD* pdwStubPhase);
10910 HRESULT STDMETHODCALLTYPE ISpRecoContext_SetMaxAlternates_Proxy(
10911     ISpRecoContext* This,
10912     ULONG cAlternates);
10913 void __RPC_STUB ISpRecoContext_SetMaxAlternates_Stub(
10914     IRpcStubBuffer* This,
10915     IRpcChannelBuffer* pRpcChannelBuffer,
10916     PRPC_MESSAGE pRpcMessage,
10917     DWORD* pdwStubPhase);
10918 HRESULT STDMETHODCALLTYPE ISpRecoContext_SetAudioOptions_Proxy(
10919     ISpRecoContext* This,
10920     SPAUDIOOPTIONS Options,
10921     const GUID *pAudioFormatId,
10922     const WAVEFORMATEX *pWaveFormatEx);
10923 void __RPC_STUB ISpRecoContext_SetAudioOptions_Stub(
10924     IRpcStubBuffer* This,
10925     IRpcChannelBuffer* pRpcChannelBuffer,
10926     PRPC_MESSAGE pRpcMessage,
10927     DWORD* pdwStubPhase);
10928 HRESULT STDMETHODCALLTYPE ISpRecoContext_GetAudioOptions_Proxy(
10929     ISpRecoContext* This,
10930     SPAUDIOOPTIONS *pOptions,
10931     GUID *pAudioFormatId,
10932     WAVEFORMATEX **ppCoMemWFEX);
10933 void __RPC_STUB ISpRecoContext_GetAudioOptions_Stub(
10934     IRpcStubBuffer* This,
10935     IRpcChannelBuffer* pRpcChannelBuffer,
10936     PRPC_MESSAGE pRpcMessage,
10937     DWORD* pdwStubPhase);
10938 HRESULT STDMETHODCALLTYPE ISpRecoContext_DeserializeResult_Proxy(
10939     ISpRecoContext* This,
10940     const SPSERIALIZEDRESULT *pSerializedResult,
10941     ISpRecoResult **ppResult);
10942 void __RPC_STUB ISpRecoContext_DeserializeResult_Stub(
10943     IRpcStubBuffer* This,
10944     IRpcChannelBuffer* pRpcChannelBuffer,
10945     PRPC_MESSAGE pRpcMessage,
10946     DWORD* pdwStubPhase);
10947 HRESULT STDMETHODCALLTYPE ISpRecoContext_Bookmark_Proxy(
10948     ISpRecoContext* This,
10949     SPBOOKMARKOPTIONS Options,
10950     ULONGLONG ullStreamPosition,
10951     LPARAM lparamEvent);
10952 void __RPC_STUB ISpRecoContext_Bookmark_Stub(
10953     IRpcStubBuffer* This,
10954     IRpcChannelBuffer* pRpcChannelBuffer,
10955     PRPC_MESSAGE pRpcMessage,
10956     DWORD* pdwStubPhase);
10957 HRESULT STDMETHODCALLTYPE ISpRecoContext_SetAdaptationData_Proxy(
10958     ISpRecoContext* This,
10959     LPCWSTR pAdaptationData,
10960     const ULONG cch);
10961 void __RPC_STUB ISpRecoContext_SetAdaptationData_Stub(
10962     IRpcStubBuffer* This,
10963     IRpcChannelBuffer* pRpcChannelBuffer,
10964     PRPC_MESSAGE pRpcMessage,
10965     DWORD* pdwStubPhase);
10966 HRESULT STDMETHODCALLTYPE ISpRecoContext_Pause_Proxy(
10967     ISpRecoContext* This,
10968     DWORD dwReserved);
10969 void __RPC_STUB ISpRecoContext_Pause_Stub(
10970     IRpcStubBuffer* This,
10971     IRpcChannelBuffer* pRpcChannelBuffer,
10972     PRPC_MESSAGE pRpcMessage,
10973     DWORD* pdwStubPhase);
10974 HRESULT STDMETHODCALLTYPE ISpRecoContext_Resume_Proxy(
10975     ISpRecoContext* This,
10976     DWORD dwReserved);
10977 void __RPC_STUB ISpRecoContext_Resume_Stub(
10978     IRpcStubBuffer* This,
10979     IRpcChannelBuffer* pRpcChannelBuffer,
10980     PRPC_MESSAGE pRpcMessage,
10981     DWORD* pdwStubPhase);
10982 HRESULT STDMETHODCALLTYPE ISpRecoContext_SetVoice_Proxy(
10983     ISpRecoContext* This,
10984     ISpVoice *pVoice,
10985     WINBOOL fAllowFormatChanges);
10986 void __RPC_STUB ISpRecoContext_SetVoice_Stub(
10987     IRpcStubBuffer* This,
10988     IRpcChannelBuffer* pRpcChannelBuffer,
10989     PRPC_MESSAGE pRpcMessage,
10990     DWORD* pdwStubPhase);
10991 HRESULT STDMETHODCALLTYPE ISpRecoContext_GetVoice_Proxy(
10992     ISpRecoContext* This,
10993     ISpVoice **ppVoice);
10994 void __RPC_STUB ISpRecoContext_GetVoice_Stub(
10995     IRpcStubBuffer* This,
10996     IRpcChannelBuffer* pRpcChannelBuffer,
10997     PRPC_MESSAGE pRpcMessage,
10998     DWORD* pdwStubPhase);
10999 HRESULT STDMETHODCALLTYPE ISpRecoContext_SetVoicePurgeEvent_Proxy(
11000     ISpRecoContext* This,
11001     ULONGLONG ullEventInterest);
11002 void __RPC_STUB ISpRecoContext_SetVoicePurgeEvent_Stub(
11003     IRpcStubBuffer* This,
11004     IRpcChannelBuffer* pRpcChannelBuffer,
11005     PRPC_MESSAGE pRpcMessage,
11006     DWORD* pdwStubPhase);
11007 HRESULT STDMETHODCALLTYPE ISpRecoContext_GetVoicePurgeEvent_Proxy(
11008     ISpRecoContext* This,
11009     ULONGLONG *pullEventInterest);
11010 void __RPC_STUB ISpRecoContext_GetVoicePurgeEvent_Stub(
11011     IRpcStubBuffer* This,
11012     IRpcChannelBuffer* pRpcChannelBuffer,
11013     PRPC_MESSAGE pRpcMessage,
11014     DWORD* pdwStubPhase);
11015 HRESULT STDMETHODCALLTYPE ISpRecoContext_SetContextState_Proxy(
11016     ISpRecoContext* This,
11017     SPCONTEXTSTATE eContextState);
11018 void __RPC_STUB ISpRecoContext_SetContextState_Stub(
11019     IRpcStubBuffer* This,
11020     IRpcChannelBuffer* pRpcChannelBuffer,
11021     PRPC_MESSAGE pRpcMessage,
11022     DWORD* pdwStubPhase);
11023 HRESULT STDMETHODCALLTYPE ISpRecoContext_GetContextState_Proxy(
11024     ISpRecoContext* This,
11025     SPCONTEXTSTATE *peContextState);
11026 void __RPC_STUB ISpRecoContext_GetContextState_Stub(
11027     IRpcStubBuffer* This,
11028     IRpcChannelBuffer* pRpcChannelBuffer,
11029     PRPC_MESSAGE pRpcMessage,
11030     DWORD* pdwStubPhase);
11031 
11032 #endif  /* __ISpRecoContext_INTERFACE_DEFINED__ */
11033 
11034 typedef enum SPGRAMMAROPTIONS {
11035     SPGO_SAPI = 0x1,
11036     SPGO_SRGS = 0x2,
11037     SPGO_UPS = 0x4,
11038     SPGO_SRGS_MS_SCRIPT = 0x8,
11039     SPGO_FILE = 0x10,
11040     SPGO_HTTP = 0x20,
11041     SPGO_RES = 0x40,
11042     SPGO_OBJECT = 0x80,
11043     SPGO_SRGS_W3C_SCRIPT = 0x100,
11044     SPGO_SRGS_STG_SCRIPT = 0x200,
11045     SPGO_SRGS_SCRIPT = ((SPGO_SRGS | SPGO_SRGS_MS_SCRIPT) | SPGO_SRGS_W3C_SCRIPT) | SPGO_SRGS_STG_SCRIPT,
11046     SPGO_DEFAULT = 0x3fb,
11047     SPGO_ALL = 0x3ff
11048 } SPGRAMMAROPTIONS;
11049 typedef enum SPADAPTATIONSETTINGS {
11050     SPADS_Default = 0x0,
11051     SPADS_CurrentRecognizer = 0x1,
11052     SPADS_RecoProfile = 0x2,
11053     SPADS_Immediate = 0x4,
11054     SPADS_Reset = 0x8,
11055     SPADS_HighVolumeDataSource = 0x10
11056 } SPADAPTATIONSETTINGS;
11057 typedef enum SPADAPTATIONRELEVANCE {
11058     SPAR_Unknown = 0,
11059     SPAR_Low = 1,
11060     SPAR_Medium = 2,
11061     SPAR_High = 3
11062 } SPADAPTATIONRELEVANCE;
11063 /*****************************************************************************
11064  * ISpRecoContext2 interface
11065  */
11066 #ifndef __ISpRecoContext2_INTERFACE_DEFINED__
11067 #define __ISpRecoContext2_INTERFACE_DEFINED__
11068 
11069 DEFINE_GUID(IID_ISpRecoContext2, 0xbead311c, 0x52ff, 0x437f, 0x94,0x64, 0x6b,0x21,0x05,0x4c,0xa7,0x3d);
11070 #if defined(__cplusplus) && !defined(CINTERFACE)
11071 MIDL_INTERFACE("bead311c-52ff-437f-9464-6b21054ca73d")
11072 ISpRecoContext2 : public IUnknown
11073 {
11074     virtual HRESULT STDMETHODCALLTYPE SetGrammarOptions(
11075         DWORD eGrammarOptions) = 0;
11076 
11077     virtual HRESULT STDMETHODCALLTYPE GetGrammarOptions(
11078         DWORD *peGrammarOptions) = 0;
11079 
11080     virtual HRESULT STDMETHODCALLTYPE SetAdaptationData2(
11081         LPCWSTR pAdaptationData,
11082         const ULONG cch,
11083         LPCWSTR pTopicName,
11084         DWORD eAdaptationSettings,
11085         SPADAPTATIONRELEVANCE eRelevance) = 0;
11086 
11087 };
11088 #ifdef __CRT_UUID_DECL
11089 __CRT_UUID_DECL(ISpRecoContext2, 0xbead311c, 0x52ff, 0x437f, 0x94,0x64, 0x6b,0x21,0x05,0x4c,0xa7,0x3d)
11090 #endif
11091 #else
11092 typedef struct ISpRecoContext2Vtbl {
11093     BEGIN_INTERFACE
11094 
11095     /*** IUnknown methods ***/
11096     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11097         ISpRecoContext2* This,
11098         REFIID riid,
11099         void **ppvObject);
11100 
11101     ULONG (STDMETHODCALLTYPE *AddRef)(
11102         ISpRecoContext2* This);
11103 
11104     ULONG (STDMETHODCALLTYPE *Release)(
11105         ISpRecoContext2* This);
11106 
11107     /*** ISpRecoContext2 methods ***/
11108     HRESULT (STDMETHODCALLTYPE *SetGrammarOptions)(
11109         ISpRecoContext2* This,
11110         DWORD eGrammarOptions);
11111 
11112     HRESULT (STDMETHODCALLTYPE *GetGrammarOptions)(
11113         ISpRecoContext2* This,
11114         DWORD *peGrammarOptions);
11115 
11116     HRESULT (STDMETHODCALLTYPE *SetAdaptationData2)(
11117         ISpRecoContext2* This,
11118         LPCWSTR pAdaptationData,
11119         const ULONG cch,
11120         LPCWSTR pTopicName,
11121         DWORD eAdaptationSettings,
11122         SPADAPTATIONRELEVANCE eRelevance);
11123 
11124     END_INTERFACE
11125 } ISpRecoContext2Vtbl;
11126 interface ISpRecoContext2 {
11127     CONST_VTBL ISpRecoContext2Vtbl* lpVtbl;
11128 };
11129 
11130 #ifdef COBJMACROS
11131 #ifndef WIDL_C_INLINE_WRAPPERS
11132 /*** IUnknown methods ***/
11133 #define ISpRecoContext2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11134 #define ISpRecoContext2_AddRef(This) (This)->lpVtbl->AddRef(This)
11135 #define ISpRecoContext2_Release(This) (This)->lpVtbl->Release(This)
11136 /*** ISpRecoContext2 methods ***/
11137 #define ISpRecoContext2_SetGrammarOptions(This,eGrammarOptions) (This)->lpVtbl->SetGrammarOptions(This,eGrammarOptions)
11138 #define ISpRecoContext2_GetGrammarOptions(This,peGrammarOptions) (This)->lpVtbl->GetGrammarOptions(This,peGrammarOptions)
11139 #define ISpRecoContext2_SetAdaptationData2(This,pAdaptationData,cch,pTopicName,eAdaptationSettings,eRelevance) (This)->lpVtbl->SetAdaptationData2(This,pAdaptationData,cch,pTopicName,eAdaptationSettings,eRelevance)
11140 #else
11141 /*** IUnknown methods ***/
11142 static FORCEINLINE HRESULT ISpRecoContext2_QueryInterface(ISpRecoContext2* This,REFIID riid,void **ppvObject) {
11143     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11144 }
11145 static FORCEINLINE ULONG ISpRecoContext2_AddRef(ISpRecoContext2* This) {
11146     return This->lpVtbl->AddRef(This);
11147 }
11148 static FORCEINLINE ULONG ISpRecoContext2_Release(ISpRecoContext2* This) {
11149     return This->lpVtbl->Release(This);
11150 }
11151 /*** ISpRecoContext2 methods ***/
11152 static FORCEINLINE HRESULT ISpRecoContext2_SetGrammarOptions(ISpRecoContext2* This,DWORD eGrammarOptions) {
11153     return This->lpVtbl->SetGrammarOptions(This,eGrammarOptions);
11154 }
11155 static FORCEINLINE HRESULT ISpRecoContext2_GetGrammarOptions(ISpRecoContext2* This,DWORD *peGrammarOptions) {
11156     return This->lpVtbl->GetGrammarOptions(This,peGrammarOptions);
11157 }
11158 static FORCEINLINE HRESULT ISpRecoContext2_SetAdaptationData2(ISpRecoContext2* This,LPCWSTR pAdaptationData,const ULONG cch,LPCWSTR pTopicName,DWORD eAdaptationSettings,SPADAPTATIONRELEVANCE eRelevance) {
11159     return This->lpVtbl->SetAdaptationData2(This,pAdaptationData,cch,pTopicName,eAdaptationSettings,eRelevance);
11160 }
11161 #endif
11162 #endif
11163 
11164 #endif
11165 
11166 HRESULT STDMETHODCALLTYPE ISpRecoContext2_SetGrammarOptions_Proxy(
11167     ISpRecoContext2* This,
11168     DWORD eGrammarOptions);
11169 void __RPC_STUB ISpRecoContext2_SetGrammarOptions_Stub(
11170     IRpcStubBuffer* This,
11171     IRpcChannelBuffer* pRpcChannelBuffer,
11172     PRPC_MESSAGE pRpcMessage,
11173     DWORD* pdwStubPhase);
11174 HRESULT STDMETHODCALLTYPE ISpRecoContext2_GetGrammarOptions_Proxy(
11175     ISpRecoContext2* This,
11176     DWORD *peGrammarOptions);
11177 void __RPC_STUB ISpRecoContext2_GetGrammarOptions_Stub(
11178     IRpcStubBuffer* This,
11179     IRpcChannelBuffer* pRpcChannelBuffer,
11180     PRPC_MESSAGE pRpcMessage,
11181     DWORD* pdwStubPhase);
11182 HRESULT STDMETHODCALLTYPE ISpRecoContext2_SetAdaptationData2_Proxy(
11183     ISpRecoContext2* This,
11184     LPCWSTR pAdaptationData,
11185     const ULONG cch,
11186     LPCWSTR pTopicName,
11187     DWORD eAdaptationSettings,
11188     SPADAPTATIONRELEVANCE eRelevance);
11189 void __RPC_STUB ISpRecoContext2_SetAdaptationData2_Stub(
11190     IRpcStubBuffer* This,
11191     IRpcChannelBuffer* pRpcChannelBuffer,
11192     PRPC_MESSAGE pRpcMessage,
11193     DWORD* pdwStubPhase);
11194 
11195 #endif  /* __ISpRecoContext2_INTERFACE_DEFINED__ */
11196 
11197 /*****************************************************************************
11198  * ISpProperties interface
11199  */
11200 #ifndef __ISpProperties_INTERFACE_DEFINED__
11201 #define __ISpProperties_INTERFACE_DEFINED__
11202 
11203 DEFINE_GUID(IID_ISpProperties, 0x5b4fb971, 0xb115, 0x4de1, 0xad,0x97, 0xe4,0x82,0xe3,0xbf,0x6e,0xe4);
11204 #if defined(__cplusplus) && !defined(CINTERFACE)
11205 MIDL_INTERFACE("5b4fb971-b115-4de1-ad97-e482e3bf6ee4")
11206 ISpProperties : public IUnknown
11207 {
11208     virtual HRESULT STDMETHODCALLTYPE SetPropertyNum(
11209         LPCWSTR pName,
11210         LONG lValue) = 0;
11211 
11212     virtual HRESULT STDMETHODCALLTYPE GetPropertyNum(
11213         LPCWSTR pName,
11214         LONG *plValue) = 0;
11215 
11216     virtual HRESULT STDMETHODCALLTYPE SetPropertyString(
11217         LPCWSTR pName,
11218         LPCWSTR pValue) = 0;
11219 
11220     virtual HRESULT STDMETHODCALLTYPE GetPropertyString(
11221         LPCWSTR pName,
11222         LPWSTR *ppCoMemValue) = 0;
11223 
11224 };
11225 #ifdef __CRT_UUID_DECL
11226 __CRT_UUID_DECL(ISpProperties, 0x5b4fb971, 0xb115, 0x4de1, 0xad,0x97, 0xe4,0x82,0xe3,0xbf,0x6e,0xe4)
11227 #endif
11228 #else
11229 typedef struct ISpPropertiesVtbl {
11230     BEGIN_INTERFACE
11231 
11232     /*** IUnknown methods ***/
11233     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11234         ISpProperties* This,
11235         REFIID riid,
11236         void **ppvObject);
11237 
11238     ULONG (STDMETHODCALLTYPE *AddRef)(
11239         ISpProperties* This);
11240 
11241     ULONG (STDMETHODCALLTYPE *Release)(
11242         ISpProperties* This);
11243 
11244     /*** ISpProperties methods ***/
11245     HRESULT (STDMETHODCALLTYPE *SetPropertyNum)(
11246         ISpProperties* This,
11247         LPCWSTR pName,
11248         LONG lValue);
11249 
11250     HRESULT (STDMETHODCALLTYPE *GetPropertyNum)(
11251         ISpProperties* This,
11252         LPCWSTR pName,
11253         LONG *plValue);
11254 
11255     HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
11256         ISpProperties* This,
11257         LPCWSTR pName,
11258         LPCWSTR pValue);
11259 
11260     HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
11261         ISpProperties* This,
11262         LPCWSTR pName,
11263         LPWSTR *ppCoMemValue);
11264 
11265     END_INTERFACE
11266 } ISpPropertiesVtbl;
11267 interface ISpProperties {
11268     CONST_VTBL ISpPropertiesVtbl* lpVtbl;
11269 };
11270 
11271 #ifdef COBJMACROS
11272 #ifndef WIDL_C_INLINE_WRAPPERS
11273 /*** IUnknown methods ***/
11274 #define ISpProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11275 #define ISpProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
11276 #define ISpProperties_Release(This) (This)->lpVtbl->Release(This)
11277 /*** ISpProperties methods ***/
11278 #define ISpProperties_SetPropertyNum(This,pName,lValue) (This)->lpVtbl->SetPropertyNum(This,pName,lValue)
11279 #define ISpProperties_GetPropertyNum(This,pName,plValue) (This)->lpVtbl->GetPropertyNum(This,pName,plValue)
11280 #define ISpProperties_SetPropertyString(This,pName,pValue) (This)->lpVtbl->SetPropertyString(This,pName,pValue)
11281 #define ISpProperties_GetPropertyString(This,pName,ppCoMemValue) (This)->lpVtbl->GetPropertyString(This,pName,ppCoMemValue)
11282 #else
11283 /*** IUnknown methods ***/
11284 static FORCEINLINE HRESULT ISpProperties_QueryInterface(ISpProperties* This,REFIID riid,void **ppvObject) {
11285     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11286 }
11287 static FORCEINLINE ULONG ISpProperties_AddRef(ISpProperties* This) {
11288     return This->lpVtbl->AddRef(This);
11289 }
11290 static FORCEINLINE ULONG ISpProperties_Release(ISpProperties* This) {
11291     return This->lpVtbl->Release(This);
11292 }
11293 /*** ISpProperties methods ***/
11294 static FORCEINLINE HRESULT ISpProperties_SetPropertyNum(ISpProperties* This,LPCWSTR pName,LONG lValue) {
11295     return This->lpVtbl->SetPropertyNum(This,pName,lValue);
11296 }
11297 static FORCEINLINE HRESULT ISpProperties_GetPropertyNum(ISpProperties* This,LPCWSTR pName,LONG *plValue) {
11298     return This->lpVtbl->GetPropertyNum(This,pName,plValue);
11299 }
11300 static FORCEINLINE HRESULT ISpProperties_SetPropertyString(ISpProperties* This,LPCWSTR pName,LPCWSTR pValue) {
11301     return This->lpVtbl->SetPropertyString(This,pName,pValue);
11302 }
11303 static FORCEINLINE HRESULT ISpProperties_GetPropertyString(ISpProperties* This,LPCWSTR pName,LPWSTR *ppCoMemValue) {
11304     return This->lpVtbl->GetPropertyString(This,pName,ppCoMemValue);
11305 }
11306 #endif
11307 #endif
11308 
11309 #endif
11310 
11311 HRESULT STDMETHODCALLTYPE ISpProperties_SetPropertyNum_Proxy(
11312     ISpProperties* This,
11313     LPCWSTR pName,
11314     LONG lValue);
11315 void __RPC_STUB ISpProperties_SetPropertyNum_Stub(
11316     IRpcStubBuffer* This,
11317     IRpcChannelBuffer* pRpcChannelBuffer,
11318     PRPC_MESSAGE pRpcMessage,
11319     DWORD* pdwStubPhase);
11320 HRESULT STDMETHODCALLTYPE ISpProperties_GetPropertyNum_Proxy(
11321     ISpProperties* This,
11322     LPCWSTR pName,
11323     LONG *plValue);
11324 void __RPC_STUB ISpProperties_GetPropertyNum_Stub(
11325     IRpcStubBuffer* This,
11326     IRpcChannelBuffer* pRpcChannelBuffer,
11327     PRPC_MESSAGE pRpcMessage,
11328     DWORD* pdwStubPhase);
11329 HRESULT STDMETHODCALLTYPE ISpProperties_SetPropertyString_Proxy(
11330     ISpProperties* This,
11331     LPCWSTR pName,
11332     LPCWSTR pValue);
11333 void __RPC_STUB ISpProperties_SetPropertyString_Stub(
11334     IRpcStubBuffer* This,
11335     IRpcChannelBuffer* pRpcChannelBuffer,
11336     PRPC_MESSAGE pRpcMessage,
11337     DWORD* pdwStubPhase);
11338 HRESULT STDMETHODCALLTYPE ISpProperties_GetPropertyString_Proxy(
11339     ISpProperties* This,
11340     LPCWSTR pName,
11341     LPWSTR *ppCoMemValue);
11342 void __RPC_STUB ISpProperties_GetPropertyString_Stub(
11343     IRpcStubBuffer* This,
11344     IRpcChannelBuffer* pRpcChannelBuffer,
11345     PRPC_MESSAGE pRpcMessage,
11346     DWORD* pdwStubPhase);
11347 
11348 #endif  /* __ISpProperties_INTERFACE_DEFINED__ */
11349 
11350 #define SP_MAX_LANGIDS (20)
11351 
11352 typedef struct SPRECOGNIZERSTATUS {
11353     SPAUDIOSTATUS AudioStatus;
11354     ULONGLONG ullRecognitionStreamPos;
11355     ULONG ulStreamNumber;
11356     ULONG ulNumActive;
11357     CLSID clsidEngine;
11358     ULONG cLangIDs;
11359     WORD aLangID[20];
11360     ULONGLONG ullRecognitionStreamTime;
11361 } SPRECOGNIZERSTATUS;
11362 typedef enum SPWAVEFORMATTYPE {
11363     SPWF_INPUT = 0,
11364     SPWF_SRENGINE = 1
11365 } SPSTREAMFORMATTYPE;
11366 typedef enum SPRECOSTATE {
11367     SPRST_INACTIVE = 0,
11368     SPRST_ACTIVE = 1,
11369     SPRST_ACTIVE_ALWAYS = 2,
11370     SPRST_INACTIVE_WITH_PURGE = 3,
11371     SPRST_NUM_STATES = 4
11372 } SPRECOSTATE;
11373 /*****************************************************************************
11374  * ISpRecognizer interface
11375  */
11376 #ifndef __ISpRecognizer_INTERFACE_DEFINED__
11377 #define __ISpRecognizer_INTERFACE_DEFINED__
11378 
11379 DEFINE_GUID(IID_ISpRecognizer, 0xc2b5f241, 0xdaa0, 0x4507, 0x9e,0x16, 0x5a,0x1e,0xaa,0x2b,0x7a,0x5c);
11380 #if defined(__cplusplus) && !defined(CINTERFACE)
11381 MIDL_INTERFACE("c2b5f241-daa0-4507-9e16-5a1eaa2b7a5c")
11382 ISpRecognizer : public ISpProperties
11383 {
11384     virtual HRESULT STDMETHODCALLTYPE SetRecognizer(
11385         ISpObjectToken *pRecognizer) = 0;
11386 
11387     virtual HRESULT STDMETHODCALLTYPE GetRecognizer(
11388         ISpObjectToken **ppRecognizer) = 0;
11389 
11390     virtual HRESULT STDMETHODCALLTYPE SetInput(
11391         IUnknown *pUnkInput,
11392         WINBOOL fAllowFormatChanges) = 0;
11393 
11394     virtual HRESULT STDMETHODCALLTYPE GetInputObjectToken(
11395         ISpObjectToken **ppToken) = 0;
11396 
11397     virtual HRESULT STDMETHODCALLTYPE GetInputStream(
11398         ISpStreamFormat **ppStream) = 0;
11399 
11400     virtual HRESULT STDMETHODCALLTYPE CreateRecoContext(
11401         ISpRecoContext **ppNewCtxt) = 0;
11402 
11403     virtual HRESULT STDMETHODCALLTYPE GetRecoProfile(
11404         ISpObjectToken **ppToken) = 0;
11405 
11406     virtual HRESULT STDMETHODCALLTYPE SetRecoProfile(
11407         ISpObjectToken *pToken) = 0;
11408 
11409     virtual HRESULT STDMETHODCALLTYPE IsSharedInstance(
11410         ) = 0;
11411 
11412     virtual HRESULT STDMETHODCALLTYPE GetRecoState(
11413         SPRECOSTATE *pState) = 0;
11414 
11415     virtual HRESULT STDMETHODCALLTYPE SetRecoState(
11416         SPRECOSTATE NewState) = 0;
11417 
11418     virtual HRESULT STDMETHODCALLTYPE GetStatus(
11419         SPRECOGNIZERSTATUS *pStatus) = 0;
11420 
11421     virtual HRESULT STDMETHODCALLTYPE GetFormat(
11422         SPSTREAMFORMATTYPE WaveFormatType,
11423         GUID *pFormatId,
11424         WAVEFORMATEX **ppCoMemWFEX) = 0;
11425 
11426     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
11427         LPCWSTR pszTypeOfUI,
11428         void *pvExtraData,
11429         ULONG cbExtraData,
11430         WINBOOL *pfSupported) = 0;
11431 
11432     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
11433         HWND hwndParent,
11434         LPCWSTR pszTitle,
11435         LPCWSTR pszTypeOfUI,
11436         void *pvExtraData,
11437         ULONG cbExtraData) = 0;
11438 
11439     virtual HRESULT STDMETHODCALLTYPE EmulateRecognition(
11440         ISpPhrase *pPhrase) = 0;
11441 
11442 };
11443 #ifdef __CRT_UUID_DECL
11444 __CRT_UUID_DECL(ISpRecognizer, 0xc2b5f241, 0xdaa0, 0x4507, 0x9e,0x16, 0x5a,0x1e,0xaa,0x2b,0x7a,0x5c)
11445 #endif
11446 #else
11447 typedef struct ISpRecognizerVtbl {
11448     BEGIN_INTERFACE
11449 
11450     /*** IUnknown methods ***/
11451     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11452         ISpRecognizer* This,
11453         REFIID riid,
11454         void **ppvObject);
11455 
11456     ULONG (STDMETHODCALLTYPE *AddRef)(
11457         ISpRecognizer* This);
11458 
11459     ULONG (STDMETHODCALLTYPE *Release)(
11460         ISpRecognizer* This);
11461 
11462     /*** ISpProperties methods ***/
11463     HRESULT (STDMETHODCALLTYPE *SetPropertyNum)(
11464         ISpRecognizer* This,
11465         LPCWSTR pName,
11466         LONG lValue);
11467 
11468     HRESULT (STDMETHODCALLTYPE *GetPropertyNum)(
11469         ISpRecognizer* This,
11470         LPCWSTR pName,
11471         LONG *plValue);
11472 
11473     HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
11474         ISpRecognizer* This,
11475         LPCWSTR pName,
11476         LPCWSTR pValue);
11477 
11478     HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
11479         ISpRecognizer* This,
11480         LPCWSTR pName,
11481         LPWSTR *ppCoMemValue);
11482 
11483     /*** ISpRecognizer methods ***/
11484     HRESULT (STDMETHODCALLTYPE *SetRecognizer)(
11485         ISpRecognizer* This,
11486         ISpObjectToken *pRecognizer);
11487 
11488     HRESULT (STDMETHODCALLTYPE *GetRecognizer)(
11489         ISpRecognizer* This,
11490         ISpObjectToken **ppRecognizer);
11491 
11492     HRESULT (STDMETHODCALLTYPE *SetInput)(
11493         ISpRecognizer* This,
11494         IUnknown *pUnkInput,
11495         WINBOOL fAllowFormatChanges);
11496 
11497     HRESULT (STDMETHODCALLTYPE *GetInputObjectToken)(
11498         ISpRecognizer* This,
11499         ISpObjectToken **ppToken);
11500 
11501     HRESULT (STDMETHODCALLTYPE *GetInputStream)(
11502         ISpRecognizer* This,
11503         ISpStreamFormat **ppStream);
11504 
11505     HRESULT (STDMETHODCALLTYPE *CreateRecoContext)(
11506         ISpRecognizer* This,
11507         ISpRecoContext **ppNewCtxt);
11508 
11509     HRESULT (STDMETHODCALLTYPE *GetRecoProfile)(
11510         ISpRecognizer* This,
11511         ISpObjectToken **ppToken);
11512 
11513     HRESULT (STDMETHODCALLTYPE *SetRecoProfile)(
11514         ISpRecognizer* This,
11515         ISpObjectToken *pToken);
11516 
11517     HRESULT (STDMETHODCALLTYPE *IsSharedInstance)(
11518         ISpRecognizer* This);
11519 
11520     HRESULT (STDMETHODCALLTYPE *GetRecoState)(
11521         ISpRecognizer* This,
11522         SPRECOSTATE *pState);
11523 
11524     HRESULT (STDMETHODCALLTYPE *SetRecoState)(
11525         ISpRecognizer* This,
11526         SPRECOSTATE NewState);
11527 
11528     HRESULT (STDMETHODCALLTYPE *GetStatus)(
11529         ISpRecognizer* This,
11530         SPRECOGNIZERSTATUS *pStatus);
11531 
11532     HRESULT (STDMETHODCALLTYPE *GetFormat)(
11533         ISpRecognizer* This,
11534         SPSTREAMFORMATTYPE WaveFormatType,
11535         GUID *pFormatId,
11536         WAVEFORMATEX **ppCoMemWFEX);
11537 
11538     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
11539         ISpRecognizer* This,
11540         LPCWSTR pszTypeOfUI,
11541         void *pvExtraData,
11542         ULONG cbExtraData,
11543         WINBOOL *pfSupported);
11544 
11545     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
11546         ISpRecognizer* This,
11547         HWND hwndParent,
11548         LPCWSTR pszTitle,
11549         LPCWSTR pszTypeOfUI,
11550         void *pvExtraData,
11551         ULONG cbExtraData);
11552 
11553     HRESULT (STDMETHODCALLTYPE *EmulateRecognition)(
11554         ISpRecognizer* This,
11555         ISpPhrase *pPhrase);
11556 
11557     END_INTERFACE
11558 } ISpRecognizerVtbl;
11559 interface ISpRecognizer {
11560     CONST_VTBL ISpRecognizerVtbl* lpVtbl;
11561 };
11562 
11563 #ifdef COBJMACROS
11564 #ifndef WIDL_C_INLINE_WRAPPERS
11565 /*** IUnknown methods ***/
11566 #define ISpRecognizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11567 #define ISpRecognizer_AddRef(This) (This)->lpVtbl->AddRef(This)
11568 #define ISpRecognizer_Release(This) (This)->lpVtbl->Release(This)
11569 /*** ISpProperties methods ***/
11570 #define ISpRecognizer_SetPropertyNum(This,pName,lValue) (This)->lpVtbl->SetPropertyNum(This,pName,lValue)
11571 #define ISpRecognizer_GetPropertyNum(This,pName,plValue) (This)->lpVtbl->GetPropertyNum(This,pName,plValue)
11572 #define ISpRecognizer_SetPropertyString(This,pName,pValue) (This)->lpVtbl->SetPropertyString(This,pName,pValue)
11573 #define ISpRecognizer_GetPropertyString(This,pName,ppCoMemValue) (This)->lpVtbl->GetPropertyString(This,pName,ppCoMemValue)
11574 /*** ISpRecognizer methods ***/
11575 #define ISpRecognizer_SetRecognizer(This,pRecognizer) (This)->lpVtbl->SetRecognizer(This,pRecognizer)
11576 #define ISpRecognizer_GetRecognizer(This,ppRecognizer) (This)->lpVtbl->GetRecognizer(This,ppRecognizer)
11577 #define ISpRecognizer_SetInput(This,pUnkInput,fAllowFormatChanges) (This)->lpVtbl->SetInput(This,pUnkInput,fAllowFormatChanges)
11578 #define ISpRecognizer_GetInputObjectToken(This,ppToken) (This)->lpVtbl->GetInputObjectToken(This,ppToken)
11579 #define ISpRecognizer_GetInputStream(This,ppStream) (This)->lpVtbl->GetInputStream(This,ppStream)
11580 #define ISpRecognizer_CreateRecoContext(This,ppNewCtxt) (This)->lpVtbl->CreateRecoContext(This,ppNewCtxt)
11581 #define ISpRecognizer_GetRecoProfile(This,ppToken) (This)->lpVtbl->GetRecoProfile(This,ppToken)
11582 #define ISpRecognizer_SetRecoProfile(This,pToken) (This)->lpVtbl->SetRecoProfile(This,pToken)
11583 #define ISpRecognizer_IsSharedInstance(This) (This)->lpVtbl->IsSharedInstance(This)
11584 #define ISpRecognizer_GetRecoState(This,pState) (This)->lpVtbl->GetRecoState(This,pState)
11585 #define ISpRecognizer_SetRecoState(This,NewState) (This)->lpVtbl->SetRecoState(This,NewState)
11586 #define ISpRecognizer_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
11587 #define ISpRecognizer_GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX) (This)->lpVtbl->GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX)
11588 #define ISpRecognizer_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported)
11589 #define ISpRecognizer_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData)
11590 #define ISpRecognizer_EmulateRecognition(This,pPhrase) (This)->lpVtbl->EmulateRecognition(This,pPhrase)
11591 #else
11592 /*** IUnknown methods ***/
11593 static FORCEINLINE HRESULT ISpRecognizer_QueryInterface(ISpRecognizer* This,REFIID riid,void **ppvObject) {
11594     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11595 }
11596 static FORCEINLINE ULONG ISpRecognizer_AddRef(ISpRecognizer* This) {
11597     return This->lpVtbl->AddRef(This);
11598 }
11599 static FORCEINLINE ULONG ISpRecognizer_Release(ISpRecognizer* This) {
11600     return This->lpVtbl->Release(This);
11601 }
11602 /*** ISpProperties methods ***/
11603 static FORCEINLINE HRESULT ISpRecognizer_SetPropertyNum(ISpRecognizer* This,LPCWSTR pName,LONG lValue) {
11604     return This->lpVtbl->SetPropertyNum(This,pName,lValue);
11605 }
11606 static FORCEINLINE HRESULT ISpRecognizer_GetPropertyNum(ISpRecognizer* This,LPCWSTR pName,LONG *plValue) {
11607     return This->lpVtbl->GetPropertyNum(This,pName,plValue);
11608 }
11609 static FORCEINLINE HRESULT ISpRecognizer_SetPropertyString(ISpRecognizer* This,LPCWSTR pName,LPCWSTR pValue) {
11610     return This->lpVtbl->SetPropertyString(This,pName,pValue);
11611 }
11612 static FORCEINLINE HRESULT ISpRecognizer_GetPropertyString(ISpRecognizer* This,LPCWSTR pName,LPWSTR *ppCoMemValue) {
11613     return This->lpVtbl->GetPropertyString(This,pName,ppCoMemValue);
11614 }
11615 /*** ISpRecognizer methods ***/
11616 static FORCEINLINE HRESULT ISpRecognizer_SetRecognizer(ISpRecognizer* This,ISpObjectToken *pRecognizer) {
11617     return This->lpVtbl->SetRecognizer(This,pRecognizer);
11618 }
11619 static FORCEINLINE HRESULT ISpRecognizer_GetRecognizer(ISpRecognizer* This,ISpObjectToken **ppRecognizer) {
11620     return This->lpVtbl->GetRecognizer(This,ppRecognizer);
11621 }
11622 static FORCEINLINE HRESULT ISpRecognizer_SetInput(ISpRecognizer* This,IUnknown *pUnkInput,WINBOOL fAllowFormatChanges) {
11623     return This->lpVtbl->SetInput(This,pUnkInput,fAllowFormatChanges);
11624 }
11625 static FORCEINLINE HRESULT ISpRecognizer_GetInputObjectToken(ISpRecognizer* This,ISpObjectToken **ppToken) {
11626     return This->lpVtbl->GetInputObjectToken(This,ppToken);
11627 }
11628 static FORCEINLINE HRESULT ISpRecognizer_GetInputStream(ISpRecognizer* This,ISpStreamFormat **ppStream) {
11629     return This->lpVtbl->GetInputStream(This,ppStream);
11630 }
11631 static FORCEINLINE HRESULT ISpRecognizer_CreateRecoContext(ISpRecognizer* This,ISpRecoContext **ppNewCtxt) {
11632     return This->lpVtbl->CreateRecoContext(This,ppNewCtxt);
11633 }
11634 static FORCEINLINE HRESULT ISpRecognizer_GetRecoProfile(ISpRecognizer* This,ISpObjectToken **ppToken) {
11635     return This->lpVtbl->GetRecoProfile(This,ppToken);
11636 }
11637 static FORCEINLINE HRESULT ISpRecognizer_SetRecoProfile(ISpRecognizer* This,ISpObjectToken *pToken) {
11638     return This->lpVtbl->SetRecoProfile(This,pToken);
11639 }
11640 static FORCEINLINE HRESULT ISpRecognizer_IsSharedInstance(ISpRecognizer* This) {
11641     return This->lpVtbl->IsSharedInstance(This);
11642 }
11643 static FORCEINLINE HRESULT ISpRecognizer_GetRecoState(ISpRecognizer* This,SPRECOSTATE *pState) {
11644     return This->lpVtbl->GetRecoState(This,pState);
11645 }
11646 static FORCEINLINE HRESULT ISpRecognizer_SetRecoState(ISpRecognizer* This,SPRECOSTATE NewState) {
11647     return This->lpVtbl->SetRecoState(This,NewState);
11648 }
11649 static FORCEINLINE HRESULT ISpRecognizer_GetStatus(ISpRecognizer* This,SPRECOGNIZERSTATUS *pStatus) {
11650     return This->lpVtbl->GetStatus(This,pStatus);
11651 }
11652 static FORCEINLINE HRESULT ISpRecognizer_GetFormat(ISpRecognizer* This,SPSTREAMFORMATTYPE WaveFormatType,GUID *pFormatId,WAVEFORMATEX **ppCoMemWFEX) {
11653     return This->lpVtbl->GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX);
11654 }
11655 static FORCEINLINE HRESULT ISpRecognizer_IsUISupported(ISpRecognizer* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,WINBOOL *pfSupported) {
11656     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported);
11657 }
11658 static FORCEINLINE HRESULT ISpRecognizer_DisplayUI(ISpRecognizer* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData) {
11659     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData);
11660 }
11661 static FORCEINLINE HRESULT ISpRecognizer_EmulateRecognition(ISpRecognizer* This,ISpPhrase *pPhrase) {
11662     return This->lpVtbl->EmulateRecognition(This,pPhrase);
11663 }
11664 #endif
11665 #endif
11666 
11667 #endif
11668 
11669 HRESULT STDMETHODCALLTYPE ISpRecognizer_SetRecognizer_Proxy(
11670     ISpRecognizer* This,
11671     ISpObjectToken *pRecognizer);
11672 void __RPC_STUB ISpRecognizer_SetRecognizer_Stub(
11673     IRpcStubBuffer* This,
11674     IRpcChannelBuffer* pRpcChannelBuffer,
11675     PRPC_MESSAGE pRpcMessage,
11676     DWORD* pdwStubPhase);
11677 HRESULT STDMETHODCALLTYPE ISpRecognizer_GetRecognizer_Proxy(
11678     ISpRecognizer* This,
11679     ISpObjectToken **ppRecognizer);
11680 void __RPC_STUB ISpRecognizer_GetRecognizer_Stub(
11681     IRpcStubBuffer* This,
11682     IRpcChannelBuffer* pRpcChannelBuffer,
11683     PRPC_MESSAGE pRpcMessage,
11684     DWORD* pdwStubPhase);
11685 HRESULT STDMETHODCALLTYPE ISpRecognizer_SetInput_Proxy(
11686     ISpRecognizer* This,
11687     IUnknown *pUnkInput,
11688     WINBOOL fAllowFormatChanges);
11689 void __RPC_STUB ISpRecognizer_SetInput_Stub(
11690     IRpcStubBuffer* This,
11691     IRpcChannelBuffer* pRpcChannelBuffer,
11692     PRPC_MESSAGE pRpcMessage,
11693     DWORD* pdwStubPhase);
11694 HRESULT STDMETHODCALLTYPE ISpRecognizer_GetInputObjectToken_Proxy(
11695     ISpRecognizer* This,
11696     ISpObjectToken **ppToken);
11697 void __RPC_STUB ISpRecognizer_GetInputObjectToken_Stub(
11698     IRpcStubBuffer* This,
11699     IRpcChannelBuffer* pRpcChannelBuffer,
11700     PRPC_MESSAGE pRpcMessage,
11701     DWORD* pdwStubPhase);
11702 HRESULT STDMETHODCALLTYPE ISpRecognizer_GetInputStream_Proxy(
11703     ISpRecognizer* This,
11704     ISpStreamFormat **ppStream);
11705 void __RPC_STUB ISpRecognizer_GetInputStream_Stub(
11706     IRpcStubBuffer* This,
11707     IRpcChannelBuffer* pRpcChannelBuffer,
11708     PRPC_MESSAGE pRpcMessage,
11709     DWORD* pdwStubPhase);
11710 HRESULT STDMETHODCALLTYPE ISpRecognizer_CreateRecoContext_Proxy(
11711     ISpRecognizer* This,
11712     ISpRecoContext **ppNewCtxt);
11713 void __RPC_STUB ISpRecognizer_CreateRecoContext_Stub(
11714     IRpcStubBuffer* This,
11715     IRpcChannelBuffer* pRpcChannelBuffer,
11716     PRPC_MESSAGE pRpcMessage,
11717     DWORD* pdwStubPhase);
11718 HRESULT STDMETHODCALLTYPE ISpRecognizer_GetRecoProfile_Proxy(
11719     ISpRecognizer* This,
11720     ISpObjectToken **ppToken);
11721 void __RPC_STUB ISpRecognizer_GetRecoProfile_Stub(
11722     IRpcStubBuffer* This,
11723     IRpcChannelBuffer* pRpcChannelBuffer,
11724     PRPC_MESSAGE pRpcMessage,
11725     DWORD* pdwStubPhase);
11726 HRESULT STDMETHODCALLTYPE ISpRecognizer_SetRecoProfile_Proxy(
11727     ISpRecognizer* This,
11728     ISpObjectToken *pToken);
11729 void __RPC_STUB ISpRecognizer_SetRecoProfile_Stub(
11730     IRpcStubBuffer* This,
11731     IRpcChannelBuffer* pRpcChannelBuffer,
11732     PRPC_MESSAGE pRpcMessage,
11733     DWORD* pdwStubPhase);
11734 HRESULT STDMETHODCALLTYPE ISpRecognizer_IsSharedInstance_Proxy(
11735     ISpRecognizer* This);
11736 void __RPC_STUB ISpRecognizer_IsSharedInstance_Stub(
11737     IRpcStubBuffer* This,
11738     IRpcChannelBuffer* pRpcChannelBuffer,
11739     PRPC_MESSAGE pRpcMessage,
11740     DWORD* pdwStubPhase);
11741 HRESULT STDMETHODCALLTYPE ISpRecognizer_GetRecoState_Proxy(
11742     ISpRecognizer* This,
11743     SPRECOSTATE *pState);
11744 void __RPC_STUB ISpRecognizer_GetRecoState_Stub(
11745     IRpcStubBuffer* This,
11746     IRpcChannelBuffer* pRpcChannelBuffer,
11747     PRPC_MESSAGE pRpcMessage,
11748     DWORD* pdwStubPhase);
11749 HRESULT STDMETHODCALLTYPE ISpRecognizer_SetRecoState_Proxy(
11750     ISpRecognizer* This,
11751     SPRECOSTATE NewState);
11752 void __RPC_STUB ISpRecognizer_SetRecoState_Stub(
11753     IRpcStubBuffer* This,
11754     IRpcChannelBuffer* pRpcChannelBuffer,
11755     PRPC_MESSAGE pRpcMessage,
11756     DWORD* pdwStubPhase);
11757 HRESULT STDMETHODCALLTYPE ISpRecognizer_GetStatus_Proxy(
11758     ISpRecognizer* This,
11759     SPRECOGNIZERSTATUS *pStatus);
11760 void __RPC_STUB ISpRecognizer_GetStatus_Stub(
11761     IRpcStubBuffer* This,
11762     IRpcChannelBuffer* pRpcChannelBuffer,
11763     PRPC_MESSAGE pRpcMessage,
11764     DWORD* pdwStubPhase);
11765 HRESULT STDMETHODCALLTYPE ISpRecognizer_GetFormat_Proxy(
11766     ISpRecognizer* This,
11767     SPSTREAMFORMATTYPE WaveFormatType,
11768     GUID *pFormatId,
11769     WAVEFORMATEX **ppCoMemWFEX);
11770 void __RPC_STUB ISpRecognizer_GetFormat_Stub(
11771     IRpcStubBuffer* This,
11772     IRpcChannelBuffer* pRpcChannelBuffer,
11773     PRPC_MESSAGE pRpcMessage,
11774     DWORD* pdwStubPhase);
11775 HRESULT STDMETHODCALLTYPE ISpRecognizer_EmulateRecognition_Proxy(
11776     ISpRecognizer* This,
11777     ISpPhrase *pPhrase);
11778 void __RPC_STUB ISpRecognizer_EmulateRecognition_Stub(
11779     IRpcStubBuffer* This,
11780     IRpcChannelBuffer* pRpcChannelBuffer,
11781     PRPC_MESSAGE pRpcMessage,
11782     DWORD* pdwStubPhase);
11783 
11784 #endif  /* __ISpRecognizer_INTERFACE_DEFINED__ */
11785 
11786 /*****************************************************************************
11787  * ISpSerializeState interface
11788  */
11789 #ifndef __ISpSerializeState_INTERFACE_DEFINED__
11790 #define __ISpSerializeState_INTERFACE_DEFINED__
11791 
11792 DEFINE_GUID(IID_ISpSerializeState, 0x21b501a0, 0x0ec7, 0x46c9, 0x92,0xc3, 0xa2,0xbc,0x78,0x4c,0x54,0xb9);
11793 #if defined(__cplusplus) && !defined(CINTERFACE)
11794 MIDL_INTERFACE("21b501a0-0ec7-46c9-92c3-a2bc784c54b9")
11795 ISpSerializeState : public IUnknown
11796 {
11797     virtual HRESULT STDMETHODCALLTYPE GetSerializedState(
11798         BYTE **ppbData,
11799         ULONG *pulSize,
11800         DWORD dwReserved) = 0;
11801 
11802     virtual HRESULT STDMETHODCALLTYPE SetSerializedState(
11803         BYTE *pbData,
11804         ULONG ulSize,
11805         DWORD dwReserved) = 0;
11806 
11807 };
11808 #ifdef __CRT_UUID_DECL
11809 __CRT_UUID_DECL(ISpSerializeState, 0x21b501a0, 0x0ec7, 0x46c9, 0x92,0xc3, 0xa2,0xbc,0x78,0x4c,0x54,0xb9)
11810 #endif
11811 #else
11812 typedef struct ISpSerializeStateVtbl {
11813     BEGIN_INTERFACE
11814 
11815     /*** IUnknown methods ***/
11816     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11817         ISpSerializeState* This,
11818         REFIID riid,
11819         void **ppvObject);
11820 
11821     ULONG (STDMETHODCALLTYPE *AddRef)(
11822         ISpSerializeState* This);
11823 
11824     ULONG (STDMETHODCALLTYPE *Release)(
11825         ISpSerializeState* This);
11826 
11827     /*** ISpSerializeState methods ***/
11828     HRESULT (STDMETHODCALLTYPE *GetSerializedState)(
11829         ISpSerializeState* This,
11830         BYTE **ppbData,
11831         ULONG *pulSize,
11832         DWORD dwReserved);
11833 
11834     HRESULT (STDMETHODCALLTYPE *SetSerializedState)(
11835         ISpSerializeState* This,
11836         BYTE *pbData,
11837         ULONG ulSize,
11838         DWORD dwReserved);
11839 
11840     END_INTERFACE
11841 } ISpSerializeStateVtbl;
11842 interface ISpSerializeState {
11843     CONST_VTBL ISpSerializeStateVtbl* lpVtbl;
11844 };
11845 
11846 #ifdef COBJMACROS
11847 #ifndef WIDL_C_INLINE_WRAPPERS
11848 /*** IUnknown methods ***/
11849 #define ISpSerializeState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11850 #define ISpSerializeState_AddRef(This) (This)->lpVtbl->AddRef(This)
11851 #define ISpSerializeState_Release(This) (This)->lpVtbl->Release(This)
11852 /*** ISpSerializeState methods ***/
11853 #define ISpSerializeState_GetSerializedState(This,ppbData,pulSize,dwReserved) (This)->lpVtbl->GetSerializedState(This,ppbData,pulSize,dwReserved)
11854 #define ISpSerializeState_SetSerializedState(This,pbData,ulSize,dwReserved) (This)->lpVtbl->SetSerializedState(This,pbData,ulSize,dwReserved)
11855 #else
11856 /*** IUnknown methods ***/
11857 static FORCEINLINE HRESULT ISpSerializeState_QueryInterface(ISpSerializeState* This,REFIID riid,void **ppvObject) {
11858     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11859 }
11860 static FORCEINLINE ULONG ISpSerializeState_AddRef(ISpSerializeState* This) {
11861     return This->lpVtbl->AddRef(This);
11862 }
11863 static FORCEINLINE ULONG ISpSerializeState_Release(ISpSerializeState* This) {
11864     return This->lpVtbl->Release(This);
11865 }
11866 /*** ISpSerializeState methods ***/
11867 static FORCEINLINE HRESULT ISpSerializeState_GetSerializedState(ISpSerializeState* This,BYTE **ppbData,ULONG *pulSize,DWORD dwReserved) {
11868     return This->lpVtbl->GetSerializedState(This,ppbData,pulSize,dwReserved);
11869 }
11870 static FORCEINLINE HRESULT ISpSerializeState_SetSerializedState(ISpSerializeState* This,BYTE *pbData,ULONG ulSize,DWORD dwReserved) {
11871     return This->lpVtbl->SetSerializedState(This,pbData,ulSize,dwReserved);
11872 }
11873 #endif
11874 #endif
11875 
11876 #endif
11877 
11878 HRESULT STDMETHODCALLTYPE ISpSerializeState_GetSerializedState_Proxy(
11879     ISpSerializeState* This,
11880     BYTE **ppbData,
11881     ULONG *pulSize,
11882     DWORD dwReserved);
11883 void __RPC_STUB ISpSerializeState_GetSerializedState_Stub(
11884     IRpcStubBuffer* This,
11885     IRpcChannelBuffer* pRpcChannelBuffer,
11886     PRPC_MESSAGE pRpcMessage,
11887     DWORD* pdwStubPhase);
11888 HRESULT STDMETHODCALLTYPE ISpSerializeState_SetSerializedState_Proxy(
11889     ISpSerializeState* This,
11890     BYTE *pbData,
11891     ULONG ulSize,
11892     DWORD dwReserved);
11893 void __RPC_STUB ISpSerializeState_SetSerializedState_Stub(
11894     IRpcStubBuffer* This,
11895     IRpcChannelBuffer* pRpcChannelBuffer,
11896     PRPC_MESSAGE pRpcMessage,
11897     DWORD* pdwStubPhase);
11898 
11899 #endif  /* __ISpSerializeState_INTERFACE_DEFINED__ */
11900 
11901 /*****************************************************************************
11902  * ISpRecognizer2 interface
11903  */
11904 #ifndef __ISpRecognizer2_INTERFACE_DEFINED__
11905 #define __ISpRecognizer2_INTERFACE_DEFINED__
11906 
11907 DEFINE_GUID(IID_ISpRecognizer2, 0x8fc6d974, 0xc81e, 0x4098, 0x93,0xc5, 0x01,0x47,0xf6,0x1e,0xd4,0xd3);
11908 #if defined(__cplusplus) && !defined(CINTERFACE)
11909 MIDL_INTERFACE("8fc6d974-c81e-4098-93c5-0147f61ed4d3")
11910 ISpRecognizer2 : public IUnknown
11911 {
11912     virtual HRESULT STDMETHODCALLTYPE EmulateRecognitionEx(
11913         ISpPhrase *pPhrase,
11914         DWORD dwCompareFlags) = 0;
11915 
11916     virtual HRESULT STDMETHODCALLTYPE SetTrainingState(
11917         WINBOOL fDoingTraining,
11918         WINBOOL fAdaptFromTrainingData) = 0;
11919 
11920     virtual HRESULT STDMETHODCALLTYPE ResetAcousticModelAdaptation(
11921         ) = 0;
11922 
11923 };
11924 #ifdef __CRT_UUID_DECL
11925 __CRT_UUID_DECL(ISpRecognizer2, 0x8fc6d974, 0xc81e, 0x4098, 0x93,0xc5, 0x01,0x47,0xf6,0x1e,0xd4,0xd3)
11926 #endif
11927 #else
11928 typedef struct ISpRecognizer2Vtbl {
11929     BEGIN_INTERFACE
11930 
11931     /*** IUnknown methods ***/
11932     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11933         ISpRecognizer2* This,
11934         REFIID riid,
11935         void **ppvObject);
11936 
11937     ULONG (STDMETHODCALLTYPE *AddRef)(
11938         ISpRecognizer2* This);
11939 
11940     ULONG (STDMETHODCALLTYPE *Release)(
11941         ISpRecognizer2* This);
11942 
11943     /*** ISpRecognizer2 methods ***/
11944     HRESULT (STDMETHODCALLTYPE *EmulateRecognitionEx)(
11945         ISpRecognizer2* This,
11946         ISpPhrase *pPhrase,
11947         DWORD dwCompareFlags);
11948 
11949     HRESULT (STDMETHODCALLTYPE *SetTrainingState)(
11950         ISpRecognizer2* This,
11951         WINBOOL fDoingTraining,
11952         WINBOOL fAdaptFromTrainingData);
11953 
11954     HRESULT (STDMETHODCALLTYPE *ResetAcousticModelAdaptation)(
11955         ISpRecognizer2* This);
11956 
11957     END_INTERFACE
11958 } ISpRecognizer2Vtbl;
11959 interface ISpRecognizer2 {
11960     CONST_VTBL ISpRecognizer2Vtbl* lpVtbl;
11961 };
11962 
11963 #ifdef COBJMACROS
11964 #ifndef WIDL_C_INLINE_WRAPPERS
11965 /*** IUnknown methods ***/
11966 #define ISpRecognizer2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11967 #define ISpRecognizer2_AddRef(This) (This)->lpVtbl->AddRef(This)
11968 #define ISpRecognizer2_Release(This) (This)->lpVtbl->Release(This)
11969 /*** ISpRecognizer2 methods ***/
11970 #define ISpRecognizer2_EmulateRecognitionEx(This,pPhrase,dwCompareFlags) (This)->lpVtbl->EmulateRecognitionEx(This,pPhrase,dwCompareFlags)
11971 #define ISpRecognizer2_SetTrainingState(This,fDoingTraining,fAdaptFromTrainingData) (This)->lpVtbl->SetTrainingState(This,fDoingTraining,fAdaptFromTrainingData)
11972 #define ISpRecognizer2_ResetAcousticModelAdaptation(This) (This)->lpVtbl->ResetAcousticModelAdaptation(This)
11973 #else
11974 /*** IUnknown methods ***/
11975 static FORCEINLINE HRESULT ISpRecognizer2_QueryInterface(ISpRecognizer2* This,REFIID riid,void **ppvObject) {
11976     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11977 }
11978 static FORCEINLINE ULONG ISpRecognizer2_AddRef(ISpRecognizer2* This) {
11979     return This->lpVtbl->AddRef(This);
11980 }
11981 static FORCEINLINE ULONG ISpRecognizer2_Release(ISpRecognizer2* This) {
11982     return This->lpVtbl->Release(This);
11983 }
11984 /*** ISpRecognizer2 methods ***/
11985 static FORCEINLINE HRESULT ISpRecognizer2_EmulateRecognitionEx(ISpRecognizer2* This,ISpPhrase *pPhrase,DWORD dwCompareFlags) {
11986     return This->lpVtbl->EmulateRecognitionEx(This,pPhrase,dwCompareFlags);
11987 }
11988 static FORCEINLINE HRESULT ISpRecognizer2_SetTrainingState(ISpRecognizer2* This,WINBOOL fDoingTraining,WINBOOL fAdaptFromTrainingData) {
11989     return This->lpVtbl->SetTrainingState(This,fDoingTraining,fAdaptFromTrainingData);
11990 }
11991 static FORCEINLINE HRESULT ISpRecognizer2_ResetAcousticModelAdaptation(ISpRecognizer2* This) {
11992     return This->lpVtbl->ResetAcousticModelAdaptation(This);
11993 }
11994 #endif
11995 #endif
11996 
11997 #endif
11998 
11999 HRESULT STDMETHODCALLTYPE ISpRecognizer2_EmulateRecognitionEx_Proxy(
12000     ISpRecognizer2* This,
12001     ISpPhrase *pPhrase,
12002     DWORD dwCompareFlags);
12003 void __RPC_STUB ISpRecognizer2_EmulateRecognitionEx_Stub(
12004     IRpcStubBuffer* This,
12005     IRpcChannelBuffer* pRpcChannelBuffer,
12006     PRPC_MESSAGE pRpcMessage,
12007     DWORD* pdwStubPhase);
12008 HRESULT STDMETHODCALLTYPE ISpRecognizer2_SetTrainingState_Proxy(
12009     ISpRecognizer2* This,
12010     WINBOOL fDoingTraining,
12011     WINBOOL fAdaptFromTrainingData);
12012 void __RPC_STUB ISpRecognizer2_SetTrainingState_Stub(
12013     IRpcStubBuffer* This,
12014     IRpcChannelBuffer* pRpcChannelBuffer,
12015     PRPC_MESSAGE pRpcMessage,
12016     DWORD* pdwStubPhase);
12017 HRESULT STDMETHODCALLTYPE ISpRecognizer2_ResetAcousticModelAdaptation_Proxy(
12018     ISpRecognizer2* This);
12019 void __RPC_STUB ISpRecognizer2_ResetAcousticModelAdaptation_Stub(
12020     IRpcStubBuffer* This,
12021     IRpcChannelBuffer* pRpcChannelBuffer,
12022     PRPC_MESSAGE pRpcMessage,
12023     DWORD* pdwStubPhase);
12024 
12025 #endif  /* __ISpRecognizer2_INTERFACE_DEFINED__ */
12026 
12027 typedef struct SPNORMALIZATIONLIST {
12028     ULONG ulSize;
12029     WCHAR **ppszzNormalizedList;
12030 } SPNORMALIZATIONLIST;
12031 /*****************************************************************************
12032  * ISpEnginePronunciation interface
12033  */
12034 #ifndef __ISpEnginePronunciation_INTERFACE_DEFINED__
12035 #define __ISpEnginePronunciation_INTERFACE_DEFINED__
12036 
12037 DEFINE_GUID(IID_ISpEnginePronunciation, 0xc360ce4b, 0x76d1, 0x4214, 0xad,0x68, 0x52,0x65,0x7d,0x50,0x83,0xda);
12038 #if defined(__cplusplus) && !defined(CINTERFACE)
12039 MIDL_INTERFACE("c360ce4b-76d1-4214-ad68-52657d5083da")
12040 ISpEnginePronunciation : public IUnknown
12041 {
12042     virtual HRESULT STDMETHODCALLTYPE Normalize(
12043         LPCWSTR pszWord,
12044         LPCWSTR pszLeftContext,
12045         LPCWSTR pszRightContext,
12046         WORD LangID,
12047         SPNORMALIZATIONLIST *pNormalizationList) = 0;
12048 
12049     virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
12050         LPCWSTR pszWord,
12051         LPCWSTR pszLeftContext,
12052         LPCWSTR pszRightContext,
12053         WORD LangID,
12054         SPWORDPRONUNCIATIONLIST *pEnginePronunciationList) = 0;
12055 
12056 };
12057 #ifdef __CRT_UUID_DECL
12058 __CRT_UUID_DECL(ISpEnginePronunciation, 0xc360ce4b, 0x76d1, 0x4214, 0xad,0x68, 0x52,0x65,0x7d,0x50,0x83,0xda)
12059 #endif
12060 #else
12061 typedef struct ISpEnginePronunciationVtbl {
12062     BEGIN_INTERFACE
12063 
12064     /*** IUnknown methods ***/
12065     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12066         ISpEnginePronunciation* This,
12067         REFIID riid,
12068         void **ppvObject);
12069 
12070     ULONG (STDMETHODCALLTYPE *AddRef)(
12071         ISpEnginePronunciation* This);
12072 
12073     ULONG (STDMETHODCALLTYPE *Release)(
12074         ISpEnginePronunciation* This);
12075 
12076     /*** ISpEnginePronunciation methods ***/
12077     HRESULT (STDMETHODCALLTYPE *Normalize)(
12078         ISpEnginePronunciation* This,
12079         LPCWSTR pszWord,
12080         LPCWSTR pszLeftContext,
12081         LPCWSTR pszRightContext,
12082         WORD LangID,
12083         SPNORMALIZATIONLIST *pNormalizationList);
12084 
12085     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
12086         ISpEnginePronunciation* This,
12087         LPCWSTR pszWord,
12088         LPCWSTR pszLeftContext,
12089         LPCWSTR pszRightContext,
12090         WORD LangID,
12091         SPWORDPRONUNCIATIONLIST *pEnginePronunciationList);
12092 
12093     END_INTERFACE
12094 } ISpEnginePronunciationVtbl;
12095 interface ISpEnginePronunciation {
12096     CONST_VTBL ISpEnginePronunciationVtbl* lpVtbl;
12097 };
12098 
12099 #ifdef COBJMACROS
12100 #ifndef WIDL_C_INLINE_WRAPPERS
12101 /*** IUnknown methods ***/
12102 #define ISpEnginePronunciation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12103 #define ISpEnginePronunciation_AddRef(This) (This)->lpVtbl->AddRef(This)
12104 #define ISpEnginePronunciation_Release(This) (This)->lpVtbl->Release(This)
12105 /*** ISpEnginePronunciation methods ***/
12106 #define ISpEnginePronunciation_Normalize(This,pszWord,pszLeftContext,pszRightContext,LangID,pNormalizationList) (This)->lpVtbl->Normalize(This,pszWord,pszLeftContext,pszRightContext,LangID,pNormalizationList)
12107 #define ISpEnginePronunciation_GetPronunciations(This,pszWord,pszLeftContext,pszRightContext,LangID,pEnginePronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,pszLeftContext,pszRightContext,LangID,pEnginePronunciationList)
12108 #else
12109 /*** IUnknown methods ***/
12110 static FORCEINLINE HRESULT ISpEnginePronunciation_QueryInterface(ISpEnginePronunciation* This,REFIID riid,void **ppvObject) {
12111     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12112 }
12113 static FORCEINLINE ULONG ISpEnginePronunciation_AddRef(ISpEnginePronunciation* This) {
12114     return This->lpVtbl->AddRef(This);
12115 }
12116 static FORCEINLINE ULONG ISpEnginePronunciation_Release(ISpEnginePronunciation* This) {
12117     return This->lpVtbl->Release(This);
12118 }
12119 /*** ISpEnginePronunciation methods ***/
12120 static FORCEINLINE HRESULT ISpEnginePronunciation_Normalize(ISpEnginePronunciation* This,LPCWSTR pszWord,LPCWSTR pszLeftContext,LPCWSTR pszRightContext,WORD LangID,SPNORMALIZATIONLIST *pNormalizationList) {
12121     return This->lpVtbl->Normalize(This,pszWord,pszLeftContext,pszRightContext,LangID,pNormalizationList);
12122 }
12123 static FORCEINLINE HRESULT ISpEnginePronunciation_GetPronunciations(ISpEnginePronunciation* This,LPCWSTR pszWord,LPCWSTR pszLeftContext,LPCWSTR pszRightContext,WORD LangID,SPWORDPRONUNCIATIONLIST *pEnginePronunciationList) {
12124     return This->lpVtbl->GetPronunciations(This,pszWord,pszLeftContext,pszRightContext,LangID,pEnginePronunciationList);
12125 }
12126 #endif
12127 #endif
12128 
12129 #endif
12130 
12131 HRESULT STDMETHODCALLTYPE ISpEnginePronunciation_Normalize_Proxy(
12132     ISpEnginePronunciation* This,
12133     LPCWSTR pszWord,
12134     LPCWSTR pszLeftContext,
12135     LPCWSTR pszRightContext,
12136     WORD LangID,
12137     SPNORMALIZATIONLIST *pNormalizationList);
12138 void __RPC_STUB ISpEnginePronunciation_Normalize_Stub(
12139     IRpcStubBuffer* This,
12140     IRpcChannelBuffer* pRpcChannelBuffer,
12141     PRPC_MESSAGE pRpcMessage,
12142     DWORD* pdwStubPhase);
12143 HRESULT STDMETHODCALLTYPE ISpEnginePronunciation_GetPronunciations_Proxy(
12144     ISpEnginePronunciation* This,
12145     LPCWSTR pszWord,
12146     LPCWSTR pszLeftContext,
12147     LPCWSTR pszRightContext,
12148     WORD LangID,
12149     SPWORDPRONUNCIATIONLIST *pEnginePronunciationList);
12150 void __RPC_STUB ISpEnginePronunciation_GetPronunciations_Stub(
12151     IRpcStubBuffer* This,
12152     IRpcChannelBuffer* pRpcChannelBuffer,
12153     PRPC_MESSAGE pRpcMessage,
12154     DWORD* pdwStubPhase);
12155 
12156 #endif  /* __ISpEnginePronunciation_INTERFACE_DEFINED__ */
12157 
12158 typedef struct SPDISPLAYTOKEN {
12159     const WCHAR *pszLexical;
12160     const WCHAR *pszDisplay;
12161     BYTE bDisplayAttributes;
12162 } SPDISPLAYTOKEN;
12163 typedef struct SPDISPLAYPHRASE {
12164     ULONG ulNumTokens;
12165     SPDISPLAYTOKEN *pTokens;
12166 } SPDISPLAYPHRASE;
12167 /*****************************************************************************
12168  * ISpDisplayAlternates interface
12169  */
12170 #ifndef __ISpDisplayAlternates_INTERFACE_DEFINED__
12171 #define __ISpDisplayAlternates_INTERFACE_DEFINED__
12172 
12173 DEFINE_GUID(IID_ISpDisplayAlternates, 0xc8d7c7e2, 0x0dde, 0x44b7, 0xaf,0xe3, 0xb0,0xc9,0x91,0xfb,0xeb,0x5e);
12174 #if defined(__cplusplus) && !defined(CINTERFACE)
12175 MIDL_INTERFACE("c8d7c7e2-0dde-44b7-afe3-b0c991fbeb5e")
12176 ISpDisplayAlternates : public IUnknown
12177 {
12178     virtual HRESULT STDMETHODCALLTYPE GetDisplayAlternates(
12179         const SPDISPLAYPHRASE *pPhrase,
12180         ULONG cRequestCount,
12181         SPDISPLAYPHRASE **ppCoMemPhrases,
12182         ULONG *pcPhrasesReturned) = 0;
12183 
12184     virtual HRESULT STDMETHODCALLTYPE SetFullStopTrailSpace(
12185         ULONG ulTrailSpace) = 0;
12186 
12187 };
12188 #ifdef __CRT_UUID_DECL
12189 __CRT_UUID_DECL(ISpDisplayAlternates, 0xc8d7c7e2, 0x0dde, 0x44b7, 0xaf,0xe3, 0xb0,0xc9,0x91,0xfb,0xeb,0x5e)
12190 #endif
12191 #else
12192 typedef struct ISpDisplayAlternatesVtbl {
12193     BEGIN_INTERFACE
12194 
12195     /*** IUnknown methods ***/
12196     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12197         ISpDisplayAlternates* This,
12198         REFIID riid,
12199         void **ppvObject);
12200 
12201     ULONG (STDMETHODCALLTYPE *AddRef)(
12202         ISpDisplayAlternates* This);
12203 
12204     ULONG (STDMETHODCALLTYPE *Release)(
12205         ISpDisplayAlternates* This);
12206 
12207     /*** ISpDisplayAlternates methods ***/
12208     HRESULT (STDMETHODCALLTYPE *GetDisplayAlternates)(
12209         ISpDisplayAlternates* This,
12210         const SPDISPLAYPHRASE *pPhrase,
12211         ULONG cRequestCount,
12212         SPDISPLAYPHRASE **ppCoMemPhrases,
12213         ULONG *pcPhrasesReturned);
12214 
12215     HRESULT (STDMETHODCALLTYPE *SetFullStopTrailSpace)(
12216         ISpDisplayAlternates* This,
12217         ULONG ulTrailSpace);
12218 
12219     END_INTERFACE
12220 } ISpDisplayAlternatesVtbl;
12221 interface ISpDisplayAlternates {
12222     CONST_VTBL ISpDisplayAlternatesVtbl* lpVtbl;
12223 };
12224 
12225 #ifdef COBJMACROS
12226 #ifndef WIDL_C_INLINE_WRAPPERS
12227 /*** IUnknown methods ***/
12228 #define ISpDisplayAlternates_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12229 #define ISpDisplayAlternates_AddRef(This) (This)->lpVtbl->AddRef(This)
12230 #define ISpDisplayAlternates_Release(This) (This)->lpVtbl->Release(This)
12231 /*** ISpDisplayAlternates methods ***/
12232 #define ISpDisplayAlternates_GetDisplayAlternates(This,pPhrase,cRequestCount,ppCoMemPhrases,pcPhrasesReturned) (This)->lpVtbl->GetDisplayAlternates(This,pPhrase,cRequestCount,ppCoMemPhrases,pcPhrasesReturned)
12233 #define ISpDisplayAlternates_SetFullStopTrailSpace(This,ulTrailSpace) (This)->lpVtbl->SetFullStopTrailSpace(This,ulTrailSpace)
12234 #else
12235 /*** IUnknown methods ***/
12236 static FORCEINLINE HRESULT ISpDisplayAlternates_QueryInterface(ISpDisplayAlternates* This,REFIID riid,void **ppvObject) {
12237     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12238 }
12239 static FORCEINLINE ULONG ISpDisplayAlternates_AddRef(ISpDisplayAlternates* This) {
12240     return This->lpVtbl->AddRef(This);
12241 }
12242 static FORCEINLINE ULONG ISpDisplayAlternates_Release(ISpDisplayAlternates* This) {
12243     return This->lpVtbl->Release(This);
12244 }
12245 /*** ISpDisplayAlternates methods ***/
12246 static FORCEINLINE HRESULT ISpDisplayAlternates_GetDisplayAlternates(ISpDisplayAlternates* This,const SPDISPLAYPHRASE *pPhrase,ULONG cRequestCount,SPDISPLAYPHRASE **ppCoMemPhrases,ULONG *pcPhrasesReturned) {
12247     return This->lpVtbl->GetDisplayAlternates(This,pPhrase,cRequestCount,ppCoMemPhrases,pcPhrasesReturned);
12248 }
12249 static FORCEINLINE HRESULT ISpDisplayAlternates_SetFullStopTrailSpace(ISpDisplayAlternates* This,ULONG ulTrailSpace) {
12250     return This->lpVtbl->SetFullStopTrailSpace(This,ulTrailSpace);
12251 }
12252 #endif
12253 #endif
12254 
12255 #endif
12256 
12257 HRESULT STDMETHODCALLTYPE ISpDisplayAlternates_GetDisplayAlternates_Proxy(
12258     ISpDisplayAlternates* This,
12259     const SPDISPLAYPHRASE *pPhrase,
12260     ULONG cRequestCount,
12261     SPDISPLAYPHRASE **ppCoMemPhrases,
12262     ULONG *pcPhrasesReturned);
12263 void __RPC_STUB ISpDisplayAlternates_GetDisplayAlternates_Stub(
12264     IRpcStubBuffer* This,
12265     IRpcChannelBuffer* pRpcChannelBuffer,
12266     PRPC_MESSAGE pRpcMessage,
12267     DWORD* pdwStubPhase);
12268 HRESULT STDMETHODCALLTYPE ISpDisplayAlternates_SetFullStopTrailSpace_Proxy(
12269     ISpDisplayAlternates* This,
12270     ULONG ulTrailSpace);
12271 void __RPC_STUB ISpDisplayAlternates_SetFullStopTrailSpace_Stub(
12272     IRpcStubBuffer* This,
12273     IRpcChannelBuffer* pRpcChannelBuffer,
12274     PRPC_MESSAGE pRpcMessage,
12275     DWORD* pdwStubPhase);
12276 
12277 #endif  /* __ISpDisplayAlternates_INTERFACE_DEFINED__ */
12278 
12279 
12280 DEFINE_GUID(LIBID_SpeechLib, 0xc866ca3a, 0x32f7, 0x11d2, 0x96,0x02, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
12281 
12282 #ifndef __ISpeechDataKey_FWD_DEFINED__
12283 #define __ISpeechDataKey_FWD_DEFINED__
12284 typedef interface ISpeechDataKey ISpeechDataKey;
12285 #endif
12286 
12287 #ifndef __ISpeechObjectToken_FWD_DEFINED__
12288 #define __ISpeechObjectToken_FWD_DEFINED__
12289 typedef interface ISpeechObjectToken ISpeechObjectToken;
12290 #endif
12291 
12292 #ifndef __ISpeechObjectTokens_FWD_DEFINED__
12293 #define __ISpeechObjectTokens_FWD_DEFINED__
12294 typedef interface ISpeechObjectTokens ISpeechObjectTokens;
12295 #endif
12296 
12297 #ifndef __ISpeechObjectTokenCategory_FWD_DEFINED__
12298 #define __ISpeechObjectTokenCategory_FWD_DEFINED__
12299 typedef interface ISpeechObjectTokenCategory ISpeechObjectTokenCategory;
12300 #endif
12301 
12302 #ifndef __ISpeechAudioBufferInfo_FWD_DEFINED__
12303 #define __ISpeechAudioBufferInfo_FWD_DEFINED__
12304 typedef interface ISpeechAudioBufferInfo ISpeechAudioBufferInfo;
12305 #endif
12306 
12307 #ifndef __ISpeechAudioStatus_FWD_DEFINED__
12308 #define __ISpeechAudioStatus_FWD_DEFINED__
12309 typedef interface ISpeechAudioStatus ISpeechAudioStatus;
12310 #endif
12311 
12312 #ifndef __ISpeechAudioFormat_FWD_DEFINED__
12313 #define __ISpeechAudioFormat_FWD_DEFINED__
12314 typedef interface ISpeechAudioFormat ISpeechAudioFormat;
12315 #endif
12316 
12317 #ifndef __ISpeechWaveFormatEx_FWD_DEFINED__
12318 #define __ISpeechWaveFormatEx_FWD_DEFINED__
12319 typedef interface ISpeechWaveFormatEx ISpeechWaveFormatEx;
12320 #endif
12321 
12322 #ifndef __ISpeechBaseStream_FWD_DEFINED__
12323 #define __ISpeechBaseStream_FWD_DEFINED__
12324 typedef interface ISpeechBaseStream ISpeechBaseStream;
12325 #endif
12326 
12327 #ifndef __ISpeechFileStream_FWD_DEFINED__
12328 #define __ISpeechFileStream_FWD_DEFINED__
12329 typedef interface ISpeechFileStream ISpeechFileStream;
12330 #endif
12331 
12332 #ifndef __ISpeechMemoryStream_FWD_DEFINED__
12333 #define __ISpeechMemoryStream_FWD_DEFINED__
12334 typedef interface ISpeechMemoryStream ISpeechMemoryStream;
12335 #endif
12336 
12337 #ifndef __ISpeechCustomStream_FWD_DEFINED__
12338 #define __ISpeechCustomStream_FWD_DEFINED__
12339 typedef interface ISpeechCustomStream ISpeechCustomStream;
12340 #endif
12341 
12342 #ifndef __ISpeechAudio_FWD_DEFINED__
12343 #define __ISpeechAudio_FWD_DEFINED__
12344 typedef interface ISpeechAudio ISpeechAudio;
12345 #endif
12346 
12347 #ifndef __ISpeechMMSysAudio_FWD_DEFINED__
12348 #define __ISpeechMMSysAudio_FWD_DEFINED__
12349 typedef interface ISpeechMMSysAudio ISpeechMMSysAudio;
12350 #endif
12351 
12352 #ifndef __ISpeechVoice_FWD_DEFINED__
12353 #define __ISpeechVoice_FWD_DEFINED__
12354 typedef interface ISpeechVoice ISpeechVoice;
12355 #endif
12356 
12357 #ifndef __ISpeechVoiceStatus_FWD_DEFINED__
12358 #define __ISpeechVoiceStatus_FWD_DEFINED__
12359 typedef interface ISpeechVoiceStatus ISpeechVoiceStatus;
12360 #endif
12361 
12362 #ifndef ___ISpeechVoiceEvents_FWD_DEFINED__
12363 #define ___ISpeechVoiceEvents_FWD_DEFINED__
12364 typedef interface _ISpeechVoiceEvents _ISpeechVoiceEvents;
12365 #endif
12366 
12367 #ifndef __ISpeechRecognizer_FWD_DEFINED__
12368 #define __ISpeechRecognizer_FWD_DEFINED__
12369 typedef interface ISpeechRecognizer ISpeechRecognizer;
12370 #endif
12371 
12372 #ifndef __ISpeechRecognizerStatus_FWD_DEFINED__
12373 #define __ISpeechRecognizerStatus_FWD_DEFINED__
12374 typedef interface ISpeechRecognizerStatus ISpeechRecognizerStatus;
12375 #endif
12376 
12377 #ifndef __ISpeechRecoContext_FWD_DEFINED__
12378 #define __ISpeechRecoContext_FWD_DEFINED__
12379 typedef interface ISpeechRecoContext ISpeechRecoContext;
12380 #endif
12381 
12382 #ifndef __ISpeechRecoGrammar_FWD_DEFINED__
12383 #define __ISpeechRecoGrammar_FWD_DEFINED__
12384 typedef interface ISpeechRecoGrammar ISpeechRecoGrammar;
12385 #endif
12386 
12387 #ifndef ___ISpeechRecoContextEvents_FWD_DEFINED__
12388 #define ___ISpeechRecoContextEvents_FWD_DEFINED__
12389 typedef interface _ISpeechRecoContextEvents _ISpeechRecoContextEvents;
12390 #endif
12391 
12392 #ifndef __ISpeechGrammarRule_FWD_DEFINED__
12393 #define __ISpeechGrammarRule_FWD_DEFINED__
12394 typedef interface ISpeechGrammarRule ISpeechGrammarRule;
12395 #endif
12396 
12397 #ifndef __ISpeechGrammarRules_FWD_DEFINED__
12398 #define __ISpeechGrammarRules_FWD_DEFINED__
12399 typedef interface ISpeechGrammarRules ISpeechGrammarRules;
12400 #endif
12401 
12402 #ifndef __ISpeechGrammarRuleState_FWD_DEFINED__
12403 #define __ISpeechGrammarRuleState_FWD_DEFINED__
12404 typedef interface ISpeechGrammarRuleState ISpeechGrammarRuleState;
12405 #endif
12406 
12407 #ifndef __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
12408 #define __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
12409 typedef interface ISpeechGrammarRuleStateTransition ISpeechGrammarRuleStateTransition;
12410 #endif
12411 
12412 #ifndef __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
12413 #define __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
12414 typedef interface ISpeechGrammarRuleStateTransitions ISpeechGrammarRuleStateTransitions;
12415 #endif
12416 
12417 #ifndef __ISpeechTextSelectionInformation_FWD_DEFINED__
12418 #define __ISpeechTextSelectionInformation_FWD_DEFINED__
12419 typedef interface ISpeechTextSelectionInformation ISpeechTextSelectionInformation;
12420 #endif
12421 
12422 #ifndef __ISpeechRecoResult_FWD_DEFINED__
12423 #define __ISpeechRecoResult_FWD_DEFINED__
12424 typedef interface ISpeechRecoResult ISpeechRecoResult;
12425 #endif
12426 
12427 #ifndef __ISpeechRecoResult2_FWD_DEFINED__
12428 #define __ISpeechRecoResult2_FWD_DEFINED__
12429 typedef interface ISpeechRecoResult2 ISpeechRecoResult2;
12430 #endif
12431 
12432 #ifndef __ISpeechRecoResultTimes_FWD_DEFINED__
12433 #define __ISpeechRecoResultTimes_FWD_DEFINED__
12434 typedef interface ISpeechRecoResultTimes ISpeechRecoResultTimes;
12435 #endif
12436 
12437 #ifndef __ISpeechPhraseAlternate_FWD_DEFINED__
12438 #define __ISpeechPhraseAlternate_FWD_DEFINED__
12439 typedef interface ISpeechPhraseAlternate ISpeechPhraseAlternate;
12440 #endif
12441 
12442 #ifndef __ISpeechPhraseAlternates_FWD_DEFINED__
12443 #define __ISpeechPhraseAlternates_FWD_DEFINED__
12444 typedef interface ISpeechPhraseAlternates ISpeechPhraseAlternates;
12445 #endif
12446 
12447 #ifndef __ISpeechPhraseInfo_FWD_DEFINED__
12448 #define __ISpeechPhraseInfo_FWD_DEFINED__
12449 typedef interface ISpeechPhraseInfo ISpeechPhraseInfo;
12450 #endif
12451 
12452 #ifndef __ISpeechPhraseElement_FWD_DEFINED__
12453 #define __ISpeechPhraseElement_FWD_DEFINED__
12454 typedef interface ISpeechPhraseElement ISpeechPhraseElement;
12455 #endif
12456 
12457 #ifndef __ISpeechPhraseElements_FWD_DEFINED__
12458 #define __ISpeechPhraseElements_FWD_DEFINED__
12459 typedef interface ISpeechPhraseElements ISpeechPhraseElements;
12460 #endif
12461 
12462 #ifndef __ISpeechPhraseReplacement_FWD_DEFINED__
12463 #define __ISpeechPhraseReplacement_FWD_DEFINED__
12464 typedef interface ISpeechPhraseReplacement ISpeechPhraseReplacement;
12465 #endif
12466 
12467 #ifndef __ISpeechPhraseReplacements_FWD_DEFINED__
12468 #define __ISpeechPhraseReplacements_FWD_DEFINED__
12469 typedef interface ISpeechPhraseReplacements ISpeechPhraseReplacements;
12470 #endif
12471 
12472 #ifndef __ISpeechPhraseProperty_FWD_DEFINED__
12473 #define __ISpeechPhraseProperty_FWD_DEFINED__
12474 typedef interface ISpeechPhraseProperty ISpeechPhraseProperty;
12475 #endif
12476 
12477 #ifndef __ISpeechPhraseProperties_FWD_DEFINED__
12478 #define __ISpeechPhraseProperties_FWD_DEFINED__
12479 typedef interface ISpeechPhraseProperties ISpeechPhraseProperties;
12480 #endif
12481 
12482 #ifndef __ISpeechPhraseRule_FWD_DEFINED__
12483 #define __ISpeechPhraseRule_FWD_DEFINED__
12484 typedef interface ISpeechPhraseRule ISpeechPhraseRule;
12485 #endif
12486 
12487 #ifndef __ISpeechPhraseRules_FWD_DEFINED__
12488 #define __ISpeechPhraseRules_FWD_DEFINED__
12489 typedef interface ISpeechPhraseRules ISpeechPhraseRules;
12490 #endif
12491 
12492 #ifndef __ISpeechLexicon_FWD_DEFINED__
12493 #define __ISpeechLexicon_FWD_DEFINED__
12494 typedef interface ISpeechLexicon ISpeechLexicon;
12495 #endif
12496 
12497 #ifndef __ISpeechLexiconWords_FWD_DEFINED__
12498 #define __ISpeechLexiconWords_FWD_DEFINED__
12499 typedef interface ISpeechLexiconWords ISpeechLexiconWords;
12500 #endif
12501 
12502 #ifndef __ISpeechLexiconWord_FWD_DEFINED__
12503 #define __ISpeechLexiconWord_FWD_DEFINED__
12504 typedef interface ISpeechLexiconWord ISpeechLexiconWord;
12505 #endif
12506 
12507 #ifndef __ISpeechLexiconPronunciations_FWD_DEFINED__
12508 #define __ISpeechLexiconPronunciations_FWD_DEFINED__
12509 typedef interface ISpeechLexiconPronunciations ISpeechLexiconPronunciations;
12510 #endif
12511 
12512 #ifndef __ISpeechLexiconPronunciation_FWD_DEFINED__
12513 #define __ISpeechLexiconPronunciation_FWD_DEFINED__
12514 typedef interface ISpeechLexiconPronunciation ISpeechLexiconPronunciation;
12515 #endif
12516 
12517 typedef LONG SpeechLanguageId;
12518 #define __SpeechStringConstants_MODULE_DEFINED__
12519 typedef enum DISPID_SpeechDataKey {
12520     DISPID_SDKSetBinaryValue = 1,
12521     DISPID_SDKGetBinaryValue = 2,
12522     DISPID_SDKSetStringValue = 3,
12523     DISPID_SDKGetStringValue = 4,
12524     DISPID_SDKSetLongValue = 5,
12525     DISPID_SDKGetlongValue = 6,
12526     DISPID_SDKOpenKey = 7,
12527     DISPID_SDKCreateKey = 8,
12528     DISPID_SDKDeleteKey = 9,
12529     DISPID_SDKDeleteValue = 10,
12530     DISPID_SDKEnumKeys = 11,
12531     DISPID_SDKEnumValues = 12
12532 } DISPID_SpeechDataKey;
12533 typedef enum DISPID_SpeechObjectToken {
12534     DISPID_SOTId = 1,
12535     DISPID_SOTDataKey = 2,
12536     DISPID_SOTCategory = 3,
12537     DISPID_SOTGetDescription = 4,
12538     DISPID_SOTSetId = 5,
12539     DISPID_SOTGetAttribute = 6,
12540     DISPID_SOTCreateInstance = 7,
12541     DISPID_SOTRemove = 8,
12542     DISPID_SOTGetStorageFileName = 9,
12543     DISPID_SOTRemoveStorageFileName = 10,
12544     DISPID_SOTIsUISupported = 11,
12545     DISPID_SOTDisplayUI = 12,
12546     DISPID_SOTMatchesAttributes = 13
12547 } DISPID_SpeechObjectToken;
12548 typedef enum SpeechDataKeyLocation {
12549     SDKLDefaultLocation = SPDKL_DefaultLocation,
12550     SDKLCurrentUser = SPDKL_CurrentUser,
12551     SDKLLocalMachine = SPDKL_LocalMachine,
12552     SDKLCurrentConfig = SPDKL_CurrentConfig
12553 } SpeechDataKeyLocation;
12554 typedef enum SpeechTokenContext {
12555     STCInprocServer = CLSCTX_INPROC_SERVER,
12556     STCInprocHandler = CLSCTX_INPROC_HANDLER,
12557     STCLocalServer = CLSCTX_LOCAL_SERVER,
12558     STCRemoteServer = CLSCTX_REMOTE_SERVER,
12559     STCAll = ((CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER) | CLSCTX_LOCAL_SERVER) | CLSCTX_REMOTE_SERVER
12560 } SpeechTokenContext;
12561 typedef enum SpeechTokenShellFolder {
12562     STSF_AppData = 0x1a,
12563     STSF_LocalAppData = 0x1c,
12564     STSF_CommonAppData = 0x23,
12565     STSF_FlagCreate = 0x8000
12566 } SpeechTokenShellFolder;
12567 typedef enum DISPID_SpeechObjectTokens {
12568     DISPID_SOTsCount = 1,
12569     DISPID_SOTsItem = DISPID_VALUE,
12570     DISPID_SOTs_NewEnum = DISPID_NEWENUM
12571 } DISPID_SpeechObjectTokens;
12572 typedef enum DISPID_SpeechObjectTokenCategory {
12573     DISPID_SOTCId = 1,
12574     DISPID_SOTCDefault = 2,
12575     DISPID_SOTCSetId = 3,
12576     DISPID_SOTCGetDataKey = 4,
12577     DISPID_SOTCEnumerateTokens = 5
12578 } DISPID_SpeechObjectTokenCategory;
12579 /*****************************************************************************
12580  * ISpeechDataKey interface
12581  */
12582 #ifndef __ISpeechDataKey_INTERFACE_DEFINED__
12583 #define __ISpeechDataKey_INTERFACE_DEFINED__
12584 
12585 DEFINE_GUID(IID_ISpeechDataKey, 0xce17c09b, 0x4efa, 0x44d5, 0xa4,0xc9, 0x59,0xd9,0x58,0x5a,0xb0,0xcd);
12586 #if defined(__cplusplus) && !defined(CINTERFACE)
12587 MIDL_INTERFACE("ce17c09b-4efa-44d5-a4c9-59d9585ab0cd")
12588 ISpeechDataKey : public IDispatch
12589 {
12590     virtual HRESULT STDMETHODCALLTYPE SetBinaryValue(
12591         const BSTR ValueName,
12592         VARIANT Value) = 0;
12593 
12594     virtual HRESULT STDMETHODCALLTYPE GetBinaryValue(
12595         const BSTR ValueName,
12596         VARIANT *Value) = 0;
12597 
12598     virtual HRESULT STDMETHODCALLTYPE SetStringValue(
12599         const BSTR ValueName,
12600         const BSTR Value) = 0;
12601 
12602     virtual HRESULT STDMETHODCALLTYPE GetStringValue(
12603         const BSTR ValueName,
12604         BSTR *Value) = 0;
12605 
12606     virtual HRESULT STDMETHODCALLTYPE SetLongValue(
12607         const BSTR ValueName,
12608         LONG Value) = 0;
12609 
12610     virtual HRESULT STDMETHODCALLTYPE GetLongValue(
12611         const BSTR ValueName,
12612         LONG *Value) = 0;
12613 
12614     virtual HRESULT STDMETHODCALLTYPE OpenKey(
12615         const BSTR SubKeyName,
12616         ISpeechDataKey **SubKey) = 0;
12617 
12618     virtual HRESULT STDMETHODCALLTYPE CreateKey(
12619         const BSTR SubKeyName,
12620         ISpeechDataKey **SubKey) = 0;
12621 
12622     virtual HRESULT STDMETHODCALLTYPE DeleteKey(
12623         const BSTR SubKeyName) = 0;
12624 
12625     virtual HRESULT STDMETHODCALLTYPE DeleteValue(
12626         const BSTR ValueName) = 0;
12627 
12628     virtual HRESULT STDMETHODCALLTYPE EnumKeys(
12629         LONG Index,
12630         BSTR *SubKeyName) = 0;
12631 
12632     virtual HRESULT STDMETHODCALLTYPE EnumValues(
12633         LONG Index,
12634         BSTR *ValueName) = 0;
12635 
12636 };
12637 #ifdef __CRT_UUID_DECL
12638 __CRT_UUID_DECL(ISpeechDataKey, 0xce17c09b, 0x4efa, 0x44d5, 0xa4,0xc9, 0x59,0xd9,0x58,0x5a,0xb0,0xcd)
12639 #endif
12640 #else
12641 typedef struct ISpeechDataKeyVtbl {
12642     BEGIN_INTERFACE
12643 
12644     /*** IUnknown methods ***/
12645     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12646         ISpeechDataKey* This,
12647         REFIID riid,
12648         void **ppvObject);
12649 
12650     ULONG (STDMETHODCALLTYPE *AddRef)(
12651         ISpeechDataKey* This);
12652 
12653     ULONG (STDMETHODCALLTYPE *Release)(
12654         ISpeechDataKey* This);
12655 
12656     /*** IDispatch methods ***/
12657     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
12658         ISpeechDataKey* This,
12659         UINT *pctinfo);
12660 
12661     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
12662         ISpeechDataKey* This,
12663         UINT iTInfo,
12664         LCID lcid,
12665         ITypeInfo **ppTInfo);
12666 
12667     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
12668         ISpeechDataKey* This,
12669         REFIID riid,
12670         LPOLESTR *rgszNames,
12671         UINT cNames,
12672         LCID lcid,
12673         DISPID *rgDispId);
12674 
12675     HRESULT (STDMETHODCALLTYPE *Invoke)(
12676         ISpeechDataKey* This,
12677         DISPID dispIdMember,
12678         REFIID riid,
12679         LCID lcid,
12680         WORD wFlags,
12681         DISPPARAMS *pDispParams,
12682         VARIANT *pVarResult,
12683         EXCEPINFO *pExcepInfo,
12684         UINT *puArgErr);
12685 
12686     /*** ISpeechDataKey methods ***/
12687     HRESULT (STDMETHODCALLTYPE *SetBinaryValue)(
12688         ISpeechDataKey* This,
12689         const BSTR ValueName,
12690         VARIANT Value);
12691 
12692     HRESULT (STDMETHODCALLTYPE *GetBinaryValue)(
12693         ISpeechDataKey* This,
12694         const BSTR ValueName,
12695         VARIANT *Value);
12696 
12697     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
12698         ISpeechDataKey* This,
12699         const BSTR ValueName,
12700         const BSTR Value);
12701 
12702     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
12703         ISpeechDataKey* This,
12704         const BSTR ValueName,
12705         BSTR *Value);
12706 
12707     HRESULT (STDMETHODCALLTYPE *SetLongValue)(
12708         ISpeechDataKey* This,
12709         const BSTR ValueName,
12710         LONG Value);
12711 
12712     HRESULT (STDMETHODCALLTYPE *GetLongValue)(
12713         ISpeechDataKey* This,
12714         const BSTR ValueName,
12715         LONG *Value);
12716 
12717     HRESULT (STDMETHODCALLTYPE *OpenKey)(
12718         ISpeechDataKey* This,
12719         const BSTR SubKeyName,
12720         ISpeechDataKey **SubKey);
12721 
12722     HRESULT (STDMETHODCALLTYPE *CreateKey)(
12723         ISpeechDataKey* This,
12724         const BSTR SubKeyName,
12725         ISpeechDataKey **SubKey);
12726 
12727     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
12728         ISpeechDataKey* This,
12729         const BSTR SubKeyName);
12730 
12731     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
12732         ISpeechDataKey* This,
12733         const BSTR ValueName);
12734 
12735     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
12736         ISpeechDataKey* This,
12737         LONG Index,
12738         BSTR *SubKeyName);
12739 
12740     HRESULT (STDMETHODCALLTYPE *EnumValues)(
12741         ISpeechDataKey* This,
12742         LONG Index,
12743         BSTR *ValueName);
12744 
12745     END_INTERFACE
12746 } ISpeechDataKeyVtbl;
12747 interface ISpeechDataKey {
12748     CONST_VTBL ISpeechDataKeyVtbl* lpVtbl;
12749 };
12750 
12751 #ifdef COBJMACROS
12752 #ifndef WIDL_C_INLINE_WRAPPERS
12753 /*** IUnknown methods ***/
12754 #define ISpeechDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12755 #define ISpeechDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
12756 #define ISpeechDataKey_Release(This) (This)->lpVtbl->Release(This)
12757 /*** IDispatch methods ***/
12758 #define ISpeechDataKey_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
12759 #define ISpeechDataKey_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
12760 #define ISpeechDataKey_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
12761 #define ISpeechDataKey_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
12762 /*** ISpeechDataKey methods ***/
12763 #define ISpeechDataKey_SetBinaryValue(This,ValueName,Value) (This)->lpVtbl->SetBinaryValue(This,ValueName,Value)
12764 #define ISpeechDataKey_GetBinaryValue(This,ValueName,Value) (This)->lpVtbl->GetBinaryValue(This,ValueName,Value)
12765 #define ISpeechDataKey_SetStringValue(This,ValueName,Value) (This)->lpVtbl->SetStringValue(This,ValueName,Value)
12766 #define ISpeechDataKey_GetStringValue(This,ValueName,Value) (This)->lpVtbl->GetStringValue(This,ValueName,Value)
12767 #define ISpeechDataKey_SetLongValue(This,ValueName,Value) (This)->lpVtbl->SetLongValue(This,ValueName,Value)
12768 #define ISpeechDataKey_GetLongValue(This,ValueName,Value) (This)->lpVtbl->GetLongValue(This,ValueName,Value)
12769 #define ISpeechDataKey_OpenKey(This,SubKeyName,SubKey) (This)->lpVtbl->OpenKey(This,SubKeyName,SubKey)
12770 #define ISpeechDataKey_CreateKey(This,SubKeyName,SubKey) (This)->lpVtbl->CreateKey(This,SubKeyName,SubKey)
12771 #define ISpeechDataKey_DeleteKey(This,SubKeyName) (This)->lpVtbl->DeleteKey(This,SubKeyName)
12772 #define ISpeechDataKey_DeleteValue(This,ValueName) (This)->lpVtbl->DeleteValue(This,ValueName)
12773 #define ISpeechDataKey_EnumKeys(This,Index,SubKeyName) (This)->lpVtbl->EnumKeys(This,Index,SubKeyName)
12774 #define ISpeechDataKey_EnumValues(This,Index,ValueName) (This)->lpVtbl->EnumValues(This,Index,ValueName)
12775 #else
12776 /*** IUnknown methods ***/
12777 static FORCEINLINE HRESULT ISpeechDataKey_QueryInterface(ISpeechDataKey* This,REFIID riid,void **ppvObject) {
12778     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12779 }
12780 static FORCEINLINE ULONG ISpeechDataKey_AddRef(ISpeechDataKey* This) {
12781     return This->lpVtbl->AddRef(This);
12782 }
12783 static FORCEINLINE ULONG ISpeechDataKey_Release(ISpeechDataKey* This) {
12784     return This->lpVtbl->Release(This);
12785 }
12786 /*** IDispatch methods ***/
12787 static FORCEINLINE HRESULT ISpeechDataKey_GetTypeInfoCount(ISpeechDataKey* This,UINT *pctinfo) {
12788     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
12789 }
12790 static FORCEINLINE HRESULT ISpeechDataKey_GetTypeInfo(ISpeechDataKey* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
12791     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
12792 }
12793 static FORCEINLINE HRESULT ISpeechDataKey_GetIDsOfNames(ISpeechDataKey* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
12794     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
12795 }
12796 static FORCEINLINE HRESULT ISpeechDataKey_Invoke(ISpeechDataKey* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
12797     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
12798 }
12799 /*** ISpeechDataKey methods ***/
12800 static FORCEINLINE HRESULT ISpeechDataKey_SetBinaryValue(ISpeechDataKey* This,const BSTR ValueName,VARIANT Value) {
12801     return This->lpVtbl->SetBinaryValue(This,ValueName,Value);
12802 }
12803 static FORCEINLINE HRESULT ISpeechDataKey_GetBinaryValue(ISpeechDataKey* This,const BSTR ValueName,VARIANT *Value) {
12804     return This->lpVtbl->GetBinaryValue(This,ValueName,Value);
12805 }
12806 static FORCEINLINE HRESULT ISpeechDataKey_SetStringValue(ISpeechDataKey* This,const BSTR ValueName,const BSTR Value) {
12807     return This->lpVtbl->SetStringValue(This,ValueName,Value);
12808 }
12809 static FORCEINLINE HRESULT ISpeechDataKey_GetStringValue(ISpeechDataKey* This,const BSTR ValueName,BSTR *Value) {
12810     return This->lpVtbl->GetStringValue(This,ValueName,Value);
12811 }
12812 static FORCEINLINE HRESULT ISpeechDataKey_SetLongValue(ISpeechDataKey* This,const BSTR ValueName,LONG Value) {
12813     return This->lpVtbl->SetLongValue(This,ValueName,Value);
12814 }
12815 static FORCEINLINE HRESULT ISpeechDataKey_GetLongValue(ISpeechDataKey* This,const BSTR ValueName,LONG *Value) {
12816     return This->lpVtbl->GetLongValue(This,ValueName,Value);
12817 }
12818 static FORCEINLINE HRESULT ISpeechDataKey_OpenKey(ISpeechDataKey* This,const BSTR SubKeyName,ISpeechDataKey **SubKey) {
12819     return This->lpVtbl->OpenKey(This,SubKeyName,SubKey);
12820 }
12821 static FORCEINLINE HRESULT ISpeechDataKey_CreateKey(ISpeechDataKey* This,const BSTR SubKeyName,ISpeechDataKey **SubKey) {
12822     return This->lpVtbl->CreateKey(This,SubKeyName,SubKey);
12823 }
12824 static FORCEINLINE HRESULT ISpeechDataKey_DeleteKey(ISpeechDataKey* This,const BSTR SubKeyName) {
12825     return This->lpVtbl->DeleteKey(This,SubKeyName);
12826 }
12827 static FORCEINLINE HRESULT ISpeechDataKey_DeleteValue(ISpeechDataKey* This,const BSTR ValueName) {
12828     return This->lpVtbl->DeleteValue(This,ValueName);
12829 }
12830 static FORCEINLINE HRESULT ISpeechDataKey_EnumKeys(ISpeechDataKey* This,LONG Index,BSTR *SubKeyName) {
12831     return This->lpVtbl->EnumKeys(This,Index,SubKeyName);
12832 }
12833 static FORCEINLINE HRESULT ISpeechDataKey_EnumValues(ISpeechDataKey* This,LONG Index,BSTR *ValueName) {
12834     return This->lpVtbl->EnumValues(This,Index,ValueName);
12835 }
12836 #endif
12837 #endif
12838 
12839 #endif
12840 
12841 HRESULT STDMETHODCALLTYPE ISpeechDataKey_SetBinaryValue_Proxy(
12842     ISpeechDataKey* This,
12843     const BSTR ValueName,
12844     VARIANT Value);
12845 void __RPC_STUB ISpeechDataKey_SetBinaryValue_Stub(
12846     IRpcStubBuffer* This,
12847     IRpcChannelBuffer* pRpcChannelBuffer,
12848     PRPC_MESSAGE pRpcMessage,
12849     DWORD* pdwStubPhase);
12850 HRESULT STDMETHODCALLTYPE ISpeechDataKey_GetBinaryValue_Proxy(
12851     ISpeechDataKey* This,
12852     const BSTR ValueName,
12853     VARIANT *Value);
12854 void __RPC_STUB ISpeechDataKey_GetBinaryValue_Stub(
12855     IRpcStubBuffer* This,
12856     IRpcChannelBuffer* pRpcChannelBuffer,
12857     PRPC_MESSAGE pRpcMessage,
12858     DWORD* pdwStubPhase);
12859 HRESULT STDMETHODCALLTYPE ISpeechDataKey_SetStringValue_Proxy(
12860     ISpeechDataKey* This,
12861     const BSTR ValueName,
12862     const BSTR Value);
12863 void __RPC_STUB ISpeechDataKey_SetStringValue_Stub(
12864     IRpcStubBuffer* This,
12865     IRpcChannelBuffer* pRpcChannelBuffer,
12866     PRPC_MESSAGE pRpcMessage,
12867     DWORD* pdwStubPhase);
12868 HRESULT STDMETHODCALLTYPE ISpeechDataKey_GetStringValue_Proxy(
12869     ISpeechDataKey* This,
12870     const BSTR ValueName,
12871     BSTR *Value);
12872 void __RPC_STUB ISpeechDataKey_GetStringValue_Stub(
12873     IRpcStubBuffer* This,
12874     IRpcChannelBuffer* pRpcChannelBuffer,
12875     PRPC_MESSAGE pRpcMessage,
12876     DWORD* pdwStubPhase);
12877 HRESULT STDMETHODCALLTYPE ISpeechDataKey_SetLongValue_Proxy(
12878     ISpeechDataKey* This,
12879     const BSTR ValueName,
12880     LONG Value);
12881 void __RPC_STUB ISpeechDataKey_SetLongValue_Stub(
12882     IRpcStubBuffer* This,
12883     IRpcChannelBuffer* pRpcChannelBuffer,
12884     PRPC_MESSAGE pRpcMessage,
12885     DWORD* pdwStubPhase);
12886 HRESULT STDMETHODCALLTYPE ISpeechDataKey_GetLongValue_Proxy(
12887     ISpeechDataKey* This,
12888     const BSTR ValueName,
12889     LONG *Value);
12890 void __RPC_STUB ISpeechDataKey_GetLongValue_Stub(
12891     IRpcStubBuffer* This,
12892     IRpcChannelBuffer* pRpcChannelBuffer,
12893     PRPC_MESSAGE pRpcMessage,
12894     DWORD* pdwStubPhase);
12895 HRESULT STDMETHODCALLTYPE ISpeechDataKey_OpenKey_Proxy(
12896     ISpeechDataKey* This,
12897     const BSTR SubKeyName,
12898     ISpeechDataKey **SubKey);
12899 void __RPC_STUB ISpeechDataKey_OpenKey_Stub(
12900     IRpcStubBuffer* This,
12901     IRpcChannelBuffer* pRpcChannelBuffer,
12902     PRPC_MESSAGE pRpcMessage,
12903     DWORD* pdwStubPhase);
12904 HRESULT STDMETHODCALLTYPE ISpeechDataKey_CreateKey_Proxy(
12905     ISpeechDataKey* This,
12906     const BSTR SubKeyName,
12907     ISpeechDataKey **SubKey);
12908 void __RPC_STUB ISpeechDataKey_CreateKey_Stub(
12909     IRpcStubBuffer* This,
12910     IRpcChannelBuffer* pRpcChannelBuffer,
12911     PRPC_MESSAGE pRpcMessage,
12912     DWORD* pdwStubPhase);
12913 HRESULT STDMETHODCALLTYPE ISpeechDataKey_DeleteKey_Proxy(
12914     ISpeechDataKey* This,
12915     const BSTR SubKeyName);
12916 void __RPC_STUB ISpeechDataKey_DeleteKey_Stub(
12917     IRpcStubBuffer* This,
12918     IRpcChannelBuffer* pRpcChannelBuffer,
12919     PRPC_MESSAGE pRpcMessage,
12920     DWORD* pdwStubPhase);
12921 HRESULT STDMETHODCALLTYPE ISpeechDataKey_DeleteValue_Proxy(
12922     ISpeechDataKey* This,
12923     const BSTR ValueName);
12924 void __RPC_STUB ISpeechDataKey_DeleteValue_Stub(
12925     IRpcStubBuffer* This,
12926     IRpcChannelBuffer* pRpcChannelBuffer,
12927     PRPC_MESSAGE pRpcMessage,
12928     DWORD* pdwStubPhase);
12929 HRESULT STDMETHODCALLTYPE ISpeechDataKey_EnumKeys_Proxy(
12930     ISpeechDataKey* This,
12931     LONG Index,
12932     BSTR *SubKeyName);
12933 void __RPC_STUB ISpeechDataKey_EnumKeys_Stub(
12934     IRpcStubBuffer* This,
12935     IRpcChannelBuffer* pRpcChannelBuffer,
12936     PRPC_MESSAGE pRpcMessage,
12937     DWORD* pdwStubPhase);
12938 HRESULT STDMETHODCALLTYPE ISpeechDataKey_EnumValues_Proxy(
12939     ISpeechDataKey* This,
12940     LONG Index,
12941     BSTR *ValueName);
12942 void __RPC_STUB ISpeechDataKey_EnumValues_Stub(
12943     IRpcStubBuffer* This,
12944     IRpcChannelBuffer* pRpcChannelBuffer,
12945     PRPC_MESSAGE pRpcMessage,
12946     DWORD* pdwStubPhase);
12947 
12948 #endif  /* __ISpeechDataKey_INTERFACE_DEFINED__ */
12949 
12950 /*****************************************************************************
12951  * ISpeechObjectToken interface
12952  */
12953 #ifndef __ISpeechObjectToken_INTERFACE_DEFINED__
12954 #define __ISpeechObjectToken_INTERFACE_DEFINED__
12955 
12956 DEFINE_GUID(IID_ISpeechObjectToken, 0xc74a3adc, 0xb727, 0x4500, 0xa8,0x4a, 0xb5,0x26,0x72,0x1c,0x8b,0x8c);
12957 #if defined(__cplusplus) && !defined(CINTERFACE)
12958 MIDL_INTERFACE("c74a3adc-b727-4500-a84a-b526721c8b8c")
12959 ISpeechObjectToken : public IDispatch
12960 {
12961     virtual HRESULT STDMETHODCALLTYPE get_Id(
12962         BSTR *ObjectId) = 0;
12963 
12964     virtual HRESULT STDMETHODCALLTYPE get_DataKey(
12965         ISpeechDataKey **DataKey) = 0;
12966 
12967     virtual HRESULT STDMETHODCALLTYPE get_Category(
12968         ISpeechObjectTokenCategory **Category) = 0;
12969 
12970     virtual HRESULT STDMETHODCALLTYPE GetDescription(
12971         LONG Locale,
12972         BSTR *Description) = 0;
12973 
12974     virtual HRESULT STDMETHODCALLTYPE SetId(
12975         BSTR Id,
12976         BSTR CategoryID = L"",
12977         VARIANT_BOOL CreateIfNotExist = 0) = 0;
12978 
12979     virtual HRESULT STDMETHODCALLTYPE GetAttribute(
12980         BSTR AttributeName,
12981         BSTR *AttributeValue) = 0;
12982 
12983     virtual HRESULT STDMETHODCALLTYPE CreateInstance(
12984         IUnknown *pUnkOuter,
12985         SpeechTokenContext ClsContext,
12986         IUnknown **Object) = 0;
12987 
12988     virtual HRESULT STDMETHODCALLTYPE Remove(
12989         BSTR ObjectStorageCLSID) = 0;
12990 
12991     virtual HRESULT STDMETHODCALLTYPE GetStorageFileName(
12992         BSTR ObjectStorageCLSID,
12993         BSTR KeyName,
12994         BSTR FileName,
12995         SpeechTokenShellFolder Folder,
12996         BSTR *FilePath) = 0;
12997 
12998     virtual HRESULT STDMETHODCALLTYPE RemoveStorageFileName(
12999         BSTR ObjectStorageCLSID,
13000         BSTR KeyName,
13001         VARIANT_BOOL DeleteFile) = 0;
13002 
13003     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
13004         const BSTR TypeOfUI,
13005         const VARIANT *ExtraData,
13006         IUnknown *Object,
13007         VARIANT_BOOL *Supported) = 0;
13008 
13009     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
13010         LONG hWnd,
13011         BSTR Title,
13012         const BSTR TypeOfUI,
13013         const VARIANT *ExtraData = 0,
13014         IUnknown *Object = 0) = 0;
13015 
13016     virtual HRESULT STDMETHODCALLTYPE MatchesAttributes(
13017         BSTR Attributes,
13018         VARIANT_BOOL *Matches) = 0;
13019 
13020 };
13021 #ifdef __CRT_UUID_DECL
13022 __CRT_UUID_DECL(ISpeechObjectToken, 0xc74a3adc, 0xb727, 0x4500, 0xa8,0x4a, 0xb5,0x26,0x72,0x1c,0x8b,0x8c)
13023 #endif
13024 #else
13025 typedef struct ISpeechObjectTokenVtbl {
13026     BEGIN_INTERFACE
13027 
13028     /*** IUnknown methods ***/
13029     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13030         ISpeechObjectToken* This,
13031         REFIID riid,
13032         void **ppvObject);
13033 
13034     ULONG (STDMETHODCALLTYPE *AddRef)(
13035         ISpeechObjectToken* This);
13036 
13037     ULONG (STDMETHODCALLTYPE *Release)(
13038         ISpeechObjectToken* This);
13039 
13040     /*** IDispatch methods ***/
13041     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13042         ISpeechObjectToken* This,
13043         UINT *pctinfo);
13044 
13045     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13046         ISpeechObjectToken* This,
13047         UINT iTInfo,
13048         LCID lcid,
13049         ITypeInfo **ppTInfo);
13050 
13051     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13052         ISpeechObjectToken* This,
13053         REFIID riid,
13054         LPOLESTR *rgszNames,
13055         UINT cNames,
13056         LCID lcid,
13057         DISPID *rgDispId);
13058 
13059     HRESULT (STDMETHODCALLTYPE *Invoke)(
13060         ISpeechObjectToken* This,
13061         DISPID dispIdMember,
13062         REFIID riid,
13063         LCID lcid,
13064         WORD wFlags,
13065         DISPPARAMS *pDispParams,
13066         VARIANT *pVarResult,
13067         EXCEPINFO *pExcepInfo,
13068         UINT *puArgErr);
13069 
13070     /*** ISpeechObjectToken methods ***/
13071     HRESULT (STDMETHODCALLTYPE *get_Id)(
13072         ISpeechObjectToken* This,
13073         BSTR *ObjectId);
13074 
13075     HRESULT (STDMETHODCALLTYPE *get_DataKey)(
13076         ISpeechObjectToken* This,
13077         ISpeechDataKey **DataKey);
13078 
13079     HRESULT (STDMETHODCALLTYPE *get_Category)(
13080         ISpeechObjectToken* This,
13081         ISpeechObjectTokenCategory **Category);
13082 
13083     HRESULT (STDMETHODCALLTYPE *GetDescription)(
13084         ISpeechObjectToken* This,
13085         LONG Locale,
13086         BSTR *Description);
13087 
13088     HRESULT (STDMETHODCALLTYPE *SetId)(
13089         ISpeechObjectToken* This,
13090         BSTR Id,
13091         BSTR CategoryID,
13092         VARIANT_BOOL CreateIfNotExist);
13093 
13094     HRESULT (STDMETHODCALLTYPE *GetAttribute)(
13095         ISpeechObjectToken* This,
13096         BSTR AttributeName,
13097         BSTR *AttributeValue);
13098 
13099     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
13100         ISpeechObjectToken* This,
13101         IUnknown *pUnkOuter,
13102         SpeechTokenContext ClsContext,
13103         IUnknown **Object);
13104 
13105     HRESULT (STDMETHODCALLTYPE *Remove)(
13106         ISpeechObjectToken* This,
13107         BSTR ObjectStorageCLSID);
13108 
13109     HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
13110         ISpeechObjectToken* This,
13111         BSTR ObjectStorageCLSID,
13112         BSTR KeyName,
13113         BSTR FileName,
13114         SpeechTokenShellFolder Folder,
13115         BSTR *FilePath);
13116 
13117     HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
13118         ISpeechObjectToken* This,
13119         BSTR ObjectStorageCLSID,
13120         BSTR KeyName,
13121         VARIANT_BOOL DeleteFile);
13122 
13123     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
13124         ISpeechObjectToken* This,
13125         const BSTR TypeOfUI,
13126         const VARIANT *ExtraData,
13127         IUnknown *Object,
13128         VARIANT_BOOL *Supported);
13129 
13130     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
13131         ISpeechObjectToken* This,
13132         LONG hWnd,
13133         BSTR Title,
13134         const BSTR TypeOfUI,
13135         const VARIANT *ExtraData,
13136         IUnknown *Object);
13137 
13138     HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
13139         ISpeechObjectToken* This,
13140         BSTR Attributes,
13141         VARIANT_BOOL *Matches);
13142 
13143     END_INTERFACE
13144 } ISpeechObjectTokenVtbl;
13145 interface ISpeechObjectToken {
13146     CONST_VTBL ISpeechObjectTokenVtbl* lpVtbl;
13147 };
13148 
13149 #ifdef COBJMACROS
13150 #ifndef WIDL_C_INLINE_WRAPPERS
13151 /*** IUnknown methods ***/
13152 #define ISpeechObjectToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13153 #define ISpeechObjectToken_AddRef(This) (This)->lpVtbl->AddRef(This)
13154 #define ISpeechObjectToken_Release(This) (This)->lpVtbl->Release(This)
13155 /*** IDispatch methods ***/
13156 #define ISpeechObjectToken_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13157 #define ISpeechObjectToken_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13158 #define ISpeechObjectToken_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13159 #define ISpeechObjectToken_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13160 /*** ISpeechObjectToken methods ***/
13161 #define ISpeechObjectToken_get_Id(This,ObjectId) (This)->lpVtbl->get_Id(This,ObjectId)
13162 #define ISpeechObjectToken_get_DataKey(This,DataKey) (This)->lpVtbl->get_DataKey(This,DataKey)
13163 #define ISpeechObjectToken_get_Category(This,Category) (This)->lpVtbl->get_Category(This,Category)
13164 #define ISpeechObjectToken_GetDescription(This,Locale,Description) (This)->lpVtbl->GetDescription(This,Locale,Description)
13165 #define ISpeechObjectToken_SetId(This,Id,CategoryID,CreateIfNotExist) (This)->lpVtbl->SetId(This,Id,CategoryID,CreateIfNotExist)
13166 #define ISpeechObjectToken_GetAttribute(This,AttributeName,AttributeValue) (This)->lpVtbl->GetAttribute(This,AttributeName,AttributeValue)
13167 #define ISpeechObjectToken_CreateInstance(This,pUnkOuter,ClsContext,Object) (This)->lpVtbl->CreateInstance(This,pUnkOuter,ClsContext,Object)
13168 #define ISpeechObjectToken_Remove(This,ObjectStorageCLSID) (This)->lpVtbl->Remove(This,ObjectStorageCLSID)
13169 #define ISpeechObjectToken_GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath) (This)->lpVtbl->GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath)
13170 #define ISpeechObjectToken_RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile)
13171 #define ISpeechObjectToken_IsUISupported(This,TypeOfUI,ExtraData,Object,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Object,Supported)
13172 #define ISpeechObjectToken_DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object) (This)->lpVtbl->DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object)
13173 #define ISpeechObjectToken_MatchesAttributes(This,Attributes,Matches) (This)->lpVtbl->MatchesAttributes(This,Attributes,Matches)
13174 #else
13175 /*** IUnknown methods ***/
13176 static FORCEINLINE HRESULT ISpeechObjectToken_QueryInterface(ISpeechObjectToken* This,REFIID riid,void **ppvObject) {
13177     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13178 }
13179 static FORCEINLINE ULONG ISpeechObjectToken_AddRef(ISpeechObjectToken* This) {
13180     return This->lpVtbl->AddRef(This);
13181 }
13182 static FORCEINLINE ULONG ISpeechObjectToken_Release(ISpeechObjectToken* This) {
13183     return This->lpVtbl->Release(This);
13184 }
13185 /*** IDispatch methods ***/
13186 static FORCEINLINE HRESULT ISpeechObjectToken_GetTypeInfoCount(ISpeechObjectToken* This,UINT *pctinfo) {
13187     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13188 }
13189 static FORCEINLINE HRESULT ISpeechObjectToken_GetTypeInfo(ISpeechObjectToken* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13190     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13191 }
13192 static FORCEINLINE HRESULT ISpeechObjectToken_GetIDsOfNames(ISpeechObjectToken* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13193     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13194 }
13195 static FORCEINLINE HRESULT ISpeechObjectToken_Invoke(ISpeechObjectToken* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13196     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13197 }
13198 /*** ISpeechObjectToken methods ***/
13199 static FORCEINLINE HRESULT ISpeechObjectToken_get_Id(ISpeechObjectToken* This,BSTR *ObjectId) {
13200     return This->lpVtbl->get_Id(This,ObjectId);
13201 }
13202 static FORCEINLINE HRESULT ISpeechObjectToken_get_DataKey(ISpeechObjectToken* This,ISpeechDataKey **DataKey) {
13203     return This->lpVtbl->get_DataKey(This,DataKey);
13204 }
13205 static FORCEINLINE HRESULT ISpeechObjectToken_get_Category(ISpeechObjectToken* This,ISpeechObjectTokenCategory **Category) {
13206     return This->lpVtbl->get_Category(This,Category);
13207 }
13208 static FORCEINLINE HRESULT ISpeechObjectToken_GetDescription(ISpeechObjectToken* This,LONG Locale,BSTR *Description) {
13209     return This->lpVtbl->GetDescription(This,Locale,Description);
13210 }
13211 static FORCEINLINE HRESULT ISpeechObjectToken_SetId(ISpeechObjectToken* This,BSTR Id,BSTR CategoryID,VARIANT_BOOL CreateIfNotExist) {
13212     return This->lpVtbl->SetId(This,Id,CategoryID,CreateIfNotExist);
13213 }
13214 static FORCEINLINE HRESULT ISpeechObjectToken_GetAttribute(ISpeechObjectToken* This,BSTR AttributeName,BSTR *AttributeValue) {
13215     return This->lpVtbl->GetAttribute(This,AttributeName,AttributeValue);
13216 }
13217 static FORCEINLINE HRESULT ISpeechObjectToken_CreateInstance(ISpeechObjectToken* This,IUnknown *pUnkOuter,SpeechTokenContext ClsContext,IUnknown **Object) {
13218     return This->lpVtbl->CreateInstance(This,pUnkOuter,ClsContext,Object);
13219 }
13220 static FORCEINLINE HRESULT ISpeechObjectToken_Remove(ISpeechObjectToken* This,BSTR ObjectStorageCLSID) {
13221     return This->lpVtbl->Remove(This,ObjectStorageCLSID);
13222 }
13223 static FORCEINLINE HRESULT ISpeechObjectToken_GetStorageFileName(ISpeechObjectToken* This,BSTR ObjectStorageCLSID,BSTR KeyName,BSTR FileName,SpeechTokenShellFolder Folder,BSTR *FilePath) {
13224     return This->lpVtbl->GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath);
13225 }
13226 static FORCEINLINE HRESULT ISpeechObjectToken_RemoveStorageFileName(ISpeechObjectToken* This,BSTR ObjectStorageCLSID,BSTR KeyName,VARIANT_BOOL DeleteFile) {
13227     return This->lpVtbl->RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile);
13228 }
13229 static FORCEINLINE HRESULT ISpeechObjectToken_IsUISupported(ISpeechObjectToken* This,const BSTR TypeOfUI,const VARIANT *ExtraData,IUnknown *Object,VARIANT_BOOL *Supported) {
13230     return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Object,Supported);
13231 }
13232 static FORCEINLINE HRESULT ISpeechObjectToken_DisplayUI(ISpeechObjectToken* This,LONG hWnd,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData,IUnknown *Object) {
13233     return This->lpVtbl->DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object);
13234 }
13235 static FORCEINLINE HRESULT ISpeechObjectToken_MatchesAttributes(ISpeechObjectToken* This,BSTR Attributes,VARIANT_BOOL *Matches) {
13236     return This->lpVtbl->MatchesAttributes(This,Attributes,Matches);
13237 }
13238 #endif
13239 #endif
13240 
13241 #endif
13242 
13243 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_get_Id_Proxy(
13244     ISpeechObjectToken* This,
13245     BSTR *ObjectId);
13246 void __RPC_STUB ISpeechObjectToken_get_Id_Stub(
13247     IRpcStubBuffer* This,
13248     IRpcChannelBuffer* pRpcChannelBuffer,
13249     PRPC_MESSAGE pRpcMessage,
13250     DWORD* pdwStubPhase);
13251 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_get_DataKey_Proxy(
13252     ISpeechObjectToken* This,
13253     ISpeechDataKey **DataKey);
13254 void __RPC_STUB ISpeechObjectToken_get_DataKey_Stub(
13255     IRpcStubBuffer* This,
13256     IRpcChannelBuffer* pRpcChannelBuffer,
13257     PRPC_MESSAGE pRpcMessage,
13258     DWORD* pdwStubPhase);
13259 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_get_Category_Proxy(
13260     ISpeechObjectToken* This,
13261     ISpeechObjectTokenCategory **Category);
13262 void __RPC_STUB ISpeechObjectToken_get_Category_Stub(
13263     IRpcStubBuffer* This,
13264     IRpcChannelBuffer* pRpcChannelBuffer,
13265     PRPC_MESSAGE pRpcMessage,
13266     DWORD* pdwStubPhase);
13267 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_GetDescription_Proxy(
13268     ISpeechObjectToken* This,
13269     LONG Locale,
13270     BSTR *Description);
13271 void __RPC_STUB ISpeechObjectToken_GetDescription_Stub(
13272     IRpcStubBuffer* This,
13273     IRpcChannelBuffer* pRpcChannelBuffer,
13274     PRPC_MESSAGE pRpcMessage,
13275     DWORD* pdwStubPhase);
13276 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_SetId_Proxy(
13277     ISpeechObjectToken* This,
13278     BSTR Id,
13279     BSTR CategoryID,
13280     VARIANT_BOOL CreateIfNotExist);
13281 void __RPC_STUB ISpeechObjectToken_SetId_Stub(
13282     IRpcStubBuffer* This,
13283     IRpcChannelBuffer* pRpcChannelBuffer,
13284     PRPC_MESSAGE pRpcMessage,
13285     DWORD* pdwStubPhase);
13286 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_GetAttribute_Proxy(
13287     ISpeechObjectToken* This,
13288     BSTR AttributeName,
13289     BSTR *AttributeValue);
13290 void __RPC_STUB ISpeechObjectToken_GetAttribute_Stub(
13291     IRpcStubBuffer* This,
13292     IRpcChannelBuffer* pRpcChannelBuffer,
13293     PRPC_MESSAGE pRpcMessage,
13294     DWORD* pdwStubPhase);
13295 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_CreateInstance_Proxy(
13296     ISpeechObjectToken* This,
13297     IUnknown *pUnkOuter,
13298     SpeechTokenContext ClsContext,
13299     IUnknown **Object);
13300 void __RPC_STUB ISpeechObjectToken_CreateInstance_Stub(
13301     IRpcStubBuffer* This,
13302     IRpcChannelBuffer* pRpcChannelBuffer,
13303     PRPC_MESSAGE pRpcMessage,
13304     DWORD* pdwStubPhase);
13305 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_Remove_Proxy(
13306     ISpeechObjectToken* This,
13307     BSTR ObjectStorageCLSID);
13308 void __RPC_STUB ISpeechObjectToken_Remove_Stub(
13309     IRpcStubBuffer* This,
13310     IRpcChannelBuffer* pRpcChannelBuffer,
13311     PRPC_MESSAGE pRpcMessage,
13312     DWORD* pdwStubPhase);
13313 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_GetStorageFileName_Proxy(
13314     ISpeechObjectToken* This,
13315     BSTR ObjectStorageCLSID,
13316     BSTR KeyName,
13317     BSTR FileName,
13318     SpeechTokenShellFolder Folder,
13319     BSTR *FilePath);
13320 void __RPC_STUB ISpeechObjectToken_GetStorageFileName_Stub(
13321     IRpcStubBuffer* This,
13322     IRpcChannelBuffer* pRpcChannelBuffer,
13323     PRPC_MESSAGE pRpcMessage,
13324     DWORD* pdwStubPhase);
13325 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_RemoveStorageFileName_Proxy(
13326     ISpeechObjectToken* This,
13327     BSTR ObjectStorageCLSID,
13328     BSTR KeyName,
13329     VARIANT_BOOL DeleteFile);
13330 void __RPC_STUB ISpeechObjectToken_RemoveStorageFileName_Stub(
13331     IRpcStubBuffer* This,
13332     IRpcChannelBuffer* pRpcChannelBuffer,
13333     PRPC_MESSAGE pRpcMessage,
13334     DWORD* pdwStubPhase);
13335 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_IsUISupported_Proxy(
13336     ISpeechObjectToken* This,
13337     const BSTR TypeOfUI,
13338     const VARIANT *ExtraData,
13339     IUnknown *Object,
13340     VARIANT_BOOL *Supported);
13341 void __RPC_STUB ISpeechObjectToken_IsUISupported_Stub(
13342     IRpcStubBuffer* This,
13343     IRpcChannelBuffer* pRpcChannelBuffer,
13344     PRPC_MESSAGE pRpcMessage,
13345     DWORD* pdwStubPhase);
13346 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_DisplayUI_Proxy(
13347     ISpeechObjectToken* This,
13348     LONG hWnd,
13349     BSTR Title,
13350     const BSTR TypeOfUI,
13351     const VARIANT *ExtraData,
13352     IUnknown *Object);
13353 void __RPC_STUB ISpeechObjectToken_DisplayUI_Stub(
13354     IRpcStubBuffer* This,
13355     IRpcChannelBuffer* pRpcChannelBuffer,
13356     PRPC_MESSAGE pRpcMessage,
13357     DWORD* pdwStubPhase);
13358 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_MatchesAttributes_Proxy(
13359     ISpeechObjectToken* This,
13360     BSTR Attributes,
13361     VARIANT_BOOL *Matches);
13362 void __RPC_STUB ISpeechObjectToken_MatchesAttributes_Stub(
13363     IRpcStubBuffer* This,
13364     IRpcChannelBuffer* pRpcChannelBuffer,
13365     PRPC_MESSAGE pRpcMessage,
13366     DWORD* pdwStubPhase);
13367 
13368 #endif  /* __ISpeechObjectToken_INTERFACE_DEFINED__ */
13369 
13370 /*****************************************************************************
13371  * ISpeechObjectTokens interface
13372  */
13373 #ifndef __ISpeechObjectTokens_INTERFACE_DEFINED__
13374 #define __ISpeechObjectTokens_INTERFACE_DEFINED__
13375 
13376 DEFINE_GUID(IID_ISpeechObjectTokens, 0x9285b776, 0x2e7b, 0x4bc0, 0xb5,0x3e, 0x58,0x0e,0xb6,0xfa,0x96,0x7f);
13377 #if defined(__cplusplus) && !defined(CINTERFACE)
13378 MIDL_INTERFACE("9285b776-2e7b-4bc0-b53e-580eb6fa967f")
13379 ISpeechObjectTokens : public IDispatch
13380 {
13381     virtual HRESULT STDMETHODCALLTYPE get_Count(
13382         LONG *Count) = 0;
13383 
13384     virtual HRESULT STDMETHODCALLTYPE Item(
13385         LONG Index,
13386         ISpeechObjectToken **Token) = 0;
13387 
13388     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
13389         IUnknown **ppEnumVARIANT) = 0;
13390 
13391 };
13392 #ifdef __CRT_UUID_DECL
13393 __CRT_UUID_DECL(ISpeechObjectTokens, 0x9285b776, 0x2e7b, 0x4bc0, 0xb5,0x3e, 0x58,0x0e,0xb6,0xfa,0x96,0x7f)
13394 #endif
13395 #else
13396 typedef struct ISpeechObjectTokensVtbl {
13397     BEGIN_INTERFACE
13398 
13399     /*** IUnknown methods ***/
13400     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13401         ISpeechObjectTokens* This,
13402         REFIID riid,
13403         void **ppvObject);
13404 
13405     ULONG (STDMETHODCALLTYPE *AddRef)(
13406         ISpeechObjectTokens* This);
13407 
13408     ULONG (STDMETHODCALLTYPE *Release)(
13409         ISpeechObjectTokens* This);
13410 
13411     /*** IDispatch methods ***/
13412     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13413         ISpeechObjectTokens* This,
13414         UINT *pctinfo);
13415 
13416     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13417         ISpeechObjectTokens* This,
13418         UINT iTInfo,
13419         LCID lcid,
13420         ITypeInfo **ppTInfo);
13421 
13422     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13423         ISpeechObjectTokens* This,
13424         REFIID riid,
13425         LPOLESTR *rgszNames,
13426         UINT cNames,
13427         LCID lcid,
13428         DISPID *rgDispId);
13429 
13430     HRESULT (STDMETHODCALLTYPE *Invoke)(
13431         ISpeechObjectTokens* This,
13432         DISPID dispIdMember,
13433         REFIID riid,
13434         LCID lcid,
13435         WORD wFlags,
13436         DISPPARAMS *pDispParams,
13437         VARIANT *pVarResult,
13438         EXCEPINFO *pExcepInfo,
13439         UINT *puArgErr);
13440 
13441     /*** ISpeechObjectTokens methods ***/
13442     HRESULT (STDMETHODCALLTYPE *get_Count)(
13443         ISpeechObjectTokens* This,
13444         LONG *Count);
13445 
13446     HRESULT (STDMETHODCALLTYPE *Item)(
13447         ISpeechObjectTokens* This,
13448         LONG Index,
13449         ISpeechObjectToken **Token);
13450 
13451     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
13452         ISpeechObjectTokens* This,
13453         IUnknown **ppEnumVARIANT);
13454 
13455     END_INTERFACE
13456 } ISpeechObjectTokensVtbl;
13457 interface ISpeechObjectTokens {
13458     CONST_VTBL ISpeechObjectTokensVtbl* lpVtbl;
13459 };
13460 
13461 #ifdef COBJMACROS
13462 #ifndef WIDL_C_INLINE_WRAPPERS
13463 /*** IUnknown methods ***/
13464 #define ISpeechObjectTokens_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13465 #define ISpeechObjectTokens_AddRef(This) (This)->lpVtbl->AddRef(This)
13466 #define ISpeechObjectTokens_Release(This) (This)->lpVtbl->Release(This)
13467 /*** IDispatch methods ***/
13468 #define ISpeechObjectTokens_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13469 #define ISpeechObjectTokens_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13470 #define ISpeechObjectTokens_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13471 #define ISpeechObjectTokens_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13472 /*** ISpeechObjectTokens methods ***/
13473 #define ISpeechObjectTokens_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
13474 #define ISpeechObjectTokens_Item(This,Index,Token) (This)->lpVtbl->Item(This,Index,Token)
13475 #define ISpeechObjectTokens_get__NewEnum(This,ppEnumVARIANT) (This)->lpVtbl->get__NewEnum(This,ppEnumVARIANT)
13476 #else
13477 /*** IUnknown methods ***/
13478 static FORCEINLINE HRESULT ISpeechObjectTokens_QueryInterface(ISpeechObjectTokens* This,REFIID riid,void **ppvObject) {
13479     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13480 }
13481 static FORCEINLINE ULONG ISpeechObjectTokens_AddRef(ISpeechObjectTokens* This) {
13482     return This->lpVtbl->AddRef(This);
13483 }
13484 static FORCEINLINE ULONG ISpeechObjectTokens_Release(ISpeechObjectTokens* This) {
13485     return This->lpVtbl->Release(This);
13486 }
13487 /*** IDispatch methods ***/
13488 static FORCEINLINE HRESULT ISpeechObjectTokens_GetTypeInfoCount(ISpeechObjectTokens* This,UINT *pctinfo) {
13489     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13490 }
13491 static FORCEINLINE HRESULT ISpeechObjectTokens_GetTypeInfo(ISpeechObjectTokens* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13492     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13493 }
13494 static FORCEINLINE HRESULT ISpeechObjectTokens_GetIDsOfNames(ISpeechObjectTokens* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13495     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13496 }
13497 static FORCEINLINE HRESULT ISpeechObjectTokens_Invoke(ISpeechObjectTokens* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13498     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13499 }
13500 /*** ISpeechObjectTokens methods ***/
13501 static FORCEINLINE HRESULT ISpeechObjectTokens_get_Count(ISpeechObjectTokens* This,LONG *Count) {
13502     return This->lpVtbl->get_Count(This,Count);
13503 }
13504 static FORCEINLINE HRESULT ISpeechObjectTokens_Item(ISpeechObjectTokens* This,LONG Index,ISpeechObjectToken **Token) {
13505     return This->lpVtbl->Item(This,Index,Token);
13506 }
13507 static FORCEINLINE HRESULT ISpeechObjectTokens_get__NewEnum(ISpeechObjectTokens* This,IUnknown **ppEnumVARIANT) {
13508     return This->lpVtbl->get__NewEnum(This,ppEnumVARIANT);
13509 }
13510 #endif
13511 #endif
13512 
13513 #endif
13514 
13515 HRESULT STDMETHODCALLTYPE ISpeechObjectTokens_get_Count_Proxy(
13516     ISpeechObjectTokens* This,
13517     LONG *Count);
13518 void __RPC_STUB ISpeechObjectTokens_get_Count_Stub(
13519     IRpcStubBuffer* This,
13520     IRpcChannelBuffer* pRpcChannelBuffer,
13521     PRPC_MESSAGE pRpcMessage,
13522     DWORD* pdwStubPhase);
13523 HRESULT STDMETHODCALLTYPE ISpeechObjectTokens_Item_Proxy(
13524     ISpeechObjectTokens* This,
13525     LONG Index,
13526     ISpeechObjectToken **Token);
13527 void __RPC_STUB ISpeechObjectTokens_Item_Stub(
13528     IRpcStubBuffer* This,
13529     IRpcChannelBuffer* pRpcChannelBuffer,
13530     PRPC_MESSAGE pRpcMessage,
13531     DWORD* pdwStubPhase);
13532 HRESULT STDMETHODCALLTYPE ISpeechObjectTokens_get__NewEnum_Proxy(
13533     ISpeechObjectTokens* This,
13534     IUnknown **ppEnumVARIANT);
13535 void __RPC_STUB ISpeechObjectTokens_get__NewEnum_Stub(
13536     IRpcStubBuffer* This,
13537     IRpcChannelBuffer* pRpcChannelBuffer,
13538     PRPC_MESSAGE pRpcMessage,
13539     DWORD* pdwStubPhase);
13540 
13541 #endif  /* __ISpeechObjectTokens_INTERFACE_DEFINED__ */
13542 
13543 /*****************************************************************************
13544  * ISpeechObjectTokenCategory interface
13545  */
13546 #ifndef __ISpeechObjectTokenCategory_INTERFACE_DEFINED__
13547 #define __ISpeechObjectTokenCategory_INTERFACE_DEFINED__
13548 
13549 DEFINE_GUID(IID_ISpeechObjectTokenCategory, 0xca7eac50, 0x2d01, 0x4145, 0x86,0xd4, 0x5a,0xe7,0xd7,0x0f,0x44,0x69);
13550 #if defined(__cplusplus) && !defined(CINTERFACE)
13551 MIDL_INTERFACE("ca7eac50-2d01-4145-86d4-5ae7d70f4469")
13552 ISpeechObjectTokenCategory : public IDispatch
13553 {
13554     virtual HRESULT STDMETHODCALLTYPE get_Id(
13555         BSTR *Id) = 0;
13556 
13557     virtual HRESULT STDMETHODCALLTYPE put_Default(
13558         const BSTR TokenId) = 0;
13559 
13560     virtual HRESULT STDMETHODCALLTYPE get_Default(
13561         BSTR *TokenId) = 0;
13562 
13563     virtual HRESULT STDMETHODCALLTYPE SetId(
13564         const BSTR Id,
13565         VARIANT_BOOL CreateIfNotExist = 0) = 0;
13566 
13567     virtual HRESULT STDMETHODCALLTYPE GetDataKey(
13568         SpeechDataKeyLocation Location,
13569         ISpeechDataKey **DataKey) = 0;
13570 
13571     virtual HRESULT STDMETHODCALLTYPE EnumerateTokens(
13572         BSTR RequiredAttributes,
13573         BSTR OptionalAttributes,
13574         ISpeechObjectTokens **Tokens) = 0;
13575 
13576 };
13577 #ifdef __CRT_UUID_DECL
13578 __CRT_UUID_DECL(ISpeechObjectTokenCategory, 0xca7eac50, 0x2d01, 0x4145, 0x86,0xd4, 0x5a,0xe7,0xd7,0x0f,0x44,0x69)
13579 #endif
13580 #else
13581 typedef struct ISpeechObjectTokenCategoryVtbl {
13582     BEGIN_INTERFACE
13583 
13584     /*** IUnknown methods ***/
13585     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13586         ISpeechObjectTokenCategory* This,
13587         REFIID riid,
13588         void **ppvObject);
13589 
13590     ULONG (STDMETHODCALLTYPE *AddRef)(
13591         ISpeechObjectTokenCategory* This);
13592 
13593     ULONG (STDMETHODCALLTYPE *Release)(
13594         ISpeechObjectTokenCategory* This);
13595 
13596     /*** IDispatch methods ***/
13597     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13598         ISpeechObjectTokenCategory* This,
13599         UINT *pctinfo);
13600 
13601     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13602         ISpeechObjectTokenCategory* This,
13603         UINT iTInfo,
13604         LCID lcid,
13605         ITypeInfo **ppTInfo);
13606 
13607     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13608         ISpeechObjectTokenCategory* This,
13609         REFIID riid,
13610         LPOLESTR *rgszNames,
13611         UINT cNames,
13612         LCID lcid,
13613         DISPID *rgDispId);
13614 
13615     HRESULT (STDMETHODCALLTYPE *Invoke)(
13616         ISpeechObjectTokenCategory* This,
13617         DISPID dispIdMember,
13618         REFIID riid,
13619         LCID lcid,
13620         WORD wFlags,
13621         DISPPARAMS *pDispParams,
13622         VARIANT *pVarResult,
13623         EXCEPINFO *pExcepInfo,
13624         UINT *puArgErr);
13625 
13626     /*** ISpeechObjectTokenCategory methods ***/
13627     HRESULT (STDMETHODCALLTYPE *get_Id)(
13628         ISpeechObjectTokenCategory* This,
13629         BSTR *Id);
13630 
13631     HRESULT (STDMETHODCALLTYPE *put_Default)(
13632         ISpeechObjectTokenCategory* This,
13633         const BSTR TokenId);
13634 
13635     HRESULT (STDMETHODCALLTYPE *get_Default)(
13636         ISpeechObjectTokenCategory* This,
13637         BSTR *TokenId);
13638 
13639     HRESULT (STDMETHODCALLTYPE *SetId)(
13640         ISpeechObjectTokenCategory* This,
13641         const BSTR Id,
13642         VARIANT_BOOL CreateIfNotExist);
13643 
13644     HRESULT (STDMETHODCALLTYPE *GetDataKey)(
13645         ISpeechObjectTokenCategory* This,
13646         SpeechDataKeyLocation Location,
13647         ISpeechDataKey **DataKey);
13648 
13649     HRESULT (STDMETHODCALLTYPE *EnumerateTokens)(
13650         ISpeechObjectTokenCategory* This,
13651         BSTR RequiredAttributes,
13652         BSTR OptionalAttributes,
13653         ISpeechObjectTokens **Tokens);
13654 
13655     END_INTERFACE
13656 } ISpeechObjectTokenCategoryVtbl;
13657 interface ISpeechObjectTokenCategory {
13658     CONST_VTBL ISpeechObjectTokenCategoryVtbl* lpVtbl;
13659 };
13660 
13661 #ifdef COBJMACROS
13662 #ifndef WIDL_C_INLINE_WRAPPERS
13663 /*** IUnknown methods ***/
13664 #define ISpeechObjectTokenCategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13665 #define ISpeechObjectTokenCategory_AddRef(This) (This)->lpVtbl->AddRef(This)
13666 #define ISpeechObjectTokenCategory_Release(This) (This)->lpVtbl->Release(This)
13667 /*** IDispatch methods ***/
13668 #define ISpeechObjectTokenCategory_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13669 #define ISpeechObjectTokenCategory_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13670 #define ISpeechObjectTokenCategory_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13671 #define ISpeechObjectTokenCategory_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13672 /*** ISpeechObjectTokenCategory methods ***/
13673 #define ISpeechObjectTokenCategory_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
13674 #define ISpeechObjectTokenCategory_put_Default(This,TokenId) (This)->lpVtbl->put_Default(This,TokenId)
13675 #define ISpeechObjectTokenCategory_get_Default(This,TokenId) (This)->lpVtbl->get_Default(This,TokenId)
13676 #define ISpeechObjectTokenCategory_SetId(This,Id,CreateIfNotExist) (This)->lpVtbl->SetId(This,Id,CreateIfNotExist)
13677 #define ISpeechObjectTokenCategory_GetDataKey(This,Location,DataKey) (This)->lpVtbl->GetDataKey(This,Location,DataKey)
13678 #define ISpeechObjectTokenCategory_EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens) (This)->lpVtbl->EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens)
13679 #else
13680 /*** IUnknown methods ***/
13681 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_QueryInterface(ISpeechObjectTokenCategory* This,REFIID riid,void **ppvObject) {
13682     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13683 }
13684 static FORCEINLINE ULONG ISpeechObjectTokenCategory_AddRef(ISpeechObjectTokenCategory* This) {
13685     return This->lpVtbl->AddRef(This);
13686 }
13687 static FORCEINLINE ULONG ISpeechObjectTokenCategory_Release(ISpeechObjectTokenCategory* This) {
13688     return This->lpVtbl->Release(This);
13689 }
13690 /*** IDispatch methods ***/
13691 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_GetTypeInfoCount(ISpeechObjectTokenCategory* This,UINT *pctinfo) {
13692     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13693 }
13694 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_GetTypeInfo(ISpeechObjectTokenCategory* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13695     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13696 }
13697 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_GetIDsOfNames(ISpeechObjectTokenCategory* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13698     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13699 }
13700 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_Invoke(ISpeechObjectTokenCategory* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13701     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13702 }
13703 /*** ISpeechObjectTokenCategory methods ***/
13704 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_get_Id(ISpeechObjectTokenCategory* This,BSTR *Id) {
13705     return This->lpVtbl->get_Id(This,Id);
13706 }
13707 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_put_Default(ISpeechObjectTokenCategory* This,const BSTR TokenId) {
13708     return This->lpVtbl->put_Default(This,TokenId);
13709 }
13710 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_get_Default(ISpeechObjectTokenCategory* This,BSTR *TokenId) {
13711     return This->lpVtbl->get_Default(This,TokenId);
13712 }
13713 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_SetId(ISpeechObjectTokenCategory* This,const BSTR Id,VARIANT_BOOL CreateIfNotExist) {
13714     return This->lpVtbl->SetId(This,Id,CreateIfNotExist);
13715 }
13716 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_GetDataKey(ISpeechObjectTokenCategory* This,SpeechDataKeyLocation Location,ISpeechDataKey **DataKey) {
13717     return This->lpVtbl->GetDataKey(This,Location,DataKey);
13718 }
13719 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_EnumerateTokens(ISpeechObjectTokenCategory* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **Tokens) {
13720     return This->lpVtbl->EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens);
13721 }
13722 #endif
13723 #endif
13724 
13725 #endif
13726 
13727 HRESULT STDMETHODCALLTYPE ISpeechObjectTokenCategory_get_Id_Proxy(
13728     ISpeechObjectTokenCategory* This,
13729     BSTR *Id);
13730 void __RPC_STUB ISpeechObjectTokenCategory_get_Id_Stub(
13731     IRpcStubBuffer* This,
13732     IRpcChannelBuffer* pRpcChannelBuffer,
13733     PRPC_MESSAGE pRpcMessage,
13734     DWORD* pdwStubPhase);
13735 HRESULT STDMETHODCALLTYPE ISpeechObjectTokenCategory_put_Default_Proxy(
13736     ISpeechObjectTokenCategory* This,
13737     const BSTR TokenId);
13738 void __RPC_STUB ISpeechObjectTokenCategory_put_Default_Stub(
13739     IRpcStubBuffer* This,
13740     IRpcChannelBuffer* pRpcChannelBuffer,
13741     PRPC_MESSAGE pRpcMessage,
13742     DWORD* pdwStubPhase);
13743 HRESULT STDMETHODCALLTYPE ISpeechObjectTokenCategory_get_Default_Proxy(
13744     ISpeechObjectTokenCategory* This,
13745     BSTR *TokenId);
13746 void __RPC_STUB ISpeechObjectTokenCategory_get_Default_Stub(
13747     IRpcStubBuffer* This,
13748     IRpcChannelBuffer* pRpcChannelBuffer,
13749     PRPC_MESSAGE pRpcMessage,
13750     DWORD* pdwStubPhase);
13751 HRESULT STDMETHODCALLTYPE ISpeechObjectTokenCategory_SetId_Proxy(
13752     ISpeechObjectTokenCategory* This,
13753     const BSTR Id,
13754     VARIANT_BOOL CreateIfNotExist);
13755 void __RPC_STUB ISpeechObjectTokenCategory_SetId_Stub(
13756     IRpcStubBuffer* This,
13757     IRpcChannelBuffer* pRpcChannelBuffer,
13758     PRPC_MESSAGE pRpcMessage,
13759     DWORD* pdwStubPhase);
13760 HRESULT STDMETHODCALLTYPE ISpeechObjectTokenCategory_GetDataKey_Proxy(
13761     ISpeechObjectTokenCategory* This,
13762     SpeechDataKeyLocation Location,
13763     ISpeechDataKey **DataKey);
13764 void __RPC_STUB ISpeechObjectTokenCategory_GetDataKey_Stub(
13765     IRpcStubBuffer* This,
13766     IRpcChannelBuffer* pRpcChannelBuffer,
13767     PRPC_MESSAGE pRpcMessage,
13768     DWORD* pdwStubPhase);
13769 HRESULT STDMETHODCALLTYPE ISpeechObjectTokenCategory_EnumerateTokens_Proxy(
13770     ISpeechObjectTokenCategory* This,
13771     BSTR RequiredAttributes,
13772     BSTR OptionalAttributes,
13773     ISpeechObjectTokens **Tokens);
13774 void __RPC_STUB ISpeechObjectTokenCategory_EnumerateTokens_Stub(
13775     IRpcStubBuffer* This,
13776     IRpcChannelBuffer* pRpcChannelBuffer,
13777     PRPC_MESSAGE pRpcMessage,
13778     DWORD* pdwStubPhase);
13779 
13780 #endif  /* __ISpeechObjectTokenCategory_INTERFACE_DEFINED__ */
13781 
13782 typedef enum SpeechAudioFormatType {
13783     SAFTDefault = -1,
13784     SAFTNoAssignedFormat = 0,
13785     SAFTText = 1,
13786     SAFTNonStandardFormat = 2,
13787     SAFTExtendedAudioFormat = 3,
13788     SAFT8kHz8BitMono = 4,
13789     SAFT8kHz8BitStereo = 5,
13790     SAFT8kHz16BitMono = 6,
13791     SAFT8kHz16BitStereo = 7,
13792     SAFT11kHz8BitMono = 8,
13793     SAFT11kHz8BitStereo = 9,
13794     SAFT11kHz16BitMono = 10,
13795     SAFT11kHz16BitStereo = 11,
13796     SAFT12kHz8BitMono = 12,
13797     SAFT12kHz8BitStereo = 13,
13798     SAFT12kHz16BitMono = 14,
13799     SAFT12kHz16BitStereo = 15,
13800     SAFT16kHz8BitMono = 16,
13801     SAFT16kHz8BitStereo = 17,
13802     SAFT16kHz16BitMono = 18,
13803     SAFT16kHz16BitStereo = 19,
13804     SAFT22kHz8BitMono = 20,
13805     SAFT22kHz8BitStereo = 21,
13806     SAFT22kHz16BitMono = 22,
13807     SAFT22kHz16BitStereo = 23,
13808     SAFT24kHz8BitMono = 24,
13809     SAFT24kHz8BitStereo = 25,
13810     SAFT24kHz16BitMono = 26,
13811     SAFT24kHz16BitStereo = 27,
13812     SAFT32kHz8BitMono = 28,
13813     SAFT32kHz8BitStereo = 29,
13814     SAFT32kHz16BitMono = 30,
13815     SAFT32kHz16BitStereo = 31,
13816     SAFT44kHz8BitMono = 32,
13817     SAFT44kHz8BitStereo = 33,
13818     SAFT44kHz16BitMono = 34,
13819     SAFT44kHz16BitStereo = 35,
13820     SAFT48kHz8BitMono = 36,
13821     SAFT48kHz8BitStereo = 37,
13822     SAFT48kHz16BitMono = 38,
13823     SAFT48kHz16BitStereo = 39,
13824     SAFTTrueSpeech_8kHz1BitMono = 40,
13825     SAFTCCITT_ALaw_8kHzMono = 41,
13826     SAFTCCITT_ALaw_8kHzStereo = 42,
13827     SAFTCCITT_ALaw_11kHzMono = 43,
13828     SAFTCCITT_ALaw_11kHzStereo = 44,
13829     SAFTCCITT_ALaw_22kHzMono = 45,
13830     SAFTCCITT_ALaw_22kHzStereo = 46,
13831     SAFTCCITT_ALaw_44kHzMono = 47,
13832     SAFTCCITT_ALaw_44kHzStereo = 48,
13833     SAFTCCITT_uLaw_8kHzMono = 49,
13834     SAFTCCITT_uLaw_8kHzStereo = 50,
13835     SAFTCCITT_uLaw_11kHzMono = 51,
13836     SAFTCCITT_uLaw_11kHzStereo = 52,
13837     SAFTCCITT_uLaw_22kHzMono = 53,
13838     SAFTCCITT_uLaw_22kHzStereo = 54,
13839     SAFTCCITT_uLaw_44kHzMono = 55,
13840     SAFTCCITT_uLaw_44kHzStereo = 56,
13841     SAFTADPCM_8kHzMono = 57,
13842     SAFTADPCM_8kHzStereo = 58,
13843     SAFTADPCM_11kHzMono = 59,
13844     SAFTADPCM_11kHzStereo = 60,
13845     SAFTADPCM_22kHzMono = 61,
13846     SAFTADPCM_22kHzStereo = 62,
13847     SAFTADPCM_44kHzMono = 63,
13848     SAFTADPCM_44kHzStereo = 64,
13849     SAFTGSM610_8kHzMono = 65,
13850     SAFTGSM610_11kHzMono = 66,
13851     SAFTGSM610_22kHzMono = 67,
13852     SAFTGSM610_44kHzMono = 68
13853 } SpeechAudioFormatType;
13854 typedef enum DISPID_SpeechAudioFormat {
13855     DISPID_SAFType = 1,
13856     DISPID_SAFGuid = 2,
13857     DISPID_SAFGetWaveFormatEx = 3,
13858     DISPID_SAFSetWaveFormatEx = 4
13859 } DISPID_SpeechAudioFormat;
13860 typedef enum DISPID_SpeechBaseStream {
13861     DISPID_SBSFormat = 1,
13862     DISPID_SBSRead = 2,
13863     DISPID_SBSWrite = 3,
13864     DISPID_SBSSeek = 4
13865 } DISPID_SpeechBaseStream;
13866 typedef enum SpeechStreamSeekPositionType {
13867     SSSPTRelativeToStart = STREAM_SEEK_SET,
13868     SSSPTRelativeToCurrentPosition = STREAM_SEEK_CUR,
13869     SSSPTRelativeToEnd = STREAM_SEEK_END
13870 } SpeechStreamSeekPositionType;
13871 typedef enum DISPID_SpeechAudio {
13872     DISPID_SAStatus = 200,
13873     DISPID_SABufferInfo = 201,
13874     DISPID_SADefaultFormat = 202,
13875     DISPID_SAVolume = 203,
13876     DISPID_SABufferNotifySize = 204,
13877     DISPID_SAEventHandle = 205,
13878     DISPID_SASetState = 206
13879 } DISPID_SpeechAudio;
13880 typedef enum SpeechAudioState {
13881     SASClosed = SPAS_CLOSED,
13882     SASStop = SPAS_STOP,
13883     SASPause = SPAS_PAUSE,
13884     SASRun = SPAS_RUN
13885 } SpeechAudioState;
13886 typedef enum DISPID_SpeechMMSysAudio {
13887     DISPID_SMSADeviceId = 300,
13888     DISPID_SMSALineId = 301,
13889     DISPID_SMSAMMHandle = 302
13890 } DISPID_SpeechMMSysAudio;
13891 typedef enum DISPID_SpeechFileStream {
13892     DISPID_SFSOpen = 100,
13893     DISPID_SFSClose = 101
13894 } DISPID_SpeechFileStream;
13895 typedef enum SpeechStreamFileMode {
13896     SSFMOpenForRead = SPFM_OPEN_READONLY,
13897     SSFMOpenReadWrite = SPFM_OPEN_READWRITE,
13898     SSFMCreate = SPFM_CREATE,
13899     SSFMCreateForWrite = SPFM_CREATE_ALWAYS
13900 } SpeechStreamFileMode;
13901 typedef enum DISPID_SpeechCustomStream {
13902     DISPID_SCSBaseStream = 100
13903 } DISPID_SpeechCustomStream;
13904 typedef enum DISPID_SpeechMemoryStream {
13905     DISPID_SMSSetData = 100,
13906     DISPID_SMSGetData = 101
13907 } DISPID_SpeechMemoryStream;
13908 typedef enum DISPID_SpeechAudioStatus {
13909     DISPID_SASFreeBufferSpace = 1,
13910     DISPID_SASNonBlockingIO = 2,
13911     DISPID_SASState = 3,
13912     DISPID_SASCurrentSeekPosition = 4,
13913     DISPID_SASCurrentDevicePosition = 5
13914 } DISPID_SpeechAudioStatus;
13915 typedef enum DISPID_SpeechAudioBufferInfo {
13916     DISPID_SABIMinNotification = 1,
13917     DISPID_SABIBufferSize = 2,
13918     DISPID_SABIEventBias = 3
13919 } DISPID_SpeechAudioBufferInfo;
13920 typedef enum DISPID_SpeechWaveFormatEx {
13921     DISPID_SWFEFormatTag = 1,
13922     DISPID_SWFEChannels = 2,
13923     DISPID_SWFESamplesPerSec = 3,
13924     DISPID_SWFEAvgBytesPerSec = 4,
13925     DISPID_SWFEBlockAlign = 5,
13926     DISPID_SWFEBitsPerSample = 6,
13927     DISPID_SWFEExtraData = 7
13928 } DISPID_SpeechWaveFormatEx;
13929 typedef enum DISPID_SpeechVoice {
13930     DISPID_SVStatus = 1,
13931     DISPID_SVVoice = 2,
13932     DISPID_SVAudioOutput = 3,
13933     DISPID_SVAudioOutputStream = 4,
13934     DISPID_SVRate = 5,
13935     DISPID_SVVolume = 6,
13936     DISPID_SVAllowAudioOuputFormatChangesOnNextSet = 7,
13937     DISPID_SVEventInterests = 8,
13938     DISPID_SVPriority = 9,
13939     DISPID_SVAlertBoundary = 10,
13940     DISPID_SVSyncronousSpeakTimeout = 11,
13941     DISPID_SVSpeak = 12,
13942     DISPID_SVSpeakStream = 13,
13943     DISPID_SVPause = 14,
13944     DISPID_SVResume = 15,
13945     DISPID_SVSkip = 16,
13946     DISPID_SVGetVoices = 17,
13947     DISPID_SVGetAudioOutputs = 18,
13948     DISPID_SVWaitUntilDone = 19,
13949     DISPID_SVSpeakCompleteEvent = 20,
13950     DISPID_SVIsUISupported = 21,
13951     DISPID_SVDisplayUI = 22
13952 } DISPID_SpeechVoice;
13953 typedef enum SpeechVoicePriority {
13954     SVPNormal = SPVPRI_NORMAL,
13955     SVPAlert = SPVPRI_ALERT,
13956     SVPOver = SPVPRI_OVER
13957 } SpeechVoicePriority;
13958 typedef enum SpeechVoiceSpeakFlags {
13959     SVSFDefault = SPF_DEFAULT,
13960     SVSFlagsAsync = SPF_ASYNC,
13961     SVSFPurgeBeforeSpeak = SPF_PURGEBEFORESPEAK,
13962     SVSFIsFilename = SPF_IS_FILENAME,
13963     SVSFIsXML = SPF_IS_XML,
13964     SVSFIsNotXML = SPF_IS_NOT_XML,
13965     SVSFPersistXML = SPF_PERSIST_XML,
13966     SVSFNLPSpeakPunc = SPF_NLP_SPEAK_PUNC,
13967     SVSFParseSapi = SPF_PARSE_SAPI,
13968     SVSFParseSsml = SPF_PARSE_SSML,
13969     SVSFParseAutodetect = SPF_PARSE_AUTODETECT,
13970     SVSFNLPMask = SPF_NLP_MASK,
13971     SVSFParseMask = SPF_PARSE_MASK,
13972     SVSFVoiceMask = SPF_VOICE_MASK,
13973     SVSFUnusedFlags = SPF_UNUSED_FLAGS
13974 } SpeechVoiceSpeakFlags;
13975 typedef enum SpeechVoiceEvents {
13976     SVEStartInputStream = 0x2,
13977     SVEEndInputStream = 0x4,
13978     SVEVoiceChange = 0x8,
13979     SVEBookmark = 0x10,
13980     SVEWordBoundary = 0x20,
13981     SVEPhoneme = 0x40,
13982     SVESentenceBoundary = 0x80,
13983     SVEViseme = 0x100,
13984     SVEAudioLevel = 0x200,
13985     SVEPrivate = 0x8000,
13986     SVEAllEvents = 0x83fe
13987 } SpeechVoiceEvents;
13988 typedef enum DISPID_SpeechVoiceStatus {
13989     DISPID_SVSCurrentStreamNumber = 1,
13990     DISPID_SVSLastStreamNumberQueued = 2,
13991     DISPID_SVSLastResult = 3,
13992     DISPID_SVSRunningState = 4,
13993     DISPID_SVSInputWordPosition = 5,
13994     DISPID_SVSInputWordLength = 6,
13995     DISPID_SVSInputSentencePosition = 7,
13996     DISPID_SVSInputSentenceLength = 8,
13997     DISPID_SVSLastBookmark = 9,
13998     DISPID_SVSLastBookmarkId = 10,
13999     DISPID_SVSPhonemeId = 11,
14000     DISPID_SVSVisemeId = 12
14001 } DISPID_SpeechVoiceStatus;
14002 typedef enum SpeechRunState {
14003     SRSEDone = SPRS_DONE,
14004     SRSEIsSpeaking = SPRS_IS_SPEAKING
14005 } SpeechRunState;
14006 /*****************************************************************************
14007  * ISpeechAudioFormat interface
14008  */
14009 #ifndef __ISpeechAudioFormat_INTERFACE_DEFINED__
14010 #define __ISpeechAudioFormat_INTERFACE_DEFINED__
14011 
14012 DEFINE_GUID(IID_ISpeechAudioFormat, 0xe6e9c590, 0x3e18, 0x40e3, 0x82,0x99, 0x06,0x1f,0x98,0xbd,0xe7,0xc7);
14013 #if defined(__cplusplus) && !defined(CINTERFACE)
14014 MIDL_INTERFACE("e6e9c590-3e18-40e3-8299-061f98bde7c7")
14015 ISpeechAudioFormat : public IDispatch
14016 {
14017     virtual HRESULT STDMETHODCALLTYPE get_Type(
14018         SpeechAudioFormatType *AudioFormat) = 0;
14019 
14020     virtual HRESULT STDMETHODCALLTYPE put_Type(
14021         SpeechAudioFormatType AudioFormat) = 0;
14022 
14023     virtual HRESULT STDMETHODCALLTYPE get_Guid(
14024         BSTR *Guid) = 0;
14025 
14026     virtual HRESULT STDMETHODCALLTYPE put_Guid(
14027         BSTR Guid) = 0;
14028 
14029     virtual HRESULT STDMETHODCALLTYPE GetWaveFormatEx(
14030         ISpeechWaveFormatEx **SpeechWaveFormatEx) = 0;
14031 
14032     virtual HRESULT STDMETHODCALLTYPE SetWaveFormatEx(
14033         ISpeechWaveFormatEx *SpeechWaveFormatEx) = 0;
14034 
14035 };
14036 #ifdef __CRT_UUID_DECL
14037 __CRT_UUID_DECL(ISpeechAudioFormat, 0xe6e9c590, 0x3e18, 0x40e3, 0x82,0x99, 0x06,0x1f,0x98,0xbd,0xe7,0xc7)
14038 #endif
14039 #else
14040 typedef struct ISpeechAudioFormatVtbl {
14041     BEGIN_INTERFACE
14042 
14043     /*** IUnknown methods ***/
14044     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14045         ISpeechAudioFormat* This,
14046         REFIID riid,
14047         void **ppvObject);
14048 
14049     ULONG (STDMETHODCALLTYPE *AddRef)(
14050         ISpeechAudioFormat* This);
14051 
14052     ULONG (STDMETHODCALLTYPE *Release)(
14053         ISpeechAudioFormat* This);
14054 
14055     /*** IDispatch methods ***/
14056     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
14057         ISpeechAudioFormat* This,
14058         UINT *pctinfo);
14059 
14060     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
14061         ISpeechAudioFormat* This,
14062         UINT iTInfo,
14063         LCID lcid,
14064         ITypeInfo **ppTInfo);
14065 
14066     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
14067         ISpeechAudioFormat* This,
14068         REFIID riid,
14069         LPOLESTR *rgszNames,
14070         UINT cNames,
14071         LCID lcid,
14072         DISPID *rgDispId);
14073 
14074     HRESULT (STDMETHODCALLTYPE *Invoke)(
14075         ISpeechAudioFormat* This,
14076         DISPID dispIdMember,
14077         REFIID riid,
14078         LCID lcid,
14079         WORD wFlags,
14080         DISPPARAMS *pDispParams,
14081         VARIANT *pVarResult,
14082         EXCEPINFO *pExcepInfo,
14083         UINT *puArgErr);
14084 
14085     /*** ISpeechAudioFormat methods ***/
14086     HRESULT (STDMETHODCALLTYPE *get_Type)(
14087         ISpeechAudioFormat* This,
14088         SpeechAudioFormatType *AudioFormat);
14089 
14090     HRESULT (STDMETHODCALLTYPE *put_Type)(
14091         ISpeechAudioFormat* This,
14092         SpeechAudioFormatType AudioFormat);
14093 
14094     HRESULT (STDMETHODCALLTYPE *get_Guid)(
14095         ISpeechAudioFormat* This,
14096         BSTR *Guid);
14097 
14098     HRESULT (STDMETHODCALLTYPE *put_Guid)(
14099         ISpeechAudioFormat* This,
14100         BSTR Guid);
14101 
14102     HRESULT (STDMETHODCALLTYPE *GetWaveFormatEx)(
14103         ISpeechAudioFormat* This,
14104         ISpeechWaveFormatEx **SpeechWaveFormatEx);
14105 
14106     HRESULT (STDMETHODCALLTYPE *SetWaveFormatEx)(
14107         ISpeechAudioFormat* This,
14108         ISpeechWaveFormatEx *SpeechWaveFormatEx);
14109 
14110     END_INTERFACE
14111 } ISpeechAudioFormatVtbl;
14112 interface ISpeechAudioFormat {
14113     CONST_VTBL ISpeechAudioFormatVtbl* lpVtbl;
14114 };
14115 
14116 #ifdef COBJMACROS
14117 #ifndef WIDL_C_INLINE_WRAPPERS
14118 /*** IUnknown methods ***/
14119 #define ISpeechAudioFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14120 #define ISpeechAudioFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
14121 #define ISpeechAudioFormat_Release(This) (This)->lpVtbl->Release(This)
14122 /*** IDispatch methods ***/
14123 #define ISpeechAudioFormat_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14124 #define ISpeechAudioFormat_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14125 #define ISpeechAudioFormat_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14126 #define ISpeechAudioFormat_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14127 /*** ISpeechAudioFormat methods ***/
14128 #define ISpeechAudioFormat_get_Type(This,AudioFormat) (This)->lpVtbl->get_Type(This,AudioFormat)
14129 #define ISpeechAudioFormat_put_Type(This,AudioFormat) (This)->lpVtbl->put_Type(This,AudioFormat)
14130 #define ISpeechAudioFormat_get_Guid(This,Guid) (This)->lpVtbl->get_Guid(This,Guid)
14131 #define ISpeechAudioFormat_put_Guid(This,Guid) (This)->lpVtbl->put_Guid(This,Guid)
14132 #define ISpeechAudioFormat_GetWaveFormatEx(This,SpeechWaveFormatEx) (This)->lpVtbl->GetWaveFormatEx(This,SpeechWaveFormatEx)
14133 #define ISpeechAudioFormat_SetWaveFormatEx(This,SpeechWaveFormatEx) (This)->lpVtbl->SetWaveFormatEx(This,SpeechWaveFormatEx)
14134 #else
14135 /*** IUnknown methods ***/
14136 static FORCEINLINE HRESULT ISpeechAudioFormat_QueryInterface(ISpeechAudioFormat* This,REFIID riid,void **ppvObject) {
14137     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14138 }
14139 static FORCEINLINE ULONG ISpeechAudioFormat_AddRef(ISpeechAudioFormat* This) {
14140     return This->lpVtbl->AddRef(This);
14141 }
14142 static FORCEINLINE ULONG ISpeechAudioFormat_Release(ISpeechAudioFormat* This) {
14143     return This->lpVtbl->Release(This);
14144 }
14145 /*** IDispatch methods ***/
14146 static FORCEINLINE HRESULT ISpeechAudioFormat_GetTypeInfoCount(ISpeechAudioFormat* This,UINT *pctinfo) {
14147     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14148 }
14149 static FORCEINLINE HRESULT ISpeechAudioFormat_GetTypeInfo(ISpeechAudioFormat* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14150     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14151 }
14152 static FORCEINLINE HRESULT ISpeechAudioFormat_GetIDsOfNames(ISpeechAudioFormat* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14153     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14154 }
14155 static FORCEINLINE HRESULT ISpeechAudioFormat_Invoke(ISpeechAudioFormat* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14156     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14157 }
14158 /*** ISpeechAudioFormat methods ***/
14159 static FORCEINLINE HRESULT ISpeechAudioFormat_get_Type(ISpeechAudioFormat* This,SpeechAudioFormatType *AudioFormat) {
14160     return This->lpVtbl->get_Type(This,AudioFormat);
14161 }
14162 static FORCEINLINE HRESULT ISpeechAudioFormat_put_Type(ISpeechAudioFormat* This,SpeechAudioFormatType AudioFormat) {
14163     return This->lpVtbl->put_Type(This,AudioFormat);
14164 }
14165 static FORCEINLINE HRESULT ISpeechAudioFormat_get_Guid(ISpeechAudioFormat* This,BSTR *Guid) {
14166     return This->lpVtbl->get_Guid(This,Guid);
14167 }
14168 static FORCEINLINE HRESULT ISpeechAudioFormat_put_Guid(ISpeechAudioFormat* This,BSTR Guid) {
14169     return This->lpVtbl->put_Guid(This,Guid);
14170 }
14171 static FORCEINLINE HRESULT ISpeechAudioFormat_GetWaveFormatEx(ISpeechAudioFormat* This,ISpeechWaveFormatEx **SpeechWaveFormatEx) {
14172     return This->lpVtbl->GetWaveFormatEx(This,SpeechWaveFormatEx);
14173 }
14174 static FORCEINLINE HRESULT ISpeechAudioFormat_SetWaveFormatEx(ISpeechAudioFormat* This,ISpeechWaveFormatEx *SpeechWaveFormatEx) {
14175     return This->lpVtbl->SetWaveFormatEx(This,SpeechWaveFormatEx);
14176 }
14177 #endif
14178 #endif
14179 
14180 #endif
14181 
14182 HRESULT STDMETHODCALLTYPE ISpeechAudioFormat_get_Type_Proxy(
14183     ISpeechAudioFormat* This,
14184     SpeechAudioFormatType *AudioFormat);
14185 void __RPC_STUB ISpeechAudioFormat_get_Type_Stub(
14186     IRpcStubBuffer* This,
14187     IRpcChannelBuffer* pRpcChannelBuffer,
14188     PRPC_MESSAGE pRpcMessage,
14189     DWORD* pdwStubPhase);
14190 HRESULT STDMETHODCALLTYPE ISpeechAudioFormat_put_Type_Proxy(
14191     ISpeechAudioFormat* This,
14192     SpeechAudioFormatType AudioFormat);
14193 void __RPC_STUB ISpeechAudioFormat_put_Type_Stub(
14194     IRpcStubBuffer* This,
14195     IRpcChannelBuffer* pRpcChannelBuffer,
14196     PRPC_MESSAGE pRpcMessage,
14197     DWORD* pdwStubPhase);
14198 HRESULT STDMETHODCALLTYPE ISpeechAudioFormat_get_Guid_Proxy(
14199     ISpeechAudioFormat* This,
14200     BSTR *Guid);
14201 void __RPC_STUB ISpeechAudioFormat_get_Guid_Stub(
14202     IRpcStubBuffer* This,
14203     IRpcChannelBuffer* pRpcChannelBuffer,
14204     PRPC_MESSAGE pRpcMessage,
14205     DWORD* pdwStubPhase);
14206 HRESULT STDMETHODCALLTYPE ISpeechAudioFormat_put_Guid_Proxy(
14207     ISpeechAudioFormat* This,
14208     BSTR Guid);
14209 void __RPC_STUB ISpeechAudioFormat_put_Guid_Stub(
14210     IRpcStubBuffer* This,
14211     IRpcChannelBuffer* pRpcChannelBuffer,
14212     PRPC_MESSAGE pRpcMessage,
14213     DWORD* pdwStubPhase);
14214 HRESULT STDMETHODCALLTYPE ISpeechAudioFormat_GetWaveFormatEx_Proxy(
14215     ISpeechAudioFormat* This,
14216     ISpeechWaveFormatEx **SpeechWaveFormatEx);
14217 void __RPC_STUB ISpeechAudioFormat_GetWaveFormatEx_Stub(
14218     IRpcStubBuffer* This,
14219     IRpcChannelBuffer* pRpcChannelBuffer,
14220     PRPC_MESSAGE pRpcMessage,
14221     DWORD* pdwStubPhase);
14222 HRESULT STDMETHODCALLTYPE ISpeechAudioFormat_SetWaveFormatEx_Proxy(
14223     ISpeechAudioFormat* This,
14224     ISpeechWaveFormatEx *SpeechWaveFormatEx);
14225 void __RPC_STUB ISpeechAudioFormat_SetWaveFormatEx_Stub(
14226     IRpcStubBuffer* This,
14227     IRpcChannelBuffer* pRpcChannelBuffer,
14228     PRPC_MESSAGE pRpcMessage,
14229     DWORD* pdwStubPhase);
14230 
14231 #endif  /* __ISpeechAudioFormat_INTERFACE_DEFINED__ */
14232 
14233 /*****************************************************************************
14234  * ISpeechBaseStream interface
14235  */
14236 #ifndef __ISpeechBaseStream_INTERFACE_DEFINED__
14237 #define __ISpeechBaseStream_INTERFACE_DEFINED__
14238 
14239 DEFINE_GUID(IID_ISpeechBaseStream, 0x6450336f, 0x7d49, 0x4ced, 0x80,0x97, 0x49,0xd6,0xde,0xe3,0x72,0x94);
14240 #if defined(__cplusplus) && !defined(CINTERFACE)
14241 MIDL_INTERFACE("6450336f-7d49-4ced-8097-49d6dee37294")
14242 ISpeechBaseStream : public IDispatch
14243 {
14244     virtual HRESULT STDMETHODCALLTYPE get_Format(
14245         ISpeechAudioFormat **AudioFormat) = 0;
14246 
14247     virtual HRESULT STDMETHODCALLTYPE putref_Format(
14248         ISpeechAudioFormat *AudioFormat) = 0;
14249 
14250     virtual HRESULT STDMETHODCALLTYPE Read(
14251         VARIANT *Buffer,
14252         LONG NumberOfBytes,
14253         LONG *BytesRead) = 0;
14254 
14255     virtual HRESULT STDMETHODCALLTYPE Write(
14256         VARIANT Buffer,
14257         LONG *BytesWritten) = 0;
14258 
14259     virtual HRESULT STDMETHODCALLTYPE Seek(
14260         VARIANT Position,
14261         SpeechStreamSeekPositionType Origin,
14262         VARIANT *NewPosition) = 0;
14263 
14264 };
14265 #ifdef __CRT_UUID_DECL
14266 __CRT_UUID_DECL(ISpeechBaseStream, 0x6450336f, 0x7d49, 0x4ced, 0x80,0x97, 0x49,0xd6,0xde,0xe3,0x72,0x94)
14267 #endif
14268 #else
14269 typedef struct ISpeechBaseStreamVtbl {
14270     BEGIN_INTERFACE
14271 
14272     /*** IUnknown methods ***/
14273     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14274         ISpeechBaseStream* This,
14275         REFIID riid,
14276         void **ppvObject);
14277 
14278     ULONG (STDMETHODCALLTYPE *AddRef)(
14279         ISpeechBaseStream* This);
14280 
14281     ULONG (STDMETHODCALLTYPE *Release)(
14282         ISpeechBaseStream* This);
14283 
14284     /*** IDispatch methods ***/
14285     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
14286         ISpeechBaseStream* This,
14287         UINT *pctinfo);
14288 
14289     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
14290         ISpeechBaseStream* This,
14291         UINT iTInfo,
14292         LCID lcid,
14293         ITypeInfo **ppTInfo);
14294 
14295     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
14296         ISpeechBaseStream* This,
14297         REFIID riid,
14298         LPOLESTR *rgszNames,
14299         UINT cNames,
14300         LCID lcid,
14301         DISPID *rgDispId);
14302 
14303     HRESULT (STDMETHODCALLTYPE *Invoke)(
14304         ISpeechBaseStream* This,
14305         DISPID dispIdMember,
14306         REFIID riid,
14307         LCID lcid,
14308         WORD wFlags,
14309         DISPPARAMS *pDispParams,
14310         VARIANT *pVarResult,
14311         EXCEPINFO *pExcepInfo,
14312         UINT *puArgErr);
14313 
14314     /*** ISpeechBaseStream methods ***/
14315     HRESULT (STDMETHODCALLTYPE *get_Format)(
14316         ISpeechBaseStream* This,
14317         ISpeechAudioFormat **AudioFormat);
14318 
14319     HRESULT (STDMETHODCALLTYPE *putref_Format)(
14320         ISpeechBaseStream* This,
14321         ISpeechAudioFormat *AudioFormat);
14322 
14323     HRESULT (STDMETHODCALLTYPE *Read)(
14324         ISpeechBaseStream* This,
14325         VARIANT *Buffer,
14326         LONG NumberOfBytes,
14327         LONG *BytesRead);
14328 
14329     HRESULT (STDMETHODCALLTYPE *Write)(
14330         ISpeechBaseStream* This,
14331         VARIANT Buffer,
14332         LONG *BytesWritten);
14333 
14334     HRESULT (STDMETHODCALLTYPE *Seek)(
14335         ISpeechBaseStream* This,
14336         VARIANT Position,
14337         SpeechStreamSeekPositionType Origin,
14338         VARIANT *NewPosition);
14339 
14340     END_INTERFACE
14341 } ISpeechBaseStreamVtbl;
14342 interface ISpeechBaseStream {
14343     CONST_VTBL ISpeechBaseStreamVtbl* lpVtbl;
14344 };
14345 
14346 #ifdef COBJMACROS
14347 #ifndef WIDL_C_INLINE_WRAPPERS
14348 /*** IUnknown methods ***/
14349 #define ISpeechBaseStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14350 #define ISpeechBaseStream_AddRef(This) (This)->lpVtbl->AddRef(This)
14351 #define ISpeechBaseStream_Release(This) (This)->lpVtbl->Release(This)
14352 /*** IDispatch methods ***/
14353 #define ISpeechBaseStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14354 #define ISpeechBaseStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14355 #define ISpeechBaseStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14356 #define ISpeechBaseStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14357 /*** ISpeechBaseStream methods ***/
14358 #define ISpeechBaseStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
14359 #define ISpeechBaseStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
14360 #define ISpeechBaseStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
14361 #define ISpeechBaseStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
14362 #define ISpeechBaseStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
14363 #else
14364 /*** IUnknown methods ***/
14365 static FORCEINLINE HRESULT ISpeechBaseStream_QueryInterface(ISpeechBaseStream* This,REFIID riid,void **ppvObject) {
14366     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14367 }
14368 static FORCEINLINE ULONG ISpeechBaseStream_AddRef(ISpeechBaseStream* This) {
14369     return This->lpVtbl->AddRef(This);
14370 }
14371 static FORCEINLINE ULONG ISpeechBaseStream_Release(ISpeechBaseStream* This) {
14372     return This->lpVtbl->Release(This);
14373 }
14374 /*** IDispatch methods ***/
14375 static FORCEINLINE HRESULT ISpeechBaseStream_GetTypeInfoCount(ISpeechBaseStream* This,UINT *pctinfo) {
14376     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14377 }
14378 static FORCEINLINE HRESULT ISpeechBaseStream_GetTypeInfo(ISpeechBaseStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14379     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14380 }
14381 static FORCEINLINE HRESULT ISpeechBaseStream_GetIDsOfNames(ISpeechBaseStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14382     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14383 }
14384 static FORCEINLINE HRESULT ISpeechBaseStream_Invoke(ISpeechBaseStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14385     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14386 }
14387 /*** ISpeechBaseStream methods ***/
14388 static FORCEINLINE HRESULT ISpeechBaseStream_get_Format(ISpeechBaseStream* This,ISpeechAudioFormat **AudioFormat) {
14389     return This->lpVtbl->get_Format(This,AudioFormat);
14390 }
14391 static FORCEINLINE HRESULT ISpeechBaseStream_putref_Format(ISpeechBaseStream* This,ISpeechAudioFormat *AudioFormat) {
14392     return This->lpVtbl->putref_Format(This,AudioFormat);
14393 }
14394 static FORCEINLINE HRESULT ISpeechBaseStream_Read(ISpeechBaseStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
14395     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
14396 }
14397 static FORCEINLINE HRESULT ISpeechBaseStream_Write(ISpeechBaseStream* This,VARIANT Buffer,LONG *BytesWritten) {
14398     return This->lpVtbl->Write(This,Buffer,BytesWritten);
14399 }
14400 static FORCEINLINE HRESULT ISpeechBaseStream_Seek(ISpeechBaseStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
14401     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
14402 }
14403 #endif
14404 #endif
14405 
14406 #endif
14407 
14408 HRESULT STDMETHODCALLTYPE ISpeechBaseStream_get_Format_Proxy(
14409     ISpeechBaseStream* This,
14410     ISpeechAudioFormat **AudioFormat);
14411 void __RPC_STUB ISpeechBaseStream_get_Format_Stub(
14412     IRpcStubBuffer* This,
14413     IRpcChannelBuffer* pRpcChannelBuffer,
14414     PRPC_MESSAGE pRpcMessage,
14415     DWORD* pdwStubPhase);
14416 HRESULT STDMETHODCALLTYPE ISpeechBaseStream_putref_Format_Proxy(
14417     ISpeechBaseStream* This,
14418     ISpeechAudioFormat *AudioFormat);
14419 void __RPC_STUB ISpeechBaseStream_putref_Format_Stub(
14420     IRpcStubBuffer* This,
14421     IRpcChannelBuffer* pRpcChannelBuffer,
14422     PRPC_MESSAGE pRpcMessage,
14423     DWORD* pdwStubPhase);
14424 HRESULT STDMETHODCALLTYPE ISpeechBaseStream_Read_Proxy(
14425     ISpeechBaseStream* This,
14426     VARIANT *Buffer,
14427     LONG NumberOfBytes,
14428     LONG *BytesRead);
14429 void __RPC_STUB ISpeechBaseStream_Read_Stub(
14430     IRpcStubBuffer* This,
14431     IRpcChannelBuffer* pRpcChannelBuffer,
14432     PRPC_MESSAGE pRpcMessage,
14433     DWORD* pdwStubPhase);
14434 HRESULT STDMETHODCALLTYPE ISpeechBaseStream_Write_Proxy(
14435     ISpeechBaseStream* This,
14436     VARIANT Buffer,
14437     LONG *BytesWritten);
14438 void __RPC_STUB ISpeechBaseStream_Write_Stub(
14439     IRpcStubBuffer* This,
14440     IRpcChannelBuffer* pRpcChannelBuffer,
14441     PRPC_MESSAGE pRpcMessage,
14442     DWORD* pdwStubPhase);
14443 HRESULT STDMETHODCALLTYPE ISpeechBaseStream_Seek_Proxy(
14444     ISpeechBaseStream* This,
14445     VARIANT Position,
14446     SpeechStreamSeekPositionType Origin,
14447     VARIANT *NewPosition);
14448 void __RPC_STUB ISpeechBaseStream_Seek_Stub(
14449     IRpcStubBuffer* This,
14450     IRpcChannelBuffer* pRpcChannelBuffer,
14451     PRPC_MESSAGE pRpcMessage,
14452     DWORD* pdwStubPhase);
14453 
14454 #endif  /* __ISpeechBaseStream_INTERFACE_DEFINED__ */
14455 
14456 /*****************************************************************************
14457  * ISpeechAudio interface
14458  */
14459 #ifndef __ISpeechAudio_INTERFACE_DEFINED__
14460 #define __ISpeechAudio_INTERFACE_DEFINED__
14461 
14462 DEFINE_GUID(IID_ISpeechAudio, 0xcff8e175, 0x019e, 0x11d3, 0xa0,0x8e, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5);
14463 #if defined(__cplusplus) && !defined(CINTERFACE)
14464 MIDL_INTERFACE("cff8e175-019e-11d3-a08e-00c04f8ef9b5")
14465 ISpeechAudio : public ISpeechBaseStream
14466 {
14467     virtual HRESULT STDMETHODCALLTYPE get_Status(
14468         ISpeechAudioStatus **Status) = 0;
14469 
14470     virtual HRESULT STDMETHODCALLTYPE get_BufferInfo(
14471         ISpeechAudioBufferInfo **BufferInfo) = 0;
14472 
14473     virtual HRESULT STDMETHODCALLTYPE get_DefaultFormat(
14474         ISpeechAudioFormat **StreamFormat) = 0;
14475 
14476     virtual HRESULT STDMETHODCALLTYPE get_Volume(
14477         LONG *Volume) = 0;
14478 
14479     virtual HRESULT STDMETHODCALLTYPE put_Volume(
14480         LONG Volume) = 0;
14481 
14482     virtual HRESULT STDMETHODCALLTYPE get_BufferNotifySize(
14483         LONG *BufferNotifySize) = 0;
14484 
14485     virtual HRESULT STDMETHODCALLTYPE put_BufferNotifySize(
14486         LONG BufferNotifySize) = 0;
14487 
14488     virtual HRESULT STDMETHODCALLTYPE get_EventHandle(
14489         LONG *EventHandle) = 0;
14490 
14491     virtual HRESULT STDMETHODCALLTYPE SetState(
14492         SpeechAudioState State) = 0;
14493 
14494 };
14495 #ifdef __CRT_UUID_DECL
14496 __CRT_UUID_DECL(ISpeechAudio, 0xcff8e175, 0x019e, 0x11d3, 0xa0,0x8e, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5)
14497 #endif
14498 #else
14499 typedef struct ISpeechAudioVtbl {
14500     BEGIN_INTERFACE
14501 
14502     /*** IUnknown methods ***/
14503     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14504         ISpeechAudio* This,
14505         REFIID riid,
14506         void **ppvObject);
14507 
14508     ULONG (STDMETHODCALLTYPE *AddRef)(
14509         ISpeechAudio* This);
14510 
14511     ULONG (STDMETHODCALLTYPE *Release)(
14512         ISpeechAudio* This);
14513 
14514     /*** IDispatch methods ***/
14515     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
14516         ISpeechAudio* This,
14517         UINT *pctinfo);
14518 
14519     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
14520         ISpeechAudio* This,
14521         UINT iTInfo,
14522         LCID lcid,
14523         ITypeInfo **ppTInfo);
14524 
14525     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
14526         ISpeechAudio* This,
14527         REFIID riid,
14528         LPOLESTR *rgszNames,
14529         UINT cNames,
14530         LCID lcid,
14531         DISPID *rgDispId);
14532 
14533     HRESULT (STDMETHODCALLTYPE *Invoke)(
14534         ISpeechAudio* This,
14535         DISPID dispIdMember,
14536         REFIID riid,
14537         LCID lcid,
14538         WORD wFlags,
14539         DISPPARAMS *pDispParams,
14540         VARIANT *pVarResult,
14541         EXCEPINFO *pExcepInfo,
14542         UINT *puArgErr);
14543 
14544     /*** ISpeechBaseStream methods ***/
14545     HRESULT (STDMETHODCALLTYPE *get_Format)(
14546         ISpeechAudio* This,
14547         ISpeechAudioFormat **AudioFormat);
14548 
14549     HRESULT (STDMETHODCALLTYPE *putref_Format)(
14550         ISpeechAudio* This,
14551         ISpeechAudioFormat *AudioFormat);
14552 
14553     HRESULT (STDMETHODCALLTYPE *Read)(
14554         ISpeechAudio* This,
14555         VARIANT *Buffer,
14556         LONG NumberOfBytes,
14557         LONG *BytesRead);
14558 
14559     HRESULT (STDMETHODCALLTYPE *Write)(
14560         ISpeechAudio* This,
14561         VARIANT Buffer,
14562         LONG *BytesWritten);
14563 
14564     HRESULT (STDMETHODCALLTYPE *Seek)(
14565         ISpeechAudio* This,
14566         VARIANT Position,
14567         SpeechStreamSeekPositionType Origin,
14568         VARIANT *NewPosition);
14569 
14570     /*** ISpeechAudio methods ***/
14571     HRESULT (STDMETHODCALLTYPE *get_Status)(
14572         ISpeechAudio* This,
14573         ISpeechAudioStatus **Status);
14574 
14575     HRESULT (STDMETHODCALLTYPE *get_BufferInfo)(
14576         ISpeechAudio* This,
14577         ISpeechAudioBufferInfo **BufferInfo);
14578 
14579     HRESULT (STDMETHODCALLTYPE *get_DefaultFormat)(
14580         ISpeechAudio* This,
14581         ISpeechAudioFormat **StreamFormat);
14582 
14583     HRESULT (STDMETHODCALLTYPE *get_Volume)(
14584         ISpeechAudio* This,
14585         LONG *Volume);
14586 
14587     HRESULT (STDMETHODCALLTYPE *put_Volume)(
14588         ISpeechAudio* This,
14589         LONG Volume);
14590 
14591     HRESULT (STDMETHODCALLTYPE *get_BufferNotifySize)(
14592         ISpeechAudio* This,
14593         LONG *BufferNotifySize);
14594 
14595     HRESULT (STDMETHODCALLTYPE *put_BufferNotifySize)(
14596         ISpeechAudio* This,
14597         LONG BufferNotifySize);
14598 
14599     HRESULT (STDMETHODCALLTYPE *get_EventHandle)(
14600         ISpeechAudio* This,
14601         LONG *EventHandle);
14602 
14603     HRESULT (STDMETHODCALLTYPE *SetState)(
14604         ISpeechAudio* This,
14605         SpeechAudioState State);
14606 
14607     END_INTERFACE
14608 } ISpeechAudioVtbl;
14609 interface ISpeechAudio {
14610     CONST_VTBL ISpeechAudioVtbl* lpVtbl;
14611 };
14612 
14613 #ifdef COBJMACROS
14614 #ifndef WIDL_C_INLINE_WRAPPERS
14615 /*** IUnknown methods ***/
14616 #define ISpeechAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14617 #define ISpeechAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
14618 #define ISpeechAudio_Release(This) (This)->lpVtbl->Release(This)
14619 /*** IDispatch methods ***/
14620 #define ISpeechAudio_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14621 #define ISpeechAudio_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14622 #define ISpeechAudio_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14623 #define ISpeechAudio_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14624 /*** ISpeechBaseStream methods ***/
14625 #define ISpeechAudio_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
14626 #define ISpeechAudio_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
14627 #define ISpeechAudio_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
14628 #define ISpeechAudio_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
14629 #define ISpeechAudio_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
14630 /*** ISpeechAudio methods ***/
14631 #define ISpeechAudio_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
14632 #define ISpeechAudio_get_BufferInfo(This,BufferInfo) (This)->lpVtbl->get_BufferInfo(This,BufferInfo)
14633 #define ISpeechAudio_get_DefaultFormat(This,StreamFormat) (This)->lpVtbl->get_DefaultFormat(This,StreamFormat)
14634 #define ISpeechAudio_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
14635 #define ISpeechAudio_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
14636 #define ISpeechAudio_get_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->get_BufferNotifySize(This,BufferNotifySize)
14637 #define ISpeechAudio_put_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->put_BufferNotifySize(This,BufferNotifySize)
14638 #define ISpeechAudio_get_EventHandle(This,EventHandle) (This)->lpVtbl->get_EventHandle(This,EventHandle)
14639 #define ISpeechAudio_SetState(This,State) (This)->lpVtbl->SetState(This,State)
14640 #else
14641 /*** IUnknown methods ***/
14642 static FORCEINLINE HRESULT ISpeechAudio_QueryInterface(ISpeechAudio* This,REFIID riid,void **ppvObject) {
14643     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14644 }
14645 static FORCEINLINE ULONG ISpeechAudio_AddRef(ISpeechAudio* This) {
14646     return This->lpVtbl->AddRef(This);
14647 }
14648 static FORCEINLINE ULONG ISpeechAudio_Release(ISpeechAudio* This) {
14649     return This->lpVtbl->Release(This);
14650 }
14651 /*** IDispatch methods ***/
14652 static FORCEINLINE HRESULT ISpeechAudio_GetTypeInfoCount(ISpeechAudio* This,UINT *pctinfo) {
14653     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14654 }
14655 static FORCEINLINE HRESULT ISpeechAudio_GetTypeInfo(ISpeechAudio* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14656     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14657 }
14658 static FORCEINLINE HRESULT ISpeechAudio_GetIDsOfNames(ISpeechAudio* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14659     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14660 }
14661 static FORCEINLINE HRESULT ISpeechAudio_Invoke(ISpeechAudio* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14662     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14663 }
14664 /*** ISpeechBaseStream methods ***/
14665 static FORCEINLINE HRESULT ISpeechAudio_get_Format(ISpeechAudio* This,ISpeechAudioFormat **AudioFormat) {
14666     return This->lpVtbl->get_Format(This,AudioFormat);
14667 }
14668 static FORCEINLINE HRESULT ISpeechAudio_putref_Format(ISpeechAudio* This,ISpeechAudioFormat *AudioFormat) {
14669     return This->lpVtbl->putref_Format(This,AudioFormat);
14670 }
14671 static FORCEINLINE HRESULT ISpeechAudio_Read(ISpeechAudio* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
14672     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
14673 }
14674 static FORCEINLINE HRESULT ISpeechAudio_Write(ISpeechAudio* This,VARIANT Buffer,LONG *BytesWritten) {
14675     return This->lpVtbl->Write(This,Buffer,BytesWritten);
14676 }
14677 static FORCEINLINE HRESULT ISpeechAudio_Seek(ISpeechAudio* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
14678     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
14679 }
14680 /*** ISpeechAudio methods ***/
14681 static FORCEINLINE HRESULT ISpeechAudio_get_Status(ISpeechAudio* This,ISpeechAudioStatus **Status) {
14682     return This->lpVtbl->get_Status(This,Status);
14683 }
14684 static FORCEINLINE HRESULT ISpeechAudio_get_BufferInfo(ISpeechAudio* This,ISpeechAudioBufferInfo **BufferInfo) {
14685     return This->lpVtbl->get_BufferInfo(This,BufferInfo);
14686 }
14687 static FORCEINLINE HRESULT ISpeechAudio_get_DefaultFormat(ISpeechAudio* This,ISpeechAudioFormat **StreamFormat) {
14688     return This->lpVtbl->get_DefaultFormat(This,StreamFormat);
14689 }
14690 static FORCEINLINE HRESULT ISpeechAudio_get_Volume(ISpeechAudio* This,LONG *Volume) {
14691     return This->lpVtbl->get_Volume(This,Volume);
14692 }
14693 static FORCEINLINE HRESULT ISpeechAudio_put_Volume(ISpeechAudio* This,LONG Volume) {
14694     return This->lpVtbl->put_Volume(This,Volume);
14695 }
14696 static FORCEINLINE HRESULT ISpeechAudio_get_BufferNotifySize(ISpeechAudio* This,LONG *BufferNotifySize) {
14697     return This->lpVtbl->get_BufferNotifySize(This,BufferNotifySize);
14698 }
14699 static FORCEINLINE HRESULT ISpeechAudio_put_BufferNotifySize(ISpeechAudio* This,LONG BufferNotifySize) {
14700     return This->lpVtbl->put_BufferNotifySize(This,BufferNotifySize);
14701 }
14702 static FORCEINLINE HRESULT ISpeechAudio_get_EventHandle(ISpeechAudio* This,LONG *EventHandle) {
14703     return This->lpVtbl->get_EventHandle(This,EventHandle);
14704 }
14705 static FORCEINLINE HRESULT ISpeechAudio_SetState(ISpeechAudio* This,SpeechAudioState State) {
14706     return This->lpVtbl->SetState(This,State);
14707 }
14708 #endif
14709 #endif
14710 
14711 #endif
14712 
14713 HRESULT STDMETHODCALLTYPE ISpeechAudio_get_Status_Proxy(
14714     ISpeechAudio* This,
14715     ISpeechAudioStatus **Status);
14716 void __RPC_STUB ISpeechAudio_get_Status_Stub(
14717     IRpcStubBuffer* This,
14718     IRpcChannelBuffer* pRpcChannelBuffer,
14719     PRPC_MESSAGE pRpcMessage,
14720     DWORD* pdwStubPhase);
14721 HRESULT STDMETHODCALLTYPE ISpeechAudio_get_BufferInfo_Proxy(
14722     ISpeechAudio* This,
14723     ISpeechAudioBufferInfo **BufferInfo);
14724 void __RPC_STUB ISpeechAudio_get_BufferInfo_Stub(
14725     IRpcStubBuffer* This,
14726     IRpcChannelBuffer* pRpcChannelBuffer,
14727     PRPC_MESSAGE pRpcMessage,
14728     DWORD* pdwStubPhase);
14729 HRESULT STDMETHODCALLTYPE ISpeechAudio_get_DefaultFormat_Proxy(
14730     ISpeechAudio* This,
14731     ISpeechAudioFormat **StreamFormat);
14732 void __RPC_STUB ISpeechAudio_get_DefaultFormat_Stub(
14733     IRpcStubBuffer* This,
14734     IRpcChannelBuffer* pRpcChannelBuffer,
14735     PRPC_MESSAGE pRpcMessage,
14736     DWORD* pdwStubPhase);
14737 HRESULT STDMETHODCALLTYPE ISpeechAudio_get_Volume_Proxy(
14738     ISpeechAudio* This,
14739     LONG *Volume);
14740 void __RPC_STUB ISpeechAudio_get_Volume_Stub(
14741     IRpcStubBuffer* This,
14742     IRpcChannelBuffer* pRpcChannelBuffer,
14743     PRPC_MESSAGE pRpcMessage,
14744     DWORD* pdwStubPhase);
14745 HRESULT STDMETHODCALLTYPE ISpeechAudio_put_Volume_Proxy(
14746     ISpeechAudio* This,
14747     LONG Volume);
14748 void __RPC_STUB ISpeechAudio_put_Volume_Stub(
14749     IRpcStubBuffer* This,
14750     IRpcChannelBuffer* pRpcChannelBuffer,
14751     PRPC_MESSAGE pRpcMessage,
14752     DWORD* pdwStubPhase);
14753 HRESULT STDMETHODCALLTYPE ISpeechAudio_get_BufferNotifySize_Proxy(
14754     ISpeechAudio* This,
14755     LONG *BufferNotifySize);
14756 void __RPC_STUB ISpeechAudio_get_BufferNotifySize_Stub(
14757     IRpcStubBuffer* This,
14758     IRpcChannelBuffer* pRpcChannelBuffer,
14759     PRPC_MESSAGE pRpcMessage,
14760     DWORD* pdwStubPhase);
14761 HRESULT STDMETHODCALLTYPE ISpeechAudio_put_BufferNotifySize_Proxy(
14762     ISpeechAudio* This,
14763     LONG BufferNotifySize);
14764 void __RPC_STUB ISpeechAudio_put_BufferNotifySize_Stub(
14765     IRpcStubBuffer* This,
14766     IRpcChannelBuffer* pRpcChannelBuffer,
14767     PRPC_MESSAGE pRpcMessage,
14768     DWORD* pdwStubPhase);
14769 HRESULT STDMETHODCALLTYPE ISpeechAudio_get_EventHandle_Proxy(
14770     ISpeechAudio* This,
14771     LONG *EventHandle);
14772 void __RPC_STUB ISpeechAudio_get_EventHandle_Stub(
14773     IRpcStubBuffer* This,
14774     IRpcChannelBuffer* pRpcChannelBuffer,
14775     PRPC_MESSAGE pRpcMessage,
14776     DWORD* pdwStubPhase);
14777 HRESULT STDMETHODCALLTYPE ISpeechAudio_SetState_Proxy(
14778     ISpeechAudio* This,
14779     SpeechAudioState State);
14780 void __RPC_STUB ISpeechAudio_SetState_Stub(
14781     IRpcStubBuffer* This,
14782     IRpcChannelBuffer* pRpcChannelBuffer,
14783     PRPC_MESSAGE pRpcMessage,
14784     DWORD* pdwStubPhase);
14785 
14786 #endif  /* __ISpeechAudio_INTERFACE_DEFINED__ */
14787 
14788 /*****************************************************************************
14789  * ISpeechMMSysAudio interface
14790  */
14791 #ifndef __ISpeechMMSysAudio_INTERFACE_DEFINED__
14792 #define __ISpeechMMSysAudio_INTERFACE_DEFINED__
14793 
14794 DEFINE_GUID(IID_ISpeechMMSysAudio, 0x3c76af6d, 0x1fd7, 0x4831, 0x81,0xd1, 0x3b,0x71,0xd5,0xa1,0x3c,0x44);
14795 #if defined(__cplusplus) && !defined(CINTERFACE)
14796 MIDL_INTERFACE("3c76af6d-1fd7-4831-81d1-3b71d5a13c44")
14797 ISpeechMMSysAudio : public ISpeechAudio
14798 {
14799     virtual HRESULT STDMETHODCALLTYPE get_DeviceId(
14800         LONG *DeviceId) = 0;
14801 
14802     virtual HRESULT STDMETHODCALLTYPE put_DeviceId(
14803         LONG DeviceId) = 0;
14804 
14805     virtual HRESULT STDMETHODCALLTYPE get_LineId(
14806         LONG *LineId) = 0;
14807 
14808     virtual HRESULT STDMETHODCALLTYPE put_LineId(
14809         LONG LineId) = 0;
14810 
14811     virtual HRESULT STDMETHODCALLTYPE get_MMHandle(
14812         LONG *Handle) = 0;
14813 
14814 };
14815 #ifdef __CRT_UUID_DECL
14816 __CRT_UUID_DECL(ISpeechMMSysAudio, 0x3c76af6d, 0x1fd7, 0x4831, 0x81,0xd1, 0x3b,0x71,0xd5,0xa1,0x3c,0x44)
14817 #endif
14818 #else
14819 typedef struct ISpeechMMSysAudioVtbl {
14820     BEGIN_INTERFACE
14821 
14822     /*** IUnknown methods ***/
14823     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14824         ISpeechMMSysAudio* This,
14825         REFIID riid,
14826         void **ppvObject);
14827 
14828     ULONG (STDMETHODCALLTYPE *AddRef)(
14829         ISpeechMMSysAudio* This);
14830 
14831     ULONG (STDMETHODCALLTYPE *Release)(
14832         ISpeechMMSysAudio* This);
14833 
14834     /*** IDispatch methods ***/
14835     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
14836         ISpeechMMSysAudio* This,
14837         UINT *pctinfo);
14838 
14839     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
14840         ISpeechMMSysAudio* This,
14841         UINT iTInfo,
14842         LCID lcid,
14843         ITypeInfo **ppTInfo);
14844 
14845     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
14846         ISpeechMMSysAudio* This,
14847         REFIID riid,
14848         LPOLESTR *rgszNames,
14849         UINT cNames,
14850         LCID lcid,
14851         DISPID *rgDispId);
14852 
14853     HRESULT (STDMETHODCALLTYPE *Invoke)(
14854         ISpeechMMSysAudio* This,
14855         DISPID dispIdMember,
14856         REFIID riid,
14857         LCID lcid,
14858         WORD wFlags,
14859         DISPPARAMS *pDispParams,
14860         VARIANT *pVarResult,
14861         EXCEPINFO *pExcepInfo,
14862         UINT *puArgErr);
14863 
14864     /*** ISpeechBaseStream methods ***/
14865     HRESULT (STDMETHODCALLTYPE *get_Format)(
14866         ISpeechMMSysAudio* This,
14867         ISpeechAudioFormat **AudioFormat);
14868 
14869     HRESULT (STDMETHODCALLTYPE *putref_Format)(
14870         ISpeechMMSysAudio* This,
14871         ISpeechAudioFormat *AudioFormat);
14872 
14873     HRESULT (STDMETHODCALLTYPE *Read)(
14874         ISpeechMMSysAudio* This,
14875         VARIANT *Buffer,
14876         LONG NumberOfBytes,
14877         LONG *BytesRead);
14878 
14879     HRESULT (STDMETHODCALLTYPE *Write)(
14880         ISpeechMMSysAudio* This,
14881         VARIANT Buffer,
14882         LONG *BytesWritten);
14883 
14884     HRESULT (STDMETHODCALLTYPE *Seek)(
14885         ISpeechMMSysAudio* This,
14886         VARIANT Position,
14887         SpeechStreamSeekPositionType Origin,
14888         VARIANT *NewPosition);
14889 
14890     /*** ISpeechAudio methods ***/
14891     HRESULT (STDMETHODCALLTYPE *get_Status)(
14892         ISpeechMMSysAudio* This,
14893         ISpeechAudioStatus **Status);
14894 
14895     HRESULT (STDMETHODCALLTYPE *get_BufferInfo)(
14896         ISpeechMMSysAudio* This,
14897         ISpeechAudioBufferInfo **BufferInfo);
14898 
14899     HRESULT (STDMETHODCALLTYPE *get_DefaultFormat)(
14900         ISpeechMMSysAudio* This,
14901         ISpeechAudioFormat **StreamFormat);
14902 
14903     HRESULT (STDMETHODCALLTYPE *get_Volume)(
14904         ISpeechMMSysAudio* This,
14905         LONG *Volume);
14906 
14907     HRESULT (STDMETHODCALLTYPE *put_Volume)(
14908         ISpeechMMSysAudio* This,
14909         LONG Volume);
14910 
14911     HRESULT (STDMETHODCALLTYPE *get_BufferNotifySize)(
14912         ISpeechMMSysAudio* This,
14913         LONG *BufferNotifySize);
14914 
14915     HRESULT (STDMETHODCALLTYPE *put_BufferNotifySize)(
14916         ISpeechMMSysAudio* This,
14917         LONG BufferNotifySize);
14918 
14919     HRESULT (STDMETHODCALLTYPE *get_EventHandle)(
14920         ISpeechMMSysAudio* This,
14921         LONG *EventHandle);
14922 
14923     HRESULT (STDMETHODCALLTYPE *SetState)(
14924         ISpeechMMSysAudio* This,
14925         SpeechAudioState State);
14926 
14927     /*** ISpeechMMSysAudio methods ***/
14928     HRESULT (STDMETHODCALLTYPE *get_DeviceId)(
14929         ISpeechMMSysAudio* This,
14930         LONG *DeviceId);
14931 
14932     HRESULT (STDMETHODCALLTYPE *put_DeviceId)(
14933         ISpeechMMSysAudio* This,
14934         LONG DeviceId);
14935 
14936     HRESULT (STDMETHODCALLTYPE *get_LineId)(
14937         ISpeechMMSysAudio* This,
14938         LONG *LineId);
14939 
14940     HRESULT (STDMETHODCALLTYPE *put_LineId)(
14941         ISpeechMMSysAudio* This,
14942         LONG LineId);
14943 
14944     HRESULT (STDMETHODCALLTYPE *get_MMHandle)(
14945         ISpeechMMSysAudio* This,
14946         LONG *Handle);
14947 
14948     END_INTERFACE
14949 } ISpeechMMSysAudioVtbl;
14950 interface ISpeechMMSysAudio {
14951     CONST_VTBL ISpeechMMSysAudioVtbl* lpVtbl;
14952 };
14953 
14954 #ifdef COBJMACROS
14955 #ifndef WIDL_C_INLINE_WRAPPERS
14956 /*** IUnknown methods ***/
14957 #define ISpeechMMSysAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14958 #define ISpeechMMSysAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
14959 #define ISpeechMMSysAudio_Release(This) (This)->lpVtbl->Release(This)
14960 /*** IDispatch methods ***/
14961 #define ISpeechMMSysAudio_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14962 #define ISpeechMMSysAudio_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14963 #define ISpeechMMSysAudio_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14964 #define ISpeechMMSysAudio_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14965 /*** ISpeechBaseStream methods ***/
14966 #define ISpeechMMSysAudio_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
14967 #define ISpeechMMSysAudio_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
14968 #define ISpeechMMSysAudio_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
14969 #define ISpeechMMSysAudio_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
14970 #define ISpeechMMSysAudio_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
14971 /*** ISpeechAudio methods ***/
14972 #define ISpeechMMSysAudio_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
14973 #define ISpeechMMSysAudio_get_BufferInfo(This,BufferInfo) (This)->lpVtbl->get_BufferInfo(This,BufferInfo)
14974 #define ISpeechMMSysAudio_get_DefaultFormat(This,StreamFormat) (This)->lpVtbl->get_DefaultFormat(This,StreamFormat)
14975 #define ISpeechMMSysAudio_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
14976 #define ISpeechMMSysAudio_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
14977 #define ISpeechMMSysAudio_get_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->get_BufferNotifySize(This,BufferNotifySize)
14978 #define ISpeechMMSysAudio_put_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->put_BufferNotifySize(This,BufferNotifySize)
14979 #define ISpeechMMSysAudio_get_EventHandle(This,EventHandle) (This)->lpVtbl->get_EventHandle(This,EventHandle)
14980 #define ISpeechMMSysAudio_SetState(This,State) (This)->lpVtbl->SetState(This,State)
14981 /*** ISpeechMMSysAudio methods ***/
14982 #define ISpeechMMSysAudio_get_DeviceId(This,DeviceId) (This)->lpVtbl->get_DeviceId(This,DeviceId)
14983 #define ISpeechMMSysAudio_put_DeviceId(This,DeviceId) (This)->lpVtbl->put_DeviceId(This,DeviceId)
14984 #define ISpeechMMSysAudio_get_LineId(This,LineId) (This)->lpVtbl->get_LineId(This,LineId)
14985 #define ISpeechMMSysAudio_put_LineId(This,LineId) (This)->lpVtbl->put_LineId(This,LineId)
14986 #define ISpeechMMSysAudio_get_MMHandle(This,Handle) (This)->lpVtbl->get_MMHandle(This,Handle)
14987 #else
14988 /*** IUnknown methods ***/
14989 static FORCEINLINE HRESULT ISpeechMMSysAudio_QueryInterface(ISpeechMMSysAudio* This,REFIID riid,void **ppvObject) {
14990     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14991 }
14992 static FORCEINLINE ULONG ISpeechMMSysAudio_AddRef(ISpeechMMSysAudio* This) {
14993     return This->lpVtbl->AddRef(This);
14994 }
14995 static FORCEINLINE ULONG ISpeechMMSysAudio_Release(ISpeechMMSysAudio* This) {
14996     return This->lpVtbl->Release(This);
14997 }
14998 /*** IDispatch methods ***/
14999 static FORCEINLINE HRESULT ISpeechMMSysAudio_GetTypeInfoCount(ISpeechMMSysAudio* This,UINT *pctinfo) {
15000     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
15001 }
15002 static FORCEINLINE HRESULT ISpeechMMSysAudio_GetTypeInfo(ISpeechMMSysAudio* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
15003     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
15004 }
15005 static FORCEINLINE HRESULT ISpeechMMSysAudio_GetIDsOfNames(ISpeechMMSysAudio* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
15006     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
15007 }
15008 static FORCEINLINE HRESULT ISpeechMMSysAudio_Invoke(ISpeechMMSysAudio* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
15009     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
15010 }
15011 /*** ISpeechBaseStream methods ***/
15012 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_Format(ISpeechMMSysAudio* This,ISpeechAudioFormat **AudioFormat) {
15013     return This->lpVtbl->get_Format(This,AudioFormat);
15014 }
15015 static FORCEINLINE HRESULT ISpeechMMSysAudio_putref_Format(ISpeechMMSysAudio* This,ISpeechAudioFormat *AudioFormat) {
15016     return This->lpVtbl->putref_Format(This,AudioFormat);
15017 }
15018 static FORCEINLINE HRESULT ISpeechMMSysAudio_Read(ISpeechMMSysAudio* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
15019     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
15020 }
15021 static FORCEINLINE HRESULT ISpeechMMSysAudio_Write(ISpeechMMSysAudio* This,VARIANT Buffer,LONG *BytesWritten) {
15022     return This->lpVtbl->Write(This,Buffer,BytesWritten);
15023 }
15024 static FORCEINLINE HRESULT ISpeechMMSysAudio_Seek(ISpeechMMSysAudio* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
15025     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
15026 }
15027 /*** ISpeechAudio methods ***/
15028 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_Status(ISpeechMMSysAudio* This,ISpeechAudioStatus **Status) {
15029     return This->lpVtbl->get_Status(This,Status);
15030 }
15031 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_BufferInfo(ISpeechMMSysAudio* This,ISpeechAudioBufferInfo **BufferInfo) {
15032     return This->lpVtbl->get_BufferInfo(This,BufferInfo);
15033 }
15034 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_DefaultFormat(ISpeechMMSysAudio* This,ISpeechAudioFormat **StreamFormat) {
15035     return This->lpVtbl->get_DefaultFormat(This,StreamFormat);
15036 }
15037 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_Volume(ISpeechMMSysAudio* This,LONG *Volume) {
15038     return This->lpVtbl->get_Volume(This,Volume);
15039 }
15040 static FORCEINLINE HRESULT ISpeechMMSysAudio_put_Volume(ISpeechMMSysAudio* This,LONG Volume) {
15041     return This->lpVtbl->put_Volume(This,Volume);
15042 }
15043 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_BufferNotifySize(ISpeechMMSysAudio* This,LONG *BufferNotifySize) {
15044     return This->lpVtbl->get_BufferNotifySize(This,BufferNotifySize);
15045 }
15046 static FORCEINLINE HRESULT ISpeechMMSysAudio_put_BufferNotifySize(ISpeechMMSysAudio* This,LONG BufferNotifySize) {
15047     return This->lpVtbl->put_BufferNotifySize(This,BufferNotifySize);
15048 }
15049 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_EventHandle(ISpeechMMSysAudio* This,LONG *EventHandle) {
15050     return This->lpVtbl->get_EventHandle(This,EventHandle);
15051 }
15052 static FORCEINLINE HRESULT ISpeechMMSysAudio_SetState(ISpeechMMSysAudio* This,SpeechAudioState State) {
15053     return This->lpVtbl->SetState(This,State);
15054 }
15055 /*** ISpeechMMSysAudio methods ***/
15056 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_DeviceId(ISpeechMMSysAudio* This,LONG *DeviceId) {
15057     return This->lpVtbl->get_DeviceId(This,DeviceId);
15058 }
15059 static FORCEINLINE HRESULT ISpeechMMSysAudio_put_DeviceId(ISpeechMMSysAudio* This,LONG DeviceId) {
15060     return This->lpVtbl->put_DeviceId(This,DeviceId);
15061 }
15062 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_LineId(ISpeechMMSysAudio* This,LONG *LineId) {
15063     return This->lpVtbl->get_LineId(This,LineId);
15064 }
15065 static FORCEINLINE HRESULT ISpeechMMSysAudio_put_LineId(ISpeechMMSysAudio* This,LONG LineId) {
15066     return This->lpVtbl->put_LineId(This,LineId);
15067 }
15068 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_MMHandle(ISpeechMMSysAudio* This,LONG *Handle) {
15069     return This->lpVtbl->get_MMHandle(This,Handle);
15070 }
15071 #endif
15072 #endif
15073 
15074 #endif
15075 
15076 HRESULT STDMETHODCALLTYPE ISpeechMMSysAudio_get_DeviceId_Proxy(
15077     ISpeechMMSysAudio* This,
15078     LONG *DeviceId);
15079 void __RPC_STUB ISpeechMMSysAudio_get_DeviceId_Stub(
15080     IRpcStubBuffer* This,
15081     IRpcChannelBuffer* pRpcChannelBuffer,
15082     PRPC_MESSAGE pRpcMessage,
15083     DWORD* pdwStubPhase);
15084 HRESULT STDMETHODCALLTYPE ISpeechMMSysAudio_put_DeviceId_Proxy(
15085     ISpeechMMSysAudio* This,
15086     LONG DeviceId);
15087 void __RPC_STUB ISpeechMMSysAudio_put_DeviceId_Stub(
15088     IRpcStubBuffer* This,
15089     IRpcChannelBuffer* pRpcChannelBuffer,
15090     PRPC_MESSAGE pRpcMessage,
15091     DWORD* pdwStubPhase);
15092 HRESULT STDMETHODCALLTYPE ISpeechMMSysAudio_get_LineId_Proxy(
15093     ISpeechMMSysAudio* This,
15094     LONG *LineId);
15095 void __RPC_STUB ISpeechMMSysAudio_get_LineId_Stub(
15096     IRpcStubBuffer* This,
15097     IRpcChannelBuffer* pRpcChannelBuffer,
15098     PRPC_MESSAGE pRpcMessage,
15099     DWORD* pdwStubPhase);
15100 HRESULT STDMETHODCALLTYPE ISpeechMMSysAudio_put_LineId_Proxy(
15101     ISpeechMMSysAudio* This,
15102     LONG LineId);
15103 void __RPC_STUB ISpeechMMSysAudio_put_LineId_Stub(
15104     IRpcStubBuffer* This,
15105     IRpcChannelBuffer* pRpcChannelBuffer,
15106     PRPC_MESSAGE pRpcMessage,
15107     DWORD* pdwStubPhase);
15108 HRESULT STDMETHODCALLTYPE ISpeechMMSysAudio_get_MMHandle_Proxy(
15109     ISpeechMMSysAudio* This,
15110     LONG *Handle);
15111 void __RPC_STUB ISpeechMMSysAudio_get_MMHandle_Stub(
15112     IRpcStubBuffer* This,
15113     IRpcChannelBuffer* pRpcChannelBuffer,
15114     PRPC_MESSAGE pRpcMessage,
15115     DWORD* pdwStubPhase);
15116 
15117 #endif  /* __ISpeechMMSysAudio_INTERFACE_DEFINED__ */
15118 
15119 /*****************************************************************************
15120  * ISpeechFileStream interface
15121  */
15122 #ifndef __ISpeechFileStream_INTERFACE_DEFINED__
15123 #define __ISpeechFileStream_INTERFACE_DEFINED__
15124 
15125 DEFINE_GUID(IID_ISpeechFileStream, 0xaf67f125, 0xab39, 0x4e93, 0xb4,0xa2, 0xcc,0x2e,0x66,0xe1,0x82,0xa7);
15126 #if defined(__cplusplus) && !defined(CINTERFACE)
15127 MIDL_INTERFACE("af67f125-ab39-4e93-b4a2-cc2e66e182a7")
15128 ISpeechFileStream : public ISpeechBaseStream
15129 {
15130     virtual HRESULT STDMETHODCALLTYPE Open(
15131         BSTR FileName,
15132         SpeechStreamFileMode FileMode = SSFMOpenForRead,
15133         VARIANT_BOOL DoEvents = 0) = 0;
15134 
15135     virtual HRESULT STDMETHODCALLTYPE Close(
15136         ) = 0;
15137 
15138 };
15139 #ifdef __CRT_UUID_DECL
15140 __CRT_UUID_DECL(ISpeechFileStream, 0xaf67f125, 0xab39, 0x4e93, 0xb4,0xa2, 0xcc,0x2e,0x66,0xe1,0x82,0xa7)
15141 #endif
15142 #else
15143 typedef struct ISpeechFileStreamVtbl {
15144     BEGIN_INTERFACE
15145 
15146     /*** IUnknown methods ***/
15147     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15148         ISpeechFileStream* This,
15149         REFIID riid,
15150         void **ppvObject);
15151 
15152     ULONG (STDMETHODCALLTYPE *AddRef)(
15153         ISpeechFileStream* This);
15154 
15155     ULONG (STDMETHODCALLTYPE *Release)(
15156         ISpeechFileStream* This);
15157 
15158     /*** IDispatch methods ***/
15159     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15160         ISpeechFileStream* This,
15161         UINT *pctinfo);
15162 
15163     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15164         ISpeechFileStream* This,
15165         UINT iTInfo,
15166         LCID lcid,
15167         ITypeInfo **ppTInfo);
15168 
15169     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15170         ISpeechFileStream* This,
15171         REFIID riid,
15172         LPOLESTR *rgszNames,
15173         UINT cNames,
15174         LCID lcid,
15175         DISPID *rgDispId);
15176 
15177     HRESULT (STDMETHODCALLTYPE *Invoke)(
15178         ISpeechFileStream* This,
15179         DISPID dispIdMember,
15180         REFIID riid,
15181         LCID lcid,
15182         WORD wFlags,
15183         DISPPARAMS *pDispParams,
15184         VARIANT *pVarResult,
15185         EXCEPINFO *pExcepInfo,
15186         UINT *puArgErr);
15187 
15188     /*** ISpeechBaseStream methods ***/
15189     HRESULT (STDMETHODCALLTYPE *get_Format)(
15190         ISpeechFileStream* This,
15191         ISpeechAudioFormat **AudioFormat);
15192 
15193     HRESULT (STDMETHODCALLTYPE *putref_Format)(
15194         ISpeechFileStream* This,
15195         ISpeechAudioFormat *AudioFormat);
15196 
15197     HRESULT (STDMETHODCALLTYPE *Read)(
15198         ISpeechFileStream* This,
15199         VARIANT *Buffer,
15200         LONG NumberOfBytes,
15201         LONG *BytesRead);
15202 
15203     HRESULT (STDMETHODCALLTYPE *Write)(
15204         ISpeechFileStream* This,
15205         VARIANT Buffer,
15206         LONG *BytesWritten);
15207 
15208     HRESULT (STDMETHODCALLTYPE *Seek)(
15209         ISpeechFileStream* This,
15210         VARIANT Position,
15211         SpeechStreamSeekPositionType Origin,
15212         VARIANT *NewPosition);
15213 
15214     /*** ISpeechFileStream methods ***/
15215     HRESULT (STDMETHODCALLTYPE *Open)(
15216         ISpeechFileStream* This,
15217         BSTR FileName,
15218         SpeechStreamFileMode FileMode,
15219         VARIANT_BOOL DoEvents);
15220 
15221     HRESULT (STDMETHODCALLTYPE *Close)(
15222         ISpeechFileStream* This);
15223 
15224     END_INTERFACE
15225 } ISpeechFileStreamVtbl;
15226 interface ISpeechFileStream {
15227     CONST_VTBL ISpeechFileStreamVtbl* lpVtbl;
15228 };
15229 
15230 #ifdef COBJMACROS
15231 #ifndef WIDL_C_INLINE_WRAPPERS
15232 /*** IUnknown methods ***/
15233 #define ISpeechFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15234 #define ISpeechFileStream_AddRef(This) (This)->lpVtbl->AddRef(This)
15235 #define ISpeechFileStream_Release(This) (This)->lpVtbl->Release(This)
15236 /*** IDispatch methods ***/
15237 #define ISpeechFileStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
15238 #define ISpeechFileStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
15239 #define ISpeechFileStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
15240 #define ISpeechFileStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
15241 /*** ISpeechBaseStream methods ***/
15242 #define ISpeechFileStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
15243 #define ISpeechFileStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
15244 #define ISpeechFileStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
15245 #define ISpeechFileStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
15246 #define ISpeechFileStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
15247 /*** ISpeechFileStream methods ***/
15248 #define ISpeechFileStream_Open(This,FileName,FileMode,DoEvents) (This)->lpVtbl->Open(This,FileName,FileMode,DoEvents)
15249 #define ISpeechFileStream_Close(This) (This)->lpVtbl->Close(This)
15250 #else
15251 /*** IUnknown methods ***/
15252 static FORCEINLINE HRESULT ISpeechFileStream_QueryInterface(ISpeechFileStream* This,REFIID riid,void **ppvObject) {
15253     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15254 }
15255 static FORCEINLINE ULONG ISpeechFileStream_AddRef(ISpeechFileStream* This) {
15256     return This->lpVtbl->AddRef(This);
15257 }
15258 static FORCEINLINE ULONG ISpeechFileStream_Release(ISpeechFileStream* This) {
15259     return This->lpVtbl->Release(This);
15260 }
15261 /*** IDispatch methods ***/
15262 static FORCEINLINE HRESULT ISpeechFileStream_GetTypeInfoCount(ISpeechFileStream* This,UINT *pctinfo) {
15263     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
15264 }
15265 static FORCEINLINE HRESULT ISpeechFileStream_GetTypeInfo(ISpeechFileStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
15266     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
15267 }
15268 static FORCEINLINE HRESULT ISpeechFileStream_GetIDsOfNames(ISpeechFileStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
15269     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
15270 }
15271 static FORCEINLINE HRESULT ISpeechFileStream_Invoke(ISpeechFileStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
15272     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
15273 }
15274 /*** ISpeechBaseStream methods ***/
15275 static FORCEINLINE HRESULT ISpeechFileStream_get_Format(ISpeechFileStream* This,ISpeechAudioFormat **AudioFormat) {
15276     return This->lpVtbl->get_Format(This,AudioFormat);
15277 }
15278 static FORCEINLINE HRESULT ISpeechFileStream_putref_Format(ISpeechFileStream* This,ISpeechAudioFormat *AudioFormat) {
15279     return This->lpVtbl->putref_Format(This,AudioFormat);
15280 }
15281 static FORCEINLINE HRESULT ISpeechFileStream_Read(ISpeechFileStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
15282     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
15283 }
15284 static FORCEINLINE HRESULT ISpeechFileStream_Write(ISpeechFileStream* This,VARIANT Buffer,LONG *BytesWritten) {
15285     return This->lpVtbl->Write(This,Buffer,BytesWritten);
15286 }
15287 static FORCEINLINE HRESULT ISpeechFileStream_Seek(ISpeechFileStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
15288     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
15289 }
15290 /*** ISpeechFileStream methods ***/
15291 static FORCEINLINE HRESULT ISpeechFileStream_Open(ISpeechFileStream* This,BSTR FileName,SpeechStreamFileMode FileMode,VARIANT_BOOL DoEvents) {
15292     return This->lpVtbl->Open(This,FileName,FileMode,DoEvents);
15293 }
15294 static FORCEINLINE HRESULT ISpeechFileStream_Close(ISpeechFileStream* This) {
15295     return This->lpVtbl->Close(This);
15296 }
15297 #endif
15298 #endif
15299 
15300 #endif
15301 
15302 HRESULT STDMETHODCALLTYPE ISpeechFileStream_Open_Proxy(
15303     ISpeechFileStream* This,
15304     BSTR FileName,
15305     SpeechStreamFileMode FileMode,
15306     VARIANT_BOOL DoEvents);
15307 void __RPC_STUB ISpeechFileStream_Open_Stub(
15308     IRpcStubBuffer* This,
15309     IRpcChannelBuffer* pRpcChannelBuffer,
15310     PRPC_MESSAGE pRpcMessage,
15311     DWORD* pdwStubPhase);
15312 HRESULT STDMETHODCALLTYPE ISpeechFileStream_Close_Proxy(
15313     ISpeechFileStream* This);
15314 void __RPC_STUB ISpeechFileStream_Close_Stub(
15315     IRpcStubBuffer* This,
15316     IRpcChannelBuffer* pRpcChannelBuffer,
15317     PRPC_MESSAGE pRpcMessage,
15318     DWORD* pdwStubPhase);
15319 
15320 #endif  /* __ISpeechFileStream_INTERFACE_DEFINED__ */
15321 
15322 /*****************************************************************************
15323  * ISpeechCustomStream interface
15324  */
15325 #ifndef __ISpeechCustomStream_INTERFACE_DEFINED__
15326 #define __ISpeechCustomStream_INTERFACE_DEFINED__
15327 
15328 DEFINE_GUID(IID_ISpeechCustomStream, 0x1a9e9f4f, 0x104f, 0x4db8, 0xa1,0x15, 0xef,0xd7,0xfd,0x0c,0x97,0xae);
15329 #if defined(__cplusplus) && !defined(CINTERFACE)
15330 MIDL_INTERFACE("1a9e9f4f-104f-4db8-a115-efd7fd0c97ae")
15331 ISpeechCustomStream : public ISpeechBaseStream
15332 {
15333     virtual HRESULT STDMETHODCALLTYPE get_BaseStream(
15334         IUnknown **ppUnkStream) = 0;
15335 
15336     virtual HRESULT STDMETHODCALLTYPE putref_BaseStream(
15337         IUnknown *pUnkStream) = 0;
15338 
15339 };
15340 #ifdef __CRT_UUID_DECL
15341 __CRT_UUID_DECL(ISpeechCustomStream, 0x1a9e9f4f, 0x104f, 0x4db8, 0xa1,0x15, 0xef,0xd7,0xfd,0x0c,0x97,0xae)
15342 #endif
15343 #else
15344 typedef struct ISpeechCustomStreamVtbl {
15345     BEGIN_INTERFACE
15346 
15347     /*** IUnknown methods ***/
15348     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15349         ISpeechCustomStream* This,
15350         REFIID riid,
15351         void **ppvObject);
15352 
15353     ULONG (STDMETHODCALLTYPE *AddRef)(
15354         ISpeechCustomStream* This);
15355 
15356     ULONG (STDMETHODCALLTYPE *Release)(
15357         ISpeechCustomStream* This);
15358 
15359     /*** IDispatch methods ***/
15360     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15361         ISpeechCustomStream* This,
15362         UINT *pctinfo);
15363 
15364     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15365         ISpeechCustomStream* This,
15366         UINT iTInfo,
15367         LCID lcid,
15368         ITypeInfo **ppTInfo);
15369 
15370     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15371         ISpeechCustomStream* This,
15372         REFIID riid,
15373         LPOLESTR *rgszNames,
15374         UINT cNames,
15375         LCID lcid,
15376         DISPID *rgDispId);
15377 
15378     HRESULT (STDMETHODCALLTYPE *Invoke)(
15379         ISpeechCustomStream* This,
15380         DISPID dispIdMember,
15381         REFIID riid,
15382         LCID lcid,
15383         WORD wFlags,
15384         DISPPARAMS *pDispParams,
15385         VARIANT *pVarResult,
15386         EXCEPINFO *pExcepInfo,
15387         UINT *puArgErr);
15388 
15389     /*** ISpeechBaseStream methods ***/
15390     HRESULT (STDMETHODCALLTYPE *get_Format)(
15391         ISpeechCustomStream* This,
15392         ISpeechAudioFormat **AudioFormat);
15393 
15394     HRESULT (STDMETHODCALLTYPE *putref_Format)(
15395         ISpeechCustomStream* This,
15396         ISpeechAudioFormat *AudioFormat);
15397 
15398     HRESULT (STDMETHODCALLTYPE *Read)(
15399         ISpeechCustomStream* This,
15400         VARIANT *Buffer,
15401         LONG NumberOfBytes,
15402         LONG *BytesRead);
15403 
15404     HRESULT (STDMETHODCALLTYPE *Write)(
15405         ISpeechCustomStream* This,
15406         VARIANT Buffer,
15407         LONG *BytesWritten);
15408 
15409     HRESULT (STDMETHODCALLTYPE *Seek)(
15410         ISpeechCustomStream* This,
15411         VARIANT Position,
15412         SpeechStreamSeekPositionType Origin,
15413         VARIANT *NewPosition);
15414 
15415     /*** ISpeechCustomStream methods ***/
15416     HRESULT (STDMETHODCALLTYPE *get_BaseStream)(
15417         ISpeechCustomStream* This,
15418         IUnknown **ppUnkStream);
15419 
15420     HRESULT (STDMETHODCALLTYPE *putref_BaseStream)(
15421         ISpeechCustomStream* This,
15422         IUnknown *pUnkStream);
15423 
15424     END_INTERFACE
15425 } ISpeechCustomStreamVtbl;
15426 interface ISpeechCustomStream {
15427     CONST_VTBL ISpeechCustomStreamVtbl* lpVtbl;
15428 };
15429 
15430 #ifdef COBJMACROS
15431 #ifndef WIDL_C_INLINE_WRAPPERS
15432 /*** IUnknown methods ***/
15433 #define ISpeechCustomStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15434 #define ISpeechCustomStream_AddRef(This) (This)->lpVtbl->AddRef(This)
15435 #define ISpeechCustomStream_Release(This) (This)->lpVtbl->Release(This)
15436 /*** IDispatch methods ***/
15437 #define ISpeechCustomStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
15438 #define ISpeechCustomStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
15439 #define ISpeechCustomStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
15440 #define ISpeechCustomStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
15441 /*** ISpeechBaseStream methods ***/
15442 #define ISpeechCustomStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
15443 #define ISpeechCustomStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
15444 #define ISpeechCustomStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
15445 #define ISpeechCustomStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
15446 #define ISpeechCustomStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
15447 /*** ISpeechCustomStream methods ***/
15448 #define ISpeechCustomStream_get_BaseStream(This,ppUnkStream) (This)->lpVtbl->get_BaseStream(This,ppUnkStream)
15449 #define ISpeechCustomStream_putref_BaseStream(This,pUnkStream) (This)->lpVtbl->putref_BaseStream(This,pUnkStream)
15450 #else
15451 /*** IUnknown methods ***/
15452 static FORCEINLINE HRESULT ISpeechCustomStream_QueryInterface(ISpeechCustomStream* This,REFIID riid,void **ppvObject) {
15453     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15454 }
15455 static FORCEINLINE ULONG ISpeechCustomStream_AddRef(ISpeechCustomStream* This) {
15456     return This->lpVtbl->AddRef(This);
15457 }
15458 static FORCEINLINE ULONG ISpeechCustomStream_Release(ISpeechCustomStream* This) {
15459     return This->lpVtbl->Release(This);
15460 }
15461 /*** IDispatch methods ***/
15462 static FORCEINLINE HRESULT ISpeechCustomStream_GetTypeInfoCount(ISpeechCustomStream* This,UINT *pctinfo) {
15463     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
15464 }
15465 static FORCEINLINE HRESULT ISpeechCustomStream_GetTypeInfo(ISpeechCustomStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
15466     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
15467 }
15468 static FORCEINLINE HRESULT ISpeechCustomStream_GetIDsOfNames(ISpeechCustomStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
15469     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
15470 }
15471 static FORCEINLINE HRESULT ISpeechCustomStream_Invoke(ISpeechCustomStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
15472     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
15473 }
15474 /*** ISpeechBaseStream methods ***/
15475 static FORCEINLINE HRESULT ISpeechCustomStream_get_Format(ISpeechCustomStream* This,ISpeechAudioFormat **AudioFormat) {
15476     return This->lpVtbl->get_Format(This,AudioFormat);
15477 }
15478 static FORCEINLINE HRESULT ISpeechCustomStream_putref_Format(ISpeechCustomStream* This,ISpeechAudioFormat *AudioFormat) {
15479     return This->lpVtbl->putref_Format(This,AudioFormat);
15480 }
15481 static FORCEINLINE HRESULT ISpeechCustomStream_Read(ISpeechCustomStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
15482     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
15483 }
15484 static FORCEINLINE HRESULT ISpeechCustomStream_Write(ISpeechCustomStream* This,VARIANT Buffer,LONG *BytesWritten) {
15485     return This->lpVtbl->Write(This,Buffer,BytesWritten);
15486 }
15487 static FORCEINLINE HRESULT ISpeechCustomStream_Seek(ISpeechCustomStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
15488     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
15489 }
15490 /*** ISpeechCustomStream methods ***/
15491 static FORCEINLINE HRESULT ISpeechCustomStream_get_BaseStream(ISpeechCustomStream* This,IUnknown **ppUnkStream) {
15492     return This->lpVtbl->get_BaseStream(This,ppUnkStream);
15493 }
15494 static FORCEINLINE HRESULT ISpeechCustomStream_putref_BaseStream(ISpeechCustomStream* This,IUnknown *pUnkStream) {
15495     return This->lpVtbl->putref_BaseStream(This,pUnkStream);
15496 }
15497 #endif
15498 #endif
15499 
15500 #endif
15501 
15502 HRESULT STDMETHODCALLTYPE ISpeechCustomStream_get_BaseStream_Proxy(
15503     ISpeechCustomStream* This,
15504     IUnknown **ppUnkStream);
15505 void __RPC_STUB ISpeechCustomStream_get_BaseStream_Stub(
15506     IRpcStubBuffer* This,
15507     IRpcChannelBuffer* pRpcChannelBuffer,
15508     PRPC_MESSAGE pRpcMessage,
15509     DWORD* pdwStubPhase);
15510 HRESULT STDMETHODCALLTYPE ISpeechCustomStream_putref_BaseStream_Proxy(
15511     ISpeechCustomStream* This,
15512     IUnknown *pUnkStream);
15513 void __RPC_STUB ISpeechCustomStream_putref_BaseStream_Stub(
15514     IRpcStubBuffer* This,
15515     IRpcChannelBuffer* pRpcChannelBuffer,
15516     PRPC_MESSAGE pRpcMessage,
15517     DWORD* pdwStubPhase);
15518 
15519 #endif  /* __ISpeechCustomStream_INTERFACE_DEFINED__ */
15520 
15521 /*****************************************************************************
15522  * ISpeechMemoryStream interface
15523  */
15524 #ifndef __ISpeechMemoryStream_INTERFACE_DEFINED__
15525 #define __ISpeechMemoryStream_INTERFACE_DEFINED__
15526 
15527 DEFINE_GUID(IID_ISpeechMemoryStream, 0xeeb14b68, 0x808b, 0x4abe, 0xa5,0xea, 0xb5,0x1d,0xa7,0x58,0x80,0x08);
15528 #if defined(__cplusplus) && !defined(CINTERFACE)
15529 MIDL_INTERFACE("eeb14b68-808b-4abe-a5ea-b51da7588008")
15530 ISpeechMemoryStream : public ISpeechBaseStream
15531 {
15532     virtual HRESULT STDMETHODCALLTYPE SetData(
15533         VARIANT Data) = 0;
15534 
15535     virtual HRESULT STDMETHODCALLTYPE GetData(
15536         VARIANT *pData) = 0;
15537 
15538 };
15539 #ifdef __CRT_UUID_DECL
15540 __CRT_UUID_DECL(ISpeechMemoryStream, 0xeeb14b68, 0x808b, 0x4abe, 0xa5,0xea, 0xb5,0x1d,0xa7,0x58,0x80,0x08)
15541 #endif
15542 #else
15543 typedef struct ISpeechMemoryStreamVtbl {
15544     BEGIN_INTERFACE
15545 
15546     /*** IUnknown methods ***/
15547     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15548         ISpeechMemoryStream* This,
15549         REFIID riid,
15550         void **ppvObject);
15551 
15552     ULONG (STDMETHODCALLTYPE *AddRef)(
15553         ISpeechMemoryStream* This);
15554 
15555     ULONG (STDMETHODCALLTYPE *Release)(
15556         ISpeechMemoryStream* This);
15557 
15558     /*** IDispatch methods ***/
15559     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15560         ISpeechMemoryStream* This,
15561         UINT *pctinfo);
15562 
15563     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15564         ISpeechMemoryStream* This,
15565         UINT iTInfo,
15566         LCID lcid,
15567         ITypeInfo **ppTInfo);
15568 
15569     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15570         ISpeechMemoryStream* This,
15571         REFIID riid,
15572         LPOLESTR *rgszNames,
15573         UINT cNames,
15574         LCID lcid,
15575         DISPID *rgDispId);
15576 
15577     HRESULT (STDMETHODCALLTYPE *Invoke)(
15578         ISpeechMemoryStream* This,
15579         DISPID dispIdMember,
15580         REFIID riid,
15581         LCID lcid,
15582         WORD wFlags,
15583         DISPPARAMS *pDispParams,
15584         VARIANT *pVarResult,
15585         EXCEPINFO *pExcepInfo,
15586         UINT *puArgErr);
15587 
15588     /*** ISpeechBaseStream methods ***/
15589     HRESULT (STDMETHODCALLTYPE *get_Format)(
15590         ISpeechMemoryStream* This,
15591         ISpeechAudioFormat **AudioFormat);
15592 
15593     HRESULT (STDMETHODCALLTYPE *putref_Format)(
15594         ISpeechMemoryStream* This,
15595         ISpeechAudioFormat *AudioFormat);
15596 
15597     HRESULT (STDMETHODCALLTYPE *Read)(
15598         ISpeechMemoryStream* This,
15599         VARIANT *Buffer,
15600         LONG NumberOfBytes,
15601         LONG *BytesRead);
15602 
15603     HRESULT (STDMETHODCALLTYPE *Write)(
15604         ISpeechMemoryStream* This,
15605         VARIANT Buffer,
15606         LONG *BytesWritten);
15607 
15608     HRESULT (STDMETHODCALLTYPE *Seek)(
15609         ISpeechMemoryStream* This,
15610         VARIANT Position,
15611         SpeechStreamSeekPositionType Origin,
15612         VARIANT *NewPosition);
15613 
15614     /*** ISpeechMemoryStream methods ***/
15615     HRESULT (STDMETHODCALLTYPE *SetData)(
15616         ISpeechMemoryStream* This,
15617         VARIANT Data);
15618 
15619     HRESULT (STDMETHODCALLTYPE *GetData)(
15620         ISpeechMemoryStream* This,
15621         VARIANT *pData);
15622 
15623     END_INTERFACE
15624 } ISpeechMemoryStreamVtbl;
15625 interface ISpeechMemoryStream {
15626     CONST_VTBL ISpeechMemoryStreamVtbl* lpVtbl;
15627 };
15628 
15629 #ifdef COBJMACROS
15630 #ifndef WIDL_C_INLINE_WRAPPERS
15631 /*** IUnknown methods ***/
15632 #define ISpeechMemoryStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15633 #define ISpeechMemoryStream_AddRef(This) (This)->lpVtbl->AddRef(This)
15634 #define ISpeechMemoryStream_Release(This) (This)->lpVtbl->Release(This)
15635 /*** IDispatch methods ***/
15636 #define ISpeechMemoryStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
15637 #define ISpeechMemoryStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
15638 #define ISpeechMemoryStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
15639 #define ISpeechMemoryStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
15640 /*** ISpeechBaseStream methods ***/
15641 #define ISpeechMemoryStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
15642 #define ISpeechMemoryStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
15643 #define ISpeechMemoryStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
15644 #define ISpeechMemoryStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
15645 #define ISpeechMemoryStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
15646 /*** ISpeechMemoryStream methods ***/
15647 #define ISpeechMemoryStream_SetData(This,Data) (This)->lpVtbl->SetData(This,Data)
15648 #define ISpeechMemoryStream_GetData(This,pData) (This)->lpVtbl->GetData(This,pData)
15649 #else
15650 /*** IUnknown methods ***/
15651 static FORCEINLINE HRESULT ISpeechMemoryStream_QueryInterface(ISpeechMemoryStream* This,REFIID riid,void **ppvObject) {
15652     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15653 }
15654 static FORCEINLINE ULONG ISpeechMemoryStream_AddRef(ISpeechMemoryStream* This) {
15655     return This->lpVtbl->AddRef(This);
15656 }
15657 static FORCEINLINE ULONG ISpeechMemoryStream_Release(ISpeechMemoryStream* This) {
15658     return This->lpVtbl->Release(This);
15659 }
15660 /*** IDispatch methods ***/
15661 static FORCEINLINE HRESULT ISpeechMemoryStream_GetTypeInfoCount(ISpeechMemoryStream* This,UINT *pctinfo) {
15662     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
15663 }
15664 static FORCEINLINE HRESULT ISpeechMemoryStream_GetTypeInfo(ISpeechMemoryStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
15665     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
15666 }
15667 static FORCEINLINE HRESULT ISpeechMemoryStream_GetIDsOfNames(ISpeechMemoryStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
15668     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
15669 }
15670 static FORCEINLINE HRESULT ISpeechMemoryStream_Invoke(ISpeechMemoryStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
15671     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
15672 }
15673 /*** ISpeechBaseStream methods ***/
15674 static FORCEINLINE HRESULT ISpeechMemoryStream_get_Format(ISpeechMemoryStream* This,ISpeechAudioFormat **AudioFormat) {
15675     return This->lpVtbl->get_Format(This,AudioFormat);
15676 }
15677 static FORCEINLINE HRESULT ISpeechMemoryStream_putref_Format(ISpeechMemoryStream* This,ISpeechAudioFormat *AudioFormat) {
15678     return This->lpVtbl->putref_Format(This,AudioFormat);
15679 }
15680 static FORCEINLINE HRESULT ISpeechMemoryStream_Read(ISpeechMemoryStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
15681     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
15682 }
15683 static FORCEINLINE HRESULT ISpeechMemoryStream_Write(ISpeechMemoryStream* This,VARIANT Buffer,LONG *BytesWritten) {
15684     return This->lpVtbl->Write(This,Buffer,BytesWritten);
15685 }
15686 static FORCEINLINE HRESULT ISpeechMemoryStream_Seek(ISpeechMemoryStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
15687     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
15688 }
15689 /*** ISpeechMemoryStream methods ***/
15690 static FORCEINLINE HRESULT ISpeechMemoryStream_SetData(ISpeechMemoryStream* This,VARIANT Data) {
15691     return This->lpVtbl->SetData(This,Data);
15692 }
15693 static FORCEINLINE HRESULT ISpeechMemoryStream_GetData(ISpeechMemoryStream* This,VARIANT *pData) {
15694     return This->lpVtbl->GetData(This,pData);
15695 }
15696 #endif
15697 #endif
15698 
15699 #endif
15700 
15701 HRESULT STDMETHODCALLTYPE ISpeechMemoryStream_SetData_Proxy(
15702     ISpeechMemoryStream* This,
15703     VARIANT Data);
15704 void __RPC_STUB ISpeechMemoryStream_SetData_Stub(
15705     IRpcStubBuffer* This,
15706     IRpcChannelBuffer* pRpcChannelBuffer,
15707     PRPC_MESSAGE pRpcMessage,
15708     DWORD* pdwStubPhase);
15709 HRESULT STDMETHODCALLTYPE ISpeechMemoryStream_GetData_Proxy(
15710     ISpeechMemoryStream* This,
15711     VARIANT *pData);
15712 void __RPC_STUB ISpeechMemoryStream_GetData_Stub(
15713     IRpcStubBuffer* This,
15714     IRpcChannelBuffer* pRpcChannelBuffer,
15715     PRPC_MESSAGE pRpcMessage,
15716     DWORD* pdwStubPhase);
15717 
15718 #endif  /* __ISpeechMemoryStream_INTERFACE_DEFINED__ */
15719 
15720 /*****************************************************************************
15721  * ISpeechAudioStatus interface
15722  */
15723 #ifndef __ISpeechAudioStatus_INTERFACE_DEFINED__
15724 #define __ISpeechAudioStatus_INTERFACE_DEFINED__
15725 
15726 DEFINE_GUID(IID_ISpeechAudioStatus, 0xc62d9c91, 0x7458, 0x47f6, 0x86,0x2d, 0x1e,0xf8,0x6f,0xb0,0xb2,0x78);
15727 #if defined(__cplusplus) && !defined(CINTERFACE)
15728 MIDL_INTERFACE("c62d9c91-7458-47f6-862d-1ef86fb0b278")
15729 ISpeechAudioStatus : public IDispatch
15730 {
15731     virtual HRESULT STDMETHODCALLTYPE get_FreeBufferSpace(
15732         LONG *FreeBufferSpace) = 0;
15733 
15734     virtual HRESULT STDMETHODCALLTYPE get_NonBlockingIO(
15735         LONG *NonBlockingIO) = 0;
15736 
15737     virtual HRESULT STDMETHODCALLTYPE get_State(
15738         SpeechAudioState *State) = 0;
15739 
15740     virtual HRESULT STDMETHODCALLTYPE get_CurrentSeekPosition(
15741         VARIANT *CurrentSeekPosition) = 0;
15742 
15743     virtual HRESULT STDMETHODCALLTYPE get_CurrentDevicePosition(
15744         VARIANT *CurrentDevicePosition) = 0;
15745 
15746 };
15747 #ifdef __CRT_UUID_DECL
15748 __CRT_UUID_DECL(ISpeechAudioStatus, 0xc62d9c91, 0x7458, 0x47f6, 0x86,0x2d, 0x1e,0xf8,0x6f,0xb0,0xb2,0x78)
15749 #endif
15750 #else
15751 typedef struct ISpeechAudioStatusVtbl {
15752     BEGIN_INTERFACE
15753 
15754     /*** IUnknown methods ***/
15755     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15756         ISpeechAudioStatus* This,
15757         REFIID riid,
15758         void **ppvObject);
15759 
15760     ULONG (STDMETHODCALLTYPE *AddRef)(
15761         ISpeechAudioStatus* This);
15762 
15763     ULONG (STDMETHODCALLTYPE *Release)(
15764         ISpeechAudioStatus* This);
15765 
15766     /*** IDispatch methods ***/
15767     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15768         ISpeechAudioStatus* This,
15769         UINT *pctinfo);
15770 
15771     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15772         ISpeechAudioStatus* This,
15773         UINT iTInfo,
15774         LCID lcid,
15775         ITypeInfo **ppTInfo);
15776 
15777     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15778         ISpeechAudioStatus* This,
15779         REFIID riid,
15780         LPOLESTR *rgszNames,
15781         UINT cNames,
15782         LCID lcid,
15783         DISPID *rgDispId);
15784 
15785     HRESULT (STDMETHODCALLTYPE *Invoke)(
15786         ISpeechAudioStatus* This,
15787         DISPID dispIdMember,
15788         REFIID riid,
15789         LCID lcid,
15790         WORD wFlags,
15791         DISPPARAMS *pDispParams,
15792         VARIANT *pVarResult,
15793         EXCEPINFO *pExcepInfo,
15794         UINT *puArgErr);
15795 
15796     /*** ISpeechAudioStatus methods ***/
15797     HRESULT (STDMETHODCALLTYPE *get_FreeBufferSpace)(
15798         ISpeechAudioStatus* This,
15799         LONG *FreeBufferSpace);
15800 
15801     HRESULT (STDMETHODCALLTYPE *get_NonBlockingIO)(
15802         ISpeechAudioStatus* This,
15803         LONG *NonBlockingIO);
15804 
15805     HRESULT (STDMETHODCALLTYPE *get_State)(
15806         ISpeechAudioStatus* This,
15807         SpeechAudioState *State);
15808 
15809     HRESULT (STDMETHODCALLTYPE *get_CurrentSeekPosition)(
15810         ISpeechAudioStatus* This,
15811         VARIANT *CurrentSeekPosition);
15812 
15813     HRESULT (STDMETHODCALLTYPE *get_CurrentDevicePosition)(
15814         ISpeechAudioStatus* This,
15815         VARIANT *CurrentDevicePosition);
15816 
15817     END_INTERFACE
15818 } ISpeechAudioStatusVtbl;
15819 interface ISpeechAudioStatus {
15820     CONST_VTBL ISpeechAudioStatusVtbl* lpVtbl;
15821 };
15822 
15823 #ifdef COBJMACROS
15824 #ifndef WIDL_C_INLINE_WRAPPERS
15825 /*** IUnknown methods ***/
15826 #define ISpeechAudioStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15827 #define ISpeechAudioStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
15828 #define ISpeechAudioStatus_Release(This) (This)->lpVtbl->Release(This)
15829 /*** IDispatch methods ***/
15830 #define ISpeechAudioStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
15831 #define ISpeechAudioStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
15832 #define ISpeechAudioStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
15833 #define ISpeechAudioStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
15834 /*** ISpeechAudioStatus methods ***/
15835 #define ISpeechAudioStatus_get_FreeBufferSpace(This,FreeBufferSpace) (This)->lpVtbl->get_FreeBufferSpace(This,FreeBufferSpace)
15836 #define ISpeechAudioStatus_get_NonBlockingIO(This,NonBlockingIO) (This)->lpVtbl->get_NonBlockingIO(This,NonBlockingIO)
15837 #define ISpeechAudioStatus_get_State(This,State) (This)->lpVtbl->get_State(This,State)
15838 #define ISpeechAudioStatus_get_CurrentSeekPosition(This,CurrentSeekPosition) (This)->lpVtbl->get_CurrentSeekPosition(This,CurrentSeekPosition)
15839 #define ISpeechAudioStatus_get_CurrentDevicePosition(This,CurrentDevicePosition) (This)->lpVtbl->get_CurrentDevicePosition(This,CurrentDevicePosition)
15840 #else
15841 /*** IUnknown methods ***/
15842 static FORCEINLINE HRESULT ISpeechAudioStatus_QueryInterface(ISpeechAudioStatus* This,REFIID riid,void **ppvObject) {
15843     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15844 }
15845 static FORCEINLINE ULONG ISpeechAudioStatus_AddRef(ISpeechAudioStatus* This) {
15846     return This->lpVtbl->AddRef(This);
15847 }
15848 static FORCEINLINE ULONG ISpeechAudioStatus_Release(ISpeechAudioStatus* This) {
15849     return This->lpVtbl->Release(This);
15850 }
15851 /*** IDispatch methods ***/
15852 static FORCEINLINE HRESULT ISpeechAudioStatus_GetTypeInfoCount(ISpeechAudioStatus* This,UINT *pctinfo) {
15853     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
15854 }
15855 static FORCEINLINE HRESULT ISpeechAudioStatus_GetTypeInfo(ISpeechAudioStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
15856     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
15857 }
15858 static FORCEINLINE HRESULT ISpeechAudioStatus_GetIDsOfNames(ISpeechAudioStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
15859     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
15860 }
15861 static FORCEINLINE HRESULT ISpeechAudioStatus_Invoke(ISpeechAudioStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
15862     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
15863 }
15864 /*** ISpeechAudioStatus methods ***/
15865 static FORCEINLINE HRESULT ISpeechAudioStatus_get_FreeBufferSpace(ISpeechAudioStatus* This,LONG *FreeBufferSpace) {
15866     return This->lpVtbl->get_FreeBufferSpace(This,FreeBufferSpace);
15867 }
15868 static FORCEINLINE HRESULT ISpeechAudioStatus_get_NonBlockingIO(ISpeechAudioStatus* This,LONG *NonBlockingIO) {
15869     return This->lpVtbl->get_NonBlockingIO(This,NonBlockingIO);
15870 }
15871 static FORCEINLINE HRESULT ISpeechAudioStatus_get_State(ISpeechAudioStatus* This,SpeechAudioState *State) {
15872     return This->lpVtbl->get_State(This,State);
15873 }
15874 static FORCEINLINE HRESULT ISpeechAudioStatus_get_CurrentSeekPosition(ISpeechAudioStatus* This,VARIANT *CurrentSeekPosition) {
15875     return This->lpVtbl->get_CurrentSeekPosition(This,CurrentSeekPosition);
15876 }
15877 static FORCEINLINE HRESULT ISpeechAudioStatus_get_CurrentDevicePosition(ISpeechAudioStatus* This,VARIANT *CurrentDevicePosition) {
15878     return This->lpVtbl->get_CurrentDevicePosition(This,CurrentDevicePosition);
15879 }
15880 #endif
15881 #endif
15882 
15883 #endif
15884 
15885 HRESULT STDMETHODCALLTYPE ISpeechAudioStatus_get_FreeBufferSpace_Proxy(
15886     ISpeechAudioStatus* This,
15887     LONG *FreeBufferSpace);
15888 void __RPC_STUB ISpeechAudioStatus_get_FreeBufferSpace_Stub(
15889     IRpcStubBuffer* This,
15890     IRpcChannelBuffer* pRpcChannelBuffer,
15891     PRPC_MESSAGE pRpcMessage,
15892     DWORD* pdwStubPhase);
15893 HRESULT STDMETHODCALLTYPE ISpeechAudioStatus_get_NonBlockingIO_Proxy(
15894     ISpeechAudioStatus* This,
15895     LONG *NonBlockingIO);
15896 void __RPC_STUB ISpeechAudioStatus_get_NonBlockingIO_Stub(
15897     IRpcStubBuffer* This,
15898     IRpcChannelBuffer* pRpcChannelBuffer,
15899     PRPC_MESSAGE pRpcMessage,
15900     DWORD* pdwStubPhase);
15901 HRESULT STDMETHODCALLTYPE ISpeechAudioStatus_get_State_Proxy(
15902     ISpeechAudioStatus* This,
15903     SpeechAudioState *State);
15904 void __RPC_STUB ISpeechAudioStatus_get_State_Stub(
15905     IRpcStubBuffer* This,
15906     IRpcChannelBuffer* pRpcChannelBuffer,
15907     PRPC_MESSAGE pRpcMessage,
15908     DWORD* pdwStubPhase);
15909 HRESULT STDMETHODCALLTYPE ISpeechAudioStatus_get_CurrentSeekPosition_Proxy(
15910     ISpeechAudioStatus* This,
15911     VARIANT *CurrentSeekPosition);
15912 void __RPC_STUB ISpeechAudioStatus_get_CurrentSeekPosition_Stub(
15913     IRpcStubBuffer* This,
15914     IRpcChannelBuffer* pRpcChannelBuffer,
15915     PRPC_MESSAGE pRpcMessage,
15916     DWORD* pdwStubPhase);
15917 HRESULT STDMETHODCALLTYPE ISpeechAudioStatus_get_CurrentDevicePosition_Proxy(
15918     ISpeechAudioStatus* This,
15919     VARIANT *CurrentDevicePosition);
15920 void __RPC_STUB ISpeechAudioStatus_get_CurrentDevicePosition_Stub(
15921     IRpcStubBuffer* This,
15922     IRpcChannelBuffer* pRpcChannelBuffer,
15923     PRPC_MESSAGE pRpcMessage,
15924     DWORD* pdwStubPhase);
15925 
15926 #endif  /* __ISpeechAudioStatus_INTERFACE_DEFINED__ */
15927 
15928 /*****************************************************************************
15929  * ISpeechAudioBufferInfo interface
15930  */
15931 #ifndef __ISpeechAudioBufferInfo_INTERFACE_DEFINED__
15932 #define __ISpeechAudioBufferInfo_INTERFACE_DEFINED__
15933 
15934 DEFINE_GUID(IID_ISpeechAudioBufferInfo, 0x11b103d8, 0x1142, 0x4edf, 0xa0,0x93, 0x82,0xfb,0x39,0x15,0xf8,0xcc);
15935 #if defined(__cplusplus) && !defined(CINTERFACE)
15936 MIDL_INTERFACE("11b103d8-1142-4edf-a093-82fb3915f8cc")
15937 ISpeechAudioBufferInfo : public IDispatch
15938 {
15939     virtual HRESULT STDMETHODCALLTYPE get_MinNotification(
15940         LONG *MinNotification) = 0;
15941 
15942     virtual HRESULT STDMETHODCALLTYPE put_MinNotification(
15943         LONG MinNotification) = 0;
15944 
15945     virtual HRESULT STDMETHODCALLTYPE get_BufferSize(
15946         LONG *BufferSize) = 0;
15947 
15948     virtual HRESULT STDMETHODCALLTYPE put_BufferSize(
15949         LONG BufferSize) = 0;
15950 
15951     virtual HRESULT STDMETHODCALLTYPE get_EventBias(
15952         LONG *EventBias) = 0;
15953 
15954     virtual HRESULT STDMETHODCALLTYPE put_EventBias(
15955         LONG EventBias) = 0;
15956 
15957 };
15958 #ifdef __CRT_UUID_DECL
15959 __CRT_UUID_DECL(ISpeechAudioBufferInfo, 0x11b103d8, 0x1142, 0x4edf, 0xa0,0x93, 0x82,0xfb,0x39,0x15,0xf8,0xcc)
15960 #endif
15961 #else
15962 typedef struct ISpeechAudioBufferInfoVtbl {
15963     BEGIN_INTERFACE
15964 
15965     /*** IUnknown methods ***/
15966     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15967         ISpeechAudioBufferInfo* This,
15968         REFIID riid,
15969         void **ppvObject);
15970 
15971     ULONG (STDMETHODCALLTYPE *AddRef)(
15972         ISpeechAudioBufferInfo* This);
15973 
15974     ULONG (STDMETHODCALLTYPE *Release)(
15975         ISpeechAudioBufferInfo* This);
15976 
15977     /*** IDispatch methods ***/
15978     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15979         ISpeechAudioBufferInfo* This,
15980         UINT *pctinfo);
15981 
15982     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15983         ISpeechAudioBufferInfo* This,
15984         UINT iTInfo,
15985         LCID lcid,
15986         ITypeInfo **ppTInfo);
15987 
15988     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15989         ISpeechAudioBufferInfo* This,
15990         REFIID riid,
15991         LPOLESTR *rgszNames,
15992         UINT cNames,
15993         LCID lcid,
15994         DISPID *rgDispId);
15995 
15996     HRESULT (STDMETHODCALLTYPE *Invoke)(
15997         ISpeechAudioBufferInfo* This,
15998         DISPID dispIdMember,
15999         REFIID riid,
16000         LCID lcid,
16001         WORD wFlags,
16002         DISPPARAMS *pDispParams,
16003         VARIANT *pVarResult,
16004         EXCEPINFO *pExcepInfo,
16005         UINT *puArgErr);
16006 
16007     /*** ISpeechAudioBufferInfo methods ***/
16008     HRESULT (STDMETHODCALLTYPE *get_MinNotification)(
16009         ISpeechAudioBufferInfo* This,
16010         LONG *MinNotification);
16011 
16012     HRESULT (STDMETHODCALLTYPE *put_MinNotification)(
16013         ISpeechAudioBufferInfo* This,
16014         LONG MinNotification);
16015 
16016     HRESULT (STDMETHODCALLTYPE *get_BufferSize)(
16017         ISpeechAudioBufferInfo* This,
16018         LONG *BufferSize);
16019 
16020     HRESULT (STDMETHODCALLTYPE *put_BufferSize)(
16021         ISpeechAudioBufferInfo* This,
16022         LONG BufferSize);
16023 
16024     HRESULT (STDMETHODCALLTYPE *get_EventBias)(
16025         ISpeechAudioBufferInfo* This,
16026         LONG *EventBias);
16027 
16028     HRESULT (STDMETHODCALLTYPE *put_EventBias)(
16029         ISpeechAudioBufferInfo* This,
16030         LONG EventBias);
16031 
16032     END_INTERFACE
16033 } ISpeechAudioBufferInfoVtbl;
16034 interface ISpeechAudioBufferInfo {
16035     CONST_VTBL ISpeechAudioBufferInfoVtbl* lpVtbl;
16036 };
16037 
16038 #ifdef COBJMACROS
16039 #ifndef WIDL_C_INLINE_WRAPPERS
16040 /*** IUnknown methods ***/
16041 #define ISpeechAudioBufferInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16042 #define ISpeechAudioBufferInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
16043 #define ISpeechAudioBufferInfo_Release(This) (This)->lpVtbl->Release(This)
16044 /*** IDispatch methods ***/
16045 #define ISpeechAudioBufferInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16046 #define ISpeechAudioBufferInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16047 #define ISpeechAudioBufferInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16048 #define ISpeechAudioBufferInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16049 /*** ISpeechAudioBufferInfo methods ***/
16050 #define ISpeechAudioBufferInfo_get_MinNotification(This,MinNotification) (This)->lpVtbl->get_MinNotification(This,MinNotification)
16051 #define ISpeechAudioBufferInfo_put_MinNotification(This,MinNotification) (This)->lpVtbl->put_MinNotification(This,MinNotification)
16052 #define ISpeechAudioBufferInfo_get_BufferSize(This,BufferSize) (This)->lpVtbl->get_BufferSize(This,BufferSize)
16053 #define ISpeechAudioBufferInfo_put_BufferSize(This,BufferSize) (This)->lpVtbl->put_BufferSize(This,BufferSize)
16054 #define ISpeechAudioBufferInfo_get_EventBias(This,EventBias) (This)->lpVtbl->get_EventBias(This,EventBias)
16055 #define ISpeechAudioBufferInfo_put_EventBias(This,EventBias) (This)->lpVtbl->put_EventBias(This,EventBias)
16056 #else
16057 /*** IUnknown methods ***/
16058 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_QueryInterface(ISpeechAudioBufferInfo* This,REFIID riid,void **ppvObject) {
16059     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16060 }
16061 static FORCEINLINE ULONG ISpeechAudioBufferInfo_AddRef(ISpeechAudioBufferInfo* This) {
16062     return This->lpVtbl->AddRef(This);
16063 }
16064 static FORCEINLINE ULONG ISpeechAudioBufferInfo_Release(ISpeechAudioBufferInfo* This) {
16065     return This->lpVtbl->Release(This);
16066 }
16067 /*** IDispatch methods ***/
16068 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_GetTypeInfoCount(ISpeechAudioBufferInfo* This,UINT *pctinfo) {
16069     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16070 }
16071 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_GetTypeInfo(ISpeechAudioBufferInfo* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16072     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16073 }
16074 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_GetIDsOfNames(ISpeechAudioBufferInfo* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16075     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16076 }
16077 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_Invoke(ISpeechAudioBufferInfo* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16078     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16079 }
16080 /*** ISpeechAudioBufferInfo methods ***/
16081 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_get_MinNotification(ISpeechAudioBufferInfo* This,LONG *MinNotification) {
16082     return This->lpVtbl->get_MinNotification(This,MinNotification);
16083 }
16084 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_put_MinNotification(ISpeechAudioBufferInfo* This,LONG MinNotification) {
16085     return This->lpVtbl->put_MinNotification(This,MinNotification);
16086 }
16087 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_get_BufferSize(ISpeechAudioBufferInfo* This,LONG *BufferSize) {
16088     return This->lpVtbl->get_BufferSize(This,BufferSize);
16089 }
16090 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_put_BufferSize(ISpeechAudioBufferInfo* This,LONG BufferSize) {
16091     return This->lpVtbl->put_BufferSize(This,BufferSize);
16092 }
16093 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_get_EventBias(ISpeechAudioBufferInfo* This,LONG *EventBias) {
16094     return This->lpVtbl->get_EventBias(This,EventBias);
16095 }
16096 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_put_EventBias(ISpeechAudioBufferInfo* This,LONG EventBias) {
16097     return This->lpVtbl->put_EventBias(This,EventBias);
16098 }
16099 #endif
16100 #endif
16101 
16102 #endif
16103 
16104 HRESULT STDMETHODCALLTYPE ISpeechAudioBufferInfo_get_MinNotification_Proxy(
16105     ISpeechAudioBufferInfo* This,
16106     LONG *MinNotification);
16107 void __RPC_STUB ISpeechAudioBufferInfo_get_MinNotification_Stub(
16108     IRpcStubBuffer* This,
16109     IRpcChannelBuffer* pRpcChannelBuffer,
16110     PRPC_MESSAGE pRpcMessage,
16111     DWORD* pdwStubPhase);
16112 HRESULT STDMETHODCALLTYPE ISpeechAudioBufferInfo_put_MinNotification_Proxy(
16113     ISpeechAudioBufferInfo* This,
16114     LONG MinNotification);
16115 void __RPC_STUB ISpeechAudioBufferInfo_put_MinNotification_Stub(
16116     IRpcStubBuffer* This,
16117     IRpcChannelBuffer* pRpcChannelBuffer,
16118     PRPC_MESSAGE pRpcMessage,
16119     DWORD* pdwStubPhase);
16120 HRESULT STDMETHODCALLTYPE ISpeechAudioBufferInfo_get_BufferSize_Proxy(
16121     ISpeechAudioBufferInfo* This,
16122     LONG *BufferSize);
16123 void __RPC_STUB ISpeechAudioBufferInfo_get_BufferSize_Stub(
16124     IRpcStubBuffer* This,
16125     IRpcChannelBuffer* pRpcChannelBuffer,
16126     PRPC_MESSAGE pRpcMessage,
16127     DWORD* pdwStubPhase);
16128 HRESULT STDMETHODCALLTYPE ISpeechAudioBufferInfo_put_BufferSize_Proxy(
16129     ISpeechAudioBufferInfo* This,
16130     LONG BufferSize);
16131 void __RPC_STUB ISpeechAudioBufferInfo_put_BufferSize_Stub(
16132     IRpcStubBuffer* This,
16133     IRpcChannelBuffer* pRpcChannelBuffer,
16134     PRPC_MESSAGE pRpcMessage,
16135     DWORD* pdwStubPhase);
16136 HRESULT STDMETHODCALLTYPE ISpeechAudioBufferInfo_get_EventBias_Proxy(
16137     ISpeechAudioBufferInfo* This,
16138     LONG *EventBias);
16139 void __RPC_STUB ISpeechAudioBufferInfo_get_EventBias_Stub(
16140     IRpcStubBuffer* This,
16141     IRpcChannelBuffer* pRpcChannelBuffer,
16142     PRPC_MESSAGE pRpcMessage,
16143     DWORD* pdwStubPhase);
16144 HRESULT STDMETHODCALLTYPE ISpeechAudioBufferInfo_put_EventBias_Proxy(
16145     ISpeechAudioBufferInfo* This,
16146     LONG EventBias);
16147 void __RPC_STUB ISpeechAudioBufferInfo_put_EventBias_Stub(
16148     IRpcStubBuffer* This,
16149     IRpcChannelBuffer* pRpcChannelBuffer,
16150     PRPC_MESSAGE pRpcMessage,
16151     DWORD* pdwStubPhase);
16152 
16153 #endif  /* __ISpeechAudioBufferInfo_INTERFACE_DEFINED__ */
16154 
16155 /*****************************************************************************
16156  * ISpeechWaveFormatEx interface
16157  */
16158 #ifndef __ISpeechWaveFormatEx_INTERFACE_DEFINED__
16159 #define __ISpeechWaveFormatEx_INTERFACE_DEFINED__
16160 
16161 DEFINE_GUID(IID_ISpeechWaveFormatEx, 0x7a1ef0d5, 0x1581, 0x4741, 0x88,0xe4, 0x20,0x9a,0x49,0xf1,0x1a,0x10);
16162 #if defined(__cplusplus) && !defined(CINTERFACE)
16163 MIDL_INTERFACE("7a1ef0d5-1581-4741-88e4-209a49f11a10")
16164 ISpeechWaveFormatEx : public IDispatch
16165 {
16166     virtual HRESULT STDMETHODCALLTYPE get_FormatTag(
16167         short *FormatTag) = 0;
16168 
16169     virtual HRESULT STDMETHODCALLTYPE put_FormatTag(
16170         short FormatTag) = 0;
16171 
16172     virtual HRESULT STDMETHODCALLTYPE get_Channels(
16173         short *Channels) = 0;
16174 
16175     virtual HRESULT STDMETHODCALLTYPE put_Channels(
16176         short Channels) = 0;
16177 
16178     virtual HRESULT STDMETHODCALLTYPE get_SamplesPerSec(
16179         LONG *SamplesPerSec) = 0;
16180 
16181     virtual HRESULT STDMETHODCALLTYPE put_SamplesPerSec(
16182         LONG SamplesPerSec) = 0;
16183 
16184     virtual HRESULT STDMETHODCALLTYPE get_AvgBytesPerSec(
16185         LONG *AvgBytesPerSec) = 0;
16186 
16187     virtual HRESULT STDMETHODCALLTYPE put_AvgBytesPerSec(
16188         LONG AvgBytesPerSec) = 0;
16189 
16190     virtual HRESULT STDMETHODCALLTYPE get_BlockAlign(
16191         short *BlockAlign) = 0;
16192 
16193     virtual HRESULT STDMETHODCALLTYPE put_BlockAlign(
16194         short BlockAlign) = 0;
16195 
16196     virtual HRESULT STDMETHODCALLTYPE get_BitsPerSample(
16197         short *BitsPerSample) = 0;
16198 
16199     virtual HRESULT STDMETHODCALLTYPE put_BitsPerSample(
16200         short BitsPerSample) = 0;
16201 
16202     virtual HRESULT STDMETHODCALLTYPE get_ExtraData(
16203         VARIANT *ExtraData) = 0;
16204 
16205     virtual HRESULT STDMETHODCALLTYPE put_ExtraData(
16206         VARIANT ExtraData) = 0;
16207 
16208 };
16209 #ifdef __CRT_UUID_DECL
16210 __CRT_UUID_DECL(ISpeechWaveFormatEx, 0x7a1ef0d5, 0x1581, 0x4741, 0x88,0xe4, 0x20,0x9a,0x49,0xf1,0x1a,0x10)
16211 #endif
16212 #else
16213 typedef struct ISpeechWaveFormatExVtbl {
16214     BEGIN_INTERFACE
16215 
16216     /*** IUnknown methods ***/
16217     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16218         ISpeechWaveFormatEx* This,
16219         REFIID riid,
16220         void **ppvObject);
16221 
16222     ULONG (STDMETHODCALLTYPE *AddRef)(
16223         ISpeechWaveFormatEx* This);
16224 
16225     ULONG (STDMETHODCALLTYPE *Release)(
16226         ISpeechWaveFormatEx* This);
16227 
16228     /*** IDispatch methods ***/
16229     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16230         ISpeechWaveFormatEx* This,
16231         UINT *pctinfo);
16232 
16233     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16234         ISpeechWaveFormatEx* This,
16235         UINT iTInfo,
16236         LCID lcid,
16237         ITypeInfo **ppTInfo);
16238 
16239     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16240         ISpeechWaveFormatEx* This,
16241         REFIID riid,
16242         LPOLESTR *rgszNames,
16243         UINT cNames,
16244         LCID lcid,
16245         DISPID *rgDispId);
16246 
16247     HRESULT (STDMETHODCALLTYPE *Invoke)(
16248         ISpeechWaveFormatEx* This,
16249         DISPID dispIdMember,
16250         REFIID riid,
16251         LCID lcid,
16252         WORD wFlags,
16253         DISPPARAMS *pDispParams,
16254         VARIANT *pVarResult,
16255         EXCEPINFO *pExcepInfo,
16256         UINT *puArgErr);
16257 
16258     /*** ISpeechWaveFormatEx methods ***/
16259     HRESULT (STDMETHODCALLTYPE *get_FormatTag)(
16260         ISpeechWaveFormatEx* This,
16261         short *FormatTag);
16262 
16263     HRESULT (STDMETHODCALLTYPE *put_FormatTag)(
16264         ISpeechWaveFormatEx* This,
16265         short FormatTag);
16266 
16267     HRESULT (STDMETHODCALLTYPE *get_Channels)(
16268         ISpeechWaveFormatEx* This,
16269         short *Channels);
16270 
16271     HRESULT (STDMETHODCALLTYPE *put_Channels)(
16272         ISpeechWaveFormatEx* This,
16273         short Channels);
16274 
16275     HRESULT (STDMETHODCALLTYPE *get_SamplesPerSec)(
16276         ISpeechWaveFormatEx* This,
16277         LONG *SamplesPerSec);
16278 
16279     HRESULT (STDMETHODCALLTYPE *put_SamplesPerSec)(
16280         ISpeechWaveFormatEx* This,
16281         LONG SamplesPerSec);
16282 
16283     HRESULT (STDMETHODCALLTYPE *get_AvgBytesPerSec)(
16284         ISpeechWaveFormatEx* This,
16285         LONG *AvgBytesPerSec);
16286 
16287     HRESULT (STDMETHODCALLTYPE *put_AvgBytesPerSec)(
16288         ISpeechWaveFormatEx* This,
16289         LONG AvgBytesPerSec);
16290 
16291     HRESULT (STDMETHODCALLTYPE *get_BlockAlign)(
16292         ISpeechWaveFormatEx* This,
16293         short *BlockAlign);
16294 
16295     HRESULT (STDMETHODCALLTYPE *put_BlockAlign)(
16296         ISpeechWaveFormatEx* This,
16297         short BlockAlign);
16298 
16299     HRESULT (STDMETHODCALLTYPE *get_BitsPerSample)(
16300         ISpeechWaveFormatEx* This,
16301         short *BitsPerSample);
16302 
16303     HRESULT (STDMETHODCALLTYPE *put_BitsPerSample)(
16304         ISpeechWaveFormatEx* This,
16305         short BitsPerSample);
16306 
16307     HRESULT (STDMETHODCALLTYPE *get_ExtraData)(
16308         ISpeechWaveFormatEx* This,
16309         VARIANT *ExtraData);
16310 
16311     HRESULT (STDMETHODCALLTYPE *put_ExtraData)(
16312         ISpeechWaveFormatEx* This,
16313         VARIANT ExtraData);
16314 
16315     END_INTERFACE
16316 } ISpeechWaveFormatExVtbl;
16317 interface ISpeechWaveFormatEx {
16318     CONST_VTBL ISpeechWaveFormatExVtbl* lpVtbl;
16319 };
16320 
16321 #ifdef COBJMACROS
16322 #ifndef WIDL_C_INLINE_WRAPPERS
16323 /*** IUnknown methods ***/
16324 #define ISpeechWaveFormatEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16325 #define ISpeechWaveFormatEx_AddRef(This) (This)->lpVtbl->AddRef(This)
16326 #define ISpeechWaveFormatEx_Release(This) (This)->lpVtbl->Release(This)
16327 /*** IDispatch methods ***/
16328 #define ISpeechWaveFormatEx_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16329 #define ISpeechWaveFormatEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16330 #define ISpeechWaveFormatEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16331 #define ISpeechWaveFormatEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16332 /*** ISpeechWaveFormatEx methods ***/
16333 #define ISpeechWaveFormatEx_get_FormatTag(This,FormatTag) (This)->lpVtbl->get_FormatTag(This,FormatTag)
16334 #define ISpeechWaveFormatEx_put_FormatTag(This,FormatTag) (This)->lpVtbl->put_FormatTag(This,FormatTag)
16335 #define ISpeechWaveFormatEx_get_Channels(This,Channels) (This)->lpVtbl->get_Channels(This,Channels)
16336 #define ISpeechWaveFormatEx_put_Channels(This,Channels) (This)->lpVtbl->put_Channels(This,Channels)
16337 #define ISpeechWaveFormatEx_get_SamplesPerSec(This,SamplesPerSec) (This)->lpVtbl->get_SamplesPerSec(This,SamplesPerSec)
16338 #define ISpeechWaveFormatEx_put_SamplesPerSec(This,SamplesPerSec) (This)->lpVtbl->put_SamplesPerSec(This,SamplesPerSec)
16339 #define ISpeechWaveFormatEx_get_AvgBytesPerSec(This,AvgBytesPerSec) (This)->lpVtbl->get_AvgBytesPerSec(This,AvgBytesPerSec)
16340 #define ISpeechWaveFormatEx_put_AvgBytesPerSec(This,AvgBytesPerSec) (This)->lpVtbl->put_AvgBytesPerSec(This,AvgBytesPerSec)
16341 #define ISpeechWaveFormatEx_get_BlockAlign(This,BlockAlign) (This)->lpVtbl->get_BlockAlign(This,BlockAlign)
16342 #define ISpeechWaveFormatEx_put_BlockAlign(This,BlockAlign) (This)->lpVtbl->put_BlockAlign(This,BlockAlign)
16343 #define ISpeechWaveFormatEx_get_BitsPerSample(This,BitsPerSample) (This)->lpVtbl->get_BitsPerSample(This,BitsPerSample)
16344 #define ISpeechWaveFormatEx_put_BitsPerSample(This,BitsPerSample) (This)->lpVtbl->put_BitsPerSample(This,BitsPerSample)
16345 #define ISpeechWaveFormatEx_get_ExtraData(This,ExtraData) (This)->lpVtbl->get_ExtraData(This,ExtraData)
16346 #define ISpeechWaveFormatEx_put_ExtraData(This,ExtraData) (This)->lpVtbl->put_ExtraData(This,ExtraData)
16347 #else
16348 /*** IUnknown methods ***/
16349 static FORCEINLINE HRESULT ISpeechWaveFormatEx_QueryInterface(ISpeechWaveFormatEx* This,REFIID riid,void **ppvObject) {
16350     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16351 }
16352 static FORCEINLINE ULONG ISpeechWaveFormatEx_AddRef(ISpeechWaveFormatEx* This) {
16353     return This->lpVtbl->AddRef(This);
16354 }
16355 static FORCEINLINE ULONG ISpeechWaveFormatEx_Release(ISpeechWaveFormatEx* This) {
16356     return This->lpVtbl->Release(This);
16357 }
16358 /*** IDispatch methods ***/
16359 static FORCEINLINE HRESULT ISpeechWaveFormatEx_GetTypeInfoCount(ISpeechWaveFormatEx* This,UINT *pctinfo) {
16360     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16361 }
16362 static FORCEINLINE HRESULT ISpeechWaveFormatEx_GetTypeInfo(ISpeechWaveFormatEx* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16363     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16364 }
16365 static FORCEINLINE HRESULT ISpeechWaveFormatEx_GetIDsOfNames(ISpeechWaveFormatEx* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16366     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16367 }
16368 static FORCEINLINE HRESULT ISpeechWaveFormatEx_Invoke(ISpeechWaveFormatEx* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16369     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16370 }
16371 /*** ISpeechWaveFormatEx methods ***/
16372 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_FormatTag(ISpeechWaveFormatEx* This,short *FormatTag) {
16373     return This->lpVtbl->get_FormatTag(This,FormatTag);
16374 }
16375 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_FormatTag(ISpeechWaveFormatEx* This,short FormatTag) {
16376     return This->lpVtbl->put_FormatTag(This,FormatTag);
16377 }
16378 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_Channels(ISpeechWaveFormatEx* This,short *Channels) {
16379     return This->lpVtbl->get_Channels(This,Channels);
16380 }
16381 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_Channels(ISpeechWaveFormatEx* This,short Channels) {
16382     return This->lpVtbl->put_Channels(This,Channels);
16383 }
16384 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_SamplesPerSec(ISpeechWaveFormatEx* This,LONG *SamplesPerSec) {
16385     return This->lpVtbl->get_SamplesPerSec(This,SamplesPerSec);
16386 }
16387 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_SamplesPerSec(ISpeechWaveFormatEx* This,LONG SamplesPerSec) {
16388     return This->lpVtbl->put_SamplesPerSec(This,SamplesPerSec);
16389 }
16390 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_AvgBytesPerSec(ISpeechWaveFormatEx* This,LONG *AvgBytesPerSec) {
16391     return This->lpVtbl->get_AvgBytesPerSec(This,AvgBytesPerSec);
16392 }
16393 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_AvgBytesPerSec(ISpeechWaveFormatEx* This,LONG AvgBytesPerSec) {
16394     return This->lpVtbl->put_AvgBytesPerSec(This,AvgBytesPerSec);
16395 }
16396 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_BlockAlign(ISpeechWaveFormatEx* This,short *BlockAlign) {
16397     return This->lpVtbl->get_BlockAlign(This,BlockAlign);
16398 }
16399 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_BlockAlign(ISpeechWaveFormatEx* This,short BlockAlign) {
16400     return This->lpVtbl->put_BlockAlign(This,BlockAlign);
16401 }
16402 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_BitsPerSample(ISpeechWaveFormatEx* This,short *BitsPerSample) {
16403     return This->lpVtbl->get_BitsPerSample(This,BitsPerSample);
16404 }
16405 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_BitsPerSample(ISpeechWaveFormatEx* This,short BitsPerSample) {
16406     return This->lpVtbl->put_BitsPerSample(This,BitsPerSample);
16407 }
16408 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_ExtraData(ISpeechWaveFormatEx* This,VARIANT *ExtraData) {
16409     return This->lpVtbl->get_ExtraData(This,ExtraData);
16410 }
16411 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_ExtraData(ISpeechWaveFormatEx* This,VARIANT ExtraData) {
16412     return This->lpVtbl->put_ExtraData(This,ExtraData);
16413 }
16414 #endif
16415 #endif
16416 
16417 #endif
16418 
16419 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_get_FormatTag_Proxy(
16420     ISpeechWaveFormatEx* This,
16421     short *FormatTag);
16422 void __RPC_STUB ISpeechWaveFormatEx_get_FormatTag_Stub(
16423     IRpcStubBuffer* This,
16424     IRpcChannelBuffer* pRpcChannelBuffer,
16425     PRPC_MESSAGE pRpcMessage,
16426     DWORD* pdwStubPhase);
16427 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_put_FormatTag_Proxy(
16428     ISpeechWaveFormatEx* This,
16429     short FormatTag);
16430 void __RPC_STUB ISpeechWaveFormatEx_put_FormatTag_Stub(
16431     IRpcStubBuffer* This,
16432     IRpcChannelBuffer* pRpcChannelBuffer,
16433     PRPC_MESSAGE pRpcMessage,
16434     DWORD* pdwStubPhase);
16435 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_get_Channels_Proxy(
16436     ISpeechWaveFormatEx* This,
16437     short *Channels);
16438 void __RPC_STUB ISpeechWaveFormatEx_get_Channels_Stub(
16439     IRpcStubBuffer* This,
16440     IRpcChannelBuffer* pRpcChannelBuffer,
16441     PRPC_MESSAGE pRpcMessage,
16442     DWORD* pdwStubPhase);
16443 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_put_Channels_Proxy(
16444     ISpeechWaveFormatEx* This,
16445     short Channels);
16446 void __RPC_STUB ISpeechWaveFormatEx_put_Channels_Stub(
16447     IRpcStubBuffer* This,
16448     IRpcChannelBuffer* pRpcChannelBuffer,
16449     PRPC_MESSAGE pRpcMessage,
16450     DWORD* pdwStubPhase);
16451 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_get_SamplesPerSec_Proxy(
16452     ISpeechWaveFormatEx* This,
16453     LONG *SamplesPerSec);
16454 void __RPC_STUB ISpeechWaveFormatEx_get_SamplesPerSec_Stub(
16455     IRpcStubBuffer* This,
16456     IRpcChannelBuffer* pRpcChannelBuffer,
16457     PRPC_MESSAGE pRpcMessage,
16458     DWORD* pdwStubPhase);
16459 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_put_SamplesPerSec_Proxy(
16460     ISpeechWaveFormatEx* This,
16461     LONG SamplesPerSec);
16462 void __RPC_STUB ISpeechWaveFormatEx_put_SamplesPerSec_Stub(
16463     IRpcStubBuffer* This,
16464     IRpcChannelBuffer* pRpcChannelBuffer,
16465     PRPC_MESSAGE pRpcMessage,
16466     DWORD* pdwStubPhase);
16467 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_get_AvgBytesPerSec_Proxy(
16468     ISpeechWaveFormatEx* This,
16469     LONG *AvgBytesPerSec);
16470 void __RPC_STUB ISpeechWaveFormatEx_get_AvgBytesPerSec_Stub(
16471     IRpcStubBuffer* This,
16472     IRpcChannelBuffer* pRpcChannelBuffer,
16473     PRPC_MESSAGE pRpcMessage,
16474     DWORD* pdwStubPhase);
16475 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_put_AvgBytesPerSec_Proxy(
16476     ISpeechWaveFormatEx* This,
16477     LONG AvgBytesPerSec);
16478 void __RPC_STUB ISpeechWaveFormatEx_put_AvgBytesPerSec_Stub(
16479     IRpcStubBuffer* This,
16480     IRpcChannelBuffer* pRpcChannelBuffer,
16481     PRPC_MESSAGE pRpcMessage,
16482     DWORD* pdwStubPhase);
16483 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_get_BlockAlign_Proxy(
16484     ISpeechWaveFormatEx* This,
16485     short *BlockAlign);
16486 void __RPC_STUB ISpeechWaveFormatEx_get_BlockAlign_Stub(
16487     IRpcStubBuffer* This,
16488     IRpcChannelBuffer* pRpcChannelBuffer,
16489     PRPC_MESSAGE pRpcMessage,
16490     DWORD* pdwStubPhase);
16491 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_put_BlockAlign_Proxy(
16492     ISpeechWaveFormatEx* This,
16493     short BlockAlign);
16494 void __RPC_STUB ISpeechWaveFormatEx_put_BlockAlign_Stub(
16495     IRpcStubBuffer* This,
16496     IRpcChannelBuffer* pRpcChannelBuffer,
16497     PRPC_MESSAGE pRpcMessage,
16498     DWORD* pdwStubPhase);
16499 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_get_BitsPerSample_Proxy(
16500     ISpeechWaveFormatEx* This,
16501     short *BitsPerSample);
16502 void __RPC_STUB ISpeechWaveFormatEx_get_BitsPerSample_Stub(
16503     IRpcStubBuffer* This,
16504     IRpcChannelBuffer* pRpcChannelBuffer,
16505     PRPC_MESSAGE pRpcMessage,
16506     DWORD* pdwStubPhase);
16507 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_put_BitsPerSample_Proxy(
16508     ISpeechWaveFormatEx* This,
16509     short BitsPerSample);
16510 void __RPC_STUB ISpeechWaveFormatEx_put_BitsPerSample_Stub(
16511     IRpcStubBuffer* This,
16512     IRpcChannelBuffer* pRpcChannelBuffer,
16513     PRPC_MESSAGE pRpcMessage,
16514     DWORD* pdwStubPhase);
16515 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_get_ExtraData_Proxy(
16516     ISpeechWaveFormatEx* This,
16517     VARIANT *ExtraData);
16518 void __RPC_STUB ISpeechWaveFormatEx_get_ExtraData_Stub(
16519     IRpcStubBuffer* This,
16520     IRpcChannelBuffer* pRpcChannelBuffer,
16521     PRPC_MESSAGE pRpcMessage,
16522     DWORD* pdwStubPhase);
16523 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_put_ExtraData_Proxy(
16524     ISpeechWaveFormatEx* This,
16525     VARIANT ExtraData);
16526 void __RPC_STUB ISpeechWaveFormatEx_put_ExtraData_Stub(
16527     IRpcStubBuffer* This,
16528     IRpcChannelBuffer* pRpcChannelBuffer,
16529     PRPC_MESSAGE pRpcMessage,
16530     DWORD* pdwStubPhase);
16531 
16532 #endif  /* __ISpeechWaveFormatEx_INTERFACE_DEFINED__ */
16533 
16534 /*****************************************************************************
16535  * ISpeechVoice interface
16536  */
16537 #ifndef __ISpeechVoice_INTERFACE_DEFINED__
16538 #define __ISpeechVoice_INTERFACE_DEFINED__
16539 
16540 DEFINE_GUID(IID_ISpeechVoice, 0x269316d8, 0x57bd, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96);
16541 #if defined(__cplusplus) && !defined(CINTERFACE)
16542 MIDL_INTERFACE("269316d8-57bd-11d2-9eee-00c04f797396")
16543 ISpeechVoice : public IDispatch
16544 {
16545     virtual HRESULT STDMETHODCALLTYPE get_Status(
16546         ISpeechVoiceStatus **Status) = 0;
16547 
16548     virtual HRESULT STDMETHODCALLTYPE get_Voice(
16549         ISpeechObjectToken **Voice) = 0;
16550 
16551     virtual HRESULT STDMETHODCALLTYPE putref_Voice(
16552         ISpeechObjectToken *Voice) = 0;
16553 
16554     virtual HRESULT STDMETHODCALLTYPE get_AudioOutput(
16555         ISpeechObjectToken **AudioOutput) = 0;
16556 
16557     virtual HRESULT STDMETHODCALLTYPE putref_AudioOutput(
16558         ISpeechObjectToken *AudioOutput) = 0;
16559 
16560     virtual HRESULT STDMETHODCALLTYPE get_AudioOutputStream(
16561         ISpeechBaseStream **AudioOutputStream) = 0;
16562 
16563     virtual HRESULT STDMETHODCALLTYPE putref_AudioOutputStream(
16564         ISpeechBaseStream *AudioOutputStream) = 0;
16565 
16566     virtual HRESULT STDMETHODCALLTYPE get_Rate(
16567         LONG *Rate) = 0;
16568 
16569     virtual HRESULT STDMETHODCALLTYPE put_Rate(
16570         LONG Rate) = 0;
16571 
16572     virtual HRESULT STDMETHODCALLTYPE get_Volume(
16573         LONG *Volume) = 0;
16574 
16575     virtual HRESULT STDMETHODCALLTYPE put_Volume(
16576         LONG Volume) = 0;
16577 
16578     virtual HRESULT STDMETHODCALLTYPE put_AllowAudioOutputFormatChangesOnNextSet(
16579         VARIANT_BOOL Allow) = 0;
16580 
16581     virtual HRESULT STDMETHODCALLTYPE get_AllowAudioOutputFormatChangesOnNextSet(
16582         VARIANT_BOOL *Allow) = 0;
16583 
16584     virtual HRESULT STDMETHODCALLTYPE get_EventInterests(
16585         SpeechVoiceEvents *EventInterestFlags) = 0;
16586 
16587     virtual HRESULT STDMETHODCALLTYPE put_EventInterests(
16588         SpeechVoiceEvents EventInterestFlags) = 0;
16589 
16590     virtual HRESULT STDMETHODCALLTYPE put_Priority(
16591         SpeechVoicePriority Priority) = 0;
16592 
16593     virtual HRESULT STDMETHODCALLTYPE get_Priority(
16594         SpeechVoicePriority *Priority) = 0;
16595 
16596     virtual HRESULT STDMETHODCALLTYPE put_AlertBoundary(
16597         SpeechVoiceEvents Boundary) = 0;
16598 
16599     virtual HRESULT STDMETHODCALLTYPE get_AlertBoundary(
16600         SpeechVoiceEvents *Boundary) = 0;
16601 
16602     virtual HRESULT STDMETHODCALLTYPE put_SynchronousSpeakTimeout(
16603         LONG msTimeout) = 0;
16604 
16605     virtual HRESULT STDMETHODCALLTYPE get_SynchronousSpeakTimeout(
16606         LONG *msTimeout) = 0;
16607 
16608     virtual HRESULT STDMETHODCALLTYPE Speak(
16609         BSTR Text,
16610         SpeechVoiceSpeakFlags Flags,
16611         LONG *StreamNumber) = 0;
16612 
16613     virtual HRESULT STDMETHODCALLTYPE SpeakStream(
16614         ISpeechBaseStream *Stream,
16615         SpeechVoiceSpeakFlags Flags,
16616         LONG *StreamNumber) = 0;
16617 
16618     virtual HRESULT STDMETHODCALLTYPE Pause(
16619         ) = 0;
16620 
16621     virtual HRESULT STDMETHODCALLTYPE Resume(
16622         ) = 0;
16623 
16624     virtual HRESULT STDMETHODCALLTYPE Skip(
16625         const BSTR Type,
16626         LONG NumItems,
16627         LONG *NumSkipped) = 0;
16628 
16629     virtual HRESULT STDMETHODCALLTYPE GetVoices(
16630         BSTR RequiredAttributes,
16631         BSTR OptionalAttributes,
16632         ISpeechObjectTokens **ObjectTokens) = 0;
16633 
16634     virtual HRESULT STDMETHODCALLTYPE GetAudioOutputs(
16635         BSTR RequiredAttributes,
16636         BSTR OptionalAttributes,
16637         ISpeechObjectTokens **ObjectTokens) = 0;
16638 
16639     virtual HRESULT STDMETHODCALLTYPE WaitUntilDone(
16640         LONG msTimeout,
16641         VARIANT_BOOL *Done) = 0;
16642 
16643     virtual HRESULT STDMETHODCALLTYPE SpeakCompleteEvent(
16644         LONG *Handle) = 0;
16645 
16646     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
16647         const BSTR TypeOfUI,
16648         const VARIANT *ExtraData,
16649         VARIANT_BOOL *Supported) = 0;
16650 
16651     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
16652         LONG hWndParent,
16653         BSTR Title,
16654         const BSTR TypeOfUI,
16655         const VARIANT *ExtraData = 0) = 0;
16656 
16657 };
16658 #ifdef __CRT_UUID_DECL
16659 __CRT_UUID_DECL(ISpeechVoice, 0x269316d8, 0x57bd, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96)
16660 #endif
16661 #else
16662 typedef struct ISpeechVoiceVtbl {
16663     BEGIN_INTERFACE
16664 
16665     /*** IUnknown methods ***/
16666     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16667         ISpeechVoice* This,
16668         REFIID riid,
16669         void **ppvObject);
16670 
16671     ULONG (STDMETHODCALLTYPE *AddRef)(
16672         ISpeechVoice* This);
16673 
16674     ULONG (STDMETHODCALLTYPE *Release)(
16675         ISpeechVoice* This);
16676 
16677     /*** IDispatch methods ***/
16678     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16679         ISpeechVoice* This,
16680         UINT *pctinfo);
16681 
16682     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16683         ISpeechVoice* This,
16684         UINT iTInfo,
16685         LCID lcid,
16686         ITypeInfo **ppTInfo);
16687 
16688     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16689         ISpeechVoice* This,
16690         REFIID riid,
16691         LPOLESTR *rgszNames,
16692         UINT cNames,
16693         LCID lcid,
16694         DISPID *rgDispId);
16695 
16696     HRESULT (STDMETHODCALLTYPE *Invoke)(
16697         ISpeechVoice* This,
16698         DISPID dispIdMember,
16699         REFIID riid,
16700         LCID lcid,
16701         WORD wFlags,
16702         DISPPARAMS *pDispParams,
16703         VARIANT *pVarResult,
16704         EXCEPINFO *pExcepInfo,
16705         UINT *puArgErr);
16706 
16707     /*** ISpeechVoice methods ***/
16708     HRESULT (STDMETHODCALLTYPE *get_Status)(
16709         ISpeechVoice* This,
16710         ISpeechVoiceStatus **Status);
16711 
16712     HRESULT (STDMETHODCALLTYPE *get_Voice)(
16713         ISpeechVoice* This,
16714         ISpeechObjectToken **Voice);
16715 
16716     HRESULT (STDMETHODCALLTYPE *putref_Voice)(
16717         ISpeechVoice* This,
16718         ISpeechObjectToken *Voice);
16719 
16720     HRESULT (STDMETHODCALLTYPE *get_AudioOutput)(
16721         ISpeechVoice* This,
16722         ISpeechObjectToken **AudioOutput);
16723 
16724     HRESULT (STDMETHODCALLTYPE *putref_AudioOutput)(
16725         ISpeechVoice* This,
16726         ISpeechObjectToken *AudioOutput);
16727 
16728     HRESULT (STDMETHODCALLTYPE *get_AudioOutputStream)(
16729         ISpeechVoice* This,
16730         ISpeechBaseStream **AudioOutputStream);
16731 
16732     HRESULT (STDMETHODCALLTYPE *putref_AudioOutputStream)(
16733         ISpeechVoice* This,
16734         ISpeechBaseStream *AudioOutputStream);
16735 
16736     HRESULT (STDMETHODCALLTYPE *get_Rate)(
16737         ISpeechVoice* This,
16738         LONG *Rate);
16739 
16740     HRESULT (STDMETHODCALLTYPE *put_Rate)(
16741         ISpeechVoice* This,
16742         LONG Rate);
16743 
16744     HRESULT (STDMETHODCALLTYPE *get_Volume)(
16745         ISpeechVoice* This,
16746         LONG *Volume);
16747 
16748     HRESULT (STDMETHODCALLTYPE *put_Volume)(
16749         ISpeechVoice* This,
16750         LONG Volume);
16751 
16752     HRESULT (STDMETHODCALLTYPE *put_AllowAudioOutputFormatChangesOnNextSet)(
16753         ISpeechVoice* This,
16754         VARIANT_BOOL Allow);
16755 
16756     HRESULT (STDMETHODCALLTYPE *get_AllowAudioOutputFormatChangesOnNextSet)(
16757         ISpeechVoice* This,
16758         VARIANT_BOOL *Allow);
16759 
16760     HRESULT (STDMETHODCALLTYPE *get_EventInterests)(
16761         ISpeechVoice* This,
16762         SpeechVoiceEvents *EventInterestFlags);
16763 
16764     HRESULT (STDMETHODCALLTYPE *put_EventInterests)(
16765         ISpeechVoice* This,
16766         SpeechVoiceEvents EventInterestFlags);
16767 
16768     HRESULT (STDMETHODCALLTYPE *put_Priority)(
16769         ISpeechVoice* This,
16770         SpeechVoicePriority Priority);
16771 
16772     HRESULT (STDMETHODCALLTYPE *get_Priority)(
16773         ISpeechVoice* This,
16774         SpeechVoicePriority *Priority);
16775 
16776     HRESULT (STDMETHODCALLTYPE *put_AlertBoundary)(
16777         ISpeechVoice* This,
16778         SpeechVoiceEvents Boundary);
16779 
16780     HRESULT (STDMETHODCALLTYPE *get_AlertBoundary)(
16781         ISpeechVoice* This,
16782         SpeechVoiceEvents *Boundary);
16783 
16784     HRESULT (STDMETHODCALLTYPE *put_SynchronousSpeakTimeout)(
16785         ISpeechVoice* This,
16786         LONG msTimeout);
16787 
16788     HRESULT (STDMETHODCALLTYPE *get_SynchronousSpeakTimeout)(
16789         ISpeechVoice* This,
16790         LONG *msTimeout);
16791 
16792     HRESULT (STDMETHODCALLTYPE *Speak)(
16793         ISpeechVoice* This,
16794         BSTR Text,
16795         SpeechVoiceSpeakFlags Flags,
16796         LONG *StreamNumber);
16797 
16798     HRESULT (STDMETHODCALLTYPE *SpeakStream)(
16799         ISpeechVoice* This,
16800         ISpeechBaseStream *Stream,
16801         SpeechVoiceSpeakFlags Flags,
16802         LONG *StreamNumber);
16803 
16804     HRESULT (STDMETHODCALLTYPE *Pause)(
16805         ISpeechVoice* This);
16806 
16807     HRESULT (STDMETHODCALLTYPE *Resume)(
16808         ISpeechVoice* This);
16809 
16810     HRESULT (STDMETHODCALLTYPE *Skip)(
16811         ISpeechVoice* This,
16812         const BSTR Type,
16813         LONG NumItems,
16814         LONG *NumSkipped);
16815 
16816     HRESULT (STDMETHODCALLTYPE *GetVoices)(
16817         ISpeechVoice* This,
16818         BSTR RequiredAttributes,
16819         BSTR OptionalAttributes,
16820         ISpeechObjectTokens **ObjectTokens);
16821 
16822     HRESULT (STDMETHODCALLTYPE *GetAudioOutputs)(
16823         ISpeechVoice* This,
16824         BSTR RequiredAttributes,
16825         BSTR OptionalAttributes,
16826         ISpeechObjectTokens **ObjectTokens);
16827 
16828     HRESULT (STDMETHODCALLTYPE *WaitUntilDone)(
16829         ISpeechVoice* This,
16830         LONG msTimeout,
16831         VARIANT_BOOL *Done);
16832 
16833     HRESULT (STDMETHODCALLTYPE *SpeakCompleteEvent)(
16834         ISpeechVoice* This,
16835         LONG *Handle);
16836 
16837     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
16838         ISpeechVoice* This,
16839         const BSTR TypeOfUI,
16840         const VARIANT *ExtraData,
16841         VARIANT_BOOL *Supported);
16842 
16843     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
16844         ISpeechVoice* This,
16845         LONG hWndParent,
16846         BSTR Title,
16847         const BSTR TypeOfUI,
16848         const VARIANT *ExtraData);
16849 
16850     END_INTERFACE
16851 } ISpeechVoiceVtbl;
16852 interface ISpeechVoice {
16853     CONST_VTBL ISpeechVoiceVtbl* lpVtbl;
16854 };
16855 
16856 #ifdef COBJMACROS
16857 #ifndef WIDL_C_INLINE_WRAPPERS
16858 /*** IUnknown methods ***/
16859 #define ISpeechVoice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16860 #define ISpeechVoice_AddRef(This) (This)->lpVtbl->AddRef(This)
16861 #define ISpeechVoice_Release(This) (This)->lpVtbl->Release(This)
16862 /*** IDispatch methods ***/
16863 #define ISpeechVoice_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16864 #define ISpeechVoice_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16865 #define ISpeechVoice_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16866 #define ISpeechVoice_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16867 /*** ISpeechVoice methods ***/
16868 #define ISpeechVoice_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
16869 #define ISpeechVoice_get_Voice(This,Voice) (This)->lpVtbl->get_Voice(This,Voice)
16870 #define ISpeechVoice_putref_Voice(This,Voice) (This)->lpVtbl->putref_Voice(This,Voice)
16871 #define ISpeechVoice_get_AudioOutput(This,AudioOutput) (This)->lpVtbl->get_AudioOutput(This,AudioOutput)
16872 #define ISpeechVoice_putref_AudioOutput(This,AudioOutput) (This)->lpVtbl->putref_AudioOutput(This,AudioOutput)
16873 #define ISpeechVoice_get_AudioOutputStream(This,AudioOutputStream) (This)->lpVtbl->get_AudioOutputStream(This,AudioOutputStream)
16874 #define ISpeechVoice_putref_AudioOutputStream(This,AudioOutputStream) (This)->lpVtbl->putref_AudioOutputStream(This,AudioOutputStream)
16875 #define ISpeechVoice_get_Rate(This,Rate) (This)->lpVtbl->get_Rate(This,Rate)
16876 #define ISpeechVoice_put_Rate(This,Rate) (This)->lpVtbl->put_Rate(This,Rate)
16877 #define ISpeechVoice_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
16878 #define ISpeechVoice_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
16879 #define ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->put_AllowAudioOutputFormatChangesOnNextSet(This,Allow)
16880 #define ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->get_AllowAudioOutputFormatChangesOnNextSet(This,Allow)
16881 #define ISpeechVoice_get_EventInterests(This,EventInterestFlags) (This)->lpVtbl->get_EventInterests(This,EventInterestFlags)
16882 #define ISpeechVoice_put_EventInterests(This,EventInterestFlags) (This)->lpVtbl->put_EventInterests(This,EventInterestFlags)
16883 #define ISpeechVoice_put_Priority(This,Priority) (This)->lpVtbl->put_Priority(This,Priority)
16884 #define ISpeechVoice_get_Priority(This,Priority) (This)->lpVtbl->get_Priority(This,Priority)
16885 #define ISpeechVoice_put_AlertBoundary(This,Boundary) (This)->lpVtbl->put_AlertBoundary(This,Boundary)
16886 #define ISpeechVoice_get_AlertBoundary(This,Boundary) (This)->lpVtbl->get_AlertBoundary(This,Boundary)
16887 #define ISpeechVoice_put_SynchronousSpeakTimeout(This,msTimeout) (This)->lpVtbl->put_SynchronousSpeakTimeout(This,msTimeout)
16888 #define ISpeechVoice_get_SynchronousSpeakTimeout(This,msTimeout) (This)->lpVtbl->get_SynchronousSpeakTimeout(This,msTimeout)
16889 #define ISpeechVoice_Speak(This,Text,Flags,StreamNumber) (This)->lpVtbl->Speak(This,Text,Flags,StreamNumber)
16890 #define ISpeechVoice_SpeakStream(This,Stream,Flags,StreamNumber) (This)->lpVtbl->SpeakStream(This,Stream,Flags,StreamNumber)
16891 #define ISpeechVoice_Pause(This) (This)->lpVtbl->Pause(This)
16892 #define ISpeechVoice_Resume(This) (This)->lpVtbl->Resume(This)
16893 #define ISpeechVoice_Skip(This,Type,NumItems,NumSkipped) (This)->lpVtbl->Skip(This,Type,NumItems,NumSkipped)
16894 #define ISpeechVoice_GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
16895 #define ISpeechVoice_GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
16896 #define ISpeechVoice_WaitUntilDone(This,msTimeout,Done) (This)->lpVtbl->WaitUntilDone(This,msTimeout,Done)
16897 #define ISpeechVoice_SpeakCompleteEvent(This,Handle) (This)->lpVtbl->SpeakCompleteEvent(This,Handle)
16898 #define ISpeechVoice_IsUISupported(This,TypeOfUI,ExtraData,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported)
16899 #define ISpeechVoice_DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData) (This)->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData)
16900 #else
16901 /*** IUnknown methods ***/
16902 static FORCEINLINE HRESULT ISpeechVoice_QueryInterface(ISpeechVoice* This,REFIID riid,void **ppvObject) {
16903     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16904 }
16905 static FORCEINLINE ULONG ISpeechVoice_AddRef(ISpeechVoice* This) {
16906     return This->lpVtbl->AddRef(This);
16907 }
16908 static FORCEINLINE ULONG ISpeechVoice_Release(ISpeechVoice* This) {
16909     return This->lpVtbl->Release(This);
16910 }
16911 /*** IDispatch methods ***/
16912 static FORCEINLINE HRESULT ISpeechVoice_GetTypeInfoCount(ISpeechVoice* This,UINT *pctinfo) {
16913     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16914 }
16915 static FORCEINLINE HRESULT ISpeechVoice_GetTypeInfo(ISpeechVoice* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16916     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16917 }
16918 static FORCEINLINE HRESULT ISpeechVoice_GetIDsOfNames(ISpeechVoice* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16919     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16920 }
16921 static FORCEINLINE HRESULT ISpeechVoice_Invoke(ISpeechVoice* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16922     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16923 }
16924 /*** ISpeechVoice methods ***/
16925 static FORCEINLINE HRESULT ISpeechVoice_get_Status(ISpeechVoice* This,ISpeechVoiceStatus **Status) {
16926     return This->lpVtbl->get_Status(This,Status);
16927 }
16928 static FORCEINLINE HRESULT ISpeechVoice_get_Voice(ISpeechVoice* This,ISpeechObjectToken **Voice) {
16929     return This->lpVtbl->get_Voice(This,Voice);
16930 }
16931 static FORCEINLINE HRESULT ISpeechVoice_putref_Voice(ISpeechVoice* This,ISpeechObjectToken *Voice) {
16932     return This->lpVtbl->putref_Voice(This,Voice);
16933 }
16934 static FORCEINLINE HRESULT ISpeechVoice_get_AudioOutput(ISpeechVoice* This,ISpeechObjectToken **AudioOutput) {
16935     return This->lpVtbl->get_AudioOutput(This,AudioOutput);
16936 }
16937 static FORCEINLINE HRESULT ISpeechVoice_putref_AudioOutput(ISpeechVoice* This,ISpeechObjectToken *AudioOutput) {
16938     return This->lpVtbl->putref_AudioOutput(This,AudioOutput);
16939 }
16940 static FORCEINLINE HRESULT ISpeechVoice_get_AudioOutputStream(ISpeechVoice* This,ISpeechBaseStream **AudioOutputStream) {
16941     return This->lpVtbl->get_AudioOutputStream(This,AudioOutputStream);
16942 }
16943 static FORCEINLINE HRESULT ISpeechVoice_putref_AudioOutputStream(ISpeechVoice* This,ISpeechBaseStream *AudioOutputStream) {
16944     return This->lpVtbl->putref_AudioOutputStream(This,AudioOutputStream);
16945 }
16946 static FORCEINLINE HRESULT ISpeechVoice_get_Rate(ISpeechVoice* This,LONG *Rate) {
16947     return This->lpVtbl->get_Rate(This,Rate);
16948 }
16949 static FORCEINLINE HRESULT ISpeechVoice_put_Rate(ISpeechVoice* This,LONG Rate) {
16950     return This->lpVtbl->put_Rate(This,Rate);
16951 }
16952 static FORCEINLINE HRESULT ISpeechVoice_get_Volume(ISpeechVoice* This,LONG *Volume) {
16953     return This->lpVtbl->get_Volume(This,Volume);
16954 }
16955 static FORCEINLINE HRESULT ISpeechVoice_put_Volume(ISpeechVoice* This,LONG Volume) {
16956     return This->lpVtbl->put_Volume(This,Volume);
16957 }
16958 static FORCEINLINE HRESULT ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet(ISpeechVoice* This,VARIANT_BOOL Allow) {
16959     return This->lpVtbl->put_AllowAudioOutputFormatChangesOnNextSet(This,Allow);
16960 }
16961 static FORCEINLINE HRESULT ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet(ISpeechVoice* This,VARIANT_BOOL *Allow) {
16962     return This->lpVtbl->get_AllowAudioOutputFormatChangesOnNextSet(This,Allow);
16963 }
16964 static FORCEINLINE HRESULT ISpeechVoice_get_EventInterests(ISpeechVoice* This,SpeechVoiceEvents *EventInterestFlags) {
16965     return This->lpVtbl->get_EventInterests(This,EventInterestFlags);
16966 }
16967 static FORCEINLINE HRESULT ISpeechVoice_put_EventInterests(ISpeechVoice* This,SpeechVoiceEvents EventInterestFlags) {
16968     return This->lpVtbl->put_EventInterests(This,EventInterestFlags);
16969 }
16970 static FORCEINLINE HRESULT ISpeechVoice_put_Priority(ISpeechVoice* This,SpeechVoicePriority Priority) {
16971     return This->lpVtbl->put_Priority(This,Priority);
16972 }
16973 static FORCEINLINE HRESULT ISpeechVoice_get_Priority(ISpeechVoice* This,SpeechVoicePriority *Priority) {
16974     return This->lpVtbl->get_Priority(This,Priority);
16975 }
16976 static FORCEINLINE HRESULT ISpeechVoice_put_AlertBoundary(ISpeechVoice* This,SpeechVoiceEvents Boundary) {
16977     return This->lpVtbl->put_AlertBoundary(This,Boundary);
16978 }
16979 static FORCEINLINE HRESULT ISpeechVoice_get_AlertBoundary(ISpeechVoice* This,SpeechVoiceEvents *Boundary) {
16980     return This->lpVtbl->get_AlertBoundary(This,Boundary);
16981 }
16982 static FORCEINLINE HRESULT ISpeechVoice_put_SynchronousSpeakTimeout(ISpeechVoice* This,LONG msTimeout) {
16983     return This->lpVtbl->put_SynchronousSpeakTimeout(This,msTimeout);
16984 }
16985 static FORCEINLINE HRESULT ISpeechVoice_get_SynchronousSpeakTimeout(ISpeechVoice* This,LONG *msTimeout) {
16986     return This->lpVtbl->get_SynchronousSpeakTimeout(This,msTimeout);
16987 }
16988 static FORCEINLINE HRESULT ISpeechVoice_Speak(ISpeechVoice* This,BSTR Text,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
16989     return This->lpVtbl->Speak(This,Text,Flags,StreamNumber);
16990 }
16991 static FORCEINLINE HRESULT ISpeechVoice_SpeakStream(ISpeechVoice* This,ISpeechBaseStream *Stream,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
16992     return This->lpVtbl->SpeakStream(This,Stream,Flags,StreamNumber);
16993 }
16994 static FORCEINLINE HRESULT ISpeechVoice_Pause(ISpeechVoice* This) {
16995     return This->lpVtbl->Pause(This);
16996 }
16997 static FORCEINLINE HRESULT ISpeechVoice_Resume(ISpeechVoice* This) {
16998     return This->lpVtbl->Resume(This);
16999 }
17000 static FORCEINLINE HRESULT ISpeechVoice_Skip(ISpeechVoice* This,const BSTR Type,LONG NumItems,LONG *NumSkipped) {
17001     return This->lpVtbl->Skip(This,Type,NumItems,NumSkipped);
17002 }
17003 static FORCEINLINE HRESULT ISpeechVoice_GetVoices(ISpeechVoice* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
17004     return This->lpVtbl->GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
17005 }
17006 static FORCEINLINE HRESULT ISpeechVoice_GetAudioOutputs(ISpeechVoice* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
17007     return This->lpVtbl->GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
17008 }
17009 static FORCEINLINE HRESULT ISpeechVoice_WaitUntilDone(ISpeechVoice* This,LONG msTimeout,VARIANT_BOOL *Done) {
17010     return This->lpVtbl->WaitUntilDone(This,msTimeout,Done);
17011 }
17012 static FORCEINLINE HRESULT ISpeechVoice_SpeakCompleteEvent(ISpeechVoice* This,LONG *Handle) {
17013     return This->lpVtbl->SpeakCompleteEvent(This,Handle);
17014 }
17015 static FORCEINLINE HRESULT ISpeechVoice_IsUISupported(ISpeechVoice* This,const BSTR TypeOfUI,const VARIANT *ExtraData,VARIANT_BOOL *Supported) {
17016     return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported);
17017 }
17018 static FORCEINLINE HRESULT ISpeechVoice_DisplayUI(ISpeechVoice* This,LONG hWndParent,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData) {
17019     return This->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData);
17020 }
17021 #endif
17022 #endif
17023 
17024 #endif
17025 
17026 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_Status_Proxy(
17027     ISpeechVoice* This,
17028     ISpeechVoiceStatus **Status);
17029 void __RPC_STUB ISpeechVoice_get_Status_Stub(
17030     IRpcStubBuffer* This,
17031     IRpcChannelBuffer* pRpcChannelBuffer,
17032     PRPC_MESSAGE pRpcMessage,
17033     DWORD* pdwStubPhase);
17034 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_Voice_Proxy(
17035     ISpeechVoice* This,
17036     ISpeechObjectToken **Voice);
17037 void __RPC_STUB ISpeechVoice_get_Voice_Stub(
17038     IRpcStubBuffer* This,
17039     IRpcChannelBuffer* pRpcChannelBuffer,
17040     PRPC_MESSAGE pRpcMessage,
17041     DWORD* pdwStubPhase);
17042 HRESULT STDMETHODCALLTYPE ISpeechVoice_putref_Voice_Proxy(
17043     ISpeechVoice* This,
17044     ISpeechObjectToken *Voice);
17045 void __RPC_STUB ISpeechVoice_putref_Voice_Stub(
17046     IRpcStubBuffer* This,
17047     IRpcChannelBuffer* pRpcChannelBuffer,
17048     PRPC_MESSAGE pRpcMessage,
17049     DWORD* pdwStubPhase);
17050 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_AudioOutput_Proxy(
17051     ISpeechVoice* This,
17052     ISpeechObjectToken **AudioOutput);
17053 void __RPC_STUB ISpeechVoice_get_AudioOutput_Stub(
17054     IRpcStubBuffer* This,
17055     IRpcChannelBuffer* pRpcChannelBuffer,
17056     PRPC_MESSAGE pRpcMessage,
17057     DWORD* pdwStubPhase);
17058 HRESULT STDMETHODCALLTYPE ISpeechVoice_putref_AudioOutput_Proxy(
17059     ISpeechVoice* This,
17060     ISpeechObjectToken *AudioOutput);
17061 void __RPC_STUB ISpeechVoice_putref_AudioOutput_Stub(
17062     IRpcStubBuffer* This,
17063     IRpcChannelBuffer* pRpcChannelBuffer,
17064     PRPC_MESSAGE pRpcMessage,
17065     DWORD* pdwStubPhase);
17066 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_AudioOutputStream_Proxy(
17067     ISpeechVoice* This,
17068     ISpeechBaseStream **AudioOutputStream);
17069 void __RPC_STUB ISpeechVoice_get_AudioOutputStream_Stub(
17070     IRpcStubBuffer* This,
17071     IRpcChannelBuffer* pRpcChannelBuffer,
17072     PRPC_MESSAGE pRpcMessage,
17073     DWORD* pdwStubPhase);
17074 HRESULT STDMETHODCALLTYPE ISpeechVoice_putref_AudioOutputStream_Proxy(
17075     ISpeechVoice* This,
17076     ISpeechBaseStream *AudioOutputStream);
17077 void __RPC_STUB ISpeechVoice_putref_AudioOutputStream_Stub(
17078     IRpcStubBuffer* This,
17079     IRpcChannelBuffer* pRpcChannelBuffer,
17080     PRPC_MESSAGE pRpcMessage,
17081     DWORD* pdwStubPhase);
17082 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_Rate_Proxy(
17083     ISpeechVoice* This,
17084     LONG *Rate);
17085 void __RPC_STUB ISpeechVoice_get_Rate_Stub(
17086     IRpcStubBuffer* This,
17087     IRpcChannelBuffer* pRpcChannelBuffer,
17088     PRPC_MESSAGE pRpcMessage,
17089     DWORD* pdwStubPhase);
17090 HRESULT STDMETHODCALLTYPE ISpeechVoice_put_Rate_Proxy(
17091     ISpeechVoice* This,
17092     LONG Rate);
17093 void __RPC_STUB ISpeechVoice_put_Rate_Stub(
17094     IRpcStubBuffer* This,
17095     IRpcChannelBuffer* pRpcChannelBuffer,
17096     PRPC_MESSAGE pRpcMessage,
17097     DWORD* pdwStubPhase);
17098 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_Volume_Proxy(
17099     ISpeechVoice* This,
17100     LONG *Volume);
17101 void __RPC_STUB ISpeechVoice_get_Volume_Stub(
17102     IRpcStubBuffer* This,
17103     IRpcChannelBuffer* pRpcChannelBuffer,
17104     PRPC_MESSAGE pRpcMessage,
17105     DWORD* pdwStubPhase);
17106 HRESULT STDMETHODCALLTYPE ISpeechVoice_put_Volume_Proxy(
17107     ISpeechVoice* This,
17108     LONG Volume);
17109 void __RPC_STUB ISpeechVoice_put_Volume_Stub(
17110     IRpcStubBuffer* This,
17111     IRpcChannelBuffer* pRpcChannelBuffer,
17112     PRPC_MESSAGE pRpcMessage,
17113     DWORD* pdwStubPhase);
17114 HRESULT STDMETHODCALLTYPE ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet_Proxy(
17115     ISpeechVoice* This,
17116     VARIANT_BOOL Allow);
17117 void __RPC_STUB ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet_Stub(
17118     IRpcStubBuffer* This,
17119     IRpcChannelBuffer* pRpcChannelBuffer,
17120     PRPC_MESSAGE pRpcMessage,
17121     DWORD* pdwStubPhase);
17122 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet_Proxy(
17123     ISpeechVoice* This,
17124     VARIANT_BOOL *Allow);
17125 void __RPC_STUB ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet_Stub(
17126     IRpcStubBuffer* This,
17127     IRpcChannelBuffer* pRpcChannelBuffer,
17128     PRPC_MESSAGE pRpcMessage,
17129     DWORD* pdwStubPhase);
17130 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_EventInterests_Proxy(
17131     ISpeechVoice* This,
17132     SpeechVoiceEvents *EventInterestFlags);
17133 void __RPC_STUB ISpeechVoice_get_EventInterests_Stub(
17134     IRpcStubBuffer* This,
17135     IRpcChannelBuffer* pRpcChannelBuffer,
17136     PRPC_MESSAGE pRpcMessage,
17137     DWORD* pdwStubPhase);
17138 HRESULT STDMETHODCALLTYPE ISpeechVoice_put_EventInterests_Proxy(
17139     ISpeechVoice* This,
17140     SpeechVoiceEvents EventInterestFlags);
17141 void __RPC_STUB ISpeechVoice_put_EventInterests_Stub(
17142     IRpcStubBuffer* This,
17143     IRpcChannelBuffer* pRpcChannelBuffer,
17144     PRPC_MESSAGE pRpcMessage,
17145     DWORD* pdwStubPhase);
17146 HRESULT STDMETHODCALLTYPE ISpeechVoice_put_Priority_Proxy(
17147     ISpeechVoice* This,
17148     SpeechVoicePriority Priority);
17149 void __RPC_STUB ISpeechVoice_put_Priority_Stub(
17150     IRpcStubBuffer* This,
17151     IRpcChannelBuffer* pRpcChannelBuffer,
17152     PRPC_MESSAGE pRpcMessage,
17153     DWORD* pdwStubPhase);
17154 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_Priority_Proxy(
17155     ISpeechVoice* This,
17156     SpeechVoicePriority *Priority);
17157 void __RPC_STUB ISpeechVoice_get_Priority_Stub(
17158     IRpcStubBuffer* This,
17159     IRpcChannelBuffer* pRpcChannelBuffer,
17160     PRPC_MESSAGE pRpcMessage,
17161     DWORD* pdwStubPhase);
17162 HRESULT STDMETHODCALLTYPE ISpeechVoice_put_AlertBoundary_Proxy(
17163     ISpeechVoice* This,
17164     SpeechVoiceEvents Boundary);
17165 void __RPC_STUB ISpeechVoice_put_AlertBoundary_Stub(
17166     IRpcStubBuffer* This,
17167     IRpcChannelBuffer* pRpcChannelBuffer,
17168     PRPC_MESSAGE pRpcMessage,
17169     DWORD* pdwStubPhase);
17170 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_AlertBoundary_Proxy(
17171     ISpeechVoice* This,
17172     SpeechVoiceEvents *Boundary);
17173 void __RPC_STUB ISpeechVoice_get_AlertBoundary_Stub(
17174     IRpcStubBuffer* This,
17175     IRpcChannelBuffer* pRpcChannelBuffer,
17176     PRPC_MESSAGE pRpcMessage,
17177     DWORD* pdwStubPhase);
17178 HRESULT STDMETHODCALLTYPE ISpeechVoice_put_SynchronousSpeakTimeout_Proxy(
17179     ISpeechVoice* This,
17180     LONG msTimeout);
17181 void __RPC_STUB ISpeechVoice_put_SynchronousSpeakTimeout_Stub(
17182     IRpcStubBuffer* This,
17183     IRpcChannelBuffer* pRpcChannelBuffer,
17184     PRPC_MESSAGE pRpcMessage,
17185     DWORD* pdwStubPhase);
17186 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_SynchronousSpeakTimeout_Proxy(
17187     ISpeechVoice* This,
17188     LONG *msTimeout);
17189 void __RPC_STUB ISpeechVoice_get_SynchronousSpeakTimeout_Stub(
17190     IRpcStubBuffer* This,
17191     IRpcChannelBuffer* pRpcChannelBuffer,
17192     PRPC_MESSAGE pRpcMessage,
17193     DWORD* pdwStubPhase);
17194 HRESULT STDMETHODCALLTYPE ISpeechVoice_Speak_Proxy(
17195     ISpeechVoice* This,
17196     BSTR Text,
17197     SpeechVoiceSpeakFlags Flags,
17198     LONG *StreamNumber);
17199 void __RPC_STUB ISpeechVoice_Speak_Stub(
17200     IRpcStubBuffer* This,
17201     IRpcChannelBuffer* pRpcChannelBuffer,
17202     PRPC_MESSAGE pRpcMessage,
17203     DWORD* pdwStubPhase);
17204 HRESULT STDMETHODCALLTYPE ISpeechVoice_SpeakStream_Proxy(
17205     ISpeechVoice* This,
17206     ISpeechBaseStream *Stream,
17207     SpeechVoiceSpeakFlags Flags,
17208     LONG *StreamNumber);
17209 void __RPC_STUB ISpeechVoice_SpeakStream_Stub(
17210     IRpcStubBuffer* This,
17211     IRpcChannelBuffer* pRpcChannelBuffer,
17212     PRPC_MESSAGE pRpcMessage,
17213     DWORD* pdwStubPhase);
17214 HRESULT STDMETHODCALLTYPE ISpeechVoice_Pause_Proxy(
17215     ISpeechVoice* This);
17216 void __RPC_STUB ISpeechVoice_Pause_Stub(
17217     IRpcStubBuffer* This,
17218     IRpcChannelBuffer* pRpcChannelBuffer,
17219     PRPC_MESSAGE pRpcMessage,
17220     DWORD* pdwStubPhase);
17221 HRESULT STDMETHODCALLTYPE ISpeechVoice_Resume_Proxy(
17222     ISpeechVoice* This);
17223 void __RPC_STUB ISpeechVoice_Resume_Stub(
17224     IRpcStubBuffer* This,
17225     IRpcChannelBuffer* pRpcChannelBuffer,
17226     PRPC_MESSAGE pRpcMessage,
17227     DWORD* pdwStubPhase);
17228 HRESULT STDMETHODCALLTYPE ISpeechVoice_Skip_Proxy(
17229     ISpeechVoice* This,
17230     const BSTR Type,
17231     LONG NumItems,
17232     LONG *NumSkipped);
17233 void __RPC_STUB ISpeechVoice_Skip_Stub(
17234     IRpcStubBuffer* This,
17235     IRpcChannelBuffer* pRpcChannelBuffer,
17236     PRPC_MESSAGE pRpcMessage,
17237     DWORD* pdwStubPhase);
17238 HRESULT STDMETHODCALLTYPE ISpeechVoice_GetVoices_Proxy(
17239     ISpeechVoice* This,
17240     BSTR RequiredAttributes,
17241     BSTR OptionalAttributes,
17242     ISpeechObjectTokens **ObjectTokens);
17243 void __RPC_STUB ISpeechVoice_GetVoices_Stub(
17244     IRpcStubBuffer* This,
17245     IRpcChannelBuffer* pRpcChannelBuffer,
17246     PRPC_MESSAGE pRpcMessage,
17247     DWORD* pdwStubPhase);
17248 HRESULT STDMETHODCALLTYPE ISpeechVoice_GetAudioOutputs_Proxy(
17249     ISpeechVoice* This,
17250     BSTR RequiredAttributes,
17251     BSTR OptionalAttributes,
17252     ISpeechObjectTokens **ObjectTokens);
17253 void __RPC_STUB ISpeechVoice_GetAudioOutputs_Stub(
17254     IRpcStubBuffer* This,
17255     IRpcChannelBuffer* pRpcChannelBuffer,
17256     PRPC_MESSAGE pRpcMessage,
17257     DWORD* pdwStubPhase);
17258 HRESULT STDMETHODCALLTYPE ISpeechVoice_WaitUntilDone_Proxy(
17259     ISpeechVoice* This,
17260     LONG msTimeout,
17261     VARIANT_BOOL *Done);
17262 void __RPC_STUB ISpeechVoice_WaitUntilDone_Stub(
17263     IRpcStubBuffer* This,
17264     IRpcChannelBuffer* pRpcChannelBuffer,
17265     PRPC_MESSAGE pRpcMessage,
17266     DWORD* pdwStubPhase);
17267 HRESULT STDMETHODCALLTYPE ISpeechVoice_SpeakCompleteEvent_Proxy(
17268     ISpeechVoice* This,
17269     LONG *Handle);
17270 void __RPC_STUB ISpeechVoice_SpeakCompleteEvent_Stub(
17271     IRpcStubBuffer* This,
17272     IRpcChannelBuffer* pRpcChannelBuffer,
17273     PRPC_MESSAGE pRpcMessage,
17274     DWORD* pdwStubPhase);
17275 HRESULT STDMETHODCALLTYPE ISpeechVoice_IsUISupported_Proxy(
17276     ISpeechVoice* This,
17277     const BSTR TypeOfUI,
17278     const VARIANT *ExtraData,
17279     VARIANT_BOOL *Supported);
17280 void __RPC_STUB ISpeechVoice_IsUISupported_Stub(
17281     IRpcStubBuffer* This,
17282     IRpcChannelBuffer* pRpcChannelBuffer,
17283     PRPC_MESSAGE pRpcMessage,
17284     DWORD* pdwStubPhase);
17285 HRESULT STDMETHODCALLTYPE ISpeechVoice_DisplayUI_Proxy(
17286     ISpeechVoice* This,
17287     LONG hWndParent,
17288     BSTR Title,
17289     const BSTR TypeOfUI,
17290     const VARIANT *ExtraData);
17291 void __RPC_STUB ISpeechVoice_DisplayUI_Stub(
17292     IRpcStubBuffer* This,
17293     IRpcChannelBuffer* pRpcChannelBuffer,
17294     PRPC_MESSAGE pRpcMessage,
17295     DWORD* pdwStubPhase);
17296 
17297 #endif  /* __ISpeechVoice_INTERFACE_DEFINED__ */
17298 
17299 /*****************************************************************************
17300  * ISpeechVoiceStatus interface
17301  */
17302 #ifndef __ISpeechVoiceStatus_INTERFACE_DEFINED__
17303 #define __ISpeechVoiceStatus_INTERFACE_DEFINED__
17304 
17305 DEFINE_GUID(IID_ISpeechVoiceStatus, 0x8be47b07, 0x57f6, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96);
17306 #if defined(__cplusplus) && !defined(CINTERFACE)
17307 MIDL_INTERFACE("8be47b07-57f6-11d2-9eee-00c04f797396")
17308 ISpeechVoiceStatus : public IDispatch
17309 {
17310     virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamNumber(
17311         LONG *StreamNumber) = 0;
17312 
17313     virtual HRESULT STDMETHODCALLTYPE get_LastStreamNumberQueued(
17314         LONG *StreamNumber) = 0;
17315 
17316     virtual HRESULT STDMETHODCALLTYPE get_LastHResult(
17317         LONG *HResult) = 0;
17318 
17319     virtual HRESULT STDMETHODCALLTYPE get_RunningState(
17320         SpeechRunState *State) = 0;
17321 
17322     virtual HRESULT STDMETHODCALLTYPE get_InputWordPosition(
17323         LONG *Position) = 0;
17324 
17325     virtual HRESULT STDMETHODCALLTYPE get_InputWordLength(
17326         LONG *Length) = 0;
17327 
17328     virtual HRESULT STDMETHODCALLTYPE get_InputSentencePosition(
17329         LONG *Position) = 0;
17330 
17331     virtual HRESULT STDMETHODCALLTYPE get_InputSentenceLength(
17332         LONG *Length) = 0;
17333 
17334     virtual HRESULT STDMETHODCALLTYPE get_LastBookmark(
17335         BSTR *Bookmark) = 0;
17336 
17337     virtual HRESULT STDMETHODCALLTYPE get_LastBookmarkId(
17338         LONG *BookmarkId) = 0;
17339 
17340     virtual HRESULT STDMETHODCALLTYPE get_PhonemeId(
17341         short *PhoneId) = 0;
17342 
17343     virtual HRESULT STDMETHODCALLTYPE get_VisemeId(
17344         short *VisemeId) = 0;
17345 
17346 };
17347 #ifdef __CRT_UUID_DECL
17348 __CRT_UUID_DECL(ISpeechVoiceStatus, 0x8be47b07, 0x57f6, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96)
17349 #endif
17350 #else
17351 typedef struct ISpeechVoiceStatusVtbl {
17352     BEGIN_INTERFACE
17353 
17354     /*** IUnknown methods ***/
17355     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17356         ISpeechVoiceStatus* This,
17357         REFIID riid,
17358         void **ppvObject);
17359 
17360     ULONG (STDMETHODCALLTYPE *AddRef)(
17361         ISpeechVoiceStatus* This);
17362 
17363     ULONG (STDMETHODCALLTYPE *Release)(
17364         ISpeechVoiceStatus* This);
17365 
17366     /*** IDispatch methods ***/
17367     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17368         ISpeechVoiceStatus* This,
17369         UINT *pctinfo);
17370 
17371     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17372         ISpeechVoiceStatus* This,
17373         UINT iTInfo,
17374         LCID lcid,
17375         ITypeInfo **ppTInfo);
17376 
17377     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17378         ISpeechVoiceStatus* This,
17379         REFIID riid,
17380         LPOLESTR *rgszNames,
17381         UINT cNames,
17382         LCID lcid,
17383         DISPID *rgDispId);
17384 
17385     HRESULT (STDMETHODCALLTYPE *Invoke)(
17386         ISpeechVoiceStatus* This,
17387         DISPID dispIdMember,
17388         REFIID riid,
17389         LCID lcid,
17390         WORD wFlags,
17391         DISPPARAMS *pDispParams,
17392         VARIANT *pVarResult,
17393         EXCEPINFO *pExcepInfo,
17394         UINT *puArgErr);
17395 
17396     /*** ISpeechVoiceStatus methods ***/
17397     HRESULT (STDMETHODCALLTYPE *get_CurrentStreamNumber)(
17398         ISpeechVoiceStatus* This,
17399         LONG *StreamNumber);
17400 
17401     HRESULT (STDMETHODCALLTYPE *get_LastStreamNumberQueued)(
17402         ISpeechVoiceStatus* This,
17403         LONG *StreamNumber);
17404 
17405     HRESULT (STDMETHODCALLTYPE *get_LastHResult)(
17406         ISpeechVoiceStatus* This,
17407         LONG *HResult);
17408 
17409     HRESULT (STDMETHODCALLTYPE *get_RunningState)(
17410         ISpeechVoiceStatus* This,
17411         SpeechRunState *State);
17412 
17413     HRESULT (STDMETHODCALLTYPE *get_InputWordPosition)(
17414         ISpeechVoiceStatus* This,
17415         LONG *Position);
17416 
17417     HRESULT (STDMETHODCALLTYPE *get_InputWordLength)(
17418         ISpeechVoiceStatus* This,
17419         LONG *Length);
17420 
17421     HRESULT (STDMETHODCALLTYPE *get_InputSentencePosition)(
17422         ISpeechVoiceStatus* This,
17423         LONG *Position);
17424 
17425     HRESULT (STDMETHODCALLTYPE *get_InputSentenceLength)(
17426         ISpeechVoiceStatus* This,
17427         LONG *Length);
17428 
17429     HRESULT (STDMETHODCALLTYPE *get_LastBookmark)(
17430         ISpeechVoiceStatus* This,
17431         BSTR *Bookmark);
17432 
17433     HRESULT (STDMETHODCALLTYPE *get_LastBookmarkId)(
17434         ISpeechVoiceStatus* This,
17435         LONG *BookmarkId);
17436 
17437     HRESULT (STDMETHODCALLTYPE *get_PhonemeId)(
17438         ISpeechVoiceStatus* This,
17439         short *PhoneId);
17440 
17441     HRESULT (STDMETHODCALLTYPE *get_VisemeId)(
17442         ISpeechVoiceStatus* This,
17443         short *VisemeId);
17444 
17445     END_INTERFACE
17446 } ISpeechVoiceStatusVtbl;
17447 interface ISpeechVoiceStatus {
17448     CONST_VTBL ISpeechVoiceStatusVtbl* lpVtbl;
17449 };
17450 
17451 #ifdef COBJMACROS
17452 #ifndef WIDL_C_INLINE_WRAPPERS
17453 /*** IUnknown methods ***/
17454 #define ISpeechVoiceStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17455 #define ISpeechVoiceStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
17456 #define ISpeechVoiceStatus_Release(This) (This)->lpVtbl->Release(This)
17457 /*** IDispatch methods ***/
17458 #define ISpeechVoiceStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17459 #define ISpeechVoiceStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17460 #define ISpeechVoiceStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17461 #define ISpeechVoiceStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17462 /*** ISpeechVoiceStatus methods ***/
17463 #define ISpeechVoiceStatus_get_CurrentStreamNumber(This,StreamNumber) (This)->lpVtbl->get_CurrentStreamNumber(This,StreamNumber)
17464 #define ISpeechVoiceStatus_get_LastStreamNumberQueued(This,StreamNumber) (This)->lpVtbl->get_LastStreamNumberQueued(This,StreamNumber)
17465 #define ISpeechVoiceStatus_get_LastHResult(This,HResult) (This)->lpVtbl->get_LastHResult(This,HResult)
17466 #define ISpeechVoiceStatus_get_RunningState(This,State) (This)->lpVtbl->get_RunningState(This,State)
17467 #define ISpeechVoiceStatus_get_InputWordPosition(This,Position) (This)->lpVtbl->get_InputWordPosition(This,Position)
17468 #define ISpeechVoiceStatus_get_InputWordLength(This,Length) (This)->lpVtbl->get_InputWordLength(This,Length)
17469 #define ISpeechVoiceStatus_get_InputSentencePosition(This,Position) (This)->lpVtbl->get_InputSentencePosition(This,Position)
17470 #define ISpeechVoiceStatus_get_InputSentenceLength(This,Length) (This)->lpVtbl->get_InputSentenceLength(This,Length)
17471 #define ISpeechVoiceStatus_get_LastBookmark(This,Bookmark) (This)->lpVtbl->get_LastBookmark(This,Bookmark)
17472 #define ISpeechVoiceStatus_get_LastBookmarkId(This,BookmarkId) (This)->lpVtbl->get_LastBookmarkId(This,BookmarkId)
17473 #define ISpeechVoiceStatus_get_PhonemeId(This,PhoneId) (This)->lpVtbl->get_PhonemeId(This,PhoneId)
17474 #define ISpeechVoiceStatus_get_VisemeId(This,VisemeId) (This)->lpVtbl->get_VisemeId(This,VisemeId)
17475 #else
17476 /*** IUnknown methods ***/
17477 static FORCEINLINE HRESULT ISpeechVoiceStatus_QueryInterface(ISpeechVoiceStatus* This,REFIID riid,void **ppvObject) {
17478     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17479 }
17480 static FORCEINLINE ULONG ISpeechVoiceStatus_AddRef(ISpeechVoiceStatus* This) {
17481     return This->lpVtbl->AddRef(This);
17482 }
17483 static FORCEINLINE ULONG ISpeechVoiceStatus_Release(ISpeechVoiceStatus* This) {
17484     return This->lpVtbl->Release(This);
17485 }
17486 /*** IDispatch methods ***/
17487 static FORCEINLINE HRESULT ISpeechVoiceStatus_GetTypeInfoCount(ISpeechVoiceStatus* This,UINT *pctinfo) {
17488     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17489 }
17490 static FORCEINLINE HRESULT ISpeechVoiceStatus_GetTypeInfo(ISpeechVoiceStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17491     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17492 }
17493 static FORCEINLINE HRESULT ISpeechVoiceStatus_GetIDsOfNames(ISpeechVoiceStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17494     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17495 }
17496 static FORCEINLINE HRESULT ISpeechVoiceStatus_Invoke(ISpeechVoiceStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17497     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17498 }
17499 /*** ISpeechVoiceStatus methods ***/
17500 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_CurrentStreamNumber(ISpeechVoiceStatus* This,LONG *StreamNumber) {
17501     return This->lpVtbl->get_CurrentStreamNumber(This,StreamNumber);
17502 }
17503 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_LastStreamNumberQueued(ISpeechVoiceStatus* This,LONG *StreamNumber) {
17504     return This->lpVtbl->get_LastStreamNumberQueued(This,StreamNumber);
17505 }
17506 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_LastHResult(ISpeechVoiceStatus* This,LONG *HResult) {
17507     return This->lpVtbl->get_LastHResult(This,HResult);
17508 }
17509 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_RunningState(ISpeechVoiceStatus* This,SpeechRunState *State) {
17510     return This->lpVtbl->get_RunningState(This,State);
17511 }
17512 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_InputWordPosition(ISpeechVoiceStatus* This,LONG *Position) {
17513     return This->lpVtbl->get_InputWordPosition(This,Position);
17514 }
17515 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_InputWordLength(ISpeechVoiceStatus* This,LONG *Length) {
17516     return This->lpVtbl->get_InputWordLength(This,Length);
17517 }
17518 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_InputSentencePosition(ISpeechVoiceStatus* This,LONG *Position) {
17519     return This->lpVtbl->get_InputSentencePosition(This,Position);
17520 }
17521 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_InputSentenceLength(ISpeechVoiceStatus* This,LONG *Length) {
17522     return This->lpVtbl->get_InputSentenceLength(This,Length);
17523 }
17524 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_LastBookmark(ISpeechVoiceStatus* This,BSTR *Bookmark) {
17525     return This->lpVtbl->get_LastBookmark(This,Bookmark);
17526 }
17527 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_LastBookmarkId(ISpeechVoiceStatus* This,LONG *BookmarkId) {
17528     return This->lpVtbl->get_LastBookmarkId(This,BookmarkId);
17529 }
17530 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_PhonemeId(ISpeechVoiceStatus* This,short *PhoneId) {
17531     return This->lpVtbl->get_PhonemeId(This,PhoneId);
17532 }
17533 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_VisemeId(ISpeechVoiceStatus* This,short *VisemeId) {
17534     return This->lpVtbl->get_VisemeId(This,VisemeId);
17535 }
17536 #endif
17537 #endif
17538 
17539 #endif
17540 
17541 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_CurrentStreamNumber_Proxy(
17542     ISpeechVoiceStatus* This,
17543     LONG *StreamNumber);
17544 void __RPC_STUB ISpeechVoiceStatus_get_CurrentStreamNumber_Stub(
17545     IRpcStubBuffer* This,
17546     IRpcChannelBuffer* pRpcChannelBuffer,
17547     PRPC_MESSAGE pRpcMessage,
17548     DWORD* pdwStubPhase);
17549 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_LastStreamNumberQueued_Proxy(
17550     ISpeechVoiceStatus* This,
17551     LONG *StreamNumber);
17552 void __RPC_STUB ISpeechVoiceStatus_get_LastStreamNumberQueued_Stub(
17553     IRpcStubBuffer* This,
17554     IRpcChannelBuffer* pRpcChannelBuffer,
17555     PRPC_MESSAGE pRpcMessage,
17556     DWORD* pdwStubPhase);
17557 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_LastHResult_Proxy(
17558     ISpeechVoiceStatus* This,
17559     LONG *HResult);
17560 void __RPC_STUB ISpeechVoiceStatus_get_LastHResult_Stub(
17561     IRpcStubBuffer* This,
17562     IRpcChannelBuffer* pRpcChannelBuffer,
17563     PRPC_MESSAGE pRpcMessage,
17564     DWORD* pdwStubPhase);
17565 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_RunningState_Proxy(
17566     ISpeechVoiceStatus* This,
17567     SpeechRunState *State);
17568 void __RPC_STUB ISpeechVoiceStatus_get_RunningState_Stub(
17569     IRpcStubBuffer* This,
17570     IRpcChannelBuffer* pRpcChannelBuffer,
17571     PRPC_MESSAGE pRpcMessage,
17572     DWORD* pdwStubPhase);
17573 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_InputWordPosition_Proxy(
17574     ISpeechVoiceStatus* This,
17575     LONG *Position);
17576 void __RPC_STUB ISpeechVoiceStatus_get_InputWordPosition_Stub(
17577     IRpcStubBuffer* This,
17578     IRpcChannelBuffer* pRpcChannelBuffer,
17579     PRPC_MESSAGE pRpcMessage,
17580     DWORD* pdwStubPhase);
17581 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_InputWordLength_Proxy(
17582     ISpeechVoiceStatus* This,
17583     LONG *Length);
17584 void __RPC_STUB ISpeechVoiceStatus_get_InputWordLength_Stub(
17585     IRpcStubBuffer* This,
17586     IRpcChannelBuffer* pRpcChannelBuffer,
17587     PRPC_MESSAGE pRpcMessage,
17588     DWORD* pdwStubPhase);
17589 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_InputSentencePosition_Proxy(
17590     ISpeechVoiceStatus* This,
17591     LONG *Position);
17592 void __RPC_STUB ISpeechVoiceStatus_get_InputSentencePosition_Stub(
17593     IRpcStubBuffer* This,
17594     IRpcChannelBuffer* pRpcChannelBuffer,
17595     PRPC_MESSAGE pRpcMessage,
17596     DWORD* pdwStubPhase);
17597 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_InputSentenceLength_Proxy(
17598     ISpeechVoiceStatus* This,
17599     LONG *Length);
17600 void __RPC_STUB ISpeechVoiceStatus_get_InputSentenceLength_Stub(
17601     IRpcStubBuffer* This,
17602     IRpcChannelBuffer* pRpcChannelBuffer,
17603     PRPC_MESSAGE pRpcMessage,
17604     DWORD* pdwStubPhase);
17605 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_LastBookmark_Proxy(
17606     ISpeechVoiceStatus* This,
17607     BSTR *Bookmark);
17608 void __RPC_STUB ISpeechVoiceStatus_get_LastBookmark_Stub(
17609     IRpcStubBuffer* This,
17610     IRpcChannelBuffer* pRpcChannelBuffer,
17611     PRPC_MESSAGE pRpcMessage,
17612     DWORD* pdwStubPhase);
17613 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_LastBookmarkId_Proxy(
17614     ISpeechVoiceStatus* This,
17615     LONG *BookmarkId);
17616 void __RPC_STUB ISpeechVoiceStatus_get_LastBookmarkId_Stub(
17617     IRpcStubBuffer* This,
17618     IRpcChannelBuffer* pRpcChannelBuffer,
17619     PRPC_MESSAGE pRpcMessage,
17620     DWORD* pdwStubPhase);
17621 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_PhonemeId_Proxy(
17622     ISpeechVoiceStatus* This,
17623     short *PhoneId);
17624 void __RPC_STUB ISpeechVoiceStatus_get_PhonemeId_Stub(
17625     IRpcStubBuffer* This,
17626     IRpcChannelBuffer* pRpcChannelBuffer,
17627     PRPC_MESSAGE pRpcMessage,
17628     DWORD* pdwStubPhase);
17629 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_VisemeId_Proxy(
17630     ISpeechVoiceStatus* This,
17631     short *VisemeId);
17632 void __RPC_STUB ISpeechVoiceStatus_get_VisemeId_Stub(
17633     IRpcStubBuffer* This,
17634     IRpcChannelBuffer* pRpcChannelBuffer,
17635     PRPC_MESSAGE pRpcMessage,
17636     DWORD* pdwStubPhase);
17637 
17638 #endif  /* __ISpeechVoiceStatus_INTERFACE_DEFINED__ */
17639 
17640 typedef enum SpeechVisemeType {
17641     SVP_0 = 0,
17642     SVP_1 = 1,
17643     SVP_2 = 2,
17644     SVP_3 = 3,
17645     SVP_4 = 4,
17646     SVP_5 = 5,
17647     SVP_6 = 6,
17648     SVP_7 = 7,
17649     SVP_8 = 8,
17650     SVP_9 = 9,
17651     SVP_10 = 10,
17652     SVP_11 = 11,
17653     SVP_12 = 12,
17654     SVP_13 = 13,
17655     SVP_14 = 14,
17656     SVP_15 = 15,
17657     SVP_16 = 16,
17658     SVP_17 = 17,
17659     SVP_18 = 18,
17660     SVP_19 = 19,
17661     SVP_20 = 20,
17662     SVP_21 = 21
17663 } SpeechVisemeType;
17664 typedef enum SpeechVisemeFeature {
17665     SVF_None = 0,
17666     SVF_Stressed = SPVFEATURE_STRESSED,
17667     SVF_Emphasis = SPVFEATURE_EMPHASIS
17668 } SpeechVisemeFeature;
17669 typedef enum DISPID_SpeechVoiceEvent {
17670     DISPID_SVEStreamStart = 1,
17671     DISPID_SVEStreamEnd = 2,
17672     DISPID_SVEVoiceChange = 3,
17673     DISPID_SVEBookmark = 4,
17674     DISPID_SVEWord = 5,
17675     DISPID_SVEPhoneme = 6,
17676     DISPID_SVESentenceBoundary = 7,
17677     DISPID_SVEViseme = 8,
17678     DISPID_SVEAudioLevel = 9,
17679     DISPID_SVEEnginePrivate = 10
17680 } DISPID_SpeechVoiceEvent;
17681 typedef enum DISPID_SpeechRecognizer {
17682     DISPID_SRRecognizer = 1,
17683     DISPID_SRAllowAudioInputFormatChangesOnNextSet = 2,
17684     DISPID_SRAudioInput = 3,
17685     DISPID_SRAudioInputStream = 4,
17686     DISPID_SRIsShared = 5,
17687     DISPID_SRState = 6,
17688     DISPID_SRStatus = 7,
17689     DISPID_SRProfile = 8,
17690     DISPID_SREmulateRecognition = 9,
17691     DISPID_SRCreateRecoContext = 10,
17692     DISPID_SRGetFormat = 11,
17693     DISPID_SRSetPropertyNumber = 12,
17694     DISPID_SRGetPropertyNumber = 13,
17695     DISPID_SRSetPropertyString = 14,
17696     DISPID_SRGetPropertyString = 15,
17697     DISPID_SRIsUISupported = 16,
17698     DISPID_SRDisplayUI = 17,
17699     DISPID_SRGetRecognizers = 18,
17700     DISPID_SVGetAudioInputs = 19,
17701     DISPID_SVGetProfiles = 20
17702 } DISPID_SpeechRecognizer;
17703 typedef enum SpeechRecognizerState {
17704     SRSInactive = SPRST_INACTIVE,
17705     SRSActive = SPRST_ACTIVE,
17706     SRSActiveAlways = SPRST_ACTIVE_ALWAYS,
17707     SRSInactiveWithPurge = SPRST_INACTIVE_WITH_PURGE
17708 } SpeechRecognizerState;
17709 typedef enum SpeechDisplayAttributes {
17710     SDA_No_Trailing_Space = 0,
17711     SDA_One_Trailing_Space = SPAF_ONE_TRAILING_SPACE,
17712     SDA_Two_Trailing_Spaces = SPAF_TWO_TRAILING_SPACES,
17713     SDA_Consume_Leading_Spaces = SPAF_CONSUME_LEADING_SPACES
17714 } SpeechDisplayAttributes;
17715 typedef enum SpeechFormatType {
17716     SFTInput = SPWF_INPUT,
17717     SFTSREngine = SPWF_SRENGINE
17718 } SpeechFormatType;
17719 typedef enum DISPID_SpeechRecognizerStatus {
17720     DISPID_SRSAudioStatus = 1,
17721     DISPID_SRSCurrentStreamPosition = 2,
17722     DISPID_SRSCurrentStreamNumber = 3,
17723     DISPID_SRSNumberOfActiveRules = 4,
17724     DISPID_SRSClsidEngine = 5,
17725     DISPID_SRSSupportedLanguages = 6
17726 } DISPID_SpeechRecognizerStatus;
17727 typedef enum DISPID_SpeechRecoContext {
17728     DISPID_SRCRecognizer = 1,
17729     DISPID_SRCAudioInInterferenceStatus = 2,
17730     DISPID_SRCRequestedUIType = 3,
17731     DISPID_SRCVoice = 4,
17732     DISPID_SRAllowVoiceFormatMatchingOnNextSet = 5,
17733     DISPID_SRCVoicePurgeEvent = 6,
17734     DISPID_SRCEventInterests = 7,
17735     DISPID_SRCCmdMaxAlternates = 8,
17736     DISPID_SRCState = 9,
17737     DISPID_SRCRetainedAudio = 10,
17738     DISPID_SRCRetainedAudioFormat = 11,
17739     DISPID_SRCPause = 12,
17740     DISPID_SRCResume = 13,
17741     DISPID_SRCCreateGrammar = 14,
17742     DISPID_SRCCreateResultFromMemory = 15,
17743     DISPID_SRCBookmark = 16,
17744     DISPID_SRCSetAdaptationData = 17
17745 } DISPID_SpeechRecoContext;
17746 typedef enum SpeechRetainedAudioOptions {
17747     SRAONone = SPAO_NONE,
17748     SRAORetainAudio = SPAO_RETAIN_AUDIO
17749 } SpeechRetainedAudioOptions;
17750 typedef enum SpeechBookmarkOptions {
17751     SBONone = SPBO_NONE,
17752     SBOPause = SPBO_PAUSE
17753 } SpeechBookmarkOptions;
17754 typedef enum SpeechInterference {
17755     SINone = SPINTERFERENCE_NONE,
17756     SINoise = SPINTERFERENCE_NOISE,
17757     SINoSignal = SPINTERFERENCE_NOSIGNAL,
17758     SITooLoud = SPINTERFERENCE_TOOLOUD,
17759     SITooQuiet = SPINTERFERENCE_TOOQUIET,
17760     SITooFast = SPINTERFERENCE_TOOFAST,
17761     SITooSlow = SPINTERFERENCE_TOOSLOW
17762 } SpeechInterference;
17763 typedef enum SpeechRecoEvents {
17764     SREStreamEnd = 0x1,
17765     SRESoundStart = 0x2,
17766     SRESoundEnd = 0x4,
17767     SREPhraseStart = 0x8,
17768     SRERecognition = 0x10,
17769     SREHypothesis = 0x20,
17770     SREBookmark = 0x40,
17771     SREPropertyNumChange = 0x80,
17772     SREPropertyStringChange = 0x100,
17773     SREFalseRecognition = 0x200,
17774     SREInterference = 0x400,
17775     SRERequestUI = 0x800,
17776     SREStateChange = 0x1000,
17777     SREAdaptation = 0x2000,
17778     SREStreamStart = 0x4000,
17779     SRERecoOtherContext = 0x8000,
17780     SREAudioLevel = 0x10000,
17781     SREPrivate = 0x40000,
17782     SREAllEvents = 0x5ffff
17783 } SpeechRecoEvents;
17784 typedef enum SpeechRecoContextState {
17785     SRCS_Disabled = SPCS_DISABLED,
17786     SRCS_Enabled = SPCS_ENABLED
17787 } SpeechRecoContextState;
17788 typedef enum DISPIDSPRG {
17789     DISPID_SRGId = 1,
17790     DISPID_SRGRecoContext = 2,
17791     DISPID_SRGState = 3,
17792     DISPID_SRGRules = 4,
17793     DISPID_SRGReset = 5,
17794     DISPID_SRGCommit = 6,
17795     DISPID_SRGCmdLoadFromFile = 7,
17796     DISPID_SRGCmdLoadFromObject = 8,
17797     DISPID_SRGCmdLoadFromResource = 9,
17798     DISPID_SRGCmdLoadFromMemory = 10,
17799     DISPID_SRGCmdLoadFromProprietaryGrammar = 11,
17800     DISPID_SRGCmdSetRuleState = 12,
17801     DISPID_SRGCmdSetRuleIdState = 13,
17802     DISPID_SRGDictationLoad = 14,
17803     DISPID_SRGDictationUnload = 15,
17804     DISPID_SRGDictationSetState = 16,
17805     DISPID_SRGSetWordSequenceData = 17,
17806     DISPID_SRGSetTextSelection = 18,
17807     DISPID_SRGIsPronounceable = 19
17808 } DISPIDSPRG;
17809 typedef enum SpeechLoadOption {
17810     SLOStatic = SPLO_STATIC,
17811     SLODynamic = SPLO_DYNAMIC
17812 } SpeechLoadOption;
17813 typedef enum SpeechWordPronounceable {
17814     SWPUnknownWordUnpronounceable = SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE,
17815     SWPUnknownWordPronounceable = SPWP_UNKNOWN_WORD_PRONOUNCEABLE,
17816     SWPKnownWordPronounceable = SPWP_KNOWN_WORD_PRONOUNCEABLE
17817 } SpeechWordPronounceable;
17818 typedef enum SpeechGrammarState {
17819     SGSEnabled = SPGS_ENABLED,
17820     SGSDisabled = SPGS_DISABLED,
17821     SGSExclusive = SPGS_EXCLUSIVE
17822 } SpeechGrammarState;
17823 typedef enum SpeechRuleState {
17824     SGDSInactive = SPRS_INACTIVE,
17825     SGDSActive = SPRS_ACTIVE,
17826     SGDSActiveWithAutoPause = SPRS_ACTIVE_WITH_AUTO_PAUSE,
17827     SGDSActiveUserDelimited = SPRS_ACTIVE_USER_DELIMITED
17828 } SpeechRuleState;
17829 typedef enum SpeechRuleAttributes {
17830     SRATopLevel = SPRAF_TopLevel,
17831     SRADefaultToActive = SPRAF_Active,
17832     SRAExport = SPRAF_Export,
17833     SRAImport = SPRAF_Import,
17834     SRAInterpreter = SPRAF_Interpreter,
17835     SRADynamic = SPRAF_Dynamic,
17836     SRARoot = SPRAF_Root
17837 } SpeechRuleAttributes;
17838 typedef enum SpeechGrammarWordType {
17839     SGDisplay = SPWT_DISPLAY,
17840     SGLexical = SPWT_LEXICAL,
17841     SGPronounciation = SPWT_PRONUNCIATION,
17842     SGLexicalNoSpecialChars = SPWT_LEXICAL_NO_SPECIAL_CHARS
17843 } SpeechGrammarWordType;
17844 typedef enum DISPID_SpeechRecoContextEvents {
17845     DISPID_SRCEStartStream = 1,
17846     DISPID_SRCEEndStream = 2,
17847     DISPID_SRCEBookmark = 3,
17848     DISPID_SRCESoundStart = 4,
17849     DISPID_SRCESoundEnd = 5,
17850     DISPID_SRCEPhraseStart = 6,
17851     DISPID_SRCERecognition = 7,
17852     DISPID_SRCEHypothesis = 8,
17853     DISPID_SRCEPropertyNumberChange = 9,
17854     DISPID_SRCEPropertyStringChange = 10,
17855     DISPID_SRCEFalseRecognition = 11,
17856     DISPID_SRCEInterference = 12,
17857     DISPID_SRCERequestUI = 13,
17858     DISPID_SRCERecognizerStateChange = 14,
17859     DISPID_SRCEAdaptation = 15,
17860     DISPID_SRCERecognitionForOtherContext = 16,
17861     DISPID_SRCEAudioLevel = 17,
17862     DISPID_SRCEEnginePrivate = 18
17863 } DISPID_SpeechRecoContextEvents;
17864 typedef enum SpeechRecognitionType {
17865     SRTStandard = 0,
17866     SRTAutopause = SPREF_AutoPause,
17867     SRTEmulated = SPREF_Emulated,
17868     SRTSMLTimeout = SPREF_SMLTimeout,
17869     SRTExtendableParse = SPREF_ExtendableParse,
17870     SRTReSent = SPREF_ReSent
17871 } SpeechRecognitionType;
17872 typedef enum DISPID_SpeechGrammarRule {
17873     DISPID_SGRAttributes = 1,
17874     DISPID_SGRInitialState = 2,
17875     DISPID_SGRName = 3,
17876     DISPID_SGRId = 4,
17877     DISPID_SGRClear = 5,
17878     DISPID_SGRAddResource = 6,
17879     DISPID_SGRAddState = 7
17880 } DISPID_SpeechGrammarRule;
17881 typedef enum DISPID_SpeechGrammarRules {
17882     DISPID_SGRsCount = 1,
17883     DISPID_SGRsDynamic = 2,
17884     DISPID_SGRsAdd = 3,
17885     DISPID_SGRsCommit = 4,
17886     DISPID_SGRsCommitAndSave = 5,
17887     DISPID_SGRsFindRule = 6,
17888     DISPID_SGRsItem = DISPID_VALUE,
17889     DISPID_SGRs_NewEnum = DISPID_NEWENUM
17890 } DISPID_SpeechGrammarRules;
17891 typedef enum DISPID_SpeechGrammarRuleState {
17892     DISPID_SGRSRule = 1,
17893     DISPID_SGRSTransitions = 2,
17894     DISPID_SGRSAddWordTransition = 3,
17895     DISPID_SGRSAddRuleTransition = 4,
17896     DISPID_SGRSAddSpecialTransition = 5
17897 } DISPID_SpeechGrammarRuleState;
17898 typedef enum SpeechSpecialTransitionType {
17899     SSTTWildcard = 1,
17900     SSTTDictation = 2,
17901     SSTTTextBuffer = 3
17902 } SpeechSpecialTransitionType;
17903 typedef enum DISPID_SpeechGrammarRuleStateTransitions {
17904     DISPID_SGRSTsCount = 1,
17905     DISPID_SGRSTsItem = DISPID_VALUE,
17906     DISPID_SGRSTs_NewEnum = DISPID_NEWENUM
17907 } DISPID_SpeechGrammarRuleStateTransitions;
17908 typedef enum DISPID_SpeechGrammarRuleStateTransition {
17909     DISPID_SGRSTType = 1,
17910     DISPID_SGRSTText = 2,
17911     DISPID_SGRSTRule = 3,
17912     DISPID_SGRSTWeight = 4,
17913     DISPID_SGRSTPropertyName = 5,
17914     DISPID_SGRSTPropertyId = 6,
17915     DISPID_SGRSTPropertyValue = 7,
17916     DISPID_SGRSTNextState = 8
17917 } DISPID_SpeechGrammarRuleStateTransition;
17918 typedef enum SpeechGrammarRuleStateTransitionType {
17919     SGRSTTEpsilon = 0,
17920     SGRSTTWord = 1,
17921     SGRSTTRule = 2,
17922     SGRSTTDictation = 3,
17923     SGRSTTWildcard = 4,
17924     SGRSTTTextBuffer = 5
17925 } SpeechGrammarRuleStateTransitionType;
17926 typedef enum DISPIDSPTSI {
17927     DISPIDSPTSI_ActiveOffset = 1,
17928     DISPIDSPTSI_ActiveLength = 2,
17929     DISPIDSPTSI_SelectionOffset = 3,
17930     DISPIDSPTSI_SelectionLength = 4
17931 } DISPIDSPTSI;
17932 typedef enum DISPID_SpeechRecoResult {
17933     DISPID_SRRRecoContext = 1,
17934     DISPID_SRRTimes = 2,
17935     DISPID_SRRAudioFormat = 3,
17936     DISPID_SRRPhraseInfo = 4,
17937     DISPID_SRRAlternates = 5,
17938     DISPID_SRRAudio = 6,
17939     DISPID_SRRSpeakAudio = 7,
17940     DISPID_SRRSaveToMemory = 8,
17941     DISPID_SRRDiscardResultInfo = 9
17942 } DISPID_SpeechRecoResult;
17943 typedef enum SpeechDiscardType {
17944     SDTProperty = SPDF_PROPERTY,
17945     SDTReplacement = SPDF_REPLACEMENT,
17946     SDTRule = SPDF_RULE,
17947     SDTDisplayText = SPDF_DISPLAYTEXT,
17948     SDTLexicalForm = SPDF_LEXICALFORM,
17949     SDTPronunciation = SPDF_PRONUNCIATION,
17950     SDTAudio = SPDF_AUDIO,
17951     SDTAlternates = SPDF_ALTERNATES,
17952     SDTAll = SPDF_ALL
17953 } SpeechDiscardType;
17954 typedef enum SpeechEmulationCompareFlags {
17955     SECFIgnoreCase = 0x1,
17956     SECFIgnoreKanaType = 0x10000,
17957     SECFIgnoreWidth = 0x20000,
17958     SECFNoSpecialChars = 0x20000000,
17959     SECFEmulateResult = 0x40000000,
17960     SECFDefault = (SECFIgnoreCase | SECFIgnoreKanaType) | SECFIgnoreWidth
17961 } SpeechEmulationCompareFlags;
17962 typedef enum DISPID_SpeechXMLRecoResult {
17963     DISPID_SRRGetXMLResult = DISPID_SRRDiscardResultInfo + 1,
17964     DISPID_SRRGetXMLErrorInfo = DISPID_SRRGetXMLResult + 1
17965 } DISPID_SpeechXMLRecoResult;
17966 typedef enum DISPID_SpeechRecoResult2 {
17967     DISPID_SRRSetTextFeedback = DISPID_SRRGetXMLErrorInfo + 1
17968 } DISPID_SpeechRecoResult2;
17969 typedef enum DISPID_SpeechPhraseBuilder {
17970     DISPID_SPPBRestorePhraseFromMemory = 1
17971 } DISPID_SpeechPhraseBuilder;
17972 typedef enum DISPID_SpeechRecoResultTimes {
17973     DISPID_SRRTStreamTime = 1,
17974     DISPID_SRRTLength = 2,
17975     DISPID_SRRTTickCount = 3,
17976     DISPID_SRRTOffsetFromStart = 4
17977 } DISPID_SpeechRecoResultTimes;
17978 typedef enum DISPID_SpeechPhraseAlternate {
17979     DISPID_SPARecoResult = 1,
17980     DISPID_SPAStartElementInResult = 2,
17981     DISPID_SPANumberOfElementsInResult = 3,
17982     DISPID_SPAPhraseInfo = 4,
17983     DISPID_SPACommit = 5
17984 } DISPID_SpeechPhraseAlternate;
17985 typedef enum DISPID_SpeechPhraseAlternates {
17986     DISPID_SPAsCount = 1,
17987     DISPID_SPAsItem = DISPID_VALUE,
17988     DISPID_SPAs_NewEnum = DISPID_NEWENUM
17989 } DISPID_SpeechPhraseAlternates;
17990 typedef enum DISPID_SpeechPhraseInfo {
17991     DISPID_SPILanguageId = 1,
17992     DISPID_SPIGrammarId = 2,
17993     DISPID_SPIStartTime = 3,
17994     DISPID_SPIAudioStreamPosition = 4,
17995     DISPID_SPIAudioSizeBytes = 5,
17996     DISPID_SPIRetainedSizeBytes = 6,
17997     DISPID_SPIAudioSizeTime = 7,
17998     DISPID_SPIRule = 8,
17999     DISPID_SPIProperties = 9,
18000     DISPID_SPIElements = 10,
18001     DISPID_SPIReplacements = 11,
18002     DISPID_SPIEngineId = 12,
18003     DISPID_SPIEnginePrivateData = 13,
18004     DISPID_SPISaveToMemory = 14,
18005     DISPID_SPIGetText = 15,
18006     DISPID_SPIGetDisplayAttributes = 16
18007 } DISPID_SpeechPhraseInfo;
18008 typedef enum DISPID_SpeechPhraseElement {
18009     DISPID_SPEAudioTimeOffset = 1,
18010     DISPID_SPEAudioSizeTime = 2,
18011     DISPID_SPEAudioStreamOffset = 3,
18012     DISPID_SPEAudioSizeBytes = 4,
18013     DISPID_SPERetainedStreamOffset = 5,
18014     DISPID_SPERetainedSizeBytes = 6,
18015     DISPID_SPEDisplayText = 7,
18016     DISPID_SPELexicalForm = 8,
18017     DISPID_SPEPronunciation = 9,
18018     DISPID_SPEDisplayAttributes = 10,
18019     DISPID_SPERequiredConfidence = 11,
18020     DISPID_SPEActualConfidence = 12,
18021     DISPID_SPEEngineConfidence = 13
18022 } DISPID_SpeechPhraseElement;
18023 typedef enum SpeechEngineConfidence {
18024     SECLowConfidence = -1,
18025     SECNormalConfidence = 0,
18026     SECHighConfidence = 1
18027 } SpeechEngineConfidence;
18028 typedef enum DISPID_SpeechPhraseElements {
18029     DISPID_SPEsCount = 1,
18030     DISPID_SPEsItem = DISPID_VALUE,
18031     DISPID_SPEs_NewEnum = DISPID_NEWENUM
18032 } DISPID_SpeechPhraseElements;
18033 typedef enum DISPID_SpeechPhraseReplacement {
18034     DISPID_SPRDisplayAttributes = 1,
18035     DISPID_SPRText = 2,
18036     DISPID_SPRFirstElement = 3,
18037     DISPID_SPRNumberOfElements = 4
18038 } DISPID_SpeechPhraseReplacement;
18039 typedef enum DISPID_SpeechPhraseReplacements {
18040     DISPID_SPRsCount = 1,
18041     DISPID_SPRsItem = DISPID_VALUE,
18042     DISPID_SPRs_NewEnum = DISPID_NEWENUM
18043 } DISPID_SpeechPhraseReplacements;
18044 typedef enum DISPID_SpeechPhraseProperty {
18045     DISPID_SPPName = 1,
18046     DISPID_SPPId = 2,
18047     DISPID_SPPValue = 3,
18048     DISPID_SPPFirstElement = 4,
18049     DISPID_SPPNumberOfElements = 5,
18050     DISPID_SPPEngineConfidence = 6,
18051     DISPID_SPPConfidence = 7,
18052     DISPID_SPPParent = 8,
18053     DISPID_SPPChildren = 9
18054 } DISPID_SpeechPhraseProperty;
18055 typedef enum DISPID_SpeechPhraseProperties {
18056     DISPID_SPPsCount = 1,
18057     DISPID_SPPsItem = DISPID_VALUE,
18058     DISPID_SPPs_NewEnum = DISPID_NEWENUM
18059 } DISPID_SpeechPhraseProperties;
18060 typedef enum DISPID_SpeechPhraseRule {
18061     DISPID_SPRuleName = 1,
18062     DISPID_SPRuleId = 2,
18063     DISPID_SPRuleFirstElement = 3,
18064     DISPID_SPRuleNumberOfElements = 4,
18065     DISPID_SPRuleParent = 5,
18066     DISPID_SPRuleChildren = 6,
18067     DISPID_SPRuleConfidence = 7,
18068     DISPID_SPRuleEngineConfidence = 8
18069 } DISPID_SpeechPhraseRule;
18070 typedef enum DISPID_SpeechPhraseRules {
18071     DISPID_SPRulesCount = 1,
18072     DISPID_SPRulesItem = DISPID_VALUE,
18073     DISPID_SPRules_NewEnum = DISPID_NEWENUM
18074 } DISPID_SpeechPhraseRules;
18075 typedef enum DISPID_SpeechLexicon {
18076     DISPID_SLGenerationId = 1,
18077     DISPID_SLGetWords = 2,
18078     DISPID_SLAddPronunciation = 3,
18079     DISPID_SLAddPronunciationByPhoneIds = 4,
18080     DISPID_SLRemovePronunciation = 5,
18081     DISPID_SLRemovePronunciationByPhoneIds = 6,
18082     DISPID_SLGetPronunciations = 7,
18083     DISPID_SLGetGenerationChange = 8
18084 } DISPID_SpeechLexicon;
18085 typedef enum SpeechLexiconType {
18086     SLTUser = eLEXTYPE_USER,
18087     SLTApp = eLEXTYPE_APP
18088 } SpeechLexiconType;
18089 typedef enum SpeechPartOfSpeech {
18090     SPSNotOverriden = SPPS_NotOverriden,
18091     SPSUnknown = SPPS_Unknown,
18092     SPSNoun = SPPS_Noun,
18093     SPSVerb = SPPS_Verb,
18094     SPSModifier = SPPS_Modifier,
18095     SPSFunction = SPPS_Function,
18096     SPSInterjection = SPPS_Interjection,
18097     SPSLMA = SPPS_LMA,
18098     SPSSuppressWord = SPPS_SuppressWord
18099 } SpeechPartOfSpeech;
18100 typedef enum DISPID_SpeechLexiconWords {
18101     DISPID_SLWsCount = 1,
18102     DISPID_SLWsItem = DISPID_VALUE,
18103     DISPID_SLWs_NewEnum = DISPID_NEWENUM
18104 } DISPID_SpeechLexiconWords;
18105 typedef enum SpeechWordType {
18106     SWTAdded = eWORDTYPE_ADDED,
18107     SWTDeleted = eWORDTYPE_DELETED
18108 } SpeechWordType;
18109 typedef enum DISPID_SpeechLexiconWord {
18110     DISPID_SLWLangId = 1,
18111     DISPID_SLWType = 2,
18112     DISPID_SLWWord = 3,
18113     DISPID_SLWPronunciations = 4
18114 } DISPID_SpeechLexiconWord;
18115 typedef enum DISPID_SpeechLexiconProns {
18116     DISPID_SLPsCount = 1,
18117     DISPID_SLPsItem = DISPID_VALUE,
18118     DISPID_SLPs_NewEnum = DISPID_NEWENUM
18119 } DISPID_SpeechLexiconProns;
18120 typedef enum DISPID_SpeechLexiconPronunciation {
18121     DISPID_SLPType = 1,
18122     DISPID_SLPLangId = 2,
18123     DISPID_SLPPartOfSpeech = 3,
18124     DISPID_SLPPhoneIds = 4,
18125     DISPID_SLPSymbolic = 5
18126 } DISPID_SpeechLexiconPronunciation;
18127 typedef enum DISPID_SpeechPhoneConverter {
18128     DISPID_SPCLangId = 1,
18129     DISPID_SPCPhoneToId = 2,
18130     DISPID_SPCIdToPhone = 3
18131 } DISPID_SpeechPhoneConverter;
18132 /*****************************************************************************
18133  * _ISpeechVoiceEvents dispinterface
18134  */
18135 #ifndef ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__
18136 #define ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__
18137 
18138 DEFINE_GUID(DIID__ISpeechVoiceEvents, 0xa372acd1, 0x3bef, 0x4bbd, 0x8f,0xfb, 0xcb,0x3e,0x2b,0x41,0x6a,0xf8);
18139 #if defined(__cplusplus) && !defined(CINTERFACE)
18140 MIDL_INTERFACE("a372acd1-3bef-4bbd-8ffb-cb3e2b416af8")
18141 _ISpeechVoiceEvents : public IDispatch
18142 {
18143 };
18144 #ifdef __CRT_UUID_DECL
18145 __CRT_UUID_DECL(_ISpeechVoiceEvents, 0xa372acd1, 0x3bef, 0x4bbd, 0x8f,0xfb, 0xcb,0x3e,0x2b,0x41,0x6a,0xf8)
18146 #endif
18147 #else
18148 typedef struct _ISpeechVoiceEventsVtbl {
18149     BEGIN_INTERFACE
18150 
18151     /*** IUnknown methods ***/
18152     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18153         _ISpeechVoiceEvents* This,
18154         REFIID riid,
18155         void **ppvObject);
18156 
18157     ULONG (STDMETHODCALLTYPE *AddRef)(
18158         _ISpeechVoiceEvents* This);
18159 
18160     ULONG (STDMETHODCALLTYPE *Release)(
18161         _ISpeechVoiceEvents* This);
18162 
18163     /*** IDispatch methods ***/
18164     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18165         _ISpeechVoiceEvents* This,
18166         UINT *pctinfo);
18167 
18168     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18169         _ISpeechVoiceEvents* This,
18170         UINT iTInfo,
18171         LCID lcid,
18172         ITypeInfo **ppTInfo);
18173 
18174     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18175         _ISpeechVoiceEvents* This,
18176         REFIID riid,
18177         LPOLESTR *rgszNames,
18178         UINT cNames,
18179         LCID lcid,
18180         DISPID *rgDispId);
18181 
18182     HRESULT (STDMETHODCALLTYPE *Invoke)(
18183         _ISpeechVoiceEvents* This,
18184         DISPID dispIdMember,
18185         REFIID riid,
18186         LCID lcid,
18187         WORD wFlags,
18188         DISPPARAMS *pDispParams,
18189         VARIANT *pVarResult,
18190         EXCEPINFO *pExcepInfo,
18191         UINT *puArgErr);
18192 
18193     END_INTERFACE
18194 } _ISpeechVoiceEventsVtbl;
18195 interface _ISpeechVoiceEvents {
18196     CONST_VTBL _ISpeechVoiceEventsVtbl* lpVtbl;
18197 };
18198 
18199 #ifdef COBJMACROS
18200 #ifndef WIDL_C_INLINE_WRAPPERS
18201 /*** IUnknown methods ***/
18202 #define _ISpeechVoiceEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18203 #define _ISpeechVoiceEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
18204 #define _ISpeechVoiceEvents_Release(This) (This)->lpVtbl->Release(This)
18205 /*** IDispatch methods ***/
18206 #define _ISpeechVoiceEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18207 #define _ISpeechVoiceEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18208 #define _ISpeechVoiceEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18209 #define _ISpeechVoiceEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18210 #else
18211 /*** IUnknown methods ***/
18212 static FORCEINLINE HRESULT _ISpeechVoiceEvents_QueryInterface(_ISpeechVoiceEvents* This,REFIID riid,void **ppvObject) {
18213     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18214 }
18215 static FORCEINLINE ULONG _ISpeechVoiceEvents_AddRef(_ISpeechVoiceEvents* This) {
18216     return This->lpVtbl->AddRef(This);
18217 }
18218 static FORCEINLINE ULONG _ISpeechVoiceEvents_Release(_ISpeechVoiceEvents* This) {
18219     return This->lpVtbl->Release(This);
18220 }
18221 /*** IDispatch methods ***/
18222 static FORCEINLINE HRESULT _ISpeechVoiceEvents_GetTypeInfoCount(_ISpeechVoiceEvents* This,UINT *pctinfo) {
18223     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18224 }
18225 static FORCEINLINE HRESULT _ISpeechVoiceEvents_GetTypeInfo(_ISpeechVoiceEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18226     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18227 }
18228 static FORCEINLINE HRESULT _ISpeechVoiceEvents_GetIDsOfNames(_ISpeechVoiceEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18229     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18230 }
18231 static FORCEINLINE HRESULT _ISpeechVoiceEvents_Invoke(_ISpeechVoiceEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18232     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18233 }
18234 #endif
18235 #endif
18236 
18237 #endif
18238 
18239 #endif  /* ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__ */
18240 
18241 /*****************************************************************************
18242  * ISpeechRecognizer interface
18243  */
18244 #ifndef __ISpeechRecognizer_INTERFACE_DEFINED__
18245 #define __ISpeechRecognizer_INTERFACE_DEFINED__
18246 
18247 DEFINE_GUID(IID_ISpeechRecognizer, 0x2d5f1c0c, 0xbd75, 0x4b08, 0x94,0x78, 0x3b,0x11,0xfe,0xa2,0x58,0x6c);
18248 #if defined(__cplusplus) && !defined(CINTERFACE)
18249 MIDL_INTERFACE("2d5f1c0c-bd75-4b08-9478-3b11fea2586c")
18250 ISpeechRecognizer : public IDispatch
18251 {
18252     virtual HRESULT STDMETHODCALLTYPE putref_Recognizer(
18253         ISpeechObjectToken *Recognizer) = 0;
18254 
18255     virtual HRESULT STDMETHODCALLTYPE get_Recognizer(
18256         ISpeechObjectToken **Recognizer) = 0;
18257 
18258     virtual HRESULT STDMETHODCALLTYPE put_AllowAudioInputFormatChangesOnNextSet(
18259         VARIANT_BOOL Allow) = 0;
18260 
18261     virtual HRESULT STDMETHODCALLTYPE get_AllowAudioInputFormatChangesOnNextSet(
18262         VARIANT_BOOL *Allow) = 0;
18263 
18264     virtual HRESULT STDMETHODCALLTYPE putref_AudioInput(
18265         ISpeechObjectToken *AudioInput = 0) = 0;
18266 
18267     virtual HRESULT STDMETHODCALLTYPE get_AudioInput(
18268         ISpeechObjectToken **AudioInput) = 0;
18269 
18270     virtual HRESULT STDMETHODCALLTYPE putref_AudioInputStream(
18271         ISpeechBaseStream *AudioInputStream = 0) = 0;
18272 
18273     virtual HRESULT STDMETHODCALLTYPE get_AudioInputStream(
18274         ISpeechBaseStream **AudioInputStream) = 0;
18275 
18276     virtual HRESULT STDMETHODCALLTYPE get_IsShared(
18277         VARIANT_BOOL *Shared) = 0;
18278 
18279     virtual HRESULT STDMETHODCALLTYPE put_State(
18280         SpeechRecognizerState State) = 0;
18281 
18282     virtual HRESULT STDMETHODCALLTYPE get_State(
18283         SpeechRecognizerState *State) = 0;
18284 
18285     virtual HRESULT STDMETHODCALLTYPE get_Status(
18286         ISpeechRecognizerStatus **Status) = 0;
18287 
18288     virtual HRESULT STDMETHODCALLTYPE putref_Profile(
18289         ISpeechObjectToken *Profile = 0) = 0;
18290 
18291     virtual HRESULT STDMETHODCALLTYPE get_Profile(
18292         ISpeechObjectToken **Profile) = 0;
18293 
18294     virtual HRESULT STDMETHODCALLTYPE EmulateRecognition(
18295         VARIANT TextElements,
18296         VARIANT *ElementDisplayAttributes = 0,
18297         LONG LanguageId = 0) = 0;
18298 
18299     virtual HRESULT STDMETHODCALLTYPE CreateRecoContext(
18300         ISpeechRecoContext **NewContext) = 0;
18301 
18302     virtual HRESULT STDMETHODCALLTYPE GetFormat(
18303         SpeechFormatType Type,
18304         ISpeechAudioFormat **Format) = 0;
18305 
18306     virtual HRESULT STDMETHODCALLTYPE SetPropertyNumber(
18307         const BSTR Name,
18308         LONG Value,
18309         VARIANT_BOOL *Supported) = 0;
18310 
18311     virtual HRESULT STDMETHODCALLTYPE GetPropertyNumber(
18312         const BSTR Name,
18313         LONG *Value,
18314         VARIANT_BOOL *Supported) = 0;
18315 
18316     virtual HRESULT STDMETHODCALLTYPE SetPropertyString(
18317         const BSTR Name,
18318         const BSTR Value,
18319         VARIANT_BOOL *Supported) = 0;
18320 
18321     virtual HRESULT STDMETHODCALLTYPE GetPropertyString(
18322         const BSTR Name,
18323         BSTR *Value,
18324         VARIANT_BOOL *Supported) = 0;
18325 
18326     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
18327         const BSTR TypeOfUI,
18328         const VARIANT *ExtraData,
18329         VARIANT_BOOL *Supported) = 0;
18330 
18331     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
18332         LONG hWndParent,
18333         BSTR Title,
18334         const BSTR TypeOfUI,
18335         const VARIANT *ExtraData = 0) = 0;
18336 
18337     virtual HRESULT STDMETHODCALLTYPE GetRecognizers(
18338         BSTR RequiredAttributes,
18339         BSTR OptionalAttributes,
18340         ISpeechObjectTokens **ObjectTokens) = 0;
18341 
18342     virtual HRESULT STDMETHODCALLTYPE GetAudioInputs(
18343         BSTR RequiredAttributes,
18344         BSTR OptionalAttributes,
18345         ISpeechObjectTokens **ObjectTokens) = 0;
18346 
18347     virtual HRESULT STDMETHODCALLTYPE GetProfiles(
18348         BSTR RequiredAttributes,
18349         BSTR OptionalAttributes,
18350         ISpeechObjectTokens **ObjectTokens) = 0;
18351 
18352 };
18353 #ifdef __CRT_UUID_DECL
18354 __CRT_UUID_DECL(ISpeechRecognizer, 0x2d5f1c0c, 0xbd75, 0x4b08, 0x94,0x78, 0x3b,0x11,0xfe,0xa2,0x58,0x6c)
18355 #endif
18356 #else
18357 typedef struct ISpeechRecognizerVtbl {
18358     BEGIN_INTERFACE
18359 
18360     /*** IUnknown methods ***/
18361     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18362         ISpeechRecognizer* This,
18363         REFIID riid,
18364         void **ppvObject);
18365 
18366     ULONG (STDMETHODCALLTYPE *AddRef)(
18367         ISpeechRecognizer* This);
18368 
18369     ULONG (STDMETHODCALLTYPE *Release)(
18370         ISpeechRecognizer* This);
18371 
18372     /*** IDispatch methods ***/
18373     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18374         ISpeechRecognizer* This,
18375         UINT *pctinfo);
18376 
18377     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18378         ISpeechRecognizer* This,
18379         UINT iTInfo,
18380         LCID lcid,
18381         ITypeInfo **ppTInfo);
18382 
18383     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18384         ISpeechRecognizer* This,
18385         REFIID riid,
18386         LPOLESTR *rgszNames,
18387         UINT cNames,
18388         LCID lcid,
18389         DISPID *rgDispId);
18390 
18391     HRESULT (STDMETHODCALLTYPE *Invoke)(
18392         ISpeechRecognizer* This,
18393         DISPID dispIdMember,
18394         REFIID riid,
18395         LCID lcid,
18396         WORD wFlags,
18397         DISPPARAMS *pDispParams,
18398         VARIANT *pVarResult,
18399         EXCEPINFO *pExcepInfo,
18400         UINT *puArgErr);
18401 
18402     /*** ISpeechRecognizer methods ***/
18403     HRESULT (STDMETHODCALLTYPE *putref_Recognizer)(
18404         ISpeechRecognizer* This,
18405         ISpeechObjectToken *Recognizer);
18406 
18407     HRESULT (STDMETHODCALLTYPE *get_Recognizer)(
18408         ISpeechRecognizer* This,
18409         ISpeechObjectToken **Recognizer);
18410 
18411     HRESULT (STDMETHODCALLTYPE *put_AllowAudioInputFormatChangesOnNextSet)(
18412         ISpeechRecognizer* This,
18413         VARIANT_BOOL Allow);
18414 
18415     HRESULT (STDMETHODCALLTYPE *get_AllowAudioInputFormatChangesOnNextSet)(
18416         ISpeechRecognizer* This,
18417         VARIANT_BOOL *Allow);
18418 
18419     HRESULT (STDMETHODCALLTYPE *putref_AudioInput)(
18420         ISpeechRecognizer* This,
18421         ISpeechObjectToken *AudioInput);
18422 
18423     HRESULT (STDMETHODCALLTYPE *get_AudioInput)(
18424         ISpeechRecognizer* This,
18425         ISpeechObjectToken **AudioInput);
18426 
18427     HRESULT (STDMETHODCALLTYPE *putref_AudioInputStream)(
18428         ISpeechRecognizer* This,
18429         ISpeechBaseStream *AudioInputStream);
18430 
18431     HRESULT (STDMETHODCALLTYPE *get_AudioInputStream)(
18432         ISpeechRecognizer* This,
18433         ISpeechBaseStream **AudioInputStream);
18434 
18435     HRESULT (STDMETHODCALLTYPE *get_IsShared)(
18436         ISpeechRecognizer* This,
18437         VARIANT_BOOL *Shared);
18438 
18439     HRESULT (STDMETHODCALLTYPE *put_State)(
18440         ISpeechRecognizer* This,
18441         SpeechRecognizerState State);
18442 
18443     HRESULT (STDMETHODCALLTYPE *get_State)(
18444         ISpeechRecognizer* This,
18445         SpeechRecognizerState *State);
18446 
18447     HRESULT (STDMETHODCALLTYPE *get_Status)(
18448         ISpeechRecognizer* This,
18449         ISpeechRecognizerStatus **Status);
18450 
18451     HRESULT (STDMETHODCALLTYPE *putref_Profile)(
18452         ISpeechRecognizer* This,
18453         ISpeechObjectToken *Profile);
18454 
18455     HRESULT (STDMETHODCALLTYPE *get_Profile)(
18456         ISpeechRecognizer* This,
18457         ISpeechObjectToken **Profile);
18458 
18459     HRESULT (STDMETHODCALLTYPE *EmulateRecognition)(
18460         ISpeechRecognizer* This,
18461         VARIANT TextElements,
18462         VARIANT *ElementDisplayAttributes,
18463         LONG LanguageId);
18464 
18465     HRESULT (STDMETHODCALLTYPE *CreateRecoContext)(
18466         ISpeechRecognizer* This,
18467         ISpeechRecoContext **NewContext);
18468 
18469     HRESULT (STDMETHODCALLTYPE *GetFormat)(
18470         ISpeechRecognizer* This,
18471         SpeechFormatType Type,
18472         ISpeechAudioFormat **Format);
18473 
18474     HRESULT (STDMETHODCALLTYPE *SetPropertyNumber)(
18475         ISpeechRecognizer* This,
18476         const BSTR Name,
18477         LONG Value,
18478         VARIANT_BOOL *Supported);
18479 
18480     HRESULT (STDMETHODCALLTYPE *GetPropertyNumber)(
18481         ISpeechRecognizer* This,
18482         const BSTR Name,
18483         LONG *Value,
18484         VARIANT_BOOL *Supported);
18485 
18486     HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
18487         ISpeechRecognizer* This,
18488         const BSTR Name,
18489         const BSTR Value,
18490         VARIANT_BOOL *Supported);
18491 
18492     HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
18493         ISpeechRecognizer* This,
18494         const BSTR Name,
18495         BSTR *Value,
18496         VARIANT_BOOL *Supported);
18497 
18498     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
18499         ISpeechRecognizer* This,
18500         const BSTR TypeOfUI,
18501         const VARIANT *ExtraData,
18502         VARIANT_BOOL *Supported);
18503 
18504     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
18505         ISpeechRecognizer* This,
18506         LONG hWndParent,
18507         BSTR Title,
18508         const BSTR TypeOfUI,
18509         const VARIANT *ExtraData);
18510 
18511     HRESULT (STDMETHODCALLTYPE *GetRecognizers)(
18512         ISpeechRecognizer* This,
18513         BSTR RequiredAttributes,
18514         BSTR OptionalAttributes,
18515         ISpeechObjectTokens **ObjectTokens);
18516 
18517     HRESULT (STDMETHODCALLTYPE *GetAudioInputs)(
18518         ISpeechRecognizer* This,
18519         BSTR RequiredAttributes,
18520         BSTR OptionalAttributes,
18521         ISpeechObjectTokens **ObjectTokens);
18522 
18523     HRESULT (STDMETHODCALLTYPE *GetProfiles)(
18524         ISpeechRecognizer* This,
18525         BSTR RequiredAttributes,
18526         BSTR OptionalAttributes,
18527         ISpeechObjectTokens **ObjectTokens);
18528 
18529     END_INTERFACE
18530 } ISpeechRecognizerVtbl;
18531 interface ISpeechRecognizer {
18532     CONST_VTBL ISpeechRecognizerVtbl* lpVtbl;
18533 };
18534 
18535 #ifdef COBJMACROS
18536 #ifndef WIDL_C_INLINE_WRAPPERS
18537 /*** IUnknown methods ***/
18538 #define ISpeechRecognizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18539 #define ISpeechRecognizer_AddRef(This) (This)->lpVtbl->AddRef(This)
18540 #define ISpeechRecognizer_Release(This) (This)->lpVtbl->Release(This)
18541 /*** IDispatch methods ***/
18542 #define ISpeechRecognizer_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18543 #define ISpeechRecognizer_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18544 #define ISpeechRecognizer_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18545 #define ISpeechRecognizer_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18546 /*** ISpeechRecognizer methods ***/
18547 #define ISpeechRecognizer_putref_Recognizer(This,Recognizer) (This)->lpVtbl->putref_Recognizer(This,Recognizer)
18548 #define ISpeechRecognizer_get_Recognizer(This,Recognizer) (This)->lpVtbl->get_Recognizer(This,Recognizer)
18549 #define ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->put_AllowAudioInputFormatChangesOnNextSet(This,Allow)
18550 #define ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->get_AllowAudioInputFormatChangesOnNextSet(This,Allow)
18551 #define ISpeechRecognizer_putref_AudioInput(This,AudioInput) (This)->lpVtbl->putref_AudioInput(This,AudioInput)
18552 #define ISpeechRecognizer_get_AudioInput(This,AudioInput) (This)->lpVtbl->get_AudioInput(This,AudioInput)
18553 #define ISpeechRecognizer_putref_AudioInputStream(This,AudioInputStream) (This)->lpVtbl->putref_AudioInputStream(This,AudioInputStream)
18554 #define ISpeechRecognizer_get_AudioInputStream(This,AudioInputStream) (This)->lpVtbl->get_AudioInputStream(This,AudioInputStream)
18555 #define ISpeechRecognizer_get_IsShared(This,Shared) (This)->lpVtbl->get_IsShared(This,Shared)
18556 #define ISpeechRecognizer_put_State(This,State) (This)->lpVtbl->put_State(This,State)
18557 #define ISpeechRecognizer_get_State(This,State) (This)->lpVtbl->get_State(This,State)
18558 #define ISpeechRecognizer_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
18559 #define ISpeechRecognizer_putref_Profile(This,Profile) (This)->lpVtbl->putref_Profile(This,Profile)
18560 #define ISpeechRecognizer_get_Profile(This,Profile) (This)->lpVtbl->get_Profile(This,Profile)
18561 #define ISpeechRecognizer_EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId) (This)->lpVtbl->EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId)
18562 #define ISpeechRecognizer_CreateRecoContext(This,NewContext) (This)->lpVtbl->CreateRecoContext(This,NewContext)
18563 #define ISpeechRecognizer_GetFormat(This,Type,Format) (This)->lpVtbl->GetFormat(This,Type,Format)
18564 #define ISpeechRecognizer_SetPropertyNumber(This,Name,Value,Supported) (This)->lpVtbl->SetPropertyNumber(This,Name,Value,Supported)
18565 #define ISpeechRecognizer_GetPropertyNumber(This,Name,Value,Supported) (This)->lpVtbl->GetPropertyNumber(This,Name,Value,Supported)
18566 #define ISpeechRecognizer_SetPropertyString(This,Name,Value,Supported) (This)->lpVtbl->SetPropertyString(This,Name,Value,Supported)
18567 #define ISpeechRecognizer_GetPropertyString(This,Name,Value,Supported) (This)->lpVtbl->GetPropertyString(This,Name,Value,Supported)
18568 #define ISpeechRecognizer_IsUISupported(This,TypeOfUI,ExtraData,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported)
18569 #define ISpeechRecognizer_DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData) (This)->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData)
18570 #define ISpeechRecognizer_GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
18571 #define ISpeechRecognizer_GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
18572 #define ISpeechRecognizer_GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
18573 #else
18574 /*** IUnknown methods ***/
18575 static FORCEINLINE HRESULT ISpeechRecognizer_QueryInterface(ISpeechRecognizer* This,REFIID riid,void **ppvObject) {
18576     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18577 }
18578 static FORCEINLINE ULONG ISpeechRecognizer_AddRef(ISpeechRecognizer* This) {
18579     return This->lpVtbl->AddRef(This);
18580 }
18581 static FORCEINLINE ULONG ISpeechRecognizer_Release(ISpeechRecognizer* This) {
18582     return This->lpVtbl->Release(This);
18583 }
18584 /*** IDispatch methods ***/
18585 static FORCEINLINE HRESULT ISpeechRecognizer_GetTypeInfoCount(ISpeechRecognizer* This,UINT *pctinfo) {
18586     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18587 }
18588 static FORCEINLINE HRESULT ISpeechRecognizer_GetTypeInfo(ISpeechRecognizer* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18589     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18590 }
18591 static FORCEINLINE HRESULT ISpeechRecognizer_GetIDsOfNames(ISpeechRecognizer* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18592     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18593 }
18594 static FORCEINLINE HRESULT ISpeechRecognizer_Invoke(ISpeechRecognizer* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18595     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18596 }
18597 /*** ISpeechRecognizer methods ***/
18598 static FORCEINLINE HRESULT ISpeechRecognizer_putref_Recognizer(ISpeechRecognizer* This,ISpeechObjectToken *Recognizer) {
18599     return This->lpVtbl->putref_Recognizer(This,Recognizer);
18600 }
18601 static FORCEINLINE HRESULT ISpeechRecognizer_get_Recognizer(ISpeechRecognizer* This,ISpeechObjectToken **Recognizer) {
18602     return This->lpVtbl->get_Recognizer(This,Recognizer);
18603 }
18604 static FORCEINLINE HRESULT ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet(ISpeechRecognizer* This,VARIANT_BOOL Allow) {
18605     return This->lpVtbl->put_AllowAudioInputFormatChangesOnNextSet(This,Allow);
18606 }
18607 static FORCEINLINE HRESULT ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet(ISpeechRecognizer* This,VARIANT_BOOL *Allow) {
18608     return This->lpVtbl->get_AllowAudioInputFormatChangesOnNextSet(This,Allow);
18609 }
18610 static FORCEINLINE HRESULT ISpeechRecognizer_putref_AudioInput(ISpeechRecognizer* This,ISpeechObjectToken *AudioInput) {
18611     return This->lpVtbl->putref_AudioInput(This,AudioInput);
18612 }
18613 static FORCEINLINE HRESULT ISpeechRecognizer_get_AudioInput(ISpeechRecognizer* This,ISpeechObjectToken **AudioInput) {
18614     return This->lpVtbl->get_AudioInput(This,AudioInput);
18615 }
18616 static FORCEINLINE HRESULT ISpeechRecognizer_putref_AudioInputStream(ISpeechRecognizer* This,ISpeechBaseStream *AudioInputStream) {
18617     return This->lpVtbl->putref_AudioInputStream(This,AudioInputStream);
18618 }
18619 static FORCEINLINE HRESULT ISpeechRecognizer_get_AudioInputStream(ISpeechRecognizer* This,ISpeechBaseStream **AudioInputStream) {
18620     return This->lpVtbl->get_AudioInputStream(This,AudioInputStream);
18621 }
18622 static FORCEINLINE HRESULT ISpeechRecognizer_get_IsShared(ISpeechRecognizer* This,VARIANT_BOOL *Shared) {
18623     return This->lpVtbl->get_IsShared(This,Shared);
18624 }
18625 static FORCEINLINE HRESULT ISpeechRecognizer_put_State(ISpeechRecognizer* This,SpeechRecognizerState State) {
18626     return This->lpVtbl->put_State(This,State);
18627 }
18628 static FORCEINLINE HRESULT ISpeechRecognizer_get_State(ISpeechRecognizer* This,SpeechRecognizerState *State) {
18629     return This->lpVtbl->get_State(This,State);
18630 }
18631 static FORCEINLINE HRESULT ISpeechRecognizer_get_Status(ISpeechRecognizer* This,ISpeechRecognizerStatus **Status) {
18632     return This->lpVtbl->get_Status(This,Status);
18633 }
18634 static FORCEINLINE HRESULT ISpeechRecognizer_putref_Profile(ISpeechRecognizer* This,ISpeechObjectToken *Profile) {
18635     return This->lpVtbl->putref_Profile(This,Profile);
18636 }
18637 static FORCEINLINE HRESULT ISpeechRecognizer_get_Profile(ISpeechRecognizer* This,ISpeechObjectToken **Profile) {
18638     return This->lpVtbl->get_Profile(This,Profile);
18639 }
18640 static FORCEINLINE HRESULT ISpeechRecognizer_EmulateRecognition(ISpeechRecognizer* This,VARIANT TextElements,VARIANT *ElementDisplayAttributes,LONG LanguageId) {
18641     return This->lpVtbl->EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId);
18642 }
18643 static FORCEINLINE HRESULT ISpeechRecognizer_CreateRecoContext(ISpeechRecognizer* This,ISpeechRecoContext **NewContext) {
18644     return This->lpVtbl->CreateRecoContext(This,NewContext);
18645 }
18646 static FORCEINLINE HRESULT ISpeechRecognizer_GetFormat(ISpeechRecognizer* This,SpeechFormatType Type,ISpeechAudioFormat **Format) {
18647     return This->lpVtbl->GetFormat(This,Type,Format);
18648 }
18649 static FORCEINLINE HRESULT ISpeechRecognizer_SetPropertyNumber(ISpeechRecognizer* This,const BSTR Name,LONG Value,VARIANT_BOOL *Supported) {
18650     return This->lpVtbl->SetPropertyNumber(This,Name,Value,Supported);
18651 }
18652 static FORCEINLINE HRESULT ISpeechRecognizer_GetPropertyNumber(ISpeechRecognizer* This,const BSTR Name,LONG *Value,VARIANT_BOOL *Supported) {
18653     return This->lpVtbl->GetPropertyNumber(This,Name,Value,Supported);
18654 }
18655 static FORCEINLINE HRESULT ISpeechRecognizer_SetPropertyString(ISpeechRecognizer* This,const BSTR Name,const BSTR Value,VARIANT_BOOL *Supported) {
18656     return This->lpVtbl->SetPropertyString(This,Name,Value,Supported);
18657 }
18658 static FORCEINLINE HRESULT ISpeechRecognizer_GetPropertyString(ISpeechRecognizer* This,const BSTR Name,BSTR *Value,VARIANT_BOOL *Supported) {
18659     return This->lpVtbl->GetPropertyString(This,Name,Value,Supported);
18660 }
18661 static FORCEINLINE HRESULT ISpeechRecognizer_IsUISupported(ISpeechRecognizer* This,const BSTR TypeOfUI,const VARIANT *ExtraData,VARIANT_BOOL *Supported) {
18662     return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported);
18663 }
18664 static FORCEINLINE HRESULT ISpeechRecognizer_DisplayUI(ISpeechRecognizer* This,LONG hWndParent,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData) {
18665     return This->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData);
18666 }
18667 static FORCEINLINE HRESULT ISpeechRecognizer_GetRecognizers(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
18668     return This->lpVtbl->GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
18669 }
18670 static FORCEINLINE HRESULT ISpeechRecognizer_GetAudioInputs(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
18671     return This->lpVtbl->GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
18672 }
18673 static FORCEINLINE HRESULT ISpeechRecognizer_GetProfiles(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
18674     return This->lpVtbl->GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
18675 }
18676 #endif
18677 #endif
18678 
18679 #endif
18680 
18681 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_putref_Recognizer_Proxy(
18682     ISpeechRecognizer* This,
18683     ISpeechObjectToken *Recognizer);
18684 void __RPC_STUB ISpeechRecognizer_putref_Recognizer_Stub(
18685     IRpcStubBuffer* This,
18686     IRpcChannelBuffer* pRpcChannelBuffer,
18687     PRPC_MESSAGE pRpcMessage,
18688     DWORD* pdwStubPhase);
18689 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_Recognizer_Proxy(
18690     ISpeechRecognizer* This,
18691     ISpeechObjectToken **Recognizer);
18692 void __RPC_STUB ISpeechRecognizer_get_Recognizer_Stub(
18693     IRpcStubBuffer* This,
18694     IRpcChannelBuffer* pRpcChannelBuffer,
18695     PRPC_MESSAGE pRpcMessage,
18696     DWORD* pdwStubPhase);
18697 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet_Proxy(
18698     ISpeechRecognizer* This,
18699     VARIANT_BOOL Allow);
18700 void __RPC_STUB ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet_Stub(
18701     IRpcStubBuffer* This,
18702     IRpcChannelBuffer* pRpcChannelBuffer,
18703     PRPC_MESSAGE pRpcMessage,
18704     DWORD* pdwStubPhase);
18705 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet_Proxy(
18706     ISpeechRecognizer* This,
18707     VARIANT_BOOL *Allow);
18708 void __RPC_STUB ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet_Stub(
18709     IRpcStubBuffer* This,
18710     IRpcChannelBuffer* pRpcChannelBuffer,
18711     PRPC_MESSAGE pRpcMessage,
18712     DWORD* pdwStubPhase);
18713 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_putref_AudioInput_Proxy(
18714     ISpeechRecognizer* This,
18715     ISpeechObjectToken *AudioInput);
18716 void __RPC_STUB ISpeechRecognizer_putref_AudioInput_Stub(
18717     IRpcStubBuffer* This,
18718     IRpcChannelBuffer* pRpcChannelBuffer,
18719     PRPC_MESSAGE pRpcMessage,
18720     DWORD* pdwStubPhase);
18721 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_AudioInput_Proxy(
18722     ISpeechRecognizer* This,
18723     ISpeechObjectToken **AudioInput);
18724 void __RPC_STUB ISpeechRecognizer_get_AudioInput_Stub(
18725     IRpcStubBuffer* This,
18726     IRpcChannelBuffer* pRpcChannelBuffer,
18727     PRPC_MESSAGE pRpcMessage,
18728     DWORD* pdwStubPhase);
18729 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_putref_AudioInputStream_Proxy(
18730     ISpeechRecognizer* This,
18731     ISpeechBaseStream *AudioInputStream);
18732 void __RPC_STUB ISpeechRecognizer_putref_AudioInputStream_Stub(
18733     IRpcStubBuffer* This,
18734     IRpcChannelBuffer* pRpcChannelBuffer,
18735     PRPC_MESSAGE pRpcMessage,
18736     DWORD* pdwStubPhase);
18737 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_AudioInputStream_Proxy(
18738     ISpeechRecognizer* This,
18739     ISpeechBaseStream **AudioInputStream);
18740 void __RPC_STUB ISpeechRecognizer_get_AudioInputStream_Stub(
18741     IRpcStubBuffer* This,
18742     IRpcChannelBuffer* pRpcChannelBuffer,
18743     PRPC_MESSAGE pRpcMessage,
18744     DWORD* pdwStubPhase);
18745 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_IsShared_Proxy(
18746     ISpeechRecognizer* This,
18747     VARIANT_BOOL *Shared);
18748 void __RPC_STUB ISpeechRecognizer_get_IsShared_Stub(
18749     IRpcStubBuffer* This,
18750     IRpcChannelBuffer* pRpcChannelBuffer,
18751     PRPC_MESSAGE pRpcMessage,
18752     DWORD* pdwStubPhase);
18753 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_put_State_Proxy(
18754     ISpeechRecognizer* This,
18755     SpeechRecognizerState State);
18756 void __RPC_STUB ISpeechRecognizer_put_State_Stub(
18757     IRpcStubBuffer* This,
18758     IRpcChannelBuffer* pRpcChannelBuffer,
18759     PRPC_MESSAGE pRpcMessage,
18760     DWORD* pdwStubPhase);
18761 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_State_Proxy(
18762     ISpeechRecognizer* This,
18763     SpeechRecognizerState *State);
18764 void __RPC_STUB ISpeechRecognizer_get_State_Stub(
18765     IRpcStubBuffer* This,
18766     IRpcChannelBuffer* pRpcChannelBuffer,
18767     PRPC_MESSAGE pRpcMessage,
18768     DWORD* pdwStubPhase);
18769 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_Status_Proxy(
18770     ISpeechRecognizer* This,
18771     ISpeechRecognizerStatus **Status);
18772 void __RPC_STUB ISpeechRecognizer_get_Status_Stub(
18773     IRpcStubBuffer* This,
18774     IRpcChannelBuffer* pRpcChannelBuffer,
18775     PRPC_MESSAGE pRpcMessage,
18776     DWORD* pdwStubPhase);
18777 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_putref_Profile_Proxy(
18778     ISpeechRecognizer* This,
18779     ISpeechObjectToken *Profile);
18780 void __RPC_STUB ISpeechRecognizer_putref_Profile_Stub(
18781     IRpcStubBuffer* This,
18782     IRpcChannelBuffer* pRpcChannelBuffer,
18783     PRPC_MESSAGE pRpcMessage,
18784     DWORD* pdwStubPhase);
18785 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_Profile_Proxy(
18786     ISpeechRecognizer* This,
18787     ISpeechObjectToken **Profile);
18788 void __RPC_STUB ISpeechRecognizer_get_Profile_Stub(
18789     IRpcStubBuffer* This,
18790     IRpcChannelBuffer* pRpcChannelBuffer,
18791     PRPC_MESSAGE pRpcMessage,
18792     DWORD* pdwStubPhase);
18793 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_EmulateRecognition_Proxy(
18794     ISpeechRecognizer* This,
18795     VARIANT TextElements,
18796     VARIANT *ElementDisplayAttributes,
18797     LONG LanguageId);
18798 void __RPC_STUB ISpeechRecognizer_EmulateRecognition_Stub(
18799     IRpcStubBuffer* This,
18800     IRpcChannelBuffer* pRpcChannelBuffer,
18801     PRPC_MESSAGE pRpcMessage,
18802     DWORD* pdwStubPhase);
18803 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_CreateRecoContext_Proxy(
18804     ISpeechRecognizer* This,
18805     ISpeechRecoContext **NewContext);
18806 void __RPC_STUB ISpeechRecognizer_CreateRecoContext_Stub(
18807     IRpcStubBuffer* This,
18808     IRpcChannelBuffer* pRpcChannelBuffer,
18809     PRPC_MESSAGE pRpcMessage,
18810     DWORD* pdwStubPhase);
18811 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_GetFormat_Proxy(
18812     ISpeechRecognizer* This,
18813     SpeechFormatType Type,
18814     ISpeechAudioFormat **Format);
18815 void __RPC_STUB ISpeechRecognizer_GetFormat_Stub(
18816     IRpcStubBuffer* This,
18817     IRpcChannelBuffer* pRpcChannelBuffer,
18818     PRPC_MESSAGE pRpcMessage,
18819     DWORD* pdwStubPhase);
18820 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_SetPropertyNumber_Proxy(
18821     ISpeechRecognizer* This,
18822     const BSTR Name,
18823     LONG Value,
18824     VARIANT_BOOL *Supported);
18825 void __RPC_STUB ISpeechRecognizer_SetPropertyNumber_Stub(
18826     IRpcStubBuffer* This,
18827     IRpcChannelBuffer* pRpcChannelBuffer,
18828     PRPC_MESSAGE pRpcMessage,
18829     DWORD* pdwStubPhase);
18830 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_GetPropertyNumber_Proxy(
18831     ISpeechRecognizer* This,
18832     const BSTR Name,
18833     LONG *Value,
18834     VARIANT_BOOL *Supported);
18835 void __RPC_STUB ISpeechRecognizer_GetPropertyNumber_Stub(
18836     IRpcStubBuffer* This,
18837     IRpcChannelBuffer* pRpcChannelBuffer,
18838     PRPC_MESSAGE pRpcMessage,
18839     DWORD* pdwStubPhase);
18840 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_SetPropertyString_Proxy(
18841     ISpeechRecognizer* This,
18842     const BSTR Name,
18843     const BSTR Value,
18844     VARIANT_BOOL *Supported);
18845 void __RPC_STUB ISpeechRecognizer_SetPropertyString_Stub(
18846     IRpcStubBuffer* This,
18847     IRpcChannelBuffer* pRpcChannelBuffer,
18848     PRPC_MESSAGE pRpcMessage,
18849     DWORD* pdwStubPhase);
18850 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_GetPropertyString_Proxy(
18851     ISpeechRecognizer* This,
18852     const BSTR Name,
18853     BSTR *Value,
18854     VARIANT_BOOL *Supported);
18855 void __RPC_STUB ISpeechRecognizer_GetPropertyString_Stub(
18856     IRpcStubBuffer* This,
18857     IRpcChannelBuffer* pRpcChannelBuffer,
18858     PRPC_MESSAGE pRpcMessage,
18859     DWORD* pdwStubPhase);
18860 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_IsUISupported_Proxy(
18861     ISpeechRecognizer* This,
18862     const BSTR TypeOfUI,
18863     const VARIANT *ExtraData,
18864     VARIANT_BOOL *Supported);
18865 void __RPC_STUB ISpeechRecognizer_IsUISupported_Stub(
18866     IRpcStubBuffer* This,
18867     IRpcChannelBuffer* pRpcChannelBuffer,
18868     PRPC_MESSAGE pRpcMessage,
18869     DWORD* pdwStubPhase);
18870 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_DisplayUI_Proxy(
18871     ISpeechRecognizer* This,
18872     LONG hWndParent,
18873     BSTR Title,
18874     const BSTR TypeOfUI,
18875     const VARIANT *ExtraData);
18876 void __RPC_STUB ISpeechRecognizer_DisplayUI_Stub(
18877     IRpcStubBuffer* This,
18878     IRpcChannelBuffer* pRpcChannelBuffer,
18879     PRPC_MESSAGE pRpcMessage,
18880     DWORD* pdwStubPhase);
18881 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_GetRecognizers_Proxy(
18882     ISpeechRecognizer* This,
18883     BSTR RequiredAttributes,
18884     BSTR OptionalAttributes,
18885     ISpeechObjectTokens **ObjectTokens);
18886 void __RPC_STUB ISpeechRecognizer_GetRecognizers_Stub(
18887     IRpcStubBuffer* This,
18888     IRpcChannelBuffer* pRpcChannelBuffer,
18889     PRPC_MESSAGE pRpcMessage,
18890     DWORD* pdwStubPhase);
18891 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_GetAudioInputs_Proxy(
18892     ISpeechRecognizer* This,
18893     BSTR RequiredAttributes,
18894     BSTR OptionalAttributes,
18895     ISpeechObjectTokens **ObjectTokens);
18896 void __RPC_STUB ISpeechRecognizer_GetAudioInputs_Stub(
18897     IRpcStubBuffer* This,
18898     IRpcChannelBuffer* pRpcChannelBuffer,
18899     PRPC_MESSAGE pRpcMessage,
18900     DWORD* pdwStubPhase);
18901 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_GetProfiles_Proxy(
18902     ISpeechRecognizer* This,
18903     BSTR RequiredAttributes,
18904     BSTR OptionalAttributes,
18905     ISpeechObjectTokens **ObjectTokens);
18906 void __RPC_STUB ISpeechRecognizer_GetProfiles_Stub(
18907     IRpcStubBuffer* This,
18908     IRpcChannelBuffer* pRpcChannelBuffer,
18909     PRPC_MESSAGE pRpcMessage,
18910     DWORD* pdwStubPhase);
18911 
18912 #endif  /* __ISpeechRecognizer_INTERFACE_DEFINED__ */
18913 
18914 /*****************************************************************************
18915  * ISpeechRecognizerStatus interface
18916  */
18917 #ifndef __ISpeechRecognizerStatus_INTERFACE_DEFINED__
18918 #define __ISpeechRecognizerStatus_INTERFACE_DEFINED__
18919 
18920 DEFINE_GUID(IID_ISpeechRecognizerStatus, 0xbff9e781, 0x53ec, 0x484e, 0xbb,0x8a, 0x0e,0x1b,0x55,0x51,0xe3,0x5c);
18921 #if defined(__cplusplus) && !defined(CINTERFACE)
18922 MIDL_INTERFACE("bff9e781-53ec-484e-bb8a-0e1b5551e35c")
18923 ISpeechRecognizerStatus : public IDispatch
18924 {
18925     virtual HRESULT STDMETHODCALLTYPE get_AudioStatus(
18926         ISpeechAudioStatus **AudioStatus) = 0;
18927 
18928     virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamPosition(
18929         VARIANT *pCurrentStreamPos) = 0;
18930 
18931     virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamNumber(
18932         LONG *StreamNumber) = 0;
18933 
18934     virtual HRESULT STDMETHODCALLTYPE get_NumberOfActiveRules(
18935         LONG *NumberOfActiveRules) = 0;
18936 
18937     virtual HRESULT STDMETHODCALLTYPE get_ClsidEngine(
18938         BSTR *ClsidEngine) = 0;
18939 
18940     virtual HRESULT STDMETHODCALLTYPE get_SupportedLanguages(
18941         VARIANT *SupportedLanguages) = 0;
18942 
18943 };
18944 #ifdef __CRT_UUID_DECL
18945 __CRT_UUID_DECL(ISpeechRecognizerStatus, 0xbff9e781, 0x53ec, 0x484e, 0xbb,0x8a, 0x0e,0x1b,0x55,0x51,0xe3,0x5c)
18946 #endif
18947 #else
18948 typedef struct ISpeechRecognizerStatusVtbl {
18949     BEGIN_INTERFACE
18950 
18951     /*** IUnknown methods ***/
18952     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18953         ISpeechRecognizerStatus* This,
18954         REFIID riid,
18955         void **ppvObject);
18956 
18957     ULONG (STDMETHODCALLTYPE *AddRef)(
18958         ISpeechRecognizerStatus* This);
18959 
18960     ULONG (STDMETHODCALLTYPE *Release)(
18961         ISpeechRecognizerStatus* This);
18962 
18963     /*** IDispatch methods ***/
18964     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18965         ISpeechRecognizerStatus* This,
18966         UINT *pctinfo);
18967 
18968     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18969         ISpeechRecognizerStatus* This,
18970         UINT iTInfo,
18971         LCID lcid,
18972         ITypeInfo **ppTInfo);
18973 
18974     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18975         ISpeechRecognizerStatus* This,
18976         REFIID riid,
18977         LPOLESTR *rgszNames,
18978         UINT cNames,
18979         LCID lcid,
18980         DISPID *rgDispId);
18981 
18982     HRESULT (STDMETHODCALLTYPE *Invoke)(
18983         ISpeechRecognizerStatus* This,
18984         DISPID dispIdMember,
18985         REFIID riid,
18986         LCID lcid,
18987         WORD wFlags,
18988         DISPPARAMS *pDispParams,
18989         VARIANT *pVarResult,
18990         EXCEPINFO *pExcepInfo,
18991         UINT *puArgErr);
18992 
18993     /*** ISpeechRecognizerStatus methods ***/
18994     HRESULT (STDMETHODCALLTYPE *get_AudioStatus)(
18995         ISpeechRecognizerStatus* This,
18996         ISpeechAudioStatus **AudioStatus);
18997 
18998     HRESULT (STDMETHODCALLTYPE *get_CurrentStreamPosition)(
18999         ISpeechRecognizerStatus* This,
19000         VARIANT *pCurrentStreamPos);
19001 
19002     HRESULT (STDMETHODCALLTYPE *get_CurrentStreamNumber)(
19003         ISpeechRecognizerStatus* This,
19004         LONG *StreamNumber);
19005 
19006     HRESULT (STDMETHODCALLTYPE *get_NumberOfActiveRules)(
19007         ISpeechRecognizerStatus* This,
19008         LONG *NumberOfActiveRules);
19009 
19010     HRESULT (STDMETHODCALLTYPE *get_ClsidEngine)(
19011         ISpeechRecognizerStatus* This,
19012         BSTR *ClsidEngine);
19013 
19014     HRESULT (STDMETHODCALLTYPE *get_SupportedLanguages)(
19015         ISpeechRecognizerStatus* This,
19016         VARIANT *SupportedLanguages);
19017 
19018     END_INTERFACE
19019 } ISpeechRecognizerStatusVtbl;
19020 interface ISpeechRecognizerStatus {
19021     CONST_VTBL ISpeechRecognizerStatusVtbl* lpVtbl;
19022 };
19023 
19024 #ifdef COBJMACROS
19025 #ifndef WIDL_C_INLINE_WRAPPERS
19026 /*** IUnknown methods ***/
19027 #define ISpeechRecognizerStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19028 #define ISpeechRecognizerStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
19029 #define ISpeechRecognizerStatus_Release(This) (This)->lpVtbl->Release(This)
19030 /*** IDispatch methods ***/
19031 #define ISpeechRecognizerStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19032 #define ISpeechRecognizerStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19033 #define ISpeechRecognizerStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19034 #define ISpeechRecognizerStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19035 /*** ISpeechRecognizerStatus methods ***/
19036 #define ISpeechRecognizerStatus_get_AudioStatus(This,AudioStatus) (This)->lpVtbl->get_AudioStatus(This,AudioStatus)
19037 #define ISpeechRecognizerStatus_get_CurrentStreamPosition(This,pCurrentStreamPos) (This)->lpVtbl->get_CurrentStreamPosition(This,pCurrentStreamPos)
19038 #define ISpeechRecognizerStatus_get_CurrentStreamNumber(This,StreamNumber) (This)->lpVtbl->get_CurrentStreamNumber(This,StreamNumber)
19039 #define ISpeechRecognizerStatus_get_NumberOfActiveRules(This,NumberOfActiveRules) (This)->lpVtbl->get_NumberOfActiveRules(This,NumberOfActiveRules)
19040 #define ISpeechRecognizerStatus_get_ClsidEngine(This,ClsidEngine) (This)->lpVtbl->get_ClsidEngine(This,ClsidEngine)
19041 #define ISpeechRecognizerStatus_get_SupportedLanguages(This,SupportedLanguages) (This)->lpVtbl->get_SupportedLanguages(This,SupportedLanguages)
19042 #else
19043 /*** IUnknown methods ***/
19044 static FORCEINLINE HRESULT ISpeechRecognizerStatus_QueryInterface(ISpeechRecognizerStatus* This,REFIID riid,void **ppvObject) {
19045     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19046 }
19047 static FORCEINLINE ULONG ISpeechRecognizerStatus_AddRef(ISpeechRecognizerStatus* This) {
19048     return This->lpVtbl->AddRef(This);
19049 }
19050 static FORCEINLINE ULONG ISpeechRecognizerStatus_Release(ISpeechRecognizerStatus* This) {
19051     return This->lpVtbl->Release(This);
19052 }
19053 /*** IDispatch methods ***/
19054 static FORCEINLINE HRESULT ISpeechRecognizerStatus_GetTypeInfoCount(ISpeechRecognizerStatus* This,UINT *pctinfo) {
19055     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19056 }
19057 static FORCEINLINE HRESULT ISpeechRecognizerStatus_GetTypeInfo(ISpeechRecognizerStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19058     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19059 }
19060 static FORCEINLINE HRESULT ISpeechRecognizerStatus_GetIDsOfNames(ISpeechRecognizerStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19061     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19062 }
19063 static FORCEINLINE HRESULT ISpeechRecognizerStatus_Invoke(ISpeechRecognizerStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19064     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19065 }
19066 /*** ISpeechRecognizerStatus methods ***/
19067 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_AudioStatus(ISpeechRecognizerStatus* This,ISpeechAudioStatus **AudioStatus) {
19068     return This->lpVtbl->get_AudioStatus(This,AudioStatus);
19069 }
19070 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_CurrentStreamPosition(ISpeechRecognizerStatus* This,VARIANT *pCurrentStreamPos) {
19071     return This->lpVtbl->get_CurrentStreamPosition(This,pCurrentStreamPos);
19072 }
19073 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_CurrentStreamNumber(ISpeechRecognizerStatus* This,LONG *StreamNumber) {
19074     return This->lpVtbl->get_CurrentStreamNumber(This,StreamNumber);
19075 }
19076 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_NumberOfActiveRules(ISpeechRecognizerStatus* This,LONG *NumberOfActiveRules) {
19077     return This->lpVtbl->get_NumberOfActiveRules(This,NumberOfActiveRules);
19078 }
19079 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_ClsidEngine(ISpeechRecognizerStatus* This,BSTR *ClsidEngine) {
19080     return This->lpVtbl->get_ClsidEngine(This,ClsidEngine);
19081 }
19082 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_SupportedLanguages(ISpeechRecognizerStatus* This,VARIANT *SupportedLanguages) {
19083     return This->lpVtbl->get_SupportedLanguages(This,SupportedLanguages);
19084 }
19085 #endif
19086 #endif
19087 
19088 #endif
19089 
19090 HRESULT STDMETHODCALLTYPE ISpeechRecognizerStatus_get_AudioStatus_Proxy(
19091     ISpeechRecognizerStatus* This,
19092     ISpeechAudioStatus **AudioStatus);
19093 void __RPC_STUB ISpeechRecognizerStatus_get_AudioStatus_Stub(
19094     IRpcStubBuffer* This,
19095     IRpcChannelBuffer* pRpcChannelBuffer,
19096     PRPC_MESSAGE pRpcMessage,
19097     DWORD* pdwStubPhase);
19098 HRESULT STDMETHODCALLTYPE ISpeechRecognizerStatus_get_CurrentStreamPosition_Proxy(
19099     ISpeechRecognizerStatus* This,
19100     VARIANT *pCurrentStreamPos);
19101 void __RPC_STUB ISpeechRecognizerStatus_get_CurrentStreamPosition_Stub(
19102     IRpcStubBuffer* This,
19103     IRpcChannelBuffer* pRpcChannelBuffer,
19104     PRPC_MESSAGE pRpcMessage,
19105     DWORD* pdwStubPhase);
19106 HRESULT STDMETHODCALLTYPE ISpeechRecognizerStatus_get_CurrentStreamNumber_Proxy(
19107     ISpeechRecognizerStatus* This,
19108     LONG *StreamNumber);
19109 void __RPC_STUB ISpeechRecognizerStatus_get_CurrentStreamNumber_Stub(
19110     IRpcStubBuffer* This,
19111     IRpcChannelBuffer* pRpcChannelBuffer,
19112     PRPC_MESSAGE pRpcMessage,
19113     DWORD* pdwStubPhase);
19114 HRESULT STDMETHODCALLTYPE ISpeechRecognizerStatus_get_NumberOfActiveRules_Proxy(
19115     ISpeechRecognizerStatus* This,
19116     LONG *NumberOfActiveRules);
19117 void __RPC_STUB ISpeechRecognizerStatus_get_NumberOfActiveRules_Stub(
19118     IRpcStubBuffer* This,
19119     IRpcChannelBuffer* pRpcChannelBuffer,
19120     PRPC_MESSAGE pRpcMessage,
19121     DWORD* pdwStubPhase);
19122 HRESULT STDMETHODCALLTYPE ISpeechRecognizerStatus_get_ClsidEngine_Proxy(
19123     ISpeechRecognizerStatus* This,
19124     BSTR *ClsidEngine);
19125 void __RPC_STUB ISpeechRecognizerStatus_get_ClsidEngine_Stub(
19126     IRpcStubBuffer* This,
19127     IRpcChannelBuffer* pRpcChannelBuffer,
19128     PRPC_MESSAGE pRpcMessage,
19129     DWORD* pdwStubPhase);
19130 HRESULT STDMETHODCALLTYPE ISpeechRecognizerStatus_get_SupportedLanguages_Proxy(
19131     ISpeechRecognizerStatus* This,
19132     VARIANT *SupportedLanguages);
19133 void __RPC_STUB ISpeechRecognizerStatus_get_SupportedLanguages_Stub(
19134     IRpcStubBuffer* This,
19135     IRpcChannelBuffer* pRpcChannelBuffer,
19136     PRPC_MESSAGE pRpcMessage,
19137     DWORD* pdwStubPhase);
19138 
19139 #endif  /* __ISpeechRecognizerStatus_INTERFACE_DEFINED__ */
19140 
19141 /*****************************************************************************
19142  * ISpeechRecoContext interface
19143  */
19144 #ifndef __ISpeechRecoContext_INTERFACE_DEFINED__
19145 #define __ISpeechRecoContext_INTERFACE_DEFINED__
19146 
19147 DEFINE_GUID(IID_ISpeechRecoContext, 0x580aa49d, 0x7e1e, 0x4809, 0xb8,0xe2, 0x57,0xda,0x80,0x61,0x04,0xb8);
19148 #if defined(__cplusplus) && !defined(CINTERFACE)
19149 MIDL_INTERFACE("580aa49d-7e1e-4809-b8e2-57da806104b8")
19150 ISpeechRecoContext : public IDispatch
19151 {
19152     virtual HRESULT STDMETHODCALLTYPE get_Recognizer(
19153         ISpeechRecognizer **Recognizer) = 0;
19154 
19155     virtual HRESULT STDMETHODCALLTYPE get_AudioInputInterferenceStatus(
19156         SpeechInterference *Interference) = 0;
19157 
19158     virtual HRESULT STDMETHODCALLTYPE get_RequestedUIType(
19159         BSTR *UIType) = 0;
19160 
19161     virtual HRESULT STDMETHODCALLTYPE putref_Voice(
19162         ISpeechVoice *Voice) = 0;
19163 
19164     virtual HRESULT STDMETHODCALLTYPE get_Voice(
19165         ISpeechVoice **Voice) = 0;
19166 
19167     virtual HRESULT STDMETHODCALLTYPE put_AllowVoiceFormatMatchingOnNextSet(
19168         VARIANT_BOOL Allow) = 0;
19169 
19170     virtual HRESULT STDMETHODCALLTYPE get_AllowVoiceFormatMatchingOnNextSet(
19171         VARIANT_BOOL *pAllow) = 0;
19172 
19173     virtual HRESULT STDMETHODCALLTYPE put_VoicePurgeEvent(
19174         SpeechRecoEvents EventInterest) = 0;
19175 
19176     virtual HRESULT STDMETHODCALLTYPE get_VoicePurgeEvent(
19177         SpeechRecoEvents *EventInterest) = 0;
19178 
19179     virtual HRESULT STDMETHODCALLTYPE put_EventInterests(
19180         SpeechRecoEvents EventInterest) = 0;
19181 
19182     virtual HRESULT STDMETHODCALLTYPE get_EventInterests(
19183         SpeechRecoEvents *EventInterest) = 0;
19184 
19185     virtual HRESULT STDMETHODCALLTYPE put_CmdMaxAlternates(
19186         LONG MaxAlternates) = 0;
19187 
19188     virtual HRESULT STDMETHODCALLTYPE get_CmdMaxAlternates(
19189         LONG *MaxAlternates) = 0;
19190 
19191     virtual HRESULT STDMETHODCALLTYPE put_State(
19192         SpeechRecoContextState State) = 0;
19193 
19194     virtual HRESULT STDMETHODCALLTYPE get_State(
19195         SpeechRecoContextState *State) = 0;
19196 
19197     virtual HRESULT STDMETHODCALLTYPE put_RetainedAudio(
19198         SpeechRetainedAudioOptions Option) = 0;
19199 
19200     virtual HRESULT STDMETHODCALLTYPE get_RetainedAudio(
19201         SpeechRetainedAudioOptions *Option) = 0;
19202 
19203     virtual HRESULT STDMETHODCALLTYPE putref_RetainedAudioFormat(
19204         ISpeechAudioFormat *Format) = 0;
19205 
19206     virtual HRESULT STDMETHODCALLTYPE get_RetainedAudioFormat(
19207         ISpeechAudioFormat **Format) = 0;
19208 
19209     virtual HRESULT STDMETHODCALLTYPE Pause(
19210         ) = 0;
19211 
19212     virtual HRESULT STDMETHODCALLTYPE Resume(
19213         ) = 0;
19214 
19215     virtual HRESULT STDMETHODCALLTYPE CreateGrammar(
19216         VARIANT GrammarId,
19217         ISpeechRecoGrammar **Grammar) = 0;
19218 
19219     virtual HRESULT STDMETHODCALLTYPE CreateResultFromMemory(
19220         VARIANT *ResultBlock,
19221         ISpeechRecoResult **Result) = 0;
19222 
19223     virtual HRESULT STDMETHODCALLTYPE Bookmark(
19224         SpeechBookmarkOptions Options,
19225         VARIANT StreamPos,
19226         VARIANT BookmarkId) = 0;
19227 
19228     virtual HRESULT STDMETHODCALLTYPE SetAdaptationData(
19229         BSTR AdaptationString) = 0;
19230 
19231 };
19232 #ifdef __CRT_UUID_DECL
19233 __CRT_UUID_DECL(ISpeechRecoContext, 0x580aa49d, 0x7e1e, 0x4809, 0xb8,0xe2, 0x57,0xda,0x80,0x61,0x04,0xb8)
19234 #endif
19235 #else
19236 typedef struct ISpeechRecoContextVtbl {
19237     BEGIN_INTERFACE
19238 
19239     /*** IUnknown methods ***/
19240     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19241         ISpeechRecoContext* This,
19242         REFIID riid,
19243         void **ppvObject);
19244 
19245     ULONG (STDMETHODCALLTYPE *AddRef)(
19246         ISpeechRecoContext* This);
19247 
19248     ULONG (STDMETHODCALLTYPE *Release)(
19249         ISpeechRecoContext* This);
19250 
19251     /*** IDispatch methods ***/
19252     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19253         ISpeechRecoContext* This,
19254         UINT *pctinfo);
19255 
19256     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19257         ISpeechRecoContext* This,
19258         UINT iTInfo,
19259         LCID lcid,
19260         ITypeInfo **ppTInfo);
19261 
19262     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19263         ISpeechRecoContext* This,
19264         REFIID riid,
19265         LPOLESTR *rgszNames,
19266         UINT cNames,
19267         LCID lcid,
19268         DISPID *rgDispId);
19269 
19270     HRESULT (STDMETHODCALLTYPE *Invoke)(
19271         ISpeechRecoContext* This,
19272         DISPID dispIdMember,
19273         REFIID riid,
19274         LCID lcid,
19275         WORD wFlags,
19276         DISPPARAMS *pDispParams,
19277         VARIANT *pVarResult,
19278         EXCEPINFO *pExcepInfo,
19279         UINT *puArgErr);
19280 
19281     /*** ISpeechRecoContext methods ***/
19282     HRESULT (STDMETHODCALLTYPE *get_Recognizer)(
19283         ISpeechRecoContext* This,
19284         ISpeechRecognizer **Recognizer);
19285 
19286     HRESULT (STDMETHODCALLTYPE *get_AudioInputInterferenceStatus)(
19287         ISpeechRecoContext* This,
19288         SpeechInterference *Interference);
19289 
19290     HRESULT (STDMETHODCALLTYPE *get_RequestedUIType)(
19291         ISpeechRecoContext* This,
19292         BSTR *UIType);
19293 
19294     HRESULT (STDMETHODCALLTYPE *putref_Voice)(
19295         ISpeechRecoContext* This,
19296         ISpeechVoice *Voice);
19297 
19298     HRESULT (STDMETHODCALLTYPE *get_Voice)(
19299         ISpeechRecoContext* This,
19300         ISpeechVoice **Voice);
19301 
19302     HRESULT (STDMETHODCALLTYPE *put_AllowVoiceFormatMatchingOnNextSet)(
19303         ISpeechRecoContext* This,
19304         VARIANT_BOOL Allow);
19305 
19306     HRESULT (STDMETHODCALLTYPE *get_AllowVoiceFormatMatchingOnNextSet)(
19307         ISpeechRecoContext* This,
19308         VARIANT_BOOL *pAllow);
19309 
19310     HRESULT (STDMETHODCALLTYPE *put_VoicePurgeEvent)(
19311         ISpeechRecoContext* This,
19312         SpeechRecoEvents EventInterest);
19313 
19314     HRESULT (STDMETHODCALLTYPE *get_VoicePurgeEvent)(
19315         ISpeechRecoContext* This,
19316         SpeechRecoEvents *EventInterest);
19317 
19318     HRESULT (STDMETHODCALLTYPE *put_EventInterests)(
19319         ISpeechRecoContext* This,
19320         SpeechRecoEvents EventInterest);
19321 
19322     HRESULT (STDMETHODCALLTYPE *get_EventInterests)(
19323         ISpeechRecoContext* This,
19324         SpeechRecoEvents *EventInterest);
19325 
19326     HRESULT (STDMETHODCALLTYPE *put_CmdMaxAlternates)(
19327         ISpeechRecoContext* This,
19328         LONG MaxAlternates);
19329 
19330     HRESULT (STDMETHODCALLTYPE *get_CmdMaxAlternates)(
19331         ISpeechRecoContext* This,
19332         LONG *MaxAlternates);
19333 
19334     HRESULT (STDMETHODCALLTYPE *put_State)(
19335         ISpeechRecoContext* This,
19336         SpeechRecoContextState State);
19337 
19338     HRESULT (STDMETHODCALLTYPE *get_State)(
19339         ISpeechRecoContext* This,
19340         SpeechRecoContextState *State);
19341 
19342     HRESULT (STDMETHODCALLTYPE *put_RetainedAudio)(
19343         ISpeechRecoContext* This,
19344         SpeechRetainedAudioOptions Option);
19345 
19346     HRESULT (STDMETHODCALLTYPE *get_RetainedAudio)(
19347         ISpeechRecoContext* This,
19348         SpeechRetainedAudioOptions *Option);
19349 
19350     HRESULT (STDMETHODCALLTYPE *putref_RetainedAudioFormat)(
19351         ISpeechRecoContext* This,
19352         ISpeechAudioFormat *Format);
19353 
19354     HRESULT (STDMETHODCALLTYPE *get_RetainedAudioFormat)(
19355         ISpeechRecoContext* This,
19356         ISpeechAudioFormat **Format);
19357 
19358     HRESULT (STDMETHODCALLTYPE *Pause)(
19359         ISpeechRecoContext* This);
19360 
19361     HRESULT (STDMETHODCALLTYPE *Resume)(
19362         ISpeechRecoContext* This);
19363 
19364     HRESULT (STDMETHODCALLTYPE *CreateGrammar)(
19365         ISpeechRecoContext* This,
19366         VARIANT GrammarId,
19367         ISpeechRecoGrammar **Grammar);
19368 
19369     HRESULT (STDMETHODCALLTYPE *CreateResultFromMemory)(
19370         ISpeechRecoContext* This,
19371         VARIANT *ResultBlock,
19372         ISpeechRecoResult **Result);
19373 
19374     HRESULT (STDMETHODCALLTYPE *Bookmark)(
19375         ISpeechRecoContext* This,
19376         SpeechBookmarkOptions Options,
19377         VARIANT StreamPos,
19378         VARIANT BookmarkId);
19379 
19380     HRESULT (STDMETHODCALLTYPE *SetAdaptationData)(
19381         ISpeechRecoContext* This,
19382         BSTR AdaptationString);
19383 
19384     END_INTERFACE
19385 } ISpeechRecoContextVtbl;
19386 interface ISpeechRecoContext {
19387     CONST_VTBL ISpeechRecoContextVtbl* lpVtbl;
19388 };
19389 
19390 #ifdef COBJMACROS
19391 #ifndef WIDL_C_INLINE_WRAPPERS
19392 /*** IUnknown methods ***/
19393 #define ISpeechRecoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19394 #define ISpeechRecoContext_AddRef(This) (This)->lpVtbl->AddRef(This)
19395 #define ISpeechRecoContext_Release(This) (This)->lpVtbl->Release(This)
19396 /*** IDispatch methods ***/
19397 #define ISpeechRecoContext_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19398 #define ISpeechRecoContext_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19399 #define ISpeechRecoContext_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19400 #define ISpeechRecoContext_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19401 /*** ISpeechRecoContext methods ***/
19402 #define ISpeechRecoContext_get_Recognizer(This,Recognizer) (This)->lpVtbl->get_Recognizer(This,Recognizer)
19403 #define ISpeechRecoContext_get_AudioInputInterferenceStatus(This,Interference) (This)->lpVtbl->get_AudioInputInterferenceStatus(This,Interference)
19404 #define ISpeechRecoContext_get_RequestedUIType(This,UIType) (This)->lpVtbl->get_RequestedUIType(This,UIType)
19405 #define ISpeechRecoContext_putref_Voice(This,Voice) (This)->lpVtbl->putref_Voice(This,Voice)
19406 #define ISpeechRecoContext_get_Voice(This,Voice) (This)->lpVtbl->get_Voice(This,Voice)
19407 #define ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet(This,Allow) (This)->lpVtbl->put_AllowVoiceFormatMatchingOnNextSet(This,Allow)
19408 #define ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet(This,pAllow) (This)->lpVtbl->get_AllowVoiceFormatMatchingOnNextSet(This,pAllow)
19409 #define ISpeechRecoContext_put_VoicePurgeEvent(This,EventInterest) (This)->lpVtbl->put_VoicePurgeEvent(This,EventInterest)
19410 #define ISpeechRecoContext_get_VoicePurgeEvent(This,EventInterest) (This)->lpVtbl->get_VoicePurgeEvent(This,EventInterest)
19411 #define ISpeechRecoContext_put_EventInterests(This,EventInterest) (This)->lpVtbl->put_EventInterests(This,EventInterest)
19412 #define ISpeechRecoContext_get_EventInterests(This,EventInterest) (This)->lpVtbl->get_EventInterests(This,EventInterest)
19413 #define ISpeechRecoContext_put_CmdMaxAlternates(This,MaxAlternates) (This)->lpVtbl->put_CmdMaxAlternates(This,MaxAlternates)
19414 #define ISpeechRecoContext_get_CmdMaxAlternates(This,MaxAlternates) (This)->lpVtbl->get_CmdMaxAlternates(This,MaxAlternates)
19415 #define ISpeechRecoContext_put_State(This,State) (This)->lpVtbl->put_State(This,State)
19416 #define ISpeechRecoContext_get_State(This,State) (This)->lpVtbl->get_State(This,State)
19417 #define ISpeechRecoContext_put_RetainedAudio(This,Option) (This)->lpVtbl->put_RetainedAudio(This,Option)
19418 #define ISpeechRecoContext_get_RetainedAudio(This,Option) (This)->lpVtbl->get_RetainedAudio(This,Option)
19419 #define ISpeechRecoContext_putref_RetainedAudioFormat(This,Format) (This)->lpVtbl->putref_RetainedAudioFormat(This,Format)
19420 #define ISpeechRecoContext_get_RetainedAudioFormat(This,Format) (This)->lpVtbl->get_RetainedAudioFormat(This,Format)
19421 #define ISpeechRecoContext_Pause(This) (This)->lpVtbl->Pause(This)
19422 #define ISpeechRecoContext_Resume(This) (This)->lpVtbl->Resume(This)
19423 #define ISpeechRecoContext_CreateGrammar(This,GrammarId,Grammar) (This)->lpVtbl->CreateGrammar(This,GrammarId,Grammar)
19424 #define ISpeechRecoContext_CreateResultFromMemory(This,ResultBlock,Result) (This)->lpVtbl->CreateResultFromMemory(This,ResultBlock,Result)
19425 #define ISpeechRecoContext_Bookmark(This,Options,StreamPos,BookmarkId) (This)->lpVtbl->Bookmark(This,Options,StreamPos,BookmarkId)
19426 #define ISpeechRecoContext_SetAdaptationData(This,AdaptationString) (This)->lpVtbl->SetAdaptationData(This,AdaptationString)
19427 #else
19428 /*** IUnknown methods ***/
19429 static FORCEINLINE HRESULT ISpeechRecoContext_QueryInterface(ISpeechRecoContext* This,REFIID riid,void **ppvObject) {
19430     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19431 }
19432 static FORCEINLINE ULONG ISpeechRecoContext_AddRef(ISpeechRecoContext* This) {
19433     return This->lpVtbl->AddRef(This);
19434 }
19435 static FORCEINLINE ULONG ISpeechRecoContext_Release(ISpeechRecoContext* This) {
19436     return This->lpVtbl->Release(This);
19437 }
19438 /*** IDispatch methods ***/
19439 static FORCEINLINE HRESULT ISpeechRecoContext_GetTypeInfoCount(ISpeechRecoContext* This,UINT *pctinfo) {
19440     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19441 }
19442 static FORCEINLINE HRESULT ISpeechRecoContext_GetTypeInfo(ISpeechRecoContext* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19443     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19444 }
19445 static FORCEINLINE HRESULT ISpeechRecoContext_GetIDsOfNames(ISpeechRecoContext* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19446     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19447 }
19448 static FORCEINLINE HRESULT ISpeechRecoContext_Invoke(ISpeechRecoContext* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19449     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19450 }
19451 /*** ISpeechRecoContext methods ***/
19452 static FORCEINLINE HRESULT ISpeechRecoContext_get_Recognizer(ISpeechRecoContext* This,ISpeechRecognizer **Recognizer) {
19453     return This->lpVtbl->get_Recognizer(This,Recognizer);
19454 }
19455 static FORCEINLINE HRESULT ISpeechRecoContext_get_AudioInputInterferenceStatus(ISpeechRecoContext* This,SpeechInterference *Interference) {
19456     return This->lpVtbl->get_AudioInputInterferenceStatus(This,Interference);
19457 }
19458 static FORCEINLINE HRESULT ISpeechRecoContext_get_RequestedUIType(ISpeechRecoContext* This,BSTR *UIType) {
19459     return This->lpVtbl->get_RequestedUIType(This,UIType);
19460 }
19461 static FORCEINLINE HRESULT ISpeechRecoContext_putref_Voice(ISpeechRecoContext* This,ISpeechVoice *Voice) {
19462     return This->lpVtbl->putref_Voice(This,Voice);
19463 }
19464 static FORCEINLINE HRESULT ISpeechRecoContext_get_Voice(ISpeechRecoContext* This,ISpeechVoice **Voice) {
19465     return This->lpVtbl->get_Voice(This,Voice);
19466 }
19467 static FORCEINLINE HRESULT ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet(ISpeechRecoContext* This,VARIANT_BOOL Allow) {
19468     return This->lpVtbl->put_AllowVoiceFormatMatchingOnNextSet(This,Allow);
19469 }
19470 static FORCEINLINE HRESULT ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet(ISpeechRecoContext* This,VARIANT_BOOL *pAllow) {
19471     return This->lpVtbl->get_AllowVoiceFormatMatchingOnNextSet(This,pAllow);
19472 }
19473 static FORCEINLINE HRESULT ISpeechRecoContext_put_VoicePurgeEvent(ISpeechRecoContext* This,SpeechRecoEvents EventInterest) {
19474     return This->lpVtbl->put_VoicePurgeEvent(This,EventInterest);
19475 }
19476 static FORCEINLINE HRESULT ISpeechRecoContext_get_VoicePurgeEvent(ISpeechRecoContext* This,SpeechRecoEvents *EventInterest) {
19477     return This->lpVtbl->get_VoicePurgeEvent(This,EventInterest);
19478 }
19479 static FORCEINLINE HRESULT ISpeechRecoContext_put_EventInterests(ISpeechRecoContext* This,SpeechRecoEvents EventInterest) {
19480     return This->lpVtbl->put_EventInterests(This,EventInterest);
19481 }
19482 static FORCEINLINE HRESULT ISpeechRecoContext_get_EventInterests(ISpeechRecoContext* This,SpeechRecoEvents *EventInterest) {
19483     return This->lpVtbl->get_EventInterests(This,EventInterest);
19484 }
19485 static FORCEINLINE HRESULT ISpeechRecoContext_put_CmdMaxAlternates(ISpeechRecoContext* This,LONG MaxAlternates) {
19486     return This->lpVtbl->put_CmdMaxAlternates(This,MaxAlternates);
19487 }
19488 static FORCEINLINE HRESULT ISpeechRecoContext_get_CmdMaxAlternates(ISpeechRecoContext* This,LONG *MaxAlternates) {
19489     return This->lpVtbl->get_CmdMaxAlternates(This,MaxAlternates);
19490 }
19491 static FORCEINLINE HRESULT ISpeechRecoContext_put_State(ISpeechRecoContext* This,SpeechRecoContextState State) {
19492     return This->lpVtbl->put_State(This,State);
19493 }
19494 static FORCEINLINE HRESULT ISpeechRecoContext_get_State(ISpeechRecoContext* This,SpeechRecoContextState *State) {
19495     return This->lpVtbl->get_State(This,State);
19496 }
19497 static FORCEINLINE HRESULT ISpeechRecoContext_put_RetainedAudio(ISpeechRecoContext* This,SpeechRetainedAudioOptions Option) {
19498     return This->lpVtbl->put_RetainedAudio(This,Option);
19499 }
19500 static FORCEINLINE HRESULT ISpeechRecoContext_get_RetainedAudio(ISpeechRecoContext* This,SpeechRetainedAudioOptions *Option) {
19501     return This->lpVtbl->get_RetainedAudio(This,Option);
19502 }
19503 static FORCEINLINE HRESULT ISpeechRecoContext_putref_RetainedAudioFormat(ISpeechRecoContext* This,ISpeechAudioFormat *Format) {
19504     return This->lpVtbl->putref_RetainedAudioFormat(This,Format);
19505 }
19506 static FORCEINLINE HRESULT ISpeechRecoContext_get_RetainedAudioFormat(ISpeechRecoContext* This,ISpeechAudioFormat **Format) {
19507     return This->lpVtbl->get_RetainedAudioFormat(This,Format);
19508 }
19509 static FORCEINLINE HRESULT ISpeechRecoContext_Pause(ISpeechRecoContext* This) {
19510     return This->lpVtbl->Pause(This);
19511 }
19512 static FORCEINLINE HRESULT ISpeechRecoContext_Resume(ISpeechRecoContext* This) {
19513     return This->lpVtbl->Resume(This);
19514 }
19515 static FORCEINLINE HRESULT ISpeechRecoContext_CreateGrammar(ISpeechRecoContext* This,VARIANT GrammarId,ISpeechRecoGrammar **Grammar) {
19516     return This->lpVtbl->CreateGrammar(This,GrammarId,Grammar);
19517 }
19518 static FORCEINLINE HRESULT ISpeechRecoContext_CreateResultFromMemory(ISpeechRecoContext* This,VARIANT *ResultBlock,ISpeechRecoResult **Result) {
19519     return This->lpVtbl->CreateResultFromMemory(This,ResultBlock,Result);
19520 }
19521 static FORCEINLINE HRESULT ISpeechRecoContext_Bookmark(ISpeechRecoContext* This,SpeechBookmarkOptions Options,VARIANT StreamPos,VARIANT BookmarkId) {
19522     return This->lpVtbl->Bookmark(This,Options,StreamPos,BookmarkId);
19523 }
19524 static FORCEINLINE HRESULT ISpeechRecoContext_SetAdaptationData(ISpeechRecoContext* This,BSTR AdaptationString) {
19525     return This->lpVtbl->SetAdaptationData(This,AdaptationString);
19526 }
19527 #endif
19528 #endif
19529 
19530 #endif
19531 
19532 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_Recognizer_Proxy(
19533     ISpeechRecoContext* This,
19534     ISpeechRecognizer **Recognizer);
19535 void __RPC_STUB ISpeechRecoContext_get_Recognizer_Stub(
19536     IRpcStubBuffer* This,
19537     IRpcChannelBuffer* pRpcChannelBuffer,
19538     PRPC_MESSAGE pRpcMessage,
19539     DWORD* pdwStubPhase);
19540 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_AudioInputInterferenceStatus_Proxy(
19541     ISpeechRecoContext* This,
19542     SpeechInterference *Interference);
19543 void __RPC_STUB ISpeechRecoContext_get_AudioInputInterferenceStatus_Stub(
19544     IRpcStubBuffer* This,
19545     IRpcChannelBuffer* pRpcChannelBuffer,
19546     PRPC_MESSAGE pRpcMessage,
19547     DWORD* pdwStubPhase);
19548 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_RequestedUIType_Proxy(
19549     ISpeechRecoContext* This,
19550     BSTR *UIType);
19551 void __RPC_STUB ISpeechRecoContext_get_RequestedUIType_Stub(
19552     IRpcStubBuffer* This,
19553     IRpcChannelBuffer* pRpcChannelBuffer,
19554     PRPC_MESSAGE pRpcMessage,
19555     DWORD* pdwStubPhase);
19556 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_putref_Voice_Proxy(
19557     ISpeechRecoContext* This,
19558     ISpeechVoice *Voice);
19559 void __RPC_STUB ISpeechRecoContext_putref_Voice_Stub(
19560     IRpcStubBuffer* This,
19561     IRpcChannelBuffer* pRpcChannelBuffer,
19562     PRPC_MESSAGE pRpcMessage,
19563     DWORD* pdwStubPhase);
19564 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_Voice_Proxy(
19565     ISpeechRecoContext* This,
19566     ISpeechVoice **Voice);
19567 void __RPC_STUB ISpeechRecoContext_get_Voice_Stub(
19568     IRpcStubBuffer* This,
19569     IRpcChannelBuffer* pRpcChannelBuffer,
19570     PRPC_MESSAGE pRpcMessage,
19571     DWORD* pdwStubPhase);
19572 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet_Proxy(
19573     ISpeechRecoContext* This,
19574     VARIANT_BOOL Allow);
19575 void __RPC_STUB ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet_Stub(
19576     IRpcStubBuffer* This,
19577     IRpcChannelBuffer* pRpcChannelBuffer,
19578     PRPC_MESSAGE pRpcMessage,
19579     DWORD* pdwStubPhase);
19580 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet_Proxy(
19581     ISpeechRecoContext* This,
19582     VARIANT_BOOL *pAllow);
19583 void __RPC_STUB ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet_Stub(
19584     IRpcStubBuffer* This,
19585     IRpcChannelBuffer* pRpcChannelBuffer,
19586     PRPC_MESSAGE pRpcMessage,
19587     DWORD* pdwStubPhase);
19588 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_put_VoicePurgeEvent_Proxy(
19589     ISpeechRecoContext* This,
19590     SpeechRecoEvents EventInterest);
19591 void __RPC_STUB ISpeechRecoContext_put_VoicePurgeEvent_Stub(
19592     IRpcStubBuffer* This,
19593     IRpcChannelBuffer* pRpcChannelBuffer,
19594     PRPC_MESSAGE pRpcMessage,
19595     DWORD* pdwStubPhase);
19596 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_VoicePurgeEvent_Proxy(
19597     ISpeechRecoContext* This,
19598     SpeechRecoEvents *EventInterest);
19599 void __RPC_STUB ISpeechRecoContext_get_VoicePurgeEvent_Stub(
19600     IRpcStubBuffer* This,
19601     IRpcChannelBuffer* pRpcChannelBuffer,
19602     PRPC_MESSAGE pRpcMessage,
19603     DWORD* pdwStubPhase);
19604 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_put_EventInterests_Proxy(
19605     ISpeechRecoContext* This,
19606     SpeechRecoEvents EventInterest);
19607 void __RPC_STUB ISpeechRecoContext_put_EventInterests_Stub(
19608     IRpcStubBuffer* This,
19609     IRpcChannelBuffer* pRpcChannelBuffer,
19610     PRPC_MESSAGE pRpcMessage,
19611     DWORD* pdwStubPhase);
19612 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_EventInterests_Proxy(
19613     ISpeechRecoContext* This,
19614     SpeechRecoEvents *EventInterest);
19615 void __RPC_STUB ISpeechRecoContext_get_EventInterests_Stub(
19616     IRpcStubBuffer* This,
19617     IRpcChannelBuffer* pRpcChannelBuffer,
19618     PRPC_MESSAGE pRpcMessage,
19619     DWORD* pdwStubPhase);
19620 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_put_CmdMaxAlternates_Proxy(
19621     ISpeechRecoContext* This,
19622     LONG MaxAlternates);
19623 void __RPC_STUB ISpeechRecoContext_put_CmdMaxAlternates_Stub(
19624     IRpcStubBuffer* This,
19625     IRpcChannelBuffer* pRpcChannelBuffer,
19626     PRPC_MESSAGE pRpcMessage,
19627     DWORD* pdwStubPhase);
19628 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_CmdMaxAlternates_Proxy(
19629     ISpeechRecoContext* This,
19630     LONG *MaxAlternates);
19631 void __RPC_STUB ISpeechRecoContext_get_CmdMaxAlternates_Stub(
19632     IRpcStubBuffer* This,
19633     IRpcChannelBuffer* pRpcChannelBuffer,
19634     PRPC_MESSAGE pRpcMessage,
19635     DWORD* pdwStubPhase);
19636 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_put_State_Proxy(
19637     ISpeechRecoContext* This,
19638     SpeechRecoContextState State);
19639 void __RPC_STUB ISpeechRecoContext_put_State_Stub(
19640     IRpcStubBuffer* This,
19641     IRpcChannelBuffer* pRpcChannelBuffer,
19642     PRPC_MESSAGE pRpcMessage,
19643     DWORD* pdwStubPhase);
19644 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_State_Proxy(
19645     ISpeechRecoContext* This,
19646     SpeechRecoContextState *State);
19647 void __RPC_STUB ISpeechRecoContext_get_State_Stub(
19648     IRpcStubBuffer* This,
19649     IRpcChannelBuffer* pRpcChannelBuffer,
19650     PRPC_MESSAGE pRpcMessage,
19651     DWORD* pdwStubPhase);
19652 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_put_RetainedAudio_Proxy(
19653     ISpeechRecoContext* This,
19654     SpeechRetainedAudioOptions Option);
19655 void __RPC_STUB ISpeechRecoContext_put_RetainedAudio_Stub(
19656     IRpcStubBuffer* This,
19657     IRpcChannelBuffer* pRpcChannelBuffer,
19658     PRPC_MESSAGE pRpcMessage,
19659     DWORD* pdwStubPhase);
19660 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_RetainedAudio_Proxy(
19661     ISpeechRecoContext* This,
19662     SpeechRetainedAudioOptions *Option);
19663 void __RPC_STUB ISpeechRecoContext_get_RetainedAudio_Stub(
19664     IRpcStubBuffer* This,
19665     IRpcChannelBuffer* pRpcChannelBuffer,
19666     PRPC_MESSAGE pRpcMessage,
19667     DWORD* pdwStubPhase);
19668 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_putref_RetainedAudioFormat_Proxy(
19669     ISpeechRecoContext* This,
19670     ISpeechAudioFormat *Format);
19671 void __RPC_STUB ISpeechRecoContext_putref_RetainedAudioFormat_Stub(
19672     IRpcStubBuffer* This,
19673     IRpcChannelBuffer* pRpcChannelBuffer,
19674     PRPC_MESSAGE pRpcMessage,
19675     DWORD* pdwStubPhase);
19676 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_RetainedAudioFormat_Proxy(
19677     ISpeechRecoContext* This,
19678     ISpeechAudioFormat **Format);
19679 void __RPC_STUB ISpeechRecoContext_get_RetainedAudioFormat_Stub(
19680     IRpcStubBuffer* This,
19681     IRpcChannelBuffer* pRpcChannelBuffer,
19682     PRPC_MESSAGE pRpcMessage,
19683     DWORD* pdwStubPhase);
19684 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_Pause_Proxy(
19685     ISpeechRecoContext* This);
19686 void __RPC_STUB ISpeechRecoContext_Pause_Stub(
19687     IRpcStubBuffer* This,
19688     IRpcChannelBuffer* pRpcChannelBuffer,
19689     PRPC_MESSAGE pRpcMessage,
19690     DWORD* pdwStubPhase);
19691 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_Resume_Proxy(
19692     ISpeechRecoContext* This);
19693 void __RPC_STUB ISpeechRecoContext_Resume_Stub(
19694     IRpcStubBuffer* This,
19695     IRpcChannelBuffer* pRpcChannelBuffer,
19696     PRPC_MESSAGE pRpcMessage,
19697     DWORD* pdwStubPhase);
19698 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_CreateGrammar_Proxy(
19699     ISpeechRecoContext* This,
19700     VARIANT GrammarId,
19701     ISpeechRecoGrammar **Grammar);
19702 void __RPC_STUB ISpeechRecoContext_CreateGrammar_Stub(
19703     IRpcStubBuffer* This,
19704     IRpcChannelBuffer* pRpcChannelBuffer,
19705     PRPC_MESSAGE pRpcMessage,
19706     DWORD* pdwStubPhase);
19707 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_CreateResultFromMemory_Proxy(
19708     ISpeechRecoContext* This,
19709     VARIANT *ResultBlock,
19710     ISpeechRecoResult **Result);
19711 void __RPC_STUB ISpeechRecoContext_CreateResultFromMemory_Stub(
19712     IRpcStubBuffer* This,
19713     IRpcChannelBuffer* pRpcChannelBuffer,
19714     PRPC_MESSAGE pRpcMessage,
19715     DWORD* pdwStubPhase);
19716 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_Bookmark_Proxy(
19717     ISpeechRecoContext* This,
19718     SpeechBookmarkOptions Options,
19719     VARIANT StreamPos,
19720     VARIANT BookmarkId);
19721 void __RPC_STUB ISpeechRecoContext_Bookmark_Stub(
19722     IRpcStubBuffer* This,
19723     IRpcChannelBuffer* pRpcChannelBuffer,
19724     PRPC_MESSAGE pRpcMessage,
19725     DWORD* pdwStubPhase);
19726 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_SetAdaptationData_Proxy(
19727     ISpeechRecoContext* This,
19728     BSTR AdaptationString);
19729 void __RPC_STUB ISpeechRecoContext_SetAdaptationData_Stub(
19730     IRpcStubBuffer* This,
19731     IRpcChannelBuffer* pRpcChannelBuffer,
19732     PRPC_MESSAGE pRpcMessage,
19733     DWORD* pdwStubPhase);
19734 
19735 #endif  /* __ISpeechRecoContext_INTERFACE_DEFINED__ */
19736 
19737 /*****************************************************************************
19738  * ISpeechRecoGrammar interface
19739  */
19740 #ifndef __ISpeechRecoGrammar_INTERFACE_DEFINED__
19741 #define __ISpeechRecoGrammar_INTERFACE_DEFINED__
19742 
19743 DEFINE_GUID(IID_ISpeechRecoGrammar, 0xb6d6f79f, 0x2158, 0x4e50, 0xb5,0xbc, 0x9a,0x9c,0xcd,0x85,0x2a,0x09);
19744 #if defined(__cplusplus) && !defined(CINTERFACE)
19745 MIDL_INTERFACE("b6d6f79f-2158-4e50-b5bc-9a9ccd852a09")
19746 ISpeechRecoGrammar : public IDispatch
19747 {
19748     virtual HRESULT STDMETHODCALLTYPE get_Id(
19749         VARIANT *Id) = 0;
19750 
19751     virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
19752         ISpeechRecoContext **RecoContext) = 0;
19753 
19754     virtual HRESULT STDMETHODCALLTYPE put_State(
19755         SpeechGrammarState State) = 0;
19756 
19757     virtual HRESULT STDMETHODCALLTYPE get_State(
19758         SpeechGrammarState *State) = 0;
19759 
19760     virtual HRESULT STDMETHODCALLTYPE get_Rules(
19761         ISpeechGrammarRules **Rules) = 0;
19762 
19763     virtual HRESULT STDMETHODCALLTYPE Reset(
19764         SpeechLanguageId NewLanguage = 0) = 0;
19765 
19766     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromFile(
19767         const BSTR FileName,
19768         SpeechLoadOption LoadOption = SLOStatic) = 0;
19769 
19770     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromObject(
19771         const BSTR ClassId,
19772         const BSTR GrammarName,
19773         SpeechLoadOption LoadOption = SLOStatic) = 0;
19774 
19775     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromResource(
19776         LONG hModule,
19777         VARIANT ResourceName,
19778         VARIANT ResourceType,
19779         SpeechLanguageId LanguageId,
19780         SpeechLoadOption LoadOption = SLOStatic) = 0;
19781 
19782     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromMemory(
19783         VARIANT GrammarData,
19784         SpeechLoadOption LoadOption = SLOStatic) = 0;
19785 
19786     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromProprietaryGrammar(
19787         const BSTR ProprietaryGuid,
19788         const BSTR ProprietaryString,
19789         VARIANT ProprietaryData,
19790         SpeechLoadOption LoadOption = SLOStatic) = 0;
19791 
19792     virtual HRESULT STDMETHODCALLTYPE CmdSetRuleState(
19793         const BSTR Name,
19794         SpeechRuleState State) = 0;
19795 
19796     virtual HRESULT STDMETHODCALLTYPE CmdSetRuleIdState(
19797         LONG RuleId,
19798         SpeechRuleState State) = 0;
19799 
19800     virtual HRESULT STDMETHODCALLTYPE DictationLoad(
19801         const BSTR TopicName = L"",
19802         SpeechLoadOption LoadOption = SLOStatic) = 0;
19803 
19804     virtual HRESULT STDMETHODCALLTYPE DictationUnload(
19805         ) = 0;
19806 
19807     virtual HRESULT STDMETHODCALLTYPE DictationSetState(
19808         SpeechRuleState State) = 0;
19809 
19810     virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData(
19811         const BSTR Text,
19812         LONG TextLength,
19813         ISpeechTextSelectionInformation *Info) = 0;
19814 
19815     virtual HRESULT STDMETHODCALLTYPE SetTextSelection(
19816         ISpeechTextSelectionInformation *Info) = 0;
19817 
19818     virtual HRESULT STDMETHODCALLTYPE IsPronounceable(
19819         const BSTR Word,
19820         SpeechWordPronounceable *WordPronounceable) = 0;
19821 
19822 };
19823 #ifdef __CRT_UUID_DECL
19824 __CRT_UUID_DECL(ISpeechRecoGrammar, 0xb6d6f79f, 0x2158, 0x4e50, 0xb5,0xbc, 0x9a,0x9c,0xcd,0x85,0x2a,0x09)
19825 #endif
19826 #else
19827 typedef struct ISpeechRecoGrammarVtbl {
19828     BEGIN_INTERFACE
19829 
19830     /*** IUnknown methods ***/
19831     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19832         ISpeechRecoGrammar* This,
19833         REFIID riid,
19834         void **ppvObject);
19835 
19836     ULONG (STDMETHODCALLTYPE *AddRef)(
19837         ISpeechRecoGrammar* This);
19838 
19839     ULONG (STDMETHODCALLTYPE *Release)(
19840         ISpeechRecoGrammar* This);
19841 
19842     /*** IDispatch methods ***/
19843     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19844         ISpeechRecoGrammar* This,
19845         UINT *pctinfo);
19846 
19847     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19848         ISpeechRecoGrammar* This,
19849         UINT iTInfo,
19850         LCID lcid,
19851         ITypeInfo **ppTInfo);
19852 
19853     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19854         ISpeechRecoGrammar* This,
19855         REFIID riid,
19856         LPOLESTR *rgszNames,
19857         UINT cNames,
19858         LCID lcid,
19859         DISPID *rgDispId);
19860 
19861     HRESULT (STDMETHODCALLTYPE *Invoke)(
19862         ISpeechRecoGrammar* This,
19863         DISPID dispIdMember,
19864         REFIID riid,
19865         LCID lcid,
19866         WORD wFlags,
19867         DISPPARAMS *pDispParams,
19868         VARIANT *pVarResult,
19869         EXCEPINFO *pExcepInfo,
19870         UINT *puArgErr);
19871 
19872     /*** ISpeechRecoGrammar methods ***/
19873     HRESULT (STDMETHODCALLTYPE *get_Id)(
19874         ISpeechRecoGrammar* This,
19875         VARIANT *Id);
19876 
19877     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
19878         ISpeechRecoGrammar* This,
19879         ISpeechRecoContext **RecoContext);
19880 
19881     HRESULT (STDMETHODCALLTYPE *put_State)(
19882         ISpeechRecoGrammar* This,
19883         SpeechGrammarState State);
19884 
19885     HRESULT (STDMETHODCALLTYPE *get_State)(
19886         ISpeechRecoGrammar* This,
19887         SpeechGrammarState *State);
19888 
19889     HRESULT (STDMETHODCALLTYPE *get_Rules)(
19890         ISpeechRecoGrammar* This,
19891         ISpeechGrammarRules **Rules);
19892 
19893     HRESULT (STDMETHODCALLTYPE *Reset)(
19894         ISpeechRecoGrammar* This,
19895         SpeechLanguageId NewLanguage);
19896 
19897     HRESULT (STDMETHODCALLTYPE *CmdLoadFromFile)(
19898         ISpeechRecoGrammar* This,
19899         const BSTR FileName,
19900         SpeechLoadOption LoadOption);
19901 
19902     HRESULT (STDMETHODCALLTYPE *CmdLoadFromObject)(
19903         ISpeechRecoGrammar* This,
19904         const BSTR ClassId,
19905         const BSTR GrammarName,
19906         SpeechLoadOption LoadOption);
19907 
19908     HRESULT (STDMETHODCALLTYPE *CmdLoadFromResource)(
19909         ISpeechRecoGrammar* This,
19910         LONG hModule,
19911         VARIANT ResourceName,
19912         VARIANT ResourceType,
19913         SpeechLanguageId LanguageId,
19914         SpeechLoadOption LoadOption);
19915 
19916     HRESULT (STDMETHODCALLTYPE *CmdLoadFromMemory)(
19917         ISpeechRecoGrammar* This,
19918         VARIANT GrammarData,
19919         SpeechLoadOption LoadOption);
19920 
19921     HRESULT (STDMETHODCALLTYPE *CmdLoadFromProprietaryGrammar)(
19922         ISpeechRecoGrammar* This,
19923         const BSTR ProprietaryGuid,
19924         const BSTR ProprietaryString,
19925         VARIANT ProprietaryData,
19926         SpeechLoadOption LoadOption);
19927 
19928     HRESULT (STDMETHODCALLTYPE *CmdSetRuleState)(
19929         ISpeechRecoGrammar* This,
19930         const BSTR Name,
19931         SpeechRuleState State);
19932 
19933     HRESULT (STDMETHODCALLTYPE *CmdSetRuleIdState)(
19934         ISpeechRecoGrammar* This,
19935         LONG RuleId,
19936         SpeechRuleState State);
19937 
19938     HRESULT (STDMETHODCALLTYPE *DictationLoad)(
19939         ISpeechRecoGrammar* This,
19940         const BSTR TopicName,
19941         SpeechLoadOption LoadOption);
19942 
19943     HRESULT (STDMETHODCALLTYPE *DictationUnload)(
19944         ISpeechRecoGrammar* This);
19945 
19946     HRESULT (STDMETHODCALLTYPE *DictationSetState)(
19947         ISpeechRecoGrammar* This,
19948         SpeechRuleState State);
19949 
19950     HRESULT (STDMETHODCALLTYPE *SetWordSequenceData)(
19951         ISpeechRecoGrammar* This,
19952         const BSTR Text,
19953         LONG TextLength,
19954         ISpeechTextSelectionInformation *Info);
19955 
19956     HRESULT (STDMETHODCALLTYPE *SetTextSelection)(
19957         ISpeechRecoGrammar* This,
19958         ISpeechTextSelectionInformation *Info);
19959 
19960     HRESULT (STDMETHODCALLTYPE *IsPronounceable)(
19961         ISpeechRecoGrammar* This,
19962         const BSTR Word,
19963         SpeechWordPronounceable *WordPronounceable);
19964 
19965     END_INTERFACE
19966 } ISpeechRecoGrammarVtbl;
19967 interface ISpeechRecoGrammar {
19968     CONST_VTBL ISpeechRecoGrammarVtbl* lpVtbl;
19969 };
19970 
19971 #ifdef COBJMACROS
19972 #ifndef WIDL_C_INLINE_WRAPPERS
19973 /*** IUnknown methods ***/
19974 #define ISpeechRecoGrammar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19975 #define ISpeechRecoGrammar_AddRef(This) (This)->lpVtbl->AddRef(This)
19976 #define ISpeechRecoGrammar_Release(This) (This)->lpVtbl->Release(This)
19977 /*** IDispatch methods ***/
19978 #define ISpeechRecoGrammar_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19979 #define ISpeechRecoGrammar_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19980 #define ISpeechRecoGrammar_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19981 #define ISpeechRecoGrammar_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19982 /*** ISpeechRecoGrammar methods ***/
19983 #define ISpeechRecoGrammar_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
19984 #define ISpeechRecoGrammar_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
19985 #define ISpeechRecoGrammar_put_State(This,State) (This)->lpVtbl->put_State(This,State)
19986 #define ISpeechRecoGrammar_get_State(This,State) (This)->lpVtbl->get_State(This,State)
19987 #define ISpeechRecoGrammar_get_Rules(This,Rules) (This)->lpVtbl->get_Rules(This,Rules)
19988 #define ISpeechRecoGrammar_Reset(This,NewLanguage) (This)->lpVtbl->Reset(This,NewLanguage)
19989 #define ISpeechRecoGrammar_CmdLoadFromFile(This,FileName,LoadOption) (This)->lpVtbl->CmdLoadFromFile(This,FileName,LoadOption)
19990 #define ISpeechRecoGrammar_CmdLoadFromObject(This,ClassId,GrammarName,LoadOption) (This)->lpVtbl->CmdLoadFromObject(This,ClassId,GrammarName,LoadOption)
19991 #define ISpeechRecoGrammar_CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption) (This)->lpVtbl->CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption)
19992 #define ISpeechRecoGrammar_CmdLoadFromMemory(This,GrammarData,LoadOption) (This)->lpVtbl->CmdLoadFromMemory(This,GrammarData,LoadOption)
19993 #define ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption) (This)->lpVtbl->CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption)
19994 #define ISpeechRecoGrammar_CmdSetRuleState(This,Name,State) (This)->lpVtbl->CmdSetRuleState(This,Name,State)
19995 #define ISpeechRecoGrammar_CmdSetRuleIdState(This,RuleId,State) (This)->lpVtbl->CmdSetRuleIdState(This,RuleId,State)
19996 #define ISpeechRecoGrammar_DictationLoad(This,TopicName,LoadOption) (This)->lpVtbl->DictationLoad(This,TopicName,LoadOption)
19997 #define ISpeechRecoGrammar_DictationUnload(This) (This)->lpVtbl->DictationUnload(This)
19998 #define ISpeechRecoGrammar_DictationSetState(This,State) (This)->lpVtbl->DictationSetState(This,State)
19999 #define ISpeechRecoGrammar_SetWordSequenceData(This,Text,TextLength,Info) (This)->lpVtbl->SetWordSequenceData(This,Text,TextLength,Info)
20000 #define ISpeechRecoGrammar_SetTextSelection(This,Info) (This)->lpVtbl->SetTextSelection(This,Info)
20001 #define ISpeechRecoGrammar_IsPronounceable(This,Word,WordPronounceable) (This)->lpVtbl->IsPronounceable(This,Word,WordPronounceable)
20002 #else
20003 /*** IUnknown methods ***/
20004 static FORCEINLINE HRESULT ISpeechRecoGrammar_QueryInterface(ISpeechRecoGrammar* This,REFIID riid,void **ppvObject) {
20005     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20006 }
20007 static FORCEINLINE ULONG ISpeechRecoGrammar_AddRef(ISpeechRecoGrammar* This) {
20008     return This->lpVtbl->AddRef(This);
20009 }
20010 static FORCEINLINE ULONG ISpeechRecoGrammar_Release(ISpeechRecoGrammar* This) {
20011     return This->lpVtbl->Release(This);
20012 }
20013 /*** IDispatch methods ***/
20014 static FORCEINLINE HRESULT ISpeechRecoGrammar_GetTypeInfoCount(ISpeechRecoGrammar* This,UINT *pctinfo) {
20015     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
20016 }
20017 static FORCEINLINE HRESULT ISpeechRecoGrammar_GetTypeInfo(ISpeechRecoGrammar* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
20018     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
20019 }
20020 static FORCEINLINE HRESULT ISpeechRecoGrammar_GetIDsOfNames(ISpeechRecoGrammar* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
20021     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
20022 }
20023 static FORCEINLINE HRESULT ISpeechRecoGrammar_Invoke(ISpeechRecoGrammar* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
20024     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
20025 }
20026 /*** ISpeechRecoGrammar methods ***/
20027 static FORCEINLINE HRESULT ISpeechRecoGrammar_get_Id(ISpeechRecoGrammar* This,VARIANT *Id) {
20028     return This->lpVtbl->get_Id(This,Id);
20029 }
20030 static FORCEINLINE HRESULT ISpeechRecoGrammar_get_RecoContext(ISpeechRecoGrammar* This,ISpeechRecoContext **RecoContext) {
20031     return This->lpVtbl->get_RecoContext(This,RecoContext);
20032 }
20033 static FORCEINLINE HRESULT ISpeechRecoGrammar_put_State(ISpeechRecoGrammar* This,SpeechGrammarState State) {
20034     return This->lpVtbl->put_State(This,State);
20035 }
20036 static FORCEINLINE HRESULT ISpeechRecoGrammar_get_State(ISpeechRecoGrammar* This,SpeechGrammarState *State) {
20037     return This->lpVtbl->get_State(This,State);
20038 }
20039 static FORCEINLINE HRESULT ISpeechRecoGrammar_get_Rules(ISpeechRecoGrammar* This,ISpeechGrammarRules **Rules) {
20040     return This->lpVtbl->get_Rules(This,Rules);
20041 }
20042 static FORCEINLINE HRESULT ISpeechRecoGrammar_Reset(ISpeechRecoGrammar* This,SpeechLanguageId NewLanguage) {
20043     return This->lpVtbl->Reset(This,NewLanguage);
20044 }
20045 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromFile(ISpeechRecoGrammar* This,const BSTR FileName,SpeechLoadOption LoadOption) {
20046     return This->lpVtbl->CmdLoadFromFile(This,FileName,LoadOption);
20047 }
20048 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromObject(ISpeechRecoGrammar* This,const BSTR ClassId,const BSTR GrammarName,SpeechLoadOption LoadOption) {
20049     return This->lpVtbl->CmdLoadFromObject(This,ClassId,GrammarName,LoadOption);
20050 }
20051 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromResource(ISpeechRecoGrammar* This,LONG hModule,VARIANT ResourceName,VARIANT ResourceType,SpeechLanguageId LanguageId,SpeechLoadOption LoadOption) {
20052     return This->lpVtbl->CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption);
20053 }
20054 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromMemory(ISpeechRecoGrammar* This,VARIANT GrammarData,SpeechLoadOption LoadOption) {
20055     return This->lpVtbl->CmdLoadFromMemory(This,GrammarData,LoadOption);
20056 }
20057 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar(ISpeechRecoGrammar* This,const BSTR ProprietaryGuid,const BSTR ProprietaryString,VARIANT ProprietaryData,SpeechLoadOption LoadOption) {
20058     return This->lpVtbl->CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption);
20059 }
20060 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdSetRuleState(ISpeechRecoGrammar* This,const BSTR Name,SpeechRuleState State) {
20061     return This->lpVtbl->CmdSetRuleState(This,Name,State);
20062 }
20063 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdSetRuleIdState(ISpeechRecoGrammar* This,LONG RuleId,SpeechRuleState State) {
20064     return This->lpVtbl->CmdSetRuleIdState(This,RuleId,State);
20065 }
20066 static FORCEINLINE HRESULT ISpeechRecoGrammar_DictationLoad(ISpeechRecoGrammar* This,const BSTR TopicName,SpeechLoadOption LoadOption) {
20067     return This->lpVtbl->DictationLoad(This,TopicName,LoadOption);
20068 }
20069 static FORCEINLINE HRESULT ISpeechRecoGrammar_DictationUnload(ISpeechRecoGrammar* This) {
20070     return This->lpVtbl->DictationUnload(This);
20071 }
20072 static FORCEINLINE HRESULT ISpeechRecoGrammar_DictationSetState(ISpeechRecoGrammar* This,SpeechRuleState State) {
20073     return This->lpVtbl->DictationSetState(This,State);
20074 }
20075 static FORCEINLINE HRESULT ISpeechRecoGrammar_SetWordSequenceData(ISpeechRecoGrammar* This,const BSTR Text,LONG TextLength,ISpeechTextSelectionInformation *Info) {
20076     return This->lpVtbl->SetWordSequenceData(This,Text,TextLength,Info);
20077 }
20078 static FORCEINLINE HRESULT ISpeechRecoGrammar_SetTextSelection(ISpeechRecoGrammar* This,ISpeechTextSelectionInformation *Info) {
20079     return This->lpVtbl->SetTextSelection(This,Info);
20080 }
20081 static FORCEINLINE HRESULT ISpeechRecoGrammar_IsPronounceable(ISpeechRecoGrammar* This,const BSTR Word,SpeechWordPronounceable *WordPronounceable) {
20082     return This->lpVtbl->IsPronounceable(This,Word,WordPronounceable);
20083 }
20084 #endif
20085 #endif
20086 
20087 #endif
20088 
20089 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_get_Id_Proxy(
20090     ISpeechRecoGrammar* This,
20091     VARIANT *Id);
20092 void __RPC_STUB ISpeechRecoGrammar_get_Id_Stub(
20093     IRpcStubBuffer* This,
20094     IRpcChannelBuffer* pRpcChannelBuffer,
20095     PRPC_MESSAGE pRpcMessage,
20096     DWORD* pdwStubPhase);
20097 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_get_RecoContext_Proxy(
20098     ISpeechRecoGrammar* This,
20099     ISpeechRecoContext **RecoContext);
20100 void __RPC_STUB ISpeechRecoGrammar_get_RecoContext_Stub(
20101     IRpcStubBuffer* This,
20102     IRpcChannelBuffer* pRpcChannelBuffer,
20103     PRPC_MESSAGE pRpcMessage,
20104     DWORD* pdwStubPhase);
20105 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_put_State_Proxy(
20106     ISpeechRecoGrammar* This,
20107     SpeechGrammarState State);
20108 void __RPC_STUB ISpeechRecoGrammar_put_State_Stub(
20109     IRpcStubBuffer* This,
20110     IRpcChannelBuffer* pRpcChannelBuffer,
20111     PRPC_MESSAGE pRpcMessage,
20112     DWORD* pdwStubPhase);
20113 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_get_State_Proxy(
20114     ISpeechRecoGrammar* This,
20115     SpeechGrammarState *State);
20116 void __RPC_STUB ISpeechRecoGrammar_get_State_Stub(
20117     IRpcStubBuffer* This,
20118     IRpcChannelBuffer* pRpcChannelBuffer,
20119     PRPC_MESSAGE pRpcMessage,
20120     DWORD* pdwStubPhase);
20121 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_get_Rules_Proxy(
20122     ISpeechRecoGrammar* This,
20123     ISpeechGrammarRules **Rules);
20124 void __RPC_STUB ISpeechRecoGrammar_get_Rules_Stub(
20125     IRpcStubBuffer* This,
20126     IRpcChannelBuffer* pRpcChannelBuffer,
20127     PRPC_MESSAGE pRpcMessage,
20128     DWORD* pdwStubPhase);
20129 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_Reset_Proxy(
20130     ISpeechRecoGrammar* This,
20131     SpeechLanguageId NewLanguage);
20132 void __RPC_STUB ISpeechRecoGrammar_Reset_Stub(
20133     IRpcStubBuffer* This,
20134     IRpcChannelBuffer* pRpcChannelBuffer,
20135     PRPC_MESSAGE pRpcMessage,
20136     DWORD* pdwStubPhase);
20137 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_CmdLoadFromFile_Proxy(
20138     ISpeechRecoGrammar* This,
20139     const BSTR FileName,
20140     SpeechLoadOption LoadOption);
20141 void __RPC_STUB ISpeechRecoGrammar_CmdLoadFromFile_Stub(
20142     IRpcStubBuffer* This,
20143     IRpcChannelBuffer* pRpcChannelBuffer,
20144     PRPC_MESSAGE pRpcMessage,
20145     DWORD* pdwStubPhase);
20146 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_CmdLoadFromObject_Proxy(
20147     ISpeechRecoGrammar* This,
20148     const BSTR ClassId,
20149     const BSTR GrammarName,
20150     SpeechLoadOption LoadOption);
20151 void __RPC_STUB ISpeechRecoGrammar_CmdLoadFromObject_Stub(
20152     IRpcStubBuffer* This,
20153     IRpcChannelBuffer* pRpcChannelBuffer,
20154     PRPC_MESSAGE pRpcMessage,
20155     DWORD* pdwStubPhase);
20156 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_CmdLoadFromResource_Proxy(
20157     ISpeechRecoGrammar* This,
20158     LONG hModule,
20159     VARIANT ResourceName,
20160     VARIANT ResourceType,
20161     SpeechLanguageId LanguageId,
20162     SpeechLoadOption LoadOption);
20163 void __RPC_STUB ISpeechRecoGrammar_CmdLoadFromResource_Stub(
20164     IRpcStubBuffer* This,
20165     IRpcChannelBuffer* pRpcChannelBuffer,
20166     PRPC_MESSAGE pRpcMessage,
20167     DWORD* pdwStubPhase);
20168 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_CmdLoadFromMemory_Proxy(
20169     ISpeechRecoGrammar* This,
20170     VARIANT GrammarData,
20171     SpeechLoadOption LoadOption);
20172 void __RPC_STUB ISpeechRecoGrammar_CmdLoadFromMemory_Stub(
20173     IRpcStubBuffer* This,
20174     IRpcChannelBuffer* pRpcChannelBuffer,
20175     PRPC_MESSAGE pRpcMessage,
20176     DWORD* pdwStubPhase);
20177 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar_Proxy(
20178     ISpeechRecoGrammar* This,
20179     const BSTR ProprietaryGuid,
20180     const BSTR ProprietaryString,
20181     VARIANT ProprietaryData,
20182     SpeechLoadOption LoadOption);
20183 void __RPC_STUB ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar_Stub(
20184     IRpcStubBuffer* This,
20185     IRpcChannelBuffer* pRpcChannelBuffer,
20186     PRPC_MESSAGE pRpcMessage,
20187     DWORD* pdwStubPhase);
20188 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_CmdSetRuleState_Proxy(
20189     ISpeechRecoGrammar* This,
20190     const BSTR Name,
20191     SpeechRuleState State);
20192 void __RPC_STUB ISpeechRecoGrammar_CmdSetRuleState_Stub(
20193     IRpcStubBuffer* This,
20194     IRpcChannelBuffer* pRpcChannelBuffer,
20195     PRPC_MESSAGE pRpcMessage,
20196     DWORD* pdwStubPhase);
20197 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_CmdSetRuleIdState_Proxy(
20198     ISpeechRecoGrammar* This,
20199     LONG RuleId,
20200     SpeechRuleState State);
20201 void __RPC_STUB ISpeechRecoGrammar_CmdSetRuleIdState_Stub(
20202     IRpcStubBuffer* This,
20203     IRpcChannelBuffer* pRpcChannelBuffer,
20204     PRPC_MESSAGE pRpcMessage,
20205     DWORD* pdwStubPhase);
20206 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_DictationLoad_Proxy(
20207     ISpeechRecoGrammar* This,
20208     const BSTR TopicName,
20209     SpeechLoadOption LoadOption);
20210 void __RPC_STUB ISpeechRecoGrammar_DictationLoad_Stub(
20211     IRpcStubBuffer* This,
20212     IRpcChannelBuffer* pRpcChannelBuffer,
20213     PRPC_MESSAGE pRpcMessage,
20214     DWORD* pdwStubPhase);
20215 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_DictationUnload_Proxy(
20216     ISpeechRecoGrammar* This);
20217 void __RPC_STUB ISpeechRecoGrammar_DictationUnload_Stub(
20218     IRpcStubBuffer* This,
20219     IRpcChannelBuffer* pRpcChannelBuffer,
20220     PRPC_MESSAGE pRpcMessage,
20221     DWORD* pdwStubPhase);
20222 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_DictationSetState_Proxy(
20223     ISpeechRecoGrammar* This,
20224     SpeechRuleState State);
20225 void __RPC_STUB ISpeechRecoGrammar_DictationSetState_Stub(
20226     IRpcStubBuffer* This,
20227     IRpcChannelBuffer* pRpcChannelBuffer,
20228     PRPC_MESSAGE pRpcMessage,
20229     DWORD* pdwStubPhase);
20230 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_SetWordSequenceData_Proxy(
20231     ISpeechRecoGrammar* This,
20232     const BSTR Text,
20233     LONG TextLength,
20234     ISpeechTextSelectionInformation *Info);
20235 void __RPC_STUB ISpeechRecoGrammar_SetWordSequenceData_Stub(
20236     IRpcStubBuffer* This,
20237     IRpcChannelBuffer* pRpcChannelBuffer,
20238     PRPC_MESSAGE pRpcMessage,
20239     DWORD* pdwStubPhase);
20240 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_SetTextSelection_Proxy(
20241     ISpeechRecoGrammar* This,
20242     ISpeechTextSelectionInformation *Info);
20243 void __RPC_STUB ISpeechRecoGrammar_SetTextSelection_Stub(
20244     IRpcStubBuffer* This,
20245     IRpcChannelBuffer* pRpcChannelBuffer,
20246     PRPC_MESSAGE pRpcMessage,
20247     DWORD* pdwStubPhase);
20248 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_IsPronounceable_Proxy(
20249     ISpeechRecoGrammar* This,
20250     const BSTR Word,
20251     SpeechWordPronounceable *WordPronounceable);
20252 void __RPC_STUB ISpeechRecoGrammar_IsPronounceable_Stub(
20253     IRpcStubBuffer* This,
20254     IRpcChannelBuffer* pRpcChannelBuffer,
20255     PRPC_MESSAGE pRpcMessage,
20256     DWORD* pdwStubPhase);
20257 
20258 #endif  /* __ISpeechRecoGrammar_INTERFACE_DEFINED__ */
20259 
20260 /*****************************************************************************
20261  * _ISpeechRecoContextEvents dispinterface
20262  */
20263 #ifndef ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__
20264 #define ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__
20265 
20266 DEFINE_GUID(DIID__ISpeechRecoContextEvents, 0x7b8fcb42, 0x0e9d, 0x4f00, 0xa0,0x48, 0x7b,0x04,0xd6,0x17,0x9d,0x3d);
20267 #if defined(__cplusplus) && !defined(CINTERFACE)
20268 MIDL_INTERFACE("7b8fcb42-0e9d-4f00-a048-7b04d6179d3d")
20269 _ISpeechRecoContextEvents : public IDispatch
20270 {
20271 };
20272 #ifdef __CRT_UUID_DECL
20273 __CRT_UUID_DECL(_ISpeechRecoContextEvents, 0x7b8fcb42, 0x0e9d, 0x4f00, 0xa0,0x48, 0x7b,0x04,0xd6,0x17,0x9d,0x3d)
20274 #endif
20275 #else
20276 typedef struct _ISpeechRecoContextEventsVtbl {
20277     BEGIN_INTERFACE
20278 
20279     /*** IUnknown methods ***/
20280     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20281         _ISpeechRecoContextEvents* This,
20282         REFIID riid,
20283         void **ppvObject);
20284 
20285     ULONG (STDMETHODCALLTYPE *AddRef)(
20286         _ISpeechRecoContextEvents* This);
20287 
20288     ULONG (STDMETHODCALLTYPE *Release)(
20289         _ISpeechRecoContextEvents* This);
20290 
20291     /*** IDispatch methods ***/
20292     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20293         _ISpeechRecoContextEvents* This,
20294         UINT *pctinfo);
20295 
20296     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20297         _ISpeechRecoContextEvents* This,
20298         UINT iTInfo,
20299         LCID lcid,
20300         ITypeInfo **ppTInfo);
20301 
20302     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20303         _ISpeechRecoContextEvents* This,
20304         REFIID riid,
20305         LPOLESTR *rgszNames,
20306         UINT cNames,
20307         LCID lcid,
20308         DISPID *rgDispId);
20309 
20310     HRESULT (STDMETHODCALLTYPE *Invoke)(
20311         _ISpeechRecoContextEvents* This,
20312         DISPID dispIdMember,
20313         REFIID riid,
20314         LCID lcid,
20315         WORD wFlags,
20316         DISPPARAMS *pDispParams,
20317         VARIANT *pVarResult,
20318         EXCEPINFO *pExcepInfo,
20319         UINT *puArgErr);
20320 
20321     END_INTERFACE
20322 } _ISpeechRecoContextEventsVtbl;
20323 interface _ISpeechRecoContextEvents {
20324     CONST_VTBL _ISpeechRecoContextEventsVtbl* lpVtbl;
20325 };
20326 
20327 #ifdef COBJMACROS
20328 #ifndef WIDL_C_INLINE_WRAPPERS
20329 /*** IUnknown methods ***/
20330 #define _ISpeechRecoContextEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20331 #define _ISpeechRecoContextEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
20332 #define _ISpeechRecoContextEvents_Release(This) (This)->lpVtbl->Release(This)
20333 /*** IDispatch methods ***/
20334 #define _ISpeechRecoContextEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20335 #define _ISpeechRecoContextEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
20336 #define _ISpeechRecoContextEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
20337 #define _ISpeechRecoContextEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
20338 #else
20339 /*** IUnknown methods ***/
20340 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_QueryInterface(_ISpeechRecoContextEvents* This,REFIID riid,void **ppvObject) {
20341     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20342 }
20343 static FORCEINLINE ULONG _ISpeechRecoContextEvents_AddRef(_ISpeechRecoContextEvents* This) {
20344     return This->lpVtbl->AddRef(This);
20345 }
20346 static FORCEINLINE ULONG _ISpeechRecoContextEvents_Release(_ISpeechRecoContextEvents* This) {
20347     return This->lpVtbl->Release(This);
20348 }
20349 /*** IDispatch methods ***/
20350 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_GetTypeInfoCount(_ISpeechRecoContextEvents* This,UINT *pctinfo) {
20351     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
20352 }
20353 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_GetTypeInfo(_ISpeechRecoContextEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
20354     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
20355 }
20356 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_GetIDsOfNames(_ISpeechRecoContextEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
20357     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
20358 }
20359 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_Invoke(_ISpeechRecoContextEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
20360     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
20361 }
20362 #endif
20363 #endif
20364 
20365 #endif
20366 
20367 #endif  /* ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__ */
20368 
20369 /*****************************************************************************
20370  * ISpeechGrammarRule interface
20371  */
20372 #ifndef __ISpeechGrammarRule_INTERFACE_DEFINED__
20373 #define __ISpeechGrammarRule_INTERFACE_DEFINED__
20374 
20375 DEFINE_GUID(IID_ISpeechGrammarRule, 0xafe719cf, 0x5dd1, 0x44f2, 0x99,0x9c, 0x7a,0x39,0x9f,0x1c,0xfc,0xcc);
20376 #if defined(__cplusplus) && !defined(CINTERFACE)
20377 MIDL_INTERFACE("afe719cf-5dd1-44f2-999c-7a399f1cfccc")
20378 ISpeechGrammarRule : public IDispatch
20379 {
20380     virtual HRESULT STDMETHODCALLTYPE get_Attributes(
20381         SpeechRuleAttributes *Attributes) = 0;
20382 
20383     virtual HRESULT STDMETHODCALLTYPE get_InitialState(
20384         ISpeechGrammarRuleState **State) = 0;
20385 
20386     virtual HRESULT STDMETHODCALLTYPE get_Name(
20387         BSTR *Name) = 0;
20388 
20389     virtual HRESULT STDMETHODCALLTYPE get_Id(
20390         LONG *Id) = 0;
20391 
20392     virtual HRESULT STDMETHODCALLTYPE Clear(
20393         ) = 0;
20394 
20395     virtual HRESULT STDMETHODCALLTYPE AddResource(
20396         const BSTR ResourceName,
20397         const BSTR ResourceValue) = 0;
20398 
20399     virtual HRESULT STDMETHODCALLTYPE AddState(
20400         ISpeechGrammarRuleState **State) = 0;
20401 
20402 };
20403 #ifdef __CRT_UUID_DECL
20404 __CRT_UUID_DECL(ISpeechGrammarRule, 0xafe719cf, 0x5dd1, 0x44f2, 0x99,0x9c, 0x7a,0x39,0x9f,0x1c,0xfc,0xcc)
20405 #endif
20406 #else
20407 typedef struct ISpeechGrammarRuleVtbl {
20408     BEGIN_INTERFACE
20409 
20410     /*** IUnknown methods ***/
20411     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20412         ISpeechGrammarRule* This,
20413         REFIID riid,
20414         void **ppvObject);
20415 
20416     ULONG (STDMETHODCALLTYPE *AddRef)(
20417         ISpeechGrammarRule* This);
20418 
20419     ULONG (STDMETHODCALLTYPE *Release)(
20420         ISpeechGrammarRule* This);
20421 
20422     /*** IDispatch methods ***/
20423     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20424         ISpeechGrammarRule* This,
20425         UINT *pctinfo);
20426 
20427     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20428         ISpeechGrammarRule* This,
20429         UINT iTInfo,
20430         LCID lcid,
20431         ITypeInfo **ppTInfo);
20432 
20433     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20434         ISpeechGrammarRule* This,
20435         REFIID riid,
20436         LPOLESTR *rgszNames,
20437         UINT cNames,
20438         LCID lcid,
20439         DISPID *rgDispId);
20440 
20441     HRESULT (STDMETHODCALLTYPE *Invoke)(
20442         ISpeechGrammarRule* This,
20443         DISPID dispIdMember,
20444         REFIID riid,
20445         LCID lcid,
20446         WORD wFlags,
20447         DISPPARAMS *pDispParams,
20448         VARIANT *pVarResult,
20449         EXCEPINFO *pExcepInfo,
20450         UINT *puArgErr);
20451 
20452     /*** ISpeechGrammarRule methods ***/
20453     HRESULT (STDMETHODCALLTYPE *get_Attributes)(
20454         ISpeechGrammarRule* This,
20455         SpeechRuleAttributes *Attributes);
20456 
20457     HRESULT (STDMETHODCALLTYPE *get_InitialState)(
20458         ISpeechGrammarRule* This,
20459         ISpeechGrammarRuleState **State);
20460 
20461     HRESULT (STDMETHODCALLTYPE *get_Name)(
20462         ISpeechGrammarRule* This,
20463         BSTR *Name);
20464 
20465     HRESULT (STDMETHODCALLTYPE *get_Id)(
20466         ISpeechGrammarRule* This,
20467         LONG *Id);
20468 
20469     HRESULT (STDMETHODCALLTYPE *Clear)(
20470         ISpeechGrammarRule* This);
20471 
20472     HRESULT (STDMETHODCALLTYPE *AddResource)(
20473         ISpeechGrammarRule* This,
20474         const BSTR ResourceName,
20475         const BSTR ResourceValue);
20476 
20477     HRESULT (STDMETHODCALLTYPE *AddState)(
20478         ISpeechGrammarRule* This,
20479         ISpeechGrammarRuleState **State);
20480 
20481     END_INTERFACE
20482 } ISpeechGrammarRuleVtbl;
20483 interface ISpeechGrammarRule {
20484     CONST_VTBL ISpeechGrammarRuleVtbl* lpVtbl;
20485 };
20486 
20487 #ifdef COBJMACROS
20488 #ifndef WIDL_C_INLINE_WRAPPERS
20489 /*** IUnknown methods ***/
20490 #define ISpeechGrammarRule_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20491 #define ISpeechGrammarRule_AddRef(This) (This)->lpVtbl->AddRef(This)
20492 #define ISpeechGrammarRule_Release(This) (This)->lpVtbl->Release(This)
20493 /*** IDispatch methods ***/
20494 #define ISpeechGrammarRule_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20495 #define ISpeechGrammarRule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
20496 #define ISpeechGrammarRule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
20497 #define ISpeechGrammarRule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
20498 /*** ISpeechGrammarRule methods ***/
20499 #define ISpeechGrammarRule_get_Attributes(This,Attributes) (This)->lpVtbl->get_Attributes(This,Attributes)
20500 #define ISpeechGrammarRule_get_InitialState(This,State) (This)->lpVtbl->get_InitialState(This,State)
20501 #define ISpeechGrammarRule_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
20502 #define ISpeechGrammarRule_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
20503 #define ISpeechGrammarRule_Clear(This) (This)->lpVtbl->Clear(This)
20504 #define ISpeechGrammarRule_AddResource(This,ResourceName,ResourceValue) (This)->lpVtbl->AddResource(This,ResourceName,ResourceValue)
20505 #define ISpeechGrammarRule_AddState(This,State) (This)->lpVtbl->AddState(This,State)
20506 #else
20507 /*** IUnknown methods ***/
20508 static FORCEINLINE HRESULT ISpeechGrammarRule_QueryInterface(ISpeechGrammarRule* This,REFIID riid,void **ppvObject) {
20509     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20510 }
20511 static FORCEINLINE ULONG ISpeechGrammarRule_AddRef(ISpeechGrammarRule* This) {
20512     return This->lpVtbl->AddRef(This);
20513 }
20514 static FORCEINLINE ULONG ISpeechGrammarRule_Release(ISpeechGrammarRule* This) {
20515     return This->lpVtbl->Release(This);
20516 }
20517 /*** IDispatch methods ***/
20518 static FORCEINLINE HRESULT ISpeechGrammarRule_GetTypeInfoCount(ISpeechGrammarRule* This,UINT *pctinfo) {
20519     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
20520 }
20521 static FORCEINLINE HRESULT ISpeechGrammarRule_GetTypeInfo(ISpeechGrammarRule* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
20522     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
20523 }
20524 static FORCEINLINE HRESULT ISpeechGrammarRule_GetIDsOfNames(ISpeechGrammarRule* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
20525     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
20526 }
20527 static FORCEINLINE HRESULT ISpeechGrammarRule_Invoke(ISpeechGrammarRule* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
20528     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
20529 }
20530 /*** ISpeechGrammarRule methods ***/
20531 static FORCEINLINE HRESULT ISpeechGrammarRule_get_Attributes(ISpeechGrammarRule* This,SpeechRuleAttributes *Attributes) {
20532     return This->lpVtbl->get_Attributes(This,Attributes);
20533 }
20534 static FORCEINLINE HRESULT ISpeechGrammarRule_get_InitialState(ISpeechGrammarRule* This,ISpeechGrammarRuleState **State) {
20535     return This->lpVtbl->get_InitialState(This,State);
20536 }
20537 static FORCEINLINE HRESULT ISpeechGrammarRule_get_Name(ISpeechGrammarRule* This,BSTR *Name) {
20538     return This->lpVtbl->get_Name(This,Name);
20539 }
20540 static FORCEINLINE HRESULT ISpeechGrammarRule_get_Id(ISpeechGrammarRule* This,LONG *Id) {
20541     return This->lpVtbl->get_Id(This,Id);
20542 }
20543 static FORCEINLINE HRESULT ISpeechGrammarRule_Clear(ISpeechGrammarRule* This) {
20544     return This->lpVtbl->Clear(This);
20545 }
20546 static FORCEINLINE HRESULT ISpeechGrammarRule_AddResource(ISpeechGrammarRule* This,const BSTR ResourceName,const BSTR ResourceValue) {
20547     return This->lpVtbl->AddResource(This,ResourceName,ResourceValue);
20548 }
20549 static FORCEINLINE HRESULT ISpeechGrammarRule_AddState(ISpeechGrammarRule* This,ISpeechGrammarRuleState **State) {
20550     return This->lpVtbl->AddState(This,State);
20551 }
20552 #endif
20553 #endif
20554 
20555 #endif
20556 
20557 HRESULT STDMETHODCALLTYPE ISpeechGrammarRule_get_Attributes_Proxy(
20558     ISpeechGrammarRule* This,
20559     SpeechRuleAttributes *Attributes);
20560 void __RPC_STUB ISpeechGrammarRule_get_Attributes_Stub(
20561     IRpcStubBuffer* This,
20562     IRpcChannelBuffer* pRpcChannelBuffer,
20563     PRPC_MESSAGE pRpcMessage,
20564     DWORD* pdwStubPhase);
20565 HRESULT STDMETHODCALLTYPE ISpeechGrammarRule_get_InitialState_Proxy(
20566     ISpeechGrammarRule* This,
20567     ISpeechGrammarRuleState **State);
20568 void __RPC_STUB ISpeechGrammarRule_get_InitialState_Stub(
20569     IRpcStubBuffer* This,
20570     IRpcChannelBuffer* pRpcChannelBuffer,
20571     PRPC_MESSAGE pRpcMessage,
20572     DWORD* pdwStubPhase);
20573 HRESULT STDMETHODCALLTYPE ISpeechGrammarRule_get_Name_Proxy(
20574     ISpeechGrammarRule* This,
20575     BSTR *Name);
20576 void __RPC_STUB ISpeechGrammarRule_get_Name_Stub(
20577     IRpcStubBuffer* This,
20578     IRpcChannelBuffer* pRpcChannelBuffer,
20579     PRPC_MESSAGE pRpcMessage,
20580     DWORD* pdwStubPhase);
20581 HRESULT STDMETHODCALLTYPE ISpeechGrammarRule_get_Id_Proxy(
20582     ISpeechGrammarRule* This,
20583     LONG *Id);
20584 void __RPC_STUB ISpeechGrammarRule_get_Id_Stub(
20585     IRpcStubBuffer* This,
20586     IRpcChannelBuffer* pRpcChannelBuffer,
20587     PRPC_MESSAGE pRpcMessage,
20588     DWORD* pdwStubPhase);
20589 HRESULT STDMETHODCALLTYPE ISpeechGrammarRule_Clear_Proxy(
20590     ISpeechGrammarRule* This);
20591 void __RPC_STUB ISpeechGrammarRule_Clear_Stub(
20592     IRpcStubBuffer* This,
20593     IRpcChannelBuffer* pRpcChannelBuffer,
20594     PRPC_MESSAGE pRpcMessage,
20595     DWORD* pdwStubPhase);
20596 HRESULT STDMETHODCALLTYPE ISpeechGrammarRule_AddResource_Proxy(
20597     ISpeechGrammarRule* This,
20598     const BSTR ResourceName,
20599     const BSTR ResourceValue);
20600 void __RPC_STUB ISpeechGrammarRule_AddResource_Stub(
20601     IRpcStubBuffer* This,
20602     IRpcChannelBuffer* pRpcChannelBuffer,
20603     PRPC_MESSAGE pRpcMessage,
20604     DWORD* pdwStubPhase);
20605 HRESULT STDMETHODCALLTYPE ISpeechGrammarRule_AddState_Proxy(
20606     ISpeechGrammarRule* This,
20607     ISpeechGrammarRuleState **State);
20608 void __RPC_STUB ISpeechGrammarRule_AddState_Stub(
20609     IRpcStubBuffer* This,
20610     IRpcChannelBuffer* pRpcChannelBuffer,
20611     PRPC_MESSAGE pRpcMessage,
20612     DWORD* pdwStubPhase);
20613 
20614 #endif  /* __ISpeechGrammarRule_INTERFACE_DEFINED__ */
20615 
20616 /*****************************************************************************
20617  * ISpeechGrammarRules interface
20618  */
20619 #ifndef __ISpeechGrammarRules_INTERFACE_DEFINED__
20620 #define __ISpeechGrammarRules_INTERFACE_DEFINED__
20621 
20622 DEFINE_GUID(IID_ISpeechGrammarRules, 0x6ffa3b44, 0xfc2d, 0x40d1, 0x8a,0xfc, 0x32,0x91,0x1c,0x7f,0x1a,0xd1);
20623 #if defined(__cplusplus) && !defined(CINTERFACE)
20624 MIDL_INTERFACE("6ffa3b44-fc2d-40d1-8afc-32911c7f1ad1")
20625 ISpeechGrammarRules : public IDispatch
20626 {
20627     virtual HRESULT STDMETHODCALLTYPE get_Count(
20628         LONG *Count) = 0;
20629 
20630     virtual HRESULT STDMETHODCALLTYPE FindRule(
20631         VARIANT RuleNameOrId,
20632         ISpeechGrammarRule **Rule) = 0;
20633 
20634     virtual HRESULT STDMETHODCALLTYPE Item(
20635         LONG Index,
20636         ISpeechGrammarRule **Rule) = 0;
20637 
20638     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
20639         IUnknown **EnumVARIANT) = 0;
20640 
20641     virtual HRESULT STDMETHODCALLTYPE get_Dynamic(
20642         VARIANT_BOOL *Dynamic) = 0;
20643 
20644     virtual HRESULT STDMETHODCALLTYPE Add(
20645         BSTR RuleName,
20646         SpeechRuleAttributes Attributes,
20647         LONG RuleId,
20648         ISpeechGrammarRule **Rule) = 0;
20649 
20650     virtual HRESULT STDMETHODCALLTYPE Commit(
20651         ) = 0;
20652 
20653     virtual HRESULT STDMETHODCALLTYPE CommitAndSave(
20654         BSTR *ErrorText,
20655         VARIANT *SaveStream) = 0;
20656 
20657 };
20658 #ifdef __CRT_UUID_DECL
20659 __CRT_UUID_DECL(ISpeechGrammarRules, 0x6ffa3b44, 0xfc2d, 0x40d1, 0x8a,0xfc, 0x32,0x91,0x1c,0x7f,0x1a,0xd1)
20660 #endif
20661 #else
20662 typedef struct ISpeechGrammarRulesVtbl {
20663     BEGIN_INTERFACE
20664 
20665     /*** IUnknown methods ***/
20666     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20667         ISpeechGrammarRules* This,
20668         REFIID riid,
20669         void **ppvObject);
20670 
20671     ULONG (STDMETHODCALLTYPE *AddRef)(
20672         ISpeechGrammarRules* This);
20673 
20674     ULONG (STDMETHODCALLTYPE *Release)(
20675         ISpeechGrammarRules* This);
20676 
20677     /*** IDispatch methods ***/
20678     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20679         ISpeechGrammarRules* This,
20680         UINT *pctinfo);
20681 
20682     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20683         ISpeechGrammarRules* This,
20684         UINT iTInfo,
20685         LCID lcid,
20686         ITypeInfo **ppTInfo);
20687 
20688     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20689         ISpeechGrammarRules* This,
20690         REFIID riid,
20691         LPOLESTR *rgszNames,
20692         UINT cNames,
20693         LCID lcid,
20694         DISPID *rgDispId);
20695 
20696     HRESULT (STDMETHODCALLTYPE *Invoke)(
20697         ISpeechGrammarRules* This,
20698         DISPID dispIdMember,
20699         REFIID riid,
20700         LCID lcid,
20701         WORD wFlags,
20702         DISPPARAMS *pDispParams,
20703         VARIANT *pVarResult,
20704         EXCEPINFO *pExcepInfo,
20705         UINT *puArgErr);
20706 
20707     /*** ISpeechGrammarRules methods ***/
20708     HRESULT (STDMETHODCALLTYPE *get_Count)(
20709         ISpeechGrammarRules* This,
20710         LONG *Count);
20711 
20712     HRESULT (STDMETHODCALLTYPE *FindRule)(
20713         ISpeechGrammarRules* This,
20714         VARIANT RuleNameOrId,
20715         ISpeechGrammarRule **Rule);
20716 
20717     HRESULT (STDMETHODCALLTYPE *Item)(
20718         ISpeechGrammarRules* This,
20719         LONG Index,
20720         ISpeechGrammarRule **Rule);
20721 
20722     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
20723         ISpeechGrammarRules* This,
20724         IUnknown **EnumVARIANT);
20725 
20726     HRESULT (STDMETHODCALLTYPE *get_Dynamic)(
20727         ISpeechGrammarRules* This,
20728         VARIANT_BOOL *Dynamic);
20729 
20730     HRESULT (STDMETHODCALLTYPE *Add)(
20731         ISpeechGrammarRules* This,
20732         BSTR RuleName,
20733         SpeechRuleAttributes Attributes,
20734         LONG RuleId,
20735         ISpeechGrammarRule **Rule);
20736 
20737     HRESULT (STDMETHODCALLTYPE *Commit)(
20738         ISpeechGrammarRules* This);
20739 
20740     HRESULT (STDMETHODCALLTYPE *CommitAndSave)(
20741         ISpeechGrammarRules* This,
20742         BSTR *ErrorText,
20743         VARIANT *SaveStream);
20744 
20745     END_INTERFACE
20746 } ISpeechGrammarRulesVtbl;
20747 interface ISpeechGrammarRules {
20748     CONST_VTBL ISpeechGrammarRulesVtbl* lpVtbl;
20749 };
20750 
20751 #ifdef COBJMACROS
20752 #ifndef WIDL_C_INLINE_WRAPPERS
20753 /*** IUnknown methods ***/
20754 #define ISpeechGrammarRules_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20755 #define ISpeechGrammarRules_AddRef(This) (This)->lpVtbl->AddRef(This)
20756 #define ISpeechGrammarRules_Release(This) (This)->lpVtbl->Release(This)
20757 /*** IDispatch methods ***/
20758 #define ISpeechGrammarRules_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20759 #define ISpeechGrammarRules_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
20760 #define ISpeechGrammarRules_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
20761 #define ISpeechGrammarRules_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
20762 /*** ISpeechGrammarRules methods ***/
20763 #define ISpeechGrammarRules_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
20764 #define ISpeechGrammarRules_FindRule(This,RuleNameOrId,Rule) (This)->lpVtbl->FindRule(This,RuleNameOrId,Rule)
20765 #define ISpeechGrammarRules_Item(This,Index,Rule) (This)->lpVtbl->Item(This,Index,Rule)
20766 #define ISpeechGrammarRules_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
20767 #define ISpeechGrammarRules_get_Dynamic(This,Dynamic) (This)->lpVtbl->get_Dynamic(This,Dynamic)
20768 #define ISpeechGrammarRules_Add(This,RuleName,Attributes,RuleId,Rule) (This)->lpVtbl->Add(This,RuleName,Attributes,RuleId,Rule)
20769 #define ISpeechGrammarRules_Commit(This) (This)->lpVtbl->Commit(This)
20770 #define ISpeechGrammarRules_CommitAndSave(This,ErrorText,SaveStream) (This)->lpVtbl->CommitAndSave(This,ErrorText,SaveStream)
20771 #else
20772 /*** IUnknown methods ***/
20773 static FORCEINLINE HRESULT ISpeechGrammarRules_QueryInterface(ISpeechGrammarRules* This,REFIID riid,void **ppvObject) {
20774     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20775 }
20776 static FORCEINLINE ULONG ISpeechGrammarRules_AddRef(ISpeechGrammarRules* This) {
20777     return This->lpVtbl->AddRef(This);
20778 }
20779 static FORCEINLINE ULONG ISpeechGrammarRules_Release(ISpeechGrammarRules* This) {
20780     return This->lpVtbl->Release(This);
20781 }
20782 /*** IDispatch methods ***/
20783 static FORCEINLINE HRESULT ISpeechGrammarRules_GetTypeInfoCount(ISpeechGrammarRules* This,UINT *pctinfo) {
20784     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
20785 }
20786 static FORCEINLINE HRESULT ISpeechGrammarRules_GetTypeInfo(ISpeechGrammarRules* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
20787     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
20788 }
20789 static FORCEINLINE HRESULT ISpeechGrammarRules_GetIDsOfNames(ISpeechGrammarRules* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
20790     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
20791 }
20792 static FORCEINLINE HRESULT ISpeechGrammarRules_Invoke(ISpeechGrammarRules* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
20793     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
20794 }
20795 /*** ISpeechGrammarRules methods ***/
20796 static FORCEINLINE HRESULT ISpeechGrammarRules_get_Count(ISpeechGrammarRules* This,LONG *Count) {
20797     return This->lpVtbl->get_Count(This,Count);
20798 }
20799 static FORCEINLINE HRESULT ISpeechGrammarRules_FindRule(ISpeechGrammarRules* This,VARIANT RuleNameOrId,ISpeechGrammarRule **Rule) {
20800     return This->lpVtbl->FindRule(This,RuleNameOrId,Rule);
20801 }
20802 static FORCEINLINE HRESULT ISpeechGrammarRules_Item(ISpeechGrammarRules* This,LONG Index,ISpeechGrammarRule **Rule) {
20803     return This->lpVtbl->Item(This,Index,Rule);
20804 }
20805 static FORCEINLINE HRESULT ISpeechGrammarRules_get__NewEnum(ISpeechGrammarRules* This,IUnknown **EnumVARIANT) {
20806     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
20807 }
20808 static FORCEINLINE HRESULT ISpeechGrammarRules_get_Dynamic(ISpeechGrammarRules* This,VARIANT_BOOL *Dynamic) {
20809     return This->lpVtbl->get_Dynamic(This,Dynamic);
20810 }
20811 static FORCEINLINE HRESULT ISpeechGrammarRules_Add(ISpeechGrammarRules* This,BSTR RuleName,SpeechRuleAttributes Attributes,LONG RuleId,ISpeechGrammarRule **Rule) {
20812     return This->lpVtbl->Add(This,RuleName,Attributes,RuleId,Rule);
20813 }
20814 static FORCEINLINE HRESULT ISpeechGrammarRules_Commit(ISpeechGrammarRules* This) {
20815     return This->lpVtbl->Commit(This);
20816 }
20817 static FORCEINLINE HRESULT ISpeechGrammarRules_CommitAndSave(ISpeechGrammarRules* This,BSTR *ErrorText,VARIANT *SaveStream) {
20818     return This->lpVtbl->CommitAndSave(This,ErrorText,SaveStream);
20819 }
20820 #endif
20821 #endif
20822 
20823 #endif
20824 
20825 HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_get_Count_Proxy(
20826     ISpeechGrammarRules* This,
20827     LONG *Count);
20828 void __RPC_STUB ISpeechGrammarRules_get_Count_Stub(
20829     IRpcStubBuffer* This,
20830     IRpcChannelBuffer* pRpcChannelBuffer,
20831     PRPC_MESSAGE pRpcMessage,
20832     DWORD* pdwStubPhase);
20833 HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_FindRule_Proxy(
20834     ISpeechGrammarRules* This,
20835     VARIANT RuleNameOrId,
20836     ISpeechGrammarRule **Rule);
20837 void __RPC_STUB ISpeechGrammarRules_FindRule_Stub(
20838     IRpcStubBuffer* This,
20839     IRpcChannelBuffer* pRpcChannelBuffer,
20840     PRPC_MESSAGE pRpcMessage,
20841     DWORD* pdwStubPhase);
20842 HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_Item_Proxy(
20843     ISpeechGrammarRules* This,
20844     LONG Index,
20845     ISpeechGrammarRule **Rule);
20846 void __RPC_STUB ISpeechGrammarRules_Item_Stub(
20847     IRpcStubBuffer* This,
20848     IRpcChannelBuffer* pRpcChannelBuffer,
20849     PRPC_MESSAGE pRpcMessage,
20850     DWORD* pdwStubPhase);
20851 HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_get__NewEnum_Proxy(
20852     ISpeechGrammarRules* This,
20853     IUnknown **EnumVARIANT);
20854 void __RPC_STUB ISpeechGrammarRules_get__NewEnum_Stub(
20855     IRpcStubBuffer* This,
20856     IRpcChannelBuffer* pRpcChannelBuffer,
20857     PRPC_MESSAGE pRpcMessage,
20858     DWORD* pdwStubPhase);
20859 HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_get_Dynamic_Proxy(
20860     ISpeechGrammarRules* This,
20861     VARIANT_BOOL *Dynamic);
20862 void __RPC_STUB ISpeechGrammarRules_get_Dynamic_Stub(
20863     IRpcStubBuffer* This,
20864     IRpcChannelBuffer* pRpcChannelBuffer,
20865     PRPC_MESSAGE pRpcMessage,
20866     DWORD* pdwStubPhase);
20867 HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_Add_Proxy(
20868     ISpeechGrammarRules* This,
20869     BSTR RuleName,
20870     SpeechRuleAttributes Attributes,
20871     LONG RuleId,
20872     ISpeechGrammarRule **Rule);
20873 void __RPC_STUB ISpeechGrammarRules_Add_Stub(
20874     IRpcStubBuffer* This,
20875     IRpcChannelBuffer* pRpcChannelBuffer,
20876     PRPC_MESSAGE pRpcMessage,
20877     DWORD* pdwStubPhase);
20878 HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_Commit_Proxy(
20879     ISpeechGrammarRules* This);
20880 void __RPC_STUB ISpeechGrammarRules_Commit_Stub(
20881     IRpcStubBuffer* This,
20882     IRpcChannelBuffer* pRpcChannelBuffer,
20883     PRPC_MESSAGE pRpcMessage,
20884     DWORD* pdwStubPhase);
20885 HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_CommitAndSave_Proxy(
20886     ISpeechGrammarRules* This,
20887     BSTR *ErrorText,
20888     VARIANT *SaveStream);
20889 void __RPC_STUB ISpeechGrammarRules_CommitAndSave_Stub(
20890     IRpcStubBuffer* This,
20891     IRpcChannelBuffer* pRpcChannelBuffer,
20892     PRPC_MESSAGE pRpcMessage,
20893     DWORD* pdwStubPhase);
20894 
20895 #endif  /* __ISpeechGrammarRules_INTERFACE_DEFINED__ */
20896 
20897 /*****************************************************************************
20898  * ISpeechGrammarRuleState interface
20899  */
20900 #ifndef __ISpeechGrammarRuleState_INTERFACE_DEFINED__
20901 #define __ISpeechGrammarRuleState_INTERFACE_DEFINED__
20902 
20903 DEFINE_GUID(IID_ISpeechGrammarRuleState, 0xd4286f2c, 0xee67, 0x45ae, 0xb9,0x28, 0x28,0xd6,0x95,0x36,0x2e,0xda);
20904 #if defined(__cplusplus) && !defined(CINTERFACE)
20905 MIDL_INTERFACE("d4286f2c-ee67-45ae-b928-28d695362eda")
20906 ISpeechGrammarRuleState : public IDispatch
20907 {
20908     virtual HRESULT STDMETHODCALLTYPE get_Rule(
20909         ISpeechGrammarRule **Rule) = 0;
20910 
20911     virtual HRESULT STDMETHODCALLTYPE get_Transitions(
20912         ISpeechGrammarRuleStateTransitions **Transitions) = 0;
20913 
20914     virtual HRESULT STDMETHODCALLTYPE AddWordTransition(
20915         ISpeechGrammarRuleState *DestState,
20916         const BSTR Words,
20917         const BSTR Separators = L" ",
20918         SpeechGrammarWordType Type = SGLexical,
20919         const BSTR PropertyName = L"",
20920         LONG PropertyId = 0,
20921         VARIANT *PropertyValue = 0,
20922         float Weight = 1) = 0;
20923 
20924     virtual HRESULT STDMETHODCALLTYPE AddRuleTransition(
20925         ISpeechGrammarRuleState *DestinationState,
20926         ISpeechGrammarRule *Rule,
20927         const BSTR PropertyName = L"",
20928         LONG PropertyId = 0,
20929         VARIANT *PropertyValue = 0,
20930         float Weight = 1) = 0;
20931 
20932     virtual HRESULT STDMETHODCALLTYPE AddSpecialTransition(
20933         ISpeechGrammarRuleState *DestinationState,
20934         SpeechSpecialTransitionType Type,
20935         const BSTR PropertyName = L"",
20936         LONG PropertyId = 0,
20937         VARIANT *PropertyValue = 0,
20938         float Weight = 1) = 0;
20939 
20940 };
20941 #ifdef __CRT_UUID_DECL
20942 __CRT_UUID_DECL(ISpeechGrammarRuleState, 0xd4286f2c, 0xee67, 0x45ae, 0xb9,0x28, 0x28,0xd6,0x95,0x36,0x2e,0xda)
20943 #endif
20944 #else
20945 typedef struct ISpeechGrammarRuleStateVtbl {
20946     BEGIN_INTERFACE
20947 
20948     /*** IUnknown methods ***/
20949     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20950         ISpeechGrammarRuleState* This,
20951         REFIID riid,
20952         void **ppvObject);
20953 
20954     ULONG (STDMETHODCALLTYPE *AddRef)(
20955         ISpeechGrammarRuleState* This);
20956 
20957     ULONG (STDMETHODCALLTYPE *Release)(
20958         ISpeechGrammarRuleState* This);
20959 
20960     /*** IDispatch methods ***/
20961     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20962         ISpeechGrammarRuleState* This,
20963         UINT *pctinfo);
20964 
20965     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20966         ISpeechGrammarRuleState* This,
20967         UINT iTInfo,
20968         LCID lcid,
20969         ITypeInfo **ppTInfo);
20970 
20971     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20972         ISpeechGrammarRuleState* This,
20973         REFIID riid,
20974         LPOLESTR *rgszNames,
20975         UINT cNames,
20976         LCID lcid,
20977         DISPID *rgDispId);
20978 
20979     HRESULT (STDMETHODCALLTYPE *Invoke)(
20980         ISpeechGrammarRuleState* This,
20981         DISPID dispIdMember,
20982         REFIID riid,
20983         LCID lcid,
20984         WORD wFlags,
20985         DISPPARAMS *pDispParams,
20986         VARIANT *pVarResult,
20987         EXCEPINFO *pExcepInfo,
20988         UINT *puArgErr);
20989 
20990     /*** ISpeechGrammarRuleState methods ***/
20991     HRESULT (STDMETHODCALLTYPE *get_Rule)(
20992         ISpeechGrammarRuleState* This,
20993         ISpeechGrammarRule **Rule);
20994 
20995     HRESULT (STDMETHODCALLTYPE *get_Transitions)(
20996         ISpeechGrammarRuleState* This,
20997         ISpeechGrammarRuleStateTransitions **Transitions);
20998 
20999     HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
21000         ISpeechGrammarRuleState* This,
21001         ISpeechGrammarRuleState *DestState,
21002         const BSTR Words,
21003         const BSTR Separators,
21004         SpeechGrammarWordType Type,
21005         const BSTR PropertyName,
21006         LONG PropertyId,
21007         VARIANT *PropertyValue,
21008         float Weight);
21009 
21010     HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
21011         ISpeechGrammarRuleState* This,
21012         ISpeechGrammarRuleState *DestinationState,
21013         ISpeechGrammarRule *Rule,
21014         const BSTR PropertyName,
21015         LONG PropertyId,
21016         VARIANT *PropertyValue,
21017         float Weight);
21018 
21019     HRESULT (STDMETHODCALLTYPE *AddSpecialTransition)(
21020         ISpeechGrammarRuleState* This,
21021         ISpeechGrammarRuleState *DestinationState,
21022         SpeechSpecialTransitionType Type,
21023         const BSTR PropertyName,
21024         LONG PropertyId,
21025         VARIANT *PropertyValue,
21026         float Weight);
21027 
21028     END_INTERFACE
21029 } ISpeechGrammarRuleStateVtbl;
21030 interface ISpeechGrammarRuleState {
21031     CONST_VTBL ISpeechGrammarRuleStateVtbl* lpVtbl;
21032 };
21033 
21034 #ifdef COBJMACROS
21035 #ifndef WIDL_C_INLINE_WRAPPERS
21036 /*** IUnknown methods ***/
21037 #define ISpeechGrammarRuleState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21038 #define ISpeechGrammarRuleState_AddRef(This) (This)->lpVtbl->AddRef(This)
21039 #define ISpeechGrammarRuleState_Release(This) (This)->lpVtbl->Release(This)
21040 /*** IDispatch methods ***/
21041 #define ISpeechGrammarRuleState_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21042 #define ISpeechGrammarRuleState_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21043 #define ISpeechGrammarRuleState_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21044 #define ISpeechGrammarRuleState_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21045 /*** ISpeechGrammarRuleState methods ***/
21046 #define ISpeechGrammarRuleState_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
21047 #define ISpeechGrammarRuleState_get_Transitions(This,Transitions) (This)->lpVtbl->get_Transitions(This,Transitions)
21048 #define ISpeechGrammarRuleState_AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight)
21049 #define ISpeechGrammarRuleState_AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight)
21050 #define ISpeechGrammarRuleState_AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight)
21051 #else
21052 /*** IUnknown methods ***/
21053 static FORCEINLINE HRESULT ISpeechGrammarRuleState_QueryInterface(ISpeechGrammarRuleState* This,REFIID riid,void **ppvObject) {
21054     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21055 }
21056 static FORCEINLINE ULONG ISpeechGrammarRuleState_AddRef(ISpeechGrammarRuleState* This) {
21057     return This->lpVtbl->AddRef(This);
21058 }
21059 static FORCEINLINE ULONG ISpeechGrammarRuleState_Release(ISpeechGrammarRuleState* This) {
21060     return This->lpVtbl->Release(This);
21061 }
21062 /*** IDispatch methods ***/
21063 static FORCEINLINE HRESULT ISpeechGrammarRuleState_GetTypeInfoCount(ISpeechGrammarRuleState* This,UINT *pctinfo) {
21064     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21065 }
21066 static FORCEINLINE HRESULT ISpeechGrammarRuleState_GetTypeInfo(ISpeechGrammarRuleState* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21067     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21068 }
21069 static FORCEINLINE HRESULT ISpeechGrammarRuleState_GetIDsOfNames(ISpeechGrammarRuleState* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21070     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21071 }
21072 static FORCEINLINE HRESULT ISpeechGrammarRuleState_Invoke(ISpeechGrammarRuleState* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21073     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21074 }
21075 /*** ISpeechGrammarRuleState methods ***/
21076 static FORCEINLINE HRESULT ISpeechGrammarRuleState_get_Rule(ISpeechGrammarRuleState* This,ISpeechGrammarRule **Rule) {
21077     return This->lpVtbl->get_Rule(This,Rule);
21078 }
21079 static FORCEINLINE HRESULT ISpeechGrammarRuleState_get_Transitions(ISpeechGrammarRuleState* This,ISpeechGrammarRuleStateTransitions **Transitions) {
21080     return This->lpVtbl->get_Transitions(This,Transitions);
21081 }
21082 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) {
21083     return This->lpVtbl->AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight);
21084 }
21085 static FORCEINLINE HRESULT ISpeechGrammarRuleState_AddRuleTransition(ISpeechGrammarRuleState* This,ISpeechGrammarRuleState *DestinationState,ISpeechGrammarRule *Rule,const BSTR PropertyName,LONG PropertyId,VARIANT *PropertyValue,float Weight) {
21086     return This->lpVtbl->AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight);
21087 }
21088 static FORCEINLINE HRESULT ISpeechGrammarRuleState_AddSpecialTransition(ISpeechGrammarRuleState* This,ISpeechGrammarRuleState *DestinationState,SpeechSpecialTransitionType Type,const BSTR PropertyName,LONG PropertyId,VARIANT *PropertyValue,float Weight) {
21089     return This->lpVtbl->AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight);
21090 }
21091 #endif
21092 #endif
21093 
21094 #endif
21095 
21096 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleState_get_Rule_Proxy(
21097     ISpeechGrammarRuleState* This,
21098     ISpeechGrammarRule **Rule);
21099 void __RPC_STUB ISpeechGrammarRuleState_get_Rule_Stub(
21100     IRpcStubBuffer* This,
21101     IRpcChannelBuffer* pRpcChannelBuffer,
21102     PRPC_MESSAGE pRpcMessage,
21103     DWORD* pdwStubPhase);
21104 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleState_get_Transitions_Proxy(
21105     ISpeechGrammarRuleState* This,
21106     ISpeechGrammarRuleStateTransitions **Transitions);
21107 void __RPC_STUB ISpeechGrammarRuleState_get_Transitions_Stub(
21108     IRpcStubBuffer* This,
21109     IRpcChannelBuffer* pRpcChannelBuffer,
21110     PRPC_MESSAGE pRpcMessage,
21111     DWORD* pdwStubPhase);
21112 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleState_AddWordTransition_Proxy(
21113     ISpeechGrammarRuleState* This,
21114     ISpeechGrammarRuleState *DestState,
21115     const BSTR Words,
21116     const BSTR Separators,
21117     SpeechGrammarWordType Type,
21118     const BSTR PropertyName,
21119     LONG PropertyId,
21120     VARIANT *PropertyValue,
21121     float Weight);
21122 void __RPC_STUB ISpeechGrammarRuleState_AddWordTransition_Stub(
21123     IRpcStubBuffer* This,
21124     IRpcChannelBuffer* pRpcChannelBuffer,
21125     PRPC_MESSAGE pRpcMessage,
21126     DWORD* pdwStubPhase);
21127 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleState_AddRuleTransition_Proxy(
21128     ISpeechGrammarRuleState* This,
21129     ISpeechGrammarRuleState *DestinationState,
21130     ISpeechGrammarRule *Rule,
21131     const BSTR PropertyName,
21132     LONG PropertyId,
21133     VARIANT *PropertyValue,
21134     float Weight);
21135 void __RPC_STUB ISpeechGrammarRuleState_AddRuleTransition_Stub(
21136     IRpcStubBuffer* This,
21137     IRpcChannelBuffer* pRpcChannelBuffer,
21138     PRPC_MESSAGE pRpcMessage,
21139     DWORD* pdwStubPhase);
21140 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleState_AddSpecialTransition_Proxy(
21141     ISpeechGrammarRuleState* This,
21142     ISpeechGrammarRuleState *DestinationState,
21143     SpeechSpecialTransitionType Type,
21144     const BSTR PropertyName,
21145     LONG PropertyId,
21146     VARIANT *PropertyValue,
21147     float Weight);
21148 void __RPC_STUB ISpeechGrammarRuleState_AddSpecialTransition_Stub(
21149     IRpcStubBuffer* This,
21150     IRpcChannelBuffer* pRpcChannelBuffer,
21151     PRPC_MESSAGE pRpcMessage,
21152     DWORD* pdwStubPhase);
21153 
21154 #endif  /* __ISpeechGrammarRuleState_INTERFACE_DEFINED__ */
21155 
21156 /*****************************************************************************
21157  * ISpeechGrammarRuleStateTransitions interface
21158  */
21159 #ifndef __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__
21160 #define __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__
21161 
21162 DEFINE_GUID(IID_ISpeechGrammarRuleStateTransitions, 0xeabce657, 0x75bc, 0x44a2, 0xaa,0x7f, 0xc5,0x64,0x76,0x74,0x29,0x63);
21163 #if defined(__cplusplus) && !defined(CINTERFACE)
21164 MIDL_INTERFACE("eabce657-75bc-44a2-aa7f-c56476742963")
21165 ISpeechGrammarRuleStateTransitions : public IDispatch
21166 {
21167     virtual HRESULT STDMETHODCALLTYPE get_Count(
21168         LONG *Count) = 0;
21169 
21170     virtual HRESULT STDMETHODCALLTYPE Item(
21171         LONG Index,
21172         ISpeechGrammarRuleStateTransition **Transition) = 0;
21173 
21174     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
21175         IUnknown **EnumVARIANT) = 0;
21176 
21177 };
21178 #ifdef __CRT_UUID_DECL
21179 __CRT_UUID_DECL(ISpeechGrammarRuleStateTransitions, 0xeabce657, 0x75bc, 0x44a2, 0xaa,0x7f, 0xc5,0x64,0x76,0x74,0x29,0x63)
21180 #endif
21181 #else
21182 typedef struct ISpeechGrammarRuleStateTransitionsVtbl {
21183     BEGIN_INTERFACE
21184 
21185     /*** IUnknown methods ***/
21186     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21187         ISpeechGrammarRuleStateTransitions* This,
21188         REFIID riid,
21189         void **ppvObject);
21190 
21191     ULONG (STDMETHODCALLTYPE *AddRef)(
21192         ISpeechGrammarRuleStateTransitions* This);
21193 
21194     ULONG (STDMETHODCALLTYPE *Release)(
21195         ISpeechGrammarRuleStateTransitions* This);
21196 
21197     /*** IDispatch methods ***/
21198     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21199         ISpeechGrammarRuleStateTransitions* This,
21200         UINT *pctinfo);
21201 
21202     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21203         ISpeechGrammarRuleStateTransitions* This,
21204         UINT iTInfo,
21205         LCID lcid,
21206         ITypeInfo **ppTInfo);
21207 
21208     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21209         ISpeechGrammarRuleStateTransitions* This,
21210         REFIID riid,
21211         LPOLESTR *rgszNames,
21212         UINT cNames,
21213         LCID lcid,
21214         DISPID *rgDispId);
21215 
21216     HRESULT (STDMETHODCALLTYPE *Invoke)(
21217         ISpeechGrammarRuleStateTransitions* This,
21218         DISPID dispIdMember,
21219         REFIID riid,
21220         LCID lcid,
21221         WORD wFlags,
21222         DISPPARAMS *pDispParams,
21223         VARIANT *pVarResult,
21224         EXCEPINFO *pExcepInfo,
21225         UINT *puArgErr);
21226 
21227     /*** ISpeechGrammarRuleStateTransitions methods ***/
21228     HRESULT (STDMETHODCALLTYPE *get_Count)(
21229         ISpeechGrammarRuleStateTransitions* This,
21230         LONG *Count);
21231 
21232     HRESULT (STDMETHODCALLTYPE *Item)(
21233         ISpeechGrammarRuleStateTransitions* This,
21234         LONG Index,
21235         ISpeechGrammarRuleStateTransition **Transition);
21236 
21237     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
21238         ISpeechGrammarRuleStateTransitions* This,
21239         IUnknown **EnumVARIANT);
21240 
21241     END_INTERFACE
21242 } ISpeechGrammarRuleStateTransitionsVtbl;
21243 interface ISpeechGrammarRuleStateTransitions {
21244     CONST_VTBL ISpeechGrammarRuleStateTransitionsVtbl* lpVtbl;
21245 };
21246 
21247 #ifdef COBJMACROS
21248 #ifndef WIDL_C_INLINE_WRAPPERS
21249 /*** IUnknown methods ***/
21250 #define ISpeechGrammarRuleStateTransitions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21251 #define ISpeechGrammarRuleStateTransitions_AddRef(This) (This)->lpVtbl->AddRef(This)
21252 #define ISpeechGrammarRuleStateTransitions_Release(This) (This)->lpVtbl->Release(This)
21253 /*** IDispatch methods ***/
21254 #define ISpeechGrammarRuleStateTransitions_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21255 #define ISpeechGrammarRuleStateTransitions_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21256 #define ISpeechGrammarRuleStateTransitions_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21257 #define ISpeechGrammarRuleStateTransitions_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21258 /*** ISpeechGrammarRuleStateTransitions methods ***/
21259 #define ISpeechGrammarRuleStateTransitions_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
21260 #define ISpeechGrammarRuleStateTransitions_Item(This,Index,Transition) (This)->lpVtbl->Item(This,Index,Transition)
21261 #define ISpeechGrammarRuleStateTransitions_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
21262 #else
21263 /*** IUnknown methods ***/
21264 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_QueryInterface(ISpeechGrammarRuleStateTransitions* This,REFIID riid,void **ppvObject) {
21265     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21266 }
21267 static FORCEINLINE ULONG ISpeechGrammarRuleStateTransitions_AddRef(ISpeechGrammarRuleStateTransitions* This) {
21268     return This->lpVtbl->AddRef(This);
21269 }
21270 static FORCEINLINE ULONG ISpeechGrammarRuleStateTransitions_Release(ISpeechGrammarRuleStateTransitions* This) {
21271     return This->lpVtbl->Release(This);
21272 }
21273 /*** IDispatch methods ***/
21274 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_GetTypeInfoCount(ISpeechGrammarRuleStateTransitions* This,UINT *pctinfo) {
21275     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21276 }
21277 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_GetTypeInfo(ISpeechGrammarRuleStateTransitions* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21278     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21279 }
21280 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_GetIDsOfNames(ISpeechGrammarRuleStateTransitions* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21281     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21282 }
21283 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_Invoke(ISpeechGrammarRuleStateTransitions* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21284     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21285 }
21286 /*** ISpeechGrammarRuleStateTransitions methods ***/
21287 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_get_Count(ISpeechGrammarRuleStateTransitions* This,LONG *Count) {
21288     return This->lpVtbl->get_Count(This,Count);
21289 }
21290 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_Item(ISpeechGrammarRuleStateTransitions* This,LONG Index,ISpeechGrammarRuleStateTransition **Transition) {
21291     return This->lpVtbl->Item(This,Index,Transition);
21292 }
21293 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_get__NewEnum(ISpeechGrammarRuleStateTransitions* This,IUnknown **EnumVARIANT) {
21294     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
21295 }
21296 #endif
21297 #endif
21298 
21299 #endif
21300 
21301 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransitions_get_Count_Proxy(
21302     ISpeechGrammarRuleStateTransitions* This,
21303     LONG *Count);
21304 void __RPC_STUB ISpeechGrammarRuleStateTransitions_get_Count_Stub(
21305     IRpcStubBuffer* This,
21306     IRpcChannelBuffer* pRpcChannelBuffer,
21307     PRPC_MESSAGE pRpcMessage,
21308     DWORD* pdwStubPhase);
21309 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransitions_Item_Proxy(
21310     ISpeechGrammarRuleStateTransitions* This,
21311     LONG Index,
21312     ISpeechGrammarRuleStateTransition **Transition);
21313 void __RPC_STUB ISpeechGrammarRuleStateTransitions_Item_Stub(
21314     IRpcStubBuffer* This,
21315     IRpcChannelBuffer* pRpcChannelBuffer,
21316     PRPC_MESSAGE pRpcMessage,
21317     DWORD* pdwStubPhase);
21318 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransitions_get__NewEnum_Proxy(
21319     ISpeechGrammarRuleStateTransitions* This,
21320     IUnknown **EnumVARIANT);
21321 void __RPC_STUB ISpeechGrammarRuleStateTransitions_get__NewEnum_Stub(
21322     IRpcStubBuffer* This,
21323     IRpcChannelBuffer* pRpcChannelBuffer,
21324     PRPC_MESSAGE pRpcMessage,
21325     DWORD* pdwStubPhase);
21326 
21327 #endif  /* __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__ */
21328 
21329 /*****************************************************************************
21330  * ISpeechGrammarRuleStateTransition interface
21331  */
21332 #ifndef __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__
21333 #define __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__
21334 
21335 DEFINE_GUID(IID_ISpeechGrammarRuleStateTransition, 0xcafd1db1, 0x41d1, 0x4a06, 0x98,0x63, 0xe2,0xe8,0x1d,0xa1,0x7a,0x9a);
21336 #if defined(__cplusplus) && !defined(CINTERFACE)
21337 MIDL_INTERFACE("cafd1db1-41d1-4a06-9863-e2e81da17a9a")
21338 ISpeechGrammarRuleStateTransition : public IDispatch
21339 {
21340     virtual HRESULT STDMETHODCALLTYPE get_Type(
21341         SpeechGrammarRuleStateTransitionType *Type) = 0;
21342 
21343     virtual HRESULT STDMETHODCALLTYPE get_Text(
21344         BSTR *Text) = 0;
21345 
21346     virtual HRESULT STDMETHODCALLTYPE get_Rule(
21347         ISpeechGrammarRule **Rule) = 0;
21348 
21349     virtual HRESULT STDMETHODCALLTYPE get_Weight(
21350         VARIANT *Weight) = 0;
21351 
21352     virtual HRESULT STDMETHODCALLTYPE get_PropertyName(
21353         BSTR *PropertyName) = 0;
21354 
21355     virtual HRESULT STDMETHODCALLTYPE get_PropertyId(
21356         LONG *PropertyId) = 0;
21357 
21358     virtual HRESULT STDMETHODCALLTYPE get_PropertyValue(
21359         VARIANT *PropertyValue) = 0;
21360 
21361     virtual HRESULT STDMETHODCALLTYPE get_NextState(
21362         ISpeechGrammarRuleState **NextState) = 0;
21363 
21364 };
21365 #ifdef __CRT_UUID_DECL
21366 __CRT_UUID_DECL(ISpeechGrammarRuleStateTransition, 0xcafd1db1, 0x41d1, 0x4a06, 0x98,0x63, 0xe2,0xe8,0x1d,0xa1,0x7a,0x9a)
21367 #endif
21368 #else
21369 typedef struct ISpeechGrammarRuleStateTransitionVtbl {
21370     BEGIN_INTERFACE
21371 
21372     /*** IUnknown methods ***/
21373     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21374         ISpeechGrammarRuleStateTransition* This,
21375         REFIID riid,
21376         void **ppvObject);
21377 
21378     ULONG (STDMETHODCALLTYPE *AddRef)(
21379         ISpeechGrammarRuleStateTransition* This);
21380 
21381     ULONG (STDMETHODCALLTYPE *Release)(
21382         ISpeechGrammarRuleStateTransition* This);
21383 
21384     /*** IDispatch methods ***/
21385     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21386         ISpeechGrammarRuleStateTransition* This,
21387         UINT *pctinfo);
21388 
21389     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21390         ISpeechGrammarRuleStateTransition* This,
21391         UINT iTInfo,
21392         LCID lcid,
21393         ITypeInfo **ppTInfo);
21394 
21395     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21396         ISpeechGrammarRuleStateTransition* This,
21397         REFIID riid,
21398         LPOLESTR *rgszNames,
21399         UINT cNames,
21400         LCID lcid,
21401         DISPID *rgDispId);
21402 
21403     HRESULT (STDMETHODCALLTYPE *Invoke)(
21404         ISpeechGrammarRuleStateTransition* This,
21405         DISPID dispIdMember,
21406         REFIID riid,
21407         LCID lcid,
21408         WORD wFlags,
21409         DISPPARAMS *pDispParams,
21410         VARIANT *pVarResult,
21411         EXCEPINFO *pExcepInfo,
21412         UINT *puArgErr);
21413 
21414     /*** ISpeechGrammarRuleStateTransition methods ***/
21415     HRESULT (STDMETHODCALLTYPE *get_Type)(
21416         ISpeechGrammarRuleStateTransition* This,
21417         SpeechGrammarRuleStateTransitionType *Type);
21418 
21419     HRESULT (STDMETHODCALLTYPE *get_Text)(
21420         ISpeechGrammarRuleStateTransition* This,
21421         BSTR *Text);
21422 
21423     HRESULT (STDMETHODCALLTYPE *get_Rule)(
21424         ISpeechGrammarRuleStateTransition* This,
21425         ISpeechGrammarRule **Rule);
21426 
21427     HRESULT (STDMETHODCALLTYPE *get_Weight)(
21428         ISpeechGrammarRuleStateTransition* This,
21429         VARIANT *Weight);
21430 
21431     HRESULT (STDMETHODCALLTYPE *get_PropertyName)(
21432         ISpeechGrammarRuleStateTransition* This,
21433         BSTR *PropertyName);
21434 
21435     HRESULT (STDMETHODCALLTYPE *get_PropertyId)(
21436         ISpeechGrammarRuleStateTransition* This,
21437         LONG *PropertyId);
21438 
21439     HRESULT (STDMETHODCALLTYPE *get_PropertyValue)(
21440         ISpeechGrammarRuleStateTransition* This,
21441         VARIANT *PropertyValue);
21442 
21443     HRESULT (STDMETHODCALLTYPE *get_NextState)(
21444         ISpeechGrammarRuleStateTransition* This,
21445         ISpeechGrammarRuleState **NextState);
21446 
21447     END_INTERFACE
21448 } ISpeechGrammarRuleStateTransitionVtbl;
21449 interface ISpeechGrammarRuleStateTransition {
21450     CONST_VTBL ISpeechGrammarRuleStateTransitionVtbl* lpVtbl;
21451 };
21452 
21453 #ifdef COBJMACROS
21454 #ifndef WIDL_C_INLINE_WRAPPERS
21455 /*** IUnknown methods ***/
21456 #define ISpeechGrammarRuleStateTransition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21457 #define ISpeechGrammarRuleStateTransition_AddRef(This) (This)->lpVtbl->AddRef(This)
21458 #define ISpeechGrammarRuleStateTransition_Release(This) (This)->lpVtbl->Release(This)
21459 /*** IDispatch methods ***/
21460 #define ISpeechGrammarRuleStateTransition_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21461 #define ISpeechGrammarRuleStateTransition_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21462 #define ISpeechGrammarRuleStateTransition_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21463 #define ISpeechGrammarRuleStateTransition_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21464 /*** ISpeechGrammarRuleStateTransition methods ***/
21465 #define ISpeechGrammarRuleStateTransition_get_Type(This,Type) (This)->lpVtbl->get_Type(This,Type)
21466 #define ISpeechGrammarRuleStateTransition_get_Text(This,Text) (This)->lpVtbl->get_Text(This,Text)
21467 #define ISpeechGrammarRuleStateTransition_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
21468 #define ISpeechGrammarRuleStateTransition_get_Weight(This,Weight) (This)->lpVtbl->get_Weight(This,Weight)
21469 #define ISpeechGrammarRuleStateTransition_get_PropertyName(This,PropertyName) (This)->lpVtbl->get_PropertyName(This,PropertyName)
21470 #define ISpeechGrammarRuleStateTransition_get_PropertyId(This,PropertyId) (This)->lpVtbl->get_PropertyId(This,PropertyId)
21471 #define ISpeechGrammarRuleStateTransition_get_PropertyValue(This,PropertyValue) (This)->lpVtbl->get_PropertyValue(This,PropertyValue)
21472 #define ISpeechGrammarRuleStateTransition_get_NextState(This,NextState) (This)->lpVtbl->get_NextState(This,NextState)
21473 #else
21474 /*** IUnknown methods ***/
21475 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_QueryInterface(ISpeechGrammarRuleStateTransition* This,REFIID riid,void **ppvObject) {
21476     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21477 }
21478 static FORCEINLINE ULONG ISpeechGrammarRuleStateTransition_AddRef(ISpeechGrammarRuleStateTransition* This) {
21479     return This->lpVtbl->AddRef(This);
21480 }
21481 static FORCEINLINE ULONG ISpeechGrammarRuleStateTransition_Release(ISpeechGrammarRuleStateTransition* This) {
21482     return This->lpVtbl->Release(This);
21483 }
21484 /*** IDispatch methods ***/
21485 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_GetTypeInfoCount(ISpeechGrammarRuleStateTransition* This,UINT *pctinfo) {
21486     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21487 }
21488 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_GetTypeInfo(ISpeechGrammarRuleStateTransition* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21489     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21490 }
21491 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_GetIDsOfNames(ISpeechGrammarRuleStateTransition* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21492     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21493 }
21494 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_Invoke(ISpeechGrammarRuleStateTransition* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21495     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21496 }
21497 /*** ISpeechGrammarRuleStateTransition methods ***/
21498 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_Type(ISpeechGrammarRuleStateTransition* This,SpeechGrammarRuleStateTransitionType *Type) {
21499     return This->lpVtbl->get_Type(This,Type);
21500 }
21501 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_Text(ISpeechGrammarRuleStateTransition* This,BSTR *Text) {
21502     return This->lpVtbl->get_Text(This,Text);
21503 }
21504 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_Rule(ISpeechGrammarRuleStateTransition* This,ISpeechGrammarRule **Rule) {
21505     return This->lpVtbl->get_Rule(This,Rule);
21506 }
21507 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_Weight(ISpeechGrammarRuleStateTransition* This,VARIANT *Weight) {
21508     return This->lpVtbl->get_Weight(This,Weight);
21509 }
21510 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_PropertyName(ISpeechGrammarRuleStateTransition* This,BSTR *PropertyName) {
21511     return This->lpVtbl->get_PropertyName(This,PropertyName);
21512 }
21513 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_PropertyId(ISpeechGrammarRuleStateTransition* This,LONG *PropertyId) {
21514     return This->lpVtbl->get_PropertyId(This,PropertyId);
21515 }
21516 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_PropertyValue(ISpeechGrammarRuleStateTransition* This,VARIANT *PropertyValue) {
21517     return This->lpVtbl->get_PropertyValue(This,PropertyValue);
21518 }
21519 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_NextState(ISpeechGrammarRuleStateTransition* This,ISpeechGrammarRuleState **NextState) {
21520     return This->lpVtbl->get_NextState(This,NextState);
21521 }
21522 #endif
21523 #endif
21524 
21525 #endif
21526 
21527 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_Type_Proxy(
21528     ISpeechGrammarRuleStateTransition* This,
21529     SpeechGrammarRuleStateTransitionType *Type);
21530 void __RPC_STUB ISpeechGrammarRuleStateTransition_get_Type_Stub(
21531     IRpcStubBuffer* This,
21532     IRpcChannelBuffer* pRpcChannelBuffer,
21533     PRPC_MESSAGE pRpcMessage,
21534     DWORD* pdwStubPhase);
21535 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_Text_Proxy(
21536     ISpeechGrammarRuleStateTransition* This,
21537     BSTR *Text);
21538 void __RPC_STUB ISpeechGrammarRuleStateTransition_get_Text_Stub(
21539     IRpcStubBuffer* This,
21540     IRpcChannelBuffer* pRpcChannelBuffer,
21541     PRPC_MESSAGE pRpcMessage,
21542     DWORD* pdwStubPhase);
21543 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_Rule_Proxy(
21544     ISpeechGrammarRuleStateTransition* This,
21545     ISpeechGrammarRule **Rule);
21546 void __RPC_STUB ISpeechGrammarRuleStateTransition_get_Rule_Stub(
21547     IRpcStubBuffer* This,
21548     IRpcChannelBuffer* pRpcChannelBuffer,
21549     PRPC_MESSAGE pRpcMessage,
21550     DWORD* pdwStubPhase);
21551 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_Weight_Proxy(
21552     ISpeechGrammarRuleStateTransition* This,
21553     VARIANT *Weight);
21554 void __RPC_STUB ISpeechGrammarRuleStateTransition_get_Weight_Stub(
21555     IRpcStubBuffer* This,
21556     IRpcChannelBuffer* pRpcChannelBuffer,
21557     PRPC_MESSAGE pRpcMessage,
21558     DWORD* pdwStubPhase);
21559 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_PropertyName_Proxy(
21560     ISpeechGrammarRuleStateTransition* This,
21561     BSTR *PropertyName);
21562 void __RPC_STUB ISpeechGrammarRuleStateTransition_get_PropertyName_Stub(
21563     IRpcStubBuffer* This,
21564     IRpcChannelBuffer* pRpcChannelBuffer,
21565     PRPC_MESSAGE pRpcMessage,
21566     DWORD* pdwStubPhase);
21567 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_PropertyId_Proxy(
21568     ISpeechGrammarRuleStateTransition* This,
21569     LONG *PropertyId);
21570 void __RPC_STUB ISpeechGrammarRuleStateTransition_get_PropertyId_Stub(
21571     IRpcStubBuffer* This,
21572     IRpcChannelBuffer* pRpcChannelBuffer,
21573     PRPC_MESSAGE pRpcMessage,
21574     DWORD* pdwStubPhase);
21575 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_PropertyValue_Proxy(
21576     ISpeechGrammarRuleStateTransition* This,
21577     VARIANT *PropertyValue);
21578 void __RPC_STUB ISpeechGrammarRuleStateTransition_get_PropertyValue_Stub(
21579     IRpcStubBuffer* This,
21580     IRpcChannelBuffer* pRpcChannelBuffer,
21581     PRPC_MESSAGE pRpcMessage,
21582     DWORD* pdwStubPhase);
21583 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_NextState_Proxy(
21584     ISpeechGrammarRuleStateTransition* This,
21585     ISpeechGrammarRuleState **NextState);
21586 void __RPC_STUB ISpeechGrammarRuleStateTransition_get_NextState_Stub(
21587     IRpcStubBuffer* This,
21588     IRpcChannelBuffer* pRpcChannelBuffer,
21589     PRPC_MESSAGE pRpcMessage,
21590     DWORD* pdwStubPhase);
21591 
21592 #endif  /* __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__ */
21593 
21594 /*****************************************************************************
21595  * ISpeechTextSelectionInformation interface
21596  */
21597 #ifndef __ISpeechTextSelectionInformation_INTERFACE_DEFINED__
21598 #define __ISpeechTextSelectionInformation_INTERFACE_DEFINED__
21599 
21600 DEFINE_GUID(IID_ISpeechTextSelectionInformation, 0x3b9c7e7a, 0x6eee, 0x4ded, 0x90,0x92, 0x11,0x65,0x72,0x79,0xad,0xbe);
21601 #if defined(__cplusplus) && !defined(CINTERFACE)
21602 MIDL_INTERFACE("3b9c7e7a-6eee-4ded-9092-11657279adbe")
21603 ISpeechTextSelectionInformation : public IDispatch
21604 {
21605     virtual HRESULT STDMETHODCALLTYPE put_ActiveOffset(
21606         LONG ActiveOffset) = 0;
21607 
21608     virtual HRESULT STDMETHODCALLTYPE get_ActiveOffset(
21609         LONG *ActiveOffset) = 0;
21610 
21611     virtual HRESULT STDMETHODCALLTYPE put_ActiveLength(
21612         LONG ActiveLength) = 0;
21613 
21614     virtual HRESULT STDMETHODCALLTYPE get_ActiveLength(
21615         LONG *ActiveLength) = 0;
21616 
21617     virtual HRESULT STDMETHODCALLTYPE put_SelectionOffset(
21618         LONG SelectionOffset) = 0;
21619 
21620     virtual HRESULT STDMETHODCALLTYPE get_SelectionOffset(
21621         LONG *SelectionOffset) = 0;
21622 
21623     virtual HRESULT STDMETHODCALLTYPE put_SelectionLength(
21624         LONG SelectionLength) = 0;
21625 
21626     virtual HRESULT STDMETHODCALLTYPE get_SelectionLength(
21627         LONG *SelectionLength) = 0;
21628 
21629 };
21630 #ifdef __CRT_UUID_DECL
21631 __CRT_UUID_DECL(ISpeechTextSelectionInformation, 0x3b9c7e7a, 0x6eee, 0x4ded, 0x90,0x92, 0x11,0x65,0x72,0x79,0xad,0xbe)
21632 #endif
21633 #else
21634 typedef struct ISpeechTextSelectionInformationVtbl {
21635     BEGIN_INTERFACE
21636 
21637     /*** IUnknown methods ***/
21638     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21639         ISpeechTextSelectionInformation* This,
21640         REFIID riid,
21641         void **ppvObject);
21642 
21643     ULONG (STDMETHODCALLTYPE *AddRef)(
21644         ISpeechTextSelectionInformation* This);
21645 
21646     ULONG (STDMETHODCALLTYPE *Release)(
21647         ISpeechTextSelectionInformation* This);
21648 
21649     /*** IDispatch methods ***/
21650     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21651         ISpeechTextSelectionInformation* This,
21652         UINT *pctinfo);
21653 
21654     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21655         ISpeechTextSelectionInformation* This,
21656         UINT iTInfo,
21657         LCID lcid,
21658         ITypeInfo **ppTInfo);
21659 
21660     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21661         ISpeechTextSelectionInformation* This,
21662         REFIID riid,
21663         LPOLESTR *rgszNames,
21664         UINT cNames,
21665         LCID lcid,
21666         DISPID *rgDispId);
21667 
21668     HRESULT (STDMETHODCALLTYPE *Invoke)(
21669         ISpeechTextSelectionInformation* This,
21670         DISPID dispIdMember,
21671         REFIID riid,
21672         LCID lcid,
21673         WORD wFlags,
21674         DISPPARAMS *pDispParams,
21675         VARIANT *pVarResult,
21676         EXCEPINFO *pExcepInfo,
21677         UINT *puArgErr);
21678 
21679     /*** ISpeechTextSelectionInformation methods ***/
21680     HRESULT (STDMETHODCALLTYPE *put_ActiveOffset)(
21681         ISpeechTextSelectionInformation* This,
21682         LONG ActiveOffset);
21683 
21684     HRESULT (STDMETHODCALLTYPE *get_ActiveOffset)(
21685         ISpeechTextSelectionInformation* This,
21686         LONG *ActiveOffset);
21687 
21688     HRESULT (STDMETHODCALLTYPE *put_ActiveLength)(
21689         ISpeechTextSelectionInformation* This,
21690         LONG ActiveLength);
21691 
21692     HRESULT (STDMETHODCALLTYPE *get_ActiveLength)(
21693         ISpeechTextSelectionInformation* This,
21694         LONG *ActiveLength);
21695 
21696     HRESULT (STDMETHODCALLTYPE *put_SelectionOffset)(
21697         ISpeechTextSelectionInformation* This,
21698         LONG SelectionOffset);
21699 
21700     HRESULT (STDMETHODCALLTYPE *get_SelectionOffset)(
21701         ISpeechTextSelectionInformation* This,
21702         LONG *SelectionOffset);
21703 
21704     HRESULT (STDMETHODCALLTYPE *put_SelectionLength)(
21705         ISpeechTextSelectionInformation* This,
21706         LONG SelectionLength);
21707 
21708     HRESULT (STDMETHODCALLTYPE *get_SelectionLength)(
21709         ISpeechTextSelectionInformation* This,
21710         LONG *SelectionLength);
21711 
21712     END_INTERFACE
21713 } ISpeechTextSelectionInformationVtbl;
21714 interface ISpeechTextSelectionInformation {
21715     CONST_VTBL ISpeechTextSelectionInformationVtbl* lpVtbl;
21716 };
21717 
21718 #ifdef COBJMACROS
21719 #ifndef WIDL_C_INLINE_WRAPPERS
21720 /*** IUnknown methods ***/
21721 #define ISpeechTextSelectionInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21722 #define ISpeechTextSelectionInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
21723 #define ISpeechTextSelectionInformation_Release(This) (This)->lpVtbl->Release(This)
21724 /*** IDispatch methods ***/
21725 #define ISpeechTextSelectionInformation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21726 #define ISpeechTextSelectionInformation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21727 #define ISpeechTextSelectionInformation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21728 #define ISpeechTextSelectionInformation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21729 /*** ISpeechTextSelectionInformation methods ***/
21730 #define ISpeechTextSelectionInformation_put_ActiveOffset(This,ActiveOffset) (This)->lpVtbl->put_ActiveOffset(This,ActiveOffset)
21731 #define ISpeechTextSelectionInformation_get_ActiveOffset(This,ActiveOffset) (This)->lpVtbl->get_ActiveOffset(This,ActiveOffset)
21732 #define ISpeechTextSelectionInformation_put_ActiveLength(This,ActiveLength) (This)->lpVtbl->put_ActiveLength(This,ActiveLength)
21733 #define ISpeechTextSelectionInformation_get_ActiveLength(This,ActiveLength) (This)->lpVtbl->get_ActiveLength(This,ActiveLength)
21734 #define ISpeechTextSelectionInformation_put_SelectionOffset(This,SelectionOffset) (This)->lpVtbl->put_SelectionOffset(This,SelectionOffset)
21735 #define ISpeechTextSelectionInformation_get_SelectionOffset(This,SelectionOffset) (This)->lpVtbl->get_SelectionOffset(This,SelectionOffset)
21736 #define ISpeechTextSelectionInformation_put_SelectionLength(This,SelectionLength) (This)->lpVtbl->put_SelectionLength(This,SelectionLength)
21737 #define ISpeechTextSelectionInformation_get_SelectionLength(This,SelectionLength) (This)->lpVtbl->get_SelectionLength(This,SelectionLength)
21738 #else
21739 /*** IUnknown methods ***/
21740 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_QueryInterface(ISpeechTextSelectionInformation* This,REFIID riid,void **ppvObject) {
21741     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21742 }
21743 static FORCEINLINE ULONG ISpeechTextSelectionInformation_AddRef(ISpeechTextSelectionInformation* This) {
21744     return This->lpVtbl->AddRef(This);
21745 }
21746 static FORCEINLINE ULONG ISpeechTextSelectionInformation_Release(ISpeechTextSelectionInformation* This) {
21747     return This->lpVtbl->Release(This);
21748 }
21749 /*** IDispatch methods ***/
21750 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_GetTypeInfoCount(ISpeechTextSelectionInformation* This,UINT *pctinfo) {
21751     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21752 }
21753 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_GetTypeInfo(ISpeechTextSelectionInformation* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21754     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21755 }
21756 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_GetIDsOfNames(ISpeechTextSelectionInformation* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21757     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21758 }
21759 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_Invoke(ISpeechTextSelectionInformation* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21760     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21761 }
21762 /*** ISpeechTextSelectionInformation methods ***/
21763 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_put_ActiveOffset(ISpeechTextSelectionInformation* This,LONG ActiveOffset) {
21764     return This->lpVtbl->put_ActiveOffset(This,ActiveOffset);
21765 }
21766 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_get_ActiveOffset(ISpeechTextSelectionInformation* This,LONG *ActiveOffset) {
21767     return This->lpVtbl->get_ActiveOffset(This,ActiveOffset);
21768 }
21769 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_put_ActiveLength(ISpeechTextSelectionInformation* This,LONG ActiveLength) {
21770     return This->lpVtbl->put_ActiveLength(This,ActiveLength);
21771 }
21772 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_get_ActiveLength(ISpeechTextSelectionInformation* This,LONG *ActiveLength) {
21773     return This->lpVtbl->get_ActiveLength(This,ActiveLength);
21774 }
21775 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_put_SelectionOffset(ISpeechTextSelectionInformation* This,LONG SelectionOffset) {
21776     return This->lpVtbl->put_SelectionOffset(This,SelectionOffset);
21777 }
21778 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_get_SelectionOffset(ISpeechTextSelectionInformation* This,LONG *SelectionOffset) {
21779     return This->lpVtbl->get_SelectionOffset(This,SelectionOffset);
21780 }
21781 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_put_SelectionLength(ISpeechTextSelectionInformation* This,LONG SelectionLength) {
21782     return This->lpVtbl->put_SelectionLength(This,SelectionLength);
21783 }
21784 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_get_SelectionLength(ISpeechTextSelectionInformation* This,LONG *SelectionLength) {
21785     return This->lpVtbl->get_SelectionLength(This,SelectionLength);
21786 }
21787 #endif
21788 #endif
21789 
21790 #endif
21791 
21792 HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_put_ActiveOffset_Proxy(
21793     ISpeechTextSelectionInformation* This,
21794     LONG ActiveOffset);
21795 void __RPC_STUB ISpeechTextSelectionInformation_put_ActiveOffset_Stub(
21796     IRpcStubBuffer* This,
21797     IRpcChannelBuffer* pRpcChannelBuffer,
21798     PRPC_MESSAGE pRpcMessage,
21799     DWORD* pdwStubPhase);
21800 HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_get_ActiveOffset_Proxy(
21801     ISpeechTextSelectionInformation* This,
21802     LONG *ActiveOffset);
21803 void __RPC_STUB ISpeechTextSelectionInformation_get_ActiveOffset_Stub(
21804     IRpcStubBuffer* This,
21805     IRpcChannelBuffer* pRpcChannelBuffer,
21806     PRPC_MESSAGE pRpcMessage,
21807     DWORD* pdwStubPhase);
21808 HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_put_ActiveLength_Proxy(
21809     ISpeechTextSelectionInformation* This,
21810     LONG ActiveLength);
21811 void __RPC_STUB ISpeechTextSelectionInformation_put_ActiveLength_Stub(
21812     IRpcStubBuffer* This,
21813     IRpcChannelBuffer* pRpcChannelBuffer,
21814     PRPC_MESSAGE pRpcMessage,
21815     DWORD* pdwStubPhase);
21816 HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_get_ActiveLength_Proxy(
21817     ISpeechTextSelectionInformation* This,
21818     LONG *ActiveLength);
21819 void __RPC_STUB ISpeechTextSelectionInformation_get_ActiveLength_Stub(
21820     IRpcStubBuffer* This,
21821     IRpcChannelBuffer* pRpcChannelBuffer,
21822     PRPC_MESSAGE pRpcMessage,
21823     DWORD* pdwStubPhase);
21824 HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_put_SelectionOffset_Proxy(
21825     ISpeechTextSelectionInformation* This,
21826     LONG SelectionOffset);
21827 void __RPC_STUB ISpeechTextSelectionInformation_put_SelectionOffset_Stub(
21828     IRpcStubBuffer* This,
21829     IRpcChannelBuffer* pRpcChannelBuffer,
21830     PRPC_MESSAGE pRpcMessage,
21831     DWORD* pdwStubPhase);
21832 HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_get_SelectionOffset_Proxy(
21833     ISpeechTextSelectionInformation* This,
21834     LONG *SelectionOffset);
21835 void __RPC_STUB ISpeechTextSelectionInformation_get_SelectionOffset_Stub(
21836     IRpcStubBuffer* This,
21837     IRpcChannelBuffer* pRpcChannelBuffer,
21838     PRPC_MESSAGE pRpcMessage,
21839     DWORD* pdwStubPhase);
21840 HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_put_SelectionLength_Proxy(
21841     ISpeechTextSelectionInformation* This,
21842     LONG SelectionLength);
21843 void __RPC_STUB ISpeechTextSelectionInformation_put_SelectionLength_Stub(
21844     IRpcStubBuffer* This,
21845     IRpcChannelBuffer* pRpcChannelBuffer,
21846     PRPC_MESSAGE pRpcMessage,
21847     DWORD* pdwStubPhase);
21848 HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_get_SelectionLength_Proxy(
21849     ISpeechTextSelectionInformation* This,
21850     LONG *SelectionLength);
21851 void __RPC_STUB ISpeechTextSelectionInformation_get_SelectionLength_Stub(
21852     IRpcStubBuffer* This,
21853     IRpcChannelBuffer* pRpcChannelBuffer,
21854     PRPC_MESSAGE pRpcMessage,
21855     DWORD* pdwStubPhase);
21856 
21857 #endif  /* __ISpeechTextSelectionInformation_INTERFACE_DEFINED__ */
21858 
21859 /*****************************************************************************
21860  * ISpeechRecoResult interface
21861  */
21862 #ifndef __ISpeechRecoResult_INTERFACE_DEFINED__
21863 #define __ISpeechRecoResult_INTERFACE_DEFINED__
21864 
21865 DEFINE_GUID(IID_ISpeechRecoResult, 0xed2879cf, 0xced9, 0x4ee6, 0xa5,0x34, 0xde,0x01,0x91,0xd5,0x46,0x8d);
21866 #if defined(__cplusplus) && !defined(CINTERFACE)
21867 MIDL_INTERFACE("ed2879cf-ced9-4ee6-a534-de0191d5468d")
21868 ISpeechRecoResult : public IDispatch
21869 {
21870     virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
21871         ISpeechRecoContext **RecoContext) = 0;
21872 
21873     virtual HRESULT STDMETHODCALLTYPE get_Times(
21874         ISpeechRecoResultTimes **Times) = 0;
21875 
21876     virtual HRESULT STDMETHODCALLTYPE putref_AudioFormat(
21877         ISpeechAudioFormat *Format) = 0;
21878 
21879     virtual HRESULT STDMETHODCALLTYPE get_AudioFormat(
21880         ISpeechAudioFormat **Format) = 0;
21881 
21882     virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
21883         ISpeechPhraseInfo **PhraseInfo) = 0;
21884 
21885     virtual HRESULT STDMETHODCALLTYPE Alternates(
21886         LONG RequestCount,
21887         LONG StartElement,
21888         LONG Elements,
21889         ISpeechPhraseAlternates **Alternates) = 0;
21890 
21891     virtual HRESULT STDMETHODCALLTYPE Audio(
21892         LONG StartElement,
21893         LONG Elements,
21894         ISpeechMemoryStream **Stream) = 0;
21895 
21896     virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
21897         LONG StartElement,
21898         LONG Elements,
21899         SpeechVoiceSpeakFlags Flags,
21900         LONG *StreamNumber) = 0;
21901 
21902     virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
21903         VARIANT *ResultBlock) = 0;
21904 
21905     virtual HRESULT STDMETHODCALLTYPE DiscardResultInfo(
21906         SpeechDiscardType ValueTypes) = 0;
21907 
21908 };
21909 #ifdef __CRT_UUID_DECL
21910 __CRT_UUID_DECL(ISpeechRecoResult, 0xed2879cf, 0xced9, 0x4ee6, 0xa5,0x34, 0xde,0x01,0x91,0xd5,0x46,0x8d)
21911 #endif
21912 #else
21913 typedef struct ISpeechRecoResultVtbl {
21914     BEGIN_INTERFACE
21915 
21916     /*** IUnknown methods ***/
21917     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21918         ISpeechRecoResult* This,
21919         REFIID riid,
21920         void **ppvObject);
21921 
21922     ULONG (STDMETHODCALLTYPE *AddRef)(
21923         ISpeechRecoResult* This);
21924 
21925     ULONG (STDMETHODCALLTYPE *Release)(
21926         ISpeechRecoResult* This);
21927 
21928     /*** IDispatch methods ***/
21929     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21930         ISpeechRecoResult* This,
21931         UINT *pctinfo);
21932 
21933     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21934         ISpeechRecoResult* This,
21935         UINT iTInfo,
21936         LCID lcid,
21937         ITypeInfo **ppTInfo);
21938 
21939     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21940         ISpeechRecoResult* This,
21941         REFIID riid,
21942         LPOLESTR *rgszNames,
21943         UINT cNames,
21944         LCID lcid,
21945         DISPID *rgDispId);
21946 
21947     HRESULT (STDMETHODCALLTYPE *Invoke)(
21948         ISpeechRecoResult* This,
21949         DISPID dispIdMember,
21950         REFIID riid,
21951         LCID lcid,
21952         WORD wFlags,
21953         DISPPARAMS *pDispParams,
21954         VARIANT *pVarResult,
21955         EXCEPINFO *pExcepInfo,
21956         UINT *puArgErr);
21957 
21958     /*** ISpeechRecoResult methods ***/
21959     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
21960         ISpeechRecoResult* This,
21961         ISpeechRecoContext **RecoContext);
21962 
21963     HRESULT (STDMETHODCALLTYPE *get_Times)(
21964         ISpeechRecoResult* This,
21965         ISpeechRecoResultTimes **Times);
21966 
21967     HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
21968         ISpeechRecoResult* This,
21969         ISpeechAudioFormat *Format);
21970 
21971     HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
21972         ISpeechRecoResult* This,
21973         ISpeechAudioFormat **Format);
21974 
21975     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
21976         ISpeechRecoResult* This,
21977         ISpeechPhraseInfo **PhraseInfo);
21978 
21979     HRESULT (STDMETHODCALLTYPE *Alternates)(
21980         ISpeechRecoResult* This,
21981         LONG RequestCount,
21982         LONG StartElement,
21983         LONG Elements,
21984         ISpeechPhraseAlternates **Alternates);
21985 
21986     HRESULT (STDMETHODCALLTYPE *Audio)(
21987         ISpeechRecoResult* This,
21988         LONG StartElement,
21989         LONG Elements,
21990         ISpeechMemoryStream **Stream);
21991 
21992     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
21993         ISpeechRecoResult* This,
21994         LONG StartElement,
21995         LONG Elements,
21996         SpeechVoiceSpeakFlags Flags,
21997         LONG *StreamNumber);
21998 
21999     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
22000         ISpeechRecoResult* This,
22001         VARIANT *ResultBlock);
22002 
22003     HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
22004         ISpeechRecoResult* This,
22005         SpeechDiscardType ValueTypes);
22006 
22007     END_INTERFACE
22008 } ISpeechRecoResultVtbl;
22009 interface ISpeechRecoResult {
22010     CONST_VTBL ISpeechRecoResultVtbl* lpVtbl;
22011 };
22012 
22013 #ifdef COBJMACROS
22014 #ifndef WIDL_C_INLINE_WRAPPERS
22015 /*** IUnknown methods ***/
22016 #define ISpeechRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22017 #define ISpeechRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
22018 #define ISpeechRecoResult_Release(This) (This)->lpVtbl->Release(This)
22019 /*** IDispatch methods ***/
22020 #define ISpeechRecoResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22021 #define ISpeechRecoResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22022 #define ISpeechRecoResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22023 #define ISpeechRecoResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22024 /*** ISpeechRecoResult methods ***/
22025 #define ISpeechRecoResult_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
22026 #define ISpeechRecoResult_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
22027 #define ISpeechRecoResult_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
22028 #define ISpeechRecoResult_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
22029 #define ISpeechRecoResult_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
22030 #define ISpeechRecoResult_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
22031 #define ISpeechRecoResult_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
22032 #define ISpeechRecoResult_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
22033 #define ISpeechRecoResult_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
22034 #define ISpeechRecoResult_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
22035 #else
22036 /*** IUnknown methods ***/
22037 static FORCEINLINE HRESULT ISpeechRecoResult_QueryInterface(ISpeechRecoResult* This,REFIID riid,void **ppvObject) {
22038     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22039 }
22040 static FORCEINLINE ULONG ISpeechRecoResult_AddRef(ISpeechRecoResult* This) {
22041     return This->lpVtbl->AddRef(This);
22042 }
22043 static FORCEINLINE ULONG ISpeechRecoResult_Release(ISpeechRecoResult* This) {
22044     return This->lpVtbl->Release(This);
22045 }
22046 /*** IDispatch methods ***/
22047 static FORCEINLINE HRESULT ISpeechRecoResult_GetTypeInfoCount(ISpeechRecoResult* This,UINT *pctinfo) {
22048     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22049 }
22050 static FORCEINLINE HRESULT ISpeechRecoResult_GetTypeInfo(ISpeechRecoResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22051     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22052 }
22053 static FORCEINLINE HRESULT ISpeechRecoResult_GetIDsOfNames(ISpeechRecoResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22054     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22055 }
22056 static FORCEINLINE HRESULT ISpeechRecoResult_Invoke(ISpeechRecoResult* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22057     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22058 }
22059 /*** ISpeechRecoResult methods ***/
22060 static FORCEINLINE HRESULT ISpeechRecoResult_get_RecoContext(ISpeechRecoResult* This,ISpeechRecoContext **RecoContext) {
22061     return This->lpVtbl->get_RecoContext(This,RecoContext);
22062 }
22063 static FORCEINLINE HRESULT ISpeechRecoResult_get_Times(ISpeechRecoResult* This,ISpeechRecoResultTimes **Times) {
22064     return This->lpVtbl->get_Times(This,Times);
22065 }
22066 static FORCEINLINE HRESULT ISpeechRecoResult_putref_AudioFormat(ISpeechRecoResult* This,ISpeechAudioFormat *Format) {
22067     return This->lpVtbl->putref_AudioFormat(This,Format);
22068 }
22069 static FORCEINLINE HRESULT ISpeechRecoResult_get_AudioFormat(ISpeechRecoResult* This,ISpeechAudioFormat **Format) {
22070     return This->lpVtbl->get_AudioFormat(This,Format);
22071 }
22072 static FORCEINLINE HRESULT ISpeechRecoResult_get_PhraseInfo(ISpeechRecoResult* This,ISpeechPhraseInfo **PhraseInfo) {
22073     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
22074 }
22075 static FORCEINLINE HRESULT ISpeechRecoResult_Alternates(ISpeechRecoResult* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
22076     return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
22077 }
22078 static FORCEINLINE HRESULT ISpeechRecoResult_Audio(ISpeechRecoResult* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
22079     return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
22080 }
22081 static FORCEINLINE HRESULT ISpeechRecoResult_SpeakAudio(ISpeechRecoResult* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
22082     return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
22083 }
22084 static FORCEINLINE HRESULT ISpeechRecoResult_SaveToMemory(ISpeechRecoResult* This,VARIANT *ResultBlock) {
22085     return This->lpVtbl->SaveToMemory(This,ResultBlock);
22086 }
22087 static FORCEINLINE HRESULT ISpeechRecoResult_DiscardResultInfo(ISpeechRecoResult* This,SpeechDiscardType ValueTypes) {
22088     return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
22089 }
22090 #endif
22091 #endif
22092 
22093 #endif
22094 
22095 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_get_RecoContext_Proxy(
22096     ISpeechRecoResult* This,
22097     ISpeechRecoContext **RecoContext);
22098 void __RPC_STUB ISpeechRecoResult_get_RecoContext_Stub(
22099     IRpcStubBuffer* This,
22100     IRpcChannelBuffer* pRpcChannelBuffer,
22101     PRPC_MESSAGE pRpcMessage,
22102     DWORD* pdwStubPhase);
22103 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_get_Times_Proxy(
22104     ISpeechRecoResult* This,
22105     ISpeechRecoResultTimes **Times);
22106 void __RPC_STUB ISpeechRecoResult_get_Times_Stub(
22107     IRpcStubBuffer* This,
22108     IRpcChannelBuffer* pRpcChannelBuffer,
22109     PRPC_MESSAGE pRpcMessage,
22110     DWORD* pdwStubPhase);
22111 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_putref_AudioFormat_Proxy(
22112     ISpeechRecoResult* This,
22113     ISpeechAudioFormat *Format);
22114 void __RPC_STUB ISpeechRecoResult_putref_AudioFormat_Stub(
22115     IRpcStubBuffer* This,
22116     IRpcChannelBuffer* pRpcChannelBuffer,
22117     PRPC_MESSAGE pRpcMessage,
22118     DWORD* pdwStubPhase);
22119 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_get_AudioFormat_Proxy(
22120     ISpeechRecoResult* This,
22121     ISpeechAudioFormat **Format);
22122 void __RPC_STUB ISpeechRecoResult_get_AudioFormat_Stub(
22123     IRpcStubBuffer* This,
22124     IRpcChannelBuffer* pRpcChannelBuffer,
22125     PRPC_MESSAGE pRpcMessage,
22126     DWORD* pdwStubPhase);
22127 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_get_PhraseInfo_Proxy(
22128     ISpeechRecoResult* This,
22129     ISpeechPhraseInfo **PhraseInfo);
22130 void __RPC_STUB ISpeechRecoResult_get_PhraseInfo_Stub(
22131     IRpcStubBuffer* This,
22132     IRpcChannelBuffer* pRpcChannelBuffer,
22133     PRPC_MESSAGE pRpcMessage,
22134     DWORD* pdwStubPhase);
22135 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_Alternates_Proxy(
22136     ISpeechRecoResult* This,
22137     LONG RequestCount,
22138     LONG StartElement,
22139     LONG Elements,
22140     ISpeechPhraseAlternates **Alternates);
22141 void __RPC_STUB ISpeechRecoResult_Alternates_Stub(
22142     IRpcStubBuffer* This,
22143     IRpcChannelBuffer* pRpcChannelBuffer,
22144     PRPC_MESSAGE pRpcMessage,
22145     DWORD* pdwStubPhase);
22146 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_Audio_Proxy(
22147     ISpeechRecoResult* This,
22148     LONG StartElement,
22149     LONG Elements,
22150     ISpeechMemoryStream **Stream);
22151 void __RPC_STUB ISpeechRecoResult_Audio_Stub(
22152     IRpcStubBuffer* This,
22153     IRpcChannelBuffer* pRpcChannelBuffer,
22154     PRPC_MESSAGE pRpcMessage,
22155     DWORD* pdwStubPhase);
22156 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_SpeakAudio_Proxy(
22157     ISpeechRecoResult* This,
22158     LONG StartElement,
22159     LONG Elements,
22160     SpeechVoiceSpeakFlags Flags,
22161     LONG *StreamNumber);
22162 void __RPC_STUB ISpeechRecoResult_SpeakAudio_Stub(
22163     IRpcStubBuffer* This,
22164     IRpcChannelBuffer* pRpcChannelBuffer,
22165     PRPC_MESSAGE pRpcMessage,
22166     DWORD* pdwStubPhase);
22167 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_SaveToMemory_Proxy(
22168     ISpeechRecoResult* This,
22169     VARIANT *ResultBlock);
22170 void __RPC_STUB ISpeechRecoResult_SaveToMemory_Stub(
22171     IRpcStubBuffer* This,
22172     IRpcChannelBuffer* pRpcChannelBuffer,
22173     PRPC_MESSAGE pRpcMessage,
22174     DWORD* pdwStubPhase);
22175 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_DiscardResultInfo_Proxy(
22176     ISpeechRecoResult* This,
22177     SpeechDiscardType ValueTypes);
22178 void __RPC_STUB ISpeechRecoResult_DiscardResultInfo_Stub(
22179     IRpcStubBuffer* This,
22180     IRpcChannelBuffer* pRpcChannelBuffer,
22181     PRPC_MESSAGE pRpcMessage,
22182     DWORD* pdwStubPhase);
22183 
22184 #endif  /* __ISpeechRecoResult_INTERFACE_DEFINED__ */
22185 
22186 /*****************************************************************************
22187  * ISpeechXMLRecoResult interface
22188  */
22189 #ifndef __ISpeechXMLRecoResult_INTERFACE_DEFINED__
22190 #define __ISpeechXMLRecoResult_INTERFACE_DEFINED__
22191 
22192 DEFINE_GUID(IID_ISpeechXMLRecoResult, 0xaaec54af, 0x8f85, 0x4924, 0x94,0x4d, 0xb7,0x9d,0x39,0xd7,0x2e,0x19);
22193 #if defined(__cplusplus) && !defined(CINTERFACE)
22194 MIDL_INTERFACE("aaec54af-8f85-4924-944d-b79d39d72e19")
22195 ISpeechXMLRecoResult : public ISpeechRecoResult
22196 {
22197     virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
22198         SPXMLRESULTOPTIONS Options,
22199         BSTR *pResult) = 0;
22200 
22201     virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
22202         LONG *LineNumber,
22203         BSTR *ScriptLine,
22204         BSTR *Source,
22205         BSTR *Description,
22206         LONG *ResultCode,
22207         VARIANT_BOOL *IsError) = 0;
22208 
22209 };
22210 #ifdef __CRT_UUID_DECL
22211 __CRT_UUID_DECL(ISpeechXMLRecoResult, 0xaaec54af, 0x8f85, 0x4924, 0x94,0x4d, 0xb7,0x9d,0x39,0xd7,0x2e,0x19)
22212 #endif
22213 #else
22214 typedef struct ISpeechXMLRecoResultVtbl {
22215     BEGIN_INTERFACE
22216 
22217     /*** IUnknown methods ***/
22218     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22219         ISpeechXMLRecoResult* This,
22220         REFIID riid,
22221         void **ppvObject);
22222 
22223     ULONG (STDMETHODCALLTYPE *AddRef)(
22224         ISpeechXMLRecoResult* This);
22225 
22226     ULONG (STDMETHODCALLTYPE *Release)(
22227         ISpeechXMLRecoResult* This);
22228 
22229     /*** IDispatch methods ***/
22230     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
22231         ISpeechXMLRecoResult* This,
22232         UINT *pctinfo);
22233 
22234     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
22235         ISpeechXMLRecoResult* This,
22236         UINT iTInfo,
22237         LCID lcid,
22238         ITypeInfo **ppTInfo);
22239 
22240     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
22241         ISpeechXMLRecoResult* This,
22242         REFIID riid,
22243         LPOLESTR *rgszNames,
22244         UINT cNames,
22245         LCID lcid,
22246         DISPID *rgDispId);
22247 
22248     HRESULT (STDMETHODCALLTYPE *Invoke)(
22249         ISpeechXMLRecoResult* This,
22250         DISPID dispIdMember,
22251         REFIID riid,
22252         LCID lcid,
22253         WORD wFlags,
22254         DISPPARAMS *pDispParams,
22255         VARIANT *pVarResult,
22256         EXCEPINFO *pExcepInfo,
22257         UINT *puArgErr);
22258 
22259     /*** ISpeechRecoResult methods ***/
22260     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
22261         ISpeechXMLRecoResult* This,
22262         ISpeechRecoContext **RecoContext);
22263 
22264     HRESULT (STDMETHODCALLTYPE *get_Times)(
22265         ISpeechXMLRecoResult* This,
22266         ISpeechRecoResultTimes **Times);
22267 
22268     HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
22269         ISpeechXMLRecoResult* This,
22270         ISpeechAudioFormat *Format);
22271 
22272     HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
22273         ISpeechXMLRecoResult* This,
22274         ISpeechAudioFormat **Format);
22275 
22276     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
22277         ISpeechXMLRecoResult* This,
22278         ISpeechPhraseInfo **PhraseInfo);
22279 
22280     HRESULT (STDMETHODCALLTYPE *Alternates)(
22281         ISpeechXMLRecoResult* This,
22282         LONG RequestCount,
22283         LONG StartElement,
22284         LONG Elements,
22285         ISpeechPhraseAlternates **Alternates);
22286 
22287     HRESULT (STDMETHODCALLTYPE *Audio)(
22288         ISpeechXMLRecoResult* This,
22289         LONG StartElement,
22290         LONG Elements,
22291         ISpeechMemoryStream **Stream);
22292 
22293     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
22294         ISpeechXMLRecoResult* This,
22295         LONG StartElement,
22296         LONG Elements,
22297         SpeechVoiceSpeakFlags Flags,
22298         LONG *StreamNumber);
22299 
22300     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
22301         ISpeechXMLRecoResult* This,
22302         VARIANT *ResultBlock);
22303 
22304     HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
22305         ISpeechXMLRecoResult* This,
22306         SpeechDiscardType ValueTypes);
22307 
22308     /*** ISpeechXMLRecoResult methods ***/
22309     HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
22310         ISpeechXMLRecoResult* This,
22311         SPXMLRESULTOPTIONS Options,
22312         BSTR *pResult);
22313 
22314     HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
22315         ISpeechXMLRecoResult* This,
22316         LONG *LineNumber,
22317         BSTR *ScriptLine,
22318         BSTR *Source,
22319         BSTR *Description,
22320         LONG *ResultCode,
22321         VARIANT_BOOL *IsError);
22322 
22323     END_INTERFACE
22324 } ISpeechXMLRecoResultVtbl;
22325 interface ISpeechXMLRecoResult {
22326     CONST_VTBL ISpeechXMLRecoResultVtbl* lpVtbl;
22327 };
22328 
22329 #ifdef COBJMACROS
22330 #ifndef WIDL_C_INLINE_WRAPPERS
22331 /*** IUnknown methods ***/
22332 #define ISpeechXMLRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22333 #define ISpeechXMLRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
22334 #define ISpeechXMLRecoResult_Release(This) (This)->lpVtbl->Release(This)
22335 /*** IDispatch methods ***/
22336 #define ISpeechXMLRecoResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22337 #define ISpeechXMLRecoResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22338 #define ISpeechXMLRecoResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22339 #define ISpeechXMLRecoResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22340 /*** ISpeechRecoResult methods ***/
22341 #define ISpeechXMLRecoResult_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
22342 #define ISpeechXMLRecoResult_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
22343 #define ISpeechXMLRecoResult_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
22344 #define ISpeechXMLRecoResult_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
22345 #define ISpeechXMLRecoResult_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
22346 #define ISpeechXMLRecoResult_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
22347 #define ISpeechXMLRecoResult_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
22348 #define ISpeechXMLRecoResult_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
22349 #define ISpeechXMLRecoResult_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
22350 #define ISpeechXMLRecoResult_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
22351 /*** ISpeechXMLRecoResult methods ***/
22352 #define ISpeechXMLRecoResult_GetXMLResult(This,Options,pResult) (This)->lpVtbl->GetXMLResult(This,Options,pResult)
22353 #define ISpeechXMLRecoResult_GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError) (This)->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError)
22354 #else
22355 /*** IUnknown methods ***/
22356 static FORCEINLINE HRESULT ISpeechXMLRecoResult_QueryInterface(ISpeechXMLRecoResult* This,REFIID riid,void **ppvObject) {
22357     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22358 }
22359 static FORCEINLINE ULONG ISpeechXMLRecoResult_AddRef(ISpeechXMLRecoResult* This) {
22360     return This->lpVtbl->AddRef(This);
22361 }
22362 static FORCEINLINE ULONG ISpeechXMLRecoResult_Release(ISpeechXMLRecoResult* This) {
22363     return This->lpVtbl->Release(This);
22364 }
22365 /*** IDispatch methods ***/
22366 static FORCEINLINE HRESULT ISpeechXMLRecoResult_GetTypeInfoCount(ISpeechXMLRecoResult* This,UINT *pctinfo) {
22367     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22368 }
22369 static FORCEINLINE HRESULT ISpeechXMLRecoResult_GetTypeInfo(ISpeechXMLRecoResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22370     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22371 }
22372 static FORCEINLINE HRESULT ISpeechXMLRecoResult_GetIDsOfNames(ISpeechXMLRecoResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22373     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22374 }
22375 static FORCEINLINE HRESULT ISpeechXMLRecoResult_Invoke(ISpeechXMLRecoResult* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22376     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22377 }
22378 /*** ISpeechRecoResult methods ***/
22379 static FORCEINLINE HRESULT ISpeechXMLRecoResult_get_RecoContext(ISpeechXMLRecoResult* This,ISpeechRecoContext **RecoContext) {
22380     return This->lpVtbl->get_RecoContext(This,RecoContext);
22381 }
22382 static FORCEINLINE HRESULT ISpeechXMLRecoResult_get_Times(ISpeechXMLRecoResult* This,ISpeechRecoResultTimes **Times) {
22383     return This->lpVtbl->get_Times(This,Times);
22384 }
22385 static FORCEINLINE HRESULT ISpeechXMLRecoResult_putref_AudioFormat(ISpeechXMLRecoResult* This,ISpeechAudioFormat *Format) {
22386     return This->lpVtbl->putref_AudioFormat(This,Format);
22387 }
22388 static FORCEINLINE HRESULT ISpeechXMLRecoResult_get_AudioFormat(ISpeechXMLRecoResult* This,ISpeechAudioFormat **Format) {
22389     return This->lpVtbl->get_AudioFormat(This,Format);
22390 }
22391 static FORCEINLINE HRESULT ISpeechXMLRecoResult_get_PhraseInfo(ISpeechXMLRecoResult* This,ISpeechPhraseInfo **PhraseInfo) {
22392     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
22393 }
22394 static FORCEINLINE HRESULT ISpeechXMLRecoResult_Alternates(ISpeechXMLRecoResult* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
22395     return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
22396 }
22397 static FORCEINLINE HRESULT ISpeechXMLRecoResult_Audio(ISpeechXMLRecoResult* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
22398     return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
22399 }
22400 static FORCEINLINE HRESULT ISpeechXMLRecoResult_SpeakAudio(ISpeechXMLRecoResult* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
22401     return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
22402 }
22403 static FORCEINLINE HRESULT ISpeechXMLRecoResult_SaveToMemory(ISpeechXMLRecoResult* This,VARIANT *ResultBlock) {
22404     return This->lpVtbl->SaveToMemory(This,ResultBlock);
22405 }
22406 static FORCEINLINE HRESULT ISpeechXMLRecoResult_DiscardResultInfo(ISpeechXMLRecoResult* This,SpeechDiscardType ValueTypes) {
22407     return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
22408 }
22409 /*** ISpeechXMLRecoResult methods ***/
22410 static FORCEINLINE HRESULT ISpeechXMLRecoResult_GetXMLResult(ISpeechXMLRecoResult* This,SPXMLRESULTOPTIONS Options,BSTR *pResult) {
22411     return This->lpVtbl->GetXMLResult(This,Options,pResult);
22412 }
22413 static FORCEINLINE HRESULT ISpeechXMLRecoResult_GetXMLErrorInfo(ISpeechXMLRecoResult* This,LONG *LineNumber,BSTR *ScriptLine,BSTR *Source,BSTR *Description,LONG *ResultCode,VARIANT_BOOL *IsError) {
22414     return This->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError);
22415 }
22416 #endif
22417 #endif
22418 
22419 #endif
22420 
22421 HRESULT STDMETHODCALLTYPE ISpeechXMLRecoResult_GetXMLResult_Proxy(
22422     ISpeechXMLRecoResult* This,
22423     SPXMLRESULTOPTIONS Options,
22424     BSTR *pResult);
22425 void __RPC_STUB ISpeechXMLRecoResult_GetXMLResult_Stub(
22426     IRpcStubBuffer* This,
22427     IRpcChannelBuffer* pRpcChannelBuffer,
22428     PRPC_MESSAGE pRpcMessage,
22429     DWORD* pdwStubPhase);
22430 HRESULT STDMETHODCALLTYPE ISpeechXMLRecoResult_GetXMLErrorInfo_Proxy(
22431     ISpeechXMLRecoResult* This,
22432     LONG *LineNumber,
22433     BSTR *ScriptLine,
22434     BSTR *Source,
22435     BSTR *Description,
22436     LONG *ResultCode,
22437     VARIANT_BOOL *IsError);
22438 void __RPC_STUB ISpeechXMLRecoResult_GetXMLErrorInfo_Stub(
22439     IRpcStubBuffer* This,
22440     IRpcChannelBuffer* pRpcChannelBuffer,
22441     PRPC_MESSAGE pRpcMessage,
22442     DWORD* pdwStubPhase);
22443 
22444 #endif  /* __ISpeechXMLRecoResult_INTERFACE_DEFINED__ */
22445 
22446 /*****************************************************************************
22447  * ISpeechRecoResult2 interface
22448  */
22449 #ifndef __ISpeechRecoResult2_INTERFACE_DEFINED__
22450 #define __ISpeechRecoResult2_INTERFACE_DEFINED__
22451 
22452 DEFINE_GUID(IID_ISpeechRecoResult2, 0x8e0a246d, 0xd3c8, 0x45de, 0x86,0x57, 0x04,0x29,0x0c,0x45,0x8c,0x3c);
22453 #if defined(__cplusplus) && !defined(CINTERFACE)
22454 MIDL_INTERFACE("8e0a246d-d3c8-45de-8657-04290c458c3c")
22455 ISpeechRecoResult2 : public ISpeechRecoResult
22456 {
22457     virtual HRESULT STDMETHODCALLTYPE SetTextFeedback(
22458         BSTR Feedback,
22459         VARIANT_BOOL WasSuccessful) = 0;
22460 
22461 };
22462 #ifdef __CRT_UUID_DECL
22463 __CRT_UUID_DECL(ISpeechRecoResult2, 0x8e0a246d, 0xd3c8, 0x45de, 0x86,0x57, 0x04,0x29,0x0c,0x45,0x8c,0x3c)
22464 #endif
22465 #else
22466 typedef struct ISpeechRecoResult2Vtbl {
22467     BEGIN_INTERFACE
22468 
22469     /*** IUnknown methods ***/
22470     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22471         ISpeechRecoResult2* This,
22472         REFIID riid,
22473         void **ppvObject);
22474 
22475     ULONG (STDMETHODCALLTYPE *AddRef)(
22476         ISpeechRecoResult2* This);
22477 
22478     ULONG (STDMETHODCALLTYPE *Release)(
22479         ISpeechRecoResult2* This);
22480 
22481     /*** IDispatch methods ***/
22482     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
22483         ISpeechRecoResult2* This,
22484         UINT *pctinfo);
22485 
22486     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
22487         ISpeechRecoResult2* This,
22488         UINT iTInfo,
22489         LCID lcid,
22490         ITypeInfo **ppTInfo);
22491 
22492     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
22493         ISpeechRecoResult2* This,
22494         REFIID riid,
22495         LPOLESTR *rgszNames,
22496         UINT cNames,
22497         LCID lcid,
22498         DISPID *rgDispId);
22499 
22500     HRESULT (STDMETHODCALLTYPE *Invoke)(
22501         ISpeechRecoResult2* This,
22502         DISPID dispIdMember,
22503         REFIID riid,
22504         LCID lcid,
22505         WORD wFlags,
22506         DISPPARAMS *pDispParams,
22507         VARIANT *pVarResult,
22508         EXCEPINFO *pExcepInfo,
22509         UINT *puArgErr);
22510 
22511     /*** ISpeechRecoResult methods ***/
22512     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
22513         ISpeechRecoResult2* This,
22514         ISpeechRecoContext **RecoContext);
22515 
22516     HRESULT (STDMETHODCALLTYPE *get_Times)(
22517         ISpeechRecoResult2* This,
22518         ISpeechRecoResultTimes **Times);
22519 
22520     HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
22521         ISpeechRecoResult2* This,
22522         ISpeechAudioFormat *Format);
22523 
22524     HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
22525         ISpeechRecoResult2* This,
22526         ISpeechAudioFormat **Format);
22527 
22528     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
22529         ISpeechRecoResult2* This,
22530         ISpeechPhraseInfo **PhraseInfo);
22531 
22532     HRESULT (STDMETHODCALLTYPE *Alternates)(
22533         ISpeechRecoResult2* This,
22534         LONG RequestCount,
22535         LONG StartElement,
22536         LONG Elements,
22537         ISpeechPhraseAlternates **Alternates);
22538 
22539     HRESULT (STDMETHODCALLTYPE *Audio)(
22540         ISpeechRecoResult2* This,
22541         LONG StartElement,
22542         LONG Elements,
22543         ISpeechMemoryStream **Stream);
22544 
22545     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
22546         ISpeechRecoResult2* This,
22547         LONG StartElement,
22548         LONG Elements,
22549         SpeechVoiceSpeakFlags Flags,
22550         LONG *StreamNumber);
22551 
22552     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
22553         ISpeechRecoResult2* This,
22554         VARIANT *ResultBlock);
22555 
22556     HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
22557         ISpeechRecoResult2* This,
22558         SpeechDiscardType ValueTypes);
22559 
22560     /*** ISpeechRecoResult2 methods ***/
22561     HRESULT (STDMETHODCALLTYPE *SetTextFeedback)(
22562         ISpeechRecoResult2* This,
22563         BSTR Feedback,
22564         VARIANT_BOOL WasSuccessful);
22565 
22566     END_INTERFACE
22567 } ISpeechRecoResult2Vtbl;
22568 interface ISpeechRecoResult2 {
22569     CONST_VTBL ISpeechRecoResult2Vtbl* lpVtbl;
22570 };
22571 
22572 #ifdef COBJMACROS
22573 #ifndef WIDL_C_INLINE_WRAPPERS
22574 /*** IUnknown methods ***/
22575 #define ISpeechRecoResult2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22576 #define ISpeechRecoResult2_AddRef(This) (This)->lpVtbl->AddRef(This)
22577 #define ISpeechRecoResult2_Release(This) (This)->lpVtbl->Release(This)
22578 /*** IDispatch methods ***/
22579 #define ISpeechRecoResult2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22580 #define ISpeechRecoResult2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22581 #define ISpeechRecoResult2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22582 #define ISpeechRecoResult2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22583 /*** ISpeechRecoResult methods ***/
22584 #define ISpeechRecoResult2_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
22585 #define ISpeechRecoResult2_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
22586 #define ISpeechRecoResult2_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
22587 #define ISpeechRecoResult2_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
22588 #define ISpeechRecoResult2_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
22589 #define ISpeechRecoResult2_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
22590 #define ISpeechRecoResult2_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
22591 #define ISpeechRecoResult2_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
22592 #define ISpeechRecoResult2_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
22593 #define ISpeechRecoResult2_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
22594 /*** ISpeechRecoResult2 methods ***/
22595 #define ISpeechRecoResult2_SetTextFeedback(This,Feedback,WasSuccessful) (This)->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful)
22596 #else
22597 /*** IUnknown methods ***/
22598 static FORCEINLINE HRESULT ISpeechRecoResult2_QueryInterface(ISpeechRecoResult2* This,REFIID riid,void **ppvObject) {
22599     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22600 }
22601 static FORCEINLINE ULONG ISpeechRecoResult2_AddRef(ISpeechRecoResult2* This) {
22602     return This->lpVtbl->AddRef(This);
22603 }
22604 static FORCEINLINE ULONG ISpeechRecoResult2_Release(ISpeechRecoResult2* This) {
22605     return This->lpVtbl->Release(This);
22606 }
22607 /*** IDispatch methods ***/
22608 static FORCEINLINE HRESULT ISpeechRecoResult2_GetTypeInfoCount(ISpeechRecoResult2* This,UINT *pctinfo) {
22609     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22610 }
22611 static FORCEINLINE HRESULT ISpeechRecoResult2_GetTypeInfo(ISpeechRecoResult2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22612     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22613 }
22614 static FORCEINLINE HRESULT ISpeechRecoResult2_GetIDsOfNames(ISpeechRecoResult2* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22615     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22616 }
22617 static FORCEINLINE HRESULT ISpeechRecoResult2_Invoke(ISpeechRecoResult2* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22618     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22619 }
22620 /*** ISpeechRecoResult methods ***/
22621 static FORCEINLINE HRESULT ISpeechRecoResult2_get_RecoContext(ISpeechRecoResult2* This,ISpeechRecoContext **RecoContext) {
22622     return This->lpVtbl->get_RecoContext(This,RecoContext);
22623 }
22624 static FORCEINLINE HRESULT ISpeechRecoResult2_get_Times(ISpeechRecoResult2* This,ISpeechRecoResultTimes **Times) {
22625     return This->lpVtbl->get_Times(This,Times);
22626 }
22627 static FORCEINLINE HRESULT ISpeechRecoResult2_putref_AudioFormat(ISpeechRecoResult2* This,ISpeechAudioFormat *Format) {
22628     return This->lpVtbl->putref_AudioFormat(This,Format);
22629 }
22630 static FORCEINLINE HRESULT ISpeechRecoResult2_get_AudioFormat(ISpeechRecoResult2* This,ISpeechAudioFormat **Format) {
22631     return This->lpVtbl->get_AudioFormat(This,Format);
22632 }
22633 static FORCEINLINE HRESULT ISpeechRecoResult2_get_PhraseInfo(ISpeechRecoResult2* This,ISpeechPhraseInfo **PhraseInfo) {
22634     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
22635 }
22636 static FORCEINLINE HRESULT ISpeechRecoResult2_Alternates(ISpeechRecoResult2* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
22637     return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
22638 }
22639 static FORCEINLINE HRESULT ISpeechRecoResult2_Audio(ISpeechRecoResult2* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
22640     return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
22641 }
22642 static FORCEINLINE HRESULT ISpeechRecoResult2_SpeakAudio(ISpeechRecoResult2* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
22643     return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
22644 }
22645 static FORCEINLINE HRESULT ISpeechRecoResult2_SaveToMemory(ISpeechRecoResult2* This,VARIANT *ResultBlock) {
22646     return This->lpVtbl->SaveToMemory(This,ResultBlock);
22647 }
22648 static FORCEINLINE HRESULT ISpeechRecoResult2_DiscardResultInfo(ISpeechRecoResult2* This,SpeechDiscardType ValueTypes) {
22649     return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
22650 }
22651 /*** ISpeechRecoResult2 methods ***/
22652 static FORCEINLINE HRESULT ISpeechRecoResult2_SetTextFeedback(ISpeechRecoResult2* This,BSTR Feedback,VARIANT_BOOL WasSuccessful) {
22653     return This->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful);
22654 }
22655 #endif
22656 #endif
22657 
22658 #endif
22659 
22660 HRESULT STDMETHODCALLTYPE ISpeechRecoResult2_SetTextFeedback_Proxy(
22661     ISpeechRecoResult2* This,
22662     BSTR Feedback,
22663     VARIANT_BOOL WasSuccessful);
22664 void __RPC_STUB ISpeechRecoResult2_SetTextFeedback_Stub(
22665     IRpcStubBuffer* This,
22666     IRpcChannelBuffer* pRpcChannelBuffer,
22667     PRPC_MESSAGE pRpcMessage,
22668     DWORD* pdwStubPhase);
22669 
22670 #endif  /* __ISpeechRecoResult2_INTERFACE_DEFINED__ */
22671 
22672 /*****************************************************************************
22673  * ISpeechRecoResultDispatch interface
22674  */
22675 #ifndef __ISpeechRecoResultDispatch_INTERFACE_DEFINED__
22676 #define __ISpeechRecoResultDispatch_INTERFACE_DEFINED__
22677 
22678 DEFINE_GUID(IID_ISpeechRecoResultDispatch, 0x6d60eb64, 0xaced, 0x40a6, 0xbb,0xf3, 0x4e,0x55,0x7f,0x71,0xde,0xe2);
22679 #if defined(__cplusplus) && !defined(CINTERFACE)
22680 MIDL_INTERFACE("6d60eb64-aced-40a6-bbf3-4e557f71dee2")
22681 ISpeechRecoResultDispatch : public IDispatch
22682 {
22683     virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
22684         ISpeechRecoContext **RecoContext) = 0;
22685 
22686     virtual HRESULT STDMETHODCALLTYPE get_Times(
22687         ISpeechRecoResultTimes **Times) = 0;
22688 
22689     virtual HRESULT STDMETHODCALLTYPE putref_AudioFormat(
22690         ISpeechAudioFormat *Format) = 0;
22691 
22692     virtual HRESULT STDMETHODCALLTYPE get_AudioFormat(
22693         ISpeechAudioFormat **Format) = 0;
22694 
22695     virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
22696         ISpeechPhraseInfo **PhraseInfo) = 0;
22697 
22698     virtual HRESULT STDMETHODCALLTYPE Alternates(
22699         LONG RequestCount,
22700         LONG StartElement,
22701         LONG Elements,
22702         ISpeechPhraseAlternates **Alternates) = 0;
22703 
22704     virtual HRESULT STDMETHODCALLTYPE Audio(
22705         LONG StartElement,
22706         LONG Elements,
22707         ISpeechMemoryStream **Stream) = 0;
22708 
22709     virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
22710         LONG StartElement,
22711         LONG Elements,
22712         SpeechVoiceSpeakFlags Flags,
22713         LONG *StreamNumber) = 0;
22714 
22715     virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
22716         VARIANT *ResultBlock) = 0;
22717 
22718     virtual HRESULT STDMETHODCALLTYPE DiscardResultInfo(
22719         SpeechDiscardType ValueTypes) = 0;
22720 
22721     virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
22722         SPXMLRESULTOPTIONS Options,
22723         BSTR *pResult) = 0;
22724 
22725     virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
22726         LONG *LineNumber,
22727         BSTR *ScriptLine,
22728         BSTR *Source,
22729         BSTR *Description,
22730         HRESULT *ResultCode,
22731         VARIANT_BOOL *IsError) = 0;
22732 
22733     virtual HRESULT STDMETHODCALLTYPE SetTextFeedback(
22734         BSTR Feedback,
22735         VARIANT_BOOL WasSuccessful) = 0;
22736 
22737 };
22738 #ifdef __CRT_UUID_DECL
22739 __CRT_UUID_DECL(ISpeechRecoResultDispatch, 0x6d60eb64, 0xaced, 0x40a6, 0xbb,0xf3, 0x4e,0x55,0x7f,0x71,0xde,0xe2)
22740 #endif
22741 #else
22742 typedef struct ISpeechRecoResultDispatchVtbl {
22743     BEGIN_INTERFACE
22744 
22745     /*** IUnknown methods ***/
22746     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22747         ISpeechRecoResultDispatch* This,
22748         REFIID riid,
22749         void **ppvObject);
22750 
22751     ULONG (STDMETHODCALLTYPE *AddRef)(
22752         ISpeechRecoResultDispatch* This);
22753 
22754     ULONG (STDMETHODCALLTYPE *Release)(
22755         ISpeechRecoResultDispatch* This);
22756 
22757     /*** IDispatch methods ***/
22758     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
22759         ISpeechRecoResultDispatch* This,
22760         UINT *pctinfo);
22761 
22762     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
22763         ISpeechRecoResultDispatch* This,
22764         UINT iTInfo,
22765         LCID lcid,
22766         ITypeInfo **ppTInfo);
22767 
22768     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
22769         ISpeechRecoResultDispatch* This,
22770         REFIID riid,
22771         LPOLESTR *rgszNames,
22772         UINT cNames,
22773         LCID lcid,
22774         DISPID *rgDispId);
22775 
22776     HRESULT (STDMETHODCALLTYPE *Invoke)(
22777         ISpeechRecoResultDispatch* This,
22778         DISPID dispIdMember,
22779         REFIID riid,
22780         LCID lcid,
22781         WORD wFlags,
22782         DISPPARAMS *pDispParams,
22783         VARIANT *pVarResult,
22784         EXCEPINFO *pExcepInfo,
22785         UINT *puArgErr);
22786 
22787     /*** ISpeechRecoResultDispatch methods ***/
22788     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
22789         ISpeechRecoResultDispatch* This,
22790         ISpeechRecoContext **RecoContext);
22791 
22792     HRESULT (STDMETHODCALLTYPE *get_Times)(
22793         ISpeechRecoResultDispatch* This,
22794         ISpeechRecoResultTimes **Times);
22795 
22796     HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
22797         ISpeechRecoResultDispatch* This,
22798         ISpeechAudioFormat *Format);
22799 
22800     HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
22801         ISpeechRecoResultDispatch* This,
22802         ISpeechAudioFormat **Format);
22803 
22804     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
22805         ISpeechRecoResultDispatch* This,
22806         ISpeechPhraseInfo **PhraseInfo);
22807 
22808     HRESULT (STDMETHODCALLTYPE *Alternates)(
22809         ISpeechRecoResultDispatch* This,
22810         LONG RequestCount,
22811         LONG StartElement,
22812         LONG Elements,
22813         ISpeechPhraseAlternates **Alternates);
22814 
22815     HRESULT (STDMETHODCALLTYPE *Audio)(
22816         ISpeechRecoResultDispatch* This,
22817         LONG StartElement,
22818         LONG Elements,
22819         ISpeechMemoryStream **Stream);
22820 
22821     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
22822         ISpeechRecoResultDispatch* This,
22823         LONG StartElement,
22824         LONG Elements,
22825         SpeechVoiceSpeakFlags Flags,
22826         LONG *StreamNumber);
22827 
22828     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
22829         ISpeechRecoResultDispatch* This,
22830         VARIANT *ResultBlock);
22831 
22832     HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
22833         ISpeechRecoResultDispatch* This,
22834         SpeechDiscardType ValueTypes);
22835 
22836     HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
22837         ISpeechRecoResultDispatch* This,
22838         SPXMLRESULTOPTIONS Options,
22839         BSTR *pResult);
22840 
22841     HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
22842         ISpeechRecoResultDispatch* This,
22843         LONG *LineNumber,
22844         BSTR *ScriptLine,
22845         BSTR *Source,
22846         BSTR *Description,
22847         HRESULT *ResultCode,
22848         VARIANT_BOOL *IsError);
22849 
22850     HRESULT (STDMETHODCALLTYPE *SetTextFeedback)(
22851         ISpeechRecoResultDispatch* This,
22852         BSTR Feedback,
22853         VARIANT_BOOL WasSuccessful);
22854 
22855     END_INTERFACE
22856 } ISpeechRecoResultDispatchVtbl;
22857 interface ISpeechRecoResultDispatch {
22858     CONST_VTBL ISpeechRecoResultDispatchVtbl* lpVtbl;
22859 };
22860 
22861 #ifdef COBJMACROS
22862 #ifndef WIDL_C_INLINE_WRAPPERS
22863 /*** IUnknown methods ***/
22864 #define ISpeechRecoResultDispatch_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22865 #define ISpeechRecoResultDispatch_AddRef(This) (This)->lpVtbl->AddRef(This)
22866 #define ISpeechRecoResultDispatch_Release(This) (This)->lpVtbl->Release(This)
22867 /*** IDispatch methods ***/
22868 #define ISpeechRecoResultDispatch_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22869 #define ISpeechRecoResultDispatch_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22870 #define ISpeechRecoResultDispatch_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22871 #define ISpeechRecoResultDispatch_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22872 /*** ISpeechRecoResultDispatch methods ***/
22873 #define ISpeechRecoResultDispatch_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
22874 #define ISpeechRecoResultDispatch_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
22875 #define ISpeechRecoResultDispatch_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
22876 #define ISpeechRecoResultDispatch_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
22877 #define ISpeechRecoResultDispatch_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
22878 #define ISpeechRecoResultDispatch_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
22879 #define ISpeechRecoResultDispatch_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
22880 #define ISpeechRecoResultDispatch_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
22881 #define ISpeechRecoResultDispatch_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
22882 #define ISpeechRecoResultDispatch_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
22883 #define ISpeechRecoResultDispatch_GetXMLResult(This,Options,pResult) (This)->lpVtbl->GetXMLResult(This,Options,pResult)
22884 #define ISpeechRecoResultDispatch_GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError) (This)->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError)
22885 #define ISpeechRecoResultDispatch_SetTextFeedback(This,Feedback,WasSuccessful) (This)->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful)
22886 #else
22887 /*** IUnknown methods ***/
22888 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_QueryInterface(ISpeechRecoResultDispatch* This,REFIID riid,void **ppvObject) {
22889     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22890 }
22891 static FORCEINLINE ULONG ISpeechRecoResultDispatch_AddRef(ISpeechRecoResultDispatch* This) {
22892     return This->lpVtbl->AddRef(This);
22893 }
22894 static FORCEINLINE ULONG ISpeechRecoResultDispatch_Release(ISpeechRecoResultDispatch* This) {
22895     return This->lpVtbl->Release(This);
22896 }
22897 /*** IDispatch methods ***/
22898 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_GetTypeInfoCount(ISpeechRecoResultDispatch* This,UINT *pctinfo) {
22899     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22900 }
22901 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_GetTypeInfo(ISpeechRecoResultDispatch* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22902     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22903 }
22904 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_GetIDsOfNames(ISpeechRecoResultDispatch* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22905     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22906 }
22907 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_Invoke(ISpeechRecoResultDispatch* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22908     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22909 }
22910 /*** ISpeechRecoResultDispatch methods ***/
22911 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_get_RecoContext(ISpeechRecoResultDispatch* This,ISpeechRecoContext **RecoContext) {
22912     return This->lpVtbl->get_RecoContext(This,RecoContext);
22913 }
22914 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_get_Times(ISpeechRecoResultDispatch* This,ISpeechRecoResultTimes **Times) {
22915     return This->lpVtbl->get_Times(This,Times);
22916 }
22917 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_putref_AudioFormat(ISpeechRecoResultDispatch* This,ISpeechAudioFormat *Format) {
22918     return This->lpVtbl->putref_AudioFormat(This,Format);
22919 }
22920 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_get_AudioFormat(ISpeechRecoResultDispatch* This,ISpeechAudioFormat **Format) {
22921     return This->lpVtbl->get_AudioFormat(This,Format);
22922 }
22923 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_get_PhraseInfo(ISpeechRecoResultDispatch* This,ISpeechPhraseInfo **PhraseInfo) {
22924     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
22925 }
22926 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_Alternates(ISpeechRecoResultDispatch* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
22927     return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
22928 }
22929 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_Audio(ISpeechRecoResultDispatch* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
22930     return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
22931 }
22932 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_SpeakAudio(ISpeechRecoResultDispatch* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
22933     return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
22934 }
22935 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_SaveToMemory(ISpeechRecoResultDispatch* This,VARIANT *ResultBlock) {
22936     return This->lpVtbl->SaveToMemory(This,ResultBlock);
22937 }
22938 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_DiscardResultInfo(ISpeechRecoResultDispatch* This,SpeechDiscardType ValueTypes) {
22939     return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
22940 }
22941 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_GetXMLResult(ISpeechRecoResultDispatch* This,SPXMLRESULTOPTIONS Options,BSTR *pResult) {
22942     return This->lpVtbl->GetXMLResult(This,Options,pResult);
22943 }
22944 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_GetXMLErrorInfo(ISpeechRecoResultDispatch* This,LONG *LineNumber,BSTR *ScriptLine,BSTR *Source,BSTR *Description,HRESULT *ResultCode,VARIANT_BOOL *IsError) {
22945     return This->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError);
22946 }
22947 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_SetTextFeedback(ISpeechRecoResultDispatch* This,BSTR Feedback,VARIANT_BOOL WasSuccessful) {
22948     return This->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful);
22949 }
22950 #endif
22951 #endif
22952 
22953 #endif
22954 
22955 HRESULT STDMETHODCALLTYPE ISpeechRecoResultDispatch_get_RecoContext_Proxy(
22956     ISpeechRecoResultDispatch* This,
22957     ISpeechRecoContext **RecoContext);
22958 void __RPC_STUB ISpeechRecoResultDispatch_get_RecoContext_Stub(
22959     IRpcStubBuffer* This,
22960     IRpcChannelBuffer* pRpcChannelBuffer,
22961     PRPC_MESSAGE pRpcMessage,
22962     DWORD* pdwStubPhase);
22963 HRESULT STDMETHODCALLTYPE ISpeechRecoResultDispatch_get_Times_Proxy(
22964     ISpeechRecoResultDispatch* This,
22965     ISpeechRecoResultTimes **Times);
22966 void __RPC_STUB ISpeechRecoResultDispatch_get_Times_Stub(
22967     IRpcStubBuffer* This,
22968     IRpcChannelBuffer* pRpcChannelBuffer,
22969     PRPC_MESSAGE pRpcMessage,
22970     DWORD* pdwStubPhase);
22971 HRESULT STDMETHODCALLTYPE ISpeechRecoResultDispatch_putref_AudioFormat_Proxy(
22972     ISpeechRecoResultDispatch* This,
22973     ISpeechAudioFormat *Format);
22974 void __RPC_STUB ISpeechRecoResultDispatch_putref_AudioFormat_Stub(
22975     IRpcStubBuffer* This,
22976     IRpcChannelBuffer* pRpcChannelBuffer,
22977     PRPC_MESSAGE pRpcMessage,
22978     DWORD* pdwStubPhase);
22979 HRESULT STDMETHODCALLTYPE ISpeechRecoResultDispatch_get_AudioFormat_Proxy(
22980     ISpeechRecoResultDispatch* This,
22981     ISpeechAudioFormat **Format);
22982 void __RPC_STUB ISpeechRecoResultDispatch_get_AudioFormat_Stub(
22983     IRpcStubBuffer* This,
22984     IRpcChannelBuffer* pRpcChannelBuffer,
22985     PRPC_MESSAGE pRpcMessage,
22986     DWORD* pdwStubPhase);
22987 HRESULT STDMETHODCALLTYPE ISpeechRecoResultDispatch_get_PhraseInfo_Proxy(
22988     ISpeechRecoResultDispatch* This,
22989     ISpeechPhraseInfo **PhraseInfo);
22990 void __RPC_STUB ISpeechRecoResultDispatch_get_PhraseInfo_Stub(
22991     IRpcStubBuffer* This,
22992     IRpcChannelBuffer* pRpcChannelBuffer,
22993     PRPC_MESSAGE pRpcMessage,
22994     DWORD* pdwStubPhase);
22995 HRESULT STDMETHODCALLTYPE ISpeechRecoResultDispatch_Alternates_Proxy(
22996     ISpeechRecoResultDispatch* This,
22997     LONG RequestCount,
22998     LONG StartElement,
22999     LONG Elements,
23000     ISpeechPhraseAlternates **Alternates);
23001 void __RPC_STUB ISpeechRecoResultDispatch_Alternates_Stub(
23002     IRpcStubBuffer* This,
23003     IRpcChannelBuffer* pRpcChannelBuffer,
23004     PRPC_MESSAGE pRpcMessage,
23005     DWORD* pdwStubPhase);
23006 HRESULT STDMETHODCALLTYPE ISpeechRecoResultDispatch_Audio_Proxy(
23007     ISpeechRecoResultDispatch* This,
23008     LONG StartElement,
23009     LONG Elements,
23010     ISpeechMemoryStream **Stream);
23011 void __RPC_STUB ISpeechRecoResultDispatch_Audio_Stub(
23012     IRpcStubBuffer* This,
23013     IRpcChannelBuffer* pRpcChannelBuffer,
23014     PRPC_MESSAGE pRpcMessage,
23015     DWORD* pdwStubPhase);
23016 HRESULT STDMETHODCALLTYPE ISpeechRecoResultDispatch_SpeakAudio_Proxy(
23017     ISpeechRecoResultDispatch* This,
23018     LONG StartElement,
23019     LONG Elements,
23020     SpeechVoiceSpeakFlags Flags,
23021     LONG *StreamNumber);
23022 void __RPC_STUB ISpeechRecoResultDispatch_SpeakAudio_Stub(
23023     IRpcStubBuffer* This,
23024     IRpcChannelBuffer* pRpcChannelBuffer,
23025     PRPC_MESSAGE pRpcMessage,
23026     DWORD* pdwStubPhase);
23027 HRESULT STDMETHODCALLTYPE ISpeechRecoResultDispatch_SaveToMemory_Proxy(
23028     ISpeechRecoResultDispatch* This,
23029     VARIANT *ResultBlock);
23030 void __RPC_STUB ISpeechRecoResultDispatch_SaveToMemory_Stub(
23031     IRpcStubBuffer* This,
23032     IRpcChannelBuffer* pRpcChannelBuffer,
23033     PRPC_MESSAGE pRpcMessage,
23034     DWORD* pdwStubPhase);
23035 HRESULT STDMETHODCALLTYPE ISpeechRecoResultDispatch_DiscardResultInfo_Proxy(
23036     ISpeechRecoResultDispatch* This,
23037     SpeechDiscardType ValueTypes);
23038 void __RPC_STUB ISpeechRecoResultDispatch_DiscardResultInfo_Stub(
23039     IRpcStubBuffer* This,
23040     IRpcChannelBuffer* pRpcChannelBuffer,
23041     PRPC_MESSAGE pRpcMessage,
23042     DWORD* pdwStubPhase);
23043 HRESULT STDMETHODCALLTYPE ISpeechRecoResultDispatch_GetXMLResult_Proxy(
23044     ISpeechRecoResultDispatch* This,
23045     SPXMLRESULTOPTIONS Options,
23046     BSTR *pResult);
23047 void __RPC_STUB ISpeechRecoResultDispatch_GetXMLResult_Stub(
23048     IRpcStubBuffer* This,
23049     IRpcChannelBuffer* pRpcChannelBuffer,
23050     PRPC_MESSAGE pRpcMessage,
23051     DWORD* pdwStubPhase);
23052 HRESULT STDMETHODCALLTYPE ISpeechRecoResultDispatch_GetXMLErrorInfo_Proxy(
23053     ISpeechRecoResultDispatch* This,
23054     LONG *LineNumber,
23055     BSTR *ScriptLine,
23056     BSTR *Source,
23057     BSTR *Description,
23058     HRESULT *ResultCode,
23059     VARIANT_BOOL *IsError);
23060 void __RPC_STUB ISpeechRecoResultDispatch_GetXMLErrorInfo_Stub(
23061     IRpcStubBuffer* This,
23062     IRpcChannelBuffer* pRpcChannelBuffer,
23063     PRPC_MESSAGE pRpcMessage,
23064     DWORD* pdwStubPhase);
23065 HRESULT STDMETHODCALLTYPE ISpeechRecoResultDispatch_SetTextFeedback_Proxy(
23066     ISpeechRecoResultDispatch* This,
23067     BSTR Feedback,
23068     VARIANT_BOOL WasSuccessful);
23069 void __RPC_STUB ISpeechRecoResultDispatch_SetTextFeedback_Stub(
23070     IRpcStubBuffer* This,
23071     IRpcChannelBuffer* pRpcChannelBuffer,
23072     PRPC_MESSAGE pRpcMessage,
23073     DWORD* pdwStubPhase);
23074 
23075 #endif  /* __ISpeechRecoResultDispatch_INTERFACE_DEFINED__ */
23076 
23077 /*****************************************************************************
23078  * ISpeechPhraseInfoBuilder interface
23079  */
23080 #ifndef __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__
23081 #define __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__
23082 
23083 DEFINE_GUID(IID_ISpeechPhraseInfoBuilder, 0x3b151836, 0xdf3a, 0x4e0a, 0x84,0x6c, 0xd2,0xad,0xc9,0x33,0x43,0x33);
23084 #if defined(__cplusplus) && !defined(CINTERFACE)
23085 MIDL_INTERFACE("3b151836-df3a-4e0a-846c-d2adc9334333")
23086 ISpeechPhraseInfoBuilder : public IDispatch
23087 {
23088     virtual HRESULT STDMETHODCALLTYPE RestorePhraseFromMemory(
23089         VARIANT *PhraseInMemory,
23090         ISpeechPhraseInfo **PhraseInfo) = 0;
23091 
23092 };
23093 #ifdef __CRT_UUID_DECL
23094 __CRT_UUID_DECL(ISpeechPhraseInfoBuilder, 0x3b151836, 0xdf3a, 0x4e0a, 0x84,0x6c, 0xd2,0xad,0xc9,0x33,0x43,0x33)
23095 #endif
23096 #else
23097 typedef struct ISpeechPhraseInfoBuilderVtbl {
23098     BEGIN_INTERFACE
23099 
23100     /*** IUnknown methods ***/
23101     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23102         ISpeechPhraseInfoBuilder* This,
23103         REFIID riid,
23104         void **ppvObject);
23105 
23106     ULONG (STDMETHODCALLTYPE *AddRef)(
23107         ISpeechPhraseInfoBuilder* This);
23108 
23109     ULONG (STDMETHODCALLTYPE *Release)(
23110         ISpeechPhraseInfoBuilder* This);
23111 
23112     /*** IDispatch methods ***/
23113     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
23114         ISpeechPhraseInfoBuilder* This,
23115         UINT *pctinfo);
23116 
23117     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
23118         ISpeechPhraseInfoBuilder* This,
23119         UINT iTInfo,
23120         LCID lcid,
23121         ITypeInfo **ppTInfo);
23122 
23123     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
23124         ISpeechPhraseInfoBuilder* This,
23125         REFIID riid,
23126         LPOLESTR *rgszNames,
23127         UINT cNames,
23128         LCID lcid,
23129         DISPID *rgDispId);
23130 
23131     HRESULT (STDMETHODCALLTYPE *Invoke)(
23132         ISpeechPhraseInfoBuilder* This,
23133         DISPID dispIdMember,
23134         REFIID riid,
23135         LCID lcid,
23136         WORD wFlags,
23137         DISPPARAMS *pDispParams,
23138         VARIANT *pVarResult,
23139         EXCEPINFO *pExcepInfo,
23140         UINT *puArgErr);
23141 
23142     /*** ISpeechPhraseInfoBuilder methods ***/
23143     HRESULT (STDMETHODCALLTYPE *RestorePhraseFromMemory)(
23144         ISpeechPhraseInfoBuilder* This,
23145         VARIANT *PhraseInMemory,
23146         ISpeechPhraseInfo **PhraseInfo);
23147 
23148     END_INTERFACE
23149 } ISpeechPhraseInfoBuilderVtbl;
23150 interface ISpeechPhraseInfoBuilder {
23151     CONST_VTBL ISpeechPhraseInfoBuilderVtbl* lpVtbl;
23152 };
23153 
23154 #ifdef COBJMACROS
23155 #ifndef WIDL_C_INLINE_WRAPPERS
23156 /*** IUnknown methods ***/
23157 #define ISpeechPhraseInfoBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23158 #define ISpeechPhraseInfoBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
23159 #define ISpeechPhraseInfoBuilder_Release(This) (This)->lpVtbl->Release(This)
23160 /*** IDispatch methods ***/
23161 #define ISpeechPhraseInfoBuilder_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
23162 #define ISpeechPhraseInfoBuilder_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
23163 #define ISpeechPhraseInfoBuilder_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
23164 #define ISpeechPhraseInfoBuilder_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
23165 /*** ISpeechPhraseInfoBuilder methods ***/
23166 #define ISpeechPhraseInfoBuilder_RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo) (This)->lpVtbl->RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo)
23167 #else
23168 /*** IUnknown methods ***/
23169 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_QueryInterface(ISpeechPhraseInfoBuilder* This,REFIID riid,void **ppvObject) {
23170     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23171 }
23172 static FORCEINLINE ULONG ISpeechPhraseInfoBuilder_AddRef(ISpeechPhraseInfoBuilder* This) {
23173     return This->lpVtbl->AddRef(This);
23174 }
23175 static FORCEINLINE ULONG ISpeechPhraseInfoBuilder_Release(ISpeechPhraseInfoBuilder* This) {
23176     return This->lpVtbl->Release(This);
23177 }
23178 /*** IDispatch methods ***/
23179 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_GetTypeInfoCount(ISpeechPhraseInfoBuilder* This,UINT *pctinfo) {
23180     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
23181 }
23182 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_GetTypeInfo(ISpeechPhraseInfoBuilder* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
23183     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
23184 }
23185 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_GetIDsOfNames(ISpeechPhraseInfoBuilder* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
23186     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
23187 }
23188 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_Invoke(ISpeechPhraseInfoBuilder* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
23189     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
23190 }
23191 /*** ISpeechPhraseInfoBuilder methods ***/
23192 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_RestorePhraseFromMemory(ISpeechPhraseInfoBuilder* This,VARIANT *PhraseInMemory,ISpeechPhraseInfo **PhraseInfo) {
23193     return This->lpVtbl->RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo);
23194 }
23195 #endif
23196 #endif
23197 
23198 #endif
23199 
23200 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfoBuilder_RestorePhraseFromMemory_Proxy(
23201     ISpeechPhraseInfoBuilder* This,
23202     VARIANT *PhraseInMemory,
23203     ISpeechPhraseInfo **PhraseInfo);
23204 void __RPC_STUB ISpeechPhraseInfoBuilder_RestorePhraseFromMemory_Stub(
23205     IRpcStubBuffer* This,
23206     IRpcChannelBuffer* pRpcChannelBuffer,
23207     PRPC_MESSAGE pRpcMessage,
23208     DWORD* pdwStubPhase);
23209 
23210 #endif  /* __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__ */
23211 
23212 /*****************************************************************************
23213  * ISpeechRecoResultTimes interface
23214  */
23215 #ifndef __ISpeechRecoResultTimes_INTERFACE_DEFINED__
23216 #define __ISpeechRecoResultTimes_INTERFACE_DEFINED__
23217 
23218 DEFINE_GUID(IID_ISpeechRecoResultTimes, 0x62b3b8fb, 0xf6e7, 0x41be, 0xbd,0xcb, 0x05,0x6b,0x1c,0x29,0xef,0xc0);
23219 #if defined(__cplusplus) && !defined(CINTERFACE)
23220 MIDL_INTERFACE("62b3b8fb-f6e7-41be-bdcb-056b1c29efc0")
23221 ISpeechRecoResultTimes : public IDispatch
23222 {
23223     virtual HRESULT STDMETHODCALLTYPE get_StreamTime(
23224         VARIANT *Time) = 0;
23225 
23226     virtual HRESULT STDMETHODCALLTYPE get_Length(
23227         VARIANT *Length) = 0;
23228 
23229     virtual HRESULT STDMETHODCALLTYPE get_TickCount(
23230         LONG *TickCount) = 0;
23231 
23232     virtual HRESULT STDMETHODCALLTYPE get_OffsetFromStart(
23233         VARIANT *OffsetFromStart) = 0;
23234 
23235 };
23236 #ifdef __CRT_UUID_DECL
23237 __CRT_UUID_DECL(ISpeechRecoResultTimes, 0x62b3b8fb, 0xf6e7, 0x41be, 0xbd,0xcb, 0x05,0x6b,0x1c,0x29,0xef,0xc0)
23238 #endif
23239 #else
23240 typedef struct ISpeechRecoResultTimesVtbl {
23241     BEGIN_INTERFACE
23242 
23243     /*** IUnknown methods ***/
23244     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23245         ISpeechRecoResultTimes* This,
23246         REFIID riid,
23247         void **ppvObject);
23248 
23249     ULONG (STDMETHODCALLTYPE *AddRef)(
23250         ISpeechRecoResultTimes* This);
23251 
23252     ULONG (STDMETHODCALLTYPE *Release)(
23253         ISpeechRecoResultTimes* This);
23254 
23255     /*** IDispatch methods ***/
23256     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
23257         ISpeechRecoResultTimes* This,
23258         UINT *pctinfo);
23259 
23260     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
23261         ISpeechRecoResultTimes* This,
23262         UINT iTInfo,
23263         LCID lcid,
23264         ITypeInfo **ppTInfo);
23265 
23266     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
23267         ISpeechRecoResultTimes* This,
23268         REFIID riid,
23269         LPOLESTR *rgszNames,
23270         UINT cNames,
23271         LCID lcid,
23272         DISPID *rgDispId);
23273 
23274     HRESULT (STDMETHODCALLTYPE *Invoke)(
23275         ISpeechRecoResultTimes* This,
23276         DISPID dispIdMember,
23277         REFIID riid,
23278         LCID lcid,
23279         WORD wFlags,
23280         DISPPARAMS *pDispParams,
23281         VARIANT *pVarResult,
23282         EXCEPINFO *pExcepInfo,
23283         UINT *puArgErr);
23284 
23285     /*** ISpeechRecoResultTimes methods ***/
23286     HRESULT (STDMETHODCALLTYPE *get_StreamTime)(
23287         ISpeechRecoResultTimes* This,
23288         VARIANT *Time);
23289 
23290     HRESULT (STDMETHODCALLTYPE *get_Length)(
23291         ISpeechRecoResultTimes* This,
23292         VARIANT *Length);
23293 
23294     HRESULT (STDMETHODCALLTYPE *get_TickCount)(
23295         ISpeechRecoResultTimes* This,
23296         LONG *TickCount);
23297 
23298     HRESULT (STDMETHODCALLTYPE *get_OffsetFromStart)(
23299         ISpeechRecoResultTimes* This,
23300         VARIANT *OffsetFromStart);
23301 
23302     END_INTERFACE
23303 } ISpeechRecoResultTimesVtbl;
23304 interface ISpeechRecoResultTimes {
23305     CONST_VTBL ISpeechRecoResultTimesVtbl* lpVtbl;
23306 };
23307 
23308 #ifdef COBJMACROS
23309 #ifndef WIDL_C_INLINE_WRAPPERS
23310 /*** IUnknown methods ***/
23311 #define ISpeechRecoResultTimes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23312 #define ISpeechRecoResultTimes_AddRef(This) (This)->lpVtbl->AddRef(This)
23313 #define ISpeechRecoResultTimes_Release(This) (This)->lpVtbl->Release(This)
23314 /*** IDispatch methods ***/
23315 #define ISpeechRecoResultTimes_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
23316 #define ISpeechRecoResultTimes_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
23317 #define ISpeechRecoResultTimes_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
23318 #define ISpeechRecoResultTimes_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
23319 /*** ISpeechRecoResultTimes methods ***/
23320 #define ISpeechRecoResultTimes_get_StreamTime(This,Time) (This)->lpVtbl->get_StreamTime(This,Time)
23321 #define ISpeechRecoResultTimes_get_Length(This,Length) (This)->lpVtbl->get_Length(This,Length)
23322 #define ISpeechRecoResultTimes_get_TickCount(This,TickCount) (This)->lpVtbl->get_TickCount(This,TickCount)
23323 #define ISpeechRecoResultTimes_get_OffsetFromStart(This,OffsetFromStart) (This)->lpVtbl->get_OffsetFromStart(This,OffsetFromStart)
23324 #else
23325 /*** IUnknown methods ***/
23326 static FORCEINLINE HRESULT ISpeechRecoResultTimes_QueryInterface(ISpeechRecoResultTimes* This,REFIID riid,void **ppvObject) {
23327     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23328 }
23329 static FORCEINLINE ULONG ISpeechRecoResultTimes_AddRef(ISpeechRecoResultTimes* This) {
23330     return This->lpVtbl->AddRef(This);
23331 }
23332 static FORCEINLINE ULONG ISpeechRecoResultTimes_Release(ISpeechRecoResultTimes* This) {
23333     return This->lpVtbl->Release(This);
23334 }
23335 /*** IDispatch methods ***/
23336 static FORCEINLINE HRESULT ISpeechRecoResultTimes_GetTypeInfoCount(ISpeechRecoResultTimes* This,UINT *pctinfo) {
23337     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
23338 }
23339 static FORCEINLINE HRESULT ISpeechRecoResultTimes_GetTypeInfo(ISpeechRecoResultTimes* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
23340     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
23341 }
23342 static FORCEINLINE HRESULT ISpeechRecoResultTimes_GetIDsOfNames(ISpeechRecoResultTimes* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
23343     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
23344 }
23345 static FORCEINLINE HRESULT ISpeechRecoResultTimes_Invoke(ISpeechRecoResultTimes* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
23346     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
23347 }
23348 /*** ISpeechRecoResultTimes methods ***/
23349 static FORCEINLINE HRESULT ISpeechRecoResultTimes_get_StreamTime(ISpeechRecoResultTimes* This,VARIANT *Time) {
23350     return This->lpVtbl->get_StreamTime(This,Time);
23351 }
23352 static FORCEINLINE HRESULT ISpeechRecoResultTimes_get_Length(ISpeechRecoResultTimes* This,VARIANT *Length) {
23353     return This->lpVtbl->get_Length(This,Length);
23354 }
23355 static FORCEINLINE HRESULT ISpeechRecoResultTimes_get_TickCount(ISpeechRecoResultTimes* This,LONG *TickCount) {
23356     return This->lpVtbl->get_TickCount(This,TickCount);
23357 }
23358 static FORCEINLINE HRESULT ISpeechRecoResultTimes_get_OffsetFromStart(ISpeechRecoResultTimes* This,VARIANT *OffsetFromStart) {
23359     return This->lpVtbl->get_OffsetFromStart(This,OffsetFromStart);
23360 }
23361 #endif
23362 #endif
23363 
23364 #endif
23365 
23366 HRESULT STDMETHODCALLTYPE ISpeechRecoResultTimes_get_StreamTime_Proxy(
23367     ISpeechRecoResultTimes* This,
23368     VARIANT *Time);
23369 void __RPC_STUB ISpeechRecoResultTimes_get_StreamTime_Stub(
23370     IRpcStubBuffer* This,
23371     IRpcChannelBuffer* pRpcChannelBuffer,
23372     PRPC_MESSAGE pRpcMessage,
23373     DWORD* pdwStubPhase);
23374 HRESULT STDMETHODCALLTYPE ISpeechRecoResultTimes_get_Length_Proxy(
23375     ISpeechRecoResultTimes* This,
23376     VARIANT *Length);
23377 void __RPC_STUB ISpeechRecoResultTimes_get_Length_Stub(
23378     IRpcStubBuffer* This,
23379     IRpcChannelBuffer* pRpcChannelBuffer,
23380     PRPC_MESSAGE pRpcMessage,
23381     DWORD* pdwStubPhase);
23382 HRESULT STDMETHODCALLTYPE ISpeechRecoResultTimes_get_TickCount_Proxy(
23383     ISpeechRecoResultTimes* This,
23384     LONG *TickCount);
23385 void __RPC_STUB ISpeechRecoResultTimes_get_TickCount_Stub(
23386     IRpcStubBuffer* This,
23387     IRpcChannelBuffer* pRpcChannelBuffer,
23388     PRPC_MESSAGE pRpcMessage,
23389     DWORD* pdwStubPhase);
23390 HRESULT STDMETHODCALLTYPE ISpeechRecoResultTimes_get_OffsetFromStart_Proxy(
23391     ISpeechRecoResultTimes* This,
23392     VARIANT *OffsetFromStart);
23393 void __RPC_STUB ISpeechRecoResultTimes_get_OffsetFromStart_Stub(
23394     IRpcStubBuffer* This,
23395     IRpcChannelBuffer* pRpcChannelBuffer,
23396     PRPC_MESSAGE pRpcMessage,
23397     DWORD* pdwStubPhase);
23398 
23399 #endif  /* __ISpeechRecoResultTimes_INTERFACE_DEFINED__ */
23400 
23401 /*****************************************************************************
23402  * ISpeechPhraseAlternate interface
23403  */
23404 #ifndef __ISpeechPhraseAlternate_INTERFACE_DEFINED__
23405 #define __ISpeechPhraseAlternate_INTERFACE_DEFINED__
23406 
23407 DEFINE_GUID(IID_ISpeechPhraseAlternate, 0x27864a2a, 0x2b9f, 0x4cb8, 0x92,0xd3, 0x0d,0x27,0x22,0xfd,0x1e,0x73);
23408 #if defined(__cplusplus) && !defined(CINTERFACE)
23409 MIDL_INTERFACE("27864a2a-2b9f-4cb8-92d3-0d2722fd1e73")
23410 ISpeechPhraseAlternate : public IDispatch
23411 {
23412     virtual HRESULT STDMETHODCALLTYPE get_RecoResult(
23413         ISpeechRecoResult **RecoResult) = 0;
23414 
23415     virtual HRESULT STDMETHODCALLTYPE get_StartElementInResult(
23416         LONG *StartElement) = 0;
23417 
23418     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElementsInResult(
23419         LONG *NumberOfElements) = 0;
23420 
23421     virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
23422         ISpeechPhraseInfo **PhraseInfo) = 0;
23423 
23424     virtual HRESULT STDMETHODCALLTYPE Commit(
23425         ) = 0;
23426 
23427 };
23428 #ifdef __CRT_UUID_DECL
23429 __CRT_UUID_DECL(ISpeechPhraseAlternate, 0x27864a2a, 0x2b9f, 0x4cb8, 0x92,0xd3, 0x0d,0x27,0x22,0xfd,0x1e,0x73)
23430 #endif
23431 #else
23432 typedef struct ISpeechPhraseAlternateVtbl {
23433     BEGIN_INTERFACE
23434 
23435     /*** IUnknown methods ***/
23436     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23437         ISpeechPhraseAlternate* This,
23438         REFIID riid,
23439         void **ppvObject);
23440 
23441     ULONG (STDMETHODCALLTYPE *AddRef)(
23442         ISpeechPhraseAlternate* This);
23443 
23444     ULONG (STDMETHODCALLTYPE *Release)(
23445         ISpeechPhraseAlternate* This);
23446 
23447     /*** IDispatch methods ***/
23448     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
23449         ISpeechPhraseAlternate* This,
23450         UINT *pctinfo);
23451 
23452     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
23453         ISpeechPhraseAlternate* This,
23454         UINT iTInfo,
23455         LCID lcid,
23456         ITypeInfo **ppTInfo);
23457 
23458     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
23459         ISpeechPhraseAlternate* This,
23460         REFIID riid,
23461         LPOLESTR *rgszNames,
23462         UINT cNames,
23463         LCID lcid,
23464         DISPID *rgDispId);
23465 
23466     HRESULT (STDMETHODCALLTYPE *Invoke)(
23467         ISpeechPhraseAlternate* This,
23468         DISPID dispIdMember,
23469         REFIID riid,
23470         LCID lcid,
23471         WORD wFlags,
23472         DISPPARAMS *pDispParams,
23473         VARIANT *pVarResult,
23474         EXCEPINFO *pExcepInfo,
23475         UINT *puArgErr);
23476 
23477     /*** ISpeechPhraseAlternate methods ***/
23478     HRESULT (STDMETHODCALLTYPE *get_RecoResult)(
23479         ISpeechPhraseAlternate* This,
23480         ISpeechRecoResult **RecoResult);
23481 
23482     HRESULT (STDMETHODCALLTYPE *get_StartElementInResult)(
23483         ISpeechPhraseAlternate* This,
23484         LONG *StartElement);
23485 
23486     HRESULT (STDMETHODCALLTYPE *get_NumberOfElementsInResult)(
23487         ISpeechPhraseAlternate* This,
23488         LONG *NumberOfElements);
23489 
23490     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
23491         ISpeechPhraseAlternate* This,
23492         ISpeechPhraseInfo **PhraseInfo);
23493 
23494     HRESULT (STDMETHODCALLTYPE *Commit)(
23495         ISpeechPhraseAlternate* This);
23496 
23497     END_INTERFACE
23498 } ISpeechPhraseAlternateVtbl;
23499 interface ISpeechPhraseAlternate {
23500     CONST_VTBL ISpeechPhraseAlternateVtbl* lpVtbl;
23501 };
23502 
23503 #ifdef COBJMACROS
23504 #ifndef WIDL_C_INLINE_WRAPPERS
23505 /*** IUnknown methods ***/
23506 #define ISpeechPhraseAlternate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23507 #define ISpeechPhraseAlternate_AddRef(This) (This)->lpVtbl->AddRef(This)
23508 #define ISpeechPhraseAlternate_Release(This) (This)->lpVtbl->Release(This)
23509 /*** IDispatch methods ***/
23510 #define ISpeechPhraseAlternate_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
23511 #define ISpeechPhraseAlternate_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
23512 #define ISpeechPhraseAlternate_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
23513 #define ISpeechPhraseAlternate_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
23514 /*** ISpeechPhraseAlternate methods ***/
23515 #define ISpeechPhraseAlternate_get_RecoResult(This,RecoResult) (This)->lpVtbl->get_RecoResult(This,RecoResult)
23516 #define ISpeechPhraseAlternate_get_StartElementInResult(This,StartElement) (This)->lpVtbl->get_StartElementInResult(This,StartElement)
23517 #define ISpeechPhraseAlternate_get_NumberOfElementsInResult(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElementsInResult(This,NumberOfElements)
23518 #define ISpeechPhraseAlternate_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
23519 #define ISpeechPhraseAlternate_Commit(This) (This)->lpVtbl->Commit(This)
23520 #else
23521 /*** IUnknown methods ***/
23522 static FORCEINLINE HRESULT ISpeechPhraseAlternate_QueryInterface(ISpeechPhraseAlternate* This,REFIID riid,void **ppvObject) {
23523     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23524 }
23525 static FORCEINLINE ULONG ISpeechPhraseAlternate_AddRef(ISpeechPhraseAlternate* This) {
23526     return This->lpVtbl->AddRef(This);
23527 }
23528 static FORCEINLINE ULONG ISpeechPhraseAlternate_Release(ISpeechPhraseAlternate* This) {
23529     return This->lpVtbl->Release(This);
23530 }
23531 /*** IDispatch methods ***/
23532 static FORCEINLINE HRESULT ISpeechPhraseAlternate_GetTypeInfoCount(ISpeechPhraseAlternate* This,UINT *pctinfo) {
23533     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
23534 }
23535 static FORCEINLINE HRESULT ISpeechPhraseAlternate_GetTypeInfo(ISpeechPhraseAlternate* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
23536     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
23537 }
23538 static FORCEINLINE HRESULT ISpeechPhraseAlternate_GetIDsOfNames(ISpeechPhraseAlternate* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
23539     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
23540 }
23541 static FORCEINLINE HRESULT ISpeechPhraseAlternate_Invoke(ISpeechPhraseAlternate* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
23542     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
23543 }
23544 /*** ISpeechPhraseAlternate methods ***/
23545 static FORCEINLINE HRESULT ISpeechPhraseAlternate_get_RecoResult(ISpeechPhraseAlternate* This,ISpeechRecoResult **RecoResult) {
23546     return This->lpVtbl->get_RecoResult(This,RecoResult);
23547 }
23548 static FORCEINLINE HRESULT ISpeechPhraseAlternate_get_StartElementInResult(ISpeechPhraseAlternate* This,LONG *StartElement) {
23549     return This->lpVtbl->get_StartElementInResult(This,StartElement);
23550 }
23551 static FORCEINLINE HRESULT ISpeechPhraseAlternate_get_NumberOfElementsInResult(ISpeechPhraseAlternate* This,LONG *NumberOfElements) {
23552     return This->lpVtbl->get_NumberOfElementsInResult(This,NumberOfElements);
23553 }
23554 static FORCEINLINE HRESULT ISpeechPhraseAlternate_get_PhraseInfo(ISpeechPhraseAlternate* This,ISpeechPhraseInfo **PhraseInfo) {
23555     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
23556 }
23557 static FORCEINLINE HRESULT ISpeechPhraseAlternate_Commit(ISpeechPhraseAlternate* This) {
23558     return This->lpVtbl->Commit(This);
23559 }
23560 #endif
23561 #endif
23562 
23563 #endif
23564 
23565 HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternate_get_RecoResult_Proxy(
23566     ISpeechPhraseAlternate* This,
23567     ISpeechRecoResult **RecoResult);
23568 void __RPC_STUB ISpeechPhraseAlternate_get_RecoResult_Stub(
23569     IRpcStubBuffer* This,
23570     IRpcChannelBuffer* pRpcChannelBuffer,
23571     PRPC_MESSAGE pRpcMessage,
23572     DWORD* pdwStubPhase);
23573 HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternate_get_StartElementInResult_Proxy(
23574     ISpeechPhraseAlternate* This,
23575     LONG *StartElement);
23576 void __RPC_STUB ISpeechPhraseAlternate_get_StartElementInResult_Stub(
23577     IRpcStubBuffer* This,
23578     IRpcChannelBuffer* pRpcChannelBuffer,
23579     PRPC_MESSAGE pRpcMessage,
23580     DWORD* pdwStubPhase);
23581 HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternate_get_NumberOfElementsInResult_Proxy(
23582     ISpeechPhraseAlternate* This,
23583     LONG *NumberOfElements);
23584 void __RPC_STUB ISpeechPhraseAlternate_get_NumberOfElementsInResult_Stub(
23585     IRpcStubBuffer* This,
23586     IRpcChannelBuffer* pRpcChannelBuffer,
23587     PRPC_MESSAGE pRpcMessage,
23588     DWORD* pdwStubPhase);
23589 HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternate_get_PhraseInfo_Proxy(
23590     ISpeechPhraseAlternate* This,
23591     ISpeechPhraseInfo **PhraseInfo);
23592 void __RPC_STUB ISpeechPhraseAlternate_get_PhraseInfo_Stub(
23593     IRpcStubBuffer* This,
23594     IRpcChannelBuffer* pRpcChannelBuffer,
23595     PRPC_MESSAGE pRpcMessage,
23596     DWORD* pdwStubPhase);
23597 HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternate_Commit_Proxy(
23598     ISpeechPhraseAlternate* This);
23599 void __RPC_STUB ISpeechPhraseAlternate_Commit_Stub(
23600     IRpcStubBuffer* This,
23601     IRpcChannelBuffer* pRpcChannelBuffer,
23602     PRPC_MESSAGE pRpcMessage,
23603     DWORD* pdwStubPhase);
23604 
23605 #endif  /* __ISpeechPhraseAlternate_INTERFACE_DEFINED__ */
23606 
23607 /*****************************************************************************
23608  * ISpeechPhraseAlternates interface
23609  */
23610 #ifndef __ISpeechPhraseAlternates_INTERFACE_DEFINED__
23611 #define __ISpeechPhraseAlternates_INTERFACE_DEFINED__
23612 
23613 DEFINE_GUID(IID_ISpeechPhraseAlternates, 0xb238b6d5, 0xf276, 0x4c3d, 0xa6,0xc1, 0x29,0x74,0x80,0x1c,0x3c,0xc2);
23614 #if defined(__cplusplus) && !defined(CINTERFACE)
23615 MIDL_INTERFACE("b238b6d5-f276-4c3d-a6c1-2974801c3cc2")
23616 ISpeechPhraseAlternates : public IDispatch
23617 {
23618     virtual HRESULT STDMETHODCALLTYPE get_Count(
23619         LONG *Count) = 0;
23620 
23621     virtual HRESULT STDMETHODCALLTYPE Item(
23622         LONG Index,
23623         ISpeechPhraseAlternate **PhraseAlternate) = 0;
23624 
23625     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
23626         IUnknown **EnumVARIANT) = 0;
23627 
23628 };
23629 #ifdef __CRT_UUID_DECL
23630 __CRT_UUID_DECL(ISpeechPhraseAlternates, 0xb238b6d5, 0xf276, 0x4c3d, 0xa6,0xc1, 0x29,0x74,0x80,0x1c,0x3c,0xc2)
23631 #endif
23632 #else
23633 typedef struct ISpeechPhraseAlternatesVtbl {
23634     BEGIN_INTERFACE
23635 
23636     /*** IUnknown methods ***/
23637     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23638         ISpeechPhraseAlternates* This,
23639         REFIID riid,
23640         void **ppvObject);
23641 
23642     ULONG (STDMETHODCALLTYPE *AddRef)(
23643         ISpeechPhraseAlternates* This);
23644 
23645     ULONG (STDMETHODCALLTYPE *Release)(
23646         ISpeechPhraseAlternates* This);
23647 
23648     /*** IDispatch methods ***/
23649     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
23650         ISpeechPhraseAlternates* This,
23651         UINT *pctinfo);
23652 
23653     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
23654         ISpeechPhraseAlternates* This,
23655         UINT iTInfo,
23656         LCID lcid,
23657         ITypeInfo **ppTInfo);
23658 
23659     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
23660         ISpeechPhraseAlternates* This,
23661         REFIID riid,
23662         LPOLESTR *rgszNames,
23663         UINT cNames,
23664         LCID lcid,
23665         DISPID *rgDispId);
23666 
23667     HRESULT (STDMETHODCALLTYPE *Invoke)(
23668         ISpeechPhraseAlternates* This,
23669         DISPID dispIdMember,
23670         REFIID riid,
23671         LCID lcid,
23672         WORD wFlags,
23673         DISPPARAMS *pDispParams,
23674         VARIANT *pVarResult,
23675         EXCEPINFO *pExcepInfo,
23676         UINT *puArgErr);
23677 
23678     /*** ISpeechPhraseAlternates methods ***/
23679     HRESULT (STDMETHODCALLTYPE *get_Count)(
23680         ISpeechPhraseAlternates* This,
23681         LONG *Count);
23682 
23683     HRESULT (STDMETHODCALLTYPE *Item)(
23684         ISpeechPhraseAlternates* This,
23685         LONG Index,
23686         ISpeechPhraseAlternate **PhraseAlternate);
23687 
23688     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
23689         ISpeechPhraseAlternates* This,
23690         IUnknown **EnumVARIANT);
23691 
23692     END_INTERFACE
23693 } ISpeechPhraseAlternatesVtbl;
23694 interface ISpeechPhraseAlternates {
23695     CONST_VTBL ISpeechPhraseAlternatesVtbl* lpVtbl;
23696 };
23697 
23698 #ifdef COBJMACROS
23699 #ifndef WIDL_C_INLINE_WRAPPERS
23700 /*** IUnknown methods ***/
23701 #define ISpeechPhraseAlternates_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23702 #define ISpeechPhraseAlternates_AddRef(This) (This)->lpVtbl->AddRef(This)
23703 #define ISpeechPhraseAlternates_Release(This) (This)->lpVtbl->Release(This)
23704 /*** IDispatch methods ***/
23705 #define ISpeechPhraseAlternates_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
23706 #define ISpeechPhraseAlternates_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
23707 #define ISpeechPhraseAlternates_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
23708 #define ISpeechPhraseAlternates_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
23709 /*** ISpeechPhraseAlternates methods ***/
23710 #define ISpeechPhraseAlternates_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
23711 #define ISpeechPhraseAlternates_Item(This,Index,PhraseAlternate) (This)->lpVtbl->Item(This,Index,PhraseAlternate)
23712 #define ISpeechPhraseAlternates_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
23713 #else
23714 /*** IUnknown methods ***/
23715 static FORCEINLINE HRESULT ISpeechPhraseAlternates_QueryInterface(ISpeechPhraseAlternates* This,REFIID riid,void **ppvObject) {
23716     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23717 }
23718 static FORCEINLINE ULONG ISpeechPhraseAlternates_AddRef(ISpeechPhraseAlternates* This) {
23719     return This->lpVtbl->AddRef(This);
23720 }
23721 static FORCEINLINE ULONG ISpeechPhraseAlternates_Release(ISpeechPhraseAlternates* This) {
23722     return This->lpVtbl->Release(This);
23723 }
23724 /*** IDispatch methods ***/
23725 static FORCEINLINE HRESULT ISpeechPhraseAlternates_GetTypeInfoCount(ISpeechPhraseAlternates* This,UINT *pctinfo) {
23726     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
23727 }
23728 static FORCEINLINE HRESULT ISpeechPhraseAlternates_GetTypeInfo(ISpeechPhraseAlternates* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
23729     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
23730 }
23731 static FORCEINLINE HRESULT ISpeechPhraseAlternates_GetIDsOfNames(ISpeechPhraseAlternates* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
23732     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
23733 }
23734 static FORCEINLINE HRESULT ISpeechPhraseAlternates_Invoke(ISpeechPhraseAlternates* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
23735     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
23736 }
23737 /*** ISpeechPhraseAlternates methods ***/
23738 static FORCEINLINE HRESULT ISpeechPhraseAlternates_get_Count(ISpeechPhraseAlternates* This,LONG *Count) {
23739     return This->lpVtbl->get_Count(This,Count);
23740 }
23741 static FORCEINLINE HRESULT ISpeechPhraseAlternates_Item(ISpeechPhraseAlternates* This,LONG Index,ISpeechPhraseAlternate **PhraseAlternate) {
23742     return This->lpVtbl->Item(This,Index,PhraseAlternate);
23743 }
23744 static FORCEINLINE HRESULT ISpeechPhraseAlternates_get__NewEnum(ISpeechPhraseAlternates* This,IUnknown **EnumVARIANT) {
23745     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
23746 }
23747 #endif
23748 #endif
23749 
23750 #endif
23751 
23752 HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternates_get_Count_Proxy(
23753     ISpeechPhraseAlternates* This,
23754     LONG *Count);
23755 void __RPC_STUB ISpeechPhraseAlternates_get_Count_Stub(
23756     IRpcStubBuffer* This,
23757     IRpcChannelBuffer* pRpcChannelBuffer,
23758     PRPC_MESSAGE pRpcMessage,
23759     DWORD* pdwStubPhase);
23760 HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternates_Item_Proxy(
23761     ISpeechPhraseAlternates* This,
23762     LONG Index,
23763     ISpeechPhraseAlternate **PhraseAlternate);
23764 void __RPC_STUB ISpeechPhraseAlternates_Item_Stub(
23765     IRpcStubBuffer* This,
23766     IRpcChannelBuffer* pRpcChannelBuffer,
23767     PRPC_MESSAGE pRpcMessage,
23768     DWORD* pdwStubPhase);
23769 HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternates_get__NewEnum_Proxy(
23770     ISpeechPhraseAlternates* This,
23771     IUnknown **EnumVARIANT);
23772 void __RPC_STUB ISpeechPhraseAlternates_get__NewEnum_Stub(
23773     IRpcStubBuffer* This,
23774     IRpcChannelBuffer* pRpcChannelBuffer,
23775     PRPC_MESSAGE pRpcMessage,
23776     DWORD* pdwStubPhase);
23777 
23778 #endif  /* __ISpeechPhraseAlternates_INTERFACE_DEFINED__ */
23779 
23780 /*****************************************************************************
23781  * ISpeechPhraseInfo interface
23782  */
23783 #ifndef __ISpeechPhraseInfo_INTERFACE_DEFINED__
23784 #define __ISpeechPhraseInfo_INTERFACE_DEFINED__
23785 
23786 DEFINE_GUID(IID_ISpeechPhraseInfo, 0x961559cf, 0x4e67, 0x4662, 0x8b,0xf0, 0xd9,0x3f,0x1f,0xcd,0x61,0xb3);
23787 #if defined(__cplusplus) && !defined(CINTERFACE)
23788 MIDL_INTERFACE("961559cf-4e67-4662-8bf0-d93f1fcd61b3")
23789 ISpeechPhraseInfo : public IDispatch
23790 {
23791     virtual HRESULT STDMETHODCALLTYPE get_LanguageId(
23792         LONG *LanguageId) = 0;
23793 
23794     virtual HRESULT STDMETHODCALLTYPE get_GrammarId(
23795         VARIANT *GrammarId) = 0;
23796 
23797     virtual HRESULT STDMETHODCALLTYPE get_StartTime(
23798         VARIANT *StartTime) = 0;
23799 
23800     virtual HRESULT STDMETHODCALLTYPE get_AudioStreamPosition(
23801         VARIANT *AudioStreamPosition) = 0;
23802 
23803     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeBytes(
23804         LONG *pAudioSizeBytes) = 0;
23805 
23806     virtual HRESULT STDMETHODCALLTYPE get_RetainedSizeBytes(
23807         LONG *RetainedSizeBytes) = 0;
23808 
23809     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeTime(
23810         LONG *AudioSizeTime) = 0;
23811 
23812     virtual HRESULT STDMETHODCALLTYPE get_Rule(
23813         ISpeechPhraseRule **Rule) = 0;
23814 
23815     virtual HRESULT STDMETHODCALLTYPE get_Properties(
23816         ISpeechPhraseProperties **Properties) = 0;
23817 
23818     virtual HRESULT STDMETHODCALLTYPE get_Elements(
23819         ISpeechPhraseElements **Elements) = 0;
23820 
23821     virtual HRESULT STDMETHODCALLTYPE get_Replacements(
23822         ISpeechPhraseReplacements **Replacements) = 0;
23823 
23824     virtual HRESULT STDMETHODCALLTYPE get_EngineId(
23825         BSTR *EngineIdGuid) = 0;
23826 
23827     virtual HRESULT STDMETHODCALLTYPE get_EnginePrivateData(
23828         VARIANT *PrivateData) = 0;
23829 
23830     virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
23831         VARIANT *PhraseBlock) = 0;
23832 
23833     virtual HRESULT STDMETHODCALLTYPE GetText(
23834         LONG StartElement,
23835         LONG Elements,
23836         VARIANT_BOOL UseReplacements,
23837         BSTR *Text) = 0;
23838 
23839     virtual HRESULT STDMETHODCALLTYPE GetDisplayAttributes(
23840         LONG StartElement,
23841         LONG Elements,
23842         VARIANT_BOOL UseReplacements,
23843         SpeechDisplayAttributes *DisplayAttributes) = 0;
23844 
23845 };
23846 #ifdef __CRT_UUID_DECL
23847 __CRT_UUID_DECL(ISpeechPhraseInfo, 0x961559cf, 0x4e67, 0x4662, 0x8b,0xf0, 0xd9,0x3f,0x1f,0xcd,0x61,0xb3)
23848 #endif
23849 #else
23850 typedef struct ISpeechPhraseInfoVtbl {
23851     BEGIN_INTERFACE
23852 
23853     /*** IUnknown methods ***/
23854     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23855         ISpeechPhraseInfo* This,
23856         REFIID riid,
23857         void **ppvObject);
23858 
23859     ULONG (STDMETHODCALLTYPE *AddRef)(
23860         ISpeechPhraseInfo* This);
23861 
23862     ULONG (STDMETHODCALLTYPE *Release)(
23863         ISpeechPhraseInfo* This);
23864 
23865     /*** IDispatch methods ***/
23866     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
23867         ISpeechPhraseInfo* This,
23868         UINT *pctinfo);
23869 
23870     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
23871         ISpeechPhraseInfo* This,
23872         UINT iTInfo,
23873         LCID lcid,
23874         ITypeInfo **ppTInfo);
23875 
23876     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
23877         ISpeechPhraseInfo* This,
23878         REFIID riid,
23879         LPOLESTR *rgszNames,
23880         UINT cNames,
23881         LCID lcid,
23882         DISPID *rgDispId);
23883 
23884     HRESULT (STDMETHODCALLTYPE *Invoke)(
23885         ISpeechPhraseInfo* This,
23886         DISPID dispIdMember,
23887         REFIID riid,
23888         LCID lcid,
23889         WORD wFlags,
23890         DISPPARAMS *pDispParams,
23891         VARIANT *pVarResult,
23892         EXCEPINFO *pExcepInfo,
23893         UINT *puArgErr);
23894 
23895     /*** ISpeechPhraseInfo methods ***/
23896     HRESULT (STDMETHODCALLTYPE *get_LanguageId)(
23897         ISpeechPhraseInfo* This,
23898         LONG *LanguageId);
23899 
23900     HRESULT (STDMETHODCALLTYPE *get_GrammarId)(
23901         ISpeechPhraseInfo* This,
23902         VARIANT *GrammarId);
23903 
23904     HRESULT (STDMETHODCALLTYPE *get_StartTime)(
23905         ISpeechPhraseInfo* This,
23906         VARIANT *StartTime);
23907 
23908     HRESULT (STDMETHODCALLTYPE *get_AudioStreamPosition)(
23909         ISpeechPhraseInfo* This,
23910         VARIANT *AudioStreamPosition);
23911 
23912     HRESULT (STDMETHODCALLTYPE *get_AudioSizeBytes)(
23913         ISpeechPhraseInfo* This,
23914         LONG *pAudioSizeBytes);
23915 
23916     HRESULT (STDMETHODCALLTYPE *get_RetainedSizeBytes)(
23917         ISpeechPhraseInfo* This,
23918         LONG *RetainedSizeBytes);
23919 
23920     HRESULT (STDMETHODCALLTYPE *get_AudioSizeTime)(
23921         ISpeechPhraseInfo* This,
23922         LONG *AudioSizeTime);
23923 
23924     HRESULT (STDMETHODCALLTYPE *get_Rule)(
23925         ISpeechPhraseInfo* This,
23926         ISpeechPhraseRule **Rule);
23927 
23928     HRESULT (STDMETHODCALLTYPE *get_Properties)(
23929         ISpeechPhraseInfo* This,
23930         ISpeechPhraseProperties **Properties);
23931 
23932     HRESULT (STDMETHODCALLTYPE *get_Elements)(
23933         ISpeechPhraseInfo* This,
23934         ISpeechPhraseElements **Elements);
23935 
23936     HRESULT (STDMETHODCALLTYPE *get_Replacements)(
23937         ISpeechPhraseInfo* This,
23938         ISpeechPhraseReplacements **Replacements);
23939 
23940     HRESULT (STDMETHODCALLTYPE *get_EngineId)(
23941         ISpeechPhraseInfo* This,
23942         BSTR *EngineIdGuid);
23943 
23944     HRESULT (STDMETHODCALLTYPE *get_EnginePrivateData)(
23945         ISpeechPhraseInfo* This,
23946         VARIANT *PrivateData);
23947 
23948     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
23949         ISpeechPhraseInfo* This,
23950         VARIANT *PhraseBlock);
23951 
23952     HRESULT (STDMETHODCALLTYPE *GetText)(
23953         ISpeechPhraseInfo* This,
23954         LONG StartElement,
23955         LONG Elements,
23956         VARIANT_BOOL UseReplacements,
23957         BSTR *Text);
23958 
23959     HRESULT (STDMETHODCALLTYPE *GetDisplayAttributes)(
23960         ISpeechPhraseInfo* This,
23961         LONG StartElement,
23962         LONG Elements,
23963         VARIANT_BOOL UseReplacements,
23964         SpeechDisplayAttributes *DisplayAttributes);
23965 
23966     END_INTERFACE
23967 } ISpeechPhraseInfoVtbl;
23968 interface ISpeechPhraseInfo {
23969     CONST_VTBL ISpeechPhraseInfoVtbl* lpVtbl;
23970 };
23971 
23972 #ifdef COBJMACROS
23973 #ifndef WIDL_C_INLINE_WRAPPERS
23974 /*** IUnknown methods ***/
23975 #define ISpeechPhraseInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23976 #define ISpeechPhraseInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
23977 #define ISpeechPhraseInfo_Release(This) (This)->lpVtbl->Release(This)
23978 /*** IDispatch methods ***/
23979 #define ISpeechPhraseInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
23980 #define ISpeechPhraseInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
23981 #define ISpeechPhraseInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
23982 #define ISpeechPhraseInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
23983 /*** ISpeechPhraseInfo methods ***/
23984 #define ISpeechPhraseInfo_get_LanguageId(This,LanguageId) (This)->lpVtbl->get_LanguageId(This,LanguageId)
23985 #define ISpeechPhraseInfo_get_GrammarId(This,GrammarId) (This)->lpVtbl->get_GrammarId(This,GrammarId)
23986 #define ISpeechPhraseInfo_get_StartTime(This,StartTime) (This)->lpVtbl->get_StartTime(This,StartTime)
23987 #define ISpeechPhraseInfo_get_AudioStreamPosition(This,AudioStreamPosition) (This)->lpVtbl->get_AudioStreamPosition(This,AudioStreamPosition)
23988 #define ISpeechPhraseInfo_get_AudioSizeBytes(This,pAudioSizeBytes) (This)->lpVtbl->get_AudioSizeBytes(This,pAudioSizeBytes)
23989 #define ISpeechPhraseInfo_get_RetainedSizeBytes(This,RetainedSizeBytes) (This)->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes)
23990 #define ISpeechPhraseInfo_get_AudioSizeTime(This,AudioSizeTime) (This)->lpVtbl->get_AudioSizeTime(This,AudioSizeTime)
23991 #define ISpeechPhraseInfo_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
23992 #define ISpeechPhraseInfo_get_Properties(This,Properties) (This)->lpVtbl->get_Properties(This,Properties)
23993 #define ISpeechPhraseInfo_get_Elements(This,Elements) (This)->lpVtbl->get_Elements(This,Elements)
23994 #define ISpeechPhraseInfo_get_Replacements(This,Replacements) (This)->lpVtbl->get_Replacements(This,Replacements)
23995 #define ISpeechPhraseInfo_get_EngineId(This,EngineIdGuid) (This)->lpVtbl->get_EngineId(This,EngineIdGuid)
23996 #define ISpeechPhraseInfo_get_EnginePrivateData(This,PrivateData) (This)->lpVtbl->get_EnginePrivateData(This,PrivateData)
23997 #define ISpeechPhraseInfo_SaveToMemory(This,PhraseBlock) (This)->lpVtbl->SaveToMemory(This,PhraseBlock)
23998 #define ISpeechPhraseInfo_GetText(This,StartElement,Elements,UseReplacements,Text) (This)->lpVtbl->GetText(This,StartElement,Elements,UseReplacements,Text)
23999 #define ISpeechPhraseInfo_GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes) (This)->lpVtbl->GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes)
24000 #else
24001 /*** IUnknown methods ***/
24002 static FORCEINLINE HRESULT ISpeechPhraseInfo_QueryInterface(ISpeechPhraseInfo* This,REFIID riid,void **ppvObject) {
24003     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
24004 }
24005 static FORCEINLINE ULONG ISpeechPhraseInfo_AddRef(ISpeechPhraseInfo* This) {
24006     return This->lpVtbl->AddRef(This);
24007 }
24008 static FORCEINLINE ULONG ISpeechPhraseInfo_Release(ISpeechPhraseInfo* This) {
24009     return This->lpVtbl->Release(This);
24010 }
24011 /*** IDispatch methods ***/
24012 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetTypeInfoCount(ISpeechPhraseInfo* This,UINT *pctinfo) {
24013     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
24014 }
24015 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetTypeInfo(ISpeechPhraseInfo* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
24016     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
24017 }
24018 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetIDsOfNames(ISpeechPhraseInfo* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
24019     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
24020 }
24021 static FORCEINLINE HRESULT ISpeechPhraseInfo_Invoke(ISpeechPhraseInfo* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
24022     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
24023 }
24024 /*** ISpeechPhraseInfo methods ***/
24025 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_LanguageId(ISpeechPhraseInfo* This,LONG *LanguageId) {
24026     return This->lpVtbl->get_LanguageId(This,LanguageId);
24027 }
24028 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_GrammarId(ISpeechPhraseInfo* This,VARIANT *GrammarId) {
24029     return This->lpVtbl->get_GrammarId(This,GrammarId);
24030 }
24031 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_StartTime(ISpeechPhraseInfo* This,VARIANT *StartTime) {
24032     return This->lpVtbl->get_StartTime(This,StartTime);
24033 }
24034 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_AudioStreamPosition(ISpeechPhraseInfo* This,VARIANT *AudioStreamPosition) {
24035     return This->lpVtbl->get_AudioStreamPosition(This,AudioStreamPosition);
24036 }
24037 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_AudioSizeBytes(ISpeechPhraseInfo* This,LONG *pAudioSizeBytes) {
24038     return This->lpVtbl->get_AudioSizeBytes(This,pAudioSizeBytes);
24039 }
24040 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_RetainedSizeBytes(ISpeechPhraseInfo* This,LONG *RetainedSizeBytes) {
24041     return This->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes);
24042 }
24043 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_AudioSizeTime(ISpeechPhraseInfo* This,LONG *AudioSizeTime) {
24044     return This->lpVtbl->get_AudioSizeTime(This,AudioSizeTime);
24045 }
24046 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_Rule(ISpeechPhraseInfo* This,ISpeechPhraseRule **Rule) {
24047     return This->lpVtbl->get_Rule(This,Rule);
24048 }
24049 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_Properties(ISpeechPhraseInfo* This,ISpeechPhraseProperties **Properties) {
24050     return This->lpVtbl->get_Properties(This,Properties);
24051 }
24052 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_Elements(ISpeechPhraseInfo* This,ISpeechPhraseElements **Elements) {
24053     return This->lpVtbl->get_Elements(This,Elements);
24054 }
24055 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_Replacements(ISpeechPhraseInfo* This,ISpeechPhraseReplacements **Replacements) {
24056     return This->lpVtbl->get_Replacements(This,Replacements);
24057 }
24058 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_EngineId(ISpeechPhraseInfo* This,BSTR *EngineIdGuid) {
24059     return This->lpVtbl->get_EngineId(This,EngineIdGuid);
24060 }
24061 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_EnginePrivateData(ISpeechPhraseInfo* This,VARIANT *PrivateData) {
24062     return This->lpVtbl->get_EnginePrivateData(This,PrivateData);
24063 }
24064 static FORCEINLINE HRESULT ISpeechPhraseInfo_SaveToMemory(ISpeechPhraseInfo* This,VARIANT *PhraseBlock) {
24065     return This->lpVtbl->SaveToMemory(This,PhraseBlock);
24066 }
24067 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetText(ISpeechPhraseInfo* This,LONG StartElement,LONG Elements,VARIANT_BOOL UseReplacements,BSTR *Text) {
24068     return This->lpVtbl->GetText(This,StartElement,Elements,UseReplacements,Text);
24069 }
24070 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetDisplayAttributes(ISpeechPhraseInfo* This,LONG StartElement,LONG Elements,VARIANT_BOOL UseReplacements,SpeechDisplayAttributes *DisplayAttributes) {
24071     return This->lpVtbl->GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes);
24072 }
24073 #endif
24074 #endif
24075 
24076 #endif
24077 
24078 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_LanguageId_Proxy(
24079     ISpeechPhraseInfo* This,
24080     LONG *LanguageId);
24081 void __RPC_STUB ISpeechPhraseInfo_get_LanguageId_Stub(
24082     IRpcStubBuffer* This,
24083     IRpcChannelBuffer* pRpcChannelBuffer,
24084     PRPC_MESSAGE pRpcMessage,
24085     DWORD* pdwStubPhase);
24086 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_GrammarId_Proxy(
24087     ISpeechPhraseInfo* This,
24088     VARIANT *GrammarId);
24089 void __RPC_STUB ISpeechPhraseInfo_get_GrammarId_Stub(
24090     IRpcStubBuffer* This,
24091     IRpcChannelBuffer* pRpcChannelBuffer,
24092     PRPC_MESSAGE pRpcMessage,
24093     DWORD* pdwStubPhase);
24094 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_StartTime_Proxy(
24095     ISpeechPhraseInfo* This,
24096     VARIANT *StartTime);
24097 void __RPC_STUB ISpeechPhraseInfo_get_StartTime_Stub(
24098     IRpcStubBuffer* This,
24099     IRpcChannelBuffer* pRpcChannelBuffer,
24100     PRPC_MESSAGE pRpcMessage,
24101     DWORD* pdwStubPhase);
24102 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_AudioStreamPosition_Proxy(
24103     ISpeechPhraseInfo* This,
24104     VARIANT *AudioStreamPosition);
24105 void __RPC_STUB ISpeechPhraseInfo_get_AudioStreamPosition_Stub(
24106     IRpcStubBuffer* This,
24107     IRpcChannelBuffer* pRpcChannelBuffer,
24108     PRPC_MESSAGE pRpcMessage,
24109     DWORD* pdwStubPhase);
24110 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_AudioSizeBytes_Proxy(
24111     ISpeechPhraseInfo* This,
24112     LONG *pAudioSizeBytes);
24113 void __RPC_STUB ISpeechPhraseInfo_get_AudioSizeBytes_Stub(
24114     IRpcStubBuffer* This,
24115     IRpcChannelBuffer* pRpcChannelBuffer,
24116     PRPC_MESSAGE pRpcMessage,
24117     DWORD* pdwStubPhase);
24118 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_RetainedSizeBytes_Proxy(
24119     ISpeechPhraseInfo* This,
24120     LONG *RetainedSizeBytes);
24121 void __RPC_STUB ISpeechPhraseInfo_get_RetainedSizeBytes_Stub(
24122     IRpcStubBuffer* This,
24123     IRpcChannelBuffer* pRpcChannelBuffer,
24124     PRPC_MESSAGE pRpcMessage,
24125     DWORD* pdwStubPhase);
24126 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_AudioSizeTime_Proxy(
24127     ISpeechPhraseInfo* This,
24128     LONG *AudioSizeTime);
24129 void __RPC_STUB ISpeechPhraseInfo_get_AudioSizeTime_Stub(
24130     IRpcStubBuffer* This,
24131     IRpcChannelBuffer* pRpcChannelBuffer,
24132     PRPC_MESSAGE pRpcMessage,
24133     DWORD* pdwStubPhase);
24134 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_Rule_Proxy(
24135     ISpeechPhraseInfo* This,
24136     ISpeechPhraseRule **Rule);
24137 void __RPC_STUB ISpeechPhraseInfo_get_Rule_Stub(
24138     IRpcStubBuffer* This,
24139     IRpcChannelBuffer* pRpcChannelBuffer,
24140     PRPC_MESSAGE pRpcMessage,
24141     DWORD* pdwStubPhase);
24142 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_Properties_Proxy(
24143     ISpeechPhraseInfo* This,
24144     ISpeechPhraseProperties **Properties);
24145 void __RPC_STUB ISpeechPhraseInfo_get_Properties_Stub(
24146     IRpcStubBuffer* This,
24147     IRpcChannelBuffer* pRpcChannelBuffer,
24148     PRPC_MESSAGE pRpcMessage,
24149     DWORD* pdwStubPhase);
24150 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_Elements_Proxy(
24151     ISpeechPhraseInfo* This,
24152     ISpeechPhraseElements **Elements);
24153 void __RPC_STUB ISpeechPhraseInfo_get_Elements_Stub(
24154     IRpcStubBuffer* This,
24155     IRpcChannelBuffer* pRpcChannelBuffer,
24156     PRPC_MESSAGE pRpcMessage,
24157     DWORD* pdwStubPhase);
24158 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_Replacements_Proxy(
24159     ISpeechPhraseInfo* This,
24160     ISpeechPhraseReplacements **Replacements);
24161 void __RPC_STUB ISpeechPhraseInfo_get_Replacements_Stub(
24162     IRpcStubBuffer* This,
24163     IRpcChannelBuffer* pRpcChannelBuffer,
24164     PRPC_MESSAGE pRpcMessage,
24165     DWORD* pdwStubPhase);
24166 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_EngineId_Proxy(
24167     ISpeechPhraseInfo* This,
24168     BSTR *EngineIdGuid);
24169 void __RPC_STUB ISpeechPhraseInfo_get_EngineId_Stub(
24170     IRpcStubBuffer* This,
24171     IRpcChannelBuffer* pRpcChannelBuffer,
24172     PRPC_MESSAGE pRpcMessage,
24173     DWORD* pdwStubPhase);
24174 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_EnginePrivateData_Proxy(
24175     ISpeechPhraseInfo* This,
24176     VARIANT *PrivateData);
24177 void __RPC_STUB ISpeechPhraseInfo_get_EnginePrivateData_Stub(
24178     IRpcStubBuffer* This,
24179     IRpcChannelBuffer* pRpcChannelBuffer,
24180     PRPC_MESSAGE pRpcMessage,
24181     DWORD* pdwStubPhase);
24182 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_SaveToMemory_Proxy(
24183     ISpeechPhraseInfo* This,
24184     VARIANT *PhraseBlock);
24185 void __RPC_STUB ISpeechPhraseInfo_SaveToMemory_Stub(
24186     IRpcStubBuffer* This,
24187     IRpcChannelBuffer* pRpcChannelBuffer,
24188     PRPC_MESSAGE pRpcMessage,
24189     DWORD* pdwStubPhase);
24190 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_GetText_Proxy(
24191     ISpeechPhraseInfo* This,
24192     LONG StartElement,
24193     LONG Elements,
24194     VARIANT_BOOL UseReplacements,
24195     BSTR *Text);
24196 void __RPC_STUB ISpeechPhraseInfo_GetText_Stub(
24197     IRpcStubBuffer* This,
24198     IRpcChannelBuffer* pRpcChannelBuffer,
24199     PRPC_MESSAGE pRpcMessage,
24200     DWORD* pdwStubPhase);
24201 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_GetDisplayAttributes_Proxy(
24202     ISpeechPhraseInfo* This,
24203     LONG StartElement,
24204     LONG Elements,
24205     VARIANT_BOOL UseReplacements,
24206     SpeechDisplayAttributes *DisplayAttributes);
24207 void __RPC_STUB ISpeechPhraseInfo_GetDisplayAttributes_Stub(
24208     IRpcStubBuffer* This,
24209     IRpcChannelBuffer* pRpcChannelBuffer,
24210     PRPC_MESSAGE pRpcMessage,
24211     DWORD* pdwStubPhase);
24212 
24213 #endif  /* __ISpeechPhraseInfo_INTERFACE_DEFINED__ */
24214 
24215 /*****************************************************************************
24216  * ISpeechPhraseElement interface
24217  */
24218 #ifndef __ISpeechPhraseElement_INTERFACE_DEFINED__
24219 #define __ISpeechPhraseElement_INTERFACE_DEFINED__
24220 
24221 DEFINE_GUID(IID_ISpeechPhraseElement, 0xe6176f96, 0xe373, 0x4801, 0xb2,0x23, 0x3b,0x62,0xc0,0x68,0xc0,0xb4);
24222 #if defined(__cplusplus) && !defined(CINTERFACE)
24223 MIDL_INTERFACE("e6176f96-e373-4801-b223-3b62c068c0b4")
24224 ISpeechPhraseElement : public IDispatch
24225 {
24226     virtual HRESULT STDMETHODCALLTYPE get_AudioTimeOffset(
24227         LONG *AudioTimeOffset) = 0;
24228 
24229     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeTime(
24230         LONG *AudioSizeTime) = 0;
24231 
24232     virtual HRESULT STDMETHODCALLTYPE get_AudioStreamOffset(
24233         LONG *AudioStreamOffset) = 0;
24234 
24235     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeBytes(
24236         LONG *AudioSizeBytes) = 0;
24237 
24238     virtual HRESULT STDMETHODCALLTYPE get_RetainedStreamOffset(
24239         LONG *RetainedStreamOffset) = 0;
24240 
24241     virtual HRESULT STDMETHODCALLTYPE get_RetainedSizeBytes(
24242         LONG *RetainedSizeBytes) = 0;
24243 
24244     virtual HRESULT STDMETHODCALLTYPE get_DisplayText(
24245         BSTR *DisplayText) = 0;
24246 
24247     virtual HRESULT STDMETHODCALLTYPE get_LexicalForm(
24248         BSTR *LexicalForm) = 0;
24249 
24250     virtual HRESULT STDMETHODCALLTYPE get_Pronunciation(
24251         VARIANT *Pronunciation) = 0;
24252 
24253     virtual HRESULT STDMETHODCALLTYPE get_DisplayAttributes(
24254         SpeechDisplayAttributes *DisplayAttributes) = 0;
24255 
24256     virtual HRESULT STDMETHODCALLTYPE get_RequiredConfidence(
24257         SpeechEngineConfidence *RequiredConfidence) = 0;
24258 
24259     virtual HRESULT STDMETHODCALLTYPE get_ActualConfidence(
24260         SpeechEngineConfidence *ActualConfidence) = 0;
24261 
24262     virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
24263         float *EngineConfidence) = 0;
24264 
24265 };
24266 #ifdef __CRT_UUID_DECL
24267 __CRT_UUID_DECL(ISpeechPhraseElement, 0xe6176f96, 0xe373, 0x4801, 0xb2,0x23, 0x3b,0x62,0xc0,0x68,0xc0,0xb4)
24268 #endif
24269 #else
24270 typedef struct ISpeechPhraseElementVtbl {
24271     BEGIN_INTERFACE
24272 
24273     /*** IUnknown methods ***/
24274     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
24275         ISpeechPhraseElement* This,
24276         REFIID riid,
24277         void **ppvObject);
24278 
24279     ULONG (STDMETHODCALLTYPE *AddRef)(
24280         ISpeechPhraseElement* This);
24281 
24282     ULONG (STDMETHODCALLTYPE *Release)(
24283         ISpeechPhraseElement* This);
24284 
24285     /*** IDispatch methods ***/
24286     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
24287         ISpeechPhraseElement* This,
24288         UINT *pctinfo);
24289 
24290     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
24291         ISpeechPhraseElement* This,
24292         UINT iTInfo,
24293         LCID lcid,
24294         ITypeInfo **ppTInfo);
24295 
24296     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
24297         ISpeechPhraseElement* This,
24298         REFIID riid,
24299         LPOLESTR *rgszNames,
24300         UINT cNames,
24301         LCID lcid,
24302         DISPID *rgDispId);
24303 
24304     HRESULT (STDMETHODCALLTYPE *Invoke)(
24305         ISpeechPhraseElement* This,
24306         DISPID dispIdMember,
24307         REFIID riid,
24308         LCID lcid,
24309         WORD wFlags,
24310         DISPPARAMS *pDispParams,
24311         VARIANT *pVarResult,
24312         EXCEPINFO *pExcepInfo,
24313         UINT *puArgErr);
24314 
24315     /*** ISpeechPhraseElement methods ***/
24316     HRESULT (STDMETHODCALLTYPE *get_AudioTimeOffset)(
24317         ISpeechPhraseElement* This,
24318         LONG *AudioTimeOffset);
24319 
24320     HRESULT (STDMETHODCALLTYPE *get_AudioSizeTime)(
24321         ISpeechPhraseElement* This,
24322         LONG *AudioSizeTime);
24323 
24324     HRESULT (STDMETHODCALLTYPE *get_AudioStreamOffset)(
24325         ISpeechPhraseElement* This,
24326         LONG *AudioStreamOffset);
24327 
24328     HRESULT (STDMETHODCALLTYPE *get_AudioSizeBytes)(
24329         ISpeechPhraseElement* This,
24330         LONG *AudioSizeBytes);
24331 
24332     HRESULT (STDMETHODCALLTYPE *get_RetainedStreamOffset)(
24333         ISpeechPhraseElement* This,
24334         LONG *RetainedStreamOffset);
24335 
24336     HRESULT (STDMETHODCALLTYPE *get_RetainedSizeBytes)(
24337         ISpeechPhraseElement* This,
24338         LONG *RetainedSizeBytes);
24339 
24340     HRESULT (STDMETHODCALLTYPE *get_DisplayText)(
24341         ISpeechPhraseElement* This,
24342         BSTR *DisplayText);
24343 
24344     HRESULT (STDMETHODCALLTYPE *get_LexicalForm)(
24345         ISpeechPhraseElement* This,
24346         BSTR *LexicalForm);
24347 
24348     HRESULT (STDMETHODCALLTYPE *get_Pronunciation)(
24349         ISpeechPhraseElement* This,
24350         VARIANT *Pronunciation);
24351 
24352     HRESULT (STDMETHODCALLTYPE *get_DisplayAttributes)(
24353         ISpeechPhraseElement* This,
24354         SpeechDisplayAttributes *DisplayAttributes);
24355 
24356     HRESULT (STDMETHODCALLTYPE *get_RequiredConfidence)(
24357         ISpeechPhraseElement* This,
24358         SpeechEngineConfidence *RequiredConfidence);
24359 
24360     HRESULT (STDMETHODCALLTYPE *get_ActualConfidence)(
24361         ISpeechPhraseElement* This,
24362         SpeechEngineConfidence *ActualConfidence);
24363 
24364     HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
24365         ISpeechPhraseElement* This,
24366         float *EngineConfidence);
24367 
24368     END_INTERFACE
24369 } ISpeechPhraseElementVtbl;
24370 interface ISpeechPhraseElement {
24371     CONST_VTBL ISpeechPhraseElementVtbl* lpVtbl;
24372 };
24373 
24374 #ifdef COBJMACROS
24375 #ifndef WIDL_C_INLINE_WRAPPERS
24376 /*** IUnknown methods ***/
24377 #define ISpeechPhraseElement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
24378 #define ISpeechPhraseElement_AddRef(This) (This)->lpVtbl->AddRef(This)
24379 #define ISpeechPhraseElement_Release(This) (This)->lpVtbl->Release(This)
24380 /*** IDispatch methods ***/
24381 #define ISpeechPhraseElement_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
24382 #define ISpeechPhraseElement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
24383 #define ISpeechPhraseElement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
24384 #define ISpeechPhraseElement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
24385 /*** ISpeechPhraseElement methods ***/
24386 #define ISpeechPhraseElement_get_AudioTimeOffset(This,AudioTimeOffset) (This)->lpVtbl->get_AudioTimeOffset(This,AudioTimeOffset)
24387 #define ISpeechPhraseElement_get_AudioSizeTime(This,AudioSizeTime) (This)->lpVtbl->get_AudioSizeTime(This,AudioSizeTime)
24388 #define ISpeechPhraseElement_get_AudioStreamOffset(This,AudioStreamOffset) (This)->lpVtbl->get_AudioStreamOffset(This,AudioStreamOffset)
24389 #define ISpeechPhraseElement_get_AudioSizeBytes(This,AudioSizeBytes) (This)->lpVtbl->get_AudioSizeBytes(This,AudioSizeBytes)
24390 #define ISpeechPhraseElement_get_RetainedStreamOffset(This,RetainedStreamOffset) (This)->lpVtbl->get_RetainedStreamOffset(This,RetainedStreamOffset)
24391 #define ISpeechPhraseElement_get_RetainedSizeBytes(This,RetainedSizeBytes) (This)->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes)
24392 #define ISpeechPhraseElement_get_DisplayText(This,DisplayText) (This)->lpVtbl->get_DisplayText(This,DisplayText)
24393 #define ISpeechPhraseElement_get_LexicalForm(This,LexicalForm) (This)->lpVtbl->get_LexicalForm(This,LexicalForm)
24394 #define ISpeechPhraseElement_get_Pronunciation(This,Pronunciation) (This)->lpVtbl->get_Pronunciation(This,Pronunciation)
24395 #define ISpeechPhraseElement_get_DisplayAttributes(This,DisplayAttributes) (This)->lpVtbl->get_DisplayAttributes(This,DisplayAttributes)
24396 #define ISpeechPhraseElement_get_RequiredConfidence(This,RequiredConfidence) (This)->lpVtbl->get_RequiredConfidence(This,RequiredConfidence)
24397 #define ISpeechPhraseElement_get_ActualConfidence(This,ActualConfidence) (This)->lpVtbl->get_ActualConfidence(This,ActualConfidence)
24398 #define ISpeechPhraseElement_get_EngineConfidence(This,EngineConfidence) (This)->lpVtbl->get_EngineConfidence(This,EngineConfidence)
24399 #else
24400 /*** IUnknown methods ***/
24401 static FORCEINLINE HRESULT ISpeechPhraseElement_QueryInterface(ISpeechPhraseElement* This,REFIID riid,void **ppvObject) {
24402     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
24403 }
24404 static FORCEINLINE ULONG ISpeechPhraseElement_AddRef(ISpeechPhraseElement* This) {
24405     return This->lpVtbl->AddRef(This);
24406 }
24407 static FORCEINLINE ULONG ISpeechPhraseElement_Release(ISpeechPhraseElement* This) {
24408     return This->lpVtbl->Release(This);
24409 }
24410 /*** IDispatch methods ***/
24411 static FORCEINLINE HRESULT ISpeechPhraseElement_GetTypeInfoCount(ISpeechPhraseElement* This,UINT *pctinfo) {
24412     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
24413 }
24414 static FORCEINLINE HRESULT ISpeechPhraseElement_GetTypeInfo(ISpeechPhraseElement* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
24415     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
24416 }
24417 static FORCEINLINE HRESULT ISpeechPhraseElement_GetIDsOfNames(ISpeechPhraseElement* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
24418     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
24419 }
24420 static FORCEINLINE HRESULT ISpeechPhraseElement_Invoke(ISpeechPhraseElement* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
24421     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
24422 }
24423 /*** ISpeechPhraseElement methods ***/
24424 static FORCEINLINE HRESULT ISpeechPhraseElement_get_AudioTimeOffset(ISpeechPhraseElement* This,LONG *AudioTimeOffset) {
24425     return This->lpVtbl->get_AudioTimeOffset(This,AudioTimeOffset);
24426 }
24427 static FORCEINLINE HRESULT ISpeechPhraseElement_get_AudioSizeTime(ISpeechPhraseElement* This,LONG *AudioSizeTime) {
24428     return This->lpVtbl->get_AudioSizeTime(This,AudioSizeTime);
24429 }
24430 static FORCEINLINE HRESULT ISpeechPhraseElement_get_AudioStreamOffset(ISpeechPhraseElement* This,LONG *AudioStreamOffset) {
24431     return This->lpVtbl->get_AudioStreamOffset(This,AudioStreamOffset);
24432 }
24433 static FORCEINLINE HRESULT ISpeechPhraseElement_get_AudioSizeBytes(ISpeechPhraseElement* This,LONG *AudioSizeBytes) {
24434     return This->lpVtbl->get_AudioSizeBytes(This,AudioSizeBytes);
24435 }
24436 static FORCEINLINE HRESULT ISpeechPhraseElement_get_RetainedStreamOffset(ISpeechPhraseElement* This,LONG *RetainedStreamOffset) {
24437     return This->lpVtbl->get_RetainedStreamOffset(This,RetainedStreamOffset);
24438 }
24439 static FORCEINLINE HRESULT ISpeechPhraseElement_get_RetainedSizeBytes(ISpeechPhraseElement* This,LONG *RetainedSizeBytes) {
24440     return This->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes);
24441 }
24442 static FORCEINLINE HRESULT ISpeechPhraseElement_get_DisplayText(ISpeechPhraseElement* This,BSTR *DisplayText) {
24443     return This->lpVtbl->get_DisplayText(This,DisplayText);
24444 }
24445 static FORCEINLINE HRESULT ISpeechPhraseElement_get_LexicalForm(ISpeechPhraseElement* This,BSTR *LexicalForm) {
24446     return This->lpVtbl->get_LexicalForm(This,LexicalForm);
24447 }
24448 static FORCEINLINE HRESULT ISpeechPhraseElement_get_Pronunciation(ISpeechPhraseElement* This,VARIANT *Pronunciation) {
24449     return This->lpVtbl->get_Pronunciation(This,Pronunciation);
24450 }
24451 static FORCEINLINE HRESULT ISpeechPhraseElement_get_DisplayAttributes(ISpeechPhraseElement* This,SpeechDisplayAttributes *DisplayAttributes) {
24452     return This->lpVtbl->get_DisplayAttributes(This,DisplayAttributes);
24453 }
24454 static FORCEINLINE HRESULT ISpeechPhraseElement_get_RequiredConfidence(ISpeechPhraseElement* This,SpeechEngineConfidence *RequiredConfidence) {
24455     return This->lpVtbl->get_RequiredConfidence(This,RequiredConfidence);
24456 }
24457 static FORCEINLINE HRESULT ISpeechPhraseElement_get_ActualConfidence(ISpeechPhraseElement* This,SpeechEngineConfidence *ActualConfidence) {
24458     return This->lpVtbl->get_ActualConfidence(This,ActualConfidence);
24459 }
24460 static FORCEINLINE HRESULT ISpeechPhraseElement_get_EngineConfidence(ISpeechPhraseElement* This,float *EngineConfidence) {
24461     return This->lpVtbl->get_EngineConfidence(This,EngineConfidence);
24462 }
24463 #endif
24464 #endif
24465 
24466 #endif
24467 
24468 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_AudioTimeOffset_Proxy(
24469     ISpeechPhraseElement* This,
24470     LONG *AudioTimeOffset);
24471 void __RPC_STUB ISpeechPhraseElement_get_AudioTimeOffset_Stub(
24472     IRpcStubBuffer* This,
24473     IRpcChannelBuffer* pRpcChannelBuffer,
24474     PRPC_MESSAGE pRpcMessage,
24475     DWORD* pdwStubPhase);
24476 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_AudioSizeTime_Proxy(
24477     ISpeechPhraseElement* This,
24478     LONG *AudioSizeTime);
24479 void __RPC_STUB ISpeechPhraseElement_get_AudioSizeTime_Stub(
24480     IRpcStubBuffer* This,
24481     IRpcChannelBuffer* pRpcChannelBuffer,
24482     PRPC_MESSAGE pRpcMessage,
24483     DWORD* pdwStubPhase);
24484 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_AudioStreamOffset_Proxy(
24485     ISpeechPhraseElement* This,
24486     LONG *AudioStreamOffset);
24487 void __RPC_STUB ISpeechPhraseElement_get_AudioStreamOffset_Stub(
24488     IRpcStubBuffer* This,
24489     IRpcChannelBuffer* pRpcChannelBuffer,
24490     PRPC_MESSAGE pRpcMessage,
24491     DWORD* pdwStubPhase);
24492 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_AudioSizeBytes_Proxy(
24493     ISpeechPhraseElement* This,
24494     LONG *AudioSizeBytes);
24495 void __RPC_STUB ISpeechPhraseElement_get_AudioSizeBytes_Stub(
24496     IRpcStubBuffer* This,
24497     IRpcChannelBuffer* pRpcChannelBuffer,
24498     PRPC_MESSAGE pRpcMessage,
24499     DWORD* pdwStubPhase);
24500 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_RetainedStreamOffset_Proxy(
24501     ISpeechPhraseElement* This,
24502     LONG *RetainedStreamOffset);
24503 void __RPC_STUB ISpeechPhraseElement_get_RetainedStreamOffset_Stub(
24504     IRpcStubBuffer* This,
24505     IRpcChannelBuffer* pRpcChannelBuffer,
24506     PRPC_MESSAGE pRpcMessage,
24507     DWORD* pdwStubPhase);
24508 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_RetainedSizeBytes_Proxy(
24509     ISpeechPhraseElement* This,
24510     LONG *RetainedSizeBytes);
24511 void __RPC_STUB ISpeechPhraseElement_get_RetainedSizeBytes_Stub(
24512     IRpcStubBuffer* This,
24513     IRpcChannelBuffer* pRpcChannelBuffer,
24514     PRPC_MESSAGE pRpcMessage,
24515     DWORD* pdwStubPhase);
24516 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_DisplayText_Proxy(
24517     ISpeechPhraseElement* This,
24518     BSTR *DisplayText);
24519 void __RPC_STUB ISpeechPhraseElement_get_DisplayText_Stub(
24520     IRpcStubBuffer* This,
24521     IRpcChannelBuffer* pRpcChannelBuffer,
24522     PRPC_MESSAGE pRpcMessage,
24523     DWORD* pdwStubPhase);
24524 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_LexicalForm_Proxy(
24525     ISpeechPhraseElement* This,
24526     BSTR *LexicalForm);
24527 void __RPC_STUB ISpeechPhraseElement_get_LexicalForm_Stub(
24528     IRpcStubBuffer* This,
24529     IRpcChannelBuffer* pRpcChannelBuffer,
24530     PRPC_MESSAGE pRpcMessage,
24531     DWORD* pdwStubPhase);
24532 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_Pronunciation_Proxy(
24533     ISpeechPhraseElement* This,
24534     VARIANT *Pronunciation);
24535 void __RPC_STUB ISpeechPhraseElement_get_Pronunciation_Stub(
24536     IRpcStubBuffer* This,
24537     IRpcChannelBuffer* pRpcChannelBuffer,
24538     PRPC_MESSAGE pRpcMessage,
24539     DWORD* pdwStubPhase);
24540 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_DisplayAttributes_Proxy(
24541     ISpeechPhraseElement* This,
24542     SpeechDisplayAttributes *DisplayAttributes);
24543 void __RPC_STUB ISpeechPhraseElement_get_DisplayAttributes_Stub(
24544     IRpcStubBuffer* This,
24545     IRpcChannelBuffer* pRpcChannelBuffer,
24546     PRPC_MESSAGE pRpcMessage,
24547     DWORD* pdwStubPhase);
24548 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_RequiredConfidence_Proxy(
24549     ISpeechPhraseElement* This,
24550     SpeechEngineConfidence *RequiredConfidence);
24551 void __RPC_STUB ISpeechPhraseElement_get_RequiredConfidence_Stub(
24552     IRpcStubBuffer* This,
24553     IRpcChannelBuffer* pRpcChannelBuffer,
24554     PRPC_MESSAGE pRpcMessage,
24555     DWORD* pdwStubPhase);
24556 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_ActualConfidence_Proxy(
24557     ISpeechPhraseElement* This,
24558     SpeechEngineConfidence *ActualConfidence);
24559 void __RPC_STUB ISpeechPhraseElement_get_ActualConfidence_Stub(
24560     IRpcStubBuffer* This,
24561     IRpcChannelBuffer* pRpcChannelBuffer,
24562     PRPC_MESSAGE pRpcMessage,
24563     DWORD* pdwStubPhase);
24564 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_EngineConfidence_Proxy(
24565     ISpeechPhraseElement* This,
24566     float *EngineConfidence);
24567 void __RPC_STUB ISpeechPhraseElement_get_EngineConfidence_Stub(
24568     IRpcStubBuffer* This,
24569     IRpcChannelBuffer* pRpcChannelBuffer,
24570     PRPC_MESSAGE pRpcMessage,
24571     DWORD* pdwStubPhase);
24572 
24573 #endif  /* __ISpeechPhraseElement_INTERFACE_DEFINED__ */
24574 
24575 /*****************************************************************************
24576  * ISpeechPhraseElements interface
24577  */
24578 #ifndef __ISpeechPhraseElements_INTERFACE_DEFINED__
24579 #define __ISpeechPhraseElements_INTERFACE_DEFINED__
24580 
24581 DEFINE_GUID(IID_ISpeechPhraseElements, 0x0626b328, 0x3478, 0x467d, 0xa0,0xb3, 0xd0,0x85,0x3b,0x93,0xdd,0xa3);
24582 #if defined(__cplusplus) && !defined(CINTERFACE)
24583 MIDL_INTERFACE("0626b328-3478-467d-a0b3-d0853b93dda3")
24584 ISpeechPhraseElements : public IDispatch
24585 {
24586     virtual HRESULT STDMETHODCALLTYPE get_Count(
24587         LONG *Count) = 0;
24588 
24589     virtual HRESULT STDMETHODCALLTYPE Item(
24590         LONG Index,
24591         ISpeechPhraseElement **Element) = 0;
24592 
24593     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
24594         IUnknown **EnumVARIANT) = 0;
24595 
24596 };
24597 #ifdef __CRT_UUID_DECL
24598 __CRT_UUID_DECL(ISpeechPhraseElements, 0x0626b328, 0x3478, 0x467d, 0xa0,0xb3, 0xd0,0x85,0x3b,0x93,0xdd,0xa3)
24599 #endif
24600 #else
24601 typedef struct ISpeechPhraseElementsVtbl {
24602     BEGIN_INTERFACE
24603 
24604     /*** IUnknown methods ***/
24605     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
24606         ISpeechPhraseElements* This,
24607         REFIID riid,
24608         void **ppvObject);
24609 
24610     ULONG (STDMETHODCALLTYPE *AddRef)(
24611         ISpeechPhraseElements* This);
24612 
24613     ULONG (STDMETHODCALLTYPE *Release)(
24614         ISpeechPhraseElements* This);
24615 
24616     /*** IDispatch methods ***/
24617     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
24618         ISpeechPhraseElements* This,
24619         UINT *pctinfo);
24620 
24621     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
24622         ISpeechPhraseElements* This,
24623         UINT iTInfo,
24624         LCID lcid,
24625         ITypeInfo **ppTInfo);
24626 
24627     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
24628         ISpeechPhraseElements* This,
24629         REFIID riid,
24630         LPOLESTR *rgszNames,
24631         UINT cNames,
24632         LCID lcid,
24633         DISPID *rgDispId);
24634 
24635     HRESULT (STDMETHODCALLTYPE *Invoke)(
24636         ISpeechPhraseElements* This,
24637         DISPID dispIdMember,
24638         REFIID riid,
24639         LCID lcid,
24640         WORD wFlags,
24641         DISPPARAMS *pDispParams,
24642         VARIANT *pVarResult,
24643         EXCEPINFO *pExcepInfo,
24644         UINT *puArgErr);
24645 
24646     /*** ISpeechPhraseElements methods ***/
24647     HRESULT (STDMETHODCALLTYPE *get_Count)(
24648         ISpeechPhraseElements* This,
24649         LONG *Count);
24650 
24651     HRESULT (STDMETHODCALLTYPE *Item)(
24652         ISpeechPhraseElements* This,
24653         LONG Index,
24654         ISpeechPhraseElement **Element);
24655 
24656     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
24657         ISpeechPhraseElements* This,
24658         IUnknown **EnumVARIANT);
24659 
24660     END_INTERFACE
24661 } ISpeechPhraseElementsVtbl;
24662 interface ISpeechPhraseElements {
24663     CONST_VTBL ISpeechPhraseElementsVtbl* lpVtbl;
24664 };
24665 
24666 #ifdef COBJMACROS
24667 #ifndef WIDL_C_INLINE_WRAPPERS
24668 /*** IUnknown methods ***/
24669 #define ISpeechPhraseElements_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
24670 #define ISpeechPhraseElements_AddRef(This) (This)->lpVtbl->AddRef(This)
24671 #define ISpeechPhraseElements_Release(This) (This)->lpVtbl->Release(This)
24672 /*** IDispatch methods ***/
24673 #define ISpeechPhraseElements_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
24674 #define ISpeechPhraseElements_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
24675 #define ISpeechPhraseElements_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
24676 #define ISpeechPhraseElements_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
24677 /*** ISpeechPhraseElements methods ***/
24678 #define ISpeechPhraseElements_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
24679 #define ISpeechPhraseElements_Item(This,Index,Element) (This)->lpVtbl->Item(This,Index,Element)
24680 #define ISpeechPhraseElements_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
24681 #else
24682 /*** IUnknown methods ***/
24683 static FORCEINLINE HRESULT ISpeechPhraseElements_QueryInterface(ISpeechPhraseElements* This,REFIID riid,void **ppvObject) {
24684     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
24685 }
24686 static FORCEINLINE ULONG ISpeechPhraseElements_AddRef(ISpeechPhraseElements* This) {
24687     return This->lpVtbl->AddRef(This);
24688 }
24689 static FORCEINLINE ULONG ISpeechPhraseElements_Release(ISpeechPhraseElements* This) {
24690     return This->lpVtbl->Release(This);
24691 }
24692 /*** IDispatch methods ***/
24693 static FORCEINLINE HRESULT ISpeechPhraseElements_GetTypeInfoCount(ISpeechPhraseElements* This,UINT *pctinfo) {
24694     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
24695 }
24696 static FORCEINLINE HRESULT ISpeechPhraseElements_GetTypeInfo(ISpeechPhraseElements* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
24697     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
24698 }
24699 static FORCEINLINE HRESULT ISpeechPhraseElements_GetIDsOfNames(ISpeechPhraseElements* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
24700     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
24701 }
24702 static FORCEINLINE HRESULT ISpeechPhraseElements_Invoke(ISpeechPhraseElements* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
24703     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
24704 }
24705 /*** ISpeechPhraseElements methods ***/
24706 static FORCEINLINE HRESULT ISpeechPhraseElements_get_Count(ISpeechPhraseElements* This,LONG *Count) {
24707     return This->lpVtbl->get_Count(This,Count);
24708 }
24709 static FORCEINLINE HRESULT ISpeechPhraseElements_Item(ISpeechPhraseElements* This,LONG Index,ISpeechPhraseElement **Element) {
24710     return This->lpVtbl->Item(This,Index,Element);
24711 }
24712 static FORCEINLINE HRESULT ISpeechPhraseElements_get__NewEnum(ISpeechPhraseElements* This,IUnknown **EnumVARIANT) {
24713     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
24714 }
24715 #endif
24716 #endif
24717 
24718 #endif
24719 
24720 HRESULT STDMETHODCALLTYPE ISpeechPhraseElements_get_Count_Proxy(
24721     ISpeechPhraseElements* This,
24722     LONG *Count);
24723 void __RPC_STUB ISpeechPhraseElements_get_Count_Stub(
24724     IRpcStubBuffer* This,
24725     IRpcChannelBuffer* pRpcChannelBuffer,
24726     PRPC_MESSAGE pRpcMessage,
24727     DWORD* pdwStubPhase);
24728 HRESULT STDMETHODCALLTYPE ISpeechPhraseElements_Item_Proxy(
24729     ISpeechPhraseElements* This,
24730     LONG Index,
24731     ISpeechPhraseElement **Element);
24732 void __RPC_STUB ISpeechPhraseElements_Item_Stub(
24733     IRpcStubBuffer* This,
24734     IRpcChannelBuffer* pRpcChannelBuffer,
24735     PRPC_MESSAGE pRpcMessage,
24736     DWORD* pdwStubPhase);
24737 HRESULT STDMETHODCALLTYPE ISpeechPhraseElements_get__NewEnum_Proxy(
24738     ISpeechPhraseElements* This,
24739     IUnknown **EnumVARIANT);
24740 void __RPC_STUB ISpeechPhraseElements_get__NewEnum_Stub(
24741     IRpcStubBuffer* This,
24742     IRpcChannelBuffer* pRpcChannelBuffer,
24743     PRPC_MESSAGE pRpcMessage,
24744     DWORD* pdwStubPhase);
24745 
24746 #endif  /* __ISpeechPhraseElements_INTERFACE_DEFINED__ */
24747 
24748 /*****************************************************************************
24749  * ISpeechPhraseReplacement interface
24750  */
24751 #ifndef __ISpeechPhraseReplacement_INTERFACE_DEFINED__
24752 #define __ISpeechPhraseReplacement_INTERFACE_DEFINED__
24753 
24754 DEFINE_GUID(IID_ISpeechPhraseReplacement, 0x2890a410, 0x53a7, 0x4fb5, 0x94,0xec, 0x06,0xd4,0x99,0x8e,0x3d,0x02);
24755 #if defined(__cplusplus) && !defined(CINTERFACE)
24756 MIDL_INTERFACE("2890a410-53a7-4fb5-94ec-06d4998e3d02")
24757 ISpeechPhraseReplacement : public IDispatch
24758 {
24759     virtual HRESULT STDMETHODCALLTYPE get_DisplayAttributes(
24760         SpeechDisplayAttributes *DisplayAttributes) = 0;
24761 
24762     virtual HRESULT STDMETHODCALLTYPE get_Text(
24763         BSTR *Text) = 0;
24764 
24765     virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
24766         LONG *FirstElement) = 0;
24767 
24768     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
24769         LONG *NumberOfElements) = 0;
24770 
24771 };
24772 #ifdef __CRT_UUID_DECL
24773 __CRT_UUID_DECL(ISpeechPhraseReplacement, 0x2890a410, 0x53a7, 0x4fb5, 0x94,0xec, 0x06,0xd4,0x99,0x8e,0x3d,0x02)
24774 #endif
24775 #else
24776 typedef struct ISpeechPhraseReplacementVtbl {
24777     BEGIN_INTERFACE
24778 
24779     /*** IUnknown methods ***/
24780     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
24781         ISpeechPhraseReplacement* This,
24782         REFIID riid,
24783         void **ppvObject);
24784 
24785     ULONG (STDMETHODCALLTYPE *AddRef)(
24786         ISpeechPhraseReplacement* This);
24787 
24788     ULONG (STDMETHODCALLTYPE *Release)(
24789         ISpeechPhraseReplacement* This);
24790 
24791     /*** IDispatch methods ***/
24792     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
24793         ISpeechPhraseReplacement* This,
24794         UINT *pctinfo);
24795 
24796     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
24797         ISpeechPhraseReplacement* This,
24798         UINT iTInfo,
24799         LCID lcid,
24800         ITypeInfo **ppTInfo);
24801 
24802     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
24803         ISpeechPhraseReplacement* This,
24804         REFIID riid,
24805         LPOLESTR *rgszNames,
24806         UINT cNames,
24807         LCID lcid,
24808         DISPID *rgDispId);
24809 
24810     HRESULT (STDMETHODCALLTYPE *Invoke)(
24811         ISpeechPhraseReplacement* This,
24812         DISPID dispIdMember,
24813         REFIID riid,
24814         LCID lcid,
24815         WORD wFlags,
24816         DISPPARAMS *pDispParams,
24817         VARIANT *pVarResult,
24818         EXCEPINFO *pExcepInfo,
24819         UINT *puArgErr);
24820 
24821     /*** ISpeechPhraseReplacement methods ***/
24822     HRESULT (STDMETHODCALLTYPE *get_DisplayAttributes)(
24823         ISpeechPhraseReplacement* This,
24824         SpeechDisplayAttributes *DisplayAttributes);
24825 
24826     HRESULT (STDMETHODCALLTYPE *get_Text)(
24827         ISpeechPhraseReplacement* This,
24828         BSTR *Text);
24829 
24830     HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
24831         ISpeechPhraseReplacement* This,
24832         LONG *FirstElement);
24833 
24834     HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
24835         ISpeechPhraseReplacement* This,
24836         LONG *NumberOfElements);
24837 
24838     END_INTERFACE
24839 } ISpeechPhraseReplacementVtbl;
24840 interface ISpeechPhraseReplacement {
24841     CONST_VTBL ISpeechPhraseReplacementVtbl* lpVtbl;
24842 };
24843 
24844 #ifdef COBJMACROS
24845 #ifndef WIDL_C_INLINE_WRAPPERS
24846 /*** IUnknown methods ***/
24847 #define ISpeechPhraseReplacement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
24848 #define ISpeechPhraseReplacement_AddRef(This) (This)->lpVtbl->AddRef(This)
24849 #define ISpeechPhraseReplacement_Release(This) (This)->lpVtbl->Release(This)
24850 /*** IDispatch methods ***/
24851 #define ISpeechPhraseReplacement_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
24852 #define ISpeechPhraseReplacement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
24853 #define ISpeechPhraseReplacement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
24854 #define ISpeechPhraseReplacement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
24855 /*** ISpeechPhraseReplacement methods ***/
24856 #define ISpeechPhraseReplacement_get_DisplayAttributes(This,DisplayAttributes) (This)->lpVtbl->get_DisplayAttributes(This,DisplayAttributes)
24857 #define ISpeechPhraseReplacement_get_Text(This,Text) (This)->lpVtbl->get_Text(This,Text)
24858 #define ISpeechPhraseReplacement_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
24859 #define ISpeechPhraseReplacement_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
24860 #else
24861 /*** IUnknown methods ***/
24862 static FORCEINLINE HRESULT ISpeechPhraseReplacement_QueryInterface(ISpeechPhraseReplacement* This,REFIID riid,void **ppvObject) {
24863     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
24864 }
24865 static FORCEINLINE ULONG ISpeechPhraseReplacement_AddRef(ISpeechPhraseReplacement* This) {
24866     return This->lpVtbl->AddRef(This);
24867 }
24868 static FORCEINLINE ULONG ISpeechPhraseReplacement_Release(ISpeechPhraseReplacement* This) {
24869     return This->lpVtbl->Release(This);
24870 }
24871 /*** IDispatch methods ***/
24872 static FORCEINLINE HRESULT ISpeechPhraseReplacement_GetTypeInfoCount(ISpeechPhraseReplacement* This,UINT *pctinfo) {
24873     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
24874 }
24875 static FORCEINLINE HRESULT ISpeechPhraseReplacement_GetTypeInfo(ISpeechPhraseReplacement* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
24876     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
24877 }
24878 static FORCEINLINE HRESULT ISpeechPhraseReplacement_GetIDsOfNames(ISpeechPhraseReplacement* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
24879     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
24880 }
24881 static FORCEINLINE HRESULT ISpeechPhraseReplacement_Invoke(ISpeechPhraseReplacement* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
24882     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
24883 }
24884 /*** ISpeechPhraseReplacement methods ***/
24885 static FORCEINLINE HRESULT ISpeechPhraseReplacement_get_DisplayAttributes(ISpeechPhraseReplacement* This,SpeechDisplayAttributes *DisplayAttributes) {
24886     return This->lpVtbl->get_DisplayAttributes(This,DisplayAttributes);
24887 }
24888 static FORCEINLINE HRESULT ISpeechPhraseReplacement_get_Text(ISpeechPhraseReplacement* This,BSTR *Text) {
24889     return This->lpVtbl->get_Text(This,Text);
24890 }
24891 static FORCEINLINE HRESULT ISpeechPhraseReplacement_get_FirstElement(ISpeechPhraseReplacement* This,LONG *FirstElement) {
24892     return This->lpVtbl->get_FirstElement(This,FirstElement);
24893 }
24894 static FORCEINLINE HRESULT ISpeechPhraseReplacement_get_NumberOfElements(ISpeechPhraseReplacement* This,LONG *NumberOfElements) {
24895     return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
24896 }
24897 #endif
24898 #endif
24899 
24900 #endif
24901 
24902 HRESULT STDMETHODCALLTYPE ISpeechPhraseReplacement_get_DisplayAttributes_Proxy(
24903     ISpeechPhraseReplacement* This,
24904     SpeechDisplayAttributes *DisplayAttributes);
24905 void __RPC_STUB ISpeechPhraseReplacement_get_DisplayAttributes_Stub(
24906     IRpcStubBuffer* This,
24907     IRpcChannelBuffer* pRpcChannelBuffer,
24908     PRPC_MESSAGE pRpcMessage,
24909     DWORD* pdwStubPhase);
24910 HRESULT STDMETHODCALLTYPE ISpeechPhraseReplacement_get_Text_Proxy(
24911     ISpeechPhraseReplacement* This,
24912     BSTR *Text);
24913 void __RPC_STUB ISpeechPhraseReplacement_get_Text_Stub(
24914     IRpcStubBuffer* This,
24915     IRpcChannelBuffer* pRpcChannelBuffer,
24916     PRPC_MESSAGE pRpcMessage,
24917     DWORD* pdwStubPhase);
24918 HRESULT STDMETHODCALLTYPE ISpeechPhraseReplacement_get_FirstElement_Proxy(
24919     ISpeechPhraseReplacement* This,
24920     LONG *FirstElement);
24921 void __RPC_STUB ISpeechPhraseReplacement_get_FirstElement_Stub(
24922     IRpcStubBuffer* This,
24923     IRpcChannelBuffer* pRpcChannelBuffer,
24924     PRPC_MESSAGE pRpcMessage,
24925     DWORD* pdwStubPhase);
24926 HRESULT STDMETHODCALLTYPE ISpeechPhraseReplacement_get_NumberOfElements_Proxy(
24927     ISpeechPhraseReplacement* This,
24928     LONG *NumberOfElements);
24929 void __RPC_STUB ISpeechPhraseReplacement_get_NumberOfElements_Stub(
24930     IRpcStubBuffer* This,
24931     IRpcChannelBuffer* pRpcChannelBuffer,
24932     PRPC_MESSAGE pRpcMessage,
24933     DWORD* pdwStubPhase);
24934 
24935 #endif  /* __ISpeechPhraseReplacement_INTERFACE_DEFINED__ */
24936 
24937 /*****************************************************************************
24938  * ISpeechPhraseReplacements interface
24939  */
24940 #ifndef __ISpeechPhraseReplacements_INTERFACE_DEFINED__
24941 #define __ISpeechPhraseReplacements_INTERFACE_DEFINED__
24942 
24943 DEFINE_GUID(IID_ISpeechPhraseReplacements, 0x38bc662f, 0x2257, 0x4525, 0x95,0x9e, 0x20,0x69,0xd2,0x59,0x6c,0x05);
24944 #if defined(__cplusplus) && !defined(CINTERFACE)
24945 MIDL_INTERFACE("38bc662f-2257-4525-959e-2069d2596c05")
24946 ISpeechPhraseReplacements : public IDispatch
24947 {
24948     virtual HRESULT STDMETHODCALLTYPE get_Count(
24949         LONG *Count) = 0;
24950 
24951     virtual HRESULT STDMETHODCALLTYPE Item(
24952         LONG Index,
24953         ISpeechPhraseReplacement **Reps) = 0;
24954 
24955     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
24956         IUnknown **EnumVARIANT) = 0;
24957 
24958 };
24959 #ifdef __CRT_UUID_DECL
24960 __CRT_UUID_DECL(ISpeechPhraseReplacements, 0x38bc662f, 0x2257, 0x4525, 0x95,0x9e, 0x20,0x69,0xd2,0x59,0x6c,0x05)
24961 #endif
24962 #else
24963 typedef struct ISpeechPhraseReplacementsVtbl {
24964     BEGIN_INTERFACE
24965 
24966     /*** IUnknown methods ***/
24967     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
24968         ISpeechPhraseReplacements* This,
24969         REFIID riid,
24970         void **ppvObject);
24971 
24972     ULONG (STDMETHODCALLTYPE *AddRef)(
24973         ISpeechPhraseReplacements* This);
24974 
24975     ULONG (STDMETHODCALLTYPE *Release)(
24976         ISpeechPhraseReplacements* This);
24977 
24978     /*** IDispatch methods ***/
24979     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
24980         ISpeechPhraseReplacements* This,
24981         UINT *pctinfo);
24982 
24983     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
24984         ISpeechPhraseReplacements* This,
24985         UINT iTInfo,
24986         LCID lcid,
24987         ITypeInfo **ppTInfo);
24988 
24989     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
24990         ISpeechPhraseReplacements* This,
24991         REFIID riid,
24992         LPOLESTR *rgszNames,
24993         UINT cNames,
24994         LCID lcid,
24995         DISPID *rgDispId);
24996 
24997     HRESULT (STDMETHODCALLTYPE *Invoke)(
24998         ISpeechPhraseReplacements* This,
24999         DISPID dispIdMember,
25000         REFIID riid,
25001         LCID lcid,
25002         WORD wFlags,
25003         DISPPARAMS *pDispParams,
25004         VARIANT *pVarResult,
25005         EXCEPINFO *pExcepInfo,
25006         UINT *puArgErr);
25007 
25008     /*** ISpeechPhraseReplacements methods ***/
25009     HRESULT (STDMETHODCALLTYPE *get_Count)(
25010         ISpeechPhraseReplacements* This,
25011         LONG *Count);
25012 
25013     HRESULT (STDMETHODCALLTYPE *Item)(
25014         ISpeechPhraseReplacements* This,
25015         LONG Index,
25016         ISpeechPhraseReplacement **Reps);
25017 
25018     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
25019         ISpeechPhraseReplacements* This,
25020         IUnknown **EnumVARIANT);
25021 
25022     END_INTERFACE
25023 } ISpeechPhraseReplacementsVtbl;
25024 interface ISpeechPhraseReplacements {
25025     CONST_VTBL ISpeechPhraseReplacementsVtbl* lpVtbl;
25026 };
25027 
25028 #ifdef COBJMACROS
25029 #ifndef WIDL_C_INLINE_WRAPPERS
25030 /*** IUnknown methods ***/
25031 #define ISpeechPhraseReplacements_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25032 #define ISpeechPhraseReplacements_AddRef(This) (This)->lpVtbl->AddRef(This)
25033 #define ISpeechPhraseReplacements_Release(This) (This)->lpVtbl->Release(This)
25034 /*** IDispatch methods ***/
25035 #define ISpeechPhraseReplacements_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
25036 #define ISpeechPhraseReplacements_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
25037 #define ISpeechPhraseReplacements_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
25038 #define ISpeechPhraseReplacements_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
25039 /*** ISpeechPhraseReplacements methods ***/
25040 #define ISpeechPhraseReplacements_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
25041 #define ISpeechPhraseReplacements_Item(This,Index,Reps) (This)->lpVtbl->Item(This,Index,Reps)
25042 #define ISpeechPhraseReplacements_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
25043 #else
25044 /*** IUnknown methods ***/
25045 static FORCEINLINE HRESULT ISpeechPhraseReplacements_QueryInterface(ISpeechPhraseReplacements* This,REFIID riid,void **ppvObject) {
25046     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25047 }
25048 static FORCEINLINE ULONG ISpeechPhraseReplacements_AddRef(ISpeechPhraseReplacements* This) {
25049     return This->lpVtbl->AddRef(This);
25050 }
25051 static FORCEINLINE ULONG ISpeechPhraseReplacements_Release(ISpeechPhraseReplacements* This) {
25052     return This->lpVtbl->Release(This);
25053 }
25054 /*** IDispatch methods ***/
25055 static FORCEINLINE HRESULT ISpeechPhraseReplacements_GetTypeInfoCount(ISpeechPhraseReplacements* This,UINT *pctinfo) {
25056     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
25057 }
25058 static FORCEINLINE HRESULT ISpeechPhraseReplacements_GetTypeInfo(ISpeechPhraseReplacements* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
25059     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
25060 }
25061 static FORCEINLINE HRESULT ISpeechPhraseReplacements_GetIDsOfNames(ISpeechPhraseReplacements* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
25062     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
25063 }
25064 static FORCEINLINE HRESULT ISpeechPhraseReplacements_Invoke(ISpeechPhraseReplacements* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
25065     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
25066 }
25067 /*** ISpeechPhraseReplacements methods ***/
25068 static FORCEINLINE HRESULT ISpeechPhraseReplacements_get_Count(ISpeechPhraseReplacements* This,LONG *Count) {
25069     return This->lpVtbl->get_Count(This,Count);
25070 }
25071 static FORCEINLINE HRESULT ISpeechPhraseReplacements_Item(ISpeechPhraseReplacements* This,LONG Index,ISpeechPhraseReplacement **Reps) {
25072     return This->lpVtbl->Item(This,Index,Reps);
25073 }
25074 static FORCEINLINE HRESULT ISpeechPhraseReplacements_get__NewEnum(ISpeechPhraseReplacements* This,IUnknown **EnumVARIANT) {
25075     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
25076 }
25077 #endif
25078 #endif
25079 
25080 #endif
25081 
25082 HRESULT STDMETHODCALLTYPE ISpeechPhraseReplacements_get_Count_Proxy(
25083     ISpeechPhraseReplacements* This,
25084     LONG *Count);
25085 void __RPC_STUB ISpeechPhraseReplacements_get_Count_Stub(
25086     IRpcStubBuffer* This,
25087     IRpcChannelBuffer* pRpcChannelBuffer,
25088     PRPC_MESSAGE pRpcMessage,
25089     DWORD* pdwStubPhase);
25090 HRESULT STDMETHODCALLTYPE ISpeechPhraseReplacements_Item_Proxy(
25091     ISpeechPhraseReplacements* This,
25092     LONG Index,
25093     ISpeechPhraseReplacement **Reps);
25094 void __RPC_STUB ISpeechPhraseReplacements_Item_Stub(
25095     IRpcStubBuffer* This,
25096     IRpcChannelBuffer* pRpcChannelBuffer,
25097     PRPC_MESSAGE pRpcMessage,
25098     DWORD* pdwStubPhase);
25099 HRESULT STDMETHODCALLTYPE ISpeechPhraseReplacements_get__NewEnum_Proxy(
25100     ISpeechPhraseReplacements* This,
25101     IUnknown **EnumVARIANT);
25102 void __RPC_STUB ISpeechPhraseReplacements_get__NewEnum_Stub(
25103     IRpcStubBuffer* This,
25104     IRpcChannelBuffer* pRpcChannelBuffer,
25105     PRPC_MESSAGE pRpcMessage,
25106     DWORD* pdwStubPhase);
25107 
25108 #endif  /* __ISpeechPhraseReplacements_INTERFACE_DEFINED__ */
25109 
25110 /*****************************************************************************
25111  * ISpeechPhraseProperty interface
25112  */
25113 #ifndef __ISpeechPhraseProperty_INTERFACE_DEFINED__
25114 #define __ISpeechPhraseProperty_INTERFACE_DEFINED__
25115 
25116 DEFINE_GUID(IID_ISpeechPhraseProperty, 0xce563d48, 0x961e, 0x4732, 0xa2,0xe1, 0x37,0x8a,0x42,0xb4,0x30,0xbe);
25117 #if defined(__cplusplus) && !defined(CINTERFACE)
25118 MIDL_INTERFACE("ce563d48-961e-4732-a2e1-378a42b430be")
25119 ISpeechPhraseProperty : public IDispatch
25120 {
25121     virtual HRESULT STDMETHODCALLTYPE get_Name(
25122         BSTR *Name) = 0;
25123 
25124     virtual HRESULT STDMETHODCALLTYPE get_Id(
25125         LONG *Id) = 0;
25126 
25127     virtual HRESULT STDMETHODCALLTYPE get_Value(
25128         VARIANT *Value) = 0;
25129 
25130     virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
25131         LONG *FirstElement) = 0;
25132 
25133     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
25134         LONG *NumberOfElements) = 0;
25135 
25136     virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
25137         float *Confidence) = 0;
25138 
25139     virtual HRESULT STDMETHODCALLTYPE get_Confidence(
25140         SpeechEngineConfidence *Confidence) = 0;
25141 
25142     virtual HRESULT STDMETHODCALLTYPE get_Parent(
25143         ISpeechPhraseProperty **ParentProperty) = 0;
25144 
25145     virtual HRESULT STDMETHODCALLTYPE get_Children(
25146         ISpeechPhraseProperties **Children) = 0;
25147 
25148 };
25149 #ifdef __CRT_UUID_DECL
25150 __CRT_UUID_DECL(ISpeechPhraseProperty, 0xce563d48, 0x961e, 0x4732, 0xa2,0xe1, 0x37,0x8a,0x42,0xb4,0x30,0xbe)
25151 #endif
25152 #else
25153 typedef struct ISpeechPhrasePropertyVtbl {
25154     BEGIN_INTERFACE
25155 
25156     /*** IUnknown methods ***/
25157     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25158         ISpeechPhraseProperty* This,
25159         REFIID riid,
25160         void **ppvObject);
25161 
25162     ULONG (STDMETHODCALLTYPE *AddRef)(
25163         ISpeechPhraseProperty* This);
25164 
25165     ULONG (STDMETHODCALLTYPE *Release)(
25166         ISpeechPhraseProperty* This);
25167 
25168     /*** IDispatch methods ***/
25169     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
25170         ISpeechPhraseProperty* This,
25171         UINT *pctinfo);
25172 
25173     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
25174         ISpeechPhraseProperty* This,
25175         UINT iTInfo,
25176         LCID lcid,
25177         ITypeInfo **ppTInfo);
25178 
25179     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
25180         ISpeechPhraseProperty* This,
25181         REFIID riid,
25182         LPOLESTR *rgszNames,
25183         UINT cNames,
25184         LCID lcid,
25185         DISPID *rgDispId);
25186 
25187     HRESULT (STDMETHODCALLTYPE *Invoke)(
25188         ISpeechPhraseProperty* This,
25189         DISPID dispIdMember,
25190         REFIID riid,
25191         LCID lcid,
25192         WORD wFlags,
25193         DISPPARAMS *pDispParams,
25194         VARIANT *pVarResult,
25195         EXCEPINFO *pExcepInfo,
25196         UINT *puArgErr);
25197 
25198     /*** ISpeechPhraseProperty methods ***/
25199     HRESULT (STDMETHODCALLTYPE *get_Name)(
25200         ISpeechPhraseProperty* This,
25201         BSTR *Name);
25202 
25203     HRESULT (STDMETHODCALLTYPE *get_Id)(
25204         ISpeechPhraseProperty* This,
25205         LONG *Id);
25206 
25207     HRESULT (STDMETHODCALLTYPE *get_Value)(
25208         ISpeechPhraseProperty* This,
25209         VARIANT *Value);
25210 
25211     HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
25212         ISpeechPhraseProperty* This,
25213         LONG *FirstElement);
25214 
25215     HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
25216         ISpeechPhraseProperty* This,
25217         LONG *NumberOfElements);
25218 
25219     HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
25220         ISpeechPhraseProperty* This,
25221         float *Confidence);
25222 
25223     HRESULT (STDMETHODCALLTYPE *get_Confidence)(
25224         ISpeechPhraseProperty* This,
25225         SpeechEngineConfidence *Confidence);
25226 
25227     HRESULT (STDMETHODCALLTYPE *get_Parent)(
25228         ISpeechPhraseProperty* This,
25229         ISpeechPhraseProperty **ParentProperty);
25230 
25231     HRESULT (STDMETHODCALLTYPE *get_Children)(
25232         ISpeechPhraseProperty* This,
25233         ISpeechPhraseProperties **Children);
25234 
25235     END_INTERFACE
25236 } ISpeechPhrasePropertyVtbl;
25237 interface ISpeechPhraseProperty {
25238     CONST_VTBL ISpeechPhrasePropertyVtbl* lpVtbl;
25239 };
25240 
25241 #ifdef COBJMACROS
25242 #ifndef WIDL_C_INLINE_WRAPPERS
25243 /*** IUnknown methods ***/
25244 #define ISpeechPhraseProperty_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25245 #define ISpeechPhraseProperty_AddRef(This) (This)->lpVtbl->AddRef(This)
25246 #define ISpeechPhraseProperty_Release(This) (This)->lpVtbl->Release(This)
25247 /*** IDispatch methods ***/
25248 #define ISpeechPhraseProperty_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
25249 #define ISpeechPhraseProperty_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
25250 #define ISpeechPhraseProperty_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
25251 #define ISpeechPhraseProperty_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
25252 /*** ISpeechPhraseProperty methods ***/
25253 #define ISpeechPhraseProperty_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
25254 #define ISpeechPhraseProperty_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
25255 #define ISpeechPhraseProperty_get_Value(This,Value) (This)->lpVtbl->get_Value(This,Value)
25256 #define ISpeechPhraseProperty_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
25257 #define ISpeechPhraseProperty_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
25258 #define ISpeechPhraseProperty_get_EngineConfidence(This,Confidence) (This)->lpVtbl->get_EngineConfidence(This,Confidence)
25259 #define ISpeechPhraseProperty_get_Confidence(This,Confidence) (This)->lpVtbl->get_Confidence(This,Confidence)
25260 #define ISpeechPhraseProperty_get_Parent(This,ParentProperty) (This)->lpVtbl->get_Parent(This,ParentProperty)
25261 #define ISpeechPhraseProperty_get_Children(This,Children) (This)->lpVtbl->get_Children(This,Children)
25262 #else
25263 /*** IUnknown methods ***/
25264 static FORCEINLINE HRESULT ISpeechPhraseProperty_QueryInterface(ISpeechPhraseProperty* This,REFIID riid,void **ppvObject) {
25265     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25266 }
25267 static FORCEINLINE ULONG ISpeechPhraseProperty_AddRef(ISpeechPhraseProperty* This) {
25268     return This->lpVtbl->AddRef(This);
25269 }
25270 static FORCEINLINE ULONG ISpeechPhraseProperty_Release(ISpeechPhraseProperty* This) {
25271     return This->lpVtbl->Release(This);
25272 }
25273 /*** IDispatch methods ***/
25274 static FORCEINLINE HRESULT ISpeechPhraseProperty_GetTypeInfoCount(ISpeechPhraseProperty* This,UINT *pctinfo) {
25275     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
25276 }
25277 static FORCEINLINE HRESULT ISpeechPhraseProperty_GetTypeInfo(ISpeechPhraseProperty* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
25278     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
25279 }
25280 static FORCEINLINE HRESULT ISpeechPhraseProperty_GetIDsOfNames(ISpeechPhraseProperty* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
25281     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
25282 }
25283 static FORCEINLINE HRESULT ISpeechPhraseProperty_Invoke(ISpeechPhraseProperty* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
25284     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
25285 }
25286 /*** ISpeechPhraseProperty methods ***/
25287 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Name(ISpeechPhraseProperty* This,BSTR *Name) {
25288     return This->lpVtbl->get_Name(This,Name);
25289 }
25290 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Id(ISpeechPhraseProperty* This,LONG *Id) {
25291     return This->lpVtbl->get_Id(This,Id);
25292 }
25293 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Value(ISpeechPhraseProperty* This,VARIANT *Value) {
25294     return This->lpVtbl->get_Value(This,Value);
25295 }
25296 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_FirstElement(ISpeechPhraseProperty* This,LONG *FirstElement) {
25297     return This->lpVtbl->get_FirstElement(This,FirstElement);
25298 }
25299 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_NumberOfElements(ISpeechPhraseProperty* This,LONG *NumberOfElements) {
25300     return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
25301 }
25302 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_EngineConfidence(ISpeechPhraseProperty* This,float *Confidence) {
25303     return This->lpVtbl->get_EngineConfidence(This,Confidence);
25304 }
25305 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Confidence(ISpeechPhraseProperty* This,SpeechEngineConfidence *Confidence) {
25306     return This->lpVtbl->get_Confidence(This,Confidence);
25307 }
25308 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Parent(ISpeechPhraseProperty* This,ISpeechPhraseProperty **ParentProperty) {
25309     return This->lpVtbl->get_Parent(This,ParentProperty);
25310 }
25311 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Children(ISpeechPhraseProperty* This,ISpeechPhraseProperties **Children) {
25312     return This->lpVtbl->get_Children(This,Children);
25313 }
25314 #endif
25315 #endif
25316 
25317 #endif
25318 
25319 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_Name_Proxy(
25320     ISpeechPhraseProperty* This,
25321     BSTR *Name);
25322 void __RPC_STUB ISpeechPhraseProperty_get_Name_Stub(
25323     IRpcStubBuffer* This,
25324     IRpcChannelBuffer* pRpcChannelBuffer,
25325     PRPC_MESSAGE pRpcMessage,
25326     DWORD* pdwStubPhase);
25327 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_Id_Proxy(
25328     ISpeechPhraseProperty* This,
25329     LONG *Id);
25330 void __RPC_STUB ISpeechPhraseProperty_get_Id_Stub(
25331     IRpcStubBuffer* This,
25332     IRpcChannelBuffer* pRpcChannelBuffer,
25333     PRPC_MESSAGE pRpcMessage,
25334     DWORD* pdwStubPhase);
25335 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_Value_Proxy(
25336     ISpeechPhraseProperty* This,
25337     VARIANT *Value);
25338 void __RPC_STUB ISpeechPhraseProperty_get_Value_Stub(
25339     IRpcStubBuffer* This,
25340     IRpcChannelBuffer* pRpcChannelBuffer,
25341     PRPC_MESSAGE pRpcMessage,
25342     DWORD* pdwStubPhase);
25343 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_FirstElement_Proxy(
25344     ISpeechPhraseProperty* This,
25345     LONG *FirstElement);
25346 void __RPC_STUB ISpeechPhraseProperty_get_FirstElement_Stub(
25347     IRpcStubBuffer* This,
25348     IRpcChannelBuffer* pRpcChannelBuffer,
25349     PRPC_MESSAGE pRpcMessage,
25350     DWORD* pdwStubPhase);
25351 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_NumberOfElements_Proxy(
25352     ISpeechPhraseProperty* This,
25353     LONG *NumberOfElements);
25354 void __RPC_STUB ISpeechPhraseProperty_get_NumberOfElements_Stub(
25355     IRpcStubBuffer* This,
25356     IRpcChannelBuffer* pRpcChannelBuffer,
25357     PRPC_MESSAGE pRpcMessage,
25358     DWORD* pdwStubPhase);
25359 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_EngineConfidence_Proxy(
25360     ISpeechPhraseProperty* This,
25361     float *Confidence);
25362 void __RPC_STUB ISpeechPhraseProperty_get_EngineConfidence_Stub(
25363     IRpcStubBuffer* This,
25364     IRpcChannelBuffer* pRpcChannelBuffer,
25365     PRPC_MESSAGE pRpcMessage,
25366     DWORD* pdwStubPhase);
25367 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_Confidence_Proxy(
25368     ISpeechPhraseProperty* This,
25369     SpeechEngineConfidence *Confidence);
25370 void __RPC_STUB ISpeechPhraseProperty_get_Confidence_Stub(
25371     IRpcStubBuffer* This,
25372     IRpcChannelBuffer* pRpcChannelBuffer,
25373     PRPC_MESSAGE pRpcMessage,
25374     DWORD* pdwStubPhase);
25375 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_Parent_Proxy(
25376     ISpeechPhraseProperty* This,
25377     ISpeechPhraseProperty **ParentProperty);
25378 void __RPC_STUB ISpeechPhraseProperty_get_Parent_Stub(
25379     IRpcStubBuffer* This,
25380     IRpcChannelBuffer* pRpcChannelBuffer,
25381     PRPC_MESSAGE pRpcMessage,
25382     DWORD* pdwStubPhase);
25383 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_Children_Proxy(
25384     ISpeechPhraseProperty* This,
25385     ISpeechPhraseProperties **Children);
25386 void __RPC_STUB ISpeechPhraseProperty_get_Children_Stub(
25387     IRpcStubBuffer* This,
25388     IRpcChannelBuffer* pRpcChannelBuffer,
25389     PRPC_MESSAGE pRpcMessage,
25390     DWORD* pdwStubPhase);
25391 
25392 #endif  /* __ISpeechPhraseProperty_INTERFACE_DEFINED__ */
25393 
25394 /*****************************************************************************
25395  * ISpeechPhraseProperties interface
25396  */
25397 #ifndef __ISpeechPhraseProperties_INTERFACE_DEFINED__
25398 #define __ISpeechPhraseProperties_INTERFACE_DEFINED__
25399 
25400 DEFINE_GUID(IID_ISpeechPhraseProperties, 0x08166b47, 0x102e, 0x4b23, 0xa5,0x99, 0xbd,0xb9,0x8d,0xbf,0xd1,0xf4);
25401 #if defined(__cplusplus) && !defined(CINTERFACE)
25402 MIDL_INTERFACE("08166b47-102e-4b23-a599-bdb98dbfd1f4")
25403 ISpeechPhraseProperties : public IDispatch
25404 {
25405     virtual HRESULT STDMETHODCALLTYPE get_Count(
25406         LONG *Count) = 0;
25407 
25408     virtual HRESULT STDMETHODCALLTYPE Item(
25409         LONG Index,
25410         ISpeechPhraseProperty **Property) = 0;
25411 
25412     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
25413         IUnknown **EnumVARIANT) = 0;
25414 
25415 };
25416 #ifdef __CRT_UUID_DECL
25417 __CRT_UUID_DECL(ISpeechPhraseProperties, 0x08166b47, 0x102e, 0x4b23, 0xa5,0x99, 0xbd,0xb9,0x8d,0xbf,0xd1,0xf4)
25418 #endif
25419 #else
25420 typedef struct ISpeechPhrasePropertiesVtbl {
25421     BEGIN_INTERFACE
25422 
25423     /*** IUnknown methods ***/
25424     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25425         ISpeechPhraseProperties* This,
25426         REFIID riid,
25427         void **ppvObject);
25428 
25429     ULONG (STDMETHODCALLTYPE *AddRef)(
25430         ISpeechPhraseProperties* This);
25431 
25432     ULONG (STDMETHODCALLTYPE *Release)(
25433         ISpeechPhraseProperties* This);
25434 
25435     /*** IDispatch methods ***/
25436     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
25437         ISpeechPhraseProperties* This,
25438         UINT *pctinfo);
25439 
25440     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
25441         ISpeechPhraseProperties* This,
25442         UINT iTInfo,
25443         LCID lcid,
25444         ITypeInfo **ppTInfo);
25445 
25446     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
25447         ISpeechPhraseProperties* This,
25448         REFIID riid,
25449         LPOLESTR *rgszNames,
25450         UINT cNames,
25451         LCID lcid,
25452         DISPID *rgDispId);
25453 
25454     HRESULT (STDMETHODCALLTYPE *Invoke)(
25455         ISpeechPhraseProperties* This,
25456         DISPID dispIdMember,
25457         REFIID riid,
25458         LCID lcid,
25459         WORD wFlags,
25460         DISPPARAMS *pDispParams,
25461         VARIANT *pVarResult,
25462         EXCEPINFO *pExcepInfo,
25463         UINT *puArgErr);
25464 
25465     /*** ISpeechPhraseProperties methods ***/
25466     HRESULT (STDMETHODCALLTYPE *get_Count)(
25467         ISpeechPhraseProperties* This,
25468         LONG *Count);
25469 
25470     HRESULT (STDMETHODCALLTYPE *Item)(
25471         ISpeechPhraseProperties* This,
25472         LONG Index,
25473         ISpeechPhraseProperty **Property);
25474 
25475     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
25476         ISpeechPhraseProperties* This,
25477         IUnknown **EnumVARIANT);
25478 
25479     END_INTERFACE
25480 } ISpeechPhrasePropertiesVtbl;
25481 interface ISpeechPhraseProperties {
25482     CONST_VTBL ISpeechPhrasePropertiesVtbl* lpVtbl;
25483 };
25484 
25485 #ifdef COBJMACROS
25486 #ifndef WIDL_C_INLINE_WRAPPERS
25487 /*** IUnknown methods ***/
25488 #define ISpeechPhraseProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25489 #define ISpeechPhraseProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
25490 #define ISpeechPhraseProperties_Release(This) (This)->lpVtbl->Release(This)
25491 /*** IDispatch methods ***/
25492 #define ISpeechPhraseProperties_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
25493 #define ISpeechPhraseProperties_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
25494 #define ISpeechPhraseProperties_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
25495 #define ISpeechPhraseProperties_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
25496 /*** ISpeechPhraseProperties methods ***/
25497 #define ISpeechPhraseProperties_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
25498 #define ISpeechPhraseProperties_Item(This,Index,Property) (This)->lpVtbl->Item(This,Index,Property)
25499 #define ISpeechPhraseProperties_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
25500 #else
25501 /*** IUnknown methods ***/
25502 static FORCEINLINE HRESULT ISpeechPhraseProperties_QueryInterface(ISpeechPhraseProperties* This,REFIID riid,void **ppvObject) {
25503     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25504 }
25505 static FORCEINLINE ULONG ISpeechPhraseProperties_AddRef(ISpeechPhraseProperties* This) {
25506     return This->lpVtbl->AddRef(This);
25507 }
25508 static FORCEINLINE ULONG ISpeechPhraseProperties_Release(ISpeechPhraseProperties* This) {
25509     return This->lpVtbl->Release(This);
25510 }
25511 /*** IDispatch methods ***/
25512 static FORCEINLINE HRESULT ISpeechPhraseProperties_GetTypeInfoCount(ISpeechPhraseProperties* This,UINT *pctinfo) {
25513     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
25514 }
25515 static FORCEINLINE HRESULT ISpeechPhraseProperties_GetTypeInfo(ISpeechPhraseProperties* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
25516     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
25517 }
25518 static FORCEINLINE HRESULT ISpeechPhraseProperties_GetIDsOfNames(ISpeechPhraseProperties* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
25519     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
25520 }
25521 static FORCEINLINE HRESULT ISpeechPhraseProperties_Invoke(ISpeechPhraseProperties* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
25522     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
25523 }
25524 /*** ISpeechPhraseProperties methods ***/
25525 static FORCEINLINE HRESULT ISpeechPhraseProperties_get_Count(ISpeechPhraseProperties* This,LONG *Count) {
25526     return This->lpVtbl->get_Count(This,Count);
25527 }
25528 static FORCEINLINE HRESULT ISpeechPhraseProperties_Item(ISpeechPhraseProperties* This,LONG Index,ISpeechPhraseProperty **Property) {
25529     return This->lpVtbl->Item(This,Index,Property);
25530 }
25531 static FORCEINLINE HRESULT ISpeechPhraseProperties_get__NewEnum(ISpeechPhraseProperties* This,IUnknown **EnumVARIANT) {
25532     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
25533 }
25534 #endif
25535 #endif
25536 
25537 #endif
25538 
25539 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperties_get_Count_Proxy(
25540     ISpeechPhraseProperties* This,
25541     LONG *Count);
25542 void __RPC_STUB ISpeechPhraseProperties_get_Count_Stub(
25543     IRpcStubBuffer* This,
25544     IRpcChannelBuffer* pRpcChannelBuffer,
25545     PRPC_MESSAGE pRpcMessage,
25546     DWORD* pdwStubPhase);
25547 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperties_Item_Proxy(
25548     ISpeechPhraseProperties* This,
25549     LONG Index,
25550     ISpeechPhraseProperty **Property);
25551 void __RPC_STUB ISpeechPhraseProperties_Item_Stub(
25552     IRpcStubBuffer* This,
25553     IRpcChannelBuffer* pRpcChannelBuffer,
25554     PRPC_MESSAGE pRpcMessage,
25555     DWORD* pdwStubPhase);
25556 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperties_get__NewEnum_Proxy(
25557     ISpeechPhraseProperties* This,
25558     IUnknown **EnumVARIANT);
25559 void __RPC_STUB ISpeechPhraseProperties_get__NewEnum_Stub(
25560     IRpcStubBuffer* This,
25561     IRpcChannelBuffer* pRpcChannelBuffer,
25562     PRPC_MESSAGE pRpcMessage,
25563     DWORD* pdwStubPhase);
25564 
25565 #endif  /* __ISpeechPhraseProperties_INTERFACE_DEFINED__ */
25566 
25567 /*****************************************************************************
25568  * ISpeechPhraseRule interface
25569  */
25570 #ifndef __ISpeechPhraseRule_INTERFACE_DEFINED__
25571 #define __ISpeechPhraseRule_INTERFACE_DEFINED__
25572 
25573 DEFINE_GUID(IID_ISpeechPhraseRule, 0xa7bfe112, 0xa4a0, 0x48d9, 0xb6,0x02, 0xc3,0x13,0x84,0x3f,0x69,0x64);
25574 #if defined(__cplusplus) && !defined(CINTERFACE)
25575 MIDL_INTERFACE("a7bfe112-a4a0-48d9-b602-c313843f6964")
25576 ISpeechPhraseRule : public IDispatch
25577 {
25578     virtual HRESULT STDMETHODCALLTYPE get_Name(
25579         BSTR *Name) = 0;
25580 
25581     virtual HRESULT STDMETHODCALLTYPE get_Id(
25582         LONG *Id) = 0;
25583 
25584     virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
25585         LONG *FirstElement) = 0;
25586 
25587     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
25588         LONG *NumberOfElements) = 0;
25589 
25590     virtual HRESULT STDMETHODCALLTYPE get_Parent(
25591         ISpeechPhraseRule **Parent) = 0;
25592 
25593     virtual HRESULT STDMETHODCALLTYPE get_Children(
25594         ISpeechPhraseRules **Children) = 0;
25595 
25596     virtual HRESULT STDMETHODCALLTYPE get_Confidence(
25597         SpeechEngineConfidence *ActualConfidence) = 0;
25598 
25599     virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
25600         float *EngineConfidence) = 0;
25601 
25602 };
25603 #ifdef __CRT_UUID_DECL
25604 __CRT_UUID_DECL(ISpeechPhraseRule, 0xa7bfe112, 0xa4a0, 0x48d9, 0xb6,0x02, 0xc3,0x13,0x84,0x3f,0x69,0x64)
25605 #endif
25606 #else
25607 typedef struct ISpeechPhraseRuleVtbl {
25608     BEGIN_INTERFACE
25609 
25610     /*** IUnknown methods ***/
25611     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25612         ISpeechPhraseRule* This,
25613         REFIID riid,
25614         void **ppvObject);
25615 
25616     ULONG (STDMETHODCALLTYPE *AddRef)(
25617         ISpeechPhraseRule* This);
25618 
25619     ULONG (STDMETHODCALLTYPE *Release)(
25620         ISpeechPhraseRule* This);
25621 
25622     /*** IDispatch methods ***/
25623     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
25624         ISpeechPhraseRule* This,
25625         UINT *pctinfo);
25626 
25627     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
25628         ISpeechPhraseRule* This,
25629         UINT iTInfo,
25630         LCID lcid,
25631         ITypeInfo **ppTInfo);
25632 
25633     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
25634         ISpeechPhraseRule* This,
25635         REFIID riid,
25636         LPOLESTR *rgszNames,
25637         UINT cNames,
25638         LCID lcid,
25639         DISPID *rgDispId);
25640 
25641     HRESULT (STDMETHODCALLTYPE *Invoke)(
25642         ISpeechPhraseRule* This,
25643         DISPID dispIdMember,
25644         REFIID riid,
25645         LCID lcid,
25646         WORD wFlags,
25647         DISPPARAMS *pDispParams,
25648         VARIANT *pVarResult,
25649         EXCEPINFO *pExcepInfo,
25650         UINT *puArgErr);
25651 
25652     /*** ISpeechPhraseRule methods ***/
25653     HRESULT (STDMETHODCALLTYPE *get_Name)(
25654         ISpeechPhraseRule* This,
25655         BSTR *Name);
25656 
25657     HRESULT (STDMETHODCALLTYPE *get_Id)(
25658         ISpeechPhraseRule* This,
25659         LONG *Id);
25660 
25661     HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
25662         ISpeechPhraseRule* This,
25663         LONG *FirstElement);
25664 
25665     HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
25666         ISpeechPhraseRule* This,
25667         LONG *NumberOfElements);
25668 
25669     HRESULT (STDMETHODCALLTYPE *get_Parent)(
25670         ISpeechPhraseRule* This,
25671         ISpeechPhraseRule **Parent);
25672 
25673     HRESULT (STDMETHODCALLTYPE *get_Children)(
25674         ISpeechPhraseRule* This,
25675         ISpeechPhraseRules **Children);
25676 
25677     HRESULT (STDMETHODCALLTYPE *get_Confidence)(
25678         ISpeechPhraseRule* This,
25679         SpeechEngineConfidence *ActualConfidence);
25680 
25681     HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
25682         ISpeechPhraseRule* This,
25683         float *EngineConfidence);
25684 
25685     END_INTERFACE
25686 } ISpeechPhraseRuleVtbl;
25687 interface ISpeechPhraseRule {
25688     CONST_VTBL ISpeechPhraseRuleVtbl* lpVtbl;
25689 };
25690 
25691 #ifdef COBJMACROS
25692 #ifndef WIDL_C_INLINE_WRAPPERS
25693 /*** IUnknown methods ***/
25694 #define ISpeechPhraseRule_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25695 #define ISpeechPhraseRule_AddRef(This) (This)->lpVtbl->AddRef(This)
25696 #define ISpeechPhraseRule_Release(This) (This)->lpVtbl->Release(This)
25697 /*** IDispatch methods ***/
25698 #define ISpeechPhraseRule_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
25699 #define ISpeechPhraseRule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
25700 #define ISpeechPhraseRule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
25701 #define ISpeechPhraseRule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
25702 /*** ISpeechPhraseRule methods ***/
25703 #define ISpeechPhraseRule_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
25704 #define ISpeechPhraseRule_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
25705 #define ISpeechPhraseRule_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
25706 #define ISpeechPhraseRule_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
25707 #define ISpeechPhraseRule_get_Parent(This,Parent) (This)->lpVtbl->get_Parent(This,Parent)
25708 #define ISpeechPhraseRule_get_Children(This,Children) (This)->lpVtbl->get_Children(This,Children)
25709 #define ISpeechPhraseRule_get_Confidence(This,ActualConfidence) (This)->lpVtbl->get_Confidence(This,ActualConfidence)
25710 #define ISpeechPhraseRule_get_EngineConfidence(This,EngineConfidence) (This)->lpVtbl->get_EngineConfidence(This,EngineConfidence)
25711 #else
25712 /*** IUnknown methods ***/
25713 static FORCEINLINE HRESULT ISpeechPhraseRule_QueryInterface(ISpeechPhraseRule* This,REFIID riid,void **ppvObject) {
25714     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25715 }
25716 static FORCEINLINE ULONG ISpeechPhraseRule_AddRef(ISpeechPhraseRule* This) {
25717     return This->lpVtbl->AddRef(This);
25718 }
25719 static FORCEINLINE ULONG ISpeechPhraseRule_Release(ISpeechPhraseRule* This) {
25720     return This->lpVtbl->Release(This);
25721 }
25722 /*** IDispatch methods ***/
25723 static FORCEINLINE HRESULT ISpeechPhraseRule_GetTypeInfoCount(ISpeechPhraseRule* This,UINT *pctinfo) {
25724     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
25725 }
25726 static FORCEINLINE HRESULT ISpeechPhraseRule_GetTypeInfo(ISpeechPhraseRule* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
25727     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
25728 }
25729 static FORCEINLINE HRESULT ISpeechPhraseRule_GetIDsOfNames(ISpeechPhraseRule* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
25730     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
25731 }
25732 static FORCEINLINE HRESULT ISpeechPhraseRule_Invoke(ISpeechPhraseRule* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
25733     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
25734 }
25735 /*** ISpeechPhraseRule methods ***/
25736 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Name(ISpeechPhraseRule* This,BSTR *Name) {
25737     return This->lpVtbl->get_Name(This,Name);
25738 }
25739 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Id(ISpeechPhraseRule* This,LONG *Id) {
25740     return This->lpVtbl->get_Id(This,Id);
25741 }
25742 static FORCEINLINE HRESULT ISpeechPhraseRule_get_FirstElement(ISpeechPhraseRule* This,LONG *FirstElement) {
25743     return This->lpVtbl->get_FirstElement(This,FirstElement);
25744 }
25745 static FORCEINLINE HRESULT ISpeechPhraseRule_get_NumberOfElements(ISpeechPhraseRule* This,LONG *NumberOfElements) {
25746     return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
25747 }
25748 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Parent(ISpeechPhraseRule* This,ISpeechPhraseRule **Parent) {
25749     return This->lpVtbl->get_Parent(This,Parent);
25750 }
25751 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Children(ISpeechPhraseRule* This,ISpeechPhraseRules **Children) {
25752     return This->lpVtbl->get_Children(This,Children);
25753 }
25754 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Confidence(ISpeechPhraseRule* This,SpeechEngineConfidence *ActualConfidence) {
25755     return This->lpVtbl->get_Confidence(This,ActualConfidence);
25756 }
25757 static FORCEINLINE HRESULT ISpeechPhraseRule_get_EngineConfidence(ISpeechPhraseRule* This,float *EngineConfidence) {
25758     return This->lpVtbl->get_EngineConfidence(This,EngineConfidence);
25759 }
25760 #endif
25761 #endif
25762 
25763 #endif
25764 
25765 HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_Name_Proxy(
25766     ISpeechPhraseRule* This,
25767     BSTR *Name);
25768 void __RPC_STUB ISpeechPhraseRule_get_Name_Stub(
25769     IRpcStubBuffer* This,
25770     IRpcChannelBuffer* pRpcChannelBuffer,
25771     PRPC_MESSAGE pRpcMessage,
25772     DWORD* pdwStubPhase);
25773 HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_Id_Proxy(
25774     ISpeechPhraseRule* This,
25775     LONG *Id);
25776 void __RPC_STUB ISpeechPhraseRule_get_Id_Stub(
25777     IRpcStubBuffer* This,
25778     IRpcChannelBuffer* pRpcChannelBuffer,
25779     PRPC_MESSAGE pRpcMessage,
25780     DWORD* pdwStubPhase);
25781 HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_FirstElement_Proxy(
25782     ISpeechPhraseRule* This,
25783     LONG *FirstElement);
25784 void __RPC_STUB ISpeechPhraseRule_get_FirstElement_Stub(
25785     IRpcStubBuffer* This,
25786     IRpcChannelBuffer* pRpcChannelBuffer,
25787     PRPC_MESSAGE pRpcMessage,
25788     DWORD* pdwStubPhase);
25789 HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_NumberOfElements_Proxy(
25790     ISpeechPhraseRule* This,
25791     LONG *NumberOfElements);
25792 void __RPC_STUB ISpeechPhraseRule_get_NumberOfElements_Stub(
25793     IRpcStubBuffer* This,
25794     IRpcChannelBuffer* pRpcChannelBuffer,
25795     PRPC_MESSAGE pRpcMessage,
25796     DWORD* pdwStubPhase);
25797 HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_Parent_Proxy(
25798     ISpeechPhraseRule* This,
25799     ISpeechPhraseRule **Parent);
25800 void __RPC_STUB ISpeechPhraseRule_get_Parent_Stub(
25801     IRpcStubBuffer* This,
25802     IRpcChannelBuffer* pRpcChannelBuffer,
25803     PRPC_MESSAGE pRpcMessage,
25804     DWORD* pdwStubPhase);
25805 HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_Children_Proxy(
25806     ISpeechPhraseRule* This,
25807     ISpeechPhraseRules **Children);
25808 void __RPC_STUB ISpeechPhraseRule_get_Children_Stub(
25809     IRpcStubBuffer* This,
25810     IRpcChannelBuffer* pRpcChannelBuffer,
25811     PRPC_MESSAGE pRpcMessage,
25812     DWORD* pdwStubPhase);
25813 HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_Confidence_Proxy(
25814     ISpeechPhraseRule* This,
25815     SpeechEngineConfidence *ActualConfidence);
25816 void __RPC_STUB ISpeechPhraseRule_get_Confidence_Stub(
25817     IRpcStubBuffer* This,
25818     IRpcChannelBuffer* pRpcChannelBuffer,
25819     PRPC_MESSAGE pRpcMessage,
25820     DWORD* pdwStubPhase);
25821 HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_EngineConfidence_Proxy(
25822     ISpeechPhraseRule* This,
25823     float *EngineConfidence);
25824 void __RPC_STUB ISpeechPhraseRule_get_EngineConfidence_Stub(
25825     IRpcStubBuffer* This,
25826     IRpcChannelBuffer* pRpcChannelBuffer,
25827     PRPC_MESSAGE pRpcMessage,
25828     DWORD* pdwStubPhase);
25829 
25830 #endif  /* __ISpeechPhraseRule_INTERFACE_DEFINED__ */
25831 
25832 /*****************************************************************************
25833  * ISpeechPhraseRules interface
25834  */
25835 #ifndef __ISpeechPhraseRules_INTERFACE_DEFINED__
25836 #define __ISpeechPhraseRules_INTERFACE_DEFINED__
25837 
25838 DEFINE_GUID(IID_ISpeechPhraseRules, 0x9047d593, 0x01dd, 0x4b72, 0x81,0xa3, 0xe4,0xa0,0xca,0x69,0xf4,0x07);
25839 #if defined(__cplusplus) && !defined(CINTERFACE)
25840 MIDL_INTERFACE("9047d593-01dd-4b72-81a3-e4a0ca69f407")
25841 ISpeechPhraseRules : public IDispatch
25842 {
25843     virtual HRESULT STDMETHODCALLTYPE get_Count(
25844         LONG *Count) = 0;
25845 
25846     virtual HRESULT STDMETHODCALLTYPE Item(
25847         LONG Index,
25848         ISpeechPhraseRule **Rule) = 0;
25849 
25850     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
25851         IUnknown **EnumVARIANT) = 0;
25852 
25853 };
25854 #ifdef __CRT_UUID_DECL
25855 __CRT_UUID_DECL(ISpeechPhraseRules, 0x9047d593, 0x01dd, 0x4b72, 0x81,0xa3, 0xe4,0xa0,0xca,0x69,0xf4,0x07)
25856 #endif
25857 #else
25858 typedef struct ISpeechPhraseRulesVtbl {
25859     BEGIN_INTERFACE
25860 
25861     /*** IUnknown methods ***/
25862     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25863         ISpeechPhraseRules* This,
25864         REFIID riid,
25865         void **ppvObject);
25866 
25867     ULONG (STDMETHODCALLTYPE *AddRef)(
25868         ISpeechPhraseRules* This);
25869 
25870     ULONG (STDMETHODCALLTYPE *Release)(
25871         ISpeechPhraseRules* This);
25872 
25873     /*** IDispatch methods ***/
25874     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
25875         ISpeechPhraseRules* This,
25876         UINT *pctinfo);
25877 
25878     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
25879         ISpeechPhraseRules* This,
25880         UINT iTInfo,
25881         LCID lcid,
25882         ITypeInfo **ppTInfo);
25883 
25884     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
25885         ISpeechPhraseRules* This,
25886         REFIID riid,
25887         LPOLESTR *rgszNames,
25888         UINT cNames,
25889         LCID lcid,
25890         DISPID *rgDispId);
25891 
25892     HRESULT (STDMETHODCALLTYPE *Invoke)(
25893         ISpeechPhraseRules* This,
25894         DISPID dispIdMember,
25895         REFIID riid,
25896         LCID lcid,
25897         WORD wFlags,
25898         DISPPARAMS *pDispParams,
25899         VARIANT *pVarResult,
25900         EXCEPINFO *pExcepInfo,
25901         UINT *puArgErr);
25902 
25903     /*** ISpeechPhraseRules methods ***/
25904     HRESULT (STDMETHODCALLTYPE *get_Count)(
25905         ISpeechPhraseRules* This,
25906         LONG *Count);
25907 
25908     HRESULT (STDMETHODCALLTYPE *Item)(
25909         ISpeechPhraseRules* This,
25910         LONG Index,
25911         ISpeechPhraseRule **Rule);
25912 
25913     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
25914         ISpeechPhraseRules* This,
25915         IUnknown **EnumVARIANT);
25916 
25917     END_INTERFACE
25918 } ISpeechPhraseRulesVtbl;
25919 interface ISpeechPhraseRules {
25920     CONST_VTBL ISpeechPhraseRulesVtbl* lpVtbl;
25921 };
25922 
25923 #ifdef COBJMACROS
25924 #ifndef WIDL_C_INLINE_WRAPPERS
25925 /*** IUnknown methods ***/
25926 #define ISpeechPhraseRules_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25927 #define ISpeechPhraseRules_AddRef(This) (This)->lpVtbl->AddRef(This)
25928 #define ISpeechPhraseRules_Release(This) (This)->lpVtbl->Release(This)
25929 /*** IDispatch methods ***/
25930 #define ISpeechPhraseRules_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
25931 #define ISpeechPhraseRules_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
25932 #define ISpeechPhraseRules_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
25933 #define ISpeechPhraseRules_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
25934 /*** ISpeechPhraseRules methods ***/
25935 #define ISpeechPhraseRules_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
25936 #define ISpeechPhraseRules_Item(This,Index,Rule) (This)->lpVtbl->Item(This,Index,Rule)
25937 #define ISpeechPhraseRules_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
25938 #else
25939 /*** IUnknown methods ***/
25940 static FORCEINLINE HRESULT ISpeechPhraseRules_QueryInterface(ISpeechPhraseRules* This,REFIID riid,void **ppvObject) {
25941     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25942 }
25943 static FORCEINLINE ULONG ISpeechPhraseRules_AddRef(ISpeechPhraseRules* This) {
25944     return This->lpVtbl->AddRef(This);
25945 }
25946 static FORCEINLINE ULONG ISpeechPhraseRules_Release(ISpeechPhraseRules* This) {
25947     return This->lpVtbl->Release(This);
25948 }
25949 /*** IDispatch methods ***/
25950 static FORCEINLINE HRESULT ISpeechPhraseRules_GetTypeInfoCount(ISpeechPhraseRules* This,UINT *pctinfo) {
25951     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
25952 }
25953 static FORCEINLINE HRESULT ISpeechPhraseRules_GetTypeInfo(ISpeechPhraseRules* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
25954     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
25955 }
25956 static FORCEINLINE HRESULT ISpeechPhraseRules_GetIDsOfNames(ISpeechPhraseRules* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
25957     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
25958 }
25959 static FORCEINLINE HRESULT ISpeechPhraseRules_Invoke(ISpeechPhraseRules* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
25960     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
25961 }
25962 /*** ISpeechPhraseRules methods ***/
25963 static FORCEINLINE HRESULT ISpeechPhraseRules_get_Count(ISpeechPhraseRules* This,LONG *Count) {
25964     return This->lpVtbl->get_Count(This,Count);
25965 }
25966 static FORCEINLINE HRESULT ISpeechPhraseRules_Item(ISpeechPhraseRules* This,LONG Index,ISpeechPhraseRule **Rule) {
25967     return This->lpVtbl->Item(This,Index,Rule);
25968 }
25969 static FORCEINLINE HRESULT ISpeechPhraseRules_get__NewEnum(ISpeechPhraseRules* This,IUnknown **EnumVARIANT) {
25970     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
25971 }
25972 #endif
25973 #endif
25974 
25975 #endif
25976 
25977 HRESULT STDMETHODCALLTYPE ISpeechPhraseRules_get_Count_Proxy(
25978     ISpeechPhraseRules* This,
25979     LONG *Count);
25980 void __RPC_STUB ISpeechPhraseRules_get_Count_Stub(
25981     IRpcStubBuffer* This,
25982     IRpcChannelBuffer* pRpcChannelBuffer,
25983     PRPC_MESSAGE pRpcMessage,
25984     DWORD* pdwStubPhase);
25985 HRESULT STDMETHODCALLTYPE ISpeechPhraseRules_Item_Proxy(
25986     ISpeechPhraseRules* This,
25987     LONG Index,
25988     ISpeechPhraseRule **Rule);
25989 void __RPC_STUB ISpeechPhraseRules_Item_Stub(
25990     IRpcStubBuffer* This,
25991     IRpcChannelBuffer* pRpcChannelBuffer,
25992     PRPC_MESSAGE pRpcMessage,
25993     DWORD* pdwStubPhase);
25994 HRESULT STDMETHODCALLTYPE ISpeechPhraseRules_get__NewEnum_Proxy(
25995     ISpeechPhraseRules* This,
25996     IUnknown **EnumVARIANT);
25997 void __RPC_STUB ISpeechPhraseRules_get__NewEnum_Stub(
25998     IRpcStubBuffer* This,
25999     IRpcChannelBuffer* pRpcChannelBuffer,
26000     PRPC_MESSAGE pRpcMessage,
26001     DWORD* pdwStubPhase);
26002 
26003 #endif  /* __ISpeechPhraseRules_INTERFACE_DEFINED__ */
26004 
26005 /*****************************************************************************
26006  * ISpeechLexiconWords interface
26007  */
26008 #ifndef __ISpeechLexiconWords_INTERFACE_DEFINED__
26009 #define __ISpeechLexiconWords_INTERFACE_DEFINED__
26010 
26011 DEFINE_GUID(IID_ISpeechLexiconWords, 0x8d199862, 0x415e, 0x47d5, 0xac,0x4f, 0xfa,0xa6,0x08,0xb4,0x24,0xe6);
26012 #if defined(__cplusplus) && !defined(CINTERFACE)
26013 MIDL_INTERFACE("8d199862-415e-47d5-ac4f-faa608b424e6")
26014 ISpeechLexiconWords : public IDispatch
26015 {
26016     virtual HRESULT STDMETHODCALLTYPE get_Count(
26017         LONG *Count) = 0;
26018 
26019     virtual HRESULT STDMETHODCALLTYPE Item(
26020         LONG Index,
26021         ISpeechLexiconWord **Word) = 0;
26022 
26023     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
26024         IUnknown **EnumVARIANT) = 0;
26025 
26026 };
26027 #ifdef __CRT_UUID_DECL
26028 __CRT_UUID_DECL(ISpeechLexiconWords, 0x8d199862, 0x415e, 0x47d5, 0xac,0x4f, 0xfa,0xa6,0x08,0xb4,0x24,0xe6)
26029 #endif
26030 #else
26031 typedef struct ISpeechLexiconWordsVtbl {
26032     BEGIN_INTERFACE
26033 
26034     /*** IUnknown methods ***/
26035     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
26036         ISpeechLexiconWords* This,
26037         REFIID riid,
26038         void **ppvObject);
26039 
26040     ULONG (STDMETHODCALLTYPE *AddRef)(
26041         ISpeechLexiconWords* This);
26042 
26043     ULONG (STDMETHODCALLTYPE *Release)(
26044         ISpeechLexiconWords* This);
26045 
26046     /*** IDispatch methods ***/
26047     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
26048         ISpeechLexiconWords* This,
26049         UINT *pctinfo);
26050 
26051     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
26052         ISpeechLexiconWords* This,
26053         UINT iTInfo,
26054         LCID lcid,
26055         ITypeInfo **ppTInfo);
26056 
26057     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
26058         ISpeechLexiconWords* This,
26059         REFIID riid,
26060         LPOLESTR *rgszNames,
26061         UINT cNames,
26062         LCID lcid,
26063         DISPID *rgDispId);
26064 
26065     HRESULT (STDMETHODCALLTYPE *Invoke)(
26066         ISpeechLexiconWords* This,
26067         DISPID dispIdMember,
26068         REFIID riid,
26069         LCID lcid,
26070         WORD wFlags,
26071         DISPPARAMS *pDispParams,
26072         VARIANT *pVarResult,
26073         EXCEPINFO *pExcepInfo,
26074         UINT *puArgErr);
26075 
26076     /*** ISpeechLexiconWords methods ***/
26077     HRESULT (STDMETHODCALLTYPE *get_Count)(
26078         ISpeechLexiconWords* This,
26079         LONG *Count);
26080 
26081     HRESULT (STDMETHODCALLTYPE *Item)(
26082         ISpeechLexiconWords* This,
26083         LONG Index,
26084         ISpeechLexiconWord **Word);
26085 
26086     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
26087         ISpeechLexiconWords* This,
26088         IUnknown **EnumVARIANT);
26089 
26090     END_INTERFACE
26091 } ISpeechLexiconWordsVtbl;
26092 interface ISpeechLexiconWords {
26093     CONST_VTBL ISpeechLexiconWordsVtbl* lpVtbl;
26094 };
26095 
26096 #ifdef COBJMACROS
26097 #ifndef WIDL_C_INLINE_WRAPPERS
26098 /*** IUnknown methods ***/
26099 #define ISpeechLexiconWords_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
26100 #define ISpeechLexiconWords_AddRef(This) (This)->lpVtbl->AddRef(This)
26101 #define ISpeechLexiconWords_Release(This) (This)->lpVtbl->Release(This)
26102 /*** IDispatch methods ***/
26103 #define ISpeechLexiconWords_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
26104 #define ISpeechLexiconWords_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
26105 #define ISpeechLexiconWords_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
26106 #define ISpeechLexiconWords_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
26107 /*** ISpeechLexiconWords methods ***/
26108 #define ISpeechLexiconWords_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
26109 #define ISpeechLexiconWords_Item(This,Index,Word) (This)->lpVtbl->Item(This,Index,Word)
26110 #define ISpeechLexiconWords_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
26111 #else
26112 /*** IUnknown methods ***/
26113 static FORCEINLINE HRESULT ISpeechLexiconWords_QueryInterface(ISpeechLexiconWords* This,REFIID riid,void **ppvObject) {
26114     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
26115 }
26116 static FORCEINLINE ULONG ISpeechLexiconWords_AddRef(ISpeechLexiconWords* This) {
26117     return This->lpVtbl->AddRef(This);
26118 }
26119 static FORCEINLINE ULONG ISpeechLexiconWords_Release(ISpeechLexiconWords* This) {
26120     return This->lpVtbl->Release(This);
26121 }
26122 /*** IDispatch methods ***/
26123 static FORCEINLINE HRESULT ISpeechLexiconWords_GetTypeInfoCount(ISpeechLexiconWords* This,UINT *pctinfo) {
26124     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
26125 }
26126 static FORCEINLINE HRESULT ISpeechLexiconWords_GetTypeInfo(ISpeechLexiconWords* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
26127     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
26128 }
26129 static FORCEINLINE HRESULT ISpeechLexiconWords_GetIDsOfNames(ISpeechLexiconWords* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
26130     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
26131 }
26132 static FORCEINLINE HRESULT ISpeechLexiconWords_Invoke(ISpeechLexiconWords* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
26133     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
26134 }
26135 /*** ISpeechLexiconWords methods ***/
26136 static FORCEINLINE HRESULT ISpeechLexiconWords_get_Count(ISpeechLexiconWords* This,LONG *Count) {
26137     return This->lpVtbl->get_Count(This,Count);
26138 }
26139 static FORCEINLINE HRESULT ISpeechLexiconWords_Item(ISpeechLexiconWords* This,LONG Index,ISpeechLexiconWord **Word) {
26140     return This->lpVtbl->Item(This,Index,Word);
26141 }
26142 static FORCEINLINE HRESULT ISpeechLexiconWords_get__NewEnum(ISpeechLexiconWords* This,IUnknown **EnumVARIANT) {
26143     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
26144 }
26145 #endif
26146 #endif
26147 
26148 #endif
26149 
26150 HRESULT STDMETHODCALLTYPE ISpeechLexiconWords_get_Count_Proxy(
26151     ISpeechLexiconWords* This,
26152     LONG *Count);
26153 void __RPC_STUB ISpeechLexiconWords_get_Count_Stub(
26154     IRpcStubBuffer* This,
26155     IRpcChannelBuffer* pRpcChannelBuffer,
26156     PRPC_MESSAGE pRpcMessage,
26157     DWORD* pdwStubPhase);
26158 HRESULT STDMETHODCALLTYPE ISpeechLexiconWords_Item_Proxy(
26159     ISpeechLexiconWords* This,
26160     LONG Index,
26161     ISpeechLexiconWord **Word);
26162 void __RPC_STUB ISpeechLexiconWords_Item_Stub(
26163     IRpcStubBuffer* This,
26164     IRpcChannelBuffer* pRpcChannelBuffer,
26165     PRPC_MESSAGE pRpcMessage,
26166     DWORD* pdwStubPhase);
26167 HRESULT STDMETHODCALLTYPE ISpeechLexiconWords_get__NewEnum_Proxy(
26168     ISpeechLexiconWords* This,
26169     IUnknown **EnumVARIANT);
26170 void __RPC_STUB ISpeechLexiconWords_get__NewEnum_Stub(
26171     IRpcStubBuffer* This,
26172     IRpcChannelBuffer* pRpcChannelBuffer,
26173     PRPC_MESSAGE pRpcMessage,
26174     DWORD* pdwStubPhase);
26175 
26176 #endif  /* __ISpeechLexiconWords_INTERFACE_DEFINED__ */
26177 
26178 /*****************************************************************************
26179  * ISpeechLexicon interface
26180  */
26181 #ifndef __ISpeechLexicon_INTERFACE_DEFINED__
26182 #define __ISpeechLexicon_INTERFACE_DEFINED__
26183 
26184 DEFINE_GUID(IID_ISpeechLexicon, 0x3da7627a, 0xc7ae, 0x4b23, 0x87,0x08, 0x63,0x8c,0x50,0x36,0x2c,0x25);
26185 #if defined(__cplusplus) && !defined(CINTERFACE)
26186 MIDL_INTERFACE("3da7627a-c7ae-4b23-8708-638c50362c25")
26187 ISpeechLexicon : public IDispatch
26188 {
26189     virtual HRESULT STDMETHODCALLTYPE get_GenerationId(
26190         LONG *GenerationId) = 0;
26191 
26192     virtual HRESULT STDMETHODCALLTYPE GetWords(
26193         SpeechLexiconType Flags,
26194         LONG *GenerationID,
26195         ISpeechLexiconWords **Words) = 0;
26196 
26197     virtual HRESULT STDMETHODCALLTYPE AddPronunciation(
26198         BSTR bstrWord,
26199         SpeechLanguageId LangId,
26200         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
26201         BSTR bstrPronunciation = L"") = 0;
26202 
26203     virtual HRESULT STDMETHODCALLTYPE AddPronunciationByPhoneIds(
26204         BSTR bstrWord,
26205         SpeechLanguageId LangId,
26206         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
26207         VARIANT *PhoneIds = 0) = 0;
26208 
26209     virtual HRESULT STDMETHODCALLTYPE RemovePronunciation(
26210         BSTR bstrWord,
26211         SpeechLanguageId LangId,
26212         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
26213         BSTR bstrPronunciation = L"") = 0;
26214 
26215     virtual HRESULT STDMETHODCALLTYPE RemovePronunciationByPhoneIds(
26216         BSTR bstrWord,
26217         SpeechLanguageId LangId,
26218         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
26219         VARIANT *PhoneIds = 0) = 0;
26220 
26221     virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
26222         BSTR bstrWord,
26223         SpeechLanguageId LangId,
26224         SpeechLexiconType TypeFlags,
26225         ISpeechLexiconPronunciations **ppPronunciations) = 0;
26226 
26227     virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
26228         LONG *GenerationID,
26229         ISpeechLexiconWords **ppWords) = 0;
26230 
26231 };
26232 #ifdef __CRT_UUID_DECL
26233 __CRT_UUID_DECL(ISpeechLexicon, 0x3da7627a, 0xc7ae, 0x4b23, 0x87,0x08, 0x63,0x8c,0x50,0x36,0x2c,0x25)
26234 #endif
26235 #else
26236 typedef struct ISpeechLexiconVtbl {
26237     BEGIN_INTERFACE
26238 
26239     /*** IUnknown methods ***/
26240     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
26241         ISpeechLexicon* This,
26242         REFIID riid,
26243         void **ppvObject);
26244 
26245     ULONG (STDMETHODCALLTYPE *AddRef)(
26246         ISpeechLexicon* This);
26247 
26248     ULONG (STDMETHODCALLTYPE *Release)(
26249         ISpeechLexicon* This);
26250 
26251     /*** IDispatch methods ***/
26252     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
26253         ISpeechLexicon* This,
26254         UINT *pctinfo);
26255 
26256     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
26257         ISpeechLexicon* This,
26258         UINT iTInfo,
26259         LCID lcid,
26260         ITypeInfo **ppTInfo);
26261 
26262     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
26263         ISpeechLexicon* This,
26264         REFIID riid,
26265         LPOLESTR *rgszNames,
26266         UINT cNames,
26267         LCID lcid,
26268         DISPID *rgDispId);
26269 
26270     HRESULT (STDMETHODCALLTYPE *Invoke)(
26271         ISpeechLexicon* This,
26272         DISPID dispIdMember,
26273         REFIID riid,
26274         LCID lcid,
26275         WORD wFlags,
26276         DISPPARAMS *pDispParams,
26277         VARIANT *pVarResult,
26278         EXCEPINFO *pExcepInfo,
26279         UINT *puArgErr);
26280 
26281     /*** ISpeechLexicon methods ***/
26282     HRESULT (STDMETHODCALLTYPE *get_GenerationId)(
26283         ISpeechLexicon* This,
26284         LONG *GenerationId);
26285 
26286     HRESULT (STDMETHODCALLTYPE *GetWords)(
26287         ISpeechLexicon* This,
26288         SpeechLexiconType Flags,
26289         LONG *GenerationID,
26290         ISpeechLexiconWords **Words);
26291 
26292     HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
26293         ISpeechLexicon* This,
26294         BSTR bstrWord,
26295         SpeechLanguageId LangId,
26296         SpeechPartOfSpeech PartOfSpeech,
26297         BSTR bstrPronunciation);
26298 
26299     HRESULT (STDMETHODCALLTYPE *AddPronunciationByPhoneIds)(
26300         ISpeechLexicon* This,
26301         BSTR bstrWord,
26302         SpeechLanguageId LangId,
26303         SpeechPartOfSpeech PartOfSpeech,
26304         VARIANT *PhoneIds);
26305 
26306     HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
26307         ISpeechLexicon* This,
26308         BSTR bstrWord,
26309         SpeechLanguageId LangId,
26310         SpeechPartOfSpeech PartOfSpeech,
26311         BSTR bstrPronunciation);
26312 
26313     HRESULT (STDMETHODCALLTYPE *RemovePronunciationByPhoneIds)(
26314         ISpeechLexicon* This,
26315         BSTR bstrWord,
26316         SpeechLanguageId LangId,
26317         SpeechPartOfSpeech PartOfSpeech,
26318         VARIANT *PhoneIds);
26319 
26320     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
26321         ISpeechLexicon* This,
26322         BSTR bstrWord,
26323         SpeechLanguageId LangId,
26324         SpeechLexiconType TypeFlags,
26325         ISpeechLexiconPronunciations **ppPronunciations);
26326 
26327     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
26328         ISpeechLexicon* This,
26329         LONG *GenerationID,
26330         ISpeechLexiconWords **ppWords);
26331 
26332     END_INTERFACE
26333 } ISpeechLexiconVtbl;
26334 interface ISpeechLexicon {
26335     CONST_VTBL ISpeechLexiconVtbl* lpVtbl;
26336 };
26337 
26338 #ifdef COBJMACROS
26339 #ifndef WIDL_C_INLINE_WRAPPERS
26340 /*** IUnknown methods ***/
26341 #define ISpeechLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
26342 #define ISpeechLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
26343 #define ISpeechLexicon_Release(This) (This)->lpVtbl->Release(This)
26344 /*** IDispatch methods ***/
26345 #define ISpeechLexicon_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
26346 #define ISpeechLexicon_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
26347 #define ISpeechLexicon_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
26348 #define ISpeechLexicon_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
26349 /*** ISpeechLexicon methods ***/
26350 #define ISpeechLexicon_get_GenerationId(This,GenerationId) (This)->lpVtbl->get_GenerationId(This,GenerationId)
26351 #define ISpeechLexicon_GetWords(This,Flags,GenerationID,Words) (This)->lpVtbl->GetWords(This,Flags,GenerationID,Words)
26352 #define ISpeechLexicon_AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation) (This)->lpVtbl->AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation)
26353 #define ISpeechLexicon_AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds) (This)->lpVtbl->AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds)
26354 #define ISpeechLexicon_RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation) (This)->lpVtbl->RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation)
26355 #define ISpeechLexicon_RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds) (This)->lpVtbl->RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds)
26356 #define ISpeechLexicon_GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations) (This)->lpVtbl->GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations)
26357 #define ISpeechLexicon_GetGenerationChange(This,GenerationID,ppWords) (This)->lpVtbl->GetGenerationChange(This,GenerationID,ppWords)
26358 #else
26359 /*** IUnknown methods ***/
26360 static FORCEINLINE HRESULT ISpeechLexicon_QueryInterface(ISpeechLexicon* This,REFIID riid,void **ppvObject) {
26361     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
26362 }
26363 static FORCEINLINE ULONG ISpeechLexicon_AddRef(ISpeechLexicon* This) {
26364     return This->lpVtbl->AddRef(This);
26365 }
26366 static FORCEINLINE ULONG ISpeechLexicon_Release(ISpeechLexicon* This) {
26367     return This->lpVtbl->Release(This);
26368 }
26369 /*** IDispatch methods ***/
26370 static FORCEINLINE HRESULT ISpeechLexicon_GetTypeInfoCount(ISpeechLexicon* This,UINT *pctinfo) {
26371     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
26372 }
26373 static FORCEINLINE HRESULT ISpeechLexicon_GetTypeInfo(ISpeechLexicon* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
26374     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
26375 }
26376 static FORCEINLINE HRESULT ISpeechLexicon_GetIDsOfNames(ISpeechLexicon* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
26377     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
26378 }
26379 static FORCEINLINE HRESULT ISpeechLexicon_Invoke(ISpeechLexicon* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
26380     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
26381 }
26382 /*** ISpeechLexicon methods ***/
26383 static FORCEINLINE HRESULT ISpeechLexicon_get_GenerationId(ISpeechLexicon* This,LONG *GenerationId) {
26384     return This->lpVtbl->get_GenerationId(This,GenerationId);
26385 }
26386 static FORCEINLINE HRESULT ISpeechLexicon_GetWords(ISpeechLexicon* This,SpeechLexiconType Flags,LONG *GenerationID,ISpeechLexiconWords **Words) {
26387     return This->lpVtbl->GetWords(This,Flags,GenerationID,Words);
26388 }
26389 static FORCEINLINE HRESULT ISpeechLexicon_AddPronunciation(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,BSTR bstrPronunciation) {
26390     return This->lpVtbl->AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation);
26391 }
26392 static FORCEINLINE HRESULT ISpeechLexicon_AddPronunciationByPhoneIds(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,VARIANT *PhoneIds) {
26393     return This->lpVtbl->AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds);
26394 }
26395 static FORCEINLINE HRESULT ISpeechLexicon_RemovePronunciation(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,BSTR bstrPronunciation) {
26396     return This->lpVtbl->RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation);
26397 }
26398 static FORCEINLINE HRESULT ISpeechLexicon_RemovePronunciationByPhoneIds(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,VARIANT *PhoneIds) {
26399     return This->lpVtbl->RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds);
26400 }
26401 static FORCEINLINE HRESULT ISpeechLexicon_GetPronunciations(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechLexiconType TypeFlags,ISpeechLexiconPronunciations **ppPronunciations) {
26402     return This->lpVtbl->GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations);
26403 }
26404 static FORCEINLINE HRESULT ISpeechLexicon_GetGenerationChange(ISpeechLexicon* This,LONG *GenerationID,ISpeechLexiconWords **ppWords) {
26405     return This->lpVtbl->GetGenerationChange(This,GenerationID,ppWords);
26406 }
26407 #endif
26408 #endif
26409 
26410 #endif
26411 
26412 HRESULT STDMETHODCALLTYPE ISpeechLexicon_get_GenerationId_Proxy(
26413     ISpeechLexicon* This,
26414     LONG *GenerationId);
26415 void __RPC_STUB ISpeechLexicon_get_GenerationId_Stub(
26416     IRpcStubBuffer* This,
26417     IRpcChannelBuffer* pRpcChannelBuffer,
26418     PRPC_MESSAGE pRpcMessage,
26419     DWORD* pdwStubPhase);
26420 HRESULT STDMETHODCALLTYPE ISpeechLexicon_GetWords_Proxy(
26421     ISpeechLexicon* This,
26422     SpeechLexiconType Flags,
26423     LONG *GenerationID,
26424     ISpeechLexiconWords **Words);
26425 void __RPC_STUB ISpeechLexicon_GetWords_Stub(
26426     IRpcStubBuffer* This,
26427     IRpcChannelBuffer* pRpcChannelBuffer,
26428     PRPC_MESSAGE pRpcMessage,
26429     DWORD* pdwStubPhase);
26430 HRESULT STDMETHODCALLTYPE ISpeechLexicon_AddPronunciation_Proxy(
26431     ISpeechLexicon* This,
26432     BSTR bstrWord,
26433     SpeechLanguageId LangId,
26434     SpeechPartOfSpeech PartOfSpeech,
26435     BSTR bstrPronunciation);
26436 void __RPC_STUB ISpeechLexicon_AddPronunciation_Stub(
26437     IRpcStubBuffer* This,
26438     IRpcChannelBuffer* pRpcChannelBuffer,
26439     PRPC_MESSAGE pRpcMessage,
26440     DWORD* pdwStubPhase);
26441 HRESULT STDMETHODCALLTYPE ISpeechLexicon_AddPronunciationByPhoneIds_Proxy(
26442     ISpeechLexicon* This,
26443     BSTR bstrWord,
26444     SpeechLanguageId LangId,
26445     SpeechPartOfSpeech PartOfSpeech,
26446     VARIANT *PhoneIds);
26447 void __RPC_STUB ISpeechLexicon_AddPronunciationByPhoneIds_Stub(
26448     IRpcStubBuffer* This,
26449     IRpcChannelBuffer* pRpcChannelBuffer,
26450     PRPC_MESSAGE pRpcMessage,
26451     DWORD* pdwStubPhase);
26452 HRESULT STDMETHODCALLTYPE ISpeechLexicon_RemovePronunciation_Proxy(
26453     ISpeechLexicon* This,
26454     BSTR bstrWord,
26455     SpeechLanguageId LangId,
26456     SpeechPartOfSpeech PartOfSpeech,
26457     BSTR bstrPronunciation);
26458 void __RPC_STUB ISpeechLexicon_RemovePronunciation_Stub(
26459     IRpcStubBuffer* This,
26460     IRpcChannelBuffer* pRpcChannelBuffer,
26461     PRPC_MESSAGE pRpcMessage,
26462     DWORD* pdwStubPhase);
26463 HRESULT STDMETHODCALLTYPE ISpeechLexicon_RemovePronunciationByPhoneIds_Proxy(
26464     ISpeechLexicon* This,
26465     BSTR bstrWord,
26466     SpeechLanguageId LangId,
26467     SpeechPartOfSpeech PartOfSpeech,
26468     VARIANT *PhoneIds);
26469 void __RPC_STUB ISpeechLexicon_RemovePronunciationByPhoneIds_Stub(
26470     IRpcStubBuffer* This,
26471     IRpcChannelBuffer* pRpcChannelBuffer,
26472     PRPC_MESSAGE pRpcMessage,
26473     DWORD* pdwStubPhase);
26474 HRESULT STDMETHODCALLTYPE ISpeechLexicon_GetPronunciations_Proxy(
26475     ISpeechLexicon* This,
26476     BSTR bstrWord,
26477     SpeechLanguageId LangId,
26478     SpeechLexiconType TypeFlags,
26479     ISpeechLexiconPronunciations **ppPronunciations);
26480 void __RPC_STUB ISpeechLexicon_GetPronunciations_Stub(
26481     IRpcStubBuffer* This,
26482     IRpcChannelBuffer* pRpcChannelBuffer,
26483     PRPC_MESSAGE pRpcMessage,
26484     DWORD* pdwStubPhase);
26485 HRESULT STDMETHODCALLTYPE ISpeechLexicon_GetGenerationChange_Proxy(
26486     ISpeechLexicon* This,
26487     LONG *GenerationID,
26488     ISpeechLexiconWords **ppWords);
26489 void __RPC_STUB ISpeechLexicon_GetGenerationChange_Stub(
26490     IRpcStubBuffer* This,
26491     IRpcChannelBuffer* pRpcChannelBuffer,
26492     PRPC_MESSAGE pRpcMessage,
26493     DWORD* pdwStubPhase);
26494 
26495 #endif  /* __ISpeechLexicon_INTERFACE_DEFINED__ */
26496 
26497 /*****************************************************************************
26498  * ISpeechLexiconWord interface
26499  */
26500 #ifndef __ISpeechLexiconWord_INTERFACE_DEFINED__
26501 #define __ISpeechLexiconWord_INTERFACE_DEFINED__
26502 
26503 DEFINE_GUID(IID_ISpeechLexiconWord, 0x4e5b933c, 0xc9be, 0x48ed, 0x88,0x42, 0x1e,0xe5,0x1b,0xb1,0xd4,0xff);
26504 #if defined(__cplusplus) && !defined(CINTERFACE)
26505 MIDL_INTERFACE("4e5b933c-c9be-48ed-8842-1ee51bb1d4ff")
26506 ISpeechLexiconWord : public IDispatch
26507 {
26508     virtual HRESULT STDMETHODCALLTYPE get_LangId(
26509         SpeechLanguageId *LangId) = 0;
26510 
26511     virtual HRESULT STDMETHODCALLTYPE get_Type(
26512         SpeechWordType *WordType) = 0;
26513 
26514     virtual HRESULT STDMETHODCALLTYPE get_Word(
26515         BSTR *Word) = 0;
26516 
26517     virtual HRESULT STDMETHODCALLTYPE get_Pronunciations(
26518         ISpeechLexiconPronunciations **Pronunciations) = 0;
26519 
26520 };
26521 #ifdef __CRT_UUID_DECL
26522 __CRT_UUID_DECL(ISpeechLexiconWord, 0x4e5b933c, 0xc9be, 0x48ed, 0x88,0x42, 0x1e,0xe5,0x1b,0xb1,0xd4,0xff)
26523 #endif
26524 #else
26525 typedef struct ISpeechLexiconWordVtbl {
26526     BEGIN_INTERFACE
26527 
26528     /*** IUnknown methods ***/
26529     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
26530         ISpeechLexiconWord* This,
26531         REFIID riid,
26532         void **ppvObject);
26533 
26534     ULONG (STDMETHODCALLTYPE *AddRef)(
26535         ISpeechLexiconWord* This);
26536 
26537     ULONG (STDMETHODCALLTYPE *Release)(
26538         ISpeechLexiconWord* This);
26539 
26540     /*** IDispatch methods ***/
26541     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
26542         ISpeechLexiconWord* This,
26543         UINT *pctinfo);
26544 
26545     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
26546         ISpeechLexiconWord* This,
26547         UINT iTInfo,
26548         LCID lcid,
26549         ITypeInfo **ppTInfo);
26550 
26551     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
26552         ISpeechLexiconWord* This,
26553         REFIID riid,
26554         LPOLESTR *rgszNames,
26555         UINT cNames,
26556         LCID lcid,
26557         DISPID *rgDispId);
26558 
26559     HRESULT (STDMETHODCALLTYPE *Invoke)(
26560         ISpeechLexiconWord* This,
26561         DISPID dispIdMember,
26562         REFIID riid,
26563         LCID lcid,
26564         WORD wFlags,
26565         DISPPARAMS *pDispParams,
26566         VARIANT *pVarResult,
26567         EXCEPINFO *pExcepInfo,
26568         UINT *puArgErr);
26569 
26570     /*** ISpeechLexiconWord methods ***/
26571     HRESULT (STDMETHODCALLTYPE *get_LangId)(
26572         ISpeechLexiconWord* This,
26573         SpeechLanguageId *LangId);
26574 
26575     HRESULT (STDMETHODCALLTYPE *get_Type)(
26576         ISpeechLexiconWord* This,
26577         SpeechWordType *WordType);
26578 
26579     HRESULT (STDMETHODCALLTYPE *get_Word)(
26580         ISpeechLexiconWord* This,
26581         BSTR *Word);
26582 
26583     HRESULT (STDMETHODCALLTYPE *get_Pronunciations)(
26584         ISpeechLexiconWord* This,
26585         ISpeechLexiconPronunciations **Pronunciations);
26586 
26587     END_INTERFACE
26588 } ISpeechLexiconWordVtbl;
26589 interface ISpeechLexiconWord {
26590     CONST_VTBL ISpeechLexiconWordVtbl* lpVtbl;
26591 };
26592 
26593 #ifdef COBJMACROS
26594 #ifndef WIDL_C_INLINE_WRAPPERS
26595 /*** IUnknown methods ***/
26596 #define ISpeechLexiconWord_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
26597 #define ISpeechLexiconWord_AddRef(This) (This)->lpVtbl->AddRef(This)
26598 #define ISpeechLexiconWord_Release(This) (This)->lpVtbl->Release(This)
26599 /*** IDispatch methods ***/
26600 #define ISpeechLexiconWord_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
26601 #define ISpeechLexiconWord_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
26602 #define ISpeechLexiconWord_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
26603 #define ISpeechLexiconWord_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
26604 /*** ISpeechLexiconWord methods ***/
26605 #define ISpeechLexiconWord_get_LangId(This,LangId) (This)->lpVtbl->get_LangId(This,LangId)
26606 #define ISpeechLexiconWord_get_Type(This,WordType) (This)->lpVtbl->get_Type(This,WordType)
26607 #define ISpeechLexiconWord_get_Word(This,Word) (This)->lpVtbl->get_Word(This,Word)
26608 #define ISpeechLexiconWord_get_Pronunciations(This,Pronunciations) (This)->lpVtbl->get_Pronunciations(This,Pronunciations)
26609 #else
26610 /*** IUnknown methods ***/
26611 static FORCEINLINE HRESULT ISpeechLexiconWord_QueryInterface(ISpeechLexiconWord* This,REFIID riid,void **ppvObject) {
26612     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
26613 }
26614 static FORCEINLINE ULONG ISpeechLexiconWord_AddRef(ISpeechLexiconWord* This) {
26615     return This->lpVtbl->AddRef(This);
26616 }
26617 static FORCEINLINE ULONG ISpeechLexiconWord_Release(ISpeechLexiconWord* This) {
26618     return This->lpVtbl->Release(This);
26619 }
26620 /*** IDispatch methods ***/
26621 static FORCEINLINE HRESULT ISpeechLexiconWord_GetTypeInfoCount(ISpeechLexiconWord* This,UINT *pctinfo) {
26622     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
26623 }
26624 static FORCEINLINE HRESULT ISpeechLexiconWord_GetTypeInfo(ISpeechLexiconWord* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
26625     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
26626 }
26627 static FORCEINLINE HRESULT ISpeechLexiconWord_GetIDsOfNames(ISpeechLexiconWord* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
26628     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
26629 }
26630 static FORCEINLINE HRESULT ISpeechLexiconWord_Invoke(ISpeechLexiconWord* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
26631     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
26632 }
26633 /*** ISpeechLexiconWord methods ***/
26634 static FORCEINLINE HRESULT ISpeechLexiconWord_get_LangId(ISpeechLexiconWord* This,SpeechLanguageId *LangId) {
26635     return This->lpVtbl->get_LangId(This,LangId);
26636 }
26637 static FORCEINLINE HRESULT ISpeechLexiconWord_get_Type(ISpeechLexiconWord* This,SpeechWordType *WordType) {
26638     return This->lpVtbl->get_Type(This,WordType);
26639 }
26640 static FORCEINLINE HRESULT ISpeechLexiconWord_get_Word(ISpeechLexiconWord* This,BSTR *Word) {
26641     return This->lpVtbl->get_Word(This,Word);
26642 }
26643 static FORCEINLINE HRESULT ISpeechLexiconWord_get_Pronunciations(ISpeechLexiconWord* This,ISpeechLexiconPronunciations **Pronunciations) {
26644     return This->lpVtbl->get_Pronunciations(This,Pronunciations);
26645 }
26646 #endif
26647 #endif
26648 
26649 #endif
26650 
26651 HRESULT STDMETHODCALLTYPE ISpeechLexiconWord_get_LangId_Proxy(
26652     ISpeechLexiconWord* This,
26653     SpeechLanguageId *LangId);
26654 void __RPC_STUB ISpeechLexiconWord_get_LangId_Stub(
26655     IRpcStubBuffer* This,
26656     IRpcChannelBuffer* pRpcChannelBuffer,
26657     PRPC_MESSAGE pRpcMessage,
26658     DWORD* pdwStubPhase);
26659 HRESULT STDMETHODCALLTYPE ISpeechLexiconWord_get_Type_Proxy(
26660     ISpeechLexiconWord* This,
26661     SpeechWordType *WordType);
26662 void __RPC_STUB ISpeechLexiconWord_get_Type_Stub(
26663     IRpcStubBuffer* This,
26664     IRpcChannelBuffer* pRpcChannelBuffer,
26665     PRPC_MESSAGE pRpcMessage,
26666     DWORD* pdwStubPhase);
26667 HRESULT STDMETHODCALLTYPE ISpeechLexiconWord_get_Word_Proxy(
26668     ISpeechLexiconWord* This,
26669     BSTR *Word);
26670 void __RPC_STUB ISpeechLexiconWord_get_Word_Stub(
26671     IRpcStubBuffer* This,
26672     IRpcChannelBuffer* pRpcChannelBuffer,
26673     PRPC_MESSAGE pRpcMessage,
26674     DWORD* pdwStubPhase);
26675 HRESULT STDMETHODCALLTYPE ISpeechLexiconWord_get_Pronunciations_Proxy(
26676     ISpeechLexiconWord* This,
26677     ISpeechLexiconPronunciations **Pronunciations);
26678 void __RPC_STUB ISpeechLexiconWord_get_Pronunciations_Stub(
26679     IRpcStubBuffer* This,
26680     IRpcChannelBuffer* pRpcChannelBuffer,
26681     PRPC_MESSAGE pRpcMessage,
26682     DWORD* pdwStubPhase);
26683 
26684 #endif  /* __ISpeechLexiconWord_INTERFACE_DEFINED__ */
26685 
26686 /*****************************************************************************
26687  * ISpeechLexiconPronunciations interface
26688  */
26689 #ifndef __ISpeechLexiconPronunciations_INTERFACE_DEFINED__
26690 #define __ISpeechLexiconPronunciations_INTERFACE_DEFINED__
26691 
26692 DEFINE_GUID(IID_ISpeechLexiconPronunciations, 0x72829128, 0x5682, 0x4704, 0xa0,0xd4, 0x3e,0x2b,0xb6,0xf2,0xea,0xd3);
26693 #if defined(__cplusplus) && !defined(CINTERFACE)
26694 MIDL_INTERFACE("72829128-5682-4704-a0d4-3e2bb6f2ead3")
26695 ISpeechLexiconPronunciations : public IDispatch
26696 {
26697     virtual HRESULT STDMETHODCALLTYPE get_Count(
26698         LONG *Count) = 0;
26699 
26700     virtual HRESULT STDMETHODCALLTYPE Item(
26701         LONG Index,
26702         ISpeechLexiconPronunciation **Pronunciation) = 0;
26703 
26704     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
26705         IUnknown **EnumVARIANT) = 0;
26706 
26707 };
26708 #ifdef __CRT_UUID_DECL
26709 __CRT_UUID_DECL(ISpeechLexiconPronunciations, 0x72829128, 0x5682, 0x4704, 0xa0,0xd4, 0x3e,0x2b,0xb6,0xf2,0xea,0xd3)
26710 #endif
26711 #else
26712 typedef struct ISpeechLexiconPronunciationsVtbl {
26713     BEGIN_INTERFACE
26714 
26715     /*** IUnknown methods ***/
26716     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
26717         ISpeechLexiconPronunciations* This,
26718         REFIID riid,
26719         void **ppvObject);
26720 
26721     ULONG (STDMETHODCALLTYPE *AddRef)(
26722         ISpeechLexiconPronunciations* This);
26723 
26724     ULONG (STDMETHODCALLTYPE *Release)(
26725         ISpeechLexiconPronunciations* This);
26726 
26727     /*** IDispatch methods ***/
26728     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
26729         ISpeechLexiconPronunciations* This,
26730         UINT *pctinfo);
26731 
26732     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
26733         ISpeechLexiconPronunciations* This,
26734         UINT iTInfo,
26735         LCID lcid,
26736         ITypeInfo **ppTInfo);
26737 
26738     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
26739         ISpeechLexiconPronunciations* This,
26740         REFIID riid,
26741         LPOLESTR *rgszNames,
26742         UINT cNames,
26743         LCID lcid,
26744         DISPID *rgDispId);
26745 
26746     HRESULT (STDMETHODCALLTYPE *Invoke)(
26747         ISpeechLexiconPronunciations* This,
26748         DISPID dispIdMember,
26749         REFIID riid,
26750         LCID lcid,
26751         WORD wFlags,
26752         DISPPARAMS *pDispParams,
26753         VARIANT *pVarResult,
26754         EXCEPINFO *pExcepInfo,
26755         UINT *puArgErr);
26756 
26757     /*** ISpeechLexiconPronunciations methods ***/
26758     HRESULT (STDMETHODCALLTYPE *get_Count)(
26759         ISpeechLexiconPronunciations* This,
26760         LONG *Count);
26761 
26762     HRESULT (STDMETHODCALLTYPE *Item)(
26763         ISpeechLexiconPronunciations* This,
26764         LONG Index,
26765         ISpeechLexiconPronunciation **Pronunciation);
26766 
26767     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
26768         ISpeechLexiconPronunciations* This,
26769         IUnknown **EnumVARIANT);
26770 
26771     END_INTERFACE
26772 } ISpeechLexiconPronunciationsVtbl;
26773 interface ISpeechLexiconPronunciations {
26774     CONST_VTBL ISpeechLexiconPronunciationsVtbl* lpVtbl;
26775 };
26776 
26777 #ifdef COBJMACROS
26778 #ifndef WIDL_C_INLINE_WRAPPERS
26779 /*** IUnknown methods ***/
26780 #define ISpeechLexiconPronunciations_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
26781 #define ISpeechLexiconPronunciations_AddRef(This) (This)->lpVtbl->AddRef(This)
26782 #define ISpeechLexiconPronunciations_Release(This) (This)->lpVtbl->Release(This)
26783 /*** IDispatch methods ***/
26784 #define ISpeechLexiconPronunciations_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
26785 #define ISpeechLexiconPronunciations_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
26786 #define ISpeechLexiconPronunciations_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
26787 #define ISpeechLexiconPronunciations_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
26788 /*** ISpeechLexiconPronunciations methods ***/
26789 #define ISpeechLexiconPronunciations_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
26790 #define ISpeechLexiconPronunciations_Item(This,Index,Pronunciation) (This)->lpVtbl->Item(This,Index,Pronunciation)
26791 #define ISpeechLexiconPronunciations_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
26792 #else
26793 /*** IUnknown methods ***/
26794 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_QueryInterface(ISpeechLexiconPronunciations* This,REFIID riid,void **ppvObject) {
26795     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
26796 }
26797 static FORCEINLINE ULONG ISpeechLexiconPronunciations_AddRef(ISpeechLexiconPronunciations* This) {
26798     return This->lpVtbl->AddRef(This);
26799 }
26800 static FORCEINLINE ULONG ISpeechLexiconPronunciations_Release(ISpeechLexiconPronunciations* This) {
26801     return This->lpVtbl->Release(This);
26802 }
26803 /*** IDispatch methods ***/
26804 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_GetTypeInfoCount(ISpeechLexiconPronunciations* This,UINT *pctinfo) {
26805     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
26806 }
26807 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_GetTypeInfo(ISpeechLexiconPronunciations* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
26808     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
26809 }
26810 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_GetIDsOfNames(ISpeechLexiconPronunciations* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
26811     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
26812 }
26813 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_Invoke(ISpeechLexiconPronunciations* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
26814     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
26815 }
26816 /*** ISpeechLexiconPronunciations methods ***/
26817 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_get_Count(ISpeechLexiconPronunciations* This,LONG *Count) {
26818     return This->lpVtbl->get_Count(This,Count);
26819 }
26820 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_Item(ISpeechLexiconPronunciations* This,LONG Index,ISpeechLexiconPronunciation **Pronunciation) {
26821     return This->lpVtbl->Item(This,Index,Pronunciation);
26822 }
26823 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_get__NewEnum(ISpeechLexiconPronunciations* This,IUnknown **EnumVARIANT) {
26824     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
26825 }
26826 #endif
26827 #endif
26828 
26829 #endif
26830 
26831 HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciations_get_Count_Proxy(
26832     ISpeechLexiconPronunciations* This,
26833     LONG *Count);
26834 void __RPC_STUB ISpeechLexiconPronunciations_get_Count_Stub(
26835     IRpcStubBuffer* This,
26836     IRpcChannelBuffer* pRpcChannelBuffer,
26837     PRPC_MESSAGE pRpcMessage,
26838     DWORD* pdwStubPhase);
26839 HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciations_Item_Proxy(
26840     ISpeechLexiconPronunciations* This,
26841     LONG Index,
26842     ISpeechLexiconPronunciation **Pronunciation);
26843 void __RPC_STUB ISpeechLexiconPronunciations_Item_Stub(
26844     IRpcStubBuffer* This,
26845     IRpcChannelBuffer* pRpcChannelBuffer,
26846     PRPC_MESSAGE pRpcMessage,
26847     DWORD* pdwStubPhase);
26848 HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciations_get__NewEnum_Proxy(
26849     ISpeechLexiconPronunciations* This,
26850     IUnknown **EnumVARIANT);
26851 void __RPC_STUB ISpeechLexiconPronunciations_get__NewEnum_Stub(
26852     IRpcStubBuffer* This,
26853     IRpcChannelBuffer* pRpcChannelBuffer,
26854     PRPC_MESSAGE pRpcMessage,
26855     DWORD* pdwStubPhase);
26856 
26857 #endif  /* __ISpeechLexiconPronunciations_INTERFACE_DEFINED__ */
26858 
26859 /*****************************************************************************
26860  * ISpeechLexiconPronunciation interface
26861  */
26862 #ifndef __ISpeechLexiconPronunciation_INTERFACE_DEFINED__
26863 #define __ISpeechLexiconPronunciation_INTERFACE_DEFINED__
26864 
26865 DEFINE_GUID(IID_ISpeechLexiconPronunciation, 0x95252c5d, 0x9e43, 0x4f4a, 0x98,0x99, 0x48,0xee,0x73,0x35,0x2f,0x9f);
26866 #if defined(__cplusplus) && !defined(CINTERFACE)
26867 MIDL_INTERFACE("95252c5d-9e43-4f4a-9899-48ee73352f9f")
26868 ISpeechLexiconPronunciation : public IDispatch
26869 {
26870     virtual HRESULT STDMETHODCALLTYPE get_Type(
26871         SpeechLexiconType *LexiconType) = 0;
26872 
26873     virtual HRESULT STDMETHODCALLTYPE get_LangId(
26874         SpeechLanguageId *LangId) = 0;
26875 
26876     virtual HRESULT STDMETHODCALLTYPE get_PartOfSpeech(
26877         SpeechPartOfSpeech *PartOfSpeech) = 0;
26878 
26879     virtual HRESULT STDMETHODCALLTYPE get_PhoneIds(
26880         VARIANT *PhoneIds) = 0;
26881 
26882     virtual HRESULT STDMETHODCALLTYPE get_Symbolic(
26883         BSTR *Symbolic) = 0;
26884 
26885 };
26886 #ifdef __CRT_UUID_DECL
26887 __CRT_UUID_DECL(ISpeechLexiconPronunciation, 0x95252c5d, 0x9e43, 0x4f4a, 0x98,0x99, 0x48,0xee,0x73,0x35,0x2f,0x9f)
26888 #endif
26889 #else
26890 typedef struct ISpeechLexiconPronunciationVtbl {
26891     BEGIN_INTERFACE
26892 
26893     /*** IUnknown methods ***/
26894     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
26895         ISpeechLexiconPronunciation* This,
26896         REFIID riid,
26897         void **ppvObject);
26898 
26899     ULONG (STDMETHODCALLTYPE *AddRef)(
26900         ISpeechLexiconPronunciation* This);
26901 
26902     ULONG (STDMETHODCALLTYPE *Release)(
26903         ISpeechLexiconPronunciation* This);
26904 
26905     /*** IDispatch methods ***/
26906     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
26907         ISpeechLexiconPronunciation* This,
26908         UINT *pctinfo);
26909 
26910     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
26911         ISpeechLexiconPronunciation* This,
26912         UINT iTInfo,
26913         LCID lcid,
26914         ITypeInfo **ppTInfo);
26915 
26916     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
26917         ISpeechLexiconPronunciation* This,
26918         REFIID riid,
26919         LPOLESTR *rgszNames,
26920         UINT cNames,
26921         LCID lcid,
26922         DISPID *rgDispId);
26923 
26924     HRESULT (STDMETHODCALLTYPE *Invoke)(
26925         ISpeechLexiconPronunciation* This,
26926         DISPID dispIdMember,
26927         REFIID riid,
26928         LCID lcid,
26929         WORD wFlags,
26930         DISPPARAMS *pDispParams,
26931         VARIANT *pVarResult,
26932         EXCEPINFO *pExcepInfo,
26933         UINT *puArgErr);
26934 
26935     /*** ISpeechLexiconPronunciation methods ***/
26936     HRESULT (STDMETHODCALLTYPE *get_Type)(
26937         ISpeechLexiconPronunciation* This,
26938         SpeechLexiconType *LexiconType);
26939 
26940     HRESULT (STDMETHODCALLTYPE *get_LangId)(
26941         ISpeechLexiconPronunciation* This,
26942         SpeechLanguageId *LangId);
26943 
26944     HRESULT (STDMETHODCALLTYPE *get_PartOfSpeech)(
26945         ISpeechLexiconPronunciation* This,
26946         SpeechPartOfSpeech *PartOfSpeech);
26947 
26948     HRESULT (STDMETHODCALLTYPE *get_PhoneIds)(
26949         ISpeechLexiconPronunciation* This,
26950         VARIANT *PhoneIds);
26951 
26952     HRESULT (STDMETHODCALLTYPE *get_Symbolic)(
26953         ISpeechLexiconPronunciation* This,
26954         BSTR *Symbolic);
26955 
26956     END_INTERFACE
26957 } ISpeechLexiconPronunciationVtbl;
26958 interface ISpeechLexiconPronunciation {
26959     CONST_VTBL ISpeechLexiconPronunciationVtbl* lpVtbl;
26960 };
26961 
26962 #ifdef COBJMACROS
26963 #ifndef WIDL_C_INLINE_WRAPPERS
26964 /*** IUnknown methods ***/
26965 #define ISpeechLexiconPronunciation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
26966 #define ISpeechLexiconPronunciation_AddRef(This) (This)->lpVtbl->AddRef(This)
26967 #define ISpeechLexiconPronunciation_Release(This) (This)->lpVtbl->Release(This)
26968 /*** IDispatch methods ***/
26969 #define ISpeechLexiconPronunciation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
26970 #define ISpeechLexiconPronunciation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
26971 #define ISpeechLexiconPronunciation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
26972 #define ISpeechLexiconPronunciation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
26973 /*** ISpeechLexiconPronunciation methods ***/
26974 #define ISpeechLexiconPronunciation_get_Type(This,LexiconType) (This)->lpVtbl->get_Type(This,LexiconType)
26975 #define ISpeechLexiconPronunciation_get_LangId(This,LangId) (This)->lpVtbl->get_LangId(This,LangId)
26976 #define ISpeechLexiconPronunciation_get_PartOfSpeech(This,PartOfSpeech) (This)->lpVtbl->get_PartOfSpeech(This,PartOfSpeech)
26977 #define ISpeechLexiconPronunciation_get_PhoneIds(This,PhoneIds) (This)->lpVtbl->get_PhoneIds(This,PhoneIds)
26978 #define ISpeechLexiconPronunciation_get_Symbolic(This,Symbolic) (This)->lpVtbl->get_Symbolic(This,Symbolic)
26979 #else
26980 /*** IUnknown methods ***/
26981 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_QueryInterface(ISpeechLexiconPronunciation* This,REFIID riid,void **ppvObject) {
26982     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
26983 }
26984 static FORCEINLINE ULONG ISpeechLexiconPronunciation_AddRef(ISpeechLexiconPronunciation* This) {
26985     return This->lpVtbl->AddRef(This);
26986 }
26987 static FORCEINLINE ULONG ISpeechLexiconPronunciation_Release(ISpeechLexiconPronunciation* This) {
26988     return This->lpVtbl->Release(This);
26989 }
26990 /*** IDispatch methods ***/
26991 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_GetTypeInfoCount(ISpeechLexiconPronunciation* This,UINT *pctinfo) {
26992     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
26993 }
26994 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_GetTypeInfo(ISpeechLexiconPronunciation* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
26995     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
26996 }
26997 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_GetIDsOfNames(ISpeechLexiconPronunciation* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
26998     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
26999 }
27000 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_Invoke(ISpeechLexiconPronunciation* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
27001     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
27002 }
27003 /*** ISpeechLexiconPronunciation methods ***/
27004 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_Type(ISpeechLexiconPronunciation* This,SpeechLexiconType *LexiconType) {
27005     return This->lpVtbl->get_Type(This,LexiconType);
27006 }
27007 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_LangId(ISpeechLexiconPronunciation* This,SpeechLanguageId *LangId) {
27008     return This->lpVtbl->get_LangId(This,LangId);
27009 }
27010 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_PartOfSpeech(ISpeechLexiconPronunciation* This,SpeechPartOfSpeech *PartOfSpeech) {
27011     return This->lpVtbl->get_PartOfSpeech(This,PartOfSpeech);
27012 }
27013 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_PhoneIds(ISpeechLexiconPronunciation* This,VARIANT *PhoneIds) {
27014     return This->lpVtbl->get_PhoneIds(This,PhoneIds);
27015 }
27016 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_Symbolic(ISpeechLexiconPronunciation* This,BSTR *Symbolic) {
27017     return This->lpVtbl->get_Symbolic(This,Symbolic);
27018 }
27019 #endif
27020 #endif
27021 
27022 #endif
27023 
27024 HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciation_get_Type_Proxy(
27025     ISpeechLexiconPronunciation* This,
27026     SpeechLexiconType *LexiconType);
27027 void __RPC_STUB ISpeechLexiconPronunciation_get_Type_Stub(
27028     IRpcStubBuffer* This,
27029     IRpcChannelBuffer* pRpcChannelBuffer,
27030     PRPC_MESSAGE pRpcMessage,
27031     DWORD* pdwStubPhase);
27032 HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciation_get_LangId_Proxy(
27033     ISpeechLexiconPronunciation* This,
27034     SpeechLanguageId *LangId);
27035 void __RPC_STUB ISpeechLexiconPronunciation_get_LangId_Stub(
27036     IRpcStubBuffer* This,
27037     IRpcChannelBuffer* pRpcChannelBuffer,
27038     PRPC_MESSAGE pRpcMessage,
27039     DWORD* pdwStubPhase);
27040 HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciation_get_PartOfSpeech_Proxy(
27041     ISpeechLexiconPronunciation* This,
27042     SpeechPartOfSpeech *PartOfSpeech);
27043 void __RPC_STUB ISpeechLexiconPronunciation_get_PartOfSpeech_Stub(
27044     IRpcStubBuffer* This,
27045     IRpcChannelBuffer* pRpcChannelBuffer,
27046     PRPC_MESSAGE pRpcMessage,
27047     DWORD* pdwStubPhase);
27048 HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciation_get_PhoneIds_Proxy(
27049     ISpeechLexiconPronunciation* This,
27050     VARIANT *PhoneIds);
27051 void __RPC_STUB ISpeechLexiconPronunciation_get_PhoneIds_Stub(
27052     IRpcStubBuffer* This,
27053     IRpcChannelBuffer* pRpcChannelBuffer,
27054     PRPC_MESSAGE pRpcMessage,
27055     DWORD* pdwStubPhase);
27056 HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciation_get_Symbolic_Proxy(
27057     ISpeechLexiconPronunciation* This,
27058     BSTR *Symbolic);
27059 void __RPC_STUB ISpeechLexiconPronunciation_get_Symbolic_Stub(
27060     IRpcStubBuffer* This,
27061     IRpcChannelBuffer* pRpcChannelBuffer,
27062     PRPC_MESSAGE pRpcMessage,
27063     DWORD* pdwStubPhase);
27064 
27065 #endif  /* __ISpeechLexiconPronunciation_INTERFACE_DEFINED__ */
27066 
27067 /*****************************************************************************
27068  * ISpeechPhoneConverter interface
27069  */
27070 #ifndef __ISpeechPhoneConverter_INTERFACE_DEFINED__
27071 #define __ISpeechPhoneConverter_INTERFACE_DEFINED__
27072 
27073 DEFINE_GUID(IID_ISpeechPhoneConverter, 0xc3e4f353, 0x433f, 0x43d6, 0x89,0xa1, 0x6a,0x62,0xa7,0x05,0x4c,0x3d);
27074 #if defined(__cplusplus) && !defined(CINTERFACE)
27075 MIDL_INTERFACE("c3e4f353-433f-43d6-89a1-6a62a7054c3d")
27076 ISpeechPhoneConverter : public IDispatch
27077 {
27078     virtual HRESULT STDMETHODCALLTYPE get_LanguageId(
27079         SpeechLanguageId *LanguageId) = 0;
27080 
27081     virtual HRESULT STDMETHODCALLTYPE put_LanguageId(
27082         SpeechLanguageId LanguageId) = 0;
27083 
27084     virtual HRESULT STDMETHODCALLTYPE PhoneToId(
27085         const BSTR Phonemes,
27086         VARIANT *IdArray) = 0;
27087 
27088     virtual HRESULT STDMETHODCALLTYPE IdToPhone(
27089         const VARIANT IdArray,
27090         BSTR *Phonemes) = 0;
27091 
27092 };
27093 #ifdef __CRT_UUID_DECL
27094 __CRT_UUID_DECL(ISpeechPhoneConverter, 0xc3e4f353, 0x433f, 0x43d6, 0x89,0xa1, 0x6a,0x62,0xa7,0x05,0x4c,0x3d)
27095 #endif
27096 #else
27097 typedef struct ISpeechPhoneConverterVtbl {
27098     BEGIN_INTERFACE
27099 
27100     /*** IUnknown methods ***/
27101     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
27102         ISpeechPhoneConverter* This,
27103         REFIID riid,
27104         void **ppvObject);
27105 
27106     ULONG (STDMETHODCALLTYPE *AddRef)(
27107         ISpeechPhoneConverter* This);
27108 
27109     ULONG (STDMETHODCALLTYPE *Release)(
27110         ISpeechPhoneConverter* This);
27111 
27112     /*** IDispatch methods ***/
27113     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
27114         ISpeechPhoneConverter* This,
27115         UINT *pctinfo);
27116 
27117     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
27118         ISpeechPhoneConverter* This,
27119         UINT iTInfo,
27120         LCID lcid,
27121         ITypeInfo **ppTInfo);
27122 
27123     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
27124         ISpeechPhoneConverter* This,
27125         REFIID riid,
27126         LPOLESTR *rgszNames,
27127         UINT cNames,
27128         LCID lcid,
27129         DISPID *rgDispId);
27130 
27131     HRESULT (STDMETHODCALLTYPE *Invoke)(
27132         ISpeechPhoneConverter* This,
27133         DISPID dispIdMember,
27134         REFIID riid,
27135         LCID lcid,
27136         WORD wFlags,
27137         DISPPARAMS *pDispParams,
27138         VARIANT *pVarResult,
27139         EXCEPINFO *pExcepInfo,
27140         UINT *puArgErr);
27141 
27142     /*** ISpeechPhoneConverter methods ***/
27143     HRESULT (STDMETHODCALLTYPE *get_LanguageId)(
27144         ISpeechPhoneConverter* This,
27145         SpeechLanguageId *LanguageId);
27146 
27147     HRESULT (STDMETHODCALLTYPE *put_LanguageId)(
27148         ISpeechPhoneConverter* This,
27149         SpeechLanguageId LanguageId);
27150 
27151     HRESULT (STDMETHODCALLTYPE *PhoneToId)(
27152         ISpeechPhoneConverter* This,
27153         const BSTR Phonemes,
27154         VARIANT *IdArray);
27155 
27156     HRESULT (STDMETHODCALLTYPE *IdToPhone)(
27157         ISpeechPhoneConverter* This,
27158         const VARIANT IdArray,
27159         BSTR *Phonemes);
27160 
27161     END_INTERFACE
27162 } ISpeechPhoneConverterVtbl;
27163 interface ISpeechPhoneConverter {
27164     CONST_VTBL ISpeechPhoneConverterVtbl* lpVtbl;
27165 };
27166 
27167 #ifdef COBJMACROS
27168 #ifndef WIDL_C_INLINE_WRAPPERS
27169 /*** IUnknown methods ***/
27170 #define ISpeechPhoneConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
27171 #define ISpeechPhoneConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
27172 #define ISpeechPhoneConverter_Release(This) (This)->lpVtbl->Release(This)
27173 /*** IDispatch methods ***/
27174 #define ISpeechPhoneConverter_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
27175 #define ISpeechPhoneConverter_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
27176 #define ISpeechPhoneConverter_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
27177 #define ISpeechPhoneConverter_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
27178 /*** ISpeechPhoneConverter methods ***/
27179 #define ISpeechPhoneConverter_get_LanguageId(This,LanguageId) (This)->lpVtbl->get_LanguageId(This,LanguageId)
27180 #define ISpeechPhoneConverter_put_LanguageId(This,LanguageId) (This)->lpVtbl->put_LanguageId(This,LanguageId)
27181 #define ISpeechPhoneConverter_PhoneToId(This,Phonemes,IdArray) (This)->lpVtbl->PhoneToId(This,Phonemes,IdArray)
27182 #define ISpeechPhoneConverter_IdToPhone(This,IdArray,Phonemes) (This)->lpVtbl->IdToPhone(This,IdArray,Phonemes)
27183 #else
27184 /*** IUnknown methods ***/
27185 static FORCEINLINE HRESULT ISpeechPhoneConverter_QueryInterface(ISpeechPhoneConverter* This,REFIID riid,void **ppvObject) {
27186     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
27187 }
27188 static FORCEINLINE ULONG ISpeechPhoneConverter_AddRef(ISpeechPhoneConverter* This) {
27189     return This->lpVtbl->AddRef(This);
27190 }
27191 static FORCEINLINE ULONG ISpeechPhoneConverter_Release(ISpeechPhoneConverter* This) {
27192     return This->lpVtbl->Release(This);
27193 }
27194 /*** IDispatch methods ***/
27195 static FORCEINLINE HRESULT ISpeechPhoneConverter_GetTypeInfoCount(ISpeechPhoneConverter* This,UINT *pctinfo) {
27196     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
27197 }
27198 static FORCEINLINE HRESULT ISpeechPhoneConverter_GetTypeInfo(ISpeechPhoneConverter* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
27199     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
27200 }
27201 static FORCEINLINE HRESULT ISpeechPhoneConverter_GetIDsOfNames(ISpeechPhoneConverter* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
27202     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
27203 }
27204 static FORCEINLINE HRESULT ISpeechPhoneConverter_Invoke(ISpeechPhoneConverter* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
27205     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
27206 }
27207 /*** ISpeechPhoneConverter methods ***/
27208 static FORCEINLINE HRESULT ISpeechPhoneConverter_get_LanguageId(ISpeechPhoneConverter* This,SpeechLanguageId *LanguageId) {
27209     return This->lpVtbl->get_LanguageId(This,LanguageId);
27210 }
27211 static FORCEINLINE HRESULT ISpeechPhoneConverter_put_LanguageId(ISpeechPhoneConverter* This,SpeechLanguageId LanguageId) {
27212     return This->lpVtbl->put_LanguageId(This,LanguageId);
27213 }
27214 static FORCEINLINE HRESULT ISpeechPhoneConverter_PhoneToId(ISpeechPhoneConverter* This,const BSTR Phonemes,VARIANT *IdArray) {
27215     return This->lpVtbl->PhoneToId(This,Phonemes,IdArray);
27216 }
27217 static FORCEINLINE HRESULT ISpeechPhoneConverter_IdToPhone(ISpeechPhoneConverter* This,const VARIANT IdArray,BSTR *Phonemes) {
27218     return This->lpVtbl->IdToPhone(This,IdArray,Phonemes);
27219 }
27220 #endif
27221 #endif
27222 
27223 #endif
27224 
27225 HRESULT STDMETHODCALLTYPE ISpeechPhoneConverter_get_LanguageId_Proxy(
27226     ISpeechPhoneConverter* This,
27227     SpeechLanguageId *LanguageId);
27228 void __RPC_STUB ISpeechPhoneConverter_get_LanguageId_Stub(
27229     IRpcStubBuffer* This,
27230     IRpcChannelBuffer* pRpcChannelBuffer,
27231     PRPC_MESSAGE pRpcMessage,
27232     DWORD* pdwStubPhase);
27233 HRESULT STDMETHODCALLTYPE ISpeechPhoneConverter_put_LanguageId_Proxy(
27234     ISpeechPhoneConverter* This,
27235     SpeechLanguageId LanguageId);
27236 void __RPC_STUB ISpeechPhoneConverter_put_LanguageId_Stub(
27237     IRpcStubBuffer* This,
27238     IRpcChannelBuffer* pRpcChannelBuffer,
27239     PRPC_MESSAGE pRpcMessage,
27240     DWORD* pdwStubPhase);
27241 HRESULT STDMETHODCALLTYPE ISpeechPhoneConverter_PhoneToId_Proxy(
27242     ISpeechPhoneConverter* This,
27243     const BSTR Phonemes,
27244     VARIANT *IdArray);
27245 void __RPC_STUB ISpeechPhoneConverter_PhoneToId_Stub(
27246     IRpcStubBuffer* This,
27247     IRpcChannelBuffer* pRpcChannelBuffer,
27248     PRPC_MESSAGE pRpcMessage,
27249     DWORD* pdwStubPhase);
27250 HRESULT STDMETHODCALLTYPE ISpeechPhoneConverter_IdToPhone_Proxy(
27251     ISpeechPhoneConverter* This,
27252     const VARIANT IdArray,
27253     BSTR *Phonemes);
27254 void __RPC_STUB ISpeechPhoneConverter_IdToPhone_Stub(
27255     IRpcStubBuffer* This,
27256     IRpcChannelBuffer* pRpcChannelBuffer,
27257     PRPC_MESSAGE pRpcMessage,
27258     DWORD* pdwStubPhase);
27259 
27260 #endif  /* __ISpeechPhoneConverter_INTERFACE_DEFINED__ */
27261 
27262 /*****************************************************************************
27263  * SpNotifyTranslator coclass
27264  */
27265 
27266 DEFINE_GUID(CLSID_SpNotifyTranslator, 0xe2ae5372, 0x5d40, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
27267 
27268 #ifdef __cplusplus
27269 class DECLSPEC_UUID("e2ae5372-5d40-11d2-960e-00c04f8ee628") SpNotifyTranslator;
27270 #ifdef __CRT_UUID_DECL
27271 __CRT_UUID_DECL(SpNotifyTranslator, 0xe2ae5372, 0x5d40, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
27272 #endif
27273 #endif
27274 
27275 /*****************************************************************************
27276  * SpObjectTokenCategory coclass
27277  */
27278 
27279 DEFINE_GUID(CLSID_SpObjectTokenCategory, 0xa910187f, 0x0c7a, 0x45ac, 0x92,0xcc, 0x59,0xed,0xaf,0xb7,0x7b,0x53);
27280 
27281 #ifdef __cplusplus
27282 class DECLSPEC_UUID("a910187f-0c7a-45ac-92cc-59edafb77b53") SpObjectTokenCategory;
27283 #ifdef __CRT_UUID_DECL
27284 __CRT_UUID_DECL(SpObjectTokenCategory, 0xa910187f, 0x0c7a, 0x45ac, 0x92,0xcc, 0x59,0xed,0xaf,0xb7,0x7b,0x53)
27285 #endif
27286 #endif
27287 
27288 /*****************************************************************************
27289  * SpObjectToken coclass
27290  */
27291 
27292 DEFINE_GUID(CLSID_SpObjectToken, 0xef411752, 0x3736, 0x4cb4, 0x9c,0x8c, 0x8e,0xf4,0xcc,0xb5,0x8e,0xfe);
27293 
27294 #ifdef __cplusplus
27295 class DECLSPEC_UUID("ef411752-3736-4cb4-9c8c-8ef4ccb58efe") SpObjectToken;
27296 #ifdef __CRT_UUID_DECL
27297 __CRT_UUID_DECL(SpObjectToken, 0xef411752, 0x3736, 0x4cb4, 0x9c,0x8c, 0x8e,0xf4,0xcc,0xb5,0x8e,0xfe)
27298 #endif
27299 #endif
27300 
27301 /*****************************************************************************
27302  * SpResourceManager coclass
27303  */
27304 
27305 DEFINE_GUID(CLSID_SpResourceManager, 0x96749373, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96);
27306 
27307 #ifdef __cplusplus
27308 class DECLSPEC_UUID("96749373-3391-11d2-9ee3-00c04f797396") SpResourceManager;
27309 #ifdef __CRT_UUID_DECL
27310 __CRT_UUID_DECL(SpResourceManager, 0x96749373, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96)
27311 #endif
27312 #endif
27313 
27314 /*****************************************************************************
27315  * SpStreamFormatConverter coclass
27316  */
27317 
27318 DEFINE_GUID(CLSID_SpStreamFormatConverter, 0x7013943a, 0xe2ec, 0x11d2, 0xa0,0x86, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5);
27319 
27320 #ifdef __cplusplus
27321 class DECLSPEC_UUID("7013943a-e2ec-11d2-a086-00c04f8ef9b5") SpStreamFormatConverter;
27322 #ifdef __CRT_UUID_DECL
27323 __CRT_UUID_DECL(SpStreamFormatConverter, 0x7013943a, 0xe2ec, 0x11d2, 0xa0,0x86, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5)
27324 #endif
27325 #endif
27326 
27327 /*****************************************************************************
27328  * SpMMAudioEnum coclass
27329  */
27330 
27331 DEFINE_GUID(CLSID_SpMMAudioEnum, 0xab1890a0, 0xe91f, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
27332 
27333 #ifdef __cplusplus
27334 class DECLSPEC_UUID("ab1890a0-e91f-11d2-bb91-00c04f8ee6c0") SpMMAudioEnum;
27335 #ifdef __CRT_UUID_DECL
27336 __CRT_UUID_DECL(SpMMAudioEnum, 0xab1890a0, 0xe91f, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
27337 #endif
27338 #endif
27339 
27340 /*****************************************************************************
27341  * SpMMAudioIn coclass
27342  */
27343 
27344 DEFINE_GUID(CLSID_SpMMAudioIn, 0xcf3d2e50, 0x53f2, 0x11d2, 0x96,0x0c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
27345 
27346 #ifdef __cplusplus
27347 class DECLSPEC_UUID("cf3d2e50-53f2-11d2-960c-00c04f8ee628") SpMMAudioIn;
27348 #ifdef __CRT_UUID_DECL
27349 __CRT_UUID_DECL(SpMMAudioIn, 0xcf3d2e50, 0x53f2, 0x11d2, 0x96,0x0c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
27350 #endif
27351 #endif
27352 
27353 /*****************************************************************************
27354  * SpMMAudioOut coclass
27355  */
27356 
27357 DEFINE_GUID(CLSID_SpMMAudioOut, 0xa8c680eb, 0x3d32, 0x11d2, 0x9e,0xe7, 0x00,0xc0,0x4f,0x79,0x73,0x96);
27358 
27359 #ifdef __cplusplus
27360 class DECLSPEC_UUID("a8c680eb-3d32-11d2-9ee7-00c04f797396") SpMMAudioOut;
27361 #ifdef __CRT_UUID_DECL
27362 __CRT_UUID_DECL(SpMMAudioOut, 0xa8c680eb, 0x3d32, 0x11d2, 0x9e,0xe7, 0x00,0xc0,0x4f,0x79,0x73,0x96)
27363 #endif
27364 #endif
27365 
27366 /*****************************************************************************
27367  * SpStream coclass
27368  */
27369 
27370 DEFINE_GUID(CLSID_SpStream, 0x715d9c59, 0x4442, 0x11d2, 0x96,0x05, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
27371 
27372 #ifdef __cplusplus
27373 class DECLSPEC_UUID("715d9c59-4442-11d2-9605-00c04f8ee628") SpStream;
27374 #ifdef __CRT_UUID_DECL
27375 __CRT_UUID_DECL(SpStream, 0x715d9c59, 0x4442, 0x11d2, 0x96,0x05, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
27376 #endif
27377 #endif
27378 
27379 /*****************************************************************************
27380  * SpVoice coclass
27381  */
27382 
27383 DEFINE_GUID(CLSID_SpVoice, 0x96749377, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96);
27384 
27385 #ifdef __cplusplus
27386 class DECLSPEC_UUID("96749377-3391-11d2-9ee3-00c04f797396") SpVoice;
27387 #ifdef __CRT_UUID_DECL
27388 __CRT_UUID_DECL(SpVoice, 0x96749377, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96)
27389 #endif
27390 #endif
27391 
27392 /*****************************************************************************
27393  * SpSharedRecoContext coclass
27394  */
27395 
27396 DEFINE_GUID(CLSID_SpSharedRecoContext, 0x47206204, 0x5eca, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
27397 
27398 #ifdef __cplusplus
27399 class DECLSPEC_UUID("47206204-5eca-11d2-960f-00c04f8ee628") SpSharedRecoContext;
27400 #ifdef __CRT_UUID_DECL
27401 __CRT_UUID_DECL(SpSharedRecoContext, 0x47206204, 0x5eca, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
27402 #endif
27403 #endif
27404 
27405 /*****************************************************************************
27406  * SpInprocRecognizer coclass
27407  */
27408 
27409 DEFINE_GUID(CLSID_SpInprocRecognizer, 0x41b89b6b, 0x9399, 0x11d2, 0x96,0x23, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
27410 
27411 #ifdef __cplusplus
27412 class DECLSPEC_UUID("41b89b6b-9399-11d2-9623-00c04f8ee628") SpInprocRecognizer;
27413 #ifdef __CRT_UUID_DECL
27414 __CRT_UUID_DECL(SpInprocRecognizer, 0x41b89b6b, 0x9399, 0x11d2, 0x96,0x23, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
27415 #endif
27416 #endif
27417 
27418 /*****************************************************************************
27419  * SpSharedRecognizer coclass
27420  */
27421 
27422 DEFINE_GUID(CLSID_SpSharedRecognizer, 0x3bee4890, 0x4fe9, 0x4a37, 0x8c,0x1e, 0x5e,0x7e,0x12,0x79,0x1c,0x1f);
27423 
27424 #ifdef __cplusplus
27425 class DECLSPEC_UUID("3bee4890-4fe9-4a37-8c1e-5e7e12791c1f") SpSharedRecognizer;
27426 #ifdef __CRT_UUID_DECL
27427 __CRT_UUID_DECL(SpSharedRecognizer, 0x3bee4890, 0x4fe9, 0x4a37, 0x8c,0x1e, 0x5e,0x7e,0x12,0x79,0x1c,0x1f)
27428 #endif
27429 #endif
27430 
27431 /*****************************************************************************
27432  * SpLexicon coclass
27433  */
27434 
27435 DEFINE_GUID(CLSID_SpLexicon, 0x0655e396, 0x25d0, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c);
27436 
27437 #ifdef __cplusplus
27438 class DECLSPEC_UUID("0655e396-25d0-11d3-9c26-00c04f8ef87c") SpLexicon;
27439 #ifdef __CRT_UUID_DECL
27440 __CRT_UUID_DECL(SpLexicon, 0x0655e396, 0x25d0, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c)
27441 #endif
27442 #endif
27443 
27444 /*****************************************************************************
27445  * SpUnCompressedLexicon coclass
27446  */
27447 
27448 DEFINE_GUID(CLSID_SpUnCompressedLexicon, 0xc9e37c15, 0xdf92, 0x4727, 0x85,0xd6, 0x72,0xe5,0xee,0xb6,0x99,0x5a);
27449 
27450 #ifdef __cplusplus
27451 class DECLSPEC_UUID("c9e37c15-df92-4727-85d6-72e5eeb6995a") SpUnCompressedLexicon;
27452 #ifdef __CRT_UUID_DECL
27453 __CRT_UUID_DECL(SpUnCompressedLexicon, 0xc9e37c15, 0xdf92, 0x4727, 0x85,0xd6, 0x72,0xe5,0xee,0xb6,0x99,0x5a)
27454 #endif
27455 #endif
27456 
27457 /*****************************************************************************
27458  * SpCompressedLexicon coclass
27459  */
27460 
27461 DEFINE_GUID(CLSID_SpCompressedLexicon, 0x90903716, 0x2f42, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c);
27462 
27463 #ifdef __cplusplus
27464 class DECLSPEC_UUID("90903716-2f42-11d3-9c26-00c04f8ef87c") SpCompressedLexicon;
27465 #ifdef __CRT_UUID_DECL
27466 __CRT_UUID_DECL(SpCompressedLexicon, 0x90903716, 0x2f42, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c)
27467 #endif
27468 #endif
27469 
27470 /*****************************************************************************
27471  * SpShortcut coclass
27472  */
27473 
27474 DEFINE_GUID(CLSID_SpShortcut, 0x0d722f1a, 0x9fcf, 0x4e62, 0x96,0xd8, 0x6d,0xf8,0xf0,0x1a,0x26,0xaa);
27475 
27476 #ifdef __cplusplus
27477 class DECLSPEC_UUID("0d722f1a-9fcf-4e62-96d8-6df8f01a26aa") SpShortcut;
27478 #ifdef __CRT_UUID_DECL
27479 __CRT_UUID_DECL(SpShortcut, 0x0d722f1a, 0x9fcf, 0x4e62, 0x96,0xd8, 0x6d,0xf8,0xf0,0x1a,0x26,0xaa)
27480 #endif
27481 #endif
27482 
27483 /*****************************************************************************
27484  * SpPhoneConverter coclass
27485  */
27486 
27487 DEFINE_GUID(CLSID_SpPhoneConverter, 0x9185f743, 0x1143, 0x4c28, 0x86,0xb5, 0xbf,0xf1,0x4f,0x20,0xe5,0xc8);
27488 
27489 #ifdef __cplusplus
27490 class DECLSPEC_UUID("9185f743-1143-4c28-86b5-bff14f20e5c8") SpPhoneConverter;
27491 #ifdef __CRT_UUID_DECL
27492 __CRT_UUID_DECL(SpPhoneConverter, 0x9185f743, 0x1143, 0x4c28, 0x86,0xb5, 0xbf,0xf1,0x4f,0x20,0xe5,0xc8)
27493 #endif
27494 #endif
27495 
27496 /*****************************************************************************
27497  * SpPhoneticAlphabetConverter coclass
27498  */
27499 
27500 DEFINE_GUID(CLSID_SpPhoneticAlphabetConverter, 0x4f414126, 0xdfe3, 0x4629, 0x99,0xee, 0x79,0x79,0x78,0x31,0x7e,0xad);
27501 
27502 #ifdef __cplusplus
27503 class DECLSPEC_UUID("4f414126-dfe3-4629-99ee-797978317ead") SpPhoneticAlphabetConverter;
27504 #ifdef __CRT_UUID_DECL
27505 __CRT_UUID_DECL(SpPhoneticAlphabetConverter, 0x4f414126, 0xdfe3, 0x4629, 0x99,0xee, 0x79,0x79,0x78,0x31,0x7e,0xad)
27506 #endif
27507 #endif
27508 
27509 /*****************************************************************************
27510  * SpNullPhoneConverter coclass
27511  */
27512 
27513 DEFINE_GUID(CLSID_SpNullPhoneConverter, 0x455f24e9, 0x7396, 0x4a16, 0x97,0x15, 0x7c,0x0f,0xdb,0xe3,0xef,0xe3);
27514 
27515 #ifdef __cplusplus
27516 class DECLSPEC_UUID("455f24e9-7396-4a16-9715-7c0fdbe3efe3") SpNullPhoneConverter;
27517 #ifdef __CRT_UUID_DECL
27518 __CRT_UUID_DECL(SpNullPhoneConverter, 0x455f24e9, 0x7396, 0x4a16, 0x97,0x15, 0x7c,0x0f,0xdb,0xe3,0xef,0xe3)
27519 #endif
27520 #endif
27521 
27522 /*****************************************************************************
27523  * SpTextSelectionInformation coclass
27524  */
27525 
27526 DEFINE_GUID(CLSID_SpTextSelectionInformation, 0x0f92030a, 0xcbfd, 0x4ab8, 0xa1,0x64, 0xff,0x59,0x85,0x54,0x7f,0xf6);
27527 
27528 #ifdef __cplusplus
27529 class DECLSPEC_UUID("0f92030a-cbfd-4ab8-a164-ff5985547ff6") SpTextSelectionInformation;
27530 #ifdef __CRT_UUID_DECL
27531 __CRT_UUID_DECL(SpTextSelectionInformation, 0x0f92030a, 0xcbfd, 0x4ab8, 0xa1,0x64, 0xff,0x59,0x85,0x54,0x7f,0xf6)
27532 #endif
27533 #endif
27534 
27535 /*****************************************************************************
27536  * SpPhraseInfoBuilder coclass
27537  */
27538 
27539 DEFINE_GUID(CLSID_SpPhraseInfoBuilder, 0xc23fc28d, 0xc55f, 0x4720, 0x8b,0x32, 0x91,0xf7,0x3c,0x2b,0xd5,0xd1);
27540 
27541 #ifdef __cplusplus
27542 class DECLSPEC_UUID("c23fc28d-c55f-4720-8b32-91f73c2bd5d1") SpPhraseInfoBuilder;
27543 #ifdef __CRT_UUID_DECL
27544 __CRT_UUID_DECL(SpPhraseInfoBuilder, 0xc23fc28d, 0xc55f, 0x4720, 0x8b,0x32, 0x91,0xf7,0x3c,0x2b,0xd5,0xd1)
27545 #endif
27546 #endif
27547 
27548 /*****************************************************************************
27549  * SpAudioFormat coclass
27550  */
27551 
27552 DEFINE_GUID(CLSID_SpAudioFormat, 0x9ef96870, 0xe160, 0x4792, 0x82,0x0d, 0x48,0xcf,0x06,0x49,0xe4,0xec);
27553 
27554 #ifdef __cplusplus
27555 class DECLSPEC_UUID("9ef96870-e160-4792-820d-48cf0649e4ec") SpAudioFormat;
27556 #ifdef __CRT_UUID_DECL
27557 __CRT_UUID_DECL(SpAudioFormat, 0x9ef96870, 0xe160, 0x4792, 0x82,0x0d, 0x48,0xcf,0x06,0x49,0xe4,0xec)
27558 #endif
27559 #endif
27560 
27561 /*****************************************************************************
27562  * SpWaveFormatEx coclass
27563  */
27564 
27565 DEFINE_GUID(CLSID_SpWaveFormatEx, 0xc79a574c, 0x63be, 0x44b9, 0x80,0x1f, 0x28,0x3f,0x87,0xf8,0x98,0xbe);
27566 
27567 #ifdef __cplusplus
27568 class DECLSPEC_UUID("c79a574c-63be-44b9-801f-283f87f898be") SpWaveFormatEx;
27569 #ifdef __CRT_UUID_DECL
27570 __CRT_UUID_DECL(SpWaveFormatEx, 0xc79a574c, 0x63be, 0x44b9, 0x80,0x1f, 0x28,0x3f,0x87,0xf8,0x98,0xbe)
27571 #endif
27572 #endif
27573 
27574 /*****************************************************************************
27575  * SpInProcRecoContext coclass
27576  */
27577 
27578 DEFINE_GUID(CLSID_SpInProcRecoContext, 0x73ad6842, 0xace0, 0x45e8, 0xa4,0xdd, 0x87,0x95,0x88,0x1a,0x2c,0x2a);
27579 
27580 #ifdef __cplusplus
27581 class DECLSPEC_UUID("73ad6842-ace0-45e8-a4dd-8795881a2c2a") SpInProcRecoContext;
27582 #ifdef __CRT_UUID_DECL
27583 __CRT_UUID_DECL(SpInProcRecoContext, 0x73ad6842, 0xace0, 0x45e8, 0xa4,0xdd, 0x87,0x95,0x88,0x1a,0x2c,0x2a)
27584 #endif
27585 #endif
27586 
27587 /*****************************************************************************
27588  * SpCustomStream coclass
27589  */
27590 
27591 DEFINE_GUID(CLSID_SpCustomStream, 0x8dbef13f, 0x1948, 0x4aa8, 0x8c,0xf0, 0x04,0x8e,0xeb,0xed,0x95,0xd8);
27592 
27593 #ifdef __cplusplus
27594 class DECLSPEC_UUID("8dbef13f-1948-4aa8-8cf0-048eebed95d8") SpCustomStream;
27595 #ifdef __CRT_UUID_DECL
27596 __CRT_UUID_DECL(SpCustomStream, 0x8dbef13f, 0x1948, 0x4aa8, 0x8c,0xf0, 0x04,0x8e,0xeb,0xed,0x95,0xd8)
27597 #endif
27598 #endif
27599 
27600 /*****************************************************************************
27601  * SpFileStream coclass
27602  */
27603 
27604 DEFINE_GUID(CLSID_SpFileStream, 0x947812b3, 0x2ae1, 0x4644, 0xba,0x86, 0x9e,0x90,0xde,0xd7,0xec,0x91);
27605 
27606 #ifdef __cplusplus
27607 class DECLSPEC_UUID("947812b3-2ae1-4644-ba86-9e90ded7ec91") SpFileStream;
27608 #ifdef __CRT_UUID_DECL
27609 __CRT_UUID_DECL(SpFileStream, 0x947812b3, 0x2ae1, 0x4644, 0xba,0x86, 0x9e,0x90,0xde,0xd7,0xec,0x91)
27610 #endif
27611 #endif
27612 
27613 /*****************************************************************************
27614  * SpMemoryStream coclass
27615  */
27616 
27617 DEFINE_GUID(CLSID_SpMemoryStream, 0x5fb7ef7d, 0xdff4, 0x468a, 0xb6,0xb7, 0x2f,0xcb,0xd1,0x88,0xf9,0x94);
27618 
27619 #ifdef __cplusplus
27620 class DECLSPEC_UUID("5fb7ef7d-dff4-468a-b6b7-2fcbd188f994") SpMemoryStream;
27621 #ifdef __CRT_UUID_DECL
27622 __CRT_UUID_DECL(SpMemoryStream, 0x5fb7ef7d, 0xdff4, 0x468a, 0xb6,0xb7, 0x2f,0xcb,0xd1,0x88,0xf9,0x94)
27623 #endif
27624 #endif
27625 
27626 #ifndef __ISpXMLRecoResult_FWD_DEFINED__
27627 #define __ISpXMLRecoResult_FWD_DEFINED__
27628 typedef interface ISpXMLRecoResult ISpXMLRecoResult;
27629 #endif
27630 
27631 #ifndef __ISpRecoGrammar2_FWD_DEFINED__
27632 #define __ISpRecoGrammar2_FWD_DEFINED__
27633 typedef interface ISpRecoGrammar2 ISpRecoGrammar2;
27634 #endif
27635 
27636 #ifndef __ISpeechResourceLoader_FWD_DEFINED__
27637 #define __ISpeechResourceLoader_FWD_DEFINED__
27638 typedef interface ISpeechResourceLoader ISpeechResourceLoader;
27639 #endif
27640 
27641 /* Begin additional prototypes for all interfaces */
27642 
27643 ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
27644 unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
27645 unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
27646 void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
27647 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
27648 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
27649 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
27650 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
27651 ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
27652 unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
27653 unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
27654 void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
27655 
27656 /* End additional prototypes */
27657 
27658 #ifdef __cplusplus
27659 }
27660 #endif
27661 
27662 #endif /* __sapi53_h__ */
27663