1 /*** Autogenerated by WIDL 1.6 from include/sapi51.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 __sapi51_h__
16 #define __sapi51_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 __ISpEventSink_FWD_DEFINED__
81 #define __ISpEventSink_FWD_DEFINED__
82 typedef interface ISpEventSink ISpEventSink;
83 #endif
84 
85 #ifndef __ISpStreamFormat_FWD_DEFINED__
86 #define __ISpStreamFormat_FWD_DEFINED__
87 typedef interface ISpStreamFormat ISpStreamFormat;
88 #endif
89 
90 #ifndef __ISpStream_FWD_DEFINED__
91 #define __ISpStream_FWD_DEFINED__
92 typedef interface ISpStream ISpStream;
93 #endif
94 
95 #ifndef __ISpStreamFormatConverter_FWD_DEFINED__
96 #define __ISpStreamFormatConverter_FWD_DEFINED__
97 typedef interface ISpStreamFormatConverter ISpStreamFormatConverter;
98 #endif
99 
100 #ifndef __ISpAudio_FWD_DEFINED__
101 #define __ISpAudio_FWD_DEFINED__
102 typedef interface ISpAudio ISpAudio;
103 #endif
104 
105 #ifndef __ISpMMSysAudio_FWD_DEFINED__
106 #define __ISpMMSysAudio_FWD_DEFINED__
107 typedef interface ISpMMSysAudio ISpMMSysAudio;
108 #endif
109 
110 #ifndef __ISpTranscript_FWD_DEFINED__
111 #define __ISpTranscript_FWD_DEFINED__
112 typedef interface ISpTranscript ISpTranscript;
113 #endif
114 
115 #ifndef __ISpLexicon_FWD_DEFINED__
116 #define __ISpLexicon_FWD_DEFINED__
117 typedef interface ISpLexicon ISpLexicon;
118 #endif
119 
120 #ifndef __ISpContainerLexicon_FWD_DEFINED__
121 #define __ISpContainerLexicon_FWD_DEFINED__
122 typedef interface ISpContainerLexicon ISpContainerLexicon;
123 #endif
124 
125 #ifndef __ISpPhoneConverter_FWD_DEFINED__
126 #define __ISpPhoneConverter_FWD_DEFINED__
127 typedef interface ISpPhoneConverter ISpPhoneConverter;
128 #endif
129 
130 #ifndef __ISpVoice_FWD_DEFINED__
131 #define __ISpVoice_FWD_DEFINED__
132 typedef interface ISpVoice ISpVoice;
133 #endif
134 
135 #ifndef __ISpPhrase_FWD_DEFINED__
136 #define __ISpPhrase_FWD_DEFINED__
137 typedef interface ISpPhrase ISpPhrase;
138 #endif
139 
140 #ifndef __ISpPhraseAlt_FWD_DEFINED__
141 #define __ISpPhraseAlt_FWD_DEFINED__
142 typedef interface ISpPhraseAlt ISpPhraseAlt;
143 #endif
144 
145 #ifndef __ISpRecoResult_FWD_DEFINED__
146 #define __ISpRecoResult_FWD_DEFINED__
147 typedef interface ISpRecoResult ISpRecoResult;
148 #endif
149 
150 #ifndef __ISpGrammarBuilder_FWD_DEFINED__
151 #define __ISpGrammarBuilder_FWD_DEFINED__
152 typedef interface ISpGrammarBuilder ISpGrammarBuilder;
153 #endif
154 
155 #ifndef __ISpRecoGrammar_FWD_DEFINED__
156 #define __ISpRecoGrammar_FWD_DEFINED__
157 typedef interface ISpRecoGrammar ISpRecoGrammar;
158 #endif
159 
160 #ifndef __ISpRecoContext_FWD_DEFINED__
161 #define __ISpRecoContext_FWD_DEFINED__
162 typedef interface ISpRecoContext ISpRecoContext;
163 #endif
164 
165 #ifndef __ISpProperties_FWD_DEFINED__
166 #define __ISpProperties_FWD_DEFINED__
167 typedef interface ISpProperties ISpProperties;
168 #endif
169 
170 #ifndef __ISpRecognizer_FWD_DEFINED__
171 #define __ISpRecognizer_FWD_DEFINED__
172 typedef interface ISpRecognizer ISpRecognizer;
173 #endif
174 
175 #ifndef __ISpeechDataKey_FWD_DEFINED__
176 #define __ISpeechDataKey_FWD_DEFINED__
177 typedef interface ISpeechDataKey ISpeechDataKey;
178 #endif
179 
180 #ifndef __ISpeechObjectToken_FWD_DEFINED__
181 #define __ISpeechObjectToken_FWD_DEFINED__
182 typedef interface ISpeechObjectToken ISpeechObjectToken;
183 #endif
184 
185 #ifndef __ISpeechObjectTokens_FWD_DEFINED__
186 #define __ISpeechObjectTokens_FWD_DEFINED__
187 typedef interface ISpeechObjectTokens ISpeechObjectTokens;
188 #endif
189 
190 #ifndef __ISpeechObjectTokenCategory_FWD_DEFINED__
191 #define __ISpeechObjectTokenCategory_FWD_DEFINED__
192 typedef interface ISpeechObjectTokenCategory ISpeechObjectTokenCategory;
193 #endif
194 
195 #ifndef __ISpeechAudioFormat_FWD_DEFINED__
196 #define __ISpeechAudioFormat_FWD_DEFINED__
197 typedef interface ISpeechAudioFormat ISpeechAudioFormat;
198 #endif
199 
200 #ifndef __ISpeechBaseStream_FWD_DEFINED__
201 #define __ISpeechBaseStream_FWD_DEFINED__
202 typedef interface ISpeechBaseStream ISpeechBaseStream;
203 #endif
204 
205 #ifndef __ISpeechAudio_FWD_DEFINED__
206 #define __ISpeechAudio_FWD_DEFINED__
207 typedef interface ISpeechAudio ISpeechAudio;
208 #endif
209 
210 #ifndef __ISpeechMMSysAudio_FWD_DEFINED__
211 #define __ISpeechMMSysAudio_FWD_DEFINED__
212 typedef interface ISpeechMMSysAudio ISpeechMMSysAudio;
213 #endif
214 
215 #ifndef __ISpeechFileStream_FWD_DEFINED__
216 #define __ISpeechFileStream_FWD_DEFINED__
217 typedef interface ISpeechFileStream ISpeechFileStream;
218 #endif
219 
220 #ifndef __ISpeechCustomStream_FWD_DEFINED__
221 #define __ISpeechCustomStream_FWD_DEFINED__
222 typedef interface ISpeechCustomStream ISpeechCustomStream;
223 #endif
224 
225 #ifndef __ISpeechMemoryStream_FWD_DEFINED__
226 #define __ISpeechMemoryStream_FWD_DEFINED__
227 typedef interface ISpeechMemoryStream ISpeechMemoryStream;
228 #endif
229 
230 #ifndef __ISpeechAudioStatus_FWD_DEFINED__
231 #define __ISpeechAudioStatus_FWD_DEFINED__
232 typedef interface ISpeechAudioStatus ISpeechAudioStatus;
233 #endif
234 
235 #ifndef __ISpeechAudioBufferInfo_FWD_DEFINED__
236 #define __ISpeechAudioBufferInfo_FWD_DEFINED__
237 typedef interface ISpeechAudioBufferInfo ISpeechAudioBufferInfo;
238 #endif
239 
240 #ifndef __ISpeechWaveFormatEx_FWD_DEFINED__
241 #define __ISpeechWaveFormatEx_FWD_DEFINED__
242 typedef interface ISpeechWaveFormatEx ISpeechWaveFormatEx;
243 #endif
244 
245 #ifndef __ISpeechVoice_FWD_DEFINED__
246 #define __ISpeechVoice_FWD_DEFINED__
247 typedef interface ISpeechVoice ISpeechVoice;
248 #endif
249 
250 #ifndef __ISpeechVoiceStatus_FWD_DEFINED__
251 #define __ISpeechVoiceStatus_FWD_DEFINED__
252 typedef interface ISpeechVoiceStatus ISpeechVoiceStatus;
253 #endif
254 
255 #ifndef ___ISpeechVoiceEvents_FWD_DEFINED__
256 #define ___ISpeechVoiceEvents_FWD_DEFINED__
257 typedef interface _ISpeechVoiceEvents _ISpeechVoiceEvents;
258 #endif
259 
260 #ifndef __ISpeechRecognizer_FWD_DEFINED__
261 #define __ISpeechRecognizer_FWD_DEFINED__
262 typedef interface ISpeechRecognizer ISpeechRecognizer;
263 #endif
264 
265 #ifndef __ISpeechRecognizerStatus_FWD_DEFINED__
266 #define __ISpeechRecognizerStatus_FWD_DEFINED__
267 typedef interface ISpeechRecognizerStatus ISpeechRecognizerStatus;
268 #endif
269 
270 #ifndef __ISpeechRecoContext_FWD_DEFINED__
271 #define __ISpeechRecoContext_FWD_DEFINED__
272 typedef interface ISpeechRecoContext ISpeechRecoContext;
273 #endif
274 
275 #ifndef __ISpeechRecoGrammar_FWD_DEFINED__
276 #define __ISpeechRecoGrammar_FWD_DEFINED__
277 typedef interface ISpeechRecoGrammar ISpeechRecoGrammar;
278 #endif
279 
280 #ifndef ___ISpeechRecoContextEvents_FWD_DEFINED__
281 #define ___ISpeechRecoContextEvents_FWD_DEFINED__
282 typedef interface _ISpeechRecoContextEvents _ISpeechRecoContextEvents;
283 #endif
284 
285 #ifndef __ISpeechGrammarRule_FWD_DEFINED__
286 #define __ISpeechGrammarRule_FWD_DEFINED__
287 typedef interface ISpeechGrammarRule ISpeechGrammarRule;
288 #endif
289 
290 #ifndef __ISpeechGrammarRules_FWD_DEFINED__
291 #define __ISpeechGrammarRules_FWD_DEFINED__
292 typedef interface ISpeechGrammarRules ISpeechGrammarRules;
293 #endif
294 
295 #ifndef __ISpeechGrammarRuleState_FWD_DEFINED__
296 #define __ISpeechGrammarRuleState_FWD_DEFINED__
297 typedef interface ISpeechGrammarRuleState ISpeechGrammarRuleState;
298 #endif
299 
300 #ifndef __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
301 #define __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
302 typedef interface ISpeechGrammarRuleStateTransitions ISpeechGrammarRuleStateTransitions;
303 #endif
304 
305 #ifndef __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
306 #define __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
307 typedef interface ISpeechGrammarRuleStateTransition ISpeechGrammarRuleStateTransition;
308 #endif
309 
310 #ifndef __ISpeechTextSelectionInformation_FWD_DEFINED__
311 #define __ISpeechTextSelectionInformation_FWD_DEFINED__
312 typedef interface ISpeechTextSelectionInformation ISpeechTextSelectionInformation;
313 #endif
314 
315 #ifndef __ISpeechRecoResult_FWD_DEFINED__
316 #define __ISpeechRecoResult_FWD_DEFINED__
317 typedef interface ISpeechRecoResult ISpeechRecoResult;
318 #endif
319 
320 #ifndef __ISpeechPhraseInfoBuilder_FWD_DEFINED__
321 #define __ISpeechPhraseInfoBuilder_FWD_DEFINED__
322 typedef interface ISpeechPhraseInfoBuilder ISpeechPhraseInfoBuilder;
323 #endif
324 
325 #ifndef __ISpeechRecoResultTimes_FWD_DEFINED__
326 #define __ISpeechRecoResultTimes_FWD_DEFINED__
327 typedef interface ISpeechRecoResultTimes ISpeechRecoResultTimes;
328 #endif
329 
330 #ifndef __ISpeechPhraseAlternate_FWD_DEFINED__
331 #define __ISpeechPhraseAlternate_FWD_DEFINED__
332 typedef interface ISpeechPhraseAlternate ISpeechPhraseAlternate;
333 #endif
334 
335 #ifndef __ISpeechPhraseAlternates_FWD_DEFINED__
336 #define __ISpeechPhraseAlternates_FWD_DEFINED__
337 typedef interface ISpeechPhraseAlternates ISpeechPhraseAlternates;
338 #endif
339 
340 #ifndef __ISpeechPhraseInfo_FWD_DEFINED__
341 #define __ISpeechPhraseInfo_FWD_DEFINED__
342 typedef interface ISpeechPhraseInfo ISpeechPhraseInfo;
343 #endif
344 
345 #ifndef __ISpeechPhraseElement_FWD_DEFINED__
346 #define __ISpeechPhraseElement_FWD_DEFINED__
347 typedef interface ISpeechPhraseElement ISpeechPhraseElement;
348 #endif
349 
350 #ifndef __ISpeechPhraseElements_FWD_DEFINED__
351 #define __ISpeechPhraseElements_FWD_DEFINED__
352 typedef interface ISpeechPhraseElements ISpeechPhraseElements;
353 #endif
354 
355 #ifndef __ISpeechPhraseReplacement_FWD_DEFINED__
356 #define __ISpeechPhraseReplacement_FWD_DEFINED__
357 typedef interface ISpeechPhraseReplacement ISpeechPhraseReplacement;
358 #endif
359 
360 #ifndef __ISpeechPhraseReplacements_FWD_DEFINED__
361 #define __ISpeechPhraseReplacements_FWD_DEFINED__
362 typedef interface ISpeechPhraseReplacements ISpeechPhraseReplacements;
363 #endif
364 
365 #ifndef __ISpeechPhraseProperty_FWD_DEFINED__
366 #define __ISpeechPhraseProperty_FWD_DEFINED__
367 typedef interface ISpeechPhraseProperty ISpeechPhraseProperty;
368 #endif
369 
370 #ifndef __ISpeechPhraseProperties_FWD_DEFINED__
371 #define __ISpeechPhraseProperties_FWD_DEFINED__
372 typedef interface ISpeechPhraseProperties ISpeechPhraseProperties;
373 #endif
374 
375 #ifndef __ISpeechPhraseRule_FWD_DEFINED__
376 #define __ISpeechPhraseRule_FWD_DEFINED__
377 typedef interface ISpeechPhraseRule ISpeechPhraseRule;
378 #endif
379 
380 #ifndef __ISpeechPhraseRules_FWD_DEFINED__
381 #define __ISpeechPhraseRules_FWD_DEFINED__
382 typedef interface ISpeechPhraseRules ISpeechPhraseRules;
383 #endif
384 
385 #ifndef __ISpeechLexiconWords_FWD_DEFINED__
386 #define __ISpeechLexiconWords_FWD_DEFINED__
387 typedef interface ISpeechLexiconWords ISpeechLexiconWords;
388 #endif
389 
390 #ifndef __ISpeechLexicon_FWD_DEFINED__
391 #define __ISpeechLexicon_FWD_DEFINED__
392 typedef interface ISpeechLexicon ISpeechLexicon;
393 #endif
394 
395 #ifndef __ISpeechLexiconWord_FWD_DEFINED__
396 #define __ISpeechLexiconWord_FWD_DEFINED__
397 typedef interface ISpeechLexiconWord ISpeechLexiconWord;
398 #endif
399 
400 #ifndef __ISpeechLexiconPronunciations_FWD_DEFINED__
401 #define __ISpeechLexiconPronunciations_FWD_DEFINED__
402 typedef interface ISpeechLexiconPronunciations ISpeechLexiconPronunciations;
403 #endif
404 
405 #ifndef __ISpeechLexiconPronunciation_FWD_DEFINED__
406 #define __ISpeechLexiconPronunciation_FWD_DEFINED__
407 typedef interface ISpeechLexiconPronunciation ISpeechLexiconPronunciation;
408 #endif
409 
410 #ifndef __ISpeechPhoneConverter_FWD_DEFINED__
411 #define __ISpeechPhoneConverter_FWD_DEFINED__
412 typedef interface ISpeechPhoneConverter ISpeechPhoneConverter;
413 #endif
414 
415 #ifndef __SpNotifyTranslator_FWD_DEFINED__
416 #define __SpNotifyTranslator_FWD_DEFINED__
417 #ifdef __cplusplus
418 typedef class SpNotifyTranslator SpNotifyTranslator;
419 #else
420 typedef struct SpNotifyTranslator SpNotifyTranslator;
421 #endif /* defined __cplusplus */
422 #endif /* defined __SpNotifyTranslator_FWD_DEFINED__ */
423 
424 #ifndef __SpObjectTokenCategory_FWD_DEFINED__
425 #define __SpObjectTokenCategory_FWD_DEFINED__
426 #ifdef __cplusplus
427 typedef class SpObjectTokenCategory SpObjectTokenCategory;
428 #else
429 typedef struct SpObjectTokenCategory SpObjectTokenCategory;
430 #endif /* defined __cplusplus */
431 #endif /* defined __SpObjectTokenCategory_FWD_DEFINED__ */
432 
433 #ifndef __SpObjectToken_FWD_DEFINED__
434 #define __SpObjectToken_FWD_DEFINED__
435 #ifdef __cplusplus
436 typedef class SpObjectToken SpObjectToken;
437 #else
438 typedef struct SpObjectToken SpObjectToken;
439 #endif /* defined __cplusplus */
440 #endif /* defined __SpObjectToken_FWD_DEFINED__ */
441 
442 #ifndef __SpResourceManager_FWD_DEFINED__
443 #define __SpResourceManager_FWD_DEFINED__
444 #ifdef __cplusplus
445 typedef class SpResourceManager SpResourceManager;
446 #else
447 typedef struct SpResourceManager SpResourceManager;
448 #endif /* defined __cplusplus */
449 #endif /* defined __SpResourceManager_FWD_DEFINED__ */
450 
451 #ifndef __SpStreamFormatConverter_FWD_DEFINED__
452 #define __SpStreamFormatConverter_FWD_DEFINED__
453 #ifdef __cplusplus
454 typedef class SpStreamFormatConverter SpStreamFormatConverter;
455 #else
456 typedef struct SpStreamFormatConverter SpStreamFormatConverter;
457 #endif /* defined __cplusplus */
458 #endif /* defined __SpStreamFormatConverter_FWD_DEFINED__ */
459 
460 #ifndef __SpMMAudioEnum_FWD_DEFINED__
461 #define __SpMMAudioEnum_FWD_DEFINED__
462 #ifdef __cplusplus
463 typedef class SpMMAudioEnum SpMMAudioEnum;
464 #else
465 typedef struct SpMMAudioEnum SpMMAudioEnum;
466 #endif /* defined __cplusplus */
467 #endif /* defined __SpMMAudioEnum_FWD_DEFINED__ */
468 
469 #ifndef __SpMMAudioIn_FWD_DEFINED__
470 #define __SpMMAudioIn_FWD_DEFINED__
471 #ifdef __cplusplus
472 typedef class SpMMAudioIn SpMMAudioIn;
473 #else
474 typedef struct SpMMAudioIn SpMMAudioIn;
475 #endif /* defined __cplusplus */
476 #endif /* defined __SpMMAudioIn_FWD_DEFINED__ */
477 
478 #ifndef __SpMMAudioOut_FWD_DEFINED__
479 #define __SpMMAudioOut_FWD_DEFINED__
480 #ifdef __cplusplus
481 typedef class SpMMAudioOut SpMMAudioOut;
482 #else
483 typedef struct SpMMAudioOut SpMMAudioOut;
484 #endif /* defined __cplusplus */
485 #endif /* defined __SpMMAudioOut_FWD_DEFINED__ */
486 
487 #ifndef __SpStream_FWD_DEFINED__
488 #define __SpStream_FWD_DEFINED__
489 #ifdef __cplusplus
490 typedef class SpStream SpStream;
491 #else
492 typedef struct SpStream SpStream;
493 #endif /* defined __cplusplus */
494 #endif /* defined __SpStream_FWD_DEFINED__ */
495 
496 #ifndef __SpVoice_FWD_DEFINED__
497 #define __SpVoice_FWD_DEFINED__
498 #ifdef __cplusplus
499 typedef class SpVoice SpVoice;
500 #else
501 typedef struct SpVoice SpVoice;
502 #endif /* defined __cplusplus */
503 #endif /* defined __SpVoice_FWD_DEFINED__ */
504 
505 #ifndef __SpSharedRecoContext_FWD_DEFINED__
506 #define __SpSharedRecoContext_FWD_DEFINED__
507 #ifdef __cplusplus
508 typedef class SpSharedRecoContext SpSharedRecoContext;
509 #else
510 typedef struct SpSharedRecoContext SpSharedRecoContext;
511 #endif /* defined __cplusplus */
512 #endif /* defined __SpSharedRecoContext_FWD_DEFINED__ */
513 
514 #ifndef __SpInprocRecognizer_FWD_DEFINED__
515 #define __SpInprocRecognizer_FWD_DEFINED__
516 #ifdef __cplusplus
517 typedef class SpInprocRecognizer SpInprocRecognizer;
518 #else
519 typedef struct SpInprocRecognizer SpInprocRecognizer;
520 #endif /* defined __cplusplus */
521 #endif /* defined __SpInprocRecognizer_FWD_DEFINED__ */
522 
523 #ifndef __SpSharedRecognizer_FWD_DEFINED__
524 #define __SpSharedRecognizer_FWD_DEFINED__
525 #ifdef __cplusplus
526 typedef class SpSharedRecognizer SpSharedRecognizer;
527 #else
528 typedef struct SpSharedRecognizer SpSharedRecognizer;
529 #endif /* defined __cplusplus */
530 #endif /* defined __SpSharedRecognizer_FWD_DEFINED__ */
531 
532 #ifndef __SpLexicon_FWD_DEFINED__
533 #define __SpLexicon_FWD_DEFINED__
534 #ifdef __cplusplus
535 typedef class SpLexicon SpLexicon;
536 #else
537 typedef struct SpLexicon SpLexicon;
538 #endif /* defined __cplusplus */
539 #endif /* defined __SpLexicon_FWD_DEFINED__ */
540 
541 #ifndef __SpUnCompressedLexicon_FWD_DEFINED__
542 #define __SpUnCompressedLexicon_FWD_DEFINED__
543 #ifdef __cplusplus
544 typedef class SpUnCompressedLexicon SpUnCompressedLexicon;
545 #else
546 typedef struct SpUnCompressedLexicon SpUnCompressedLexicon;
547 #endif /* defined __cplusplus */
548 #endif /* defined __SpUnCompressedLexicon_FWD_DEFINED__ */
549 
550 #ifndef __SpCompressedLexicon_FWD_DEFINED__
551 #define __SpCompressedLexicon_FWD_DEFINED__
552 #ifdef __cplusplus
553 typedef class SpCompressedLexicon SpCompressedLexicon;
554 #else
555 typedef struct SpCompressedLexicon SpCompressedLexicon;
556 #endif /* defined __cplusplus */
557 #endif /* defined __SpCompressedLexicon_FWD_DEFINED__ */
558 
559 #ifndef __SpPhoneConverter_FWD_DEFINED__
560 #define __SpPhoneConverter_FWD_DEFINED__
561 #ifdef __cplusplus
562 typedef class SpPhoneConverter SpPhoneConverter;
563 #else
564 typedef struct SpPhoneConverter SpPhoneConverter;
565 #endif /* defined __cplusplus */
566 #endif /* defined __SpPhoneConverter_FWD_DEFINED__ */
567 
568 #ifndef __SpNullPhoneConverter_FWD_DEFINED__
569 #define __SpNullPhoneConverter_FWD_DEFINED__
570 #ifdef __cplusplus
571 typedef class SpNullPhoneConverter SpNullPhoneConverter;
572 #else
573 typedef struct SpNullPhoneConverter SpNullPhoneConverter;
574 #endif /* defined __cplusplus */
575 #endif /* defined __SpNullPhoneConverter_FWD_DEFINED__ */
576 
577 #ifndef __SpTextSelectionInformation_FWD_DEFINED__
578 #define __SpTextSelectionInformation_FWD_DEFINED__
579 #ifdef __cplusplus
580 typedef class SpTextSelectionInformation SpTextSelectionInformation;
581 #else
582 typedef struct SpTextSelectionInformation SpTextSelectionInformation;
583 #endif /* defined __cplusplus */
584 #endif /* defined __SpTextSelectionInformation_FWD_DEFINED__ */
585 
586 #ifndef __SpPhraseInfoBuilder_FWD_DEFINED__
587 #define __SpPhraseInfoBuilder_FWD_DEFINED__
588 #ifdef __cplusplus
589 typedef class SpPhraseInfoBuilder SpPhraseInfoBuilder;
590 #else
591 typedef struct SpPhraseInfoBuilder SpPhraseInfoBuilder;
592 #endif /* defined __cplusplus */
593 #endif /* defined __SpPhraseInfoBuilder_FWD_DEFINED__ */
594 
595 #ifndef __SpAudioFormat_FWD_DEFINED__
596 #define __SpAudioFormat_FWD_DEFINED__
597 #ifdef __cplusplus
598 typedef class SpAudioFormat SpAudioFormat;
599 #else
600 typedef struct SpAudioFormat SpAudioFormat;
601 #endif /* defined __cplusplus */
602 #endif /* defined __SpAudioFormat_FWD_DEFINED__ */
603 
604 #ifndef __SpWaveFormatEx_FWD_DEFINED__
605 #define __SpWaveFormatEx_FWD_DEFINED__
606 #ifdef __cplusplus
607 typedef class SpWaveFormatEx SpWaveFormatEx;
608 #else
609 typedef struct SpWaveFormatEx SpWaveFormatEx;
610 #endif /* defined __cplusplus */
611 #endif /* defined __SpWaveFormatEx_FWD_DEFINED__ */
612 
613 #ifndef __SpInProcRecoContext_FWD_DEFINED__
614 #define __SpInProcRecoContext_FWD_DEFINED__
615 #ifdef __cplusplus
616 typedef class SpInProcRecoContext SpInProcRecoContext;
617 #else
618 typedef struct SpInProcRecoContext SpInProcRecoContext;
619 #endif /* defined __cplusplus */
620 #endif /* defined __SpInProcRecoContext_FWD_DEFINED__ */
621 
622 #ifndef __SpCustomStream_FWD_DEFINED__
623 #define __SpCustomStream_FWD_DEFINED__
624 #ifdef __cplusplus
625 typedef class SpCustomStream SpCustomStream;
626 #else
627 typedef struct SpCustomStream SpCustomStream;
628 #endif /* defined __cplusplus */
629 #endif /* defined __SpCustomStream_FWD_DEFINED__ */
630 
631 #ifndef __SpFileStream_FWD_DEFINED__
632 #define __SpFileStream_FWD_DEFINED__
633 #ifdef __cplusplus
634 typedef class SpFileStream SpFileStream;
635 #else
636 typedef struct SpFileStream SpFileStream;
637 #endif /* defined __cplusplus */
638 #endif /* defined __SpFileStream_FWD_DEFINED__ */
639 
640 #ifndef __SpMemoryStream_FWD_DEFINED__
641 #define __SpMemoryStream_FWD_DEFINED__
642 #ifdef __cplusplus
643 typedef class SpMemoryStream SpMemoryStream;
644 #else
645 typedef struct SpMemoryStream SpMemoryStream;
646 #endif /* defined __cplusplus */
647 #endif /* defined __SpMemoryStream_FWD_DEFINED__ */
648 
649 /* Headers for imported files */
650 
651 #include <oaidl.h>
652 #include <ocidl.h>
653 
654 #ifdef __cplusplus
655 extern "C" {
656 #endif
657 
658 #ifndef _SAPI_VER
659 #error "you have to include <sapi.h> header before this."
660 #endif
661 #if 0
662 typedef struct WAVEFORMATEX {
663     WORD wFormatTag;
664     WORD nChannels;
665     DWORD nSamplesPerSec;
666     DWORD nAvgBytesPerSec;
667     WORD nBlockAlign;
668     WORD wBitsPerSample;
669     WORD cbSize;
670 } WAVEFORMATEX;
671 #endif
672 #ifndef __ISpNotifySource_FWD_DEFINED__
673 #define __ISpNotifySource_FWD_DEFINED__
674 typedef interface ISpNotifySource ISpNotifySource;
675 #endif
676 
677 #ifndef __ISpNotifySink_FWD_DEFINED__
678 #define __ISpNotifySink_FWD_DEFINED__
679 typedef interface ISpNotifySink ISpNotifySink;
680 #endif
681 
682 #ifndef __ISpNotifyTranslator_FWD_DEFINED__
683 #define __ISpNotifyTranslator_FWD_DEFINED__
684 typedef interface ISpNotifyTranslator ISpNotifyTranslator;
685 #endif
686 
687 #ifndef __ISpDataKey_FWD_DEFINED__
688 #define __ISpDataKey_FWD_DEFINED__
689 typedef interface ISpDataKey ISpDataKey;
690 #endif
691 
692 #ifndef __ISpObjectTokenCategory_FWD_DEFINED__
693 #define __ISpObjectTokenCategory_FWD_DEFINED__
694 typedef interface ISpObjectTokenCategory ISpObjectTokenCategory;
695 #endif
696 
697 #ifndef __ISpObjectToken_FWD_DEFINED__
698 #define __ISpObjectToken_FWD_DEFINED__
699 typedef interface ISpObjectToken ISpObjectToken;
700 #endif
701 
702 #ifndef __IEnumSpObjectTokens_FWD_DEFINED__
703 #define __IEnumSpObjectTokens_FWD_DEFINED__
704 typedef interface IEnumSpObjectTokens IEnumSpObjectTokens;
705 #endif
706 
707 #ifndef __ISpObjectWithToken_FWD_DEFINED__
708 #define __ISpObjectWithToken_FWD_DEFINED__
709 typedef interface ISpObjectWithToken ISpObjectWithToken;
710 #endif
711 
712 #ifndef __ISpResourceManager_FWD_DEFINED__
713 #define __ISpResourceManager_FWD_DEFINED__
714 typedef interface ISpResourceManager ISpResourceManager;
715 #endif
716 
717 #ifndef __ISpEventSource_FWD_DEFINED__
718 #define __ISpEventSource_FWD_DEFINED__
719 typedef interface ISpEventSource ISpEventSource;
720 #endif
721 
722 #ifndef __ISpEventSink_FWD_DEFINED__
723 #define __ISpEventSink_FWD_DEFINED__
724 typedef interface ISpEventSink ISpEventSink;
725 #endif
726 
727 #ifndef __ISpStreamFormat_FWD_DEFINED__
728 #define __ISpStreamFormat_FWD_DEFINED__
729 typedef interface ISpStreamFormat ISpStreamFormat;
730 #endif
731 
732 #ifndef __ISpStream_FWD_DEFINED__
733 #define __ISpStream_FWD_DEFINED__
734 typedef interface ISpStream ISpStream;
735 #endif
736 
737 #ifndef __ISpStreamFormatConverter_FWD_DEFINED__
738 #define __ISpStreamFormatConverter_FWD_DEFINED__
739 typedef interface ISpStreamFormatConverter ISpStreamFormatConverter;
740 #endif
741 
742 #ifndef __ISpAudio_FWD_DEFINED__
743 #define __ISpAudio_FWD_DEFINED__
744 typedef interface ISpAudio ISpAudio;
745 #endif
746 
747 #ifndef __ISpMMSysAudio_FWD_DEFINED__
748 #define __ISpMMSysAudio_FWD_DEFINED__
749 typedef interface ISpMMSysAudio ISpMMSysAudio;
750 #endif
751 
752 #ifndef __ISpTranscript_FWD_DEFINED__
753 #define __ISpTranscript_FWD_DEFINED__
754 typedef interface ISpTranscript ISpTranscript;
755 #endif
756 
757 #ifndef __ISpVoice_FWD_DEFINED__
758 #define __ISpVoice_FWD_DEFINED__
759 typedef interface ISpVoice ISpVoice;
760 #endif
761 
762 #ifndef __ISpRecoResult_FWD_DEFINED__
763 #define __ISpRecoResult_FWD_DEFINED__
764 typedef interface ISpRecoResult ISpRecoResult;
765 #endif
766 
767 #ifndef __ISpRecoContext_FWD_DEFINED__
768 #define __ISpRecoContext_FWD_DEFINED__
769 typedef interface ISpRecoContext ISpRecoContext;
770 #endif
771 
772 #ifndef __ISpRecognizer_FWD_DEFINED__
773 #define __ISpRecognizer_FWD_DEFINED__
774 typedef interface ISpRecognizer ISpRecognizer;
775 #endif
776 
777 #ifndef __ISpProperties_FWD_DEFINED__
778 #define __ISpProperties_FWD_DEFINED__
779 typedef interface ISpProperties ISpProperties;
780 #endif
781 
782 #ifndef __ISpLexicon_FWD_DEFINED__
783 #define __ISpLexicon_FWD_DEFINED__
784 typedef interface ISpLexicon ISpLexicon;
785 #endif
786 
787 #ifndef __ISpPhoneConverter_FWD_DEFINED__
788 #define __ISpPhoneConverter_FWD_DEFINED__
789 typedef interface ISpPhoneConverter ISpPhoneConverter;
790 #endif
791 
792 #ifndef __ISpPhrase_FWD_DEFINED__
793 #define __ISpPhrase_FWD_DEFINED__
794 typedef interface ISpPhrase ISpPhrase;
795 #endif
796 
797 typedef enum SPDATAKEYLOCATION {
798     SPDKL_DefaultLocation = 0,
799     SPDKL_CurrentUser = 1,
800     SPDKL_LocalMachine = 2,
801     SPDKL_CurrentConfig = 5
802 } SPDATAKEYLOCATION;
803 typedef enum SPSTREAMFORMAT {
804     SPSF_Default = -1,
805     SPSF_NoAssignedFormat = 0,
806     SPSF_Text = 1,
807     SPSF_NonStandardFormat = 2,
808     SPSF_ExtendedAudioFormat = 3,
809     SPSF_8kHz8BitMono = 4,
810     SPSF_8kHz8BitStereo = 5,
811     SPSF_8kHz16BitMono = 6,
812     SPSF_8kHz16BitStereo = 7,
813     SPSF_11kHz8BitMono = 8,
814     SPSF_11kHz8BitStereo = 9,
815     SPSF_11kHz16BitMono = 10,
816     SPSF_11kHz16BitStereo = 11,
817     SPSF_12kHz8BitMono = 12,
818     SPSF_12kHz8BitStereo = 13,
819     SPSF_12kHz16BitMono = 14,
820     SPSF_12kHz16BitStereo = 15,
821     SPSF_16kHz8BitMono = 16,
822     SPSF_16kHz8BitStereo = 17,
823     SPSF_16kHz16BitMono = 18,
824     SPSF_16kHz16BitStereo = 19,
825     SPSF_22kHz8BitMono = 20,
826     SPSF_22kHz8BitStereo = 21,
827     SPSF_22kHz16BitMono = 22,
828     SPSF_22kHz16BitStereo = 23,
829     SPSF_24kHz8BitMono = 24,
830     SPSF_24kHz8BitStereo = 25,
831     SPSF_24kHz16BitMono = 26,
832     SPSF_24kHz16BitStereo = 27,
833     SPSF_32kHz8BitMono = 28,
834     SPSF_32kHz8BitStereo = 29,
835     SPSF_32kHz16BitMono = 30,
836     SPSF_32kHz16BitStereo = 31,
837     SPSF_44kHz8BitMono = 32,
838     SPSF_44kHz8BitStereo = 33,
839     SPSF_44kHz16BitMono = 34,
840     SPSF_44kHz16BitStereo = 35,
841     SPSF_48kHz8BitMono = 36,
842     SPSF_48kHz8BitStereo = 37,
843     SPSF_48kHz16BitMono = 38,
844     SPSF_48kHz16BitStereo = 39,
845     SPSF_TrueSpeech_8kHz1BitMono = 40,
846     SPSF_CCITT_ALaw_8kHzMono = 41,
847     SPSF_CCITT_ALaw_8kHzStereo = 42,
848     SPSF_CCITT_ALaw_11kHzMono = 43,
849     SPSF_CCITT_ALaw_11kHzStereo = 44,
850     SPSF_CCITT_ALaw_22kHzMono = 45,
851     SPSF_CCITT_ALaw_22kHzStereo = 46,
852     SPSF_CCITT_ALaw_44kHzMono = 47,
853     SPSF_CCITT_ALaw_44kHzStereo = 48,
854     SPSF_CCITT_uLaw_8kHzMono = 49,
855     SPSF_CCITT_uLaw_8kHzStereo = 50,
856     SPSF_CCITT_uLaw_11kHzMono = 51,
857     SPSF_CCITT_uLaw_11kHzStereo = 52,
858     SPSF_CCITT_uLaw_22kHzMono = 53,
859     SPSF_CCITT_uLaw_22kHzStereo = 54,
860     SPSF_CCITT_uLaw_44kHzMono = 55,
861     SPSF_CCITT_uLaw_44kHzStereo = 56,
862     SPSF_ADPCM_8kHzMono = 57,
863     SPSF_ADPCM_8kHzStereo = 58,
864     SPSF_ADPCM_11kHzMono = 59,
865     SPSF_ADPCM_11kHzStereo = 60,
866     SPSF_ADPCM_22kHzMono = 61,
867     SPSF_ADPCM_22kHzStereo = 62,
868     SPSF_ADPCM_44kHzMono = 63,
869     SPSF_ADPCM_44kHzStereo = 64,
870     SPSF_GSM610_8kHzMono = 65,
871     SPSF_GSM610_11kHzMono = 66,
872     SPSF_GSM610_22kHzMono = 67,
873     SPSF_GSM610_44kHzMono = 68,
874     SPSF_NUM_FORMATS = 69
875 } SPSTREAMFORMAT;
876 typedef enum SPEVENTLPARAMTYPE {
877     SPET_LPARAM_IS_UNDEFINED = 0,
878     SPET_LPARAM_IS_TOKEN = 1,
879     SPET_LPARAM_IS_OBJECT = 2,
880     SPET_LPARAM_IS_POINTER = 3,
881     SPET_LPARAM_IS_STRING = 4
882 } SPEVENTLPARAMTYPE;
883 typedef enum SPEVENTENUM {
884     SPEI_UNDEFINED = 0,
885     SPEI_START_INPUT_STREAM = 1,
886     SPEI_END_INPUT_STREAM = 2,
887     SPEI_VOICE_CHANGE = 3,
888     SPEI_TTS_BOOKMARK = 4,
889     SPEI_WORD_BOUNDARY = 5,
890     SPEI_PHONEME = 6,
891     SPEI_SENTENCE_BOUNDARY = 7,
892     SPEI_VISEME = 8,
893     SPEI_TTS_AUDIO_LEVEL = 9,
894     SPEI_TTS_PRIVATE = 15,
895     SPEI_MIN_TTS = 1,
896     SPEI_MAX_TTS = 15,
897     SPEI_END_SR_STREAM = 34,
898     SPEI_SOUND_START = 35,
899     SPEI_SOUND_END = 36,
900     SPEI_PHRASE_START = 37,
901     SPEI_RECOGNITION = 38,
902     SPEI_HYPOTHESIS = 39,
903     SPEI_SR_BOOKMARK = 40,
904     SPEI_PROPERTY_NUM_CHANGE = 41,
905     SPEI_PROPERTY_STRING_CHANGE = 42,
906     SPEI_FALSE_RECOGNITION = 43,
907     SPEI_INTERFERENCE = 44,
908     SPEI_REQUEST_UI = 45,
909     SPEI_RECO_STATE_CHANGE = 46,
910     SPEI_ADAPTATION = 47,
911     SPEI_START_SR_STREAM = 48,
912     SPEI_RECO_OTHER_CONTEXT = 49,
913     SPEI_SR_AUDIO_LEVEL = 50,
914     SPEI_SR_PRIVATE = 52,
915     SPEI_MIN_SR = 34,
916     SPEI_MAX_SR = 52,
917     SPEI_RESERVED1 = 30,
918     SPEI_RESERVED2 = 33,
919     SPEI_RESERVED3 = 63
920 } SPEVENTENUM;
921 typedef enum SPINTERFERENCE {
922     SPINTERFERENCE_NONE = 0,
923     SPINTERFERENCE_NOISE = 1,
924     SPINTERFERENCE_NOSIGNAL = 2,
925     SPINTERFERENCE_TOOLOUD = 3,
926     SPINTERFERENCE_TOOQUIET = 4,
927     SPINTERFERENCE_TOOFAST = 5,
928     SPINTERFERENCE_TOOSLOW = 6,
929     SPINTERFERENCE_LATENCY_WARNING = 7,
930     SPINTERFERENCE_LATENCY_TRUNCATE_BEGIN = 8,
931     SPINTERFERENCE_LATENCY_TRUNCATE_END = 9
932 } SPINTERFERENCE;
933 typedef enum SPENDSRSTREAMFLAGS {
934     SPESF_NONE = 0,
935     SPESF_STREAM_RELEASED = 1
936 } SPENDSRSTREAMFLAGS;
937 typedef enum SPVFEATURE {
938     SPVFEATURE_STRESSED = 1,
939     SPVFEATURE_EMPHASIS = 2
940 } SPVFEATURE;
941 typedef enum SPVISEMES {
942     SP_VISEME_0 = 0,
943     SP_VISEME_1 = 1,
944     SP_VISEME_2 = 2,
945     SP_VISEME_3 = 3,
946     SP_VISEME_4 = 4,
947     SP_VISEME_5 = 5,
948     SP_VISEME_6 = 6,
949     SP_VISEME_7 = 7,
950     SP_VISEME_8 = 8,
951     SP_VISEME_9 = 9,
952     SP_VISEME_10 = 10,
953     SP_VISEME_11 = 11,
954     SP_VISEME_12 = 12,
955     SP_VISEME_13 = 13,
956     SP_VISEME_14 = 14,
957     SP_VISEME_15 = 15,
958     SP_VISEME_16 = 16,
959     SP_VISEME_17 = 17,
960     SP_VISEME_18 = 18,
961     SP_VISEME_19 = 19,
962     SP_VISEME_20 = 20,
963     SP_VISEME_21 = 21
964 } SPVISEMES;
965 typedef enum SPFILEMODE {
966     SPFM_OPEN_READONLY = 0,
967     SPFM_OPEN_READWRITE = 1,
968     SPFM_CREATE = 2,
969     SPFM_CREATE_ALWAYS = 3,
970     SPFM_NUM_MODES = 4
971 } SPFILEMODE;
972 typedef enum _SPAUDIOSTATE {
973     SPAS_CLOSED = 0,
974     SPAS_STOP = 1,
975     SPAS_PAUSE = 2,
976     SPAS_RUN = 3
977 } SPAUDIOSTATE;
978 typedef enum SPDISPLYATTRIBUTES {
979     SPAF_ONE_TRAILING_SPACE = 0x2,
980     SPAF_TWO_TRAILING_SPACES = 0x4,
981     SPAF_CONSUME_LEADING_SPACES = 0x8,
982     SPAF_ALL = 0xf
983 } SPDISPLAYATTRIBUTES;
984 typedef enum SPPHRASEPROPERTYUNIONTYPE {
985     SPPPUT_UNUSED = 0,
986     SPPPUT_ARRAY_INDEX = 1
987 } SPPHRASEPROPERTYUNIONTYPE;
988 typedef enum SPRECOEVENTFLAGS {
989     SPREF_AutoPause = 0x1,
990     SPREF_Emulated = 0x2
991 } SPRECOEVENTFLAGS;
992 typedef enum SPPARTOFSPEECH {
993     SPPS_NotOverriden = -1,
994     SPPS_Unknown = 0,
995     SPPS_Noun = 0x1000,
996     SPPS_Verb = 0x2000,
997     SPPS_Modifier = 0x3000,
998     SPPS_Function = 0x4000,
999     SPPS_Interjection = 0x5000
1000 } SPPARTOFSPEECH;
1001 typedef enum SPLEXICONTYPE {
1002     eLEXTYPE_USER = 0x1,
1003     eLEXTYPE_APP = 0x2,
1004     eLEXTYPE_VENDORLEXICON = 0x4,
1005     eLEXTYPE_LETTERTOSOUND = 0x8,
1006     eLEXTYPE_MORPHOLOGY = 0x10,
1007     eLEXTYPE_RESERVED4 = 0x20,
1008     eLEXTYPE_USER_SHORTCUT = 0x40,
1009     eLEXTYPE_RESERVED6 = 0x80,
1010     eLEXTYPE_RESERVED7 = 0x100,
1011     eLEXTYPE_RESERVED8 = 0x200,
1012     eLEXTYPE_RESERVED9 = 0x400,
1013     eLEXTYPE_RESERVED10 = 0x800,
1014     eLEXTYPE_PRIVATE1 = 0x1000,
1015     eLEXTYPE_PRIVATE2 = 0x2000,
1016     eLEXTYPE_PRIVATE3 = 0x4000,
1017     eLEXTYPE_PRIVATE4 = 0x8000,
1018     eLEXTYPE_PRIVATE5 = 0x10000,
1019     eLEXTYPE_PRIVATE6 = 0x20000,
1020     eLEXTYPE_PRIVATE7 = 0x40000,
1021     eLEXTYPE_PRIVATE8 = 0x80000,
1022     eLEXTYPE_PRIVATE9 = 0x100000,
1023     eLEXTYPE_PRIVATE10 = 0x200000,
1024     eLEXTYPE_PRIVATE11 = 0x400000,
1025     eLEXTYPE_PRIVATE12 = 0x800000,
1026     eLEXTYPE_PRIVATE13 = 0x1000000,
1027     eLEXTYPE_PRIVATE14 = 0x2000000,
1028     eLEXTYPE_PRIVATE15 = 0x4000000,
1029     eLEXTYPE_PRIVATE16 = 0x8000000,
1030     eLEXTYPE_PRIVATE17 = 0x10000000,
1031     eLEXTYPE_PRIVATE18 = 0x20000000,
1032     eLEXTYPE_PRIVATE19 = 0x40000000,
1033     eLEXTYPE_PRIVATE20 = 0x80000000
1034 } SPLEXICONTYPE;
1035 typedef enum SPWORDTYPE {
1036     eWORDTYPE_ADDED = 1,
1037     eWORDTYPE_DELETED = 2
1038 } SPWORDTYPE;
1039 typedef enum SPVALUETYPE {
1040     SPDF_PROPERTY = 0x1,
1041     SPDF_REPLACEMENT = 0x2,
1042     SPDF_RULE = 0x4,
1043     SPDF_DISPLAYTEXT = 0x8,
1044     SPDF_LEXICALFORM = 0x10,
1045     SPDF_PRONUNCIATION = 0x20,
1046     SPDF_AUDIO = 0x40,
1047     SPDF_ALTERNATES = 0x80,
1048     SPDF_ALL = 0xff
1049 } SPVALUETYPE;
1050 typedef enum SPPHRASERNG {
1051     SPPR_ALL_ELEMENTS = -1
1052 } SPPHRASERNG;
1053 typedef enum SPVACTIONS {
1054     SPVA_Speak = 0,
1055     SPVA_Silence = 1,
1056     SPVA_Pronounce = 2,
1057     SPVA_Bookmark = 3,
1058     SPVA_SpellOut = 4,
1059     SPVA_Section = 5,
1060     SPVA_ParseUnknownTag = 6
1061 } SPVACTIONS;
1062 typedef enum SPRUNSTATE {
1063     SPRS_DONE = 1,
1064     SPRS_IS_SPEAKING = 2
1065 } SPRUNSTATE;
1066 typedef enum SPVLIMITS {
1067     SPMIN_VOLUME = 0,
1068     SPMAX_VOLUME = 100,
1069     SPMIN_RATE = -10,
1070     SPMAX_RATE = 10
1071 } SPVLIMITS;
1072 typedef enum SPVPRIORITY {
1073     SPVPRI_NORMAL = 0,
1074     SPVPRI_ALERT = 1,
1075     SPVPRI_OVER = 2
1076 } SPVPRIORITY;
1077 EXTERN_C const GUID SPDFID_Text;
1078 EXTERN_C const GUID SPDFID_WaveFormatEx;
1079 
1080 #define SP_LOW_CONFIDENCE (-1)
1081 
1082 #define SP_NORMAL_CONFIDENCE (0)
1083 
1084 #define SP_HIGH_CONFIDENCE (+1)
1085 
1086 #define DEFAULT_WEIGHT (1)
1087 
1088 #define SP_MAX_WORD_LENGTH (128)
1089 
1090 #define SP_MAX_PRON_LENGTH (384)
1091 
1092 
1093 #ifdef __cplusplus
1094 interface ISpNotifyCallback {
1095   virtual HRESULT STDMETHODCALLTYPE NotifyCallback(WPARAM wParam, LPARAM lParam) = 0;
1096 };
1097 #else
1098 typedef void *ISpNotifyCallback;
1099 #endif
1100 #if 0
1101 typedef void *SPNOTIFYCALLBACK;
1102 #else
1103 typedef void __stdcall SPNOTIFYCALLBACK(WPARAM wParam, LPARAM lParam);
1104 #endif
1105 /*****************************************************************************
1106  * ISpNotifySource interface
1107  */
1108 #ifndef __ISpNotifySource_INTERFACE_DEFINED__
1109 #define __ISpNotifySource_INTERFACE_DEFINED__
1110 
1111 DEFINE_GUID(IID_ISpNotifySource, 0x5eff4aef, 0x8487, 0x11d2, 0x96,0x1c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
1112 #if defined(__cplusplus) && !defined(CINTERFACE)
1113 MIDL_INTERFACE("5eff4aef-8487-11d2-961c-00c04f8ee628")
1114 ISpNotifySource : public IUnknown
1115 {
1116     virtual HRESULT STDMETHODCALLTYPE SetNotifySink(
1117         ISpNotifySink *pNotifySink) = 0;
1118 
1119     virtual HRESULT STDMETHODCALLTYPE SetNotifyWindowMessage(
1120         HWND hWnd,
1121         UINT Msg,
1122         WPARAM wParam,
1123         LPARAM lParam) = 0;
1124 
1125     virtual HRESULT STDMETHODCALLTYPE SetNotifyCallbackFunction(
1126         SPNOTIFYCALLBACK *pfnCallback,
1127         WPARAM wParam,
1128         LPARAM lParam) = 0;
1129 
1130     virtual HRESULT STDMETHODCALLTYPE SetNotifyCallbackInterface(
1131         ISpNotifyCallback *pSpCallback,
1132         WPARAM wParam,
1133         LPARAM lParam) = 0;
1134 
1135     virtual HRESULT STDMETHODCALLTYPE SetNotifyWin32Event(
1136         ) = 0;
1137 
1138     virtual HRESULT STDMETHODCALLTYPE WaitForNotifyEvent(
1139         DWORD dwMilliseconds) = 0;
1140 
1141     virtual HANDLE STDMETHODCALLTYPE GetNotifyEventHandle(
1142         ) = 0;
1143 
1144 };
1145 #ifdef __CRT_UUID_DECL
1146 __CRT_UUID_DECL(ISpNotifySource, 0x5eff4aef, 0x8487, 0x11d2, 0x96,0x1c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
1147 #endif
1148 #else
1149 typedef struct ISpNotifySourceVtbl {
1150     BEGIN_INTERFACE
1151 
1152     /*** IUnknown methods ***/
1153     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1154         ISpNotifySource* This,
1155         REFIID riid,
1156         void **ppvObject);
1157 
1158     ULONG (STDMETHODCALLTYPE *AddRef)(
1159         ISpNotifySource* This);
1160 
1161     ULONG (STDMETHODCALLTYPE *Release)(
1162         ISpNotifySource* This);
1163 
1164     /*** ISpNotifySource methods ***/
1165     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
1166         ISpNotifySource* This,
1167         ISpNotifySink *pNotifySink);
1168 
1169     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
1170         ISpNotifySource* This,
1171         HWND hWnd,
1172         UINT Msg,
1173         WPARAM wParam,
1174         LPARAM lParam);
1175 
1176     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
1177         ISpNotifySource* This,
1178         SPNOTIFYCALLBACK *pfnCallback,
1179         WPARAM wParam,
1180         LPARAM lParam);
1181 
1182     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
1183         ISpNotifySource* This,
1184         ISpNotifyCallback *pSpCallback,
1185         WPARAM wParam,
1186         LPARAM lParam);
1187 
1188     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
1189         ISpNotifySource* This);
1190 
1191     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
1192         ISpNotifySource* This,
1193         DWORD dwMilliseconds);
1194 
1195     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
1196         ISpNotifySource* This);
1197 
1198     END_INTERFACE
1199 } ISpNotifySourceVtbl;
1200 interface ISpNotifySource {
1201     CONST_VTBL ISpNotifySourceVtbl* lpVtbl;
1202 };
1203 
1204 #ifdef COBJMACROS
1205 #ifndef WIDL_C_INLINE_WRAPPERS
1206 /*** IUnknown methods ***/
1207 #define ISpNotifySource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1208 #define ISpNotifySource_AddRef(This) (This)->lpVtbl->AddRef(This)
1209 #define ISpNotifySource_Release(This) (This)->lpVtbl->Release(This)
1210 /*** ISpNotifySource methods ***/
1211 #define ISpNotifySource_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
1212 #define ISpNotifySource_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
1213 #define ISpNotifySource_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
1214 #define ISpNotifySource_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
1215 #define ISpNotifySource_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
1216 #define ISpNotifySource_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
1217 #define ISpNotifySource_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
1218 #else
1219 /*** IUnknown methods ***/
1220 static FORCEINLINE HRESULT ISpNotifySource_QueryInterface(ISpNotifySource* This,REFIID riid,void **ppvObject) {
1221     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1222 }
1223 static FORCEINLINE ULONG ISpNotifySource_AddRef(ISpNotifySource* This) {
1224     return This->lpVtbl->AddRef(This);
1225 }
1226 static FORCEINLINE ULONG ISpNotifySource_Release(ISpNotifySource* This) {
1227     return This->lpVtbl->Release(This);
1228 }
1229 /*** ISpNotifySource methods ***/
1230 static FORCEINLINE HRESULT ISpNotifySource_SetNotifySink(ISpNotifySource* This,ISpNotifySink *pNotifySink) {
1231     return This->lpVtbl->SetNotifySink(This,pNotifySink);
1232 }
1233 static FORCEINLINE HRESULT ISpNotifySource_SetNotifyWindowMessage(ISpNotifySource* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
1234     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
1235 }
1236 static FORCEINLINE HRESULT ISpNotifySource_SetNotifyCallbackFunction(ISpNotifySource* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
1237     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
1238 }
1239 static FORCEINLINE HRESULT ISpNotifySource_SetNotifyCallbackInterface(ISpNotifySource* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
1240     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
1241 }
1242 static FORCEINLINE HRESULT ISpNotifySource_SetNotifyWin32Event(ISpNotifySource* This) {
1243     return This->lpVtbl->SetNotifyWin32Event(This);
1244 }
1245 static FORCEINLINE HRESULT ISpNotifySource_WaitForNotifyEvent(ISpNotifySource* This,DWORD dwMilliseconds) {
1246     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
1247 }
1248 static FORCEINLINE HANDLE ISpNotifySource_GetNotifyEventHandle(ISpNotifySource* This) {
1249     return This->lpVtbl->GetNotifyEventHandle(This);
1250 }
1251 #endif
1252 #endif
1253 
1254 #endif
1255 
1256 HRESULT STDMETHODCALLTYPE ISpNotifySource_SetNotifySink_Proxy(
1257     ISpNotifySource* This,
1258     ISpNotifySink *pNotifySink);
1259 void __RPC_STUB ISpNotifySource_SetNotifySink_Stub(
1260     IRpcStubBuffer* This,
1261     IRpcChannelBuffer* pRpcChannelBuffer,
1262     PRPC_MESSAGE pRpcMessage,
1263     DWORD* pdwStubPhase);
1264 
1265 #endif  /* __ISpNotifySource_INTERFACE_DEFINED__ */
1266 
1267 /*****************************************************************************
1268  * ISpNotifySink interface
1269  */
1270 #ifndef __ISpNotifySink_INTERFACE_DEFINED__
1271 #define __ISpNotifySink_INTERFACE_DEFINED__
1272 
1273 DEFINE_GUID(IID_ISpNotifySink, 0x259684dc, 0x37c3, 0x11d2, 0x96,0x03, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
1274 #if defined(__cplusplus) && !defined(CINTERFACE)
1275 MIDL_INTERFACE("259684dc-37c3-11d2-9603-00c04f8ee628")
1276 ISpNotifySink : public IUnknown
1277 {
1278     virtual HRESULT STDMETHODCALLTYPE Notify(
1279         ) = 0;
1280 
1281 };
1282 #ifdef __CRT_UUID_DECL
1283 __CRT_UUID_DECL(ISpNotifySink, 0x259684dc, 0x37c3, 0x11d2, 0x96,0x03, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
1284 #endif
1285 #else
1286 typedef struct ISpNotifySinkVtbl {
1287     BEGIN_INTERFACE
1288 
1289     /*** IUnknown methods ***/
1290     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1291         ISpNotifySink* This,
1292         REFIID riid,
1293         void **ppvObject);
1294 
1295     ULONG (STDMETHODCALLTYPE *AddRef)(
1296         ISpNotifySink* This);
1297 
1298     ULONG (STDMETHODCALLTYPE *Release)(
1299         ISpNotifySink* This);
1300 
1301     /*** ISpNotifySink methods ***/
1302     HRESULT (STDMETHODCALLTYPE *Notify)(
1303         ISpNotifySink* This);
1304 
1305     END_INTERFACE
1306 } ISpNotifySinkVtbl;
1307 interface ISpNotifySink {
1308     CONST_VTBL ISpNotifySinkVtbl* lpVtbl;
1309 };
1310 
1311 #ifdef COBJMACROS
1312 #ifndef WIDL_C_INLINE_WRAPPERS
1313 /*** IUnknown methods ***/
1314 #define ISpNotifySink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1315 #define ISpNotifySink_AddRef(This) (This)->lpVtbl->AddRef(This)
1316 #define ISpNotifySink_Release(This) (This)->lpVtbl->Release(This)
1317 /*** ISpNotifySink methods ***/
1318 #define ISpNotifySink_Notify(This) (This)->lpVtbl->Notify(This)
1319 #else
1320 /*** IUnknown methods ***/
1321 static FORCEINLINE HRESULT ISpNotifySink_QueryInterface(ISpNotifySink* This,REFIID riid,void **ppvObject) {
1322     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1323 }
1324 static FORCEINLINE ULONG ISpNotifySink_AddRef(ISpNotifySink* This) {
1325     return This->lpVtbl->AddRef(This);
1326 }
1327 static FORCEINLINE ULONG ISpNotifySink_Release(ISpNotifySink* This) {
1328     return This->lpVtbl->Release(This);
1329 }
1330 /*** ISpNotifySink methods ***/
1331 static FORCEINLINE HRESULT ISpNotifySink_Notify(ISpNotifySink* This) {
1332     return This->lpVtbl->Notify(This);
1333 }
1334 #endif
1335 #endif
1336 
1337 #endif
1338 
1339 HRESULT STDMETHODCALLTYPE ISpNotifySink_Notify_Proxy(
1340     ISpNotifySink* This);
1341 void __RPC_STUB ISpNotifySink_Notify_Stub(
1342     IRpcStubBuffer* This,
1343     IRpcChannelBuffer* pRpcChannelBuffer,
1344     PRPC_MESSAGE pRpcMessage,
1345     DWORD* pdwStubPhase);
1346 
1347 #endif  /* __ISpNotifySink_INTERFACE_DEFINED__ */
1348 
1349 /*****************************************************************************
1350  * ISpNotifyTranslator interface
1351  */
1352 #ifndef __ISpNotifyTranslator_INTERFACE_DEFINED__
1353 #define __ISpNotifyTranslator_INTERFACE_DEFINED__
1354 
1355 DEFINE_GUID(IID_ISpNotifyTranslator, 0xaca16614, 0x5d3d, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
1356 #if defined(__cplusplus) && !defined(CINTERFACE)
1357 MIDL_INTERFACE("aca16614-5d3d-11d2-960e-00c04f8ee628")
1358 ISpNotifyTranslator : public ISpNotifySink
1359 {
1360     virtual HRESULT STDMETHODCALLTYPE InitWindowMessage(
1361         HWND hWnd,
1362         UINT Msg,
1363         WPARAM wParam,
1364         LPARAM lParam) = 0;
1365 
1366     virtual HRESULT STDMETHODCALLTYPE InitCallback(
1367         SPNOTIFYCALLBACK *pfnCallback,
1368         WPARAM wParam,
1369         LPARAM lParam) = 0;
1370 
1371     virtual HRESULT STDMETHODCALLTYPE InitSpNotifyCallback(
1372         ISpNotifyCallback *pSpCallback,
1373         WPARAM wParam,
1374         LPARAM lParam) = 0;
1375 
1376     virtual HRESULT STDMETHODCALLTYPE InitWin32Event(
1377         HANDLE hEvent,
1378         WINBOOL fCloseHandleOnRelease) = 0;
1379 
1380     virtual HRESULT STDMETHODCALLTYPE Wait(
1381         DWORD dwMilliseconds) = 0;
1382 
1383     virtual HANDLE STDMETHODCALLTYPE GetEventHandle(
1384         ) = 0;
1385 
1386 };
1387 #ifdef __CRT_UUID_DECL
1388 __CRT_UUID_DECL(ISpNotifyTranslator, 0xaca16614, 0x5d3d, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
1389 #endif
1390 #else
1391 typedef struct ISpNotifyTranslatorVtbl {
1392     BEGIN_INTERFACE
1393 
1394     /*** IUnknown methods ***/
1395     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1396         ISpNotifyTranslator* This,
1397         REFIID riid,
1398         void **ppvObject);
1399 
1400     ULONG (STDMETHODCALLTYPE *AddRef)(
1401         ISpNotifyTranslator* This);
1402 
1403     ULONG (STDMETHODCALLTYPE *Release)(
1404         ISpNotifyTranslator* This);
1405 
1406     /*** ISpNotifySink methods ***/
1407     HRESULT (STDMETHODCALLTYPE *Notify)(
1408         ISpNotifyTranslator* This);
1409 
1410     /*** ISpNotifyTranslator methods ***/
1411     HRESULT (STDMETHODCALLTYPE *InitWindowMessage)(
1412         ISpNotifyTranslator* This,
1413         HWND hWnd,
1414         UINT Msg,
1415         WPARAM wParam,
1416         LPARAM lParam);
1417 
1418     HRESULT (STDMETHODCALLTYPE *InitCallback)(
1419         ISpNotifyTranslator* This,
1420         SPNOTIFYCALLBACK *pfnCallback,
1421         WPARAM wParam,
1422         LPARAM lParam);
1423 
1424     HRESULT (STDMETHODCALLTYPE *InitSpNotifyCallback)(
1425         ISpNotifyTranslator* This,
1426         ISpNotifyCallback *pSpCallback,
1427         WPARAM wParam,
1428         LPARAM lParam);
1429 
1430     HRESULT (STDMETHODCALLTYPE *InitWin32Event)(
1431         ISpNotifyTranslator* This,
1432         HANDLE hEvent,
1433         WINBOOL fCloseHandleOnRelease);
1434 
1435     HRESULT (STDMETHODCALLTYPE *Wait)(
1436         ISpNotifyTranslator* This,
1437         DWORD dwMilliseconds);
1438 
1439     HANDLE (STDMETHODCALLTYPE *GetEventHandle)(
1440         ISpNotifyTranslator* This);
1441 
1442     END_INTERFACE
1443 } ISpNotifyTranslatorVtbl;
1444 interface ISpNotifyTranslator {
1445     CONST_VTBL ISpNotifyTranslatorVtbl* lpVtbl;
1446 };
1447 
1448 #ifdef COBJMACROS
1449 #ifndef WIDL_C_INLINE_WRAPPERS
1450 /*** IUnknown methods ***/
1451 #define ISpNotifyTranslator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1452 #define ISpNotifyTranslator_AddRef(This) (This)->lpVtbl->AddRef(This)
1453 #define ISpNotifyTranslator_Release(This) (This)->lpVtbl->Release(This)
1454 /*** ISpNotifySink methods ***/
1455 #define ISpNotifyTranslator_Notify(This) (This)->lpVtbl->Notify(This)
1456 /*** ISpNotifyTranslator methods ***/
1457 #define ISpNotifyTranslator_InitWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->InitWindowMessage(This,hWnd,Msg,wParam,lParam)
1458 #define ISpNotifyTranslator_InitCallback(This,pfnCallback,wParam,lParam) (This)->lpVtbl->InitCallback(This,pfnCallback,wParam,lParam)
1459 #define ISpNotifyTranslator_InitSpNotifyCallback(This,pSpCallback,wParam,lParam) (This)->lpVtbl->InitSpNotifyCallback(This,pSpCallback,wParam,lParam)
1460 #define ISpNotifyTranslator_InitWin32Event(This,hEvent,fCloseHandleOnRelease) (This)->lpVtbl->InitWin32Event(This,hEvent,fCloseHandleOnRelease)
1461 #define ISpNotifyTranslator_Wait(This,dwMilliseconds) (This)->lpVtbl->Wait(This,dwMilliseconds)
1462 #define ISpNotifyTranslator_GetEventHandle(This) (This)->lpVtbl->GetEventHandle(This)
1463 #else
1464 /*** IUnknown methods ***/
1465 static FORCEINLINE HRESULT ISpNotifyTranslator_QueryInterface(ISpNotifyTranslator* This,REFIID riid,void **ppvObject) {
1466     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1467 }
1468 static FORCEINLINE ULONG ISpNotifyTranslator_AddRef(ISpNotifyTranslator* This) {
1469     return This->lpVtbl->AddRef(This);
1470 }
1471 static FORCEINLINE ULONG ISpNotifyTranslator_Release(ISpNotifyTranslator* This) {
1472     return This->lpVtbl->Release(This);
1473 }
1474 /*** ISpNotifySink methods ***/
1475 static FORCEINLINE HRESULT ISpNotifyTranslator_Notify(ISpNotifyTranslator* This) {
1476     return This->lpVtbl->Notify(This);
1477 }
1478 /*** ISpNotifyTranslator methods ***/
1479 static FORCEINLINE HRESULT ISpNotifyTranslator_InitWindowMessage(ISpNotifyTranslator* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
1480     return This->lpVtbl->InitWindowMessage(This,hWnd,Msg,wParam,lParam);
1481 }
1482 static FORCEINLINE HRESULT ISpNotifyTranslator_InitCallback(ISpNotifyTranslator* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
1483     return This->lpVtbl->InitCallback(This,pfnCallback,wParam,lParam);
1484 }
1485 static FORCEINLINE HRESULT ISpNotifyTranslator_InitSpNotifyCallback(ISpNotifyTranslator* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
1486     return This->lpVtbl->InitSpNotifyCallback(This,pSpCallback,wParam,lParam);
1487 }
1488 static FORCEINLINE HRESULT ISpNotifyTranslator_InitWin32Event(ISpNotifyTranslator* This,HANDLE hEvent,WINBOOL fCloseHandleOnRelease) {
1489     return This->lpVtbl->InitWin32Event(This,hEvent,fCloseHandleOnRelease);
1490 }
1491 static FORCEINLINE HRESULT ISpNotifyTranslator_Wait(ISpNotifyTranslator* This,DWORD dwMilliseconds) {
1492     return This->lpVtbl->Wait(This,dwMilliseconds);
1493 }
1494 static FORCEINLINE HANDLE ISpNotifyTranslator_GetEventHandle(ISpNotifyTranslator* This) {
1495     return This->lpVtbl->GetEventHandle(This);
1496 }
1497 #endif
1498 #endif
1499 
1500 #endif
1501 
1502 HRESULT STDMETHODCALLTYPE ISpNotifyTranslator_InitWindowMessage_Proxy(
1503     ISpNotifyTranslator* This,
1504     HWND hWnd,
1505     UINT Msg,
1506     WPARAM wParam,
1507     LPARAM lParam);
1508 void __RPC_STUB ISpNotifyTranslator_InitWindowMessage_Stub(
1509     IRpcStubBuffer* This,
1510     IRpcChannelBuffer* pRpcChannelBuffer,
1511     PRPC_MESSAGE pRpcMessage,
1512     DWORD* pdwStubPhase);
1513 HRESULT STDMETHODCALLTYPE ISpNotifyTranslator_InitCallback_Proxy(
1514     ISpNotifyTranslator* This,
1515     SPNOTIFYCALLBACK *pfnCallback,
1516     WPARAM wParam,
1517     LPARAM lParam);
1518 void __RPC_STUB ISpNotifyTranslator_InitCallback_Stub(
1519     IRpcStubBuffer* This,
1520     IRpcChannelBuffer* pRpcChannelBuffer,
1521     PRPC_MESSAGE pRpcMessage,
1522     DWORD* pdwStubPhase);
1523 HRESULT STDMETHODCALLTYPE ISpNotifyTranslator_InitSpNotifyCallback_Proxy(
1524     ISpNotifyTranslator* This,
1525     ISpNotifyCallback *pSpCallback,
1526     WPARAM wParam,
1527     LPARAM lParam);
1528 void __RPC_STUB ISpNotifyTranslator_InitSpNotifyCallback_Stub(
1529     IRpcStubBuffer* This,
1530     IRpcChannelBuffer* pRpcChannelBuffer,
1531     PRPC_MESSAGE pRpcMessage,
1532     DWORD* pdwStubPhase);
1533 HRESULT STDMETHODCALLTYPE ISpNotifyTranslator_InitWin32Event_Proxy(
1534     ISpNotifyTranslator* This,
1535     HANDLE hEvent,
1536     WINBOOL fCloseHandleOnRelease);
1537 void __RPC_STUB ISpNotifyTranslator_InitWin32Event_Stub(
1538     IRpcStubBuffer* This,
1539     IRpcChannelBuffer* pRpcChannelBuffer,
1540     PRPC_MESSAGE pRpcMessage,
1541     DWORD* pdwStubPhase);
1542 HRESULT STDMETHODCALLTYPE ISpNotifyTranslator_Wait_Proxy(
1543     ISpNotifyTranslator* This,
1544     DWORD dwMilliseconds);
1545 void __RPC_STUB ISpNotifyTranslator_Wait_Stub(
1546     IRpcStubBuffer* This,
1547     IRpcChannelBuffer* pRpcChannelBuffer,
1548     PRPC_MESSAGE pRpcMessage,
1549     DWORD* pdwStubPhase);
1550 HANDLE STDMETHODCALLTYPE ISpNotifyTranslator_GetEventHandle_Proxy(
1551     ISpNotifyTranslator* This);
1552 void __RPC_STUB ISpNotifyTranslator_GetEventHandle_Stub(
1553     IRpcStubBuffer* This,
1554     IRpcChannelBuffer* pRpcChannelBuffer,
1555     PRPC_MESSAGE pRpcMessage,
1556     DWORD* pdwStubPhase);
1557 
1558 #endif  /* __ISpNotifyTranslator_INTERFACE_DEFINED__ */
1559 
1560 /*****************************************************************************
1561  * ISpDataKey interface
1562  */
1563 #ifndef __ISpDataKey_INTERFACE_DEFINED__
1564 #define __ISpDataKey_INTERFACE_DEFINED__
1565 
1566 DEFINE_GUID(IID_ISpDataKey, 0x14056581, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
1567 #if defined(__cplusplus) && !defined(CINTERFACE)
1568 MIDL_INTERFACE("14056581-e16c-11d2-bb90-00c04f8ee6c0")
1569 ISpDataKey : public IUnknown
1570 {
1571     virtual HRESULT STDMETHODCALLTYPE SetData(
1572         LPCWSTR pszValueName,
1573         ULONG cbData,
1574         const BYTE *pData) = 0;
1575 
1576     virtual HRESULT STDMETHODCALLTYPE GetData(
1577         LPCWSTR pszValueName,
1578         ULONG *pcbData,
1579         BYTE *pData) = 0;
1580 
1581     virtual HRESULT STDMETHODCALLTYPE SetStringValue(
1582         LPCWSTR pszValueName,
1583         LPCWSTR pszValue) = 0;
1584 
1585     virtual HRESULT STDMETHODCALLTYPE GetStringValue(
1586         LPCWSTR pszValueName,
1587         LPWSTR *ppszValue) = 0;
1588 
1589     virtual HRESULT STDMETHODCALLTYPE SetDWORD(
1590         LPCWSTR pszValueName,
1591         DWORD dwValue) = 0;
1592 
1593     virtual HRESULT STDMETHODCALLTYPE GetDWORD(
1594         LPCWSTR pszValueName,
1595         DWORD *pdwValue) = 0;
1596 
1597     virtual HRESULT STDMETHODCALLTYPE OpenKey(
1598         LPCWSTR pszSubKeyName,
1599         ISpDataKey **ppSubKey) = 0;
1600 
1601     virtual HRESULT STDMETHODCALLTYPE CreateKey(
1602         LPCWSTR pszSubKey,
1603         ISpDataKey **ppSubKey) = 0;
1604 
1605     virtual HRESULT STDMETHODCALLTYPE DeleteKey(
1606         LPCWSTR pszSubKey) = 0;
1607 
1608     virtual HRESULT STDMETHODCALLTYPE DeleteValue(
1609         LPCWSTR pszValueName) = 0;
1610 
1611     virtual HRESULT STDMETHODCALLTYPE EnumKeys(
1612         ULONG Index,
1613         LPWSTR *ppszSubKeyName) = 0;
1614 
1615     virtual HRESULT STDMETHODCALLTYPE EnumValues(
1616         ULONG Index,
1617         LPWSTR *ppszValueName) = 0;
1618 
1619 };
1620 #ifdef __CRT_UUID_DECL
1621 __CRT_UUID_DECL(ISpDataKey, 0x14056581, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
1622 #endif
1623 #else
1624 typedef struct ISpDataKeyVtbl {
1625     BEGIN_INTERFACE
1626 
1627     /*** IUnknown methods ***/
1628     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1629         ISpDataKey* This,
1630         REFIID riid,
1631         void **ppvObject);
1632 
1633     ULONG (STDMETHODCALLTYPE *AddRef)(
1634         ISpDataKey* This);
1635 
1636     ULONG (STDMETHODCALLTYPE *Release)(
1637         ISpDataKey* This);
1638 
1639     /*** ISpDataKey methods ***/
1640     HRESULT (STDMETHODCALLTYPE *SetData)(
1641         ISpDataKey* This,
1642         LPCWSTR pszValueName,
1643         ULONG cbData,
1644         const BYTE *pData);
1645 
1646     HRESULT (STDMETHODCALLTYPE *GetData)(
1647         ISpDataKey* This,
1648         LPCWSTR pszValueName,
1649         ULONG *pcbData,
1650         BYTE *pData);
1651 
1652     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
1653         ISpDataKey* This,
1654         LPCWSTR pszValueName,
1655         LPCWSTR pszValue);
1656 
1657     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
1658         ISpDataKey* This,
1659         LPCWSTR pszValueName,
1660         LPWSTR *ppszValue);
1661 
1662     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
1663         ISpDataKey* This,
1664         LPCWSTR pszValueName,
1665         DWORD dwValue);
1666 
1667     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
1668         ISpDataKey* This,
1669         LPCWSTR pszValueName,
1670         DWORD *pdwValue);
1671 
1672     HRESULT (STDMETHODCALLTYPE *OpenKey)(
1673         ISpDataKey* This,
1674         LPCWSTR pszSubKeyName,
1675         ISpDataKey **ppSubKey);
1676 
1677     HRESULT (STDMETHODCALLTYPE *CreateKey)(
1678         ISpDataKey* This,
1679         LPCWSTR pszSubKey,
1680         ISpDataKey **ppSubKey);
1681 
1682     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
1683         ISpDataKey* This,
1684         LPCWSTR pszSubKey);
1685 
1686     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
1687         ISpDataKey* This,
1688         LPCWSTR pszValueName);
1689 
1690     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
1691         ISpDataKey* This,
1692         ULONG Index,
1693         LPWSTR *ppszSubKeyName);
1694 
1695     HRESULT (STDMETHODCALLTYPE *EnumValues)(
1696         ISpDataKey* This,
1697         ULONG Index,
1698         LPWSTR *ppszValueName);
1699 
1700     END_INTERFACE
1701 } ISpDataKeyVtbl;
1702 interface ISpDataKey {
1703     CONST_VTBL ISpDataKeyVtbl* lpVtbl;
1704 };
1705 
1706 #ifdef COBJMACROS
1707 #ifndef WIDL_C_INLINE_WRAPPERS
1708 /*** IUnknown methods ***/
1709 #define ISpDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1710 #define ISpDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
1711 #define ISpDataKey_Release(This) (This)->lpVtbl->Release(This)
1712 /*** ISpDataKey methods ***/
1713 #define ISpDataKey_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
1714 #define ISpDataKey_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
1715 #define ISpDataKey_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
1716 #define ISpDataKey_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
1717 #define ISpDataKey_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
1718 #define ISpDataKey_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
1719 #define ISpDataKey_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
1720 #define ISpDataKey_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
1721 #define ISpDataKey_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
1722 #define ISpDataKey_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
1723 #define ISpDataKey_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
1724 #define ISpDataKey_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
1725 #else
1726 /*** IUnknown methods ***/
1727 static FORCEINLINE HRESULT ISpDataKey_QueryInterface(ISpDataKey* This,REFIID riid,void **ppvObject) {
1728     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1729 }
1730 static FORCEINLINE ULONG ISpDataKey_AddRef(ISpDataKey* This) {
1731     return This->lpVtbl->AddRef(This);
1732 }
1733 static FORCEINLINE ULONG ISpDataKey_Release(ISpDataKey* This) {
1734     return This->lpVtbl->Release(This);
1735 }
1736 /*** ISpDataKey methods ***/
1737 static FORCEINLINE HRESULT ISpDataKey_SetData(ISpDataKey* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
1738     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
1739 }
1740 static FORCEINLINE HRESULT ISpDataKey_GetData(ISpDataKey* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
1741     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
1742 }
1743 static FORCEINLINE HRESULT ISpDataKey_SetStringValue(ISpDataKey* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
1744     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
1745 }
1746 static FORCEINLINE HRESULT ISpDataKey_GetStringValue(ISpDataKey* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
1747     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
1748 }
1749 static FORCEINLINE HRESULT ISpDataKey_SetDWORD(ISpDataKey* This,LPCWSTR pszValueName,DWORD dwValue) {
1750     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
1751 }
1752 static FORCEINLINE HRESULT ISpDataKey_GetDWORD(ISpDataKey* This,LPCWSTR pszValueName,DWORD *pdwValue) {
1753     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
1754 }
1755 static FORCEINLINE HRESULT ISpDataKey_OpenKey(ISpDataKey* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
1756     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
1757 }
1758 static FORCEINLINE HRESULT ISpDataKey_CreateKey(ISpDataKey* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
1759     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
1760 }
1761 static FORCEINLINE HRESULT ISpDataKey_DeleteKey(ISpDataKey* This,LPCWSTR pszSubKey) {
1762     return This->lpVtbl->DeleteKey(This,pszSubKey);
1763 }
1764 static FORCEINLINE HRESULT ISpDataKey_DeleteValue(ISpDataKey* This,LPCWSTR pszValueName) {
1765     return This->lpVtbl->DeleteValue(This,pszValueName);
1766 }
1767 static FORCEINLINE HRESULT ISpDataKey_EnumKeys(ISpDataKey* This,ULONG Index,LPWSTR *ppszSubKeyName) {
1768     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
1769 }
1770 static FORCEINLINE HRESULT ISpDataKey_EnumValues(ISpDataKey* This,ULONG Index,LPWSTR *ppszValueName) {
1771     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
1772 }
1773 #endif
1774 #endif
1775 
1776 #endif
1777 
1778 HRESULT STDMETHODCALLTYPE ISpDataKey_SetData_Proxy(
1779     ISpDataKey* This,
1780     LPCWSTR pszValueName,
1781     ULONG cbData,
1782     const BYTE *pData);
1783 void __RPC_STUB ISpDataKey_SetData_Stub(
1784     IRpcStubBuffer* This,
1785     IRpcChannelBuffer* pRpcChannelBuffer,
1786     PRPC_MESSAGE pRpcMessage,
1787     DWORD* pdwStubPhase);
1788 HRESULT STDMETHODCALLTYPE ISpDataKey_GetData_Proxy(
1789     ISpDataKey* This,
1790     LPCWSTR pszValueName,
1791     ULONG *pcbData,
1792     BYTE *pData);
1793 void __RPC_STUB ISpDataKey_GetData_Stub(
1794     IRpcStubBuffer* This,
1795     IRpcChannelBuffer* pRpcChannelBuffer,
1796     PRPC_MESSAGE pRpcMessage,
1797     DWORD* pdwStubPhase);
1798 HRESULT STDMETHODCALLTYPE ISpDataKey_SetStringValue_Proxy(
1799     ISpDataKey* This,
1800     LPCWSTR pszValueName,
1801     LPCWSTR pszValue);
1802 void __RPC_STUB ISpDataKey_SetStringValue_Stub(
1803     IRpcStubBuffer* This,
1804     IRpcChannelBuffer* pRpcChannelBuffer,
1805     PRPC_MESSAGE pRpcMessage,
1806     DWORD* pdwStubPhase);
1807 HRESULT STDMETHODCALLTYPE ISpDataKey_GetStringValue_Proxy(
1808     ISpDataKey* This,
1809     LPCWSTR pszValueName,
1810     LPWSTR *ppszValue);
1811 void __RPC_STUB ISpDataKey_GetStringValue_Stub(
1812     IRpcStubBuffer* This,
1813     IRpcChannelBuffer* pRpcChannelBuffer,
1814     PRPC_MESSAGE pRpcMessage,
1815     DWORD* pdwStubPhase);
1816 HRESULT STDMETHODCALLTYPE ISpDataKey_SetDWORD_Proxy(
1817     ISpDataKey* This,
1818     LPCWSTR pszValueName,
1819     DWORD dwValue);
1820 void __RPC_STUB ISpDataKey_SetDWORD_Stub(
1821     IRpcStubBuffer* This,
1822     IRpcChannelBuffer* pRpcChannelBuffer,
1823     PRPC_MESSAGE pRpcMessage,
1824     DWORD* pdwStubPhase);
1825 HRESULT STDMETHODCALLTYPE ISpDataKey_GetDWORD_Proxy(
1826     ISpDataKey* This,
1827     LPCWSTR pszValueName,
1828     DWORD *pdwValue);
1829 void __RPC_STUB ISpDataKey_GetDWORD_Stub(
1830     IRpcStubBuffer* This,
1831     IRpcChannelBuffer* pRpcChannelBuffer,
1832     PRPC_MESSAGE pRpcMessage,
1833     DWORD* pdwStubPhase);
1834 HRESULT STDMETHODCALLTYPE ISpDataKey_OpenKey_Proxy(
1835     ISpDataKey* This,
1836     LPCWSTR pszSubKeyName,
1837     ISpDataKey **ppSubKey);
1838 void __RPC_STUB ISpDataKey_OpenKey_Stub(
1839     IRpcStubBuffer* This,
1840     IRpcChannelBuffer* pRpcChannelBuffer,
1841     PRPC_MESSAGE pRpcMessage,
1842     DWORD* pdwStubPhase);
1843 HRESULT STDMETHODCALLTYPE ISpDataKey_CreateKey_Proxy(
1844     ISpDataKey* This,
1845     LPCWSTR pszSubKey,
1846     ISpDataKey **ppSubKey);
1847 void __RPC_STUB ISpDataKey_CreateKey_Stub(
1848     IRpcStubBuffer* This,
1849     IRpcChannelBuffer* pRpcChannelBuffer,
1850     PRPC_MESSAGE pRpcMessage,
1851     DWORD* pdwStubPhase);
1852 HRESULT STDMETHODCALLTYPE ISpDataKey_DeleteKey_Proxy(
1853     ISpDataKey* This,
1854     LPCWSTR pszSubKey);
1855 void __RPC_STUB ISpDataKey_DeleteKey_Stub(
1856     IRpcStubBuffer* This,
1857     IRpcChannelBuffer* pRpcChannelBuffer,
1858     PRPC_MESSAGE pRpcMessage,
1859     DWORD* pdwStubPhase);
1860 HRESULT STDMETHODCALLTYPE ISpDataKey_DeleteValue_Proxy(
1861     ISpDataKey* This,
1862     LPCWSTR pszValueName);
1863 void __RPC_STUB ISpDataKey_DeleteValue_Stub(
1864     IRpcStubBuffer* This,
1865     IRpcChannelBuffer* pRpcChannelBuffer,
1866     PRPC_MESSAGE pRpcMessage,
1867     DWORD* pdwStubPhase);
1868 HRESULT STDMETHODCALLTYPE ISpDataKey_EnumKeys_Proxy(
1869     ISpDataKey* This,
1870     ULONG Index,
1871     LPWSTR *ppszSubKeyName);
1872 void __RPC_STUB ISpDataKey_EnumKeys_Stub(
1873     IRpcStubBuffer* This,
1874     IRpcChannelBuffer* pRpcChannelBuffer,
1875     PRPC_MESSAGE pRpcMessage,
1876     DWORD* pdwStubPhase);
1877 HRESULT STDMETHODCALLTYPE ISpDataKey_EnumValues_Proxy(
1878     ISpDataKey* This,
1879     ULONG Index,
1880     LPWSTR *ppszValueName);
1881 void __RPC_STUB ISpDataKey_EnumValues_Stub(
1882     IRpcStubBuffer* This,
1883     IRpcChannelBuffer* pRpcChannelBuffer,
1884     PRPC_MESSAGE pRpcMessage,
1885     DWORD* pdwStubPhase);
1886 
1887 #endif  /* __ISpDataKey_INTERFACE_DEFINED__ */
1888 
1889 /*****************************************************************************
1890  * ISpObjectWithToken interface
1891  */
1892 #ifndef __ISpObjectWithToken_INTERFACE_DEFINED__
1893 #define __ISpObjectWithToken_INTERFACE_DEFINED__
1894 
1895 DEFINE_GUID(IID_ISpObjectWithToken, 0x5b559f40, 0xe952, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
1896 #if defined(__cplusplus) && !defined(CINTERFACE)
1897 MIDL_INTERFACE("5b559f40-e952-11d2-bb91-00c04f8ee6c0")
1898 ISpObjectWithToken : public IUnknown
1899 {
1900     virtual HRESULT STDMETHODCALLTYPE SetObjectToken(
1901         ISpObjectToken *pToken) = 0;
1902 
1903     virtual HRESULT STDMETHODCALLTYPE GetObjectToken(
1904         ISpObjectToken **ppToken) = 0;
1905 
1906 };
1907 #ifdef __CRT_UUID_DECL
1908 __CRT_UUID_DECL(ISpObjectWithToken, 0x5b559f40, 0xe952, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
1909 #endif
1910 #else
1911 typedef struct ISpObjectWithTokenVtbl {
1912     BEGIN_INTERFACE
1913 
1914     /*** IUnknown methods ***/
1915     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1916         ISpObjectWithToken* This,
1917         REFIID riid,
1918         void **ppvObject);
1919 
1920     ULONG (STDMETHODCALLTYPE *AddRef)(
1921         ISpObjectWithToken* This);
1922 
1923     ULONG (STDMETHODCALLTYPE *Release)(
1924         ISpObjectWithToken* This);
1925 
1926     /*** ISpObjectWithToken methods ***/
1927     HRESULT (STDMETHODCALLTYPE *SetObjectToken)(
1928         ISpObjectWithToken* This,
1929         ISpObjectToken *pToken);
1930 
1931     HRESULT (STDMETHODCALLTYPE *GetObjectToken)(
1932         ISpObjectWithToken* This,
1933         ISpObjectToken **ppToken);
1934 
1935     END_INTERFACE
1936 } ISpObjectWithTokenVtbl;
1937 interface ISpObjectWithToken {
1938     CONST_VTBL ISpObjectWithTokenVtbl* lpVtbl;
1939 };
1940 
1941 #ifdef COBJMACROS
1942 #ifndef WIDL_C_INLINE_WRAPPERS
1943 /*** IUnknown methods ***/
1944 #define ISpObjectWithToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1945 #define ISpObjectWithToken_AddRef(This) (This)->lpVtbl->AddRef(This)
1946 #define ISpObjectWithToken_Release(This) (This)->lpVtbl->Release(This)
1947 /*** ISpObjectWithToken methods ***/
1948 #define ISpObjectWithToken_SetObjectToken(This,pToken) (This)->lpVtbl->SetObjectToken(This,pToken)
1949 #define ISpObjectWithToken_GetObjectToken(This,ppToken) (This)->lpVtbl->GetObjectToken(This,ppToken)
1950 #else
1951 /*** IUnknown methods ***/
1952 static FORCEINLINE HRESULT ISpObjectWithToken_QueryInterface(ISpObjectWithToken* This,REFIID riid,void **ppvObject) {
1953     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1954 }
1955 static FORCEINLINE ULONG ISpObjectWithToken_AddRef(ISpObjectWithToken* This) {
1956     return This->lpVtbl->AddRef(This);
1957 }
1958 static FORCEINLINE ULONG ISpObjectWithToken_Release(ISpObjectWithToken* This) {
1959     return This->lpVtbl->Release(This);
1960 }
1961 /*** ISpObjectWithToken methods ***/
1962 static FORCEINLINE HRESULT ISpObjectWithToken_SetObjectToken(ISpObjectWithToken* This,ISpObjectToken *pToken) {
1963     return This->lpVtbl->SetObjectToken(This,pToken);
1964 }
1965 static FORCEINLINE HRESULT ISpObjectWithToken_GetObjectToken(ISpObjectWithToken* This,ISpObjectToken **ppToken) {
1966     return This->lpVtbl->GetObjectToken(This,ppToken);
1967 }
1968 #endif
1969 #endif
1970 
1971 #endif
1972 
1973 HRESULT STDMETHODCALLTYPE ISpObjectWithToken_SetObjectToken_Proxy(
1974     ISpObjectWithToken* This,
1975     ISpObjectToken *pToken);
1976 void __RPC_STUB ISpObjectWithToken_SetObjectToken_Stub(
1977     IRpcStubBuffer* This,
1978     IRpcChannelBuffer* pRpcChannelBuffer,
1979     PRPC_MESSAGE pRpcMessage,
1980     DWORD* pdwStubPhase);
1981 HRESULT STDMETHODCALLTYPE ISpObjectWithToken_GetObjectToken_Proxy(
1982     ISpObjectWithToken* This,
1983     ISpObjectToken **ppToken);
1984 void __RPC_STUB ISpObjectWithToken_GetObjectToken_Stub(
1985     IRpcStubBuffer* This,
1986     IRpcChannelBuffer* pRpcChannelBuffer,
1987     PRPC_MESSAGE pRpcMessage,
1988     DWORD* pdwStubPhase);
1989 
1990 #endif  /* __ISpObjectWithToken_INTERFACE_DEFINED__ */
1991 
1992 /*****************************************************************************
1993  * IEnumSpObjectTokens interface
1994  */
1995 #ifndef __IEnumSpObjectTokens_INTERFACE_DEFINED__
1996 #define __IEnumSpObjectTokens_INTERFACE_DEFINED__
1997 
1998 DEFINE_GUID(IID_IEnumSpObjectTokens, 0x06b64f9e, 0x7fda, 0x11d2, 0xb4,0xf2, 0x00,0xc0,0x4f,0x79,0x73,0x96);
1999 #if defined(__cplusplus) && !defined(CINTERFACE)
2000 MIDL_INTERFACE("06b64f9e-7fda-11d2-b4f2-00c04f797396")
2001 IEnumSpObjectTokens : public IUnknown
2002 {
2003     virtual HRESULT STDMETHODCALLTYPE Next(
2004         ULONG celt,
2005         ISpObjectToken **pelt,
2006         ULONG *pceltFetched) = 0;
2007 
2008     virtual HRESULT STDMETHODCALLTYPE Skip(
2009         ULONG celt) = 0;
2010 
2011     virtual HRESULT STDMETHODCALLTYPE Reset(
2012         ) = 0;
2013 
2014     virtual HRESULT STDMETHODCALLTYPE Clone(
2015         IEnumSpObjectTokens **ppEnum) = 0;
2016 
2017     virtual HRESULT STDMETHODCALLTYPE Item(
2018         ULONG Index,
2019         ISpObjectToken **ppToken) = 0;
2020 
2021     virtual HRESULT STDMETHODCALLTYPE GetCount(
2022         ULONG *pCount) = 0;
2023 
2024 };
2025 #ifdef __CRT_UUID_DECL
2026 __CRT_UUID_DECL(IEnumSpObjectTokens, 0x06b64f9e, 0x7fda, 0x11d2, 0xb4,0xf2, 0x00,0xc0,0x4f,0x79,0x73,0x96)
2027 #endif
2028 #else
2029 typedef struct IEnumSpObjectTokensVtbl {
2030     BEGIN_INTERFACE
2031 
2032     /*** IUnknown methods ***/
2033     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2034         IEnumSpObjectTokens* This,
2035         REFIID riid,
2036         void **ppvObject);
2037 
2038     ULONG (STDMETHODCALLTYPE *AddRef)(
2039         IEnumSpObjectTokens* This);
2040 
2041     ULONG (STDMETHODCALLTYPE *Release)(
2042         IEnumSpObjectTokens* This);
2043 
2044     /*** IEnumSpObjectTokens methods ***/
2045     HRESULT (STDMETHODCALLTYPE *Next)(
2046         IEnumSpObjectTokens* This,
2047         ULONG celt,
2048         ISpObjectToken **pelt,
2049         ULONG *pceltFetched);
2050 
2051     HRESULT (STDMETHODCALLTYPE *Skip)(
2052         IEnumSpObjectTokens* This,
2053         ULONG celt);
2054 
2055     HRESULT (STDMETHODCALLTYPE *Reset)(
2056         IEnumSpObjectTokens* This);
2057 
2058     HRESULT (STDMETHODCALLTYPE *Clone)(
2059         IEnumSpObjectTokens* This,
2060         IEnumSpObjectTokens **ppEnum);
2061 
2062     HRESULT (STDMETHODCALLTYPE *Item)(
2063         IEnumSpObjectTokens* This,
2064         ULONG Index,
2065         ISpObjectToken **ppToken);
2066 
2067     HRESULT (STDMETHODCALLTYPE *GetCount)(
2068         IEnumSpObjectTokens* This,
2069         ULONG *pCount);
2070 
2071     END_INTERFACE
2072 } IEnumSpObjectTokensVtbl;
2073 interface IEnumSpObjectTokens {
2074     CONST_VTBL IEnumSpObjectTokensVtbl* lpVtbl;
2075 };
2076 
2077 #ifdef COBJMACROS
2078 #ifndef WIDL_C_INLINE_WRAPPERS
2079 /*** IUnknown methods ***/
2080 #define IEnumSpObjectTokens_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2081 #define IEnumSpObjectTokens_AddRef(This) (This)->lpVtbl->AddRef(This)
2082 #define IEnumSpObjectTokens_Release(This) (This)->lpVtbl->Release(This)
2083 /*** IEnumSpObjectTokens methods ***/
2084 #define IEnumSpObjectTokens_Next(This,celt,pelt,pceltFetched) (This)->lpVtbl->Next(This,celt,pelt,pceltFetched)
2085 #define IEnumSpObjectTokens_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
2086 #define IEnumSpObjectTokens_Reset(This) (This)->lpVtbl->Reset(This)
2087 #define IEnumSpObjectTokens_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
2088 #define IEnumSpObjectTokens_Item(This,Index,ppToken) (This)->lpVtbl->Item(This,Index,ppToken)
2089 #define IEnumSpObjectTokens_GetCount(This,pCount) (This)->lpVtbl->GetCount(This,pCount)
2090 #else
2091 /*** IUnknown methods ***/
2092 static FORCEINLINE HRESULT IEnumSpObjectTokens_QueryInterface(IEnumSpObjectTokens* This,REFIID riid,void **ppvObject) {
2093     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2094 }
2095 static FORCEINLINE ULONG IEnumSpObjectTokens_AddRef(IEnumSpObjectTokens* This) {
2096     return This->lpVtbl->AddRef(This);
2097 }
2098 static FORCEINLINE ULONG IEnumSpObjectTokens_Release(IEnumSpObjectTokens* This) {
2099     return This->lpVtbl->Release(This);
2100 }
2101 /*** IEnumSpObjectTokens methods ***/
2102 static FORCEINLINE HRESULT IEnumSpObjectTokens_Next(IEnumSpObjectTokens* This,ULONG celt,ISpObjectToken **pelt,ULONG *pceltFetched) {
2103     return This->lpVtbl->Next(This,celt,pelt,pceltFetched);
2104 }
2105 static FORCEINLINE HRESULT IEnumSpObjectTokens_Skip(IEnumSpObjectTokens* This,ULONG celt) {
2106     return This->lpVtbl->Skip(This,celt);
2107 }
2108 static FORCEINLINE HRESULT IEnumSpObjectTokens_Reset(IEnumSpObjectTokens* This) {
2109     return This->lpVtbl->Reset(This);
2110 }
2111 static FORCEINLINE HRESULT IEnumSpObjectTokens_Clone(IEnumSpObjectTokens* This,IEnumSpObjectTokens **ppEnum) {
2112     return This->lpVtbl->Clone(This,ppEnum);
2113 }
2114 static FORCEINLINE HRESULT IEnumSpObjectTokens_Item(IEnumSpObjectTokens* This,ULONG Index,ISpObjectToken **ppToken) {
2115     return This->lpVtbl->Item(This,Index,ppToken);
2116 }
2117 static FORCEINLINE HRESULT IEnumSpObjectTokens_GetCount(IEnumSpObjectTokens* This,ULONG *pCount) {
2118     return This->lpVtbl->GetCount(This,pCount);
2119 }
2120 #endif
2121 #endif
2122 
2123 #endif
2124 
2125 HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_Next_Proxy(
2126     IEnumSpObjectTokens* This,
2127     ULONG celt,
2128     ISpObjectToken **pelt,
2129     ULONG *pceltFetched);
2130 void __RPC_STUB IEnumSpObjectTokens_Next_Stub(
2131     IRpcStubBuffer* This,
2132     IRpcChannelBuffer* pRpcChannelBuffer,
2133     PRPC_MESSAGE pRpcMessage,
2134     DWORD* pdwStubPhase);
2135 HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_Skip_Proxy(
2136     IEnumSpObjectTokens* This,
2137     ULONG celt);
2138 void __RPC_STUB IEnumSpObjectTokens_Skip_Stub(
2139     IRpcStubBuffer* This,
2140     IRpcChannelBuffer* pRpcChannelBuffer,
2141     PRPC_MESSAGE pRpcMessage,
2142     DWORD* pdwStubPhase);
2143 HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_Reset_Proxy(
2144     IEnumSpObjectTokens* This);
2145 void __RPC_STUB IEnumSpObjectTokens_Reset_Stub(
2146     IRpcStubBuffer* This,
2147     IRpcChannelBuffer* pRpcChannelBuffer,
2148     PRPC_MESSAGE pRpcMessage,
2149     DWORD* pdwStubPhase);
2150 HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_Clone_Proxy(
2151     IEnumSpObjectTokens* This,
2152     IEnumSpObjectTokens **ppEnum);
2153 void __RPC_STUB IEnumSpObjectTokens_Clone_Stub(
2154     IRpcStubBuffer* This,
2155     IRpcChannelBuffer* pRpcChannelBuffer,
2156     PRPC_MESSAGE pRpcMessage,
2157     DWORD* pdwStubPhase);
2158 HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_Item_Proxy(
2159     IEnumSpObjectTokens* This,
2160     ULONG Index,
2161     ISpObjectToken **ppToken);
2162 void __RPC_STUB IEnumSpObjectTokens_Item_Stub(
2163     IRpcStubBuffer* This,
2164     IRpcChannelBuffer* pRpcChannelBuffer,
2165     PRPC_MESSAGE pRpcMessage,
2166     DWORD* pdwStubPhase);
2167 HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_GetCount_Proxy(
2168     IEnumSpObjectTokens* This,
2169     ULONG *pCount);
2170 void __RPC_STUB IEnumSpObjectTokens_GetCount_Stub(
2171     IRpcStubBuffer* This,
2172     IRpcChannelBuffer* pRpcChannelBuffer,
2173     PRPC_MESSAGE pRpcMessage,
2174     DWORD* pdwStubPhase);
2175 
2176 #endif  /* __IEnumSpObjectTokens_INTERFACE_DEFINED__ */
2177 
2178 /*****************************************************************************
2179  * ISpRegDataKey interface
2180  */
2181 #ifndef __ISpRegDataKey_INTERFACE_DEFINED__
2182 #define __ISpRegDataKey_INTERFACE_DEFINED__
2183 
2184 DEFINE_GUID(IID_ISpRegDataKey, 0x92a66e2b, 0xc830, 0x4149, 0x83,0xdf, 0x6f,0xc2,0xba,0x1e,0x7a,0x5b);
2185 #if defined(__cplusplus) && !defined(CINTERFACE)
2186 MIDL_INTERFACE("92a66e2b-c830-4149-83df-6fc2ba1e7a5b")
2187 ISpRegDataKey : public ISpDataKey
2188 {
2189     virtual HRESULT STDMETHODCALLTYPE SetKey(
2190         HKEY hkey,
2191         WINBOOL fReadOnly) = 0;
2192 
2193 };
2194 #ifdef __CRT_UUID_DECL
2195 __CRT_UUID_DECL(ISpRegDataKey, 0x92a66e2b, 0xc830, 0x4149, 0x83,0xdf, 0x6f,0xc2,0xba,0x1e,0x7a,0x5b)
2196 #endif
2197 #else
2198 typedef struct ISpRegDataKeyVtbl {
2199     BEGIN_INTERFACE
2200 
2201     /*** IUnknown methods ***/
2202     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2203         ISpRegDataKey* This,
2204         REFIID riid,
2205         void **ppvObject);
2206 
2207     ULONG (STDMETHODCALLTYPE *AddRef)(
2208         ISpRegDataKey* This);
2209 
2210     ULONG (STDMETHODCALLTYPE *Release)(
2211         ISpRegDataKey* This);
2212 
2213     /*** ISpDataKey methods ***/
2214     HRESULT (STDMETHODCALLTYPE *SetData)(
2215         ISpRegDataKey* This,
2216         LPCWSTR pszValueName,
2217         ULONG cbData,
2218         const BYTE *pData);
2219 
2220     HRESULT (STDMETHODCALLTYPE *GetData)(
2221         ISpRegDataKey* This,
2222         LPCWSTR pszValueName,
2223         ULONG *pcbData,
2224         BYTE *pData);
2225 
2226     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
2227         ISpRegDataKey* This,
2228         LPCWSTR pszValueName,
2229         LPCWSTR pszValue);
2230 
2231     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
2232         ISpRegDataKey* This,
2233         LPCWSTR pszValueName,
2234         LPWSTR *ppszValue);
2235 
2236     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
2237         ISpRegDataKey* This,
2238         LPCWSTR pszValueName,
2239         DWORD dwValue);
2240 
2241     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
2242         ISpRegDataKey* This,
2243         LPCWSTR pszValueName,
2244         DWORD *pdwValue);
2245 
2246     HRESULT (STDMETHODCALLTYPE *OpenKey)(
2247         ISpRegDataKey* This,
2248         LPCWSTR pszSubKeyName,
2249         ISpDataKey **ppSubKey);
2250 
2251     HRESULT (STDMETHODCALLTYPE *CreateKey)(
2252         ISpRegDataKey* This,
2253         LPCWSTR pszSubKey,
2254         ISpDataKey **ppSubKey);
2255 
2256     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
2257         ISpRegDataKey* This,
2258         LPCWSTR pszSubKey);
2259 
2260     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
2261         ISpRegDataKey* This,
2262         LPCWSTR pszValueName);
2263 
2264     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
2265         ISpRegDataKey* This,
2266         ULONG Index,
2267         LPWSTR *ppszSubKeyName);
2268 
2269     HRESULT (STDMETHODCALLTYPE *EnumValues)(
2270         ISpRegDataKey* This,
2271         ULONG Index,
2272         LPWSTR *ppszValueName);
2273 
2274     /*** ISpRegDataKey methods ***/
2275     HRESULT (STDMETHODCALLTYPE *SetKey)(
2276         ISpRegDataKey* This,
2277         HKEY hkey,
2278         WINBOOL fReadOnly);
2279 
2280     END_INTERFACE
2281 } ISpRegDataKeyVtbl;
2282 interface ISpRegDataKey {
2283     CONST_VTBL ISpRegDataKeyVtbl* lpVtbl;
2284 };
2285 
2286 #ifdef COBJMACROS
2287 #ifndef WIDL_C_INLINE_WRAPPERS
2288 /*** IUnknown methods ***/
2289 #define ISpRegDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2290 #define ISpRegDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
2291 #define ISpRegDataKey_Release(This) (This)->lpVtbl->Release(This)
2292 /*** ISpDataKey methods ***/
2293 #define ISpRegDataKey_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
2294 #define ISpRegDataKey_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
2295 #define ISpRegDataKey_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
2296 #define ISpRegDataKey_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
2297 #define ISpRegDataKey_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
2298 #define ISpRegDataKey_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
2299 #define ISpRegDataKey_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
2300 #define ISpRegDataKey_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
2301 #define ISpRegDataKey_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
2302 #define ISpRegDataKey_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
2303 #define ISpRegDataKey_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
2304 #define ISpRegDataKey_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
2305 /*** ISpRegDataKey methods ***/
2306 #define ISpRegDataKey_SetKey(This,hkey,fReadOnly) (This)->lpVtbl->SetKey(This,hkey,fReadOnly)
2307 #else
2308 /*** IUnknown methods ***/
2309 static FORCEINLINE HRESULT ISpRegDataKey_QueryInterface(ISpRegDataKey* This,REFIID riid,void **ppvObject) {
2310     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2311 }
2312 static FORCEINLINE ULONG ISpRegDataKey_AddRef(ISpRegDataKey* This) {
2313     return This->lpVtbl->AddRef(This);
2314 }
2315 static FORCEINLINE ULONG ISpRegDataKey_Release(ISpRegDataKey* This) {
2316     return This->lpVtbl->Release(This);
2317 }
2318 /*** ISpDataKey methods ***/
2319 static FORCEINLINE HRESULT ISpRegDataKey_SetData(ISpRegDataKey* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
2320     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
2321 }
2322 static FORCEINLINE HRESULT ISpRegDataKey_GetData(ISpRegDataKey* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
2323     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
2324 }
2325 static FORCEINLINE HRESULT ISpRegDataKey_SetStringValue(ISpRegDataKey* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
2326     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
2327 }
2328 static FORCEINLINE HRESULT ISpRegDataKey_GetStringValue(ISpRegDataKey* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
2329     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
2330 }
2331 static FORCEINLINE HRESULT ISpRegDataKey_SetDWORD(ISpRegDataKey* This,LPCWSTR pszValueName,DWORD dwValue) {
2332     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
2333 }
2334 static FORCEINLINE HRESULT ISpRegDataKey_GetDWORD(ISpRegDataKey* This,LPCWSTR pszValueName,DWORD *pdwValue) {
2335     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
2336 }
2337 static FORCEINLINE HRESULT ISpRegDataKey_OpenKey(ISpRegDataKey* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
2338     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
2339 }
2340 static FORCEINLINE HRESULT ISpRegDataKey_CreateKey(ISpRegDataKey* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
2341     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
2342 }
2343 static FORCEINLINE HRESULT ISpRegDataKey_DeleteKey(ISpRegDataKey* This,LPCWSTR pszSubKey) {
2344     return This->lpVtbl->DeleteKey(This,pszSubKey);
2345 }
2346 static FORCEINLINE HRESULT ISpRegDataKey_DeleteValue(ISpRegDataKey* This,LPCWSTR pszValueName) {
2347     return This->lpVtbl->DeleteValue(This,pszValueName);
2348 }
2349 static FORCEINLINE HRESULT ISpRegDataKey_EnumKeys(ISpRegDataKey* This,ULONG Index,LPWSTR *ppszSubKeyName) {
2350     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
2351 }
2352 static FORCEINLINE HRESULT ISpRegDataKey_EnumValues(ISpRegDataKey* This,ULONG Index,LPWSTR *ppszValueName) {
2353     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
2354 }
2355 /*** ISpRegDataKey methods ***/
2356 static FORCEINLINE HRESULT ISpRegDataKey_SetKey(ISpRegDataKey* This,HKEY hkey,WINBOOL fReadOnly) {
2357     return This->lpVtbl->SetKey(This,hkey,fReadOnly);
2358 }
2359 #endif
2360 #endif
2361 
2362 #endif
2363 
2364 
2365 #endif  /* __ISpRegDataKey_INTERFACE_DEFINED__ */
2366 
2367 /*****************************************************************************
2368  * ISpObjectTokenCategory interface
2369  */
2370 #ifndef __ISpObjectTokenCategory_INTERFACE_DEFINED__
2371 #define __ISpObjectTokenCategory_INTERFACE_DEFINED__
2372 
2373 DEFINE_GUID(IID_ISpObjectTokenCategory, 0x2d3d3845, 0x39af, 0x4850, 0xbb,0xf9, 0x40,0xb4,0x97,0x80,0x01,0x1d);
2374 #if defined(__cplusplus) && !defined(CINTERFACE)
2375 MIDL_INTERFACE("2d3d3845-39af-4850-bbf9-40b49780011d")
2376 ISpObjectTokenCategory : public ISpDataKey
2377 {
2378     virtual HRESULT STDMETHODCALLTYPE SetId(
2379         LPCWSTR pszCategoryId,
2380         WINBOOL fCreateIfNotExist) = 0;
2381 
2382     virtual HRESULT STDMETHODCALLTYPE GetId(
2383         LPWSTR *ppszCoMemCategoryId) = 0;
2384 
2385     virtual HRESULT STDMETHODCALLTYPE GetDataKey(
2386         SPDATAKEYLOCATION spdkl,
2387         ISpDataKey **ppDataKey) = 0;
2388 
2389     virtual HRESULT STDMETHODCALLTYPE EnumTokens(
2390         LPCWSTR pzsReqAttribs,
2391         LPCWSTR pszOptAttribs,
2392         IEnumSpObjectTokens **ppEnum) = 0;
2393 
2394     virtual HRESULT STDMETHODCALLTYPE SetDefaultTokenId(
2395         LPCWSTR pszTokenId) = 0;
2396 
2397     virtual HRESULT STDMETHODCALLTYPE GetDefaultTokenId(
2398         LPWSTR *ppszCoMemTokenId) = 0;
2399 
2400 };
2401 #ifdef __CRT_UUID_DECL
2402 __CRT_UUID_DECL(ISpObjectTokenCategory, 0x2d3d3845, 0x39af, 0x4850, 0xbb,0xf9, 0x40,0xb4,0x97,0x80,0x01,0x1d)
2403 #endif
2404 #else
2405 typedef struct ISpObjectTokenCategoryVtbl {
2406     BEGIN_INTERFACE
2407 
2408     /*** IUnknown methods ***/
2409     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2410         ISpObjectTokenCategory* This,
2411         REFIID riid,
2412         void **ppvObject);
2413 
2414     ULONG (STDMETHODCALLTYPE *AddRef)(
2415         ISpObjectTokenCategory* This);
2416 
2417     ULONG (STDMETHODCALLTYPE *Release)(
2418         ISpObjectTokenCategory* This);
2419 
2420     /*** ISpDataKey methods ***/
2421     HRESULT (STDMETHODCALLTYPE *SetData)(
2422         ISpObjectTokenCategory* This,
2423         LPCWSTR pszValueName,
2424         ULONG cbData,
2425         const BYTE *pData);
2426 
2427     HRESULT (STDMETHODCALLTYPE *GetData)(
2428         ISpObjectTokenCategory* This,
2429         LPCWSTR pszValueName,
2430         ULONG *pcbData,
2431         BYTE *pData);
2432 
2433     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
2434         ISpObjectTokenCategory* This,
2435         LPCWSTR pszValueName,
2436         LPCWSTR pszValue);
2437 
2438     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
2439         ISpObjectTokenCategory* This,
2440         LPCWSTR pszValueName,
2441         LPWSTR *ppszValue);
2442 
2443     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
2444         ISpObjectTokenCategory* This,
2445         LPCWSTR pszValueName,
2446         DWORD dwValue);
2447 
2448     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
2449         ISpObjectTokenCategory* This,
2450         LPCWSTR pszValueName,
2451         DWORD *pdwValue);
2452 
2453     HRESULT (STDMETHODCALLTYPE *OpenKey)(
2454         ISpObjectTokenCategory* This,
2455         LPCWSTR pszSubKeyName,
2456         ISpDataKey **ppSubKey);
2457 
2458     HRESULT (STDMETHODCALLTYPE *CreateKey)(
2459         ISpObjectTokenCategory* This,
2460         LPCWSTR pszSubKey,
2461         ISpDataKey **ppSubKey);
2462 
2463     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
2464         ISpObjectTokenCategory* This,
2465         LPCWSTR pszSubKey);
2466 
2467     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
2468         ISpObjectTokenCategory* This,
2469         LPCWSTR pszValueName);
2470 
2471     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
2472         ISpObjectTokenCategory* This,
2473         ULONG Index,
2474         LPWSTR *ppszSubKeyName);
2475 
2476     HRESULT (STDMETHODCALLTYPE *EnumValues)(
2477         ISpObjectTokenCategory* This,
2478         ULONG Index,
2479         LPWSTR *ppszValueName);
2480 
2481     /*** ISpObjectTokenCategory methods ***/
2482     HRESULT (STDMETHODCALLTYPE *SetId)(
2483         ISpObjectTokenCategory* This,
2484         LPCWSTR pszCategoryId,
2485         WINBOOL fCreateIfNotExist);
2486 
2487     HRESULT (STDMETHODCALLTYPE *GetId)(
2488         ISpObjectTokenCategory* This,
2489         LPWSTR *ppszCoMemCategoryId);
2490 
2491     HRESULT (STDMETHODCALLTYPE *GetDataKey)(
2492         ISpObjectTokenCategory* This,
2493         SPDATAKEYLOCATION spdkl,
2494         ISpDataKey **ppDataKey);
2495 
2496     HRESULT (STDMETHODCALLTYPE *EnumTokens)(
2497         ISpObjectTokenCategory* This,
2498         LPCWSTR pzsReqAttribs,
2499         LPCWSTR pszOptAttribs,
2500         IEnumSpObjectTokens **ppEnum);
2501 
2502     HRESULT (STDMETHODCALLTYPE *SetDefaultTokenId)(
2503         ISpObjectTokenCategory* This,
2504         LPCWSTR pszTokenId);
2505 
2506     HRESULT (STDMETHODCALLTYPE *GetDefaultTokenId)(
2507         ISpObjectTokenCategory* This,
2508         LPWSTR *ppszCoMemTokenId);
2509 
2510     END_INTERFACE
2511 } ISpObjectTokenCategoryVtbl;
2512 interface ISpObjectTokenCategory {
2513     CONST_VTBL ISpObjectTokenCategoryVtbl* lpVtbl;
2514 };
2515 
2516 #ifdef COBJMACROS
2517 #ifndef WIDL_C_INLINE_WRAPPERS
2518 /*** IUnknown methods ***/
2519 #define ISpObjectTokenCategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2520 #define ISpObjectTokenCategory_AddRef(This) (This)->lpVtbl->AddRef(This)
2521 #define ISpObjectTokenCategory_Release(This) (This)->lpVtbl->Release(This)
2522 /*** ISpDataKey methods ***/
2523 #define ISpObjectTokenCategory_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
2524 #define ISpObjectTokenCategory_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
2525 #define ISpObjectTokenCategory_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
2526 #define ISpObjectTokenCategory_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
2527 #define ISpObjectTokenCategory_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
2528 #define ISpObjectTokenCategory_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
2529 #define ISpObjectTokenCategory_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
2530 #define ISpObjectTokenCategory_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
2531 #define ISpObjectTokenCategory_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
2532 #define ISpObjectTokenCategory_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
2533 #define ISpObjectTokenCategory_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
2534 #define ISpObjectTokenCategory_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
2535 /*** ISpObjectTokenCategory methods ***/
2536 #define ISpObjectTokenCategory_SetId(This,pszCategoryId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,fCreateIfNotExist)
2537 #define ISpObjectTokenCategory_GetId(This,ppszCoMemCategoryId) (This)->lpVtbl->GetId(This,ppszCoMemCategoryId)
2538 #define ISpObjectTokenCategory_GetDataKey(This,spdkl,ppDataKey) (This)->lpVtbl->GetDataKey(This,spdkl,ppDataKey)
2539 #define ISpObjectTokenCategory_EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum) (This)->lpVtbl->EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum)
2540 #define ISpObjectTokenCategory_SetDefaultTokenId(This,pszTokenId) (This)->lpVtbl->SetDefaultTokenId(This,pszTokenId)
2541 #define ISpObjectTokenCategory_GetDefaultTokenId(This,ppszCoMemTokenId) (This)->lpVtbl->GetDefaultTokenId(This,ppszCoMemTokenId)
2542 #else
2543 /*** IUnknown methods ***/
2544 static FORCEINLINE HRESULT ISpObjectTokenCategory_QueryInterface(ISpObjectTokenCategory* This,REFIID riid,void **ppvObject) {
2545     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2546 }
2547 static FORCEINLINE ULONG ISpObjectTokenCategory_AddRef(ISpObjectTokenCategory* This) {
2548     return This->lpVtbl->AddRef(This);
2549 }
2550 static FORCEINLINE ULONG ISpObjectTokenCategory_Release(ISpObjectTokenCategory* This) {
2551     return This->lpVtbl->Release(This);
2552 }
2553 /*** ISpDataKey methods ***/
2554 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetData(ISpObjectTokenCategory* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
2555     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
2556 }
2557 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetData(ISpObjectTokenCategory* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
2558     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
2559 }
2560 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetStringValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
2561     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
2562 }
2563 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetStringValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
2564     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
2565 }
2566 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetDWORD(ISpObjectTokenCategory* This,LPCWSTR pszValueName,DWORD dwValue) {
2567     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
2568 }
2569 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetDWORD(ISpObjectTokenCategory* This,LPCWSTR pszValueName,DWORD *pdwValue) {
2570     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
2571 }
2572 static FORCEINLINE HRESULT ISpObjectTokenCategory_OpenKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
2573     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
2574 }
2575 static FORCEINLINE HRESULT ISpObjectTokenCategory_CreateKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
2576     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
2577 }
2578 static FORCEINLINE HRESULT ISpObjectTokenCategory_DeleteKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKey) {
2579     return This->lpVtbl->DeleteKey(This,pszSubKey);
2580 }
2581 static FORCEINLINE HRESULT ISpObjectTokenCategory_DeleteValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName) {
2582     return This->lpVtbl->DeleteValue(This,pszValueName);
2583 }
2584 static FORCEINLINE HRESULT ISpObjectTokenCategory_EnumKeys(ISpObjectTokenCategory* This,ULONG Index,LPWSTR *ppszSubKeyName) {
2585     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
2586 }
2587 static FORCEINLINE HRESULT ISpObjectTokenCategory_EnumValues(ISpObjectTokenCategory* This,ULONG Index,LPWSTR *ppszValueName) {
2588     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
2589 }
2590 /*** ISpObjectTokenCategory methods ***/
2591 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetId(ISpObjectTokenCategory* This,LPCWSTR pszCategoryId,WINBOOL fCreateIfNotExist) {
2592     return This->lpVtbl->SetId(This,pszCategoryId,fCreateIfNotExist);
2593 }
2594 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetId(ISpObjectTokenCategory* This,LPWSTR *ppszCoMemCategoryId) {
2595     return This->lpVtbl->GetId(This,ppszCoMemCategoryId);
2596 }
2597 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetDataKey(ISpObjectTokenCategory* This,SPDATAKEYLOCATION spdkl,ISpDataKey **ppDataKey) {
2598     return This->lpVtbl->GetDataKey(This,spdkl,ppDataKey);
2599 }
2600 static FORCEINLINE HRESULT ISpObjectTokenCategory_EnumTokens(ISpObjectTokenCategory* This,LPCWSTR pzsReqAttribs,LPCWSTR pszOptAttribs,IEnumSpObjectTokens **ppEnum) {
2601     return This->lpVtbl->EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum);
2602 }
2603 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetDefaultTokenId(ISpObjectTokenCategory* This,LPCWSTR pszTokenId) {
2604     return This->lpVtbl->SetDefaultTokenId(This,pszTokenId);
2605 }
2606 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetDefaultTokenId(ISpObjectTokenCategory* This,LPWSTR *ppszCoMemTokenId) {
2607     return This->lpVtbl->GetDefaultTokenId(This,ppszCoMemTokenId);
2608 }
2609 #endif
2610 #endif
2611 
2612 #endif
2613 
2614 HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_SetId_Proxy(
2615     ISpObjectTokenCategory* This,
2616     LPCWSTR pszCategoryId,
2617     WINBOOL fCreateIfNotExist);
2618 void __RPC_STUB ISpObjectTokenCategory_SetId_Stub(
2619     IRpcStubBuffer* This,
2620     IRpcChannelBuffer* pRpcChannelBuffer,
2621     PRPC_MESSAGE pRpcMessage,
2622     DWORD* pdwStubPhase);
2623 HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_GetId_Proxy(
2624     ISpObjectTokenCategory* This,
2625     LPWSTR *ppszCoMemCategoryId);
2626 void __RPC_STUB ISpObjectTokenCategory_GetId_Stub(
2627     IRpcStubBuffer* This,
2628     IRpcChannelBuffer* pRpcChannelBuffer,
2629     PRPC_MESSAGE pRpcMessage,
2630     DWORD* pdwStubPhase);
2631 HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_GetDataKey_Proxy(
2632     ISpObjectTokenCategory* This,
2633     SPDATAKEYLOCATION spdkl,
2634     ISpDataKey **ppDataKey);
2635 void __RPC_STUB ISpObjectTokenCategory_GetDataKey_Stub(
2636     IRpcStubBuffer* This,
2637     IRpcChannelBuffer* pRpcChannelBuffer,
2638     PRPC_MESSAGE pRpcMessage,
2639     DWORD* pdwStubPhase);
2640 HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_EnumTokens_Proxy(
2641     ISpObjectTokenCategory* This,
2642     LPCWSTR pzsReqAttribs,
2643     LPCWSTR pszOptAttribs,
2644     IEnumSpObjectTokens **ppEnum);
2645 void __RPC_STUB ISpObjectTokenCategory_EnumTokens_Stub(
2646     IRpcStubBuffer* This,
2647     IRpcChannelBuffer* pRpcChannelBuffer,
2648     PRPC_MESSAGE pRpcMessage,
2649     DWORD* pdwStubPhase);
2650 HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_SetDefaultTokenId_Proxy(
2651     ISpObjectTokenCategory* This,
2652     LPCWSTR pszTokenId);
2653 void __RPC_STUB ISpObjectTokenCategory_SetDefaultTokenId_Stub(
2654     IRpcStubBuffer* This,
2655     IRpcChannelBuffer* pRpcChannelBuffer,
2656     PRPC_MESSAGE pRpcMessage,
2657     DWORD* pdwStubPhase);
2658 HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_GetDefaultTokenId_Proxy(
2659     ISpObjectTokenCategory* This,
2660     LPWSTR *ppszCoMemTokenId);
2661 void __RPC_STUB ISpObjectTokenCategory_GetDefaultTokenId_Stub(
2662     IRpcStubBuffer* This,
2663     IRpcChannelBuffer* pRpcChannelBuffer,
2664     PRPC_MESSAGE pRpcMessage,
2665     DWORD* pdwStubPhase);
2666 
2667 #endif  /* __ISpObjectTokenCategory_INTERFACE_DEFINED__ */
2668 
2669 /*****************************************************************************
2670  * ISpObjectToken interface
2671  */
2672 #ifndef __ISpObjectToken_INTERFACE_DEFINED__
2673 #define __ISpObjectToken_INTERFACE_DEFINED__
2674 
2675 DEFINE_GUID(IID_ISpObjectToken, 0x14056589, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
2676 #if defined(__cplusplus) && !defined(CINTERFACE)
2677 MIDL_INTERFACE("14056589-e16c-11d2-bb90-00c04f8ee6c0")
2678 ISpObjectToken : public ISpDataKey
2679 {
2680     virtual HRESULT STDMETHODCALLTYPE SetId(
2681         LPCWSTR pszCategoryId,
2682         LPCWSTR pszTokenId,
2683         WINBOOL fCreateIfNotExist) = 0;
2684 
2685     virtual HRESULT STDMETHODCALLTYPE GetId(
2686         LPWSTR *ppszCoMemTokenId) = 0;
2687 
2688     virtual HRESULT STDMETHODCALLTYPE GetCategory(
2689         ISpObjectTokenCategory **ppTokenCategory) = 0;
2690 
2691     virtual HRESULT STDMETHODCALLTYPE CreateInstance(
2692         IUnknown *pUnkOuter,
2693         DWORD dwClsContext,
2694         REFIID riid,
2695         void **ppvObject) = 0;
2696 
2697     virtual HRESULT STDMETHODCALLTYPE GetStorageFileName(
2698         REFCLSID clsidCaller,
2699         LPCWSTR pszValueName,
2700         LPCWSTR pszFileNameSpecifier,
2701         ULONG nFolder,
2702         LPWSTR *ppszFilePath) = 0;
2703 
2704     virtual HRESULT STDMETHODCALLTYPE RemoveStorageFileName(
2705         REFCLSID clsidCaller,
2706         LPCWSTR pszKeyName,
2707         WINBOOL fDeleteFile) = 0;
2708 
2709     virtual HRESULT STDMETHODCALLTYPE Remove(
2710         const CLSID *pclsidCaller) = 0;
2711 
2712     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
2713         LPCWSTR pszTypeOfUI,
2714         void *pvExtraData,
2715         ULONG cbExtraData,
2716         IUnknown *punkObject,
2717         WINBOOL *pfSupported) = 0;
2718 
2719     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
2720         HWND hwndParent,
2721         LPCWSTR pszTitle,
2722         LPCWSTR pszTypeOfUI,
2723         void *pvExtraData,
2724         ULONG cbExtraData,
2725         IUnknown *punkObject) = 0;
2726 
2727     virtual HRESULT STDMETHODCALLTYPE MatchesAttributes(
2728         LPCWSTR pszAttributes,
2729         WINBOOL *pfMatches) = 0;
2730 
2731 };
2732 #ifdef __CRT_UUID_DECL
2733 __CRT_UUID_DECL(ISpObjectToken, 0x14056589, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
2734 #endif
2735 #else
2736 typedef struct ISpObjectTokenVtbl {
2737     BEGIN_INTERFACE
2738 
2739     /*** IUnknown methods ***/
2740     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2741         ISpObjectToken* This,
2742         REFIID riid,
2743         void **ppvObject);
2744 
2745     ULONG (STDMETHODCALLTYPE *AddRef)(
2746         ISpObjectToken* This);
2747 
2748     ULONG (STDMETHODCALLTYPE *Release)(
2749         ISpObjectToken* This);
2750 
2751     /*** ISpDataKey methods ***/
2752     HRESULT (STDMETHODCALLTYPE *SetData)(
2753         ISpObjectToken* This,
2754         LPCWSTR pszValueName,
2755         ULONG cbData,
2756         const BYTE *pData);
2757 
2758     HRESULT (STDMETHODCALLTYPE *GetData)(
2759         ISpObjectToken* This,
2760         LPCWSTR pszValueName,
2761         ULONG *pcbData,
2762         BYTE *pData);
2763 
2764     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
2765         ISpObjectToken* This,
2766         LPCWSTR pszValueName,
2767         LPCWSTR pszValue);
2768 
2769     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
2770         ISpObjectToken* This,
2771         LPCWSTR pszValueName,
2772         LPWSTR *ppszValue);
2773 
2774     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
2775         ISpObjectToken* This,
2776         LPCWSTR pszValueName,
2777         DWORD dwValue);
2778 
2779     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
2780         ISpObjectToken* This,
2781         LPCWSTR pszValueName,
2782         DWORD *pdwValue);
2783 
2784     HRESULT (STDMETHODCALLTYPE *OpenKey)(
2785         ISpObjectToken* This,
2786         LPCWSTR pszSubKeyName,
2787         ISpDataKey **ppSubKey);
2788 
2789     HRESULT (STDMETHODCALLTYPE *CreateKey)(
2790         ISpObjectToken* This,
2791         LPCWSTR pszSubKey,
2792         ISpDataKey **ppSubKey);
2793 
2794     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
2795         ISpObjectToken* This,
2796         LPCWSTR pszSubKey);
2797 
2798     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
2799         ISpObjectToken* This,
2800         LPCWSTR pszValueName);
2801 
2802     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
2803         ISpObjectToken* This,
2804         ULONG Index,
2805         LPWSTR *ppszSubKeyName);
2806 
2807     HRESULT (STDMETHODCALLTYPE *EnumValues)(
2808         ISpObjectToken* This,
2809         ULONG Index,
2810         LPWSTR *ppszValueName);
2811 
2812     /*** ISpObjectToken methods ***/
2813     HRESULT (STDMETHODCALLTYPE *SetId)(
2814         ISpObjectToken* This,
2815         LPCWSTR pszCategoryId,
2816         LPCWSTR pszTokenId,
2817         WINBOOL fCreateIfNotExist);
2818 
2819     HRESULT (STDMETHODCALLTYPE *GetId)(
2820         ISpObjectToken* This,
2821         LPWSTR *ppszCoMemTokenId);
2822 
2823     HRESULT (STDMETHODCALLTYPE *GetCategory)(
2824         ISpObjectToken* This,
2825         ISpObjectTokenCategory **ppTokenCategory);
2826 
2827     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
2828         ISpObjectToken* This,
2829         IUnknown *pUnkOuter,
2830         DWORD dwClsContext,
2831         REFIID riid,
2832         void **ppvObject);
2833 
2834     HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
2835         ISpObjectToken* This,
2836         REFCLSID clsidCaller,
2837         LPCWSTR pszValueName,
2838         LPCWSTR pszFileNameSpecifier,
2839         ULONG nFolder,
2840         LPWSTR *ppszFilePath);
2841 
2842     HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
2843         ISpObjectToken* This,
2844         REFCLSID clsidCaller,
2845         LPCWSTR pszKeyName,
2846         WINBOOL fDeleteFile);
2847 
2848     HRESULT (STDMETHODCALLTYPE *Remove)(
2849         ISpObjectToken* This,
2850         const CLSID *pclsidCaller);
2851 
2852     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
2853         ISpObjectToken* This,
2854         LPCWSTR pszTypeOfUI,
2855         void *pvExtraData,
2856         ULONG cbExtraData,
2857         IUnknown *punkObject,
2858         WINBOOL *pfSupported);
2859 
2860     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
2861         ISpObjectToken* This,
2862         HWND hwndParent,
2863         LPCWSTR pszTitle,
2864         LPCWSTR pszTypeOfUI,
2865         void *pvExtraData,
2866         ULONG cbExtraData,
2867         IUnknown *punkObject);
2868 
2869     HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
2870         ISpObjectToken* This,
2871         LPCWSTR pszAttributes,
2872         WINBOOL *pfMatches);
2873 
2874     END_INTERFACE
2875 } ISpObjectTokenVtbl;
2876 interface ISpObjectToken {
2877     CONST_VTBL ISpObjectTokenVtbl* lpVtbl;
2878 };
2879 
2880 #ifdef COBJMACROS
2881 #ifndef WIDL_C_INLINE_WRAPPERS
2882 /*** IUnknown methods ***/
2883 #define ISpObjectToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2884 #define ISpObjectToken_AddRef(This) (This)->lpVtbl->AddRef(This)
2885 #define ISpObjectToken_Release(This) (This)->lpVtbl->Release(This)
2886 /*** ISpDataKey methods ***/
2887 #define ISpObjectToken_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
2888 #define ISpObjectToken_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
2889 #define ISpObjectToken_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
2890 #define ISpObjectToken_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
2891 #define ISpObjectToken_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
2892 #define ISpObjectToken_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
2893 #define ISpObjectToken_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
2894 #define ISpObjectToken_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
2895 #define ISpObjectToken_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
2896 #define ISpObjectToken_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
2897 #define ISpObjectToken_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
2898 #define ISpObjectToken_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
2899 /*** ISpObjectToken methods ***/
2900 #define ISpObjectToken_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
2901 #define ISpObjectToken_GetId(This,ppszCoMemTokenId) (This)->lpVtbl->GetId(This,ppszCoMemTokenId)
2902 #define ISpObjectToken_GetCategory(This,ppTokenCategory) (This)->lpVtbl->GetCategory(This,ppTokenCategory)
2903 #define ISpObjectToken_CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
2904 #define ISpObjectToken_GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath) (This)->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
2905 #define ISpObjectToken_RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
2906 #define ISpObjectToken_Remove(This,pclsidCaller) (This)->lpVtbl->Remove(This,pclsidCaller)
2907 #define ISpObjectToken_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
2908 #define ISpObjectToken_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
2909 #define ISpObjectToken_MatchesAttributes(This,pszAttributes,pfMatches) (This)->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches)
2910 #else
2911 /*** IUnknown methods ***/
2912 static FORCEINLINE HRESULT ISpObjectToken_QueryInterface(ISpObjectToken* This,REFIID riid,void **ppvObject) {
2913     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2914 }
2915 static FORCEINLINE ULONG ISpObjectToken_AddRef(ISpObjectToken* This) {
2916     return This->lpVtbl->AddRef(This);
2917 }
2918 static FORCEINLINE ULONG ISpObjectToken_Release(ISpObjectToken* This) {
2919     return This->lpVtbl->Release(This);
2920 }
2921 /*** ISpDataKey methods ***/
2922 static FORCEINLINE HRESULT ISpObjectToken_SetData(ISpObjectToken* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
2923     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
2924 }
2925 static FORCEINLINE HRESULT ISpObjectToken_GetData(ISpObjectToken* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
2926     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
2927 }
2928 static FORCEINLINE HRESULT ISpObjectToken_SetStringValue(ISpObjectToken* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
2929     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
2930 }
2931 static FORCEINLINE HRESULT ISpObjectToken_GetStringValue(ISpObjectToken* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
2932     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
2933 }
2934 static FORCEINLINE HRESULT ISpObjectToken_SetDWORD(ISpObjectToken* This,LPCWSTR pszValueName,DWORD dwValue) {
2935     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
2936 }
2937 static FORCEINLINE HRESULT ISpObjectToken_GetDWORD(ISpObjectToken* This,LPCWSTR pszValueName,DWORD *pdwValue) {
2938     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
2939 }
2940 static FORCEINLINE HRESULT ISpObjectToken_OpenKey(ISpObjectToken* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
2941     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
2942 }
2943 static FORCEINLINE HRESULT ISpObjectToken_CreateKey(ISpObjectToken* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
2944     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
2945 }
2946 static FORCEINLINE HRESULT ISpObjectToken_DeleteKey(ISpObjectToken* This,LPCWSTR pszSubKey) {
2947     return This->lpVtbl->DeleteKey(This,pszSubKey);
2948 }
2949 static FORCEINLINE HRESULT ISpObjectToken_DeleteValue(ISpObjectToken* This,LPCWSTR pszValueName) {
2950     return This->lpVtbl->DeleteValue(This,pszValueName);
2951 }
2952 static FORCEINLINE HRESULT ISpObjectToken_EnumKeys(ISpObjectToken* This,ULONG Index,LPWSTR *ppszSubKeyName) {
2953     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
2954 }
2955 static FORCEINLINE HRESULT ISpObjectToken_EnumValues(ISpObjectToken* This,ULONG Index,LPWSTR *ppszValueName) {
2956     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
2957 }
2958 /*** ISpObjectToken methods ***/
2959 static FORCEINLINE HRESULT ISpObjectToken_SetId(ISpObjectToken* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,WINBOOL fCreateIfNotExist) {
2960     return This->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist);
2961 }
2962 static FORCEINLINE HRESULT ISpObjectToken_GetId(ISpObjectToken* This,LPWSTR *ppszCoMemTokenId) {
2963     return This->lpVtbl->GetId(This,ppszCoMemTokenId);
2964 }
2965 static FORCEINLINE HRESULT ISpObjectToken_GetCategory(ISpObjectToken* This,ISpObjectTokenCategory **ppTokenCategory) {
2966     return This->lpVtbl->GetCategory(This,ppTokenCategory);
2967 }
2968 static FORCEINLINE HRESULT ISpObjectToken_CreateInstance(ISpObjectToken* This,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,void **ppvObject) {
2969     return This->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject);
2970 }
2971 static FORCEINLINE HRESULT ISpObjectToken_GetStorageFileName(ISpObjectToken* This,REFCLSID clsidCaller,LPCWSTR pszValueName,LPCWSTR pszFileNameSpecifier,ULONG nFolder,LPWSTR *ppszFilePath) {
2972     return This->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath);
2973 }
2974 static FORCEINLINE HRESULT ISpObjectToken_RemoveStorageFileName(ISpObjectToken* This,REFCLSID clsidCaller,LPCWSTR pszKeyName,WINBOOL fDeleteFile) {
2975     return This->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile);
2976 }
2977 static FORCEINLINE HRESULT ISpObjectToken_Remove(ISpObjectToken* This,const CLSID *pclsidCaller) {
2978     return This->lpVtbl->Remove(This,pclsidCaller);
2979 }
2980 static FORCEINLINE HRESULT ISpObjectToken_IsUISupported(ISpObjectToken* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject,WINBOOL *pfSupported) {
2981     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported);
2982 }
2983 static FORCEINLINE HRESULT ISpObjectToken_DisplayUI(ISpObjectToken* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject) {
2984     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject);
2985 }
2986 static FORCEINLINE HRESULT ISpObjectToken_MatchesAttributes(ISpObjectToken* This,LPCWSTR pszAttributes,WINBOOL *pfMatches) {
2987     return This->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches);
2988 }
2989 #endif
2990 #endif
2991 
2992 #endif
2993 
2994 HRESULT STDMETHODCALLTYPE ISpObjectToken_SetId_Proxy(
2995     ISpObjectToken* This,
2996     LPCWSTR pszCategoryId,
2997     LPCWSTR pszTokenId,
2998     WINBOOL fCreateIfNotExist);
2999 void __RPC_STUB ISpObjectToken_SetId_Stub(
3000     IRpcStubBuffer* This,
3001     IRpcChannelBuffer* pRpcChannelBuffer,
3002     PRPC_MESSAGE pRpcMessage,
3003     DWORD* pdwStubPhase);
3004 HRESULT STDMETHODCALLTYPE ISpObjectToken_GetId_Proxy(
3005     ISpObjectToken* This,
3006     LPWSTR *ppszCoMemTokenId);
3007 void __RPC_STUB ISpObjectToken_GetId_Stub(
3008     IRpcStubBuffer* This,
3009     IRpcChannelBuffer* pRpcChannelBuffer,
3010     PRPC_MESSAGE pRpcMessage,
3011     DWORD* pdwStubPhase);
3012 HRESULT STDMETHODCALLTYPE ISpObjectToken_GetCategory_Proxy(
3013     ISpObjectToken* This,
3014     ISpObjectTokenCategory **ppTokenCategory);
3015 void __RPC_STUB ISpObjectToken_GetCategory_Stub(
3016     IRpcStubBuffer* This,
3017     IRpcChannelBuffer* pRpcChannelBuffer,
3018     PRPC_MESSAGE pRpcMessage,
3019     DWORD* pdwStubPhase);
3020 HRESULT STDMETHODCALLTYPE ISpObjectToken_CreateInstance_Proxy(
3021     ISpObjectToken* This,
3022     IUnknown *pUnkOuter,
3023     DWORD dwClsContext,
3024     REFIID riid,
3025     void **ppvObject);
3026 void __RPC_STUB ISpObjectToken_CreateInstance_Stub(
3027     IRpcStubBuffer* This,
3028     IRpcChannelBuffer* pRpcChannelBuffer,
3029     PRPC_MESSAGE pRpcMessage,
3030     DWORD* pdwStubPhase);
3031 HRESULT STDMETHODCALLTYPE ISpObjectToken_GetStorageFileName_Proxy(
3032     ISpObjectToken* This,
3033     REFCLSID clsidCaller,
3034     LPCWSTR pszValueName,
3035     LPCWSTR pszFileNameSpecifier,
3036     ULONG nFolder,
3037     LPWSTR *ppszFilePath);
3038 void __RPC_STUB ISpObjectToken_GetStorageFileName_Stub(
3039     IRpcStubBuffer* This,
3040     IRpcChannelBuffer* pRpcChannelBuffer,
3041     PRPC_MESSAGE pRpcMessage,
3042     DWORD* pdwStubPhase);
3043 HRESULT STDMETHODCALLTYPE ISpObjectToken_RemoveStorageFileName_Proxy(
3044     ISpObjectToken* This,
3045     REFCLSID clsidCaller,
3046     LPCWSTR pszKeyName,
3047     WINBOOL fDeleteFile);
3048 void __RPC_STUB ISpObjectToken_RemoveStorageFileName_Stub(
3049     IRpcStubBuffer* This,
3050     IRpcChannelBuffer* pRpcChannelBuffer,
3051     PRPC_MESSAGE pRpcMessage,
3052     DWORD* pdwStubPhase);
3053 HRESULT STDMETHODCALLTYPE ISpObjectToken_Remove_Proxy(
3054     ISpObjectToken* This,
3055     const CLSID *pclsidCaller);
3056 void __RPC_STUB ISpObjectToken_Remove_Stub(
3057     IRpcStubBuffer* This,
3058     IRpcChannelBuffer* pRpcChannelBuffer,
3059     PRPC_MESSAGE pRpcMessage,
3060     DWORD* pdwStubPhase);
3061 HRESULT STDMETHODCALLTYPE ISpObjectToken_MatchesAttributes_Proxy(
3062     ISpObjectToken* This,
3063     LPCWSTR pszAttributes,
3064     WINBOOL *pfMatches);
3065 void __RPC_STUB ISpObjectToken_MatchesAttributes_Stub(
3066     IRpcStubBuffer* This,
3067     IRpcChannelBuffer* pRpcChannelBuffer,
3068     PRPC_MESSAGE pRpcMessage,
3069     DWORD* pdwStubPhase);
3070 
3071 #endif  /* __ISpObjectToken_INTERFACE_DEFINED__ */
3072 
3073 /*****************************************************************************
3074  * ISpObjectTokenInit interface
3075  */
3076 #ifndef __ISpObjectTokenInit_INTERFACE_DEFINED__
3077 #define __ISpObjectTokenInit_INTERFACE_DEFINED__
3078 
3079 DEFINE_GUID(IID_ISpObjectTokenInit, 0xb8aab0cf, 0x346f, 0x49d8, 0x94,0x99, 0xc8,0xb0,0x3f,0x16,0x1d,0x51);
3080 #if defined(__cplusplus) && !defined(CINTERFACE)
3081 MIDL_INTERFACE("b8aab0cf-346f-49d8-9499-c8b03f161d51")
3082 ISpObjectTokenInit : public ISpObjectToken
3083 {
3084     virtual HRESULT STDMETHODCALLTYPE InitFromDataKey(
3085         LPCWSTR pszCategoryId,
3086         LPCWSTR pszTokenId,
3087         ISpDataKey *pDataKey) = 0;
3088 
3089 };
3090 #ifdef __CRT_UUID_DECL
3091 __CRT_UUID_DECL(ISpObjectTokenInit, 0xb8aab0cf, 0x346f, 0x49d8, 0x94,0x99, 0xc8,0xb0,0x3f,0x16,0x1d,0x51)
3092 #endif
3093 #else
3094 typedef struct ISpObjectTokenInitVtbl {
3095     BEGIN_INTERFACE
3096 
3097     /*** IUnknown methods ***/
3098     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3099         ISpObjectTokenInit* This,
3100         REFIID riid,
3101         void **ppvObject);
3102 
3103     ULONG (STDMETHODCALLTYPE *AddRef)(
3104         ISpObjectTokenInit* This);
3105 
3106     ULONG (STDMETHODCALLTYPE *Release)(
3107         ISpObjectTokenInit* This);
3108 
3109     /*** ISpDataKey methods ***/
3110     HRESULT (STDMETHODCALLTYPE *SetData)(
3111         ISpObjectTokenInit* This,
3112         LPCWSTR pszValueName,
3113         ULONG cbData,
3114         const BYTE *pData);
3115 
3116     HRESULT (STDMETHODCALLTYPE *GetData)(
3117         ISpObjectTokenInit* This,
3118         LPCWSTR pszValueName,
3119         ULONG *pcbData,
3120         BYTE *pData);
3121 
3122     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
3123         ISpObjectTokenInit* This,
3124         LPCWSTR pszValueName,
3125         LPCWSTR pszValue);
3126 
3127     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
3128         ISpObjectTokenInit* This,
3129         LPCWSTR pszValueName,
3130         LPWSTR *ppszValue);
3131 
3132     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
3133         ISpObjectTokenInit* This,
3134         LPCWSTR pszValueName,
3135         DWORD dwValue);
3136 
3137     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
3138         ISpObjectTokenInit* This,
3139         LPCWSTR pszValueName,
3140         DWORD *pdwValue);
3141 
3142     HRESULT (STDMETHODCALLTYPE *OpenKey)(
3143         ISpObjectTokenInit* This,
3144         LPCWSTR pszSubKeyName,
3145         ISpDataKey **ppSubKey);
3146 
3147     HRESULT (STDMETHODCALLTYPE *CreateKey)(
3148         ISpObjectTokenInit* This,
3149         LPCWSTR pszSubKey,
3150         ISpDataKey **ppSubKey);
3151 
3152     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
3153         ISpObjectTokenInit* This,
3154         LPCWSTR pszSubKey);
3155 
3156     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
3157         ISpObjectTokenInit* This,
3158         LPCWSTR pszValueName);
3159 
3160     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
3161         ISpObjectTokenInit* This,
3162         ULONG Index,
3163         LPWSTR *ppszSubKeyName);
3164 
3165     HRESULT (STDMETHODCALLTYPE *EnumValues)(
3166         ISpObjectTokenInit* This,
3167         ULONG Index,
3168         LPWSTR *ppszValueName);
3169 
3170     /*** ISpObjectToken methods ***/
3171     HRESULT (STDMETHODCALLTYPE *SetId)(
3172         ISpObjectTokenInit* This,
3173         LPCWSTR pszCategoryId,
3174         LPCWSTR pszTokenId,
3175         WINBOOL fCreateIfNotExist);
3176 
3177     HRESULT (STDMETHODCALLTYPE *GetId)(
3178         ISpObjectTokenInit* This,
3179         LPWSTR *ppszCoMemTokenId);
3180 
3181     HRESULT (STDMETHODCALLTYPE *GetCategory)(
3182         ISpObjectTokenInit* This,
3183         ISpObjectTokenCategory **ppTokenCategory);
3184 
3185     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
3186         ISpObjectTokenInit* This,
3187         IUnknown *pUnkOuter,
3188         DWORD dwClsContext,
3189         REFIID riid,
3190         void **ppvObject);
3191 
3192     HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
3193         ISpObjectTokenInit* This,
3194         REFCLSID clsidCaller,
3195         LPCWSTR pszValueName,
3196         LPCWSTR pszFileNameSpecifier,
3197         ULONG nFolder,
3198         LPWSTR *ppszFilePath);
3199 
3200     HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
3201         ISpObjectTokenInit* This,
3202         REFCLSID clsidCaller,
3203         LPCWSTR pszKeyName,
3204         WINBOOL fDeleteFile);
3205 
3206     HRESULT (STDMETHODCALLTYPE *Remove)(
3207         ISpObjectTokenInit* This,
3208         const CLSID *pclsidCaller);
3209 
3210     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
3211         ISpObjectTokenInit* This,
3212         LPCWSTR pszTypeOfUI,
3213         void *pvExtraData,
3214         ULONG cbExtraData,
3215         IUnknown *punkObject,
3216         WINBOOL *pfSupported);
3217 
3218     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
3219         ISpObjectTokenInit* This,
3220         HWND hwndParent,
3221         LPCWSTR pszTitle,
3222         LPCWSTR pszTypeOfUI,
3223         void *pvExtraData,
3224         ULONG cbExtraData,
3225         IUnknown *punkObject);
3226 
3227     HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
3228         ISpObjectTokenInit* This,
3229         LPCWSTR pszAttributes,
3230         WINBOOL *pfMatches);
3231 
3232     /*** ISpObjectTokenInit methods ***/
3233     HRESULT (STDMETHODCALLTYPE *InitFromDataKey)(
3234         ISpObjectTokenInit* This,
3235         LPCWSTR pszCategoryId,
3236         LPCWSTR pszTokenId,
3237         ISpDataKey *pDataKey);
3238 
3239     END_INTERFACE
3240 } ISpObjectTokenInitVtbl;
3241 interface ISpObjectTokenInit {
3242     CONST_VTBL ISpObjectTokenInitVtbl* lpVtbl;
3243 };
3244 
3245 #ifdef COBJMACROS
3246 #ifndef WIDL_C_INLINE_WRAPPERS
3247 /*** IUnknown methods ***/
3248 #define ISpObjectTokenInit_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3249 #define ISpObjectTokenInit_AddRef(This) (This)->lpVtbl->AddRef(This)
3250 #define ISpObjectTokenInit_Release(This) (This)->lpVtbl->Release(This)
3251 /*** ISpDataKey methods ***/
3252 #define ISpObjectTokenInit_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
3253 #define ISpObjectTokenInit_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
3254 #define ISpObjectTokenInit_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
3255 #define ISpObjectTokenInit_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
3256 #define ISpObjectTokenInit_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
3257 #define ISpObjectTokenInit_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
3258 #define ISpObjectTokenInit_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
3259 #define ISpObjectTokenInit_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
3260 #define ISpObjectTokenInit_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
3261 #define ISpObjectTokenInit_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
3262 #define ISpObjectTokenInit_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
3263 #define ISpObjectTokenInit_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
3264 /*** ISpObjectToken methods ***/
3265 #define ISpObjectTokenInit_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
3266 #define ISpObjectTokenInit_GetId(This,ppszCoMemTokenId) (This)->lpVtbl->GetId(This,ppszCoMemTokenId)
3267 #define ISpObjectTokenInit_GetCategory(This,ppTokenCategory) (This)->lpVtbl->GetCategory(This,ppTokenCategory)
3268 #define ISpObjectTokenInit_CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
3269 #define ISpObjectTokenInit_GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath) (This)->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
3270 #define ISpObjectTokenInit_RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
3271 #define ISpObjectTokenInit_Remove(This,pclsidCaller) (This)->lpVtbl->Remove(This,pclsidCaller)
3272 #define ISpObjectTokenInit_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
3273 #define ISpObjectTokenInit_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
3274 #define ISpObjectTokenInit_MatchesAttributes(This,pszAttributes,pfMatches) (This)->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches)
3275 /*** ISpObjectTokenInit methods ***/
3276 #define ISpObjectTokenInit_InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey) (This)->lpVtbl->InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey)
3277 #else
3278 /*** IUnknown methods ***/
3279 static FORCEINLINE HRESULT ISpObjectTokenInit_QueryInterface(ISpObjectTokenInit* This,REFIID riid,void **ppvObject) {
3280     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3281 }
3282 static FORCEINLINE ULONG ISpObjectTokenInit_AddRef(ISpObjectTokenInit* This) {
3283     return This->lpVtbl->AddRef(This);
3284 }
3285 static FORCEINLINE ULONG ISpObjectTokenInit_Release(ISpObjectTokenInit* This) {
3286     return This->lpVtbl->Release(This);
3287 }
3288 /*** ISpDataKey methods ***/
3289 static FORCEINLINE HRESULT ISpObjectTokenInit_SetData(ISpObjectTokenInit* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
3290     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
3291 }
3292 static FORCEINLINE HRESULT ISpObjectTokenInit_GetData(ISpObjectTokenInit* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
3293     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
3294 }
3295 static FORCEINLINE HRESULT ISpObjectTokenInit_SetStringValue(ISpObjectTokenInit* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
3296     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
3297 }
3298 static FORCEINLINE HRESULT ISpObjectTokenInit_GetStringValue(ISpObjectTokenInit* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
3299     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
3300 }
3301 static FORCEINLINE HRESULT ISpObjectTokenInit_SetDWORD(ISpObjectTokenInit* This,LPCWSTR pszValueName,DWORD dwValue) {
3302     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
3303 }
3304 static FORCEINLINE HRESULT ISpObjectTokenInit_GetDWORD(ISpObjectTokenInit* This,LPCWSTR pszValueName,DWORD *pdwValue) {
3305     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
3306 }
3307 static FORCEINLINE HRESULT ISpObjectTokenInit_OpenKey(ISpObjectTokenInit* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
3308     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
3309 }
3310 static FORCEINLINE HRESULT ISpObjectTokenInit_CreateKey(ISpObjectTokenInit* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
3311     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
3312 }
3313 static FORCEINLINE HRESULT ISpObjectTokenInit_DeleteKey(ISpObjectTokenInit* This,LPCWSTR pszSubKey) {
3314     return This->lpVtbl->DeleteKey(This,pszSubKey);
3315 }
3316 static FORCEINLINE HRESULT ISpObjectTokenInit_DeleteValue(ISpObjectTokenInit* This,LPCWSTR pszValueName) {
3317     return This->lpVtbl->DeleteValue(This,pszValueName);
3318 }
3319 static FORCEINLINE HRESULT ISpObjectTokenInit_EnumKeys(ISpObjectTokenInit* This,ULONG Index,LPWSTR *ppszSubKeyName) {
3320     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
3321 }
3322 static FORCEINLINE HRESULT ISpObjectTokenInit_EnumValues(ISpObjectTokenInit* This,ULONG Index,LPWSTR *ppszValueName) {
3323     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
3324 }
3325 /*** ISpObjectToken methods ***/
3326 static FORCEINLINE HRESULT ISpObjectTokenInit_SetId(ISpObjectTokenInit* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,WINBOOL fCreateIfNotExist) {
3327     return This->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist);
3328 }
3329 static FORCEINLINE HRESULT ISpObjectTokenInit_GetId(ISpObjectTokenInit* This,LPWSTR *ppszCoMemTokenId) {
3330     return This->lpVtbl->GetId(This,ppszCoMemTokenId);
3331 }
3332 static FORCEINLINE HRESULT ISpObjectTokenInit_GetCategory(ISpObjectTokenInit* This,ISpObjectTokenCategory **ppTokenCategory) {
3333     return This->lpVtbl->GetCategory(This,ppTokenCategory);
3334 }
3335 static FORCEINLINE HRESULT ISpObjectTokenInit_CreateInstance(ISpObjectTokenInit* This,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,void **ppvObject) {
3336     return This->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject);
3337 }
3338 static FORCEINLINE HRESULT ISpObjectTokenInit_GetStorageFileName(ISpObjectTokenInit* This,REFCLSID clsidCaller,LPCWSTR pszValueName,LPCWSTR pszFileNameSpecifier,ULONG nFolder,LPWSTR *ppszFilePath) {
3339     return This->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath);
3340 }
3341 static FORCEINLINE HRESULT ISpObjectTokenInit_RemoveStorageFileName(ISpObjectTokenInit* This,REFCLSID clsidCaller,LPCWSTR pszKeyName,WINBOOL fDeleteFile) {
3342     return This->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile);
3343 }
3344 static FORCEINLINE HRESULT ISpObjectTokenInit_Remove(ISpObjectTokenInit* This,const CLSID *pclsidCaller) {
3345     return This->lpVtbl->Remove(This,pclsidCaller);
3346 }
3347 static FORCEINLINE HRESULT ISpObjectTokenInit_IsUISupported(ISpObjectTokenInit* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject,WINBOOL *pfSupported) {
3348     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported);
3349 }
3350 static FORCEINLINE HRESULT ISpObjectTokenInit_DisplayUI(ISpObjectTokenInit* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject) {
3351     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject);
3352 }
3353 static FORCEINLINE HRESULT ISpObjectTokenInit_MatchesAttributes(ISpObjectTokenInit* This,LPCWSTR pszAttributes,WINBOOL *pfMatches) {
3354     return This->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches);
3355 }
3356 /*** ISpObjectTokenInit methods ***/
3357 static FORCEINLINE HRESULT ISpObjectTokenInit_InitFromDataKey(ISpObjectTokenInit* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,ISpDataKey *pDataKey) {
3358     return This->lpVtbl->InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey);
3359 }
3360 #endif
3361 #endif
3362 
3363 #endif
3364 
3365 HRESULT STDMETHODCALLTYPE ISpObjectTokenInit_InitFromDataKey_Proxy(
3366     ISpObjectTokenInit* This,
3367     LPCWSTR pszCategoryId,
3368     LPCWSTR pszTokenId,
3369     ISpDataKey *pDataKey);
3370 void __RPC_STUB ISpObjectTokenInit_InitFromDataKey_Stub(
3371     IRpcStubBuffer* This,
3372     IRpcChannelBuffer* pRpcChannelBuffer,
3373     PRPC_MESSAGE pRpcMessage,
3374     DWORD* pdwStubPhase);
3375 
3376 #endif  /* __ISpObjectTokenInit_INTERFACE_DEFINED__ */
3377 
3378 /*****************************************************************************
3379  * ISpResourceManager interface
3380  */
3381 #ifndef __ISpResourceManager_INTERFACE_DEFINED__
3382 #define __ISpResourceManager_INTERFACE_DEFINED__
3383 
3384 DEFINE_GUID(IID_ISpResourceManager, 0x93384e18, 0x5014, 0x43d5, 0xad,0xbb, 0xa7,0x8e,0x05,0x59,0x26,0xbd);
3385 #if defined(__cplusplus) && !defined(CINTERFACE)
3386 MIDL_INTERFACE("93384e18-5014-43d5-adbb-a78e055926bd")
3387 ISpResourceManager : public IServiceProvider
3388 {
3389     virtual HRESULT STDMETHODCALLTYPE SetObject(
3390         REFGUID guidServiceId,
3391         IUnknown *pUnkObject) = 0;
3392 
3393     virtual HRESULT STDMETHODCALLTYPE GetObject(
3394         REFGUID guidServiceId,
3395         REFCLSID ObjectCLSID,
3396         REFIID ObjectIID,
3397         WINBOOL fReleaseWhenLastExternalRefReleased,
3398         void **ppObject) = 0;
3399 
3400 };
3401 #ifdef __CRT_UUID_DECL
3402 __CRT_UUID_DECL(ISpResourceManager, 0x93384e18, 0x5014, 0x43d5, 0xad,0xbb, 0xa7,0x8e,0x05,0x59,0x26,0xbd)
3403 #endif
3404 #else
3405 typedef struct ISpResourceManagerVtbl {
3406     BEGIN_INTERFACE
3407 
3408     /*** IUnknown methods ***/
3409     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3410         ISpResourceManager* This,
3411         REFIID riid,
3412         void **ppvObject);
3413 
3414     ULONG (STDMETHODCALLTYPE *AddRef)(
3415         ISpResourceManager* This);
3416 
3417     ULONG (STDMETHODCALLTYPE *Release)(
3418         ISpResourceManager* This);
3419 
3420     /*** IServiceProvider methods ***/
3421     HRESULT (STDMETHODCALLTYPE *QueryService)(
3422         ISpResourceManager* This,
3423         REFGUID guidService,
3424         REFIID riid,
3425         void **ppvObject);
3426 
3427     /*** ISpResourceManager methods ***/
3428     HRESULT (STDMETHODCALLTYPE *SetObject)(
3429         ISpResourceManager* This,
3430         REFGUID guidServiceId,
3431         IUnknown *pUnkObject);
3432 
3433     HRESULT (STDMETHODCALLTYPE *GetObject)(
3434         ISpResourceManager* This,
3435         REFGUID guidServiceId,
3436         REFCLSID ObjectCLSID,
3437         REFIID ObjectIID,
3438         WINBOOL fReleaseWhenLastExternalRefReleased,
3439         void **ppObject);
3440 
3441     END_INTERFACE
3442 } ISpResourceManagerVtbl;
3443 interface ISpResourceManager {
3444     CONST_VTBL ISpResourceManagerVtbl* lpVtbl;
3445 };
3446 
3447 #ifdef COBJMACROS
3448 #ifndef WIDL_C_INLINE_WRAPPERS
3449 /*** IUnknown methods ***/
3450 #define ISpResourceManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3451 #define ISpResourceManager_AddRef(This) (This)->lpVtbl->AddRef(This)
3452 #define ISpResourceManager_Release(This) (This)->lpVtbl->Release(This)
3453 /*** IServiceProvider methods ***/
3454 #define ISpResourceManager_QueryService(This,guidService,riid,ppvObject) (This)->lpVtbl->QueryService(This,guidService,riid,ppvObject)
3455 /*** ISpResourceManager methods ***/
3456 #define ISpResourceManager_SetObject(This,guidServiceId,pUnkObject) (This)->lpVtbl->SetObject(This,guidServiceId,pUnkObject)
3457 #define ISpResourceManager_GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject) (This)->lpVtbl->GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject)
3458 #else
3459 /*** IUnknown methods ***/
3460 static FORCEINLINE HRESULT ISpResourceManager_QueryInterface(ISpResourceManager* This,REFIID riid,void **ppvObject) {
3461     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3462 }
3463 static FORCEINLINE ULONG ISpResourceManager_AddRef(ISpResourceManager* This) {
3464     return This->lpVtbl->AddRef(This);
3465 }
3466 static FORCEINLINE ULONG ISpResourceManager_Release(ISpResourceManager* This) {
3467     return This->lpVtbl->Release(This);
3468 }
3469 /*** IServiceProvider methods ***/
3470 static FORCEINLINE HRESULT ISpResourceManager_QueryService(ISpResourceManager* This,REFGUID guidService,REFIID riid,void **ppvObject) {
3471     return This->lpVtbl->QueryService(This,guidService,riid,ppvObject);
3472 }
3473 /*** ISpResourceManager methods ***/
3474 static FORCEINLINE HRESULT ISpResourceManager_SetObject(ISpResourceManager* This,REFGUID guidServiceId,IUnknown *pUnkObject) {
3475     return This->lpVtbl->SetObject(This,guidServiceId,pUnkObject);
3476 }
3477 static FORCEINLINE HRESULT ISpResourceManager_GetObject(ISpResourceManager* This,REFGUID guidServiceId,REFCLSID ObjectCLSID,REFIID ObjectIID,WINBOOL fReleaseWhenLastExternalRefReleased,void **ppObject) {
3478     return This->lpVtbl->GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject);
3479 }
3480 #endif
3481 #endif
3482 
3483 #endif
3484 
3485 HRESULT STDMETHODCALLTYPE ISpResourceManager_SetObject_Proxy(
3486     ISpResourceManager* This,
3487     REFGUID guidServiceId,
3488     IUnknown *pUnkObject);
3489 void __RPC_STUB ISpResourceManager_SetObject_Stub(
3490     IRpcStubBuffer* This,
3491     IRpcChannelBuffer* pRpcChannelBuffer,
3492     PRPC_MESSAGE pRpcMessage,
3493     DWORD* pdwStubPhase);
3494 HRESULT STDMETHODCALLTYPE ISpResourceManager_GetObject_Proxy(
3495     ISpResourceManager* This,
3496     REFGUID guidServiceId,
3497     REFCLSID ObjectCLSID,
3498     REFIID ObjectIID,
3499     WINBOOL fReleaseWhenLastExternalRefReleased,
3500     void **ppObject);
3501 void __RPC_STUB ISpResourceManager_GetObject_Stub(
3502     IRpcStubBuffer* This,
3503     IRpcChannelBuffer* pRpcChannelBuffer,
3504     PRPC_MESSAGE pRpcMessage,
3505     DWORD* pdwStubPhase);
3506 
3507 #endif  /* __ISpResourceManager_INTERFACE_DEFINED__ */
3508 
3509 #if 0
3510 typedef struct SPEVENT {
3511     WORD eEventId;
3512     WORD elParamType;
3513     ULONG ulStreamNum;
3514     ULONGLONG ullAudioStreamOffset;
3515     WPARAM wParam;
3516     LPARAM lParam;
3517 } SPEVENT;
3518 typedef struct SPSERIALIZEDEVENT {
3519     WORD eEventId;
3520     WORD elParamType;
3521     ULONG ulStreamNum;
3522     ULONGLONG ullAudioStreamOffset;
3523     ULONG SerializedwParam;
3524     LONG SerializedlParam;
3525 } SPSERIALIZEDEVENT;
3526 typedef struct SPSERIALIZEDEVENT64 {
3527     WORD eEventId;
3528     WORD elParamType;
3529     ULONG ulStreamNum;
3530     ULONGLONG ullAudioStreamOffset;
3531     ULONGLONG SerializedwParam;
3532     LONGLONG SerializedlParam;
3533 } SPSERIALIZEDEVENT64;
3534 #else
3535 typedef struct SPEVENT {
3536   SPEVENTENUM eEventId : 16;
3537   SPEVENTLPARAMTYPE elParamType : 16;
3538   ULONG ulStreamNum;
3539   ULONGLONG ullAudioStreamOffset;
3540   WPARAM      wParam;
3541   LPARAM      lParam;
3542 } SPEVENT;
3543 
3544 typedef struct SPSERIALIZEDEVENT {
3545   SPEVENTENUM eEventId : 16;
3546   SPEVENTLPARAMTYPE elParamType : 16;
3547   ULONG ulStreamNum;
3548   ULONGLONG ullAudioStreamOffset;
3549   ULONG SerializedwParam;
3550   LONG SerializedlParam;
3551 } SPSERIALIZEDEVENT;
3552 
3553 typedef struct SPSERIALIZEDEVENT64 {
3554   SPEVENTENUM eEventId : 16;
3555   SPEVENTLPARAMTYPE elParamType : 16;
3556   ULONG ulStreamNum;
3557   ULONGLONG ullAudioStreamOffset;
3558   ULONGLONG SerializedwParam;
3559   LONGLONG SerializedlParam;
3560 } SPSERIALIZEDEVENT64;
3561 #endif
3562 typedef struct SPEVENTSOURCEINFO {
3563     ULONGLONG ullEventInterest;
3564     ULONGLONG ullQueuedInterest;
3565     ULONG ulCount;
3566 } SPEVENTSOURCEINFO;
3567 /*****************************************************************************
3568  * ISpEventSource interface
3569  */
3570 #ifndef __ISpEventSource_INTERFACE_DEFINED__
3571 #define __ISpEventSource_INTERFACE_DEFINED__
3572 
3573 DEFINE_GUID(IID_ISpEventSource, 0xbe7a9cce, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
3574 #if defined(__cplusplus) && !defined(CINTERFACE)
3575 MIDL_INTERFACE("be7a9cce-5f9e-11d2-960f-00c04f8ee628")
3576 ISpEventSource : public ISpNotifySource
3577 {
3578     virtual HRESULT STDMETHODCALLTYPE SetInterest(
3579         ULONGLONG ullEventInterest,
3580         ULONGLONG ullQueuedInterest) = 0;
3581 
3582     virtual HRESULT STDMETHODCALLTYPE GetEvents(
3583         ULONG ulCount,
3584         SPEVENT *pEventArray,
3585         ULONG *pulFetched) = 0;
3586 
3587     virtual HRESULT STDMETHODCALLTYPE GetInfo(
3588         SPEVENTSOURCEINFO *pInfo) = 0;
3589 
3590 };
3591 #ifdef __CRT_UUID_DECL
3592 __CRT_UUID_DECL(ISpEventSource, 0xbe7a9cce, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
3593 #endif
3594 #else
3595 typedef struct ISpEventSourceVtbl {
3596     BEGIN_INTERFACE
3597 
3598     /*** IUnknown methods ***/
3599     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3600         ISpEventSource* This,
3601         REFIID riid,
3602         void **ppvObject);
3603 
3604     ULONG (STDMETHODCALLTYPE *AddRef)(
3605         ISpEventSource* This);
3606 
3607     ULONG (STDMETHODCALLTYPE *Release)(
3608         ISpEventSource* This);
3609 
3610     /*** ISpNotifySource methods ***/
3611     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
3612         ISpEventSource* This,
3613         ISpNotifySink *pNotifySink);
3614 
3615     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
3616         ISpEventSource* This,
3617         HWND hWnd,
3618         UINT Msg,
3619         WPARAM wParam,
3620         LPARAM lParam);
3621 
3622     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
3623         ISpEventSource* This,
3624         SPNOTIFYCALLBACK *pfnCallback,
3625         WPARAM wParam,
3626         LPARAM lParam);
3627 
3628     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
3629         ISpEventSource* This,
3630         ISpNotifyCallback *pSpCallback,
3631         WPARAM wParam,
3632         LPARAM lParam);
3633 
3634     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
3635         ISpEventSource* This);
3636 
3637     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
3638         ISpEventSource* This,
3639         DWORD dwMilliseconds);
3640 
3641     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
3642         ISpEventSource* This);
3643 
3644     /*** ISpEventSource methods ***/
3645     HRESULT (STDMETHODCALLTYPE *SetInterest)(
3646         ISpEventSource* This,
3647         ULONGLONG ullEventInterest,
3648         ULONGLONG ullQueuedInterest);
3649 
3650     HRESULT (STDMETHODCALLTYPE *GetEvents)(
3651         ISpEventSource* This,
3652         ULONG ulCount,
3653         SPEVENT *pEventArray,
3654         ULONG *pulFetched);
3655 
3656     HRESULT (STDMETHODCALLTYPE *GetInfo)(
3657         ISpEventSource* This,
3658         SPEVENTSOURCEINFO *pInfo);
3659 
3660     END_INTERFACE
3661 } ISpEventSourceVtbl;
3662 interface ISpEventSource {
3663     CONST_VTBL ISpEventSourceVtbl* lpVtbl;
3664 };
3665 
3666 #ifdef COBJMACROS
3667 #ifndef WIDL_C_INLINE_WRAPPERS
3668 /*** IUnknown methods ***/
3669 #define ISpEventSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3670 #define ISpEventSource_AddRef(This) (This)->lpVtbl->AddRef(This)
3671 #define ISpEventSource_Release(This) (This)->lpVtbl->Release(This)
3672 /*** ISpNotifySource methods ***/
3673 #define ISpEventSource_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
3674 #define ISpEventSource_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
3675 #define ISpEventSource_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
3676 #define ISpEventSource_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
3677 #define ISpEventSource_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
3678 #define ISpEventSource_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
3679 #define ISpEventSource_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
3680 /*** ISpEventSource methods ***/
3681 #define ISpEventSource_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
3682 #define ISpEventSource_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
3683 #define ISpEventSource_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
3684 #else
3685 /*** IUnknown methods ***/
3686 static FORCEINLINE HRESULT ISpEventSource_QueryInterface(ISpEventSource* This,REFIID riid,void **ppvObject) {
3687     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3688 }
3689 static FORCEINLINE ULONG ISpEventSource_AddRef(ISpEventSource* This) {
3690     return This->lpVtbl->AddRef(This);
3691 }
3692 static FORCEINLINE ULONG ISpEventSource_Release(ISpEventSource* This) {
3693     return This->lpVtbl->Release(This);
3694 }
3695 /*** ISpNotifySource methods ***/
3696 static FORCEINLINE HRESULT ISpEventSource_SetNotifySink(ISpEventSource* This,ISpNotifySink *pNotifySink) {
3697     return This->lpVtbl->SetNotifySink(This,pNotifySink);
3698 }
3699 static FORCEINLINE HRESULT ISpEventSource_SetNotifyWindowMessage(ISpEventSource* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
3700     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
3701 }
3702 static FORCEINLINE HRESULT ISpEventSource_SetNotifyCallbackFunction(ISpEventSource* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
3703     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
3704 }
3705 static FORCEINLINE HRESULT ISpEventSource_SetNotifyCallbackInterface(ISpEventSource* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
3706     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
3707 }
3708 static FORCEINLINE HRESULT ISpEventSource_SetNotifyWin32Event(ISpEventSource* This) {
3709     return This->lpVtbl->SetNotifyWin32Event(This);
3710 }
3711 static FORCEINLINE HRESULT ISpEventSource_WaitForNotifyEvent(ISpEventSource* This,DWORD dwMilliseconds) {
3712     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
3713 }
3714 static FORCEINLINE HANDLE ISpEventSource_GetNotifyEventHandle(ISpEventSource* This) {
3715     return This->lpVtbl->GetNotifyEventHandle(This);
3716 }
3717 /*** ISpEventSource methods ***/
3718 static FORCEINLINE HRESULT ISpEventSource_SetInterest(ISpEventSource* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
3719     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
3720 }
3721 static FORCEINLINE HRESULT ISpEventSource_GetEvents(ISpEventSource* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
3722     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
3723 }
3724 static FORCEINLINE HRESULT ISpEventSource_GetInfo(ISpEventSource* This,SPEVENTSOURCEINFO *pInfo) {
3725     return This->lpVtbl->GetInfo(This,pInfo);
3726 }
3727 #endif
3728 #endif
3729 
3730 #endif
3731 
3732 HRESULT STDMETHODCALLTYPE ISpEventSource_SetInterest_Proxy(
3733     ISpEventSource* This,
3734     ULONGLONG ullEventInterest,
3735     ULONGLONG ullQueuedInterest);
3736 void __RPC_STUB ISpEventSource_SetInterest_Stub(
3737     IRpcStubBuffer* This,
3738     IRpcChannelBuffer* pRpcChannelBuffer,
3739     PRPC_MESSAGE pRpcMessage,
3740     DWORD* pdwStubPhase);
3741 HRESULT STDMETHODCALLTYPE ISpEventSource_GetEvents_Proxy(
3742     ISpEventSource* This,
3743     ULONG ulCount,
3744     SPEVENT *pEventArray,
3745     ULONG *pulFetched);
3746 void __RPC_STUB ISpEventSource_GetEvents_Stub(
3747     IRpcStubBuffer* This,
3748     IRpcChannelBuffer* pRpcChannelBuffer,
3749     PRPC_MESSAGE pRpcMessage,
3750     DWORD* pdwStubPhase);
3751 HRESULT STDMETHODCALLTYPE ISpEventSource_GetInfo_Proxy(
3752     ISpEventSource* This,
3753     SPEVENTSOURCEINFO *pInfo);
3754 void __RPC_STUB ISpEventSource_GetInfo_Stub(
3755     IRpcStubBuffer* This,
3756     IRpcChannelBuffer* pRpcChannelBuffer,
3757     PRPC_MESSAGE pRpcMessage,
3758     DWORD* pdwStubPhase);
3759 
3760 #endif  /* __ISpEventSource_INTERFACE_DEFINED__ */
3761 
3762 /*****************************************************************************
3763  * ISpEventSink interface
3764  */
3765 #ifndef __ISpEventSink_INTERFACE_DEFINED__
3766 #define __ISpEventSink_INTERFACE_DEFINED__
3767 
3768 DEFINE_GUID(IID_ISpEventSink, 0xbe7a9cc9, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
3769 #if defined(__cplusplus) && !defined(CINTERFACE)
3770 MIDL_INTERFACE("be7a9cc9-5f9e-11d2-960f-00c04f8ee628")
3771 ISpEventSink : public IUnknown
3772 {
3773     virtual HRESULT STDMETHODCALLTYPE AddEvents(
3774         const SPEVENT *pEventArray,
3775         ULONG ulCount) = 0;
3776 
3777     virtual HRESULT STDMETHODCALLTYPE GetEventInterest(
3778         ULONGLONG *pullEventInterest) = 0;
3779 
3780 };
3781 #ifdef __CRT_UUID_DECL
3782 __CRT_UUID_DECL(ISpEventSink, 0xbe7a9cc9, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
3783 #endif
3784 #else
3785 typedef struct ISpEventSinkVtbl {
3786     BEGIN_INTERFACE
3787 
3788     /*** IUnknown methods ***/
3789     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3790         ISpEventSink* This,
3791         REFIID riid,
3792         void **ppvObject);
3793 
3794     ULONG (STDMETHODCALLTYPE *AddRef)(
3795         ISpEventSink* This);
3796 
3797     ULONG (STDMETHODCALLTYPE *Release)(
3798         ISpEventSink* This);
3799 
3800     /*** ISpEventSink methods ***/
3801     HRESULT (STDMETHODCALLTYPE *AddEvents)(
3802         ISpEventSink* This,
3803         const SPEVENT *pEventArray,
3804         ULONG ulCount);
3805 
3806     HRESULT (STDMETHODCALLTYPE *GetEventInterest)(
3807         ISpEventSink* This,
3808         ULONGLONG *pullEventInterest);
3809 
3810     END_INTERFACE
3811 } ISpEventSinkVtbl;
3812 interface ISpEventSink {
3813     CONST_VTBL ISpEventSinkVtbl* lpVtbl;
3814 };
3815 
3816 #ifdef COBJMACROS
3817 #ifndef WIDL_C_INLINE_WRAPPERS
3818 /*** IUnknown methods ***/
3819 #define ISpEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3820 #define ISpEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
3821 #define ISpEventSink_Release(This) (This)->lpVtbl->Release(This)
3822 /*** ISpEventSink methods ***/
3823 #define ISpEventSink_AddEvents(This,pEventArray,ulCount) (This)->lpVtbl->AddEvents(This,pEventArray,ulCount)
3824 #define ISpEventSink_GetEventInterest(This,pullEventInterest) (This)->lpVtbl->GetEventInterest(This,pullEventInterest)
3825 #else
3826 /*** IUnknown methods ***/
3827 static FORCEINLINE HRESULT ISpEventSink_QueryInterface(ISpEventSink* This,REFIID riid,void **ppvObject) {
3828     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3829 }
3830 static FORCEINLINE ULONG ISpEventSink_AddRef(ISpEventSink* This) {
3831     return This->lpVtbl->AddRef(This);
3832 }
3833 static FORCEINLINE ULONG ISpEventSink_Release(ISpEventSink* This) {
3834     return This->lpVtbl->Release(This);
3835 }
3836 /*** ISpEventSink methods ***/
3837 static FORCEINLINE HRESULT ISpEventSink_AddEvents(ISpEventSink* This,const SPEVENT *pEventArray,ULONG ulCount) {
3838     return This->lpVtbl->AddEvents(This,pEventArray,ulCount);
3839 }
3840 static FORCEINLINE HRESULT ISpEventSink_GetEventInterest(ISpEventSink* This,ULONGLONG *pullEventInterest) {
3841     return This->lpVtbl->GetEventInterest(This,pullEventInterest);
3842 }
3843 #endif
3844 #endif
3845 
3846 #endif
3847 
3848 HRESULT STDMETHODCALLTYPE ISpEventSink_AddEvents_Proxy(
3849     ISpEventSink* This,
3850     const SPEVENT *pEventArray,
3851     ULONG ulCount);
3852 void __RPC_STUB ISpEventSink_AddEvents_Stub(
3853     IRpcStubBuffer* This,
3854     IRpcChannelBuffer* pRpcChannelBuffer,
3855     PRPC_MESSAGE pRpcMessage,
3856     DWORD* pdwStubPhase);
3857 HRESULT STDMETHODCALLTYPE ISpEventSink_GetEventInterest_Proxy(
3858     ISpEventSink* This,
3859     ULONGLONG *pullEventInterest);
3860 void __RPC_STUB ISpEventSink_GetEventInterest_Stub(
3861     IRpcStubBuffer* This,
3862     IRpcChannelBuffer* pRpcChannelBuffer,
3863     PRPC_MESSAGE pRpcMessage,
3864     DWORD* pdwStubPhase);
3865 
3866 #endif  /* __ISpEventSink_INTERFACE_DEFINED__ */
3867 
3868 /*****************************************************************************
3869  * ISpStreamFormat interface
3870  */
3871 #ifndef __ISpStreamFormat_INTERFACE_DEFINED__
3872 #define __ISpStreamFormat_INTERFACE_DEFINED__
3873 
3874 DEFINE_GUID(IID_ISpStreamFormat, 0xbed530be, 0x2606, 0x4f4d, 0xa1,0xc0, 0x54,0xc5,0xcd,0xa5,0x56,0x6f);
3875 #if defined(__cplusplus) && !defined(CINTERFACE)
3876 MIDL_INTERFACE("bed530be-2606-4f4d-a1c0-54c5cda5566f")
3877 ISpStreamFormat : public IStream
3878 {
3879     virtual HRESULT STDMETHODCALLTYPE GetFormat(
3880         GUID *pguidFormatId,
3881         WAVEFORMATEX **ppCoMemWaveFormatEx) = 0;
3882 
3883 };
3884 #ifdef __CRT_UUID_DECL
3885 __CRT_UUID_DECL(ISpStreamFormat, 0xbed530be, 0x2606, 0x4f4d, 0xa1,0xc0, 0x54,0xc5,0xcd,0xa5,0x56,0x6f)
3886 #endif
3887 #else
3888 typedef struct ISpStreamFormatVtbl {
3889     BEGIN_INTERFACE
3890 
3891     /*** IUnknown methods ***/
3892     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3893         ISpStreamFormat* This,
3894         REFIID riid,
3895         void **ppvObject);
3896 
3897     ULONG (STDMETHODCALLTYPE *AddRef)(
3898         ISpStreamFormat* This);
3899 
3900     ULONG (STDMETHODCALLTYPE *Release)(
3901         ISpStreamFormat* This);
3902 
3903     /*** ISequentialStream methods ***/
3904     HRESULT (STDMETHODCALLTYPE *Read)(
3905         ISpStreamFormat* This,
3906         void *pv,
3907         ULONG cb,
3908         ULONG *pcbRead);
3909 
3910     HRESULT (STDMETHODCALLTYPE *Write)(
3911         ISpStreamFormat* This,
3912         const void *pv,
3913         ULONG cb,
3914         ULONG *pcbWritten);
3915 
3916     /*** IStream methods ***/
3917     HRESULT (STDMETHODCALLTYPE *Seek)(
3918         ISpStreamFormat* This,
3919         LARGE_INTEGER dlibMove,
3920         DWORD dwOrigin,
3921         ULARGE_INTEGER *plibNewPosition);
3922 
3923     HRESULT (STDMETHODCALLTYPE *SetSize)(
3924         ISpStreamFormat* This,
3925         ULARGE_INTEGER libNewSize);
3926 
3927     HRESULT (STDMETHODCALLTYPE *CopyTo)(
3928         ISpStreamFormat* This,
3929         IStream *pstm,
3930         ULARGE_INTEGER cb,
3931         ULARGE_INTEGER *pcbRead,
3932         ULARGE_INTEGER *pcbWritten);
3933 
3934     HRESULT (STDMETHODCALLTYPE *Commit)(
3935         ISpStreamFormat* This,
3936         DWORD grfCommitFlags);
3937 
3938     HRESULT (STDMETHODCALLTYPE *Revert)(
3939         ISpStreamFormat* This);
3940 
3941     HRESULT (STDMETHODCALLTYPE *LockRegion)(
3942         ISpStreamFormat* This,
3943         ULARGE_INTEGER libOffset,
3944         ULARGE_INTEGER cb,
3945         DWORD dwLockType);
3946 
3947     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
3948         ISpStreamFormat* This,
3949         ULARGE_INTEGER libOffset,
3950         ULARGE_INTEGER cb,
3951         DWORD dwLockType);
3952 
3953     HRESULT (STDMETHODCALLTYPE *Stat)(
3954         ISpStreamFormat* This,
3955         STATSTG *pstatstg,
3956         DWORD grfStatFlag);
3957 
3958     HRESULT (STDMETHODCALLTYPE *Clone)(
3959         ISpStreamFormat* This,
3960         IStream **ppstm);
3961 
3962     /*** ISpStreamFormat methods ***/
3963     HRESULT (STDMETHODCALLTYPE *GetFormat)(
3964         ISpStreamFormat* This,
3965         GUID *pguidFormatId,
3966         WAVEFORMATEX **ppCoMemWaveFormatEx);
3967 
3968     END_INTERFACE
3969 } ISpStreamFormatVtbl;
3970 interface ISpStreamFormat {
3971     CONST_VTBL ISpStreamFormatVtbl* lpVtbl;
3972 };
3973 
3974 #ifdef COBJMACROS
3975 #ifndef WIDL_C_INLINE_WRAPPERS
3976 /*** IUnknown methods ***/
3977 #define ISpStreamFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3978 #define ISpStreamFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
3979 #define ISpStreamFormat_Release(This) (This)->lpVtbl->Release(This)
3980 /*** ISequentialStream methods ***/
3981 #define ISpStreamFormat_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
3982 #define ISpStreamFormat_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
3983 /*** IStream methods ***/
3984 #define ISpStreamFormat_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
3985 #define ISpStreamFormat_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
3986 #define ISpStreamFormat_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
3987 #define ISpStreamFormat_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
3988 #define ISpStreamFormat_Revert(This) (This)->lpVtbl->Revert(This)
3989 #define ISpStreamFormat_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
3990 #define ISpStreamFormat_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
3991 #define ISpStreamFormat_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
3992 #define ISpStreamFormat_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
3993 /*** ISpStreamFormat methods ***/
3994 #define ISpStreamFormat_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
3995 #else
3996 /*** IUnknown methods ***/
3997 static FORCEINLINE HRESULT ISpStreamFormat_QueryInterface(ISpStreamFormat* This,REFIID riid,void **ppvObject) {
3998     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3999 }
4000 static FORCEINLINE ULONG ISpStreamFormat_AddRef(ISpStreamFormat* This) {
4001     return This->lpVtbl->AddRef(This);
4002 }
4003 static FORCEINLINE ULONG ISpStreamFormat_Release(ISpStreamFormat* This) {
4004     return This->lpVtbl->Release(This);
4005 }
4006 /*** ISequentialStream methods ***/
4007 static FORCEINLINE HRESULT ISpStreamFormat_Read(ISpStreamFormat* This,void *pv,ULONG cb,ULONG *pcbRead) {
4008     return This->lpVtbl->Read(This,pv,cb,pcbRead);
4009 }
4010 static FORCEINLINE HRESULT ISpStreamFormat_Write(ISpStreamFormat* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
4011     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
4012 }
4013 /*** IStream methods ***/
4014 static FORCEINLINE HRESULT ISpStreamFormat_Seek(ISpStreamFormat* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
4015     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
4016 }
4017 static FORCEINLINE HRESULT ISpStreamFormat_SetSize(ISpStreamFormat* This,ULARGE_INTEGER libNewSize) {
4018     return This->lpVtbl->SetSize(This,libNewSize);
4019 }
4020 static FORCEINLINE HRESULT ISpStreamFormat_CopyTo(ISpStreamFormat* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
4021     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
4022 }
4023 static FORCEINLINE HRESULT ISpStreamFormat_Commit(ISpStreamFormat* This,DWORD grfCommitFlags) {
4024     return This->lpVtbl->Commit(This,grfCommitFlags);
4025 }
4026 static FORCEINLINE HRESULT ISpStreamFormat_Revert(ISpStreamFormat* This) {
4027     return This->lpVtbl->Revert(This);
4028 }
4029 static FORCEINLINE HRESULT ISpStreamFormat_LockRegion(ISpStreamFormat* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4030     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
4031 }
4032 static FORCEINLINE HRESULT ISpStreamFormat_UnlockRegion(ISpStreamFormat* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4033     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
4034 }
4035 static FORCEINLINE HRESULT ISpStreamFormat_Stat(ISpStreamFormat* This,STATSTG *pstatstg,DWORD grfStatFlag) {
4036     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
4037 }
4038 static FORCEINLINE HRESULT ISpStreamFormat_Clone(ISpStreamFormat* This,IStream **ppstm) {
4039     return This->lpVtbl->Clone(This,ppstm);
4040 }
4041 /*** ISpStreamFormat methods ***/
4042 static FORCEINLINE HRESULT ISpStreamFormat_GetFormat(ISpStreamFormat* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
4043     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
4044 }
4045 #endif
4046 #endif
4047 
4048 #endif
4049 
4050 HRESULT STDMETHODCALLTYPE ISpStreamFormat_GetFormat_Proxy(
4051     ISpStreamFormat* This,
4052     GUID *pguidFormatId,
4053     WAVEFORMATEX **ppCoMemWaveFormatEx);
4054 void __RPC_STUB ISpStreamFormat_GetFormat_Stub(
4055     IRpcStubBuffer* This,
4056     IRpcChannelBuffer* pRpcChannelBuffer,
4057     PRPC_MESSAGE pRpcMessage,
4058     DWORD* pdwStubPhase);
4059 
4060 #endif  /* __ISpStreamFormat_INTERFACE_DEFINED__ */
4061 
4062 /*****************************************************************************
4063  * ISpStream interface
4064  */
4065 #ifndef __ISpStream_INTERFACE_DEFINED__
4066 #define __ISpStream_INTERFACE_DEFINED__
4067 
4068 DEFINE_GUID(IID_ISpStream, 0x12e3cca9, 0x7518, 0x44c5, 0xa5,0xe7, 0xba,0x5a,0x79,0xcb,0x92,0x9e);
4069 #if defined(__cplusplus) && !defined(CINTERFACE)
4070 MIDL_INTERFACE("12e3cca9-7518-44c5-a5e7-ba5a79cb929e")
4071 ISpStream : public ISpStreamFormat
4072 {
4073     virtual HRESULT STDMETHODCALLTYPE SetBaseStream(
4074         IStream *pStream,
4075         REFGUID rguidFormat,
4076         const WAVEFORMATEX *pWaveFormatEx) = 0;
4077 
4078     virtual HRESULT STDMETHODCALLTYPE GetBaseStream(
4079         IStream **ppStream) = 0;
4080 
4081     virtual HRESULT STDMETHODCALLTYPE BindToFile(
4082         LPCWSTR pszFileName,
4083         SPFILEMODE eMode,
4084         const GUID *pFormatId,
4085         const WAVEFORMATEX *pWaveFormatEx,
4086         ULONGLONG ullEventInterest) = 0;
4087 
4088     virtual HRESULT STDMETHODCALLTYPE Close(
4089         ) = 0;
4090 
4091 };
4092 #ifdef __CRT_UUID_DECL
4093 __CRT_UUID_DECL(ISpStream, 0x12e3cca9, 0x7518, 0x44c5, 0xa5,0xe7, 0xba,0x5a,0x79,0xcb,0x92,0x9e)
4094 #endif
4095 #else
4096 typedef struct ISpStreamVtbl {
4097     BEGIN_INTERFACE
4098 
4099     /*** IUnknown methods ***/
4100     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4101         ISpStream* This,
4102         REFIID riid,
4103         void **ppvObject);
4104 
4105     ULONG (STDMETHODCALLTYPE *AddRef)(
4106         ISpStream* This);
4107 
4108     ULONG (STDMETHODCALLTYPE *Release)(
4109         ISpStream* This);
4110 
4111     /*** ISequentialStream methods ***/
4112     HRESULT (STDMETHODCALLTYPE *Read)(
4113         ISpStream* This,
4114         void *pv,
4115         ULONG cb,
4116         ULONG *pcbRead);
4117 
4118     HRESULT (STDMETHODCALLTYPE *Write)(
4119         ISpStream* This,
4120         const void *pv,
4121         ULONG cb,
4122         ULONG *pcbWritten);
4123 
4124     /*** IStream methods ***/
4125     HRESULT (STDMETHODCALLTYPE *Seek)(
4126         ISpStream* This,
4127         LARGE_INTEGER dlibMove,
4128         DWORD dwOrigin,
4129         ULARGE_INTEGER *plibNewPosition);
4130 
4131     HRESULT (STDMETHODCALLTYPE *SetSize)(
4132         ISpStream* This,
4133         ULARGE_INTEGER libNewSize);
4134 
4135     HRESULT (STDMETHODCALLTYPE *CopyTo)(
4136         ISpStream* This,
4137         IStream *pstm,
4138         ULARGE_INTEGER cb,
4139         ULARGE_INTEGER *pcbRead,
4140         ULARGE_INTEGER *pcbWritten);
4141 
4142     HRESULT (STDMETHODCALLTYPE *Commit)(
4143         ISpStream* This,
4144         DWORD grfCommitFlags);
4145 
4146     HRESULT (STDMETHODCALLTYPE *Revert)(
4147         ISpStream* This);
4148 
4149     HRESULT (STDMETHODCALLTYPE *LockRegion)(
4150         ISpStream* This,
4151         ULARGE_INTEGER libOffset,
4152         ULARGE_INTEGER cb,
4153         DWORD dwLockType);
4154 
4155     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
4156         ISpStream* This,
4157         ULARGE_INTEGER libOffset,
4158         ULARGE_INTEGER cb,
4159         DWORD dwLockType);
4160 
4161     HRESULT (STDMETHODCALLTYPE *Stat)(
4162         ISpStream* This,
4163         STATSTG *pstatstg,
4164         DWORD grfStatFlag);
4165 
4166     HRESULT (STDMETHODCALLTYPE *Clone)(
4167         ISpStream* This,
4168         IStream **ppstm);
4169 
4170     /*** ISpStreamFormat methods ***/
4171     HRESULT (STDMETHODCALLTYPE *GetFormat)(
4172         ISpStream* This,
4173         GUID *pguidFormatId,
4174         WAVEFORMATEX **ppCoMemWaveFormatEx);
4175 
4176     /*** ISpStream methods ***/
4177     HRESULT (STDMETHODCALLTYPE *SetBaseStream)(
4178         ISpStream* This,
4179         IStream *pStream,
4180         REFGUID rguidFormat,
4181         const WAVEFORMATEX *pWaveFormatEx);
4182 
4183     HRESULT (STDMETHODCALLTYPE *GetBaseStream)(
4184         ISpStream* This,
4185         IStream **ppStream);
4186 
4187     HRESULT (STDMETHODCALLTYPE *BindToFile)(
4188         ISpStream* This,
4189         LPCWSTR pszFileName,
4190         SPFILEMODE eMode,
4191         const GUID *pFormatId,
4192         const WAVEFORMATEX *pWaveFormatEx,
4193         ULONGLONG ullEventInterest);
4194 
4195     HRESULT (STDMETHODCALLTYPE *Close)(
4196         ISpStream* This);
4197 
4198     END_INTERFACE
4199 } ISpStreamVtbl;
4200 interface ISpStream {
4201     CONST_VTBL ISpStreamVtbl* lpVtbl;
4202 };
4203 
4204 #ifdef COBJMACROS
4205 #ifndef WIDL_C_INLINE_WRAPPERS
4206 /*** IUnknown methods ***/
4207 #define ISpStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4208 #define ISpStream_AddRef(This) (This)->lpVtbl->AddRef(This)
4209 #define ISpStream_Release(This) (This)->lpVtbl->Release(This)
4210 /*** ISequentialStream methods ***/
4211 #define ISpStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
4212 #define ISpStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
4213 /*** IStream methods ***/
4214 #define ISpStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
4215 #define ISpStream_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
4216 #define ISpStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
4217 #define ISpStream_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
4218 #define ISpStream_Revert(This) (This)->lpVtbl->Revert(This)
4219 #define ISpStream_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
4220 #define ISpStream_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
4221 #define ISpStream_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
4222 #define ISpStream_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
4223 /*** ISpStreamFormat methods ***/
4224 #define ISpStream_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
4225 /*** ISpStream methods ***/
4226 #define ISpStream_SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx) (This)->lpVtbl->SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx)
4227 #define ISpStream_GetBaseStream(This,ppStream) (This)->lpVtbl->GetBaseStream(This,ppStream)
4228 #define ISpStream_BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest) (This)->lpVtbl->BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest)
4229 #define ISpStream_Close(This) (This)->lpVtbl->Close(This)
4230 #else
4231 /*** IUnknown methods ***/
4232 static FORCEINLINE HRESULT ISpStream_QueryInterface(ISpStream* This,REFIID riid,void **ppvObject) {
4233     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4234 }
4235 static FORCEINLINE ULONG ISpStream_AddRef(ISpStream* This) {
4236     return This->lpVtbl->AddRef(This);
4237 }
4238 static FORCEINLINE ULONG ISpStream_Release(ISpStream* This) {
4239     return This->lpVtbl->Release(This);
4240 }
4241 /*** ISequentialStream methods ***/
4242 static FORCEINLINE HRESULT ISpStream_Read(ISpStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
4243     return This->lpVtbl->Read(This,pv,cb,pcbRead);
4244 }
4245 static FORCEINLINE HRESULT ISpStream_Write(ISpStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
4246     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
4247 }
4248 /*** IStream methods ***/
4249 static FORCEINLINE HRESULT ISpStream_Seek(ISpStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
4250     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
4251 }
4252 static FORCEINLINE HRESULT ISpStream_SetSize(ISpStream* This,ULARGE_INTEGER libNewSize) {
4253     return This->lpVtbl->SetSize(This,libNewSize);
4254 }
4255 static FORCEINLINE HRESULT ISpStream_CopyTo(ISpStream* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
4256     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
4257 }
4258 static FORCEINLINE HRESULT ISpStream_Commit(ISpStream* This,DWORD grfCommitFlags) {
4259     return This->lpVtbl->Commit(This,grfCommitFlags);
4260 }
4261 static FORCEINLINE HRESULT ISpStream_Revert(ISpStream* This) {
4262     return This->lpVtbl->Revert(This);
4263 }
4264 static FORCEINLINE HRESULT ISpStream_LockRegion(ISpStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4265     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
4266 }
4267 static FORCEINLINE HRESULT ISpStream_UnlockRegion(ISpStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4268     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
4269 }
4270 static FORCEINLINE HRESULT ISpStream_Stat(ISpStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
4271     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
4272 }
4273 static FORCEINLINE HRESULT ISpStream_Clone(ISpStream* This,IStream **ppstm) {
4274     return This->lpVtbl->Clone(This,ppstm);
4275 }
4276 /*** ISpStreamFormat methods ***/
4277 static FORCEINLINE HRESULT ISpStream_GetFormat(ISpStream* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
4278     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
4279 }
4280 /*** ISpStream methods ***/
4281 static FORCEINLINE HRESULT ISpStream_SetBaseStream(ISpStream* This,IStream *pStream,REFGUID rguidFormat,const WAVEFORMATEX *pWaveFormatEx) {
4282     return This->lpVtbl->SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx);
4283 }
4284 static FORCEINLINE HRESULT ISpStream_GetBaseStream(ISpStream* This,IStream **ppStream) {
4285     return This->lpVtbl->GetBaseStream(This,ppStream);
4286 }
4287 static FORCEINLINE HRESULT ISpStream_BindToFile(ISpStream* This,LPCWSTR pszFileName,SPFILEMODE eMode,const GUID *pFormatId,const WAVEFORMATEX *pWaveFormatEx,ULONGLONG ullEventInterest) {
4288     return This->lpVtbl->BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest);
4289 }
4290 static FORCEINLINE HRESULT ISpStream_Close(ISpStream* This) {
4291     return This->lpVtbl->Close(This);
4292 }
4293 #endif
4294 #endif
4295 
4296 #endif
4297 
4298 HRESULT STDMETHODCALLTYPE ISpStream_SetBaseStream_Proxy(
4299     ISpStream* This,
4300     IStream *pStream,
4301     REFGUID rguidFormat,
4302     const WAVEFORMATEX *pWaveFormatEx);
4303 void __RPC_STUB ISpStream_SetBaseStream_Stub(
4304     IRpcStubBuffer* This,
4305     IRpcChannelBuffer* pRpcChannelBuffer,
4306     PRPC_MESSAGE pRpcMessage,
4307     DWORD* pdwStubPhase);
4308 HRESULT STDMETHODCALLTYPE ISpStream_GetBaseStream_Proxy(
4309     ISpStream* This,
4310     IStream **ppStream);
4311 void __RPC_STUB ISpStream_GetBaseStream_Stub(
4312     IRpcStubBuffer* This,
4313     IRpcChannelBuffer* pRpcChannelBuffer,
4314     PRPC_MESSAGE pRpcMessage,
4315     DWORD* pdwStubPhase);
4316 HRESULT STDMETHODCALLTYPE ISpStream_BindToFile_Proxy(
4317     ISpStream* This,
4318     LPCWSTR pszFileName,
4319     SPFILEMODE eMode,
4320     const GUID *pFormatId,
4321     const WAVEFORMATEX *pWaveFormatEx,
4322     ULONGLONG ullEventInterest);
4323 void __RPC_STUB ISpStream_BindToFile_Stub(
4324     IRpcStubBuffer* This,
4325     IRpcChannelBuffer* pRpcChannelBuffer,
4326     PRPC_MESSAGE pRpcMessage,
4327     DWORD* pdwStubPhase);
4328 HRESULT STDMETHODCALLTYPE ISpStream_Close_Proxy(
4329     ISpStream* This);
4330 void __RPC_STUB ISpStream_Close_Stub(
4331     IRpcStubBuffer* This,
4332     IRpcChannelBuffer* pRpcChannelBuffer,
4333     PRPC_MESSAGE pRpcMessage,
4334     DWORD* pdwStubPhase);
4335 
4336 #endif  /* __ISpStream_INTERFACE_DEFINED__ */
4337 
4338 /*****************************************************************************
4339  * ISpStreamFormatConverter interface
4340  */
4341 #ifndef __ISpStreamFormatConverter_INTERFACE_DEFINED__
4342 #define __ISpStreamFormatConverter_INTERFACE_DEFINED__
4343 
4344 DEFINE_GUID(IID_ISpStreamFormatConverter, 0x678a932c, 0xea71, 0x4446, 0x9b,0x41, 0x78,0xfd,0xa6,0x28,0x0a,0x29);
4345 #if defined(__cplusplus) && !defined(CINTERFACE)
4346 MIDL_INTERFACE("678a932c-ea71-4446-9b41-78fda6280a29")
4347 ISpStreamFormatConverter : public ISpStreamFormat
4348 {
4349     virtual HRESULT STDMETHODCALLTYPE SetBaseStream(
4350         ISpStreamFormat *pStream,
4351         WINBOOL fSetFormatToBaseStreamFormat,
4352         WINBOOL fWriteToBaseStream) = 0;
4353 
4354     virtual HRESULT STDMETHODCALLTYPE GetBaseStream(
4355         ISpStreamFormat **ppStream) = 0;
4356 
4357     virtual HRESULT STDMETHODCALLTYPE SetFormat(
4358         REFGUID rguidFormatIdOfConvertedStream,
4359         const WAVEFORMATEX *pWaveFormatExOfConvertedStream) = 0;
4360 
4361     virtual HRESULT STDMETHODCALLTYPE ResetSeekPosition(
4362         ) = 0;
4363 
4364     virtual HRESULT STDMETHODCALLTYPE ScaleConvertedToBaseOffset(
4365         ULONGLONG ullOffsetConvertedStream,
4366         ULONGLONG *pullOffsetBaseStream) = 0;
4367 
4368     virtual HRESULT STDMETHODCALLTYPE ScaleBaseToConvertedOffset(
4369         ULONGLONG ullOffsetBaseStream,
4370         ULONGLONG *pullOffsetConvertedStream) = 0;
4371 
4372 };
4373 #ifdef __CRT_UUID_DECL
4374 __CRT_UUID_DECL(ISpStreamFormatConverter, 0x678a932c, 0xea71, 0x4446, 0x9b,0x41, 0x78,0xfd,0xa6,0x28,0x0a,0x29)
4375 #endif
4376 #else
4377 typedef struct ISpStreamFormatConverterVtbl {
4378     BEGIN_INTERFACE
4379 
4380     /*** IUnknown methods ***/
4381     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4382         ISpStreamFormatConverter* This,
4383         REFIID riid,
4384         void **ppvObject);
4385 
4386     ULONG (STDMETHODCALLTYPE *AddRef)(
4387         ISpStreamFormatConverter* This);
4388 
4389     ULONG (STDMETHODCALLTYPE *Release)(
4390         ISpStreamFormatConverter* This);
4391 
4392     /*** ISequentialStream methods ***/
4393     HRESULT (STDMETHODCALLTYPE *Read)(
4394         ISpStreamFormatConverter* This,
4395         void *pv,
4396         ULONG cb,
4397         ULONG *pcbRead);
4398 
4399     HRESULT (STDMETHODCALLTYPE *Write)(
4400         ISpStreamFormatConverter* This,
4401         const void *pv,
4402         ULONG cb,
4403         ULONG *pcbWritten);
4404 
4405     /*** IStream methods ***/
4406     HRESULT (STDMETHODCALLTYPE *Seek)(
4407         ISpStreamFormatConverter* This,
4408         LARGE_INTEGER dlibMove,
4409         DWORD dwOrigin,
4410         ULARGE_INTEGER *plibNewPosition);
4411 
4412     HRESULT (STDMETHODCALLTYPE *SetSize)(
4413         ISpStreamFormatConverter* This,
4414         ULARGE_INTEGER libNewSize);
4415 
4416     HRESULT (STDMETHODCALLTYPE *CopyTo)(
4417         ISpStreamFormatConverter* This,
4418         IStream *pstm,
4419         ULARGE_INTEGER cb,
4420         ULARGE_INTEGER *pcbRead,
4421         ULARGE_INTEGER *pcbWritten);
4422 
4423     HRESULT (STDMETHODCALLTYPE *Commit)(
4424         ISpStreamFormatConverter* This,
4425         DWORD grfCommitFlags);
4426 
4427     HRESULT (STDMETHODCALLTYPE *Revert)(
4428         ISpStreamFormatConverter* This);
4429 
4430     HRESULT (STDMETHODCALLTYPE *LockRegion)(
4431         ISpStreamFormatConverter* This,
4432         ULARGE_INTEGER libOffset,
4433         ULARGE_INTEGER cb,
4434         DWORD dwLockType);
4435 
4436     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
4437         ISpStreamFormatConverter* This,
4438         ULARGE_INTEGER libOffset,
4439         ULARGE_INTEGER cb,
4440         DWORD dwLockType);
4441 
4442     HRESULT (STDMETHODCALLTYPE *Stat)(
4443         ISpStreamFormatConverter* This,
4444         STATSTG *pstatstg,
4445         DWORD grfStatFlag);
4446 
4447     HRESULT (STDMETHODCALLTYPE *Clone)(
4448         ISpStreamFormatConverter* This,
4449         IStream **ppstm);
4450 
4451     /*** ISpStreamFormat methods ***/
4452     HRESULT (STDMETHODCALLTYPE *GetFormat)(
4453         ISpStreamFormatConverter* This,
4454         GUID *pguidFormatId,
4455         WAVEFORMATEX **ppCoMemWaveFormatEx);
4456 
4457     /*** ISpStreamFormatConverter methods ***/
4458     HRESULT (STDMETHODCALLTYPE *SetBaseStream)(
4459         ISpStreamFormatConverter* This,
4460         ISpStreamFormat *pStream,
4461         WINBOOL fSetFormatToBaseStreamFormat,
4462         WINBOOL fWriteToBaseStream);
4463 
4464     HRESULT (STDMETHODCALLTYPE *GetBaseStream)(
4465         ISpStreamFormatConverter* This,
4466         ISpStreamFormat **ppStream);
4467 
4468     HRESULT (STDMETHODCALLTYPE *SetFormat)(
4469         ISpStreamFormatConverter* This,
4470         REFGUID rguidFormatIdOfConvertedStream,
4471         const WAVEFORMATEX *pWaveFormatExOfConvertedStream);
4472 
4473     HRESULT (STDMETHODCALLTYPE *ResetSeekPosition)(
4474         ISpStreamFormatConverter* This);
4475 
4476     HRESULT (STDMETHODCALLTYPE *ScaleConvertedToBaseOffset)(
4477         ISpStreamFormatConverter* This,
4478         ULONGLONG ullOffsetConvertedStream,
4479         ULONGLONG *pullOffsetBaseStream);
4480 
4481     HRESULT (STDMETHODCALLTYPE *ScaleBaseToConvertedOffset)(
4482         ISpStreamFormatConverter* This,
4483         ULONGLONG ullOffsetBaseStream,
4484         ULONGLONG *pullOffsetConvertedStream);
4485 
4486     END_INTERFACE
4487 } ISpStreamFormatConverterVtbl;
4488 interface ISpStreamFormatConverter {
4489     CONST_VTBL ISpStreamFormatConverterVtbl* lpVtbl;
4490 };
4491 
4492 #ifdef COBJMACROS
4493 #ifndef WIDL_C_INLINE_WRAPPERS
4494 /*** IUnknown methods ***/
4495 #define ISpStreamFormatConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4496 #define ISpStreamFormatConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
4497 #define ISpStreamFormatConverter_Release(This) (This)->lpVtbl->Release(This)
4498 /*** ISequentialStream methods ***/
4499 #define ISpStreamFormatConverter_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
4500 #define ISpStreamFormatConverter_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
4501 /*** IStream methods ***/
4502 #define ISpStreamFormatConverter_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
4503 #define ISpStreamFormatConverter_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
4504 #define ISpStreamFormatConverter_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
4505 #define ISpStreamFormatConverter_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
4506 #define ISpStreamFormatConverter_Revert(This) (This)->lpVtbl->Revert(This)
4507 #define ISpStreamFormatConverter_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
4508 #define ISpStreamFormatConverter_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
4509 #define ISpStreamFormatConverter_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
4510 #define ISpStreamFormatConverter_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
4511 /*** ISpStreamFormat methods ***/
4512 #define ISpStreamFormatConverter_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
4513 /*** ISpStreamFormatConverter methods ***/
4514 #define ISpStreamFormatConverter_SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream) (This)->lpVtbl->SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream)
4515 #define ISpStreamFormatConverter_GetBaseStream(This,ppStream) (This)->lpVtbl->GetBaseStream(This,ppStream)
4516 #define ISpStreamFormatConverter_SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream) (This)->lpVtbl->SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream)
4517 #define ISpStreamFormatConverter_ResetSeekPosition(This) (This)->lpVtbl->ResetSeekPosition(This)
4518 #define ISpStreamFormatConverter_ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream) (This)->lpVtbl->ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream)
4519 #define ISpStreamFormatConverter_ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream) (This)->lpVtbl->ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream)
4520 #else
4521 /*** IUnknown methods ***/
4522 static FORCEINLINE HRESULT ISpStreamFormatConverter_QueryInterface(ISpStreamFormatConverter* This,REFIID riid,void **ppvObject) {
4523     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4524 }
4525 static FORCEINLINE ULONG ISpStreamFormatConverter_AddRef(ISpStreamFormatConverter* This) {
4526     return This->lpVtbl->AddRef(This);
4527 }
4528 static FORCEINLINE ULONG ISpStreamFormatConverter_Release(ISpStreamFormatConverter* This) {
4529     return This->lpVtbl->Release(This);
4530 }
4531 /*** ISequentialStream methods ***/
4532 static FORCEINLINE HRESULT ISpStreamFormatConverter_Read(ISpStreamFormatConverter* This,void *pv,ULONG cb,ULONG *pcbRead) {
4533     return This->lpVtbl->Read(This,pv,cb,pcbRead);
4534 }
4535 static FORCEINLINE HRESULT ISpStreamFormatConverter_Write(ISpStreamFormatConverter* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
4536     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
4537 }
4538 /*** IStream methods ***/
4539 static FORCEINLINE HRESULT ISpStreamFormatConverter_Seek(ISpStreamFormatConverter* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
4540     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
4541 }
4542 static FORCEINLINE HRESULT ISpStreamFormatConverter_SetSize(ISpStreamFormatConverter* This,ULARGE_INTEGER libNewSize) {
4543     return This->lpVtbl->SetSize(This,libNewSize);
4544 }
4545 static FORCEINLINE HRESULT ISpStreamFormatConverter_CopyTo(ISpStreamFormatConverter* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
4546     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
4547 }
4548 static FORCEINLINE HRESULT ISpStreamFormatConverter_Commit(ISpStreamFormatConverter* This,DWORD grfCommitFlags) {
4549     return This->lpVtbl->Commit(This,grfCommitFlags);
4550 }
4551 static FORCEINLINE HRESULT ISpStreamFormatConverter_Revert(ISpStreamFormatConverter* This) {
4552     return This->lpVtbl->Revert(This);
4553 }
4554 static FORCEINLINE HRESULT ISpStreamFormatConverter_LockRegion(ISpStreamFormatConverter* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4555     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
4556 }
4557 static FORCEINLINE HRESULT ISpStreamFormatConverter_UnlockRegion(ISpStreamFormatConverter* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4558     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
4559 }
4560 static FORCEINLINE HRESULT ISpStreamFormatConverter_Stat(ISpStreamFormatConverter* This,STATSTG *pstatstg,DWORD grfStatFlag) {
4561     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
4562 }
4563 static FORCEINLINE HRESULT ISpStreamFormatConverter_Clone(ISpStreamFormatConverter* This,IStream **ppstm) {
4564     return This->lpVtbl->Clone(This,ppstm);
4565 }
4566 /*** ISpStreamFormat methods ***/
4567 static FORCEINLINE HRESULT ISpStreamFormatConverter_GetFormat(ISpStreamFormatConverter* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
4568     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
4569 }
4570 /*** ISpStreamFormatConverter methods ***/
4571 static FORCEINLINE HRESULT ISpStreamFormatConverter_SetBaseStream(ISpStreamFormatConverter* This,ISpStreamFormat *pStream,WINBOOL fSetFormatToBaseStreamFormat,WINBOOL fWriteToBaseStream) {
4572     return This->lpVtbl->SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream);
4573 }
4574 static FORCEINLINE HRESULT ISpStreamFormatConverter_GetBaseStream(ISpStreamFormatConverter* This,ISpStreamFormat **ppStream) {
4575     return This->lpVtbl->GetBaseStream(This,ppStream);
4576 }
4577 static FORCEINLINE HRESULT ISpStreamFormatConverter_SetFormat(ISpStreamFormatConverter* This,REFGUID rguidFormatIdOfConvertedStream,const WAVEFORMATEX *pWaveFormatExOfConvertedStream) {
4578     return This->lpVtbl->SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream);
4579 }
4580 static FORCEINLINE HRESULT ISpStreamFormatConverter_ResetSeekPosition(ISpStreamFormatConverter* This) {
4581     return This->lpVtbl->ResetSeekPosition(This);
4582 }
4583 static FORCEINLINE HRESULT ISpStreamFormatConverter_ScaleConvertedToBaseOffset(ISpStreamFormatConverter* This,ULONGLONG ullOffsetConvertedStream,ULONGLONG *pullOffsetBaseStream) {
4584     return This->lpVtbl->ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream);
4585 }
4586 static FORCEINLINE HRESULT ISpStreamFormatConverter_ScaleBaseToConvertedOffset(ISpStreamFormatConverter* This,ULONGLONG ullOffsetBaseStream,ULONGLONG *pullOffsetConvertedStream) {
4587     return This->lpVtbl->ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream);
4588 }
4589 #endif
4590 #endif
4591 
4592 #endif
4593 
4594 HRESULT STDMETHODCALLTYPE ISpStreamFormatConverter_SetBaseStream_Proxy(
4595     ISpStreamFormatConverter* This,
4596     ISpStreamFormat *pStream,
4597     WINBOOL fSetFormatToBaseStreamFormat,
4598     WINBOOL fWriteToBaseStream);
4599 void __RPC_STUB ISpStreamFormatConverter_SetBaseStream_Stub(
4600     IRpcStubBuffer* This,
4601     IRpcChannelBuffer* pRpcChannelBuffer,
4602     PRPC_MESSAGE pRpcMessage,
4603     DWORD* pdwStubPhase);
4604 HRESULT STDMETHODCALLTYPE ISpStreamFormatConverter_GetBaseStream_Proxy(
4605     ISpStreamFormatConverter* This,
4606     ISpStreamFormat **ppStream);
4607 void __RPC_STUB ISpStreamFormatConverter_GetBaseStream_Stub(
4608     IRpcStubBuffer* This,
4609     IRpcChannelBuffer* pRpcChannelBuffer,
4610     PRPC_MESSAGE pRpcMessage,
4611     DWORD* pdwStubPhase);
4612 HRESULT STDMETHODCALLTYPE ISpStreamFormatConverter_SetFormat_Proxy(
4613     ISpStreamFormatConverter* This,
4614     REFGUID rguidFormatIdOfConvertedStream,
4615     const WAVEFORMATEX *pWaveFormatExOfConvertedStream);
4616 void __RPC_STUB ISpStreamFormatConverter_SetFormat_Stub(
4617     IRpcStubBuffer* This,
4618     IRpcChannelBuffer* pRpcChannelBuffer,
4619     PRPC_MESSAGE pRpcMessage,
4620     DWORD* pdwStubPhase);
4621 HRESULT STDMETHODCALLTYPE ISpStreamFormatConverter_ResetSeekPosition_Proxy(
4622     ISpStreamFormatConverter* This);
4623 void __RPC_STUB ISpStreamFormatConverter_ResetSeekPosition_Stub(
4624     IRpcStubBuffer* This,
4625     IRpcChannelBuffer* pRpcChannelBuffer,
4626     PRPC_MESSAGE pRpcMessage,
4627     DWORD* pdwStubPhase);
4628 HRESULT STDMETHODCALLTYPE ISpStreamFormatConverter_ScaleConvertedToBaseOffset_Proxy(
4629     ISpStreamFormatConverter* This,
4630     ULONGLONG ullOffsetConvertedStream,
4631     ULONGLONG *pullOffsetBaseStream);
4632 void __RPC_STUB ISpStreamFormatConverter_ScaleConvertedToBaseOffset_Stub(
4633     IRpcStubBuffer* This,
4634     IRpcChannelBuffer* pRpcChannelBuffer,
4635     PRPC_MESSAGE pRpcMessage,
4636     DWORD* pdwStubPhase);
4637 HRESULT STDMETHODCALLTYPE ISpStreamFormatConverter_ScaleBaseToConvertedOffset_Proxy(
4638     ISpStreamFormatConverter* This,
4639     ULONGLONG ullOffsetBaseStream,
4640     ULONGLONG *pullOffsetConvertedStream);
4641 void __RPC_STUB ISpStreamFormatConverter_ScaleBaseToConvertedOffset_Stub(
4642     IRpcStubBuffer* This,
4643     IRpcChannelBuffer* pRpcChannelBuffer,
4644     PRPC_MESSAGE pRpcMessage,
4645     DWORD* pdwStubPhase);
4646 
4647 #endif  /* __ISpStreamFormatConverter_INTERFACE_DEFINED__ */
4648 
4649 typedef struct SPAUDIOSTATUS {
4650     LONG cbFreeBuffSpace;
4651     ULONG cbNonBlockingIO;
4652     SPAUDIOSTATE State;
4653     ULONGLONG CurSeekPos;
4654     ULONGLONG CurDevicePos;
4655     DWORD dwAudioLevel;
4656     DWORD dwReserved2;
4657 } SPAUDIOSTATUS;
4658 typedef struct SPAUDIOBUFFERINFO {
4659     ULONG ulMsMinNotification;
4660     ULONG ulMsBufferSize;
4661     ULONG ulMsEventBias;
4662 } SPAUDIOBUFFERINFO;
4663 /*****************************************************************************
4664  * ISpAudio interface
4665  */
4666 #ifndef __ISpAudio_INTERFACE_DEFINED__
4667 #define __ISpAudio_INTERFACE_DEFINED__
4668 
4669 DEFINE_GUID(IID_ISpAudio, 0xc05c768f, 0xfae8, 0x4ec2, 0x8e,0x07, 0x33,0x83,0x21,0xc1,0x24,0x52);
4670 #if defined(__cplusplus) && !defined(CINTERFACE)
4671 MIDL_INTERFACE("c05c768f-fae8-4ec2-8e07-338321c12452")
4672 ISpAudio : public ISpStreamFormat
4673 {
4674     virtual HRESULT STDMETHODCALLTYPE SetState(
4675         SPAUDIOSTATE NewState,
4676         ULONGLONG ullReserved) = 0;
4677 
4678     virtual HRESULT STDMETHODCALLTYPE SetFormat(
4679         REFGUID rguidFmtId,
4680         const WAVEFORMATEX *pWaveFormatEx) = 0;
4681 
4682     virtual HRESULT STDMETHODCALLTYPE GetStatus(
4683         SPAUDIOSTATUS *pStatus) = 0;
4684 
4685     virtual HRESULT STDMETHODCALLTYPE SetBufferInfo(
4686         const SPAUDIOBUFFERINFO *pBuffInfo) = 0;
4687 
4688     virtual HRESULT STDMETHODCALLTYPE GetBufferInfo(
4689         SPAUDIOBUFFERINFO *pBuffInfo) = 0;
4690 
4691     virtual HRESULT STDMETHODCALLTYPE GetDefaultFormat(
4692         GUID *pFormatId,
4693         WAVEFORMATEX **ppCoMemWaveFormatEx) = 0;
4694 
4695     virtual HANDLE STDMETHODCALLTYPE EventHandle(
4696         ) = 0;
4697 
4698     virtual HRESULT STDMETHODCALLTYPE GetVolumeLevel(
4699         ULONG *pLevel) = 0;
4700 
4701     virtual HRESULT STDMETHODCALLTYPE SetVolumeLevel(
4702         ULONG Level) = 0;
4703 
4704     virtual HRESULT STDMETHODCALLTYPE GetBufferNotifySize(
4705         ULONG *pcbSize) = 0;
4706 
4707     virtual HRESULT STDMETHODCALLTYPE SetBufferNotifySize(
4708         ULONG cbSize) = 0;
4709 
4710 };
4711 #ifdef __CRT_UUID_DECL
4712 __CRT_UUID_DECL(ISpAudio, 0xc05c768f, 0xfae8, 0x4ec2, 0x8e,0x07, 0x33,0x83,0x21,0xc1,0x24,0x52)
4713 #endif
4714 #else
4715 typedef struct ISpAudioVtbl {
4716     BEGIN_INTERFACE
4717 
4718     /*** IUnknown methods ***/
4719     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4720         ISpAudio* This,
4721         REFIID riid,
4722         void **ppvObject);
4723 
4724     ULONG (STDMETHODCALLTYPE *AddRef)(
4725         ISpAudio* This);
4726 
4727     ULONG (STDMETHODCALLTYPE *Release)(
4728         ISpAudio* This);
4729 
4730     /*** ISequentialStream methods ***/
4731     HRESULT (STDMETHODCALLTYPE *Read)(
4732         ISpAudio* This,
4733         void *pv,
4734         ULONG cb,
4735         ULONG *pcbRead);
4736 
4737     HRESULT (STDMETHODCALLTYPE *Write)(
4738         ISpAudio* This,
4739         const void *pv,
4740         ULONG cb,
4741         ULONG *pcbWritten);
4742 
4743     /*** IStream methods ***/
4744     HRESULT (STDMETHODCALLTYPE *Seek)(
4745         ISpAudio* This,
4746         LARGE_INTEGER dlibMove,
4747         DWORD dwOrigin,
4748         ULARGE_INTEGER *plibNewPosition);
4749 
4750     HRESULT (STDMETHODCALLTYPE *SetSize)(
4751         ISpAudio* This,
4752         ULARGE_INTEGER libNewSize);
4753 
4754     HRESULT (STDMETHODCALLTYPE *CopyTo)(
4755         ISpAudio* This,
4756         IStream *pstm,
4757         ULARGE_INTEGER cb,
4758         ULARGE_INTEGER *pcbRead,
4759         ULARGE_INTEGER *pcbWritten);
4760 
4761     HRESULT (STDMETHODCALLTYPE *Commit)(
4762         ISpAudio* This,
4763         DWORD grfCommitFlags);
4764 
4765     HRESULT (STDMETHODCALLTYPE *Revert)(
4766         ISpAudio* This);
4767 
4768     HRESULT (STDMETHODCALLTYPE *LockRegion)(
4769         ISpAudio* This,
4770         ULARGE_INTEGER libOffset,
4771         ULARGE_INTEGER cb,
4772         DWORD dwLockType);
4773 
4774     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
4775         ISpAudio* This,
4776         ULARGE_INTEGER libOffset,
4777         ULARGE_INTEGER cb,
4778         DWORD dwLockType);
4779 
4780     HRESULT (STDMETHODCALLTYPE *Stat)(
4781         ISpAudio* This,
4782         STATSTG *pstatstg,
4783         DWORD grfStatFlag);
4784 
4785     HRESULT (STDMETHODCALLTYPE *Clone)(
4786         ISpAudio* This,
4787         IStream **ppstm);
4788 
4789     /*** ISpStreamFormat methods ***/
4790     HRESULT (STDMETHODCALLTYPE *GetFormat)(
4791         ISpAudio* This,
4792         GUID *pguidFormatId,
4793         WAVEFORMATEX **ppCoMemWaveFormatEx);
4794 
4795     /*** ISpAudio methods ***/
4796     HRESULT (STDMETHODCALLTYPE *SetState)(
4797         ISpAudio* This,
4798         SPAUDIOSTATE NewState,
4799         ULONGLONG ullReserved);
4800 
4801     HRESULT (STDMETHODCALLTYPE *SetFormat)(
4802         ISpAudio* This,
4803         REFGUID rguidFmtId,
4804         const WAVEFORMATEX *pWaveFormatEx);
4805 
4806     HRESULT (STDMETHODCALLTYPE *GetStatus)(
4807         ISpAudio* This,
4808         SPAUDIOSTATUS *pStatus);
4809 
4810     HRESULT (STDMETHODCALLTYPE *SetBufferInfo)(
4811         ISpAudio* This,
4812         const SPAUDIOBUFFERINFO *pBuffInfo);
4813 
4814     HRESULT (STDMETHODCALLTYPE *GetBufferInfo)(
4815         ISpAudio* This,
4816         SPAUDIOBUFFERINFO *pBuffInfo);
4817 
4818     HRESULT (STDMETHODCALLTYPE *GetDefaultFormat)(
4819         ISpAudio* This,
4820         GUID *pFormatId,
4821         WAVEFORMATEX **ppCoMemWaveFormatEx);
4822 
4823     HANDLE (STDMETHODCALLTYPE *EventHandle)(
4824         ISpAudio* This);
4825 
4826     HRESULT (STDMETHODCALLTYPE *GetVolumeLevel)(
4827         ISpAudio* This,
4828         ULONG *pLevel);
4829 
4830     HRESULT (STDMETHODCALLTYPE *SetVolumeLevel)(
4831         ISpAudio* This,
4832         ULONG Level);
4833 
4834     HRESULT (STDMETHODCALLTYPE *GetBufferNotifySize)(
4835         ISpAudio* This,
4836         ULONG *pcbSize);
4837 
4838     HRESULT (STDMETHODCALLTYPE *SetBufferNotifySize)(
4839         ISpAudio* This,
4840         ULONG cbSize);
4841 
4842     END_INTERFACE
4843 } ISpAudioVtbl;
4844 interface ISpAudio {
4845     CONST_VTBL ISpAudioVtbl* lpVtbl;
4846 };
4847 
4848 #ifdef COBJMACROS
4849 #ifndef WIDL_C_INLINE_WRAPPERS
4850 /*** IUnknown methods ***/
4851 #define ISpAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4852 #define ISpAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
4853 #define ISpAudio_Release(This) (This)->lpVtbl->Release(This)
4854 /*** ISequentialStream methods ***/
4855 #define ISpAudio_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
4856 #define ISpAudio_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
4857 /*** IStream methods ***/
4858 #define ISpAudio_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
4859 #define ISpAudio_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
4860 #define ISpAudio_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
4861 #define ISpAudio_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
4862 #define ISpAudio_Revert(This) (This)->lpVtbl->Revert(This)
4863 #define ISpAudio_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
4864 #define ISpAudio_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
4865 #define ISpAudio_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
4866 #define ISpAudio_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
4867 /*** ISpStreamFormat methods ***/
4868 #define ISpAudio_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
4869 /*** ISpAudio methods ***/
4870 #define ISpAudio_SetState(This,NewState,ullReserved) (This)->lpVtbl->SetState(This,NewState,ullReserved)
4871 #define ISpAudio_SetFormat(This,rguidFmtId,pWaveFormatEx) (This)->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx)
4872 #define ISpAudio_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
4873 #define ISpAudio_SetBufferInfo(This,pBuffInfo) (This)->lpVtbl->SetBufferInfo(This,pBuffInfo)
4874 #define ISpAudio_GetBufferInfo(This,pBuffInfo) (This)->lpVtbl->GetBufferInfo(This,pBuffInfo)
4875 #define ISpAudio_GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx)
4876 #define ISpAudio_EventHandle(This) (This)->lpVtbl->EventHandle(This)
4877 #define ISpAudio_GetVolumeLevel(This,pLevel) (This)->lpVtbl->GetVolumeLevel(This,pLevel)
4878 #define ISpAudio_SetVolumeLevel(This,Level) (This)->lpVtbl->SetVolumeLevel(This,Level)
4879 #define ISpAudio_GetBufferNotifySize(This,pcbSize) (This)->lpVtbl->GetBufferNotifySize(This,pcbSize)
4880 #define ISpAudio_SetBufferNotifySize(This,cbSize) (This)->lpVtbl->SetBufferNotifySize(This,cbSize)
4881 #else
4882 /*** IUnknown methods ***/
4883 static FORCEINLINE HRESULT ISpAudio_QueryInterface(ISpAudio* This,REFIID riid,void **ppvObject) {
4884     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4885 }
4886 static FORCEINLINE ULONG ISpAudio_AddRef(ISpAudio* This) {
4887     return This->lpVtbl->AddRef(This);
4888 }
4889 static FORCEINLINE ULONG ISpAudio_Release(ISpAudio* This) {
4890     return This->lpVtbl->Release(This);
4891 }
4892 /*** ISequentialStream methods ***/
4893 static FORCEINLINE HRESULT ISpAudio_Read(ISpAudio* This,void *pv,ULONG cb,ULONG *pcbRead) {
4894     return This->lpVtbl->Read(This,pv,cb,pcbRead);
4895 }
4896 static FORCEINLINE HRESULT ISpAudio_Write(ISpAudio* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
4897     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
4898 }
4899 /*** IStream methods ***/
4900 static FORCEINLINE HRESULT ISpAudio_Seek(ISpAudio* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
4901     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
4902 }
4903 static FORCEINLINE HRESULT ISpAudio_SetSize(ISpAudio* This,ULARGE_INTEGER libNewSize) {
4904     return This->lpVtbl->SetSize(This,libNewSize);
4905 }
4906 static FORCEINLINE HRESULT ISpAudio_CopyTo(ISpAudio* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
4907     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
4908 }
4909 static FORCEINLINE HRESULT ISpAudio_Commit(ISpAudio* This,DWORD grfCommitFlags) {
4910     return This->lpVtbl->Commit(This,grfCommitFlags);
4911 }
4912 static FORCEINLINE HRESULT ISpAudio_Revert(ISpAudio* This) {
4913     return This->lpVtbl->Revert(This);
4914 }
4915 static FORCEINLINE HRESULT ISpAudio_LockRegion(ISpAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4916     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
4917 }
4918 static FORCEINLINE HRESULT ISpAudio_UnlockRegion(ISpAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4919     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
4920 }
4921 static FORCEINLINE HRESULT ISpAudio_Stat(ISpAudio* This,STATSTG *pstatstg,DWORD grfStatFlag) {
4922     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
4923 }
4924 static FORCEINLINE HRESULT ISpAudio_Clone(ISpAudio* This,IStream **ppstm) {
4925     return This->lpVtbl->Clone(This,ppstm);
4926 }
4927 /*** ISpStreamFormat methods ***/
4928 static FORCEINLINE HRESULT ISpAudio_GetFormat(ISpAudio* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
4929     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
4930 }
4931 /*** ISpAudio methods ***/
4932 static FORCEINLINE HRESULT ISpAudio_SetState(ISpAudio* This,SPAUDIOSTATE NewState,ULONGLONG ullReserved) {
4933     return This->lpVtbl->SetState(This,NewState,ullReserved);
4934 }
4935 static FORCEINLINE HRESULT ISpAudio_SetFormat(ISpAudio* This,REFGUID rguidFmtId,const WAVEFORMATEX *pWaveFormatEx) {
4936     return This->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx);
4937 }
4938 static FORCEINLINE HRESULT ISpAudio_GetStatus(ISpAudio* This,SPAUDIOSTATUS *pStatus) {
4939     return This->lpVtbl->GetStatus(This,pStatus);
4940 }
4941 static FORCEINLINE HRESULT ISpAudio_SetBufferInfo(ISpAudio* This,const SPAUDIOBUFFERINFO *pBuffInfo) {
4942     return This->lpVtbl->SetBufferInfo(This,pBuffInfo);
4943 }
4944 static FORCEINLINE HRESULT ISpAudio_GetBufferInfo(ISpAudio* This,SPAUDIOBUFFERINFO *pBuffInfo) {
4945     return This->lpVtbl->GetBufferInfo(This,pBuffInfo);
4946 }
4947 static FORCEINLINE HRESULT ISpAudio_GetDefaultFormat(ISpAudio* This,GUID *pFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
4948     return This->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx);
4949 }
4950 static FORCEINLINE HANDLE ISpAudio_EventHandle(ISpAudio* This) {
4951     return This->lpVtbl->EventHandle(This);
4952 }
4953 static FORCEINLINE HRESULT ISpAudio_GetVolumeLevel(ISpAudio* This,ULONG *pLevel) {
4954     return This->lpVtbl->GetVolumeLevel(This,pLevel);
4955 }
4956 static FORCEINLINE HRESULT ISpAudio_SetVolumeLevel(ISpAudio* This,ULONG Level) {
4957     return This->lpVtbl->SetVolumeLevel(This,Level);
4958 }
4959 static FORCEINLINE HRESULT ISpAudio_GetBufferNotifySize(ISpAudio* This,ULONG *pcbSize) {
4960     return This->lpVtbl->GetBufferNotifySize(This,pcbSize);
4961 }
4962 static FORCEINLINE HRESULT ISpAudio_SetBufferNotifySize(ISpAudio* This,ULONG cbSize) {
4963     return This->lpVtbl->SetBufferNotifySize(This,cbSize);
4964 }
4965 #endif
4966 #endif
4967 
4968 #endif
4969 
4970 HRESULT STDMETHODCALLTYPE ISpAudio_SetState_Proxy(
4971     ISpAudio* This,
4972     SPAUDIOSTATE NewState,
4973     ULONGLONG ullReserved);
4974 void __RPC_STUB ISpAudio_SetState_Stub(
4975     IRpcStubBuffer* This,
4976     IRpcChannelBuffer* pRpcChannelBuffer,
4977     PRPC_MESSAGE pRpcMessage,
4978     DWORD* pdwStubPhase);
4979 HRESULT STDMETHODCALLTYPE ISpAudio_SetFormat_Proxy(
4980     ISpAudio* This,
4981     REFGUID rguidFmtId,
4982     const WAVEFORMATEX *pWaveFormatEx);
4983 void __RPC_STUB ISpAudio_SetFormat_Stub(
4984     IRpcStubBuffer* This,
4985     IRpcChannelBuffer* pRpcChannelBuffer,
4986     PRPC_MESSAGE pRpcMessage,
4987     DWORD* pdwStubPhase);
4988 HRESULT STDMETHODCALLTYPE ISpAudio_GetStatus_Proxy(
4989     ISpAudio* This,
4990     SPAUDIOSTATUS *pStatus);
4991 void __RPC_STUB ISpAudio_GetStatus_Stub(
4992     IRpcStubBuffer* This,
4993     IRpcChannelBuffer* pRpcChannelBuffer,
4994     PRPC_MESSAGE pRpcMessage,
4995     DWORD* pdwStubPhase);
4996 HRESULT STDMETHODCALLTYPE ISpAudio_SetBufferInfo_Proxy(
4997     ISpAudio* This,
4998     const SPAUDIOBUFFERINFO *pBuffInfo);
4999 void __RPC_STUB ISpAudio_SetBufferInfo_Stub(
5000     IRpcStubBuffer* This,
5001     IRpcChannelBuffer* pRpcChannelBuffer,
5002     PRPC_MESSAGE pRpcMessage,
5003     DWORD* pdwStubPhase);
5004 HRESULT STDMETHODCALLTYPE ISpAudio_GetBufferInfo_Proxy(
5005     ISpAudio* This,
5006     SPAUDIOBUFFERINFO *pBuffInfo);
5007 void __RPC_STUB ISpAudio_GetBufferInfo_Stub(
5008     IRpcStubBuffer* This,
5009     IRpcChannelBuffer* pRpcChannelBuffer,
5010     PRPC_MESSAGE pRpcMessage,
5011     DWORD* pdwStubPhase);
5012 HRESULT STDMETHODCALLTYPE ISpAudio_GetDefaultFormat_Proxy(
5013     ISpAudio* This,
5014     GUID *pFormatId,
5015     WAVEFORMATEX **ppCoMemWaveFormatEx);
5016 void __RPC_STUB ISpAudio_GetDefaultFormat_Stub(
5017     IRpcStubBuffer* This,
5018     IRpcChannelBuffer* pRpcChannelBuffer,
5019     PRPC_MESSAGE pRpcMessage,
5020     DWORD* pdwStubPhase);
5021 HANDLE STDMETHODCALLTYPE ISpAudio_EventHandle_Proxy(
5022     ISpAudio* This);
5023 void __RPC_STUB ISpAudio_EventHandle_Stub(
5024     IRpcStubBuffer* This,
5025     IRpcChannelBuffer* pRpcChannelBuffer,
5026     PRPC_MESSAGE pRpcMessage,
5027     DWORD* pdwStubPhase);
5028 HRESULT STDMETHODCALLTYPE ISpAudio_GetVolumeLevel_Proxy(
5029     ISpAudio* This,
5030     ULONG *pLevel);
5031 void __RPC_STUB ISpAudio_GetVolumeLevel_Stub(
5032     IRpcStubBuffer* This,
5033     IRpcChannelBuffer* pRpcChannelBuffer,
5034     PRPC_MESSAGE pRpcMessage,
5035     DWORD* pdwStubPhase);
5036 HRESULT STDMETHODCALLTYPE ISpAudio_SetVolumeLevel_Proxy(
5037     ISpAudio* This,
5038     ULONG Level);
5039 void __RPC_STUB ISpAudio_SetVolumeLevel_Stub(
5040     IRpcStubBuffer* This,
5041     IRpcChannelBuffer* pRpcChannelBuffer,
5042     PRPC_MESSAGE pRpcMessage,
5043     DWORD* pdwStubPhase);
5044 HRESULT STDMETHODCALLTYPE ISpAudio_GetBufferNotifySize_Proxy(
5045     ISpAudio* This,
5046     ULONG *pcbSize);
5047 void __RPC_STUB ISpAudio_GetBufferNotifySize_Stub(
5048     IRpcStubBuffer* This,
5049     IRpcChannelBuffer* pRpcChannelBuffer,
5050     PRPC_MESSAGE pRpcMessage,
5051     DWORD* pdwStubPhase);
5052 HRESULT STDMETHODCALLTYPE ISpAudio_SetBufferNotifySize_Proxy(
5053     ISpAudio* This,
5054     ULONG cbSize);
5055 void __RPC_STUB ISpAudio_SetBufferNotifySize_Stub(
5056     IRpcStubBuffer* This,
5057     IRpcChannelBuffer* pRpcChannelBuffer,
5058     PRPC_MESSAGE pRpcMessage,
5059     DWORD* pdwStubPhase);
5060 
5061 #endif  /* __ISpAudio_INTERFACE_DEFINED__ */
5062 
5063 /*****************************************************************************
5064  * ISpMMSysAudio interface
5065  */
5066 #ifndef __ISpMMSysAudio_INTERFACE_DEFINED__
5067 #define __ISpMMSysAudio_INTERFACE_DEFINED__
5068 
5069 DEFINE_GUID(IID_ISpMMSysAudio, 0x15806f6e, 0x1d70, 0x4b48, 0x98,0xe6, 0x3b,0x1a,0x00,0x75,0x09,0xab);
5070 #if defined(__cplusplus) && !defined(CINTERFACE)
5071 MIDL_INTERFACE("15806f6e-1d70-4b48-98e6-3b1a007509ab")
5072 ISpMMSysAudio : public ISpAudio
5073 {
5074     virtual HRESULT STDMETHODCALLTYPE GetDeviceId(
5075         UINT *puDeviceId) = 0;
5076 
5077     virtual HRESULT STDMETHODCALLTYPE SetDeviceId(
5078         UINT uDeviceId) = 0;
5079 
5080     virtual HRESULT STDMETHODCALLTYPE GetMMHandle(
5081         void **pHandle) = 0;
5082 
5083     virtual HRESULT STDMETHODCALLTYPE GetLineId(
5084         UINT *puLineId) = 0;
5085 
5086     virtual HRESULT STDMETHODCALLTYPE SetLineId(
5087         UINT uLineId) = 0;
5088 
5089 };
5090 #ifdef __CRT_UUID_DECL
5091 __CRT_UUID_DECL(ISpMMSysAudio, 0x15806f6e, 0x1d70, 0x4b48, 0x98,0xe6, 0x3b,0x1a,0x00,0x75,0x09,0xab)
5092 #endif
5093 #else
5094 typedef struct ISpMMSysAudioVtbl {
5095     BEGIN_INTERFACE
5096 
5097     /*** IUnknown methods ***/
5098     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5099         ISpMMSysAudio* This,
5100         REFIID riid,
5101         void **ppvObject);
5102 
5103     ULONG (STDMETHODCALLTYPE *AddRef)(
5104         ISpMMSysAudio* This);
5105 
5106     ULONG (STDMETHODCALLTYPE *Release)(
5107         ISpMMSysAudio* This);
5108 
5109     /*** ISequentialStream methods ***/
5110     HRESULT (STDMETHODCALLTYPE *Read)(
5111         ISpMMSysAudio* This,
5112         void *pv,
5113         ULONG cb,
5114         ULONG *pcbRead);
5115 
5116     HRESULT (STDMETHODCALLTYPE *Write)(
5117         ISpMMSysAudio* This,
5118         const void *pv,
5119         ULONG cb,
5120         ULONG *pcbWritten);
5121 
5122     /*** IStream methods ***/
5123     HRESULT (STDMETHODCALLTYPE *Seek)(
5124         ISpMMSysAudio* This,
5125         LARGE_INTEGER dlibMove,
5126         DWORD dwOrigin,
5127         ULARGE_INTEGER *plibNewPosition);
5128 
5129     HRESULT (STDMETHODCALLTYPE *SetSize)(
5130         ISpMMSysAudio* This,
5131         ULARGE_INTEGER libNewSize);
5132 
5133     HRESULT (STDMETHODCALLTYPE *CopyTo)(
5134         ISpMMSysAudio* This,
5135         IStream *pstm,
5136         ULARGE_INTEGER cb,
5137         ULARGE_INTEGER *pcbRead,
5138         ULARGE_INTEGER *pcbWritten);
5139 
5140     HRESULT (STDMETHODCALLTYPE *Commit)(
5141         ISpMMSysAudio* This,
5142         DWORD grfCommitFlags);
5143 
5144     HRESULT (STDMETHODCALLTYPE *Revert)(
5145         ISpMMSysAudio* This);
5146 
5147     HRESULT (STDMETHODCALLTYPE *LockRegion)(
5148         ISpMMSysAudio* This,
5149         ULARGE_INTEGER libOffset,
5150         ULARGE_INTEGER cb,
5151         DWORD dwLockType);
5152 
5153     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
5154         ISpMMSysAudio* This,
5155         ULARGE_INTEGER libOffset,
5156         ULARGE_INTEGER cb,
5157         DWORD dwLockType);
5158 
5159     HRESULT (STDMETHODCALLTYPE *Stat)(
5160         ISpMMSysAudio* This,
5161         STATSTG *pstatstg,
5162         DWORD grfStatFlag);
5163 
5164     HRESULT (STDMETHODCALLTYPE *Clone)(
5165         ISpMMSysAudio* This,
5166         IStream **ppstm);
5167 
5168     /*** ISpStreamFormat methods ***/
5169     HRESULT (STDMETHODCALLTYPE *GetFormat)(
5170         ISpMMSysAudio* This,
5171         GUID *pguidFormatId,
5172         WAVEFORMATEX **ppCoMemWaveFormatEx);
5173 
5174     /*** ISpAudio methods ***/
5175     HRESULT (STDMETHODCALLTYPE *SetState)(
5176         ISpMMSysAudio* This,
5177         SPAUDIOSTATE NewState,
5178         ULONGLONG ullReserved);
5179 
5180     HRESULT (STDMETHODCALLTYPE *SetFormat)(
5181         ISpMMSysAudio* This,
5182         REFGUID rguidFmtId,
5183         const WAVEFORMATEX *pWaveFormatEx);
5184 
5185     HRESULT (STDMETHODCALLTYPE *GetStatus)(
5186         ISpMMSysAudio* This,
5187         SPAUDIOSTATUS *pStatus);
5188 
5189     HRESULT (STDMETHODCALLTYPE *SetBufferInfo)(
5190         ISpMMSysAudio* This,
5191         const SPAUDIOBUFFERINFO *pBuffInfo);
5192 
5193     HRESULT (STDMETHODCALLTYPE *GetBufferInfo)(
5194         ISpMMSysAudio* This,
5195         SPAUDIOBUFFERINFO *pBuffInfo);
5196 
5197     HRESULT (STDMETHODCALLTYPE *GetDefaultFormat)(
5198         ISpMMSysAudio* This,
5199         GUID *pFormatId,
5200         WAVEFORMATEX **ppCoMemWaveFormatEx);
5201 
5202     HANDLE (STDMETHODCALLTYPE *EventHandle)(
5203         ISpMMSysAudio* This);
5204 
5205     HRESULT (STDMETHODCALLTYPE *GetVolumeLevel)(
5206         ISpMMSysAudio* This,
5207         ULONG *pLevel);
5208 
5209     HRESULT (STDMETHODCALLTYPE *SetVolumeLevel)(
5210         ISpMMSysAudio* This,
5211         ULONG Level);
5212 
5213     HRESULT (STDMETHODCALLTYPE *GetBufferNotifySize)(
5214         ISpMMSysAudio* This,
5215         ULONG *pcbSize);
5216 
5217     HRESULT (STDMETHODCALLTYPE *SetBufferNotifySize)(
5218         ISpMMSysAudio* This,
5219         ULONG cbSize);
5220 
5221     /*** ISpMMSysAudio methods ***/
5222     HRESULT (STDMETHODCALLTYPE *GetDeviceId)(
5223         ISpMMSysAudio* This,
5224         UINT *puDeviceId);
5225 
5226     HRESULT (STDMETHODCALLTYPE *SetDeviceId)(
5227         ISpMMSysAudio* This,
5228         UINT uDeviceId);
5229 
5230     HRESULT (STDMETHODCALLTYPE *GetMMHandle)(
5231         ISpMMSysAudio* This,
5232         void **pHandle);
5233 
5234     HRESULT (STDMETHODCALLTYPE *GetLineId)(
5235         ISpMMSysAudio* This,
5236         UINT *puLineId);
5237 
5238     HRESULT (STDMETHODCALLTYPE *SetLineId)(
5239         ISpMMSysAudio* This,
5240         UINT uLineId);
5241 
5242     END_INTERFACE
5243 } ISpMMSysAudioVtbl;
5244 interface ISpMMSysAudio {
5245     CONST_VTBL ISpMMSysAudioVtbl* lpVtbl;
5246 };
5247 
5248 #ifdef COBJMACROS
5249 #ifndef WIDL_C_INLINE_WRAPPERS
5250 /*** IUnknown methods ***/
5251 #define ISpMMSysAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5252 #define ISpMMSysAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
5253 #define ISpMMSysAudio_Release(This) (This)->lpVtbl->Release(This)
5254 /*** ISequentialStream methods ***/
5255 #define ISpMMSysAudio_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
5256 #define ISpMMSysAudio_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
5257 /*** IStream methods ***/
5258 #define ISpMMSysAudio_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
5259 #define ISpMMSysAudio_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
5260 #define ISpMMSysAudio_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
5261 #define ISpMMSysAudio_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
5262 #define ISpMMSysAudio_Revert(This) (This)->lpVtbl->Revert(This)
5263 #define ISpMMSysAudio_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
5264 #define ISpMMSysAudio_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
5265 #define ISpMMSysAudio_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
5266 #define ISpMMSysAudio_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
5267 /*** ISpStreamFormat methods ***/
5268 #define ISpMMSysAudio_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
5269 /*** ISpAudio methods ***/
5270 #define ISpMMSysAudio_SetState(This,NewState,ullReserved) (This)->lpVtbl->SetState(This,NewState,ullReserved)
5271 #define ISpMMSysAudio_SetFormat(This,rguidFmtId,pWaveFormatEx) (This)->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx)
5272 #define ISpMMSysAudio_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
5273 #define ISpMMSysAudio_SetBufferInfo(This,pBuffInfo) (This)->lpVtbl->SetBufferInfo(This,pBuffInfo)
5274 #define ISpMMSysAudio_GetBufferInfo(This,pBuffInfo) (This)->lpVtbl->GetBufferInfo(This,pBuffInfo)
5275 #define ISpMMSysAudio_GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx)
5276 #define ISpMMSysAudio_EventHandle(This) (This)->lpVtbl->EventHandle(This)
5277 #define ISpMMSysAudio_GetVolumeLevel(This,pLevel) (This)->lpVtbl->GetVolumeLevel(This,pLevel)
5278 #define ISpMMSysAudio_SetVolumeLevel(This,Level) (This)->lpVtbl->SetVolumeLevel(This,Level)
5279 #define ISpMMSysAudio_GetBufferNotifySize(This,pcbSize) (This)->lpVtbl->GetBufferNotifySize(This,pcbSize)
5280 #define ISpMMSysAudio_SetBufferNotifySize(This,cbSize) (This)->lpVtbl->SetBufferNotifySize(This,cbSize)
5281 /*** ISpMMSysAudio methods ***/
5282 #define ISpMMSysAudio_GetDeviceId(This,puDeviceId) (This)->lpVtbl->GetDeviceId(This,puDeviceId)
5283 #define ISpMMSysAudio_SetDeviceId(This,uDeviceId) (This)->lpVtbl->SetDeviceId(This,uDeviceId)
5284 #define ISpMMSysAudio_GetMMHandle(This,pHandle) (This)->lpVtbl->GetMMHandle(This,pHandle)
5285 #define ISpMMSysAudio_GetLineId(This,puLineId) (This)->lpVtbl->GetLineId(This,puLineId)
5286 #define ISpMMSysAudio_SetLineId(This,uLineId) (This)->lpVtbl->SetLineId(This,uLineId)
5287 #else
5288 /*** IUnknown methods ***/
5289 static FORCEINLINE HRESULT ISpMMSysAudio_QueryInterface(ISpMMSysAudio* This,REFIID riid,void **ppvObject) {
5290     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5291 }
5292 static FORCEINLINE ULONG ISpMMSysAudio_AddRef(ISpMMSysAudio* This) {
5293     return This->lpVtbl->AddRef(This);
5294 }
5295 static FORCEINLINE ULONG ISpMMSysAudio_Release(ISpMMSysAudio* This) {
5296     return This->lpVtbl->Release(This);
5297 }
5298 /*** ISequentialStream methods ***/
5299 static FORCEINLINE HRESULT ISpMMSysAudio_Read(ISpMMSysAudio* This,void *pv,ULONG cb,ULONG *pcbRead) {
5300     return This->lpVtbl->Read(This,pv,cb,pcbRead);
5301 }
5302 static FORCEINLINE HRESULT ISpMMSysAudio_Write(ISpMMSysAudio* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
5303     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
5304 }
5305 /*** IStream methods ***/
5306 static FORCEINLINE HRESULT ISpMMSysAudio_Seek(ISpMMSysAudio* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
5307     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
5308 }
5309 static FORCEINLINE HRESULT ISpMMSysAudio_SetSize(ISpMMSysAudio* This,ULARGE_INTEGER libNewSize) {
5310     return This->lpVtbl->SetSize(This,libNewSize);
5311 }
5312 static FORCEINLINE HRESULT ISpMMSysAudio_CopyTo(ISpMMSysAudio* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
5313     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
5314 }
5315 static FORCEINLINE HRESULT ISpMMSysAudio_Commit(ISpMMSysAudio* This,DWORD grfCommitFlags) {
5316     return This->lpVtbl->Commit(This,grfCommitFlags);
5317 }
5318 static FORCEINLINE HRESULT ISpMMSysAudio_Revert(ISpMMSysAudio* This) {
5319     return This->lpVtbl->Revert(This);
5320 }
5321 static FORCEINLINE HRESULT ISpMMSysAudio_LockRegion(ISpMMSysAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
5322     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
5323 }
5324 static FORCEINLINE HRESULT ISpMMSysAudio_UnlockRegion(ISpMMSysAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
5325     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
5326 }
5327 static FORCEINLINE HRESULT ISpMMSysAudio_Stat(ISpMMSysAudio* This,STATSTG *pstatstg,DWORD grfStatFlag) {
5328     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
5329 }
5330 static FORCEINLINE HRESULT ISpMMSysAudio_Clone(ISpMMSysAudio* This,IStream **ppstm) {
5331     return This->lpVtbl->Clone(This,ppstm);
5332 }
5333 /*** ISpStreamFormat methods ***/
5334 static FORCEINLINE HRESULT ISpMMSysAudio_GetFormat(ISpMMSysAudio* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
5335     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
5336 }
5337 /*** ISpAudio methods ***/
5338 static FORCEINLINE HRESULT ISpMMSysAudio_SetState(ISpMMSysAudio* This,SPAUDIOSTATE NewState,ULONGLONG ullReserved) {
5339     return This->lpVtbl->SetState(This,NewState,ullReserved);
5340 }
5341 static FORCEINLINE HRESULT ISpMMSysAudio_SetFormat(ISpMMSysAudio* This,REFGUID rguidFmtId,const WAVEFORMATEX *pWaveFormatEx) {
5342     return This->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx);
5343 }
5344 static FORCEINLINE HRESULT ISpMMSysAudio_GetStatus(ISpMMSysAudio* This,SPAUDIOSTATUS *pStatus) {
5345     return This->lpVtbl->GetStatus(This,pStatus);
5346 }
5347 static FORCEINLINE HRESULT ISpMMSysAudio_SetBufferInfo(ISpMMSysAudio* This,const SPAUDIOBUFFERINFO *pBuffInfo) {
5348     return This->lpVtbl->SetBufferInfo(This,pBuffInfo);
5349 }
5350 static FORCEINLINE HRESULT ISpMMSysAudio_GetBufferInfo(ISpMMSysAudio* This,SPAUDIOBUFFERINFO *pBuffInfo) {
5351     return This->lpVtbl->GetBufferInfo(This,pBuffInfo);
5352 }
5353 static FORCEINLINE HRESULT ISpMMSysAudio_GetDefaultFormat(ISpMMSysAudio* This,GUID *pFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
5354     return This->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx);
5355 }
5356 static FORCEINLINE HANDLE ISpMMSysAudio_EventHandle(ISpMMSysAudio* This) {
5357     return This->lpVtbl->EventHandle(This);
5358 }
5359 static FORCEINLINE HRESULT ISpMMSysAudio_GetVolumeLevel(ISpMMSysAudio* This,ULONG *pLevel) {
5360     return This->lpVtbl->GetVolumeLevel(This,pLevel);
5361 }
5362 static FORCEINLINE HRESULT ISpMMSysAudio_SetVolumeLevel(ISpMMSysAudio* This,ULONG Level) {
5363     return This->lpVtbl->SetVolumeLevel(This,Level);
5364 }
5365 static FORCEINLINE HRESULT ISpMMSysAudio_GetBufferNotifySize(ISpMMSysAudio* This,ULONG *pcbSize) {
5366     return This->lpVtbl->GetBufferNotifySize(This,pcbSize);
5367 }
5368 static FORCEINLINE HRESULT ISpMMSysAudio_SetBufferNotifySize(ISpMMSysAudio* This,ULONG cbSize) {
5369     return This->lpVtbl->SetBufferNotifySize(This,cbSize);
5370 }
5371 /*** ISpMMSysAudio methods ***/
5372 static FORCEINLINE HRESULT ISpMMSysAudio_GetDeviceId(ISpMMSysAudio* This,UINT *puDeviceId) {
5373     return This->lpVtbl->GetDeviceId(This,puDeviceId);
5374 }
5375 static FORCEINLINE HRESULT ISpMMSysAudio_SetDeviceId(ISpMMSysAudio* This,UINT uDeviceId) {
5376     return This->lpVtbl->SetDeviceId(This,uDeviceId);
5377 }
5378 static FORCEINLINE HRESULT ISpMMSysAudio_GetMMHandle(ISpMMSysAudio* This,void **pHandle) {
5379     return This->lpVtbl->GetMMHandle(This,pHandle);
5380 }
5381 static FORCEINLINE HRESULT ISpMMSysAudio_GetLineId(ISpMMSysAudio* This,UINT *puLineId) {
5382     return This->lpVtbl->GetLineId(This,puLineId);
5383 }
5384 static FORCEINLINE HRESULT ISpMMSysAudio_SetLineId(ISpMMSysAudio* This,UINT uLineId) {
5385     return This->lpVtbl->SetLineId(This,uLineId);
5386 }
5387 #endif
5388 #endif
5389 
5390 #endif
5391 
5392 HRESULT STDMETHODCALLTYPE ISpMMSysAudio_GetDeviceId_Proxy(
5393     ISpMMSysAudio* This,
5394     UINT *puDeviceId);
5395 void __RPC_STUB ISpMMSysAudio_GetDeviceId_Stub(
5396     IRpcStubBuffer* This,
5397     IRpcChannelBuffer* pRpcChannelBuffer,
5398     PRPC_MESSAGE pRpcMessage,
5399     DWORD* pdwStubPhase);
5400 HRESULT STDMETHODCALLTYPE ISpMMSysAudio_SetDeviceId_Proxy(
5401     ISpMMSysAudio* This,
5402     UINT uDeviceId);
5403 void __RPC_STUB ISpMMSysAudio_SetDeviceId_Stub(
5404     IRpcStubBuffer* This,
5405     IRpcChannelBuffer* pRpcChannelBuffer,
5406     PRPC_MESSAGE pRpcMessage,
5407     DWORD* pdwStubPhase);
5408 HRESULT STDMETHODCALLTYPE ISpMMSysAudio_GetMMHandle_Proxy(
5409     ISpMMSysAudio* This,
5410     void **pHandle);
5411 void __RPC_STUB ISpMMSysAudio_GetMMHandle_Stub(
5412     IRpcStubBuffer* This,
5413     IRpcChannelBuffer* pRpcChannelBuffer,
5414     PRPC_MESSAGE pRpcMessage,
5415     DWORD* pdwStubPhase);
5416 HRESULT STDMETHODCALLTYPE ISpMMSysAudio_GetLineId_Proxy(
5417     ISpMMSysAudio* This,
5418     UINT *puLineId);
5419 void __RPC_STUB ISpMMSysAudio_GetLineId_Stub(
5420     IRpcStubBuffer* This,
5421     IRpcChannelBuffer* pRpcChannelBuffer,
5422     PRPC_MESSAGE pRpcMessage,
5423     DWORD* pdwStubPhase);
5424 HRESULT STDMETHODCALLTYPE ISpMMSysAudio_SetLineId_Proxy(
5425     ISpMMSysAudio* This,
5426     UINT uLineId);
5427 void __RPC_STUB ISpMMSysAudio_SetLineId_Stub(
5428     IRpcStubBuffer* This,
5429     IRpcChannelBuffer* pRpcChannelBuffer,
5430     PRPC_MESSAGE pRpcMessage,
5431     DWORD* pdwStubPhase);
5432 
5433 #endif  /* __ISpMMSysAudio_INTERFACE_DEFINED__ */
5434 
5435 /*****************************************************************************
5436  * ISpTranscript interface
5437  */
5438 #ifndef __ISpTranscript_INTERFACE_DEFINED__
5439 #define __ISpTranscript_INTERFACE_DEFINED__
5440 
5441 DEFINE_GUID(IID_ISpTranscript, 0x10f63bce, 0x201a, 0x11d3, 0xac,0x70, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
5442 #if defined(__cplusplus) && !defined(CINTERFACE)
5443 MIDL_INTERFACE("10f63bce-201a-11d3-ac70-00c04f8ee6c0")
5444 ISpTranscript : public IUnknown
5445 {
5446     virtual HRESULT STDMETHODCALLTYPE GetTranscript(
5447         LPWSTR *ppszTranscript) = 0;
5448 
5449     virtual HRESULT STDMETHODCALLTYPE AppendTranscript(
5450         LPCWSTR pszTranscript) = 0;
5451 
5452 };
5453 #ifdef __CRT_UUID_DECL
5454 __CRT_UUID_DECL(ISpTranscript, 0x10f63bce, 0x201a, 0x11d3, 0xac,0x70, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
5455 #endif
5456 #else
5457 typedef struct ISpTranscriptVtbl {
5458     BEGIN_INTERFACE
5459 
5460     /*** IUnknown methods ***/
5461     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5462         ISpTranscript* This,
5463         REFIID riid,
5464         void **ppvObject);
5465 
5466     ULONG (STDMETHODCALLTYPE *AddRef)(
5467         ISpTranscript* This);
5468 
5469     ULONG (STDMETHODCALLTYPE *Release)(
5470         ISpTranscript* This);
5471 
5472     /*** ISpTranscript methods ***/
5473     HRESULT (STDMETHODCALLTYPE *GetTranscript)(
5474         ISpTranscript* This,
5475         LPWSTR *ppszTranscript);
5476 
5477     HRESULT (STDMETHODCALLTYPE *AppendTranscript)(
5478         ISpTranscript* This,
5479         LPCWSTR pszTranscript);
5480 
5481     END_INTERFACE
5482 } ISpTranscriptVtbl;
5483 interface ISpTranscript {
5484     CONST_VTBL ISpTranscriptVtbl* lpVtbl;
5485 };
5486 
5487 #ifdef COBJMACROS
5488 #ifndef WIDL_C_INLINE_WRAPPERS
5489 /*** IUnknown methods ***/
5490 #define ISpTranscript_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5491 #define ISpTranscript_AddRef(This) (This)->lpVtbl->AddRef(This)
5492 #define ISpTranscript_Release(This) (This)->lpVtbl->Release(This)
5493 /*** ISpTranscript methods ***/
5494 #define ISpTranscript_GetTranscript(This,ppszTranscript) (This)->lpVtbl->GetTranscript(This,ppszTranscript)
5495 #define ISpTranscript_AppendTranscript(This,pszTranscript) (This)->lpVtbl->AppendTranscript(This,pszTranscript)
5496 #else
5497 /*** IUnknown methods ***/
5498 static FORCEINLINE HRESULT ISpTranscript_QueryInterface(ISpTranscript* This,REFIID riid,void **ppvObject) {
5499     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5500 }
5501 static FORCEINLINE ULONG ISpTranscript_AddRef(ISpTranscript* This) {
5502     return This->lpVtbl->AddRef(This);
5503 }
5504 static FORCEINLINE ULONG ISpTranscript_Release(ISpTranscript* This) {
5505     return This->lpVtbl->Release(This);
5506 }
5507 /*** ISpTranscript methods ***/
5508 static FORCEINLINE HRESULT ISpTranscript_GetTranscript(ISpTranscript* This,LPWSTR *ppszTranscript) {
5509     return This->lpVtbl->GetTranscript(This,ppszTranscript);
5510 }
5511 static FORCEINLINE HRESULT ISpTranscript_AppendTranscript(ISpTranscript* This,LPCWSTR pszTranscript) {
5512     return This->lpVtbl->AppendTranscript(This,pszTranscript);
5513 }
5514 #endif
5515 #endif
5516 
5517 #endif
5518 
5519 HRESULT STDMETHODCALLTYPE ISpTranscript_GetTranscript_Proxy(
5520     ISpTranscript* This,
5521     LPWSTR *ppszTranscript);
5522 void __RPC_STUB ISpTranscript_GetTranscript_Stub(
5523     IRpcStubBuffer* This,
5524     IRpcChannelBuffer* pRpcChannelBuffer,
5525     PRPC_MESSAGE pRpcMessage,
5526     DWORD* pdwStubPhase);
5527 HRESULT STDMETHODCALLTYPE ISpTranscript_AppendTranscript_Proxy(
5528     ISpTranscript* This,
5529     LPCWSTR pszTranscript);
5530 void __RPC_STUB ISpTranscript_AppendTranscript_Stub(
5531     IRpcStubBuffer* This,
5532     IRpcChannelBuffer* pRpcChannelBuffer,
5533     PRPC_MESSAGE pRpcMessage,
5534     DWORD* pdwStubPhase);
5535 
5536 #endif  /* __ISpTranscript_INTERFACE_DEFINED__ */
5537 
5538 typedef WCHAR SPPHONEID;
5539 typedef LPWSTR PSPPHONEID;
5540 typedef LPCWSTR PCSPPHONEID;
5541 typedef struct SPPHRASEELEMENT {
5542     ULONG ulAudioTimeOffset;
5543     ULONG ulAudioSizeTime;
5544     ULONG ulAudioStreamOffset;
5545     ULONG ulAudioSizeBytes;
5546     ULONG ulRetainedStreamOffset;
5547     ULONG ulRetainedSizeBytes;
5548     LPCWSTR pszDisplayText;
5549     LPCWSTR pszLexicalForm;
5550     const SPPHONEID *pszPronunciation;
5551     BYTE bDisplayAttributes;
5552     signed char RequiredConfidence;
5553     signed char ActualConfidence;
5554     BYTE Reserved;
5555     float SREngineConfidence;
5556 } SPPHRASEELEMENT;
5557 typedef struct SPPHRASERULE SPPHRASERULE;
5558 typedef struct SPPHRASEPROPERTY SPPHRASEPROPERTY;
5559 struct SPPHRASERULE {
5560     LPCWSTR pszName;
5561     ULONG ulId;
5562     ULONG ulFirstElement;
5563     ULONG ulCountOfElements;
5564     const SPPHRASERULE *pNextSibling;
5565     const SPPHRASERULE *pFirstChild;
5566     float SREngineConfidence;
5567     signed char Confidence;
5568 };
5569 
5570 struct SPPHRASEPROPERTY {
5571     LPCWSTR pszName;
5572     __C89_NAMELESS union {
5573         ULONG ulId;
5574         __C89_NAMELESS struct {
5575             byte bType;
5576             byte bReserved;
5577             unsigned short usArrayIndex;
5578         } __C89_NAMELESSSTRUCTNAME;
5579     } __C89_NAMELESSUNIONNAME;
5580     LPCWSTR pszValue;
5581     VARIANT vValue;
5582     ULONG ulFirstElement;
5583     ULONG ulCountOfElements;
5584     const SPPHRASEPROPERTY *pNextSibling;
5585     const SPPHRASEPROPERTY *pFirstChild;
5586     float SREngineConfidence;
5587     signed char Confidence;
5588 };
5589 
5590 typedef struct SPPHRASEREPLACEMENT {
5591     BYTE bDisplayAttributes;
5592     LPCWSTR pszReplacementText;
5593     ULONG ulFirstElement;
5594     ULONG ulCountOfElements;
5595 } SPPHRASEREPLACEMENT;
5596 typedef struct SPPHRASE {
5597     ULONG cbSize;
5598     WORD LangID;
5599     WORD wHomophoneGroupId;
5600     ULONGLONG ullGrammarID;
5601     ULONGLONG ftStartTime;
5602     ULONGLONG ullAudioStreamPosition;
5603     ULONG ulAudioSizeBytes;
5604     ULONG ulRetainedSizeBytes;
5605     ULONG ulAudioSizeTime;
5606     SPPHRASERULE Rule;
5607     const SPPHRASEPROPERTY *pProperties;
5608     const SPPHRASEELEMENT *pElements;
5609     ULONG cReplacements;
5610     const SPPHRASEREPLACEMENT *pReplacements;
5611     GUID SREngineID;
5612     ULONG ulSREnginePrivateDataSize;
5613     const BYTE *pSREnginePrivateData;
5614 } SPPHRASE;
5615 typedef struct SPSERIALIZEDPHRASE {
5616     ULONG ulSerializedSize;
5617 } SPSERIALIZEDPHRASE;
5618 typedef struct SPBINARYGRAMMAR {
5619     ULONG ulTotalSerializedSize;
5620 } SPBINARYGRAMMAR;
5621 #if 0
5622 typedef void *SPSTATEHANDLE;
5623 #else
5624 DECLARE_HANDLE(SPSTATEHANDLE);
5625 #endif
5626 typedef struct SPWORDPRONUNCIATION {
5627     struct SPWORDPRONUNCIATION *pNextWordPronunciation;
5628     SPLEXICONTYPE eLexiconType;
5629     WORD LangID;
5630     WORD wPronunciationFlags;
5631     SPPARTOFSPEECH ePartOfSpeech;
5632     SPPHONEID szPronunciation[1];
5633 } SPWORDPRONUNCIATION;
5634 typedef struct SPWORDPRONUNCIATIONLIST {
5635     ULONG ulSize;
5636     BYTE *pvBuffer;
5637     SPWORDPRONUNCIATION *pFirstWordPronunciation;
5638 } SPWORDPRONUNCIATIONLIST;
5639 typedef struct SPWORD {
5640     struct SPWORD *pNextWord;
5641     WORD LangID;
5642     WORD wReserved;
5643     SPWORDTYPE eWordType;
5644     LPWSTR pszWord;
5645     SPWORDPRONUNCIATION *pFirstWordPronunciation;
5646 } SPWORD;
5647 typedef struct SPWORDLIST {
5648     ULONG ulSize;
5649     BYTE *pvBuffer;
5650     SPWORD *pFirstWord;
5651 } SPWORDLIST;
5652 /*****************************************************************************
5653  * ISpLexicon interface
5654  */
5655 #ifndef __ISpLexicon_INTERFACE_DEFINED__
5656 #define __ISpLexicon_INTERFACE_DEFINED__
5657 
5658 DEFINE_GUID(IID_ISpLexicon, 0xda41a7c2, 0x5383, 0x4db2, 0x91,0x6b, 0x6c,0x17,0x19,0xe3,0xdb,0x58);
5659 #if defined(__cplusplus) && !defined(CINTERFACE)
5660 MIDL_INTERFACE("da41a7c2-5383-4db2-916b-6c1719e3db58")
5661 ISpLexicon : public IUnknown
5662 {
5663     virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
5664         LPCWSTR pszWord,
5665         WORD LangID,
5666         DWORD dwFlags,
5667         SPWORDPRONUNCIATIONLIST *pWordPronunciationList) = 0;
5668 
5669     virtual HRESULT STDMETHODCALLTYPE AddPronunciation(
5670         LPCWSTR pszWord,
5671         WORD LangID,
5672         SPPARTOFSPEECH ePartOfSpeech,
5673         PCSPPHONEID pszPronunciation) = 0;
5674 
5675     virtual HRESULT STDMETHODCALLTYPE RemovePronunciation(
5676         LPCWSTR pszWord,
5677         WORD LangID,
5678         SPPARTOFSPEECH ePartOfSpeech,
5679         PCSPPHONEID pszPronunciation) = 0;
5680 
5681     virtual HRESULT STDMETHODCALLTYPE GetGeneration(
5682         DWORD *pdwGeneration) = 0;
5683 
5684     virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
5685         DWORD dwFlags,
5686         DWORD *pdwGeneration,
5687         SPWORDLIST *pWordList) = 0;
5688 
5689     virtual HRESULT STDMETHODCALLTYPE GetWords(
5690         DWORD dwFlags,
5691         DWORD *pdwGeneration,
5692         DWORD *pdwCookie,
5693         SPWORDLIST *pWordList) = 0;
5694 
5695 };
5696 #ifdef __CRT_UUID_DECL
5697 __CRT_UUID_DECL(ISpLexicon, 0xda41a7c2, 0x5383, 0x4db2, 0x91,0x6b, 0x6c,0x17,0x19,0xe3,0xdb,0x58)
5698 #endif
5699 #else
5700 typedef struct ISpLexiconVtbl {
5701     BEGIN_INTERFACE
5702 
5703     /*** IUnknown methods ***/
5704     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5705         ISpLexicon* This,
5706         REFIID riid,
5707         void **ppvObject);
5708 
5709     ULONG (STDMETHODCALLTYPE *AddRef)(
5710         ISpLexicon* This);
5711 
5712     ULONG (STDMETHODCALLTYPE *Release)(
5713         ISpLexicon* This);
5714 
5715     /*** ISpLexicon methods ***/
5716     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
5717         ISpLexicon* This,
5718         LPCWSTR pszWord,
5719         WORD LangID,
5720         DWORD dwFlags,
5721         SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
5722 
5723     HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
5724         ISpLexicon* This,
5725         LPCWSTR pszWord,
5726         WORD LangID,
5727         SPPARTOFSPEECH ePartOfSpeech,
5728         PCSPPHONEID pszPronunciation);
5729 
5730     HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
5731         ISpLexicon* This,
5732         LPCWSTR pszWord,
5733         WORD LangID,
5734         SPPARTOFSPEECH ePartOfSpeech,
5735         PCSPPHONEID pszPronunciation);
5736 
5737     HRESULT (STDMETHODCALLTYPE *GetGeneration)(
5738         ISpLexicon* This,
5739         DWORD *pdwGeneration);
5740 
5741     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
5742         ISpLexicon* This,
5743         DWORD dwFlags,
5744         DWORD *pdwGeneration,
5745         SPWORDLIST *pWordList);
5746 
5747     HRESULT (STDMETHODCALLTYPE *GetWords)(
5748         ISpLexicon* This,
5749         DWORD dwFlags,
5750         DWORD *pdwGeneration,
5751         DWORD *pdwCookie,
5752         SPWORDLIST *pWordList);
5753 
5754     END_INTERFACE
5755 } ISpLexiconVtbl;
5756 interface ISpLexicon {
5757     CONST_VTBL ISpLexiconVtbl* lpVtbl;
5758 };
5759 
5760 #ifdef COBJMACROS
5761 #ifndef WIDL_C_INLINE_WRAPPERS
5762 /*** IUnknown methods ***/
5763 #define ISpLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5764 #define ISpLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
5765 #define ISpLexicon_Release(This) (This)->lpVtbl->Release(This)
5766 /*** ISpLexicon methods ***/
5767 #define ISpLexicon_GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList)
5768 #define ISpLexicon_AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
5769 #define ISpLexicon_RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
5770 #define ISpLexicon_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
5771 #define ISpLexicon_GetGenerationChange(This,dwFlags,pdwGeneration,pWordList) (This)->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList)
5772 #define ISpLexicon_GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList)
5773 #else
5774 /*** IUnknown methods ***/
5775 static FORCEINLINE HRESULT ISpLexicon_QueryInterface(ISpLexicon* This,REFIID riid,void **ppvObject) {
5776     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5777 }
5778 static FORCEINLINE ULONG ISpLexicon_AddRef(ISpLexicon* This) {
5779     return This->lpVtbl->AddRef(This);
5780 }
5781 static FORCEINLINE ULONG ISpLexicon_Release(ISpLexicon* This) {
5782     return This->lpVtbl->Release(This);
5783 }
5784 /*** ISpLexicon methods ***/
5785 static FORCEINLINE HRESULT ISpLexicon_GetPronunciations(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,DWORD dwFlags,SPWORDPRONUNCIATIONLIST *pWordPronunciationList) {
5786     return This->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList);
5787 }
5788 static FORCEINLINE HRESULT ISpLexicon_AddPronunciation(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
5789     return This->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
5790 }
5791 static FORCEINLINE HRESULT ISpLexicon_RemovePronunciation(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
5792     return This->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
5793 }
5794 static FORCEINLINE HRESULT ISpLexicon_GetGeneration(ISpLexicon* This,DWORD *pdwGeneration) {
5795     return This->lpVtbl->GetGeneration(This,pdwGeneration);
5796 }
5797 static FORCEINLINE HRESULT ISpLexicon_GetGenerationChange(ISpLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
5798     return This->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList);
5799 }
5800 static FORCEINLINE HRESULT ISpLexicon_GetWords(ISpLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
5801     return This->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList);
5802 }
5803 #endif
5804 #endif
5805 
5806 #endif
5807 
5808 HRESULT STDMETHODCALLTYPE ISpLexicon_GetPronunciations_Proxy(
5809     ISpLexicon* This,
5810     LPCWSTR pszWord,
5811     WORD LangID,
5812     DWORD dwFlags,
5813     SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
5814 void __RPC_STUB ISpLexicon_GetPronunciations_Stub(
5815     IRpcStubBuffer* This,
5816     IRpcChannelBuffer* pRpcChannelBuffer,
5817     PRPC_MESSAGE pRpcMessage,
5818     DWORD* pdwStubPhase);
5819 HRESULT STDMETHODCALLTYPE ISpLexicon_AddPronunciation_Proxy(
5820     ISpLexicon* This,
5821     LPCWSTR pszWord,
5822     WORD LangID,
5823     SPPARTOFSPEECH ePartOfSpeech,
5824     PCSPPHONEID pszPronunciation);
5825 void __RPC_STUB ISpLexicon_AddPronunciation_Stub(
5826     IRpcStubBuffer* This,
5827     IRpcChannelBuffer* pRpcChannelBuffer,
5828     PRPC_MESSAGE pRpcMessage,
5829     DWORD* pdwStubPhase);
5830 HRESULT STDMETHODCALLTYPE ISpLexicon_RemovePronunciation_Proxy(
5831     ISpLexicon* This,
5832     LPCWSTR pszWord,
5833     WORD LangID,
5834     SPPARTOFSPEECH ePartOfSpeech,
5835     PCSPPHONEID pszPronunciation);
5836 void __RPC_STUB ISpLexicon_RemovePronunciation_Stub(
5837     IRpcStubBuffer* This,
5838     IRpcChannelBuffer* pRpcChannelBuffer,
5839     PRPC_MESSAGE pRpcMessage,
5840     DWORD* pdwStubPhase);
5841 HRESULT STDMETHODCALLTYPE ISpLexicon_GetGeneration_Proxy(
5842     ISpLexicon* This,
5843     DWORD *pdwGeneration);
5844 void __RPC_STUB ISpLexicon_GetGeneration_Stub(
5845     IRpcStubBuffer* This,
5846     IRpcChannelBuffer* pRpcChannelBuffer,
5847     PRPC_MESSAGE pRpcMessage,
5848     DWORD* pdwStubPhase);
5849 HRESULT STDMETHODCALLTYPE ISpLexicon_GetGenerationChange_Proxy(
5850     ISpLexicon* This,
5851     DWORD dwFlags,
5852     DWORD *pdwGeneration,
5853     SPWORDLIST *pWordList);
5854 void __RPC_STUB ISpLexicon_GetGenerationChange_Stub(
5855     IRpcStubBuffer* This,
5856     IRpcChannelBuffer* pRpcChannelBuffer,
5857     PRPC_MESSAGE pRpcMessage,
5858     DWORD* pdwStubPhase);
5859 HRESULT STDMETHODCALLTYPE ISpLexicon_GetWords_Proxy(
5860     ISpLexicon* This,
5861     DWORD dwFlags,
5862     DWORD *pdwGeneration,
5863     DWORD *pdwCookie,
5864     SPWORDLIST *pWordList);
5865 void __RPC_STUB ISpLexicon_GetWords_Stub(
5866     IRpcStubBuffer* This,
5867     IRpcChannelBuffer* pRpcChannelBuffer,
5868     PRPC_MESSAGE pRpcMessage,
5869     DWORD* pdwStubPhase);
5870 
5871 #endif  /* __ISpLexicon_INTERFACE_DEFINED__ */
5872 
5873 /*****************************************************************************
5874  * ISpContainerLexicon interface
5875  */
5876 #ifndef __ISpContainerLexicon_INTERFACE_DEFINED__
5877 #define __ISpContainerLexicon_INTERFACE_DEFINED__
5878 
5879 DEFINE_GUID(IID_ISpContainerLexicon, 0x8565572f, 0xc094, 0x41cc, 0xb5,0x6e, 0x10,0xbd,0x9c,0x3f,0xf0,0x44);
5880 #if defined(__cplusplus) && !defined(CINTERFACE)
5881 MIDL_INTERFACE("8565572f-c094-41cc-b56e-10bd9c3ff044")
5882 ISpContainerLexicon : public ISpLexicon
5883 {
5884     virtual HRESULT STDMETHODCALLTYPE AddLexicon(
5885         ISpLexicon *pAddLexicon,
5886         DWORD dwFlags) = 0;
5887 
5888 };
5889 #ifdef __CRT_UUID_DECL
5890 __CRT_UUID_DECL(ISpContainerLexicon, 0x8565572f, 0xc094, 0x41cc, 0xb5,0x6e, 0x10,0xbd,0x9c,0x3f,0xf0,0x44)
5891 #endif
5892 #else
5893 typedef struct ISpContainerLexiconVtbl {
5894     BEGIN_INTERFACE
5895 
5896     /*** IUnknown methods ***/
5897     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5898         ISpContainerLexicon* This,
5899         REFIID riid,
5900         void **ppvObject);
5901 
5902     ULONG (STDMETHODCALLTYPE *AddRef)(
5903         ISpContainerLexicon* This);
5904 
5905     ULONG (STDMETHODCALLTYPE *Release)(
5906         ISpContainerLexicon* This);
5907 
5908     /*** ISpLexicon methods ***/
5909     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
5910         ISpContainerLexicon* This,
5911         LPCWSTR pszWord,
5912         WORD LangID,
5913         DWORD dwFlags,
5914         SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
5915 
5916     HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
5917         ISpContainerLexicon* This,
5918         LPCWSTR pszWord,
5919         WORD LangID,
5920         SPPARTOFSPEECH ePartOfSpeech,
5921         PCSPPHONEID pszPronunciation);
5922 
5923     HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
5924         ISpContainerLexicon* This,
5925         LPCWSTR pszWord,
5926         WORD LangID,
5927         SPPARTOFSPEECH ePartOfSpeech,
5928         PCSPPHONEID pszPronunciation);
5929 
5930     HRESULT (STDMETHODCALLTYPE *GetGeneration)(
5931         ISpContainerLexicon* This,
5932         DWORD *pdwGeneration);
5933 
5934     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
5935         ISpContainerLexicon* This,
5936         DWORD dwFlags,
5937         DWORD *pdwGeneration,
5938         SPWORDLIST *pWordList);
5939 
5940     HRESULT (STDMETHODCALLTYPE *GetWords)(
5941         ISpContainerLexicon* This,
5942         DWORD dwFlags,
5943         DWORD *pdwGeneration,
5944         DWORD *pdwCookie,
5945         SPWORDLIST *pWordList);
5946 
5947     /*** ISpContainerLexicon methods ***/
5948     HRESULT (STDMETHODCALLTYPE *AddLexicon)(
5949         ISpContainerLexicon* This,
5950         ISpLexicon *pAddLexicon,
5951         DWORD dwFlags);
5952 
5953     END_INTERFACE
5954 } ISpContainerLexiconVtbl;
5955 interface ISpContainerLexicon {
5956     CONST_VTBL ISpContainerLexiconVtbl* lpVtbl;
5957 };
5958 
5959 #ifdef COBJMACROS
5960 #ifndef WIDL_C_INLINE_WRAPPERS
5961 /*** IUnknown methods ***/
5962 #define ISpContainerLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5963 #define ISpContainerLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
5964 #define ISpContainerLexicon_Release(This) (This)->lpVtbl->Release(This)
5965 /*** ISpLexicon methods ***/
5966 #define ISpContainerLexicon_GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList)
5967 #define ISpContainerLexicon_AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
5968 #define ISpContainerLexicon_RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
5969 #define ISpContainerLexicon_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
5970 #define ISpContainerLexicon_GetGenerationChange(This,dwFlags,pdwGeneration,pWordList) (This)->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList)
5971 #define ISpContainerLexicon_GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList)
5972 /*** ISpContainerLexicon methods ***/
5973 #define ISpContainerLexicon_AddLexicon(This,pAddLexicon,dwFlags) (This)->lpVtbl->AddLexicon(This,pAddLexicon,dwFlags)
5974 #else
5975 /*** IUnknown methods ***/
5976 static FORCEINLINE HRESULT ISpContainerLexicon_QueryInterface(ISpContainerLexicon* This,REFIID riid,void **ppvObject) {
5977     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5978 }
5979 static FORCEINLINE ULONG ISpContainerLexicon_AddRef(ISpContainerLexicon* This) {
5980     return This->lpVtbl->AddRef(This);
5981 }
5982 static FORCEINLINE ULONG ISpContainerLexicon_Release(ISpContainerLexicon* This) {
5983     return This->lpVtbl->Release(This);
5984 }
5985 /*** ISpLexicon methods ***/
5986 static FORCEINLINE HRESULT ISpContainerLexicon_GetPronunciations(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,DWORD dwFlags,SPWORDPRONUNCIATIONLIST *pWordPronunciationList) {
5987     return This->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList);
5988 }
5989 static FORCEINLINE HRESULT ISpContainerLexicon_AddPronunciation(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
5990     return This->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
5991 }
5992 static FORCEINLINE HRESULT ISpContainerLexicon_RemovePronunciation(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
5993     return This->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
5994 }
5995 static FORCEINLINE HRESULT ISpContainerLexicon_GetGeneration(ISpContainerLexicon* This,DWORD *pdwGeneration) {
5996     return This->lpVtbl->GetGeneration(This,pdwGeneration);
5997 }
5998 static FORCEINLINE HRESULT ISpContainerLexicon_GetGenerationChange(ISpContainerLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
5999     return This->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList);
6000 }
6001 static FORCEINLINE HRESULT ISpContainerLexicon_GetWords(ISpContainerLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
6002     return This->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList);
6003 }
6004 /*** ISpContainerLexicon methods ***/
6005 static FORCEINLINE HRESULT ISpContainerLexicon_AddLexicon(ISpContainerLexicon* This,ISpLexicon *pAddLexicon,DWORD dwFlags) {
6006     return This->lpVtbl->AddLexicon(This,pAddLexicon,dwFlags);
6007 }
6008 #endif
6009 #endif
6010 
6011 #endif
6012 
6013 HRESULT STDMETHODCALLTYPE ISpContainerLexicon_AddLexicon_Proxy(
6014     ISpContainerLexicon* This,
6015     ISpLexicon *pAddLexicon,
6016     DWORD dwFlags);
6017 void __RPC_STUB ISpContainerLexicon_AddLexicon_Stub(
6018     IRpcStubBuffer* This,
6019     IRpcChannelBuffer* pRpcChannelBuffer,
6020     PRPC_MESSAGE pRpcMessage,
6021     DWORD* pdwStubPhase);
6022 
6023 #endif  /* __ISpContainerLexicon_INTERFACE_DEFINED__ */
6024 
6025 /*****************************************************************************
6026  * ISpPhoneConverter interface
6027  */
6028 #ifndef __ISpPhoneConverter_INTERFACE_DEFINED__
6029 #define __ISpPhoneConverter_INTERFACE_DEFINED__
6030 
6031 DEFINE_GUID(IID_ISpPhoneConverter, 0x8445c581, 0x0cac, 0x4a38, 0xab,0xfe, 0x9b,0x2c,0xe2,0x82,0x64,0x55);
6032 #if defined(__cplusplus) && !defined(CINTERFACE)
6033 MIDL_INTERFACE("8445c581-0cac-4a38-abfe-9b2ce2826455")
6034 ISpPhoneConverter : public ISpObjectWithToken
6035 {
6036     virtual HRESULT STDMETHODCALLTYPE PhoneToId(
6037         LPCWSTR pszPhone,
6038         SPPHONEID *pId) = 0;
6039 
6040     virtual HRESULT STDMETHODCALLTYPE IdToPhone(
6041         PCSPPHONEID pId,
6042         WCHAR *pszPhone) = 0;
6043 
6044 };
6045 #ifdef __CRT_UUID_DECL
6046 __CRT_UUID_DECL(ISpPhoneConverter, 0x8445c581, 0x0cac, 0x4a38, 0xab,0xfe, 0x9b,0x2c,0xe2,0x82,0x64,0x55)
6047 #endif
6048 #else
6049 typedef struct ISpPhoneConverterVtbl {
6050     BEGIN_INTERFACE
6051 
6052     /*** IUnknown methods ***/
6053     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6054         ISpPhoneConverter* This,
6055         REFIID riid,
6056         void **ppvObject);
6057 
6058     ULONG (STDMETHODCALLTYPE *AddRef)(
6059         ISpPhoneConverter* This);
6060 
6061     ULONG (STDMETHODCALLTYPE *Release)(
6062         ISpPhoneConverter* This);
6063 
6064     /*** ISpObjectWithToken methods ***/
6065     HRESULT (STDMETHODCALLTYPE *SetObjectToken)(
6066         ISpPhoneConverter* This,
6067         ISpObjectToken *pToken);
6068 
6069     HRESULT (STDMETHODCALLTYPE *GetObjectToken)(
6070         ISpPhoneConverter* This,
6071         ISpObjectToken **ppToken);
6072 
6073     /*** ISpPhoneConverter methods ***/
6074     HRESULT (STDMETHODCALLTYPE *PhoneToId)(
6075         ISpPhoneConverter* This,
6076         LPCWSTR pszPhone,
6077         SPPHONEID *pId);
6078 
6079     HRESULT (STDMETHODCALLTYPE *IdToPhone)(
6080         ISpPhoneConverter* This,
6081         PCSPPHONEID pId,
6082         WCHAR *pszPhone);
6083 
6084     END_INTERFACE
6085 } ISpPhoneConverterVtbl;
6086 interface ISpPhoneConverter {
6087     CONST_VTBL ISpPhoneConverterVtbl* lpVtbl;
6088 };
6089 
6090 #ifdef COBJMACROS
6091 #ifndef WIDL_C_INLINE_WRAPPERS
6092 /*** IUnknown methods ***/
6093 #define ISpPhoneConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6094 #define ISpPhoneConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
6095 #define ISpPhoneConverter_Release(This) (This)->lpVtbl->Release(This)
6096 /*** ISpObjectWithToken methods ***/
6097 #define ISpPhoneConverter_SetObjectToken(This,pToken) (This)->lpVtbl->SetObjectToken(This,pToken)
6098 #define ISpPhoneConverter_GetObjectToken(This,ppToken) (This)->lpVtbl->GetObjectToken(This,ppToken)
6099 /*** ISpPhoneConverter methods ***/
6100 #define ISpPhoneConverter_PhoneToId(This,pszPhone,pId) (This)->lpVtbl->PhoneToId(This,pszPhone,pId)
6101 #define ISpPhoneConverter_IdToPhone(This,pId,pszPhone) (This)->lpVtbl->IdToPhone(This,pId,pszPhone)
6102 #else
6103 /*** IUnknown methods ***/
6104 static FORCEINLINE HRESULT ISpPhoneConverter_QueryInterface(ISpPhoneConverter* This,REFIID riid,void **ppvObject) {
6105     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6106 }
6107 static FORCEINLINE ULONG ISpPhoneConverter_AddRef(ISpPhoneConverter* This) {
6108     return This->lpVtbl->AddRef(This);
6109 }
6110 static FORCEINLINE ULONG ISpPhoneConverter_Release(ISpPhoneConverter* This) {
6111     return This->lpVtbl->Release(This);
6112 }
6113 /*** ISpObjectWithToken methods ***/
6114 static FORCEINLINE HRESULT ISpPhoneConverter_SetObjectToken(ISpPhoneConverter* This,ISpObjectToken *pToken) {
6115     return This->lpVtbl->SetObjectToken(This,pToken);
6116 }
6117 static FORCEINLINE HRESULT ISpPhoneConverter_GetObjectToken(ISpPhoneConverter* This,ISpObjectToken **ppToken) {
6118     return This->lpVtbl->GetObjectToken(This,ppToken);
6119 }
6120 /*** ISpPhoneConverter methods ***/
6121 static FORCEINLINE HRESULT ISpPhoneConverter_PhoneToId(ISpPhoneConverter* This,LPCWSTR pszPhone,SPPHONEID *pId) {
6122     return This->lpVtbl->PhoneToId(This,pszPhone,pId);
6123 }
6124 static FORCEINLINE HRESULT ISpPhoneConverter_IdToPhone(ISpPhoneConverter* This,PCSPPHONEID pId,WCHAR *pszPhone) {
6125     return This->lpVtbl->IdToPhone(This,pId,pszPhone);
6126 }
6127 #endif
6128 #endif
6129 
6130 #endif
6131 
6132 HRESULT STDMETHODCALLTYPE ISpPhoneConverter_PhoneToId_Proxy(
6133     ISpPhoneConverter* This,
6134     LPCWSTR pszPhone,
6135     SPPHONEID *pId);
6136 void __RPC_STUB ISpPhoneConverter_PhoneToId_Stub(
6137     IRpcStubBuffer* This,
6138     IRpcChannelBuffer* pRpcChannelBuffer,
6139     PRPC_MESSAGE pRpcMessage,
6140     DWORD* pdwStubPhase);
6141 HRESULT STDMETHODCALLTYPE ISpPhoneConverter_IdToPhone_Proxy(
6142     ISpPhoneConverter* This,
6143     PCSPPHONEID pId,
6144     WCHAR *pszPhone);
6145 void __RPC_STUB ISpPhoneConverter_IdToPhone_Stub(
6146     IRpcStubBuffer* This,
6147     IRpcChannelBuffer* pRpcChannelBuffer,
6148     PRPC_MESSAGE pRpcMessage,
6149     DWORD* pdwStubPhase);
6150 
6151 #endif  /* __ISpPhoneConverter_INTERFACE_DEFINED__ */
6152 
6153 typedef struct SPVPITCH {
6154     LONG MiddleAdj;
6155     LONG RangeAdj;
6156 } SPVPITCH;
6157 typedef struct SPVCONTEXT {
6158     LPCWSTR pCategory;
6159     LPCWSTR pBefore;
6160     LPCWSTR pAfter;
6161 } SPVCONTEXT;
6162 typedef struct SPVSTATE {
6163     SPVACTIONS eAction;
6164     WORD LangID;
6165     WORD wReserved;
6166     LONG EmphAdj;
6167     LONG RateAdj;
6168     ULONG Volume;
6169     SPVPITCH PitchAdj;
6170     ULONG SilenceMSecs;
6171     SPPHONEID *pPhoneIds;
6172     SPPARTOFSPEECH ePartOfSpeech;
6173     SPVCONTEXT Context;
6174 } SPVSTATE;
6175 typedef struct SPVOICESTATUS {
6176     ULONG ulCurrentStream;
6177     ULONG ulLastStreamQueued;
6178     HRESULT hrLastResult;
6179     DWORD dwRunningState;
6180     ULONG ulInputWordPos;
6181     ULONG ulInputWordLen;
6182     ULONG ulInputSentPos;
6183     ULONG ulInputSentLen;
6184     LONG lBookmarkId;
6185     SPPHONEID PhonemeId;
6186     SPVISEMES VisemeId;
6187     DWORD dwReserved1;
6188     DWORD dwReserved2;
6189 } SPVOICESTATUS;
6190 typedef enum SPEAKFLAGS {
6191     SPF_DEFAULT = 0,
6192     SPF_ASYNC = 1,
6193     SPF_PURGEBEFORESPEAK = 2,
6194     SPF_IS_FILENAME = 4,
6195     SPF_IS_XML = 8,
6196     SPF_IS_NOT_XML = 0x10,
6197     SPF_PERSIST_XML = 0x20,
6198     SPF_NLP_SPEAK_PUNC = 0x40,
6199     SPF_NLP_MASK = SPF_NLP_SPEAK_PUNC,
6200     SPF_VOICE_MASK = (((((SPF_ASYNC | SPF_PURGEBEFORESPEAK) | SPF_IS_FILENAME) | SPF_IS_XML) | SPF_IS_NOT_XML) | SPF_NLP_MASK) | SPF_PERSIST_XML,
6201     SPF_UNUSED_FLAGS = ~SPF_VOICE_MASK
6202 } SPEAKFLAGS;
6203 /*****************************************************************************
6204  * ISpVoice interface
6205  */
6206 #ifndef __ISpVoice_INTERFACE_DEFINED__
6207 #define __ISpVoice_INTERFACE_DEFINED__
6208 
6209 DEFINE_GUID(IID_ISpVoice, 0x6c44df74, 0x72b9, 0x4992, 0xa1,0xec, 0xef,0x99,0x6e,0x04,0x22,0xd4);
6210 #if defined(__cplusplus) && !defined(CINTERFACE)
6211 MIDL_INTERFACE("6c44df74-72b9-4992-a1ec-ef996e0422d4")
6212 ISpVoice : public ISpEventSource
6213 {
6214     virtual HRESULT STDMETHODCALLTYPE SetOutput(
6215         IUnknown *pUnkOutput,
6216         WINBOOL fAllowFormatChanges) = 0;
6217 
6218     virtual HRESULT STDMETHODCALLTYPE GetOutputObjectToken(
6219         ISpObjectToken **ppObjectToken) = 0;
6220 
6221     virtual HRESULT STDMETHODCALLTYPE GetOutputStream(
6222         ISpStreamFormat **ppStream) = 0;
6223 
6224     virtual HRESULT STDMETHODCALLTYPE Pause(
6225         ) = 0;
6226 
6227     virtual HRESULT STDMETHODCALLTYPE Resume(
6228         ) = 0;
6229 
6230     virtual HRESULT STDMETHODCALLTYPE SetVoice(
6231         ISpObjectToken *pToken) = 0;
6232 
6233     virtual HRESULT STDMETHODCALLTYPE GetVoice(
6234         ISpObjectToken **ppToken) = 0;
6235 
6236     virtual HRESULT STDMETHODCALLTYPE Speak(
6237         LPCWSTR pwcs,
6238         DWORD dwFlags,
6239         ULONG *pulStreamNumber) = 0;
6240 
6241     virtual HRESULT STDMETHODCALLTYPE SpeakStream(
6242         IStream *pStream,
6243         DWORD dwFlags,
6244         ULONG *pulStreamNumber) = 0;
6245 
6246     virtual HRESULT STDMETHODCALLTYPE GetStatus(
6247         SPVOICESTATUS *pStatus,
6248         LPWSTR *ppszLastBookmark) = 0;
6249 
6250     virtual HRESULT STDMETHODCALLTYPE Skip(
6251         LPCWSTR pItemType,
6252         LONG lNumItems,
6253         ULONG *pulNumSkipped) = 0;
6254 
6255     virtual HRESULT STDMETHODCALLTYPE SetPriority(
6256         SPVPRIORITY ePriority) = 0;
6257 
6258     virtual HRESULT STDMETHODCALLTYPE GetPriority(
6259         SPVPRIORITY *pePriority) = 0;
6260 
6261     virtual HRESULT STDMETHODCALLTYPE SetAlertBoundary(
6262         SPEVENTENUM eBoundary) = 0;
6263 
6264     virtual HRESULT STDMETHODCALLTYPE GetAlertBoundary(
6265         SPEVENTENUM *peBoundary) = 0;
6266 
6267     virtual HRESULT STDMETHODCALLTYPE SetRate(
6268         LONG RateAdjust) = 0;
6269 
6270     virtual HRESULT STDMETHODCALLTYPE GetRate(
6271         LONG *pRateAdjust) = 0;
6272 
6273     virtual HRESULT STDMETHODCALLTYPE SetVolume(
6274         USHORT usVolume) = 0;
6275 
6276     virtual HRESULT STDMETHODCALLTYPE GetVolume(
6277         USHORT *pusVolume) = 0;
6278 
6279     virtual HRESULT STDMETHODCALLTYPE WaitUntilDone(
6280         ULONG msTimeout) = 0;
6281 
6282     virtual HRESULT STDMETHODCALLTYPE SetSyncSpeakTimeout(
6283         ULONG msTimeout) = 0;
6284 
6285     virtual HRESULT STDMETHODCALLTYPE GetSyncSpeakTimeout(
6286         ULONG *pmsTimeout) = 0;
6287 
6288     virtual HANDLE STDMETHODCALLTYPE SpeakCompleteEvent(
6289         ) = 0;
6290 
6291     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
6292         LPCWSTR pszTypeOfUI,
6293         void *pvExtraData,
6294         ULONG cbExtraData,
6295         WINBOOL *pfSupported) = 0;
6296 
6297     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
6298         HWND hwndParent,
6299         LPCWSTR pszTitle,
6300         LPCWSTR pszTypeOfUI,
6301         void *pvExtraData,
6302         ULONG cbExtraData) = 0;
6303 
6304 };
6305 #ifdef __CRT_UUID_DECL
6306 __CRT_UUID_DECL(ISpVoice, 0x6c44df74, 0x72b9, 0x4992, 0xa1,0xec, 0xef,0x99,0x6e,0x04,0x22,0xd4)
6307 #endif
6308 #else
6309 typedef struct ISpVoiceVtbl {
6310     BEGIN_INTERFACE
6311 
6312     /*** IUnknown methods ***/
6313     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6314         ISpVoice* This,
6315         REFIID riid,
6316         void **ppvObject);
6317 
6318     ULONG (STDMETHODCALLTYPE *AddRef)(
6319         ISpVoice* This);
6320 
6321     ULONG (STDMETHODCALLTYPE *Release)(
6322         ISpVoice* This);
6323 
6324     /*** ISpNotifySource methods ***/
6325     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
6326         ISpVoice* This,
6327         ISpNotifySink *pNotifySink);
6328 
6329     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
6330         ISpVoice* This,
6331         HWND hWnd,
6332         UINT Msg,
6333         WPARAM wParam,
6334         LPARAM lParam);
6335 
6336     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
6337         ISpVoice* This,
6338         SPNOTIFYCALLBACK *pfnCallback,
6339         WPARAM wParam,
6340         LPARAM lParam);
6341 
6342     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
6343         ISpVoice* This,
6344         ISpNotifyCallback *pSpCallback,
6345         WPARAM wParam,
6346         LPARAM lParam);
6347 
6348     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
6349         ISpVoice* This);
6350 
6351     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
6352         ISpVoice* This,
6353         DWORD dwMilliseconds);
6354 
6355     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
6356         ISpVoice* This);
6357 
6358     /*** ISpEventSource methods ***/
6359     HRESULT (STDMETHODCALLTYPE *SetInterest)(
6360         ISpVoice* This,
6361         ULONGLONG ullEventInterest,
6362         ULONGLONG ullQueuedInterest);
6363 
6364     HRESULT (STDMETHODCALLTYPE *GetEvents)(
6365         ISpVoice* This,
6366         ULONG ulCount,
6367         SPEVENT *pEventArray,
6368         ULONG *pulFetched);
6369 
6370     HRESULT (STDMETHODCALLTYPE *GetInfo)(
6371         ISpVoice* This,
6372         SPEVENTSOURCEINFO *pInfo);
6373 
6374     /*** ISpVoice methods ***/
6375     HRESULT (STDMETHODCALLTYPE *SetOutput)(
6376         ISpVoice* This,
6377         IUnknown *pUnkOutput,
6378         WINBOOL fAllowFormatChanges);
6379 
6380     HRESULT (STDMETHODCALLTYPE *GetOutputObjectToken)(
6381         ISpVoice* This,
6382         ISpObjectToken **ppObjectToken);
6383 
6384     HRESULT (STDMETHODCALLTYPE *GetOutputStream)(
6385         ISpVoice* This,
6386         ISpStreamFormat **ppStream);
6387 
6388     HRESULT (STDMETHODCALLTYPE *Pause)(
6389         ISpVoice* This);
6390 
6391     HRESULT (STDMETHODCALLTYPE *Resume)(
6392         ISpVoice* This);
6393 
6394     HRESULT (STDMETHODCALLTYPE *SetVoice)(
6395         ISpVoice* This,
6396         ISpObjectToken *pToken);
6397 
6398     HRESULT (STDMETHODCALLTYPE *GetVoice)(
6399         ISpVoice* This,
6400         ISpObjectToken **ppToken);
6401 
6402     HRESULT (STDMETHODCALLTYPE *Speak)(
6403         ISpVoice* This,
6404         LPCWSTR pwcs,
6405         DWORD dwFlags,
6406         ULONG *pulStreamNumber);
6407 
6408     HRESULT (STDMETHODCALLTYPE *SpeakStream)(
6409         ISpVoice* This,
6410         IStream *pStream,
6411         DWORD dwFlags,
6412         ULONG *pulStreamNumber);
6413 
6414     HRESULT (STDMETHODCALLTYPE *GetStatus)(
6415         ISpVoice* This,
6416         SPVOICESTATUS *pStatus,
6417         LPWSTR *ppszLastBookmark);
6418 
6419     HRESULT (STDMETHODCALLTYPE *Skip)(
6420         ISpVoice* This,
6421         LPCWSTR pItemType,
6422         LONG lNumItems,
6423         ULONG *pulNumSkipped);
6424 
6425     HRESULT (STDMETHODCALLTYPE *SetPriority)(
6426         ISpVoice* This,
6427         SPVPRIORITY ePriority);
6428 
6429     HRESULT (STDMETHODCALLTYPE *GetPriority)(
6430         ISpVoice* This,
6431         SPVPRIORITY *pePriority);
6432 
6433     HRESULT (STDMETHODCALLTYPE *SetAlertBoundary)(
6434         ISpVoice* This,
6435         SPEVENTENUM eBoundary);
6436 
6437     HRESULT (STDMETHODCALLTYPE *GetAlertBoundary)(
6438         ISpVoice* This,
6439         SPEVENTENUM *peBoundary);
6440 
6441     HRESULT (STDMETHODCALLTYPE *SetRate)(
6442         ISpVoice* This,
6443         LONG RateAdjust);
6444 
6445     HRESULT (STDMETHODCALLTYPE *GetRate)(
6446         ISpVoice* This,
6447         LONG *pRateAdjust);
6448 
6449     HRESULT (STDMETHODCALLTYPE *SetVolume)(
6450         ISpVoice* This,
6451         USHORT usVolume);
6452 
6453     HRESULT (STDMETHODCALLTYPE *GetVolume)(
6454         ISpVoice* This,
6455         USHORT *pusVolume);
6456 
6457     HRESULT (STDMETHODCALLTYPE *WaitUntilDone)(
6458         ISpVoice* This,
6459         ULONG msTimeout);
6460 
6461     HRESULT (STDMETHODCALLTYPE *SetSyncSpeakTimeout)(
6462         ISpVoice* This,
6463         ULONG msTimeout);
6464 
6465     HRESULT (STDMETHODCALLTYPE *GetSyncSpeakTimeout)(
6466         ISpVoice* This,
6467         ULONG *pmsTimeout);
6468 
6469     HANDLE (STDMETHODCALLTYPE *SpeakCompleteEvent)(
6470         ISpVoice* This);
6471 
6472     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
6473         ISpVoice* This,
6474         LPCWSTR pszTypeOfUI,
6475         void *pvExtraData,
6476         ULONG cbExtraData,
6477         WINBOOL *pfSupported);
6478 
6479     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
6480         ISpVoice* This,
6481         HWND hwndParent,
6482         LPCWSTR pszTitle,
6483         LPCWSTR pszTypeOfUI,
6484         void *pvExtraData,
6485         ULONG cbExtraData);
6486 
6487     END_INTERFACE
6488 } ISpVoiceVtbl;
6489 interface ISpVoice {
6490     CONST_VTBL ISpVoiceVtbl* lpVtbl;
6491 };
6492 
6493 #ifdef COBJMACROS
6494 #ifndef WIDL_C_INLINE_WRAPPERS
6495 /*** IUnknown methods ***/
6496 #define ISpVoice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6497 #define ISpVoice_AddRef(This) (This)->lpVtbl->AddRef(This)
6498 #define ISpVoice_Release(This) (This)->lpVtbl->Release(This)
6499 /*** ISpNotifySource methods ***/
6500 #define ISpVoice_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
6501 #define ISpVoice_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
6502 #define ISpVoice_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
6503 #define ISpVoice_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
6504 #define ISpVoice_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
6505 #define ISpVoice_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
6506 #define ISpVoice_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
6507 /*** ISpEventSource methods ***/
6508 #define ISpVoice_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
6509 #define ISpVoice_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
6510 #define ISpVoice_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
6511 /*** ISpVoice methods ***/
6512 #define ISpVoice_SetOutput(This,pUnkOutput,fAllowFormatChanges) (This)->lpVtbl->SetOutput(This,pUnkOutput,fAllowFormatChanges)
6513 #define ISpVoice_GetOutputObjectToken(This,ppObjectToken) (This)->lpVtbl->GetOutputObjectToken(This,ppObjectToken)
6514 #define ISpVoice_GetOutputStream(This,ppStream) (This)->lpVtbl->GetOutputStream(This,ppStream)
6515 #define ISpVoice_Pause(This) (This)->lpVtbl->Pause(This)
6516 #define ISpVoice_Resume(This) (This)->lpVtbl->Resume(This)
6517 #define ISpVoice_SetVoice(This,pToken) (This)->lpVtbl->SetVoice(This,pToken)
6518 #define ISpVoice_GetVoice(This,ppToken) (This)->lpVtbl->GetVoice(This,ppToken)
6519 #define ISpVoice_Speak(This,pwcs,dwFlags,pulStreamNumber) (This)->lpVtbl->Speak(This,pwcs,dwFlags,pulStreamNumber)
6520 #define ISpVoice_SpeakStream(This,pStream,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakStream(This,pStream,dwFlags,pulStreamNumber)
6521 #define ISpVoice_GetStatus(This,pStatus,ppszLastBookmark) (This)->lpVtbl->GetStatus(This,pStatus,ppszLastBookmark)
6522 #define ISpVoice_Skip(This,pItemType,lNumItems,pulNumSkipped) (This)->lpVtbl->Skip(This,pItemType,lNumItems,pulNumSkipped)
6523 #define ISpVoice_SetPriority(This,ePriority) (This)->lpVtbl->SetPriority(This,ePriority)
6524 #define ISpVoice_GetPriority(This,pePriority) (This)->lpVtbl->GetPriority(This,pePriority)
6525 #define ISpVoice_SetAlertBoundary(This,eBoundary) (This)->lpVtbl->SetAlertBoundary(This,eBoundary)
6526 #define ISpVoice_GetAlertBoundary(This,peBoundary) (This)->lpVtbl->GetAlertBoundary(This,peBoundary)
6527 #define ISpVoice_SetRate(This,RateAdjust) (This)->lpVtbl->SetRate(This,RateAdjust)
6528 #define ISpVoice_GetRate(This,pRateAdjust) (This)->lpVtbl->GetRate(This,pRateAdjust)
6529 #define ISpVoice_SetVolume(This,usVolume) (This)->lpVtbl->SetVolume(This,usVolume)
6530 #define ISpVoice_GetVolume(This,pusVolume) (This)->lpVtbl->GetVolume(This,pusVolume)
6531 #define ISpVoice_WaitUntilDone(This,msTimeout) (This)->lpVtbl->WaitUntilDone(This,msTimeout)
6532 #define ISpVoice_SetSyncSpeakTimeout(This,msTimeout) (This)->lpVtbl->SetSyncSpeakTimeout(This,msTimeout)
6533 #define ISpVoice_GetSyncSpeakTimeout(This,pmsTimeout) (This)->lpVtbl->GetSyncSpeakTimeout(This,pmsTimeout)
6534 #define ISpVoice_SpeakCompleteEvent(This) (This)->lpVtbl->SpeakCompleteEvent(This)
6535 #define ISpVoice_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported)
6536 #define ISpVoice_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData)
6537 #else
6538 /*** IUnknown methods ***/
6539 static FORCEINLINE HRESULT ISpVoice_QueryInterface(ISpVoice* This,REFIID riid,void **ppvObject) {
6540     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6541 }
6542 static FORCEINLINE ULONG ISpVoice_AddRef(ISpVoice* This) {
6543     return This->lpVtbl->AddRef(This);
6544 }
6545 static FORCEINLINE ULONG ISpVoice_Release(ISpVoice* This) {
6546     return This->lpVtbl->Release(This);
6547 }
6548 /*** ISpNotifySource methods ***/
6549 static FORCEINLINE HRESULT ISpVoice_SetNotifySink(ISpVoice* This,ISpNotifySink *pNotifySink) {
6550     return This->lpVtbl->SetNotifySink(This,pNotifySink);
6551 }
6552 static FORCEINLINE HRESULT ISpVoice_SetNotifyWindowMessage(ISpVoice* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
6553     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
6554 }
6555 static FORCEINLINE HRESULT ISpVoice_SetNotifyCallbackFunction(ISpVoice* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
6556     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
6557 }
6558 static FORCEINLINE HRESULT ISpVoice_SetNotifyCallbackInterface(ISpVoice* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
6559     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
6560 }
6561 static FORCEINLINE HRESULT ISpVoice_SetNotifyWin32Event(ISpVoice* This) {
6562     return This->lpVtbl->SetNotifyWin32Event(This);
6563 }
6564 static FORCEINLINE HRESULT ISpVoice_WaitForNotifyEvent(ISpVoice* This,DWORD dwMilliseconds) {
6565     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
6566 }
6567 static FORCEINLINE HANDLE ISpVoice_GetNotifyEventHandle(ISpVoice* This) {
6568     return This->lpVtbl->GetNotifyEventHandle(This);
6569 }
6570 /*** ISpEventSource methods ***/
6571 static FORCEINLINE HRESULT ISpVoice_SetInterest(ISpVoice* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
6572     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
6573 }
6574 static FORCEINLINE HRESULT ISpVoice_GetEvents(ISpVoice* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
6575     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
6576 }
6577 static FORCEINLINE HRESULT ISpVoice_GetInfo(ISpVoice* This,SPEVENTSOURCEINFO *pInfo) {
6578     return This->lpVtbl->GetInfo(This,pInfo);
6579 }
6580 /*** ISpVoice methods ***/
6581 static FORCEINLINE HRESULT ISpVoice_SetOutput(ISpVoice* This,IUnknown *pUnkOutput,WINBOOL fAllowFormatChanges) {
6582     return This->lpVtbl->SetOutput(This,pUnkOutput,fAllowFormatChanges);
6583 }
6584 static FORCEINLINE HRESULT ISpVoice_GetOutputObjectToken(ISpVoice* This,ISpObjectToken **ppObjectToken) {
6585     return This->lpVtbl->GetOutputObjectToken(This,ppObjectToken);
6586 }
6587 static FORCEINLINE HRESULT ISpVoice_GetOutputStream(ISpVoice* This,ISpStreamFormat **ppStream) {
6588     return This->lpVtbl->GetOutputStream(This,ppStream);
6589 }
6590 static FORCEINLINE HRESULT ISpVoice_Pause(ISpVoice* This) {
6591     return This->lpVtbl->Pause(This);
6592 }
6593 static FORCEINLINE HRESULT ISpVoice_Resume(ISpVoice* This) {
6594     return This->lpVtbl->Resume(This);
6595 }
6596 static FORCEINLINE HRESULT ISpVoice_SetVoice(ISpVoice* This,ISpObjectToken *pToken) {
6597     return This->lpVtbl->SetVoice(This,pToken);
6598 }
6599 static FORCEINLINE HRESULT ISpVoice_GetVoice(ISpVoice* This,ISpObjectToken **ppToken) {
6600     return This->lpVtbl->GetVoice(This,ppToken);
6601 }
6602 static FORCEINLINE HRESULT ISpVoice_Speak(ISpVoice* This,LPCWSTR pwcs,DWORD dwFlags,ULONG *pulStreamNumber) {
6603     return This->lpVtbl->Speak(This,pwcs,dwFlags,pulStreamNumber);
6604 }
6605 static FORCEINLINE HRESULT ISpVoice_SpeakStream(ISpVoice* This,IStream *pStream,DWORD dwFlags,ULONG *pulStreamNumber) {
6606     return This->lpVtbl->SpeakStream(This,pStream,dwFlags,pulStreamNumber);
6607 }
6608 static FORCEINLINE HRESULT ISpVoice_GetStatus(ISpVoice* This,SPVOICESTATUS *pStatus,LPWSTR *ppszLastBookmark) {
6609     return This->lpVtbl->GetStatus(This,pStatus,ppszLastBookmark);
6610 }
6611 static FORCEINLINE HRESULT ISpVoice_Skip(ISpVoice* This,LPCWSTR pItemType,LONG lNumItems,ULONG *pulNumSkipped) {
6612     return This->lpVtbl->Skip(This,pItemType,lNumItems,pulNumSkipped);
6613 }
6614 static FORCEINLINE HRESULT ISpVoice_SetPriority(ISpVoice* This,SPVPRIORITY ePriority) {
6615     return This->lpVtbl->SetPriority(This,ePriority);
6616 }
6617 static FORCEINLINE HRESULT ISpVoice_GetPriority(ISpVoice* This,SPVPRIORITY *pePriority) {
6618     return This->lpVtbl->GetPriority(This,pePriority);
6619 }
6620 static FORCEINLINE HRESULT ISpVoice_SetAlertBoundary(ISpVoice* This,SPEVENTENUM eBoundary) {
6621     return This->lpVtbl->SetAlertBoundary(This,eBoundary);
6622 }
6623 static FORCEINLINE HRESULT ISpVoice_GetAlertBoundary(ISpVoice* This,SPEVENTENUM *peBoundary) {
6624     return This->lpVtbl->GetAlertBoundary(This,peBoundary);
6625 }
6626 static FORCEINLINE HRESULT ISpVoice_SetRate(ISpVoice* This,LONG RateAdjust) {
6627     return This->lpVtbl->SetRate(This,RateAdjust);
6628 }
6629 static FORCEINLINE HRESULT ISpVoice_GetRate(ISpVoice* This,LONG *pRateAdjust) {
6630     return This->lpVtbl->GetRate(This,pRateAdjust);
6631 }
6632 static FORCEINLINE HRESULT ISpVoice_SetVolume(ISpVoice* This,USHORT usVolume) {
6633     return This->lpVtbl->SetVolume(This,usVolume);
6634 }
6635 static FORCEINLINE HRESULT ISpVoice_GetVolume(ISpVoice* This,USHORT *pusVolume) {
6636     return This->lpVtbl->GetVolume(This,pusVolume);
6637 }
6638 static FORCEINLINE HRESULT ISpVoice_WaitUntilDone(ISpVoice* This,ULONG msTimeout) {
6639     return This->lpVtbl->WaitUntilDone(This,msTimeout);
6640 }
6641 static FORCEINLINE HRESULT ISpVoice_SetSyncSpeakTimeout(ISpVoice* This,ULONG msTimeout) {
6642     return This->lpVtbl->SetSyncSpeakTimeout(This,msTimeout);
6643 }
6644 static FORCEINLINE HRESULT ISpVoice_GetSyncSpeakTimeout(ISpVoice* This,ULONG *pmsTimeout) {
6645     return This->lpVtbl->GetSyncSpeakTimeout(This,pmsTimeout);
6646 }
6647 static FORCEINLINE HANDLE ISpVoice_SpeakCompleteEvent(ISpVoice* This) {
6648     return This->lpVtbl->SpeakCompleteEvent(This);
6649 }
6650 static FORCEINLINE HRESULT ISpVoice_IsUISupported(ISpVoice* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,WINBOOL *pfSupported) {
6651     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported);
6652 }
6653 static FORCEINLINE HRESULT ISpVoice_DisplayUI(ISpVoice* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData) {
6654     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData);
6655 }
6656 #endif
6657 #endif
6658 
6659 #endif
6660 
6661 HRESULT STDMETHODCALLTYPE ISpVoice_SetOutput_Proxy(
6662     ISpVoice* This,
6663     IUnknown *pUnkOutput,
6664     WINBOOL fAllowFormatChanges);
6665 void __RPC_STUB ISpVoice_SetOutput_Stub(
6666     IRpcStubBuffer* This,
6667     IRpcChannelBuffer* pRpcChannelBuffer,
6668     PRPC_MESSAGE pRpcMessage,
6669     DWORD* pdwStubPhase);
6670 HRESULT STDMETHODCALLTYPE ISpVoice_GetOutputObjectToken_Proxy(
6671     ISpVoice* This,
6672     ISpObjectToken **ppObjectToken);
6673 void __RPC_STUB ISpVoice_GetOutputObjectToken_Stub(
6674     IRpcStubBuffer* This,
6675     IRpcChannelBuffer* pRpcChannelBuffer,
6676     PRPC_MESSAGE pRpcMessage,
6677     DWORD* pdwStubPhase);
6678 HRESULT STDMETHODCALLTYPE ISpVoice_GetOutputStream_Proxy(
6679     ISpVoice* This,
6680     ISpStreamFormat **ppStream);
6681 void __RPC_STUB ISpVoice_GetOutputStream_Stub(
6682     IRpcStubBuffer* This,
6683     IRpcChannelBuffer* pRpcChannelBuffer,
6684     PRPC_MESSAGE pRpcMessage,
6685     DWORD* pdwStubPhase);
6686 HRESULT STDMETHODCALLTYPE ISpVoice_Pause_Proxy(
6687     ISpVoice* This);
6688 void __RPC_STUB ISpVoice_Pause_Stub(
6689     IRpcStubBuffer* This,
6690     IRpcChannelBuffer* pRpcChannelBuffer,
6691     PRPC_MESSAGE pRpcMessage,
6692     DWORD* pdwStubPhase);
6693 HRESULT STDMETHODCALLTYPE ISpVoice_Resume_Proxy(
6694     ISpVoice* This);
6695 void __RPC_STUB ISpVoice_Resume_Stub(
6696     IRpcStubBuffer* This,
6697     IRpcChannelBuffer* pRpcChannelBuffer,
6698     PRPC_MESSAGE pRpcMessage,
6699     DWORD* pdwStubPhase);
6700 HRESULT STDMETHODCALLTYPE ISpVoice_SetVoice_Proxy(
6701     ISpVoice* This,
6702     ISpObjectToken *pToken);
6703 void __RPC_STUB ISpVoice_SetVoice_Stub(
6704     IRpcStubBuffer* This,
6705     IRpcChannelBuffer* pRpcChannelBuffer,
6706     PRPC_MESSAGE pRpcMessage,
6707     DWORD* pdwStubPhase);
6708 HRESULT STDMETHODCALLTYPE ISpVoice_GetVoice_Proxy(
6709     ISpVoice* This,
6710     ISpObjectToken **ppToken);
6711 void __RPC_STUB ISpVoice_GetVoice_Stub(
6712     IRpcStubBuffer* This,
6713     IRpcChannelBuffer* pRpcChannelBuffer,
6714     PRPC_MESSAGE pRpcMessage,
6715     DWORD* pdwStubPhase);
6716 HRESULT STDMETHODCALLTYPE ISpVoice_Speak_Proxy(
6717     ISpVoice* This,
6718     LPCWSTR pwcs,
6719     DWORD dwFlags,
6720     ULONG *pulStreamNumber);
6721 void __RPC_STUB ISpVoice_Speak_Stub(
6722     IRpcStubBuffer* This,
6723     IRpcChannelBuffer* pRpcChannelBuffer,
6724     PRPC_MESSAGE pRpcMessage,
6725     DWORD* pdwStubPhase);
6726 HRESULT STDMETHODCALLTYPE ISpVoice_SpeakStream_Proxy(
6727     ISpVoice* This,
6728     IStream *pStream,
6729     DWORD dwFlags,
6730     ULONG *pulStreamNumber);
6731 void __RPC_STUB ISpVoice_SpeakStream_Stub(
6732     IRpcStubBuffer* This,
6733     IRpcChannelBuffer* pRpcChannelBuffer,
6734     PRPC_MESSAGE pRpcMessage,
6735     DWORD* pdwStubPhase);
6736 HRESULT STDMETHODCALLTYPE ISpVoice_GetStatus_Proxy(
6737     ISpVoice* This,
6738     SPVOICESTATUS *pStatus,
6739     LPWSTR *ppszLastBookmark);
6740 void __RPC_STUB ISpVoice_GetStatus_Stub(
6741     IRpcStubBuffer* This,
6742     IRpcChannelBuffer* pRpcChannelBuffer,
6743     PRPC_MESSAGE pRpcMessage,
6744     DWORD* pdwStubPhase);
6745 HRESULT STDMETHODCALLTYPE ISpVoice_Skip_Proxy(
6746     ISpVoice* This,
6747     LPCWSTR pItemType,
6748     LONG lNumItems,
6749     ULONG *pulNumSkipped);
6750 void __RPC_STUB ISpVoice_Skip_Stub(
6751     IRpcStubBuffer* This,
6752     IRpcChannelBuffer* pRpcChannelBuffer,
6753     PRPC_MESSAGE pRpcMessage,
6754     DWORD* pdwStubPhase);
6755 HRESULT STDMETHODCALLTYPE ISpVoice_SetPriority_Proxy(
6756     ISpVoice* This,
6757     SPVPRIORITY ePriority);
6758 void __RPC_STUB ISpVoice_SetPriority_Stub(
6759     IRpcStubBuffer* This,
6760     IRpcChannelBuffer* pRpcChannelBuffer,
6761     PRPC_MESSAGE pRpcMessage,
6762     DWORD* pdwStubPhase);
6763 HRESULT STDMETHODCALLTYPE ISpVoice_GetPriority_Proxy(
6764     ISpVoice* This,
6765     SPVPRIORITY *pePriority);
6766 void __RPC_STUB ISpVoice_GetPriority_Stub(
6767     IRpcStubBuffer* This,
6768     IRpcChannelBuffer* pRpcChannelBuffer,
6769     PRPC_MESSAGE pRpcMessage,
6770     DWORD* pdwStubPhase);
6771 HRESULT STDMETHODCALLTYPE ISpVoice_SetAlertBoundary_Proxy(
6772     ISpVoice* This,
6773     SPEVENTENUM eBoundary);
6774 void __RPC_STUB ISpVoice_SetAlertBoundary_Stub(
6775     IRpcStubBuffer* This,
6776     IRpcChannelBuffer* pRpcChannelBuffer,
6777     PRPC_MESSAGE pRpcMessage,
6778     DWORD* pdwStubPhase);
6779 HRESULT STDMETHODCALLTYPE ISpVoice_GetAlertBoundary_Proxy(
6780     ISpVoice* This,
6781     SPEVENTENUM *peBoundary);
6782 void __RPC_STUB ISpVoice_GetAlertBoundary_Stub(
6783     IRpcStubBuffer* This,
6784     IRpcChannelBuffer* pRpcChannelBuffer,
6785     PRPC_MESSAGE pRpcMessage,
6786     DWORD* pdwStubPhase);
6787 HRESULT STDMETHODCALLTYPE ISpVoice_SetRate_Proxy(
6788     ISpVoice* This,
6789     LONG RateAdjust);
6790 void __RPC_STUB ISpVoice_SetRate_Stub(
6791     IRpcStubBuffer* This,
6792     IRpcChannelBuffer* pRpcChannelBuffer,
6793     PRPC_MESSAGE pRpcMessage,
6794     DWORD* pdwStubPhase);
6795 HRESULT STDMETHODCALLTYPE ISpVoice_GetRate_Proxy(
6796     ISpVoice* This,
6797     LONG *pRateAdjust);
6798 void __RPC_STUB ISpVoice_GetRate_Stub(
6799     IRpcStubBuffer* This,
6800     IRpcChannelBuffer* pRpcChannelBuffer,
6801     PRPC_MESSAGE pRpcMessage,
6802     DWORD* pdwStubPhase);
6803 HRESULT STDMETHODCALLTYPE ISpVoice_SetVolume_Proxy(
6804     ISpVoice* This,
6805     USHORT usVolume);
6806 void __RPC_STUB ISpVoice_SetVolume_Stub(
6807     IRpcStubBuffer* This,
6808     IRpcChannelBuffer* pRpcChannelBuffer,
6809     PRPC_MESSAGE pRpcMessage,
6810     DWORD* pdwStubPhase);
6811 HRESULT STDMETHODCALLTYPE ISpVoice_GetVolume_Proxy(
6812     ISpVoice* This,
6813     USHORT *pusVolume);
6814 void __RPC_STUB ISpVoice_GetVolume_Stub(
6815     IRpcStubBuffer* This,
6816     IRpcChannelBuffer* pRpcChannelBuffer,
6817     PRPC_MESSAGE pRpcMessage,
6818     DWORD* pdwStubPhase);
6819 HRESULT STDMETHODCALLTYPE ISpVoice_WaitUntilDone_Proxy(
6820     ISpVoice* This,
6821     ULONG msTimeout);
6822 void __RPC_STUB ISpVoice_WaitUntilDone_Stub(
6823     IRpcStubBuffer* This,
6824     IRpcChannelBuffer* pRpcChannelBuffer,
6825     PRPC_MESSAGE pRpcMessage,
6826     DWORD* pdwStubPhase);
6827 HRESULT STDMETHODCALLTYPE ISpVoice_SetSyncSpeakTimeout_Proxy(
6828     ISpVoice* This,
6829     ULONG msTimeout);
6830 void __RPC_STUB ISpVoice_SetSyncSpeakTimeout_Stub(
6831     IRpcStubBuffer* This,
6832     IRpcChannelBuffer* pRpcChannelBuffer,
6833     PRPC_MESSAGE pRpcMessage,
6834     DWORD* pdwStubPhase);
6835 HRESULT STDMETHODCALLTYPE ISpVoice_GetSyncSpeakTimeout_Proxy(
6836     ISpVoice* This,
6837     ULONG *pmsTimeout);
6838 void __RPC_STUB ISpVoice_GetSyncSpeakTimeout_Stub(
6839     IRpcStubBuffer* This,
6840     IRpcChannelBuffer* pRpcChannelBuffer,
6841     PRPC_MESSAGE pRpcMessage,
6842     DWORD* pdwStubPhase);
6843 
6844 #endif  /* __ISpVoice_INTERFACE_DEFINED__ */
6845 
6846 /*****************************************************************************
6847  * ISpPhrase interface
6848  */
6849 #ifndef __ISpPhrase_INTERFACE_DEFINED__
6850 #define __ISpPhrase_INTERFACE_DEFINED__
6851 
6852 DEFINE_GUID(IID_ISpPhrase, 0x1a5c0354, 0xb621, 0x4b5a, 0x87,0x91, 0xd3,0x06,0xed,0x37,0x9e,0x53);
6853 #if defined(__cplusplus) && !defined(CINTERFACE)
6854 MIDL_INTERFACE("1a5c0354-b621-4b5a-8791-d306ed379e53")
6855 ISpPhrase : public IUnknown
6856 {
6857     virtual HRESULT STDMETHODCALLTYPE GetPhrase(
6858         SPPHRASE **ppCoMemPhrase) = 0;
6859 
6860     virtual HRESULT STDMETHODCALLTYPE GetSerializedPhrase(
6861         SPSERIALIZEDPHRASE **ppCoMemPhrase) = 0;
6862 
6863     virtual HRESULT STDMETHODCALLTYPE GetText(
6864         ULONG ulStart,
6865         ULONG ulCount,
6866         WINBOOL fUseTextReplacements,
6867         LPWSTR *ppszCoMemText,
6868         BYTE *pbDisplayAttributes) = 0;
6869 
6870     virtual HRESULT STDMETHODCALLTYPE Discard(
6871         DWORD dwValueTypes) = 0;
6872 
6873 };
6874 #ifdef __CRT_UUID_DECL
6875 __CRT_UUID_DECL(ISpPhrase, 0x1a5c0354, 0xb621, 0x4b5a, 0x87,0x91, 0xd3,0x06,0xed,0x37,0x9e,0x53)
6876 #endif
6877 #else
6878 typedef struct ISpPhraseVtbl {
6879     BEGIN_INTERFACE
6880 
6881     /*** IUnknown methods ***/
6882     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6883         ISpPhrase* This,
6884         REFIID riid,
6885         void **ppvObject);
6886 
6887     ULONG (STDMETHODCALLTYPE *AddRef)(
6888         ISpPhrase* This);
6889 
6890     ULONG (STDMETHODCALLTYPE *Release)(
6891         ISpPhrase* This);
6892 
6893     /*** ISpPhrase methods ***/
6894     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
6895         ISpPhrase* This,
6896         SPPHRASE **ppCoMemPhrase);
6897 
6898     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
6899         ISpPhrase* This,
6900         SPSERIALIZEDPHRASE **ppCoMemPhrase);
6901 
6902     HRESULT (STDMETHODCALLTYPE *GetText)(
6903         ISpPhrase* This,
6904         ULONG ulStart,
6905         ULONG ulCount,
6906         WINBOOL fUseTextReplacements,
6907         LPWSTR *ppszCoMemText,
6908         BYTE *pbDisplayAttributes);
6909 
6910     HRESULT (STDMETHODCALLTYPE *Discard)(
6911         ISpPhrase* This,
6912         DWORD dwValueTypes);
6913 
6914     END_INTERFACE
6915 } ISpPhraseVtbl;
6916 interface ISpPhrase {
6917     CONST_VTBL ISpPhraseVtbl* lpVtbl;
6918 };
6919 
6920 #ifdef COBJMACROS
6921 #ifndef WIDL_C_INLINE_WRAPPERS
6922 /*** IUnknown methods ***/
6923 #define ISpPhrase_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6924 #define ISpPhrase_AddRef(This) (This)->lpVtbl->AddRef(This)
6925 #define ISpPhrase_Release(This) (This)->lpVtbl->Release(This)
6926 /*** ISpPhrase methods ***/
6927 #define ISpPhrase_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
6928 #define ISpPhrase_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
6929 #define ISpPhrase_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
6930 #define ISpPhrase_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
6931 #else
6932 /*** IUnknown methods ***/
6933 static FORCEINLINE HRESULT ISpPhrase_QueryInterface(ISpPhrase* This,REFIID riid,void **ppvObject) {
6934     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6935 }
6936 static FORCEINLINE ULONG ISpPhrase_AddRef(ISpPhrase* This) {
6937     return This->lpVtbl->AddRef(This);
6938 }
6939 static FORCEINLINE ULONG ISpPhrase_Release(ISpPhrase* This) {
6940     return This->lpVtbl->Release(This);
6941 }
6942 /*** ISpPhrase methods ***/
6943 static FORCEINLINE HRESULT ISpPhrase_GetPhrase(ISpPhrase* This,SPPHRASE **ppCoMemPhrase) {
6944     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
6945 }
6946 static FORCEINLINE HRESULT ISpPhrase_GetSerializedPhrase(ISpPhrase* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
6947     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
6948 }
6949 static FORCEINLINE HRESULT ISpPhrase_GetText(ISpPhrase* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
6950     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
6951 }
6952 static FORCEINLINE HRESULT ISpPhrase_Discard(ISpPhrase* This,DWORD dwValueTypes) {
6953     return This->lpVtbl->Discard(This,dwValueTypes);
6954 }
6955 #endif
6956 #endif
6957 
6958 #endif
6959 
6960 HRESULT STDMETHODCALLTYPE ISpPhrase_GetPhrase_Proxy(
6961     ISpPhrase* This,
6962     SPPHRASE **ppCoMemPhrase);
6963 void __RPC_STUB ISpPhrase_GetPhrase_Stub(
6964     IRpcStubBuffer* This,
6965     IRpcChannelBuffer* pRpcChannelBuffer,
6966     PRPC_MESSAGE pRpcMessage,
6967     DWORD* pdwStubPhase);
6968 HRESULT STDMETHODCALLTYPE ISpPhrase_GetSerializedPhrase_Proxy(
6969     ISpPhrase* This,
6970     SPSERIALIZEDPHRASE **ppCoMemPhrase);
6971 void __RPC_STUB ISpPhrase_GetSerializedPhrase_Stub(
6972     IRpcStubBuffer* This,
6973     IRpcChannelBuffer* pRpcChannelBuffer,
6974     PRPC_MESSAGE pRpcMessage,
6975     DWORD* pdwStubPhase);
6976 HRESULT STDMETHODCALLTYPE ISpPhrase_GetText_Proxy(
6977     ISpPhrase* This,
6978     ULONG ulStart,
6979     ULONG ulCount,
6980     WINBOOL fUseTextReplacements,
6981     LPWSTR *ppszCoMemText,
6982     BYTE *pbDisplayAttributes);
6983 void __RPC_STUB ISpPhrase_GetText_Stub(
6984     IRpcStubBuffer* This,
6985     IRpcChannelBuffer* pRpcChannelBuffer,
6986     PRPC_MESSAGE pRpcMessage,
6987     DWORD* pdwStubPhase);
6988 HRESULT STDMETHODCALLTYPE ISpPhrase_Discard_Proxy(
6989     ISpPhrase* This,
6990     DWORD dwValueTypes);
6991 void __RPC_STUB ISpPhrase_Discard_Stub(
6992     IRpcStubBuffer* This,
6993     IRpcChannelBuffer* pRpcChannelBuffer,
6994     PRPC_MESSAGE pRpcMessage,
6995     DWORD* pdwStubPhase);
6996 
6997 #endif  /* __ISpPhrase_INTERFACE_DEFINED__ */
6998 
6999 /*****************************************************************************
7000  * ISpPhraseAlt interface
7001  */
7002 #ifndef __ISpPhraseAlt_INTERFACE_DEFINED__
7003 #define __ISpPhraseAlt_INTERFACE_DEFINED__
7004 
7005 DEFINE_GUID(IID_ISpPhraseAlt, 0x8fcebc98, 0x4e49, 0x4067, 0x9c,0x6c, 0xd8,0x6a,0x0e,0x09,0x2e,0x3d);
7006 #if defined(__cplusplus) && !defined(CINTERFACE)
7007 MIDL_INTERFACE("8fcebc98-4e49-4067-9c6c-d86a0e092e3d")
7008 ISpPhraseAlt : public ISpPhrase
7009 {
7010     virtual HRESULT STDMETHODCALLTYPE GetAltInfo(
7011         ISpPhrase **ppParent,
7012         ULONG *pulStartElementInParent,
7013         ULONG *pcElementsInParent,
7014         ULONG *pcElementsInAlt) = 0;
7015 
7016     virtual HRESULT STDMETHODCALLTYPE Commit(
7017         ) = 0;
7018 
7019 };
7020 #ifdef __CRT_UUID_DECL
7021 __CRT_UUID_DECL(ISpPhraseAlt, 0x8fcebc98, 0x4e49, 0x4067, 0x9c,0x6c, 0xd8,0x6a,0x0e,0x09,0x2e,0x3d)
7022 #endif
7023 #else
7024 typedef struct ISpPhraseAltVtbl {
7025     BEGIN_INTERFACE
7026 
7027     /*** IUnknown methods ***/
7028     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7029         ISpPhraseAlt* This,
7030         REFIID riid,
7031         void **ppvObject);
7032 
7033     ULONG (STDMETHODCALLTYPE *AddRef)(
7034         ISpPhraseAlt* This);
7035 
7036     ULONG (STDMETHODCALLTYPE *Release)(
7037         ISpPhraseAlt* This);
7038 
7039     /*** ISpPhrase methods ***/
7040     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
7041         ISpPhraseAlt* This,
7042         SPPHRASE **ppCoMemPhrase);
7043 
7044     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
7045         ISpPhraseAlt* This,
7046         SPSERIALIZEDPHRASE **ppCoMemPhrase);
7047 
7048     HRESULT (STDMETHODCALLTYPE *GetText)(
7049         ISpPhraseAlt* This,
7050         ULONG ulStart,
7051         ULONG ulCount,
7052         WINBOOL fUseTextReplacements,
7053         LPWSTR *ppszCoMemText,
7054         BYTE *pbDisplayAttributes);
7055 
7056     HRESULT (STDMETHODCALLTYPE *Discard)(
7057         ISpPhraseAlt* This,
7058         DWORD dwValueTypes);
7059 
7060     /*** ISpPhraseAlt methods ***/
7061     HRESULT (STDMETHODCALLTYPE *GetAltInfo)(
7062         ISpPhraseAlt* This,
7063         ISpPhrase **ppParent,
7064         ULONG *pulStartElementInParent,
7065         ULONG *pcElementsInParent,
7066         ULONG *pcElementsInAlt);
7067 
7068     HRESULT (STDMETHODCALLTYPE *Commit)(
7069         ISpPhraseAlt* This);
7070 
7071     END_INTERFACE
7072 } ISpPhraseAltVtbl;
7073 interface ISpPhraseAlt {
7074     CONST_VTBL ISpPhraseAltVtbl* lpVtbl;
7075 };
7076 
7077 #ifdef COBJMACROS
7078 #ifndef WIDL_C_INLINE_WRAPPERS
7079 /*** IUnknown methods ***/
7080 #define ISpPhraseAlt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7081 #define ISpPhraseAlt_AddRef(This) (This)->lpVtbl->AddRef(This)
7082 #define ISpPhraseAlt_Release(This) (This)->lpVtbl->Release(This)
7083 /*** ISpPhrase methods ***/
7084 #define ISpPhraseAlt_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
7085 #define ISpPhraseAlt_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
7086 #define ISpPhraseAlt_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
7087 #define ISpPhraseAlt_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
7088 /*** ISpPhraseAlt methods ***/
7089 #define ISpPhraseAlt_GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt) (This)->lpVtbl->GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt)
7090 #define ISpPhraseAlt_Commit(This) (This)->lpVtbl->Commit(This)
7091 #else
7092 /*** IUnknown methods ***/
7093 static FORCEINLINE HRESULT ISpPhraseAlt_QueryInterface(ISpPhraseAlt* This,REFIID riid,void **ppvObject) {
7094     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7095 }
7096 static FORCEINLINE ULONG ISpPhraseAlt_AddRef(ISpPhraseAlt* This) {
7097     return This->lpVtbl->AddRef(This);
7098 }
7099 static FORCEINLINE ULONG ISpPhraseAlt_Release(ISpPhraseAlt* This) {
7100     return This->lpVtbl->Release(This);
7101 }
7102 /*** ISpPhrase methods ***/
7103 static FORCEINLINE HRESULT ISpPhraseAlt_GetPhrase(ISpPhraseAlt* This,SPPHRASE **ppCoMemPhrase) {
7104     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
7105 }
7106 static FORCEINLINE HRESULT ISpPhraseAlt_GetSerializedPhrase(ISpPhraseAlt* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
7107     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
7108 }
7109 static FORCEINLINE HRESULT ISpPhraseAlt_GetText(ISpPhraseAlt* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
7110     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
7111 }
7112 static FORCEINLINE HRESULT ISpPhraseAlt_Discard(ISpPhraseAlt* This,DWORD dwValueTypes) {
7113     return This->lpVtbl->Discard(This,dwValueTypes);
7114 }
7115 /*** ISpPhraseAlt methods ***/
7116 static FORCEINLINE HRESULT ISpPhraseAlt_GetAltInfo(ISpPhraseAlt* This,ISpPhrase **ppParent,ULONG *pulStartElementInParent,ULONG *pcElementsInParent,ULONG *pcElementsInAlt) {
7117     return This->lpVtbl->GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt);
7118 }
7119 static FORCEINLINE HRESULT ISpPhraseAlt_Commit(ISpPhraseAlt* This) {
7120     return This->lpVtbl->Commit(This);
7121 }
7122 #endif
7123 #endif
7124 
7125 #endif
7126 
7127 HRESULT STDMETHODCALLTYPE ISpPhraseAlt_GetAltInfo_Proxy(
7128     ISpPhraseAlt* This,
7129     ISpPhrase **ppParent,
7130     ULONG *pulStartElementInParent,
7131     ULONG *pcElementsInParent,
7132     ULONG *pcElementsInAlt);
7133 void __RPC_STUB ISpPhraseAlt_GetAltInfo_Stub(
7134     IRpcStubBuffer* This,
7135     IRpcChannelBuffer* pRpcChannelBuffer,
7136     PRPC_MESSAGE pRpcMessage,
7137     DWORD* pdwStubPhase);
7138 HRESULT STDMETHODCALLTYPE ISpPhraseAlt_Commit_Proxy(
7139     ISpPhraseAlt* This);
7140 void __RPC_STUB ISpPhraseAlt_Commit_Stub(
7141     IRpcStubBuffer* This,
7142     IRpcChannelBuffer* pRpcChannelBuffer,
7143     PRPC_MESSAGE pRpcMessage,
7144     DWORD* pdwStubPhase);
7145 
7146 #endif  /* __ISpPhraseAlt_INTERFACE_DEFINED__ */
7147 
7148 typedef struct SPRECORESULTTIMES {
7149     FILETIME ftStreamTime;
7150     ULONGLONG ullLength;
7151     DWORD dwTickCount;
7152     ULONGLONG ullStart;
7153 } SPRECORESULTTIMES;
7154 typedef struct SPSERIALIZEDRESULT {
7155     ULONG ulSerializedSize;
7156 } SPSERIALIZEDRESULT;
7157 /*****************************************************************************
7158  * ISpRecoResult interface
7159  */
7160 #ifndef __ISpRecoResult_INTERFACE_DEFINED__
7161 #define __ISpRecoResult_INTERFACE_DEFINED__
7162 
7163 DEFINE_GUID(IID_ISpRecoResult, 0x20b053be, 0xe235, 0x43cd, 0x9a,0x2a, 0x8d,0x17,0xa4,0x8b,0x78,0x42);
7164 #if defined(__cplusplus) && !defined(CINTERFACE)
7165 MIDL_INTERFACE("20b053be-e235-43cd-9a2a-8d17a48b7842")
7166 ISpRecoResult : public ISpPhrase
7167 {
7168     virtual HRESULT STDMETHODCALLTYPE GetResultTimes(
7169         SPRECORESULTTIMES *pTimes) = 0;
7170 
7171     virtual HRESULT STDMETHODCALLTYPE GetAlternates(
7172         ULONG ulStartElement,
7173         ULONG cElements,
7174         ULONG ulRequestCount,
7175         ISpPhraseAlt **ppPhrases,
7176         ULONG *pcPhrasesReturned) = 0;
7177 
7178     virtual HRESULT STDMETHODCALLTYPE GetAudio(
7179         ULONG ulStartElement,
7180         ULONG cElements,
7181         ISpStreamFormat **ppStream) = 0;
7182 
7183     virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
7184         ULONG ulStartElement,
7185         ULONG cElements,
7186         DWORD dwFlags,
7187         ULONG *pulStreamNumber) = 0;
7188 
7189     virtual HRESULT STDMETHODCALLTYPE Serialize(
7190         SPSERIALIZEDRESULT **ppCoMemSerializedResult) = 0;
7191 
7192     virtual HRESULT STDMETHODCALLTYPE ScaleAudio(
7193         const GUID *pAudioFormatId,
7194         const WAVEFORMATEX *pWaveFormatEx) = 0;
7195 
7196     virtual HRESULT STDMETHODCALLTYPE GetRecoContext(
7197         ISpRecoContext **ppRecoContext) = 0;
7198 
7199 };
7200 #ifdef __CRT_UUID_DECL
7201 __CRT_UUID_DECL(ISpRecoResult, 0x20b053be, 0xe235, 0x43cd, 0x9a,0x2a, 0x8d,0x17,0xa4,0x8b,0x78,0x42)
7202 #endif
7203 #else
7204 typedef struct ISpRecoResultVtbl {
7205     BEGIN_INTERFACE
7206 
7207     /*** IUnknown methods ***/
7208     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7209         ISpRecoResult* This,
7210         REFIID riid,
7211         void **ppvObject);
7212 
7213     ULONG (STDMETHODCALLTYPE *AddRef)(
7214         ISpRecoResult* This);
7215 
7216     ULONG (STDMETHODCALLTYPE *Release)(
7217         ISpRecoResult* This);
7218 
7219     /*** ISpPhrase methods ***/
7220     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
7221         ISpRecoResult* This,
7222         SPPHRASE **ppCoMemPhrase);
7223 
7224     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
7225         ISpRecoResult* This,
7226         SPSERIALIZEDPHRASE **ppCoMemPhrase);
7227 
7228     HRESULT (STDMETHODCALLTYPE *GetText)(
7229         ISpRecoResult* This,
7230         ULONG ulStart,
7231         ULONG ulCount,
7232         WINBOOL fUseTextReplacements,
7233         LPWSTR *ppszCoMemText,
7234         BYTE *pbDisplayAttributes);
7235 
7236     HRESULT (STDMETHODCALLTYPE *Discard)(
7237         ISpRecoResult* This,
7238         DWORD dwValueTypes);
7239 
7240     /*** ISpRecoResult methods ***/
7241     HRESULT (STDMETHODCALLTYPE *GetResultTimes)(
7242         ISpRecoResult* This,
7243         SPRECORESULTTIMES *pTimes);
7244 
7245     HRESULT (STDMETHODCALLTYPE *GetAlternates)(
7246         ISpRecoResult* This,
7247         ULONG ulStartElement,
7248         ULONG cElements,
7249         ULONG ulRequestCount,
7250         ISpPhraseAlt **ppPhrases,
7251         ULONG *pcPhrasesReturned);
7252 
7253     HRESULT (STDMETHODCALLTYPE *GetAudio)(
7254         ISpRecoResult* This,
7255         ULONG ulStartElement,
7256         ULONG cElements,
7257         ISpStreamFormat **ppStream);
7258 
7259     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
7260         ISpRecoResult* This,
7261         ULONG ulStartElement,
7262         ULONG cElements,
7263         DWORD dwFlags,
7264         ULONG *pulStreamNumber);
7265 
7266     HRESULT (STDMETHODCALLTYPE *Serialize)(
7267         ISpRecoResult* This,
7268         SPSERIALIZEDRESULT **ppCoMemSerializedResult);
7269 
7270     HRESULT (STDMETHODCALLTYPE *ScaleAudio)(
7271         ISpRecoResult* This,
7272         const GUID *pAudioFormatId,
7273         const WAVEFORMATEX *pWaveFormatEx);
7274 
7275     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
7276         ISpRecoResult* This,
7277         ISpRecoContext **ppRecoContext);
7278 
7279     END_INTERFACE
7280 } ISpRecoResultVtbl;
7281 interface ISpRecoResult {
7282     CONST_VTBL ISpRecoResultVtbl* lpVtbl;
7283 };
7284 
7285 #ifdef COBJMACROS
7286 #ifndef WIDL_C_INLINE_WRAPPERS
7287 /*** IUnknown methods ***/
7288 #define ISpRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7289 #define ISpRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
7290 #define ISpRecoResult_Release(This) (This)->lpVtbl->Release(This)
7291 /*** ISpPhrase methods ***/
7292 #define ISpRecoResult_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
7293 #define ISpRecoResult_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
7294 #define ISpRecoResult_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
7295 #define ISpRecoResult_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
7296 /*** ISpRecoResult methods ***/
7297 #define ISpRecoResult_GetResultTimes(This,pTimes) (This)->lpVtbl->GetResultTimes(This,pTimes)
7298 #define ISpRecoResult_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned) (This)->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
7299 #define ISpRecoResult_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
7300 #define ISpRecoResult_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
7301 #define ISpRecoResult_Serialize(This,ppCoMemSerializedResult) (This)->lpVtbl->Serialize(This,ppCoMemSerializedResult)
7302 #define ISpRecoResult_ScaleAudio(This,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
7303 #define ISpRecoResult_GetRecoContext(This,ppRecoContext) (This)->lpVtbl->GetRecoContext(This,ppRecoContext)
7304 #else
7305 /*** IUnknown methods ***/
7306 static FORCEINLINE HRESULT ISpRecoResult_QueryInterface(ISpRecoResult* This,REFIID riid,void **ppvObject) {
7307     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7308 }
7309 static FORCEINLINE ULONG ISpRecoResult_AddRef(ISpRecoResult* This) {
7310     return This->lpVtbl->AddRef(This);
7311 }
7312 static FORCEINLINE ULONG ISpRecoResult_Release(ISpRecoResult* This) {
7313     return This->lpVtbl->Release(This);
7314 }
7315 /*** ISpPhrase methods ***/
7316 static FORCEINLINE HRESULT ISpRecoResult_GetPhrase(ISpRecoResult* This,SPPHRASE **ppCoMemPhrase) {
7317     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
7318 }
7319 static FORCEINLINE HRESULT ISpRecoResult_GetSerializedPhrase(ISpRecoResult* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
7320     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
7321 }
7322 static FORCEINLINE HRESULT ISpRecoResult_GetText(ISpRecoResult* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
7323     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
7324 }
7325 static FORCEINLINE HRESULT ISpRecoResult_Discard(ISpRecoResult* This,DWORD dwValueTypes) {
7326     return This->lpVtbl->Discard(This,dwValueTypes);
7327 }
7328 /*** ISpRecoResult methods ***/
7329 static FORCEINLINE HRESULT ISpRecoResult_GetResultTimes(ISpRecoResult* This,SPRECORESULTTIMES *pTimes) {
7330     return This->lpVtbl->GetResultTimes(This,pTimes);
7331 }
7332 static FORCEINLINE HRESULT ISpRecoResult_GetAlternates(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,ULONG ulRequestCount,ISpPhraseAlt **ppPhrases,ULONG *pcPhrasesReturned) {
7333     return This->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned);
7334 }
7335 static FORCEINLINE HRESULT ISpRecoResult_GetAudio(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
7336     return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
7337 }
7338 static FORCEINLINE HRESULT ISpRecoResult_SpeakAudio(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,DWORD dwFlags,ULONG *pulStreamNumber) {
7339     return This->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber);
7340 }
7341 static FORCEINLINE HRESULT ISpRecoResult_Serialize(ISpRecoResult* This,SPSERIALIZEDRESULT **ppCoMemSerializedResult) {
7342     return This->lpVtbl->Serialize(This,ppCoMemSerializedResult);
7343 }
7344 static FORCEINLINE HRESULT ISpRecoResult_ScaleAudio(ISpRecoResult* This,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
7345     return This->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx);
7346 }
7347 static FORCEINLINE HRESULT ISpRecoResult_GetRecoContext(ISpRecoResult* This,ISpRecoContext **ppRecoContext) {
7348     return This->lpVtbl->GetRecoContext(This,ppRecoContext);
7349 }
7350 #endif
7351 #endif
7352 
7353 #endif
7354 
7355 HRESULT STDMETHODCALLTYPE ISpRecoResult_GetResultTimes_Proxy(
7356     ISpRecoResult* This,
7357     SPRECORESULTTIMES *pTimes);
7358 void __RPC_STUB ISpRecoResult_GetResultTimes_Stub(
7359     IRpcStubBuffer* This,
7360     IRpcChannelBuffer* pRpcChannelBuffer,
7361     PRPC_MESSAGE pRpcMessage,
7362     DWORD* pdwStubPhase);
7363 HRESULT STDMETHODCALLTYPE ISpRecoResult_GetAlternates_Proxy(
7364     ISpRecoResult* This,
7365     ULONG ulStartElement,
7366     ULONG cElements,
7367     ULONG ulRequestCount,
7368     ISpPhraseAlt **ppPhrases,
7369     ULONG *pcPhrasesReturned);
7370 void __RPC_STUB ISpRecoResult_GetAlternates_Stub(
7371     IRpcStubBuffer* This,
7372     IRpcChannelBuffer* pRpcChannelBuffer,
7373     PRPC_MESSAGE pRpcMessage,
7374     DWORD* pdwStubPhase);
7375 HRESULT STDMETHODCALLTYPE ISpRecoResult_GetAudio_Proxy(
7376     ISpRecoResult* This,
7377     ULONG ulStartElement,
7378     ULONG cElements,
7379     ISpStreamFormat **ppStream);
7380 void __RPC_STUB ISpRecoResult_GetAudio_Stub(
7381     IRpcStubBuffer* This,
7382     IRpcChannelBuffer* pRpcChannelBuffer,
7383     PRPC_MESSAGE pRpcMessage,
7384     DWORD* pdwStubPhase);
7385 HRESULT STDMETHODCALLTYPE ISpRecoResult_SpeakAudio_Proxy(
7386     ISpRecoResult* This,
7387     ULONG ulStartElement,
7388     ULONG cElements,
7389     DWORD dwFlags,
7390     ULONG *pulStreamNumber);
7391 void __RPC_STUB ISpRecoResult_SpeakAudio_Stub(
7392     IRpcStubBuffer* This,
7393     IRpcChannelBuffer* pRpcChannelBuffer,
7394     PRPC_MESSAGE pRpcMessage,
7395     DWORD* pdwStubPhase);
7396 HRESULT STDMETHODCALLTYPE ISpRecoResult_Serialize_Proxy(
7397     ISpRecoResult* This,
7398     SPSERIALIZEDRESULT **ppCoMemSerializedResult);
7399 void __RPC_STUB ISpRecoResult_Serialize_Stub(
7400     IRpcStubBuffer* This,
7401     IRpcChannelBuffer* pRpcChannelBuffer,
7402     PRPC_MESSAGE pRpcMessage,
7403     DWORD* pdwStubPhase);
7404 HRESULT STDMETHODCALLTYPE ISpRecoResult_ScaleAudio_Proxy(
7405     ISpRecoResult* This,
7406     const GUID *pAudioFormatId,
7407     const WAVEFORMATEX *pWaveFormatEx);
7408 void __RPC_STUB ISpRecoResult_ScaleAudio_Stub(
7409     IRpcStubBuffer* This,
7410     IRpcChannelBuffer* pRpcChannelBuffer,
7411     PRPC_MESSAGE pRpcMessage,
7412     DWORD* pdwStubPhase);
7413 HRESULT STDMETHODCALLTYPE ISpRecoResult_GetRecoContext_Proxy(
7414     ISpRecoResult* This,
7415     ISpRecoContext **ppRecoContext);
7416 void __RPC_STUB ISpRecoResult_GetRecoContext_Stub(
7417     IRpcStubBuffer* This,
7418     IRpcChannelBuffer* pRpcChannelBuffer,
7419     PRPC_MESSAGE pRpcMessage,
7420     DWORD* pdwStubPhase);
7421 
7422 #endif  /* __ISpRecoResult_INTERFACE_DEFINED__ */
7423 
7424 typedef struct tagSPTEXTSELECTIONINFO {
7425     ULONG ulStartActiveOffset;
7426     ULONG cchActiveChars;
7427     ULONG ulStartSelection;
7428     ULONG cchSelection;
7429 } SPTEXTSELECTIONINFO;
7430 typedef enum SPWORDPRONOUNCEABLE {
7431     SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE = 0,
7432     SPWP_UNKNOWN_WORD_PRONOUNCEABLE = 1,
7433     SPWP_KNOWN_WORD_PRONOUNCEABLE = 2
7434 } SPWORDPRONOUNCEABLE;
7435 typedef enum SPGRAMMARSTATE {
7436     SPGS_DISABLED = 0,
7437     SPGS_ENABLED = 1,
7438     SPGS_EXCLUSIVE = 3
7439 } SPGRAMMARSTATE;
7440 typedef enum SPCONTEXTSTATE {
7441     SPCS_DISABLED = 0,
7442     SPCS_ENABLED = 1
7443 } SPCONTEXTSTATE;
7444 typedef enum SPRULESTATE {
7445     SPRS_INACTIVE = 0,
7446     SPRS_ACTIVE = 1,
7447     SPRS_ACTIVE_WITH_AUTO_PAUSE = 3
7448 } SPRULESTATE;
7449 #define SP_STREAMPOS_ASAP (0)
7450 
7451 #define SP_STREAMPOS_REALTIME (-1)
7452 
7453 #define SPRULETRANS_TEXTBUFFER (SPSTATEHANDLE) (-1)
7454 #define SPRULETRANS_WILDCARD (SPSTATEHANDLE) (-2)
7455 #define SPRULETRANS_DICTATION (SPSTATEHANDLE) (-3)
7456 typedef enum SPGRAMMARWORDTYPE {
7457     SPWT_DISPLAY = 0,
7458     SPWT_LEXICAL = 1,
7459     SPWT_PRONUNCIATION = 2
7460 } SPGRAMMARWORDTYPE;
7461 typedef struct tagSPPROPERTYINFO {
7462     LPCWSTR pszName;
7463     ULONG ulId;
7464     LPCWSTR pszValue;
7465     VARIANT vValue;
7466 } SPPROPERTYINFO;
7467 typedef enum SPCFGRULEATTRIBUTES {
7468     SPRAF_TopLevel = 0x1,
7469     SPRAF_Active = 0x2,
7470     SPRAF_Export = 0x4,
7471     SPRAF_Import = 0x8,
7472     SPRAF_Interpreter = 0x10,
7473     SPRAF_Dynamic = 0x20,
7474     SPRAF_AutoPause = 0x10000
7475 } SPCFGRULEATTRIBUTES;
7476 /*****************************************************************************
7477  * ISpGrammarBuilder interface
7478  */
7479 #ifndef __ISpGrammarBuilder_INTERFACE_DEFINED__
7480 #define __ISpGrammarBuilder_INTERFACE_DEFINED__
7481 
7482 DEFINE_GUID(IID_ISpGrammarBuilder, 0x8137828f, 0x591a, 0x4a42, 0xbe,0x58, 0x49,0xea,0x7e,0xba,0xac,0x68);
7483 #if defined(__cplusplus) && !defined(CINTERFACE)
7484 MIDL_INTERFACE("8137828f-591a-4a42-be58-49ea7ebaac68")
7485 ISpGrammarBuilder : public IUnknown
7486 {
7487     virtual HRESULT STDMETHODCALLTYPE ResetGrammar(
7488         WORD NewLanguage) = 0;
7489 
7490     virtual HRESULT STDMETHODCALLTYPE GetRule(
7491         LPCWSTR pszRuleName,
7492         DWORD dwRuleId,
7493         DWORD dwAttributes,
7494         WINBOOL fCreateIfNotExist,
7495         SPSTATEHANDLE *phInitialState) = 0;
7496 
7497     virtual HRESULT STDMETHODCALLTYPE ClearRule(
7498         SPSTATEHANDLE hState) = 0;
7499 
7500     virtual HRESULT STDMETHODCALLTYPE CreateNewState(
7501         SPSTATEHANDLE hState,
7502         SPSTATEHANDLE *phState) = 0;
7503 
7504     virtual HRESULT STDMETHODCALLTYPE AddWordTransition(
7505         SPSTATEHANDLE hFromState,
7506         SPSTATEHANDLE hToState,
7507         LPCWSTR psz,
7508         LPCWSTR pszSeparators,
7509         SPGRAMMARWORDTYPE eWordType,
7510         float Weight,
7511         const SPPROPERTYINFO *pPropInfo) = 0;
7512 
7513     virtual HRESULT STDMETHODCALLTYPE AddRuleTransition(
7514         SPSTATEHANDLE hFromState,
7515         SPSTATEHANDLE hToState,
7516         SPSTATEHANDLE hRule,
7517         float Weight,
7518         const SPPROPERTYINFO *pPropInfo) = 0;
7519 
7520     virtual HRESULT STDMETHODCALLTYPE AddResource(
7521         SPSTATEHANDLE hRuleState,
7522         LPCWSTR pszResourceName,
7523         LPCWSTR pszResourceValue) = 0;
7524 
7525     virtual HRESULT STDMETHODCALLTYPE Commit(
7526         DWORD dwReserved) = 0;
7527 
7528 };
7529 #ifdef __CRT_UUID_DECL
7530 __CRT_UUID_DECL(ISpGrammarBuilder, 0x8137828f, 0x591a, 0x4a42, 0xbe,0x58, 0x49,0xea,0x7e,0xba,0xac,0x68)
7531 #endif
7532 #else
7533 typedef struct ISpGrammarBuilderVtbl {
7534     BEGIN_INTERFACE
7535 
7536     /*** IUnknown methods ***/
7537     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7538         ISpGrammarBuilder* This,
7539         REFIID riid,
7540         void **ppvObject);
7541 
7542     ULONG (STDMETHODCALLTYPE *AddRef)(
7543         ISpGrammarBuilder* This);
7544 
7545     ULONG (STDMETHODCALLTYPE *Release)(
7546         ISpGrammarBuilder* This);
7547 
7548     /*** ISpGrammarBuilder methods ***/
7549     HRESULT (STDMETHODCALLTYPE *ResetGrammar)(
7550         ISpGrammarBuilder* This,
7551         WORD NewLanguage);
7552 
7553     HRESULT (STDMETHODCALLTYPE *GetRule)(
7554         ISpGrammarBuilder* This,
7555         LPCWSTR pszRuleName,
7556         DWORD dwRuleId,
7557         DWORD dwAttributes,
7558         WINBOOL fCreateIfNotExist,
7559         SPSTATEHANDLE *phInitialState);
7560 
7561     HRESULT (STDMETHODCALLTYPE *ClearRule)(
7562         ISpGrammarBuilder* This,
7563         SPSTATEHANDLE hState);
7564 
7565     HRESULT (STDMETHODCALLTYPE *CreateNewState)(
7566         ISpGrammarBuilder* This,
7567         SPSTATEHANDLE hState,
7568         SPSTATEHANDLE *phState);
7569 
7570     HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
7571         ISpGrammarBuilder* This,
7572         SPSTATEHANDLE hFromState,
7573         SPSTATEHANDLE hToState,
7574         LPCWSTR psz,
7575         LPCWSTR pszSeparators,
7576         SPGRAMMARWORDTYPE eWordType,
7577         float Weight,
7578         const SPPROPERTYINFO *pPropInfo);
7579 
7580     HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
7581         ISpGrammarBuilder* This,
7582         SPSTATEHANDLE hFromState,
7583         SPSTATEHANDLE hToState,
7584         SPSTATEHANDLE hRule,
7585         float Weight,
7586         const SPPROPERTYINFO *pPropInfo);
7587 
7588     HRESULT (STDMETHODCALLTYPE *AddResource)(
7589         ISpGrammarBuilder* This,
7590         SPSTATEHANDLE hRuleState,
7591         LPCWSTR pszResourceName,
7592         LPCWSTR pszResourceValue);
7593 
7594     HRESULT (STDMETHODCALLTYPE *Commit)(
7595         ISpGrammarBuilder* This,
7596         DWORD dwReserved);
7597 
7598     END_INTERFACE
7599 } ISpGrammarBuilderVtbl;
7600 interface ISpGrammarBuilder {
7601     CONST_VTBL ISpGrammarBuilderVtbl* lpVtbl;
7602 };
7603 
7604 #ifdef COBJMACROS
7605 #ifndef WIDL_C_INLINE_WRAPPERS
7606 /*** IUnknown methods ***/
7607 #define ISpGrammarBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7608 #define ISpGrammarBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
7609 #define ISpGrammarBuilder_Release(This) (This)->lpVtbl->Release(This)
7610 /*** ISpGrammarBuilder methods ***/
7611 #define ISpGrammarBuilder_ResetGrammar(This,NewLanguage) (This)->lpVtbl->ResetGrammar(This,NewLanguage)
7612 #define ISpGrammarBuilder_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState) (This)->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
7613 #define ISpGrammarBuilder_ClearRule(This,hState) (This)->lpVtbl->ClearRule(This,hState)
7614 #define ISpGrammarBuilder_CreateNewState(This,hState,phState) (This)->lpVtbl->CreateNewState(This,hState,phState)
7615 #define ISpGrammarBuilder_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo) (This)->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
7616 #define ISpGrammarBuilder_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo) (This)->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
7617 #define ISpGrammarBuilder_AddResource(This,hRuleState,pszResourceName,pszResourceValue) (This)->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue)
7618 #define ISpGrammarBuilder_Commit(This,dwReserved) (This)->lpVtbl->Commit(This,dwReserved)
7619 #else
7620 /*** IUnknown methods ***/
7621 static FORCEINLINE HRESULT ISpGrammarBuilder_QueryInterface(ISpGrammarBuilder* This,REFIID riid,void **ppvObject) {
7622     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7623 }
7624 static FORCEINLINE ULONG ISpGrammarBuilder_AddRef(ISpGrammarBuilder* This) {
7625     return This->lpVtbl->AddRef(This);
7626 }
7627 static FORCEINLINE ULONG ISpGrammarBuilder_Release(ISpGrammarBuilder* This) {
7628     return This->lpVtbl->Release(This);
7629 }
7630 /*** ISpGrammarBuilder methods ***/
7631 static FORCEINLINE HRESULT ISpGrammarBuilder_ResetGrammar(ISpGrammarBuilder* This,WORD NewLanguage) {
7632     return This->lpVtbl->ResetGrammar(This,NewLanguage);
7633 }
7634 static FORCEINLINE HRESULT ISpGrammarBuilder_GetRule(ISpGrammarBuilder* This,LPCWSTR pszRuleName,DWORD dwRuleId,DWORD dwAttributes,WINBOOL fCreateIfNotExist,SPSTATEHANDLE *phInitialState) {
7635     return This->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState);
7636 }
7637 static FORCEINLINE HRESULT ISpGrammarBuilder_ClearRule(ISpGrammarBuilder* This,SPSTATEHANDLE hState) {
7638     return This->lpVtbl->ClearRule(This,hState);
7639 }
7640 static FORCEINLINE HRESULT ISpGrammarBuilder_CreateNewState(ISpGrammarBuilder* This,SPSTATEHANDLE hState,SPSTATEHANDLE *phState) {
7641     return This->lpVtbl->CreateNewState(This,hState,phState);
7642 }
7643 static FORCEINLINE HRESULT ISpGrammarBuilder_AddWordTransition(ISpGrammarBuilder* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,LPCWSTR pszSeparators,SPGRAMMARWORDTYPE eWordType,float Weight,const SPPROPERTYINFO *pPropInfo) {
7644     return This->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo);
7645 }
7646 static FORCEINLINE HRESULT ISpGrammarBuilder_AddRuleTransition(ISpGrammarBuilder* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,SPSTATEHANDLE hRule,float Weight,const SPPROPERTYINFO *pPropInfo) {
7647     return This->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo);
7648 }
7649 static FORCEINLINE HRESULT ISpGrammarBuilder_AddResource(ISpGrammarBuilder* This,SPSTATEHANDLE hRuleState,LPCWSTR pszResourceName,LPCWSTR pszResourceValue) {
7650     return This->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue);
7651 }
7652 static FORCEINLINE HRESULT ISpGrammarBuilder_Commit(ISpGrammarBuilder* This,DWORD dwReserved) {
7653     return This->lpVtbl->Commit(This,dwReserved);
7654 }
7655 #endif
7656 #endif
7657 
7658 #endif
7659 
7660 HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_ResetGrammar_Proxy(
7661     ISpGrammarBuilder* This,
7662     WORD NewLanguage);
7663 void __RPC_STUB ISpGrammarBuilder_ResetGrammar_Stub(
7664     IRpcStubBuffer* This,
7665     IRpcChannelBuffer* pRpcChannelBuffer,
7666     PRPC_MESSAGE pRpcMessage,
7667     DWORD* pdwStubPhase);
7668 HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_GetRule_Proxy(
7669     ISpGrammarBuilder* This,
7670     LPCWSTR pszRuleName,
7671     DWORD dwRuleId,
7672     DWORD dwAttributes,
7673     WINBOOL fCreateIfNotExist,
7674     SPSTATEHANDLE *phInitialState);
7675 void __RPC_STUB ISpGrammarBuilder_GetRule_Stub(
7676     IRpcStubBuffer* This,
7677     IRpcChannelBuffer* pRpcChannelBuffer,
7678     PRPC_MESSAGE pRpcMessage,
7679     DWORD* pdwStubPhase);
7680 HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_ClearRule_Proxy(
7681     ISpGrammarBuilder* This,
7682     SPSTATEHANDLE hState);
7683 void __RPC_STUB ISpGrammarBuilder_ClearRule_Stub(
7684     IRpcStubBuffer* This,
7685     IRpcChannelBuffer* pRpcChannelBuffer,
7686     PRPC_MESSAGE pRpcMessage,
7687     DWORD* pdwStubPhase);
7688 HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_CreateNewState_Proxy(
7689     ISpGrammarBuilder* This,
7690     SPSTATEHANDLE hState,
7691     SPSTATEHANDLE *phState);
7692 void __RPC_STUB ISpGrammarBuilder_CreateNewState_Stub(
7693     IRpcStubBuffer* This,
7694     IRpcChannelBuffer* pRpcChannelBuffer,
7695     PRPC_MESSAGE pRpcMessage,
7696     DWORD* pdwStubPhase);
7697 HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_AddWordTransition_Proxy(
7698     ISpGrammarBuilder* This,
7699     SPSTATEHANDLE hFromState,
7700     SPSTATEHANDLE hToState,
7701     LPCWSTR psz,
7702     LPCWSTR pszSeparators,
7703     SPGRAMMARWORDTYPE eWordType,
7704     float Weight,
7705     const SPPROPERTYINFO *pPropInfo);
7706 void __RPC_STUB ISpGrammarBuilder_AddWordTransition_Stub(
7707     IRpcStubBuffer* This,
7708     IRpcChannelBuffer* pRpcChannelBuffer,
7709     PRPC_MESSAGE pRpcMessage,
7710     DWORD* pdwStubPhase);
7711 HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_AddRuleTransition_Proxy(
7712     ISpGrammarBuilder* This,
7713     SPSTATEHANDLE hFromState,
7714     SPSTATEHANDLE hToState,
7715     SPSTATEHANDLE hRule,
7716     float Weight,
7717     const SPPROPERTYINFO *pPropInfo);
7718 void __RPC_STUB ISpGrammarBuilder_AddRuleTransition_Stub(
7719     IRpcStubBuffer* This,
7720     IRpcChannelBuffer* pRpcChannelBuffer,
7721     PRPC_MESSAGE pRpcMessage,
7722     DWORD* pdwStubPhase);
7723 HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_AddResource_Proxy(
7724     ISpGrammarBuilder* This,
7725     SPSTATEHANDLE hRuleState,
7726     LPCWSTR pszResourceName,
7727     LPCWSTR pszResourceValue);
7728 void __RPC_STUB ISpGrammarBuilder_AddResource_Stub(
7729     IRpcStubBuffer* This,
7730     IRpcChannelBuffer* pRpcChannelBuffer,
7731     PRPC_MESSAGE pRpcMessage,
7732     DWORD* pdwStubPhase);
7733 HRESULT STDMETHODCALLTYPE ISpGrammarBuilder_Commit_Proxy(
7734     ISpGrammarBuilder* This,
7735     DWORD dwReserved);
7736 void __RPC_STUB ISpGrammarBuilder_Commit_Stub(
7737     IRpcStubBuffer* This,
7738     IRpcChannelBuffer* pRpcChannelBuffer,
7739     PRPC_MESSAGE pRpcMessage,
7740     DWORD* pdwStubPhase);
7741 
7742 #endif  /* __ISpGrammarBuilder_INTERFACE_DEFINED__ */
7743 
7744 typedef enum SPLOADOPTIONS {
7745     SPLO_STATIC = 0,
7746     SPLO_DYNAMIC = 1
7747 } SPLOADOPTIONS;
7748 /*****************************************************************************
7749  * ISpRecoGrammar interface
7750  */
7751 #ifndef __ISpRecoGrammar_INTERFACE_DEFINED__
7752 #define __ISpRecoGrammar_INTERFACE_DEFINED__
7753 
7754 DEFINE_GUID(IID_ISpRecoGrammar, 0x2177db29, 0x7f45, 0x47d0, 0x85,0x54, 0x06,0x7e,0x91,0xc8,0x05,0x02);
7755 #if defined(__cplusplus) && !defined(CINTERFACE)
7756 MIDL_INTERFACE("2177db29-7f45-47d0-8554-067e91c80502")
7757 ISpRecoGrammar : public ISpGrammarBuilder
7758 {
7759     virtual HRESULT STDMETHODCALLTYPE GetGrammarId(
7760         ULONGLONG *pullGrammarId) = 0;
7761 
7762     virtual HRESULT STDMETHODCALLTYPE GetRecoContext(
7763         ISpRecoContext **ppRecoCtxt) = 0;
7764 
7765     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromFile(
7766         LPCWSTR pszFileName,
7767         SPLOADOPTIONS Options) = 0;
7768 
7769     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromObject(
7770         REFCLSID rcid,
7771         LPCWSTR pszGrammarName,
7772         SPLOADOPTIONS Options) = 0;
7773 
7774     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromResource(
7775         HMODULE hModule,
7776         LPCWSTR pszResourceName,
7777         LPCWSTR pszResourceType,
7778         WORD wLanguage,
7779         SPLOADOPTIONS Options) = 0;
7780 
7781     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromMemory(
7782         const SPBINARYGRAMMAR *pGrammar,
7783         SPLOADOPTIONS Options) = 0;
7784 
7785     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromProprietaryGrammar(
7786         REFGUID rguidParam,
7787         LPCWSTR pszStringParam,
7788         const void *pvDataPrarm,
7789         ULONG cbDataSize,
7790         SPLOADOPTIONS Options) = 0;
7791 
7792     virtual HRESULT STDMETHODCALLTYPE SetRuleState(
7793         LPCWSTR pszName,
7794         void *pReserved,
7795         SPRULESTATE NewState) = 0;
7796 
7797     virtual HRESULT STDMETHODCALLTYPE SetRuleIdState(
7798         ULONG ulRuleId,
7799         SPRULESTATE NewState) = 0;
7800 
7801     virtual HRESULT STDMETHODCALLTYPE LoadDictation(
7802         LPCWSTR pszTopicName,
7803         SPLOADOPTIONS Options) = 0;
7804 
7805     virtual HRESULT STDMETHODCALLTYPE UnloadDictation(
7806         ) = 0;
7807 
7808     virtual HRESULT STDMETHODCALLTYPE SetDictationState(
7809         SPRULESTATE NewState) = 0;
7810 
7811     virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData(
7812         const WCHAR *pText,
7813         ULONG cchText,
7814         const SPTEXTSELECTIONINFO *pInfo) = 0;
7815 
7816     virtual HRESULT STDMETHODCALLTYPE SetTextSelection(
7817         const SPTEXTSELECTIONINFO *pInfo) = 0;
7818 
7819     virtual HRESULT STDMETHODCALLTYPE IsPronounceable(
7820         LPCWSTR pszWord,
7821         SPWORDPRONOUNCEABLE *pWordPronounceable) = 0;
7822 
7823     virtual HRESULT STDMETHODCALLTYPE SetGrammarState(
7824         SPGRAMMARSTATE eGrammarState) = 0;
7825 
7826     virtual HRESULT STDMETHODCALLTYPE SaveCmd(
7827         IStream *pStream,
7828         LPWSTR *ppszCoMemErrorText) = 0;
7829 
7830     virtual HRESULT STDMETHODCALLTYPE GetGrammarState(
7831         SPGRAMMARSTATE *peGrammarState) = 0;
7832 
7833 };
7834 #ifdef __CRT_UUID_DECL
7835 __CRT_UUID_DECL(ISpRecoGrammar, 0x2177db29, 0x7f45, 0x47d0, 0x85,0x54, 0x06,0x7e,0x91,0xc8,0x05,0x02)
7836 #endif
7837 #else
7838 typedef struct ISpRecoGrammarVtbl {
7839     BEGIN_INTERFACE
7840 
7841     /*** IUnknown methods ***/
7842     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7843         ISpRecoGrammar* This,
7844         REFIID riid,
7845         void **ppvObject);
7846 
7847     ULONG (STDMETHODCALLTYPE *AddRef)(
7848         ISpRecoGrammar* This);
7849 
7850     ULONG (STDMETHODCALLTYPE *Release)(
7851         ISpRecoGrammar* This);
7852 
7853     /*** ISpGrammarBuilder methods ***/
7854     HRESULT (STDMETHODCALLTYPE *ResetGrammar)(
7855         ISpRecoGrammar* This,
7856         WORD NewLanguage);
7857 
7858     HRESULT (STDMETHODCALLTYPE *GetRule)(
7859         ISpRecoGrammar* This,
7860         LPCWSTR pszRuleName,
7861         DWORD dwRuleId,
7862         DWORD dwAttributes,
7863         WINBOOL fCreateIfNotExist,
7864         SPSTATEHANDLE *phInitialState);
7865 
7866     HRESULT (STDMETHODCALLTYPE *ClearRule)(
7867         ISpRecoGrammar* This,
7868         SPSTATEHANDLE hState);
7869 
7870     HRESULT (STDMETHODCALLTYPE *CreateNewState)(
7871         ISpRecoGrammar* This,
7872         SPSTATEHANDLE hState,
7873         SPSTATEHANDLE *phState);
7874 
7875     HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
7876         ISpRecoGrammar* This,
7877         SPSTATEHANDLE hFromState,
7878         SPSTATEHANDLE hToState,
7879         LPCWSTR psz,
7880         LPCWSTR pszSeparators,
7881         SPGRAMMARWORDTYPE eWordType,
7882         float Weight,
7883         const SPPROPERTYINFO *pPropInfo);
7884 
7885     HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
7886         ISpRecoGrammar* This,
7887         SPSTATEHANDLE hFromState,
7888         SPSTATEHANDLE hToState,
7889         SPSTATEHANDLE hRule,
7890         float Weight,
7891         const SPPROPERTYINFO *pPropInfo);
7892 
7893     HRESULT (STDMETHODCALLTYPE *AddResource)(
7894         ISpRecoGrammar* This,
7895         SPSTATEHANDLE hRuleState,
7896         LPCWSTR pszResourceName,
7897         LPCWSTR pszResourceValue);
7898 
7899     HRESULT (STDMETHODCALLTYPE *Commit)(
7900         ISpRecoGrammar* This,
7901         DWORD dwReserved);
7902 
7903     /*** ISpRecoGrammar methods ***/
7904     HRESULT (STDMETHODCALLTYPE *GetGrammarId)(
7905         ISpRecoGrammar* This,
7906         ULONGLONG *pullGrammarId);
7907 
7908     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
7909         ISpRecoGrammar* This,
7910         ISpRecoContext **ppRecoCtxt);
7911 
7912     HRESULT (STDMETHODCALLTYPE *LoadCmdFromFile)(
7913         ISpRecoGrammar* This,
7914         LPCWSTR pszFileName,
7915         SPLOADOPTIONS Options);
7916 
7917     HRESULT (STDMETHODCALLTYPE *LoadCmdFromObject)(
7918         ISpRecoGrammar* This,
7919         REFCLSID rcid,
7920         LPCWSTR pszGrammarName,
7921         SPLOADOPTIONS Options);
7922 
7923     HRESULT (STDMETHODCALLTYPE *LoadCmdFromResource)(
7924         ISpRecoGrammar* This,
7925         HMODULE hModule,
7926         LPCWSTR pszResourceName,
7927         LPCWSTR pszResourceType,
7928         WORD wLanguage,
7929         SPLOADOPTIONS Options);
7930 
7931     HRESULT (STDMETHODCALLTYPE *LoadCmdFromMemory)(
7932         ISpRecoGrammar* This,
7933         const SPBINARYGRAMMAR *pGrammar,
7934         SPLOADOPTIONS Options);
7935 
7936     HRESULT (STDMETHODCALLTYPE *LoadCmdFromProprietaryGrammar)(
7937         ISpRecoGrammar* This,
7938         REFGUID rguidParam,
7939         LPCWSTR pszStringParam,
7940         const void *pvDataPrarm,
7941         ULONG cbDataSize,
7942         SPLOADOPTIONS Options);
7943 
7944     HRESULT (STDMETHODCALLTYPE *SetRuleState)(
7945         ISpRecoGrammar* This,
7946         LPCWSTR pszName,
7947         void *pReserved,
7948         SPRULESTATE NewState);
7949 
7950     HRESULT (STDMETHODCALLTYPE *SetRuleIdState)(
7951         ISpRecoGrammar* This,
7952         ULONG ulRuleId,
7953         SPRULESTATE NewState);
7954 
7955     HRESULT (STDMETHODCALLTYPE *LoadDictation)(
7956         ISpRecoGrammar* This,
7957         LPCWSTR pszTopicName,
7958         SPLOADOPTIONS Options);
7959 
7960     HRESULT (STDMETHODCALLTYPE *UnloadDictation)(
7961         ISpRecoGrammar* This);
7962 
7963     HRESULT (STDMETHODCALLTYPE *SetDictationState)(
7964         ISpRecoGrammar* This,
7965         SPRULESTATE NewState);
7966 
7967     HRESULT (STDMETHODCALLTYPE *SetWordSequenceData)(
7968         ISpRecoGrammar* This,
7969         const WCHAR *pText,
7970         ULONG cchText,
7971         const SPTEXTSELECTIONINFO *pInfo);
7972 
7973     HRESULT (STDMETHODCALLTYPE *SetTextSelection)(
7974         ISpRecoGrammar* This,
7975         const SPTEXTSELECTIONINFO *pInfo);
7976 
7977     HRESULT (STDMETHODCALLTYPE *IsPronounceable)(
7978         ISpRecoGrammar* This,
7979         LPCWSTR pszWord,
7980         SPWORDPRONOUNCEABLE *pWordPronounceable);
7981 
7982     HRESULT (STDMETHODCALLTYPE *SetGrammarState)(
7983         ISpRecoGrammar* This,
7984         SPGRAMMARSTATE eGrammarState);
7985 
7986     HRESULT (STDMETHODCALLTYPE *SaveCmd)(
7987         ISpRecoGrammar* This,
7988         IStream *pStream,
7989         LPWSTR *ppszCoMemErrorText);
7990 
7991     HRESULT (STDMETHODCALLTYPE *GetGrammarState)(
7992         ISpRecoGrammar* This,
7993         SPGRAMMARSTATE *peGrammarState);
7994 
7995     END_INTERFACE
7996 } ISpRecoGrammarVtbl;
7997 interface ISpRecoGrammar {
7998     CONST_VTBL ISpRecoGrammarVtbl* lpVtbl;
7999 };
8000 
8001 #ifdef COBJMACROS
8002 #ifndef WIDL_C_INLINE_WRAPPERS
8003 /*** IUnknown methods ***/
8004 #define ISpRecoGrammar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8005 #define ISpRecoGrammar_AddRef(This) (This)->lpVtbl->AddRef(This)
8006 #define ISpRecoGrammar_Release(This) (This)->lpVtbl->Release(This)
8007 /*** ISpGrammarBuilder methods ***/
8008 #define ISpRecoGrammar_ResetGrammar(This,NewLanguage) (This)->lpVtbl->ResetGrammar(This,NewLanguage)
8009 #define ISpRecoGrammar_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState) (This)->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
8010 #define ISpRecoGrammar_ClearRule(This,hState) (This)->lpVtbl->ClearRule(This,hState)
8011 #define ISpRecoGrammar_CreateNewState(This,hState,phState) (This)->lpVtbl->CreateNewState(This,hState,phState)
8012 #define ISpRecoGrammar_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo) (This)->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
8013 #define ISpRecoGrammar_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo) (This)->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
8014 #define ISpRecoGrammar_AddResource(This,hRuleState,pszResourceName,pszResourceValue) (This)->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue)
8015 #define ISpRecoGrammar_Commit(This,dwReserved) (This)->lpVtbl->Commit(This,dwReserved)
8016 /*** ISpRecoGrammar methods ***/
8017 #define ISpRecoGrammar_GetGrammarId(This,pullGrammarId) (This)->lpVtbl->GetGrammarId(This,pullGrammarId)
8018 #define ISpRecoGrammar_GetRecoContext(This,ppRecoCtxt) (This)->lpVtbl->GetRecoContext(This,ppRecoCtxt)
8019 #define ISpRecoGrammar_LoadCmdFromFile(This,pszFileName,Options) (This)->lpVtbl->LoadCmdFromFile(This,pszFileName,Options)
8020 #define ISpRecoGrammar_LoadCmdFromObject(This,rcid,pszGrammarName,Options) (This)->lpVtbl->LoadCmdFromObject(This,rcid,pszGrammarName,Options)
8021 #define ISpRecoGrammar_LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options) (This)->lpVtbl->LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options)
8022 #define ISpRecoGrammar_LoadCmdFromMemory(This,pGrammar,Options) (This)->lpVtbl->LoadCmdFromMemory(This,pGrammar,Options)
8023 #define ISpRecoGrammar_LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options) (This)->lpVtbl->LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options)
8024 #define ISpRecoGrammar_SetRuleState(This,pszName,pReserved,NewState) (This)->lpVtbl->SetRuleState(This,pszName,pReserved,NewState)
8025 #define ISpRecoGrammar_SetRuleIdState(This,ulRuleId,NewState) (This)->lpVtbl->SetRuleIdState(This,ulRuleId,NewState)
8026 #define ISpRecoGrammar_LoadDictation(This,pszTopicName,Options) (This)->lpVtbl->LoadDictation(This,pszTopicName,Options)
8027 #define ISpRecoGrammar_UnloadDictation(This) (This)->lpVtbl->UnloadDictation(This)
8028 #define ISpRecoGrammar_SetDictationState(This,NewState) (This)->lpVtbl->SetDictationState(This,NewState)
8029 #define ISpRecoGrammar_SetWordSequenceData(This,pText,cchText,pInfo) (This)->lpVtbl->SetWordSequenceData(This,pText,cchText,pInfo)
8030 #define ISpRecoGrammar_SetTextSelection(This,pInfo) (This)->lpVtbl->SetTextSelection(This,pInfo)
8031 #define ISpRecoGrammar_IsPronounceable(This,pszWord,pWordPronounceable) (This)->lpVtbl->IsPronounceable(This,pszWord,pWordPronounceable)
8032 #define ISpRecoGrammar_SetGrammarState(This,eGrammarState) (This)->lpVtbl->SetGrammarState(This,eGrammarState)
8033 #define ISpRecoGrammar_SaveCmd(This,pStream,ppszCoMemErrorText) (This)->lpVtbl->SaveCmd(This,pStream,ppszCoMemErrorText)
8034 #define ISpRecoGrammar_GetGrammarState(This,peGrammarState) (This)->lpVtbl->GetGrammarState(This,peGrammarState)
8035 #else
8036 /*** IUnknown methods ***/
8037 static FORCEINLINE HRESULT ISpRecoGrammar_QueryInterface(ISpRecoGrammar* This,REFIID riid,void **ppvObject) {
8038     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8039 }
8040 static FORCEINLINE ULONG ISpRecoGrammar_AddRef(ISpRecoGrammar* This) {
8041     return This->lpVtbl->AddRef(This);
8042 }
8043 static FORCEINLINE ULONG ISpRecoGrammar_Release(ISpRecoGrammar* This) {
8044     return This->lpVtbl->Release(This);
8045 }
8046 /*** ISpGrammarBuilder methods ***/
8047 static FORCEINLINE HRESULT ISpRecoGrammar_ResetGrammar(ISpRecoGrammar* This,WORD NewLanguage) {
8048     return This->lpVtbl->ResetGrammar(This,NewLanguage);
8049 }
8050 static FORCEINLINE HRESULT ISpRecoGrammar_GetRule(ISpRecoGrammar* This,LPCWSTR pszRuleName,DWORD dwRuleId,DWORD dwAttributes,WINBOOL fCreateIfNotExist,SPSTATEHANDLE *phInitialState) {
8051     return This->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState);
8052 }
8053 static FORCEINLINE HRESULT ISpRecoGrammar_ClearRule(ISpRecoGrammar* This,SPSTATEHANDLE hState) {
8054     return This->lpVtbl->ClearRule(This,hState);
8055 }
8056 static FORCEINLINE HRESULT ISpRecoGrammar_CreateNewState(ISpRecoGrammar* This,SPSTATEHANDLE hState,SPSTATEHANDLE *phState) {
8057     return This->lpVtbl->CreateNewState(This,hState,phState);
8058 }
8059 static FORCEINLINE HRESULT ISpRecoGrammar_AddWordTransition(ISpRecoGrammar* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,LPCWSTR pszSeparators,SPGRAMMARWORDTYPE eWordType,float Weight,const SPPROPERTYINFO *pPropInfo) {
8060     return This->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo);
8061 }
8062 static FORCEINLINE HRESULT ISpRecoGrammar_AddRuleTransition(ISpRecoGrammar* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,SPSTATEHANDLE hRule,float Weight,const SPPROPERTYINFO *pPropInfo) {
8063     return This->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo);
8064 }
8065 static FORCEINLINE HRESULT ISpRecoGrammar_AddResource(ISpRecoGrammar* This,SPSTATEHANDLE hRuleState,LPCWSTR pszResourceName,LPCWSTR pszResourceValue) {
8066     return This->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue);
8067 }
8068 static FORCEINLINE HRESULT ISpRecoGrammar_Commit(ISpRecoGrammar* This,DWORD dwReserved) {
8069     return This->lpVtbl->Commit(This,dwReserved);
8070 }
8071 /*** ISpRecoGrammar methods ***/
8072 static FORCEINLINE HRESULT ISpRecoGrammar_GetGrammarId(ISpRecoGrammar* This,ULONGLONG *pullGrammarId) {
8073     return This->lpVtbl->GetGrammarId(This,pullGrammarId);
8074 }
8075 static FORCEINLINE HRESULT ISpRecoGrammar_GetRecoContext(ISpRecoGrammar* This,ISpRecoContext **ppRecoCtxt) {
8076     return This->lpVtbl->GetRecoContext(This,ppRecoCtxt);
8077 }
8078 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromFile(ISpRecoGrammar* This,LPCWSTR pszFileName,SPLOADOPTIONS Options) {
8079     return This->lpVtbl->LoadCmdFromFile(This,pszFileName,Options);
8080 }
8081 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromObject(ISpRecoGrammar* This,REFCLSID rcid,LPCWSTR pszGrammarName,SPLOADOPTIONS Options) {
8082     return This->lpVtbl->LoadCmdFromObject(This,rcid,pszGrammarName,Options);
8083 }
8084 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromResource(ISpRecoGrammar* This,HMODULE hModule,LPCWSTR pszResourceName,LPCWSTR pszResourceType,WORD wLanguage,SPLOADOPTIONS Options) {
8085     return This->lpVtbl->LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options);
8086 }
8087 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromMemory(ISpRecoGrammar* This,const SPBINARYGRAMMAR *pGrammar,SPLOADOPTIONS Options) {
8088     return This->lpVtbl->LoadCmdFromMemory(This,pGrammar,Options);
8089 }
8090 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromProprietaryGrammar(ISpRecoGrammar* This,REFGUID rguidParam,LPCWSTR pszStringParam,const void *pvDataPrarm,ULONG cbDataSize,SPLOADOPTIONS Options) {
8091     return This->lpVtbl->LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options);
8092 }
8093 static FORCEINLINE HRESULT ISpRecoGrammar_SetRuleState(ISpRecoGrammar* This,LPCWSTR pszName,void *pReserved,SPRULESTATE NewState) {
8094     return This->lpVtbl->SetRuleState(This,pszName,pReserved,NewState);
8095 }
8096 static FORCEINLINE HRESULT ISpRecoGrammar_SetRuleIdState(ISpRecoGrammar* This,ULONG ulRuleId,SPRULESTATE NewState) {
8097     return This->lpVtbl->SetRuleIdState(This,ulRuleId,NewState);
8098 }
8099 static FORCEINLINE HRESULT ISpRecoGrammar_LoadDictation(ISpRecoGrammar* This,LPCWSTR pszTopicName,SPLOADOPTIONS Options) {
8100     return This->lpVtbl->LoadDictation(This,pszTopicName,Options);
8101 }
8102 static FORCEINLINE HRESULT ISpRecoGrammar_UnloadDictation(ISpRecoGrammar* This) {
8103     return This->lpVtbl->UnloadDictation(This);
8104 }
8105 static FORCEINLINE HRESULT ISpRecoGrammar_SetDictationState(ISpRecoGrammar* This,SPRULESTATE NewState) {
8106     return This->lpVtbl->SetDictationState(This,NewState);
8107 }
8108 static FORCEINLINE HRESULT ISpRecoGrammar_SetWordSequenceData(ISpRecoGrammar* This,const WCHAR *pText,ULONG cchText,const SPTEXTSELECTIONINFO *pInfo) {
8109     return This->lpVtbl->SetWordSequenceData(This,pText,cchText,pInfo);
8110 }
8111 static FORCEINLINE HRESULT ISpRecoGrammar_SetTextSelection(ISpRecoGrammar* This,const SPTEXTSELECTIONINFO *pInfo) {
8112     return This->lpVtbl->SetTextSelection(This,pInfo);
8113 }
8114 static FORCEINLINE HRESULT ISpRecoGrammar_IsPronounceable(ISpRecoGrammar* This,LPCWSTR pszWord,SPWORDPRONOUNCEABLE *pWordPronounceable) {
8115     return This->lpVtbl->IsPronounceable(This,pszWord,pWordPronounceable);
8116 }
8117 static FORCEINLINE HRESULT ISpRecoGrammar_SetGrammarState(ISpRecoGrammar* This,SPGRAMMARSTATE eGrammarState) {
8118     return This->lpVtbl->SetGrammarState(This,eGrammarState);
8119 }
8120 static FORCEINLINE HRESULT ISpRecoGrammar_SaveCmd(ISpRecoGrammar* This,IStream *pStream,LPWSTR *ppszCoMemErrorText) {
8121     return This->lpVtbl->SaveCmd(This,pStream,ppszCoMemErrorText);
8122 }
8123 static FORCEINLINE HRESULT ISpRecoGrammar_GetGrammarState(ISpRecoGrammar* This,SPGRAMMARSTATE *peGrammarState) {
8124     return This->lpVtbl->GetGrammarState(This,peGrammarState);
8125 }
8126 #endif
8127 #endif
8128 
8129 #endif
8130 
8131 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_GetGrammarId_Proxy(
8132     ISpRecoGrammar* This,
8133     ULONGLONG *pullGrammarId);
8134 void __RPC_STUB ISpRecoGrammar_GetGrammarId_Stub(
8135     IRpcStubBuffer* This,
8136     IRpcChannelBuffer* pRpcChannelBuffer,
8137     PRPC_MESSAGE pRpcMessage,
8138     DWORD* pdwStubPhase);
8139 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_GetRecoContext_Proxy(
8140     ISpRecoGrammar* This,
8141     ISpRecoContext **ppRecoCtxt);
8142 void __RPC_STUB ISpRecoGrammar_GetRecoContext_Stub(
8143     IRpcStubBuffer* This,
8144     IRpcChannelBuffer* pRpcChannelBuffer,
8145     PRPC_MESSAGE pRpcMessage,
8146     DWORD* pdwStubPhase);
8147 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadCmdFromFile_Proxy(
8148     ISpRecoGrammar* This,
8149     LPCWSTR pszFileName,
8150     SPLOADOPTIONS Options);
8151 void __RPC_STUB ISpRecoGrammar_LoadCmdFromFile_Stub(
8152     IRpcStubBuffer* This,
8153     IRpcChannelBuffer* pRpcChannelBuffer,
8154     PRPC_MESSAGE pRpcMessage,
8155     DWORD* pdwStubPhase);
8156 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadCmdFromObject_Proxy(
8157     ISpRecoGrammar* This,
8158     REFCLSID rcid,
8159     LPCWSTR pszGrammarName,
8160     SPLOADOPTIONS Options);
8161 void __RPC_STUB ISpRecoGrammar_LoadCmdFromObject_Stub(
8162     IRpcStubBuffer* This,
8163     IRpcChannelBuffer* pRpcChannelBuffer,
8164     PRPC_MESSAGE pRpcMessage,
8165     DWORD* pdwStubPhase);
8166 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadCmdFromResource_Proxy(
8167     ISpRecoGrammar* This,
8168     HMODULE hModule,
8169     LPCWSTR pszResourceName,
8170     LPCWSTR pszResourceType,
8171     WORD wLanguage,
8172     SPLOADOPTIONS Options);
8173 void __RPC_STUB ISpRecoGrammar_LoadCmdFromResource_Stub(
8174     IRpcStubBuffer* This,
8175     IRpcChannelBuffer* pRpcChannelBuffer,
8176     PRPC_MESSAGE pRpcMessage,
8177     DWORD* pdwStubPhase);
8178 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadCmdFromMemory_Proxy(
8179     ISpRecoGrammar* This,
8180     const SPBINARYGRAMMAR *pGrammar,
8181     SPLOADOPTIONS Options);
8182 void __RPC_STUB ISpRecoGrammar_LoadCmdFromMemory_Stub(
8183     IRpcStubBuffer* This,
8184     IRpcChannelBuffer* pRpcChannelBuffer,
8185     PRPC_MESSAGE pRpcMessage,
8186     DWORD* pdwStubPhase);
8187 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadCmdFromProprietaryGrammar_Proxy(
8188     ISpRecoGrammar* This,
8189     REFGUID rguidParam,
8190     LPCWSTR pszStringParam,
8191     const void *pvDataPrarm,
8192     ULONG cbDataSize,
8193     SPLOADOPTIONS Options);
8194 void __RPC_STUB ISpRecoGrammar_LoadCmdFromProprietaryGrammar_Stub(
8195     IRpcStubBuffer* This,
8196     IRpcChannelBuffer* pRpcChannelBuffer,
8197     PRPC_MESSAGE pRpcMessage,
8198     DWORD* pdwStubPhase);
8199 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetRuleState_Proxy(
8200     ISpRecoGrammar* This,
8201     LPCWSTR pszName,
8202     void *pReserved,
8203     SPRULESTATE NewState);
8204 void __RPC_STUB ISpRecoGrammar_SetRuleState_Stub(
8205     IRpcStubBuffer* This,
8206     IRpcChannelBuffer* pRpcChannelBuffer,
8207     PRPC_MESSAGE pRpcMessage,
8208     DWORD* pdwStubPhase);
8209 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetRuleIdState_Proxy(
8210     ISpRecoGrammar* This,
8211     ULONG ulRuleId,
8212     SPRULESTATE NewState);
8213 void __RPC_STUB ISpRecoGrammar_SetRuleIdState_Stub(
8214     IRpcStubBuffer* This,
8215     IRpcChannelBuffer* pRpcChannelBuffer,
8216     PRPC_MESSAGE pRpcMessage,
8217     DWORD* pdwStubPhase);
8218 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_LoadDictation_Proxy(
8219     ISpRecoGrammar* This,
8220     LPCWSTR pszTopicName,
8221     SPLOADOPTIONS Options);
8222 void __RPC_STUB ISpRecoGrammar_LoadDictation_Stub(
8223     IRpcStubBuffer* This,
8224     IRpcChannelBuffer* pRpcChannelBuffer,
8225     PRPC_MESSAGE pRpcMessage,
8226     DWORD* pdwStubPhase);
8227 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_UnloadDictation_Proxy(
8228     ISpRecoGrammar* This);
8229 void __RPC_STUB ISpRecoGrammar_UnloadDictation_Stub(
8230     IRpcStubBuffer* This,
8231     IRpcChannelBuffer* pRpcChannelBuffer,
8232     PRPC_MESSAGE pRpcMessage,
8233     DWORD* pdwStubPhase);
8234 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetDictationState_Proxy(
8235     ISpRecoGrammar* This,
8236     SPRULESTATE NewState);
8237 void __RPC_STUB ISpRecoGrammar_SetDictationState_Stub(
8238     IRpcStubBuffer* This,
8239     IRpcChannelBuffer* pRpcChannelBuffer,
8240     PRPC_MESSAGE pRpcMessage,
8241     DWORD* pdwStubPhase);
8242 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetWordSequenceData_Proxy(
8243     ISpRecoGrammar* This,
8244     const WCHAR *pText,
8245     ULONG cchText,
8246     const SPTEXTSELECTIONINFO *pInfo);
8247 void __RPC_STUB ISpRecoGrammar_SetWordSequenceData_Stub(
8248     IRpcStubBuffer* This,
8249     IRpcChannelBuffer* pRpcChannelBuffer,
8250     PRPC_MESSAGE pRpcMessage,
8251     DWORD* pdwStubPhase);
8252 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetTextSelection_Proxy(
8253     ISpRecoGrammar* This,
8254     const SPTEXTSELECTIONINFO *pInfo);
8255 void __RPC_STUB ISpRecoGrammar_SetTextSelection_Stub(
8256     IRpcStubBuffer* This,
8257     IRpcChannelBuffer* pRpcChannelBuffer,
8258     PRPC_MESSAGE pRpcMessage,
8259     DWORD* pdwStubPhase);
8260 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_IsPronounceable_Proxy(
8261     ISpRecoGrammar* This,
8262     LPCWSTR pszWord,
8263     SPWORDPRONOUNCEABLE *pWordPronounceable);
8264 void __RPC_STUB ISpRecoGrammar_IsPronounceable_Stub(
8265     IRpcStubBuffer* This,
8266     IRpcChannelBuffer* pRpcChannelBuffer,
8267     PRPC_MESSAGE pRpcMessage,
8268     DWORD* pdwStubPhase);
8269 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SetGrammarState_Proxy(
8270     ISpRecoGrammar* This,
8271     SPGRAMMARSTATE eGrammarState);
8272 void __RPC_STUB ISpRecoGrammar_SetGrammarState_Stub(
8273     IRpcStubBuffer* This,
8274     IRpcChannelBuffer* pRpcChannelBuffer,
8275     PRPC_MESSAGE pRpcMessage,
8276     DWORD* pdwStubPhase);
8277 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_SaveCmd_Proxy(
8278     ISpRecoGrammar* This,
8279     IStream *pStream,
8280     LPWSTR *ppszCoMemErrorText);
8281 void __RPC_STUB ISpRecoGrammar_SaveCmd_Stub(
8282     IRpcStubBuffer* This,
8283     IRpcChannelBuffer* pRpcChannelBuffer,
8284     PRPC_MESSAGE pRpcMessage,
8285     DWORD* pdwStubPhase);
8286 HRESULT STDMETHODCALLTYPE ISpRecoGrammar_GetGrammarState_Proxy(
8287     ISpRecoGrammar* This,
8288     SPGRAMMARSTATE *peGrammarState);
8289 void __RPC_STUB ISpRecoGrammar_GetGrammarState_Stub(
8290     IRpcStubBuffer* This,
8291     IRpcChannelBuffer* pRpcChannelBuffer,
8292     PRPC_MESSAGE pRpcMessage,
8293     DWORD* pdwStubPhase);
8294 
8295 #endif  /* __ISpRecoGrammar_INTERFACE_DEFINED__ */
8296 
8297 typedef struct SPRECOCONTEXTSTATUS {
8298     SPINTERFERENCE eInterference;
8299     WCHAR szRequestTypeOfUI[255];
8300     DWORD dwReserved1;
8301     DWORD dwReserved2;
8302 } SPRECOCONTEXTSTATUS;
8303 typedef enum SPBOOKMARKOPTIONS {
8304     SPBO_NONE = 0,
8305     SPBO_PAUSE = 0x1
8306 } SPBOOKMARKOPTIONS;
8307 typedef enum SPAUDIOOPTIONS {
8308     SPAO_NONE = 0,
8309     SPAO_RETAIN_AUDIO = 0x1
8310 } SPAUDIOOPTIONS;
8311 /*****************************************************************************
8312  * ISpRecoContext interface
8313  */
8314 #ifndef __ISpRecoContext_INTERFACE_DEFINED__
8315 #define __ISpRecoContext_INTERFACE_DEFINED__
8316 
8317 DEFINE_GUID(IID_ISpRecoContext, 0xf740a62f, 0x7c15, 0x489e, 0x82,0x34, 0x94,0x0a,0x33,0xd9,0x27,0x2d);
8318 #if defined(__cplusplus) && !defined(CINTERFACE)
8319 MIDL_INTERFACE("f740a62f-7c15-489e-8234-940a33d9272d")
8320 ISpRecoContext : public ISpEventSource
8321 {
8322     virtual HRESULT STDMETHODCALLTYPE GetRecognizer(
8323         ISpRecognizer **ppRecognizer) = 0;
8324 
8325     virtual HRESULT STDMETHODCALLTYPE CreateGrammar(
8326         ULONGLONG ullGrammarId,
8327         ISpRecoGrammar **ppGrammar) = 0;
8328 
8329     virtual HRESULT STDMETHODCALLTYPE GetStatus(
8330         SPRECOCONTEXTSTATUS *pStatus) = 0;
8331 
8332     virtual HRESULT STDMETHODCALLTYPE GetMaxAlternates(
8333         ULONG *pcAlternates) = 0;
8334 
8335     virtual HRESULT STDMETHODCALLTYPE SetMaxAlternates(
8336         ULONG cAlternates) = 0;
8337 
8338     virtual HRESULT STDMETHODCALLTYPE SetAudioOptions(
8339         SPAUDIOOPTIONS Options,
8340         const GUID *pAudioFormatId,
8341         const WAVEFORMATEX *pWaveFormatEx) = 0;
8342 
8343     virtual HRESULT STDMETHODCALLTYPE GetAudioOptions(
8344         SPAUDIOOPTIONS *pOptions,
8345         GUID *pAudioFormatId,
8346         WAVEFORMATEX **ppCoMemWFEX) = 0;
8347 
8348     virtual HRESULT STDMETHODCALLTYPE DeserializeResult(
8349         const SPSERIALIZEDRESULT *pSerializedResult,
8350         ISpRecoResult **ppResult) = 0;
8351 
8352     virtual HRESULT STDMETHODCALLTYPE Bookmark(
8353         SPBOOKMARKOPTIONS Options,
8354         ULONGLONG ullStreamPosition,
8355         LPARAM lparamEvent) = 0;
8356 
8357     virtual HRESULT STDMETHODCALLTYPE SetAdaptationData(
8358         LPCWSTR pAdaptationData,
8359         const ULONG cch) = 0;
8360 
8361     virtual HRESULT STDMETHODCALLTYPE Pause(
8362         DWORD dwReserved) = 0;
8363 
8364     virtual HRESULT STDMETHODCALLTYPE Resume(
8365         DWORD dwReserved) = 0;
8366 
8367     virtual HRESULT STDMETHODCALLTYPE SetVoice(
8368         ISpVoice *pVoice,
8369         WINBOOL fAllowFormatChanges) = 0;
8370 
8371     virtual HRESULT STDMETHODCALLTYPE GetVoice(
8372         ISpVoice **ppVoice) = 0;
8373 
8374     virtual HRESULT STDMETHODCALLTYPE SetVoicePurgeEvent(
8375         ULONGLONG ullEventInterest) = 0;
8376 
8377     virtual HRESULT STDMETHODCALLTYPE GetVoicePurgeEvent(
8378         ULONGLONG *pullEventInterest) = 0;
8379 
8380     virtual HRESULT STDMETHODCALLTYPE SetContextState(
8381         SPCONTEXTSTATE eContextState) = 0;
8382 
8383     virtual HRESULT STDMETHODCALLTYPE GetContextState(
8384         SPCONTEXTSTATE *peContextState) = 0;
8385 
8386 };
8387 #ifdef __CRT_UUID_DECL
8388 __CRT_UUID_DECL(ISpRecoContext, 0xf740a62f, 0x7c15, 0x489e, 0x82,0x34, 0x94,0x0a,0x33,0xd9,0x27,0x2d)
8389 #endif
8390 #else
8391 typedef struct ISpRecoContextVtbl {
8392     BEGIN_INTERFACE
8393 
8394     /*** IUnknown methods ***/
8395     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8396         ISpRecoContext* This,
8397         REFIID riid,
8398         void **ppvObject);
8399 
8400     ULONG (STDMETHODCALLTYPE *AddRef)(
8401         ISpRecoContext* This);
8402 
8403     ULONG (STDMETHODCALLTYPE *Release)(
8404         ISpRecoContext* This);
8405 
8406     /*** ISpNotifySource methods ***/
8407     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
8408         ISpRecoContext* This,
8409         ISpNotifySink *pNotifySink);
8410 
8411     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
8412         ISpRecoContext* This,
8413         HWND hWnd,
8414         UINT Msg,
8415         WPARAM wParam,
8416         LPARAM lParam);
8417 
8418     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
8419         ISpRecoContext* This,
8420         SPNOTIFYCALLBACK *pfnCallback,
8421         WPARAM wParam,
8422         LPARAM lParam);
8423 
8424     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
8425         ISpRecoContext* This,
8426         ISpNotifyCallback *pSpCallback,
8427         WPARAM wParam,
8428         LPARAM lParam);
8429 
8430     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
8431         ISpRecoContext* This);
8432 
8433     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
8434         ISpRecoContext* This,
8435         DWORD dwMilliseconds);
8436 
8437     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
8438         ISpRecoContext* This);
8439 
8440     /*** ISpEventSource methods ***/
8441     HRESULT (STDMETHODCALLTYPE *SetInterest)(
8442         ISpRecoContext* This,
8443         ULONGLONG ullEventInterest,
8444         ULONGLONG ullQueuedInterest);
8445 
8446     HRESULT (STDMETHODCALLTYPE *GetEvents)(
8447         ISpRecoContext* This,
8448         ULONG ulCount,
8449         SPEVENT *pEventArray,
8450         ULONG *pulFetched);
8451 
8452     HRESULT (STDMETHODCALLTYPE *GetInfo)(
8453         ISpRecoContext* This,
8454         SPEVENTSOURCEINFO *pInfo);
8455 
8456     /*** ISpRecoContext methods ***/
8457     HRESULT (STDMETHODCALLTYPE *GetRecognizer)(
8458         ISpRecoContext* This,
8459         ISpRecognizer **ppRecognizer);
8460 
8461     HRESULT (STDMETHODCALLTYPE *CreateGrammar)(
8462         ISpRecoContext* This,
8463         ULONGLONG ullGrammarId,
8464         ISpRecoGrammar **ppGrammar);
8465 
8466     HRESULT (STDMETHODCALLTYPE *GetStatus)(
8467         ISpRecoContext* This,
8468         SPRECOCONTEXTSTATUS *pStatus);
8469 
8470     HRESULT (STDMETHODCALLTYPE *GetMaxAlternates)(
8471         ISpRecoContext* This,
8472         ULONG *pcAlternates);
8473 
8474     HRESULT (STDMETHODCALLTYPE *SetMaxAlternates)(
8475         ISpRecoContext* This,
8476         ULONG cAlternates);
8477 
8478     HRESULT (STDMETHODCALLTYPE *SetAudioOptions)(
8479         ISpRecoContext* This,
8480         SPAUDIOOPTIONS Options,
8481         const GUID *pAudioFormatId,
8482         const WAVEFORMATEX *pWaveFormatEx);
8483 
8484     HRESULT (STDMETHODCALLTYPE *GetAudioOptions)(
8485         ISpRecoContext* This,
8486         SPAUDIOOPTIONS *pOptions,
8487         GUID *pAudioFormatId,
8488         WAVEFORMATEX **ppCoMemWFEX);
8489 
8490     HRESULT (STDMETHODCALLTYPE *DeserializeResult)(
8491         ISpRecoContext* This,
8492         const SPSERIALIZEDRESULT *pSerializedResult,
8493         ISpRecoResult **ppResult);
8494 
8495     HRESULT (STDMETHODCALLTYPE *Bookmark)(
8496         ISpRecoContext* This,
8497         SPBOOKMARKOPTIONS Options,
8498         ULONGLONG ullStreamPosition,
8499         LPARAM lparamEvent);
8500 
8501     HRESULT (STDMETHODCALLTYPE *SetAdaptationData)(
8502         ISpRecoContext* This,
8503         LPCWSTR pAdaptationData,
8504         const ULONG cch);
8505 
8506     HRESULT (STDMETHODCALLTYPE *Pause)(
8507         ISpRecoContext* This,
8508         DWORD dwReserved);
8509 
8510     HRESULT (STDMETHODCALLTYPE *Resume)(
8511         ISpRecoContext* This,
8512         DWORD dwReserved);
8513 
8514     HRESULT (STDMETHODCALLTYPE *SetVoice)(
8515         ISpRecoContext* This,
8516         ISpVoice *pVoice,
8517         WINBOOL fAllowFormatChanges);
8518 
8519     HRESULT (STDMETHODCALLTYPE *GetVoice)(
8520         ISpRecoContext* This,
8521         ISpVoice **ppVoice);
8522 
8523     HRESULT (STDMETHODCALLTYPE *SetVoicePurgeEvent)(
8524         ISpRecoContext* This,
8525         ULONGLONG ullEventInterest);
8526 
8527     HRESULT (STDMETHODCALLTYPE *GetVoicePurgeEvent)(
8528         ISpRecoContext* This,
8529         ULONGLONG *pullEventInterest);
8530 
8531     HRESULT (STDMETHODCALLTYPE *SetContextState)(
8532         ISpRecoContext* This,
8533         SPCONTEXTSTATE eContextState);
8534 
8535     HRESULT (STDMETHODCALLTYPE *GetContextState)(
8536         ISpRecoContext* This,
8537         SPCONTEXTSTATE *peContextState);
8538 
8539     END_INTERFACE
8540 } ISpRecoContextVtbl;
8541 interface ISpRecoContext {
8542     CONST_VTBL ISpRecoContextVtbl* lpVtbl;
8543 };
8544 
8545 #ifdef COBJMACROS
8546 #ifndef WIDL_C_INLINE_WRAPPERS
8547 /*** IUnknown methods ***/
8548 #define ISpRecoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8549 #define ISpRecoContext_AddRef(This) (This)->lpVtbl->AddRef(This)
8550 #define ISpRecoContext_Release(This) (This)->lpVtbl->Release(This)
8551 /*** ISpNotifySource methods ***/
8552 #define ISpRecoContext_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
8553 #define ISpRecoContext_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
8554 #define ISpRecoContext_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
8555 #define ISpRecoContext_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
8556 #define ISpRecoContext_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
8557 #define ISpRecoContext_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
8558 #define ISpRecoContext_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
8559 /*** ISpEventSource methods ***/
8560 #define ISpRecoContext_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
8561 #define ISpRecoContext_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
8562 #define ISpRecoContext_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
8563 /*** ISpRecoContext methods ***/
8564 #define ISpRecoContext_GetRecognizer(This,ppRecognizer) (This)->lpVtbl->GetRecognizer(This,ppRecognizer)
8565 #define ISpRecoContext_CreateGrammar(This,ullGrammarId,ppGrammar) (This)->lpVtbl->CreateGrammar(This,ullGrammarId,ppGrammar)
8566 #define ISpRecoContext_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
8567 #define ISpRecoContext_GetMaxAlternates(This,pcAlternates) (This)->lpVtbl->GetMaxAlternates(This,pcAlternates)
8568 #define ISpRecoContext_SetMaxAlternates(This,cAlternates) (This)->lpVtbl->SetMaxAlternates(This,cAlternates)
8569 #define ISpRecoContext_SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx)
8570 #define ISpRecoContext_GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX) (This)->lpVtbl->GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX)
8571 #define ISpRecoContext_DeserializeResult(This,pSerializedResult,ppResult) (This)->lpVtbl->DeserializeResult(This,pSerializedResult,ppResult)
8572 #define ISpRecoContext_Bookmark(This,Options,ullStreamPosition,lparamEvent) (This)->lpVtbl->Bookmark(This,Options,ullStreamPosition,lparamEvent)
8573 #define ISpRecoContext_SetAdaptationData(This,pAdaptationData,cch) (This)->lpVtbl->SetAdaptationData(This,pAdaptationData,cch)
8574 #define ISpRecoContext_Pause(This,dwReserved) (This)->lpVtbl->Pause(This,dwReserved)
8575 #define ISpRecoContext_Resume(This,dwReserved) (This)->lpVtbl->Resume(This,dwReserved)
8576 #define ISpRecoContext_SetVoice(This,pVoice,fAllowFormatChanges) (This)->lpVtbl->SetVoice(This,pVoice,fAllowFormatChanges)
8577 #define ISpRecoContext_GetVoice(This,ppVoice) (This)->lpVtbl->GetVoice(This,ppVoice)
8578 #define ISpRecoContext_SetVoicePurgeEvent(This,ullEventInterest) (This)->lpVtbl->SetVoicePurgeEvent(This,ullEventInterest)
8579 #define ISpRecoContext_GetVoicePurgeEvent(This,pullEventInterest) (This)->lpVtbl->GetVoicePurgeEvent(This,pullEventInterest)
8580 #define ISpRecoContext_SetContextState(This,eContextState) (This)->lpVtbl->SetContextState(This,eContextState)
8581 #define ISpRecoContext_GetContextState(This,peContextState) (This)->lpVtbl->GetContextState(This,peContextState)
8582 #else
8583 /*** IUnknown methods ***/
8584 static FORCEINLINE HRESULT ISpRecoContext_QueryInterface(ISpRecoContext* This,REFIID riid,void **ppvObject) {
8585     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8586 }
8587 static FORCEINLINE ULONG ISpRecoContext_AddRef(ISpRecoContext* This) {
8588     return This->lpVtbl->AddRef(This);
8589 }
8590 static FORCEINLINE ULONG ISpRecoContext_Release(ISpRecoContext* This) {
8591     return This->lpVtbl->Release(This);
8592 }
8593 /*** ISpNotifySource methods ***/
8594 static FORCEINLINE HRESULT ISpRecoContext_SetNotifySink(ISpRecoContext* This,ISpNotifySink *pNotifySink) {
8595     return This->lpVtbl->SetNotifySink(This,pNotifySink);
8596 }
8597 static FORCEINLINE HRESULT ISpRecoContext_SetNotifyWindowMessage(ISpRecoContext* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
8598     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
8599 }
8600 static FORCEINLINE HRESULT ISpRecoContext_SetNotifyCallbackFunction(ISpRecoContext* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
8601     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
8602 }
8603 static FORCEINLINE HRESULT ISpRecoContext_SetNotifyCallbackInterface(ISpRecoContext* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
8604     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
8605 }
8606 static FORCEINLINE HRESULT ISpRecoContext_SetNotifyWin32Event(ISpRecoContext* This) {
8607     return This->lpVtbl->SetNotifyWin32Event(This);
8608 }
8609 static FORCEINLINE HRESULT ISpRecoContext_WaitForNotifyEvent(ISpRecoContext* This,DWORD dwMilliseconds) {
8610     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
8611 }
8612 static FORCEINLINE HANDLE ISpRecoContext_GetNotifyEventHandle(ISpRecoContext* This) {
8613     return This->lpVtbl->GetNotifyEventHandle(This);
8614 }
8615 /*** ISpEventSource methods ***/
8616 static FORCEINLINE HRESULT ISpRecoContext_SetInterest(ISpRecoContext* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
8617     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
8618 }
8619 static FORCEINLINE HRESULT ISpRecoContext_GetEvents(ISpRecoContext* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
8620     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
8621 }
8622 static FORCEINLINE HRESULT ISpRecoContext_GetInfo(ISpRecoContext* This,SPEVENTSOURCEINFO *pInfo) {
8623     return This->lpVtbl->GetInfo(This,pInfo);
8624 }
8625 /*** ISpRecoContext methods ***/
8626 static FORCEINLINE HRESULT ISpRecoContext_GetRecognizer(ISpRecoContext* This,ISpRecognizer **ppRecognizer) {
8627     return This->lpVtbl->GetRecognizer(This,ppRecognizer);
8628 }
8629 static FORCEINLINE HRESULT ISpRecoContext_CreateGrammar(ISpRecoContext* This,ULONGLONG ullGrammarId,ISpRecoGrammar **ppGrammar) {
8630     return This->lpVtbl->CreateGrammar(This,ullGrammarId,ppGrammar);
8631 }
8632 static FORCEINLINE HRESULT ISpRecoContext_GetStatus(ISpRecoContext* This,SPRECOCONTEXTSTATUS *pStatus) {
8633     return This->lpVtbl->GetStatus(This,pStatus);
8634 }
8635 static FORCEINLINE HRESULT ISpRecoContext_GetMaxAlternates(ISpRecoContext* This,ULONG *pcAlternates) {
8636     return This->lpVtbl->GetMaxAlternates(This,pcAlternates);
8637 }
8638 static FORCEINLINE HRESULT ISpRecoContext_SetMaxAlternates(ISpRecoContext* This,ULONG cAlternates) {
8639     return This->lpVtbl->SetMaxAlternates(This,cAlternates);
8640 }
8641 static FORCEINLINE HRESULT ISpRecoContext_SetAudioOptions(ISpRecoContext* This,SPAUDIOOPTIONS Options,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
8642     return This->lpVtbl->SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx);
8643 }
8644 static FORCEINLINE HRESULT ISpRecoContext_GetAudioOptions(ISpRecoContext* This,SPAUDIOOPTIONS *pOptions,GUID *pAudioFormatId,WAVEFORMATEX **ppCoMemWFEX) {
8645     return This->lpVtbl->GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX);
8646 }
8647 static FORCEINLINE HRESULT ISpRecoContext_DeserializeResult(ISpRecoContext* This,const SPSERIALIZEDRESULT *pSerializedResult,ISpRecoResult **ppResult) {
8648     return This->lpVtbl->DeserializeResult(This,pSerializedResult,ppResult);
8649 }
8650 static FORCEINLINE HRESULT ISpRecoContext_Bookmark(ISpRecoContext* This,SPBOOKMARKOPTIONS Options,ULONGLONG ullStreamPosition,LPARAM lparamEvent) {
8651     return This->lpVtbl->Bookmark(This,Options,ullStreamPosition,lparamEvent);
8652 }
8653 static FORCEINLINE HRESULT ISpRecoContext_SetAdaptationData(ISpRecoContext* This,LPCWSTR pAdaptationData,const ULONG cch) {
8654     return This->lpVtbl->SetAdaptationData(This,pAdaptationData,cch);
8655 }
8656 static FORCEINLINE HRESULT ISpRecoContext_Pause(ISpRecoContext* This,DWORD dwReserved) {
8657     return This->lpVtbl->Pause(This,dwReserved);
8658 }
8659 static FORCEINLINE HRESULT ISpRecoContext_Resume(ISpRecoContext* This,DWORD dwReserved) {
8660     return This->lpVtbl->Resume(This,dwReserved);
8661 }
8662 static FORCEINLINE HRESULT ISpRecoContext_SetVoice(ISpRecoContext* This,ISpVoice *pVoice,WINBOOL fAllowFormatChanges) {
8663     return This->lpVtbl->SetVoice(This,pVoice,fAllowFormatChanges);
8664 }
8665 static FORCEINLINE HRESULT ISpRecoContext_GetVoice(ISpRecoContext* This,ISpVoice **ppVoice) {
8666     return This->lpVtbl->GetVoice(This,ppVoice);
8667 }
8668 static FORCEINLINE HRESULT ISpRecoContext_SetVoicePurgeEvent(ISpRecoContext* This,ULONGLONG ullEventInterest) {
8669     return This->lpVtbl->SetVoicePurgeEvent(This,ullEventInterest);
8670 }
8671 static FORCEINLINE HRESULT ISpRecoContext_GetVoicePurgeEvent(ISpRecoContext* This,ULONGLONG *pullEventInterest) {
8672     return This->lpVtbl->GetVoicePurgeEvent(This,pullEventInterest);
8673 }
8674 static FORCEINLINE HRESULT ISpRecoContext_SetContextState(ISpRecoContext* This,SPCONTEXTSTATE eContextState) {
8675     return This->lpVtbl->SetContextState(This,eContextState);
8676 }
8677 static FORCEINLINE HRESULT ISpRecoContext_GetContextState(ISpRecoContext* This,SPCONTEXTSTATE *peContextState) {
8678     return This->lpVtbl->GetContextState(This,peContextState);
8679 }
8680 #endif
8681 #endif
8682 
8683 #endif
8684 
8685 HRESULT STDMETHODCALLTYPE ISpRecoContext_GetRecognizer_Proxy(
8686     ISpRecoContext* This,
8687     ISpRecognizer **ppRecognizer);
8688 void __RPC_STUB ISpRecoContext_GetRecognizer_Stub(
8689     IRpcStubBuffer* This,
8690     IRpcChannelBuffer* pRpcChannelBuffer,
8691     PRPC_MESSAGE pRpcMessage,
8692     DWORD* pdwStubPhase);
8693 HRESULT STDMETHODCALLTYPE ISpRecoContext_CreateGrammar_Proxy(
8694     ISpRecoContext* This,
8695     ULONGLONG ullGrammarId,
8696     ISpRecoGrammar **ppGrammar);
8697 void __RPC_STUB ISpRecoContext_CreateGrammar_Stub(
8698     IRpcStubBuffer* This,
8699     IRpcChannelBuffer* pRpcChannelBuffer,
8700     PRPC_MESSAGE pRpcMessage,
8701     DWORD* pdwStubPhase);
8702 HRESULT STDMETHODCALLTYPE ISpRecoContext_GetStatus_Proxy(
8703     ISpRecoContext* This,
8704     SPRECOCONTEXTSTATUS *pStatus);
8705 void __RPC_STUB ISpRecoContext_GetStatus_Stub(
8706     IRpcStubBuffer* This,
8707     IRpcChannelBuffer* pRpcChannelBuffer,
8708     PRPC_MESSAGE pRpcMessage,
8709     DWORD* pdwStubPhase);
8710 HRESULT STDMETHODCALLTYPE ISpRecoContext_GetMaxAlternates_Proxy(
8711     ISpRecoContext* This,
8712     ULONG *pcAlternates);
8713 void __RPC_STUB ISpRecoContext_GetMaxAlternates_Stub(
8714     IRpcStubBuffer* This,
8715     IRpcChannelBuffer* pRpcChannelBuffer,
8716     PRPC_MESSAGE pRpcMessage,
8717     DWORD* pdwStubPhase);
8718 HRESULT STDMETHODCALLTYPE ISpRecoContext_SetMaxAlternates_Proxy(
8719     ISpRecoContext* This,
8720     ULONG cAlternates);
8721 void __RPC_STUB ISpRecoContext_SetMaxAlternates_Stub(
8722     IRpcStubBuffer* This,
8723     IRpcChannelBuffer* pRpcChannelBuffer,
8724     PRPC_MESSAGE pRpcMessage,
8725     DWORD* pdwStubPhase);
8726 HRESULT STDMETHODCALLTYPE ISpRecoContext_SetAudioOptions_Proxy(
8727     ISpRecoContext* This,
8728     SPAUDIOOPTIONS Options,
8729     const GUID *pAudioFormatId,
8730     const WAVEFORMATEX *pWaveFormatEx);
8731 void __RPC_STUB ISpRecoContext_SetAudioOptions_Stub(
8732     IRpcStubBuffer* This,
8733     IRpcChannelBuffer* pRpcChannelBuffer,
8734     PRPC_MESSAGE pRpcMessage,
8735     DWORD* pdwStubPhase);
8736 HRESULT STDMETHODCALLTYPE ISpRecoContext_GetAudioOptions_Proxy(
8737     ISpRecoContext* This,
8738     SPAUDIOOPTIONS *pOptions,
8739     GUID *pAudioFormatId,
8740     WAVEFORMATEX **ppCoMemWFEX);
8741 void __RPC_STUB ISpRecoContext_GetAudioOptions_Stub(
8742     IRpcStubBuffer* This,
8743     IRpcChannelBuffer* pRpcChannelBuffer,
8744     PRPC_MESSAGE pRpcMessage,
8745     DWORD* pdwStubPhase);
8746 HRESULT STDMETHODCALLTYPE ISpRecoContext_DeserializeResult_Proxy(
8747     ISpRecoContext* This,
8748     const SPSERIALIZEDRESULT *pSerializedResult,
8749     ISpRecoResult **ppResult);
8750 void __RPC_STUB ISpRecoContext_DeserializeResult_Stub(
8751     IRpcStubBuffer* This,
8752     IRpcChannelBuffer* pRpcChannelBuffer,
8753     PRPC_MESSAGE pRpcMessage,
8754     DWORD* pdwStubPhase);
8755 HRESULT STDMETHODCALLTYPE ISpRecoContext_Bookmark_Proxy(
8756     ISpRecoContext* This,
8757     SPBOOKMARKOPTIONS Options,
8758     ULONGLONG ullStreamPosition,
8759     LPARAM lparamEvent);
8760 void __RPC_STUB ISpRecoContext_Bookmark_Stub(
8761     IRpcStubBuffer* This,
8762     IRpcChannelBuffer* pRpcChannelBuffer,
8763     PRPC_MESSAGE pRpcMessage,
8764     DWORD* pdwStubPhase);
8765 HRESULT STDMETHODCALLTYPE ISpRecoContext_SetAdaptationData_Proxy(
8766     ISpRecoContext* This,
8767     LPCWSTR pAdaptationData,
8768     const ULONG cch);
8769 void __RPC_STUB ISpRecoContext_SetAdaptationData_Stub(
8770     IRpcStubBuffer* This,
8771     IRpcChannelBuffer* pRpcChannelBuffer,
8772     PRPC_MESSAGE pRpcMessage,
8773     DWORD* pdwStubPhase);
8774 HRESULT STDMETHODCALLTYPE ISpRecoContext_Pause_Proxy(
8775     ISpRecoContext* This,
8776     DWORD dwReserved);
8777 void __RPC_STUB ISpRecoContext_Pause_Stub(
8778     IRpcStubBuffer* This,
8779     IRpcChannelBuffer* pRpcChannelBuffer,
8780     PRPC_MESSAGE pRpcMessage,
8781     DWORD* pdwStubPhase);
8782 HRESULT STDMETHODCALLTYPE ISpRecoContext_Resume_Proxy(
8783     ISpRecoContext* This,
8784     DWORD dwReserved);
8785 void __RPC_STUB ISpRecoContext_Resume_Stub(
8786     IRpcStubBuffer* This,
8787     IRpcChannelBuffer* pRpcChannelBuffer,
8788     PRPC_MESSAGE pRpcMessage,
8789     DWORD* pdwStubPhase);
8790 HRESULT STDMETHODCALLTYPE ISpRecoContext_SetVoice_Proxy(
8791     ISpRecoContext* This,
8792     ISpVoice *pVoice,
8793     WINBOOL fAllowFormatChanges);
8794 void __RPC_STUB ISpRecoContext_SetVoice_Stub(
8795     IRpcStubBuffer* This,
8796     IRpcChannelBuffer* pRpcChannelBuffer,
8797     PRPC_MESSAGE pRpcMessage,
8798     DWORD* pdwStubPhase);
8799 HRESULT STDMETHODCALLTYPE ISpRecoContext_GetVoice_Proxy(
8800     ISpRecoContext* This,
8801     ISpVoice **ppVoice);
8802 void __RPC_STUB ISpRecoContext_GetVoice_Stub(
8803     IRpcStubBuffer* This,
8804     IRpcChannelBuffer* pRpcChannelBuffer,
8805     PRPC_MESSAGE pRpcMessage,
8806     DWORD* pdwStubPhase);
8807 HRESULT STDMETHODCALLTYPE ISpRecoContext_SetVoicePurgeEvent_Proxy(
8808     ISpRecoContext* This,
8809     ULONGLONG ullEventInterest);
8810 void __RPC_STUB ISpRecoContext_SetVoicePurgeEvent_Stub(
8811     IRpcStubBuffer* This,
8812     IRpcChannelBuffer* pRpcChannelBuffer,
8813     PRPC_MESSAGE pRpcMessage,
8814     DWORD* pdwStubPhase);
8815 HRESULT STDMETHODCALLTYPE ISpRecoContext_GetVoicePurgeEvent_Proxy(
8816     ISpRecoContext* This,
8817     ULONGLONG *pullEventInterest);
8818 void __RPC_STUB ISpRecoContext_GetVoicePurgeEvent_Stub(
8819     IRpcStubBuffer* This,
8820     IRpcChannelBuffer* pRpcChannelBuffer,
8821     PRPC_MESSAGE pRpcMessage,
8822     DWORD* pdwStubPhase);
8823 HRESULT STDMETHODCALLTYPE ISpRecoContext_SetContextState_Proxy(
8824     ISpRecoContext* This,
8825     SPCONTEXTSTATE eContextState);
8826 void __RPC_STUB ISpRecoContext_SetContextState_Stub(
8827     IRpcStubBuffer* This,
8828     IRpcChannelBuffer* pRpcChannelBuffer,
8829     PRPC_MESSAGE pRpcMessage,
8830     DWORD* pdwStubPhase);
8831 HRESULT STDMETHODCALLTYPE ISpRecoContext_GetContextState_Proxy(
8832     ISpRecoContext* This,
8833     SPCONTEXTSTATE *peContextState);
8834 void __RPC_STUB ISpRecoContext_GetContextState_Stub(
8835     IRpcStubBuffer* This,
8836     IRpcChannelBuffer* pRpcChannelBuffer,
8837     PRPC_MESSAGE pRpcMessage,
8838     DWORD* pdwStubPhase);
8839 
8840 #endif  /* __ISpRecoContext_INTERFACE_DEFINED__ */
8841 
8842 /*****************************************************************************
8843  * ISpProperties interface
8844  */
8845 #ifndef __ISpProperties_INTERFACE_DEFINED__
8846 #define __ISpProperties_INTERFACE_DEFINED__
8847 
8848 DEFINE_GUID(IID_ISpProperties, 0x5b4fb971, 0xb115, 0x4de1, 0xad,0x97, 0xe4,0x82,0xe3,0xbf,0x6e,0xe4);
8849 #if defined(__cplusplus) && !defined(CINTERFACE)
8850 MIDL_INTERFACE("5b4fb971-b115-4de1-ad97-e482e3bf6ee4")
8851 ISpProperties : public IUnknown
8852 {
8853     virtual HRESULT STDMETHODCALLTYPE SetPropertyNum(
8854         LPCWSTR pName,
8855         LONG lValue) = 0;
8856 
8857     virtual HRESULT STDMETHODCALLTYPE GetPropertyNum(
8858         LPCWSTR pName,
8859         LONG *plValue) = 0;
8860 
8861     virtual HRESULT STDMETHODCALLTYPE SetPropertyString(
8862         LPCWSTR pName,
8863         LPCWSTR pValue) = 0;
8864 
8865     virtual HRESULT STDMETHODCALLTYPE GetPropertyString(
8866         LPCWSTR pName,
8867         LPWSTR *ppCoMemValue) = 0;
8868 
8869 };
8870 #ifdef __CRT_UUID_DECL
8871 __CRT_UUID_DECL(ISpProperties, 0x5b4fb971, 0xb115, 0x4de1, 0xad,0x97, 0xe4,0x82,0xe3,0xbf,0x6e,0xe4)
8872 #endif
8873 #else
8874 typedef struct ISpPropertiesVtbl {
8875     BEGIN_INTERFACE
8876 
8877     /*** IUnknown methods ***/
8878     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8879         ISpProperties* This,
8880         REFIID riid,
8881         void **ppvObject);
8882 
8883     ULONG (STDMETHODCALLTYPE *AddRef)(
8884         ISpProperties* This);
8885 
8886     ULONG (STDMETHODCALLTYPE *Release)(
8887         ISpProperties* This);
8888 
8889     /*** ISpProperties methods ***/
8890     HRESULT (STDMETHODCALLTYPE *SetPropertyNum)(
8891         ISpProperties* This,
8892         LPCWSTR pName,
8893         LONG lValue);
8894 
8895     HRESULT (STDMETHODCALLTYPE *GetPropertyNum)(
8896         ISpProperties* This,
8897         LPCWSTR pName,
8898         LONG *plValue);
8899 
8900     HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
8901         ISpProperties* This,
8902         LPCWSTR pName,
8903         LPCWSTR pValue);
8904 
8905     HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
8906         ISpProperties* This,
8907         LPCWSTR pName,
8908         LPWSTR *ppCoMemValue);
8909 
8910     END_INTERFACE
8911 } ISpPropertiesVtbl;
8912 interface ISpProperties {
8913     CONST_VTBL ISpPropertiesVtbl* lpVtbl;
8914 };
8915 
8916 #ifdef COBJMACROS
8917 #ifndef WIDL_C_INLINE_WRAPPERS
8918 /*** IUnknown methods ***/
8919 #define ISpProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8920 #define ISpProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
8921 #define ISpProperties_Release(This) (This)->lpVtbl->Release(This)
8922 /*** ISpProperties methods ***/
8923 #define ISpProperties_SetPropertyNum(This,pName,lValue) (This)->lpVtbl->SetPropertyNum(This,pName,lValue)
8924 #define ISpProperties_GetPropertyNum(This,pName,plValue) (This)->lpVtbl->GetPropertyNum(This,pName,plValue)
8925 #define ISpProperties_SetPropertyString(This,pName,pValue) (This)->lpVtbl->SetPropertyString(This,pName,pValue)
8926 #define ISpProperties_GetPropertyString(This,pName,ppCoMemValue) (This)->lpVtbl->GetPropertyString(This,pName,ppCoMemValue)
8927 #else
8928 /*** IUnknown methods ***/
8929 static FORCEINLINE HRESULT ISpProperties_QueryInterface(ISpProperties* This,REFIID riid,void **ppvObject) {
8930     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8931 }
8932 static FORCEINLINE ULONG ISpProperties_AddRef(ISpProperties* This) {
8933     return This->lpVtbl->AddRef(This);
8934 }
8935 static FORCEINLINE ULONG ISpProperties_Release(ISpProperties* This) {
8936     return This->lpVtbl->Release(This);
8937 }
8938 /*** ISpProperties methods ***/
8939 static FORCEINLINE HRESULT ISpProperties_SetPropertyNum(ISpProperties* This,LPCWSTR pName,LONG lValue) {
8940     return This->lpVtbl->SetPropertyNum(This,pName,lValue);
8941 }
8942 static FORCEINLINE HRESULT ISpProperties_GetPropertyNum(ISpProperties* This,LPCWSTR pName,LONG *plValue) {
8943     return This->lpVtbl->GetPropertyNum(This,pName,plValue);
8944 }
8945 static FORCEINLINE HRESULT ISpProperties_SetPropertyString(ISpProperties* This,LPCWSTR pName,LPCWSTR pValue) {
8946     return This->lpVtbl->SetPropertyString(This,pName,pValue);
8947 }
8948 static FORCEINLINE HRESULT ISpProperties_GetPropertyString(ISpProperties* This,LPCWSTR pName,LPWSTR *ppCoMemValue) {
8949     return This->lpVtbl->GetPropertyString(This,pName,ppCoMemValue);
8950 }
8951 #endif
8952 #endif
8953 
8954 #endif
8955 
8956 HRESULT STDMETHODCALLTYPE ISpProperties_SetPropertyNum_Proxy(
8957     ISpProperties* This,
8958     LPCWSTR pName,
8959     LONG lValue);
8960 void __RPC_STUB ISpProperties_SetPropertyNum_Stub(
8961     IRpcStubBuffer* This,
8962     IRpcChannelBuffer* pRpcChannelBuffer,
8963     PRPC_MESSAGE pRpcMessage,
8964     DWORD* pdwStubPhase);
8965 HRESULT STDMETHODCALLTYPE ISpProperties_GetPropertyNum_Proxy(
8966     ISpProperties* This,
8967     LPCWSTR pName,
8968     LONG *plValue);
8969 void __RPC_STUB ISpProperties_GetPropertyNum_Stub(
8970     IRpcStubBuffer* This,
8971     IRpcChannelBuffer* pRpcChannelBuffer,
8972     PRPC_MESSAGE pRpcMessage,
8973     DWORD* pdwStubPhase);
8974 HRESULT STDMETHODCALLTYPE ISpProperties_SetPropertyString_Proxy(
8975     ISpProperties* This,
8976     LPCWSTR pName,
8977     LPCWSTR pValue);
8978 void __RPC_STUB ISpProperties_SetPropertyString_Stub(
8979     IRpcStubBuffer* This,
8980     IRpcChannelBuffer* pRpcChannelBuffer,
8981     PRPC_MESSAGE pRpcMessage,
8982     DWORD* pdwStubPhase);
8983 HRESULT STDMETHODCALLTYPE ISpProperties_GetPropertyString_Proxy(
8984     ISpProperties* This,
8985     LPCWSTR pName,
8986     LPWSTR *ppCoMemValue);
8987 void __RPC_STUB ISpProperties_GetPropertyString_Stub(
8988     IRpcStubBuffer* This,
8989     IRpcChannelBuffer* pRpcChannelBuffer,
8990     PRPC_MESSAGE pRpcMessage,
8991     DWORD* pdwStubPhase);
8992 
8993 #endif  /* __ISpProperties_INTERFACE_DEFINED__ */
8994 
8995 #define SP_MAX_LANGIDS (20)
8996 
8997 typedef struct SPRECOGNIZERSTATUS {
8998     SPAUDIOSTATUS AudioStatus;
8999     ULONGLONG ullRecognitionStreamPos;
9000     ULONG ulStreamNumber;
9001     ULONG ulNumActive;
9002     CLSID clsidEngine;
9003     ULONG cLangIDs;
9004     WORD aLangID[20];
9005     ULONGLONG ullRecognitionStreamTime;
9006 } SPRECOGNIZERSTATUS;
9007 typedef enum SPWAVEFORMATTYPE {
9008     SPWF_INPUT = 0,
9009     SPWF_SRENGINE = 1
9010 } SPSTREAMFORMATTYPE;
9011 typedef enum SPRECOSTATE {
9012     SPRST_INACTIVE = 0,
9013     SPRST_ACTIVE = 1,
9014     SPRST_ACTIVE_ALWAYS = 2,
9015     SPRST_INACTIVE_WITH_PURGE = 3,
9016     SPRST_NUM_STATES = 4
9017 } SPRECOSTATE;
9018 /*****************************************************************************
9019  * ISpRecognizer interface
9020  */
9021 #ifndef __ISpRecognizer_INTERFACE_DEFINED__
9022 #define __ISpRecognizer_INTERFACE_DEFINED__
9023 
9024 DEFINE_GUID(IID_ISpRecognizer, 0xc2b5f241, 0xdaa0, 0x4507, 0x9e,0x16, 0x5a,0x1e,0xaa,0x2b,0x7a,0x5c);
9025 #if defined(__cplusplus) && !defined(CINTERFACE)
9026 MIDL_INTERFACE("c2b5f241-daa0-4507-9e16-5a1eaa2b7a5c")
9027 ISpRecognizer : public ISpProperties
9028 {
9029     virtual HRESULT STDMETHODCALLTYPE SetRecognizer(
9030         ISpObjectToken *pRecognizer) = 0;
9031 
9032     virtual HRESULT STDMETHODCALLTYPE GetRecognizer(
9033         ISpObjectToken **ppRecognizer) = 0;
9034 
9035     virtual HRESULT STDMETHODCALLTYPE SetInput(
9036         IUnknown *pUnkInput,
9037         WINBOOL fAllowFormatChanges) = 0;
9038 
9039     virtual HRESULT STDMETHODCALLTYPE GetInputObjectToken(
9040         ISpObjectToken **ppToken) = 0;
9041 
9042     virtual HRESULT STDMETHODCALLTYPE GetInputStream(
9043         ISpStreamFormat **ppStream) = 0;
9044 
9045     virtual HRESULT STDMETHODCALLTYPE CreateRecoContext(
9046         ISpRecoContext **ppNewCtxt) = 0;
9047 
9048     virtual HRESULT STDMETHODCALLTYPE GetRecoProfile(
9049         ISpObjectToken **ppToken) = 0;
9050 
9051     virtual HRESULT STDMETHODCALLTYPE SetRecoProfile(
9052         ISpObjectToken *pToken) = 0;
9053 
9054     virtual HRESULT STDMETHODCALLTYPE IsSharedInstance(
9055         ) = 0;
9056 
9057     virtual HRESULT STDMETHODCALLTYPE GetRecoState(
9058         SPRECOSTATE *pState) = 0;
9059 
9060     virtual HRESULT STDMETHODCALLTYPE SetRecoState(
9061         SPRECOSTATE NewState) = 0;
9062 
9063     virtual HRESULT STDMETHODCALLTYPE GetStatus(
9064         SPRECOGNIZERSTATUS *pStatus) = 0;
9065 
9066     virtual HRESULT STDMETHODCALLTYPE GetFormat(
9067         SPSTREAMFORMATTYPE WaveFormatType,
9068         GUID *pFormatId,
9069         WAVEFORMATEX **ppCoMemWFEX) = 0;
9070 
9071     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
9072         LPCWSTR pszTypeOfUI,
9073         void *pvExtraData,
9074         ULONG cbExtraData,
9075         WINBOOL *pfSupported) = 0;
9076 
9077     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
9078         HWND hwndParent,
9079         LPCWSTR pszTitle,
9080         LPCWSTR pszTypeOfUI,
9081         void *pvExtraData,
9082         ULONG cbExtraData) = 0;
9083 
9084     virtual HRESULT STDMETHODCALLTYPE EmulateRecognition(
9085         ISpPhrase *pPhrase) = 0;
9086 
9087 };
9088 #ifdef __CRT_UUID_DECL
9089 __CRT_UUID_DECL(ISpRecognizer, 0xc2b5f241, 0xdaa0, 0x4507, 0x9e,0x16, 0x5a,0x1e,0xaa,0x2b,0x7a,0x5c)
9090 #endif
9091 #else
9092 typedef struct ISpRecognizerVtbl {
9093     BEGIN_INTERFACE
9094 
9095     /*** IUnknown methods ***/
9096     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9097         ISpRecognizer* This,
9098         REFIID riid,
9099         void **ppvObject);
9100 
9101     ULONG (STDMETHODCALLTYPE *AddRef)(
9102         ISpRecognizer* This);
9103 
9104     ULONG (STDMETHODCALLTYPE *Release)(
9105         ISpRecognizer* This);
9106 
9107     /*** ISpProperties methods ***/
9108     HRESULT (STDMETHODCALLTYPE *SetPropertyNum)(
9109         ISpRecognizer* This,
9110         LPCWSTR pName,
9111         LONG lValue);
9112 
9113     HRESULT (STDMETHODCALLTYPE *GetPropertyNum)(
9114         ISpRecognizer* This,
9115         LPCWSTR pName,
9116         LONG *plValue);
9117 
9118     HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
9119         ISpRecognizer* This,
9120         LPCWSTR pName,
9121         LPCWSTR pValue);
9122 
9123     HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
9124         ISpRecognizer* This,
9125         LPCWSTR pName,
9126         LPWSTR *ppCoMemValue);
9127 
9128     /*** ISpRecognizer methods ***/
9129     HRESULT (STDMETHODCALLTYPE *SetRecognizer)(
9130         ISpRecognizer* This,
9131         ISpObjectToken *pRecognizer);
9132 
9133     HRESULT (STDMETHODCALLTYPE *GetRecognizer)(
9134         ISpRecognizer* This,
9135         ISpObjectToken **ppRecognizer);
9136 
9137     HRESULT (STDMETHODCALLTYPE *SetInput)(
9138         ISpRecognizer* This,
9139         IUnknown *pUnkInput,
9140         WINBOOL fAllowFormatChanges);
9141 
9142     HRESULT (STDMETHODCALLTYPE *GetInputObjectToken)(
9143         ISpRecognizer* This,
9144         ISpObjectToken **ppToken);
9145 
9146     HRESULT (STDMETHODCALLTYPE *GetInputStream)(
9147         ISpRecognizer* This,
9148         ISpStreamFormat **ppStream);
9149 
9150     HRESULT (STDMETHODCALLTYPE *CreateRecoContext)(
9151         ISpRecognizer* This,
9152         ISpRecoContext **ppNewCtxt);
9153 
9154     HRESULT (STDMETHODCALLTYPE *GetRecoProfile)(
9155         ISpRecognizer* This,
9156         ISpObjectToken **ppToken);
9157 
9158     HRESULT (STDMETHODCALLTYPE *SetRecoProfile)(
9159         ISpRecognizer* This,
9160         ISpObjectToken *pToken);
9161 
9162     HRESULT (STDMETHODCALLTYPE *IsSharedInstance)(
9163         ISpRecognizer* This);
9164 
9165     HRESULT (STDMETHODCALLTYPE *GetRecoState)(
9166         ISpRecognizer* This,
9167         SPRECOSTATE *pState);
9168 
9169     HRESULT (STDMETHODCALLTYPE *SetRecoState)(
9170         ISpRecognizer* This,
9171         SPRECOSTATE NewState);
9172 
9173     HRESULT (STDMETHODCALLTYPE *GetStatus)(
9174         ISpRecognizer* This,
9175         SPRECOGNIZERSTATUS *pStatus);
9176 
9177     HRESULT (STDMETHODCALLTYPE *GetFormat)(
9178         ISpRecognizer* This,
9179         SPSTREAMFORMATTYPE WaveFormatType,
9180         GUID *pFormatId,
9181         WAVEFORMATEX **ppCoMemWFEX);
9182 
9183     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
9184         ISpRecognizer* This,
9185         LPCWSTR pszTypeOfUI,
9186         void *pvExtraData,
9187         ULONG cbExtraData,
9188         WINBOOL *pfSupported);
9189 
9190     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
9191         ISpRecognizer* This,
9192         HWND hwndParent,
9193         LPCWSTR pszTitle,
9194         LPCWSTR pszTypeOfUI,
9195         void *pvExtraData,
9196         ULONG cbExtraData);
9197 
9198     HRESULT (STDMETHODCALLTYPE *EmulateRecognition)(
9199         ISpRecognizer* This,
9200         ISpPhrase *pPhrase);
9201 
9202     END_INTERFACE
9203 } ISpRecognizerVtbl;
9204 interface ISpRecognizer {
9205     CONST_VTBL ISpRecognizerVtbl* lpVtbl;
9206 };
9207 
9208 #ifdef COBJMACROS
9209 #ifndef WIDL_C_INLINE_WRAPPERS
9210 /*** IUnknown methods ***/
9211 #define ISpRecognizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9212 #define ISpRecognizer_AddRef(This) (This)->lpVtbl->AddRef(This)
9213 #define ISpRecognizer_Release(This) (This)->lpVtbl->Release(This)
9214 /*** ISpProperties methods ***/
9215 #define ISpRecognizer_SetPropertyNum(This,pName,lValue) (This)->lpVtbl->SetPropertyNum(This,pName,lValue)
9216 #define ISpRecognizer_GetPropertyNum(This,pName,plValue) (This)->lpVtbl->GetPropertyNum(This,pName,plValue)
9217 #define ISpRecognizer_SetPropertyString(This,pName,pValue) (This)->lpVtbl->SetPropertyString(This,pName,pValue)
9218 #define ISpRecognizer_GetPropertyString(This,pName,ppCoMemValue) (This)->lpVtbl->GetPropertyString(This,pName,ppCoMemValue)
9219 /*** ISpRecognizer methods ***/
9220 #define ISpRecognizer_SetRecognizer(This,pRecognizer) (This)->lpVtbl->SetRecognizer(This,pRecognizer)
9221 #define ISpRecognizer_GetRecognizer(This,ppRecognizer) (This)->lpVtbl->GetRecognizer(This,ppRecognizer)
9222 #define ISpRecognizer_SetInput(This,pUnkInput,fAllowFormatChanges) (This)->lpVtbl->SetInput(This,pUnkInput,fAllowFormatChanges)
9223 #define ISpRecognizer_GetInputObjectToken(This,ppToken) (This)->lpVtbl->GetInputObjectToken(This,ppToken)
9224 #define ISpRecognizer_GetInputStream(This,ppStream) (This)->lpVtbl->GetInputStream(This,ppStream)
9225 #define ISpRecognizer_CreateRecoContext(This,ppNewCtxt) (This)->lpVtbl->CreateRecoContext(This,ppNewCtxt)
9226 #define ISpRecognizer_GetRecoProfile(This,ppToken) (This)->lpVtbl->GetRecoProfile(This,ppToken)
9227 #define ISpRecognizer_SetRecoProfile(This,pToken) (This)->lpVtbl->SetRecoProfile(This,pToken)
9228 #define ISpRecognizer_IsSharedInstance(This) (This)->lpVtbl->IsSharedInstance(This)
9229 #define ISpRecognizer_GetRecoState(This,pState) (This)->lpVtbl->GetRecoState(This,pState)
9230 #define ISpRecognizer_SetRecoState(This,NewState) (This)->lpVtbl->SetRecoState(This,NewState)
9231 #define ISpRecognizer_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
9232 #define ISpRecognizer_GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX) (This)->lpVtbl->GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX)
9233 #define ISpRecognizer_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported)
9234 #define ISpRecognizer_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData)
9235 #define ISpRecognizer_EmulateRecognition(This,pPhrase) (This)->lpVtbl->EmulateRecognition(This,pPhrase)
9236 #else
9237 /*** IUnknown methods ***/
9238 static FORCEINLINE HRESULT ISpRecognizer_QueryInterface(ISpRecognizer* This,REFIID riid,void **ppvObject) {
9239     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9240 }
9241 static FORCEINLINE ULONG ISpRecognizer_AddRef(ISpRecognizer* This) {
9242     return This->lpVtbl->AddRef(This);
9243 }
9244 static FORCEINLINE ULONG ISpRecognizer_Release(ISpRecognizer* This) {
9245     return This->lpVtbl->Release(This);
9246 }
9247 /*** ISpProperties methods ***/
9248 static FORCEINLINE HRESULT ISpRecognizer_SetPropertyNum(ISpRecognizer* This,LPCWSTR pName,LONG lValue) {
9249     return This->lpVtbl->SetPropertyNum(This,pName,lValue);
9250 }
9251 static FORCEINLINE HRESULT ISpRecognizer_GetPropertyNum(ISpRecognizer* This,LPCWSTR pName,LONG *plValue) {
9252     return This->lpVtbl->GetPropertyNum(This,pName,plValue);
9253 }
9254 static FORCEINLINE HRESULT ISpRecognizer_SetPropertyString(ISpRecognizer* This,LPCWSTR pName,LPCWSTR pValue) {
9255     return This->lpVtbl->SetPropertyString(This,pName,pValue);
9256 }
9257 static FORCEINLINE HRESULT ISpRecognizer_GetPropertyString(ISpRecognizer* This,LPCWSTR pName,LPWSTR *ppCoMemValue) {
9258     return This->lpVtbl->GetPropertyString(This,pName,ppCoMemValue);
9259 }
9260 /*** ISpRecognizer methods ***/
9261 static FORCEINLINE HRESULT ISpRecognizer_SetRecognizer(ISpRecognizer* This,ISpObjectToken *pRecognizer) {
9262     return This->lpVtbl->SetRecognizer(This,pRecognizer);
9263 }
9264 static FORCEINLINE HRESULT ISpRecognizer_GetRecognizer(ISpRecognizer* This,ISpObjectToken **ppRecognizer) {
9265     return This->lpVtbl->GetRecognizer(This,ppRecognizer);
9266 }
9267 static FORCEINLINE HRESULT ISpRecognizer_SetInput(ISpRecognizer* This,IUnknown *pUnkInput,WINBOOL fAllowFormatChanges) {
9268     return This->lpVtbl->SetInput(This,pUnkInput,fAllowFormatChanges);
9269 }
9270 static FORCEINLINE HRESULT ISpRecognizer_GetInputObjectToken(ISpRecognizer* This,ISpObjectToken **ppToken) {
9271     return This->lpVtbl->GetInputObjectToken(This,ppToken);
9272 }
9273 static FORCEINLINE HRESULT ISpRecognizer_GetInputStream(ISpRecognizer* This,ISpStreamFormat **ppStream) {
9274     return This->lpVtbl->GetInputStream(This,ppStream);
9275 }
9276 static FORCEINLINE HRESULT ISpRecognizer_CreateRecoContext(ISpRecognizer* This,ISpRecoContext **ppNewCtxt) {
9277     return This->lpVtbl->CreateRecoContext(This,ppNewCtxt);
9278 }
9279 static FORCEINLINE HRESULT ISpRecognizer_GetRecoProfile(ISpRecognizer* This,ISpObjectToken **ppToken) {
9280     return This->lpVtbl->GetRecoProfile(This,ppToken);
9281 }
9282 static FORCEINLINE HRESULT ISpRecognizer_SetRecoProfile(ISpRecognizer* This,ISpObjectToken *pToken) {
9283     return This->lpVtbl->SetRecoProfile(This,pToken);
9284 }
9285 static FORCEINLINE HRESULT ISpRecognizer_IsSharedInstance(ISpRecognizer* This) {
9286     return This->lpVtbl->IsSharedInstance(This);
9287 }
9288 static FORCEINLINE HRESULT ISpRecognizer_GetRecoState(ISpRecognizer* This,SPRECOSTATE *pState) {
9289     return This->lpVtbl->GetRecoState(This,pState);
9290 }
9291 static FORCEINLINE HRESULT ISpRecognizer_SetRecoState(ISpRecognizer* This,SPRECOSTATE NewState) {
9292     return This->lpVtbl->SetRecoState(This,NewState);
9293 }
9294 static FORCEINLINE HRESULT ISpRecognizer_GetStatus(ISpRecognizer* This,SPRECOGNIZERSTATUS *pStatus) {
9295     return This->lpVtbl->GetStatus(This,pStatus);
9296 }
9297 static FORCEINLINE HRESULT ISpRecognizer_GetFormat(ISpRecognizer* This,SPSTREAMFORMATTYPE WaveFormatType,GUID *pFormatId,WAVEFORMATEX **ppCoMemWFEX) {
9298     return This->lpVtbl->GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX);
9299 }
9300 static FORCEINLINE HRESULT ISpRecognizer_IsUISupported(ISpRecognizer* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,WINBOOL *pfSupported) {
9301     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported);
9302 }
9303 static FORCEINLINE HRESULT ISpRecognizer_DisplayUI(ISpRecognizer* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData) {
9304     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData);
9305 }
9306 static FORCEINLINE HRESULT ISpRecognizer_EmulateRecognition(ISpRecognizer* This,ISpPhrase *pPhrase) {
9307     return This->lpVtbl->EmulateRecognition(This,pPhrase);
9308 }
9309 #endif
9310 #endif
9311 
9312 #endif
9313 
9314 HRESULT STDMETHODCALLTYPE ISpRecognizer_SetRecognizer_Proxy(
9315     ISpRecognizer* This,
9316     ISpObjectToken *pRecognizer);
9317 void __RPC_STUB ISpRecognizer_SetRecognizer_Stub(
9318     IRpcStubBuffer* This,
9319     IRpcChannelBuffer* pRpcChannelBuffer,
9320     PRPC_MESSAGE pRpcMessage,
9321     DWORD* pdwStubPhase);
9322 HRESULT STDMETHODCALLTYPE ISpRecognizer_GetRecognizer_Proxy(
9323     ISpRecognizer* This,
9324     ISpObjectToken **ppRecognizer);
9325 void __RPC_STUB ISpRecognizer_GetRecognizer_Stub(
9326     IRpcStubBuffer* This,
9327     IRpcChannelBuffer* pRpcChannelBuffer,
9328     PRPC_MESSAGE pRpcMessage,
9329     DWORD* pdwStubPhase);
9330 HRESULT STDMETHODCALLTYPE ISpRecognizer_SetInput_Proxy(
9331     ISpRecognizer* This,
9332     IUnknown *pUnkInput,
9333     WINBOOL fAllowFormatChanges);
9334 void __RPC_STUB ISpRecognizer_SetInput_Stub(
9335     IRpcStubBuffer* This,
9336     IRpcChannelBuffer* pRpcChannelBuffer,
9337     PRPC_MESSAGE pRpcMessage,
9338     DWORD* pdwStubPhase);
9339 HRESULT STDMETHODCALLTYPE ISpRecognizer_GetInputObjectToken_Proxy(
9340     ISpRecognizer* This,
9341     ISpObjectToken **ppToken);
9342 void __RPC_STUB ISpRecognizer_GetInputObjectToken_Stub(
9343     IRpcStubBuffer* This,
9344     IRpcChannelBuffer* pRpcChannelBuffer,
9345     PRPC_MESSAGE pRpcMessage,
9346     DWORD* pdwStubPhase);
9347 HRESULT STDMETHODCALLTYPE ISpRecognizer_GetInputStream_Proxy(
9348     ISpRecognizer* This,
9349     ISpStreamFormat **ppStream);
9350 void __RPC_STUB ISpRecognizer_GetInputStream_Stub(
9351     IRpcStubBuffer* This,
9352     IRpcChannelBuffer* pRpcChannelBuffer,
9353     PRPC_MESSAGE pRpcMessage,
9354     DWORD* pdwStubPhase);
9355 HRESULT STDMETHODCALLTYPE ISpRecognizer_CreateRecoContext_Proxy(
9356     ISpRecognizer* This,
9357     ISpRecoContext **ppNewCtxt);
9358 void __RPC_STUB ISpRecognizer_CreateRecoContext_Stub(
9359     IRpcStubBuffer* This,
9360     IRpcChannelBuffer* pRpcChannelBuffer,
9361     PRPC_MESSAGE pRpcMessage,
9362     DWORD* pdwStubPhase);
9363 HRESULT STDMETHODCALLTYPE ISpRecognizer_GetRecoProfile_Proxy(
9364     ISpRecognizer* This,
9365     ISpObjectToken **ppToken);
9366 void __RPC_STUB ISpRecognizer_GetRecoProfile_Stub(
9367     IRpcStubBuffer* This,
9368     IRpcChannelBuffer* pRpcChannelBuffer,
9369     PRPC_MESSAGE pRpcMessage,
9370     DWORD* pdwStubPhase);
9371 HRESULT STDMETHODCALLTYPE ISpRecognizer_SetRecoProfile_Proxy(
9372     ISpRecognizer* This,
9373     ISpObjectToken *pToken);
9374 void __RPC_STUB ISpRecognizer_SetRecoProfile_Stub(
9375     IRpcStubBuffer* This,
9376     IRpcChannelBuffer* pRpcChannelBuffer,
9377     PRPC_MESSAGE pRpcMessage,
9378     DWORD* pdwStubPhase);
9379 HRESULT STDMETHODCALLTYPE ISpRecognizer_IsSharedInstance_Proxy(
9380     ISpRecognizer* This);
9381 void __RPC_STUB ISpRecognizer_IsSharedInstance_Stub(
9382     IRpcStubBuffer* This,
9383     IRpcChannelBuffer* pRpcChannelBuffer,
9384     PRPC_MESSAGE pRpcMessage,
9385     DWORD* pdwStubPhase);
9386 HRESULT STDMETHODCALLTYPE ISpRecognizer_GetRecoState_Proxy(
9387     ISpRecognizer* This,
9388     SPRECOSTATE *pState);
9389 void __RPC_STUB ISpRecognizer_GetRecoState_Stub(
9390     IRpcStubBuffer* This,
9391     IRpcChannelBuffer* pRpcChannelBuffer,
9392     PRPC_MESSAGE pRpcMessage,
9393     DWORD* pdwStubPhase);
9394 HRESULT STDMETHODCALLTYPE ISpRecognizer_SetRecoState_Proxy(
9395     ISpRecognizer* This,
9396     SPRECOSTATE NewState);
9397 void __RPC_STUB ISpRecognizer_SetRecoState_Stub(
9398     IRpcStubBuffer* This,
9399     IRpcChannelBuffer* pRpcChannelBuffer,
9400     PRPC_MESSAGE pRpcMessage,
9401     DWORD* pdwStubPhase);
9402 HRESULT STDMETHODCALLTYPE ISpRecognizer_GetStatus_Proxy(
9403     ISpRecognizer* This,
9404     SPRECOGNIZERSTATUS *pStatus);
9405 void __RPC_STUB ISpRecognizer_GetStatus_Stub(
9406     IRpcStubBuffer* This,
9407     IRpcChannelBuffer* pRpcChannelBuffer,
9408     PRPC_MESSAGE pRpcMessage,
9409     DWORD* pdwStubPhase);
9410 HRESULT STDMETHODCALLTYPE ISpRecognizer_GetFormat_Proxy(
9411     ISpRecognizer* This,
9412     SPSTREAMFORMATTYPE WaveFormatType,
9413     GUID *pFormatId,
9414     WAVEFORMATEX **ppCoMemWFEX);
9415 void __RPC_STUB ISpRecognizer_GetFormat_Stub(
9416     IRpcStubBuffer* This,
9417     IRpcChannelBuffer* pRpcChannelBuffer,
9418     PRPC_MESSAGE pRpcMessage,
9419     DWORD* pdwStubPhase);
9420 HRESULT STDMETHODCALLTYPE ISpRecognizer_EmulateRecognition_Proxy(
9421     ISpRecognizer* This,
9422     ISpPhrase *pPhrase);
9423 void __RPC_STUB ISpRecognizer_EmulateRecognition_Stub(
9424     IRpcStubBuffer* This,
9425     IRpcChannelBuffer* pRpcChannelBuffer,
9426     PRPC_MESSAGE pRpcMessage,
9427     DWORD* pdwStubPhase);
9428 
9429 #endif  /* __ISpRecognizer_INTERFACE_DEFINED__ */
9430 
9431 
9432 DEFINE_GUID(LIBID_SpeechLib, 0xc866ca3a, 0x32f7, 0x11d2, 0x96,0x02, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
9433 
9434 #ifndef __ISpeechDataKey_FWD_DEFINED__
9435 #define __ISpeechDataKey_FWD_DEFINED__
9436 typedef interface ISpeechDataKey ISpeechDataKey;
9437 #endif
9438 
9439 #ifndef __ISpeechObjectToken_FWD_DEFINED__
9440 #define __ISpeechObjectToken_FWD_DEFINED__
9441 typedef interface ISpeechObjectToken ISpeechObjectToken;
9442 #endif
9443 
9444 #ifndef __ISpeechObjectTokens_FWD_DEFINED__
9445 #define __ISpeechObjectTokens_FWD_DEFINED__
9446 typedef interface ISpeechObjectTokens ISpeechObjectTokens;
9447 #endif
9448 
9449 #ifndef __ISpeechObjectTokenCategory_FWD_DEFINED__
9450 #define __ISpeechObjectTokenCategory_FWD_DEFINED__
9451 typedef interface ISpeechObjectTokenCategory ISpeechObjectTokenCategory;
9452 #endif
9453 
9454 #ifndef __ISpeechAudioBufferInfo_FWD_DEFINED__
9455 #define __ISpeechAudioBufferInfo_FWD_DEFINED__
9456 typedef interface ISpeechAudioBufferInfo ISpeechAudioBufferInfo;
9457 #endif
9458 
9459 #ifndef __ISpeechAudioStatus_FWD_DEFINED__
9460 #define __ISpeechAudioStatus_FWD_DEFINED__
9461 typedef interface ISpeechAudioStatus ISpeechAudioStatus;
9462 #endif
9463 
9464 #ifndef __ISpeechAudioFormat_FWD_DEFINED__
9465 #define __ISpeechAudioFormat_FWD_DEFINED__
9466 typedef interface ISpeechAudioFormat ISpeechAudioFormat;
9467 #endif
9468 
9469 #ifndef __ISpeechWaveFormatEx_FWD_DEFINED__
9470 #define __ISpeechWaveFormatEx_FWD_DEFINED__
9471 typedef interface ISpeechWaveFormatEx ISpeechWaveFormatEx;
9472 #endif
9473 
9474 #ifndef __ISpeechBaseStream_FWD_DEFINED__
9475 #define __ISpeechBaseStream_FWD_DEFINED__
9476 typedef interface ISpeechBaseStream ISpeechBaseStream;
9477 #endif
9478 
9479 #ifndef __ISpeechFileStream_FWD_DEFINED__
9480 #define __ISpeechFileStream_FWD_DEFINED__
9481 typedef interface ISpeechFileStream ISpeechFileStream;
9482 #endif
9483 
9484 #ifndef __ISpeechMemoryStream_FWD_DEFINED__
9485 #define __ISpeechMemoryStream_FWD_DEFINED__
9486 typedef interface ISpeechMemoryStream ISpeechMemoryStream;
9487 #endif
9488 
9489 #ifndef __ISpeechCustomStream_FWD_DEFINED__
9490 #define __ISpeechCustomStream_FWD_DEFINED__
9491 typedef interface ISpeechCustomStream ISpeechCustomStream;
9492 #endif
9493 
9494 #ifndef __ISpeechAudio_FWD_DEFINED__
9495 #define __ISpeechAudio_FWD_DEFINED__
9496 typedef interface ISpeechAudio ISpeechAudio;
9497 #endif
9498 
9499 #ifndef __ISpeechMMSysAudio_FWD_DEFINED__
9500 #define __ISpeechMMSysAudio_FWD_DEFINED__
9501 typedef interface ISpeechMMSysAudio ISpeechMMSysAudio;
9502 #endif
9503 
9504 #ifndef __ISpeechVoice_FWD_DEFINED__
9505 #define __ISpeechVoice_FWD_DEFINED__
9506 typedef interface ISpeechVoice ISpeechVoice;
9507 #endif
9508 
9509 #ifndef __ISpeechVoiceStatus_FWD_DEFINED__
9510 #define __ISpeechVoiceStatus_FWD_DEFINED__
9511 typedef interface ISpeechVoiceStatus ISpeechVoiceStatus;
9512 #endif
9513 
9514 #ifndef ___ISpeechVoiceEvents_FWD_DEFINED__
9515 #define ___ISpeechVoiceEvents_FWD_DEFINED__
9516 typedef interface _ISpeechVoiceEvents _ISpeechVoiceEvents;
9517 #endif
9518 
9519 #ifndef __ISpeechRecognizer_FWD_DEFINED__
9520 #define __ISpeechRecognizer_FWD_DEFINED__
9521 typedef interface ISpeechRecognizer ISpeechRecognizer;
9522 #endif
9523 
9524 #ifndef __ISpeechRecognizerStatus_FWD_DEFINED__
9525 #define __ISpeechRecognizerStatus_FWD_DEFINED__
9526 typedef interface ISpeechRecognizerStatus ISpeechRecognizerStatus;
9527 #endif
9528 
9529 #ifndef __ISpeechRecoContext_FWD_DEFINED__
9530 #define __ISpeechRecoContext_FWD_DEFINED__
9531 typedef interface ISpeechRecoContext ISpeechRecoContext;
9532 #endif
9533 
9534 #ifndef __ISpeechRecoGrammar_FWD_DEFINED__
9535 #define __ISpeechRecoGrammar_FWD_DEFINED__
9536 typedef interface ISpeechRecoGrammar ISpeechRecoGrammar;
9537 #endif
9538 
9539 #ifndef ___ISpeechRecoContextEvents_FWD_DEFINED__
9540 #define ___ISpeechRecoContextEvents_FWD_DEFINED__
9541 typedef interface _ISpeechRecoContextEvents _ISpeechRecoContextEvents;
9542 #endif
9543 
9544 #ifndef __ISpeechGrammarRule_FWD_DEFINED__
9545 #define __ISpeechGrammarRule_FWD_DEFINED__
9546 typedef interface ISpeechGrammarRule ISpeechGrammarRule;
9547 #endif
9548 
9549 #ifndef __ISpeechGrammarRules_FWD_DEFINED__
9550 #define __ISpeechGrammarRules_FWD_DEFINED__
9551 typedef interface ISpeechGrammarRules ISpeechGrammarRules;
9552 #endif
9553 
9554 #ifndef __ISpeechGrammarRuleState_FWD_DEFINED__
9555 #define __ISpeechGrammarRuleState_FWD_DEFINED__
9556 typedef interface ISpeechGrammarRuleState ISpeechGrammarRuleState;
9557 #endif
9558 
9559 #ifndef __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
9560 #define __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
9561 typedef interface ISpeechGrammarRuleStateTransition ISpeechGrammarRuleStateTransition;
9562 #endif
9563 
9564 #ifndef __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
9565 #define __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
9566 typedef interface ISpeechGrammarRuleStateTransitions ISpeechGrammarRuleStateTransitions;
9567 #endif
9568 
9569 #ifndef __ISpeechTextSelectionInformation_FWD_DEFINED__
9570 #define __ISpeechTextSelectionInformation_FWD_DEFINED__
9571 typedef interface ISpeechTextSelectionInformation ISpeechTextSelectionInformation;
9572 #endif
9573 
9574 #ifndef __ISpeechRecoResult_FWD_DEFINED__
9575 #define __ISpeechRecoResult_FWD_DEFINED__
9576 typedef interface ISpeechRecoResult ISpeechRecoResult;
9577 #endif
9578 
9579 #ifndef __ISpeechRecoResultTimes_FWD_DEFINED__
9580 #define __ISpeechRecoResultTimes_FWD_DEFINED__
9581 typedef interface ISpeechRecoResultTimes ISpeechRecoResultTimes;
9582 #endif
9583 
9584 #ifndef __ISpeechPhraseAlternate_FWD_DEFINED__
9585 #define __ISpeechPhraseAlternate_FWD_DEFINED__
9586 typedef interface ISpeechPhraseAlternate ISpeechPhraseAlternate;
9587 #endif
9588 
9589 #ifndef __ISpeechPhraseAlternates_FWD_DEFINED__
9590 #define __ISpeechPhraseAlternates_FWD_DEFINED__
9591 typedef interface ISpeechPhraseAlternates ISpeechPhraseAlternates;
9592 #endif
9593 
9594 #ifndef __ISpeechPhraseInfo_FWD_DEFINED__
9595 #define __ISpeechPhraseInfo_FWD_DEFINED__
9596 typedef interface ISpeechPhraseInfo ISpeechPhraseInfo;
9597 #endif
9598 
9599 #ifndef __ISpeechPhraseElement_FWD_DEFINED__
9600 #define __ISpeechPhraseElement_FWD_DEFINED__
9601 typedef interface ISpeechPhraseElement ISpeechPhraseElement;
9602 #endif
9603 
9604 #ifndef __ISpeechPhraseElements_FWD_DEFINED__
9605 #define __ISpeechPhraseElements_FWD_DEFINED__
9606 typedef interface ISpeechPhraseElements ISpeechPhraseElements;
9607 #endif
9608 
9609 #ifndef __ISpeechPhraseReplacement_FWD_DEFINED__
9610 #define __ISpeechPhraseReplacement_FWD_DEFINED__
9611 typedef interface ISpeechPhraseReplacement ISpeechPhraseReplacement;
9612 #endif
9613 
9614 #ifndef __ISpeechPhraseReplacements_FWD_DEFINED__
9615 #define __ISpeechPhraseReplacements_FWD_DEFINED__
9616 typedef interface ISpeechPhraseReplacements ISpeechPhraseReplacements;
9617 #endif
9618 
9619 #ifndef __ISpeechPhraseProperty_FWD_DEFINED__
9620 #define __ISpeechPhraseProperty_FWD_DEFINED__
9621 typedef interface ISpeechPhraseProperty ISpeechPhraseProperty;
9622 #endif
9623 
9624 #ifndef __ISpeechPhraseProperties_FWD_DEFINED__
9625 #define __ISpeechPhraseProperties_FWD_DEFINED__
9626 typedef interface ISpeechPhraseProperties ISpeechPhraseProperties;
9627 #endif
9628 
9629 #ifndef __ISpeechPhraseRule_FWD_DEFINED__
9630 #define __ISpeechPhraseRule_FWD_DEFINED__
9631 typedef interface ISpeechPhraseRule ISpeechPhraseRule;
9632 #endif
9633 
9634 #ifndef __ISpeechPhraseRules_FWD_DEFINED__
9635 #define __ISpeechPhraseRules_FWD_DEFINED__
9636 typedef interface ISpeechPhraseRules ISpeechPhraseRules;
9637 #endif
9638 
9639 #ifndef __ISpeechLexicon_FWD_DEFINED__
9640 #define __ISpeechLexicon_FWD_DEFINED__
9641 typedef interface ISpeechLexicon ISpeechLexicon;
9642 #endif
9643 
9644 #ifndef __ISpeechLexiconWords_FWD_DEFINED__
9645 #define __ISpeechLexiconWords_FWD_DEFINED__
9646 typedef interface ISpeechLexiconWords ISpeechLexiconWords;
9647 #endif
9648 
9649 #ifndef __ISpeechLexiconWord_FWD_DEFINED__
9650 #define __ISpeechLexiconWord_FWD_DEFINED__
9651 typedef interface ISpeechLexiconWord ISpeechLexiconWord;
9652 #endif
9653 
9654 #ifndef __ISpeechLexiconPronunciations_FWD_DEFINED__
9655 #define __ISpeechLexiconPronunciations_FWD_DEFINED__
9656 typedef interface ISpeechLexiconPronunciations ISpeechLexiconPronunciations;
9657 #endif
9658 
9659 #ifndef __ISpeechLexiconPronunciation_FWD_DEFINED__
9660 #define __ISpeechLexiconPronunciation_FWD_DEFINED__
9661 typedef interface ISpeechLexiconPronunciation ISpeechLexiconPronunciation;
9662 #endif
9663 
9664 typedef LONG SpeechLanguageId;
9665 #define __SpeechStringConstants_MODULE_DEFINED__
9666 typedef enum DISPID_SpeechDataKey {
9667     DISPID_SDKSetBinaryValue = 1,
9668     DISPID_SDKGetBinaryValue = 2,
9669     DISPID_SDKSetStringValue = 3,
9670     DISPID_SDKGetStringValue = 4,
9671     DISPID_SDKSetLongValue = 5,
9672     DISPID_SDKGetlongValue = 6,
9673     DISPID_SDKOpenKey = 7,
9674     DISPID_SDKCreateKey = 8,
9675     DISPID_SDKDeleteKey = 9,
9676     DISPID_SDKDeleteValue = 10,
9677     DISPID_SDKEnumKeys = 11,
9678     DISPID_SDKEnumValues = 12
9679 } DISPID_SpeechDataKey;
9680 typedef enum DISPID_SpeechObjectToken {
9681     DISPID_SOTId = 1,
9682     DISPID_SOTDataKey = 2,
9683     DISPID_SOTCategory = 3,
9684     DISPID_SOTGetDescription = 4,
9685     DISPID_SOTSetId = 5,
9686     DISPID_SOTGetAttribute = 6,
9687     DISPID_SOTCreateInstance = 7,
9688     DISPID_SOTRemove = 8,
9689     DISPID_SOTGetStorageFileName = 9,
9690     DISPID_SOTRemoveStorageFileName = 10,
9691     DISPID_SOTIsUISupported = 11,
9692     DISPID_SOTDisplayUI = 12,
9693     DISPID_SOTMatchesAttributes = 13
9694 } DISPID_SpeechObjectToken;
9695 typedef enum SpeechDataKeyLocation {
9696     SDKLDefaultLocation = SPDKL_DefaultLocation,
9697     SDKLCurrentUser = SPDKL_CurrentUser,
9698     SDKLLocalMachine = SPDKL_LocalMachine,
9699     SDKLCurrentConfig = SPDKL_CurrentConfig
9700 } SpeechDataKeyLocation;
9701 typedef enum SpeechTokenContext {
9702     STCInprocServer = CLSCTX_INPROC_SERVER,
9703     STCInprocHandler = CLSCTX_INPROC_HANDLER,
9704     STCLocalServer = CLSCTX_LOCAL_SERVER,
9705     STCRemoteServer = CLSCTX_REMOTE_SERVER,
9706     STCAll = ((CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER) | CLSCTX_LOCAL_SERVER) | CLSCTX_REMOTE_SERVER
9707 } SpeechTokenContext;
9708 typedef enum SpeechTokenShellFolder {
9709     STSF_AppData = 0x1a,
9710     STSF_LocalAppData = 0x1c,
9711     STSF_CommonAppData = 0x23,
9712     STSF_FlagCreate = 0x8000
9713 } SpeechTokenShellFolder;
9714 typedef enum DISPID_SpeechObjectTokens {
9715     DISPID_SOTsCount = 1,
9716     DISPID_SOTsItem = DISPID_VALUE,
9717     DISPID_SOTs_NewEnum = DISPID_NEWENUM
9718 } DISPID_SpeechObjectTokens;
9719 typedef enum DISPID_SpeechObjectTokenCategory {
9720     DISPID_SOTCId = 1,
9721     DISPID_SOTCDefault = 2,
9722     DISPID_SOTCSetId = 3,
9723     DISPID_SOTCGetDataKey = 4,
9724     DISPID_SOTCEnumerateTokens = 5
9725 } DISPID_SpeechObjectTokenCategory;
9726 /*****************************************************************************
9727  * ISpeechDataKey interface
9728  */
9729 #ifndef __ISpeechDataKey_INTERFACE_DEFINED__
9730 #define __ISpeechDataKey_INTERFACE_DEFINED__
9731 
9732 DEFINE_GUID(IID_ISpeechDataKey, 0xce17c09b, 0x4efa, 0x44d5, 0xa4,0xc9, 0x59,0xd9,0x58,0x5a,0xb0,0xcd);
9733 #if defined(__cplusplus) && !defined(CINTERFACE)
9734 MIDL_INTERFACE("ce17c09b-4efa-44d5-a4c9-59d9585ab0cd")
9735 ISpeechDataKey : public IDispatch
9736 {
9737     virtual HRESULT STDMETHODCALLTYPE SetBinaryValue(
9738         const BSTR ValueName,
9739         VARIANT Value) = 0;
9740 
9741     virtual HRESULT STDMETHODCALLTYPE GetBinaryValue(
9742         const BSTR ValueName,
9743         VARIANT *Value) = 0;
9744 
9745     virtual HRESULT STDMETHODCALLTYPE SetStringValue(
9746         const BSTR ValueName,
9747         const BSTR Value) = 0;
9748 
9749     virtual HRESULT STDMETHODCALLTYPE GetStringValue(
9750         const BSTR ValueName,
9751         BSTR *Value) = 0;
9752 
9753     virtual HRESULT STDMETHODCALLTYPE SetLongValue(
9754         const BSTR ValueName,
9755         LONG Value) = 0;
9756 
9757     virtual HRESULT STDMETHODCALLTYPE GetLongValue(
9758         const BSTR ValueName,
9759         LONG *Value) = 0;
9760 
9761     virtual HRESULT STDMETHODCALLTYPE OpenKey(
9762         const BSTR SubKeyName,
9763         ISpeechDataKey **SubKey) = 0;
9764 
9765     virtual HRESULT STDMETHODCALLTYPE CreateKey(
9766         const BSTR SubKeyName,
9767         ISpeechDataKey **SubKey) = 0;
9768 
9769     virtual HRESULT STDMETHODCALLTYPE DeleteKey(
9770         const BSTR SubKeyName) = 0;
9771 
9772     virtual HRESULT STDMETHODCALLTYPE DeleteValue(
9773         const BSTR ValueName) = 0;
9774 
9775     virtual HRESULT STDMETHODCALLTYPE EnumKeys(
9776         LONG Index,
9777         BSTR *SubKeyName) = 0;
9778 
9779     virtual HRESULT STDMETHODCALLTYPE EnumValues(
9780         LONG Index,
9781         BSTR *ValueName) = 0;
9782 
9783 };
9784 #ifdef __CRT_UUID_DECL
9785 __CRT_UUID_DECL(ISpeechDataKey, 0xce17c09b, 0x4efa, 0x44d5, 0xa4,0xc9, 0x59,0xd9,0x58,0x5a,0xb0,0xcd)
9786 #endif
9787 #else
9788 typedef struct ISpeechDataKeyVtbl {
9789     BEGIN_INTERFACE
9790 
9791     /*** IUnknown methods ***/
9792     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9793         ISpeechDataKey* This,
9794         REFIID riid,
9795         void **ppvObject);
9796 
9797     ULONG (STDMETHODCALLTYPE *AddRef)(
9798         ISpeechDataKey* This);
9799 
9800     ULONG (STDMETHODCALLTYPE *Release)(
9801         ISpeechDataKey* This);
9802 
9803     /*** IDispatch methods ***/
9804     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
9805         ISpeechDataKey* This,
9806         UINT *pctinfo);
9807 
9808     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
9809         ISpeechDataKey* This,
9810         UINT iTInfo,
9811         LCID lcid,
9812         ITypeInfo **ppTInfo);
9813 
9814     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
9815         ISpeechDataKey* This,
9816         REFIID riid,
9817         LPOLESTR *rgszNames,
9818         UINT cNames,
9819         LCID lcid,
9820         DISPID *rgDispId);
9821 
9822     HRESULT (STDMETHODCALLTYPE *Invoke)(
9823         ISpeechDataKey* This,
9824         DISPID dispIdMember,
9825         REFIID riid,
9826         LCID lcid,
9827         WORD wFlags,
9828         DISPPARAMS *pDispParams,
9829         VARIANT *pVarResult,
9830         EXCEPINFO *pExcepInfo,
9831         UINT *puArgErr);
9832 
9833     /*** ISpeechDataKey methods ***/
9834     HRESULT (STDMETHODCALLTYPE *SetBinaryValue)(
9835         ISpeechDataKey* This,
9836         const BSTR ValueName,
9837         VARIANT Value);
9838 
9839     HRESULT (STDMETHODCALLTYPE *GetBinaryValue)(
9840         ISpeechDataKey* This,
9841         const BSTR ValueName,
9842         VARIANT *Value);
9843 
9844     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
9845         ISpeechDataKey* This,
9846         const BSTR ValueName,
9847         const BSTR Value);
9848 
9849     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
9850         ISpeechDataKey* This,
9851         const BSTR ValueName,
9852         BSTR *Value);
9853 
9854     HRESULT (STDMETHODCALLTYPE *SetLongValue)(
9855         ISpeechDataKey* This,
9856         const BSTR ValueName,
9857         LONG Value);
9858 
9859     HRESULT (STDMETHODCALLTYPE *GetLongValue)(
9860         ISpeechDataKey* This,
9861         const BSTR ValueName,
9862         LONG *Value);
9863 
9864     HRESULT (STDMETHODCALLTYPE *OpenKey)(
9865         ISpeechDataKey* This,
9866         const BSTR SubKeyName,
9867         ISpeechDataKey **SubKey);
9868 
9869     HRESULT (STDMETHODCALLTYPE *CreateKey)(
9870         ISpeechDataKey* This,
9871         const BSTR SubKeyName,
9872         ISpeechDataKey **SubKey);
9873 
9874     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
9875         ISpeechDataKey* This,
9876         const BSTR SubKeyName);
9877 
9878     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
9879         ISpeechDataKey* This,
9880         const BSTR ValueName);
9881 
9882     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
9883         ISpeechDataKey* This,
9884         LONG Index,
9885         BSTR *SubKeyName);
9886 
9887     HRESULT (STDMETHODCALLTYPE *EnumValues)(
9888         ISpeechDataKey* This,
9889         LONG Index,
9890         BSTR *ValueName);
9891 
9892     END_INTERFACE
9893 } ISpeechDataKeyVtbl;
9894 interface ISpeechDataKey {
9895     CONST_VTBL ISpeechDataKeyVtbl* lpVtbl;
9896 };
9897 
9898 #ifdef COBJMACROS
9899 #ifndef WIDL_C_INLINE_WRAPPERS
9900 /*** IUnknown methods ***/
9901 #define ISpeechDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9902 #define ISpeechDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
9903 #define ISpeechDataKey_Release(This) (This)->lpVtbl->Release(This)
9904 /*** IDispatch methods ***/
9905 #define ISpeechDataKey_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
9906 #define ISpeechDataKey_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
9907 #define ISpeechDataKey_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
9908 #define ISpeechDataKey_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
9909 /*** ISpeechDataKey methods ***/
9910 #define ISpeechDataKey_SetBinaryValue(This,ValueName,Value) (This)->lpVtbl->SetBinaryValue(This,ValueName,Value)
9911 #define ISpeechDataKey_GetBinaryValue(This,ValueName,Value) (This)->lpVtbl->GetBinaryValue(This,ValueName,Value)
9912 #define ISpeechDataKey_SetStringValue(This,ValueName,Value) (This)->lpVtbl->SetStringValue(This,ValueName,Value)
9913 #define ISpeechDataKey_GetStringValue(This,ValueName,Value) (This)->lpVtbl->GetStringValue(This,ValueName,Value)
9914 #define ISpeechDataKey_SetLongValue(This,ValueName,Value) (This)->lpVtbl->SetLongValue(This,ValueName,Value)
9915 #define ISpeechDataKey_GetLongValue(This,ValueName,Value) (This)->lpVtbl->GetLongValue(This,ValueName,Value)
9916 #define ISpeechDataKey_OpenKey(This,SubKeyName,SubKey) (This)->lpVtbl->OpenKey(This,SubKeyName,SubKey)
9917 #define ISpeechDataKey_CreateKey(This,SubKeyName,SubKey) (This)->lpVtbl->CreateKey(This,SubKeyName,SubKey)
9918 #define ISpeechDataKey_DeleteKey(This,SubKeyName) (This)->lpVtbl->DeleteKey(This,SubKeyName)
9919 #define ISpeechDataKey_DeleteValue(This,ValueName) (This)->lpVtbl->DeleteValue(This,ValueName)
9920 #define ISpeechDataKey_EnumKeys(This,Index,SubKeyName) (This)->lpVtbl->EnumKeys(This,Index,SubKeyName)
9921 #define ISpeechDataKey_EnumValues(This,Index,ValueName) (This)->lpVtbl->EnumValues(This,Index,ValueName)
9922 #else
9923 /*** IUnknown methods ***/
9924 static FORCEINLINE HRESULT ISpeechDataKey_QueryInterface(ISpeechDataKey* This,REFIID riid,void **ppvObject) {
9925     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9926 }
9927 static FORCEINLINE ULONG ISpeechDataKey_AddRef(ISpeechDataKey* This) {
9928     return This->lpVtbl->AddRef(This);
9929 }
9930 static FORCEINLINE ULONG ISpeechDataKey_Release(ISpeechDataKey* This) {
9931     return This->lpVtbl->Release(This);
9932 }
9933 /*** IDispatch methods ***/
9934 static FORCEINLINE HRESULT ISpeechDataKey_GetTypeInfoCount(ISpeechDataKey* This,UINT *pctinfo) {
9935     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
9936 }
9937 static FORCEINLINE HRESULT ISpeechDataKey_GetTypeInfo(ISpeechDataKey* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
9938     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
9939 }
9940 static FORCEINLINE HRESULT ISpeechDataKey_GetIDsOfNames(ISpeechDataKey* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
9941     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
9942 }
9943 static FORCEINLINE HRESULT ISpeechDataKey_Invoke(ISpeechDataKey* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
9944     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
9945 }
9946 /*** ISpeechDataKey methods ***/
9947 static FORCEINLINE HRESULT ISpeechDataKey_SetBinaryValue(ISpeechDataKey* This,const BSTR ValueName,VARIANT Value) {
9948     return This->lpVtbl->SetBinaryValue(This,ValueName,Value);
9949 }
9950 static FORCEINLINE HRESULT ISpeechDataKey_GetBinaryValue(ISpeechDataKey* This,const BSTR ValueName,VARIANT *Value) {
9951     return This->lpVtbl->GetBinaryValue(This,ValueName,Value);
9952 }
9953 static FORCEINLINE HRESULT ISpeechDataKey_SetStringValue(ISpeechDataKey* This,const BSTR ValueName,const BSTR Value) {
9954     return This->lpVtbl->SetStringValue(This,ValueName,Value);
9955 }
9956 static FORCEINLINE HRESULT ISpeechDataKey_GetStringValue(ISpeechDataKey* This,const BSTR ValueName,BSTR *Value) {
9957     return This->lpVtbl->GetStringValue(This,ValueName,Value);
9958 }
9959 static FORCEINLINE HRESULT ISpeechDataKey_SetLongValue(ISpeechDataKey* This,const BSTR ValueName,LONG Value) {
9960     return This->lpVtbl->SetLongValue(This,ValueName,Value);
9961 }
9962 static FORCEINLINE HRESULT ISpeechDataKey_GetLongValue(ISpeechDataKey* This,const BSTR ValueName,LONG *Value) {
9963     return This->lpVtbl->GetLongValue(This,ValueName,Value);
9964 }
9965 static FORCEINLINE HRESULT ISpeechDataKey_OpenKey(ISpeechDataKey* This,const BSTR SubKeyName,ISpeechDataKey **SubKey) {
9966     return This->lpVtbl->OpenKey(This,SubKeyName,SubKey);
9967 }
9968 static FORCEINLINE HRESULT ISpeechDataKey_CreateKey(ISpeechDataKey* This,const BSTR SubKeyName,ISpeechDataKey **SubKey) {
9969     return This->lpVtbl->CreateKey(This,SubKeyName,SubKey);
9970 }
9971 static FORCEINLINE HRESULT ISpeechDataKey_DeleteKey(ISpeechDataKey* This,const BSTR SubKeyName) {
9972     return This->lpVtbl->DeleteKey(This,SubKeyName);
9973 }
9974 static FORCEINLINE HRESULT ISpeechDataKey_DeleteValue(ISpeechDataKey* This,const BSTR ValueName) {
9975     return This->lpVtbl->DeleteValue(This,ValueName);
9976 }
9977 static FORCEINLINE HRESULT ISpeechDataKey_EnumKeys(ISpeechDataKey* This,LONG Index,BSTR *SubKeyName) {
9978     return This->lpVtbl->EnumKeys(This,Index,SubKeyName);
9979 }
9980 static FORCEINLINE HRESULT ISpeechDataKey_EnumValues(ISpeechDataKey* This,LONG Index,BSTR *ValueName) {
9981     return This->lpVtbl->EnumValues(This,Index,ValueName);
9982 }
9983 #endif
9984 #endif
9985 
9986 #endif
9987 
9988 HRESULT STDMETHODCALLTYPE ISpeechDataKey_SetBinaryValue_Proxy(
9989     ISpeechDataKey* This,
9990     const BSTR ValueName,
9991     VARIANT Value);
9992 void __RPC_STUB ISpeechDataKey_SetBinaryValue_Stub(
9993     IRpcStubBuffer* This,
9994     IRpcChannelBuffer* pRpcChannelBuffer,
9995     PRPC_MESSAGE pRpcMessage,
9996     DWORD* pdwStubPhase);
9997 HRESULT STDMETHODCALLTYPE ISpeechDataKey_GetBinaryValue_Proxy(
9998     ISpeechDataKey* This,
9999     const BSTR ValueName,
10000     VARIANT *Value);
10001 void __RPC_STUB ISpeechDataKey_GetBinaryValue_Stub(
10002     IRpcStubBuffer* This,
10003     IRpcChannelBuffer* pRpcChannelBuffer,
10004     PRPC_MESSAGE pRpcMessage,
10005     DWORD* pdwStubPhase);
10006 HRESULT STDMETHODCALLTYPE ISpeechDataKey_SetStringValue_Proxy(
10007     ISpeechDataKey* This,
10008     const BSTR ValueName,
10009     const BSTR Value);
10010 void __RPC_STUB ISpeechDataKey_SetStringValue_Stub(
10011     IRpcStubBuffer* This,
10012     IRpcChannelBuffer* pRpcChannelBuffer,
10013     PRPC_MESSAGE pRpcMessage,
10014     DWORD* pdwStubPhase);
10015 HRESULT STDMETHODCALLTYPE ISpeechDataKey_GetStringValue_Proxy(
10016     ISpeechDataKey* This,
10017     const BSTR ValueName,
10018     BSTR *Value);
10019 void __RPC_STUB ISpeechDataKey_GetStringValue_Stub(
10020     IRpcStubBuffer* This,
10021     IRpcChannelBuffer* pRpcChannelBuffer,
10022     PRPC_MESSAGE pRpcMessage,
10023     DWORD* pdwStubPhase);
10024 HRESULT STDMETHODCALLTYPE ISpeechDataKey_SetLongValue_Proxy(
10025     ISpeechDataKey* This,
10026     const BSTR ValueName,
10027     LONG Value);
10028 void __RPC_STUB ISpeechDataKey_SetLongValue_Stub(
10029     IRpcStubBuffer* This,
10030     IRpcChannelBuffer* pRpcChannelBuffer,
10031     PRPC_MESSAGE pRpcMessage,
10032     DWORD* pdwStubPhase);
10033 HRESULT STDMETHODCALLTYPE ISpeechDataKey_GetLongValue_Proxy(
10034     ISpeechDataKey* This,
10035     const BSTR ValueName,
10036     LONG *Value);
10037 void __RPC_STUB ISpeechDataKey_GetLongValue_Stub(
10038     IRpcStubBuffer* This,
10039     IRpcChannelBuffer* pRpcChannelBuffer,
10040     PRPC_MESSAGE pRpcMessage,
10041     DWORD* pdwStubPhase);
10042 HRESULT STDMETHODCALLTYPE ISpeechDataKey_OpenKey_Proxy(
10043     ISpeechDataKey* This,
10044     const BSTR SubKeyName,
10045     ISpeechDataKey **SubKey);
10046 void __RPC_STUB ISpeechDataKey_OpenKey_Stub(
10047     IRpcStubBuffer* This,
10048     IRpcChannelBuffer* pRpcChannelBuffer,
10049     PRPC_MESSAGE pRpcMessage,
10050     DWORD* pdwStubPhase);
10051 HRESULT STDMETHODCALLTYPE ISpeechDataKey_CreateKey_Proxy(
10052     ISpeechDataKey* This,
10053     const BSTR SubKeyName,
10054     ISpeechDataKey **SubKey);
10055 void __RPC_STUB ISpeechDataKey_CreateKey_Stub(
10056     IRpcStubBuffer* This,
10057     IRpcChannelBuffer* pRpcChannelBuffer,
10058     PRPC_MESSAGE pRpcMessage,
10059     DWORD* pdwStubPhase);
10060 HRESULT STDMETHODCALLTYPE ISpeechDataKey_DeleteKey_Proxy(
10061     ISpeechDataKey* This,
10062     const BSTR SubKeyName);
10063 void __RPC_STUB ISpeechDataKey_DeleteKey_Stub(
10064     IRpcStubBuffer* This,
10065     IRpcChannelBuffer* pRpcChannelBuffer,
10066     PRPC_MESSAGE pRpcMessage,
10067     DWORD* pdwStubPhase);
10068 HRESULT STDMETHODCALLTYPE ISpeechDataKey_DeleteValue_Proxy(
10069     ISpeechDataKey* This,
10070     const BSTR ValueName);
10071 void __RPC_STUB ISpeechDataKey_DeleteValue_Stub(
10072     IRpcStubBuffer* This,
10073     IRpcChannelBuffer* pRpcChannelBuffer,
10074     PRPC_MESSAGE pRpcMessage,
10075     DWORD* pdwStubPhase);
10076 HRESULT STDMETHODCALLTYPE ISpeechDataKey_EnumKeys_Proxy(
10077     ISpeechDataKey* This,
10078     LONG Index,
10079     BSTR *SubKeyName);
10080 void __RPC_STUB ISpeechDataKey_EnumKeys_Stub(
10081     IRpcStubBuffer* This,
10082     IRpcChannelBuffer* pRpcChannelBuffer,
10083     PRPC_MESSAGE pRpcMessage,
10084     DWORD* pdwStubPhase);
10085 HRESULT STDMETHODCALLTYPE ISpeechDataKey_EnumValues_Proxy(
10086     ISpeechDataKey* This,
10087     LONG Index,
10088     BSTR *ValueName);
10089 void __RPC_STUB ISpeechDataKey_EnumValues_Stub(
10090     IRpcStubBuffer* This,
10091     IRpcChannelBuffer* pRpcChannelBuffer,
10092     PRPC_MESSAGE pRpcMessage,
10093     DWORD* pdwStubPhase);
10094 
10095 #endif  /* __ISpeechDataKey_INTERFACE_DEFINED__ */
10096 
10097 /*****************************************************************************
10098  * ISpeechObjectToken interface
10099  */
10100 #ifndef __ISpeechObjectToken_INTERFACE_DEFINED__
10101 #define __ISpeechObjectToken_INTERFACE_DEFINED__
10102 
10103 DEFINE_GUID(IID_ISpeechObjectToken, 0xc74a3adc, 0xb727, 0x4500, 0xa8,0x4a, 0xb5,0x26,0x72,0x1c,0x8b,0x8c);
10104 #if defined(__cplusplus) && !defined(CINTERFACE)
10105 MIDL_INTERFACE("c74a3adc-b727-4500-a84a-b526721c8b8c")
10106 ISpeechObjectToken : public IDispatch
10107 {
10108     virtual HRESULT STDMETHODCALLTYPE get_Id(
10109         BSTR *ObjectId) = 0;
10110 
10111     virtual HRESULT STDMETHODCALLTYPE get_DataKey(
10112         ISpeechDataKey **DataKey) = 0;
10113 
10114     virtual HRESULT STDMETHODCALLTYPE get_Category(
10115         ISpeechObjectTokenCategory **Category) = 0;
10116 
10117     virtual HRESULT STDMETHODCALLTYPE GetDescription(
10118         LONG Locale,
10119         BSTR *Description) = 0;
10120 
10121     virtual HRESULT STDMETHODCALLTYPE SetId(
10122         BSTR Id,
10123         BSTR CategoryID = L"",
10124         VARIANT_BOOL CreateIfNotExist = 0) = 0;
10125 
10126     virtual HRESULT STDMETHODCALLTYPE GetAttribute(
10127         BSTR AttributeName,
10128         BSTR *AttributeValue) = 0;
10129 
10130     virtual HRESULT STDMETHODCALLTYPE CreateInstance(
10131         IUnknown *pUnkOuter,
10132         SpeechTokenContext ClsContext,
10133         IUnknown **Object) = 0;
10134 
10135     virtual HRESULT STDMETHODCALLTYPE Remove(
10136         BSTR ObjectStorageCLSID) = 0;
10137 
10138     virtual HRESULT STDMETHODCALLTYPE GetStorageFileName(
10139         BSTR ObjectStorageCLSID,
10140         BSTR KeyName,
10141         BSTR FileName,
10142         SpeechTokenShellFolder Folder,
10143         BSTR *FilePath) = 0;
10144 
10145     virtual HRESULT STDMETHODCALLTYPE RemoveStorageFileName(
10146         BSTR ObjectStorageCLSID,
10147         BSTR KeyName,
10148         VARIANT_BOOL DeleteFile) = 0;
10149 
10150     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
10151         const BSTR TypeOfUI,
10152         const VARIANT *ExtraData,
10153         IUnknown *Object,
10154         VARIANT_BOOL *Supported) = 0;
10155 
10156     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
10157         LONG hWnd,
10158         BSTR Title,
10159         const BSTR TypeOfUI,
10160         const VARIANT *ExtraData = 0,
10161         IUnknown *Object = 0) = 0;
10162 
10163     virtual HRESULT STDMETHODCALLTYPE MatchesAttributes(
10164         BSTR Attributes,
10165         VARIANT_BOOL *Matches) = 0;
10166 
10167 };
10168 #ifdef __CRT_UUID_DECL
10169 __CRT_UUID_DECL(ISpeechObjectToken, 0xc74a3adc, 0xb727, 0x4500, 0xa8,0x4a, 0xb5,0x26,0x72,0x1c,0x8b,0x8c)
10170 #endif
10171 #else
10172 typedef struct ISpeechObjectTokenVtbl {
10173     BEGIN_INTERFACE
10174 
10175     /*** IUnknown methods ***/
10176     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10177         ISpeechObjectToken* This,
10178         REFIID riid,
10179         void **ppvObject);
10180 
10181     ULONG (STDMETHODCALLTYPE *AddRef)(
10182         ISpeechObjectToken* This);
10183 
10184     ULONG (STDMETHODCALLTYPE *Release)(
10185         ISpeechObjectToken* This);
10186 
10187     /*** IDispatch methods ***/
10188     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
10189         ISpeechObjectToken* This,
10190         UINT *pctinfo);
10191 
10192     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
10193         ISpeechObjectToken* This,
10194         UINT iTInfo,
10195         LCID lcid,
10196         ITypeInfo **ppTInfo);
10197 
10198     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
10199         ISpeechObjectToken* This,
10200         REFIID riid,
10201         LPOLESTR *rgszNames,
10202         UINT cNames,
10203         LCID lcid,
10204         DISPID *rgDispId);
10205 
10206     HRESULT (STDMETHODCALLTYPE *Invoke)(
10207         ISpeechObjectToken* This,
10208         DISPID dispIdMember,
10209         REFIID riid,
10210         LCID lcid,
10211         WORD wFlags,
10212         DISPPARAMS *pDispParams,
10213         VARIANT *pVarResult,
10214         EXCEPINFO *pExcepInfo,
10215         UINT *puArgErr);
10216 
10217     /*** ISpeechObjectToken methods ***/
10218     HRESULT (STDMETHODCALLTYPE *get_Id)(
10219         ISpeechObjectToken* This,
10220         BSTR *ObjectId);
10221 
10222     HRESULT (STDMETHODCALLTYPE *get_DataKey)(
10223         ISpeechObjectToken* This,
10224         ISpeechDataKey **DataKey);
10225 
10226     HRESULT (STDMETHODCALLTYPE *get_Category)(
10227         ISpeechObjectToken* This,
10228         ISpeechObjectTokenCategory **Category);
10229 
10230     HRESULT (STDMETHODCALLTYPE *GetDescription)(
10231         ISpeechObjectToken* This,
10232         LONG Locale,
10233         BSTR *Description);
10234 
10235     HRESULT (STDMETHODCALLTYPE *SetId)(
10236         ISpeechObjectToken* This,
10237         BSTR Id,
10238         BSTR CategoryID,
10239         VARIANT_BOOL CreateIfNotExist);
10240 
10241     HRESULT (STDMETHODCALLTYPE *GetAttribute)(
10242         ISpeechObjectToken* This,
10243         BSTR AttributeName,
10244         BSTR *AttributeValue);
10245 
10246     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
10247         ISpeechObjectToken* This,
10248         IUnknown *pUnkOuter,
10249         SpeechTokenContext ClsContext,
10250         IUnknown **Object);
10251 
10252     HRESULT (STDMETHODCALLTYPE *Remove)(
10253         ISpeechObjectToken* This,
10254         BSTR ObjectStorageCLSID);
10255 
10256     HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
10257         ISpeechObjectToken* This,
10258         BSTR ObjectStorageCLSID,
10259         BSTR KeyName,
10260         BSTR FileName,
10261         SpeechTokenShellFolder Folder,
10262         BSTR *FilePath);
10263 
10264     HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
10265         ISpeechObjectToken* This,
10266         BSTR ObjectStorageCLSID,
10267         BSTR KeyName,
10268         VARIANT_BOOL DeleteFile);
10269 
10270     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
10271         ISpeechObjectToken* This,
10272         const BSTR TypeOfUI,
10273         const VARIANT *ExtraData,
10274         IUnknown *Object,
10275         VARIANT_BOOL *Supported);
10276 
10277     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
10278         ISpeechObjectToken* This,
10279         LONG hWnd,
10280         BSTR Title,
10281         const BSTR TypeOfUI,
10282         const VARIANT *ExtraData,
10283         IUnknown *Object);
10284 
10285     HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
10286         ISpeechObjectToken* This,
10287         BSTR Attributes,
10288         VARIANT_BOOL *Matches);
10289 
10290     END_INTERFACE
10291 } ISpeechObjectTokenVtbl;
10292 interface ISpeechObjectToken {
10293     CONST_VTBL ISpeechObjectTokenVtbl* lpVtbl;
10294 };
10295 
10296 #ifdef COBJMACROS
10297 #ifndef WIDL_C_INLINE_WRAPPERS
10298 /*** IUnknown methods ***/
10299 #define ISpeechObjectToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10300 #define ISpeechObjectToken_AddRef(This) (This)->lpVtbl->AddRef(This)
10301 #define ISpeechObjectToken_Release(This) (This)->lpVtbl->Release(This)
10302 /*** IDispatch methods ***/
10303 #define ISpeechObjectToken_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
10304 #define ISpeechObjectToken_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
10305 #define ISpeechObjectToken_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
10306 #define ISpeechObjectToken_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
10307 /*** ISpeechObjectToken methods ***/
10308 #define ISpeechObjectToken_get_Id(This,ObjectId) (This)->lpVtbl->get_Id(This,ObjectId)
10309 #define ISpeechObjectToken_get_DataKey(This,DataKey) (This)->lpVtbl->get_DataKey(This,DataKey)
10310 #define ISpeechObjectToken_get_Category(This,Category) (This)->lpVtbl->get_Category(This,Category)
10311 #define ISpeechObjectToken_GetDescription(This,Locale,Description) (This)->lpVtbl->GetDescription(This,Locale,Description)
10312 #define ISpeechObjectToken_SetId(This,Id,CategoryID,CreateIfNotExist) (This)->lpVtbl->SetId(This,Id,CategoryID,CreateIfNotExist)
10313 #define ISpeechObjectToken_GetAttribute(This,AttributeName,AttributeValue) (This)->lpVtbl->GetAttribute(This,AttributeName,AttributeValue)
10314 #define ISpeechObjectToken_CreateInstance(This,pUnkOuter,ClsContext,Object) (This)->lpVtbl->CreateInstance(This,pUnkOuter,ClsContext,Object)
10315 #define ISpeechObjectToken_Remove(This,ObjectStorageCLSID) (This)->lpVtbl->Remove(This,ObjectStorageCLSID)
10316 #define ISpeechObjectToken_GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath) (This)->lpVtbl->GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath)
10317 #define ISpeechObjectToken_RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile)
10318 #define ISpeechObjectToken_IsUISupported(This,TypeOfUI,ExtraData,Object,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Object,Supported)
10319 #define ISpeechObjectToken_DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object) (This)->lpVtbl->DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object)
10320 #define ISpeechObjectToken_MatchesAttributes(This,Attributes,Matches) (This)->lpVtbl->MatchesAttributes(This,Attributes,Matches)
10321 #else
10322 /*** IUnknown methods ***/
10323 static FORCEINLINE HRESULT ISpeechObjectToken_QueryInterface(ISpeechObjectToken* This,REFIID riid,void **ppvObject) {
10324     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10325 }
10326 static FORCEINLINE ULONG ISpeechObjectToken_AddRef(ISpeechObjectToken* This) {
10327     return This->lpVtbl->AddRef(This);
10328 }
10329 static FORCEINLINE ULONG ISpeechObjectToken_Release(ISpeechObjectToken* This) {
10330     return This->lpVtbl->Release(This);
10331 }
10332 /*** IDispatch methods ***/
10333 static FORCEINLINE HRESULT ISpeechObjectToken_GetTypeInfoCount(ISpeechObjectToken* This,UINT *pctinfo) {
10334     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
10335 }
10336 static FORCEINLINE HRESULT ISpeechObjectToken_GetTypeInfo(ISpeechObjectToken* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
10337     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
10338 }
10339 static FORCEINLINE HRESULT ISpeechObjectToken_GetIDsOfNames(ISpeechObjectToken* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
10340     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
10341 }
10342 static FORCEINLINE HRESULT ISpeechObjectToken_Invoke(ISpeechObjectToken* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
10343     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
10344 }
10345 /*** ISpeechObjectToken methods ***/
10346 static FORCEINLINE HRESULT ISpeechObjectToken_get_Id(ISpeechObjectToken* This,BSTR *ObjectId) {
10347     return This->lpVtbl->get_Id(This,ObjectId);
10348 }
10349 static FORCEINLINE HRESULT ISpeechObjectToken_get_DataKey(ISpeechObjectToken* This,ISpeechDataKey **DataKey) {
10350     return This->lpVtbl->get_DataKey(This,DataKey);
10351 }
10352 static FORCEINLINE HRESULT ISpeechObjectToken_get_Category(ISpeechObjectToken* This,ISpeechObjectTokenCategory **Category) {
10353     return This->lpVtbl->get_Category(This,Category);
10354 }
10355 static FORCEINLINE HRESULT ISpeechObjectToken_GetDescription(ISpeechObjectToken* This,LONG Locale,BSTR *Description) {
10356     return This->lpVtbl->GetDescription(This,Locale,Description);
10357 }
10358 static FORCEINLINE HRESULT ISpeechObjectToken_SetId(ISpeechObjectToken* This,BSTR Id,BSTR CategoryID,VARIANT_BOOL CreateIfNotExist) {
10359     return This->lpVtbl->SetId(This,Id,CategoryID,CreateIfNotExist);
10360 }
10361 static FORCEINLINE HRESULT ISpeechObjectToken_GetAttribute(ISpeechObjectToken* This,BSTR AttributeName,BSTR *AttributeValue) {
10362     return This->lpVtbl->GetAttribute(This,AttributeName,AttributeValue);
10363 }
10364 static FORCEINLINE HRESULT ISpeechObjectToken_CreateInstance(ISpeechObjectToken* This,IUnknown *pUnkOuter,SpeechTokenContext ClsContext,IUnknown **Object) {
10365     return This->lpVtbl->CreateInstance(This,pUnkOuter,ClsContext,Object);
10366 }
10367 static FORCEINLINE HRESULT ISpeechObjectToken_Remove(ISpeechObjectToken* This,BSTR ObjectStorageCLSID) {
10368     return This->lpVtbl->Remove(This,ObjectStorageCLSID);
10369 }
10370 static FORCEINLINE HRESULT ISpeechObjectToken_GetStorageFileName(ISpeechObjectToken* This,BSTR ObjectStorageCLSID,BSTR KeyName,BSTR FileName,SpeechTokenShellFolder Folder,BSTR *FilePath) {
10371     return This->lpVtbl->GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath);
10372 }
10373 static FORCEINLINE HRESULT ISpeechObjectToken_RemoveStorageFileName(ISpeechObjectToken* This,BSTR ObjectStorageCLSID,BSTR KeyName,VARIANT_BOOL DeleteFile) {
10374     return This->lpVtbl->RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile);
10375 }
10376 static FORCEINLINE HRESULT ISpeechObjectToken_IsUISupported(ISpeechObjectToken* This,const BSTR TypeOfUI,const VARIANT *ExtraData,IUnknown *Object,VARIANT_BOOL *Supported) {
10377     return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Object,Supported);
10378 }
10379 static FORCEINLINE HRESULT ISpeechObjectToken_DisplayUI(ISpeechObjectToken* This,LONG hWnd,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData,IUnknown *Object) {
10380     return This->lpVtbl->DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object);
10381 }
10382 static FORCEINLINE HRESULT ISpeechObjectToken_MatchesAttributes(ISpeechObjectToken* This,BSTR Attributes,VARIANT_BOOL *Matches) {
10383     return This->lpVtbl->MatchesAttributes(This,Attributes,Matches);
10384 }
10385 #endif
10386 #endif
10387 
10388 #endif
10389 
10390 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_get_Id_Proxy(
10391     ISpeechObjectToken* This,
10392     BSTR *ObjectId);
10393 void __RPC_STUB ISpeechObjectToken_get_Id_Stub(
10394     IRpcStubBuffer* This,
10395     IRpcChannelBuffer* pRpcChannelBuffer,
10396     PRPC_MESSAGE pRpcMessage,
10397     DWORD* pdwStubPhase);
10398 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_get_DataKey_Proxy(
10399     ISpeechObjectToken* This,
10400     ISpeechDataKey **DataKey);
10401 void __RPC_STUB ISpeechObjectToken_get_DataKey_Stub(
10402     IRpcStubBuffer* This,
10403     IRpcChannelBuffer* pRpcChannelBuffer,
10404     PRPC_MESSAGE pRpcMessage,
10405     DWORD* pdwStubPhase);
10406 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_get_Category_Proxy(
10407     ISpeechObjectToken* This,
10408     ISpeechObjectTokenCategory **Category);
10409 void __RPC_STUB ISpeechObjectToken_get_Category_Stub(
10410     IRpcStubBuffer* This,
10411     IRpcChannelBuffer* pRpcChannelBuffer,
10412     PRPC_MESSAGE pRpcMessage,
10413     DWORD* pdwStubPhase);
10414 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_GetDescription_Proxy(
10415     ISpeechObjectToken* This,
10416     LONG Locale,
10417     BSTR *Description);
10418 void __RPC_STUB ISpeechObjectToken_GetDescription_Stub(
10419     IRpcStubBuffer* This,
10420     IRpcChannelBuffer* pRpcChannelBuffer,
10421     PRPC_MESSAGE pRpcMessage,
10422     DWORD* pdwStubPhase);
10423 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_SetId_Proxy(
10424     ISpeechObjectToken* This,
10425     BSTR Id,
10426     BSTR CategoryID,
10427     VARIANT_BOOL CreateIfNotExist);
10428 void __RPC_STUB ISpeechObjectToken_SetId_Stub(
10429     IRpcStubBuffer* This,
10430     IRpcChannelBuffer* pRpcChannelBuffer,
10431     PRPC_MESSAGE pRpcMessage,
10432     DWORD* pdwStubPhase);
10433 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_GetAttribute_Proxy(
10434     ISpeechObjectToken* This,
10435     BSTR AttributeName,
10436     BSTR *AttributeValue);
10437 void __RPC_STUB ISpeechObjectToken_GetAttribute_Stub(
10438     IRpcStubBuffer* This,
10439     IRpcChannelBuffer* pRpcChannelBuffer,
10440     PRPC_MESSAGE pRpcMessage,
10441     DWORD* pdwStubPhase);
10442 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_CreateInstance_Proxy(
10443     ISpeechObjectToken* This,
10444     IUnknown *pUnkOuter,
10445     SpeechTokenContext ClsContext,
10446     IUnknown **Object);
10447 void __RPC_STUB ISpeechObjectToken_CreateInstance_Stub(
10448     IRpcStubBuffer* This,
10449     IRpcChannelBuffer* pRpcChannelBuffer,
10450     PRPC_MESSAGE pRpcMessage,
10451     DWORD* pdwStubPhase);
10452 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_Remove_Proxy(
10453     ISpeechObjectToken* This,
10454     BSTR ObjectStorageCLSID);
10455 void __RPC_STUB ISpeechObjectToken_Remove_Stub(
10456     IRpcStubBuffer* This,
10457     IRpcChannelBuffer* pRpcChannelBuffer,
10458     PRPC_MESSAGE pRpcMessage,
10459     DWORD* pdwStubPhase);
10460 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_GetStorageFileName_Proxy(
10461     ISpeechObjectToken* This,
10462     BSTR ObjectStorageCLSID,
10463     BSTR KeyName,
10464     BSTR FileName,
10465     SpeechTokenShellFolder Folder,
10466     BSTR *FilePath);
10467 void __RPC_STUB ISpeechObjectToken_GetStorageFileName_Stub(
10468     IRpcStubBuffer* This,
10469     IRpcChannelBuffer* pRpcChannelBuffer,
10470     PRPC_MESSAGE pRpcMessage,
10471     DWORD* pdwStubPhase);
10472 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_RemoveStorageFileName_Proxy(
10473     ISpeechObjectToken* This,
10474     BSTR ObjectStorageCLSID,
10475     BSTR KeyName,
10476     VARIANT_BOOL DeleteFile);
10477 void __RPC_STUB ISpeechObjectToken_RemoveStorageFileName_Stub(
10478     IRpcStubBuffer* This,
10479     IRpcChannelBuffer* pRpcChannelBuffer,
10480     PRPC_MESSAGE pRpcMessage,
10481     DWORD* pdwStubPhase);
10482 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_IsUISupported_Proxy(
10483     ISpeechObjectToken* This,
10484     const BSTR TypeOfUI,
10485     const VARIANT *ExtraData,
10486     IUnknown *Object,
10487     VARIANT_BOOL *Supported);
10488 void __RPC_STUB ISpeechObjectToken_IsUISupported_Stub(
10489     IRpcStubBuffer* This,
10490     IRpcChannelBuffer* pRpcChannelBuffer,
10491     PRPC_MESSAGE pRpcMessage,
10492     DWORD* pdwStubPhase);
10493 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_DisplayUI_Proxy(
10494     ISpeechObjectToken* This,
10495     LONG hWnd,
10496     BSTR Title,
10497     const BSTR TypeOfUI,
10498     const VARIANT *ExtraData,
10499     IUnknown *Object);
10500 void __RPC_STUB ISpeechObjectToken_DisplayUI_Stub(
10501     IRpcStubBuffer* This,
10502     IRpcChannelBuffer* pRpcChannelBuffer,
10503     PRPC_MESSAGE pRpcMessage,
10504     DWORD* pdwStubPhase);
10505 HRESULT STDMETHODCALLTYPE ISpeechObjectToken_MatchesAttributes_Proxy(
10506     ISpeechObjectToken* This,
10507     BSTR Attributes,
10508     VARIANT_BOOL *Matches);
10509 void __RPC_STUB ISpeechObjectToken_MatchesAttributes_Stub(
10510     IRpcStubBuffer* This,
10511     IRpcChannelBuffer* pRpcChannelBuffer,
10512     PRPC_MESSAGE pRpcMessage,
10513     DWORD* pdwStubPhase);
10514 
10515 #endif  /* __ISpeechObjectToken_INTERFACE_DEFINED__ */
10516 
10517 /*****************************************************************************
10518  * ISpeechObjectTokens interface
10519  */
10520 #ifndef __ISpeechObjectTokens_INTERFACE_DEFINED__
10521 #define __ISpeechObjectTokens_INTERFACE_DEFINED__
10522 
10523 DEFINE_GUID(IID_ISpeechObjectTokens, 0x9285b776, 0x2e7b, 0x4bc0, 0xb5,0x3e, 0x58,0x0e,0xb6,0xfa,0x96,0x7f);
10524 #if defined(__cplusplus) && !defined(CINTERFACE)
10525 MIDL_INTERFACE("9285b776-2e7b-4bc0-b53e-580eb6fa967f")
10526 ISpeechObjectTokens : public IDispatch
10527 {
10528     virtual HRESULT STDMETHODCALLTYPE get_Count(
10529         LONG *Count) = 0;
10530 
10531     virtual HRESULT STDMETHODCALLTYPE Item(
10532         LONG Index,
10533         ISpeechObjectToken **Token) = 0;
10534 
10535     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
10536         IUnknown **ppEnumVARIANT) = 0;
10537 
10538 };
10539 #ifdef __CRT_UUID_DECL
10540 __CRT_UUID_DECL(ISpeechObjectTokens, 0x9285b776, 0x2e7b, 0x4bc0, 0xb5,0x3e, 0x58,0x0e,0xb6,0xfa,0x96,0x7f)
10541 #endif
10542 #else
10543 typedef struct ISpeechObjectTokensVtbl {
10544     BEGIN_INTERFACE
10545 
10546     /*** IUnknown methods ***/
10547     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10548         ISpeechObjectTokens* This,
10549         REFIID riid,
10550         void **ppvObject);
10551 
10552     ULONG (STDMETHODCALLTYPE *AddRef)(
10553         ISpeechObjectTokens* This);
10554 
10555     ULONG (STDMETHODCALLTYPE *Release)(
10556         ISpeechObjectTokens* This);
10557 
10558     /*** IDispatch methods ***/
10559     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
10560         ISpeechObjectTokens* This,
10561         UINT *pctinfo);
10562 
10563     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
10564         ISpeechObjectTokens* This,
10565         UINT iTInfo,
10566         LCID lcid,
10567         ITypeInfo **ppTInfo);
10568 
10569     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
10570         ISpeechObjectTokens* This,
10571         REFIID riid,
10572         LPOLESTR *rgszNames,
10573         UINT cNames,
10574         LCID lcid,
10575         DISPID *rgDispId);
10576 
10577     HRESULT (STDMETHODCALLTYPE *Invoke)(
10578         ISpeechObjectTokens* This,
10579         DISPID dispIdMember,
10580         REFIID riid,
10581         LCID lcid,
10582         WORD wFlags,
10583         DISPPARAMS *pDispParams,
10584         VARIANT *pVarResult,
10585         EXCEPINFO *pExcepInfo,
10586         UINT *puArgErr);
10587 
10588     /*** ISpeechObjectTokens methods ***/
10589     HRESULT (STDMETHODCALLTYPE *get_Count)(
10590         ISpeechObjectTokens* This,
10591         LONG *Count);
10592 
10593     HRESULT (STDMETHODCALLTYPE *Item)(
10594         ISpeechObjectTokens* This,
10595         LONG Index,
10596         ISpeechObjectToken **Token);
10597 
10598     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
10599         ISpeechObjectTokens* This,
10600         IUnknown **ppEnumVARIANT);
10601 
10602     END_INTERFACE
10603 } ISpeechObjectTokensVtbl;
10604 interface ISpeechObjectTokens {
10605     CONST_VTBL ISpeechObjectTokensVtbl* lpVtbl;
10606 };
10607 
10608 #ifdef COBJMACROS
10609 #ifndef WIDL_C_INLINE_WRAPPERS
10610 /*** IUnknown methods ***/
10611 #define ISpeechObjectTokens_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10612 #define ISpeechObjectTokens_AddRef(This) (This)->lpVtbl->AddRef(This)
10613 #define ISpeechObjectTokens_Release(This) (This)->lpVtbl->Release(This)
10614 /*** IDispatch methods ***/
10615 #define ISpeechObjectTokens_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
10616 #define ISpeechObjectTokens_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
10617 #define ISpeechObjectTokens_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
10618 #define ISpeechObjectTokens_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
10619 /*** ISpeechObjectTokens methods ***/
10620 #define ISpeechObjectTokens_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
10621 #define ISpeechObjectTokens_Item(This,Index,Token) (This)->lpVtbl->Item(This,Index,Token)
10622 #define ISpeechObjectTokens_get__NewEnum(This,ppEnumVARIANT) (This)->lpVtbl->get__NewEnum(This,ppEnumVARIANT)
10623 #else
10624 /*** IUnknown methods ***/
10625 static FORCEINLINE HRESULT ISpeechObjectTokens_QueryInterface(ISpeechObjectTokens* This,REFIID riid,void **ppvObject) {
10626     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10627 }
10628 static FORCEINLINE ULONG ISpeechObjectTokens_AddRef(ISpeechObjectTokens* This) {
10629     return This->lpVtbl->AddRef(This);
10630 }
10631 static FORCEINLINE ULONG ISpeechObjectTokens_Release(ISpeechObjectTokens* This) {
10632     return This->lpVtbl->Release(This);
10633 }
10634 /*** IDispatch methods ***/
10635 static FORCEINLINE HRESULT ISpeechObjectTokens_GetTypeInfoCount(ISpeechObjectTokens* This,UINT *pctinfo) {
10636     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
10637 }
10638 static FORCEINLINE HRESULT ISpeechObjectTokens_GetTypeInfo(ISpeechObjectTokens* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
10639     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
10640 }
10641 static FORCEINLINE HRESULT ISpeechObjectTokens_GetIDsOfNames(ISpeechObjectTokens* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
10642     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
10643 }
10644 static FORCEINLINE HRESULT ISpeechObjectTokens_Invoke(ISpeechObjectTokens* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
10645     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
10646 }
10647 /*** ISpeechObjectTokens methods ***/
10648 static FORCEINLINE HRESULT ISpeechObjectTokens_get_Count(ISpeechObjectTokens* This,LONG *Count) {
10649     return This->lpVtbl->get_Count(This,Count);
10650 }
10651 static FORCEINLINE HRESULT ISpeechObjectTokens_Item(ISpeechObjectTokens* This,LONG Index,ISpeechObjectToken **Token) {
10652     return This->lpVtbl->Item(This,Index,Token);
10653 }
10654 static FORCEINLINE HRESULT ISpeechObjectTokens_get__NewEnum(ISpeechObjectTokens* This,IUnknown **ppEnumVARIANT) {
10655     return This->lpVtbl->get__NewEnum(This,ppEnumVARIANT);
10656 }
10657 #endif
10658 #endif
10659 
10660 #endif
10661 
10662 HRESULT STDMETHODCALLTYPE ISpeechObjectTokens_get_Count_Proxy(
10663     ISpeechObjectTokens* This,
10664     LONG *Count);
10665 void __RPC_STUB ISpeechObjectTokens_get_Count_Stub(
10666     IRpcStubBuffer* This,
10667     IRpcChannelBuffer* pRpcChannelBuffer,
10668     PRPC_MESSAGE pRpcMessage,
10669     DWORD* pdwStubPhase);
10670 HRESULT STDMETHODCALLTYPE ISpeechObjectTokens_Item_Proxy(
10671     ISpeechObjectTokens* This,
10672     LONG Index,
10673     ISpeechObjectToken **Token);
10674 void __RPC_STUB ISpeechObjectTokens_Item_Stub(
10675     IRpcStubBuffer* This,
10676     IRpcChannelBuffer* pRpcChannelBuffer,
10677     PRPC_MESSAGE pRpcMessage,
10678     DWORD* pdwStubPhase);
10679 HRESULT STDMETHODCALLTYPE ISpeechObjectTokens_get__NewEnum_Proxy(
10680     ISpeechObjectTokens* This,
10681     IUnknown **ppEnumVARIANT);
10682 void __RPC_STUB ISpeechObjectTokens_get__NewEnum_Stub(
10683     IRpcStubBuffer* This,
10684     IRpcChannelBuffer* pRpcChannelBuffer,
10685     PRPC_MESSAGE pRpcMessage,
10686     DWORD* pdwStubPhase);
10687 
10688 #endif  /* __ISpeechObjectTokens_INTERFACE_DEFINED__ */
10689 
10690 /*****************************************************************************
10691  * ISpeechObjectTokenCategory interface
10692  */
10693 #ifndef __ISpeechObjectTokenCategory_INTERFACE_DEFINED__
10694 #define __ISpeechObjectTokenCategory_INTERFACE_DEFINED__
10695 
10696 DEFINE_GUID(IID_ISpeechObjectTokenCategory, 0xca7eac50, 0x2d01, 0x4145, 0x86,0xd4, 0x5a,0xe7,0xd7,0x0f,0x44,0x69);
10697 #if defined(__cplusplus) && !defined(CINTERFACE)
10698 MIDL_INTERFACE("ca7eac50-2d01-4145-86d4-5ae7d70f4469")
10699 ISpeechObjectTokenCategory : public IDispatch
10700 {
10701     virtual HRESULT STDMETHODCALLTYPE get_Id(
10702         BSTR *Id) = 0;
10703 
10704     virtual HRESULT STDMETHODCALLTYPE put_Default(
10705         const BSTR TokenId) = 0;
10706 
10707     virtual HRESULT STDMETHODCALLTYPE get_Default(
10708         BSTR *TokenId) = 0;
10709 
10710     virtual HRESULT STDMETHODCALLTYPE SetId(
10711         const BSTR Id,
10712         VARIANT_BOOL CreateIfNotExist = 0) = 0;
10713 
10714     virtual HRESULT STDMETHODCALLTYPE GetDataKey(
10715         SpeechDataKeyLocation Location,
10716         ISpeechDataKey **DataKey) = 0;
10717 
10718     virtual HRESULT STDMETHODCALLTYPE EnumerateTokens(
10719         BSTR RequiredAttributes,
10720         BSTR OptionalAttributes,
10721         ISpeechObjectTokens **Tokens) = 0;
10722 
10723 };
10724 #ifdef __CRT_UUID_DECL
10725 __CRT_UUID_DECL(ISpeechObjectTokenCategory, 0xca7eac50, 0x2d01, 0x4145, 0x86,0xd4, 0x5a,0xe7,0xd7,0x0f,0x44,0x69)
10726 #endif
10727 #else
10728 typedef struct ISpeechObjectTokenCategoryVtbl {
10729     BEGIN_INTERFACE
10730 
10731     /*** IUnknown methods ***/
10732     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10733         ISpeechObjectTokenCategory* This,
10734         REFIID riid,
10735         void **ppvObject);
10736 
10737     ULONG (STDMETHODCALLTYPE *AddRef)(
10738         ISpeechObjectTokenCategory* This);
10739 
10740     ULONG (STDMETHODCALLTYPE *Release)(
10741         ISpeechObjectTokenCategory* This);
10742 
10743     /*** IDispatch methods ***/
10744     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
10745         ISpeechObjectTokenCategory* This,
10746         UINT *pctinfo);
10747 
10748     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
10749         ISpeechObjectTokenCategory* This,
10750         UINT iTInfo,
10751         LCID lcid,
10752         ITypeInfo **ppTInfo);
10753 
10754     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
10755         ISpeechObjectTokenCategory* This,
10756         REFIID riid,
10757         LPOLESTR *rgszNames,
10758         UINT cNames,
10759         LCID lcid,
10760         DISPID *rgDispId);
10761 
10762     HRESULT (STDMETHODCALLTYPE *Invoke)(
10763         ISpeechObjectTokenCategory* This,
10764         DISPID dispIdMember,
10765         REFIID riid,
10766         LCID lcid,
10767         WORD wFlags,
10768         DISPPARAMS *pDispParams,
10769         VARIANT *pVarResult,
10770         EXCEPINFO *pExcepInfo,
10771         UINT *puArgErr);
10772 
10773     /*** ISpeechObjectTokenCategory methods ***/
10774     HRESULT (STDMETHODCALLTYPE *get_Id)(
10775         ISpeechObjectTokenCategory* This,
10776         BSTR *Id);
10777 
10778     HRESULT (STDMETHODCALLTYPE *put_Default)(
10779         ISpeechObjectTokenCategory* This,
10780         const BSTR TokenId);
10781 
10782     HRESULT (STDMETHODCALLTYPE *get_Default)(
10783         ISpeechObjectTokenCategory* This,
10784         BSTR *TokenId);
10785 
10786     HRESULT (STDMETHODCALLTYPE *SetId)(
10787         ISpeechObjectTokenCategory* This,
10788         const BSTR Id,
10789         VARIANT_BOOL CreateIfNotExist);
10790 
10791     HRESULT (STDMETHODCALLTYPE *GetDataKey)(
10792         ISpeechObjectTokenCategory* This,
10793         SpeechDataKeyLocation Location,
10794         ISpeechDataKey **DataKey);
10795 
10796     HRESULT (STDMETHODCALLTYPE *EnumerateTokens)(
10797         ISpeechObjectTokenCategory* This,
10798         BSTR RequiredAttributes,
10799         BSTR OptionalAttributes,
10800         ISpeechObjectTokens **Tokens);
10801 
10802     END_INTERFACE
10803 } ISpeechObjectTokenCategoryVtbl;
10804 interface ISpeechObjectTokenCategory {
10805     CONST_VTBL ISpeechObjectTokenCategoryVtbl* lpVtbl;
10806 };
10807 
10808 #ifdef COBJMACROS
10809 #ifndef WIDL_C_INLINE_WRAPPERS
10810 /*** IUnknown methods ***/
10811 #define ISpeechObjectTokenCategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10812 #define ISpeechObjectTokenCategory_AddRef(This) (This)->lpVtbl->AddRef(This)
10813 #define ISpeechObjectTokenCategory_Release(This) (This)->lpVtbl->Release(This)
10814 /*** IDispatch methods ***/
10815 #define ISpeechObjectTokenCategory_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
10816 #define ISpeechObjectTokenCategory_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
10817 #define ISpeechObjectTokenCategory_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
10818 #define ISpeechObjectTokenCategory_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
10819 /*** ISpeechObjectTokenCategory methods ***/
10820 #define ISpeechObjectTokenCategory_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
10821 #define ISpeechObjectTokenCategory_put_Default(This,TokenId) (This)->lpVtbl->put_Default(This,TokenId)
10822 #define ISpeechObjectTokenCategory_get_Default(This,TokenId) (This)->lpVtbl->get_Default(This,TokenId)
10823 #define ISpeechObjectTokenCategory_SetId(This,Id,CreateIfNotExist) (This)->lpVtbl->SetId(This,Id,CreateIfNotExist)
10824 #define ISpeechObjectTokenCategory_GetDataKey(This,Location,DataKey) (This)->lpVtbl->GetDataKey(This,Location,DataKey)
10825 #define ISpeechObjectTokenCategory_EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens) (This)->lpVtbl->EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens)
10826 #else
10827 /*** IUnknown methods ***/
10828 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_QueryInterface(ISpeechObjectTokenCategory* This,REFIID riid,void **ppvObject) {
10829     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10830 }
10831 static FORCEINLINE ULONG ISpeechObjectTokenCategory_AddRef(ISpeechObjectTokenCategory* This) {
10832     return This->lpVtbl->AddRef(This);
10833 }
10834 static FORCEINLINE ULONG ISpeechObjectTokenCategory_Release(ISpeechObjectTokenCategory* This) {
10835     return This->lpVtbl->Release(This);
10836 }
10837 /*** IDispatch methods ***/
10838 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_GetTypeInfoCount(ISpeechObjectTokenCategory* This,UINT *pctinfo) {
10839     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
10840 }
10841 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_GetTypeInfo(ISpeechObjectTokenCategory* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
10842     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
10843 }
10844 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_GetIDsOfNames(ISpeechObjectTokenCategory* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
10845     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
10846 }
10847 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_Invoke(ISpeechObjectTokenCategory* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
10848     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
10849 }
10850 /*** ISpeechObjectTokenCategory methods ***/
10851 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_get_Id(ISpeechObjectTokenCategory* This,BSTR *Id) {
10852     return This->lpVtbl->get_Id(This,Id);
10853 }
10854 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_put_Default(ISpeechObjectTokenCategory* This,const BSTR TokenId) {
10855     return This->lpVtbl->put_Default(This,TokenId);
10856 }
10857 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_get_Default(ISpeechObjectTokenCategory* This,BSTR *TokenId) {
10858     return This->lpVtbl->get_Default(This,TokenId);
10859 }
10860 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_SetId(ISpeechObjectTokenCategory* This,const BSTR Id,VARIANT_BOOL CreateIfNotExist) {
10861     return This->lpVtbl->SetId(This,Id,CreateIfNotExist);
10862 }
10863 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_GetDataKey(ISpeechObjectTokenCategory* This,SpeechDataKeyLocation Location,ISpeechDataKey **DataKey) {
10864     return This->lpVtbl->GetDataKey(This,Location,DataKey);
10865 }
10866 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_EnumerateTokens(ISpeechObjectTokenCategory* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **Tokens) {
10867     return This->lpVtbl->EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens);
10868 }
10869 #endif
10870 #endif
10871 
10872 #endif
10873 
10874 HRESULT STDMETHODCALLTYPE ISpeechObjectTokenCategory_get_Id_Proxy(
10875     ISpeechObjectTokenCategory* This,
10876     BSTR *Id);
10877 void __RPC_STUB ISpeechObjectTokenCategory_get_Id_Stub(
10878     IRpcStubBuffer* This,
10879     IRpcChannelBuffer* pRpcChannelBuffer,
10880     PRPC_MESSAGE pRpcMessage,
10881     DWORD* pdwStubPhase);
10882 HRESULT STDMETHODCALLTYPE ISpeechObjectTokenCategory_put_Default_Proxy(
10883     ISpeechObjectTokenCategory* This,
10884     const BSTR TokenId);
10885 void __RPC_STUB ISpeechObjectTokenCategory_put_Default_Stub(
10886     IRpcStubBuffer* This,
10887     IRpcChannelBuffer* pRpcChannelBuffer,
10888     PRPC_MESSAGE pRpcMessage,
10889     DWORD* pdwStubPhase);
10890 HRESULT STDMETHODCALLTYPE ISpeechObjectTokenCategory_get_Default_Proxy(
10891     ISpeechObjectTokenCategory* This,
10892     BSTR *TokenId);
10893 void __RPC_STUB ISpeechObjectTokenCategory_get_Default_Stub(
10894     IRpcStubBuffer* This,
10895     IRpcChannelBuffer* pRpcChannelBuffer,
10896     PRPC_MESSAGE pRpcMessage,
10897     DWORD* pdwStubPhase);
10898 HRESULT STDMETHODCALLTYPE ISpeechObjectTokenCategory_SetId_Proxy(
10899     ISpeechObjectTokenCategory* This,
10900     const BSTR Id,
10901     VARIANT_BOOL CreateIfNotExist);
10902 void __RPC_STUB ISpeechObjectTokenCategory_SetId_Stub(
10903     IRpcStubBuffer* This,
10904     IRpcChannelBuffer* pRpcChannelBuffer,
10905     PRPC_MESSAGE pRpcMessage,
10906     DWORD* pdwStubPhase);
10907 HRESULT STDMETHODCALLTYPE ISpeechObjectTokenCategory_GetDataKey_Proxy(
10908     ISpeechObjectTokenCategory* This,
10909     SpeechDataKeyLocation Location,
10910     ISpeechDataKey **DataKey);
10911 void __RPC_STUB ISpeechObjectTokenCategory_GetDataKey_Stub(
10912     IRpcStubBuffer* This,
10913     IRpcChannelBuffer* pRpcChannelBuffer,
10914     PRPC_MESSAGE pRpcMessage,
10915     DWORD* pdwStubPhase);
10916 HRESULT STDMETHODCALLTYPE ISpeechObjectTokenCategory_EnumerateTokens_Proxy(
10917     ISpeechObjectTokenCategory* This,
10918     BSTR RequiredAttributes,
10919     BSTR OptionalAttributes,
10920     ISpeechObjectTokens **Tokens);
10921 void __RPC_STUB ISpeechObjectTokenCategory_EnumerateTokens_Stub(
10922     IRpcStubBuffer* This,
10923     IRpcChannelBuffer* pRpcChannelBuffer,
10924     PRPC_MESSAGE pRpcMessage,
10925     DWORD* pdwStubPhase);
10926 
10927 #endif  /* __ISpeechObjectTokenCategory_INTERFACE_DEFINED__ */
10928 
10929 typedef enum SpeechAudioFormatType {
10930     SAFTDefault = -1,
10931     SAFTNoAssignedFormat = 0,
10932     SAFTText = 1,
10933     SAFTNonStandardFormat = 2,
10934     SAFTExtendedAudioFormat = 3,
10935     SAFT8kHz8BitMono = 4,
10936     SAFT8kHz8BitStereo = 5,
10937     SAFT8kHz16BitMono = 6,
10938     SAFT8kHz16BitStereo = 7,
10939     SAFT11kHz8BitMono = 8,
10940     SAFT11kHz8BitStereo = 9,
10941     SAFT11kHz16BitMono = 10,
10942     SAFT11kHz16BitStereo = 11,
10943     SAFT12kHz8BitMono = 12,
10944     SAFT12kHz8BitStereo = 13,
10945     SAFT12kHz16BitMono = 14,
10946     SAFT12kHz16BitStereo = 15,
10947     SAFT16kHz8BitMono = 16,
10948     SAFT16kHz8BitStereo = 17,
10949     SAFT16kHz16BitMono = 18,
10950     SAFT16kHz16BitStereo = 19,
10951     SAFT22kHz8BitMono = 20,
10952     SAFT22kHz8BitStereo = 21,
10953     SAFT22kHz16BitMono = 22,
10954     SAFT22kHz16BitStereo = 23,
10955     SAFT24kHz8BitMono = 24,
10956     SAFT24kHz8BitStereo = 25,
10957     SAFT24kHz16BitMono = 26,
10958     SAFT24kHz16BitStereo = 27,
10959     SAFT32kHz8BitMono = 28,
10960     SAFT32kHz8BitStereo = 29,
10961     SAFT32kHz16BitMono = 30,
10962     SAFT32kHz16BitStereo = 31,
10963     SAFT44kHz8BitMono = 32,
10964     SAFT44kHz8BitStereo = 33,
10965     SAFT44kHz16BitMono = 34,
10966     SAFT44kHz16BitStereo = 35,
10967     SAFT48kHz8BitMono = 36,
10968     SAFT48kHz8BitStereo = 37,
10969     SAFT48kHz16BitMono = 38,
10970     SAFT48kHz16BitStereo = 39,
10971     SAFTTrueSpeech_8kHz1BitMono = 40,
10972     SAFTCCITT_ALaw_8kHzMono = 41,
10973     SAFTCCITT_ALaw_8kHzStereo = 42,
10974     SAFTCCITT_ALaw_11kHzMono = 43,
10975     SAFTCCITT_ALaw_11kHzStereo = 44,
10976     SAFTCCITT_ALaw_22kHzMono = 45,
10977     SAFTCCITT_ALaw_22kHzStereo = 46,
10978     SAFTCCITT_ALaw_44kHzMono = 47,
10979     SAFTCCITT_ALaw_44kHzStereo = 48,
10980     SAFTCCITT_uLaw_8kHzMono = 49,
10981     SAFTCCITT_uLaw_8kHzStereo = 50,
10982     SAFTCCITT_uLaw_11kHzMono = 51,
10983     SAFTCCITT_uLaw_11kHzStereo = 52,
10984     SAFTCCITT_uLaw_22kHzMono = 53,
10985     SAFTCCITT_uLaw_22kHzStereo = 54,
10986     SAFTCCITT_uLaw_44kHzMono = 55,
10987     SAFTCCITT_uLaw_44kHzStereo = 56,
10988     SAFTADPCM_8kHzMono = 57,
10989     SAFTADPCM_8kHzStereo = 58,
10990     SAFTADPCM_11kHzMono = 59,
10991     SAFTADPCM_11kHzStereo = 60,
10992     SAFTADPCM_22kHzMono = 61,
10993     SAFTADPCM_22kHzStereo = 62,
10994     SAFTADPCM_44kHzMono = 63,
10995     SAFTADPCM_44kHzStereo = 64,
10996     SAFTGSM610_8kHzMono = 65,
10997     SAFTGSM610_11kHzMono = 66,
10998     SAFTGSM610_22kHzMono = 67,
10999     SAFTGSM610_44kHzMono = 68
11000 } SpeechAudioFormatType;
11001 typedef enum DISPID_SpeechAudioFormat {
11002     DISPID_SAFType = 1,
11003     DISPID_SAFGuid = 2,
11004     DISPID_SAFGetWaveFormatEx = 3,
11005     DISPID_SAFSetWaveFormatEx = 4
11006 } DISPID_SpeechAudioFormat;
11007 typedef enum DISPID_SpeechBaseStream {
11008     DISPID_SBSFormat = 1,
11009     DISPID_SBSRead = 2,
11010     DISPID_SBSWrite = 3,
11011     DISPID_SBSSeek = 4
11012 } DISPID_SpeechBaseStream;
11013 typedef enum SpeechStreamSeekPositionType {
11014     SSSPTRelativeToStart = STREAM_SEEK_SET,
11015     SSSPTRelativeToCurrentPosition = STREAM_SEEK_CUR,
11016     SSSPTRelativeToEnd = STREAM_SEEK_END
11017 } SpeechStreamSeekPositionType;
11018 typedef enum DISPID_SpeechAudio {
11019     DISPID_SAStatus = 200,
11020     DISPID_SABufferInfo = 201,
11021     DISPID_SADefaultFormat = 202,
11022     DISPID_SAVolume = 203,
11023     DISPID_SABufferNotifySize = 204,
11024     DISPID_SAEventHandle = 205,
11025     DISPID_SASetState = 206
11026 } DISPID_SpeechAudio;
11027 typedef enum SpeechAudioState {
11028     SASClosed = SPAS_CLOSED,
11029     SASStop = SPAS_STOP,
11030     SASPause = SPAS_PAUSE,
11031     SASRun = SPAS_RUN
11032 } SpeechAudioState;
11033 typedef enum DISPID_SpeechMMSysAudio {
11034     DISPID_SMSADeviceId = 300,
11035     DISPID_SMSALineId = 301,
11036     DISPID_SMSAMMHandle = 302
11037 } DISPID_SpeechMMSysAudio;
11038 typedef enum DISPID_SpeechFileStream {
11039     DISPID_SFSOpen = 100,
11040     DISPID_SFSClose = 101
11041 } DISPID_SpeechFileStream;
11042 typedef enum SpeechStreamFileMode {
11043     SSFMOpenForRead = SPFM_OPEN_READONLY,
11044     SSFMOpenReadWrite = SPFM_OPEN_READWRITE,
11045     SSFMCreate = SPFM_CREATE,
11046     SSFMCreateForWrite = SPFM_CREATE_ALWAYS
11047 } SpeechStreamFileMode;
11048 typedef enum DISPID_SpeechCustomStream {
11049     DISPID_SCSBaseStream = 100
11050 } DISPID_SpeechCustomStream;
11051 typedef enum DISPID_SpeechMemoryStream {
11052     DISPID_SMSSetData = 100,
11053     DISPID_SMSGetData = 101
11054 } DISPID_SpeechMemoryStream;
11055 typedef enum DISPID_SpeechAudioStatus {
11056     DISPID_SASFreeBufferSpace = 1,
11057     DISPID_SASNonBlockingIO = 2,
11058     DISPID_SASState = 3,
11059     DISPID_SASCurrentSeekPosition = 4,
11060     DISPID_SASCurrentDevicePosition = 5
11061 } DISPID_SpeechAudioStatus;
11062 typedef enum DISPID_SpeechAudioBufferInfo {
11063     DISPID_SABIMinNotification = 1,
11064     DISPID_SABIBufferSize = 2,
11065     DISPID_SABIEventBias = 3
11066 } DISPID_SpeechAudioBufferInfo;
11067 typedef enum DISPID_SpeechWaveFormatEx {
11068     DISPID_SWFEFormatTag = 1,
11069     DISPID_SWFEChannels = 2,
11070     DISPID_SWFESamplesPerSec = 3,
11071     DISPID_SWFEAvgBytesPerSec = 4,
11072     DISPID_SWFEBlockAlign = 5,
11073     DISPID_SWFEBitsPerSample = 6,
11074     DISPID_SWFEExtraData = 7
11075 } DISPID_SpeechWaveFormatEx;
11076 typedef enum DISPID_SpeechVoice {
11077     DISPID_SVStatus = 1,
11078     DISPID_SVVoice = 2,
11079     DISPID_SVAudioOutput = 3,
11080     DISPID_SVAudioOutputStream = 4,
11081     DISPID_SVRate = 5,
11082     DISPID_SVVolume = 6,
11083     DISPID_SVAllowAudioOuputFormatChangesOnNextSet = 7,
11084     DISPID_SVEventInterests = 8,
11085     DISPID_SVPriority = 9,
11086     DISPID_SVAlertBoundary = 10,
11087     DISPID_SVSyncronousSpeakTimeout = 11,
11088     DISPID_SVSpeak = 12,
11089     DISPID_SVSpeakStream = 13,
11090     DISPID_SVPause = 14,
11091     DISPID_SVResume = 15,
11092     DISPID_SVSkip = 16,
11093     DISPID_SVGetVoices = 17,
11094     DISPID_SVGetAudioOutputs = 18,
11095     DISPID_SVWaitUntilDone = 19,
11096     DISPID_SVSpeakCompleteEvent = 20,
11097     DISPID_SVIsUISupported = 21,
11098     DISPID_SVDisplayUI = 22
11099 } DISPID_SpeechVoice;
11100 typedef enum SpeechVoicePriority {
11101     SVPNormal = SPVPRI_NORMAL,
11102     SVPAlert = SPVPRI_ALERT,
11103     SVPOver = SPVPRI_OVER
11104 } SpeechVoicePriority;
11105 typedef enum SpeechVoiceSpeakFlags {
11106     SVSFDefault = SPF_DEFAULT,
11107     SVSFlagsAsync = SPF_ASYNC,
11108     SVSFPurgeBeforeSpeak = SPF_PURGEBEFORESPEAK,
11109     SVSFIsFilename = SPF_IS_FILENAME,
11110     SVSFIsXML = SPF_IS_XML,
11111     SVSFIsNotXML = SPF_IS_NOT_XML,
11112     SVSFPersistXML = SPF_PERSIST_XML,
11113     SVSFNLPSpeakPunc = SPF_NLP_SPEAK_PUNC,
11114     SVSFNLPMask = SPF_NLP_MASK,
11115     SVSFVoiceMask = SPF_VOICE_MASK,
11116     SVSFUnusedFlags = SPF_UNUSED_FLAGS
11117 } SpeechVoiceSpeakFlags;
11118 typedef enum SpeechVoiceEvents {
11119     SVEStartInputStream = 0x2,
11120     SVEEndInputStream = 0x4,
11121     SVEVoiceChange = 0x8,
11122     SVEBookmark = 0x10,
11123     SVEWordBoundary = 0x20,
11124     SVEPhoneme = 0x40,
11125     SVESentenceBoundary = 0x80,
11126     SVEViseme = 0x100,
11127     SVEAudioLevel = 0x200,
11128     SVEPrivate = 0x8000,
11129     SVEAllEvents = 0x83fe
11130 } SpeechVoiceEvents;
11131 typedef enum DISPID_SpeechVoiceStatus {
11132     DISPID_SVSCurrentStreamNumber = 1,
11133     DISPID_SVSLastStreamNumberQueued = 2,
11134     DISPID_SVSLastResult = 3,
11135     DISPID_SVSRunningState = 4,
11136     DISPID_SVSInputWordPosition = 5,
11137     DISPID_SVSInputWordLength = 6,
11138     DISPID_SVSInputSentencePosition = 7,
11139     DISPID_SVSInputSentenceLength = 8,
11140     DISPID_SVSLastBookmark = 9,
11141     DISPID_SVSLastBookmarkId = 10,
11142     DISPID_SVSPhonemeId = 11,
11143     DISPID_SVSVisemeId = 12
11144 } DISPID_SpeechVoiceStatus;
11145 typedef enum SpeechRunState {
11146     SRSEDone = SPRS_DONE,
11147     SRSEIsSpeaking = SPRS_IS_SPEAKING
11148 } SpeechRunState;
11149 /*****************************************************************************
11150  * ISpeechAudioFormat interface
11151  */
11152 #ifndef __ISpeechAudioFormat_INTERFACE_DEFINED__
11153 #define __ISpeechAudioFormat_INTERFACE_DEFINED__
11154 
11155 DEFINE_GUID(IID_ISpeechAudioFormat, 0xe6e9c590, 0x3e18, 0x40e3, 0x82,0x99, 0x06,0x1f,0x98,0xbd,0xe7,0xc7);
11156 #if defined(__cplusplus) && !defined(CINTERFACE)
11157 MIDL_INTERFACE("e6e9c590-3e18-40e3-8299-061f98bde7c7")
11158 ISpeechAudioFormat : public IDispatch
11159 {
11160     virtual HRESULT STDMETHODCALLTYPE get_Type(
11161         SpeechAudioFormatType *AudioFormat) = 0;
11162 
11163     virtual HRESULT STDMETHODCALLTYPE put_Type(
11164         SpeechAudioFormatType AudioFormat) = 0;
11165 
11166     virtual HRESULT STDMETHODCALLTYPE get_Guid(
11167         BSTR *Guid) = 0;
11168 
11169     virtual HRESULT STDMETHODCALLTYPE put_Guid(
11170         BSTR Guid) = 0;
11171 
11172     virtual HRESULT STDMETHODCALLTYPE GetWaveFormatEx(
11173         ISpeechWaveFormatEx **SpeechWaveFormatEx) = 0;
11174 
11175     virtual HRESULT STDMETHODCALLTYPE SetWaveFormatEx(
11176         ISpeechWaveFormatEx *SpeechWaveFormatEx) = 0;
11177 
11178 };
11179 #ifdef __CRT_UUID_DECL
11180 __CRT_UUID_DECL(ISpeechAudioFormat, 0xe6e9c590, 0x3e18, 0x40e3, 0x82,0x99, 0x06,0x1f,0x98,0xbd,0xe7,0xc7)
11181 #endif
11182 #else
11183 typedef struct ISpeechAudioFormatVtbl {
11184     BEGIN_INTERFACE
11185 
11186     /*** IUnknown methods ***/
11187     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11188         ISpeechAudioFormat* This,
11189         REFIID riid,
11190         void **ppvObject);
11191 
11192     ULONG (STDMETHODCALLTYPE *AddRef)(
11193         ISpeechAudioFormat* This);
11194 
11195     ULONG (STDMETHODCALLTYPE *Release)(
11196         ISpeechAudioFormat* This);
11197 
11198     /*** IDispatch methods ***/
11199     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
11200         ISpeechAudioFormat* This,
11201         UINT *pctinfo);
11202 
11203     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
11204         ISpeechAudioFormat* This,
11205         UINT iTInfo,
11206         LCID lcid,
11207         ITypeInfo **ppTInfo);
11208 
11209     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
11210         ISpeechAudioFormat* This,
11211         REFIID riid,
11212         LPOLESTR *rgszNames,
11213         UINT cNames,
11214         LCID lcid,
11215         DISPID *rgDispId);
11216 
11217     HRESULT (STDMETHODCALLTYPE *Invoke)(
11218         ISpeechAudioFormat* This,
11219         DISPID dispIdMember,
11220         REFIID riid,
11221         LCID lcid,
11222         WORD wFlags,
11223         DISPPARAMS *pDispParams,
11224         VARIANT *pVarResult,
11225         EXCEPINFO *pExcepInfo,
11226         UINT *puArgErr);
11227 
11228     /*** ISpeechAudioFormat methods ***/
11229     HRESULT (STDMETHODCALLTYPE *get_Type)(
11230         ISpeechAudioFormat* This,
11231         SpeechAudioFormatType *AudioFormat);
11232 
11233     HRESULT (STDMETHODCALLTYPE *put_Type)(
11234         ISpeechAudioFormat* This,
11235         SpeechAudioFormatType AudioFormat);
11236 
11237     HRESULT (STDMETHODCALLTYPE *get_Guid)(
11238         ISpeechAudioFormat* This,
11239         BSTR *Guid);
11240 
11241     HRESULT (STDMETHODCALLTYPE *put_Guid)(
11242         ISpeechAudioFormat* This,
11243         BSTR Guid);
11244 
11245     HRESULT (STDMETHODCALLTYPE *GetWaveFormatEx)(
11246         ISpeechAudioFormat* This,
11247         ISpeechWaveFormatEx **SpeechWaveFormatEx);
11248 
11249     HRESULT (STDMETHODCALLTYPE *SetWaveFormatEx)(
11250         ISpeechAudioFormat* This,
11251         ISpeechWaveFormatEx *SpeechWaveFormatEx);
11252 
11253     END_INTERFACE
11254 } ISpeechAudioFormatVtbl;
11255 interface ISpeechAudioFormat {
11256     CONST_VTBL ISpeechAudioFormatVtbl* lpVtbl;
11257 };
11258 
11259 #ifdef COBJMACROS
11260 #ifndef WIDL_C_INLINE_WRAPPERS
11261 /*** IUnknown methods ***/
11262 #define ISpeechAudioFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11263 #define ISpeechAudioFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
11264 #define ISpeechAudioFormat_Release(This) (This)->lpVtbl->Release(This)
11265 /*** IDispatch methods ***/
11266 #define ISpeechAudioFormat_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
11267 #define ISpeechAudioFormat_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
11268 #define ISpeechAudioFormat_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
11269 #define ISpeechAudioFormat_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
11270 /*** ISpeechAudioFormat methods ***/
11271 #define ISpeechAudioFormat_get_Type(This,AudioFormat) (This)->lpVtbl->get_Type(This,AudioFormat)
11272 #define ISpeechAudioFormat_put_Type(This,AudioFormat) (This)->lpVtbl->put_Type(This,AudioFormat)
11273 #define ISpeechAudioFormat_get_Guid(This,Guid) (This)->lpVtbl->get_Guid(This,Guid)
11274 #define ISpeechAudioFormat_put_Guid(This,Guid) (This)->lpVtbl->put_Guid(This,Guid)
11275 #define ISpeechAudioFormat_GetWaveFormatEx(This,SpeechWaveFormatEx) (This)->lpVtbl->GetWaveFormatEx(This,SpeechWaveFormatEx)
11276 #define ISpeechAudioFormat_SetWaveFormatEx(This,SpeechWaveFormatEx) (This)->lpVtbl->SetWaveFormatEx(This,SpeechWaveFormatEx)
11277 #else
11278 /*** IUnknown methods ***/
11279 static FORCEINLINE HRESULT ISpeechAudioFormat_QueryInterface(ISpeechAudioFormat* This,REFIID riid,void **ppvObject) {
11280     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11281 }
11282 static FORCEINLINE ULONG ISpeechAudioFormat_AddRef(ISpeechAudioFormat* This) {
11283     return This->lpVtbl->AddRef(This);
11284 }
11285 static FORCEINLINE ULONG ISpeechAudioFormat_Release(ISpeechAudioFormat* This) {
11286     return This->lpVtbl->Release(This);
11287 }
11288 /*** IDispatch methods ***/
11289 static FORCEINLINE HRESULT ISpeechAudioFormat_GetTypeInfoCount(ISpeechAudioFormat* This,UINT *pctinfo) {
11290     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
11291 }
11292 static FORCEINLINE HRESULT ISpeechAudioFormat_GetTypeInfo(ISpeechAudioFormat* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
11293     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
11294 }
11295 static FORCEINLINE HRESULT ISpeechAudioFormat_GetIDsOfNames(ISpeechAudioFormat* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
11296     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
11297 }
11298 static FORCEINLINE HRESULT ISpeechAudioFormat_Invoke(ISpeechAudioFormat* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
11299     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
11300 }
11301 /*** ISpeechAudioFormat methods ***/
11302 static FORCEINLINE HRESULT ISpeechAudioFormat_get_Type(ISpeechAudioFormat* This,SpeechAudioFormatType *AudioFormat) {
11303     return This->lpVtbl->get_Type(This,AudioFormat);
11304 }
11305 static FORCEINLINE HRESULT ISpeechAudioFormat_put_Type(ISpeechAudioFormat* This,SpeechAudioFormatType AudioFormat) {
11306     return This->lpVtbl->put_Type(This,AudioFormat);
11307 }
11308 static FORCEINLINE HRESULT ISpeechAudioFormat_get_Guid(ISpeechAudioFormat* This,BSTR *Guid) {
11309     return This->lpVtbl->get_Guid(This,Guid);
11310 }
11311 static FORCEINLINE HRESULT ISpeechAudioFormat_put_Guid(ISpeechAudioFormat* This,BSTR Guid) {
11312     return This->lpVtbl->put_Guid(This,Guid);
11313 }
11314 static FORCEINLINE HRESULT ISpeechAudioFormat_GetWaveFormatEx(ISpeechAudioFormat* This,ISpeechWaveFormatEx **SpeechWaveFormatEx) {
11315     return This->lpVtbl->GetWaveFormatEx(This,SpeechWaveFormatEx);
11316 }
11317 static FORCEINLINE HRESULT ISpeechAudioFormat_SetWaveFormatEx(ISpeechAudioFormat* This,ISpeechWaveFormatEx *SpeechWaveFormatEx) {
11318     return This->lpVtbl->SetWaveFormatEx(This,SpeechWaveFormatEx);
11319 }
11320 #endif
11321 #endif
11322 
11323 #endif
11324 
11325 HRESULT STDMETHODCALLTYPE ISpeechAudioFormat_get_Type_Proxy(
11326     ISpeechAudioFormat* This,
11327     SpeechAudioFormatType *AudioFormat);
11328 void __RPC_STUB ISpeechAudioFormat_get_Type_Stub(
11329     IRpcStubBuffer* This,
11330     IRpcChannelBuffer* pRpcChannelBuffer,
11331     PRPC_MESSAGE pRpcMessage,
11332     DWORD* pdwStubPhase);
11333 HRESULT STDMETHODCALLTYPE ISpeechAudioFormat_put_Type_Proxy(
11334     ISpeechAudioFormat* This,
11335     SpeechAudioFormatType AudioFormat);
11336 void __RPC_STUB ISpeechAudioFormat_put_Type_Stub(
11337     IRpcStubBuffer* This,
11338     IRpcChannelBuffer* pRpcChannelBuffer,
11339     PRPC_MESSAGE pRpcMessage,
11340     DWORD* pdwStubPhase);
11341 HRESULT STDMETHODCALLTYPE ISpeechAudioFormat_get_Guid_Proxy(
11342     ISpeechAudioFormat* This,
11343     BSTR *Guid);
11344 void __RPC_STUB ISpeechAudioFormat_get_Guid_Stub(
11345     IRpcStubBuffer* This,
11346     IRpcChannelBuffer* pRpcChannelBuffer,
11347     PRPC_MESSAGE pRpcMessage,
11348     DWORD* pdwStubPhase);
11349 HRESULT STDMETHODCALLTYPE ISpeechAudioFormat_put_Guid_Proxy(
11350     ISpeechAudioFormat* This,
11351     BSTR Guid);
11352 void __RPC_STUB ISpeechAudioFormat_put_Guid_Stub(
11353     IRpcStubBuffer* This,
11354     IRpcChannelBuffer* pRpcChannelBuffer,
11355     PRPC_MESSAGE pRpcMessage,
11356     DWORD* pdwStubPhase);
11357 HRESULT STDMETHODCALLTYPE ISpeechAudioFormat_GetWaveFormatEx_Proxy(
11358     ISpeechAudioFormat* This,
11359     ISpeechWaveFormatEx **SpeechWaveFormatEx);
11360 void __RPC_STUB ISpeechAudioFormat_GetWaveFormatEx_Stub(
11361     IRpcStubBuffer* This,
11362     IRpcChannelBuffer* pRpcChannelBuffer,
11363     PRPC_MESSAGE pRpcMessage,
11364     DWORD* pdwStubPhase);
11365 HRESULT STDMETHODCALLTYPE ISpeechAudioFormat_SetWaveFormatEx_Proxy(
11366     ISpeechAudioFormat* This,
11367     ISpeechWaveFormatEx *SpeechWaveFormatEx);
11368 void __RPC_STUB ISpeechAudioFormat_SetWaveFormatEx_Stub(
11369     IRpcStubBuffer* This,
11370     IRpcChannelBuffer* pRpcChannelBuffer,
11371     PRPC_MESSAGE pRpcMessage,
11372     DWORD* pdwStubPhase);
11373 
11374 #endif  /* __ISpeechAudioFormat_INTERFACE_DEFINED__ */
11375 
11376 /*****************************************************************************
11377  * ISpeechBaseStream interface
11378  */
11379 #ifndef __ISpeechBaseStream_INTERFACE_DEFINED__
11380 #define __ISpeechBaseStream_INTERFACE_DEFINED__
11381 
11382 DEFINE_GUID(IID_ISpeechBaseStream, 0x6450336f, 0x7d49, 0x4ced, 0x80,0x97, 0x49,0xd6,0xde,0xe3,0x72,0x94);
11383 #if defined(__cplusplus) && !defined(CINTERFACE)
11384 MIDL_INTERFACE("6450336f-7d49-4ced-8097-49d6dee37294")
11385 ISpeechBaseStream : public IDispatch
11386 {
11387     virtual HRESULT STDMETHODCALLTYPE get_Format(
11388         ISpeechAudioFormat **AudioFormat) = 0;
11389 
11390     virtual HRESULT STDMETHODCALLTYPE putref_Format(
11391         ISpeechAudioFormat *AudioFormat) = 0;
11392 
11393     virtual HRESULT STDMETHODCALLTYPE Read(
11394         VARIANT *Buffer,
11395         LONG NumberOfBytes,
11396         LONG *BytesRead) = 0;
11397 
11398     virtual HRESULT STDMETHODCALLTYPE Write(
11399         VARIANT Buffer,
11400         LONG *BytesWritten) = 0;
11401 
11402     virtual HRESULT STDMETHODCALLTYPE Seek(
11403         VARIANT Position,
11404         SpeechStreamSeekPositionType Origin,
11405         VARIANT *NewPosition) = 0;
11406 
11407 };
11408 #ifdef __CRT_UUID_DECL
11409 __CRT_UUID_DECL(ISpeechBaseStream, 0x6450336f, 0x7d49, 0x4ced, 0x80,0x97, 0x49,0xd6,0xde,0xe3,0x72,0x94)
11410 #endif
11411 #else
11412 typedef struct ISpeechBaseStreamVtbl {
11413     BEGIN_INTERFACE
11414 
11415     /*** IUnknown methods ***/
11416     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11417         ISpeechBaseStream* This,
11418         REFIID riid,
11419         void **ppvObject);
11420 
11421     ULONG (STDMETHODCALLTYPE *AddRef)(
11422         ISpeechBaseStream* This);
11423 
11424     ULONG (STDMETHODCALLTYPE *Release)(
11425         ISpeechBaseStream* This);
11426 
11427     /*** IDispatch methods ***/
11428     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
11429         ISpeechBaseStream* This,
11430         UINT *pctinfo);
11431 
11432     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
11433         ISpeechBaseStream* This,
11434         UINT iTInfo,
11435         LCID lcid,
11436         ITypeInfo **ppTInfo);
11437 
11438     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
11439         ISpeechBaseStream* This,
11440         REFIID riid,
11441         LPOLESTR *rgszNames,
11442         UINT cNames,
11443         LCID lcid,
11444         DISPID *rgDispId);
11445 
11446     HRESULT (STDMETHODCALLTYPE *Invoke)(
11447         ISpeechBaseStream* This,
11448         DISPID dispIdMember,
11449         REFIID riid,
11450         LCID lcid,
11451         WORD wFlags,
11452         DISPPARAMS *pDispParams,
11453         VARIANT *pVarResult,
11454         EXCEPINFO *pExcepInfo,
11455         UINT *puArgErr);
11456 
11457     /*** ISpeechBaseStream methods ***/
11458     HRESULT (STDMETHODCALLTYPE *get_Format)(
11459         ISpeechBaseStream* This,
11460         ISpeechAudioFormat **AudioFormat);
11461 
11462     HRESULT (STDMETHODCALLTYPE *putref_Format)(
11463         ISpeechBaseStream* This,
11464         ISpeechAudioFormat *AudioFormat);
11465 
11466     HRESULT (STDMETHODCALLTYPE *Read)(
11467         ISpeechBaseStream* This,
11468         VARIANT *Buffer,
11469         LONG NumberOfBytes,
11470         LONG *BytesRead);
11471 
11472     HRESULT (STDMETHODCALLTYPE *Write)(
11473         ISpeechBaseStream* This,
11474         VARIANT Buffer,
11475         LONG *BytesWritten);
11476 
11477     HRESULT (STDMETHODCALLTYPE *Seek)(
11478         ISpeechBaseStream* This,
11479         VARIANT Position,
11480         SpeechStreamSeekPositionType Origin,
11481         VARIANT *NewPosition);
11482 
11483     END_INTERFACE
11484 } ISpeechBaseStreamVtbl;
11485 interface ISpeechBaseStream {
11486     CONST_VTBL ISpeechBaseStreamVtbl* lpVtbl;
11487 };
11488 
11489 #ifdef COBJMACROS
11490 #ifndef WIDL_C_INLINE_WRAPPERS
11491 /*** IUnknown methods ***/
11492 #define ISpeechBaseStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11493 #define ISpeechBaseStream_AddRef(This) (This)->lpVtbl->AddRef(This)
11494 #define ISpeechBaseStream_Release(This) (This)->lpVtbl->Release(This)
11495 /*** IDispatch methods ***/
11496 #define ISpeechBaseStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
11497 #define ISpeechBaseStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
11498 #define ISpeechBaseStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
11499 #define ISpeechBaseStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
11500 /*** ISpeechBaseStream methods ***/
11501 #define ISpeechBaseStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
11502 #define ISpeechBaseStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
11503 #define ISpeechBaseStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
11504 #define ISpeechBaseStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
11505 #define ISpeechBaseStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
11506 #else
11507 /*** IUnknown methods ***/
11508 static FORCEINLINE HRESULT ISpeechBaseStream_QueryInterface(ISpeechBaseStream* This,REFIID riid,void **ppvObject) {
11509     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11510 }
11511 static FORCEINLINE ULONG ISpeechBaseStream_AddRef(ISpeechBaseStream* This) {
11512     return This->lpVtbl->AddRef(This);
11513 }
11514 static FORCEINLINE ULONG ISpeechBaseStream_Release(ISpeechBaseStream* This) {
11515     return This->lpVtbl->Release(This);
11516 }
11517 /*** IDispatch methods ***/
11518 static FORCEINLINE HRESULT ISpeechBaseStream_GetTypeInfoCount(ISpeechBaseStream* This,UINT *pctinfo) {
11519     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
11520 }
11521 static FORCEINLINE HRESULT ISpeechBaseStream_GetTypeInfo(ISpeechBaseStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
11522     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
11523 }
11524 static FORCEINLINE HRESULT ISpeechBaseStream_GetIDsOfNames(ISpeechBaseStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
11525     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
11526 }
11527 static FORCEINLINE HRESULT ISpeechBaseStream_Invoke(ISpeechBaseStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
11528     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
11529 }
11530 /*** ISpeechBaseStream methods ***/
11531 static FORCEINLINE HRESULT ISpeechBaseStream_get_Format(ISpeechBaseStream* This,ISpeechAudioFormat **AudioFormat) {
11532     return This->lpVtbl->get_Format(This,AudioFormat);
11533 }
11534 static FORCEINLINE HRESULT ISpeechBaseStream_putref_Format(ISpeechBaseStream* This,ISpeechAudioFormat *AudioFormat) {
11535     return This->lpVtbl->putref_Format(This,AudioFormat);
11536 }
11537 static FORCEINLINE HRESULT ISpeechBaseStream_Read(ISpeechBaseStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
11538     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
11539 }
11540 static FORCEINLINE HRESULT ISpeechBaseStream_Write(ISpeechBaseStream* This,VARIANT Buffer,LONG *BytesWritten) {
11541     return This->lpVtbl->Write(This,Buffer,BytesWritten);
11542 }
11543 static FORCEINLINE HRESULT ISpeechBaseStream_Seek(ISpeechBaseStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
11544     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
11545 }
11546 #endif
11547 #endif
11548 
11549 #endif
11550 
11551 HRESULT STDMETHODCALLTYPE ISpeechBaseStream_get_Format_Proxy(
11552     ISpeechBaseStream* This,
11553     ISpeechAudioFormat **AudioFormat);
11554 void __RPC_STUB ISpeechBaseStream_get_Format_Stub(
11555     IRpcStubBuffer* This,
11556     IRpcChannelBuffer* pRpcChannelBuffer,
11557     PRPC_MESSAGE pRpcMessage,
11558     DWORD* pdwStubPhase);
11559 HRESULT STDMETHODCALLTYPE ISpeechBaseStream_putref_Format_Proxy(
11560     ISpeechBaseStream* This,
11561     ISpeechAudioFormat *AudioFormat);
11562 void __RPC_STUB ISpeechBaseStream_putref_Format_Stub(
11563     IRpcStubBuffer* This,
11564     IRpcChannelBuffer* pRpcChannelBuffer,
11565     PRPC_MESSAGE pRpcMessage,
11566     DWORD* pdwStubPhase);
11567 HRESULT STDMETHODCALLTYPE ISpeechBaseStream_Read_Proxy(
11568     ISpeechBaseStream* This,
11569     VARIANT *Buffer,
11570     LONG NumberOfBytes,
11571     LONG *BytesRead);
11572 void __RPC_STUB ISpeechBaseStream_Read_Stub(
11573     IRpcStubBuffer* This,
11574     IRpcChannelBuffer* pRpcChannelBuffer,
11575     PRPC_MESSAGE pRpcMessage,
11576     DWORD* pdwStubPhase);
11577 HRESULT STDMETHODCALLTYPE ISpeechBaseStream_Write_Proxy(
11578     ISpeechBaseStream* This,
11579     VARIANT Buffer,
11580     LONG *BytesWritten);
11581 void __RPC_STUB ISpeechBaseStream_Write_Stub(
11582     IRpcStubBuffer* This,
11583     IRpcChannelBuffer* pRpcChannelBuffer,
11584     PRPC_MESSAGE pRpcMessage,
11585     DWORD* pdwStubPhase);
11586 HRESULT STDMETHODCALLTYPE ISpeechBaseStream_Seek_Proxy(
11587     ISpeechBaseStream* This,
11588     VARIANT Position,
11589     SpeechStreamSeekPositionType Origin,
11590     VARIANT *NewPosition);
11591 void __RPC_STUB ISpeechBaseStream_Seek_Stub(
11592     IRpcStubBuffer* This,
11593     IRpcChannelBuffer* pRpcChannelBuffer,
11594     PRPC_MESSAGE pRpcMessage,
11595     DWORD* pdwStubPhase);
11596 
11597 #endif  /* __ISpeechBaseStream_INTERFACE_DEFINED__ */
11598 
11599 /*****************************************************************************
11600  * ISpeechAudio interface
11601  */
11602 #ifndef __ISpeechAudio_INTERFACE_DEFINED__
11603 #define __ISpeechAudio_INTERFACE_DEFINED__
11604 
11605 DEFINE_GUID(IID_ISpeechAudio, 0xcff8e175, 0x019e, 0x11d3, 0xa0,0x8e, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5);
11606 #if defined(__cplusplus) && !defined(CINTERFACE)
11607 MIDL_INTERFACE("cff8e175-019e-11d3-a08e-00c04f8ef9b5")
11608 ISpeechAudio : public ISpeechBaseStream
11609 {
11610     virtual HRESULT STDMETHODCALLTYPE get_Status(
11611         ISpeechAudioStatus **Status) = 0;
11612 
11613     virtual HRESULT STDMETHODCALLTYPE get_BufferInfo(
11614         ISpeechAudioBufferInfo **BufferInfo) = 0;
11615 
11616     virtual HRESULT STDMETHODCALLTYPE get_DefaultFormat(
11617         ISpeechAudioFormat **StreamFormat) = 0;
11618 
11619     virtual HRESULT STDMETHODCALLTYPE get_Volume(
11620         LONG *Volume) = 0;
11621 
11622     virtual HRESULT STDMETHODCALLTYPE put_Volume(
11623         LONG Volume) = 0;
11624 
11625     virtual HRESULT STDMETHODCALLTYPE get_BufferNotifySize(
11626         LONG *BufferNotifySize) = 0;
11627 
11628     virtual HRESULT STDMETHODCALLTYPE put_BufferNotifySize(
11629         LONG BufferNotifySize) = 0;
11630 
11631     virtual HRESULT STDMETHODCALLTYPE get_EventHandle(
11632         LONG *EventHandle) = 0;
11633 
11634     virtual HRESULT STDMETHODCALLTYPE SetState(
11635         SpeechAudioState State) = 0;
11636 
11637 };
11638 #ifdef __CRT_UUID_DECL
11639 __CRT_UUID_DECL(ISpeechAudio, 0xcff8e175, 0x019e, 0x11d3, 0xa0,0x8e, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5)
11640 #endif
11641 #else
11642 typedef struct ISpeechAudioVtbl {
11643     BEGIN_INTERFACE
11644 
11645     /*** IUnknown methods ***/
11646     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11647         ISpeechAudio* This,
11648         REFIID riid,
11649         void **ppvObject);
11650 
11651     ULONG (STDMETHODCALLTYPE *AddRef)(
11652         ISpeechAudio* This);
11653 
11654     ULONG (STDMETHODCALLTYPE *Release)(
11655         ISpeechAudio* This);
11656 
11657     /*** IDispatch methods ***/
11658     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
11659         ISpeechAudio* This,
11660         UINT *pctinfo);
11661 
11662     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
11663         ISpeechAudio* This,
11664         UINT iTInfo,
11665         LCID lcid,
11666         ITypeInfo **ppTInfo);
11667 
11668     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
11669         ISpeechAudio* This,
11670         REFIID riid,
11671         LPOLESTR *rgszNames,
11672         UINT cNames,
11673         LCID lcid,
11674         DISPID *rgDispId);
11675 
11676     HRESULT (STDMETHODCALLTYPE *Invoke)(
11677         ISpeechAudio* This,
11678         DISPID dispIdMember,
11679         REFIID riid,
11680         LCID lcid,
11681         WORD wFlags,
11682         DISPPARAMS *pDispParams,
11683         VARIANT *pVarResult,
11684         EXCEPINFO *pExcepInfo,
11685         UINT *puArgErr);
11686 
11687     /*** ISpeechBaseStream methods ***/
11688     HRESULT (STDMETHODCALLTYPE *get_Format)(
11689         ISpeechAudio* This,
11690         ISpeechAudioFormat **AudioFormat);
11691 
11692     HRESULT (STDMETHODCALLTYPE *putref_Format)(
11693         ISpeechAudio* This,
11694         ISpeechAudioFormat *AudioFormat);
11695 
11696     HRESULT (STDMETHODCALLTYPE *Read)(
11697         ISpeechAudio* This,
11698         VARIANT *Buffer,
11699         LONG NumberOfBytes,
11700         LONG *BytesRead);
11701 
11702     HRESULT (STDMETHODCALLTYPE *Write)(
11703         ISpeechAudio* This,
11704         VARIANT Buffer,
11705         LONG *BytesWritten);
11706 
11707     HRESULT (STDMETHODCALLTYPE *Seek)(
11708         ISpeechAudio* This,
11709         VARIANT Position,
11710         SpeechStreamSeekPositionType Origin,
11711         VARIANT *NewPosition);
11712 
11713     /*** ISpeechAudio methods ***/
11714     HRESULT (STDMETHODCALLTYPE *get_Status)(
11715         ISpeechAudio* This,
11716         ISpeechAudioStatus **Status);
11717 
11718     HRESULT (STDMETHODCALLTYPE *get_BufferInfo)(
11719         ISpeechAudio* This,
11720         ISpeechAudioBufferInfo **BufferInfo);
11721 
11722     HRESULT (STDMETHODCALLTYPE *get_DefaultFormat)(
11723         ISpeechAudio* This,
11724         ISpeechAudioFormat **StreamFormat);
11725 
11726     HRESULT (STDMETHODCALLTYPE *get_Volume)(
11727         ISpeechAudio* This,
11728         LONG *Volume);
11729 
11730     HRESULT (STDMETHODCALLTYPE *put_Volume)(
11731         ISpeechAudio* This,
11732         LONG Volume);
11733 
11734     HRESULT (STDMETHODCALLTYPE *get_BufferNotifySize)(
11735         ISpeechAudio* This,
11736         LONG *BufferNotifySize);
11737 
11738     HRESULT (STDMETHODCALLTYPE *put_BufferNotifySize)(
11739         ISpeechAudio* This,
11740         LONG BufferNotifySize);
11741 
11742     HRESULT (STDMETHODCALLTYPE *get_EventHandle)(
11743         ISpeechAudio* This,
11744         LONG *EventHandle);
11745 
11746     HRESULT (STDMETHODCALLTYPE *SetState)(
11747         ISpeechAudio* This,
11748         SpeechAudioState State);
11749 
11750     END_INTERFACE
11751 } ISpeechAudioVtbl;
11752 interface ISpeechAudio {
11753     CONST_VTBL ISpeechAudioVtbl* lpVtbl;
11754 };
11755 
11756 #ifdef COBJMACROS
11757 #ifndef WIDL_C_INLINE_WRAPPERS
11758 /*** IUnknown methods ***/
11759 #define ISpeechAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11760 #define ISpeechAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
11761 #define ISpeechAudio_Release(This) (This)->lpVtbl->Release(This)
11762 /*** IDispatch methods ***/
11763 #define ISpeechAudio_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
11764 #define ISpeechAudio_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
11765 #define ISpeechAudio_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
11766 #define ISpeechAudio_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
11767 /*** ISpeechBaseStream methods ***/
11768 #define ISpeechAudio_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
11769 #define ISpeechAudio_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
11770 #define ISpeechAudio_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
11771 #define ISpeechAudio_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
11772 #define ISpeechAudio_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
11773 /*** ISpeechAudio methods ***/
11774 #define ISpeechAudio_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
11775 #define ISpeechAudio_get_BufferInfo(This,BufferInfo) (This)->lpVtbl->get_BufferInfo(This,BufferInfo)
11776 #define ISpeechAudio_get_DefaultFormat(This,StreamFormat) (This)->lpVtbl->get_DefaultFormat(This,StreamFormat)
11777 #define ISpeechAudio_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
11778 #define ISpeechAudio_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
11779 #define ISpeechAudio_get_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->get_BufferNotifySize(This,BufferNotifySize)
11780 #define ISpeechAudio_put_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->put_BufferNotifySize(This,BufferNotifySize)
11781 #define ISpeechAudio_get_EventHandle(This,EventHandle) (This)->lpVtbl->get_EventHandle(This,EventHandle)
11782 #define ISpeechAudio_SetState(This,State) (This)->lpVtbl->SetState(This,State)
11783 #else
11784 /*** IUnknown methods ***/
11785 static FORCEINLINE HRESULT ISpeechAudio_QueryInterface(ISpeechAudio* This,REFIID riid,void **ppvObject) {
11786     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11787 }
11788 static FORCEINLINE ULONG ISpeechAudio_AddRef(ISpeechAudio* This) {
11789     return This->lpVtbl->AddRef(This);
11790 }
11791 static FORCEINLINE ULONG ISpeechAudio_Release(ISpeechAudio* This) {
11792     return This->lpVtbl->Release(This);
11793 }
11794 /*** IDispatch methods ***/
11795 static FORCEINLINE HRESULT ISpeechAudio_GetTypeInfoCount(ISpeechAudio* This,UINT *pctinfo) {
11796     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
11797 }
11798 static FORCEINLINE HRESULT ISpeechAudio_GetTypeInfo(ISpeechAudio* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
11799     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
11800 }
11801 static FORCEINLINE HRESULT ISpeechAudio_GetIDsOfNames(ISpeechAudio* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
11802     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
11803 }
11804 static FORCEINLINE HRESULT ISpeechAudio_Invoke(ISpeechAudio* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
11805     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
11806 }
11807 /*** ISpeechBaseStream methods ***/
11808 static FORCEINLINE HRESULT ISpeechAudio_get_Format(ISpeechAudio* This,ISpeechAudioFormat **AudioFormat) {
11809     return This->lpVtbl->get_Format(This,AudioFormat);
11810 }
11811 static FORCEINLINE HRESULT ISpeechAudio_putref_Format(ISpeechAudio* This,ISpeechAudioFormat *AudioFormat) {
11812     return This->lpVtbl->putref_Format(This,AudioFormat);
11813 }
11814 static FORCEINLINE HRESULT ISpeechAudio_Read(ISpeechAudio* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
11815     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
11816 }
11817 static FORCEINLINE HRESULT ISpeechAudio_Write(ISpeechAudio* This,VARIANT Buffer,LONG *BytesWritten) {
11818     return This->lpVtbl->Write(This,Buffer,BytesWritten);
11819 }
11820 static FORCEINLINE HRESULT ISpeechAudio_Seek(ISpeechAudio* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
11821     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
11822 }
11823 /*** ISpeechAudio methods ***/
11824 static FORCEINLINE HRESULT ISpeechAudio_get_Status(ISpeechAudio* This,ISpeechAudioStatus **Status) {
11825     return This->lpVtbl->get_Status(This,Status);
11826 }
11827 static FORCEINLINE HRESULT ISpeechAudio_get_BufferInfo(ISpeechAudio* This,ISpeechAudioBufferInfo **BufferInfo) {
11828     return This->lpVtbl->get_BufferInfo(This,BufferInfo);
11829 }
11830 static FORCEINLINE HRESULT ISpeechAudio_get_DefaultFormat(ISpeechAudio* This,ISpeechAudioFormat **StreamFormat) {
11831     return This->lpVtbl->get_DefaultFormat(This,StreamFormat);
11832 }
11833 static FORCEINLINE HRESULT ISpeechAudio_get_Volume(ISpeechAudio* This,LONG *Volume) {
11834     return This->lpVtbl->get_Volume(This,Volume);
11835 }
11836 static FORCEINLINE HRESULT ISpeechAudio_put_Volume(ISpeechAudio* This,LONG Volume) {
11837     return This->lpVtbl->put_Volume(This,Volume);
11838 }
11839 static FORCEINLINE HRESULT ISpeechAudio_get_BufferNotifySize(ISpeechAudio* This,LONG *BufferNotifySize) {
11840     return This->lpVtbl->get_BufferNotifySize(This,BufferNotifySize);
11841 }
11842 static FORCEINLINE HRESULT ISpeechAudio_put_BufferNotifySize(ISpeechAudio* This,LONG BufferNotifySize) {
11843     return This->lpVtbl->put_BufferNotifySize(This,BufferNotifySize);
11844 }
11845 static FORCEINLINE HRESULT ISpeechAudio_get_EventHandle(ISpeechAudio* This,LONG *EventHandle) {
11846     return This->lpVtbl->get_EventHandle(This,EventHandle);
11847 }
11848 static FORCEINLINE HRESULT ISpeechAudio_SetState(ISpeechAudio* This,SpeechAudioState State) {
11849     return This->lpVtbl->SetState(This,State);
11850 }
11851 #endif
11852 #endif
11853 
11854 #endif
11855 
11856 HRESULT STDMETHODCALLTYPE ISpeechAudio_get_Status_Proxy(
11857     ISpeechAudio* This,
11858     ISpeechAudioStatus **Status);
11859 void __RPC_STUB ISpeechAudio_get_Status_Stub(
11860     IRpcStubBuffer* This,
11861     IRpcChannelBuffer* pRpcChannelBuffer,
11862     PRPC_MESSAGE pRpcMessage,
11863     DWORD* pdwStubPhase);
11864 HRESULT STDMETHODCALLTYPE ISpeechAudio_get_BufferInfo_Proxy(
11865     ISpeechAudio* This,
11866     ISpeechAudioBufferInfo **BufferInfo);
11867 void __RPC_STUB ISpeechAudio_get_BufferInfo_Stub(
11868     IRpcStubBuffer* This,
11869     IRpcChannelBuffer* pRpcChannelBuffer,
11870     PRPC_MESSAGE pRpcMessage,
11871     DWORD* pdwStubPhase);
11872 HRESULT STDMETHODCALLTYPE ISpeechAudio_get_DefaultFormat_Proxy(
11873     ISpeechAudio* This,
11874     ISpeechAudioFormat **StreamFormat);
11875 void __RPC_STUB ISpeechAudio_get_DefaultFormat_Stub(
11876     IRpcStubBuffer* This,
11877     IRpcChannelBuffer* pRpcChannelBuffer,
11878     PRPC_MESSAGE pRpcMessage,
11879     DWORD* pdwStubPhase);
11880 HRESULT STDMETHODCALLTYPE ISpeechAudio_get_Volume_Proxy(
11881     ISpeechAudio* This,
11882     LONG *Volume);
11883 void __RPC_STUB ISpeechAudio_get_Volume_Stub(
11884     IRpcStubBuffer* This,
11885     IRpcChannelBuffer* pRpcChannelBuffer,
11886     PRPC_MESSAGE pRpcMessage,
11887     DWORD* pdwStubPhase);
11888 HRESULT STDMETHODCALLTYPE ISpeechAudio_put_Volume_Proxy(
11889     ISpeechAudio* This,
11890     LONG Volume);
11891 void __RPC_STUB ISpeechAudio_put_Volume_Stub(
11892     IRpcStubBuffer* This,
11893     IRpcChannelBuffer* pRpcChannelBuffer,
11894     PRPC_MESSAGE pRpcMessage,
11895     DWORD* pdwStubPhase);
11896 HRESULT STDMETHODCALLTYPE ISpeechAudio_get_BufferNotifySize_Proxy(
11897     ISpeechAudio* This,
11898     LONG *BufferNotifySize);
11899 void __RPC_STUB ISpeechAudio_get_BufferNotifySize_Stub(
11900     IRpcStubBuffer* This,
11901     IRpcChannelBuffer* pRpcChannelBuffer,
11902     PRPC_MESSAGE pRpcMessage,
11903     DWORD* pdwStubPhase);
11904 HRESULT STDMETHODCALLTYPE ISpeechAudio_put_BufferNotifySize_Proxy(
11905     ISpeechAudio* This,
11906     LONG BufferNotifySize);
11907 void __RPC_STUB ISpeechAudio_put_BufferNotifySize_Stub(
11908     IRpcStubBuffer* This,
11909     IRpcChannelBuffer* pRpcChannelBuffer,
11910     PRPC_MESSAGE pRpcMessage,
11911     DWORD* pdwStubPhase);
11912 HRESULT STDMETHODCALLTYPE ISpeechAudio_get_EventHandle_Proxy(
11913     ISpeechAudio* This,
11914     LONG *EventHandle);
11915 void __RPC_STUB ISpeechAudio_get_EventHandle_Stub(
11916     IRpcStubBuffer* This,
11917     IRpcChannelBuffer* pRpcChannelBuffer,
11918     PRPC_MESSAGE pRpcMessage,
11919     DWORD* pdwStubPhase);
11920 HRESULT STDMETHODCALLTYPE ISpeechAudio_SetState_Proxy(
11921     ISpeechAudio* This,
11922     SpeechAudioState State);
11923 void __RPC_STUB ISpeechAudio_SetState_Stub(
11924     IRpcStubBuffer* This,
11925     IRpcChannelBuffer* pRpcChannelBuffer,
11926     PRPC_MESSAGE pRpcMessage,
11927     DWORD* pdwStubPhase);
11928 
11929 #endif  /* __ISpeechAudio_INTERFACE_DEFINED__ */
11930 
11931 /*****************************************************************************
11932  * ISpeechMMSysAudio interface
11933  */
11934 #ifndef __ISpeechMMSysAudio_INTERFACE_DEFINED__
11935 #define __ISpeechMMSysAudio_INTERFACE_DEFINED__
11936 
11937 DEFINE_GUID(IID_ISpeechMMSysAudio, 0x3c76af6d, 0x1fd7, 0x4831, 0x81,0xd1, 0x3b,0x71,0xd5,0xa1,0x3c,0x44);
11938 #if defined(__cplusplus) && !defined(CINTERFACE)
11939 MIDL_INTERFACE("3c76af6d-1fd7-4831-81d1-3b71d5a13c44")
11940 ISpeechMMSysAudio : public ISpeechAudio
11941 {
11942     virtual HRESULT STDMETHODCALLTYPE get_DeviceId(
11943         LONG *DeviceId) = 0;
11944 
11945     virtual HRESULT STDMETHODCALLTYPE put_DeviceId(
11946         LONG DeviceId) = 0;
11947 
11948     virtual HRESULT STDMETHODCALLTYPE get_LineId(
11949         LONG *LineId) = 0;
11950 
11951     virtual HRESULT STDMETHODCALLTYPE put_LineId(
11952         LONG LineId) = 0;
11953 
11954     virtual HRESULT STDMETHODCALLTYPE get_MMHandle(
11955         LONG *Handle) = 0;
11956 
11957 };
11958 #ifdef __CRT_UUID_DECL
11959 __CRT_UUID_DECL(ISpeechMMSysAudio, 0x3c76af6d, 0x1fd7, 0x4831, 0x81,0xd1, 0x3b,0x71,0xd5,0xa1,0x3c,0x44)
11960 #endif
11961 #else
11962 typedef struct ISpeechMMSysAudioVtbl {
11963     BEGIN_INTERFACE
11964 
11965     /*** IUnknown methods ***/
11966     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11967         ISpeechMMSysAudio* This,
11968         REFIID riid,
11969         void **ppvObject);
11970 
11971     ULONG (STDMETHODCALLTYPE *AddRef)(
11972         ISpeechMMSysAudio* This);
11973 
11974     ULONG (STDMETHODCALLTYPE *Release)(
11975         ISpeechMMSysAudio* This);
11976 
11977     /*** IDispatch methods ***/
11978     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
11979         ISpeechMMSysAudio* This,
11980         UINT *pctinfo);
11981 
11982     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
11983         ISpeechMMSysAudio* This,
11984         UINT iTInfo,
11985         LCID lcid,
11986         ITypeInfo **ppTInfo);
11987 
11988     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
11989         ISpeechMMSysAudio* This,
11990         REFIID riid,
11991         LPOLESTR *rgszNames,
11992         UINT cNames,
11993         LCID lcid,
11994         DISPID *rgDispId);
11995 
11996     HRESULT (STDMETHODCALLTYPE *Invoke)(
11997         ISpeechMMSysAudio* This,
11998         DISPID dispIdMember,
11999         REFIID riid,
12000         LCID lcid,
12001         WORD wFlags,
12002         DISPPARAMS *pDispParams,
12003         VARIANT *pVarResult,
12004         EXCEPINFO *pExcepInfo,
12005         UINT *puArgErr);
12006 
12007     /*** ISpeechBaseStream methods ***/
12008     HRESULT (STDMETHODCALLTYPE *get_Format)(
12009         ISpeechMMSysAudio* This,
12010         ISpeechAudioFormat **AudioFormat);
12011 
12012     HRESULT (STDMETHODCALLTYPE *putref_Format)(
12013         ISpeechMMSysAudio* This,
12014         ISpeechAudioFormat *AudioFormat);
12015 
12016     HRESULT (STDMETHODCALLTYPE *Read)(
12017         ISpeechMMSysAudio* This,
12018         VARIANT *Buffer,
12019         LONG NumberOfBytes,
12020         LONG *BytesRead);
12021 
12022     HRESULT (STDMETHODCALLTYPE *Write)(
12023         ISpeechMMSysAudio* This,
12024         VARIANT Buffer,
12025         LONG *BytesWritten);
12026 
12027     HRESULT (STDMETHODCALLTYPE *Seek)(
12028         ISpeechMMSysAudio* This,
12029         VARIANT Position,
12030         SpeechStreamSeekPositionType Origin,
12031         VARIANT *NewPosition);
12032 
12033     /*** ISpeechAudio methods ***/
12034     HRESULT (STDMETHODCALLTYPE *get_Status)(
12035         ISpeechMMSysAudio* This,
12036         ISpeechAudioStatus **Status);
12037 
12038     HRESULT (STDMETHODCALLTYPE *get_BufferInfo)(
12039         ISpeechMMSysAudio* This,
12040         ISpeechAudioBufferInfo **BufferInfo);
12041 
12042     HRESULT (STDMETHODCALLTYPE *get_DefaultFormat)(
12043         ISpeechMMSysAudio* This,
12044         ISpeechAudioFormat **StreamFormat);
12045 
12046     HRESULT (STDMETHODCALLTYPE *get_Volume)(
12047         ISpeechMMSysAudio* This,
12048         LONG *Volume);
12049 
12050     HRESULT (STDMETHODCALLTYPE *put_Volume)(
12051         ISpeechMMSysAudio* This,
12052         LONG Volume);
12053 
12054     HRESULT (STDMETHODCALLTYPE *get_BufferNotifySize)(
12055         ISpeechMMSysAudio* This,
12056         LONG *BufferNotifySize);
12057 
12058     HRESULT (STDMETHODCALLTYPE *put_BufferNotifySize)(
12059         ISpeechMMSysAudio* This,
12060         LONG BufferNotifySize);
12061 
12062     HRESULT (STDMETHODCALLTYPE *get_EventHandle)(
12063         ISpeechMMSysAudio* This,
12064         LONG *EventHandle);
12065 
12066     HRESULT (STDMETHODCALLTYPE *SetState)(
12067         ISpeechMMSysAudio* This,
12068         SpeechAudioState State);
12069 
12070     /*** ISpeechMMSysAudio methods ***/
12071     HRESULT (STDMETHODCALLTYPE *get_DeviceId)(
12072         ISpeechMMSysAudio* This,
12073         LONG *DeviceId);
12074 
12075     HRESULT (STDMETHODCALLTYPE *put_DeviceId)(
12076         ISpeechMMSysAudio* This,
12077         LONG DeviceId);
12078 
12079     HRESULT (STDMETHODCALLTYPE *get_LineId)(
12080         ISpeechMMSysAudio* This,
12081         LONG *LineId);
12082 
12083     HRESULT (STDMETHODCALLTYPE *put_LineId)(
12084         ISpeechMMSysAudio* This,
12085         LONG LineId);
12086 
12087     HRESULT (STDMETHODCALLTYPE *get_MMHandle)(
12088         ISpeechMMSysAudio* This,
12089         LONG *Handle);
12090 
12091     END_INTERFACE
12092 } ISpeechMMSysAudioVtbl;
12093 interface ISpeechMMSysAudio {
12094     CONST_VTBL ISpeechMMSysAudioVtbl* lpVtbl;
12095 };
12096 
12097 #ifdef COBJMACROS
12098 #ifndef WIDL_C_INLINE_WRAPPERS
12099 /*** IUnknown methods ***/
12100 #define ISpeechMMSysAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12101 #define ISpeechMMSysAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
12102 #define ISpeechMMSysAudio_Release(This) (This)->lpVtbl->Release(This)
12103 /*** IDispatch methods ***/
12104 #define ISpeechMMSysAudio_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
12105 #define ISpeechMMSysAudio_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
12106 #define ISpeechMMSysAudio_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
12107 #define ISpeechMMSysAudio_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
12108 /*** ISpeechBaseStream methods ***/
12109 #define ISpeechMMSysAudio_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
12110 #define ISpeechMMSysAudio_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
12111 #define ISpeechMMSysAudio_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
12112 #define ISpeechMMSysAudio_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
12113 #define ISpeechMMSysAudio_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
12114 /*** ISpeechAudio methods ***/
12115 #define ISpeechMMSysAudio_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
12116 #define ISpeechMMSysAudio_get_BufferInfo(This,BufferInfo) (This)->lpVtbl->get_BufferInfo(This,BufferInfo)
12117 #define ISpeechMMSysAudio_get_DefaultFormat(This,StreamFormat) (This)->lpVtbl->get_DefaultFormat(This,StreamFormat)
12118 #define ISpeechMMSysAudio_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
12119 #define ISpeechMMSysAudio_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
12120 #define ISpeechMMSysAudio_get_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->get_BufferNotifySize(This,BufferNotifySize)
12121 #define ISpeechMMSysAudio_put_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->put_BufferNotifySize(This,BufferNotifySize)
12122 #define ISpeechMMSysAudio_get_EventHandle(This,EventHandle) (This)->lpVtbl->get_EventHandle(This,EventHandle)
12123 #define ISpeechMMSysAudio_SetState(This,State) (This)->lpVtbl->SetState(This,State)
12124 /*** ISpeechMMSysAudio methods ***/
12125 #define ISpeechMMSysAudio_get_DeviceId(This,DeviceId) (This)->lpVtbl->get_DeviceId(This,DeviceId)
12126 #define ISpeechMMSysAudio_put_DeviceId(This,DeviceId) (This)->lpVtbl->put_DeviceId(This,DeviceId)
12127 #define ISpeechMMSysAudio_get_LineId(This,LineId) (This)->lpVtbl->get_LineId(This,LineId)
12128 #define ISpeechMMSysAudio_put_LineId(This,LineId) (This)->lpVtbl->put_LineId(This,LineId)
12129 #define ISpeechMMSysAudio_get_MMHandle(This,Handle) (This)->lpVtbl->get_MMHandle(This,Handle)
12130 #else
12131 /*** IUnknown methods ***/
12132 static FORCEINLINE HRESULT ISpeechMMSysAudio_QueryInterface(ISpeechMMSysAudio* This,REFIID riid,void **ppvObject) {
12133     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12134 }
12135 static FORCEINLINE ULONG ISpeechMMSysAudio_AddRef(ISpeechMMSysAudio* This) {
12136     return This->lpVtbl->AddRef(This);
12137 }
12138 static FORCEINLINE ULONG ISpeechMMSysAudio_Release(ISpeechMMSysAudio* This) {
12139     return This->lpVtbl->Release(This);
12140 }
12141 /*** IDispatch methods ***/
12142 static FORCEINLINE HRESULT ISpeechMMSysAudio_GetTypeInfoCount(ISpeechMMSysAudio* This,UINT *pctinfo) {
12143     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
12144 }
12145 static FORCEINLINE HRESULT ISpeechMMSysAudio_GetTypeInfo(ISpeechMMSysAudio* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
12146     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
12147 }
12148 static FORCEINLINE HRESULT ISpeechMMSysAudio_GetIDsOfNames(ISpeechMMSysAudio* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
12149     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
12150 }
12151 static FORCEINLINE HRESULT ISpeechMMSysAudio_Invoke(ISpeechMMSysAudio* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
12152     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
12153 }
12154 /*** ISpeechBaseStream methods ***/
12155 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_Format(ISpeechMMSysAudio* This,ISpeechAudioFormat **AudioFormat) {
12156     return This->lpVtbl->get_Format(This,AudioFormat);
12157 }
12158 static FORCEINLINE HRESULT ISpeechMMSysAudio_putref_Format(ISpeechMMSysAudio* This,ISpeechAudioFormat *AudioFormat) {
12159     return This->lpVtbl->putref_Format(This,AudioFormat);
12160 }
12161 static FORCEINLINE HRESULT ISpeechMMSysAudio_Read(ISpeechMMSysAudio* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
12162     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
12163 }
12164 static FORCEINLINE HRESULT ISpeechMMSysAudio_Write(ISpeechMMSysAudio* This,VARIANT Buffer,LONG *BytesWritten) {
12165     return This->lpVtbl->Write(This,Buffer,BytesWritten);
12166 }
12167 static FORCEINLINE HRESULT ISpeechMMSysAudio_Seek(ISpeechMMSysAudio* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
12168     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
12169 }
12170 /*** ISpeechAudio methods ***/
12171 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_Status(ISpeechMMSysAudio* This,ISpeechAudioStatus **Status) {
12172     return This->lpVtbl->get_Status(This,Status);
12173 }
12174 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_BufferInfo(ISpeechMMSysAudio* This,ISpeechAudioBufferInfo **BufferInfo) {
12175     return This->lpVtbl->get_BufferInfo(This,BufferInfo);
12176 }
12177 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_DefaultFormat(ISpeechMMSysAudio* This,ISpeechAudioFormat **StreamFormat) {
12178     return This->lpVtbl->get_DefaultFormat(This,StreamFormat);
12179 }
12180 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_Volume(ISpeechMMSysAudio* This,LONG *Volume) {
12181     return This->lpVtbl->get_Volume(This,Volume);
12182 }
12183 static FORCEINLINE HRESULT ISpeechMMSysAudio_put_Volume(ISpeechMMSysAudio* This,LONG Volume) {
12184     return This->lpVtbl->put_Volume(This,Volume);
12185 }
12186 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_BufferNotifySize(ISpeechMMSysAudio* This,LONG *BufferNotifySize) {
12187     return This->lpVtbl->get_BufferNotifySize(This,BufferNotifySize);
12188 }
12189 static FORCEINLINE HRESULT ISpeechMMSysAudio_put_BufferNotifySize(ISpeechMMSysAudio* This,LONG BufferNotifySize) {
12190     return This->lpVtbl->put_BufferNotifySize(This,BufferNotifySize);
12191 }
12192 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_EventHandle(ISpeechMMSysAudio* This,LONG *EventHandle) {
12193     return This->lpVtbl->get_EventHandle(This,EventHandle);
12194 }
12195 static FORCEINLINE HRESULT ISpeechMMSysAudio_SetState(ISpeechMMSysAudio* This,SpeechAudioState State) {
12196     return This->lpVtbl->SetState(This,State);
12197 }
12198 /*** ISpeechMMSysAudio methods ***/
12199 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_DeviceId(ISpeechMMSysAudio* This,LONG *DeviceId) {
12200     return This->lpVtbl->get_DeviceId(This,DeviceId);
12201 }
12202 static FORCEINLINE HRESULT ISpeechMMSysAudio_put_DeviceId(ISpeechMMSysAudio* This,LONG DeviceId) {
12203     return This->lpVtbl->put_DeviceId(This,DeviceId);
12204 }
12205 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_LineId(ISpeechMMSysAudio* This,LONG *LineId) {
12206     return This->lpVtbl->get_LineId(This,LineId);
12207 }
12208 static FORCEINLINE HRESULT ISpeechMMSysAudio_put_LineId(ISpeechMMSysAudio* This,LONG LineId) {
12209     return This->lpVtbl->put_LineId(This,LineId);
12210 }
12211 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_MMHandle(ISpeechMMSysAudio* This,LONG *Handle) {
12212     return This->lpVtbl->get_MMHandle(This,Handle);
12213 }
12214 #endif
12215 #endif
12216 
12217 #endif
12218 
12219 HRESULT STDMETHODCALLTYPE ISpeechMMSysAudio_get_DeviceId_Proxy(
12220     ISpeechMMSysAudio* This,
12221     LONG *DeviceId);
12222 void __RPC_STUB ISpeechMMSysAudio_get_DeviceId_Stub(
12223     IRpcStubBuffer* This,
12224     IRpcChannelBuffer* pRpcChannelBuffer,
12225     PRPC_MESSAGE pRpcMessage,
12226     DWORD* pdwStubPhase);
12227 HRESULT STDMETHODCALLTYPE ISpeechMMSysAudio_put_DeviceId_Proxy(
12228     ISpeechMMSysAudio* This,
12229     LONG DeviceId);
12230 void __RPC_STUB ISpeechMMSysAudio_put_DeviceId_Stub(
12231     IRpcStubBuffer* This,
12232     IRpcChannelBuffer* pRpcChannelBuffer,
12233     PRPC_MESSAGE pRpcMessage,
12234     DWORD* pdwStubPhase);
12235 HRESULT STDMETHODCALLTYPE ISpeechMMSysAudio_get_LineId_Proxy(
12236     ISpeechMMSysAudio* This,
12237     LONG *LineId);
12238 void __RPC_STUB ISpeechMMSysAudio_get_LineId_Stub(
12239     IRpcStubBuffer* This,
12240     IRpcChannelBuffer* pRpcChannelBuffer,
12241     PRPC_MESSAGE pRpcMessage,
12242     DWORD* pdwStubPhase);
12243 HRESULT STDMETHODCALLTYPE ISpeechMMSysAudio_put_LineId_Proxy(
12244     ISpeechMMSysAudio* This,
12245     LONG LineId);
12246 void __RPC_STUB ISpeechMMSysAudio_put_LineId_Stub(
12247     IRpcStubBuffer* This,
12248     IRpcChannelBuffer* pRpcChannelBuffer,
12249     PRPC_MESSAGE pRpcMessage,
12250     DWORD* pdwStubPhase);
12251 HRESULT STDMETHODCALLTYPE ISpeechMMSysAudio_get_MMHandle_Proxy(
12252     ISpeechMMSysAudio* This,
12253     LONG *Handle);
12254 void __RPC_STUB ISpeechMMSysAudio_get_MMHandle_Stub(
12255     IRpcStubBuffer* This,
12256     IRpcChannelBuffer* pRpcChannelBuffer,
12257     PRPC_MESSAGE pRpcMessage,
12258     DWORD* pdwStubPhase);
12259 
12260 #endif  /* __ISpeechMMSysAudio_INTERFACE_DEFINED__ */
12261 
12262 /*****************************************************************************
12263  * ISpeechFileStream interface
12264  */
12265 #ifndef __ISpeechFileStream_INTERFACE_DEFINED__
12266 #define __ISpeechFileStream_INTERFACE_DEFINED__
12267 
12268 DEFINE_GUID(IID_ISpeechFileStream, 0xaf67f125, 0xab39, 0x4e93, 0xb4,0xa2, 0xcc,0x2e,0x66,0xe1,0x82,0xa7);
12269 #if defined(__cplusplus) && !defined(CINTERFACE)
12270 MIDL_INTERFACE("af67f125-ab39-4e93-b4a2-cc2e66e182a7")
12271 ISpeechFileStream : public ISpeechBaseStream
12272 {
12273     virtual HRESULT STDMETHODCALLTYPE Open(
12274         BSTR FileName,
12275         SpeechStreamFileMode FileMode = SSFMOpenForRead,
12276         VARIANT_BOOL DoEvents = 0) = 0;
12277 
12278     virtual HRESULT STDMETHODCALLTYPE Close(
12279         ) = 0;
12280 
12281 };
12282 #ifdef __CRT_UUID_DECL
12283 __CRT_UUID_DECL(ISpeechFileStream, 0xaf67f125, 0xab39, 0x4e93, 0xb4,0xa2, 0xcc,0x2e,0x66,0xe1,0x82,0xa7)
12284 #endif
12285 #else
12286 typedef struct ISpeechFileStreamVtbl {
12287     BEGIN_INTERFACE
12288 
12289     /*** IUnknown methods ***/
12290     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12291         ISpeechFileStream* This,
12292         REFIID riid,
12293         void **ppvObject);
12294 
12295     ULONG (STDMETHODCALLTYPE *AddRef)(
12296         ISpeechFileStream* This);
12297 
12298     ULONG (STDMETHODCALLTYPE *Release)(
12299         ISpeechFileStream* This);
12300 
12301     /*** IDispatch methods ***/
12302     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
12303         ISpeechFileStream* This,
12304         UINT *pctinfo);
12305 
12306     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
12307         ISpeechFileStream* This,
12308         UINT iTInfo,
12309         LCID lcid,
12310         ITypeInfo **ppTInfo);
12311 
12312     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
12313         ISpeechFileStream* This,
12314         REFIID riid,
12315         LPOLESTR *rgszNames,
12316         UINT cNames,
12317         LCID lcid,
12318         DISPID *rgDispId);
12319 
12320     HRESULT (STDMETHODCALLTYPE *Invoke)(
12321         ISpeechFileStream* This,
12322         DISPID dispIdMember,
12323         REFIID riid,
12324         LCID lcid,
12325         WORD wFlags,
12326         DISPPARAMS *pDispParams,
12327         VARIANT *pVarResult,
12328         EXCEPINFO *pExcepInfo,
12329         UINT *puArgErr);
12330 
12331     /*** ISpeechBaseStream methods ***/
12332     HRESULT (STDMETHODCALLTYPE *get_Format)(
12333         ISpeechFileStream* This,
12334         ISpeechAudioFormat **AudioFormat);
12335 
12336     HRESULT (STDMETHODCALLTYPE *putref_Format)(
12337         ISpeechFileStream* This,
12338         ISpeechAudioFormat *AudioFormat);
12339 
12340     HRESULT (STDMETHODCALLTYPE *Read)(
12341         ISpeechFileStream* This,
12342         VARIANT *Buffer,
12343         LONG NumberOfBytes,
12344         LONG *BytesRead);
12345 
12346     HRESULT (STDMETHODCALLTYPE *Write)(
12347         ISpeechFileStream* This,
12348         VARIANT Buffer,
12349         LONG *BytesWritten);
12350 
12351     HRESULT (STDMETHODCALLTYPE *Seek)(
12352         ISpeechFileStream* This,
12353         VARIANT Position,
12354         SpeechStreamSeekPositionType Origin,
12355         VARIANT *NewPosition);
12356 
12357     /*** ISpeechFileStream methods ***/
12358     HRESULT (STDMETHODCALLTYPE *Open)(
12359         ISpeechFileStream* This,
12360         BSTR FileName,
12361         SpeechStreamFileMode FileMode,
12362         VARIANT_BOOL DoEvents);
12363 
12364     HRESULT (STDMETHODCALLTYPE *Close)(
12365         ISpeechFileStream* This);
12366 
12367     END_INTERFACE
12368 } ISpeechFileStreamVtbl;
12369 interface ISpeechFileStream {
12370     CONST_VTBL ISpeechFileStreamVtbl* lpVtbl;
12371 };
12372 
12373 #ifdef COBJMACROS
12374 #ifndef WIDL_C_INLINE_WRAPPERS
12375 /*** IUnknown methods ***/
12376 #define ISpeechFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12377 #define ISpeechFileStream_AddRef(This) (This)->lpVtbl->AddRef(This)
12378 #define ISpeechFileStream_Release(This) (This)->lpVtbl->Release(This)
12379 /*** IDispatch methods ***/
12380 #define ISpeechFileStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
12381 #define ISpeechFileStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
12382 #define ISpeechFileStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
12383 #define ISpeechFileStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
12384 /*** ISpeechBaseStream methods ***/
12385 #define ISpeechFileStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
12386 #define ISpeechFileStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
12387 #define ISpeechFileStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
12388 #define ISpeechFileStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
12389 #define ISpeechFileStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
12390 /*** ISpeechFileStream methods ***/
12391 #define ISpeechFileStream_Open(This,FileName,FileMode,DoEvents) (This)->lpVtbl->Open(This,FileName,FileMode,DoEvents)
12392 #define ISpeechFileStream_Close(This) (This)->lpVtbl->Close(This)
12393 #else
12394 /*** IUnknown methods ***/
12395 static FORCEINLINE HRESULT ISpeechFileStream_QueryInterface(ISpeechFileStream* This,REFIID riid,void **ppvObject) {
12396     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12397 }
12398 static FORCEINLINE ULONG ISpeechFileStream_AddRef(ISpeechFileStream* This) {
12399     return This->lpVtbl->AddRef(This);
12400 }
12401 static FORCEINLINE ULONG ISpeechFileStream_Release(ISpeechFileStream* This) {
12402     return This->lpVtbl->Release(This);
12403 }
12404 /*** IDispatch methods ***/
12405 static FORCEINLINE HRESULT ISpeechFileStream_GetTypeInfoCount(ISpeechFileStream* This,UINT *pctinfo) {
12406     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
12407 }
12408 static FORCEINLINE HRESULT ISpeechFileStream_GetTypeInfo(ISpeechFileStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
12409     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
12410 }
12411 static FORCEINLINE HRESULT ISpeechFileStream_GetIDsOfNames(ISpeechFileStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
12412     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
12413 }
12414 static FORCEINLINE HRESULT ISpeechFileStream_Invoke(ISpeechFileStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
12415     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
12416 }
12417 /*** ISpeechBaseStream methods ***/
12418 static FORCEINLINE HRESULT ISpeechFileStream_get_Format(ISpeechFileStream* This,ISpeechAudioFormat **AudioFormat) {
12419     return This->lpVtbl->get_Format(This,AudioFormat);
12420 }
12421 static FORCEINLINE HRESULT ISpeechFileStream_putref_Format(ISpeechFileStream* This,ISpeechAudioFormat *AudioFormat) {
12422     return This->lpVtbl->putref_Format(This,AudioFormat);
12423 }
12424 static FORCEINLINE HRESULT ISpeechFileStream_Read(ISpeechFileStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
12425     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
12426 }
12427 static FORCEINLINE HRESULT ISpeechFileStream_Write(ISpeechFileStream* This,VARIANT Buffer,LONG *BytesWritten) {
12428     return This->lpVtbl->Write(This,Buffer,BytesWritten);
12429 }
12430 static FORCEINLINE HRESULT ISpeechFileStream_Seek(ISpeechFileStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
12431     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
12432 }
12433 /*** ISpeechFileStream methods ***/
12434 static FORCEINLINE HRESULT ISpeechFileStream_Open(ISpeechFileStream* This,BSTR FileName,SpeechStreamFileMode FileMode,VARIANT_BOOL DoEvents) {
12435     return This->lpVtbl->Open(This,FileName,FileMode,DoEvents);
12436 }
12437 static FORCEINLINE HRESULT ISpeechFileStream_Close(ISpeechFileStream* This) {
12438     return This->lpVtbl->Close(This);
12439 }
12440 #endif
12441 #endif
12442 
12443 #endif
12444 
12445 HRESULT STDMETHODCALLTYPE ISpeechFileStream_Open_Proxy(
12446     ISpeechFileStream* This,
12447     BSTR FileName,
12448     SpeechStreamFileMode FileMode,
12449     VARIANT_BOOL DoEvents);
12450 void __RPC_STUB ISpeechFileStream_Open_Stub(
12451     IRpcStubBuffer* This,
12452     IRpcChannelBuffer* pRpcChannelBuffer,
12453     PRPC_MESSAGE pRpcMessage,
12454     DWORD* pdwStubPhase);
12455 HRESULT STDMETHODCALLTYPE ISpeechFileStream_Close_Proxy(
12456     ISpeechFileStream* This);
12457 void __RPC_STUB ISpeechFileStream_Close_Stub(
12458     IRpcStubBuffer* This,
12459     IRpcChannelBuffer* pRpcChannelBuffer,
12460     PRPC_MESSAGE pRpcMessage,
12461     DWORD* pdwStubPhase);
12462 
12463 #endif  /* __ISpeechFileStream_INTERFACE_DEFINED__ */
12464 
12465 /*****************************************************************************
12466  * ISpeechCustomStream interface
12467  */
12468 #ifndef __ISpeechCustomStream_INTERFACE_DEFINED__
12469 #define __ISpeechCustomStream_INTERFACE_DEFINED__
12470 
12471 DEFINE_GUID(IID_ISpeechCustomStream, 0x1a9e9f4f, 0x104f, 0x4db8, 0xa1,0x15, 0xef,0xd7,0xfd,0x0c,0x97,0xae);
12472 #if defined(__cplusplus) && !defined(CINTERFACE)
12473 MIDL_INTERFACE("1a9e9f4f-104f-4db8-a115-efd7fd0c97ae")
12474 ISpeechCustomStream : public ISpeechBaseStream
12475 {
12476     virtual HRESULT STDMETHODCALLTYPE get_BaseStream(
12477         IUnknown **ppUnkStream) = 0;
12478 
12479     virtual HRESULT STDMETHODCALLTYPE putref_BaseStream(
12480         IUnknown *pUnkStream) = 0;
12481 
12482 };
12483 #ifdef __CRT_UUID_DECL
12484 __CRT_UUID_DECL(ISpeechCustomStream, 0x1a9e9f4f, 0x104f, 0x4db8, 0xa1,0x15, 0xef,0xd7,0xfd,0x0c,0x97,0xae)
12485 #endif
12486 #else
12487 typedef struct ISpeechCustomStreamVtbl {
12488     BEGIN_INTERFACE
12489 
12490     /*** IUnknown methods ***/
12491     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12492         ISpeechCustomStream* This,
12493         REFIID riid,
12494         void **ppvObject);
12495 
12496     ULONG (STDMETHODCALLTYPE *AddRef)(
12497         ISpeechCustomStream* This);
12498 
12499     ULONG (STDMETHODCALLTYPE *Release)(
12500         ISpeechCustomStream* This);
12501 
12502     /*** IDispatch methods ***/
12503     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
12504         ISpeechCustomStream* This,
12505         UINT *pctinfo);
12506 
12507     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
12508         ISpeechCustomStream* This,
12509         UINT iTInfo,
12510         LCID lcid,
12511         ITypeInfo **ppTInfo);
12512 
12513     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
12514         ISpeechCustomStream* This,
12515         REFIID riid,
12516         LPOLESTR *rgszNames,
12517         UINT cNames,
12518         LCID lcid,
12519         DISPID *rgDispId);
12520 
12521     HRESULT (STDMETHODCALLTYPE *Invoke)(
12522         ISpeechCustomStream* This,
12523         DISPID dispIdMember,
12524         REFIID riid,
12525         LCID lcid,
12526         WORD wFlags,
12527         DISPPARAMS *pDispParams,
12528         VARIANT *pVarResult,
12529         EXCEPINFO *pExcepInfo,
12530         UINT *puArgErr);
12531 
12532     /*** ISpeechBaseStream methods ***/
12533     HRESULT (STDMETHODCALLTYPE *get_Format)(
12534         ISpeechCustomStream* This,
12535         ISpeechAudioFormat **AudioFormat);
12536 
12537     HRESULT (STDMETHODCALLTYPE *putref_Format)(
12538         ISpeechCustomStream* This,
12539         ISpeechAudioFormat *AudioFormat);
12540 
12541     HRESULT (STDMETHODCALLTYPE *Read)(
12542         ISpeechCustomStream* This,
12543         VARIANT *Buffer,
12544         LONG NumberOfBytes,
12545         LONG *BytesRead);
12546 
12547     HRESULT (STDMETHODCALLTYPE *Write)(
12548         ISpeechCustomStream* This,
12549         VARIANT Buffer,
12550         LONG *BytesWritten);
12551 
12552     HRESULT (STDMETHODCALLTYPE *Seek)(
12553         ISpeechCustomStream* This,
12554         VARIANT Position,
12555         SpeechStreamSeekPositionType Origin,
12556         VARIANT *NewPosition);
12557 
12558     /*** ISpeechCustomStream methods ***/
12559     HRESULT (STDMETHODCALLTYPE *get_BaseStream)(
12560         ISpeechCustomStream* This,
12561         IUnknown **ppUnkStream);
12562 
12563     HRESULT (STDMETHODCALLTYPE *putref_BaseStream)(
12564         ISpeechCustomStream* This,
12565         IUnknown *pUnkStream);
12566 
12567     END_INTERFACE
12568 } ISpeechCustomStreamVtbl;
12569 interface ISpeechCustomStream {
12570     CONST_VTBL ISpeechCustomStreamVtbl* lpVtbl;
12571 };
12572 
12573 #ifdef COBJMACROS
12574 #ifndef WIDL_C_INLINE_WRAPPERS
12575 /*** IUnknown methods ***/
12576 #define ISpeechCustomStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12577 #define ISpeechCustomStream_AddRef(This) (This)->lpVtbl->AddRef(This)
12578 #define ISpeechCustomStream_Release(This) (This)->lpVtbl->Release(This)
12579 /*** IDispatch methods ***/
12580 #define ISpeechCustomStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
12581 #define ISpeechCustomStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
12582 #define ISpeechCustomStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
12583 #define ISpeechCustomStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
12584 /*** ISpeechBaseStream methods ***/
12585 #define ISpeechCustomStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
12586 #define ISpeechCustomStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
12587 #define ISpeechCustomStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
12588 #define ISpeechCustomStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
12589 #define ISpeechCustomStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
12590 /*** ISpeechCustomStream methods ***/
12591 #define ISpeechCustomStream_get_BaseStream(This,ppUnkStream) (This)->lpVtbl->get_BaseStream(This,ppUnkStream)
12592 #define ISpeechCustomStream_putref_BaseStream(This,pUnkStream) (This)->lpVtbl->putref_BaseStream(This,pUnkStream)
12593 #else
12594 /*** IUnknown methods ***/
12595 static FORCEINLINE HRESULT ISpeechCustomStream_QueryInterface(ISpeechCustomStream* This,REFIID riid,void **ppvObject) {
12596     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12597 }
12598 static FORCEINLINE ULONG ISpeechCustomStream_AddRef(ISpeechCustomStream* This) {
12599     return This->lpVtbl->AddRef(This);
12600 }
12601 static FORCEINLINE ULONG ISpeechCustomStream_Release(ISpeechCustomStream* This) {
12602     return This->lpVtbl->Release(This);
12603 }
12604 /*** IDispatch methods ***/
12605 static FORCEINLINE HRESULT ISpeechCustomStream_GetTypeInfoCount(ISpeechCustomStream* This,UINT *pctinfo) {
12606     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
12607 }
12608 static FORCEINLINE HRESULT ISpeechCustomStream_GetTypeInfo(ISpeechCustomStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
12609     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
12610 }
12611 static FORCEINLINE HRESULT ISpeechCustomStream_GetIDsOfNames(ISpeechCustomStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
12612     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
12613 }
12614 static FORCEINLINE HRESULT ISpeechCustomStream_Invoke(ISpeechCustomStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
12615     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
12616 }
12617 /*** ISpeechBaseStream methods ***/
12618 static FORCEINLINE HRESULT ISpeechCustomStream_get_Format(ISpeechCustomStream* This,ISpeechAudioFormat **AudioFormat) {
12619     return This->lpVtbl->get_Format(This,AudioFormat);
12620 }
12621 static FORCEINLINE HRESULT ISpeechCustomStream_putref_Format(ISpeechCustomStream* This,ISpeechAudioFormat *AudioFormat) {
12622     return This->lpVtbl->putref_Format(This,AudioFormat);
12623 }
12624 static FORCEINLINE HRESULT ISpeechCustomStream_Read(ISpeechCustomStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
12625     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
12626 }
12627 static FORCEINLINE HRESULT ISpeechCustomStream_Write(ISpeechCustomStream* This,VARIANT Buffer,LONG *BytesWritten) {
12628     return This->lpVtbl->Write(This,Buffer,BytesWritten);
12629 }
12630 static FORCEINLINE HRESULT ISpeechCustomStream_Seek(ISpeechCustomStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
12631     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
12632 }
12633 /*** ISpeechCustomStream methods ***/
12634 static FORCEINLINE HRESULT ISpeechCustomStream_get_BaseStream(ISpeechCustomStream* This,IUnknown **ppUnkStream) {
12635     return This->lpVtbl->get_BaseStream(This,ppUnkStream);
12636 }
12637 static FORCEINLINE HRESULT ISpeechCustomStream_putref_BaseStream(ISpeechCustomStream* This,IUnknown *pUnkStream) {
12638     return This->lpVtbl->putref_BaseStream(This,pUnkStream);
12639 }
12640 #endif
12641 #endif
12642 
12643 #endif
12644 
12645 HRESULT STDMETHODCALLTYPE ISpeechCustomStream_get_BaseStream_Proxy(
12646     ISpeechCustomStream* This,
12647     IUnknown **ppUnkStream);
12648 void __RPC_STUB ISpeechCustomStream_get_BaseStream_Stub(
12649     IRpcStubBuffer* This,
12650     IRpcChannelBuffer* pRpcChannelBuffer,
12651     PRPC_MESSAGE pRpcMessage,
12652     DWORD* pdwStubPhase);
12653 HRESULT STDMETHODCALLTYPE ISpeechCustomStream_putref_BaseStream_Proxy(
12654     ISpeechCustomStream* This,
12655     IUnknown *pUnkStream);
12656 void __RPC_STUB ISpeechCustomStream_putref_BaseStream_Stub(
12657     IRpcStubBuffer* This,
12658     IRpcChannelBuffer* pRpcChannelBuffer,
12659     PRPC_MESSAGE pRpcMessage,
12660     DWORD* pdwStubPhase);
12661 
12662 #endif  /* __ISpeechCustomStream_INTERFACE_DEFINED__ */
12663 
12664 /*****************************************************************************
12665  * ISpeechMemoryStream interface
12666  */
12667 #ifndef __ISpeechMemoryStream_INTERFACE_DEFINED__
12668 #define __ISpeechMemoryStream_INTERFACE_DEFINED__
12669 
12670 DEFINE_GUID(IID_ISpeechMemoryStream, 0xeeb14b68, 0x808b, 0x4abe, 0xa5,0xea, 0xb5,0x1d,0xa7,0x58,0x80,0x08);
12671 #if defined(__cplusplus) && !defined(CINTERFACE)
12672 MIDL_INTERFACE("eeb14b68-808b-4abe-a5ea-b51da7588008")
12673 ISpeechMemoryStream : public ISpeechBaseStream
12674 {
12675     virtual HRESULT STDMETHODCALLTYPE SetData(
12676         VARIANT Data) = 0;
12677 
12678     virtual HRESULT STDMETHODCALLTYPE GetData(
12679         VARIANT *pData) = 0;
12680 
12681 };
12682 #ifdef __CRT_UUID_DECL
12683 __CRT_UUID_DECL(ISpeechMemoryStream, 0xeeb14b68, 0x808b, 0x4abe, 0xa5,0xea, 0xb5,0x1d,0xa7,0x58,0x80,0x08)
12684 #endif
12685 #else
12686 typedef struct ISpeechMemoryStreamVtbl {
12687     BEGIN_INTERFACE
12688 
12689     /*** IUnknown methods ***/
12690     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12691         ISpeechMemoryStream* This,
12692         REFIID riid,
12693         void **ppvObject);
12694 
12695     ULONG (STDMETHODCALLTYPE *AddRef)(
12696         ISpeechMemoryStream* This);
12697 
12698     ULONG (STDMETHODCALLTYPE *Release)(
12699         ISpeechMemoryStream* This);
12700 
12701     /*** IDispatch methods ***/
12702     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
12703         ISpeechMemoryStream* This,
12704         UINT *pctinfo);
12705 
12706     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
12707         ISpeechMemoryStream* This,
12708         UINT iTInfo,
12709         LCID lcid,
12710         ITypeInfo **ppTInfo);
12711 
12712     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
12713         ISpeechMemoryStream* This,
12714         REFIID riid,
12715         LPOLESTR *rgszNames,
12716         UINT cNames,
12717         LCID lcid,
12718         DISPID *rgDispId);
12719 
12720     HRESULT (STDMETHODCALLTYPE *Invoke)(
12721         ISpeechMemoryStream* This,
12722         DISPID dispIdMember,
12723         REFIID riid,
12724         LCID lcid,
12725         WORD wFlags,
12726         DISPPARAMS *pDispParams,
12727         VARIANT *pVarResult,
12728         EXCEPINFO *pExcepInfo,
12729         UINT *puArgErr);
12730 
12731     /*** ISpeechBaseStream methods ***/
12732     HRESULT (STDMETHODCALLTYPE *get_Format)(
12733         ISpeechMemoryStream* This,
12734         ISpeechAudioFormat **AudioFormat);
12735 
12736     HRESULT (STDMETHODCALLTYPE *putref_Format)(
12737         ISpeechMemoryStream* This,
12738         ISpeechAudioFormat *AudioFormat);
12739 
12740     HRESULT (STDMETHODCALLTYPE *Read)(
12741         ISpeechMemoryStream* This,
12742         VARIANT *Buffer,
12743         LONG NumberOfBytes,
12744         LONG *BytesRead);
12745 
12746     HRESULT (STDMETHODCALLTYPE *Write)(
12747         ISpeechMemoryStream* This,
12748         VARIANT Buffer,
12749         LONG *BytesWritten);
12750 
12751     HRESULT (STDMETHODCALLTYPE *Seek)(
12752         ISpeechMemoryStream* This,
12753         VARIANT Position,
12754         SpeechStreamSeekPositionType Origin,
12755         VARIANT *NewPosition);
12756 
12757     /*** ISpeechMemoryStream methods ***/
12758     HRESULT (STDMETHODCALLTYPE *SetData)(
12759         ISpeechMemoryStream* This,
12760         VARIANT Data);
12761 
12762     HRESULT (STDMETHODCALLTYPE *GetData)(
12763         ISpeechMemoryStream* This,
12764         VARIANT *pData);
12765 
12766     END_INTERFACE
12767 } ISpeechMemoryStreamVtbl;
12768 interface ISpeechMemoryStream {
12769     CONST_VTBL ISpeechMemoryStreamVtbl* lpVtbl;
12770 };
12771 
12772 #ifdef COBJMACROS
12773 #ifndef WIDL_C_INLINE_WRAPPERS
12774 /*** IUnknown methods ***/
12775 #define ISpeechMemoryStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12776 #define ISpeechMemoryStream_AddRef(This) (This)->lpVtbl->AddRef(This)
12777 #define ISpeechMemoryStream_Release(This) (This)->lpVtbl->Release(This)
12778 /*** IDispatch methods ***/
12779 #define ISpeechMemoryStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
12780 #define ISpeechMemoryStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
12781 #define ISpeechMemoryStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
12782 #define ISpeechMemoryStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
12783 /*** ISpeechBaseStream methods ***/
12784 #define ISpeechMemoryStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
12785 #define ISpeechMemoryStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
12786 #define ISpeechMemoryStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
12787 #define ISpeechMemoryStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
12788 #define ISpeechMemoryStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
12789 /*** ISpeechMemoryStream methods ***/
12790 #define ISpeechMemoryStream_SetData(This,Data) (This)->lpVtbl->SetData(This,Data)
12791 #define ISpeechMemoryStream_GetData(This,pData) (This)->lpVtbl->GetData(This,pData)
12792 #else
12793 /*** IUnknown methods ***/
12794 static FORCEINLINE HRESULT ISpeechMemoryStream_QueryInterface(ISpeechMemoryStream* This,REFIID riid,void **ppvObject) {
12795     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12796 }
12797 static FORCEINLINE ULONG ISpeechMemoryStream_AddRef(ISpeechMemoryStream* This) {
12798     return This->lpVtbl->AddRef(This);
12799 }
12800 static FORCEINLINE ULONG ISpeechMemoryStream_Release(ISpeechMemoryStream* This) {
12801     return This->lpVtbl->Release(This);
12802 }
12803 /*** IDispatch methods ***/
12804 static FORCEINLINE HRESULT ISpeechMemoryStream_GetTypeInfoCount(ISpeechMemoryStream* This,UINT *pctinfo) {
12805     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
12806 }
12807 static FORCEINLINE HRESULT ISpeechMemoryStream_GetTypeInfo(ISpeechMemoryStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
12808     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
12809 }
12810 static FORCEINLINE HRESULT ISpeechMemoryStream_GetIDsOfNames(ISpeechMemoryStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
12811     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
12812 }
12813 static FORCEINLINE HRESULT ISpeechMemoryStream_Invoke(ISpeechMemoryStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
12814     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
12815 }
12816 /*** ISpeechBaseStream methods ***/
12817 static FORCEINLINE HRESULT ISpeechMemoryStream_get_Format(ISpeechMemoryStream* This,ISpeechAudioFormat **AudioFormat) {
12818     return This->lpVtbl->get_Format(This,AudioFormat);
12819 }
12820 static FORCEINLINE HRESULT ISpeechMemoryStream_putref_Format(ISpeechMemoryStream* This,ISpeechAudioFormat *AudioFormat) {
12821     return This->lpVtbl->putref_Format(This,AudioFormat);
12822 }
12823 static FORCEINLINE HRESULT ISpeechMemoryStream_Read(ISpeechMemoryStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
12824     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
12825 }
12826 static FORCEINLINE HRESULT ISpeechMemoryStream_Write(ISpeechMemoryStream* This,VARIANT Buffer,LONG *BytesWritten) {
12827     return This->lpVtbl->Write(This,Buffer,BytesWritten);
12828 }
12829 static FORCEINLINE HRESULT ISpeechMemoryStream_Seek(ISpeechMemoryStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
12830     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
12831 }
12832 /*** ISpeechMemoryStream methods ***/
12833 static FORCEINLINE HRESULT ISpeechMemoryStream_SetData(ISpeechMemoryStream* This,VARIANT Data) {
12834     return This->lpVtbl->SetData(This,Data);
12835 }
12836 static FORCEINLINE HRESULT ISpeechMemoryStream_GetData(ISpeechMemoryStream* This,VARIANT *pData) {
12837     return This->lpVtbl->GetData(This,pData);
12838 }
12839 #endif
12840 #endif
12841 
12842 #endif
12843 
12844 HRESULT STDMETHODCALLTYPE ISpeechMemoryStream_SetData_Proxy(
12845     ISpeechMemoryStream* This,
12846     VARIANT Data);
12847 void __RPC_STUB ISpeechMemoryStream_SetData_Stub(
12848     IRpcStubBuffer* This,
12849     IRpcChannelBuffer* pRpcChannelBuffer,
12850     PRPC_MESSAGE pRpcMessage,
12851     DWORD* pdwStubPhase);
12852 HRESULT STDMETHODCALLTYPE ISpeechMemoryStream_GetData_Proxy(
12853     ISpeechMemoryStream* This,
12854     VARIANT *pData);
12855 void __RPC_STUB ISpeechMemoryStream_GetData_Stub(
12856     IRpcStubBuffer* This,
12857     IRpcChannelBuffer* pRpcChannelBuffer,
12858     PRPC_MESSAGE pRpcMessage,
12859     DWORD* pdwStubPhase);
12860 
12861 #endif  /* __ISpeechMemoryStream_INTERFACE_DEFINED__ */
12862 
12863 /*****************************************************************************
12864  * ISpeechAudioStatus interface
12865  */
12866 #ifndef __ISpeechAudioStatus_INTERFACE_DEFINED__
12867 #define __ISpeechAudioStatus_INTERFACE_DEFINED__
12868 
12869 DEFINE_GUID(IID_ISpeechAudioStatus, 0xc62d9c91, 0x7458, 0x47f6, 0x86,0x2d, 0x1e,0xf8,0x6f,0xb0,0xb2,0x78);
12870 #if defined(__cplusplus) && !defined(CINTERFACE)
12871 MIDL_INTERFACE("c62d9c91-7458-47f6-862d-1ef86fb0b278")
12872 ISpeechAudioStatus : public IDispatch
12873 {
12874     virtual HRESULT STDMETHODCALLTYPE get_FreeBufferSpace(
12875         LONG *FreeBufferSpace) = 0;
12876 
12877     virtual HRESULT STDMETHODCALLTYPE get_NonBlockingIO(
12878         LONG *NonBlockingIO) = 0;
12879 
12880     virtual HRESULT STDMETHODCALLTYPE get_State(
12881         SpeechAudioState *State) = 0;
12882 
12883     virtual HRESULT STDMETHODCALLTYPE get_CurrentSeekPosition(
12884         VARIANT *CurrentSeekPosition) = 0;
12885 
12886     virtual HRESULT STDMETHODCALLTYPE get_CurrentDevicePosition(
12887         VARIANT *CurrentDevicePosition) = 0;
12888 
12889 };
12890 #ifdef __CRT_UUID_DECL
12891 __CRT_UUID_DECL(ISpeechAudioStatus, 0xc62d9c91, 0x7458, 0x47f6, 0x86,0x2d, 0x1e,0xf8,0x6f,0xb0,0xb2,0x78)
12892 #endif
12893 #else
12894 typedef struct ISpeechAudioStatusVtbl {
12895     BEGIN_INTERFACE
12896 
12897     /*** IUnknown methods ***/
12898     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12899         ISpeechAudioStatus* This,
12900         REFIID riid,
12901         void **ppvObject);
12902 
12903     ULONG (STDMETHODCALLTYPE *AddRef)(
12904         ISpeechAudioStatus* This);
12905 
12906     ULONG (STDMETHODCALLTYPE *Release)(
12907         ISpeechAudioStatus* This);
12908 
12909     /*** IDispatch methods ***/
12910     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
12911         ISpeechAudioStatus* This,
12912         UINT *pctinfo);
12913 
12914     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
12915         ISpeechAudioStatus* This,
12916         UINT iTInfo,
12917         LCID lcid,
12918         ITypeInfo **ppTInfo);
12919 
12920     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
12921         ISpeechAudioStatus* This,
12922         REFIID riid,
12923         LPOLESTR *rgszNames,
12924         UINT cNames,
12925         LCID lcid,
12926         DISPID *rgDispId);
12927 
12928     HRESULT (STDMETHODCALLTYPE *Invoke)(
12929         ISpeechAudioStatus* This,
12930         DISPID dispIdMember,
12931         REFIID riid,
12932         LCID lcid,
12933         WORD wFlags,
12934         DISPPARAMS *pDispParams,
12935         VARIANT *pVarResult,
12936         EXCEPINFO *pExcepInfo,
12937         UINT *puArgErr);
12938 
12939     /*** ISpeechAudioStatus methods ***/
12940     HRESULT (STDMETHODCALLTYPE *get_FreeBufferSpace)(
12941         ISpeechAudioStatus* This,
12942         LONG *FreeBufferSpace);
12943 
12944     HRESULT (STDMETHODCALLTYPE *get_NonBlockingIO)(
12945         ISpeechAudioStatus* This,
12946         LONG *NonBlockingIO);
12947 
12948     HRESULT (STDMETHODCALLTYPE *get_State)(
12949         ISpeechAudioStatus* This,
12950         SpeechAudioState *State);
12951 
12952     HRESULT (STDMETHODCALLTYPE *get_CurrentSeekPosition)(
12953         ISpeechAudioStatus* This,
12954         VARIANT *CurrentSeekPosition);
12955 
12956     HRESULT (STDMETHODCALLTYPE *get_CurrentDevicePosition)(
12957         ISpeechAudioStatus* This,
12958         VARIANT *CurrentDevicePosition);
12959 
12960     END_INTERFACE
12961 } ISpeechAudioStatusVtbl;
12962 interface ISpeechAudioStatus {
12963     CONST_VTBL ISpeechAudioStatusVtbl* lpVtbl;
12964 };
12965 
12966 #ifdef COBJMACROS
12967 #ifndef WIDL_C_INLINE_WRAPPERS
12968 /*** IUnknown methods ***/
12969 #define ISpeechAudioStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12970 #define ISpeechAudioStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
12971 #define ISpeechAudioStatus_Release(This) (This)->lpVtbl->Release(This)
12972 /*** IDispatch methods ***/
12973 #define ISpeechAudioStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
12974 #define ISpeechAudioStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
12975 #define ISpeechAudioStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
12976 #define ISpeechAudioStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
12977 /*** ISpeechAudioStatus methods ***/
12978 #define ISpeechAudioStatus_get_FreeBufferSpace(This,FreeBufferSpace) (This)->lpVtbl->get_FreeBufferSpace(This,FreeBufferSpace)
12979 #define ISpeechAudioStatus_get_NonBlockingIO(This,NonBlockingIO) (This)->lpVtbl->get_NonBlockingIO(This,NonBlockingIO)
12980 #define ISpeechAudioStatus_get_State(This,State) (This)->lpVtbl->get_State(This,State)
12981 #define ISpeechAudioStatus_get_CurrentSeekPosition(This,CurrentSeekPosition) (This)->lpVtbl->get_CurrentSeekPosition(This,CurrentSeekPosition)
12982 #define ISpeechAudioStatus_get_CurrentDevicePosition(This,CurrentDevicePosition) (This)->lpVtbl->get_CurrentDevicePosition(This,CurrentDevicePosition)
12983 #else
12984 /*** IUnknown methods ***/
12985 static FORCEINLINE HRESULT ISpeechAudioStatus_QueryInterface(ISpeechAudioStatus* This,REFIID riid,void **ppvObject) {
12986     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12987 }
12988 static FORCEINLINE ULONG ISpeechAudioStatus_AddRef(ISpeechAudioStatus* This) {
12989     return This->lpVtbl->AddRef(This);
12990 }
12991 static FORCEINLINE ULONG ISpeechAudioStatus_Release(ISpeechAudioStatus* This) {
12992     return This->lpVtbl->Release(This);
12993 }
12994 /*** IDispatch methods ***/
12995 static FORCEINLINE HRESULT ISpeechAudioStatus_GetTypeInfoCount(ISpeechAudioStatus* This,UINT *pctinfo) {
12996     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
12997 }
12998 static FORCEINLINE HRESULT ISpeechAudioStatus_GetTypeInfo(ISpeechAudioStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
12999     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13000 }
13001 static FORCEINLINE HRESULT ISpeechAudioStatus_GetIDsOfNames(ISpeechAudioStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13002     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13003 }
13004 static FORCEINLINE HRESULT ISpeechAudioStatus_Invoke(ISpeechAudioStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13005     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13006 }
13007 /*** ISpeechAudioStatus methods ***/
13008 static FORCEINLINE HRESULT ISpeechAudioStatus_get_FreeBufferSpace(ISpeechAudioStatus* This,LONG *FreeBufferSpace) {
13009     return This->lpVtbl->get_FreeBufferSpace(This,FreeBufferSpace);
13010 }
13011 static FORCEINLINE HRESULT ISpeechAudioStatus_get_NonBlockingIO(ISpeechAudioStatus* This,LONG *NonBlockingIO) {
13012     return This->lpVtbl->get_NonBlockingIO(This,NonBlockingIO);
13013 }
13014 static FORCEINLINE HRESULT ISpeechAudioStatus_get_State(ISpeechAudioStatus* This,SpeechAudioState *State) {
13015     return This->lpVtbl->get_State(This,State);
13016 }
13017 static FORCEINLINE HRESULT ISpeechAudioStatus_get_CurrentSeekPosition(ISpeechAudioStatus* This,VARIANT *CurrentSeekPosition) {
13018     return This->lpVtbl->get_CurrentSeekPosition(This,CurrentSeekPosition);
13019 }
13020 static FORCEINLINE HRESULT ISpeechAudioStatus_get_CurrentDevicePosition(ISpeechAudioStatus* This,VARIANT *CurrentDevicePosition) {
13021     return This->lpVtbl->get_CurrentDevicePosition(This,CurrentDevicePosition);
13022 }
13023 #endif
13024 #endif
13025 
13026 #endif
13027 
13028 HRESULT STDMETHODCALLTYPE ISpeechAudioStatus_get_FreeBufferSpace_Proxy(
13029     ISpeechAudioStatus* This,
13030     LONG *FreeBufferSpace);
13031 void __RPC_STUB ISpeechAudioStatus_get_FreeBufferSpace_Stub(
13032     IRpcStubBuffer* This,
13033     IRpcChannelBuffer* pRpcChannelBuffer,
13034     PRPC_MESSAGE pRpcMessage,
13035     DWORD* pdwStubPhase);
13036 HRESULT STDMETHODCALLTYPE ISpeechAudioStatus_get_NonBlockingIO_Proxy(
13037     ISpeechAudioStatus* This,
13038     LONG *NonBlockingIO);
13039 void __RPC_STUB ISpeechAudioStatus_get_NonBlockingIO_Stub(
13040     IRpcStubBuffer* This,
13041     IRpcChannelBuffer* pRpcChannelBuffer,
13042     PRPC_MESSAGE pRpcMessage,
13043     DWORD* pdwStubPhase);
13044 HRESULT STDMETHODCALLTYPE ISpeechAudioStatus_get_State_Proxy(
13045     ISpeechAudioStatus* This,
13046     SpeechAudioState *State);
13047 void __RPC_STUB ISpeechAudioStatus_get_State_Stub(
13048     IRpcStubBuffer* This,
13049     IRpcChannelBuffer* pRpcChannelBuffer,
13050     PRPC_MESSAGE pRpcMessage,
13051     DWORD* pdwStubPhase);
13052 HRESULT STDMETHODCALLTYPE ISpeechAudioStatus_get_CurrentSeekPosition_Proxy(
13053     ISpeechAudioStatus* This,
13054     VARIANT *CurrentSeekPosition);
13055 void __RPC_STUB ISpeechAudioStatus_get_CurrentSeekPosition_Stub(
13056     IRpcStubBuffer* This,
13057     IRpcChannelBuffer* pRpcChannelBuffer,
13058     PRPC_MESSAGE pRpcMessage,
13059     DWORD* pdwStubPhase);
13060 HRESULT STDMETHODCALLTYPE ISpeechAudioStatus_get_CurrentDevicePosition_Proxy(
13061     ISpeechAudioStatus* This,
13062     VARIANT *CurrentDevicePosition);
13063 void __RPC_STUB ISpeechAudioStatus_get_CurrentDevicePosition_Stub(
13064     IRpcStubBuffer* This,
13065     IRpcChannelBuffer* pRpcChannelBuffer,
13066     PRPC_MESSAGE pRpcMessage,
13067     DWORD* pdwStubPhase);
13068 
13069 #endif  /* __ISpeechAudioStatus_INTERFACE_DEFINED__ */
13070 
13071 /*****************************************************************************
13072  * ISpeechAudioBufferInfo interface
13073  */
13074 #ifndef __ISpeechAudioBufferInfo_INTERFACE_DEFINED__
13075 #define __ISpeechAudioBufferInfo_INTERFACE_DEFINED__
13076 
13077 DEFINE_GUID(IID_ISpeechAudioBufferInfo, 0x11b103d8, 0x1142, 0x4edf, 0xa0,0x93, 0x82,0xfb,0x39,0x15,0xf8,0xcc);
13078 #if defined(__cplusplus) && !defined(CINTERFACE)
13079 MIDL_INTERFACE("11b103d8-1142-4edf-a093-82fb3915f8cc")
13080 ISpeechAudioBufferInfo : public IDispatch
13081 {
13082     virtual HRESULT STDMETHODCALLTYPE get_MinNotification(
13083         LONG *MinNotification) = 0;
13084 
13085     virtual HRESULT STDMETHODCALLTYPE put_MinNotification(
13086         LONG MinNotification) = 0;
13087 
13088     virtual HRESULT STDMETHODCALLTYPE get_BufferSize(
13089         LONG *BufferSize) = 0;
13090 
13091     virtual HRESULT STDMETHODCALLTYPE put_BufferSize(
13092         LONG BufferSize) = 0;
13093 
13094     virtual HRESULT STDMETHODCALLTYPE get_EventBias(
13095         LONG *EventBias) = 0;
13096 
13097     virtual HRESULT STDMETHODCALLTYPE put_EventBias(
13098         LONG EventBias) = 0;
13099 
13100 };
13101 #ifdef __CRT_UUID_DECL
13102 __CRT_UUID_DECL(ISpeechAudioBufferInfo, 0x11b103d8, 0x1142, 0x4edf, 0xa0,0x93, 0x82,0xfb,0x39,0x15,0xf8,0xcc)
13103 #endif
13104 #else
13105 typedef struct ISpeechAudioBufferInfoVtbl {
13106     BEGIN_INTERFACE
13107 
13108     /*** IUnknown methods ***/
13109     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13110         ISpeechAudioBufferInfo* This,
13111         REFIID riid,
13112         void **ppvObject);
13113 
13114     ULONG (STDMETHODCALLTYPE *AddRef)(
13115         ISpeechAudioBufferInfo* This);
13116 
13117     ULONG (STDMETHODCALLTYPE *Release)(
13118         ISpeechAudioBufferInfo* This);
13119 
13120     /*** IDispatch methods ***/
13121     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13122         ISpeechAudioBufferInfo* This,
13123         UINT *pctinfo);
13124 
13125     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13126         ISpeechAudioBufferInfo* This,
13127         UINT iTInfo,
13128         LCID lcid,
13129         ITypeInfo **ppTInfo);
13130 
13131     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13132         ISpeechAudioBufferInfo* This,
13133         REFIID riid,
13134         LPOLESTR *rgszNames,
13135         UINT cNames,
13136         LCID lcid,
13137         DISPID *rgDispId);
13138 
13139     HRESULT (STDMETHODCALLTYPE *Invoke)(
13140         ISpeechAudioBufferInfo* This,
13141         DISPID dispIdMember,
13142         REFIID riid,
13143         LCID lcid,
13144         WORD wFlags,
13145         DISPPARAMS *pDispParams,
13146         VARIANT *pVarResult,
13147         EXCEPINFO *pExcepInfo,
13148         UINT *puArgErr);
13149 
13150     /*** ISpeechAudioBufferInfo methods ***/
13151     HRESULT (STDMETHODCALLTYPE *get_MinNotification)(
13152         ISpeechAudioBufferInfo* This,
13153         LONG *MinNotification);
13154 
13155     HRESULT (STDMETHODCALLTYPE *put_MinNotification)(
13156         ISpeechAudioBufferInfo* This,
13157         LONG MinNotification);
13158 
13159     HRESULT (STDMETHODCALLTYPE *get_BufferSize)(
13160         ISpeechAudioBufferInfo* This,
13161         LONG *BufferSize);
13162 
13163     HRESULT (STDMETHODCALLTYPE *put_BufferSize)(
13164         ISpeechAudioBufferInfo* This,
13165         LONG BufferSize);
13166 
13167     HRESULT (STDMETHODCALLTYPE *get_EventBias)(
13168         ISpeechAudioBufferInfo* This,
13169         LONG *EventBias);
13170 
13171     HRESULT (STDMETHODCALLTYPE *put_EventBias)(
13172         ISpeechAudioBufferInfo* This,
13173         LONG EventBias);
13174 
13175     END_INTERFACE
13176 } ISpeechAudioBufferInfoVtbl;
13177 interface ISpeechAudioBufferInfo {
13178     CONST_VTBL ISpeechAudioBufferInfoVtbl* lpVtbl;
13179 };
13180 
13181 #ifdef COBJMACROS
13182 #ifndef WIDL_C_INLINE_WRAPPERS
13183 /*** IUnknown methods ***/
13184 #define ISpeechAudioBufferInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13185 #define ISpeechAudioBufferInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
13186 #define ISpeechAudioBufferInfo_Release(This) (This)->lpVtbl->Release(This)
13187 /*** IDispatch methods ***/
13188 #define ISpeechAudioBufferInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13189 #define ISpeechAudioBufferInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13190 #define ISpeechAudioBufferInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13191 #define ISpeechAudioBufferInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13192 /*** ISpeechAudioBufferInfo methods ***/
13193 #define ISpeechAudioBufferInfo_get_MinNotification(This,MinNotification) (This)->lpVtbl->get_MinNotification(This,MinNotification)
13194 #define ISpeechAudioBufferInfo_put_MinNotification(This,MinNotification) (This)->lpVtbl->put_MinNotification(This,MinNotification)
13195 #define ISpeechAudioBufferInfo_get_BufferSize(This,BufferSize) (This)->lpVtbl->get_BufferSize(This,BufferSize)
13196 #define ISpeechAudioBufferInfo_put_BufferSize(This,BufferSize) (This)->lpVtbl->put_BufferSize(This,BufferSize)
13197 #define ISpeechAudioBufferInfo_get_EventBias(This,EventBias) (This)->lpVtbl->get_EventBias(This,EventBias)
13198 #define ISpeechAudioBufferInfo_put_EventBias(This,EventBias) (This)->lpVtbl->put_EventBias(This,EventBias)
13199 #else
13200 /*** IUnknown methods ***/
13201 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_QueryInterface(ISpeechAudioBufferInfo* This,REFIID riid,void **ppvObject) {
13202     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13203 }
13204 static FORCEINLINE ULONG ISpeechAudioBufferInfo_AddRef(ISpeechAudioBufferInfo* This) {
13205     return This->lpVtbl->AddRef(This);
13206 }
13207 static FORCEINLINE ULONG ISpeechAudioBufferInfo_Release(ISpeechAudioBufferInfo* This) {
13208     return This->lpVtbl->Release(This);
13209 }
13210 /*** IDispatch methods ***/
13211 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_GetTypeInfoCount(ISpeechAudioBufferInfo* This,UINT *pctinfo) {
13212     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13213 }
13214 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_GetTypeInfo(ISpeechAudioBufferInfo* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13215     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13216 }
13217 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_GetIDsOfNames(ISpeechAudioBufferInfo* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13218     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13219 }
13220 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_Invoke(ISpeechAudioBufferInfo* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13221     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13222 }
13223 /*** ISpeechAudioBufferInfo methods ***/
13224 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_get_MinNotification(ISpeechAudioBufferInfo* This,LONG *MinNotification) {
13225     return This->lpVtbl->get_MinNotification(This,MinNotification);
13226 }
13227 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_put_MinNotification(ISpeechAudioBufferInfo* This,LONG MinNotification) {
13228     return This->lpVtbl->put_MinNotification(This,MinNotification);
13229 }
13230 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_get_BufferSize(ISpeechAudioBufferInfo* This,LONG *BufferSize) {
13231     return This->lpVtbl->get_BufferSize(This,BufferSize);
13232 }
13233 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_put_BufferSize(ISpeechAudioBufferInfo* This,LONG BufferSize) {
13234     return This->lpVtbl->put_BufferSize(This,BufferSize);
13235 }
13236 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_get_EventBias(ISpeechAudioBufferInfo* This,LONG *EventBias) {
13237     return This->lpVtbl->get_EventBias(This,EventBias);
13238 }
13239 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_put_EventBias(ISpeechAudioBufferInfo* This,LONG EventBias) {
13240     return This->lpVtbl->put_EventBias(This,EventBias);
13241 }
13242 #endif
13243 #endif
13244 
13245 #endif
13246 
13247 HRESULT STDMETHODCALLTYPE ISpeechAudioBufferInfo_get_MinNotification_Proxy(
13248     ISpeechAudioBufferInfo* This,
13249     LONG *MinNotification);
13250 void __RPC_STUB ISpeechAudioBufferInfo_get_MinNotification_Stub(
13251     IRpcStubBuffer* This,
13252     IRpcChannelBuffer* pRpcChannelBuffer,
13253     PRPC_MESSAGE pRpcMessage,
13254     DWORD* pdwStubPhase);
13255 HRESULT STDMETHODCALLTYPE ISpeechAudioBufferInfo_put_MinNotification_Proxy(
13256     ISpeechAudioBufferInfo* This,
13257     LONG MinNotification);
13258 void __RPC_STUB ISpeechAudioBufferInfo_put_MinNotification_Stub(
13259     IRpcStubBuffer* This,
13260     IRpcChannelBuffer* pRpcChannelBuffer,
13261     PRPC_MESSAGE pRpcMessage,
13262     DWORD* pdwStubPhase);
13263 HRESULT STDMETHODCALLTYPE ISpeechAudioBufferInfo_get_BufferSize_Proxy(
13264     ISpeechAudioBufferInfo* This,
13265     LONG *BufferSize);
13266 void __RPC_STUB ISpeechAudioBufferInfo_get_BufferSize_Stub(
13267     IRpcStubBuffer* This,
13268     IRpcChannelBuffer* pRpcChannelBuffer,
13269     PRPC_MESSAGE pRpcMessage,
13270     DWORD* pdwStubPhase);
13271 HRESULT STDMETHODCALLTYPE ISpeechAudioBufferInfo_put_BufferSize_Proxy(
13272     ISpeechAudioBufferInfo* This,
13273     LONG BufferSize);
13274 void __RPC_STUB ISpeechAudioBufferInfo_put_BufferSize_Stub(
13275     IRpcStubBuffer* This,
13276     IRpcChannelBuffer* pRpcChannelBuffer,
13277     PRPC_MESSAGE pRpcMessage,
13278     DWORD* pdwStubPhase);
13279 HRESULT STDMETHODCALLTYPE ISpeechAudioBufferInfo_get_EventBias_Proxy(
13280     ISpeechAudioBufferInfo* This,
13281     LONG *EventBias);
13282 void __RPC_STUB ISpeechAudioBufferInfo_get_EventBias_Stub(
13283     IRpcStubBuffer* This,
13284     IRpcChannelBuffer* pRpcChannelBuffer,
13285     PRPC_MESSAGE pRpcMessage,
13286     DWORD* pdwStubPhase);
13287 HRESULT STDMETHODCALLTYPE ISpeechAudioBufferInfo_put_EventBias_Proxy(
13288     ISpeechAudioBufferInfo* This,
13289     LONG EventBias);
13290 void __RPC_STUB ISpeechAudioBufferInfo_put_EventBias_Stub(
13291     IRpcStubBuffer* This,
13292     IRpcChannelBuffer* pRpcChannelBuffer,
13293     PRPC_MESSAGE pRpcMessage,
13294     DWORD* pdwStubPhase);
13295 
13296 #endif  /* __ISpeechAudioBufferInfo_INTERFACE_DEFINED__ */
13297 
13298 /*****************************************************************************
13299  * ISpeechWaveFormatEx interface
13300  */
13301 #ifndef __ISpeechWaveFormatEx_INTERFACE_DEFINED__
13302 #define __ISpeechWaveFormatEx_INTERFACE_DEFINED__
13303 
13304 DEFINE_GUID(IID_ISpeechWaveFormatEx, 0x7a1ef0d5, 0x1581, 0x4741, 0x88,0xe4, 0x20,0x9a,0x49,0xf1,0x1a,0x10);
13305 #if defined(__cplusplus) && !defined(CINTERFACE)
13306 MIDL_INTERFACE("7a1ef0d5-1581-4741-88e4-209a49f11a10")
13307 ISpeechWaveFormatEx : public IDispatch
13308 {
13309     virtual HRESULT STDMETHODCALLTYPE get_FormatTag(
13310         short *FormatTag) = 0;
13311 
13312     virtual HRESULT STDMETHODCALLTYPE put_FormatTag(
13313         short FormatTag) = 0;
13314 
13315     virtual HRESULT STDMETHODCALLTYPE get_Channels(
13316         short *Channels) = 0;
13317 
13318     virtual HRESULT STDMETHODCALLTYPE put_Channels(
13319         short Channels) = 0;
13320 
13321     virtual HRESULT STDMETHODCALLTYPE get_SamplesPerSec(
13322         LONG *SamplesPerSec) = 0;
13323 
13324     virtual HRESULT STDMETHODCALLTYPE put_SamplesPerSec(
13325         LONG SamplesPerSec) = 0;
13326 
13327     virtual HRESULT STDMETHODCALLTYPE get_AvgBytesPerSec(
13328         LONG *AvgBytesPerSec) = 0;
13329 
13330     virtual HRESULT STDMETHODCALLTYPE put_AvgBytesPerSec(
13331         LONG AvgBytesPerSec) = 0;
13332 
13333     virtual HRESULT STDMETHODCALLTYPE get_BlockAlign(
13334         short *BlockAlign) = 0;
13335 
13336     virtual HRESULT STDMETHODCALLTYPE put_BlockAlign(
13337         short BlockAlign) = 0;
13338 
13339     virtual HRESULT STDMETHODCALLTYPE get_BitsPerSample(
13340         short *BitsPerSample) = 0;
13341 
13342     virtual HRESULT STDMETHODCALLTYPE put_BitsPerSample(
13343         short BitsPerSample) = 0;
13344 
13345     virtual HRESULT STDMETHODCALLTYPE get_ExtraData(
13346         VARIANT *ExtraData) = 0;
13347 
13348     virtual HRESULT STDMETHODCALLTYPE put_ExtraData(
13349         VARIANT ExtraData) = 0;
13350 
13351 };
13352 #ifdef __CRT_UUID_DECL
13353 __CRT_UUID_DECL(ISpeechWaveFormatEx, 0x7a1ef0d5, 0x1581, 0x4741, 0x88,0xe4, 0x20,0x9a,0x49,0xf1,0x1a,0x10)
13354 #endif
13355 #else
13356 typedef struct ISpeechWaveFormatExVtbl {
13357     BEGIN_INTERFACE
13358 
13359     /*** IUnknown methods ***/
13360     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13361         ISpeechWaveFormatEx* This,
13362         REFIID riid,
13363         void **ppvObject);
13364 
13365     ULONG (STDMETHODCALLTYPE *AddRef)(
13366         ISpeechWaveFormatEx* This);
13367 
13368     ULONG (STDMETHODCALLTYPE *Release)(
13369         ISpeechWaveFormatEx* This);
13370 
13371     /*** IDispatch methods ***/
13372     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13373         ISpeechWaveFormatEx* This,
13374         UINT *pctinfo);
13375 
13376     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13377         ISpeechWaveFormatEx* This,
13378         UINT iTInfo,
13379         LCID lcid,
13380         ITypeInfo **ppTInfo);
13381 
13382     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13383         ISpeechWaveFormatEx* This,
13384         REFIID riid,
13385         LPOLESTR *rgszNames,
13386         UINT cNames,
13387         LCID lcid,
13388         DISPID *rgDispId);
13389 
13390     HRESULT (STDMETHODCALLTYPE *Invoke)(
13391         ISpeechWaveFormatEx* This,
13392         DISPID dispIdMember,
13393         REFIID riid,
13394         LCID lcid,
13395         WORD wFlags,
13396         DISPPARAMS *pDispParams,
13397         VARIANT *pVarResult,
13398         EXCEPINFO *pExcepInfo,
13399         UINT *puArgErr);
13400 
13401     /*** ISpeechWaveFormatEx methods ***/
13402     HRESULT (STDMETHODCALLTYPE *get_FormatTag)(
13403         ISpeechWaveFormatEx* This,
13404         short *FormatTag);
13405 
13406     HRESULT (STDMETHODCALLTYPE *put_FormatTag)(
13407         ISpeechWaveFormatEx* This,
13408         short FormatTag);
13409 
13410     HRESULT (STDMETHODCALLTYPE *get_Channels)(
13411         ISpeechWaveFormatEx* This,
13412         short *Channels);
13413 
13414     HRESULT (STDMETHODCALLTYPE *put_Channels)(
13415         ISpeechWaveFormatEx* This,
13416         short Channels);
13417 
13418     HRESULT (STDMETHODCALLTYPE *get_SamplesPerSec)(
13419         ISpeechWaveFormatEx* This,
13420         LONG *SamplesPerSec);
13421 
13422     HRESULT (STDMETHODCALLTYPE *put_SamplesPerSec)(
13423         ISpeechWaveFormatEx* This,
13424         LONG SamplesPerSec);
13425 
13426     HRESULT (STDMETHODCALLTYPE *get_AvgBytesPerSec)(
13427         ISpeechWaveFormatEx* This,
13428         LONG *AvgBytesPerSec);
13429 
13430     HRESULT (STDMETHODCALLTYPE *put_AvgBytesPerSec)(
13431         ISpeechWaveFormatEx* This,
13432         LONG AvgBytesPerSec);
13433 
13434     HRESULT (STDMETHODCALLTYPE *get_BlockAlign)(
13435         ISpeechWaveFormatEx* This,
13436         short *BlockAlign);
13437 
13438     HRESULT (STDMETHODCALLTYPE *put_BlockAlign)(
13439         ISpeechWaveFormatEx* This,
13440         short BlockAlign);
13441 
13442     HRESULT (STDMETHODCALLTYPE *get_BitsPerSample)(
13443         ISpeechWaveFormatEx* This,
13444         short *BitsPerSample);
13445 
13446     HRESULT (STDMETHODCALLTYPE *put_BitsPerSample)(
13447         ISpeechWaveFormatEx* This,
13448         short BitsPerSample);
13449 
13450     HRESULT (STDMETHODCALLTYPE *get_ExtraData)(
13451         ISpeechWaveFormatEx* This,
13452         VARIANT *ExtraData);
13453 
13454     HRESULT (STDMETHODCALLTYPE *put_ExtraData)(
13455         ISpeechWaveFormatEx* This,
13456         VARIANT ExtraData);
13457 
13458     END_INTERFACE
13459 } ISpeechWaveFormatExVtbl;
13460 interface ISpeechWaveFormatEx {
13461     CONST_VTBL ISpeechWaveFormatExVtbl* lpVtbl;
13462 };
13463 
13464 #ifdef COBJMACROS
13465 #ifndef WIDL_C_INLINE_WRAPPERS
13466 /*** IUnknown methods ***/
13467 #define ISpeechWaveFormatEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13468 #define ISpeechWaveFormatEx_AddRef(This) (This)->lpVtbl->AddRef(This)
13469 #define ISpeechWaveFormatEx_Release(This) (This)->lpVtbl->Release(This)
13470 /*** IDispatch methods ***/
13471 #define ISpeechWaveFormatEx_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13472 #define ISpeechWaveFormatEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13473 #define ISpeechWaveFormatEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13474 #define ISpeechWaveFormatEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13475 /*** ISpeechWaveFormatEx methods ***/
13476 #define ISpeechWaveFormatEx_get_FormatTag(This,FormatTag) (This)->lpVtbl->get_FormatTag(This,FormatTag)
13477 #define ISpeechWaveFormatEx_put_FormatTag(This,FormatTag) (This)->lpVtbl->put_FormatTag(This,FormatTag)
13478 #define ISpeechWaveFormatEx_get_Channels(This,Channels) (This)->lpVtbl->get_Channels(This,Channels)
13479 #define ISpeechWaveFormatEx_put_Channels(This,Channels) (This)->lpVtbl->put_Channels(This,Channels)
13480 #define ISpeechWaveFormatEx_get_SamplesPerSec(This,SamplesPerSec) (This)->lpVtbl->get_SamplesPerSec(This,SamplesPerSec)
13481 #define ISpeechWaveFormatEx_put_SamplesPerSec(This,SamplesPerSec) (This)->lpVtbl->put_SamplesPerSec(This,SamplesPerSec)
13482 #define ISpeechWaveFormatEx_get_AvgBytesPerSec(This,AvgBytesPerSec) (This)->lpVtbl->get_AvgBytesPerSec(This,AvgBytesPerSec)
13483 #define ISpeechWaveFormatEx_put_AvgBytesPerSec(This,AvgBytesPerSec) (This)->lpVtbl->put_AvgBytesPerSec(This,AvgBytesPerSec)
13484 #define ISpeechWaveFormatEx_get_BlockAlign(This,BlockAlign) (This)->lpVtbl->get_BlockAlign(This,BlockAlign)
13485 #define ISpeechWaveFormatEx_put_BlockAlign(This,BlockAlign) (This)->lpVtbl->put_BlockAlign(This,BlockAlign)
13486 #define ISpeechWaveFormatEx_get_BitsPerSample(This,BitsPerSample) (This)->lpVtbl->get_BitsPerSample(This,BitsPerSample)
13487 #define ISpeechWaveFormatEx_put_BitsPerSample(This,BitsPerSample) (This)->lpVtbl->put_BitsPerSample(This,BitsPerSample)
13488 #define ISpeechWaveFormatEx_get_ExtraData(This,ExtraData) (This)->lpVtbl->get_ExtraData(This,ExtraData)
13489 #define ISpeechWaveFormatEx_put_ExtraData(This,ExtraData) (This)->lpVtbl->put_ExtraData(This,ExtraData)
13490 #else
13491 /*** IUnknown methods ***/
13492 static FORCEINLINE HRESULT ISpeechWaveFormatEx_QueryInterface(ISpeechWaveFormatEx* This,REFIID riid,void **ppvObject) {
13493     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13494 }
13495 static FORCEINLINE ULONG ISpeechWaveFormatEx_AddRef(ISpeechWaveFormatEx* This) {
13496     return This->lpVtbl->AddRef(This);
13497 }
13498 static FORCEINLINE ULONG ISpeechWaveFormatEx_Release(ISpeechWaveFormatEx* This) {
13499     return This->lpVtbl->Release(This);
13500 }
13501 /*** IDispatch methods ***/
13502 static FORCEINLINE HRESULT ISpeechWaveFormatEx_GetTypeInfoCount(ISpeechWaveFormatEx* This,UINT *pctinfo) {
13503     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13504 }
13505 static FORCEINLINE HRESULT ISpeechWaveFormatEx_GetTypeInfo(ISpeechWaveFormatEx* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13506     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13507 }
13508 static FORCEINLINE HRESULT ISpeechWaveFormatEx_GetIDsOfNames(ISpeechWaveFormatEx* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13509     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13510 }
13511 static FORCEINLINE HRESULT ISpeechWaveFormatEx_Invoke(ISpeechWaveFormatEx* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13512     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13513 }
13514 /*** ISpeechWaveFormatEx methods ***/
13515 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_FormatTag(ISpeechWaveFormatEx* This,short *FormatTag) {
13516     return This->lpVtbl->get_FormatTag(This,FormatTag);
13517 }
13518 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_FormatTag(ISpeechWaveFormatEx* This,short FormatTag) {
13519     return This->lpVtbl->put_FormatTag(This,FormatTag);
13520 }
13521 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_Channels(ISpeechWaveFormatEx* This,short *Channels) {
13522     return This->lpVtbl->get_Channels(This,Channels);
13523 }
13524 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_Channels(ISpeechWaveFormatEx* This,short Channels) {
13525     return This->lpVtbl->put_Channels(This,Channels);
13526 }
13527 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_SamplesPerSec(ISpeechWaveFormatEx* This,LONG *SamplesPerSec) {
13528     return This->lpVtbl->get_SamplesPerSec(This,SamplesPerSec);
13529 }
13530 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_SamplesPerSec(ISpeechWaveFormatEx* This,LONG SamplesPerSec) {
13531     return This->lpVtbl->put_SamplesPerSec(This,SamplesPerSec);
13532 }
13533 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_AvgBytesPerSec(ISpeechWaveFormatEx* This,LONG *AvgBytesPerSec) {
13534     return This->lpVtbl->get_AvgBytesPerSec(This,AvgBytesPerSec);
13535 }
13536 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_AvgBytesPerSec(ISpeechWaveFormatEx* This,LONG AvgBytesPerSec) {
13537     return This->lpVtbl->put_AvgBytesPerSec(This,AvgBytesPerSec);
13538 }
13539 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_BlockAlign(ISpeechWaveFormatEx* This,short *BlockAlign) {
13540     return This->lpVtbl->get_BlockAlign(This,BlockAlign);
13541 }
13542 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_BlockAlign(ISpeechWaveFormatEx* This,short BlockAlign) {
13543     return This->lpVtbl->put_BlockAlign(This,BlockAlign);
13544 }
13545 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_BitsPerSample(ISpeechWaveFormatEx* This,short *BitsPerSample) {
13546     return This->lpVtbl->get_BitsPerSample(This,BitsPerSample);
13547 }
13548 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_BitsPerSample(ISpeechWaveFormatEx* This,short BitsPerSample) {
13549     return This->lpVtbl->put_BitsPerSample(This,BitsPerSample);
13550 }
13551 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_ExtraData(ISpeechWaveFormatEx* This,VARIANT *ExtraData) {
13552     return This->lpVtbl->get_ExtraData(This,ExtraData);
13553 }
13554 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_ExtraData(ISpeechWaveFormatEx* This,VARIANT ExtraData) {
13555     return This->lpVtbl->put_ExtraData(This,ExtraData);
13556 }
13557 #endif
13558 #endif
13559 
13560 #endif
13561 
13562 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_get_FormatTag_Proxy(
13563     ISpeechWaveFormatEx* This,
13564     short *FormatTag);
13565 void __RPC_STUB ISpeechWaveFormatEx_get_FormatTag_Stub(
13566     IRpcStubBuffer* This,
13567     IRpcChannelBuffer* pRpcChannelBuffer,
13568     PRPC_MESSAGE pRpcMessage,
13569     DWORD* pdwStubPhase);
13570 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_put_FormatTag_Proxy(
13571     ISpeechWaveFormatEx* This,
13572     short FormatTag);
13573 void __RPC_STUB ISpeechWaveFormatEx_put_FormatTag_Stub(
13574     IRpcStubBuffer* This,
13575     IRpcChannelBuffer* pRpcChannelBuffer,
13576     PRPC_MESSAGE pRpcMessage,
13577     DWORD* pdwStubPhase);
13578 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_get_Channels_Proxy(
13579     ISpeechWaveFormatEx* This,
13580     short *Channels);
13581 void __RPC_STUB ISpeechWaveFormatEx_get_Channels_Stub(
13582     IRpcStubBuffer* This,
13583     IRpcChannelBuffer* pRpcChannelBuffer,
13584     PRPC_MESSAGE pRpcMessage,
13585     DWORD* pdwStubPhase);
13586 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_put_Channels_Proxy(
13587     ISpeechWaveFormatEx* This,
13588     short Channels);
13589 void __RPC_STUB ISpeechWaveFormatEx_put_Channels_Stub(
13590     IRpcStubBuffer* This,
13591     IRpcChannelBuffer* pRpcChannelBuffer,
13592     PRPC_MESSAGE pRpcMessage,
13593     DWORD* pdwStubPhase);
13594 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_get_SamplesPerSec_Proxy(
13595     ISpeechWaveFormatEx* This,
13596     LONG *SamplesPerSec);
13597 void __RPC_STUB ISpeechWaveFormatEx_get_SamplesPerSec_Stub(
13598     IRpcStubBuffer* This,
13599     IRpcChannelBuffer* pRpcChannelBuffer,
13600     PRPC_MESSAGE pRpcMessage,
13601     DWORD* pdwStubPhase);
13602 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_put_SamplesPerSec_Proxy(
13603     ISpeechWaveFormatEx* This,
13604     LONG SamplesPerSec);
13605 void __RPC_STUB ISpeechWaveFormatEx_put_SamplesPerSec_Stub(
13606     IRpcStubBuffer* This,
13607     IRpcChannelBuffer* pRpcChannelBuffer,
13608     PRPC_MESSAGE pRpcMessage,
13609     DWORD* pdwStubPhase);
13610 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_get_AvgBytesPerSec_Proxy(
13611     ISpeechWaveFormatEx* This,
13612     LONG *AvgBytesPerSec);
13613 void __RPC_STUB ISpeechWaveFormatEx_get_AvgBytesPerSec_Stub(
13614     IRpcStubBuffer* This,
13615     IRpcChannelBuffer* pRpcChannelBuffer,
13616     PRPC_MESSAGE pRpcMessage,
13617     DWORD* pdwStubPhase);
13618 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_put_AvgBytesPerSec_Proxy(
13619     ISpeechWaveFormatEx* This,
13620     LONG AvgBytesPerSec);
13621 void __RPC_STUB ISpeechWaveFormatEx_put_AvgBytesPerSec_Stub(
13622     IRpcStubBuffer* This,
13623     IRpcChannelBuffer* pRpcChannelBuffer,
13624     PRPC_MESSAGE pRpcMessage,
13625     DWORD* pdwStubPhase);
13626 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_get_BlockAlign_Proxy(
13627     ISpeechWaveFormatEx* This,
13628     short *BlockAlign);
13629 void __RPC_STUB ISpeechWaveFormatEx_get_BlockAlign_Stub(
13630     IRpcStubBuffer* This,
13631     IRpcChannelBuffer* pRpcChannelBuffer,
13632     PRPC_MESSAGE pRpcMessage,
13633     DWORD* pdwStubPhase);
13634 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_put_BlockAlign_Proxy(
13635     ISpeechWaveFormatEx* This,
13636     short BlockAlign);
13637 void __RPC_STUB ISpeechWaveFormatEx_put_BlockAlign_Stub(
13638     IRpcStubBuffer* This,
13639     IRpcChannelBuffer* pRpcChannelBuffer,
13640     PRPC_MESSAGE pRpcMessage,
13641     DWORD* pdwStubPhase);
13642 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_get_BitsPerSample_Proxy(
13643     ISpeechWaveFormatEx* This,
13644     short *BitsPerSample);
13645 void __RPC_STUB ISpeechWaveFormatEx_get_BitsPerSample_Stub(
13646     IRpcStubBuffer* This,
13647     IRpcChannelBuffer* pRpcChannelBuffer,
13648     PRPC_MESSAGE pRpcMessage,
13649     DWORD* pdwStubPhase);
13650 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_put_BitsPerSample_Proxy(
13651     ISpeechWaveFormatEx* This,
13652     short BitsPerSample);
13653 void __RPC_STUB ISpeechWaveFormatEx_put_BitsPerSample_Stub(
13654     IRpcStubBuffer* This,
13655     IRpcChannelBuffer* pRpcChannelBuffer,
13656     PRPC_MESSAGE pRpcMessage,
13657     DWORD* pdwStubPhase);
13658 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_get_ExtraData_Proxy(
13659     ISpeechWaveFormatEx* This,
13660     VARIANT *ExtraData);
13661 void __RPC_STUB ISpeechWaveFormatEx_get_ExtraData_Stub(
13662     IRpcStubBuffer* This,
13663     IRpcChannelBuffer* pRpcChannelBuffer,
13664     PRPC_MESSAGE pRpcMessage,
13665     DWORD* pdwStubPhase);
13666 HRESULT STDMETHODCALLTYPE ISpeechWaveFormatEx_put_ExtraData_Proxy(
13667     ISpeechWaveFormatEx* This,
13668     VARIANT ExtraData);
13669 void __RPC_STUB ISpeechWaveFormatEx_put_ExtraData_Stub(
13670     IRpcStubBuffer* This,
13671     IRpcChannelBuffer* pRpcChannelBuffer,
13672     PRPC_MESSAGE pRpcMessage,
13673     DWORD* pdwStubPhase);
13674 
13675 #endif  /* __ISpeechWaveFormatEx_INTERFACE_DEFINED__ */
13676 
13677 /*****************************************************************************
13678  * ISpeechVoice interface
13679  */
13680 #ifndef __ISpeechVoice_INTERFACE_DEFINED__
13681 #define __ISpeechVoice_INTERFACE_DEFINED__
13682 
13683 DEFINE_GUID(IID_ISpeechVoice, 0x269316d8, 0x57bd, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96);
13684 #if defined(__cplusplus) && !defined(CINTERFACE)
13685 MIDL_INTERFACE("269316d8-57bd-11d2-9eee-00c04f797396")
13686 ISpeechVoice : public IDispatch
13687 {
13688     virtual HRESULT STDMETHODCALLTYPE get_Status(
13689         ISpeechVoiceStatus **Status) = 0;
13690 
13691     virtual HRESULT STDMETHODCALLTYPE get_Voice(
13692         ISpeechObjectToken **Voice) = 0;
13693 
13694     virtual HRESULT STDMETHODCALLTYPE putref_Voice(
13695         ISpeechObjectToken *Voice) = 0;
13696 
13697     virtual HRESULT STDMETHODCALLTYPE get_AudioOutput(
13698         ISpeechObjectToken **AudioOutput) = 0;
13699 
13700     virtual HRESULT STDMETHODCALLTYPE putref_AudioOutput(
13701         ISpeechObjectToken *AudioOutput) = 0;
13702 
13703     virtual HRESULT STDMETHODCALLTYPE get_AudioOutputStream(
13704         ISpeechBaseStream **AudioOutputStream) = 0;
13705 
13706     virtual HRESULT STDMETHODCALLTYPE putref_AudioOutputStream(
13707         ISpeechBaseStream *AudioOutputStream) = 0;
13708 
13709     virtual HRESULT STDMETHODCALLTYPE get_Rate(
13710         LONG *Rate) = 0;
13711 
13712     virtual HRESULT STDMETHODCALLTYPE put_Rate(
13713         LONG Rate) = 0;
13714 
13715     virtual HRESULT STDMETHODCALLTYPE get_Volume(
13716         LONG *Volume) = 0;
13717 
13718     virtual HRESULT STDMETHODCALLTYPE put_Volume(
13719         LONG Volume) = 0;
13720 
13721     virtual HRESULT STDMETHODCALLTYPE put_AllowAudioOutputFormatChangesOnNextSet(
13722         VARIANT_BOOL Allow) = 0;
13723 
13724     virtual HRESULT STDMETHODCALLTYPE get_AllowAudioOutputFormatChangesOnNextSet(
13725         VARIANT_BOOL *Allow) = 0;
13726 
13727     virtual HRESULT STDMETHODCALLTYPE get_EventInterests(
13728         SpeechVoiceEvents *EventInterestFlags) = 0;
13729 
13730     virtual HRESULT STDMETHODCALLTYPE put_EventInterests(
13731         SpeechVoiceEvents EventInterestFlags) = 0;
13732 
13733     virtual HRESULT STDMETHODCALLTYPE put_Priority(
13734         SpeechVoicePriority Priority) = 0;
13735 
13736     virtual HRESULT STDMETHODCALLTYPE get_Priority(
13737         SpeechVoicePriority *Priority) = 0;
13738 
13739     virtual HRESULT STDMETHODCALLTYPE put_AlertBoundary(
13740         SpeechVoiceEvents Boundary) = 0;
13741 
13742     virtual HRESULT STDMETHODCALLTYPE get_AlertBoundary(
13743         SpeechVoiceEvents *Boundary) = 0;
13744 
13745     virtual HRESULT STDMETHODCALLTYPE put_SynchronousSpeakTimeout(
13746         LONG msTimeout) = 0;
13747 
13748     virtual HRESULT STDMETHODCALLTYPE get_SynchronousSpeakTimeout(
13749         LONG *msTimeout) = 0;
13750 
13751     virtual HRESULT STDMETHODCALLTYPE Speak(
13752         BSTR Text,
13753         SpeechVoiceSpeakFlags Flags,
13754         LONG *StreamNumber) = 0;
13755 
13756     virtual HRESULT STDMETHODCALLTYPE SpeakStream(
13757         ISpeechBaseStream *Stream,
13758         SpeechVoiceSpeakFlags Flags,
13759         LONG *StreamNumber) = 0;
13760 
13761     virtual HRESULT STDMETHODCALLTYPE Pause(
13762         ) = 0;
13763 
13764     virtual HRESULT STDMETHODCALLTYPE Resume(
13765         ) = 0;
13766 
13767     virtual HRESULT STDMETHODCALLTYPE Skip(
13768         const BSTR Type,
13769         LONG NumItems,
13770         LONG *NumSkipped) = 0;
13771 
13772     virtual HRESULT STDMETHODCALLTYPE GetVoices(
13773         BSTR RequiredAttributes,
13774         BSTR OptionalAttributes,
13775         ISpeechObjectTokens **ObjectTokens) = 0;
13776 
13777     virtual HRESULT STDMETHODCALLTYPE GetAudioOutputs(
13778         BSTR RequiredAttributes,
13779         BSTR OptionalAttributes,
13780         ISpeechObjectTokens **ObjectTokens) = 0;
13781 
13782     virtual HRESULT STDMETHODCALLTYPE WaitUntilDone(
13783         LONG msTimeout,
13784         VARIANT_BOOL *Done) = 0;
13785 
13786     virtual HRESULT STDMETHODCALLTYPE SpeakCompleteEvent(
13787         LONG *Handle) = 0;
13788 
13789     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
13790         const BSTR TypeOfUI,
13791         const VARIANT *ExtraData,
13792         VARIANT_BOOL *Supported) = 0;
13793 
13794     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
13795         LONG hWndParent,
13796         BSTR Title,
13797         const BSTR TypeOfUI,
13798         const VARIANT *ExtraData = 0) = 0;
13799 
13800 };
13801 #ifdef __CRT_UUID_DECL
13802 __CRT_UUID_DECL(ISpeechVoice, 0x269316d8, 0x57bd, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96)
13803 #endif
13804 #else
13805 typedef struct ISpeechVoiceVtbl {
13806     BEGIN_INTERFACE
13807 
13808     /*** IUnknown methods ***/
13809     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13810         ISpeechVoice* This,
13811         REFIID riid,
13812         void **ppvObject);
13813 
13814     ULONG (STDMETHODCALLTYPE *AddRef)(
13815         ISpeechVoice* This);
13816 
13817     ULONG (STDMETHODCALLTYPE *Release)(
13818         ISpeechVoice* This);
13819 
13820     /*** IDispatch methods ***/
13821     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13822         ISpeechVoice* This,
13823         UINT *pctinfo);
13824 
13825     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13826         ISpeechVoice* This,
13827         UINT iTInfo,
13828         LCID lcid,
13829         ITypeInfo **ppTInfo);
13830 
13831     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13832         ISpeechVoice* This,
13833         REFIID riid,
13834         LPOLESTR *rgszNames,
13835         UINT cNames,
13836         LCID lcid,
13837         DISPID *rgDispId);
13838 
13839     HRESULT (STDMETHODCALLTYPE *Invoke)(
13840         ISpeechVoice* This,
13841         DISPID dispIdMember,
13842         REFIID riid,
13843         LCID lcid,
13844         WORD wFlags,
13845         DISPPARAMS *pDispParams,
13846         VARIANT *pVarResult,
13847         EXCEPINFO *pExcepInfo,
13848         UINT *puArgErr);
13849 
13850     /*** ISpeechVoice methods ***/
13851     HRESULT (STDMETHODCALLTYPE *get_Status)(
13852         ISpeechVoice* This,
13853         ISpeechVoiceStatus **Status);
13854 
13855     HRESULT (STDMETHODCALLTYPE *get_Voice)(
13856         ISpeechVoice* This,
13857         ISpeechObjectToken **Voice);
13858 
13859     HRESULT (STDMETHODCALLTYPE *putref_Voice)(
13860         ISpeechVoice* This,
13861         ISpeechObjectToken *Voice);
13862 
13863     HRESULT (STDMETHODCALLTYPE *get_AudioOutput)(
13864         ISpeechVoice* This,
13865         ISpeechObjectToken **AudioOutput);
13866 
13867     HRESULT (STDMETHODCALLTYPE *putref_AudioOutput)(
13868         ISpeechVoice* This,
13869         ISpeechObjectToken *AudioOutput);
13870 
13871     HRESULT (STDMETHODCALLTYPE *get_AudioOutputStream)(
13872         ISpeechVoice* This,
13873         ISpeechBaseStream **AudioOutputStream);
13874 
13875     HRESULT (STDMETHODCALLTYPE *putref_AudioOutputStream)(
13876         ISpeechVoice* This,
13877         ISpeechBaseStream *AudioOutputStream);
13878 
13879     HRESULT (STDMETHODCALLTYPE *get_Rate)(
13880         ISpeechVoice* This,
13881         LONG *Rate);
13882 
13883     HRESULT (STDMETHODCALLTYPE *put_Rate)(
13884         ISpeechVoice* This,
13885         LONG Rate);
13886 
13887     HRESULT (STDMETHODCALLTYPE *get_Volume)(
13888         ISpeechVoice* This,
13889         LONG *Volume);
13890 
13891     HRESULT (STDMETHODCALLTYPE *put_Volume)(
13892         ISpeechVoice* This,
13893         LONG Volume);
13894 
13895     HRESULT (STDMETHODCALLTYPE *put_AllowAudioOutputFormatChangesOnNextSet)(
13896         ISpeechVoice* This,
13897         VARIANT_BOOL Allow);
13898 
13899     HRESULT (STDMETHODCALLTYPE *get_AllowAudioOutputFormatChangesOnNextSet)(
13900         ISpeechVoice* This,
13901         VARIANT_BOOL *Allow);
13902 
13903     HRESULT (STDMETHODCALLTYPE *get_EventInterests)(
13904         ISpeechVoice* This,
13905         SpeechVoiceEvents *EventInterestFlags);
13906 
13907     HRESULT (STDMETHODCALLTYPE *put_EventInterests)(
13908         ISpeechVoice* This,
13909         SpeechVoiceEvents EventInterestFlags);
13910 
13911     HRESULT (STDMETHODCALLTYPE *put_Priority)(
13912         ISpeechVoice* This,
13913         SpeechVoicePriority Priority);
13914 
13915     HRESULT (STDMETHODCALLTYPE *get_Priority)(
13916         ISpeechVoice* This,
13917         SpeechVoicePriority *Priority);
13918 
13919     HRESULT (STDMETHODCALLTYPE *put_AlertBoundary)(
13920         ISpeechVoice* This,
13921         SpeechVoiceEvents Boundary);
13922 
13923     HRESULT (STDMETHODCALLTYPE *get_AlertBoundary)(
13924         ISpeechVoice* This,
13925         SpeechVoiceEvents *Boundary);
13926 
13927     HRESULT (STDMETHODCALLTYPE *put_SynchronousSpeakTimeout)(
13928         ISpeechVoice* This,
13929         LONG msTimeout);
13930 
13931     HRESULT (STDMETHODCALLTYPE *get_SynchronousSpeakTimeout)(
13932         ISpeechVoice* This,
13933         LONG *msTimeout);
13934 
13935     HRESULT (STDMETHODCALLTYPE *Speak)(
13936         ISpeechVoice* This,
13937         BSTR Text,
13938         SpeechVoiceSpeakFlags Flags,
13939         LONG *StreamNumber);
13940 
13941     HRESULT (STDMETHODCALLTYPE *SpeakStream)(
13942         ISpeechVoice* This,
13943         ISpeechBaseStream *Stream,
13944         SpeechVoiceSpeakFlags Flags,
13945         LONG *StreamNumber);
13946 
13947     HRESULT (STDMETHODCALLTYPE *Pause)(
13948         ISpeechVoice* This);
13949 
13950     HRESULT (STDMETHODCALLTYPE *Resume)(
13951         ISpeechVoice* This);
13952 
13953     HRESULT (STDMETHODCALLTYPE *Skip)(
13954         ISpeechVoice* This,
13955         const BSTR Type,
13956         LONG NumItems,
13957         LONG *NumSkipped);
13958 
13959     HRESULT (STDMETHODCALLTYPE *GetVoices)(
13960         ISpeechVoice* This,
13961         BSTR RequiredAttributes,
13962         BSTR OptionalAttributes,
13963         ISpeechObjectTokens **ObjectTokens);
13964 
13965     HRESULT (STDMETHODCALLTYPE *GetAudioOutputs)(
13966         ISpeechVoice* This,
13967         BSTR RequiredAttributes,
13968         BSTR OptionalAttributes,
13969         ISpeechObjectTokens **ObjectTokens);
13970 
13971     HRESULT (STDMETHODCALLTYPE *WaitUntilDone)(
13972         ISpeechVoice* This,
13973         LONG msTimeout,
13974         VARIANT_BOOL *Done);
13975 
13976     HRESULT (STDMETHODCALLTYPE *SpeakCompleteEvent)(
13977         ISpeechVoice* This,
13978         LONG *Handle);
13979 
13980     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
13981         ISpeechVoice* This,
13982         const BSTR TypeOfUI,
13983         const VARIANT *ExtraData,
13984         VARIANT_BOOL *Supported);
13985 
13986     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
13987         ISpeechVoice* This,
13988         LONG hWndParent,
13989         BSTR Title,
13990         const BSTR TypeOfUI,
13991         const VARIANT *ExtraData);
13992 
13993     END_INTERFACE
13994 } ISpeechVoiceVtbl;
13995 interface ISpeechVoice {
13996     CONST_VTBL ISpeechVoiceVtbl* lpVtbl;
13997 };
13998 
13999 #ifdef COBJMACROS
14000 #ifndef WIDL_C_INLINE_WRAPPERS
14001 /*** IUnknown methods ***/
14002 #define ISpeechVoice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14003 #define ISpeechVoice_AddRef(This) (This)->lpVtbl->AddRef(This)
14004 #define ISpeechVoice_Release(This) (This)->lpVtbl->Release(This)
14005 /*** IDispatch methods ***/
14006 #define ISpeechVoice_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14007 #define ISpeechVoice_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14008 #define ISpeechVoice_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14009 #define ISpeechVoice_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14010 /*** ISpeechVoice methods ***/
14011 #define ISpeechVoice_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
14012 #define ISpeechVoice_get_Voice(This,Voice) (This)->lpVtbl->get_Voice(This,Voice)
14013 #define ISpeechVoice_putref_Voice(This,Voice) (This)->lpVtbl->putref_Voice(This,Voice)
14014 #define ISpeechVoice_get_AudioOutput(This,AudioOutput) (This)->lpVtbl->get_AudioOutput(This,AudioOutput)
14015 #define ISpeechVoice_putref_AudioOutput(This,AudioOutput) (This)->lpVtbl->putref_AudioOutput(This,AudioOutput)
14016 #define ISpeechVoice_get_AudioOutputStream(This,AudioOutputStream) (This)->lpVtbl->get_AudioOutputStream(This,AudioOutputStream)
14017 #define ISpeechVoice_putref_AudioOutputStream(This,AudioOutputStream) (This)->lpVtbl->putref_AudioOutputStream(This,AudioOutputStream)
14018 #define ISpeechVoice_get_Rate(This,Rate) (This)->lpVtbl->get_Rate(This,Rate)
14019 #define ISpeechVoice_put_Rate(This,Rate) (This)->lpVtbl->put_Rate(This,Rate)
14020 #define ISpeechVoice_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
14021 #define ISpeechVoice_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
14022 #define ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->put_AllowAudioOutputFormatChangesOnNextSet(This,Allow)
14023 #define ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->get_AllowAudioOutputFormatChangesOnNextSet(This,Allow)
14024 #define ISpeechVoice_get_EventInterests(This,EventInterestFlags) (This)->lpVtbl->get_EventInterests(This,EventInterestFlags)
14025 #define ISpeechVoice_put_EventInterests(This,EventInterestFlags) (This)->lpVtbl->put_EventInterests(This,EventInterestFlags)
14026 #define ISpeechVoice_put_Priority(This,Priority) (This)->lpVtbl->put_Priority(This,Priority)
14027 #define ISpeechVoice_get_Priority(This,Priority) (This)->lpVtbl->get_Priority(This,Priority)
14028 #define ISpeechVoice_put_AlertBoundary(This,Boundary) (This)->lpVtbl->put_AlertBoundary(This,Boundary)
14029 #define ISpeechVoice_get_AlertBoundary(This,Boundary) (This)->lpVtbl->get_AlertBoundary(This,Boundary)
14030 #define ISpeechVoice_put_SynchronousSpeakTimeout(This,msTimeout) (This)->lpVtbl->put_SynchronousSpeakTimeout(This,msTimeout)
14031 #define ISpeechVoice_get_SynchronousSpeakTimeout(This,msTimeout) (This)->lpVtbl->get_SynchronousSpeakTimeout(This,msTimeout)
14032 #define ISpeechVoice_Speak(This,Text,Flags,StreamNumber) (This)->lpVtbl->Speak(This,Text,Flags,StreamNumber)
14033 #define ISpeechVoice_SpeakStream(This,Stream,Flags,StreamNumber) (This)->lpVtbl->SpeakStream(This,Stream,Flags,StreamNumber)
14034 #define ISpeechVoice_Pause(This) (This)->lpVtbl->Pause(This)
14035 #define ISpeechVoice_Resume(This) (This)->lpVtbl->Resume(This)
14036 #define ISpeechVoice_Skip(This,Type,NumItems,NumSkipped) (This)->lpVtbl->Skip(This,Type,NumItems,NumSkipped)
14037 #define ISpeechVoice_GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
14038 #define ISpeechVoice_GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
14039 #define ISpeechVoice_WaitUntilDone(This,msTimeout,Done) (This)->lpVtbl->WaitUntilDone(This,msTimeout,Done)
14040 #define ISpeechVoice_SpeakCompleteEvent(This,Handle) (This)->lpVtbl->SpeakCompleteEvent(This,Handle)
14041 #define ISpeechVoice_IsUISupported(This,TypeOfUI,ExtraData,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported)
14042 #define ISpeechVoice_DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData) (This)->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData)
14043 #else
14044 /*** IUnknown methods ***/
14045 static FORCEINLINE HRESULT ISpeechVoice_QueryInterface(ISpeechVoice* This,REFIID riid,void **ppvObject) {
14046     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14047 }
14048 static FORCEINLINE ULONG ISpeechVoice_AddRef(ISpeechVoice* This) {
14049     return This->lpVtbl->AddRef(This);
14050 }
14051 static FORCEINLINE ULONG ISpeechVoice_Release(ISpeechVoice* This) {
14052     return This->lpVtbl->Release(This);
14053 }
14054 /*** IDispatch methods ***/
14055 static FORCEINLINE HRESULT ISpeechVoice_GetTypeInfoCount(ISpeechVoice* This,UINT *pctinfo) {
14056     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14057 }
14058 static FORCEINLINE HRESULT ISpeechVoice_GetTypeInfo(ISpeechVoice* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14059     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14060 }
14061 static FORCEINLINE HRESULT ISpeechVoice_GetIDsOfNames(ISpeechVoice* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14062     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14063 }
14064 static FORCEINLINE HRESULT ISpeechVoice_Invoke(ISpeechVoice* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14065     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14066 }
14067 /*** ISpeechVoice methods ***/
14068 static FORCEINLINE HRESULT ISpeechVoice_get_Status(ISpeechVoice* This,ISpeechVoiceStatus **Status) {
14069     return This->lpVtbl->get_Status(This,Status);
14070 }
14071 static FORCEINLINE HRESULT ISpeechVoice_get_Voice(ISpeechVoice* This,ISpeechObjectToken **Voice) {
14072     return This->lpVtbl->get_Voice(This,Voice);
14073 }
14074 static FORCEINLINE HRESULT ISpeechVoice_putref_Voice(ISpeechVoice* This,ISpeechObjectToken *Voice) {
14075     return This->lpVtbl->putref_Voice(This,Voice);
14076 }
14077 static FORCEINLINE HRESULT ISpeechVoice_get_AudioOutput(ISpeechVoice* This,ISpeechObjectToken **AudioOutput) {
14078     return This->lpVtbl->get_AudioOutput(This,AudioOutput);
14079 }
14080 static FORCEINLINE HRESULT ISpeechVoice_putref_AudioOutput(ISpeechVoice* This,ISpeechObjectToken *AudioOutput) {
14081     return This->lpVtbl->putref_AudioOutput(This,AudioOutput);
14082 }
14083 static FORCEINLINE HRESULT ISpeechVoice_get_AudioOutputStream(ISpeechVoice* This,ISpeechBaseStream **AudioOutputStream) {
14084     return This->lpVtbl->get_AudioOutputStream(This,AudioOutputStream);
14085 }
14086 static FORCEINLINE HRESULT ISpeechVoice_putref_AudioOutputStream(ISpeechVoice* This,ISpeechBaseStream *AudioOutputStream) {
14087     return This->lpVtbl->putref_AudioOutputStream(This,AudioOutputStream);
14088 }
14089 static FORCEINLINE HRESULT ISpeechVoice_get_Rate(ISpeechVoice* This,LONG *Rate) {
14090     return This->lpVtbl->get_Rate(This,Rate);
14091 }
14092 static FORCEINLINE HRESULT ISpeechVoice_put_Rate(ISpeechVoice* This,LONG Rate) {
14093     return This->lpVtbl->put_Rate(This,Rate);
14094 }
14095 static FORCEINLINE HRESULT ISpeechVoice_get_Volume(ISpeechVoice* This,LONG *Volume) {
14096     return This->lpVtbl->get_Volume(This,Volume);
14097 }
14098 static FORCEINLINE HRESULT ISpeechVoice_put_Volume(ISpeechVoice* This,LONG Volume) {
14099     return This->lpVtbl->put_Volume(This,Volume);
14100 }
14101 static FORCEINLINE HRESULT ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet(ISpeechVoice* This,VARIANT_BOOL Allow) {
14102     return This->lpVtbl->put_AllowAudioOutputFormatChangesOnNextSet(This,Allow);
14103 }
14104 static FORCEINLINE HRESULT ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet(ISpeechVoice* This,VARIANT_BOOL *Allow) {
14105     return This->lpVtbl->get_AllowAudioOutputFormatChangesOnNextSet(This,Allow);
14106 }
14107 static FORCEINLINE HRESULT ISpeechVoice_get_EventInterests(ISpeechVoice* This,SpeechVoiceEvents *EventInterestFlags) {
14108     return This->lpVtbl->get_EventInterests(This,EventInterestFlags);
14109 }
14110 static FORCEINLINE HRESULT ISpeechVoice_put_EventInterests(ISpeechVoice* This,SpeechVoiceEvents EventInterestFlags) {
14111     return This->lpVtbl->put_EventInterests(This,EventInterestFlags);
14112 }
14113 static FORCEINLINE HRESULT ISpeechVoice_put_Priority(ISpeechVoice* This,SpeechVoicePriority Priority) {
14114     return This->lpVtbl->put_Priority(This,Priority);
14115 }
14116 static FORCEINLINE HRESULT ISpeechVoice_get_Priority(ISpeechVoice* This,SpeechVoicePriority *Priority) {
14117     return This->lpVtbl->get_Priority(This,Priority);
14118 }
14119 static FORCEINLINE HRESULT ISpeechVoice_put_AlertBoundary(ISpeechVoice* This,SpeechVoiceEvents Boundary) {
14120     return This->lpVtbl->put_AlertBoundary(This,Boundary);
14121 }
14122 static FORCEINLINE HRESULT ISpeechVoice_get_AlertBoundary(ISpeechVoice* This,SpeechVoiceEvents *Boundary) {
14123     return This->lpVtbl->get_AlertBoundary(This,Boundary);
14124 }
14125 static FORCEINLINE HRESULT ISpeechVoice_put_SynchronousSpeakTimeout(ISpeechVoice* This,LONG msTimeout) {
14126     return This->lpVtbl->put_SynchronousSpeakTimeout(This,msTimeout);
14127 }
14128 static FORCEINLINE HRESULT ISpeechVoice_get_SynchronousSpeakTimeout(ISpeechVoice* This,LONG *msTimeout) {
14129     return This->lpVtbl->get_SynchronousSpeakTimeout(This,msTimeout);
14130 }
14131 static FORCEINLINE HRESULT ISpeechVoice_Speak(ISpeechVoice* This,BSTR Text,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
14132     return This->lpVtbl->Speak(This,Text,Flags,StreamNumber);
14133 }
14134 static FORCEINLINE HRESULT ISpeechVoice_SpeakStream(ISpeechVoice* This,ISpeechBaseStream *Stream,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
14135     return This->lpVtbl->SpeakStream(This,Stream,Flags,StreamNumber);
14136 }
14137 static FORCEINLINE HRESULT ISpeechVoice_Pause(ISpeechVoice* This) {
14138     return This->lpVtbl->Pause(This);
14139 }
14140 static FORCEINLINE HRESULT ISpeechVoice_Resume(ISpeechVoice* This) {
14141     return This->lpVtbl->Resume(This);
14142 }
14143 static FORCEINLINE HRESULT ISpeechVoice_Skip(ISpeechVoice* This,const BSTR Type,LONG NumItems,LONG *NumSkipped) {
14144     return This->lpVtbl->Skip(This,Type,NumItems,NumSkipped);
14145 }
14146 static FORCEINLINE HRESULT ISpeechVoice_GetVoices(ISpeechVoice* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
14147     return This->lpVtbl->GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
14148 }
14149 static FORCEINLINE HRESULT ISpeechVoice_GetAudioOutputs(ISpeechVoice* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
14150     return This->lpVtbl->GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
14151 }
14152 static FORCEINLINE HRESULT ISpeechVoice_WaitUntilDone(ISpeechVoice* This,LONG msTimeout,VARIANT_BOOL *Done) {
14153     return This->lpVtbl->WaitUntilDone(This,msTimeout,Done);
14154 }
14155 static FORCEINLINE HRESULT ISpeechVoice_SpeakCompleteEvent(ISpeechVoice* This,LONG *Handle) {
14156     return This->lpVtbl->SpeakCompleteEvent(This,Handle);
14157 }
14158 static FORCEINLINE HRESULT ISpeechVoice_IsUISupported(ISpeechVoice* This,const BSTR TypeOfUI,const VARIANT *ExtraData,VARIANT_BOOL *Supported) {
14159     return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported);
14160 }
14161 static FORCEINLINE HRESULT ISpeechVoice_DisplayUI(ISpeechVoice* This,LONG hWndParent,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData) {
14162     return This->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData);
14163 }
14164 #endif
14165 #endif
14166 
14167 #endif
14168 
14169 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_Status_Proxy(
14170     ISpeechVoice* This,
14171     ISpeechVoiceStatus **Status);
14172 void __RPC_STUB ISpeechVoice_get_Status_Stub(
14173     IRpcStubBuffer* This,
14174     IRpcChannelBuffer* pRpcChannelBuffer,
14175     PRPC_MESSAGE pRpcMessage,
14176     DWORD* pdwStubPhase);
14177 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_Voice_Proxy(
14178     ISpeechVoice* This,
14179     ISpeechObjectToken **Voice);
14180 void __RPC_STUB ISpeechVoice_get_Voice_Stub(
14181     IRpcStubBuffer* This,
14182     IRpcChannelBuffer* pRpcChannelBuffer,
14183     PRPC_MESSAGE pRpcMessage,
14184     DWORD* pdwStubPhase);
14185 HRESULT STDMETHODCALLTYPE ISpeechVoice_putref_Voice_Proxy(
14186     ISpeechVoice* This,
14187     ISpeechObjectToken *Voice);
14188 void __RPC_STUB ISpeechVoice_putref_Voice_Stub(
14189     IRpcStubBuffer* This,
14190     IRpcChannelBuffer* pRpcChannelBuffer,
14191     PRPC_MESSAGE pRpcMessage,
14192     DWORD* pdwStubPhase);
14193 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_AudioOutput_Proxy(
14194     ISpeechVoice* This,
14195     ISpeechObjectToken **AudioOutput);
14196 void __RPC_STUB ISpeechVoice_get_AudioOutput_Stub(
14197     IRpcStubBuffer* This,
14198     IRpcChannelBuffer* pRpcChannelBuffer,
14199     PRPC_MESSAGE pRpcMessage,
14200     DWORD* pdwStubPhase);
14201 HRESULT STDMETHODCALLTYPE ISpeechVoice_putref_AudioOutput_Proxy(
14202     ISpeechVoice* This,
14203     ISpeechObjectToken *AudioOutput);
14204 void __RPC_STUB ISpeechVoice_putref_AudioOutput_Stub(
14205     IRpcStubBuffer* This,
14206     IRpcChannelBuffer* pRpcChannelBuffer,
14207     PRPC_MESSAGE pRpcMessage,
14208     DWORD* pdwStubPhase);
14209 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_AudioOutputStream_Proxy(
14210     ISpeechVoice* This,
14211     ISpeechBaseStream **AudioOutputStream);
14212 void __RPC_STUB ISpeechVoice_get_AudioOutputStream_Stub(
14213     IRpcStubBuffer* This,
14214     IRpcChannelBuffer* pRpcChannelBuffer,
14215     PRPC_MESSAGE pRpcMessage,
14216     DWORD* pdwStubPhase);
14217 HRESULT STDMETHODCALLTYPE ISpeechVoice_putref_AudioOutputStream_Proxy(
14218     ISpeechVoice* This,
14219     ISpeechBaseStream *AudioOutputStream);
14220 void __RPC_STUB ISpeechVoice_putref_AudioOutputStream_Stub(
14221     IRpcStubBuffer* This,
14222     IRpcChannelBuffer* pRpcChannelBuffer,
14223     PRPC_MESSAGE pRpcMessage,
14224     DWORD* pdwStubPhase);
14225 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_Rate_Proxy(
14226     ISpeechVoice* This,
14227     LONG *Rate);
14228 void __RPC_STUB ISpeechVoice_get_Rate_Stub(
14229     IRpcStubBuffer* This,
14230     IRpcChannelBuffer* pRpcChannelBuffer,
14231     PRPC_MESSAGE pRpcMessage,
14232     DWORD* pdwStubPhase);
14233 HRESULT STDMETHODCALLTYPE ISpeechVoice_put_Rate_Proxy(
14234     ISpeechVoice* This,
14235     LONG Rate);
14236 void __RPC_STUB ISpeechVoice_put_Rate_Stub(
14237     IRpcStubBuffer* This,
14238     IRpcChannelBuffer* pRpcChannelBuffer,
14239     PRPC_MESSAGE pRpcMessage,
14240     DWORD* pdwStubPhase);
14241 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_Volume_Proxy(
14242     ISpeechVoice* This,
14243     LONG *Volume);
14244 void __RPC_STUB ISpeechVoice_get_Volume_Stub(
14245     IRpcStubBuffer* This,
14246     IRpcChannelBuffer* pRpcChannelBuffer,
14247     PRPC_MESSAGE pRpcMessage,
14248     DWORD* pdwStubPhase);
14249 HRESULT STDMETHODCALLTYPE ISpeechVoice_put_Volume_Proxy(
14250     ISpeechVoice* This,
14251     LONG Volume);
14252 void __RPC_STUB ISpeechVoice_put_Volume_Stub(
14253     IRpcStubBuffer* This,
14254     IRpcChannelBuffer* pRpcChannelBuffer,
14255     PRPC_MESSAGE pRpcMessage,
14256     DWORD* pdwStubPhase);
14257 HRESULT STDMETHODCALLTYPE ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet_Proxy(
14258     ISpeechVoice* This,
14259     VARIANT_BOOL Allow);
14260 void __RPC_STUB ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet_Stub(
14261     IRpcStubBuffer* This,
14262     IRpcChannelBuffer* pRpcChannelBuffer,
14263     PRPC_MESSAGE pRpcMessage,
14264     DWORD* pdwStubPhase);
14265 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet_Proxy(
14266     ISpeechVoice* This,
14267     VARIANT_BOOL *Allow);
14268 void __RPC_STUB ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet_Stub(
14269     IRpcStubBuffer* This,
14270     IRpcChannelBuffer* pRpcChannelBuffer,
14271     PRPC_MESSAGE pRpcMessage,
14272     DWORD* pdwStubPhase);
14273 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_EventInterests_Proxy(
14274     ISpeechVoice* This,
14275     SpeechVoiceEvents *EventInterestFlags);
14276 void __RPC_STUB ISpeechVoice_get_EventInterests_Stub(
14277     IRpcStubBuffer* This,
14278     IRpcChannelBuffer* pRpcChannelBuffer,
14279     PRPC_MESSAGE pRpcMessage,
14280     DWORD* pdwStubPhase);
14281 HRESULT STDMETHODCALLTYPE ISpeechVoice_put_EventInterests_Proxy(
14282     ISpeechVoice* This,
14283     SpeechVoiceEvents EventInterestFlags);
14284 void __RPC_STUB ISpeechVoice_put_EventInterests_Stub(
14285     IRpcStubBuffer* This,
14286     IRpcChannelBuffer* pRpcChannelBuffer,
14287     PRPC_MESSAGE pRpcMessage,
14288     DWORD* pdwStubPhase);
14289 HRESULT STDMETHODCALLTYPE ISpeechVoice_put_Priority_Proxy(
14290     ISpeechVoice* This,
14291     SpeechVoicePriority Priority);
14292 void __RPC_STUB ISpeechVoice_put_Priority_Stub(
14293     IRpcStubBuffer* This,
14294     IRpcChannelBuffer* pRpcChannelBuffer,
14295     PRPC_MESSAGE pRpcMessage,
14296     DWORD* pdwStubPhase);
14297 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_Priority_Proxy(
14298     ISpeechVoice* This,
14299     SpeechVoicePriority *Priority);
14300 void __RPC_STUB ISpeechVoice_get_Priority_Stub(
14301     IRpcStubBuffer* This,
14302     IRpcChannelBuffer* pRpcChannelBuffer,
14303     PRPC_MESSAGE pRpcMessage,
14304     DWORD* pdwStubPhase);
14305 HRESULT STDMETHODCALLTYPE ISpeechVoice_put_AlertBoundary_Proxy(
14306     ISpeechVoice* This,
14307     SpeechVoiceEvents Boundary);
14308 void __RPC_STUB ISpeechVoice_put_AlertBoundary_Stub(
14309     IRpcStubBuffer* This,
14310     IRpcChannelBuffer* pRpcChannelBuffer,
14311     PRPC_MESSAGE pRpcMessage,
14312     DWORD* pdwStubPhase);
14313 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_AlertBoundary_Proxy(
14314     ISpeechVoice* This,
14315     SpeechVoiceEvents *Boundary);
14316 void __RPC_STUB ISpeechVoice_get_AlertBoundary_Stub(
14317     IRpcStubBuffer* This,
14318     IRpcChannelBuffer* pRpcChannelBuffer,
14319     PRPC_MESSAGE pRpcMessage,
14320     DWORD* pdwStubPhase);
14321 HRESULT STDMETHODCALLTYPE ISpeechVoice_put_SynchronousSpeakTimeout_Proxy(
14322     ISpeechVoice* This,
14323     LONG msTimeout);
14324 void __RPC_STUB ISpeechVoice_put_SynchronousSpeakTimeout_Stub(
14325     IRpcStubBuffer* This,
14326     IRpcChannelBuffer* pRpcChannelBuffer,
14327     PRPC_MESSAGE pRpcMessage,
14328     DWORD* pdwStubPhase);
14329 HRESULT STDMETHODCALLTYPE ISpeechVoice_get_SynchronousSpeakTimeout_Proxy(
14330     ISpeechVoice* This,
14331     LONG *msTimeout);
14332 void __RPC_STUB ISpeechVoice_get_SynchronousSpeakTimeout_Stub(
14333     IRpcStubBuffer* This,
14334     IRpcChannelBuffer* pRpcChannelBuffer,
14335     PRPC_MESSAGE pRpcMessage,
14336     DWORD* pdwStubPhase);
14337 HRESULT STDMETHODCALLTYPE ISpeechVoice_Speak_Proxy(
14338     ISpeechVoice* This,
14339     BSTR Text,
14340     SpeechVoiceSpeakFlags Flags,
14341     LONG *StreamNumber);
14342 void __RPC_STUB ISpeechVoice_Speak_Stub(
14343     IRpcStubBuffer* This,
14344     IRpcChannelBuffer* pRpcChannelBuffer,
14345     PRPC_MESSAGE pRpcMessage,
14346     DWORD* pdwStubPhase);
14347 HRESULT STDMETHODCALLTYPE ISpeechVoice_SpeakStream_Proxy(
14348     ISpeechVoice* This,
14349     ISpeechBaseStream *Stream,
14350     SpeechVoiceSpeakFlags Flags,
14351     LONG *StreamNumber);
14352 void __RPC_STUB ISpeechVoice_SpeakStream_Stub(
14353     IRpcStubBuffer* This,
14354     IRpcChannelBuffer* pRpcChannelBuffer,
14355     PRPC_MESSAGE pRpcMessage,
14356     DWORD* pdwStubPhase);
14357 HRESULT STDMETHODCALLTYPE ISpeechVoice_Pause_Proxy(
14358     ISpeechVoice* This);
14359 void __RPC_STUB ISpeechVoice_Pause_Stub(
14360     IRpcStubBuffer* This,
14361     IRpcChannelBuffer* pRpcChannelBuffer,
14362     PRPC_MESSAGE pRpcMessage,
14363     DWORD* pdwStubPhase);
14364 HRESULT STDMETHODCALLTYPE ISpeechVoice_Resume_Proxy(
14365     ISpeechVoice* This);
14366 void __RPC_STUB ISpeechVoice_Resume_Stub(
14367     IRpcStubBuffer* This,
14368     IRpcChannelBuffer* pRpcChannelBuffer,
14369     PRPC_MESSAGE pRpcMessage,
14370     DWORD* pdwStubPhase);
14371 HRESULT STDMETHODCALLTYPE ISpeechVoice_Skip_Proxy(
14372     ISpeechVoice* This,
14373     const BSTR Type,
14374     LONG NumItems,
14375     LONG *NumSkipped);
14376 void __RPC_STUB ISpeechVoice_Skip_Stub(
14377     IRpcStubBuffer* This,
14378     IRpcChannelBuffer* pRpcChannelBuffer,
14379     PRPC_MESSAGE pRpcMessage,
14380     DWORD* pdwStubPhase);
14381 HRESULT STDMETHODCALLTYPE ISpeechVoice_GetVoices_Proxy(
14382     ISpeechVoice* This,
14383     BSTR RequiredAttributes,
14384     BSTR OptionalAttributes,
14385     ISpeechObjectTokens **ObjectTokens);
14386 void __RPC_STUB ISpeechVoice_GetVoices_Stub(
14387     IRpcStubBuffer* This,
14388     IRpcChannelBuffer* pRpcChannelBuffer,
14389     PRPC_MESSAGE pRpcMessage,
14390     DWORD* pdwStubPhase);
14391 HRESULT STDMETHODCALLTYPE ISpeechVoice_GetAudioOutputs_Proxy(
14392     ISpeechVoice* This,
14393     BSTR RequiredAttributes,
14394     BSTR OptionalAttributes,
14395     ISpeechObjectTokens **ObjectTokens);
14396 void __RPC_STUB ISpeechVoice_GetAudioOutputs_Stub(
14397     IRpcStubBuffer* This,
14398     IRpcChannelBuffer* pRpcChannelBuffer,
14399     PRPC_MESSAGE pRpcMessage,
14400     DWORD* pdwStubPhase);
14401 HRESULT STDMETHODCALLTYPE ISpeechVoice_WaitUntilDone_Proxy(
14402     ISpeechVoice* This,
14403     LONG msTimeout,
14404     VARIANT_BOOL *Done);
14405 void __RPC_STUB ISpeechVoice_WaitUntilDone_Stub(
14406     IRpcStubBuffer* This,
14407     IRpcChannelBuffer* pRpcChannelBuffer,
14408     PRPC_MESSAGE pRpcMessage,
14409     DWORD* pdwStubPhase);
14410 HRESULT STDMETHODCALLTYPE ISpeechVoice_SpeakCompleteEvent_Proxy(
14411     ISpeechVoice* This,
14412     LONG *Handle);
14413 void __RPC_STUB ISpeechVoice_SpeakCompleteEvent_Stub(
14414     IRpcStubBuffer* This,
14415     IRpcChannelBuffer* pRpcChannelBuffer,
14416     PRPC_MESSAGE pRpcMessage,
14417     DWORD* pdwStubPhase);
14418 HRESULT STDMETHODCALLTYPE ISpeechVoice_IsUISupported_Proxy(
14419     ISpeechVoice* This,
14420     const BSTR TypeOfUI,
14421     const VARIANT *ExtraData,
14422     VARIANT_BOOL *Supported);
14423 void __RPC_STUB ISpeechVoice_IsUISupported_Stub(
14424     IRpcStubBuffer* This,
14425     IRpcChannelBuffer* pRpcChannelBuffer,
14426     PRPC_MESSAGE pRpcMessage,
14427     DWORD* pdwStubPhase);
14428 HRESULT STDMETHODCALLTYPE ISpeechVoice_DisplayUI_Proxy(
14429     ISpeechVoice* This,
14430     LONG hWndParent,
14431     BSTR Title,
14432     const BSTR TypeOfUI,
14433     const VARIANT *ExtraData);
14434 void __RPC_STUB ISpeechVoice_DisplayUI_Stub(
14435     IRpcStubBuffer* This,
14436     IRpcChannelBuffer* pRpcChannelBuffer,
14437     PRPC_MESSAGE pRpcMessage,
14438     DWORD* pdwStubPhase);
14439 
14440 #endif  /* __ISpeechVoice_INTERFACE_DEFINED__ */
14441 
14442 /*****************************************************************************
14443  * ISpeechVoiceStatus interface
14444  */
14445 #ifndef __ISpeechVoiceStatus_INTERFACE_DEFINED__
14446 #define __ISpeechVoiceStatus_INTERFACE_DEFINED__
14447 
14448 DEFINE_GUID(IID_ISpeechVoiceStatus, 0x8be47b07, 0x57f6, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96);
14449 #if defined(__cplusplus) && !defined(CINTERFACE)
14450 MIDL_INTERFACE("8be47b07-57f6-11d2-9eee-00c04f797396")
14451 ISpeechVoiceStatus : public IDispatch
14452 {
14453     virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamNumber(
14454         LONG *StreamNumber) = 0;
14455 
14456     virtual HRESULT STDMETHODCALLTYPE get_LastStreamNumberQueued(
14457         LONG *StreamNumber) = 0;
14458 
14459     virtual HRESULT STDMETHODCALLTYPE get_LastHResult(
14460         LONG *HResult) = 0;
14461 
14462     virtual HRESULT STDMETHODCALLTYPE get_RunningState(
14463         SpeechRunState *State) = 0;
14464 
14465     virtual HRESULT STDMETHODCALLTYPE get_InputWordPosition(
14466         LONG *Position) = 0;
14467 
14468     virtual HRESULT STDMETHODCALLTYPE get_InputWordLength(
14469         LONG *Length) = 0;
14470 
14471     virtual HRESULT STDMETHODCALLTYPE get_InputSentencePosition(
14472         LONG *Position) = 0;
14473 
14474     virtual HRESULT STDMETHODCALLTYPE get_InputSentenceLength(
14475         LONG *Length) = 0;
14476 
14477     virtual HRESULT STDMETHODCALLTYPE get_LastBookmark(
14478         BSTR *Bookmark) = 0;
14479 
14480     virtual HRESULT STDMETHODCALLTYPE get_LastBookmarkId(
14481         LONG *BookmarkId) = 0;
14482 
14483     virtual HRESULT STDMETHODCALLTYPE get_PhonemeId(
14484         short *PhoneId) = 0;
14485 
14486     virtual HRESULT STDMETHODCALLTYPE get_VisemeId(
14487         short *VisemeId) = 0;
14488 
14489 };
14490 #ifdef __CRT_UUID_DECL
14491 __CRT_UUID_DECL(ISpeechVoiceStatus, 0x8be47b07, 0x57f6, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96)
14492 #endif
14493 #else
14494 typedef struct ISpeechVoiceStatusVtbl {
14495     BEGIN_INTERFACE
14496 
14497     /*** IUnknown methods ***/
14498     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14499         ISpeechVoiceStatus* This,
14500         REFIID riid,
14501         void **ppvObject);
14502 
14503     ULONG (STDMETHODCALLTYPE *AddRef)(
14504         ISpeechVoiceStatus* This);
14505 
14506     ULONG (STDMETHODCALLTYPE *Release)(
14507         ISpeechVoiceStatus* This);
14508 
14509     /*** IDispatch methods ***/
14510     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
14511         ISpeechVoiceStatus* This,
14512         UINT *pctinfo);
14513 
14514     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
14515         ISpeechVoiceStatus* This,
14516         UINT iTInfo,
14517         LCID lcid,
14518         ITypeInfo **ppTInfo);
14519 
14520     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
14521         ISpeechVoiceStatus* This,
14522         REFIID riid,
14523         LPOLESTR *rgszNames,
14524         UINT cNames,
14525         LCID lcid,
14526         DISPID *rgDispId);
14527 
14528     HRESULT (STDMETHODCALLTYPE *Invoke)(
14529         ISpeechVoiceStatus* This,
14530         DISPID dispIdMember,
14531         REFIID riid,
14532         LCID lcid,
14533         WORD wFlags,
14534         DISPPARAMS *pDispParams,
14535         VARIANT *pVarResult,
14536         EXCEPINFO *pExcepInfo,
14537         UINT *puArgErr);
14538 
14539     /*** ISpeechVoiceStatus methods ***/
14540     HRESULT (STDMETHODCALLTYPE *get_CurrentStreamNumber)(
14541         ISpeechVoiceStatus* This,
14542         LONG *StreamNumber);
14543 
14544     HRESULT (STDMETHODCALLTYPE *get_LastStreamNumberQueued)(
14545         ISpeechVoiceStatus* This,
14546         LONG *StreamNumber);
14547 
14548     HRESULT (STDMETHODCALLTYPE *get_LastHResult)(
14549         ISpeechVoiceStatus* This,
14550         LONG *HResult);
14551 
14552     HRESULT (STDMETHODCALLTYPE *get_RunningState)(
14553         ISpeechVoiceStatus* This,
14554         SpeechRunState *State);
14555 
14556     HRESULT (STDMETHODCALLTYPE *get_InputWordPosition)(
14557         ISpeechVoiceStatus* This,
14558         LONG *Position);
14559 
14560     HRESULT (STDMETHODCALLTYPE *get_InputWordLength)(
14561         ISpeechVoiceStatus* This,
14562         LONG *Length);
14563 
14564     HRESULT (STDMETHODCALLTYPE *get_InputSentencePosition)(
14565         ISpeechVoiceStatus* This,
14566         LONG *Position);
14567 
14568     HRESULT (STDMETHODCALLTYPE *get_InputSentenceLength)(
14569         ISpeechVoiceStatus* This,
14570         LONG *Length);
14571 
14572     HRESULT (STDMETHODCALLTYPE *get_LastBookmark)(
14573         ISpeechVoiceStatus* This,
14574         BSTR *Bookmark);
14575 
14576     HRESULT (STDMETHODCALLTYPE *get_LastBookmarkId)(
14577         ISpeechVoiceStatus* This,
14578         LONG *BookmarkId);
14579 
14580     HRESULT (STDMETHODCALLTYPE *get_PhonemeId)(
14581         ISpeechVoiceStatus* This,
14582         short *PhoneId);
14583 
14584     HRESULT (STDMETHODCALLTYPE *get_VisemeId)(
14585         ISpeechVoiceStatus* This,
14586         short *VisemeId);
14587 
14588     END_INTERFACE
14589 } ISpeechVoiceStatusVtbl;
14590 interface ISpeechVoiceStatus {
14591     CONST_VTBL ISpeechVoiceStatusVtbl* lpVtbl;
14592 };
14593 
14594 #ifdef COBJMACROS
14595 #ifndef WIDL_C_INLINE_WRAPPERS
14596 /*** IUnknown methods ***/
14597 #define ISpeechVoiceStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14598 #define ISpeechVoiceStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
14599 #define ISpeechVoiceStatus_Release(This) (This)->lpVtbl->Release(This)
14600 /*** IDispatch methods ***/
14601 #define ISpeechVoiceStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14602 #define ISpeechVoiceStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14603 #define ISpeechVoiceStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14604 #define ISpeechVoiceStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14605 /*** ISpeechVoiceStatus methods ***/
14606 #define ISpeechVoiceStatus_get_CurrentStreamNumber(This,StreamNumber) (This)->lpVtbl->get_CurrentStreamNumber(This,StreamNumber)
14607 #define ISpeechVoiceStatus_get_LastStreamNumberQueued(This,StreamNumber) (This)->lpVtbl->get_LastStreamNumberQueued(This,StreamNumber)
14608 #define ISpeechVoiceStatus_get_LastHResult(This,HResult) (This)->lpVtbl->get_LastHResult(This,HResult)
14609 #define ISpeechVoiceStatus_get_RunningState(This,State) (This)->lpVtbl->get_RunningState(This,State)
14610 #define ISpeechVoiceStatus_get_InputWordPosition(This,Position) (This)->lpVtbl->get_InputWordPosition(This,Position)
14611 #define ISpeechVoiceStatus_get_InputWordLength(This,Length) (This)->lpVtbl->get_InputWordLength(This,Length)
14612 #define ISpeechVoiceStatus_get_InputSentencePosition(This,Position) (This)->lpVtbl->get_InputSentencePosition(This,Position)
14613 #define ISpeechVoiceStatus_get_InputSentenceLength(This,Length) (This)->lpVtbl->get_InputSentenceLength(This,Length)
14614 #define ISpeechVoiceStatus_get_LastBookmark(This,Bookmark) (This)->lpVtbl->get_LastBookmark(This,Bookmark)
14615 #define ISpeechVoiceStatus_get_LastBookmarkId(This,BookmarkId) (This)->lpVtbl->get_LastBookmarkId(This,BookmarkId)
14616 #define ISpeechVoiceStatus_get_PhonemeId(This,PhoneId) (This)->lpVtbl->get_PhonemeId(This,PhoneId)
14617 #define ISpeechVoiceStatus_get_VisemeId(This,VisemeId) (This)->lpVtbl->get_VisemeId(This,VisemeId)
14618 #else
14619 /*** IUnknown methods ***/
14620 static FORCEINLINE HRESULT ISpeechVoiceStatus_QueryInterface(ISpeechVoiceStatus* This,REFIID riid,void **ppvObject) {
14621     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14622 }
14623 static FORCEINLINE ULONG ISpeechVoiceStatus_AddRef(ISpeechVoiceStatus* This) {
14624     return This->lpVtbl->AddRef(This);
14625 }
14626 static FORCEINLINE ULONG ISpeechVoiceStatus_Release(ISpeechVoiceStatus* This) {
14627     return This->lpVtbl->Release(This);
14628 }
14629 /*** IDispatch methods ***/
14630 static FORCEINLINE HRESULT ISpeechVoiceStatus_GetTypeInfoCount(ISpeechVoiceStatus* This,UINT *pctinfo) {
14631     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14632 }
14633 static FORCEINLINE HRESULT ISpeechVoiceStatus_GetTypeInfo(ISpeechVoiceStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14634     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14635 }
14636 static FORCEINLINE HRESULT ISpeechVoiceStatus_GetIDsOfNames(ISpeechVoiceStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14637     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14638 }
14639 static FORCEINLINE HRESULT ISpeechVoiceStatus_Invoke(ISpeechVoiceStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14640     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14641 }
14642 /*** ISpeechVoiceStatus methods ***/
14643 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_CurrentStreamNumber(ISpeechVoiceStatus* This,LONG *StreamNumber) {
14644     return This->lpVtbl->get_CurrentStreamNumber(This,StreamNumber);
14645 }
14646 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_LastStreamNumberQueued(ISpeechVoiceStatus* This,LONG *StreamNumber) {
14647     return This->lpVtbl->get_LastStreamNumberQueued(This,StreamNumber);
14648 }
14649 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_LastHResult(ISpeechVoiceStatus* This,LONG *HResult) {
14650     return This->lpVtbl->get_LastHResult(This,HResult);
14651 }
14652 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_RunningState(ISpeechVoiceStatus* This,SpeechRunState *State) {
14653     return This->lpVtbl->get_RunningState(This,State);
14654 }
14655 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_InputWordPosition(ISpeechVoiceStatus* This,LONG *Position) {
14656     return This->lpVtbl->get_InputWordPosition(This,Position);
14657 }
14658 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_InputWordLength(ISpeechVoiceStatus* This,LONG *Length) {
14659     return This->lpVtbl->get_InputWordLength(This,Length);
14660 }
14661 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_InputSentencePosition(ISpeechVoiceStatus* This,LONG *Position) {
14662     return This->lpVtbl->get_InputSentencePosition(This,Position);
14663 }
14664 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_InputSentenceLength(ISpeechVoiceStatus* This,LONG *Length) {
14665     return This->lpVtbl->get_InputSentenceLength(This,Length);
14666 }
14667 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_LastBookmark(ISpeechVoiceStatus* This,BSTR *Bookmark) {
14668     return This->lpVtbl->get_LastBookmark(This,Bookmark);
14669 }
14670 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_LastBookmarkId(ISpeechVoiceStatus* This,LONG *BookmarkId) {
14671     return This->lpVtbl->get_LastBookmarkId(This,BookmarkId);
14672 }
14673 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_PhonemeId(ISpeechVoiceStatus* This,short *PhoneId) {
14674     return This->lpVtbl->get_PhonemeId(This,PhoneId);
14675 }
14676 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_VisemeId(ISpeechVoiceStatus* This,short *VisemeId) {
14677     return This->lpVtbl->get_VisemeId(This,VisemeId);
14678 }
14679 #endif
14680 #endif
14681 
14682 #endif
14683 
14684 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_CurrentStreamNumber_Proxy(
14685     ISpeechVoiceStatus* This,
14686     LONG *StreamNumber);
14687 void __RPC_STUB ISpeechVoiceStatus_get_CurrentStreamNumber_Stub(
14688     IRpcStubBuffer* This,
14689     IRpcChannelBuffer* pRpcChannelBuffer,
14690     PRPC_MESSAGE pRpcMessage,
14691     DWORD* pdwStubPhase);
14692 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_LastStreamNumberQueued_Proxy(
14693     ISpeechVoiceStatus* This,
14694     LONG *StreamNumber);
14695 void __RPC_STUB ISpeechVoiceStatus_get_LastStreamNumberQueued_Stub(
14696     IRpcStubBuffer* This,
14697     IRpcChannelBuffer* pRpcChannelBuffer,
14698     PRPC_MESSAGE pRpcMessage,
14699     DWORD* pdwStubPhase);
14700 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_LastHResult_Proxy(
14701     ISpeechVoiceStatus* This,
14702     LONG *HResult);
14703 void __RPC_STUB ISpeechVoiceStatus_get_LastHResult_Stub(
14704     IRpcStubBuffer* This,
14705     IRpcChannelBuffer* pRpcChannelBuffer,
14706     PRPC_MESSAGE pRpcMessage,
14707     DWORD* pdwStubPhase);
14708 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_RunningState_Proxy(
14709     ISpeechVoiceStatus* This,
14710     SpeechRunState *State);
14711 void __RPC_STUB ISpeechVoiceStatus_get_RunningState_Stub(
14712     IRpcStubBuffer* This,
14713     IRpcChannelBuffer* pRpcChannelBuffer,
14714     PRPC_MESSAGE pRpcMessage,
14715     DWORD* pdwStubPhase);
14716 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_InputWordPosition_Proxy(
14717     ISpeechVoiceStatus* This,
14718     LONG *Position);
14719 void __RPC_STUB ISpeechVoiceStatus_get_InputWordPosition_Stub(
14720     IRpcStubBuffer* This,
14721     IRpcChannelBuffer* pRpcChannelBuffer,
14722     PRPC_MESSAGE pRpcMessage,
14723     DWORD* pdwStubPhase);
14724 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_InputWordLength_Proxy(
14725     ISpeechVoiceStatus* This,
14726     LONG *Length);
14727 void __RPC_STUB ISpeechVoiceStatus_get_InputWordLength_Stub(
14728     IRpcStubBuffer* This,
14729     IRpcChannelBuffer* pRpcChannelBuffer,
14730     PRPC_MESSAGE pRpcMessage,
14731     DWORD* pdwStubPhase);
14732 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_InputSentencePosition_Proxy(
14733     ISpeechVoiceStatus* This,
14734     LONG *Position);
14735 void __RPC_STUB ISpeechVoiceStatus_get_InputSentencePosition_Stub(
14736     IRpcStubBuffer* This,
14737     IRpcChannelBuffer* pRpcChannelBuffer,
14738     PRPC_MESSAGE pRpcMessage,
14739     DWORD* pdwStubPhase);
14740 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_InputSentenceLength_Proxy(
14741     ISpeechVoiceStatus* This,
14742     LONG *Length);
14743 void __RPC_STUB ISpeechVoiceStatus_get_InputSentenceLength_Stub(
14744     IRpcStubBuffer* This,
14745     IRpcChannelBuffer* pRpcChannelBuffer,
14746     PRPC_MESSAGE pRpcMessage,
14747     DWORD* pdwStubPhase);
14748 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_LastBookmark_Proxy(
14749     ISpeechVoiceStatus* This,
14750     BSTR *Bookmark);
14751 void __RPC_STUB ISpeechVoiceStatus_get_LastBookmark_Stub(
14752     IRpcStubBuffer* This,
14753     IRpcChannelBuffer* pRpcChannelBuffer,
14754     PRPC_MESSAGE pRpcMessage,
14755     DWORD* pdwStubPhase);
14756 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_LastBookmarkId_Proxy(
14757     ISpeechVoiceStatus* This,
14758     LONG *BookmarkId);
14759 void __RPC_STUB ISpeechVoiceStatus_get_LastBookmarkId_Stub(
14760     IRpcStubBuffer* This,
14761     IRpcChannelBuffer* pRpcChannelBuffer,
14762     PRPC_MESSAGE pRpcMessage,
14763     DWORD* pdwStubPhase);
14764 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_PhonemeId_Proxy(
14765     ISpeechVoiceStatus* This,
14766     short *PhoneId);
14767 void __RPC_STUB ISpeechVoiceStatus_get_PhonemeId_Stub(
14768     IRpcStubBuffer* This,
14769     IRpcChannelBuffer* pRpcChannelBuffer,
14770     PRPC_MESSAGE pRpcMessage,
14771     DWORD* pdwStubPhase);
14772 HRESULT STDMETHODCALLTYPE ISpeechVoiceStatus_get_VisemeId_Proxy(
14773     ISpeechVoiceStatus* This,
14774     short *VisemeId);
14775 void __RPC_STUB ISpeechVoiceStatus_get_VisemeId_Stub(
14776     IRpcStubBuffer* This,
14777     IRpcChannelBuffer* pRpcChannelBuffer,
14778     PRPC_MESSAGE pRpcMessage,
14779     DWORD* pdwStubPhase);
14780 
14781 #endif  /* __ISpeechVoiceStatus_INTERFACE_DEFINED__ */
14782 
14783 typedef enum SpeechVisemeType {
14784     SVP_0 = 0,
14785     SVP_1 = 1,
14786     SVP_2 = 2,
14787     SVP_3 = 3,
14788     SVP_4 = 4,
14789     SVP_5 = 5,
14790     SVP_6 = 6,
14791     SVP_7 = 7,
14792     SVP_8 = 8,
14793     SVP_9 = 9,
14794     SVP_10 = 10,
14795     SVP_11 = 11,
14796     SVP_12 = 12,
14797     SVP_13 = 13,
14798     SVP_14 = 14,
14799     SVP_15 = 15,
14800     SVP_16 = 16,
14801     SVP_17 = 17,
14802     SVP_18 = 18,
14803     SVP_19 = 19,
14804     SVP_20 = 20,
14805     SVP_21 = 21
14806 } SpeechVisemeType;
14807 typedef enum SpeechVisemeFeature {
14808     SVF_None = 0,
14809     SVF_Stressed = SPVFEATURE_STRESSED,
14810     SVF_Emphasis = SPVFEATURE_EMPHASIS
14811 } SpeechVisemeFeature;
14812 typedef enum DISPID_SpeechVoiceEvent {
14813     DISPID_SVEStreamStart = 1,
14814     DISPID_SVEStreamEnd = 2,
14815     DISPID_SVEVoiceChange = 3,
14816     DISPID_SVEBookmark = 4,
14817     DISPID_SVEWord = 5,
14818     DISPID_SVEPhoneme = 6,
14819     DISPID_SVESentenceBoundary = 7,
14820     DISPID_SVEViseme = 8,
14821     DISPID_SVEAudioLevel = 9,
14822     DISPID_SVEEnginePrivate = 10
14823 } DISPID_SpeechVoiceEvent;
14824 typedef enum DISPID_SpeechRecognizer {
14825     DISPID_SRRecognizer = 1,
14826     DISPID_SRAllowAudioInputFormatChangesOnNextSet = 2,
14827     DISPID_SRAudioInput = 3,
14828     DISPID_SRAudioInputStream = 4,
14829     DISPID_SRIsShared = 5,
14830     DISPID_SRState = 6,
14831     DISPID_SRStatus = 7,
14832     DISPID_SRProfile = 8,
14833     DISPID_SREmulateRecognition = 9,
14834     DISPID_SRCreateRecoContext = 10,
14835     DISPID_SRGetFormat = 11,
14836     DISPID_SRSetPropertyNumber = 12,
14837     DISPID_SRGetPropertyNumber = 13,
14838     DISPID_SRSetPropertyString = 14,
14839     DISPID_SRGetPropertyString = 15,
14840     DISPID_SRIsUISupported = 16,
14841     DISPID_SRDisplayUI = 17,
14842     DISPID_SRGetRecognizers = 18,
14843     DISPID_SVGetAudioInputs = 19,
14844     DISPID_SVGetProfiles = 20
14845 } DISPID_SpeechRecognizer;
14846 typedef enum SpeechRecognizerState {
14847     SRSInactive = SPRST_INACTIVE,
14848     SRSActive = SPRST_ACTIVE,
14849     SRSActiveAlways = SPRST_ACTIVE_ALWAYS,
14850     SRSInactiveWithPurge = SPRST_INACTIVE_WITH_PURGE
14851 } SpeechRecognizerState;
14852 typedef enum SpeechDisplayAttributes {
14853     SDA_No_Trailing_Space = 0,
14854     SDA_One_Trailing_Space = SPAF_ONE_TRAILING_SPACE,
14855     SDA_Two_Trailing_Spaces = SPAF_TWO_TRAILING_SPACES,
14856     SDA_Consume_Leading_Spaces = SPAF_CONSUME_LEADING_SPACES
14857 } SpeechDisplayAttributes;
14858 typedef enum SpeechFormatType {
14859     SFTInput = SPWF_INPUT,
14860     SFTSREngine = SPWF_SRENGINE
14861 } SpeechFormatType;
14862 typedef enum DISPID_SpeechRecognizerStatus {
14863     DISPID_SRSAudioStatus = 1,
14864     DISPID_SRSCurrentStreamPosition = 2,
14865     DISPID_SRSCurrentStreamNumber = 3,
14866     DISPID_SRSNumberOfActiveRules = 4,
14867     DISPID_SRSClsidEngine = 5,
14868     DISPID_SRSSupportedLanguages = 6
14869 } DISPID_SpeechRecognizerStatus;
14870 typedef enum DISPID_SpeechRecoContext {
14871     DISPID_SRCRecognizer = 1,
14872     DISPID_SRCAudioInInterferenceStatus = 2,
14873     DISPID_SRCRequestedUIType = 3,
14874     DISPID_SRCVoice = 4,
14875     DISPID_SRAllowVoiceFormatMatchingOnNextSet = 5,
14876     DISPID_SRCVoicePurgeEvent = 6,
14877     DISPID_SRCEventInterests = 7,
14878     DISPID_SRCCmdMaxAlternates = 8,
14879     DISPID_SRCState = 9,
14880     DISPID_SRCRetainedAudio = 10,
14881     DISPID_SRCRetainedAudioFormat = 11,
14882     DISPID_SRCPause = 12,
14883     DISPID_SRCResume = 13,
14884     DISPID_SRCCreateGrammar = 14,
14885     DISPID_SRCCreateResultFromMemory = 15,
14886     DISPID_SRCBookmark = 16,
14887     DISPID_SRCSetAdaptationData = 17
14888 } DISPID_SpeechRecoContext;
14889 typedef enum SpeechRetainedAudioOptions {
14890     SRAONone = SPAO_NONE,
14891     SRAORetainAudio = SPAO_RETAIN_AUDIO
14892 } SpeechRetainedAudioOptions;
14893 typedef enum SpeechBookmarkOptions {
14894     SBONone = SPBO_NONE,
14895     SBOPause = SPBO_PAUSE
14896 } SpeechBookmarkOptions;
14897 typedef enum SpeechInterference {
14898     SINone = SPINTERFERENCE_NONE,
14899     SINoise = SPINTERFERENCE_NOISE,
14900     SINoSignal = SPINTERFERENCE_NOSIGNAL,
14901     SITooLoud = SPINTERFERENCE_TOOLOUD,
14902     SITooQuiet = SPINTERFERENCE_TOOQUIET,
14903     SITooFast = SPINTERFERENCE_TOOFAST,
14904     SITooSlow = SPINTERFERENCE_TOOSLOW
14905 } SpeechInterference;
14906 typedef enum SpeechRecoEvents {
14907     SREStreamEnd = 0x1,
14908     SRESoundStart = 0x2,
14909     SRESoundEnd = 0x4,
14910     SREPhraseStart = 0x8,
14911     SRERecognition = 0x10,
14912     SREHypothesis = 0x20,
14913     SREBookmark = 0x40,
14914     SREPropertyNumChange = 0x80,
14915     SREPropertyStringChange = 0x100,
14916     SREFalseRecognition = 0x200,
14917     SREInterference = 0x400,
14918     SRERequestUI = 0x800,
14919     SREStateChange = 0x1000,
14920     SREAdaptation = 0x2000,
14921     SREStreamStart = 0x4000,
14922     SRERecoOtherContext = 0x8000,
14923     SREAudioLevel = 0x10000,
14924     SREPrivate = 0x40000,
14925     SREAllEvents = 0x5ffff
14926 } SpeechRecoEvents;
14927 typedef enum SpeechRecoContextState {
14928     SRCS_Disabled = SPCS_DISABLED,
14929     SRCS_Enabled = SPCS_ENABLED
14930 } SpeechRecoContextState;
14931 typedef enum DISPIDSPRG {
14932     DISPID_SRGId = 1,
14933     DISPID_SRGRecoContext = 2,
14934     DISPID_SRGState = 3,
14935     DISPID_SRGRules = 4,
14936     DISPID_SRGReset = 5,
14937     DISPID_SRGCommit = 6,
14938     DISPID_SRGCmdLoadFromFile = 7,
14939     DISPID_SRGCmdLoadFromObject = 8,
14940     DISPID_SRGCmdLoadFromResource = 9,
14941     DISPID_SRGCmdLoadFromMemory = 10,
14942     DISPID_SRGCmdLoadFromProprietaryGrammar = 11,
14943     DISPID_SRGCmdSetRuleState = 12,
14944     DISPID_SRGCmdSetRuleIdState = 13,
14945     DISPID_SRGDictationLoad = 14,
14946     DISPID_SRGDictationUnload = 15,
14947     DISPID_SRGDictationSetState = 16,
14948     DISPID_SRGSetWordSequenceData = 17,
14949     DISPID_SRGSetTextSelection = 18,
14950     DISPID_SRGIsPronounceable = 19
14951 } DISPIDSPRG;
14952 typedef enum SpeechLoadOption {
14953     SLOStatic = SPLO_STATIC,
14954     SLODynamic = SPLO_DYNAMIC
14955 } SpeechLoadOption;
14956 typedef enum SpeechWordPronounceable {
14957     SWPUnknownWordUnpronounceable = SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE,
14958     SWPUnknownWordPronounceable = SPWP_UNKNOWN_WORD_PRONOUNCEABLE,
14959     SWPKnownWordPronounceable = SPWP_KNOWN_WORD_PRONOUNCEABLE
14960 } SpeechWordPronounceable;
14961 typedef enum SpeechGrammarState {
14962     SGSEnabled = SPGS_ENABLED,
14963     SGSDisabled = SPGS_DISABLED,
14964     SGSExclusive = SPGS_EXCLUSIVE
14965 } SpeechGrammarState;
14966 typedef enum SpeechRuleState {
14967     SGDSInactive = SPRS_INACTIVE,
14968     SGDSActive = SPRS_ACTIVE,
14969     SGDSActiveWithAutoPause = SPRS_ACTIVE_WITH_AUTO_PAUSE
14970 } SpeechRuleState;
14971 typedef enum SpeechRuleAttributes {
14972     SRATopLevel = SPRAF_TopLevel,
14973     SRADefaultToActive = SPRAF_Active,
14974     SRAExport = SPRAF_Export,
14975     SRAImport = SPRAF_Import,
14976     SRAInterpreter = SPRAF_Interpreter,
14977     SRADynamic = SPRAF_Dynamic
14978 } SpeechRuleAttributes;
14979 typedef enum SpeechGrammarWordType {
14980     SGDisplay = SPWT_DISPLAY,
14981     SGLexical = SPWT_LEXICAL,
14982     SGPronounciation = SPWT_PRONUNCIATION
14983 } SpeechGrammarWordType;
14984 typedef enum DISPID_SpeechRecoContextEvents {
14985     DISPID_SRCEStartStream = 1,
14986     DISPID_SRCEEndStream = 2,
14987     DISPID_SRCEBookmark = 3,
14988     DISPID_SRCESoundStart = 4,
14989     DISPID_SRCESoundEnd = 5,
14990     DISPID_SRCEPhraseStart = 6,
14991     DISPID_SRCERecognition = 7,
14992     DISPID_SRCEHypothesis = 8,
14993     DISPID_SRCEPropertyNumberChange = 9,
14994     DISPID_SRCEPropertyStringChange = 10,
14995     DISPID_SRCEFalseRecognition = 11,
14996     DISPID_SRCEInterference = 12,
14997     DISPID_SRCERequestUI = 13,
14998     DISPID_SRCERecognizerStateChange = 14,
14999     DISPID_SRCEAdaptation = 15,
15000     DISPID_SRCERecognitionForOtherContext = 16,
15001     DISPID_SRCEAudioLevel = 17,
15002     DISPID_SRCEEnginePrivate = 18
15003 } DISPID_SpeechRecoContextEvents;
15004 typedef enum SpeechRecognitionType {
15005     SRTStandard = 0,
15006     SRTAutopause = SPREF_AutoPause,
15007     SRTEmulated = SPREF_Emulated
15008 } SpeechRecognitionType;
15009 typedef enum DISPID_SpeechGrammarRule {
15010     DISPID_SGRAttributes = 1,
15011     DISPID_SGRInitialState = 2,
15012     DISPID_SGRName = 3,
15013     DISPID_SGRId = 4,
15014     DISPID_SGRClear = 5,
15015     DISPID_SGRAddResource = 6,
15016     DISPID_SGRAddState = 7
15017 } DISPID_SpeechGrammarRule;
15018 typedef enum DISPID_SpeechGrammarRules {
15019     DISPID_SGRsCount = 1,
15020     DISPID_SGRsDynamic = 2,
15021     DISPID_SGRsAdd = 3,
15022     DISPID_SGRsCommit = 4,
15023     DISPID_SGRsCommitAndSave = 5,
15024     DISPID_SGRsFindRule = 6,
15025     DISPID_SGRsItem = DISPID_VALUE,
15026     DISPID_SGRs_NewEnum = DISPID_NEWENUM
15027 } DISPID_SpeechGrammarRules;
15028 typedef enum DISPID_SpeechGrammarRuleState {
15029     DISPID_SGRSRule = 1,
15030     DISPID_SGRSTransitions = 2,
15031     DISPID_SGRSAddWordTransition = 3,
15032     DISPID_SGRSAddRuleTransition = 4,
15033     DISPID_SGRSAddSpecialTransition = 5
15034 } DISPID_SpeechGrammarRuleState;
15035 typedef enum SpeechSpecialTransitionType {
15036     SSTTWildcard = 1,
15037     SSTTDictation = 2,
15038     SSTTTextBuffer = 3
15039 } SpeechSpecialTransitionType;
15040 typedef enum DISPID_SpeechGrammarRuleStateTransitions {
15041     DISPID_SGRSTsCount = 1,
15042     DISPID_SGRSTsItem = DISPID_VALUE,
15043     DISPID_SGRSTs_NewEnum = DISPID_NEWENUM
15044 } DISPID_SpeechGrammarRuleStateTransitions;
15045 typedef enum DISPID_SpeechGrammarRuleStateTransition {
15046     DISPID_SGRSTType = 1,
15047     DISPID_SGRSTText = 2,
15048     DISPID_SGRSTRule = 3,
15049     DISPID_SGRSTWeight = 4,
15050     DISPID_SGRSTPropertyName = 5,
15051     DISPID_SGRSTPropertyId = 6,
15052     DISPID_SGRSTPropertyValue = 7,
15053     DISPID_SGRSTNextState = 8
15054 } DISPID_SpeechGrammarRuleStateTransition;
15055 typedef enum SpeechGrammarRuleStateTransitionType {
15056     SGRSTTEpsilon = 0,
15057     SGRSTTWord = 1,
15058     SGRSTTRule = 2,
15059     SGRSTTDictation = 3,
15060     SGRSTTWildcard = 4,
15061     SGRSTTTextBuffer = 5
15062 } SpeechGrammarRuleStateTransitionType;
15063 typedef enum DISPIDSPTSI {
15064     DISPIDSPTSI_ActiveOffset = 1,
15065     DISPIDSPTSI_ActiveLength = 2,
15066     DISPIDSPTSI_SelectionOffset = 3,
15067     DISPIDSPTSI_SelectionLength = 4
15068 } DISPIDSPTSI;
15069 typedef enum DISPID_SpeechRecoResult {
15070     DISPID_SRRRecoContext = 1,
15071     DISPID_SRRTimes = 2,
15072     DISPID_SRRAudioFormat = 3,
15073     DISPID_SRRPhraseInfo = 4,
15074     DISPID_SRRAlternates = 5,
15075     DISPID_SRRAudio = 6,
15076     DISPID_SRRSpeakAudio = 7,
15077     DISPID_SRRSaveToMemory = 8,
15078     DISPID_SRRDiscardResultInfo = 9
15079 } DISPID_SpeechRecoResult;
15080 typedef enum SpeechDiscardType {
15081     SDTProperty = SPDF_PROPERTY,
15082     SDTReplacement = SPDF_REPLACEMENT,
15083     SDTRule = SPDF_RULE,
15084     SDTDisplayText = SPDF_DISPLAYTEXT,
15085     SDTLexicalForm = SPDF_LEXICALFORM,
15086     SDTPronunciation = SPDF_PRONUNCIATION,
15087     SDTAudio = SPDF_AUDIO,
15088     SDTAlternates = SPDF_ALTERNATES,
15089     SDTAll = SPDF_ALL
15090 } SpeechDiscardType;
15091 typedef enum DISPID_SpeechPhraseBuilder {
15092     DISPID_SPPBRestorePhraseFromMemory = 1
15093 } DISPID_SpeechPhraseBuilder;
15094 typedef enum DISPID_SpeechRecoResultTimes {
15095     DISPID_SRRTStreamTime = 1,
15096     DISPID_SRRTLength = 2,
15097     DISPID_SRRTTickCount = 3,
15098     DISPID_SRRTOffsetFromStart = 4
15099 } DISPID_SpeechRecoResultTimes;
15100 typedef enum DISPID_SpeechPhraseAlternate {
15101     DISPID_SPARecoResult = 1,
15102     DISPID_SPAStartElementInResult = 2,
15103     DISPID_SPANumberOfElementsInResult = 3,
15104     DISPID_SPAPhraseInfo = 4,
15105     DISPID_SPACommit = 5
15106 } DISPID_SpeechPhraseAlternate;
15107 typedef enum DISPID_SpeechPhraseAlternates {
15108     DISPID_SPAsCount = 1,
15109     DISPID_SPAsItem = DISPID_VALUE,
15110     DISPID_SPAs_NewEnum = DISPID_NEWENUM
15111 } DISPID_SpeechPhraseAlternates;
15112 typedef enum DISPID_SpeechPhraseInfo {
15113     DISPID_SPILanguageId = 1,
15114     DISPID_SPIGrammarId = 2,
15115     DISPID_SPIStartTime = 3,
15116     DISPID_SPIAudioStreamPosition = 4,
15117     DISPID_SPIAudioSizeBytes = 5,
15118     DISPID_SPIRetainedSizeBytes = 6,
15119     DISPID_SPIAudioSizeTime = 7,
15120     DISPID_SPIRule = 8,
15121     DISPID_SPIProperties = 9,
15122     DISPID_SPIElements = 10,
15123     DISPID_SPIReplacements = 11,
15124     DISPID_SPIEngineId = 12,
15125     DISPID_SPIEnginePrivateData = 13,
15126     DISPID_SPISaveToMemory = 14,
15127     DISPID_SPIGetText = 15,
15128     DISPID_SPIGetDisplayAttributes = 16
15129 } DISPID_SpeechPhraseInfo;
15130 typedef enum DISPID_SpeechPhraseElement {
15131     DISPID_SPEAudioTimeOffset = 1,
15132     DISPID_SPEAudioSizeTime = 2,
15133     DISPID_SPEAudioStreamOffset = 3,
15134     DISPID_SPEAudioSizeBytes = 4,
15135     DISPID_SPERetainedStreamOffset = 5,
15136     DISPID_SPERetainedSizeBytes = 6,
15137     DISPID_SPEDisplayText = 7,
15138     DISPID_SPELexicalForm = 8,
15139     DISPID_SPEPronunciation = 9,
15140     DISPID_SPEDisplayAttributes = 10,
15141     DISPID_SPERequiredConfidence = 11,
15142     DISPID_SPEActualConfidence = 12,
15143     DISPID_SPEEngineConfidence = 13
15144 } DISPID_SpeechPhraseElement;
15145 typedef enum SpeechEngineConfidence {
15146     SECLowConfidence = -1,
15147     SECNormalConfidence = 0,
15148     SECHighConfidence = 1
15149 } SpeechEngineConfidence;
15150 typedef enum DISPID_SpeechPhraseElements {
15151     DISPID_SPEsCount = 1,
15152     DISPID_SPEsItem = DISPID_VALUE,
15153     DISPID_SPEs_NewEnum = DISPID_NEWENUM
15154 } DISPID_SpeechPhraseElements;
15155 typedef enum DISPID_SpeechPhraseReplacement {
15156     DISPID_SPRDisplayAttributes = 1,
15157     DISPID_SPRText = 2,
15158     DISPID_SPRFirstElement = 3,
15159     DISPID_SPRNumberOfElements = 4
15160 } DISPID_SpeechPhraseReplacement;
15161 typedef enum DISPID_SpeechPhraseReplacements {
15162     DISPID_SPRsCount = 1,
15163     DISPID_SPRsItem = DISPID_VALUE,
15164     DISPID_SPRs_NewEnum = DISPID_NEWENUM
15165 } DISPID_SpeechPhraseReplacements;
15166 typedef enum DISPID_SpeechPhraseProperty {
15167     DISPID_SPPName = 1,
15168     DISPID_SPPId = 2,
15169     DISPID_SPPValue = 3,
15170     DISPID_SPPFirstElement = 4,
15171     DISPID_SPPNumberOfElements = 5,
15172     DISPID_SPPEngineConfidence = 6,
15173     DISPID_SPPConfidence = 7,
15174     DISPID_SPPParent = 8,
15175     DISPID_SPPChildren = 9
15176 } DISPID_SpeechPhraseProperty;
15177 typedef enum DISPID_SpeechPhraseProperties {
15178     DISPID_SPPsCount = 1,
15179     DISPID_SPPsItem = DISPID_VALUE,
15180     DISPID_SPPs_NewEnum = DISPID_NEWENUM
15181 } DISPID_SpeechPhraseProperties;
15182 typedef enum DISPID_SpeechPhraseRule {
15183     DISPID_SPRuleName = 1,
15184     DISPID_SPRuleId = 2,
15185     DISPID_SPRuleFirstElement = 3,
15186     DISPID_SPRuleNumberOfElements = 4,
15187     DISPID_SPRuleParent = 5,
15188     DISPID_SPRuleChildren = 6,
15189     DISPID_SPRuleConfidence = 7,
15190     DISPID_SPRuleEngineConfidence = 8
15191 } DISPID_SpeechPhraseRule;
15192 typedef enum DISPID_SpeechPhraseRules {
15193     DISPID_SPRulesCount = 1,
15194     DISPID_SPRulesItem = DISPID_VALUE,
15195     DISPID_SPRules_NewEnum = DISPID_NEWENUM
15196 } DISPID_SpeechPhraseRules;
15197 typedef enum DISPID_SpeechLexicon {
15198     DISPID_SLGenerationId = 1,
15199     DISPID_SLGetWords = 2,
15200     DISPID_SLAddPronunciation = 3,
15201     DISPID_SLAddPronunciationByPhoneIds = 4,
15202     DISPID_SLRemovePronunciation = 5,
15203     DISPID_SLRemovePronunciationByPhoneIds = 6,
15204     DISPID_SLGetPronunciations = 7,
15205     DISPID_SLGetGenerationChange = 8
15206 } DISPID_SpeechLexicon;
15207 typedef enum SpeechLexiconType {
15208     SLTUser = eLEXTYPE_USER,
15209     SLTApp = eLEXTYPE_APP
15210 } SpeechLexiconType;
15211 typedef enum SpeechPartOfSpeech {
15212     SPSNotOverriden = SPPS_NotOverriden,
15213     SPSUnknown = SPPS_Unknown,
15214     SPSNoun = SPPS_Noun,
15215     SPSVerb = SPPS_Verb,
15216     SPSModifier = SPPS_Modifier,
15217     SPSFunction = SPPS_Function,
15218     SPSInterjection = SPPS_Interjection
15219 } SpeechPartOfSpeech;
15220 typedef enum DISPID_SpeechLexiconWords {
15221     DISPID_SLWsCount = 1,
15222     DISPID_SLWsItem = DISPID_VALUE,
15223     DISPID_SLWs_NewEnum = DISPID_NEWENUM
15224 } DISPID_SpeechLexiconWords;
15225 typedef enum SpeechWordType {
15226     SWTAdded = eWORDTYPE_ADDED,
15227     SWTDeleted = eWORDTYPE_DELETED
15228 } SpeechWordType;
15229 typedef enum DISPID_SpeechLexiconWord {
15230     DISPID_SLWLangId = 1,
15231     DISPID_SLWType = 2,
15232     DISPID_SLWWord = 3,
15233     DISPID_SLWPronunciations = 4
15234 } DISPID_SpeechLexiconWord;
15235 typedef enum DISPID_SpeechLexiconProns {
15236     DISPID_SLPsCount = 1,
15237     DISPID_SLPsItem = DISPID_VALUE,
15238     DISPID_SLPs_NewEnum = DISPID_NEWENUM
15239 } DISPID_SpeechLexiconProns;
15240 typedef enum DISPID_SpeechLexiconPronunciation {
15241     DISPID_SLPType = 1,
15242     DISPID_SLPLangId = 2,
15243     DISPID_SLPPartOfSpeech = 3,
15244     DISPID_SLPPhoneIds = 4,
15245     DISPID_SLPSymbolic = 5
15246 } DISPID_SpeechLexiconPronunciation;
15247 typedef enum DISPID_SpeechPhoneConverter {
15248     DISPID_SPCLangId = 1,
15249     DISPID_SPCPhoneToId = 2,
15250     DISPID_SPCIdToPhone = 3
15251 } DISPID_SpeechPhoneConverter;
15252 /*****************************************************************************
15253  * _ISpeechVoiceEvents dispinterface
15254  */
15255 #ifndef ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__
15256 #define ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__
15257 
15258 DEFINE_GUID(DIID__ISpeechVoiceEvents, 0xa372acd1, 0x3bef, 0x4bbd, 0x8f,0xfb, 0xcb,0x3e,0x2b,0x41,0x6a,0xf8);
15259 #if defined(__cplusplus) && !defined(CINTERFACE)
15260 MIDL_INTERFACE("a372acd1-3bef-4bbd-8ffb-cb3e2b416af8")
15261 _ISpeechVoiceEvents : public IDispatch
15262 {
15263 };
15264 #ifdef __CRT_UUID_DECL
15265 __CRT_UUID_DECL(_ISpeechVoiceEvents, 0xa372acd1, 0x3bef, 0x4bbd, 0x8f,0xfb, 0xcb,0x3e,0x2b,0x41,0x6a,0xf8)
15266 #endif
15267 #else
15268 typedef struct _ISpeechVoiceEventsVtbl {
15269     BEGIN_INTERFACE
15270 
15271     /*** IUnknown methods ***/
15272     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15273         _ISpeechVoiceEvents* This,
15274         REFIID riid,
15275         void **ppvObject);
15276 
15277     ULONG (STDMETHODCALLTYPE *AddRef)(
15278         _ISpeechVoiceEvents* This);
15279 
15280     ULONG (STDMETHODCALLTYPE *Release)(
15281         _ISpeechVoiceEvents* This);
15282 
15283     /*** IDispatch methods ***/
15284     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15285         _ISpeechVoiceEvents* This,
15286         UINT *pctinfo);
15287 
15288     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15289         _ISpeechVoiceEvents* This,
15290         UINT iTInfo,
15291         LCID lcid,
15292         ITypeInfo **ppTInfo);
15293 
15294     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15295         _ISpeechVoiceEvents* This,
15296         REFIID riid,
15297         LPOLESTR *rgszNames,
15298         UINT cNames,
15299         LCID lcid,
15300         DISPID *rgDispId);
15301 
15302     HRESULT (STDMETHODCALLTYPE *Invoke)(
15303         _ISpeechVoiceEvents* This,
15304         DISPID dispIdMember,
15305         REFIID riid,
15306         LCID lcid,
15307         WORD wFlags,
15308         DISPPARAMS *pDispParams,
15309         VARIANT *pVarResult,
15310         EXCEPINFO *pExcepInfo,
15311         UINT *puArgErr);
15312 
15313     END_INTERFACE
15314 } _ISpeechVoiceEventsVtbl;
15315 interface _ISpeechVoiceEvents {
15316     CONST_VTBL _ISpeechVoiceEventsVtbl* lpVtbl;
15317 };
15318 
15319 #ifdef COBJMACROS
15320 #ifndef WIDL_C_INLINE_WRAPPERS
15321 /*** IUnknown methods ***/
15322 #define _ISpeechVoiceEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15323 #define _ISpeechVoiceEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
15324 #define _ISpeechVoiceEvents_Release(This) (This)->lpVtbl->Release(This)
15325 /*** IDispatch methods ***/
15326 #define _ISpeechVoiceEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
15327 #define _ISpeechVoiceEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
15328 #define _ISpeechVoiceEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
15329 #define _ISpeechVoiceEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
15330 #else
15331 /*** IUnknown methods ***/
15332 static FORCEINLINE HRESULT _ISpeechVoiceEvents_QueryInterface(_ISpeechVoiceEvents* This,REFIID riid,void **ppvObject) {
15333     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15334 }
15335 static FORCEINLINE ULONG _ISpeechVoiceEvents_AddRef(_ISpeechVoiceEvents* This) {
15336     return This->lpVtbl->AddRef(This);
15337 }
15338 static FORCEINLINE ULONG _ISpeechVoiceEvents_Release(_ISpeechVoiceEvents* This) {
15339     return This->lpVtbl->Release(This);
15340 }
15341 /*** IDispatch methods ***/
15342 static FORCEINLINE HRESULT _ISpeechVoiceEvents_GetTypeInfoCount(_ISpeechVoiceEvents* This,UINT *pctinfo) {
15343     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
15344 }
15345 static FORCEINLINE HRESULT _ISpeechVoiceEvents_GetTypeInfo(_ISpeechVoiceEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
15346     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
15347 }
15348 static FORCEINLINE HRESULT _ISpeechVoiceEvents_GetIDsOfNames(_ISpeechVoiceEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
15349     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
15350 }
15351 static FORCEINLINE HRESULT _ISpeechVoiceEvents_Invoke(_ISpeechVoiceEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
15352     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
15353 }
15354 #endif
15355 #endif
15356 
15357 #endif
15358 
15359 #endif  /* ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__ */
15360 
15361 /*****************************************************************************
15362  * ISpeechRecognizer interface
15363  */
15364 #ifndef __ISpeechRecognizer_INTERFACE_DEFINED__
15365 #define __ISpeechRecognizer_INTERFACE_DEFINED__
15366 
15367 DEFINE_GUID(IID_ISpeechRecognizer, 0x2d5f1c0c, 0xbd75, 0x4b08, 0x94,0x78, 0x3b,0x11,0xfe,0xa2,0x58,0x6c);
15368 #if defined(__cplusplus) && !defined(CINTERFACE)
15369 MIDL_INTERFACE("2d5f1c0c-bd75-4b08-9478-3b11fea2586c")
15370 ISpeechRecognizer : public IDispatch
15371 {
15372     virtual HRESULT STDMETHODCALLTYPE putref_Recognizer(
15373         ISpeechObjectToken *Recognizer) = 0;
15374 
15375     virtual HRESULT STDMETHODCALLTYPE get_Recognizer(
15376         ISpeechObjectToken **Recognizer) = 0;
15377 
15378     virtual HRESULT STDMETHODCALLTYPE put_AllowAudioInputFormatChangesOnNextSet(
15379         VARIANT_BOOL Allow) = 0;
15380 
15381     virtual HRESULT STDMETHODCALLTYPE get_AllowAudioInputFormatChangesOnNextSet(
15382         VARIANT_BOOL *Allow) = 0;
15383 
15384     virtual HRESULT STDMETHODCALLTYPE putref_AudioInput(
15385         ISpeechObjectToken *AudioInput = 0) = 0;
15386 
15387     virtual HRESULT STDMETHODCALLTYPE get_AudioInput(
15388         ISpeechObjectToken **AudioInput) = 0;
15389 
15390     virtual HRESULT STDMETHODCALLTYPE putref_AudioInputStream(
15391         ISpeechBaseStream *AudioInputStream = 0) = 0;
15392 
15393     virtual HRESULT STDMETHODCALLTYPE get_AudioInputStream(
15394         ISpeechBaseStream **AudioInputStream) = 0;
15395 
15396     virtual HRESULT STDMETHODCALLTYPE get_IsShared(
15397         VARIANT_BOOL *Shared) = 0;
15398 
15399     virtual HRESULT STDMETHODCALLTYPE put_State(
15400         SpeechRecognizerState State) = 0;
15401 
15402     virtual HRESULT STDMETHODCALLTYPE get_State(
15403         SpeechRecognizerState *State) = 0;
15404 
15405     virtual HRESULT STDMETHODCALLTYPE get_Status(
15406         ISpeechRecognizerStatus **Status) = 0;
15407 
15408     virtual HRESULT STDMETHODCALLTYPE putref_Profile(
15409         ISpeechObjectToken *Profile = 0) = 0;
15410 
15411     virtual HRESULT STDMETHODCALLTYPE get_Profile(
15412         ISpeechObjectToken **Profile) = 0;
15413 
15414     virtual HRESULT STDMETHODCALLTYPE EmulateRecognition(
15415         VARIANT TextElements,
15416         VARIANT *ElementDisplayAttributes = 0,
15417         LONG LanguageId = 0) = 0;
15418 
15419     virtual HRESULT STDMETHODCALLTYPE CreateRecoContext(
15420         ISpeechRecoContext **NewContext) = 0;
15421 
15422     virtual HRESULT STDMETHODCALLTYPE GetFormat(
15423         SpeechFormatType Type,
15424         ISpeechAudioFormat **Format) = 0;
15425 
15426     virtual HRESULT STDMETHODCALLTYPE SetPropertyNumber(
15427         const BSTR Name,
15428         LONG Value,
15429         VARIANT_BOOL *Supported) = 0;
15430 
15431     virtual HRESULT STDMETHODCALLTYPE GetPropertyNumber(
15432         const BSTR Name,
15433         LONG *Value,
15434         VARIANT_BOOL *Supported) = 0;
15435 
15436     virtual HRESULT STDMETHODCALLTYPE SetPropertyString(
15437         const BSTR Name,
15438         const BSTR Value,
15439         VARIANT_BOOL *Supported) = 0;
15440 
15441     virtual HRESULT STDMETHODCALLTYPE GetPropertyString(
15442         const BSTR Name,
15443         BSTR *Value,
15444         VARIANT_BOOL *Supported) = 0;
15445 
15446     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
15447         const BSTR TypeOfUI,
15448         const VARIANT *ExtraData,
15449         VARIANT_BOOL *Supported) = 0;
15450 
15451     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
15452         LONG hWndParent,
15453         BSTR Title,
15454         const BSTR TypeOfUI,
15455         const VARIANT *ExtraData = 0) = 0;
15456 
15457     virtual HRESULT STDMETHODCALLTYPE GetRecognizers(
15458         BSTR RequiredAttributes,
15459         BSTR OptionalAttributes,
15460         ISpeechObjectTokens **ObjectTokens) = 0;
15461 
15462     virtual HRESULT STDMETHODCALLTYPE GetAudioInputs(
15463         BSTR RequiredAttributes,
15464         BSTR OptionalAttributes,
15465         ISpeechObjectTokens **ObjectTokens) = 0;
15466 
15467     virtual HRESULT STDMETHODCALLTYPE GetProfiles(
15468         BSTR RequiredAttributes,
15469         BSTR OptionalAttributes,
15470         ISpeechObjectTokens **ObjectTokens) = 0;
15471 
15472 };
15473 #ifdef __CRT_UUID_DECL
15474 __CRT_UUID_DECL(ISpeechRecognizer, 0x2d5f1c0c, 0xbd75, 0x4b08, 0x94,0x78, 0x3b,0x11,0xfe,0xa2,0x58,0x6c)
15475 #endif
15476 #else
15477 typedef struct ISpeechRecognizerVtbl {
15478     BEGIN_INTERFACE
15479 
15480     /*** IUnknown methods ***/
15481     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15482         ISpeechRecognizer* This,
15483         REFIID riid,
15484         void **ppvObject);
15485 
15486     ULONG (STDMETHODCALLTYPE *AddRef)(
15487         ISpeechRecognizer* This);
15488 
15489     ULONG (STDMETHODCALLTYPE *Release)(
15490         ISpeechRecognizer* This);
15491 
15492     /*** IDispatch methods ***/
15493     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15494         ISpeechRecognizer* This,
15495         UINT *pctinfo);
15496 
15497     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15498         ISpeechRecognizer* This,
15499         UINT iTInfo,
15500         LCID lcid,
15501         ITypeInfo **ppTInfo);
15502 
15503     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15504         ISpeechRecognizer* This,
15505         REFIID riid,
15506         LPOLESTR *rgszNames,
15507         UINT cNames,
15508         LCID lcid,
15509         DISPID *rgDispId);
15510 
15511     HRESULT (STDMETHODCALLTYPE *Invoke)(
15512         ISpeechRecognizer* This,
15513         DISPID dispIdMember,
15514         REFIID riid,
15515         LCID lcid,
15516         WORD wFlags,
15517         DISPPARAMS *pDispParams,
15518         VARIANT *pVarResult,
15519         EXCEPINFO *pExcepInfo,
15520         UINT *puArgErr);
15521 
15522     /*** ISpeechRecognizer methods ***/
15523     HRESULT (STDMETHODCALLTYPE *putref_Recognizer)(
15524         ISpeechRecognizer* This,
15525         ISpeechObjectToken *Recognizer);
15526 
15527     HRESULT (STDMETHODCALLTYPE *get_Recognizer)(
15528         ISpeechRecognizer* This,
15529         ISpeechObjectToken **Recognizer);
15530 
15531     HRESULT (STDMETHODCALLTYPE *put_AllowAudioInputFormatChangesOnNextSet)(
15532         ISpeechRecognizer* This,
15533         VARIANT_BOOL Allow);
15534 
15535     HRESULT (STDMETHODCALLTYPE *get_AllowAudioInputFormatChangesOnNextSet)(
15536         ISpeechRecognizer* This,
15537         VARIANT_BOOL *Allow);
15538 
15539     HRESULT (STDMETHODCALLTYPE *putref_AudioInput)(
15540         ISpeechRecognizer* This,
15541         ISpeechObjectToken *AudioInput);
15542 
15543     HRESULT (STDMETHODCALLTYPE *get_AudioInput)(
15544         ISpeechRecognizer* This,
15545         ISpeechObjectToken **AudioInput);
15546 
15547     HRESULT (STDMETHODCALLTYPE *putref_AudioInputStream)(
15548         ISpeechRecognizer* This,
15549         ISpeechBaseStream *AudioInputStream);
15550 
15551     HRESULT (STDMETHODCALLTYPE *get_AudioInputStream)(
15552         ISpeechRecognizer* This,
15553         ISpeechBaseStream **AudioInputStream);
15554 
15555     HRESULT (STDMETHODCALLTYPE *get_IsShared)(
15556         ISpeechRecognizer* This,
15557         VARIANT_BOOL *Shared);
15558 
15559     HRESULT (STDMETHODCALLTYPE *put_State)(
15560         ISpeechRecognizer* This,
15561         SpeechRecognizerState State);
15562 
15563     HRESULT (STDMETHODCALLTYPE *get_State)(
15564         ISpeechRecognizer* This,
15565         SpeechRecognizerState *State);
15566 
15567     HRESULT (STDMETHODCALLTYPE *get_Status)(
15568         ISpeechRecognizer* This,
15569         ISpeechRecognizerStatus **Status);
15570 
15571     HRESULT (STDMETHODCALLTYPE *putref_Profile)(
15572         ISpeechRecognizer* This,
15573         ISpeechObjectToken *Profile);
15574 
15575     HRESULT (STDMETHODCALLTYPE *get_Profile)(
15576         ISpeechRecognizer* This,
15577         ISpeechObjectToken **Profile);
15578 
15579     HRESULT (STDMETHODCALLTYPE *EmulateRecognition)(
15580         ISpeechRecognizer* This,
15581         VARIANT TextElements,
15582         VARIANT *ElementDisplayAttributes,
15583         LONG LanguageId);
15584 
15585     HRESULT (STDMETHODCALLTYPE *CreateRecoContext)(
15586         ISpeechRecognizer* This,
15587         ISpeechRecoContext **NewContext);
15588 
15589     HRESULT (STDMETHODCALLTYPE *GetFormat)(
15590         ISpeechRecognizer* This,
15591         SpeechFormatType Type,
15592         ISpeechAudioFormat **Format);
15593 
15594     HRESULT (STDMETHODCALLTYPE *SetPropertyNumber)(
15595         ISpeechRecognizer* This,
15596         const BSTR Name,
15597         LONG Value,
15598         VARIANT_BOOL *Supported);
15599 
15600     HRESULT (STDMETHODCALLTYPE *GetPropertyNumber)(
15601         ISpeechRecognizer* This,
15602         const BSTR Name,
15603         LONG *Value,
15604         VARIANT_BOOL *Supported);
15605 
15606     HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
15607         ISpeechRecognizer* This,
15608         const BSTR Name,
15609         const BSTR Value,
15610         VARIANT_BOOL *Supported);
15611 
15612     HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
15613         ISpeechRecognizer* This,
15614         const BSTR Name,
15615         BSTR *Value,
15616         VARIANT_BOOL *Supported);
15617 
15618     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
15619         ISpeechRecognizer* This,
15620         const BSTR TypeOfUI,
15621         const VARIANT *ExtraData,
15622         VARIANT_BOOL *Supported);
15623 
15624     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
15625         ISpeechRecognizer* This,
15626         LONG hWndParent,
15627         BSTR Title,
15628         const BSTR TypeOfUI,
15629         const VARIANT *ExtraData);
15630 
15631     HRESULT (STDMETHODCALLTYPE *GetRecognizers)(
15632         ISpeechRecognizer* This,
15633         BSTR RequiredAttributes,
15634         BSTR OptionalAttributes,
15635         ISpeechObjectTokens **ObjectTokens);
15636 
15637     HRESULT (STDMETHODCALLTYPE *GetAudioInputs)(
15638         ISpeechRecognizer* This,
15639         BSTR RequiredAttributes,
15640         BSTR OptionalAttributes,
15641         ISpeechObjectTokens **ObjectTokens);
15642 
15643     HRESULT (STDMETHODCALLTYPE *GetProfiles)(
15644         ISpeechRecognizer* This,
15645         BSTR RequiredAttributes,
15646         BSTR OptionalAttributes,
15647         ISpeechObjectTokens **ObjectTokens);
15648 
15649     END_INTERFACE
15650 } ISpeechRecognizerVtbl;
15651 interface ISpeechRecognizer {
15652     CONST_VTBL ISpeechRecognizerVtbl* lpVtbl;
15653 };
15654 
15655 #ifdef COBJMACROS
15656 #ifndef WIDL_C_INLINE_WRAPPERS
15657 /*** IUnknown methods ***/
15658 #define ISpeechRecognizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15659 #define ISpeechRecognizer_AddRef(This) (This)->lpVtbl->AddRef(This)
15660 #define ISpeechRecognizer_Release(This) (This)->lpVtbl->Release(This)
15661 /*** IDispatch methods ***/
15662 #define ISpeechRecognizer_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
15663 #define ISpeechRecognizer_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
15664 #define ISpeechRecognizer_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
15665 #define ISpeechRecognizer_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
15666 /*** ISpeechRecognizer methods ***/
15667 #define ISpeechRecognizer_putref_Recognizer(This,Recognizer) (This)->lpVtbl->putref_Recognizer(This,Recognizer)
15668 #define ISpeechRecognizer_get_Recognizer(This,Recognizer) (This)->lpVtbl->get_Recognizer(This,Recognizer)
15669 #define ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->put_AllowAudioInputFormatChangesOnNextSet(This,Allow)
15670 #define ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->get_AllowAudioInputFormatChangesOnNextSet(This,Allow)
15671 #define ISpeechRecognizer_putref_AudioInput(This,AudioInput) (This)->lpVtbl->putref_AudioInput(This,AudioInput)
15672 #define ISpeechRecognizer_get_AudioInput(This,AudioInput) (This)->lpVtbl->get_AudioInput(This,AudioInput)
15673 #define ISpeechRecognizer_putref_AudioInputStream(This,AudioInputStream) (This)->lpVtbl->putref_AudioInputStream(This,AudioInputStream)
15674 #define ISpeechRecognizer_get_AudioInputStream(This,AudioInputStream) (This)->lpVtbl->get_AudioInputStream(This,AudioInputStream)
15675 #define ISpeechRecognizer_get_IsShared(This,Shared) (This)->lpVtbl->get_IsShared(This,Shared)
15676 #define ISpeechRecognizer_put_State(This,State) (This)->lpVtbl->put_State(This,State)
15677 #define ISpeechRecognizer_get_State(This,State) (This)->lpVtbl->get_State(This,State)
15678 #define ISpeechRecognizer_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
15679 #define ISpeechRecognizer_putref_Profile(This,Profile) (This)->lpVtbl->putref_Profile(This,Profile)
15680 #define ISpeechRecognizer_get_Profile(This,Profile) (This)->lpVtbl->get_Profile(This,Profile)
15681 #define ISpeechRecognizer_EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId) (This)->lpVtbl->EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId)
15682 #define ISpeechRecognizer_CreateRecoContext(This,NewContext) (This)->lpVtbl->CreateRecoContext(This,NewContext)
15683 #define ISpeechRecognizer_GetFormat(This,Type,Format) (This)->lpVtbl->GetFormat(This,Type,Format)
15684 #define ISpeechRecognizer_SetPropertyNumber(This,Name,Value,Supported) (This)->lpVtbl->SetPropertyNumber(This,Name,Value,Supported)
15685 #define ISpeechRecognizer_GetPropertyNumber(This,Name,Value,Supported) (This)->lpVtbl->GetPropertyNumber(This,Name,Value,Supported)
15686 #define ISpeechRecognizer_SetPropertyString(This,Name,Value,Supported) (This)->lpVtbl->SetPropertyString(This,Name,Value,Supported)
15687 #define ISpeechRecognizer_GetPropertyString(This,Name,Value,Supported) (This)->lpVtbl->GetPropertyString(This,Name,Value,Supported)
15688 #define ISpeechRecognizer_IsUISupported(This,TypeOfUI,ExtraData,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported)
15689 #define ISpeechRecognizer_DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData) (This)->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData)
15690 #define ISpeechRecognizer_GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
15691 #define ISpeechRecognizer_GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
15692 #define ISpeechRecognizer_GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
15693 #else
15694 /*** IUnknown methods ***/
15695 static FORCEINLINE HRESULT ISpeechRecognizer_QueryInterface(ISpeechRecognizer* This,REFIID riid,void **ppvObject) {
15696     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15697 }
15698 static FORCEINLINE ULONG ISpeechRecognizer_AddRef(ISpeechRecognizer* This) {
15699     return This->lpVtbl->AddRef(This);
15700 }
15701 static FORCEINLINE ULONG ISpeechRecognizer_Release(ISpeechRecognizer* This) {
15702     return This->lpVtbl->Release(This);
15703 }
15704 /*** IDispatch methods ***/
15705 static FORCEINLINE HRESULT ISpeechRecognizer_GetTypeInfoCount(ISpeechRecognizer* This,UINT *pctinfo) {
15706     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
15707 }
15708 static FORCEINLINE HRESULT ISpeechRecognizer_GetTypeInfo(ISpeechRecognizer* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
15709     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
15710 }
15711 static FORCEINLINE HRESULT ISpeechRecognizer_GetIDsOfNames(ISpeechRecognizer* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
15712     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
15713 }
15714 static FORCEINLINE HRESULT ISpeechRecognizer_Invoke(ISpeechRecognizer* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
15715     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
15716 }
15717 /*** ISpeechRecognizer methods ***/
15718 static FORCEINLINE HRESULT ISpeechRecognizer_putref_Recognizer(ISpeechRecognizer* This,ISpeechObjectToken *Recognizer) {
15719     return This->lpVtbl->putref_Recognizer(This,Recognizer);
15720 }
15721 static FORCEINLINE HRESULT ISpeechRecognizer_get_Recognizer(ISpeechRecognizer* This,ISpeechObjectToken **Recognizer) {
15722     return This->lpVtbl->get_Recognizer(This,Recognizer);
15723 }
15724 static FORCEINLINE HRESULT ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet(ISpeechRecognizer* This,VARIANT_BOOL Allow) {
15725     return This->lpVtbl->put_AllowAudioInputFormatChangesOnNextSet(This,Allow);
15726 }
15727 static FORCEINLINE HRESULT ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet(ISpeechRecognizer* This,VARIANT_BOOL *Allow) {
15728     return This->lpVtbl->get_AllowAudioInputFormatChangesOnNextSet(This,Allow);
15729 }
15730 static FORCEINLINE HRESULT ISpeechRecognizer_putref_AudioInput(ISpeechRecognizer* This,ISpeechObjectToken *AudioInput) {
15731     return This->lpVtbl->putref_AudioInput(This,AudioInput);
15732 }
15733 static FORCEINLINE HRESULT ISpeechRecognizer_get_AudioInput(ISpeechRecognizer* This,ISpeechObjectToken **AudioInput) {
15734     return This->lpVtbl->get_AudioInput(This,AudioInput);
15735 }
15736 static FORCEINLINE HRESULT ISpeechRecognizer_putref_AudioInputStream(ISpeechRecognizer* This,ISpeechBaseStream *AudioInputStream) {
15737     return This->lpVtbl->putref_AudioInputStream(This,AudioInputStream);
15738 }
15739 static FORCEINLINE HRESULT ISpeechRecognizer_get_AudioInputStream(ISpeechRecognizer* This,ISpeechBaseStream **AudioInputStream) {
15740     return This->lpVtbl->get_AudioInputStream(This,AudioInputStream);
15741 }
15742 static FORCEINLINE HRESULT ISpeechRecognizer_get_IsShared(ISpeechRecognizer* This,VARIANT_BOOL *Shared) {
15743     return This->lpVtbl->get_IsShared(This,Shared);
15744 }
15745 static FORCEINLINE HRESULT ISpeechRecognizer_put_State(ISpeechRecognizer* This,SpeechRecognizerState State) {
15746     return This->lpVtbl->put_State(This,State);
15747 }
15748 static FORCEINLINE HRESULT ISpeechRecognizer_get_State(ISpeechRecognizer* This,SpeechRecognizerState *State) {
15749     return This->lpVtbl->get_State(This,State);
15750 }
15751 static FORCEINLINE HRESULT ISpeechRecognizer_get_Status(ISpeechRecognizer* This,ISpeechRecognizerStatus **Status) {
15752     return This->lpVtbl->get_Status(This,Status);
15753 }
15754 static FORCEINLINE HRESULT ISpeechRecognizer_putref_Profile(ISpeechRecognizer* This,ISpeechObjectToken *Profile) {
15755     return This->lpVtbl->putref_Profile(This,Profile);
15756 }
15757 static FORCEINLINE HRESULT ISpeechRecognizer_get_Profile(ISpeechRecognizer* This,ISpeechObjectToken **Profile) {
15758     return This->lpVtbl->get_Profile(This,Profile);
15759 }
15760 static FORCEINLINE HRESULT ISpeechRecognizer_EmulateRecognition(ISpeechRecognizer* This,VARIANT TextElements,VARIANT *ElementDisplayAttributes,LONG LanguageId) {
15761     return This->lpVtbl->EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId);
15762 }
15763 static FORCEINLINE HRESULT ISpeechRecognizer_CreateRecoContext(ISpeechRecognizer* This,ISpeechRecoContext **NewContext) {
15764     return This->lpVtbl->CreateRecoContext(This,NewContext);
15765 }
15766 static FORCEINLINE HRESULT ISpeechRecognizer_GetFormat(ISpeechRecognizer* This,SpeechFormatType Type,ISpeechAudioFormat **Format) {
15767     return This->lpVtbl->GetFormat(This,Type,Format);
15768 }
15769 static FORCEINLINE HRESULT ISpeechRecognizer_SetPropertyNumber(ISpeechRecognizer* This,const BSTR Name,LONG Value,VARIANT_BOOL *Supported) {
15770     return This->lpVtbl->SetPropertyNumber(This,Name,Value,Supported);
15771 }
15772 static FORCEINLINE HRESULT ISpeechRecognizer_GetPropertyNumber(ISpeechRecognizer* This,const BSTR Name,LONG *Value,VARIANT_BOOL *Supported) {
15773     return This->lpVtbl->GetPropertyNumber(This,Name,Value,Supported);
15774 }
15775 static FORCEINLINE HRESULT ISpeechRecognizer_SetPropertyString(ISpeechRecognizer* This,const BSTR Name,const BSTR Value,VARIANT_BOOL *Supported) {
15776     return This->lpVtbl->SetPropertyString(This,Name,Value,Supported);
15777 }
15778 static FORCEINLINE HRESULT ISpeechRecognizer_GetPropertyString(ISpeechRecognizer* This,const BSTR Name,BSTR *Value,VARIANT_BOOL *Supported) {
15779     return This->lpVtbl->GetPropertyString(This,Name,Value,Supported);
15780 }
15781 static FORCEINLINE HRESULT ISpeechRecognizer_IsUISupported(ISpeechRecognizer* This,const BSTR TypeOfUI,const VARIANT *ExtraData,VARIANT_BOOL *Supported) {
15782     return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported);
15783 }
15784 static FORCEINLINE HRESULT ISpeechRecognizer_DisplayUI(ISpeechRecognizer* This,LONG hWndParent,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData) {
15785     return This->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData);
15786 }
15787 static FORCEINLINE HRESULT ISpeechRecognizer_GetRecognizers(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
15788     return This->lpVtbl->GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
15789 }
15790 static FORCEINLINE HRESULT ISpeechRecognizer_GetAudioInputs(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
15791     return This->lpVtbl->GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
15792 }
15793 static FORCEINLINE HRESULT ISpeechRecognizer_GetProfiles(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
15794     return This->lpVtbl->GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
15795 }
15796 #endif
15797 #endif
15798 
15799 #endif
15800 
15801 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_putref_Recognizer_Proxy(
15802     ISpeechRecognizer* This,
15803     ISpeechObjectToken *Recognizer);
15804 void __RPC_STUB ISpeechRecognizer_putref_Recognizer_Stub(
15805     IRpcStubBuffer* This,
15806     IRpcChannelBuffer* pRpcChannelBuffer,
15807     PRPC_MESSAGE pRpcMessage,
15808     DWORD* pdwStubPhase);
15809 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_Recognizer_Proxy(
15810     ISpeechRecognizer* This,
15811     ISpeechObjectToken **Recognizer);
15812 void __RPC_STUB ISpeechRecognizer_get_Recognizer_Stub(
15813     IRpcStubBuffer* This,
15814     IRpcChannelBuffer* pRpcChannelBuffer,
15815     PRPC_MESSAGE pRpcMessage,
15816     DWORD* pdwStubPhase);
15817 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet_Proxy(
15818     ISpeechRecognizer* This,
15819     VARIANT_BOOL Allow);
15820 void __RPC_STUB ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet_Stub(
15821     IRpcStubBuffer* This,
15822     IRpcChannelBuffer* pRpcChannelBuffer,
15823     PRPC_MESSAGE pRpcMessage,
15824     DWORD* pdwStubPhase);
15825 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet_Proxy(
15826     ISpeechRecognizer* This,
15827     VARIANT_BOOL *Allow);
15828 void __RPC_STUB ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet_Stub(
15829     IRpcStubBuffer* This,
15830     IRpcChannelBuffer* pRpcChannelBuffer,
15831     PRPC_MESSAGE pRpcMessage,
15832     DWORD* pdwStubPhase);
15833 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_putref_AudioInput_Proxy(
15834     ISpeechRecognizer* This,
15835     ISpeechObjectToken *AudioInput);
15836 void __RPC_STUB ISpeechRecognizer_putref_AudioInput_Stub(
15837     IRpcStubBuffer* This,
15838     IRpcChannelBuffer* pRpcChannelBuffer,
15839     PRPC_MESSAGE pRpcMessage,
15840     DWORD* pdwStubPhase);
15841 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_AudioInput_Proxy(
15842     ISpeechRecognizer* This,
15843     ISpeechObjectToken **AudioInput);
15844 void __RPC_STUB ISpeechRecognizer_get_AudioInput_Stub(
15845     IRpcStubBuffer* This,
15846     IRpcChannelBuffer* pRpcChannelBuffer,
15847     PRPC_MESSAGE pRpcMessage,
15848     DWORD* pdwStubPhase);
15849 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_putref_AudioInputStream_Proxy(
15850     ISpeechRecognizer* This,
15851     ISpeechBaseStream *AudioInputStream);
15852 void __RPC_STUB ISpeechRecognizer_putref_AudioInputStream_Stub(
15853     IRpcStubBuffer* This,
15854     IRpcChannelBuffer* pRpcChannelBuffer,
15855     PRPC_MESSAGE pRpcMessage,
15856     DWORD* pdwStubPhase);
15857 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_AudioInputStream_Proxy(
15858     ISpeechRecognizer* This,
15859     ISpeechBaseStream **AudioInputStream);
15860 void __RPC_STUB ISpeechRecognizer_get_AudioInputStream_Stub(
15861     IRpcStubBuffer* This,
15862     IRpcChannelBuffer* pRpcChannelBuffer,
15863     PRPC_MESSAGE pRpcMessage,
15864     DWORD* pdwStubPhase);
15865 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_IsShared_Proxy(
15866     ISpeechRecognizer* This,
15867     VARIANT_BOOL *Shared);
15868 void __RPC_STUB ISpeechRecognizer_get_IsShared_Stub(
15869     IRpcStubBuffer* This,
15870     IRpcChannelBuffer* pRpcChannelBuffer,
15871     PRPC_MESSAGE pRpcMessage,
15872     DWORD* pdwStubPhase);
15873 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_put_State_Proxy(
15874     ISpeechRecognizer* This,
15875     SpeechRecognizerState State);
15876 void __RPC_STUB ISpeechRecognizer_put_State_Stub(
15877     IRpcStubBuffer* This,
15878     IRpcChannelBuffer* pRpcChannelBuffer,
15879     PRPC_MESSAGE pRpcMessage,
15880     DWORD* pdwStubPhase);
15881 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_State_Proxy(
15882     ISpeechRecognizer* This,
15883     SpeechRecognizerState *State);
15884 void __RPC_STUB ISpeechRecognizer_get_State_Stub(
15885     IRpcStubBuffer* This,
15886     IRpcChannelBuffer* pRpcChannelBuffer,
15887     PRPC_MESSAGE pRpcMessage,
15888     DWORD* pdwStubPhase);
15889 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_Status_Proxy(
15890     ISpeechRecognizer* This,
15891     ISpeechRecognizerStatus **Status);
15892 void __RPC_STUB ISpeechRecognizer_get_Status_Stub(
15893     IRpcStubBuffer* This,
15894     IRpcChannelBuffer* pRpcChannelBuffer,
15895     PRPC_MESSAGE pRpcMessage,
15896     DWORD* pdwStubPhase);
15897 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_putref_Profile_Proxy(
15898     ISpeechRecognizer* This,
15899     ISpeechObjectToken *Profile);
15900 void __RPC_STUB ISpeechRecognizer_putref_Profile_Stub(
15901     IRpcStubBuffer* This,
15902     IRpcChannelBuffer* pRpcChannelBuffer,
15903     PRPC_MESSAGE pRpcMessage,
15904     DWORD* pdwStubPhase);
15905 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_get_Profile_Proxy(
15906     ISpeechRecognizer* This,
15907     ISpeechObjectToken **Profile);
15908 void __RPC_STUB ISpeechRecognizer_get_Profile_Stub(
15909     IRpcStubBuffer* This,
15910     IRpcChannelBuffer* pRpcChannelBuffer,
15911     PRPC_MESSAGE pRpcMessage,
15912     DWORD* pdwStubPhase);
15913 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_EmulateRecognition_Proxy(
15914     ISpeechRecognizer* This,
15915     VARIANT TextElements,
15916     VARIANT *ElementDisplayAttributes,
15917     LONG LanguageId);
15918 void __RPC_STUB ISpeechRecognizer_EmulateRecognition_Stub(
15919     IRpcStubBuffer* This,
15920     IRpcChannelBuffer* pRpcChannelBuffer,
15921     PRPC_MESSAGE pRpcMessage,
15922     DWORD* pdwStubPhase);
15923 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_CreateRecoContext_Proxy(
15924     ISpeechRecognizer* This,
15925     ISpeechRecoContext **NewContext);
15926 void __RPC_STUB ISpeechRecognizer_CreateRecoContext_Stub(
15927     IRpcStubBuffer* This,
15928     IRpcChannelBuffer* pRpcChannelBuffer,
15929     PRPC_MESSAGE pRpcMessage,
15930     DWORD* pdwStubPhase);
15931 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_GetFormat_Proxy(
15932     ISpeechRecognizer* This,
15933     SpeechFormatType Type,
15934     ISpeechAudioFormat **Format);
15935 void __RPC_STUB ISpeechRecognizer_GetFormat_Stub(
15936     IRpcStubBuffer* This,
15937     IRpcChannelBuffer* pRpcChannelBuffer,
15938     PRPC_MESSAGE pRpcMessage,
15939     DWORD* pdwStubPhase);
15940 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_SetPropertyNumber_Proxy(
15941     ISpeechRecognizer* This,
15942     const BSTR Name,
15943     LONG Value,
15944     VARIANT_BOOL *Supported);
15945 void __RPC_STUB ISpeechRecognizer_SetPropertyNumber_Stub(
15946     IRpcStubBuffer* This,
15947     IRpcChannelBuffer* pRpcChannelBuffer,
15948     PRPC_MESSAGE pRpcMessage,
15949     DWORD* pdwStubPhase);
15950 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_GetPropertyNumber_Proxy(
15951     ISpeechRecognizer* This,
15952     const BSTR Name,
15953     LONG *Value,
15954     VARIANT_BOOL *Supported);
15955 void __RPC_STUB ISpeechRecognizer_GetPropertyNumber_Stub(
15956     IRpcStubBuffer* This,
15957     IRpcChannelBuffer* pRpcChannelBuffer,
15958     PRPC_MESSAGE pRpcMessage,
15959     DWORD* pdwStubPhase);
15960 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_SetPropertyString_Proxy(
15961     ISpeechRecognizer* This,
15962     const BSTR Name,
15963     const BSTR Value,
15964     VARIANT_BOOL *Supported);
15965 void __RPC_STUB ISpeechRecognizer_SetPropertyString_Stub(
15966     IRpcStubBuffer* This,
15967     IRpcChannelBuffer* pRpcChannelBuffer,
15968     PRPC_MESSAGE pRpcMessage,
15969     DWORD* pdwStubPhase);
15970 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_GetPropertyString_Proxy(
15971     ISpeechRecognizer* This,
15972     const BSTR Name,
15973     BSTR *Value,
15974     VARIANT_BOOL *Supported);
15975 void __RPC_STUB ISpeechRecognizer_GetPropertyString_Stub(
15976     IRpcStubBuffer* This,
15977     IRpcChannelBuffer* pRpcChannelBuffer,
15978     PRPC_MESSAGE pRpcMessage,
15979     DWORD* pdwStubPhase);
15980 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_IsUISupported_Proxy(
15981     ISpeechRecognizer* This,
15982     const BSTR TypeOfUI,
15983     const VARIANT *ExtraData,
15984     VARIANT_BOOL *Supported);
15985 void __RPC_STUB ISpeechRecognizer_IsUISupported_Stub(
15986     IRpcStubBuffer* This,
15987     IRpcChannelBuffer* pRpcChannelBuffer,
15988     PRPC_MESSAGE pRpcMessage,
15989     DWORD* pdwStubPhase);
15990 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_DisplayUI_Proxy(
15991     ISpeechRecognizer* This,
15992     LONG hWndParent,
15993     BSTR Title,
15994     const BSTR TypeOfUI,
15995     const VARIANT *ExtraData);
15996 void __RPC_STUB ISpeechRecognizer_DisplayUI_Stub(
15997     IRpcStubBuffer* This,
15998     IRpcChannelBuffer* pRpcChannelBuffer,
15999     PRPC_MESSAGE pRpcMessage,
16000     DWORD* pdwStubPhase);
16001 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_GetRecognizers_Proxy(
16002     ISpeechRecognizer* This,
16003     BSTR RequiredAttributes,
16004     BSTR OptionalAttributes,
16005     ISpeechObjectTokens **ObjectTokens);
16006 void __RPC_STUB ISpeechRecognizer_GetRecognizers_Stub(
16007     IRpcStubBuffer* This,
16008     IRpcChannelBuffer* pRpcChannelBuffer,
16009     PRPC_MESSAGE pRpcMessage,
16010     DWORD* pdwStubPhase);
16011 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_GetAudioInputs_Proxy(
16012     ISpeechRecognizer* This,
16013     BSTR RequiredAttributes,
16014     BSTR OptionalAttributes,
16015     ISpeechObjectTokens **ObjectTokens);
16016 void __RPC_STUB ISpeechRecognizer_GetAudioInputs_Stub(
16017     IRpcStubBuffer* This,
16018     IRpcChannelBuffer* pRpcChannelBuffer,
16019     PRPC_MESSAGE pRpcMessage,
16020     DWORD* pdwStubPhase);
16021 HRESULT STDMETHODCALLTYPE ISpeechRecognizer_GetProfiles_Proxy(
16022     ISpeechRecognizer* This,
16023     BSTR RequiredAttributes,
16024     BSTR OptionalAttributes,
16025     ISpeechObjectTokens **ObjectTokens);
16026 void __RPC_STUB ISpeechRecognizer_GetProfiles_Stub(
16027     IRpcStubBuffer* This,
16028     IRpcChannelBuffer* pRpcChannelBuffer,
16029     PRPC_MESSAGE pRpcMessage,
16030     DWORD* pdwStubPhase);
16031 
16032 #endif  /* __ISpeechRecognizer_INTERFACE_DEFINED__ */
16033 
16034 /*****************************************************************************
16035  * ISpeechRecognizerStatus interface
16036  */
16037 #ifndef __ISpeechRecognizerStatus_INTERFACE_DEFINED__
16038 #define __ISpeechRecognizerStatus_INTERFACE_DEFINED__
16039 
16040 DEFINE_GUID(IID_ISpeechRecognizerStatus, 0xbff9e781, 0x53ec, 0x484e, 0xbb,0x8a, 0x0e,0x1b,0x55,0x51,0xe3,0x5c);
16041 #if defined(__cplusplus) && !defined(CINTERFACE)
16042 MIDL_INTERFACE("bff9e781-53ec-484e-bb8a-0e1b5551e35c")
16043 ISpeechRecognizerStatus : public IDispatch
16044 {
16045     virtual HRESULT STDMETHODCALLTYPE get_AudioStatus(
16046         ISpeechAudioStatus **AudioStatus) = 0;
16047 
16048     virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamPosition(
16049         VARIANT *pCurrentStreamPos) = 0;
16050 
16051     virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamNumber(
16052         LONG *StreamNumber) = 0;
16053 
16054     virtual HRESULT STDMETHODCALLTYPE get_NumberOfActiveRules(
16055         LONG *NumberOfActiveRules) = 0;
16056 
16057     virtual HRESULT STDMETHODCALLTYPE get_ClsidEngine(
16058         BSTR *ClsidEngine) = 0;
16059 
16060     virtual HRESULT STDMETHODCALLTYPE get_SupportedLanguages(
16061         VARIANT *SupportedLanguages) = 0;
16062 
16063 };
16064 #ifdef __CRT_UUID_DECL
16065 __CRT_UUID_DECL(ISpeechRecognizerStatus, 0xbff9e781, 0x53ec, 0x484e, 0xbb,0x8a, 0x0e,0x1b,0x55,0x51,0xe3,0x5c)
16066 #endif
16067 #else
16068 typedef struct ISpeechRecognizerStatusVtbl {
16069     BEGIN_INTERFACE
16070 
16071     /*** IUnknown methods ***/
16072     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16073         ISpeechRecognizerStatus* This,
16074         REFIID riid,
16075         void **ppvObject);
16076 
16077     ULONG (STDMETHODCALLTYPE *AddRef)(
16078         ISpeechRecognizerStatus* This);
16079 
16080     ULONG (STDMETHODCALLTYPE *Release)(
16081         ISpeechRecognizerStatus* This);
16082 
16083     /*** IDispatch methods ***/
16084     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16085         ISpeechRecognizerStatus* This,
16086         UINT *pctinfo);
16087 
16088     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16089         ISpeechRecognizerStatus* This,
16090         UINT iTInfo,
16091         LCID lcid,
16092         ITypeInfo **ppTInfo);
16093 
16094     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16095         ISpeechRecognizerStatus* This,
16096         REFIID riid,
16097         LPOLESTR *rgszNames,
16098         UINT cNames,
16099         LCID lcid,
16100         DISPID *rgDispId);
16101 
16102     HRESULT (STDMETHODCALLTYPE *Invoke)(
16103         ISpeechRecognizerStatus* This,
16104         DISPID dispIdMember,
16105         REFIID riid,
16106         LCID lcid,
16107         WORD wFlags,
16108         DISPPARAMS *pDispParams,
16109         VARIANT *pVarResult,
16110         EXCEPINFO *pExcepInfo,
16111         UINT *puArgErr);
16112 
16113     /*** ISpeechRecognizerStatus methods ***/
16114     HRESULT (STDMETHODCALLTYPE *get_AudioStatus)(
16115         ISpeechRecognizerStatus* This,
16116         ISpeechAudioStatus **AudioStatus);
16117 
16118     HRESULT (STDMETHODCALLTYPE *get_CurrentStreamPosition)(
16119         ISpeechRecognizerStatus* This,
16120         VARIANT *pCurrentStreamPos);
16121 
16122     HRESULT (STDMETHODCALLTYPE *get_CurrentStreamNumber)(
16123         ISpeechRecognizerStatus* This,
16124         LONG *StreamNumber);
16125 
16126     HRESULT (STDMETHODCALLTYPE *get_NumberOfActiveRules)(
16127         ISpeechRecognizerStatus* This,
16128         LONG *NumberOfActiveRules);
16129 
16130     HRESULT (STDMETHODCALLTYPE *get_ClsidEngine)(
16131         ISpeechRecognizerStatus* This,
16132         BSTR *ClsidEngine);
16133 
16134     HRESULT (STDMETHODCALLTYPE *get_SupportedLanguages)(
16135         ISpeechRecognizerStatus* This,
16136         VARIANT *SupportedLanguages);
16137 
16138     END_INTERFACE
16139 } ISpeechRecognizerStatusVtbl;
16140 interface ISpeechRecognizerStatus {
16141     CONST_VTBL ISpeechRecognizerStatusVtbl* lpVtbl;
16142 };
16143 
16144 #ifdef COBJMACROS
16145 #ifndef WIDL_C_INLINE_WRAPPERS
16146 /*** IUnknown methods ***/
16147 #define ISpeechRecognizerStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16148 #define ISpeechRecognizerStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
16149 #define ISpeechRecognizerStatus_Release(This) (This)->lpVtbl->Release(This)
16150 /*** IDispatch methods ***/
16151 #define ISpeechRecognizerStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16152 #define ISpeechRecognizerStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16153 #define ISpeechRecognizerStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16154 #define ISpeechRecognizerStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16155 /*** ISpeechRecognizerStatus methods ***/
16156 #define ISpeechRecognizerStatus_get_AudioStatus(This,AudioStatus) (This)->lpVtbl->get_AudioStatus(This,AudioStatus)
16157 #define ISpeechRecognizerStatus_get_CurrentStreamPosition(This,pCurrentStreamPos) (This)->lpVtbl->get_CurrentStreamPosition(This,pCurrentStreamPos)
16158 #define ISpeechRecognizerStatus_get_CurrentStreamNumber(This,StreamNumber) (This)->lpVtbl->get_CurrentStreamNumber(This,StreamNumber)
16159 #define ISpeechRecognizerStatus_get_NumberOfActiveRules(This,NumberOfActiveRules) (This)->lpVtbl->get_NumberOfActiveRules(This,NumberOfActiveRules)
16160 #define ISpeechRecognizerStatus_get_ClsidEngine(This,ClsidEngine) (This)->lpVtbl->get_ClsidEngine(This,ClsidEngine)
16161 #define ISpeechRecognizerStatus_get_SupportedLanguages(This,SupportedLanguages) (This)->lpVtbl->get_SupportedLanguages(This,SupportedLanguages)
16162 #else
16163 /*** IUnknown methods ***/
16164 static FORCEINLINE HRESULT ISpeechRecognizerStatus_QueryInterface(ISpeechRecognizerStatus* This,REFIID riid,void **ppvObject) {
16165     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16166 }
16167 static FORCEINLINE ULONG ISpeechRecognizerStatus_AddRef(ISpeechRecognizerStatus* This) {
16168     return This->lpVtbl->AddRef(This);
16169 }
16170 static FORCEINLINE ULONG ISpeechRecognizerStatus_Release(ISpeechRecognizerStatus* This) {
16171     return This->lpVtbl->Release(This);
16172 }
16173 /*** IDispatch methods ***/
16174 static FORCEINLINE HRESULT ISpeechRecognizerStatus_GetTypeInfoCount(ISpeechRecognizerStatus* This,UINT *pctinfo) {
16175     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16176 }
16177 static FORCEINLINE HRESULT ISpeechRecognizerStatus_GetTypeInfo(ISpeechRecognizerStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16178     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16179 }
16180 static FORCEINLINE HRESULT ISpeechRecognizerStatus_GetIDsOfNames(ISpeechRecognizerStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16181     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16182 }
16183 static FORCEINLINE HRESULT ISpeechRecognizerStatus_Invoke(ISpeechRecognizerStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16184     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16185 }
16186 /*** ISpeechRecognizerStatus methods ***/
16187 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_AudioStatus(ISpeechRecognizerStatus* This,ISpeechAudioStatus **AudioStatus) {
16188     return This->lpVtbl->get_AudioStatus(This,AudioStatus);
16189 }
16190 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_CurrentStreamPosition(ISpeechRecognizerStatus* This,VARIANT *pCurrentStreamPos) {
16191     return This->lpVtbl->get_CurrentStreamPosition(This,pCurrentStreamPos);
16192 }
16193 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_CurrentStreamNumber(ISpeechRecognizerStatus* This,LONG *StreamNumber) {
16194     return This->lpVtbl->get_CurrentStreamNumber(This,StreamNumber);
16195 }
16196 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_NumberOfActiveRules(ISpeechRecognizerStatus* This,LONG *NumberOfActiveRules) {
16197     return This->lpVtbl->get_NumberOfActiveRules(This,NumberOfActiveRules);
16198 }
16199 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_ClsidEngine(ISpeechRecognizerStatus* This,BSTR *ClsidEngine) {
16200     return This->lpVtbl->get_ClsidEngine(This,ClsidEngine);
16201 }
16202 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_SupportedLanguages(ISpeechRecognizerStatus* This,VARIANT *SupportedLanguages) {
16203     return This->lpVtbl->get_SupportedLanguages(This,SupportedLanguages);
16204 }
16205 #endif
16206 #endif
16207 
16208 #endif
16209 
16210 HRESULT STDMETHODCALLTYPE ISpeechRecognizerStatus_get_AudioStatus_Proxy(
16211     ISpeechRecognizerStatus* This,
16212     ISpeechAudioStatus **AudioStatus);
16213 void __RPC_STUB ISpeechRecognizerStatus_get_AudioStatus_Stub(
16214     IRpcStubBuffer* This,
16215     IRpcChannelBuffer* pRpcChannelBuffer,
16216     PRPC_MESSAGE pRpcMessage,
16217     DWORD* pdwStubPhase);
16218 HRESULT STDMETHODCALLTYPE ISpeechRecognizerStatus_get_CurrentStreamPosition_Proxy(
16219     ISpeechRecognizerStatus* This,
16220     VARIANT *pCurrentStreamPos);
16221 void __RPC_STUB ISpeechRecognizerStatus_get_CurrentStreamPosition_Stub(
16222     IRpcStubBuffer* This,
16223     IRpcChannelBuffer* pRpcChannelBuffer,
16224     PRPC_MESSAGE pRpcMessage,
16225     DWORD* pdwStubPhase);
16226 HRESULT STDMETHODCALLTYPE ISpeechRecognizerStatus_get_CurrentStreamNumber_Proxy(
16227     ISpeechRecognizerStatus* This,
16228     LONG *StreamNumber);
16229 void __RPC_STUB ISpeechRecognizerStatus_get_CurrentStreamNumber_Stub(
16230     IRpcStubBuffer* This,
16231     IRpcChannelBuffer* pRpcChannelBuffer,
16232     PRPC_MESSAGE pRpcMessage,
16233     DWORD* pdwStubPhase);
16234 HRESULT STDMETHODCALLTYPE ISpeechRecognizerStatus_get_NumberOfActiveRules_Proxy(
16235     ISpeechRecognizerStatus* This,
16236     LONG *NumberOfActiveRules);
16237 void __RPC_STUB ISpeechRecognizerStatus_get_NumberOfActiveRules_Stub(
16238     IRpcStubBuffer* This,
16239     IRpcChannelBuffer* pRpcChannelBuffer,
16240     PRPC_MESSAGE pRpcMessage,
16241     DWORD* pdwStubPhase);
16242 HRESULT STDMETHODCALLTYPE ISpeechRecognizerStatus_get_ClsidEngine_Proxy(
16243     ISpeechRecognizerStatus* This,
16244     BSTR *ClsidEngine);
16245 void __RPC_STUB ISpeechRecognizerStatus_get_ClsidEngine_Stub(
16246     IRpcStubBuffer* This,
16247     IRpcChannelBuffer* pRpcChannelBuffer,
16248     PRPC_MESSAGE pRpcMessage,
16249     DWORD* pdwStubPhase);
16250 HRESULT STDMETHODCALLTYPE ISpeechRecognizerStatus_get_SupportedLanguages_Proxy(
16251     ISpeechRecognizerStatus* This,
16252     VARIANT *SupportedLanguages);
16253 void __RPC_STUB ISpeechRecognizerStatus_get_SupportedLanguages_Stub(
16254     IRpcStubBuffer* This,
16255     IRpcChannelBuffer* pRpcChannelBuffer,
16256     PRPC_MESSAGE pRpcMessage,
16257     DWORD* pdwStubPhase);
16258 
16259 #endif  /* __ISpeechRecognizerStatus_INTERFACE_DEFINED__ */
16260 
16261 /*****************************************************************************
16262  * ISpeechRecoContext interface
16263  */
16264 #ifndef __ISpeechRecoContext_INTERFACE_DEFINED__
16265 #define __ISpeechRecoContext_INTERFACE_DEFINED__
16266 
16267 DEFINE_GUID(IID_ISpeechRecoContext, 0x580aa49d, 0x7e1e, 0x4809, 0xb8,0xe2, 0x57,0xda,0x80,0x61,0x04,0xb8);
16268 #if defined(__cplusplus) && !defined(CINTERFACE)
16269 MIDL_INTERFACE("580aa49d-7e1e-4809-b8e2-57da806104b8")
16270 ISpeechRecoContext : public IDispatch
16271 {
16272     virtual HRESULT STDMETHODCALLTYPE get_Recognizer(
16273         ISpeechRecognizer **Recognizer) = 0;
16274 
16275     virtual HRESULT STDMETHODCALLTYPE get_AudioInputInterferenceStatus(
16276         SpeechInterference *Interference) = 0;
16277 
16278     virtual HRESULT STDMETHODCALLTYPE get_RequestedUIType(
16279         BSTR *UIType) = 0;
16280 
16281     virtual HRESULT STDMETHODCALLTYPE putref_Voice(
16282         ISpeechVoice *Voice) = 0;
16283 
16284     virtual HRESULT STDMETHODCALLTYPE get_Voice(
16285         ISpeechVoice **Voice) = 0;
16286 
16287     virtual HRESULT STDMETHODCALLTYPE put_AllowVoiceFormatMatchingOnNextSet(
16288         VARIANT_BOOL Allow) = 0;
16289 
16290     virtual HRESULT STDMETHODCALLTYPE get_AllowVoiceFormatMatchingOnNextSet(
16291         VARIANT_BOOL *pAllow) = 0;
16292 
16293     virtual HRESULT STDMETHODCALLTYPE put_VoicePurgeEvent(
16294         SpeechRecoEvents EventInterest) = 0;
16295 
16296     virtual HRESULT STDMETHODCALLTYPE get_VoicePurgeEvent(
16297         SpeechRecoEvents *EventInterest) = 0;
16298 
16299     virtual HRESULT STDMETHODCALLTYPE put_EventInterests(
16300         SpeechRecoEvents EventInterest) = 0;
16301 
16302     virtual HRESULT STDMETHODCALLTYPE get_EventInterests(
16303         SpeechRecoEvents *EventInterest) = 0;
16304 
16305     virtual HRESULT STDMETHODCALLTYPE put_CmdMaxAlternates(
16306         LONG MaxAlternates) = 0;
16307 
16308     virtual HRESULT STDMETHODCALLTYPE get_CmdMaxAlternates(
16309         LONG *MaxAlternates) = 0;
16310 
16311     virtual HRESULT STDMETHODCALLTYPE put_State(
16312         SpeechRecoContextState State) = 0;
16313 
16314     virtual HRESULT STDMETHODCALLTYPE get_State(
16315         SpeechRecoContextState *State) = 0;
16316 
16317     virtual HRESULT STDMETHODCALLTYPE put_RetainedAudio(
16318         SpeechRetainedAudioOptions Option) = 0;
16319 
16320     virtual HRESULT STDMETHODCALLTYPE get_RetainedAudio(
16321         SpeechRetainedAudioOptions *Option) = 0;
16322 
16323     virtual HRESULT STDMETHODCALLTYPE putref_RetainedAudioFormat(
16324         ISpeechAudioFormat *Format) = 0;
16325 
16326     virtual HRESULT STDMETHODCALLTYPE get_RetainedAudioFormat(
16327         ISpeechAudioFormat **Format) = 0;
16328 
16329     virtual HRESULT STDMETHODCALLTYPE Pause(
16330         ) = 0;
16331 
16332     virtual HRESULT STDMETHODCALLTYPE Resume(
16333         ) = 0;
16334 
16335     virtual HRESULT STDMETHODCALLTYPE CreateGrammar(
16336         VARIANT GrammarId,
16337         ISpeechRecoGrammar **Grammar) = 0;
16338 
16339     virtual HRESULT STDMETHODCALLTYPE CreateResultFromMemory(
16340         VARIANT *ResultBlock,
16341         ISpeechRecoResult **Result) = 0;
16342 
16343     virtual HRESULT STDMETHODCALLTYPE Bookmark(
16344         SpeechBookmarkOptions Options,
16345         VARIANT StreamPos,
16346         VARIANT BookmarkId) = 0;
16347 
16348     virtual HRESULT STDMETHODCALLTYPE SetAdaptationData(
16349         BSTR AdaptationString) = 0;
16350 
16351 };
16352 #ifdef __CRT_UUID_DECL
16353 __CRT_UUID_DECL(ISpeechRecoContext, 0x580aa49d, 0x7e1e, 0x4809, 0xb8,0xe2, 0x57,0xda,0x80,0x61,0x04,0xb8)
16354 #endif
16355 #else
16356 typedef struct ISpeechRecoContextVtbl {
16357     BEGIN_INTERFACE
16358 
16359     /*** IUnknown methods ***/
16360     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16361         ISpeechRecoContext* This,
16362         REFIID riid,
16363         void **ppvObject);
16364 
16365     ULONG (STDMETHODCALLTYPE *AddRef)(
16366         ISpeechRecoContext* This);
16367 
16368     ULONG (STDMETHODCALLTYPE *Release)(
16369         ISpeechRecoContext* This);
16370 
16371     /*** IDispatch methods ***/
16372     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16373         ISpeechRecoContext* This,
16374         UINT *pctinfo);
16375 
16376     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16377         ISpeechRecoContext* This,
16378         UINT iTInfo,
16379         LCID lcid,
16380         ITypeInfo **ppTInfo);
16381 
16382     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16383         ISpeechRecoContext* This,
16384         REFIID riid,
16385         LPOLESTR *rgszNames,
16386         UINT cNames,
16387         LCID lcid,
16388         DISPID *rgDispId);
16389 
16390     HRESULT (STDMETHODCALLTYPE *Invoke)(
16391         ISpeechRecoContext* This,
16392         DISPID dispIdMember,
16393         REFIID riid,
16394         LCID lcid,
16395         WORD wFlags,
16396         DISPPARAMS *pDispParams,
16397         VARIANT *pVarResult,
16398         EXCEPINFO *pExcepInfo,
16399         UINT *puArgErr);
16400 
16401     /*** ISpeechRecoContext methods ***/
16402     HRESULT (STDMETHODCALLTYPE *get_Recognizer)(
16403         ISpeechRecoContext* This,
16404         ISpeechRecognizer **Recognizer);
16405 
16406     HRESULT (STDMETHODCALLTYPE *get_AudioInputInterferenceStatus)(
16407         ISpeechRecoContext* This,
16408         SpeechInterference *Interference);
16409 
16410     HRESULT (STDMETHODCALLTYPE *get_RequestedUIType)(
16411         ISpeechRecoContext* This,
16412         BSTR *UIType);
16413 
16414     HRESULT (STDMETHODCALLTYPE *putref_Voice)(
16415         ISpeechRecoContext* This,
16416         ISpeechVoice *Voice);
16417 
16418     HRESULT (STDMETHODCALLTYPE *get_Voice)(
16419         ISpeechRecoContext* This,
16420         ISpeechVoice **Voice);
16421 
16422     HRESULT (STDMETHODCALLTYPE *put_AllowVoiceFormatMatchingOnNextSet)(
16423         ISpeechRecoContext* This,
16424         VARIANT_BOOL Allow);
16425 
16426     HRESULT (STDMETHODCALLTYPE *get_AllowVoiceFormatMatchingOnNextSet)(
16427         ISpeechRecoContext* This,
16428         VARIANT_BOOL *pAllow);
16429 
16430     HRESULT (STDMETHODCALLTYPE *put_VoicePurgeEvent)(
16431         ISpeechRecoContext* This,
16432         SpeechRecoEvents EventInterest);
16433 
16434     HRESULT (STDMETHODCALLTYPE *get_VoicePurgeEvent)(
16435         ISpeechRecoContext* This,
16436         SpeechRecoEvents *EventInterest);
16437 
16438     HRESULT (STDMETHODCALLTYPE *put_EventInterests)(
16439         ISpeechRecoContext* This,
16440         SpeechRecoEvents EventInterest);
16441 
16442     HRESULT (STDMETHODCALLTYPE *get_EventInterests)(
16443         ISpeechRecoContext* This,
16444         SpeechRecoEvents *EventInterest);
16445 
16446     HRESULT (STDMETHODCALLTYPE *put_CmdMaxAlternates)(
16447         ISpeechRecoContext* This,
16448         LONG MaxAlternates);
16449 
16450     HRESULT (STDMETHODCALLTYPE *get_CmdMaxAlternates)(
16451         ISpeechRecoContext* This,
16452         LONG *MaxAlternates);
16453 
16454     HRESULT (STDMETHODCALLTYPE *put_State)(
16455         ISpeechRecoContext* This,
16456         SpeechRecoContextState State);
16457 
16458     HRESULT (STDMETHODCALLTYPE *get_State)(
16459         ISpeechRecoContext* This,
16460         SpeechRecoContextState *State);
16461 
16462     HRESULT (STDMETHODCALLTYPE *put_RetainedAudio)(
16463         ISpeechRecoContext* This,
16464         SpeechRetainedAudioOptions Option);
16465 
16466     HRESULT (STDMETHODCALLTYPE *get_RetainedAudio)(
16467         ISpeechRecoContext* This,
16468         SpeechRetainedAudioOptions *Option);
16469 
16470     HRESULT (STDMETHODCALLTYPE *putref_RetainedAudioFormat)(
16471         ISpeechRecoContext* This,
16472         ISpeechAudioFormat *Format);
16473 
16474     HRESULT (STDMETHODCALLTYPE *get_RetainedAudioFormat)(
16475         ISpeechRecoContext* This,
16476         ISpeechAudioFormat **Format);
16477 
16478     HRESULT (STDMETHODCALLTYPE *Pause)(
16479         ISpeechRecoContext* This);
16480 
16481     HRESULT (STDMETHODCALLTYPE *Resume)(
16482         ISpeechRecoContext* This);
16483 
16484     HRESULT (STDMETHODCALLTYPE *CreateGrammar)(
16485         ISpeechRecoContext* This,
16486         VARIANT GrammarId,
16487         ISpeechRecoGrammar **Grammar);
16488 
16489     HRESULT (STDMETHODCALLTYPE *CreateResultFromMemory)(
16490         ISpeechRecoContext* This,
16491         VARIANT *ResultBlock,
16492         ISpeechRecoResult **Result);
16493 
16494     HRESULT (STDMETHODCALLTYPE *Bookmark)(
16495         ISpeechRecoContext* This,
16496         SpeechBookmarkOptions Options,
16497         VARIANT StreamPos,
16498         VARIANT BookmarkId);
16499 
16500     HRESULT (STDMETHODCALLTYPE *SetAdaptationData)(
16501         ISpeechRecoContext* This,
16502         BSTR AdaptationString);
16503 
16504     END_INTERFACE
16505 } ISpeechRecoContextVtbl;
16506 interface ISpeechRecoContext {
16507     CONST_VTBL ISpeechRecoContextVtbl* lpVtbl;
16508 };
16509 
16510 #ifdef COBJMACROS
16511 #ifndef WIDL_C_INLINE_WRAPPERS
16512 /*** IUnknown methods ***/
16513 #define ISpeechRecoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16514 #define ISpeechRecoContext_AddRef(This) (This)->lpVtbl->AddRef(This)
16515 #define ISpeechRecoContext_Release(This) (This)->lpVtbl->Release(This)
16516 /*** IDispatch methods ***/
16517 #define ISpeechRecoContext_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16518 #define ISpeechRecoContext_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16519 #define ISpeechRecoContext_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16520 #define ISpeechRecoContext_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16521 /*** ISpeechRecoContext methods ***/
16522 #define ISpeechRecoContext_get_Recognizer(This,Recognizer) (This)->lpVtbl->get_Recognizer(This,Recognizer)
16523 #define ISpeechRecoContext_get_AudioInputInterferenceStatus(This,Interference) (This)->lpVtbl->get_AudioInputInterferenceStatus(This,Interference)
16524 #define ISpeechRecoContext_get_RequestedUIType(This,UIType) (This)->lpVtbl->get_RequestedUIType(This,UIType)
16525 #define ISpeechRecoContext_putref_Voice(This,Voice) (This)->lpVtbl->putref_Voice(This,Voice)
16526 #define ISpeechRecoContext_get_Voice(This,Voice) (This)->lpVtbl->get_Voice(This,Voice)
16527 #define ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet(This,Allow) (This)->lpVtbl->put_AllowVoiceFormatMatchingOnNextSet(This,Allow)
16528 #define ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet(This,pAllow) (This)->lpVtbl->get_AllowVoiceFormatMatchingOnNextSet(This,pAllow)
16529 #define ISpeechRecoContext_put_VoicePurgeEvent(This,EventInterest) (This)->lpVtbl->put_VoicePurgeEvent(This,EventInterest)
16530 #define ISpeechRecoContext_get_VoicePurgeEvent(This,EventInterest) (This)->lpVtbl->get_VoicePurgeEvent(This,EventInterest)
16531 #define ISpeechRecoContext_put_EventInterests(This,EventInterest) (This)->lpVtbl->put_EventInterests(This,EventInterest)
16532 #define ISpeechRecoContext_get_EventInterests(This,EventInterest) (This)->lpVtbl->get_EventInterests(This,EventInterest)
16533 #define ISpeechRecoContext_put_CmdMaxAlternates(This,MaxAlternates) (This)->lpVtbl->put_CmdMaxAlternates(This,MaxAlternates)
16534 #define ISpeechRecoContext_get_CmdMaxAlternates(This,MaxAlternates) (This)->lpVtbl->get_CmdMaxAlternates(This,MaxAlternates)
16535 #define ISpeechRecoContext_put_State(This,State) (This)->lpVtbl->put_State(This,State)
16536 #define ISpeechRecoContext_get_State(This,State) (This)->lpVtbl->get_State(This,State)
16537 #define ISpeechRecoContext_put_RetainedAudio(This,Option) (This)->lpVtbl->put_RetainedAudio(This,Option)
16538 #define ISpeechRecoContext_get_RetainedAudio(This,Option) (This)->lpVtbl->get_RetainedAudio(This,Option)
16539 #define ISpeechRecoContext_putref_RetainedAudioFormat(This,Format) (This)->lpVtbl->putref_RetainedAudioFormat(This,Format)
16540 #define ISpeechRecoContext_get_RetainedAudioFormat(This,Format) (This)->lpVtbl->get_RetainedAudioFormat(This,Format)
16541 #define ISpeechRecoContext_Pause(This) (This)->lpVtbl->Pause(This)
16542 #define ISpeechRecoContext_Resume(This) (This)->lpVtbl->Resume(This)
16543 #define ISpeechRecoContext_CreateGrammar(This,GrammarId,Grammar) (This)->lpVtbl->CreateGrammar(This,GrammarId,Grammar)
16544 #define ISpeechRecoContext_CreateResultFromMemory(This,ResultBlock,Result) (This)->lpVtbl->CreateResultFromMemory(This,ResultBlock,Result)
16545 #define ISpeechRecoContext_Bookmark(This,Options,StreamPos,BookmarkId) (This)->lpVtbl->Bookmark(This,Options,StreamPos,BookmarkId)
16546 #define ISpeechRecoContext_SetAdaptationData(This,AdaptationString) (This)->lpVtbl->SetAdaptationData(This,AdaptationString)
16547 #else
16548 /*** IUnknown methods ***/
16549 static FORCEINLINE HRESULT ISpeechRecoContext_QueryInterface(ISpeechRecoContext* This,REFIID riid,void **ppvObject) {
16550     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16551 }
16552 static FORCEINLINE ULONG ISpeechRecoContext_AddRef(ISpeechRecoContext* This) {
16553     return This->lpVtbl->AddRef(This);
16554 }
16555 static FORCEINLINE ULONG ISpeechRecoContext_Release(ISpeechRecoContext* This) {
16556     return This->lpVtbl->Release(This);
16557 }
16558 /*** IDispatch methods ***/
16559 static FORCEINLINE HRESULT ISpeechRecoContext_GetTypeInfoCount(ISpeechRecoContext* This,UINT *pctinfo) {
16560     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16561 }
16562 static FORCEINLINE HRESULT ISpeechRecoContext_GetTypeInfo(ISpeechRecoContext* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16563     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16564 }
16565 static FORCEINLINE HRESULT ISpeechRecoContext_GetIDsOfNames(ISpeechRecoContext* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16566     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16567 }
16568 static FORCEINLINE HRESULT ISpeechRecoContext_Invoke(ISpeechRecoContext* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16569     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16570 }
16571 /*** ISpeechRecoContext methods ***/
16572 static FORCEINLINE HRESULT ISpeechRecoContext_get_Recognizer(ISpeechRecoContext* This,ISpeechRecognizer **Recognizer) {
16573     return This->lpVtbl->get_Recognizer(This,Recognizer);
16574 }
16575 static FORCEINLINE HRESULT ISpeechRecoContext_get_AudioInputInterferenceStatus(ISpeechRecoContext* This,SpeechInterference *Interference) {
16576     return This->lpVtbl->get_AudioInputInterferenceStatus(This,Interference);
16577 }
16578 static FORCEINLINE HRESULT ISpeechRecoContext_get_RequestedUIType(ISpeechRecoContext* This,BSTR *UIType) {
16579     return This->lpVtbl->get_RequestedUIType(This,UIType);
16580 }
16581 static FORCEINLINE HRESULT ISpeechRecoContext_putref_Voice(ISpeechRecoContext* This,ISpeechVoice *Voice) {
16582     return This->lpVtbl->putref_Voice(This,Voice);
16583 }
16584 static FORCEINLINE HRESULT ISpeechRecoContext_get_Voice(ISpeechRecoContext* This,ISpeechVoice **Voice) {
16585     return This->lpVtbl->get_Voice(This,Voice);
16586 }
16587 static FORCEINLINE HRESULT ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet(ISpeechRecoContext* This,VARIANT_BOOL Allow) {
16588     return This->lpVtbl->put_AllowVoiceFormatMatchingOnNextSet(This,Allow);
16589 }
16590 static FORCEINLINE HRESULT ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet(ISpeechRecoContext* This,VARIANT_BOOL *pAllow) {
16591     return This->lpVtbl->get_AllowVoiceFormatMatchingOnNextSet(This,pAllow);
16592 }
16593 static FORCEINLINE HRESULT ISpeechRecoContext_put_VoicePurgeEvent(ISpeechRecoContext* This,SpeechRecoEvents EventInterest) {
16594     return This->lpVtbl->put_VoicePurgeEvent(This,EventInterest);
16595 }
16596 static FORCEINLINE HRESULT ISpeechRecoContext_get_VoicePurgeEvent(ISpeechRecoContext* This,SpeechRecoEvents *EventInterest) {
16597     return This->lpVtbl->get_VoicePurgeEvent(This,EventInterest);
16598 }
16599 static FORCEINLINE HRESULT ISpeechRecoContext_put_EventInterests(ISpeechRecoContext* This,SpeechRecoEvents EventInterest) {
16600     return This->lpVtbl->put_EventInterests(This,EventInterest);
16601 }
16602 static FORCEINLINE HRESULT ISpeechRecoContext_get_EventInterests(ISpeechRecoContext* This,SpeechRecoEvents *EventInterest) {
16603     return This->lpVtbl->get_EventInterests(This,EventInterest);
16604 }
16605 static FORCEINLINE HRESULT ISpeechRecoContext_put_CmdMaxAlternates(ISpeechRecoContext* This,LONG MaxAlternates) {
16606     return This->lpVtbl->put_CmdMaxAlternates(This,MaxAlternates);
16607 }
16608 static FORCEINLINE HRESULT ISpeechRecoContext_get_CmdMaxAlternates(ISpeechRecoContext* This,LONG *MaxAlternates) {
16609     return This->lpVtbl->get_CmdMaxAlternates(This,MaxAlternates);
16610 }
16611 static FORCEINLINE HRESULT ISpeechRecoContext_put_State(ISpeechRecoContext* This,SpeechRecoContextState State) {
16612     return This->lpVtbl->put_State(This,State);
16613 }
16614 static FORCEINLINE HRESULT ISpeechRecoContext_get_State(ISpeechRecoContext* This,SpeechRecoContextState *State) {
16615     return This->lpVtbl->get_State(This,State);
16616 }
16617 static FORCEINLINE HRESULT ISpeechRecoContext_put_RetainedAudio(ISpeechRecoContext* This,SpeechRetainedAudioOptions Option) {
16618     return This->lpVtbl->put_RetainedAudio(This,Option);
16619 }
16620 static FORCEINLINE HRESULT ISpeechRecoContext_get_RetainedAudio(ISpeechRecoContext* This,SpeechRetainedAudioOptions *Option) {
16621     return This->lpVtbl->get_RetainedAudio(This,Option);
16622 }
16623 static FORCEINLINE HRESULT ISpeechRecoContext_putref_RetainedAudioFormat(ISpeechRecoContext* This,ISpeechAudioFormat *Format) {
16624     return This->lpVtbl->putref_RetainedAudioFormat(This,Format);
16625 }
16626 static FORCEINLINE HRESULT ISpeechRecoContext_get_RetainedAudioFormat(ISpeechRecoContext* This,ISpeechAudioFormat **Format) {
16627     return This->lpVtbl->get_RetainedAudioFormat(This,Format);
16628 }
16629 static FORCEINLINE HRESULT ISpeechRecoContext_Pause(ISpeechRecoContext* This) {
16630     return This->lpVtbl->Pause(This);
16631 }
16632 static FORCEINLINE HRESULT ISpeechRecoContext_Resume(ISpeechRecoContext* This) {
16633     return This->lpVtbl->Resume(This);
16634 }
16635 static FORCEINLINE HRESULT ISpeechRecoContext_CreateGrammar(ISpeechRecoContext* This,VARIANT GrammarId,ISpeechRecoGrammar **Grammar) {
16636     return This->lpVtbl->CreateGrammar(This,GrammarId,Grammar);
16637 }
16638 static FORCEINLINE HRESULT ISpeechRecoContext_CreateResultFromMemory(ISpeechRecoContext* This,VARIANT *ResultBlock,ISpeechRecoResult **Result) {
16639     return This->lpVtbl->CreateResultFromMemory(This,ResultBlock,Result);
16640 }
16641 static FORCEINLINE HRESULT ISpeechRecoContext_Bookmark(ISpeechRecoContext* This,SpeechBookmarkOptions Options,VARIANT StreamPos,VARIANT BookmarkId) {
16642     return This->lpVtbl->Bookmark(This,Options,StreamPos,BookmarkId);
16643 }
16644 static FORCEINLINE HRESULT ISpeechRecoContext_SetAdaptationData(ISpeechRecoContext* This,BSTR AdaptationString) {
16645     return This->lpVtbl->SetAdaptationData(This,AdaptationString);
16646 }
16647 #endif
16648 #endif
16649 
16650 #endif
16651 
16652 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_Recognizer_Proxy(
16653     ISpeechRecoContext* This,
16654     ISpeechRecognizer **Recognizer);
16655 void __RPC_STUB ISpeechRecoContext_get_Recognizer_Stub(
16656     IRpcStubBuffer* This,
16657     IRpcChannelBuffer* pRpcChannelBuffer,
16658     PRPC_MESSAGE pRpcMessage,
16659     DWORD* pdwStubPhase);
16660 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_AudioInputInterferenceStatus_Proxy(
16661     ISpeechRecoContext* This,
16662     SpeechInterference *Interference);
16663 void __RPC_STUB ISpeechRecoContext_get_AudioInputInterferenceStatus_Stub(
16664     IRpcStubBuffer* This,
16665     IRpcChannelBuffer* pRpcChannelBuffer,
16666     PRPC_MESSAGE pRpcMessage,
16667     DWORD* pdwStubPhase);
16668 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_RequestedUIType_Proxy(
16669     ISpeechRecoContext* This,
16670     BSTR *UIType);
16671 void __RPC_STUB ISpeechRecoContext_get_RequestedUIType_Stub(
16672     IRpcStubBuffer* This,
16673     IRpcChannelBuffer* pRpcChannelBuffer,
16674     PRPC_MESSAGE pRpcMessage,
16675     DWORD* pdwStubPhase);
16676 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_putref_Voice_Proxy(
16677     ISpeechRecoContext* This,
16678     ISpeechVoice *Voice);
16679 void __RPC_STUB ISpeechRecoContext_putref_Voice_Stub(
16680     IRpcStubBuffer* This,
16681     IRpcChannelBuffer* pRpcChannelBuffer,
16682     PRPC_MESSAGE pRpcMessage,
16683     DWORD* pdwStubPhase);
16684 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_Voice_Proxy(
16685     ISpeechRecoContext* This,
16686     ISpeechVoice **Voice);
16687 void __RPC_STUB ISpeechRecoContext_get_Voice_Stub(
16688     IRpcStubBuffer* This,
16689     IRpcChannelBuffer* pRpcChannelBuffer,
16690     PRPC_MESSAGE pRpcMessage,
16691     DWORD* pdwStubPhase);
16692 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet_Proxy(
16693     ISpeechRecoContext* This,
16694     VARIANT_BOOL Allow);
16695 void __RPC_STUB ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet_Stub(
16696     IRpcStubBuffer* This,
16697     IRpcChannelBuffer* pRpcChannelBuffer,
16698     PRPC_MESSAGE pRpcMessage,
16699     DWORD* pdwStubPhase);
16700 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet_Proxy(
16701     ISpeechRecoContext* This,
16702     VARIANT_BOOL *pAllow);
16703 void __RPC_STUB ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet_Stub(
16704     IRpcStubBuffer* This,
16705     IRpcChannelBuffer* pRpcChannelBuffer,
16706     PRPC_MESSAGE pRpcMessage,
16707     DWORD* pdwStubPhase);
16708 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_put_VoicePurgeEvent_Proxy(
16709     ISpeechRecoContext* This,
16710     SpeechRecoEvents EventInterest);
16711 void __RPC_STUB ISpeechRecoContext_put_VoicePurgeEvent_Stub(
16712     IRpcStubBuffer* This,
16713     IRpcChannelBuffer* pRpcChannelBuffer,
16714     PRPC_MESSAGE pRpcMessage,
16715     DWORD* pdwStubPhase);
16716 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_VoicePurgeEvent_Proxy(
16717     ISpeechRecoContext* This,
16718     SpeechRecoEvents *EventInterest);
16719 void __RPC_STUB ISpeechRecoContext_get_VoicePurgeEvent_Stub(
16720     IRpcStubBuffer* This,
16721     IRpcChannelBuffer* pRpcChannelBuffer,
16722     PRPC_MESSAGE pRpcMessage,
16723     DWORD* pdwStubPhase);
16724 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_put_EventInterests_Proxy(
16725     ISpeechRecoContext* This,
16726     SpeechRecoEvents EventInterest);
16727 void __RPC_STUB ISpeechRecoContext_put_EventInterests_Stub(
16728     IRpcStubBuffer* This,
16729     IRpcChannelBuffer* pRpcChannelBuffer,
16730     PRPC_MESSAGE pRpcMessage,
16731     DWORD* pdwStubPhase);
16732 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_EventInterests_Proxy(
16733     ISpeechRecoContext* This,
16734     SpeechRecoEvents *EventInterest);
16735 void __RPC_STUB ISpeechRecoContext_get_EventInterests_Stub(
16736     IRpcStubBuffer* This,
16737     IRpcChannelBuffer* pRpcChannelBuffer,
16738     PRPC_MESSAGE pRpcMessage,
16739     DWORD* pdwStubPhase);
16740 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_put_CmdMaxAlternates_Proxy(
16741     ISpeechRecoContext* This,
16742     LONG MaxAlternates);
16743 void __RPC_STUB ISpeechRecoContext_put_CmdMaxAlternates_Stub(
16744     IRpcStubBuffer* This,
16745     IRpcChannelBuffer* pRpcChannelBuffer,
16746     PRPC_MESSAGE pRpcMessage,
16747     DWORD* pdwStubPhase);
16748 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_CmdMaxAlternates_Proxy(
16749     ISpeechRecoContext* This,
16750     LONG *MaxAlternates);
16751 void __RPC_STUB ISpeechRecoContext_get_CmdMaxAlternates_Stub(
16752     IRpcStubBuffer* This,
16753     IRpcChannelBuffer* pRpcChannelBuffer,
16754     PRPC_MESSAGE pRpcMessage,
16755     DWORD* pdwStubPhase);
16756 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_put_State_Proxy(
16757     ISpeechRecoContext* This,
16758     SpeechRecoContextState State);
16759 void __RPC_STUB ISpeechRecoContext_put_State_Stub(
16760     IRpcStubBuffer* This,
16761     IRpcChannelBuffer* pRpcChannelBuffer,
16762     PRPC_MESSAGE pRpcMessage,
16763     DWORD* pdwStubPhase);
16764 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_State_Proxy(
16765     ISpeechRecoContext* This,
16766     SpeechRecoContextState *State);
16767 void __RPC_STUB ISpeechRecoContext_get_State_Stub(
16768     IRpcStubBuffer* This,
16769     IRpcChannelBuffer* pRpcChannelBuffer,
16770     PRPC_MESSAGE pRpcMessage,
16771     DWORD* pdwStubPhase);
16772 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_put_RetainedAudio_Proxy(
16773     ISpeechRecoContext* This,
16774     SpeechRetainedAudioOptions Option);
16775 void __RPC_STUB ISpeechRecoContext_put_RetainedAudio_Stub(
16776     IRpcStubBuffer* This,
16777     IRpcChannelBuffer* pRpcChannelBuffer,
16778     PRPC_MESSAGE pRpcMessage,
16779     DWORD* pdwStubPhase);
16780 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_RetainedAudio_Proxy(
16781     ISpeechRecoContext* This,
16782     SpeechRetainedAudioOptions *Option);
16783 void __RPC_STUB ISpeechRecoContext_get_RetainedAudio_Stub(
16784     IRpcStubBuffer* This,
16785     IRpcChannelBuffer* pRpcChannelBuffer,
16786     PRPC_MESSAGE pRpcMessage,
16787     DWORD* pdwStubPhase);
16788 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_putref_RetainedAudioFormat_Proxy(
16789     ISpeechRecoContext* This,
16790     ISpeechAudioFormat *Format);
16791 void __RPC_STUB ISpeechRecoContext_putref_RetainedAudioFormat_Stub(
16792     IRpcStubBuffer* This,
16793     IRpcChannelBuffer* pRpcChannelBuffer,
16794     PRPC_MESSAGE pRpcMessage,
16795     DWORD* pdwStubPhase);
16796 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_get_RetainedAudioFormat_Proxy(
16797     ISpeechRecoContext* This,
16798     ISpeechAudioFormat **Format);
16799 void __RPC_STUB ISpeechRecoContext_get_RetainedAudioFormat_Stub(
16800     IRpcStubBuffer* This,
16801     IRpcChannelBuffer* pRpcChannelBuffer,
16802     PRPC_MESSAGE pRpcMessage,
16803     DWORD* pdwStubPhase);
16804 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_Pause_Proxy(
16805     ISpeechRecoContext* This);
16806 void __RPC_STUB ISpeechRecoContext_Pause_Stub(
16807     IRpcStubBuffer* This,
16808     IRpcChannelBuffer* pRpcChannelBuffer,
16809     PRPC_MESSAGE pRpcMessage,
16810     DWORD* pdwStubPhase);
16811 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_Resume_Proxy(
16812     ISpeechRecoContext* This);
16813 void __RPC_STUB ISpeechRecoContext_Resume_Stub(
16814     IRpcStubBuffer* This,
16815     IRpcChannelBuffer* pRpcChannelBuffer,
16816     PRPC_MESSAGE pRpcMessage,
16817     DWORD* pdwStubPhase);
16818 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_CreateGrammar_Proxy(
16819     ISpeechRecoContext* This,
16820     VARIANT GrammarId,
16821     ISpeechRecoGrammar **Grammar);
16822 void __RPC_STUB ISpeechRecoContext_CreateGrammar_Stub(
16823     IRpcStubBuffer* This,
16824     IRpcChannelBuffer* pRpcChannelBuffer,
16825     PRPC_MESSAGE pRpcMessage,
16826     DWORD* pdwStubPhase);
16827 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_CreateResultFromMemory_Proxy(
16828     ISpeechRecoContext* This,
16829     VARIANT *ResultBlock,
16830     ISpeechRecoResult **Result);
16831 void __RPC_STUB ISpeechRecoContext_CreateResultFromMemory_Stub(
16832     IRpcStubBuffer* This,
16833     IRpcChannelBuffer* pRpcChannelBuffer,
16834     PRPC_MESSAGE pRpcMessage,
16835     DWORD* pdwStubPhase);
16836 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_Bookmark_Proxy(
16837     ISpeechRecoContext* This,
16838     SpeechBookmarkOptions Options,
16839     VARIANT StreamPos,
16840     VARIANT BookmarkId);
16841 void __RPC_STUB ISpeechRecoContext_Bookmark_Stub(
16842     IRpcStubBuffer* This,
16843     IRpcChannelBuffer* pRpcChannelBuffer,
16844     PRPC_MESSAGE pRpcMessage,
16845     DWORD* pdwStubPhase);
16846 HRESULT STDMETHODCALLTYPE ISpeechRecoContext_SetAdaptationData_Proxy(
16847     ISpeechRecoContext* This,
16848     BSTR AdaptationString);
16849 void __RPC_STUB ISpeechRecoContext_SetAdaptationData_Stub(
16850     IRpcStubBuffer* This,
16851     IRpcChannelBuffer* pRpcChannelBuffer,
16852     PRPC_MESSAGE pRpcMessage,
16853     DWORD* pdwStubPhase);
16854 
16855 #endif  /* __ISpeechRecoContext_INTERFACE_DEFINED__ */
16856 
16857 /*****************************************************************************
16858  * ISpeechRecoGrammar interface
16859  */
16860 #ifndef __ISpeechRecoGrammar_INTERFACE_DEFINED__
16861 #define __ISpeechRecoGrammar_INTERFACE_DEFINED__
16862 
16863 DEFINE_GUID(IID_ISpeechRecoGrammar, 0xb6d6f79f, 0x2158, 0x4e50, 0xb5,0xbc, 0x9a,0x9c,0xcd,0x85,0x2a,0x09);
16864 #if defined(__cplusplus) && !defined(CINTERFACE)
16865 MIDL_INTERFACE("b6d6f79f-2158-4e50-b5bc-9a9ccd852a09")
16866 ISpeechRecoGrammar : public IDispatch
16867 {
16868     virtual HRESULT STDMETHODCALLTYPE get_Id(
16869         VARIANT *Id) = 0;
16870 
16871     virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
16872         ISpeechRecoContext **RecoContext) = 0;
16873 
16874     virtual HRESULT STDMETHODCALLTYPE put_State(
16875         SpeechGrammarState State) = 0;
16876 
16877     virtual HRESULT STDMETHODCALLTYPE get_State(
16878         SpeechGrammarState *State) = 0;
16879 
16880     virtual HRESULT STDMETHODCALLTYPE get_Rules(
16881         ISpeechGrammarRules **Rules) = 0;
16882 
16883     virtual HRESULT STDMETHODCALLTYPE Reset(
16884         SpeechLanguageId NewLanguage = 0) = 0;
16885 
16886     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromFile(
16887         const BSTR FileName,
16888         SpeechLoadOption LoadOption = SLOStatic) = 0;
16889 
16890     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromObject(
16891         const BSTR ClassId,
16892         const BSTR GrammarName,
16893         SpeechLoadOption LoadOption = SLOStatic) = 0;
16894 
16895     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromResource(
16896         LONG hModule,
16897         VARIANT ResourceName,
16898         VARIANT ResourceType,
16899         SpeechLanguageId LanguageId,
16900         SpeechLoadOption LoadOption = SLOStatic) = 0;
16901 
16902     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromMemory(
16903         VARIANT GrammarData,
16904         SpeechLoadOption LoadOption = SLOStatic) = 0;
16905 
16906     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromProprietaryGrammar(
16907         const BSTR ProprietaryGuid,
16908         const BSTR ProprietaryString,
16909         VARIANT ProprietaryData,
16910         SpeechLoadOption LoadOption = SLOStatic) = 0;
16911 
16912     virtual HRESULT STDMETHODCALLTYPE CmdSetRuleState(
16913         const BSTR Name,
16914         SpeechRuleState State) = 0;
16915 
16916     virtual HRESULT STDMETHODCALLTYPE CmdSetRuleIdState(
16917         LONG RuleId,
16918         SpeechRuleState State) = 0;
16919 
16920     virtual HRESULT STDMETHODCALLTYPE DictationLoad(
16921         const BSTR TopicName = L"",
16922         SpeechLoadOption LoadOption = SLOStatic) = 0;
16923 
16924     virtual HRESULT STDMETHODCALLTYPE DictationUnload(
16925         ) = 0;
16926 
16927     virtual HRESULT STDMETHODCALLTYPE DictationSetState(
16928         SpeechRuleState State) = 0;
16929 
16930     virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData(
16931         const BSTR Text,
16932         LONG TextLength,
16933         ISpeechTextSelectionInformation *Info) = 0;
16934 
16935     virtual HRESULT STDMETHODCALLTYPE SetTextSelection(
16936         ISpeechTextSelectionInformation *Info) = 0;
16937 
16938     virtual HRESULT STDMETHODCALLTYPE IsPronounceable(
16939         const BSTR Word,
16940         SpeechWordPronounceable *WordPronounceable) = 0;
16941 
16942 };
16943 #ifdef __CRT_UUID_DECL
16944 __CRT_UUID_DECL(ISpeechRecoGrammar, 0xb6d6f79f, 0x2158, 0x4e50, 0xb5,0xbc, 0x9a,0x9c,0xcd,0x85,0x2a,0x09)
16945 #endif
16946 #else
16947 typedef struct ISpeechRecoGrammarVtbl {
16948     BEGIN_INTERFACE
16949 
16950     /*** IUnknown methods ***/
16951     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16952         ISpeechRecoGrammar* This,
16953         REFIID riid,
16954         void **ppvObject);
16955 
16956     ULONG (STDMETHODCALLTYPE *AddRef)(
16957         ISpeechRecoGrammar* This);
16958 
16959     ULONG (STDMETHODCALLTYPE *Release)(
16960         ISpeechRecoGrammar* This);
16961 
16962     /*** IDispatch methods ***/
16963     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16964         ISpeechRecoGrammar* This,
16965         UINT *pctinfo);
16966 
16967     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16968         ISpeechRecoGrammar* This,
16969         UINT iTInfo,
16970         LCID lcid,
16971         ITypeInfo **ppTInfo);
16972 
16973     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16974         ISpeechRecoGrammar* This,
16975         REFIID riid,
16976         LPOLESTR *rgszNames,
16977         UINT cNames,
16978         LCID lcid,
16979         DISPID *rgDispId);
16980 
16981     HRESULT (STDMETHODCALLTYPE *Invoke)(
16982         ISpeechRecoGrammar* This,
16983         DISPID dispIdMember,
16984         REFIID riid,
16985         LCID lcid,
16986         WORD wFlags,
16987         DISPPARAMS *pDispParams,
16988         VARIANT *pVarResult,
16989         EXCEPINFO *pExcepInfo,
16990         UINT *puArgErr);
16991 
16992     /*** ISpeechRecoGrammar methods ***/
16993     HRESULT (STDMETHODCALLTYPE *get_Id)(
16994         ISpeechRecoGrammar* This,
16995         VARIANT *Id);
16996 
16997     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
16998         ISpeechRecoGrammar* This,
16999         ISpeechRecoContext **RecoContext);
17000 
17001     HRESULT (STDMETHODCALLTYPE *put_State)(
17002         ISpeechRecoGrammar* This,
17003         SpeechGrammarState State);
17004 
17005     HRESULT (STDMETHODCALLTYPE *get_State)(
17006         ISpeechRecoGrammar* This,
17007         SpeechGrammarState *State);
17008 
17009     HRESULT (STDMETHODCALLTYPE *get_Rules)(
17010         ISpeechRecoGrammar* This,
17011         ISpeechGrammarRules **Rules);
17012 
17013     HRESULT (STDMETHODCALLTYPE *Reset)(
17014         ISpeechRecoGrammar* This,
17015         SpeechLanguageId NewLanguage);
17016 
17017     HRESULT (STDMETHODCALLTYPE *CmdLoadFromFile)(
17018         ISpeechRecoGrammar* This,
17019         const BSTR FileName,
17020         SpeechLoadOption LoadOption);
17021 
17022     HRESULT (STDMETHODCALLTYPE *CmdLoadFromObject)(
17023         ISpeechRecoGrammar* This,
17024         const BSTR ClassId,
17025         const BSTR GrammarName,
17026         SpeechLoadOption LoadOption);
17027 
17028     HRESULT (STDMETHODCALLTYPE *CmdLoadFromResource)(
17029         ISpeechRecoGrammar* This,
17030         LONG hModule,
17031         VARIANT ResourceName,
17032         VARIANT ResourceType,
17033         SpeechLanguageId LanguageId,
17034         SpeechLoadOption LoadOption);
17035 
17036     HRESULT (STDMETHODCALLTYPE *CmdLoadFromMemory)(
17037         ISpeechRecoGrammar* This,
17038         VARIANT GrammarData,
17039         SpeechLoadOption LoadOption);
17040 
17041     HRESULT (STDMETHODCALLTYPE *CmdLoadFromProprietaryGrammar)(
17042         ISpeechRecoGrammar* This,
17043         const BSTR ProprietaryGuid,
17044         const BSTR ProprietaryString,
17045         VARIANT ProprietaryData,
17046         SpeechLoadOption LoadOption);
17047 
17048     HRESULT (STDMETHODCALLTYPE *CmdSetRuleState)(
17049         ISpeechRecoGrammar* This,
17050         const BSTR Name,
17051         SpeechRuleState State);
17052 
17053     HRESULT (STDMETHODCALLTYPE *CmdSetRuleIdState)(
17054         ISpeechRecoGrammar* This,
17055         LONG RuleId,
17056         SpeechRuleState State);
17057 
17058     HRESULT (STDMETHODCALLTYPE *DictationLoad)(
17059         ISpeechRecoGrammar* This,
17060         const BSTR TopicName,
17061         SpeechLoadOption LoadOption);
17062 
17063     HRESULT (STDMETHODCALLTYPE *DictationUnload)(
17064         ISpeechRecoGrammar* This);
17065 
17066     HRESULT (STDMETHODCALLTYPE *DictationSetState)(
17067         ISpeechRecoGrammar* This,
17068         SpeechRuleState State);
17069 
17070     HRESULT (STDMETHODCALLTYPE *SetWordSequenceData)(
17071         ISpeechRecoGrammar* This,
17072         const BSTR Text,
17073         LONG TextLength,
17074         ISpeechTextSelectionInformation *Info);
17075 
17076     HRESULT (STDMETHODCALLTYPE *SetTextSelection)(
17077         ISpeechRecoGrammar* This,
17078         ISpeechTextSelectionInformation *Info);
17079 
17080     HRESULT (STDMETHODCALLTYPE *IsPronounceable)(
17081         ISpeechRecoGrammar* This,
17082         const BSTR Word,
17083         SpeechWordPronounceable *WordPronounceable);
17084 
17085     END_INTERFACE
17086 } ISpeechRecoGrammarVtbl;
17087 interface ISpeechRecoGrammar {
17088     CONST_VTBL ISpeechRecoGrammarVtbl* lpVtbl;
17089 };
17090 
17091 #ifdef COBJMACROS
17092 #ifndef WIDL_C_INLINE_WRAPPERS
17093 /*** IUnknown methods ***/
17094 #define ISpeechRecoGrammar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17095 #define ISpeechRecoGrammar_AddRef(This) (This)->lpVtbl->AddRef(This)
17096 #define ISpeechRecoGrammar_Release(This) (This)->lpVtbl->Release(This)
17097 /*** IDispatch methods ***/
17098 #define ISpeechRecoGrammar_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17099 #define ISpeechRecoGrammar_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17100 #define ISpeechRecoGrammar_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17101 #define ISpeechRecoGrammar_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17102 /*** ISpeechRecoGrammar methods ***/
17103 #define ISpeechRecoGrammar_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
17104 #define ISpeechRecoGrammar_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
17105 #define ISpeechRecoGrammar_put_State(This,State) (This)->lpVtbl->put_State(This,State)
17106 #define ISpeechRecoGrammar_get_State(This,State) (This)->lpVtbl->get_State(This,State)
17107 #define ISpeechRecoGrammar_get_Rules(This,Rules) (This)->lpVtbl->get_Rules(This,Rules)
17108 #define ISpeechRecoGrammar_Reset(This,NewLanguage) (This)->lpVtbl->Reset(This,NewLanguage)
17109 #define ISpeechRecoGrammar_CmdLoadFromFile(This,FileName,LoadOption) (This)->lpVtbl->CmdLoadFromFile(This,FileName,LoadOption)
17110 #define ISpeechRecoGrammar_CmdLoadFromObject(This,ClassId,GrammarName,LoadOption) (This)->lpVtbl->CmdLoadFromObject(This,ClassId,GrammarName,LoadOption)
17111 #define ISpeechRecoGrammar_CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption) (This)->lpVtbl->CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption)
17112 #define ISpeechRecoGrammar_CmdLoadFromMemory(This,GrammarData,LoadOption) (This)->lpVtbl->CmdLoadFromMemory(This,GrammarData,LoadOption)
17113 #define ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption) (This)->lpVtbl->CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption)
17114 #define ISpeechRecoGrammar_CmdSetRuleState(This,Name,State) (This)->lpVtbl->CmdSetRuleState(This,Name,State)
17115 #define ISpeechRecoGrammar_CmdSetRuleIdState(This,RuleId,State) (This)->lpVtbl->CmdSetRuleIdState(This,RuleId,State)
17116 #define ISpeechRecoGrammar_DictationLoad(This,TopicName,LoadOption) (This)->lpVtbl->DictationLoad(This,TopicName,LoadOption)
17117 #define ISpeechRecoGrammar_DictationUnload(This) (This)->lpVtbl->DictationUnload(This)
17118 #define ISpeechRecoGrammar_DictationSetState(This,State) (This)->lpVtbl->DictationSetState(This,State)
17119 #define ISpeechRecoGrammar_SetWordSequenceData(This,Text,TextLength,Info) (This)->lpVtbl->SetWordSequenceData(This,Text,TextLength,Info)
17120 #define ISpeechRecoGrammar_SetTextSelection(This,Info) (This)->lpVtbl->SetTextSelection(This,Info)
17121 #define ISpeechRecoGrammar_IsPronounceable(This,Word,WordPronounceable) (This)->lpVtbl->IsPronounceable(This,Word,WordPronounceable)
17122 #else
17123 /*** IUnknown methods ***/
17124 static FORCEINLINE HRESULT ISpeechRecoGrammar_QueryInterface(ISpeechRecoGrammar* This,REFIID riid,void **ppvObject) {
17125     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17126 }
17127 static FORCEINLINE ULONG ISpeechRecoGrammar_AddRef(ISpeechRecoGrammar* This) {
17128     return This->lpVtbl->AddRef(This);
17129 }
17130 static FORCEINLINE ULONG ISpeechRecoGrammar_Release(ISpeechRecoGrammar* This) {
17131     return This->lpVtbl->Release(This);
17132 }
17133 /*** IDispatch methods ***/
17134 static FORCEINLINE HRESULT ISpeechRecoGrammar_GetTypeInfoCount(ISpeechRecoGrammar* This,UINT *pctinfo) {
17135     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17136 }
17137 static FORCEINLINE HRESULT ISpeechRecoGrammar_GetTypeInfo(ISpeechRecoGrammar* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17138     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17139 }
17140 static FORCEINLINE HRESULT ISpeechRecoGrammar_GetIDsOfNames(ISpeechRecoGrammar* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17141     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17142 }
17143 static FORCEINLINE HRESULT ISpeechRecoGrammar_Invoke(ISpeechRecoGrammar* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17144     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17145 }
17146 /*** ISpeechRecoGrammar methods ***/
17147 static FORCEINLINE HRESULT ISpeechRecoGrammar_get_Id(ISpeechRecoGrammar* This,VARIANT *Id) {
17148     return This->lpVtbl->get_Id(This,Id);
17149 }
17150 static FORCEINLINE HRESULT ISpeechRecoGrammar_get_RecoContext(ISpeechRecoGrammar* This,ISpeechRecoContext **RecoContext) {
17151     return This->lpVtbl->get_RecoContext(This,RecoContext);
17152 }
17153 static FORCEINLINE HRESULT ISpeechRecoGrammar_put_State(ISpeechRecoGrammar* This,SpeechGrammarState State) {
17154     return This->lpVtbl->put_State(This,State);
17155 }
17156 static FORCEINLINE HRESULT ISpeechRecoGrammar_get_State(ISpeechRecoGrammar* This,SpeechGrammarState *State) {
17157     return This->lpVtbl->get_State(This,State);
17158 }
17159 static FORCEINLINE HRESULT ISpeechRecoGrammar_get_Rules(ISpeechRecoGrammar* This,ISpeechGrammarRules **Rules) {
17160     return This->lpVtbl->get_Rules(This,Rules);
17161 }
17162 static FORCEINLINE HRESULT ISpeechRecoGrammar_Reset(ISpeechRecoGrammar* This,SpeechLanguageId NewLanguage) {
17163     return This->lpVtbl->Reset(This,NewLanguage);
17164 }
17165 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromFile(ISpeechRecoGrammar* This,const BSTR FileName,SpeechLoadOption LoadOption) {
17166     return This->lpVtbl->CmdLoadFromFile(This,FileName,LoadOption);
17167 }
17168 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromObject(ISpeechRecoGrammar* This,const BSTR ClassId,const BSTR GrammarName,SpeechLoadOption LoadOption) {
17169     return This->lpVtbl->CmdLoadFromObject(This,ClassId,GrammarName,LoadOption);
17170 }
17171 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromResource(ISpeechRecoGrammar* This,LONG hModule,VARIANT ResourceName,VARIANT ResourceType,SpeechLanguageId LanguageId,SpeechLoadOption LoadOption) {
17172     return This->lpVtbl->CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption);
17173 }
17174 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromMemory(ISpeechRecoGrammar* This,VARIANT GrammarData,SpeechLoadOption LoadOption) {
17175     return This->lpVtbl->CmdLoadFromMemory(This,GrammarData,LoadOption);
17176 }
17177 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar(ISpeechRecoGrammar* This,const BSTR ProprietaryGuid,const BSTR ProprietaryString,VARIANT ProprietaryData,SpeechLoadOption LoadOption) {
17178     return This->lpVtbl->CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption);
17179 }
17180 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdSetRuleState(ISpeechRecoGrammar* This,const BSTR Name,SpeechRuleState State) {
17181     return This->lpVtbl->CmdSetRuleState(This,Name,State);
17182 }
17183 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdSetRuleIdState(ISpeechRecoGrammar* This,LONG RuleId,SpeechRuleState State) {
17184     return This->lpVtbl->CmdSetRuleIdState(This,RuleId,State);
17185 }
17186 static FORCEINLINE HRESULT ISpeechRecoGrammar_DictationLoad(ISpeechRecoGrammar* This,const BSTR TopicName,SpeechLoadOption LoadOption) {
17187     return This->lpVtbl->DictationLoad(This,TopicName,LoadOption);
17188 }
17189 static FORCEINLINE HRESULT ISpeechRecoGrammar_DictationUnload(ISpeechRecoGrammar* This) {
17190     return This->lpVtbl->DictationUnload(This);
17191 }
17192 static FORCEINLINE HRESULT ISpeechRecoGrammar_DictationSetState(ISpeechRecoGrammar* This,SpeechRuleState State) {
17193     return This->lpVtbl->DictationSetState(This,State);
17194 }
17195 static FORCEINLINE HRESULT ISpeechRecoGrammar_SetWordSequenceData(ISpeechRecoGrammar* This,const BSTR Text,LONG TextLength,ISpeechTextSelectionInformation *Info) {
17196     return This->lpVtbl->SetWordSequenceData(This,Text,TextLength,Info);
17197 }
17198 static FORCEINLINE HRESULT ISpeechRecoGrammar_SetTextSelection(ISpeechRecoGrammar* This,ISpeechTextSelectionInformation *Info) {
17199     return This->lpVtbl->SetTextSelection(This,Info);
17200 }
17201 static FORCEINLINE HRESULT ISpeechRecoGrammar_IsPronounceable(ISpeechRecoGrammar* This,const BSTR Word,SpeechWordPronounceable *WordPronounceable) {
17202     return This->lpVtbl->IsPronounceable(This,Word,WordPronounceable);
17203 }
17204 #endif
17205 #endif
17206 
17207 #endif
17208 
17209 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_get_Id_Proxy(
17210     ISpeechRecoGrammar* This,
17211     VARIANT *Id);
17212 void __RPC_STUB ISpeechRecoGrammar_get_Id_Stub(
17213     IRpcStubBuffer* This,
17214     IRpcChannelBuffer* pRpcChannelBuffer,
17215     PRPC_MESSAGE pRpcMessage,
17216     DWORD* pdwStubPhase);
17217 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_get_RecoContext_Proxy(
17218     ISpeechRecoGrammar* This,
17219     ISpeechRecoContext **RecoContext);
17220 void __RPC_STUB ISpeechRecoGrammar_get_RecoContext_Stub(
17221     IRpcStubBuffer* This,
17222     IRpcChannelBuffer* pRpcChannelBuffer,
17223     PRPC_MESSAGE pRpcMessage,
17224     DWORD* pdwStubPhase);
17225 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_put_State_Proxy(
17226     ISpeechRecoGrammar* This,
17227     SpeechGrammarState State);
17228 void __RPC_STUB ISpeechRecoGrammar_put_State_Stub(
17229     IRpcStubBuffer* This,
17230     IRpcChannelBuffer* pRpcChannelBuffer,
17231     PRPC_MESSAGE pRpcMessage,
17232     DWORD* pdwStubPhase);
17233 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_get_State_Proxy(
17234     ISpeechRecoGrammar* This,
17235     SpeechGrammarState *State);
17236 void __RPC_STUB ISpeechRecoGrammar_get_State_Stub(
17237     IRpcStubBuffer* This,
17238     IRpcChannelBuffer* pRpcChannelBuffer,
17239     PRPC_MESSAGE pRpcMessage,
17240     DWORD* pdwStubPhase);
17241 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_get_Rules_Proxy(
17242     ISpeechRecoGrammar* This,
17243     ISpeechGrammarRules **Rules);
17244 void __RPC_STUB ISpeechRecoGrammar_get_Rules_Stub(
17245     IRpcStubBuffer* This,
17246     IRpcChannelBuffer* pRpcChannelBuffer,
17247     PRPC_MESSAGE pRpcMessage,
17248     DWORD* pdwStubPhase);
17249 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_Reset_Proxy(
17250     ISpeechRecoGrammar* This,
17251     SpeechLanguageId NewLanguage);
17252 void __RPC_STUB ISpeechRecoGrammar_Reset_Stub(
17253     IRpcStubBuffer* This,
17254     IRpcChannelBuffer* pRpcChannelBuffer,
17255     PRPC_MESSAGE pRpcMessage,
17256     DWORD* pdwStubPhase);
17257 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_CmdLoadFromFile_Proxy(
17258     ISpeechRecoGrammar* This,
17259     const BSTR FileName,
17260     SpeechLoadOption LoadOption);
17261 void __RPC_STUB ISpeechRecoGrammar_CmdLoadFromFile_Stub(
17262     IRpcStubBuffer* This,
17263     IRpcChannelBuffer* pRpcChannelBuffer,
17264     PRPC_MESSAGE pRpcMessage,
17265     DWORD* pdwStubPhase);
17266 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_CmdLoadFromObject_Proxy(
17267     ISpeechRecoGrammar* This,
17268     const BSTR ClassId,
17269     const BSTR GrammarName,
17270     SpeechLoadOption LoadOption);
17271 void __RPC_STUB ISpeechRecoGrammar_CmdLoadFromObject_Stub(
17272     IRpcStubBuffer* This,
17273     IRpcChannelBuffer* pRpcChannelBuffer,
17274     PRPC_MESSAGE pRpcMessage,
17275     DWORD* pdwStubPhase);
17276 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_CmdLoadFromResource_Proxy(
17277     ISpeechRecoGrammar* This,
17278     LONG hModule,
17279     VARIANT ResourceName,
17280     VARIANT ResourceType,
17281     SpeechLanguageId LanguageId,
17282     SpeechLoadOption LoadOption);
17283 void __RPC_STUB ISpeechRecoGrammar_CmdLoadFromResource_Stub(
17284     IRpcStubBuffer* This,
17285     IRpcChannelBuffer* pRpcChannelBuffer,
17286     PRPC_MESSAGE pRpcMessage,
17287     DWORD* pdwStubPhase);
17288 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_CmdLoadFromMemory_Proxy(
17289     ISpeechRecoGrammar* This,
17290     VARIANT GrammarData,
17291     SpeechLoadOption LoadOption);
17292 void __RPC_STUB ISpeechRecoGrammar_CmdLoadFromMemory_Stub(
17293     IRpcStubBuffer* This,
17294     IRpcChannelBuffer* pRpcChannelBuffer,
17295     PRPC_MESSAGE pRpcMessage,
17296     DWORD* pdwStubPhase);
17297 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar_Proxy(
17298     ISpeechRecoGrammar* This,
17299     const BSTR ProprietaryGuid,
17300     const BSTR ProprietaryString,
17301     VARIANT ProprietaryData,
17302     SpeechLoadOption LoadOption);
17303 void __RPC_STUB ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar_Stub(
17304     IRpcStubBuffer* This,
17305     IRpcChannelBuffer* pRpcChannelBuffer,
17306     PRPC_MESSAGE pRpcMessage,
17307     DWORD* pdwStubPhase);
17308 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_CmdSetRuleState_Proxy(
17309     ISpeechRecoGrammar* This,
17310     const BSTR Name,
17311     SpeechRuleState State);
17312 void __RPC_STUB ISpeechRecoGrammar_CmdSetRuleState_Stub(
17313     IRpcStubBuffer* This,
17314     IRpcChannelBuffer* pRpcChannelBuffer,
17315     PRPC_MESSAGE pRpcMessage,
17316     DWORD* pdwStubPhase);
17317 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_CmdSetRuleIdState_Proxy(
17318     ISpeechRecoGrammar* This,
17319     LONG RuleId,
17320     SpeechRuleState State);
17321 void __RPC_STUB ISpeechRecoGrammar_CmdSetRuleIdState_Stub(
17322     IRpcStubBuffer* This,
17323     IRpcChannelBuffer* pRpcChannelBuffer,
17324     PRPC_MESSAGE pRpcMessage,
17325     DWORD* pdwStubPhase);
17326 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_DictationLoad_Proxy(
17327     ISpeechRecoGrammar* This,
17328     const BSTR TopicName,
17329     SpeechLoadOption LoadOption);
17330 void __RPC_STUB ISpeechRecoGrammar_DictationLoad_Stub(
17331     IRpcStubBuffer* This,
17332     IRpcChannelBuffer* pRpcChannelBuffer,
17333     PRPC_MESSAGE pRpcMessage,
17334     DWORD* pdwStubPhase);
17335 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_DictationUnload_Proxy(
17336     ISpeechRecoGrammar* This);
17337 void __RPC_STUB ISpeechRecoGrammar_DictationUnload_Stub(
17338     IRpcStubBuffer* This,
17339     IRpcChannelBuffer* pRpcChannelBuffer,
17340     PRPC_MESSAGE pRpcMessage,
17341     DWORD* pdwStubPhase);
17342 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_DictationSetState_Proxy(
17343     ISpeechRecoGrammar* This,
17344     SpeechRuleState State);
17345 void __RPC_STUB ISpeechRecoGrammar_DictationSetState_Stub(
17346     IRpcStubBuffer* This,
17347     IRpcChannelBuffer* pRpcChannelBuffer,
17348     PRPC_MESSAGE pRpcMessage,
17349     DWORD* pdwStubPhase);
17350 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_SetWordSequenceData_Proxy(
17351     ISpeechRecoGrammar* This,
17352     const BSTR Text,
17353     LONG TextLength,
17354     ISpeechTextSelectionInformation *Info);
17355 void __RPC_STUB ISpeechRecoGrammar_SetWordSequenceData_Stub(
17356     IRpcStubBuffer* This,
17357     IRpcChannelBuffer* pRpcChannelBuffer,
17358     PRPC_MESSAGE pRpcMessage,
17359     DWORD* pdwStubPhase);
17360 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_SetTextSelection_Proxy(
17361     ISpeechRecoGrammar* This,
17362     ISpeechTextSelectionInformation *Info);
17363 void __RPC_STUB ISpeechRecoGrammar_SetTextSelection_Stub(
17364     IRpcStubBuffer* This,
17365     IRpcChannelBuffer* pRpcChannelBuffer,
17366     PRPC_MESSAGE pRpcMessage,
17367     DWORD* pdwStubPhase);
17368 HRESULT STDMETHODCALLTYPE ISpeechRecoGrammar_IsPronounceable_Proxy(
17369     ISpeechRecoGrammar* This,
17370     const BSTR Word,
17371     SpeechWordPronounceable *WordPronounceable);
17372 void __RPC_STUB ISpeechRecoGrammar_IsPronounceable_Stub(
17373     IRpcStubBuffer* This,
17374     IRpcChannelBuffer* pRpcChannelBuffer,
17375     PRPC_MESSAGE pRpcMessage,
17376     DWORD* pdwStubPhase);
17377 
17378 #endif  /* __ISpeechRecoGrammar_INTERFACE_DEFINED__ */
17379 
17380 /*****************************************************************************
17381  * _ISpeechRecoContextEvents dispinterface
17382  */
17383 #ifndef ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__
17384 #define ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__
17385 
17386 DEFINE_GUID(DIID__ISpeechRecoContextEvents, 0x7b8fcb42, 0x0e9d, 0x4f00, 0xa0,0x48, 0x7b,0x04,0xd6,0x17,0x9d,0x3d);
17387 #if defined(__cplusplus) && !defined(CINTERFACE)
17388 MIDL_INTERFACE("7b8fcb42-0e9d-4f00-a048-7b04d6179d3d")
17389 _ISpeechRecoContextEvents : public IDispatch
17390 {
17391 };
17392 #ifdef __CRT_UUID_DECL
17393 __CRT_UUID_DECL(_ISpeechRecoContextEvents, 0x7b8fcb42, 0x0e9d, 0x4f00, 0xa0,0x48, 0x7b,0x04,0xd6,0x17,0x9d,0x3d)
17394 #endif
17395 #else
17396 typedef struct _ISpeechRecoContextEventsVtbl {
17397     BEGIN_INTERFACE
17398 
17399     /*** IUnknown methods ***/
17400     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17401         _ISpeechRecoContextEvents* This,
17402         REFIID riid,
17403         void **ppvObject);
17404 
17405     ULONG (STDMETHODCALLTYPE *AddRef)(
17406         _ISpeechRecoContextEvents* This);
17407 
17408     ULONG (STDMETHODCALLTYPE *Release)(
17409         _ISpeechRecoContextEvents* This);
17410 
17411     /*** IDispatch methods ***/
17412     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17413         _ISpeechRecoContextEvents* This,
17414         UINT *pctinfo);
17415 
17416     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17417         _ISpeechRecoContextEvents* This,
17418         UINT iTInfo,
17419         LCID lcid,
17420         ITypeInfo **ppTInfo);
17421 
17422     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17423         _ISpeechRecoContextEvents* This,
17424         REFIID riid,
17425         LPOLESTR *rgszNames,
17426         UINT cNames,
17427         LCID lcid,
17428         DISPID *rgDispId);
17429 
17430     HRESULT (STDMETHODCALLTYPE *Invoke)(
17431         _ISpeechRecoContextEvents* This,
17432         DISPID dispIdMember,
17433         REFIID riid,
17434         LCID lcid,
17435         WORD wFlags,
17436         DISPPARAMS *pDispParams,
17437         VARIANT *pVarResult,
17438         EXCEPINFO *pExcepInfo,
17439         UINT *puArgErr);
17440 
17441     END_INTERFACE
17442 } _ISpeechRecoContextEventsVtbl;
17443 interface _ISpeechRecoContextEvents {
17444     CONST_VTBL _ISpeechRecoContextEventsVtbl* lpVtbl;
17445 };
17446 
17447 #ifdef COBJMACROS
17448 #ifndef WIDL_C_INLINE_WRAPPERS
17449 /*** IUnknown methods ***/
17450 #define _ISpeechRecoContextEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17451 #define _ISpeechRecoContextEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
17452 #define _ISpeechRecoContextEvents_Release(This) (This)->lpVtbl->Release(This)
17453 /*** IDispatch methods ***/
17454 #define _ISpeechRecoContextEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17455 #define _ISpeechRecoContextEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17456 #define _ISpeechRecoContextEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17457 #define _ISpeechRecoContextEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17458 #else
17459 /*** IUnknown methods ***/
17460 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_QueryInterface(_ISpeechRecoContextEvents* This,REFIID riid,void **ppvObject) {
17461     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17462 }
17463 static FORCEINLINE ULONG _ISpeechRecoContextEvents_AddRef(_ISpeechRecoContextEvents* This) {
17464     return This->lpVtbl->AddRef(This);
17465 }
17466 static FORCEINLINE ULONG _ISpeechRecoContextEvents_Release(_ISpeechRecoContextEvents* This) {
17467     return This->lpVtbl->Release(This);
17468 }
17469 /*** IDispatch methods ***/
17470 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_GetTypeInfoCount(_ISpeechRecoContextEvents* This,UINT *pctinfo) {
17471     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17472 }
17473 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_GetTypeInfo(_ISpeechRecoContextEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17474     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17475 }
17476 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_GetIDsOfNames(_ISpeechRecoContextEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17477     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17478 }
17479 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_Invoke(_ISpeechRecoContextEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17480     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17481 }
17482 #endif
17483 #endif
17484 
17485 #endif
17486 
17487 #endif  /* ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__ */
17488 
17489 /*****************************************************************************
17490  * ISpeechGrammarRule interface
17491  */
17492 #ifndef __ISpeechGrammarRule_INTERFACE_DEFINED__
17493 #define __ISpeechGrammarRule_INTERFACE_DEFINED__
17494 
17495 DEFINE_GUID(IID_ISpeechGrammarRule, 0xafe719cf, 0x5dd1, 0x44f2, 0x99,0x9c, 0x7a,0x39,0x9f,0x1c,0xfc,0xcc);
17496 #if defined(__cplusplus) && !defined(CINTERFACE)
17497 MIDL_INTERFACE("afe719cf-5dd1-44f2-999c-7a399f1cfccc")
17498 ISpeechGrammarRule : public IDispatch
17499 {
17500     virtual HRESULT STDMETHODCALLTYPE get_Attributes(
17501         SpeechRuleAttributes *Attributes) = 0;
17502 
17503     virtual HRESULT STDMETHODCALLTYPE get_InitialState(
17504         ISpeechGrammarRuleState **State) = 0;
17505 
17506     virtual HRESULT STDMETHODCALLTYPE get_Name(
17507         BSTR *Name) = 0;
17508 
17509     virtual HRESULT STDMETHODCALLTYPE get_Id(
17510         LONG *Id) = 0;
17511 
17512     virtual HRESULT STDMETHODCALLTYPE Clear(
17513         ) = 0;
17514 
17515     virtual HRESULT STDMETHODCALLTYPE AddResource(
17516         const BSTR ResourceName,
17517         const BSTR ResourceValue) = 0;
17518 
17519     virtual HRESULT STDMETHODCALLTYPE AddState(
17520         ISpeechGrammarRuleState **State) = 0;
17521 
17522 };
17523 #ifdef __CRT_UUID_DECL
17524 __CRT_UUID_DECL(ISpeechGrammarRule, 0xafe719cf, 0x5dd1, 0x44f2, 0x99,0x9c, 0x7a,0x39,0x9f,0x1c,0xfc,0xcc)
17525 #endif
17526 #else
17527 typedef struct ISpeechGrammarRuleVtbl {
17528     BEGIN_INTERFACE
17529 
17530     /*** IUnknown methods ***/
17531     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17532         ISpeechGrammarRule* This,
17533         REFIID riid,
17534         void **ppvObject);
17535 
17536     ULONG (STDMETHODCALLTYPE *AddRef)(
17537         ISpeechGrammarRule* This);
17538 
17539     ULONG (STDMETHODCALLTYPE *Release)(
17540         ISpeechGrammarRule* This);
17541 
17542     /*** IDispatch methods ***/
17543     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17544         ISpeechGrammarRule* This,
17545         UINT *pctinfo);
17546 
17547     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17548         ISpeechGrammarRule* This,
17549         UINT iTInfo,
17550         LCID lcid,
17551         ITypeInfo **ppTInfo);
17552 
17553     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17554         ISpeechGrammarRule* This,
17555         REFIID riid,
17556         LPOLESTR *rgszNames,
17557         UINT cNames,
17558         LCID lcid,
17559         DISPID *rgDispId);
17560 
17561     HRESULT (STDMETHODCALLTYPE *Invoke)(
17562         ISpeechGrammarRule* This,
17563         DISPID dispIdMember,
17564         REFIID riid,
17565         LCID lcid,
17566         WORD wFlags,
17567         DISPPARAMS *pDispParams,
17568         VARIANT *pVarResult,
17569         EXCEPINFO *pExcepInfo,
17570         UINT *puArgErr);
17571 
17572     /*** ISpeechGrammarRule methods ***/
17573     HRESULT (STDMETHODCALLTYPE *get_Attributes)(
17574         ISpeechGrammarRule* This,
17575         SpeechRuleAttributes *Attributes);
17576 
17577     HRESULT (STDMETHODCALLTYPE *get_InitialState)(
17578         ISpeechGrammarRule* This,
17579         ISpeechGrammarRuleState **State);
17580 
17581     HRESULT (STDMETHODCALLTYPE *get_Name)(
17582         ISpeechGrammarRule* This,
17583         BSTR *Name);
17584 
17585     HRESULT (STDMETHODCALLTYPE *get_Id)(
17586         ISpeechGrammarRule* This,
17587         LONG *Id);
17588 
17589     HRESULT (STDMETHODCALLTYPE *Clear)(
17590         ISpeechGrammarRule* This);
17591 
17592     HRESULT (STDMETHODCALLTYPE *AddResource)(
17593         ISpeechGrammarRule* This,
17594         const BSTR ResourceName,
17595         const BSTR ResourceValue);
17596 
17597     HRESULT (STDMETHODCALLTYPE *AddState)(
17598         ISpeechGrammarRule* This,
17599         ISpeechGrammarRuleState **State);
17600 
17601     END_INTERFACE
17602 } ISpeechGrammarRuleVtbl;
17603 interface ISpeechGrammarRule {
17604     CONST_VTBL ISpeechGrammarRuleVtbl* lpVtbl;
17605 };
17606 
17607 #ifdef COBJMACROS
17608 #ifndef WIDL_C_INLINE_WRAPPERS
17609 /*** IUnknown methods ***/
17610 #define ISpeechGrammarRule_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17611 #define ISpeechGrammarRule_AddRef(This) (This)->lpVtbl->AddRef(This)
17612 #define ISpeechGrammarRule_Release(This) (This)->lpVtbl->Release(This)
17613 /*** IDispatch methods ***/
17614 #define ISpeechGrammarRule_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17615 #define ISpeechGrammarRule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17616 #define ISpeechGrammarRule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17617 #define ISpeechGrammarRule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17618 /*** ISpeechGrammarRule methods ***/
17619 #define ISpeechGrammarRule_get_Attributes(This,Attributes) (This)->lpVtbl->get_Attributes(This,Attributes)
17620 #define ISpeechGrammarRule_get_InitialState(This,State) (This)->lpVtbl->get_InitialState(This,State)
17621 #define ISpeechGrammarRule_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
17622 #define ISpeechGrammarRule_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
17623 #define ISpeechGrammarRule_Clear(This) (This)->lpVtbl->Clear(This)
17624 #define ISpeechGrammarRule_AddResource(This,ResourceName,ResourceValue) (This)->lpVtbl->AddResource(This,ResourceName,ResourceValue)
17625 #define ISpeechGrammarRule_AddState(This,State) (This)->lpVtbl->AddState(This,State)
17626 #else
17627 /*** IUnknown methods ***/
17628 static FORCEINLINE HRESULT ISpeechGrammarRule_QueryInterface(ISpeechGrammarRule* This,REFIID riid,void **ppvObject) {
17629     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17630 }
17631 static FORCEINLINE ULONG ISpeechGrammarRule_AddRef(ISpeechGrammarRule* This) {
17632     return This->lpVtbl->AddRef(This);
17633 }
17634 static FORCEINLINE ULONG ISpeechGrammarRule_Release(ISpeechGrammarRule* This) {
17635     return This->lpVtbl->Release(This);
17636 }
17637 /*** IDispatch methods ***/
17638 static FORCEINLINE HRESULT ISpeechGrammarRule_GetTypeInfoCount(ISpeechGrammarRule* This,UINT *pctinfo) {
17639     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17640 }
17641 static FORCEINLINE HRESULT ISpeechGrammarRule_GetTypeInfo(ISpeechGrammarRule* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17642     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17643 }
17644 static FORCEINLINE HRESULT ISpeechGrammarRule_GetIDsOfNames(ISpeechGrammarRule* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17645     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17646 }
17647 static FORCEINLINE HRESULT ISpeechGrammarRule_Invoke(ISpeechGrammarRule* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17648     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17649 }
17650 /*** ISpeechGrammarRule methods ***/
17651 static FORCEINLINE HRESULT ISpeechGrammarRule_get_Attributes(ISpeechGrammarRule* This,SpeechRuleAttributes *Attributes) {
17652     return This->lpVtbl->get_Attributes(This,Attributes);
17653 }
17654 static FORCEINLINE HRESULT ISpeechGrammarRule_get_InitialState(ISpeechGrammarRule* This,ISpeechGrammarRuleState **State) {
17655     return This->lpVtbl->get_InitialState(This,State);
17656 }
17657 static FORCEINLINE HRESULT ISpeechGrammarRule_get_Name(ISpeechGrammarRule* This,BSTR *Name) {
17658     return This->lpVtbl->get_Name(This,Name);
17659 }
17660 static FORCEINLINE HRESULT ISpeechGrammarRule_get_Id(ISpeechGrammarRule* This,LONG *Id) {
17661     return This->lpVtbl->get_Id(This,Id);
17662 }
17663 static FORCEINLINE HRESULT ISpeechGrammarRule_Clear(ISpeechGrammarRule* This) {
17664     return This->lpVtbl->Clear(This);
17665 }
17666 static FORCEINLINE HRESULT ISpeechGrammarRule_AddResource(ISpeechGrammarRule* This,const BSTR ResourceName,const BSTR ResourceValue) {
17667     return This->lpVtbl->AddResource(This,ResourceName,ResourceValue);
17668 }
17669 static FORCEINLINE HRESULT ISpeechGrammarRule_AddState(ISpeechGrammarRule* This,ISpeechGrammarRuleState **State) {
17670     return This->lpVtbl->AddState(This,State);
17671 }
17672 #endif
17673 #endif
17674 
17675 #endif
17676 
17677 HRESULT STDMETHODCALLTYPE ISpeechGrammarRule_get_Attributes_Proxy(
17678     ISpeechGrammarRule* This,
17679     SpeechRuleAttributes *Attributes);
17680 void __RPC_STUB ISpeechGrammarRule_get_Attributes_Stub(
17681     IRpcStubBuffer* This,
17682     IRpcChannelBuffer* pRpcChannelBuffer,
17683     PRPC_MESSAGE pRpcMessage,
17684     DWORD* pdwStubPhase);
17685 HRESULT STDMETHODCALLTYPE ISpeechGrammarRule_get_InitialState_Proxy(
17686     ISpeechGrammarRule* This,
17687     ISpeechGrammarRuleState **State);
17688 void __RPC_STUB ISpeechGrammarRule_get_InitialState_Stub(
17689     IRpcStubBuffer* This,
17690     IRpcChannelBuffer* pRpcChannelBuffer,
17691     PRPC_MESSAGE pRpcMessage,
17692     DWORD* pdwStubPhase);
17693 HRESULT STDMETHODCALLTYPE ISpeechGrammarRule_get_Name_Proxy(
17694     ISpeechGrammarRule* This,
17695     BSTR *Name);
17696 void __RPC_STUB ISpeechGrammarRule_get_Name_Stub(
17697     IRpcStubBuffer* This,
17698     IRpcChannelBuffer* pRpcChannelBuffer,
17699     PRPC_MESSAGE pRpcMessage,
17700     DWORD* pdwStubPhase);
17701 HRESULT STDMETHODCALLTYPE ISpeechGrammarRule_get_Id_Proxy(
17702     ISpeechGrammarRule* This,
17703     LONG *Id);
17704 void __RPC_STUB ISpeechGrammarRule_get_Id_Stub(
17705     IRpcStubBuffer* This,
17706     IRpcChannelBuffer* pRpcChannelBuffer,
17707     PRPC_MESSAGE pRpcMessage,
17708     DWORD* pdwStubPhase);
17709 HRESULT STDMETHODCALLTYPE ISpeechGrammarRule_Clear_Proxy(
17710     ISpeechGrammarRule* This);
17711 void __RPC_STUB ISpeechGrammarRule_Clear_Stub(
17712     IRpcStubBuffer* This,
17713     IRpcChannelBuffer* pRpcChannelBuffer,
17714     PRPC_MESSAGE pRpcMessage,
17715     DWORD* pdwStubPhase);
17716 HRESULT STDMETHODCALLTYPE ISpeechGrammarRule_AddResource_Proxy(
17717     ISpeechGrammarRule* This,
17718     const BSTR ResourceName,
17719     const BSTR ResourceValue);
17720 void __RPC_STUB ISpeechGrammarRule_AddResource_Stub(
17721     IRpcStubBuffer* This,
17722     IRpcChannelBuffer* pRpcChannelBuffer,
17723     PRPC_MESSAGE pRpcMessage,
17724     DWORD* pdwStubPhase);
17725 HRESULT STDMETHODCALLTYPE ISpeechGrammarRule_AddState_Proxy(
17726     ISpeechGrammarRule* This,
17727     ISpeechGrammarRuleState **State);
17728 void __RPC_STUB ISpeechGrammarRule_AddState_Stub(
17729     IRpcStubBuffer* This,
17730     IRpcChannelBuffer* pRpcChannelBuffer,
17731     PRPC_MESSAGE pRpcMessage,
17732     DWORD* pdwStubPhase);
17733 
17734 #endif  /* __ISpeechGrammarRule_INTERFACE_DEFINED__ */
17735 
17736 /*****************************************************************************
17737  * ISpeechGrammarRules interface
17738  */
17739 #ifndef __ISpeechGrammarRules_INTERFACE_DEFINED__
17740 #define __ISpeechGrammarRules_INTERFACE_DEFINED__
17741 
17742 DEFINE_GUID(IID_ISpeechGrammarRules, 0x6ffa3b44, 0xfc2d, 0x40d1, 0x8a,0xfc, 0x32,0x91,0x1c,0x7f,0x1a,0xd1);
17743 #if defined(__cplusplus) && !defined(CINTERFACE)
17744 MIDL_INTERFACE("6ffa3b44-fc2d-40d1-8afc-32911c7f1ad1")
17745 ISpeechGrammarRules : public IDispatch
17746 {
17747     virtual HRESULT STDMETHODCALLTYPE get_Count(
17748         LONG *Count) = 0;
17749 
17750     virtual HRESULT STDMETHODCALLTYPE FindRule(
17751         VARIANT RuleNameOrId,
17752         ISpeechGrammarRule **Rule) = 0;
17753 
17754     virtual HRESULT STDMETHODCALLTYPE Item(
17755         LONG Index,
17756         ISpeechGrammarRule **Rule) = 0;
17757 
17758     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
17759         IUnknown **EnumVARIANT) = 0;
17760 
17761     virtual HRESULT STDMETHODCALLTYPE get_Dynamic(
17762         VARIANT_BOOL *Dynamic) = 0;
17763 
17764     virtual HRESULT STDMETHODCALLTYPE Add(
17765         BSTR RuleName,
17766         SpeechRuleAttributes Attributes,
17767         LONG RuleId,
17768         ISpeechGrammarRule **Rule) = 0;
17769 
17770     virtual HRESULT STDMETHODCALLTYPE Commit(
17771         ) = 0;
17772 
17773     virtual HRESULT STDMETHODCALLTYPE CommitAndSave(
17774         BSTR *ErrorText,
17775         VARIANT *SaveStream) = 0;
17776 
17777 };
17778 #ifdef __CRT_UUID_DECL
17779 __CRT_UUID_DECL(ISpeechGrammarRules, 0x6ffa3b44, 0xfc2d, 0x40d1, 0x8a,0xfc, 0x32,0x91,0x1c,0x7f,0x1a,0xd1)
17780 #endif
17781 #else
17782 typedef struct ISpeechGrammarRulesVtbl {
17783     BEGIN_INTERFACE
17784 
17785     /*** IUnknown methods ***/
17786     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17787         ISpeechGrammarRules* This,
17788         REFIID riid,
17789         void **ppvObject);
17790 
17791     ULONG (STDMETHODCALLTYPE *AddRef)(
17792         ISpeechGrammarRules* This);
17793 
17794     ULONG (STDMETHODCALLTYPE *Release)(
17795         ISpeechGrammarRules* This);
17796 
17797     /*** IDispatch methods ***/
17798     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17799         ISpeechGrammarRules* This,
17800         UINT *pctinfo);
17801 
17802     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17803         ISpeechGrammarRules* This,
17804         UINT iTInfo,
17805         LCID lcid,
17806         ITypeInfo **ppTInfo);
17807 
17808     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17809         ISpeechGrammarRules* This,
17810         REFIID riid,
17811         LPOLESTR *rgszNames,
17812         UINT cNames,
17813         LCID lcid,
17814         DISPID *rgDispId);
17815 
17816     HRESULT (STDMETHODCALLTYPE *Invoke)(
17817         ISpeechGrammarRules* This,
17818         DISPID dispIdMember,
17819         REFIID riid,
17820         LCID lcid,
17821         WORD wFlags,
17822         DISPPARAMS *pDispParams,
17823         VARIANT *pVarResult,
17824         EXCEPINFO *pExcepInfo,
17825         UINT *puArgErr);
17826 
17827     /*** ISpeechGrammarRules methods ***/
17828     HRESULT (STDMETHODCALLTYPE *get_Count)(
17829         ISpeechGrammarRules* This,
17830         LONG *Count);
17831 
17832     HRESULT (STDMETHODCALLTYPE *FindRule)(
17833         ISpeechGrammarRules* This,
17834         VARIANT RuleNameOrId,
17835         ISpeechGrammarRule **Rule);
17836 
17837     HRESULT (STDMETHODCALLTYPE *Item)(
17838         ISpeechGrammarRules* This,
17839         LONG Index,
17840         ISpeechGrammarRule **Rule);
17841 
17842     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
17843         ISpeechGrammarRules* This,
17844         IUnknown **EnumVARIANT);
17845 
17846     HRESULT (STDMETHODCALLTYPE *get_Dynamic)(
17847         ISpeechGrammarRules* This,
17848         VARIANT_BOOL *Dynamic);
17849 
17850     HRESULT (STDMETHODCALLTYPE *Add)(
17851         ISpeechGrammarRules* This,
17852         BSTR RuleName,
17853         SpeechRuleAttributes Attributes,
17854         LONG RuleId,
17855         ISpeechGrammarRule **Rule);
17856 
17857     HRESULT (STDMETHODCALLTYPE *Commit)(
17858         ISpeechGrammarRules* This);
17859 
17860     HRESULT (STDMETHODCALLTYPE *CommitAndSave)(
17861         ISpeechGrammarRules* This,
17862         BSTR *ErrorText,
17863         VARIANT *SaveStream);
17864 
17865     END_INTERFACE
17866 } ISpeechGrammarRulesVtbl;
17867 interface ISpeechGrammarRules {
17868     CONST_VTBL ISpeechGrammarRulesVtbl* lpVtbl;
17869 };
17870 
17871 #ifdef COBJMACROS
17872 #ifndef WIDL_C_INLINE_WRAPPERS
17873 /*** IUnknown methods ***/
17874 #define ISpeechGrammarRules_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17875 #define ISpeechGrammarRules_AddRef(This) (This)->lpVtbl->AddRef(This)
17876 #define ISpeechGrammarRules_Release(This) (This)->lpVtbl->Release(This)
17877 /*** IDispatch methods ***/
17878 #define ISpeechGrammarRules_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17879 #define ISpeechGrammarRules_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17880 #define ISpeechGrammarRules_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17881 #define ISpeechGrammarRules_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17882 /*** ISpeechGrammarRules methods ***/
17883 #define ISpeechGrammarRules_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
17884 #define ISpeechGrammarRules_FindRule(This,RuleNameOrId,Rule) (This)->lpVtbl->FindRule(This,RuleNameOrId,Rule)
17885 #define ISpeechGrammarRules_Item(This,Index,Rule) (This)->lpVtbl->Item(This,Index,Rule)
17886 #define ISpeechGrammarRules_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
17887 #define ISpeechGrammarRules_get_Dynamic(This,Dynamic) (This)->lpVtbl->get_Dynamic(This,Dynamic)
17888 #define ISpeechGrammarRules_Add(This,RuleName,Attributes,RuleId,Rule) (This)->lpVtbl->Add(This,RuleName,Attributes,RuleId,Rule)
17889 #define ISpeechGrammarRules_Commit(This) (This)->lpVtbl->Commit(This)
17890 #define ISpeechGrammarRules_CommitAndSave(This,ErrorText,SaveStream) (This)->lpVtbl->CommitAndSave(This,ErrorText,SaveStream)
17891 #else
17892 /*** IUnknown methods ***/
17893 static FORCEINLINE HRESULT ISpeechGrammarRules_QueryInterface(ISpeechGrammarRules* This,REFIID riid,void **ppvObject) {
17894     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17895 }
17896 static FORCEINLINE ULONG ISpeechGrammarRules_AddRef(ISpeechGrammarRules* This) {
17897     return This->lpVtbl->AddRef(This);
17898 }
17899 static FORCEINLINE ULONG ISpeechGrammarRules_Release(ISpeechGrammarRules* This) {
17900     return This->lpVtbl->Release(This);
17901 }
17902 /*** IDispatch methods ***/
17903 static FORCEINLINE HRESULT ISpeechGrammarRules_GetTypeInfoCount(ISpeechGrammarRules* This,UINT *pctinfo) {
17904     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17905 }
17906 static FORCEINLINE HRESULT ISpeechGrammarRules_GetTypeInfo(ISpeechGrammarRules* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17907     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17908 }
17909 static FORCEINLINE HRESULT ISpeechGrammarRules_GetIDsOfNames(ISpeechGrammarRules* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17910     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17911 }
17912 static FORCEINLINE HRESULT ISpeechGrammarRules_Invoke(ISpeechGrammarRules* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17913     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17914 }
17915 /*** ISpeechGrammarRules methods ***/
17916 static FORCEINLINE HRESULT ISpeechGrammarRules_get_Count(ISpeechGrammarRules* This,LONG *Count) {
17917     return This->lpVtbl->get_Count(This,Count);
17918 }
17919 static FORCEINLINE HRESULT ISpeechGrammarRules_FindRule(ISpeechGrammarRules* This,VARIANT RuleNameOrId,ISpeechGrammarRule **Rule) {
17920     return This->lpVtbl->FindRule(This,RuleNameOrId,Rule);
17921 }
17922 static FORCEINLINE HRESULT ISpeechGrammarRules_Item(ISpeechGrammarRules* This,LONG Index,ISpeechGrammarRule **Rule) {
17923     return This->lpVtbl->Item(This,Index,Rule);
17924 }
17925 static FORCEINLINE HRESULT ISpeechGrammarRules_get__NewEnum(ISpeechGrammarRules* This,IUnknown **EnumVARIANT) {
17926     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
17927 }
17928 static FORCEINLINE HRESULT ISpeechGrammarRules_get_Dynamic(ISpeechGrammarRules* This,VARIANT_BOOL *Dynamic) {
17929     return This->lpVtbl->get_Dynamic(This,Dynamic);
17930 }
17931 static FORCEINLINE HRESULT ISpeechGrammarRules_Add(ISpeechGrammarRules* This,BSTR RuleName,SpeechRuleAttributes Attributes,LONG RuleId,ISpeechGrammarRule **Rule) {
17932     return This->lpVtbl->Add(This,RuleName,Attributes,RuleId,Rule);
17933 }
17934 static FORCEINLINE HRESULT ISpeechGrammarRules_Commit(ISpeechGrammarRules* This) {
17935     return This->lpVtbl->Commit(This);
17936 }
17937 static FORCEINLINE HRESULT ISpeechGrammarRules_CommitAndSave(ISpeechGrammarRules* This,BSTR *ErrorText,VARIANT *SaveStream) {
17938     return This->lpVtbl->CommitAndSave(This,ErrorText,SaveStream);
17939 }
17940 #endif
17941 #endif
17942 
17943 #endif
17944 
17945 HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_get_Count_Proxy(
17946     ISpeechGrammarRules* This,
17947     LONG *Count);
17948 void __RPC_STUB ISpeechGrammarRules_get_Count_Stub(
17949     IRpcStubBuffer* This,
17950     IRpcChannelBuffer* pRpcChannelBuffer,
17951     PRPC_MESSAGE pRpcMessage,
17952     DWORD* pdwStubPhase);
17953 HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_FindRule_Proxy(
17954     ISpeechGrammarRules* This,
17955     VARIANT RuleNameOrId,
17956     ISpeechGrammarRule **Rule);
17957 void __RPC_STUB ISpeechGrammarRules_FindRule_Stub(
17958     IRpcStubBuffer* This,
17959     IRpcChannelBuffer* pRpcChannelBuffer,
17960     PRPC_MESSAGE pRpcMessage,
17961     DWORD* pdwStubPhase);
17962 HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_Item_Proxy(
17963     ISpeechGrammarRules* This,
17964     LONG Index,
17965     ISpeechGrammarRule **Rule);
17966 void __RPC_STUB ISpeechGrammarRules_Item_Stub(
17967     IRpcStubBuffer* This,
17968     IRpcChannelBuffer* pRpcChannelBuffer,
17969     PRPC_MESSAGE pRpcMessage,
17970     DWORD* pdwStubPhase);
17971 HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_get__NewEnum_Proxy(
17972     ISpeechGrammarRules* This,
17973     IUnknown **EnumVARIANT);
17974 void __RPC_STUB ISpeechGrammarRules_get__NewEnum_Stub(
17975     IRpcStubBuffer* This,
17976     IRpcChannelBuffer* pRpcChannelBuffer,
17977     PRPC_MESSAGE pRpcMessage,
17978     DWORD* pdwStubPhase);
17979 HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_get_Dynamic_Proxy(
17980     ISpeechGrammarRules* This,
17981     VARIANT_BOOL *Dynamic);
17982 void __RPC_STUB ISpeechGrammarRules_get_Dynamic_Stub(
17983     IRpcStubBuffer* This,
17984     IRpcChannelBuffer* pRpcChannelBuffer,
17985     PRPC_MESSAGE pRpcMessage,
17986     DWORD* pdwStubPhase);
17987 HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_Add_Proxy(
17988     ISpeechGrammarRules* This,
17989     BSTR RuleName,
17990     SpeechRuleAttributes Attributes,
17991     LONG RuleId,
17992     ISpeechGrammarRule **Rule);
17993 void __RPC_STUB ISpeechGrammarRules_Add_Stub(
17994     IRpcStubBuffer* This,
17995     IRpcChannelBuffer* pRpcChannelBuffer,
17996     PRPC_MESSAGE pRpcMessage,
17997     DWORD* pdwStubPhase);
17998 HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_Commit_Proxy(
17999     ISpeechGrammarRules* This);
18000 void __RPC_STUB ISpeechGrammarRules_Commit_Stub(
18001     IRpcStubBuffer* This,
18002     IRpcChannelBuffer* pRpcChannelBuffer,
18003     PRPC_MESSAGE pRpcMessage,
18004     DWORD* pdwStubPhase);
18005 HRESULT STDMETHODCALLTYPE ISpeechGrammarRules_CommitAndSave_Proxy(
18006     ISpeechGrammarRules* This,
18007     BSTR *ErrorText,
18008     VARIANT *SaveStream);
18009 void __RPC_STUB ISpeechGrammarRules_CommitAndSave_Stub(
18010     IRpcStubBuffer* This,
18011     IRpcChannelBuffer* pRpcChannelBuffer,
18012     PRPC_MESSAGE pRpcMessage,
18013     DWORD* pdwStubPhase);
18014 
18015 #endif  /* __ISpeechGrammarRules_INTERFACE_DEFINED__ */
18016 
18017 /*****************************************************************************
18018  * ISpeechGrammarRuleState interface
18019  */
18020 #ifndef __ISpeechGrammarRuleState_INTERFACE_DEFINED__
18021 #define __ISpeechGrammarRuleState_INTERFACE_DEFINED__
18022 
18023 DEFINE_GUID(IID_ISpeechGrammarRuleState, 0xd4286f2c, 0xee67, 0x45ae, 0xb9,0x28, 0x28,0xd6,0x95,0x36,0x2e,0xda);
18024 #if defined(__cplusplus) && !defined(CINTERFACE)
18025 MIDL_INTERFACE("d4286f2c-ee67-45ae-b928-28d695362eda")
18026 ISpeechGrammarRuleState : public IDispatch
18027 {
18028     virtual HRESULT STDMETHODCALLTYPE get_Rule(
18029         ISpeechGrammarRule **Rule) = 0;
18030 
18031     virtual HRESULT STDMETHODCALLTYPE get_Transitions(
18032         ISpeechGrammarRuleStateTransitions **Transitions) = 0;
18033 
18034     virtual HRESULT STDMETHODCALLTYPE AddWordTransition(
18035         ISpeechGrammarRuleState *DestState,
18036         const BSTR Words,
18037         const BSTR Separators = L" ",
18038         SpeechGrammarWordType Type = SGLexical,
18039         const BSTR PropertyName = L"",
18040         LONG PropertyId = 0,
18041         VARIANT *PropertyValue = 0,
18042         float Weight = 1) = 0;
18043 
18044     virtual HRESULT STDMETHODCALLTYPE AddRuleTransition(
18045         ISpeechGrammarRuleState *DestinationState,
18046         ISpeechGrammarRule *Rule,
18047         const BSTR PropertyName = L"",
18048         LONG PropertyId = 0,
18049         VARIANT *PropertyValue = 0,
18050         float Weight = 1) = 0;
18051 
18052     virtual HRESULT STDMETHODCALLTYPE AddSpecialTransition(
18053         ISpeechGrammarRuleState *DestinationState,
18054         SpeechSpecialTransitionType Type,
18055         const BSTR PropertyName = L"",
18056         LONG PropertyId = 0,
18057         VARIANT *PropertyValue = 0,
18058         float Weight = 1) = 0;
18059 
18060 };
18061 #ifdef __CRT_UUID_DECL
18062 __CRT_UUID_DECL(ISpeechGrammarRuleState, 0xd4286f2c, 0xee67, 0x45ae, 0xb9,0x28, 0x28,0xd6,0x95,0x36,0x2e,0xda)
18063 #endif
18064 #else
18065 typedef struct ISpeechGrammarRuleStateVtbl {
18066     BEGIN_INTERFACE
18067 
18068     /*** IUnknown methods ***/
18069     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18070         ISpeechGrammarRuleState* This,
18071         REFIID riid,
18072         void **ppvObject);
18073 
18074     ULONG (STDMETHODCALLTYPE *AddRef)(
18075         ISpeechGrammarRuleState* This);
18076 
18077     ULONG (STDMETHODCALLTYPE *Release)(
18078         ISpeechGrammarRuleState* This);
18079 
18080     /*** IDispatch methods ***/
18081     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18082         ISpeechGrammarRuleState* This,
18083         UINT *pctinfo);
18084 
18085     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18086         ISpeechGrammarRuleState* This,
18087         UINT iTInfo,
18088         LCID lcid,
18089         ITypeInfo **ppTInfo);
18090 
18091     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18092         ISpeechGrammarRuleState* This,
18093         REFIID riid,
18094         LPOLESTR *rgszNames,
18095         UINT cNames,
18096         LCID lcid,
18097         DISPID *rgDispId);
18098 
18099     HRESULT (STDMETHODCALLTYPE *Invoke)(
18100         ISpeechGrammarRuleState* This,
18101         DISPID dispIdMember,
18102         REFIID riid,
18103         LCID lcid,
18104         WORD wFlags,
18105         DISPPARAMS *pDispParams,
18106         VARIANT *pVarResult,
18107         EXCEPINFO *pExcepInfo,
18108         UINT *puArgErr);
18109 
18110     /*** ISpeechGrammarRuleState methods ***/
18111     HRESULT (STDMETHODCALLTYPE *get_Rule)(
18112         ISpeechGrammarRuleState* This,
18113         ISpeechGrammarRule **Rule);
18114 
18115     HRESULT (STDMETHODCALLTYPE *get_Transitions)(
18116         ISpeechGrammarRuleState* This,
18117         ISpeechGrammarRuleStateTransitions **Transitions);
18118 
18119     HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
18120         ISpeechGrammarRuleState* This,
18121         ISpeechGrammarRuleState *DestState,
18122         const BSTR Words,
18123         const BSTR Separators,
18124         SpeechGrammarWordType Type,
18125         const BSTR PropertyName,
18126         LONG PropertyId,
18127         VARIANT *PropertyValue,
18128         float Weight);
18129 
18130     HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
18131         ISpeechGrammarRuleState* This,
18132         ISpeechGrammarRuleState *DestinationState,
18133         ISpeechGrammarRule *Rule,
18134         const BSTR PropertyName,
18135         LONG PropertyId,
18136         VARIANT *PropertyValue,
18137         float Weight);
18138 
18139     HRESULT (STDMETHODCALLTYPE *AddSpecialTransition)(
18140         ISpeechGrammarRuleState* This,
18141         ISpeechGrammarRuleState *DestinationState,
18142         SpeechSpecialTransitionType Type,
18143         const BSTR PropertyName,
18144         LONG PropertyId,
18145         VARIANT *PropertyValue,
18146         float Weight);
18147 
18148     END_INTERFACE
18149 } ISpeechGrammarRuleStateVtbl;
18150 interface ISpeechGrammarRuleState {
18151     CONST_VTBL ISpeechGrammarRuleStateVtbl* lpVtbl;
18152 };
18153 
18154 #ifdef COBJMACROS
18155 #ifndef WIDL_C_INLINE_WRAPPERS
18156 /*** IUnknown methods ***/
18157 #define ISpeechGrammarRuleState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18158 #define ISpeechGrammarRuleState_AddRef(This) (This)->lpVtbl->AddRef(This)
18159 #define ISpeechGrammarRuleState_Release(This) (This)->lpVtbl->Release(This)
18160 /*** IDispatch methods ***/
18161 #define ISpeechGrammarRuleState_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18162 #define ISpeechGrammarRuleState_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18163 #define ISpeechGrammarRuleState_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18164 #define ISpeechGrammarRuleState_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18165 /*** ISpeechGrammarRuleState methods ***/
18166 #define ISpeechGrammarRuleState_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
18167 #define ISpeechGrammarRuleState_get_Transitions(This,Transitions) (This)->lpVtbl->get_Transitions(This,Transitions)
18168 #define ISpeechGrammarRuleState_AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight)
18169 #define ISpeechGrammarRuleState_AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight)
18170 #define ISpeechGrammarRuleState_AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight)
18171 #else
18172 /*** IUnknown methods ***/
18173 static FORCEINLINE HRESULT ISpeechGrammarRuleState_QueryInterface(ISpeechGrammarRuleState* This,REFIID riid,void **ppvObject) {
18174     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18175 }
18176 static FORCEINLINE ULONG ISpeechGrammarRuleState_AddRef(ISpeechGrammarRuleState* This) {
18177     return This->lpVtbl->AddRef(This);
18178 }
18179 static FORCEINLINE ULONG ISpeechGrammarRuleState_Release(ISpeechGrammarRuleState* This) {
18180     return This->lpVtbl->Release(This);
18181 }
18182 /*** IDispatch methods ***/
18183 static FORCEINLINE HRESULT ISpeechGrammarRuleState_GetTypeInfoCount(ISpeechGrammarRuleState* This,UINT *pctinfo) {
18184     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18185 }
18186 static FORCEINLINE HRESULT ISpeechGrammarRuleState_GetTypeInfo(ISpeechGrammarRuleState* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18187     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18188 }
18189 static FORCEINLINE HRESULT ISpeechGrammarRuleState_GetIDsOfNames(ISpeechGrammarRuleState* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18190     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18191 }
18192 static FORCEINLINE HRESULT ISpeechGrammarRuleState_Invoke(ISpeechGrammarRuleState* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18193     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18194 }
18195 /*** ISpeechGrammarRuleState methods ***/
18196 static FORCEINLINE HRESULT ISpeechGrammarRuleState_get_Rule(ISpeechGrammarRuleState* This,ISpeechGrammarRule **Rule) {
18197     return This->lpVtbl->get_Rule(This,Rule);
18198 }
18199 static FORCEINLINE HRESULT ISpeechGrammarRuleState_get_Transitions(ISpeechGrammarRuleState* This,ISpeechGrammarRuleStateTransitions **Transitions) {
18200     return This->lpVtbl->get_Transitions(This,Transitions);
18201 }
18202 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) {
18203     return This->lpVtbl->AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight);
18204 }
18205 static FORCEINLINE HRESULT ISpeechGrammarRuleState_AddRuleTransition(ISpeechGrammarRuleState* This,ISpeechGrammarRuleState *DestinationState,ISpeechGrammarRule *Rule,const BSTR PropertyName,LONG PropertyId,VARIANT *PropertyValue,float Weight) {
18206     return This->lpVtbl->AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight);
18207 }
18208 static FORCEINLINE HRESULT ISpeechGrammarRuleState_AddSpecialTransition(ISpeechGrammarRuleState* This,ISpeechGrammarRuleState *DestinationState,SpeechSpecialTransitionType Type,const BSTR PropertyName,LONG PropertyId,VARIANT *PropertyValue,float Weight) {
18209     return This->lpVtbl->AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight);
18210 }
18211 #endif
18212 #endif
18213 
18214 #endif
18215 
18216 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleState_get_Rule_Proxy(
18217     ISpeechGrammarRuleState* This,
18218     ISpeechGrammarRule **Rule);
18219 void __RPC_STUB ISpeechGrammarRuleState_get_Rule_Stub(
18220     IRpcStubBuffer* This,
18221     IRpcChannelBuffer* pRpcChannelBuffer,
18222     PRPC_MESSAGE pRpcMessage,
18223     DWORD* pdwStubPhase);
18224 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleState_get_Transitions_Proxy(
18225     ISpeechGrammarRuleState* This,
18226     ISpeechGrammarRuleStateTransitions **Transitions);
18227 void __RPC_STUB ISpeechGrammarRuleState_get_Transitions_Stub(
18228     IRpcStubBuffer* This,
18229     IRpcChannelBuffer* pRpcChannelBuffer,
18230     PRPC_MESSAGE pRpcMessage,
18231     DWORD* pdwStubPhase);
18232 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleState_AddWordTransition_Proxy(
18233     ISpeechGrammarRuleState* This,
18234     ISpeechGrammarRuleState *DestState,
18235     const BSTR Words,
18236     const BSTR Separators,
18237     SpeechGrammarWordType Type,
18238     const BSTR PropertyName,
18239     LONG PropertyId,
18240     VARIANT *PropertyValue,
18241     float Weight);
18242 void __RPC_STUB ISpeechGrammarRuleState_AddWordTransition_Stub(
18243     IRpcStubBuffer* This,
18244     IRpcChannelBuffer* pRpcChannelBuffer,
18245     PRPC_MESSAGE pRpcMessage,
18246     DWORD* pdwStubPhase);
18247 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleState_AddRuleTransition_Proxy(
18248     ISpeechGrammarRuleState* This,
18249     ISpeechGrammarRuleState *DestinationState,
18250     ISpeechGrammarRule *Rule,
18251     const BSTR PropertyName,
18252     LONG PropertyId,
18253     VARIANT *PropertyValue,
18254     float Weight);
18255 void __RPC_STUB ISpeechGrammarRuleState_AddRuleTransition_Stub(
18256     IRpcStubBuffer* This,
18257     IRpcChannelBuffer* pRpcChannelBuffer,
18258     PRPC_MESSAGE pRpcMessage,
18259     DWORD* pdwStubPhase);
18260 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleState_AddSpecialTransition_Proxy(
18261     ISpeechGrammarRuleState* This,
18262     ISpeechGrammarRuleState *DestinationState,
18263     SpeechSpecialTransitionType Type,
18264     const BSTR PropertyName,
18265     LONG PropertyId,
18266     VARIANT *PropertyValue,
18267     float Weight);
18268 void __RPC_STUB ISpeechGrammarRuleState_AddSpecialTransition_Stub(
18269     IRpcStubBuffer* This,
18270     IRpcChannelBuffer* pRpcChannelBuffer,
18271     PRPC_MESSAGE pRpcMessage,
18272     DWORD* pdwStubPhase);
18273 
18274 #endif  /* __ISpeechGrammarRuleState_INTERFACE_DEFINED__ */
18275 
18276 /*****************************************************************************
18277  * ISpeechGrammarRuleStateTransitions interface
18278  */
18279 #ifndef __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__
18280 #define __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__
18281 
18282 DEFINE_GUID(IID_ISpeechGrammarRuleStateTransitions, 0xeabce657, 0x75bc, 0x44a2, 0xaa,0x7f, 0xc5,0x64,0x76,0x74,0x29,0x63);
18283 #if defined(__cplusplus) && !defined(CINTERFACE)
18284 MIDL_INTERFACE("eabce657-75bc-44a2-aa7f-c56476742963")
18285 ISpeechGrammarRuleStateTransitions : public IDispatch
18286 {
18287     virtual HRESULT STDMETHODCALLTYPE get_Count(
18288         LONG *Count) = 0;
18289 
18290     virtual HRESULT STDMETHODCALLTYPE Item(
18291         LONG Index,
18292         ISpeechGrammarRuleStateTransition **Transition) = 0;
18293 
18294     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
18295         IUnknown **EnumVARIANT) = 0;
18296 
18297 };
18298 #ifdef __CRT_UUID_DECL
18299 __CRT_UUID_DECL(ISpeechGrammarRuleStateTransitions, 0xeabce657, 0x75bc, 0x44a2, 0xaa,0x7f, 0xc5,0x64,0x76,0x74,0x29,0x63)
18300 #endif
18301 #else
18302 typedef struct ISpeechGrammarRuleStateTransitionsVtbl {
18303     BEGIN_INTERFACE
18304 
18305     /*** IUnknown methods ***/
18306     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18307         ISpeechGrammarRuleStateTransitions* This,
18308         REFIID riid,
18309         void **ppvObject);
18310 
18311     ULONG (STDMETHODCALLTYPE *AddRef)(
18312         ISpeechGrammarRuleStateTransitions* This);
18313 
18314     ULONG (STDMETHODCALLTYPE *Release)(
18315         ISpeechGrammarRuleStateTransitions* This);
18316 
18317     /*** IDispatch methods ***/
18318     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18319         ISpeechGrammarRuleStateTransitions* This,
18320         UINT *pctinfo);
18321 
18322     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18323         ISpeechGrammarRuleStateTransitions* This,
18324         UINT iTInfo,
18325         LCID lcid,
18326         ITypeInfo **ppTInfo);
18327 
18328     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18329         ISpeechGrammarRuleStateTransitions* This,
18330         REFIID riid,
18331         LPOLESTR *rgszNames,
18332         UINT cNames,
18333         LCID lcid,
18334         DISPID *rgDispId);
18335 
18336     HRESULT (STDMETHODCALLTYPE *Invoke)(
18337         ISpeechGrammarRuleStateTransitions* This,
18338         DISPID dispIdMember,
18339         REFIID riid,
18340         LCID lcid,
18341         WORD wFlags,
18342         DISPPARAMS *pDispParams,
18343         VARIANT *pVarResult,
18344         EXCEPINFO *pExcepInfo,
18345         UINT *puArgErr);
18346 
18347     /*** ISpeechGrammarRuleStateTransitions methods ***/
18348     HRESULT (STDMETHODCALLTYPE *get_Count)(
18349         ISpeechGrammarRuleStateTransitions* This,
18350         LONG *Count);
18351 
18352     HRESULT (STDMETHODCALLTYPE *Item)(
18353         ISpeechGrammarRuleStateTransitions* This,
18354         LONG Index,
18355         ISpeechGrammarRuleStateTransition **Transition);
18356 
18357     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
18358         ISpeechGrammarRuleStateTransitions* This,
18359         IUnknown **EnumVARIANT);
18360 
18361     END_INTERFACE
18362 } ISpeechGrammarRuleStateTransitionsVtbl;
18363 interface ISpeechGrammarRuleStateTransitions {
18364     CONST_VTBL ISpeechGrammarRuleStateTransitionsVtbl* lpVtbl;
18365 };
18366 
18367 #ifdef COBJMACROS
18368 #ifndef WIDL_C_INLINE_WRAPPERS
18369 /*** IUnknown methods ***/
18370 #define ISpeechGrammarRuleStateTransitions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18371 #define ISpeechGrammarRuleStateTransitions_AddRef(This) (This)->lpVtbl->AddRef(This)
18372 #define ISpeechGrammarRuleStateTransitions_Release(This) (This)->lpVtbl->Release(This)
18373 /*** IDispatch methods ***/
18374 #define ISpeechGrammarRuleStateTransitions_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18375 #define ISpeechGrammarRuleStateTransitions_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18376 #define ISpeechGrammarRuleStateTransitions_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18377 #define ISpeechGrammarRuleStateTransitions_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18378 /*** ISpeechGrammarRuleStateTransitions methods ***/
18379 #define ISpeechGrammarRuleStateTransitions_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
18380 #define ISpeechGrammarRuleStateTransitions_Item(This,Index,Transition) (This)->lpVtbl->Item(This,Index,Transition)
18381 #define ISpeechGrammarRuleStateTransitions_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
18382 #else
18383 /*** IUnknown methods ***/
18384 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_QueryInterface(ISpeechGrammarRuleStateTransitions* This,REFIID riid,void **ppvObject) {
18385     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18386 }
18387 static FORCEINLINE ULONG ISpeechGrammarRuleStateTransitions_AddRef(ISpeechGrammarRuleStateTransitions* This) {
18388     return This->lpVtbl->AddRef(This);
18389 }
18390 static FORCEINLINE ULONG ISpeechGrammarRuleStateTransitions_Release(ISpeechGrammarRuleStateTransitions* This) {
18391     return This->lpVtbl->Release(This);
18392 }
18393 /*** IDispatch methods ***/
18394 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_GetTypeInfoCount(ISpeechGrammarRuleStateTransitions* This,UINT *pctinfo) {
18395     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18396 }
18397 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_GetTypeInfo(ISpeechGrammarRuleStateTransitions* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18398     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18399 }
18400 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_GetIDsOfNames(ISpeechGrammarRuleStateTransitions* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18401     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18402 }
18403 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_Invoke(ISpeechGrammarRuleStateTransitions* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18404     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18405 }
18406 /*** ISpeechGrammarRuleStateTransitions methods ***/
18407 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_get_Count(ISpeechGrammarRuleStateTransitions* This,LONG *Count) {
18408     return This->lpVtbl->get_Count(This,Count);
18409 }
18410 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_Item(ISpeechGrammarRuleStateTransitions* This,LONG Index,ISpeechGrammarRuleStateTransition **Transition) {
18411     return This->lpVtbl->Item(This,Index,Transition);
18412 }
18413 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_get__NewEnum(ISpeechGrammarRuleStateTransitions* This,IUnknown **EnumVARIANT) {
18414     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
18415 }
18416 #endif
18417 #endif
18418 
18419 #endif
18420 
18421 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransitions_get_Count_Proxy(
18422     ISpeechGrammarRuleStateTransitions* This,
18423     LONG *Count);
18424 void __RPC_STUB ISpeechGrammarRuleStateTransitions_get_Count_Stub(
18425     IRpcStubBuffer* This,
18426     IRpcChannelBuffer* pRpcChannelBuffer,
18427     PRPC_MESSAGE pRpcMessage,
18428     DWORD* pdwStubPhase);
18429 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransitions_Item_Proxy(
18430     ISpeechGrammarRuleStateTransitions* This,
18431     LONG Index,
18432     ISpeechGrammarRuleStateTransition **Transition);
18433 void __RPC_STUB ISpeechGrammarRuleStateTransitions_Item_Stub(
18434     IRpcStubBuffer* This,
18435     IRpcChannelBuffer* pRpcChannelBuffer,
18436     PRPC_MESSAGE pRpcMessage,
18437     DWORD* pdwStubPhase);
18438 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransitions_get__NewEnum_Proxy(
18439     ISpeechGrammarRuleStateTransitions* This,
18440     IUnknown **EnumVARIANT);
18441 void __RPC_STUB ISpeechGrammarRuleStateTransitions_get__NewEnum_Stub(
18442     IRpcStubBuffer* This,
18443     IRpcChannelBuffer* pRpcChannelBuffer,
18444     PRPC_MESSAGE pRpcMessage,
18445     DWORD* pdwStubPhase);
18446 
18447 #endif  /* __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__ */
18448 
18449 /*****************************************************************************
18450  * ISpeechGrammarRuleStateTransition interface
18451  */
18452 #ifndef __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__
18453 #define __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__
18454 
18455 DEFINE_GUID(IID_ISpeechGrammarRuleStateTransition, 0xcafd1db1, 0x41d1, 0x4a06, 0x98,0x63, 0xe2,0xe8,0x1d,0xa1,0x7a,0x9a);
18456 #if defined(__cplusplus) && !defined(CINTERFACE)
18457 MIDL_INTERFACE("cafd1db1-41d1-4a06-9863-e2e81da17a9a")
18458 ISpeechGrammarRuleStateTransition : public IDispatch
18459 {
18460     virtual HRESULT STDMETHODCALLTYPE get_Type(
18461         SpeechGrammarRuleStateTransitionType *Type) = 0;
18462 
18463     virtual HRESULT STDMETHODCALLTYPE get_Text(
18464         BSTR *Text) = 0;
18465 
18466     virtual HRESULT STDMETHODCALLTYPE get_Rule(
18467         ISpeechGrammarRule **Rule) = 0;
18468 
18469     virtual HRESULT STDMETHODCALLTYPE get_Weight(
18470         VARIANT *Weight) = 0;
18471 
18472     virtual HRESULT STDMETHODCALLTYPE get_PropertyName(
18473         BSTR *PropertyName) = 0;
18474 
18475     virtual HRESULT STDMETHODCALLTYPE get_PropertyId(
18476         LONG *PropertyId) = 0;
18477 
18478     virtual HRESULT STDMETHODCALLTYPE get_PropertyValue(
18479         VARIANT *PropertyValue) = 0;
18480 
18481     virtual HRESULT STDMETHODCALLTYPE get_NextState(
18482         ISpeechGrammarRuleState **NextState) = 0;
18483 
18484 };
18485 #ifdef __CRT_UUID_DECL
18486 __CRT_UUID_DECL(ISpeechGrammarRuleStateTransition, 0xcafd1db1, 0x41d1, 0x4a06, 0x98,0x63, 0xe2,0xe8,0x1d,0xa1,0x7a,0x9a)
18487 #endif
18488 #else
18489 typedef struct ISpeechGrammarRuleStateTransitionVtbl {
18490     BEGIN_INTERFACE
18491 
18492     /*** IUnknown methods ***/
18493     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18494         ISpeechGrammarRuleStateTransition* This,
18495         REFIID riid,
18496         void **ppvObject);
18497 
18498     ULONG (STDMETHODCALLTYPE *AddRef)(
18499         ISpeechGrammarRuleStateTransition* This);
18500 
18501     ULONG (STDMETHODCALLTYPE *Release)(
18502         ISpeechGrammarRuleStateTransition* This);
18503 
18504     /*** IDispatch methods ***/
18505     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18506         ISpeechGrammarRuleStateTransition* This,
18507         UINT *pctinfo);
18508 
18509     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18510         ISpeechGrammarRuleStateTransition* This,
18511         UINT iTInfo,
18512         LCID lcid,
18513         ITypeInfo **ppTInfo);
18514 
18515     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18516         ISpeechGrammarRuleStateTransition* This,
18517         REFIID riid,
18518         LPOLESTR *rgszNames,
18519         UINT cNames,
18520         LCID lcid,
18521         DISPID *rgDispId);
18522 
18523     HRESULT (STDMETHODCALLTYPE *Invoke)(
18524         ISpeechGrammarRuleStateTransition* This,
18525         DISPID dispIdMember,
18526         REFIID riid,
18527         LCID lcid,
18528         WORD wFlags,
18529         DISPPARAMS *pDispParams,
18530         VARIANT *pVarResult,
18531         EXCEPINFO *pExcepInfo,
18532         UINT *puArgErr);
18533 
18534     /*** ISpeechGrammarRuleStateTransition methods ***/
18535     HRESULT (STDMETHODCALLTYPE *get_Type)(
18536         ISpeechGrammarRuleStateTransition* This,
18537         SpeechGrammarRuleStateTransitionType *Type);
18538 
18539     HRESULT (STDMETHODCALLTYPE *get_Text)(
18540         ISpeechGrammarRuleStateTransition* This,
18541         BSTR *Text);
18542 
18543     HRESULT (STDMETHODCALLTYPE *get_Rule)(
18544         ISpeechGrammarRuleStateTransition* This,
18545         ISpeechGrammarRule **Rule);
18546 
18547     HRESULT (STDMETHODCALLTYPE *get_Weight)(
18548         ISpeechGrammarRuleStateTransition* This,
18549         VARIANT *Weight);
18550 
18551     HRESULT (STDMETHODCALLTYPE *get_PropertyName)(
18552         ISpeechGrammarRuleStateTransition* This,
18553         BSTR *PropertyName);
18554 
18555     HRESULT (STDMETHODCALLTYPE *get_PropertyId)(
18556         ISpeechGrammarRuleStateTransition* This,
18557         LONG *PropertyId);
18558 
18559     HRESULT (STDMETHODCALLTYPE *get_PropertyValue)(
18560         ISpeechGrammarRuleStateTransition* This,
18561         VARIANT *PropertyValue);
18562 
18563     HRESULT (STDMETHODCALLTYPE *get_NextState)(
18564         ISpeechGrammarRuleStateTransition* This,
18565         ISpeechGrammarRuleState **NextState);
18566 
18567     END_INTERFACE
18568 } ISpeechGrammarRuleStateTransitionVtbl;
18569 interface ISpeechGrammarRuleStateTransition {
18570     CONST_VTBL ISpeechGrammarRuleStateTransitionVtbl* lpVtbl;
18571 };
18572 
18573 #ifdef COBJMACROS
18574 #ifndef WIDL_C_INLINE_WRAPPERS
18575 /*** IUnknown methods ***/
18576 #define ISpeechGrammarRuleStateTransition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18577 #define ISpeechGrammarRuleStateTransition_AddRef(This) (This)->lpVtbl->AddRef(This)
18578 #define ISpeechGrammarRuleStateTransition_Release(This) (This)->lpVtbl->Release(This)
18579 /*** IDispatch methods ***/
18580 #define ISpeechGrammarRuleStateTransition_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18581 #define ISpeechGrammarRuleStateTransition_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18582 #define ISpeechGrammarRuleStateTransition_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18583 #define ISpeechGrammarRuleStateTransition_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18584 /*** ISpeechGrammarRuleStateTransition methods ***/
18585 #define ISpeechGrammarRuleStateTransition_get_Type(This,Type) (This)->lpVtbl->get_Type(This,Type)
18586 #define ISpeechGrammarRuleStateTransition_get_Text(This,Text) (This)->lpVtbl->get_Text(This,Text)
18587 #define ISpeechGrammarRuleStateTransition_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
18588 #define ISpeechGrammarRuleStateTransition_get_Weight(This,Weight) (This)->lpVtbl->get_Weight(This,Weight)
18589 #define ISpeechGrammarRuleStateTransition_get_PropertyName(This,PropertyName) (This)->lpVtbl->get_PropertyName(This,PropertyName)
18590 #define ISpeechGrammarRuleStateTransition_get_PropertyId(This,PropertyId) (This)->lpVtbl->get_PropertyId(This,PropertyId)
18591 #define ISpeechGrammarRuleStateTransition_get_PropertyValue(This,PropertyValue) (This)->lpVtbl->get_PropertyValue(This,PropertyValue)
18592 #define ISpeechGrammarRuleStateTransition_get_NextState(This,NextState) (This)->lpVtbl->get_NextState(This,NextState)
18593 #else
18594 /*** IUnknown methods ***/
18595 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_QueryInterface(ISpeechGrammarRuleStateTransition* This,REFIID riid,void **ppvObject) {
18596     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18597 }
18598 static FORCEINLINE ULONG ISpeechGrammarRuleStateTransition_AddRef(ISpeechGrammarRuleStateTransition* This) {
18599     return This->lpVtbl->AddRef(This);
18600 }
18601 static FORCEINLINE ULONG ISpeechGrammarRuleStateTransition_Release(ISpeechGrammarRuleStateTransition* This) {
18602     return This->lpVtbl->Release(This);
18603 }
18604 /*** IDispatch methods ***/
18605 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_GetTypeInfoCount(ISpeechGrammarRuleStateTransition* This,UINT *pctinfo) {
18606     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18607 }
18608 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_GetTypeInfo(ISpeechGrammarRuleStateTransition* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18609     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18610 }
18611 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_GetIDsOfNames(ISpeechGrammarRuleStateTransition* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18612     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18613 }
18614 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_Invoke(ISpeechGrammarRuleStateTransition* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18615     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18616 }
18617 /*** ISpeechGrammarRuleStateTransition methods ***/
18618 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_Type(ISpeechGrammarRuleStateTransition* This,SpeechGrammarRuleStateTransitionType *Type) {
18619     return This->lpVtbl->get_Type(This,Type);
18620 }
18621 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_Text(ISpeechGrammarRuleStateTransition* This,BSTR *Text) {
18622     return This->lpVtbl->get_Text(This,Text);
18623 }
18624 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_Rule(ISpeechGrammarRuleStateTransition* This,ISpeechGrammarRule **Rule) {
18625     return This->lpVtbl->get_Rule(This,Rule);
18626 }
18627 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_Weight(ISpeechGrammarRuleStateTransition* This,VARIANT *Weight) {
18628     return This->lpVtbl->get_Weight(This,Weight);
18629 }
18630 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_PropertyName(ISpeechGrammarRuleStateTransition* This,BSTR *PropertyName) {
18631     return This->lpVtbl->get_PropertyName(This,PropertyName);
18632 }
18633 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_PropertyId(ISpeechGrammarRuleStateTransition* This,LONG *PropertyId) {
18634     return This->lpVtbl->get_PropertyId(This,PropertyId);
18635 }
18636 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_PropertyValue(ISpeechGrammarRuleStateTransition* This,VARIANT *PropertyValue) {
18637     return This->lpVtbl->get_PropertyValue(This,PropertyValue);
18638 }
18639 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_NextState(ISpeechGrammarRuleStateTransition* This,ISpeechGrammarRuleState **NextState) {
18640     return This->lpVtbl->get_NextState(This,NextState);
18641 }
18642 #endif
18643 #endif
18644 
18645 #endif
18646 
18647 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_Type_Proxy(
18648     ISpeechGrammarRuleStateTransition* This,
18649     SpeechGrammarRuleStateTransitionType *Type);
18650 void __RPC_STUB ISpeechGrammarRuleStateTransition_get_Type_Stub(
18651     IRpcStubBuffer* This,
18652     IRpcChannelBuffer* pRpcChannelBuffer,
18653     PRPC_MESSAGE pRpcMessage,
18654     DWORD* pdwStubPhase);
18655 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_Text_Proxy(
18656     ISpeechGrammarRuleStateTransition* This,
18657     BSTR *Text);
18658 void __RPC_STUB ISpeechGrammarRuleStateTransition_get_Text_Stub(
18659     IRpcStubBuffer* This,
18660     IRpcChannelBuffer* pRpcChannelBuffer,
18661     PRPC_MESSAGE pRpcMessage,
18662     DWORD* pdwStubPhase);
18663 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_Rule_Proxy(
18664     ISpeechGrammarRuleStateTransition* This,
18665     ISpeechGrammarRule **Rule);
18666 void __RPC_STUB ISpeechGrammarRuleStateTransition_get_Rule_Stub(
18667     IRpcStubBuffer* This,
18668     IRpcChannelBuffer* pRpcChannelBuffer,
18669     PRPC_MESSAGE pRpcMessage,
18670     DWORD* pdwStubPhase);
18671 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_Weight_Proxy(
18672     ISpeechGrammarRuleStateTransition* This,
18673     VARIANT *Weight);
18674 void __RPC_STUB ISpeechGrammarRuleStateTransition_get_Weight_Stub(
18675     IRpcStubBuffer* This,
18676     IRpcChannelBuffer* pRpcChannelBuffer,
18677     PRPC_MESSAGE pRpcMessage,
18678     DWORD* pdwStubPhase);
18679 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_PropertyName_Proxy(
18680     ISpeechGrammarRuleStateTransition* This,
18681     BSTR *PropertyName);
18682 void __RPC_STUB ISpeechGrammarRuleStateTransition_get_PropertyName_Stub(
18683     IRpcStubBuffer* This,
18684     IRpcChannelBuffer* pRpcChannelBuffer,
18685     PRPC_MESSAGE pRpcMessage,
18686     DWORD* pdwStubPhase);
18687 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_PropertyId_Proxy(
18688     ISpeechGrammarRuleStateTransition* This,
18689     LONG *PropertyId);
18690 void __RPC_STUB ISpeechGrammarRuleStateTransition_get_PropertyId_Stub(
18691     IRpcStubBuffer* This,
18692     IRpcChannelBuffer* pRpcChannelBuffer,
18693     PRPC_MESSAGE pRpcMessage,
18694     DWORD* pdwStubPhase);
18695 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_PropertyValue_Proxy(
18696     ISpeechGrammarRuleStateTransition* This,
18697     VARIANT *PropertyValue);
18698 void __RPC_STUB ISpeechGrammarRuleStateTransition_get_PropertyValue_Stub(
18699     IRpcStubBuffer* This,
18700     IRpcChannelBuffer* pRpcChannelBuffer,
18701     PRPC_MESSAGE pRpcMessage,
18702     DWORD* pdwStubPhase);
18703 HRESULT STDMETHODCALLTYPE ISpeechGrammarRuleStateTransition_get_NextState_Proxy(
18704     ISpeechGrammarRuleStateTransition* This,
18705     ISpeechGrammarRuleState **NextState);
18706 void __RPC_STUB ISpeechGrammarRuleStateTransition_get_NextState_Stub(
18707     IRpcStubBuffer* This,
18708     IRpcChannelBuffer* pRpcChannelBuffer,
18709     PRPC_MESSAGE pRpcMessage,
18710     DWORD* pdwStubPhase);
18711 
18712 #endif  /* __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__ */
18713 
18714 /*****************************************************************************
18715  * ISpeechTextSelectionInformation interface
18716  */
18717 #ifndef __ISpeechTextSelectionInformation_INTERFACE_DEFINED__
18718 #define __ISpeechTextSelectionInformation_INTERFACE_DEFINED__
18719 
18720 DEFINE_GUID(IID_ISpeechTextSelectionInformation, 0x3b9c7e7a, 0x6eee, 0x4ded, 0x90,0x92, 0x11,0x65,0x72,0x79,0xad,0xbe);
18721 #if defined(__cplusplus) && !defined(CINTERFACE)
18722 MIDL_INTERFACE("3b9c7e7a-6eee-4ded-9092-11657279adbe")
18723 ISpeechTextSelectionInformation : public IDispatch
18724 {
18725     virtual HRESULT STDMETHODCALLTYPE put_ActiveOffset(
18726         LONG ActiveOffset) = 0;
18727 
18728     virtual HRESULT STDMETHODCALLTYPE get_ActiveOffset(
18729         LONG *ActiveOffset) = 0;
18730 
18731     virtual HRESULT STDMETHODCALLTYPE put_ActiveLength(
18732         LONG ActiveLength) = 0;
18733 
18734     virtual HRESULT STDMETHODCALLTYPE get_ActiveLength(
18735         LONG *ActiveLength) = 0;
18736 
18737     virtual HRESULT STDMETHODCALLTYPE put_SelectionOffset(
18738         LONG SelectionOffset) = 0;
18739 
18740     virtual HRESULT STDMETHODCALLTYPE get_SelectionOffset(
18741         LONG *SelectionOffset) = 0;
18742 
18743     virtual HRESULT STDMETHODCALLTYPE put_SelectionLength(
18744         LONG SelectionLength) = 0;
18745 
18746     virtual HRESULT STDMETHODCALLTYPE get_SelectionLength(
18747         LONG *SelectionLength) = 0;
18748 
18749 };
18750 #ifdef __CRT_UUID_DECL
18751 __CRT_UUID_DECL(ISpeechTextSelectionInformation, 0x3b9c7e7a, 0x6eee, 0x4ded, 0x90,0x92, 0x11,0x65,0x72,0x79,0xad,0xbe)
18752 #endif
18753 #else
18754 typedef struct ISpeechTextSelectionInformationVtbl {
18755     BEGIN_INTERFACE
18756 
18757     /*** IUnknown methods ***/
18758     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18759         ISpeechTextSelectionInformation* This,
18760         REFIID riid,
18761         void **ppvObject);
18762 
18763     ULONG (STDMETHODCALLTYPE *AddRef)(
18764         ISpeechTextSelectionInformation* This);
18765 
18766     ULONG (STDMETHODCALLTYPE *Release)(
18767         ISpeechTextSelectionInformation* This);
18768 
18769     /*** IDispatch methods ***/
18770     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18771         ISpeechTextSelectionInformation* This,
18772         UINT *pctinfo);
18773 
18774     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18775         ISpeechTextSelectionInformation* This,
18776         UINT iTInfo,
18777         LCID lcid,
18778         ITypeInfo **ppTInfo);
18779 
18780     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18781         ISpeechTextSelectionInformation* This,
18782         REFIID riid,
18783         LPOLESTR *rgszNames,
18784         UINT cNames,
18785         LCID lcid,
18786         DISPID *rgDispId);
18787 
18788     HRESULT (STDMETHODCALLTYPE *Invoke)(
18789         ISpeechTextSelectionInformation* This,
18790         DISPID dispIdMember,
18791         REFIID riid,
18792         LCID lcid,
18793         WORD wFlags,
18794         DISPPARAMS *pDispParams,
18795         VARIANT *pVarResult,
18796         EXCEPINFO *pExcepInfo,
18797         UINT *puArgErr);
18798 
18799     /*** ISpeechTextSelectionInformation methods ***/
18800     HRESULT (STDMETHODCALLTYPE *put_ActiveOffset)(
18801         ISpeechTextSelectionInformation* This,
18802         LONG ActiveOffset);
18803 
18804     HRESULT (STDMETHODCALLTYPE *get_ActiveOffset)(
18805         ISpeechTextSelectionInformation* This,
18806         LONG *ActiveOffset);
18807 
18808     HRESULT (STDMETHODCALLTYPE *put_ActiveLength)(
18809         ISpeechTextSelectionInformation* This,
18810         LONG ActiveLength);
18811 
18812     HRESULT (STDMETHODCALLTYPE *get_ActiveLength)(
18813         ISpeechTextSelectionInformation* This,
18814         LONG *ActiveLength);
18815 
18816     HRESULT (STDMETHODCALLTYPE *put_SelectionOffset)(
18817         ISpeechTextSelectionInformation* This,
18818         LONG SelectionOffset);
18819 
18820     HRESULT (STDMETHODCALLTYPE *get_SelectionOffset)(
18821         ISpeechTextSelectionInformation* This,
18822         LONG *SelectionOffset);
18823 
18824     HRESULT (STDMETHODCALLTYPE *put_SelectionLength)(
18825         ISpeechTextSelectionInformation* This,
18826         LONG SelectionLength);
18827 
18828     HRESULT (STDMETHODCALLTYPE *get_SelectionLength)(
18829         ISpeechTextSelectionInformation* This,
18830         LONG *SelectionLength);
18831 
18832     END_INTERFACE
18833 } ISpeechTextSelectionInformationVtbl;
18834 interface ISpeechTextSelectionInformation {
18835     CONST_VTBL ISpeechTextSelectionInformationVtbl* lpVtbl;
18836 };
18837 
18838 #ifdef COBJMACROS
18839 #ifndef WIDL_C_INLINE_WRAPPERS
18840 /*** IUnknown methods ***/
18841 #define ISpeechTextSelectionInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18842 #define ISpeechTextSelectionInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
18843 #define ISpeechTextSelectionInformation_Release(This) (This)->lpVtbl->Release(This)
18844 /*** IDispatch methods ***/
18845 #define ISpeechTextSelectionInformation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18846 #define ISpeechTextSelectionInformation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18847 #define ISpeechTextSelectionInformation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18848 #define ISpeechTextSelectionInformation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18849 /*** ISpeechTextSelectionInformation methods ***/
18850 #define ISpeechTextSelectionInformation_put_ActiveOffset(This,ActiveOffset) (This)->lpVtbl->put_ActiveOffset(This,ActiveOffset)
18851 #define ISpeechTextSelectionInformation_get_ActiveOffset(This,ActiveOffset) (This)->lpVtbl->get_ActiveOffset(This,ActiveOffset)
18852 #define ISpeechTextSelectionInformation_put_ActiveLength(This,ActiveLength) (This)->lpVtbl->put_ActiveLength(This,ActiveLength)
18853 #define ISpeechTextSelectionInformation_get_ActiveLength(This,ActiveLength) (This)->lpVtbl->get_ActiveLength(This,ActiveLength)
18854 #define ISpeechTextSelectionInformation_put_SelectionOffset(This,SelectionOffset) (This)->lpVtbl->put_SelectionOffset(This,SelectionOffset)
18855 #define ISpeechTextSelectionInformation_get_SelectionOffset(This,SelectionOffset) (This)->lpVtbl->get_SelectionOffset(This,SelectionOffset)
18856 #define ISpeechTextSelectionInformation_put_SelectionLength(This,SelectionLength) (This)->lpVtbl->put_SelectionLength(This,SelectionLength)
18857 #define ISpeechTextSelectionInformation_get_SelectionLength(This,SelectionLength) (This)->lpVtbl->get_SelectionLength(This,SelectionLength)
18858 #else
18859 /*** IUnknown methods ***/
18860 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_QueryInterface(ISpeechTextSelectionInformation* This,REFIID riid,void **ppvObject) {
18861     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18862 }
18863 static FORCEINLINE ULONG ISpeechTextSelectionInformation_AddRef(ISpeechTextSelectionInformation* This) {
18864     return This->lpVtbl->AddRef(This);
18865 }
18866 static FORCEINLINE ULONG ISpeechTextSelectionInformation_Release(ISpeechTextSelectionInformation* This) {
18867     return This->lpVtbl->Release(This);
18868 }
18869 /*** IDispatch methods ***/
18870 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_GetTypeInfoCount(ISpeechTextSelectionInformation* This,UINT *pctinfo) {
18871     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18872 }
18873 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_GetTypeInfo(ISpeechTextSelectionInformation* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18874     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18875 }
18876 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_GetIDsOfNames(ISpeechTextSelectionInformation* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18877     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18878 }
18879 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_Invoke(ISpeechTextSelectionInformation* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18880     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18881 }
18882 /*** ISpeechTextSelectionInformation methods ***/
18883 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_put_ActiveOffset(ISpeechTextSelectionInformation* This,LONG ActiveOffset) {
18884     return This->lpVtbl->put_ActiveOffset(This,ActiveOffset);
18885 }
18886 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_get_ActiveOffset(ISpeechTextSelectionInformation* This,LONG *ActiveOffset) {
18887     return This->lpVtbl->get_ActiveOffset(This,ActiveOffset);
18888 }
18889 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_put_ActiveLength(ISpeechTextSelectionInformation* This,LONG ActiveLength) {
18890     return This->lpVtbl->put_ActiveLength(This,ActiveLength);
18891 }
18892 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_get_ActiveLength(ISpeechTextSelectionInformation* This,LONG *ActiveLength) {
18893     return This->lpVtbl->get_ActiveLength(This,ActiveLength);
18894 }
18895 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_put_SelectionOffset(ISpeechTextSelectionInformation* This,LONG SelectionOffset) {
18896     return This->lpVtbl->put_SelectionOffset(This,SelectionOffset);
18897 }
18898 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_get_SelectionOffset(ISpeechTextSelectionInformation* This,LONG *SelectionOffset) {
18899     return This->lpVtbl->get_SelectionOffset(This,SelectionOffset);
18900 }
18901 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_put_SelectionLength(ISpeechTextSelectionInformation* This,LONG SelectionLength) {
18902     return This->lpVtbl->put_SelectionLength(This,SelectionLength);
18903 }
18904 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_get_SelectionLength(ISpeechTextSelectionInformation* This,LONG *SelectionLength) {
18905     return This->lpVtbl->get_SelectionLength(This,SelectionLength);
18906 }
18907 #endif
18908 #endif
18909 
18910 #endif
18911 
18912 HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_put_ActiveOffset_Proxy(
18913     ISpeechTextSelectionInformation* This,
18914     LONG ActiveOffset);
18915 void __RPC_STUB ISpeechTextSelectionInformation_put_ActiveOffset_Stub(
18916     IRpcStubBuffer* This,
18917     IRpcChannelBuffer* pRpcChannelBuffer,
18918     PRPC_MESSAGE pRpcMessage,
18919     DWORD* pdwStubPhase);
18920 HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_get_ActiveOffset_Proxy(
18921     ISpeechTextSelectionInformation* This,
18922     LONG *ActiveOffset);
18923 void __RPC_STUB ISpeechTextSelectionInformation_get_ActiveOffset_Stub(
18924     IRpcStubBuffer* This,
18925     IRpcChannelBuffer* pRpcChannelBuffer,
18926     PRPC_MESSAGE pRpcMessage,
18927     DWORD* pdwStubPhase);
18928 HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_put_ActiveLength_Proxy(
18929     ISpeechTextSelectionInformation* This,
18930     LONG ActiveLength);
18931 void __RPC_STUB ISpeechTextSelectionInformation_put_ActiveLength_Stub(
18932     IRpcStubBuffer* This,
18933     IRpcChannelBuffer* pRpcChannelBuffer,
18934     PRPC_MESSAGE pRpcMessage,
18935     DWORD* pdwStubPhase);
18936 HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_get_ActiveLength_Proxy(
18937     ISpeechTextSelectionInformation* This,
18938     LONG *ActiveLength);
18939 void __RPC_STUB ISpeechTextSelectionInformation_get_ActiveLength_Stub(
18940     IRpcStubBuffer* This,
18941     IRpcChannelBuffer* pRpcChannelBuffer,
18942     PRPC_MESSAGE pRpcMessage,
18943     DWORD* pdwStubPhase);
18944 HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_put_SelectionOffset_Proxy(
18945     ISpeechTextSelectionInformation* This,
18946     LONG SelectionOffset);
18947 void __RPC_STUB ISpeechTextSelectionInformation_put_SelectionOffset_Stub(
18948     IRpcStubBuffer* This,
18949     IRpcChannelBuffer* pRpcChannelBuffer,
18950     PRPC_MESSAGE pRpcMessage,
18951     DWORD* pdwStubPhase);
18952 HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_get_SelectionOffset_Proxy(
18953     ISpeechTextSelectionInformation* This,
18954     LONG *SelectionOffset);
18955 void __RPC_STUB ISpeechTextSelectionInformation_get_SelectionOffset_Stub(
18956     IRpcStubBuffer* This,
18957     IRpcChannelBuffer* pRpcChannelBuffer,
18958     PRPC_MESSAGE pRpcMessage,
18959     DWORD* pdwStubPhase);
18960 HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_put_SelectionLength_Proxy(
18961     ISpeechTextSelectionInformation* This,
18962     LONG SelectionLength);
18963 void __RPC_STUB ISpeechTextSelectionInformation_put_SelectionLength_Stub(
18964     IRpcStubBuffer* This,
18965     IRpcChannelBuffer* pRpcChannelBuffer,
18966     PRPC_MESSAGE pRpcMessage,
18967     DWORD* pdwStubPhase);
18968 HRESULT STDMETHODCALLTYPE ISpeechTextSelectionInformation_get_SelectionLength_Proxy(
18969     ISpeechTextSelectionInformation* This,
18970     LONG *SelectionLength);
18971 void __RPC_STUB ISpeechTextSelectionInformation_get_SelectionLength_Stub(
18972     IRpcStubBuffer* This,
18973     IRpcChannelBuffer* pRpcChannelBuffer,
18974     PRPC_MESSAGE pRpcMessage,
18975     DWORD* pdwStubPhase);
18976 
18977 #endif  /* __ISpeechTextSelectionInformation_INTERFACE_DEFINED__ */
18978 
18979 /*****************************************************************************
18980  * ISpeechRecoResult interface
18981  */
18982 #ifndef __ISpeechRecoResult_INTERFACE_DEFINED__
18983 #define __ISpeechRecoResult_INTERFACE_DEFINED__
18984 
18985 DEFINE_GUID(IID_ISpeechRecoResult, 0xed2879cf, 0xced9, 0x4ee6, 0xa5,0x34, 0xde,0x01,0x91,0xd5,0x46,0x8d);
18986 #if defined(__cplusplus) && !defined(CINTERFACE)
18987 MIDL_INTERFACE("ed2879cf-ced9-4ee6-a534-de0191d5468d")
18988 ISpeechRecoResult : public IDispatch
18989 {
18990     virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
18991         ISpeechRecoContext **RecoContext) = 0;
18992 
18993     virtual HRESULT STDMETHODCALLTYPE get_Times(
18994         ISpeechRecoResultTimes **Times) = 0;
18995 
18996     virtual HRESULT STDMETHODCALLTYPE putref_AudioFormat(
18997         ISpeechAudioFormat *Format) = 0;
18998 
18999     virtual HRESULT STDMETHODCALLTYPE get_AudioFormat(
19000         ISpeechAudioFormat **Format) = 0;
19001 
19002     virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
19003         ISpeechPhraseInfo **PhraseInfo) = 0;
19004 
19005     virtual HRESULT STDMETHODCALLTYPE Alternates(
19006         LONG RequestCount,
19007         LONG StartElement,
19008         LONG Elements,
19009         ISpeechPhraseAlternates **Alternates) = 0;
19010 
19011     virtual HRESULT STDMETHODCALLTYPE Audio(
19012         LONG StartElement,
19013         LONG Elements,
19014         ISpeechMemoryStream **Stream) = 0;
19015 
19016     virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
19017         LONG StartElement,
19018         LONG Elements,
19019         SpeechVoiceSpeakFlags Flags,
19020         LONG *StreamNumber) = 0;
19021 
19022     virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
19023         VARIANT *ResultBlock) = 0;
19024 
19025     virtual HRESULT STDMETHODCALLTYPE DiscardResultInfo(
19026         SpeechDiscardType ValueTypes) = 0;
19027 
19028 };
19029 #ifdef __CRT_UUID_DECL
19030 __CRT_UUID_DECL(ISpeechRecoResult, 0xed2879cf, 0xced9, 0x4ee6, 0xa5,0x34, 0xde,0x01,0x91,0xd5,0x46,0x8d)
19031 #endif
19032 #else
19033 typedef struct ISpeechRecoResultVtbl {
19034     BEGIN_INTERFACE
19035 
19036     /*** IUnknown methods ***/
19037     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19038         ISpeechRecoResult* This,
19039         REFIID riid,
19040         void **ppvObject);
19041 
19042     ULONG (STDMETHODCALLTYPE *AddRef)(
19043         ISpeechRecoResult* This);
19044 
19045     ULONG (STDMETHODCALLTYPE *Release)(
19046         ISpeechRecoResult* This);
19047 
19048     /*** IDispatch methods ***/
19049     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19050         ISpeechRecoResult* This,
19051         UINT *pctinfo);
19052 
19053     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19054         ISpeechRecoResult* This,
19055         UINT iTInfo,
19056         LCID lcid,
19057         ITypeInfo **ppTInfo);
19058 
19059     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19060         ISpeechRecoResult* This,
19061         REFIID riid,
19062         LPOLESTR *rgszNames,
19063         UINT cNames,
19064         LCID lcid,
19065         DISPID *rgDispId);
19066 
19067     HRESULT (STDMETHODCALLTYPE *Invoke)(
19068         ISpeechRecoResult* This,
19069         DISPID dispIdMember,
19070         REFIID riid,
19071         LCID lcid,
19072         WORD wFlags,
19073         DISPPARAMS *pDispParams,
19074         VARIANT *pVarResult,
19075         EXCEPINFO *pExcepInfo,
19076         UINT *puArgErr);
19077 
19078     /*** ISpeechRecoResult methods ***/
19079     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
19080         ISpeechRecoResult* This,
19081         ISpeechRecoContext **RecoContext);
19082 
19083     HRESULT (STDMETHODCALLTYPE *get_Times)(
19084         ISpeechRecoResult* This,
19085         ISpeechRecoResultTimes **Times);
19086 
19087     HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
19088         ISpeechRecoResult* This,
19089         ISpeechAudioFormat *Format);
19090 
19091     HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
19092         ISpeechRecoResult* This,
19093         ISpeechAudioFormat **Format);
19094 
19095     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
19096         ISpeechRecoResult* This,
19097         ISpeechPhraseInfo **PhraseInfo);
19098 
19099     HRESULT (STDMETHODCALLTYPE *Alternates)(
19100         ISpeechRecoResult* This,
19101         LONG RequestCount,
19102         LONG StartElement,
19103         LONG Elements,
19104         ISpeechPhraseAlternates **Alternates);
19105 
19106     HRESULT (STDMETHODCALLTYPE *Audio)(
19107         ISpeechRecoResult* This,
19108         LONG StartElement,
19109         LONG Elements,
19110         ISpeechMemoryStream **Stream);
19111 
19112     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
19113         ISpeechRecoResult* This,
19114         LONG StartElement,
19115         LONG Elements,
19116         SpeechVoiceSpeakFlags Flags,
19117         LONG *StreamNumber);
19118 
19119     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
19120         ISpeechRecoResult* This,
19121         VARIANT *ResultBlock);
19122 
19123     HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
19124         ISpeechRecoResult* This,
19125         SpeechDiscardType ValueTypes);
19126 
19127     END_INTERFACE
19128 } ISpeechRecoResultVtbl;
19129 interface ISpeechRecoResult {
19130     CONST_VTBL ISpeechRecoResultVtbl* lpVtbl;
19131 };
19132 
19133 #ifdef COBJMACROS
19134 #ifndef WIDL_C_INLINE_WRAPPERS
19135 /*** IUnknown methods ***/
19136 #define ISpeechRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19137 #define ISpeechRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
19138 #define ISpeechRecoResult_Release(This) (This)->lpVtbl->Release(This)
19139 /*** IDispatch methods ***/
19140 #define ISpeechRecoResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19141 #define ISpeechRecoResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19142 #define ISpeechRecoResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19143 #define ISpeechRecoResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19144 /*** ISpeechRecoResult methods ***/
19145 #define ISpeechRecoResult_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
19146 #define ISpeechRecoResult_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
19147 #define ISpeechRecoResult_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
19148 #define ISpeechRecoResult_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
19149 #define ISpeechRecoResult_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
19150 #define ISpeechRecoResult_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
19151 #define ISpeechRecoResult_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
19152 #define ISpeechRecoResult_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
19153 #define ISpeechRecoResult_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
19154 #define ISpeechRecoResult_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
19155 #else
19156 /*** IUnknown methods ***/
19157 static FORCEINLINE HRESULT ISpeechRecoResult_QueryInterface(ISpeechRecoResult* This,REFIID riid,void **ppvObject) {
19158     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19159 }
19160 static FORCEINLINE ULONG ISpeechRecoResult_AddRef(ISpeechRecoResult* This) {
19161     return This->lpVtbl->AddRef(This);
19162 }
19163 static FORCEINLINE ULONG ISpeechRecoResult_Release(ISpeechRecoResult* This) {
19164     return This->lpVtbl->Release(This);
19165 }
19166 /*** IDispatch methods ***/
19167 static FORCEINLINE HRESULT ISpeechRecoResult_GetTypeInfoCount(ISpeechRecoResult* This,UINT *pctinfo) {
19168     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19169 }
19170 static FORCEINLINE HRESULT ISpeechRecoResult_GetTypeInfo(ISpeechRecoResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19171     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19172 }
19173 static FORCEINLINE HRESULT ISpeechRecoResult_GetIDsOfNames(ISpeechRecoResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19174     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19175 }
19176 static FORCEINLINE HRESULT ISpeechRecoResult_Invoke(ISpeechRecoResult* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19177     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19178 }
19179 /*** ISpeechRecoResult methods ***/
19180 static FORCEINLINE HRESULT ISpeechRecoResult_get_RecoContext(ISpeechRecoResult* This,ISpeechRecoContext **RecoContext) {
19181     return This->lpVtbl->get_RecoContext(This,RecoContext);
19182 }
19183 static FORCEINLINE HRESULT ISpeechRecoResult_get_Times(ISpeechRecoResult* This,ISpeechRecoResultTimes **Times) {
19184     return This->lpVtbl->get_Times(This,Times);
19185 }
19186 static FORCEINLINE HRESULT ISpeechRecoResult_putref_AudioFormat(ISpeechRecoResult* This,ISpeechAudioFormat *Format) {
19187     return This->lpVtbl->putref_AudioFormat(This,Format);
19188 }
19189 static FORCEINLINE HRESULT ISpeechRecoResult_get_AudioFormat(ISpeechRecoResult* This,ISpeechAudioFormat **Format) {
19190     return This->lpVtbl->get_AudioFormat(This,Format);
19191 }
19192 static FORCEINLINE HRESULT ISpeechRecoResult_get_PhraseInfo(ISpeechRecoResult* This,ISpeechPhraseInfo **PhraseInfo) {
19193     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
19194 }
19195 static FORCEINLINE HRESULT ISpeechRecoResult_Alternates(ISpeechRecoResult* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
19196     return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
19197 }
19198 static FORCEINLINE HRESULT ISpeechRecoResult_Audio(ISpeechRecoResult* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
19199     return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
19200 }
19201 static FORCEINLINE HRESULT ISpeechRecoResult_SpeakAudio(ISpeechRecoResult* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
19202     return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
19203 }
19204 static FORCEINLINE HRESULT ISpeechRecoResult_SaveToMemory(ISpeechRecoResult* This,VARIANT *ResultBlock) {
19205     return This->lpVtbl->SaveToMemory(This,ResultBlock);
19206 }
19207 static FORCEINLINE HRESULT ISpeechRecoResult_DiscardResultInfo(ISpeechRecoResult* This,SpeechDiscardType ValueTypes) {
19208     return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
19209 }
19210 #endif
19211 #endif
19212 
19213 #endif
19214 
19215 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_get_RecoContext_Proxy(
19216     ISpeechRecoResult* This,
19217     ISpeechRecoContext **RecoContext);
19218 void __RPC_STUB ISpeechRecoResult_get_RecoContext_Stub(
19219     IRpcStubBuffer* This,
19220     IRpcChannelBuffer* pRpcChannelBuffer,
19221     PRPC_MESSAGE pRpcMessage,
19222     DWORD* pdwStubPhase);
19223 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_get_Times_Proxy(
19224     ISpeechRecoResult* This,
19225     ISpeechRecoResultTimes **Times);
19226 void __RPC_STUB ISpeechRecoResult_get_Times_Stub(
19227     IRpcStubBuffer* This,
19228     IRpcChannelBuffer* pRpcChannelBuffer,
19229     PRPC_MESSAGE pRpcMessage,
19230     DWORD* pdwStubPhase);
19231 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_putref_AudioFormat_Proxy(
19232     ISpeechRecoResult* This,
19233     ISpeechAudioFormat *Format);
19234 void __RPC_STUB ISpeechRecoResult_putref_AudioFormat_Stub(
19235     IRpcStubBuffer* This,
19236     IRpcChannelBuffer* pRpcChannelBuffer,
19237     PRPC_MESSAGE pRpcMessage,
19238     DWORD* pdwStubPhase);
19239 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_get_AudioFormat_Proxy(
19240     ISpeechRecoResult* This,
19241     ISpeechAudioFormat **Format);
19242 void __RPC_STUB ISpeechRecoResult_get_AudioFormat_Stub(
19243     IRpcStubBuffer* This,
19244     IRpcChannelBuffer* pRpcChannelBuffer,
19245     PRPC_MESSAGE pRpcMessage,
19246     DWORD* pdwStubPhase);
19247 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_get_PhraseInfo_Proxy(
19248     ISpeechRecoResult* This,
19249     ISpeechPhraseInfo **PhraseInfo);
19250 void __RPC_STUB ISpeechRecoResult_get_PhraseInfo_Stub(
19251     IRpcStubBuffer* This,
19252     IRpcChannelBuffer* pRpcChannelBuffer,
19253     PRPC_MESSAGE pRpcMessage,
19254     DWORD* pdwStubPhase);
19255 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_Alternates_Proxy(
19256     ISpeechRecoResult* This,
19257     LONG RequestCount,
19258     LONG StartElement,
19259     LONG Elements,
19260     ISpeechPhraseAlternates **Alternates);
19261 void __RPC_STUB ISpeechRecoResult_Alternates_Stub(
19262     IRpcStubBuffer* This,
19263     IRpcChannelBuffer* pRpcChannelBuffer,
19264     PRPC_MESSAGE pRpcMessage,
19265     DWORD* pdwStubPhase);
19266 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_Audio_Proxy(
19267     ISpeechRecoResult* This,
19268     LONG StartElement,
19269     LONG Elements,
19270     ISpeechMemoryStream **Stream);
19271 void __RPC_STUB ISpeechRecoResult_Audio_Stub(
19272     IRpcStubBuffer* This,
19273     IRpcChannelBuffer* pRpcChannelBuffer,
19274     PRPC_MESSAGE pRpcMessage,
19275     DWORD* pdwStubPhase);
19276 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_SpeakAudio_Proxy(
19277     ISpeechRecoResult* This,
19278     LONG StartElement,
19279     LONG Elements,
19280     SpeechVoiceSpeakFlags Flags,
19281     LONG *StreamNumber);
19282 void __RPC_STUB ISpeechRecoResult_SpeakAudio_Stub(
19283     IRpcStubBuffer* This,
19284     IRpcChannelBuffer* pRpcChannelBuffer,
19285     PRPC_MESSAGE pRpcMessage,
19286     DWORD* pdwStubPhase);
19287 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_SaveToMemory_Proxy(
19288     ISpeechRecoResult* This,
19289     VARIANT *ResultBlock);
19290 void __RPC_STUB ISpeechRecoResult_SaveToMemory_Stub(
19291     IRpcStubBuffer* This,
19292     IRpcChannelBuffer* pRpcChannelBuffer,
19293     PRPC_MESSAGE pRpcMessage,
19294     DWORD* pdwStubPhase);
19295 HRESULT STDMETHODCALLTYPE ISpeechRecoResult_DiscardResultInfo_Proxy(
19296     ISpeechRecoResult* This,
19297     SpeechDiscardType ValueTypes);
19298 void __RPC_STUB ISpeechRecoResult_DiscardResultInfo_Stub(
19299     IRpcStubBuffer* This,
19300     IRpcChannelBuffer* pRpcChannelBuffer,
19301     PRPC_MESSAGE pRpcMessage,
19302     DWORD* pdwStubPhase);
19303 
19304 #endif  /* __ISpeechRecoResult_INTERFACE_DEFINED__ */
19305 
19306 /*****************************************************************************
19307  * ISpeechPhraseInfoBuilder interface
19308  */
19309 #ifndef __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__
19310 #define __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__
19311 
19312 DEFINE_GUID(IID_ISpeechPhraseInfoBuilder, 0x3b151836, 0xdf3a, 0x4e0a, 0x84,0x6c, 0xd2,0xad,0xc9,0x33,0x43,0x33);
19313 #if defined(__cplusplus) && !defined(CINTERFACE)
19314 MIDL_INTERFACE("3b151836-df3a-4e0a-846c-d2adc9334333")
19315 ISpeechPhraseInfoBuilder : public IDispatch
19316 {
19317     virtual HRESULT STDMETHODCALLTYPE RestorePhraseFromMemory(
19318         VARIANT *PhraseInMemory,
19319         ISpeechPhraseInfo **PhraseInfo) = 0;
19320 
19321 };
19322 #ifdef __CRT_UUID_DECL
19323 __CRT_UUID_DECL(ISpeechPhraseInfoBuilder, 0x3b151836, 0xdf3a, 0x4e0a, 0x84,0x6c, 0xd2,0xad,0xc9,0x33,0x43,0x33)
19324 #endif
19325 #else
19326 typedef struct ISpeechPhraseInfoBuilderVtbl {
19327     BEGIN_INTERFACE
19328 
19329     /*** IUnknown methods ***/
19330     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19331         ISpeechPhraseInfoBuilder* This,
19332         REFIID riid,
19333         void **ppvObject);
19334 
19335     ULONG (STDMETHODCALLTYPE *AddRef)(
19336         ISpeechPhraseInfoBuilder* This);
19337 
19338     ULONG (STDMETHODCALLTYPE *Release)(
19339         ISpeechPhraseInfoBuilder* This);
19340 
19341     /*** IDispatch methods ***/
19342     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19343         ISpeechPhraseInfoBuilder* This,
19344         UINT *pctinfo);
19345 
19346     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19347         ISpeechPhraseInfoBuilder* This,
19348         UINT iTInfo,
19349         LCID lcid,
19350         ITypeInfo **ppTInfo);
19351 
19352     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19353         ISpeechPhraseInfoBuilder* This,
19354         REFIID riid,
19355         LPOLESTR *rgszNames,
19356         UINT cNames,
19357         LCID lcid,
19358         DISPID *rgDispId);
19359 
19360     HRESULT (STDMETHODCALLTYPE *Invoke)(
19361         ISpeechPhraseInfoBuilder* This,
19362         DISPID dispIdMember,
19363         REFIID riid,
19364         LCID lcid,
19365         WORD wFlags,
19366         DISPPARAMS *pDispParams,
19367         VARIANT *pVarResult,
19368         EXCEPINFO *pExcepInfo,
19369         UINT *puArgErr);
19370 
19371     /*** ISpeechPhraseInfoBuilder methods ***/
19372     HRESULT (STDMETHODCALLTYPE *RestorePhraseFromMemory)(
19373         ISpeechPhraseInfoBuilder* This,
19374         VARIANT *PhraseInMemory,
19375         ISpeechPhraseInfo **PhraseInfo);
19376 
19377     END_INTERFACE
19378 } ISpeechPhraseInfoBuilderVtbl;
19379 interface ISpeechPhraseInfoBuilder {
19380     CONST_VTBL ISpeechPhraseInfoBuilderVtbl* lpVtbl;
19381 };
19382 
19383 #ifdef COBJMACROS
19384 #ifndef WIDL_C_INLINE_WRAPPERS
19385 /*** IUnknown methods ***/
19386 #define ISpeechPhraseInfoBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19387 #define ISpeechPhraseInfoBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
19388 #define ISpeechPhraseInfoBuilder_Release(This) (This)->lpVtbl->Release(This)
19389 /*** IDispatch methods ***/
19390 #define ISpeechPhraseInfoBuilder_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19391 #define ISpeechPhraseInfoBuilder_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19392 #define ISpeechPhraseInfoBuilder_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19393 #define ISpeechPhraseInfoBuilder_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19394 /*** ISpeechPhraseInfoBuilder methods ***/
19395 #define ISpeechPhraseInfoBuilder_RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo) (This)->lpVtbl->RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo)
19396 #else
19397 /*** IUnknown methods ***/
19398 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_QueryInterface(ISpeechPhraseInfoBuilder* This,REFIID riid,void **ppvObject) {
19399     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19400 }
19401 static FORCEINLINE ULONG ISpeechPhraseInfoBuilder_AddRef(ISpeechPhraseInfoBuilder* This) {
19402     return This->lpVtbl->AddRef(This);
19403 }
19404 static FORCEINLINE ULONG ISpeechPhraseInfoBuilder_Release(ISpeechPhraseInfoBuilder* This) {
19405     return This->lpVtbl->Release(This);
19406 }
19407 /*** IDispatch methods ***/
19408 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_GetTypeInfoCount(ISpeechPhraseInfoBuilder* This,UINT *pctinfo) {
19409     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19410 }
19411 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_GetTypeInfo(ISpeechPhraseInfoBuilder* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19412     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19413 }
19414 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_GetIDsOfNames(ISpeechPhraseInfoBuilder* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19415     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19416 }
19417 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_Invoke(ISpeechPhraseInfoBuilder* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19418     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19419 }
19420 /*** ISpeechPhraseInfoBuilder methods ***/
19421 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_RestorePhraseFromMemory(ISpeechPhraseInfoBuilder* This,VARIANT *PhraseInMemory,ISpeechPhraseInfo **PhraseInfo) {
19422     return This->lpVtbl->RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo);
19423 }
19424 #endif
19425 #endif
19426 
19427 #endif
19428 
19429 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfoBuilder_RestorePhraseFromMemory_Proxy(
19430     ISpeechPhraseInfoBuilder* This,
19431     VARIANT *PhraseInMemory,
19432     ISpeechPhraseInfo **PhraseInfo);
19433 void __RPC_STUB ISpeechPhraseInfoBuilder_RestorePhraseFromMemory_Stub(
19434     IRpcStubBuffer* This,
19435     IRpcChannelBuffer* pRpcChannelBuffer,
19436     PRPC_MESSAGE pRpcMessage,
19437     DWORD* pdwStubPhase);
19438 
19439 #endif  /* __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__ */
19440 
19441 /*****************************************************************************
19442  * ISpeechRecoResultTimes interface
19443  */
19444 #ifndef __ISpeechRecoResultTimes_INTERFACE_DEFINED__
19445 #define __ISpeechRecoResultTimes_INTERFACE_DEFINED__
19446 
19447 DEFINE_GUID(IID_ISpeechRecoResultTimes, 0x62b3b8fb, 0xf6e7, 0x41be, 0xbd,0xcb, 0x05,0x6b,0x1c,0x29,0xef,0xc0);
19448 #if defined(__cplusplus) && !defined(CINTERFACE)
19449 MIDL_INTERFACE("62b3b8fb-f6e7-41be-bdcb-056b1c29efc0")
19450 ISpeechRecoResultTimes : public IDispatch
19451 {
19452     virtual HRESULT STDMETHODCALLTYPE get_StreamTime(
19453         VARIANT *Time) = 0;
19454 
19455     virtual HRESULT STDMETHODCALLTYPE get_Length(
19456         VARIANT *Length) = 0;
19457 
19458     virtual HRESULT STDMETHODCALLTYPE get_TickCount(
19459         LONG *TickCount) = 0;
19460 
19461     virtual HRESULT STDMETHODCALLTYPE get_OffsetFromStart(
19462         VARIANT *OffsetFromStart) = 0;
19463 
19464 };
19465 #ifdef __CRT_UUID_DECL
19466 __CRT_UUID_DECL(ISpeechRecoResultTimes, 0x62b3b8fb, 0xf6e7, 0x41be, 0xbd,0xcb, 0x05,0x6b,0x1c,0x29,0xef,0xc0)
19467 #endif
19468 #else
19469 typedef struct ISpeechRecoResultTimesVtbl {
19470     BEGIN_INTERFACE
19471 
19472     /*** IUnknown methods ***/
19473     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19474         ISpeechRecoResultTimes* This,
19475         REFIID riid,
19476         void **ppvObject);
19477 
19478     ULONG (STDMETHODCALLTYPE *AddRef)(
19479         ISpeechRecoResultTimes* This);
19480 
19481     ULONG (STDMETHODCALLTYPE *Release)(
19482         ISpeechRecoResultTimes* This);
19483 
19484     /*** IDispatch methods ***/
19485     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19486         ISpeechRecoResultTimes* This,
19487         UINT *pctinfo);
19488 
19489     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19490         ISpeechRecoResultTimes* This,
19491         UINT iTInfo,
19492         LCID lcid,
19493         ITypeInfo **ppTInfo);
19494 
19495     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19496         ISpeechRecoResultTimes* This,
19497         REFIID riid,
19498         LPOLESTR *rgszNames,
19499         UINT cNames,
19500         LCID lcid,
19501         DISPID *rgDispId);
19502 
19503     HRESULT (STDMETHODCALLTYPE *Invoke)(
19504         ISpeechRecoResultTimes* This,
19505         DISPID dispIdMember,
19506         REFIID riid,
19507         LCID lcid,
19508         WORD wFlags,
19509         DISPPARAMS *pDispParams,
19510         VARIANT *pVarResult,
19511         EXCEPINFO *pExcepInfo,
19512         UINT *puArgErr);
19513 
19514     /*** ISpeechRecoResultTimes methods ***/
19515     HRESULT (STDMETHODCALLTYPE *get_StreamTime)(
19516         ISpeechRecoResultTimes* This,
19517         VARIANT *Time);
19518 
19519     HRESULT (STDMETHODCALLTYPE *get_Length)(
19520         ISpeechRecoResultTimes* This,
19521         VARIANT *Length);
19522 
19523     HRESULT (STDMETHODCALLTYPE *get_TickCount)(
19524         ISpeechRecoResultTimes* This,
19525         LONG *TickCount);
19526 
19527     HRESULT (STDMETHODCALLTYPE *get_OffsetFromStart)(
19528         ISpeechRecoResultTimes* This,
19529         VARIANT *OffsetFromStart);
19530 
19531     END_INTERFACE
19532 } ISpeechRecoResultTimesVtbl;
19533 interface ISpeechRecoResultTimes {
19534     CONST_VTBL ISpeechRecoResultTimesVtbl* lpVtbl;
19535 };
19536 
19537 #ifdef COBJMACROS
19538 #ifndef WIDL_C_INLINE_WRAPPERS
19539 /*** IUnknown methods ***/
19540 #define ISpeechRecoResultTimes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19541 #define ISpeechRecoResultTimes_AddRef(This) (This)->lpVtbl->AddRef(This)
19542 #define ISpeechRecoResultTimes_Release(This) (This)->lpVtbl->Release(This)
19543 /*** IDispatch methods ***/
19544 #define ISpeechRecoResultTimes_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19545 #define ISpeechRecoResultTimes_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19546 #define ISpeechRecoResultTimes_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19547 #define ISpeechRecoResultTimes_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19548 /*** ISpeechRecoResultTimes methods ***/
19549 #define ISpeechRecoResultTimes_get_StreamTime(This,Time) (This)->lpVtbl->get_StreamTime(This,Time)
19550 #define ISpeechRecoResultTimes_get_Length(This,Length) (This)->lpVtbl->get_Length(This,Length)
19551 #define ISpeechRecoResultTimes_get_TickCount(This,TickCount) (This)->lpVtbl->get_TickCount(This,TickCount)
19552 #define ISpeechRecoResultTimes_get_OffsetFromStart(This,OffsetFromStart) (This)->lpVtbl->get_OffsetFromStart(This,OffsetFromStart)
19553 #else
19554 /*** IUnknown methods ***/
19555 static FORCEINLINE HRESULT ISpeechRecoResultTimes_QueryInterface(ISpeechRecoResultTimes* This,REFIID riid,void **ppvObject) {
19556     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19557 }
19558 static FORCEINLINE ULONG ISpeechRecoResultTimes_AddRef(ISpeechRecoResultTimes* This) {
19559     return This->lpVtbl->AddRef(This);
19560 }
19561 static FORCEINLINE ULONG ISpeechRecoResultTimes_Release(ISpeechRecoResultTimes* This) {
19562     return This->lpVtbl->Release(This);
19563 }
19564 /*** IDispatch methods ***/
19565 static FORCEINLINE HRESULT ISpeechRecoResultTimes_GetTypeInfoCount(ISpeechRecoResultTimes* This,UINT *pctinfo) {
19566     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19567 }
19568 static FORCEINLINE HRESULT ISpeechRecoResultTimes_GetTypeInfo(ISpeechRecoResultTimes* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19569     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19570 }
19571 static FORCEINLINE HRESULT ISpeechRecoResultTimes_GetIDsOfNames(ISpeechRecoResultTimes* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19572     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19573 }
19574 static FORCEINLINE HRESULT ISpeechRecoResultTimes_Invoke(ISpeechRecoResultTimes* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19575     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19576 }
19577 /*** ISpeechRecoResultTimes methods ***/
19578 static FORCEINLINE HRESULT ISpeechRecoResultTimes_get_StreamTime(ISpeechRecoResultTimes* This,VARIANT *Time) {
19579     return This->lpVtbl->get_StreamTime(This,Time);
19580 }
19581 static FORCEINLINE HRESULT ISpeechRecoResultTimes_get_Length(ISpeechRecoResultTimes* This,VARIANT *Length) {
19582     return This->lpVtbl->get_Length(This,Length);
19583 }
19584 static FORCEINLINE HRESULT ISpeechRecoResultTimes_get_TickCount(ISpeechRecoResultTimes* This,LONG *TickCount) {
19585     return This->lpVtbl->get_TickCount(This,TickCount);
19586 }
19587 static FORCEINLINE HRESULT ISpeechRecoResultTimes_get_OffsetFromStart(ISpeechRecoResultTimes* This,VARIANT *OffsetFromStart) {
19588     return This->lpVtbl->get_OffsetFromStart(This,OffsetFromStart);
19589 }
19590 #endif
19591 #endif
19592 
19593 #endif
19594 
19595 HRESULT STDMETHODCALLTYPE ISpeechRecoResultTimes_get_StreamTime_Proxy(
19596     ISpeechRecoResultTimes* This,
19597     VARIANT *Time);
19598 void __RPC_STUB ISpeechRecoResultTimes_get_StreamTime_Stub(
19599     IRpcStubBuffer* This,
19600     IRpcChannelBuffer* pRpcChannelBuffer,
19601     PRPC_MESSAGE pRpcMessage,
19602     DWORD* pdwStubPhase);
19603 HRESULT STDMETHODCALLTYPE ISpeechRecoResultTimes_get_Length_Proxy(
19604     ISpeechRecoResultTimes* This,
19605     VARIANT *Length);
19606 void __RPC_STUB ISpeechRecoResultTimes_get_Length_Stub(
19607     IRpcStubBuffer* This,
19608     IRpcChannelBuffer* pRpcChannelBuffer,
19609     PRPC_MESSAGE pRpcMessage,
19610     DWORD* pdwStubPhase);
19611 HRESULT STDMETHODCALLTYPE ISpeechRecoResultTimes_get_TickCount_Proxy(
19612     ISpeechRecoResultTimes* This,
19613     LONG *TickCount);
19614 void __RPC_STUB ISpeechRecoResultTimes_get_TickCount_Stub(
19615     IRpcStubBuffer* This,
19616     IRpcChannelBuffer* pRpcChannelBuffer,
19617     PRPC_MESSAGE pRpcMessage,
19618     DWORD* pdwStubPhase);
19619 HRESULT STDMETHODCALLTYPE ISpeechRecoResultTimes_get_OffsetFromStart_Proxy(
19620     ISpeechRecoResultTimes* This,
19621     VARIANT *OffsetFromStart);
19622 void __RPC_STUB ISpeechRecoResultTimes_get_OffsetFromStart_Stub(
19623     IRpcStubBuffer* This,
19624     IRpcChannelBuffer* pRpcChannelBuffer,
19625     PRPC_MESSAGE pRpcMessage,
19626     DWORD* pdwStubPhase);
19627 
19628 #endif  /* __ISpeechRecoResultTimes_INTERFACE_DEFINED__ */
19629 
19630 /*****************************************************************************
19631  * ISpeechPhraseAlternate interface
19632  */
19633 #ifndef __ISpeechPhraseAlternate_INTERFACE_DEFINED__
19634 #define __ISpeechPhraseAlternate_INTERFACE_DEFINED__
19635 
19636 DEFINE_GUID(IID_ISpeechPhraseAlternate, 0x27864a2a, 0x2b9f, 0x4cb8, 0x92,0xd3, 0x0d,0x27,0x22,0xfd,0x1e,0x73);
19637 #if defined(__cplusplus) && !defined(CINTERFACE)
19638 MIDL_INTERFACE("27864a2a-2b9f-4cb8-92d3-0d2722fd1e73")
19639 ISpeechPhraseAlternate : public IDispatch
19640 {
19641     virtual HRESULT STDMETHODCALLTYPE get_RecoResult(
19642         ISpeechRecoResult **RecoResult) = 0;
19643 
19644     virtual HRESULT STDMETHODCALLTYPE get_StartElementInResult(
19645         LONG *StartElement) = 0;
19646 
19647     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElementsInResult(
19648         LONG *NumberOfElements) = 0;
19649 
19650     virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
19651         ISpeechPhraseInfo **PhraseInfo) = 0;
19652 
19653     virtual HRESULT STDMETHODCALLTYPE Commit(
19654         ) = 0;
19655 
19656 };
19657 #ifdef __CRT_UUID_DECL
19658 __CRT_UUID_DECL(ISpeechPhraseAlternate, 0x27864a2a, 0x2b9f, 0x4cb8, 0x92,0xd3, 0x0d,0x27,0x22,0xfd,0x1e,0x73)
19659 #endif
19660 #else
19661 typedef struct ISpeechPhraseAlternateVtbl {
19662     BEGIN_INTERFACE
19663 
19664     /*** IUnknown methods ***/
19665     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19666         ISpeechPhraseAlternate* This,
19667         REFIID riid,
19668         void **ppvObject);
19669 
19670     ULONG (STDMETHODCALLTYPE *AddRef)(
19671         ISpeechPhraseAlternate* This);
19672 
19673     ULONG (STDMETHODCALLTYPE *Release)(
19674         ISpeechPhraseAlternate* This);
19675 
19676     /*** IDispatch methods ***/
19677     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19678         ISpeechPhraseAlternate* This,
19679         UINT *pctinfo);
19680 
19681     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19682         ISpeechPhraseAlternate* This,
19683         UINT iTInfo,
19684         LCID lcid,
19685         ITypeInfo **ppTInfo);
19686 
19687     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19688         ISpeechPhraseAlternate* This,
19689         REFIID riid,
19690         LPOLESTR *rgszNames,
19691         UINT cNames,
19692         LCID lcid,
19693         DISPID *rgDispId);
19694 
19695     HRESULT (STDMETHODCALLTYPE *Invoke)(
19696         ISpeechPhraseAlternate* This,
19697         DISPID dispIdMember,
19698         REFIID riid,
19699         LCID lcid,
19700         WORD wFlags,
19701         DISPPARAMS *pDispParams,
19702         VARIANT *pVarResult,
19703         EXCEPINFO *pExcepInfo,
19704         UINT *puArgErr);
19705 
19706     /*** ISpeechPhraseAlternate methods ***/
19707     HRESULT (STDMETHODCALLTYPE *get_RecoResult)(
19708         ISpeechPhraseAlternate* This,
19709         ISpeechRecoResult **RecoResult);
19710 
19711     HRESULT (STDMETHODCALLTYPE *get_StartElementInResult)(
19712         ISpeechPhraseAlternate* This,
19713         LONG *StartElement);
19714 
19715     HRESULT (STDMETHODCALLTYPE *get_NumberOfElementsInResult)(
19716         ISpeechPhraseAlternate* This,
19717         LONG *NumberOfElements);
19718 
19719     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
19720         ISpeechPhraseAlternate* This,
19721         ISpeechPhraseInfo **PhraseInfo);
19722 
19723     HRESULT (STDMETHODCALLTYPE *Commit)(
19724         ISpeechPhraseAlternate* This);
19725 
19726     END_INTERFACE
19727 } ISpeechPhraseAlternateVtbl;
19728 interface ISpeechPhraseAlternate {
19729     CONST_VTBL ISpeechPhraseAlternateVtbl* lpVtbl;
19730 };
19731 
19732 #ifdef COBJMACROS
19733 #ifndef WIDL_C_INLINE_WRAPPERS
19734 /*** IUnknown methods ***/
19735 #define ISpeechPhraseAlternate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19736 #define ISpeechPhraseAlternate_AddRef(This) (This)->lpVtbl->AddRef(This)
19737 #define ISpeechPhraseAlternate_Release(This) (This)->lpVtbl->Release(This)
19738 /*** IDispatch methods ***/
19739 #define ISpeechPhraseAlternate_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19740 #define ISpeechPhraseAlternate_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19741 #define ISpeechPhraseAlternate_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19742 #define ISpeechPhraseAlternate_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19743 /*** ISpeechPhraseAlternate methods ***/
19744 #define ISpeechPhraseAlternate_get_RecoResult(This,RecoResult) (This)->lpVtbl->get_RecoResult(This,RecoResult)
19745 #define ISpeechPhraseAlternate_get_StartElementInResult(This,StartElement) (This)->lpVtbl->get_StartElementInResult(This,StartElement)
19746 #define ISpeechPhraseAlternate_get_NumberOfElementsInResult(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElementsInResult(This,NumberOfElements)
19747 #define ISpeechPhraseAlternate_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
19748 #define ISpeechPhraseAlternate_Commit(This) (This)->lpVtbl->Commit(This)
19749 #else
19750 /*** IUnknown methods ***/
19751 static FORCEINLINE HRESULT ISpeechPhraseAlternate_QueryInterface(ISpeechPhraseAlternate* This,REFIID riid,void **ppvObject) {
19752     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19753 }
19754 static FORCEINLINE ULONG ISpeechPhraseAlternate_AddRef(ISpeechPhraseAlternate* This) {
19755     return This->lpVtbl->AddRef(This);
19756 }
19757 static FORCEINLINE ULONG ISpeechPhraseAlternate_Release(ISpeechPhraseAlternate* This) {
19758     return This->lpVtbl->Release(This);
19759 }
19760 /*** IDispatch methods ***/
19761 static FORCEINLINE HRESULT ISpeechPhraseAlternate_GetTypeInfoCount(ISpeechPhraseAlternate* This,UINT *pctinfo) {
19762     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19763 }
19764 static FORCEINLINE HRESULT ISpeechPhraseAlternate_GetTypeInfo(ISpeechPhraseAlternate* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19765     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19766 }
19767 static FORCEINLINE HRESULT ISpeechPhraseAlternate_GetIDsOfNames(ISpeechPhraseAlternate* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19768     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19769 }
19770 static FORCEINLINE HRESULT ISpeechPhraseAlternate_Invoke(ISpeechPhraseAlternate* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19771     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19772 }
19773 /*** ISpeechPhraseAlternate methods ***/
19774 static FORCEINLINE HRESULT ISpeechPhraseAlternate_get_RecoResult(ISpeechPhraseAlternate* This,ISpeechRecoResult **RecoResult) {
19775     return This->lpVtbl->get_RecoResult(This,RecoResult);
19776 }
19777 static FORCEINLINE HRESULT ISpeechPhraseAlternate_get_StartElementInResult(ISpeechPhraseAlternate* This,LONG *StartElement) {
19778     return This->lpVtbl->get_StartElementInResult(This,StartElement);
19779 }
19780 static FORCEINLINE HRESULT ISpeechPhraseAlternate_get_NumberOfElementsInResult(ISpeechPhraseAlternate* This,LONG *NumberOfElements) {
19781     return This->lpVtbl->get_NumberOfElementsInResult(This,NumberOfElements);
19782 }
19783 static FORCEINLINE HRESULT ISpeechPhraseAlternate_get_PhraseInfo(ISpeechPhraseAlternate* This,ISpeechPhraseInfo **PhraseInfo) {
19784     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
19785 }
19786 static FORCEINLINE HRESULT ISpeechPhraseAlternate_Commit(ISpeechPhraseAlternate* This) {
19787     return This->lpVtbl->Commit(This);
19788 }
19789 #endif
19790 #endif
19791 
19792 #endif
19793 
19794 HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternate_get_RecoResult_Proxy(
19795     ISpeechPhraseAlternate* This,
19796     ISpeechRecoResult **RecoResult);
19797 void __RPC_STUB ISpeechPhraseAlternate_get_RecoResult_Stub(
19798     IRpcStubBuffer* This,
19799     IRpcChannelBuffer* pRpcChannelBuffer,
19800     PRPC_MESSAGE pRpcMessage,
19801     DWORD* pdwStubPhase);
19802 HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternate_get_StartElementInResult_Proxy(
19803     ISpeechPhraseAlternate* This,
19804     LONG *StartElement);
19805 void __RPC_STUB ISpeechPhraseAlternate_get_StartElementInResult_Stub(
19806     IRpcStubBuffer* This,
19807     IRpcChannelBuffer* pRpcChannelBuffer,
19808     PRPC_MESSAGE pRpcMessage,
19809     DWORD* pdwStubPhase);
19810 HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternate_get_NumberOfElementsInResult_Proxy(
19811     ISpeechPhraseAlternate* This,
19812     LONG *NumberOfElements);
19813 void __RPC_STUB ISpeechPhraseAlternate_get_NumberOfElementsInResult_Stub(
19814     IRpcStubBuffer* This,
19815     IRpcChannelBuffer* pRpcChannelBuffer,
19816     PRPC_MESSAGE pRpcMessage,
19817     DWORD* pdwStubPhase);
19818 HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternate_get_PhraseInfo_Proxy(
19819     ISpeechPhraseAlternate* This,
19820     ISpeechPhraseInfo **PhraseInfo);
19821 void __RPC_STUB ISpeechPhraseAlternate_get_PhraseInfo_Stub(
19822     IRpcStubBuffer* This,
19823     IRpcChannelBuffer* pRpcChannelBuffer,
19824     PRPC_MESSAGE pRpcMessage,
19825     DWORD* pdwStubPhase);
19826 HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternate_Commit_Proxy(
19827     ISpeechPhraseAlternate* This);
19828 void __RPC_STUB ISpeechPhraseAlternate_Commit_Stub(
19829     IRpcStubBuffer* This,
19830     IRpcChannelBuffer* pRpcChannelBuffer,
19831     PRPC_MESSAGE pRpcMessage,
19832     DWORD* pdwStubPhase);
19833 
19834 #endif  /* __ISpeechPhraseAlternate_INTERFACE_DEFINED__ */
19835 
19836 /*****************************************************************************
19837  * ISpeechPhraseAlternates interface
19838  */
19839 #ifndef __ISpeechPhraseAlternates_INTERFACE_DEFINED__
19840 #define __ISpeechPhraseAlternates_INTERFACE_DEFINED__
19841 
19842 DEFINE_GUID(IID_ISpeechPhraseAlternates, 0xb238b6d5, 0xf276, 0x4c3d, 0xa6,0xc1, 0x29,0x74,0x80,0x1c,0x3c,0xc2);
19843 #if defined(__cplusplus) && !defined(CINTERFACE)
19844 MIDL_INTERFACE("b238b6d5-f276-4c3d-a6c1-2974801c3cc2")
19845 ISpeechPhraseAlternates : public IDispatch
19846 {
19847     virtual HRESULT STDMETHODCALLTYPE get_Count(
19848         LONG *Count) = 0;
19849 
19850     virtual HRESULT STDMETHODCALLTYPE Item(
19851         LONG Index,
19852         ISpeechPhraseAlternate **PhraseAlternate) = 0;
19853 
19854     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
19855         IUnknown **EnumVARIANT) = 0;
19856 
19857 };
19858 #ifdef __CRT_UUID_DECL
19859 __CRT_UUID_DECL(ISpeechPhraseAlternates, 0xb238b6d5, 0xf276, 0x4c3d, 0xa6,0xc1, 0x29,0x74,0x80,0x1c,0x3c,0xc2)
19860 #endif
19861 #else
19862 typedef struct ISpeechPhraseAlternatesVtbl {
19863     BEGIN_INTERFACE
19864 
19865     /*** IUnknown methods ***/
19866     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19867         ISpeechPhraseAlternates* This,
19868         REFIID riid,
19869         void **ppvObject);
19870 
19871     ULONG (STDMETHODCALLTYPE *AddRef)(
19872         ISpeechPhraseAlternates* This);
19873 
19874     ULONG (STDMETHODCALLTYPE *Release)(
19875         ISpeechPhraseAlternates* This);
19876 
19877     /*** IDispatch methods ***/
19878     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19879         ISpeechPhraseAlternates* This,
19880         UINT *pctinfo);
19881 
19882     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19883         ISpeechPhraseAlternates* This,
19884         UINT iTInfo,
19885         LCID lcid,
19886         ITypeInfo **ppTInfo);
19887 
19888     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19889         ISpeechPhraseAlternates* This,
19890         REFIID riid,
19891         LPOLESTR *rgszNames,
19892         UINT cNames,
19893         LCID lcid,
19894         DISPID *rgDispId);
19895 
19896     HRESULT (STDMETHODCALLTYPE *Invoke)(
19897         ISpeechPhraseAlternates* This,
19898         DISPID dispIdMember,
19899         REFIID riid,
19900         LCID lcid,
19901         WORD wFlags,
19902         DISPPARAMS *pDispParams,
19903         VARIANT *pVarResult,
19904         EXCEPINFO *pExcepInfo,
19905         UINT *puArgErr);
19906 
19907     /*** ISpeechPhraseAlternates methods ***/
19908     HRESULT (STDMETHODCALLTYPE *get_Count)(
19909         ISpeechPhraseAlternates* This,
19910         LONG *Count);
19911 
19912     HRESULT (STDMETHODCALLTYPE *Item)(
19913         ISpeechPhraseAlternates* This,
19914         LONG Index,
19915         ISpeechPhraseAlternate **PhraseAlternate);
19916 
19917     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
19918         ISpeechPhraseAlternates* This,
19919         IUnknown **EnumVARIANT);
19920 
19921     END_INTERFACE
19922 } ISpeechPhraseAlternatesVtbl;
19923 interface ISpeechPhraseAlternates {
19924     CONST_VTBL ISpeechPhraseAlternatesVtbl* lpVtbl;
19925 };
19926 
19927 #ifdef COBJMACROS
19928 #ifndef WIDL_C_INLINE_WRAPPERS
19929 /*** IUnknown methods ***/
19930 #define ISpeechPhraseAlternates_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19931 #define ISpeechPhraseAlternates_AddRef(This) (This)->lpVtbl->AddRef(This)
19932 #define ISpeechPhraseAlternates_Release(This) (This)->lpVtbl->Release(This)
19933 /*** IDispatch methods ***/
19934 #define ISpeechPhraseAlternates_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19935 #define ISpeechPhraseAlternates_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19936 #define ISpeechPhraseAlternates_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19937 #define ISpeechPhraseAlternates_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19938 /*** ISpeechPhraseAlternates methods ***/
19939 #define ISpeechPhraseAlternates_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
19940 #define ISpeechPhraseAlternates_Item(This,Index,PhraseAlternate) (This)->lpVtbl->Item(This,Index,PhraseAlternate)
19941 #define ISpeechPhraseAlternates_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
19942 #else
19943 /*** IUnknown methods ***/
19944 static FORCEINLINE HRESULT ISpeechPhraseAlternates_QueryInterface(ISpeechPhraseAlternates* This,REFIID riid,void **ppvObject) {
19945     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19946 }
19947 static FORCEINLINE ULONG ISpeechPhraseAlternates_AddRef(ISpeechPhraseAlternates* This) {
19948     return This->lpVtbl->AddRef(This);
19949 }
19950 static FORCEINLINE ULONG ISpeechPhraseAlternates_Release(ISpeechPhraseAlternates* This) {
19951     return This->lpVtbl->Release(This);
19952 }
19953 /*** IDispatch methods ***/
19954 static FORCEINLINE HRESULT ISpeechPhraseAlternates_GetTypeInfoCount(ISpeechPhraseAlternates* This,UINT *pctinfo) {
19955     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19956 }
19957 static FORCEINLINE HRESULT ISpeechPhraseAlternates_GetTypeInfo(ISpeechPhraseAlternates* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19958     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19959 }
19960 static FORCEINLINE HRESULT ISpeechPhraseAlternates_GetIDsOfNames(ISpeechPhraseAlternates* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19961     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19962 }
19963 static FORCEINLINE HRESULT ISpeechPhraseAlternates_Invoke(ISpeechPhraseAlternates* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19964     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19965 }
19966 /*** ISpeechPhraseAlternates methods ***/
19967 static FORCEINLINE HRESULT ISpeechPhraseAlternates_get_Count(ISpeechPhraseAlternates* This,LONG *Count) {
19968     return This->lpVtbl->get_Count(This,Count);
19969 }
19970 static FORCEINLINE HRESULT ISpeechPhraseAlternates_Item(ISpeechPhraseAlternates* This,LONG Index,ISpeechPhraseAlternate **PhraseAlternate) {
19971     return This->lpVtbl->Item(This,Index,PhraseAlternate);
19972 }
19973 static FORCEINLINE HRESULT ISpeechPhraseAlternates_get__NewEnum(ISpeechPhraseAlternates* This,IUnknown **EnumVARIANT) {
19974     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
19975 }
19976 #endif
19977 #endif
19978 
19979 #endif
19980 
19981 HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternates_get_Count_Proxy(
19982     ISpeechPhraseAlternates* This,
19983     LONG *Count);
19984 void __RPC_STUB ISpeechPhraseAlternates_get_Count_Stub(
19985     IRpcStubBuffer* This,
19986     IRpcChannelBuffer* pRpcChannelBuffer,
19987     PRPC_MESSAGE pRpcMessage,
19988     DWORD* pdwStubPhase);
19989 HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternates_Item_Proxy(
19990     ISpeechPhraseAlternates* This,
19991     LONG Index,
19992     ISpeechPhraseAlternate **PhraseAlternate);
19993 void __RPC_STUB ISpeechPhraseAlternates_Item_Stub(
19994     IRpcStubBuffer* This,
19995     IRpcChannelBuffer* pRpcChannelBuffer,
19996     PRPC_MESSAGE pRpcMessage,
19997     DWORD* pdwStubPhase);
19998 HRESULT STDMETHODCALLTYPE ISpeechPhraseAlternates_get__NewEnum_Proxy(
19999     ISpeechPhraseAlternates* This,
20000     IUnknown **EnumVARIANT);
20001 void __RPC_STUB ISpeechPhraseAlternates_get__NewEnum_Stub(
20002     IRpcStubBuffer* This,
20003     IRpcChannelBuffer* pRpcChannelBuffer,
20004     PRPC_MESSAGE pRpcMessage,
20005     DWORD* pdwStubPhase);
20006 
20007 #endif  /* __ISpeechPhraseAlternates_INTERFACE_DEFINED__ */
20008 
20009 /*****************************************************************************
20010  * ISpeechPhraseInfo interface
20011  */
20012 #ifndef __ISpeechPhraseInfo_INTERFACE_DEFINED__
20013 #define __ISpeechPhraseInfo_INTERFACE_DEFINED__
20014 
20015 DEFINE_GUID(IID_ISpeechPhraseInfo, 0x961559cf, 0x4e67, 0x4662, 0x8b,0xf0, 0xd9,0x3f,0x1f,0xcd,0x61,0xb3);
20016 #if defined(__cplusplus) && !defined(CINTERFACE)
20017 MIDL_INTERFACE("961559cf-4e67-4662-8bf0-d93f1fcd61b3")
20018 ISpeechPhraseInfo : public IDispatch
20019 {
20020     virtual HRESULT STDMETHODCALLTYPE get_LanguageId(
20021         LONG *LanguageId) = 0;
20022 
20023     virtual HRESULT STDMETHODCALLTYPE get_GrammarId(
20024         VARIANT *GrammarId) = 0;
20025 
20026     virtual HRESULT STDMETHODCALLTYPE get_StartTime(
20027         VARIANT *StartTime) = 0;
20028 
20029     virtual HRESULT STDMETHODCALLTYPE get_AudioStreamPosition(
20030         VARIANT *AudioStreamPosition) = 0;
20031 
20032     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeBytes(
20033         LONG *pAudioSizeBytes) = 0;
20034 
20035     virtual HRESULT STDMETHODCALLTYPE get_RetainedSizeBytes(
20036         LONG *RetainedSizeBytes) = 0;
20037 
20038     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeTime(
20039         LONG *AudioSizeTime) = 0;
20040 
20041     virtual HRESULT STDMETHODCALLTYPE get_Rule(
20042         ISpeechPhraseRule **Rule) = 0;
20043 
20044     virtual HRESULT STDMETHODCALLTYPE get_Properties(
20045         ISpeechPhraseProperties **Properties) = 0;
20046 
20047     virtual HRESULT STDMETHODCALLTYPE get_Elements(
20048         ISpeechPhraseElements **Elements) = 0;
20049 
20050     virtual HRESULT STDMETHODCALLTYPE get_Replacements(
20051         ISpeechPhraseReplacements **Replacements) = 0;
20052 
20053     virtual HRESULT STDMETHODCALLTYPE get_EngineId(
20054         BSTR *EngineIdGuid) = 0;
20055 
20056     virtual HRESULT STDMETHODCALLTYPE get_EnginePrivateData(
20057         VARIANT *PrivateData) = 0;
20058 
20059     virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
20060         VARIANT *PhraseBlock) = 0;
20061 
20062     virtual HRESULT STDMETHODCALLTYPE GetText(
20063         LONG StartElement,
20064         LONG Elements,
20065         VARIANT_BOOL UseReplacements,
20066         BSTR *Text) = 0;
20067 
20068     virtual HRESULT STDMETHODCALLTYPE GetDisplayAttributes(
20069         LONG StartElement,
20070         LONG Elements,
20071         VARIANT_BOOL UseReplacements,
20072         SpeechDisplayAttributes *DisplayAttributes) = 0;
20073 
20074 };
20075 #ifdef __CRT_UUID_DECL
20076 __CRT_UUID_DECL(ISpeechPhraseInfo, 0x961559cf, 0x4e67, 0x4662, 0x8b,0xf0, 0xd9,0x3f,0x1f,0xcd,0x61,0xb3)
20077 #endif
20078 #else
20079 typedef struct ISpeechPhraseInfoVtbl {
20080     BEGIN_INTERFACE
20081 
20082     /*** IUnknown methods ***/
20083     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20084         ISpeechPhraseInfo* This,
20085         REFIID riid,
20086         void **ppvObject);
20087 
20088     ULONG (STDMETHODCALLTYPE *AddRef)(
20089         ISpeechPhraseInfo* This);
20090 
20091     ULONG (STDMETHODCALLTYPE *Release)(
20092         ISpeechPhraseInfo* This);
20093 
20094     /*** IDispatch methods ***/
20095     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20096         ISpeechPhraseInfo* This,
20097         UINT *pctinfo);
20098 
20099     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20100         ISpeechPhraseInfo* This,
20101         UINT iTInfo,
20102         LCID lcid,
20103         ITypeInfo **ppTInfo);
20104 
20105     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20106         ISpeechPhraseInfo* This,
20107         REFIID riid,
20108         LPOLESTR *rgszNames,
20109         UINT cNames,
20110         LCID lcid,
20111         DISPID *rgDispId);
20112 
20113     HRESULT (STDMETHODCALLTYPE *Invoke)(
20114         ISpeechPhraseInfo* This,
20115         DISPID dispIdMember,
20116         REFIID riid,
20117         LCID lcid,
20118         WORD wFlags,
20119         DISPPARAMS *pDispParams,
20120         VARIANT *pVarResult,
20121         EXCEPINFO *pExcepInfo,
20122         UINT *puArgErr);
20123 
20124     /*** ISpeechPhraseInfo methods ***/
20125     HRESULT (STDMETHODCALLTYPE *get_LanguageId)(
20126         ISpeechPhraseInfo* This,
20127         LONG *LanguageId);
20128 
20129     HRESULT (STDMETHODCALLTYPE *get_GrammarId)(
20130         ISpeechPhraseInfo* This,
20131         VARIANT *GrammarId);
20132 
20133     HRESULT (STDMETHODCALLTYPE *get_StartTime)(
20134         ISpeechPhraseInfo* This,
20135         VARIANT *StartTime);
20136 
20137     HRESULT (STDMETHODCALLTYPE *get_AudioStreamPosition)(
20138         ISpeechPhraseInfo* This,
20139         VARIANT *AudioStreamPosition);
20140 
20141     HRESULT (STDMETHODCALLTYPE *get_AudioSizeBytes)(
20142         ISpeechPhraseInfo* This,
20143         LONG *pAudioSizeBytes);
20144 
20145     HRESULT (STDMETHODCALLTYPE *get_RetainedSizeBytes)(
20146         ISpeechPhraseInfo* This,
20147         LONG *RetainedSizeBytes);
20148 
20149     HRESULT (STDMETHODCALLTYPE *get_AudioSizeTime)(
20150         ISpeechPhraseInfo* This,
20151         LONG *AudioSizeTime);
20152 
20153     HRESULT (STDMETHODCALLTYPE *get_Rule)(
20154         ISpeechPhraseInfo* This,
20155         ISpeechPhraseRule **Rule);
20156 
20157     HRESULT (STDMETHODCALLTYPE *get_Properties)(
20158         ISpeechPhraseInfo* This,
20159         ISpeechPhraseProperties **Properties);
20160 
20161     HRESULT (STDMETHODCALLTYPE *get_Elements)(
20162         ISpeechPhraseInfo* This,
20163         ISpeechPhraseElements **Elements);
20164 
20165     HRESULT (STDMETHODCALLTYPE *get_Replacements)(
20166         ISpeechPhraseInfo* This,
20167         ISpeechPhraseReplacements **Replacements);
20168 
20169     HRESULT (STDMETHODCALLTYPE *get_EngineId)(
20170         ISpeechPhraseInfo* This,
20171         BSTR *EngineIdGuid);
20172 
20173     HRESULT (STDMETHODCALLTYPE *get_EnginePrivateData)(
20174         ISpeechPhraseInfo* This,
20175         VARIANT *PrivateData);
20176 
20177     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
20178         ISpeechPhraseInfo* This,
20179         VARIANT *PhraseBlock);
20180 
20181     HRESULT (STDMETHODCALLTYPE *GetText)(
20182         ISpeechPhraseInfo* This,
20183         LONG StartElement,
20184         LONG Elements,
20185         VARIANT_BOOL UseReplacements,
20186         BSTR *Text);
20187 
20188     HRESULT (STDMETHODCALLTYPE *GetDisplayAttributes)(
20189         ISpeechPhraseInfo* This,
20190         LONG StartElement,
20191         LONG Elements,
20192         VARIANT_BOOL UseReplacements,
20193         SpeechDisplayAttributes *DisplayAttributes);
20194 
20195     END_INTERFACE
20196 } ISpeechPhraseInfoVtbl;
20197 interface ISpeechPhraseInfo {
20198     CONST_VTBL ISpeechPhraseInfoVtbl* lpVtbl;
20199 };
20200 
20201 #ifdef COBJMACROS
20202 #ifndef WIDL_C_INLINE_WRAPPERS
20203 /*** IUnknown methods ***/
20204 #define ISpeechPhraseInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20205 #define ISpeechPhraseInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
20206 #define ISpeechPhraseInfo_Release(This) (This)->lpVtbl->Release(This)
20207 /*** IDispatch methods ***/
20208 #define ISpeechPhraseInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20209 #define ISpeechPhraseInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
20210 #define ISpeechPhraseInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
20211 #define ISpeechPhraseInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
20212 /*** ISpeechPhraseInfo methods ***/
20213 #define ISpeechPhraseInfo_get_LanguageId(This,LanguageId) (This)->lpVtbl->get_LanguageId(This,LanguageId)
20214 #define ISpeechPhraseInfo_get_GrammarId(This,GrammarId) (This)->lpVtbl->get_GrammarId(This,GrammarId)
20215 #define ISpeechPhraseInfo_get_StartTime(This,StartTime) (This)->lpVtbl->get_StartTime(This,StartTime)
20216 #define ISpeechPhraseInfo_get_AudioStreamPosition(This,AudioStreamPosition) (This)->lpVtbl->get_AudioStreamPosition(This,AudioStreamPosition)
20217 #define ISpeechPhraseInfo_get_AudioSizeBytes(This,pAudioSizeBytes) (This)->lpVtbl->get_AudioSizeBytes(This,pAudioSizeBytes)
20218 #define ISpeechPhraseInfo_get_RetainedSizeBytes(This,RetainedSizeBytes) (This)->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes)
20219 #define ISpeechPhraseInfo_get_AudioSizeTime(This,AudioSizeTime) (This)->lpVtbl->get_AudioSizeTime(This,AudioSizeTime)
20220 #define ISpeechPhraseInfo_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
20221 #define ISpeechPhraseInfo_get_Properties(This,Properties) (This)->lpVtbl->get_Properties(This,Properties)
20222 #define ISpeechPhraseInfo_get_Elements(This,Elements) (This)->lpVtbl->get_Elements(This,Elements)
20223 #define ISpeechPhraseInfo_get_Replacements(This,Replacements) (This)->lpVtbl->get_Replacements(This,Replacements)
20224 #define ISpeechPhraseInfo_get_EngineId(This,EngineIdGuid) (This)->lpVtbl->get_EngineId(This,EngineIdGuid)
20225 #define ISpeechPhraseInfo_get_EnginePrivateData(This,PrivateData) (This)->lpVtbl->get_EnginePrivateData(This,PrivateData)
20226 #define ISpeechPhraseInfo_SaveToMemory(This,PhraseBlock) (This)->lpVtbl->SaveToMemory(This,PhraseBlock)
20227 #define ISpeechPhraseInfo_GetText(This,StartElement,Elements,UseReplacements,Text) (This)->lpVtbl->GetText(This,StartElement,Elements,UseReplacements,Text)
20228 #define ISpeechPhraseInfo_GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes) (This)->lpVtbl->GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes)
20229 #else
20230 /*** IUnknown methods ***/
20231 static FORCEINLINE HRESULT ISpeechPhraseInfo_QueryInterface(ISpeechPhraseInfo* This,REFIID riid,void **ppvObject) {
20232     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20233 }
20234 static FORCEINLINE ULONG ISpeechPhraseInfo_AddRef(ISpeechPhraseInfo* This) {
20235     return This->lpVtbl->AddRef(This);
20236 }
20237 static FORCEINLINE ULONG ISpeechPhraseInfo_Release(ISpeechPhraseInfo* This) {
20238     return This->lpVtbl->Release(This);
20239 }
20240 /*** IDispatch methods ***/
20241 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetTypeInfoCount(ISpeechPhraseInfo* This,UINT *pctinfo) {
20242     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
20243 }
20244 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetTypeInfo(ISpeechPhraseInfo* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
20245     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
20246 }
20247 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetIDsOfNames(ISpeechPhraseInfo* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
20248     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
20249 }
20250 static FORCEINLINE HRESULT ISpeechPhraseInfo_Invoke(ISpeechPhraseInfo* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
20251     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
20252 }
20253 /*** ISpeechPhraseInfo methods ***/
20254 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_LanguageId(ISpeechPhraseInfo* This,LONG *LanguageId) {
20255     return This->lpVtbl->get_LanguageId(This,LanguageId);
20256 }
20257 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_GrammarId(ISpeechPhraseInfo* This,VARIANT *GrammarId) {
20258     return This->lpVtbl->get_GrammarId(This,GrammarId);
20259 }
20260 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_StartTime(ISpeechPhraseInfo* This,VARIANT *StartTime) {
20261     return This->lpVtbl->get_StartTime(This,StartTime);
20262 }
20263 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_AudioStreamPosition(ISpeechPhraseInfo* This,VARIANT *AudioStreamPosition) {
20264     return This->lpVtbl->get_AudioStreamPosition(This,AudioStreamPosition);
20265 }
20266 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_AudioSizeBytes(ISpeechPhraseInfo* This,LONG *pAudioSizeBytes) {
20267     return This->lpVtbl->get_AudioSizeBytes(This,pAudioSizeBytes);
20268 }
20269 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_RetainedSizeBytes(ISpeechPhraseInfo* This,LONG *RetainedSizeBytes) {
20270     return This->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes);
20271 }
20272 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_AudioSizeTime(ISpeechPhraseInfo* This,LONG *AudioSizeTime) {
20273     return This->lpVtbl->get_AudioSizeTime(This,AudioSizeTime);
20274 }
20275 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_Rule(ISpeechPhraseInfo* This,ISpeechPhraseRule **Rule) {
20276     return This->lpVtbl->get_Rule(This,Rule);
20277 }
20278 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_Properties(ISpeechPhraseInfo* This,ISpeechPhraseProperties **Properties) {
20279     return This->lpVtbl->get_Properties(This,Properties);
20280 }
20281 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_Elements(ISpeechPhraseInfo* This,ISpeechPhraseElements **Elements) {
20282     return This->lpVtbl->get_Elements(This,Elements);
20283 }
20284 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_Replacements(ISpeechPhraseInfo* This,ISpeechPhraseReplacements **Replacements) {
20285     return This->lpVtbl->get_Replacements(This,Replacements);
20286 }
20287 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_EngineId(ISpeechPhraseInfo* This,BSTR *EngineIdGuid) {
20288     return This->lpVtbl->get_EngineId(This,EngineIdGuid);
20289 }
20290 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_EnginePrivateData(ISpeechPhraseInfo* This,VARIANT *PrivateData) {
20291     return This->lpVtbl->get_EnginePrivateData(This,PrivateData);
20292 }
20293 static FORCEINLINE HRESULT ISpeechPhraseInfo_SaveToMemory(ISpeechPhraseInfo* This,VARIANT *PhraseBlock) {
20294     return This->lpVtbl->SaveToMemory(This,PhraseBlock);
20295 }
20296 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetText(ISpeechPhraseInfo* This,LONG StartElement,LONG Elements,VARIANT_BOOL UseReplacements,BSTR *Text) {
20297     return This->lpVtbl->GetText(This,StartElement,Elements,UseReplacements,Text);
20298 }
20299 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetDisplayAttributes(ISpeechPhraseInfo* This,LONG StartElement,LONG Elements,VARIANT_BOOL UseReplacements,SpeechDisplayAttributes *DisplayAttributes) {
20300     return This->lpVtbl->GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes);
20301 }
20302 #endif
20303 #endif
20304 
20305 #endif
20306 
20307 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_LanguageId_Proxy(
20308     ISpeechPhraseInfo* This,
20309     LONG *LanguageId);
20310 void __RPC_STUB ISpeechPhraseInfo_get_LanguageId_Stub(
20311     IRpcStubBuffer* This,
20312     IRpcChannelBuffer* pRpcChannelBuffer,
20313     PRPC_MESSAGE pRpcMessage,
20314     DWORD* pdwStubPhase);
20315 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_GrammarId_Proxy(
20316     ISpeechPhraseInfo* This,
20317     VARIANT *GrammarId);
20318 void __RPC_STUB ISpeechPhraseInfo_get_GrammarId_Stub(
20319     IRpcStubBuffer* This,
20320     IRpcChannelBuffer* pRpcChannelBuffer,
20321     PRPC_MESSAGE pRpcMessage,
20322     DWORD* pdwStubPhase);
20323 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_StartTime_Proxy(
20324     ISpeechPhraseInfo* This,
20325     VARIANT *StartTime);
20326 void __RPC_STUB ISpeechPhraseInfo_get_StartTime_Stub(
20327     IRpcStubBuffer* This,
20328     IRpcChannelBuffer* pRpcChannelBuffer,
20329     PRPC_MESSAGE pRpcMessage,
20330     DWORD* pdwStubPhase);
20331 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_AudioStreamPosition_Proxy(
20332     ISpeechPhraseInfo* This,
20333     VARIANT *AudioStreamPosition);
20334 void __RPC_STUB ISpeechPhraseInfo_get_AudioStreamPosition_Stub(
20335     IRpcStubBuffer* This,
20336     IRpcChannelBuffer* pRpcChannelBuffer,
20337     PRPC_MESSAGE pRpcMessage,
20338     DWORD* pdwStubPhase);
20339 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_AudioSizeBytes_Proxy(
20340     ISpeechPhraseInfo* This,
20341     LONG *pAudioSizeBytes);
20342 void __RPC_STUB ISpeechPhraseInfo_get_AudioSizeBytes_Stub(
20343     IRpcStubBuffer* This,
20344     IRpcChannelBuffer* pRpcChannelBuffer,
20345     PRPC_MESSAGE pRpcMessage,
20346     DWORD* pdwStubPhase);
20347 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_RetainedSizeBytes_Proxy(
20348     ISpeechPhraseInfo* This,
20349     LONG *RetainedSizeBytes);
20350 void __RPC_STUB ISpeechPhraseInfo_get_RetainedSizeBytes_Stub(
20351     IRpcStubBuffer* This,
20352     IRpcChannelBuffer* pRpcChannelBuffer,
20353     PRPC_MESSAGE pRpcMessage,
20354     DWORD* pdwStubPhase);
20355 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_AudioSizeTime_Proxy(
20356     ISpeechPhraseInfo* This,
20357     LONG *AudioSizeTime);
20358 void __RPC_STUB ISpeechPhraseInfo_get_AudioSizeTime_Stub(
20359     IRpcStubBuffer* This,
20360     IRpcChannelBuffer* pRpcChannelBuffer,
20361     PRPC_MESSAGE pRpcMessage,
20362     DWORD* pdwStubPhase);
20363 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_Rule_Proxy(
20364     ISpeechPhraseInfo* This,
20365     ISpeechPhraseRule **Rule);
20366 void __RPC_STUB ISpeechPhraseInfo_get_Rule_Stub(
20367     IRpcStubBuffer* This,
20368     IRpcChannelBuffer* pRpcChannelBuffer,
20369     PRPC_MESSAGE pRpcMessage,
20370     DWORD* pdwStubPhase);
20371 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_Properties_Proxy(
20372     ISpeechPhraseInfo* This,
20373     ISpeechPhraseProperties **Properties);
20374 void __RPC_STUB ISpeechPhraseInfo_get_Properties_Stub(
20375     IRpcStubBuffer* This,
20376     IRpcChannelBuffer* pRpcChannelBuffer,
20377     PRPC_MESSAGE pRpcMessage,
20378     DWORD* pdwStubPhase);
20379 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_Elements_Proxy(
20380     ISpeechPhraseInfo* This,
20381     ISpeechPhraseElements **Elements);
20382 void __RPC_STUB ISpeechPhraseInfo_get_Elements_Stub(
20383     IRpcStubBuffer* This,
20384     IRpcChannelBuffer* pRpcChannelBuffer,
20385     PRPC_MESSAGE pRpcMessage,
20386     DWORD* pdwStubPhase);
20387 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_Replacements_Proxy(
20388     ISpeechPhraseInfo* This,
20389     ISpeechPhraseReplacements **Replacements);
20390 void __RPC_STUB ISpeechPhraseInfo_get_Replacements_Stub(
20391     IRpcStubBuffer* This,
20392     IRpcChannelBuffer* pRpcChannelBuffer,
20393     PRPC_MESSAGE pRpcMessage,
20394     DWORD* pdwStubPhase);
20395 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_EngineId_Proxy(
20396     ISpeechPhraseInfo* This,
20397     BSTR *EngineIdGuid);
20398 void __RPC_STUB ISpeechPhraseInfo_get_EngineId_Stub(
20399     IRpcStubBuffer* This,
20400     IRpcChannelBuffer* pRpcChannelBuffer,
20401     PRPC_MESSAGE pRpcMessage,
20402     DWORD* pdwStubPhase);
20403 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_get_EnginePrivateData_Proxy(
20404     ISpeechPhraseInfo* This,
20405     VARIANT *PrivateData);
20406 void __RPC_STUB ISpeechPhraseInfo_get_EnginePrivateData_Stub(
20407     IRpcStubBuffer* This,
20408     IRpcChannelBuffer* pRpcChannelBuffer,
20409     PRPC_MESSAGE pRpcMessage,
20410     DWORD* pdwStubPhase);
20411 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_SaveToMemory_Proxy(
20412     ISpeechPhraseInfo* This,
20413     VARIANT *PhraseBlock);
20414 void __RPC_STUB ISpeechPhraseInfo_SaveToMemory_Stub(
20415     IRpcStubBuffer* This,
20416     IRpcChannelBuffer* pRpcChannelBuffer,
20417     PRPC_MESSAGE pRpcMessage,
20418     DWORD* pdwStubPhase);
20419 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_GetText_Proxy(
20420     ISpeechPhraseInfo* This,
20421     LONG StartElement,
20422     LONG Elements,
20423     VARIANT_BOOL UseReplacements,
20424     BSTR *Text);
20425 void __RPC_STUB ISpeechPhraseInfo_GetText_Stub(
20426     IRpcStubBuffer* This,
20427     IRpcChannelBuffer* pRpcChannelBuffer,
20428     PRPC_MESSAGE pRpcMessage,
20429     DWORD* pdwStubPhase);
20430 HRESULT STDMETHODCALLTYPE ISpeechPhraseInfo_GetDisplayAttributes_Proxy(
20431     ISpeechPhraseInfo* This,
20432     LONG StartElement,
20433     LONG Elements,
20434     VARIANT_BOOL UseReplacements,
20435     SpeechDisplayAttributes *DisplayAttributes);
20436 void __RPC_STUB ISpeechPhraseInfo_GetDisplayAttributes_Stub(
20437     IRpcStubBuffer* This,
20438     IRpcChannelBuffer* pRpcChannelBuffer,
20439     PRPC_MESSAGE pRpcMessage,
20440     DWORD* pdwStubPhase);
20441 
20442 #endif  /* __ISpeechPhraseInfo_INTERFACE_DEFINED__ */
20443 
20444 /*****************************************************************************
20445  * ISpeechPhraseElement interface
20446  */
20447 #ifndef __ISpeechPhraseElement_INTERFACE_DEFINED__
20448 #define __ISpeechPhraseElement_INTERFACE_DEFINED__
20449 
20450 DEFINE_GUID(IID_ISpeechPhraseElement, 0xe6176f96, 0xe373, 0x4801, 0xb2,0x23, 0x3b,0x62,0xc0,0x68,0xc0,0xb4);
20451 #if defined(__cplusplus) && !defined(CINTERFACE)
20452 MIDL_INTERFACE("e6176f96-e373-4801-b223-3b62c068c0b4")
20453 ISpeechPhraseElement : public IDispatch
20454 {
20455     virtual HRESULT STDMETHODCALLTYPE get_AudioTimeOffset(
20456         LONG *AudioTimeOffset) = 0;
20457 
20458     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeTime(
20459         LONG *AudioSizeTime) = 0;
20460 
20461     virtual HRESULT STDMETHODCALLTYPE get_AudioStreamOffset(
20462         LONG *AudioStreamOffset) = 0;
20463 
20464     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeBytes(
20465         LONG *AudioSizeBytes) = 0;
20466 
20467     virtual HRESULT STDMETHODCALLTYPE get_RetainedStreamOffset(
20468         LONG *RetainedStreamOffset) = 0;
20469 
20470     virtual HRESULT STDMETHODCALLTYPE get_RetainedSizeBytes(
20471         LONG *RetainedSizeBytes) = 0;
20472 
20473     virtual HRESULT STDMETHODCALLTYPE get_DisplayText(
20474         BSTR *DisplayText) = 0;
20475 
20476     virtual HRESULT STDMETHODCALLTYPE get_LexicalForm(
20477         BSTR *LexicalForm) = 0;
20478 
20479     virtual HRESULT STDMETHODCALLTYPE get_Pronunciation(
20480         VARIANT *Pronunciation) = 0;
20481 
20482     virtual HRESULT STDMETHODCALLTYPE get_DisplayAttributes(
20483         SpeechDisplayAttributes *DisplayAttributes) = 0;
20484 
20485     virtual HRESULT STDMETHODCALLTYPE get_RequiredConfidence(
20486         SpeechEngineConfidence *RequiredConfidence) = 0;
20487 
20488     virtual HRESULT STDMETHODCALLTYPE get_ActualConfidence(
20489         SpeechEngineConfidence *ActualConfidence) = 0;
20490 
20491     virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
20492         float *EngineConfidence) = 0;
20493 
20494 };
20495 #ifdef __CRT_UUID_DECL
20496 __CRT_UUID_DECL(ISpeechPhraseElement, 0xe6176f96, 0xe373, 0x4801, 0xb2,0x23, 0x3b,0x62,0xc0,0x68,0xc0,0xb4)
20497 #endif
20498 #else
20499 typedef struct ISpeechPhraseElementVtbl {
20500     BEGIN_INTERFACE
20501 
20502     /*** IUnknown methods ***/
20503     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20504         ISpeechPhraseElement* This,
20505         REFIID riid,
20506         void **ppvObject);
20507 
20508     ULONG (STDMETHODCALLTYPE *AddRef)(
20509         ISpeechPhraseElement* This);
20510 
20511     ULONG (STDMETHODCALLTYPE *Release)(
20512         ISpeechPhraseElement* This);
20513 
20514     /*** IDispatch methods ***/
20515     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20516         ISpeechPhraseElement* This,
20517         UINT *pctinfo);
20518 
20519     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20520         ISpeechPhraseElement* This,
20521         UINT iTInfo,
20522         LCID lcid,
20523         ITypeInfo **ppTInfo);
20524 
20525     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20526         ISpeechPhraseElement* This,
20527         REFIID riid,
20528         LPOLESTR *rgszNames,
20529         UINT cNames,
20530         LCID lcid,
20531         DISPID *rgDispId);
20532 
20533     HRESULT (STDMETHODCALLTYPE *Invoke)(
20534         ISpeechPhraseElement* This,
20535         DISPID dispIdMember,
20536         REFIID riid,
20537         LCID lcid,
20538         WORD wFlags,
20539         DISPPARAMS *pDispParams,
20540         VARIANT *pVarResult,
20541         EXCEPINFO *pExcepInfo,
20542         UINT *puArgErr);
20543 
20544     /*** ISpeechPhraseElement methods ***/
20545     HRESULT (STDMETHODCALLTYPE *get_AudioTimeOffset)(
20546         ISpeechPhraseElement* This,
20547         LONG *AudioTimeOffset);
20548 
20549     HRESULT (STDMETHODCALLTYPE *get_AudioSizeTime)(
20550         ISpeechPhraseElement* This,
20551         LONG *AudioSizeTime);
20552 
20553     HRESULT (STDMETHODCALLTYPE *get_AudioStreamOffset)(
20554         ISpeechPhraseElement* This,
20555         LONG *AudioStreamOffset);
20556 
20557     HRESULT (STDMETHODCALLTYPE *get_AudioSizeBytes)(
20558         ISpeechPhraseElement* This,
20559         LONG *AudioSizeBytes);
20560 
20561     HRESULT (STDMETHODCALLTYPE *get_RetainedStreamOffset)(
20562         ISpeechPhraseElement* This,
20563         LONG *RetainedStreamOffset);
20564 
20565     HRESULT (STDMETHODCALLTYPE *get_RetainedSizeBytes)(
20566         ISpeechPhraseElement* This,
20567         LONG *RetainedSizeBytes);
20568 
20569     HRESULT (STDMETHODCALLTYPE *get_DisplayText)(
20570         ISpeechPhraseElement* This,
20571         BSTR *DisplayText);
20572 
20573     HRESULT (STDMETHODCALLTYPE *get_LexicalForm)(
20574         ISpeechPhraseElement* This,
20575         BSTR *LexicalForm);
20576 
20577     HRESULT (STDMETHODCALLTYPE *get_Pronunciation)(
20578         ISpeechPhraseElement* This,
20579         VARIANT *Pronunciation);
20580 
20581     HRESULT (STDMETHODCALLTYPE *get_DisplayAttributes)(
20582         ISpeechPhraseElement* This,
20583         SpeechDisplayAttributes *DisplayAttributes);
20584 
20585     HRESULT (STDMETHODCALLTYPE *get_RequiredConfidence)(
20586         ISpeechPhraseElement* This,
20587         SpeechEngineConfidence *RequiredConfidence);
20588 
20589     HRESULT (STDMETHODCALLTYPE *get_ActualConfidence)(
20590         ISpeechPhraseElement* This,
20591         SpeechEngineConfidence *ActualConfidence);
20592 
20593     HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
20594         ISpeechPhraseElement* This,
20595         float *EngineConfidence);
20596 
20597     END_INTERFACE
20598 } ISpeechPhraseElementVtbl;
20599 interface ISpeechPhraseElement {
20600     CONST_VTBL ISpeechPhraseElementVtbl* lpVtbl;
20601 };
20602 
20603 #ifdef COBJMACROS
20604 #ifndef WIDL_C_INLINE_WRAPPERS
20605 /*** IUnknown methods ***/
20606 #define ISpeechPhraseElement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20607 #define ISpeechPhraseElement_AddRef(This) (This)->lpVtbl->AddRef(This)
20608 #define ISpeechPhraseElement_Release(This) (This)->lpVtbl->Release(This)
20609 /*** IDispatch methods ***/
20610 #define ISpeechPhraseElement_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20611 #define ISpeechPhraseElement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
20612 #define ISpeechPhraseElement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
20613 #define ISpeechPhraseElement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
20614 /*** ISpeechPhraseElement methods ***/
20615 #define ISpeechPhraseElement_get_AudioTimeOffset(This,AudioTimeOffset) (This)->lpVtbl->get_AudioTimeOffset(This,AudioTimeOffset)
20616 #define ISpeechPhraseElement_get_AudioSizeTime(This,AudioSizeTime) (This)->lpVtbl->get_AudioSizeTime(This,AudioSizeTime)
20617 #define ISpeechPhraseElement_get_AudioStreamOffset(This,AudioStreamOffset) (This)->lpVtbl->get_AudioStreamOffset(This,AudioStreamOffset)
20618 #define ISpeechPhraseElement_get_AudioSizeBytes(This,AudioSizeBytes) (This)->lpVtbl->get_AudioSizeBytes(This,AudioSizeBytes)
20619 #define ISpeechPhraseElement_get_RetainedStreamOffset(This,RetainedStreamOffset) (This)->lpVtbl->get_RetainedStreamOffset(This,RetainedStreamOffset)
20620 #define ISpeechPhraseElement_get_RetainedSizeBytes(This,RetainedSizeBytes) (This)->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes)
20621 #define ISpeechPhraseElement_get_DisplayText(This,DisplayText) (This)->lpVtbl->get_DisplayText(This,DisplayText)
20622 #define ISpeechPhraseElement_get_LexicalForm(This,LexicalForm) (This)->lpVtbl->get_LexicalForm(This,LexicalForm)
20623 #define ISpeechPhraseElement_get_Pronunciation(This,Pronunciation) (This)->lpVtbl->get_Pronunciation(This,Pronunciation)
20624 #define ISpeechPhraseElement_get_DisplayAttributes(This,DisplayAttributes) (This)->lpVtbl->get_DisplayAttributes(This,DisplayAttributes)
20625 #define ISpeechPhraseElement_get_RequiredConfidence(This,RequiredConfidence) (This)->lpVtbl->get_RequiredConfidence(This,RequiredConfidence)
20626 #define ISpeechPhraseElement_get_ActualConfidence(This,ActualConfidence) (This)->lpVtbl->get_ActualConfidence(This,ActualConfidence)
20627 #define ISpeechPhraseElement_get_EngineConfidence(This,EngineConfidence) (This)->lpVtbl->get_EngineConfidence(This,EngineConfidence)
20628 #else
20629 /*** IUnknown methods ***/
20630 static FORCEINLINE HRESULT ISpeechPhraseElement_QueryInterface(ISpeechPhraseElement* This,REFIID riid,void **ppvObject) {
20631     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20632 }
20633 static FORCEINLINE ULONG ISpeechPhraseElement_AddRef(ISpeechPhraseElement* This) {
20634     return This->lpVtbl->AddRef(This);
20635 }
20636 static FORCEINLINE ULONG ISpeechPhraseElement_Release(ISpeechPhraseElement* This) {
20637     return This->lpVtbl->Release(This);
20638 }
20639 /*** IDispatch methods ***/
20640 static FORCEINLINE HRESULT ISpeechPhraseElement_GetTypeInfoCount(ISpeechPhraseElement* This,UINT *pctinfo) {
20641     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
20642 }
20643 static FORCEINLINE HRESULT ISpeechPhraseElement_GetTypeInfo(ISpeechPhraseElement* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
20644     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
20645 }
20646 static FORCEINLINE HRESULT ISpeechPhraseElement_GetIDsOfNames(ISpeechPhraseElement* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
20647     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
20648 }
20649 static FORCEINLINE HRESULT ISpeechPhraseElement_Invoke(ISpeechPhraseElement* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
20650     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
20651 }
20652 /*** ISpeechPhraseElement methods ***/
20653 static FORCEINLINE HRESULT ISpeechPhraseElement_get_AudioTimeOffset(ISpeechPhraseElement* This,LONG *AudioTimeOffset) {
20654     return This->lpVtbl->get_AudioTimeOffset(This,AudioTimeOffset);
20655 }
20656 static FORCEINLINE HRESULT ISpeechPhraseElement_get_AudioSizeTime(ISpeechPhraseElement* This,LONG *AudioSizeTime) {
20657     return This->lpVtbl->get_AudioSizeTime(This,AudioSizeTime);
20658 }
20659 static FORCEINLINE HRESULT ISpeechPhraseElement_get_AudioStreamOffset(ISpeechPhraseElement* This,LONG *AudioStreamOffset) {
20660     return This->lpVtbl->get_AudioStreamOffset(This,AudioStreamOffset);
20661 }
20662 static FORCEINLINE HRESULT ISpeechPhraseElement_get_AudioSizeBytes(ISpeechPhraseElement* This,LONG *AudioSizeBytes) {
20663     return This->lpVtbl->get_AudioSizeBytes(This,AudioSizeBytes);
20664 }
20665 static FORCEINLINE HRESULT ISpeechPhraseElement_get_RetainedStreamOffset(ISpeechPhraseElement* This,LONG *RetainedStreamOffset) {
20666     return This->lpVtbl->get_RetainedStreamOffset(This,RetainedStreamOffset);
20667 }
20668 static FORCEINLINE HRESULT ISpeechPhraseElement_get_RetainedSizeBytes(ISpeechPhraseElement* This,LONG *RetainedSizeBytes) {
20669     return This->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes);
20670 }
20671 static FORCEINLINE HRESULT ISpeechPhraseElement_get_DisplayText(ISpeechPhraseElement* This,BSTR *DisplayText) {
20672     return This->lpVtbl->get_DisplayText(This,DisplayText);
20673 }
20674 static FORCEINLINE HRESULT ISpeechPhraseElement_get_LexicalForm(ISpeechPhraseElement* This,BSTR *LexicalForm) {
20675     return This->lpVtbl->get_LexicalForm(This,LexicalForm);
20676 }
20677 static FORCEINLINE HRESULT ISpeechPhraseElement_get_Pronunciation(ISpeechPhraseElement* This,VARIANT *Pronunciation) {
20678     return This->lpVtbl->get_Pronunciation(This,Pronunciation);
20679 }
20680 static FORCEINLINE HRESULT ISpeechPhraseElement_get_DisplayAttributes(ISpeechPhraseElement* This,SpeechDisplayAttributes *DisplayAttributes) {
20681     return This->lpVtbl->get_DisplayAttributes(This,DisplayAttributes);
20682 }
20683 static FORCEINLINE HRESULT ISpeechPhraseElement_get_RequiredConfidence(ISpeechPhraseElement* This,SpeechEngineConfidence *RequiredConfidence) {
20684     return This->lpVtbl->get_RequiredConfidence(This,RequiredConfidence);
20685 }
20686 static FORCEINLINE HRESULT ISpeechPhraseElement_get_ActualConfidence(ISpeechPhraseElement* This,SpeechEngineConfidence *ActualConfidence) {
20687     return This->lpVtbl->get_ActualConfidence(This,ActualConfidence);
20688 }
20689 static FORCEINLINE HRESULT ISpeechPhraseElement_get_EngineConfidence(ISpeechPhraseElement* This,float *EngineConfidence) {
20690     return This->lpVtbl->get_EngineConfidence(This,EngineConfidence);
20691 }
20692 #endif
20693 #endif
20694 
20695 #endif
20696 
20697 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_AudioTimeOffset_Proxy(
20698     ISpeechPhraseElement* This,
20699     LONG *AudioTimeOffset);
20700 void __RPC_STUB ISpeechPhraseElement_get_AudioTimeOffset_Stub(
20701     IRpcStubBuffer* This,
20702     IRpcChannelBuffer* pRpcChannelBuffer,
20703     PRPC_MESSAGE pRpcMessage,
20704     DWORD* pdwStubPhase);
20705 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_AudioSizeTime_Proxy(
20706     ISpeechPhraseElement* This,
20707     LONG *AudioSizeTime);
20708 void __RPC_STUB ISpeechPhraseElement_get_AudioSizeTime_Stub(
20709     IRpcStubBuffer* This,
20710     IRpcChannelBuffer* pRpcChannelBuffer,
20711     PRPC_MESSAGE pRpcMessage,
20712     DWORD* pdwStubPhase);
20713 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_AudioStreamOffset_Proxy(
20714     ISpeechPhraseElement* This,
20715     LONG *AudioStreamOffset);
20716 void __RPC_STUB ISpeechPhraseElement_get_AudioStreamOffset_Stub(
20717     IRpcStubBuffer* This,
20718     IRpcChannelBuffer* pRpcChannelBuffer,
20719     PRPC_MESSAGE pRpcMessage,
20720     DWORD* pdwStubPhase);
20721 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_AudioSizeBytes_Proxy(
20722     ISpeechPhraseElement* This,
20723     LONG *AudioSizeBytes);
20724 void __RPC_STUB ISpeechPhraseElement_get_AudioSizeBytes_Stub(
20725     IRpcStubBuffer* This,
20726     IRpcChannelBuffer* pRpcChannelBuffer,
20727     PRPC_MESSAGE pRpcMessage,
20728     DWORD* pdwStubPhase);
20729 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_RetainedStreamOffset_Proxy(
20730     ISpeechPhraseElement* This,
20731     LONG *RetainedStreamOffset);
20732 void __RPC_STUB ISpeechPhraseElement_get_RetainedStreamOffset_Stub(
20733     IRpcStubBuffer* This,
20734     IRpcChannelBuffer* pRpcChannelBuffer,
20735     PRPC_MESSAGE pRpcMessage,
20736     DWORD* pdwStubPhase);
20737 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_RetainedSizeBytes_Proxy(
20738     ISpeechPhraseElement* This,
20739     LONG *RetainedSizeBytes);
20740 void __RPC_STUB ISpeechPhraseElement_get_RetainedSizeBytes_Stub(
20741     IRpcStubBuffer* This,
20742     IRpcChannelBuffer* pRpcChannelBuffer,
20743     PRPC_MESSAGE pRpcMessage,
20744     DWORD* pdwStubPhase);
20745 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_DisplayText_Proxy(
20746     ISpeechPhraseElement* This,
20747     BSTR *DisplayText);
20748 void __RPC_STUB ISpeechPhraseElement_get_DisplayText_Stub(
20749     IRpcStubBuffer* This,
20750     IRpcChannelBuffer* pRpcChannelBuffer,
20751     PRPC_MESSAGE pRpcMessage,
20752     DWORD* pdwStubPhase);
20753 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_LexicalForm_Proxy(
20754     ISpeechPhraseElement* This,
20755     BSTR *LexicalForm);
20756 void __RPC_STUB ISpeechPhraseElement_get_LexicalForm_Stub(
20757     IRpcStubBuffer* This,
20758     IRpcChannelBuffer* pRpcChannelBuffer,
20759     PRPC_MESSAGE pRpcMessage,
20760     DWORD* pdwStubPhase);
20761 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_Pronunciation_Proxy(
20762     ISpeechPhraseElement* This,
20763     VARIANT *Pronunciation);
20764 void __RPC_STUB ISpeechPhraseElement_get_Pronunciation_Stub(
20765     IRpcStubBuffer* This,
20766     IRpcChannelBuffer* pRpcChannelBuffer,
20767     PRPC_MESSAGE pRpcMessage,
20768     DWORD* pdwStubPhase);
20769 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_DisplayAttributes_Proxy(
20770     ISpeechPhraseElement* This,
20771     SpeechDisplayAttributes *DisplayAttributes);
20772 void __RPC_STUB ISpeechPhraseElement_get_DisplayAttributes_Stub(
20773     IRpcStubBuffer* This,
20774     IRpcChannelBuffer* pRpcChannelBuffer,
20775     PRPC_MESSAGE pRpcMessage,
20776     DWORD* pdwStubPhase);
20777 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_RequiredConfidence_Proxy(
20778     ISpeechPhraseElement* This,
20779     SpeechEngineConfidence *RequiredConfidence);
20780 void __RPC_STUB ISpeechPhraseElement_get_RequiredConfidence_Stub(
20781     IRpcStubBuffer* This,
20782     IRpcChannelBuffer* pRpcChannelBuffer,
20783     PRPC_MESSAGE pRpcMessage,
20784     DWORD* pdwStubPhase);
20785 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_ActualConfidence_Proxy(
20786     ISpeechPhraseElement* This,
20787     SpeechEngineConfidence *ActualConfidence);
20788 void __RPC_STUB ISpeechPhraseElement_get_ActualConfidence_Stub(
20789     IRpcStubBuffer* This,
20790     IRpcChannelBuffer* pRpcChannelBuffer,
20791     PRPC_MESSAGE pRpcMessage,
20792     DWORD* pdwStubPhase);
20793 HRESULT STDMETHODCALLTYPE ISpeechPhraseElement_get_EngineConfidence_Proxy(
20794     ISpeechPhraseElement* This,
20795     float *EngineConfidence);
20796 void __RPC_STUB ISpeechPhraseElement_get_EngineConfidence_Stub(
20797     IRpcStubBuffer* This,
20798     IRpcChannelBuffer* pRpcChannelBuffer,
20799     PRPC_MESSAGE pRpcMessage,
20800     DWORD* pdwStubPhase);
20801 
20802 #endif  /* __ISpeechPhraseElement_INTERFACE_DEFINED__ */
20803 
20804 /*****************************************************************************
20805  * ISpeechPhraseElements interface
20806  */
20807 #ifndef __ISpeechPhraseElements_INTERFACE_DEFINED__
20808 #define __ISpeechPhraseElements_INTERFACE_DEFINED__
20809 
20810 DEFINE_GUID(IID_ISpeechPhraseElements, 0x0626b328, 0x3478, 0x467d, 0xa0,0xb3, 0xd0,0x85,0x3b,0x93,0xdd,0xa3);
20811 #if defined(__cplusplus) && !defined(CINTERFACE)
20812 MIDL_INTERFACE("0626b328-3478-467d-a0b3-d0853b93dda3")
20813 ISpeechPhraseElements : public IDispatch
20814 {
20815     virtual HRESULT STDMETHODCALLTYPE get_Count(
20816         LONG *Count) = 0;
20817 
20818     virtual HRESULT STDMETHODCALLTYPE Item(
20819         LONG Index,
20820         ISpeechPhraseElement **Element) = 0;
20821 
20822     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
20823         IUnknown **EnumVARIANT) = 0;
20824 
20825 };
20826 #ifdef __CRT_UUID_DECL
20827 __CRT_UUID_DECL(ISpeechPhraseElements, 0x0626b328, 0x3478, 0x467d, 0xa0,0xb3, 0xd0,0x85,0x3b,0x93,0xdd,0xa3)
20828 #endif
20829 #else
20830 typedef struct ISpeechPhraseElementsVtbl {
20831     BEGIN_INTERFACE
20832 
20833     /*** IUnknown methods ***/
20834     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20835         ISpeechPhraseElements* This,
20836         REFIID riid,
20837         void **ppvObject);
20838 
20839     ULONG (STDMETHODCALLTYPE *AddRef)(
20840         ISpeechPhraseElements* This);
20841 
20842     ULONG (STDMETHODCALLTYPE *Release)(
20843         ISpeechPhraseElements* This);
20844 
20845     /*** IDispatch methods ***/
20846     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20847         ISpeechPhraseElements* This,
20848         UINT *pctinfo);
20849 
20850     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20851         ISpeechPhraseElements* This,
20852         UINT iTInfo,
20853         LCID lcid,
20854         ITypeInfo **ppTInfo);
20855 
20856     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20857         ISpeechPhraseElements* This,
20858         REFIID riid,
20859         LPOLESTR *rgszNames,
20860         UINT cNames,
20861         LCID lcid,
20862         DISPID *rgDispId);
20863 
20864     HRESULT (STDMETHODCALLTYPE *Invoke)(
20865         ISpeechPhraseElements* This,
20866         DISPID dispIdMember,
20867         REFIID riid,
20868         LCID lcid,
20869         WORD wFlags,
20870         DISPPARAMS *pDispParams,
20871         VARIANT *pVarResult,
20872         EXCEPINFO *pExcepInfo,
20873         UINT *puArgErr);
20874 
20875     /*** ISpeechPhraseElements methods ***/
20876     HRESULT (STDMETHODCALLTYPE *get_Count)(
20877         ISpeechPhraseElements* This,
20878         LONG *Count);
20879 
20880     HRESULT (STDMETHODCALLTYPE *Item)(
20881         ISpeechPhraseElements* This,
20882         LONG Index,
20883         ISpeechPhraseElement **Element);
20884 
20885     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
20886         ISpeechPhraseElements* This,
20887         IUnknown **EnumVARIANT);
20888 
20889     END_INTERFACE
20890 } ISpeechPhraseElementsVtbl;
20891 interface ISpeechPhraseElements {
20892     CONST_VTBL ISpeechPhraseElementsVtbl* lpVtbl;
20893 };
20894 
20895 #ifdef COBJMACROS
20896 #ifndef WIDL_C_INLINE_WRAPPERS
20897 /*** IUnknown methods ***/
20898 #define ISpeechPhraseElements_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20899 #define ISpeechPhraseElements_AddRef(This) (This)->lpVtbl->AddRef(This)
20900 #define ISpeechPhraseElements_Release(This) (This)->lpVtbl->Release(This)
20901 /*** IDispatch methods ***/
20902 #define ISpeechPhraseElements_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20903 #define ISpeechPhraseElements_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
20904 #define ISpeechPhraseElements_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
20905 #define ISpeechPhraseElements_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
20906 /*** ISpeechPhraseElements methods ***/
20907 #define ISpeechPhraseElements_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
20908 #define ISpeechPhraseElements_Item(This,Index,Element) (This)->lpVtbl->Item(This,Index,Element)
20909 #define ISpeechPhraseElements_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
20910 #else
20911 /*** IUnknown methods ***/
20912 static FORCEINLINE HRESULT ISpeechPhraseElements_QueryInterface(ISpeechPhraseElements* This,REFIID riid,void **ppvObject) {
20913     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20914 }
20915 static FORCEINLINE ULONG ISpeechPhraseElements_AddRef(ISpeechPhraseElements* This) {
20916     return This->lpVtbl->AddRef(This);
20917 }
20918 static FORCEINLINE ULONG ISpeechPhraseElements_Release(ISpeechPhraseElements* This) {
20919     return This->lpVtbl->Release(This);
20920 }
20921 /*** IDispatch methods ***/
20922 static FORCEINLINE HRESULT ISpeechPhraseElements_GetTypeInfoCount(ISpeechPhraseElements* This,UINT *pctinfo) {
20923     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
20924 }
20925 static FORCEINLINE HRESULT ISpeechPhraseElements_GetTypeInfo(ISpeechPhraseElements* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
20926     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
20927 }
20928 static FORCEINLINE HRESULT ISpeechPhraseElements_GetIDsOfNames(ISpeechPhraseElements* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
20929     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
20930 }
20931 static FORCEINLINE HRESULT ISpeechPhraseElements_Invoke(ISpeechPhraseElements* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
20932     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
20933 }
20934 /*** ISpeechPhraseElements methods ***/
20935 static FORCEINLINE HRESULT ISpeechPhraseElements_get_Count(ISpeechPhraseElements* This,LONG *Count) {
20936     return This->lpVtbl->get_Count(This,Count);
20937 }
20938 static FORCEINLINE HRESULT ISpeechPhraseElements_Item(ISpeechPhraseElements* This,LONG Index,ISpeechPhraseElement **Element) {
20939     return This->lpVtbl->Item(This,Index,Element);
20940 }
20941 static FORCEINLINE HRESULT ISpeechPhraseElements_get__NewEnum(ISpeechPhraseElements* This,IUnknown **EnumVARIANT) {
20942     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
20943 }
20944 #endif
20945 #endif
20946 
20947 #endif
20948 
20949 HRESULT STDMETHODCALLTYPE ISpeechPhraseElements_get_Count_Proxy(
20950     ISpeechPhraseElements* This,
20951     LONG *Count);
20952 void __RPC_STUB ISpeechPhraseElements_get_Count_Stub(
20953     IRpcStubBuffer* This,
20954     IRpcChannelBuffer* pRpcChannelBuffer,
20955     PRPC_MESSAGE pRpcMessage,
20956     DWORD* pdwStubPhase);
20957 HRESULT STDMETHODCALLTYPE ISpeechPhraseElements_Item_Proxy(
20958     ISpeechPhraseElements* This,
20959     LONG Index,
20960     ISpeechPhraseElement **Element);
20961 void __RPC_STUB ISpeechPhraseElements_Item_Stub(
20962     IRpcStubBuffer* This,
20963     IRpcChannelBuffer* pRpcChannelBuffer,
20964     PRPC_MESSAGE pRpcMessage,
20965     DWORD* pdwStubPhase);
20966 HRESULT STDMETHODCALLTYPE ISpeechPhraseElements_get__NewEnum_Proxy(
20967     ISpeechPhraseElements* This,
20968     IUnknown **EnumVARIANT);
20969 void __RPC_STUB ISpeechPhraseElements_get__NewEnum_Stub(
20970     IRpcStubBuffer* This,
20971     IRpcChannelBuffer* pRpcChannelBuffer,
20972     PRPC_MESSAGE pRpcMessage,
20973     DWORD* pdwStubPhase);
20974 
20975 #endif  /* __ISpeechPhraseElements_INTERFACE_DEFINED__ */
20976 
20977 /*****************************************************************************
20978  * ISpeechPhraseReplacement interface
20979  */
20980 #ifndef __ISpeechPhraseReplacement_INTERFACE_DEFINED__
20981 #define __ISpeechPhraseReplacement_INTERFACE_DEFINED__
20982 
20983 DEFINE_GUID(IID_ISpeechPhraseReplacement, 0x2890a410, 0x53a7, 0x4fb5, 0x94,0xec, 0x06,0xd4,0x99,0x8e,0x3d,0x02);
20984 #if defined(__cplusplus) && !defined(CINTERFACE)
20985 MIDL_INTERFACE("2890a410-53a7-4fb5-94ec-06d4998e3d02")
20986 ISpeechPhraseReplacement : public IDispatch
20987 {
20988     virtual HRESULT STDMETHODCALLTYPE get_DisplayAttributes(
20989         SpeechDisplayAttributes *DisplayAttributes) = 0;
20990 
20991     virtual HRESULT STDMETHODCALLTYPE get_Text(
20992         BSTR *Text) = 0;
20993 
20994     virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
20995         LONG *FirstElement) = 0;
20996 
20997     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
20998         LONG *NumberOfElements) = 0;
20999 
21000 };
21001 #ifdef __CRT_UUID_DECL
21002 __CRT_UUID_DECL(ISpeechPhraseReplacement, 0x2890a410, 0x53a7, 0x4fb5, 0x94,0xec, 0x06,0xd4,0x99,0x8e,0x3d,0x02)
21003 #endif
21004 #else
21005 typedef struct ISpeechPhraseReplacementVtbl {
21006     BEGIN_INTERFACE
21007 
21008     /*** IUnknown methods ***/
21009     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21010         ISpeechPhraseReplacement* This,
21011         REFIID riid,
21012         void **ppvObject);
21013 
21014     ULONG (STDMETHODCALLTYPE *AddRef)(
21015         ISpeechPhraseReplacement* This);
21016 
21017     ULONG (STDMETHODCALLTYPE *Release)(
21018         ISpeechPhraseReplacement* This);
21019 
21020     /*** IDispatch methods ***/
21021     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21022         ISpeechPhraseReplacement* This,
21023         UINT *pctinfo);
21024 
21025     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21026         ISpeechPhraseReplacement* This,
21027         UINT iTInfo,
21028         LCID lcid,
21029         ITypeInfo **ppTInfo);
21030 
21031     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21032         ISpeechPhraseReplacement* This,
21033         REFIID riid,
21034         LPOLESTR *rgszNames,
21035         UINT cNames,
21036         LCID lcid,
21037         DISPID *rgDispId);
21038 
21039     HRESULT (STDMETHODCALLTYPE *Invoke)(
21040         ISpeechPhraseReplacement* This,
21041         DISPID dispIdMember,
21042         REFIID riid,
21043         LCID lcid,
21044         WORD wFlags,
21045         DISPPARAMS *pDispParams,
21046         VARIANT *pVarResult,
21047         EXCEPINFO *pExcepInfo,
21048         UINT *puArgErr);
21049 
21050     /*** ISpeechPhraseReplacement methods ***/
21051     HRESULT (STDMETHODCALLTYPE *get_DisplayAttributes)(
21052         ISpeechPhraseReplacement* This,
21053         SpeechDisplayAttributes *DisplayAttributes);
21054 
21055     HRESULT (STDMETHODCALLTYPE *get_Text)(
21056         ISpeechPhraseReplacement* This,
21057         BSTR *Text);
21058 
21059     HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
21060         ISpeechPhraseReplacement* This,
21061         LONG *FirstElement);
21062 
21063     HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
21064         ISpeechPhraseReplacement* This,
21065         LONG *NumberOfElements);
21066 
21067     END_INTERFACE
21068 } ISpeechPhraseReplacementVtbl;
21069 interface ISpeechPhraseReplacement {
21070     CONST_VTBL ISpeechPhraseReplacementVtbl* lpVtbl;
21071 };
21072 
21073 #ifdef COBJMACROS
21074 #ifndef WIDL_C_INLINE_WRAPPERS
21075 /*** IUnknown methods ***/
21076 #define ISpeechPhraseReplacement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21077 #define ISpeechPhraseReplacement_AddRef(This) (This)->lpVtbl->AddRef(This)
21078 #define ISpeechPhraseReplacement_Release(This) (This)->lpVtbl->Release(This)
21079 /*** IDispatch methods ***/
21080 #define ISpeechPhraseReplacement_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21081 #define ISpeechPhraseReplacement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21082 #define ISpeechPhraseReplacement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21083 #define ISpeechPhraseReplacement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21084 /*** ISpeechPhraseReplacement methods ***/
21085 #define ISpeechPhraseReplacement_get_DisplayAttributes(This,DisplayAttributes) (This)->lpVtbl->get_DisplayAttributes(This,DisplayAttributes)
21086 #define ISpeechPhraseReplacement_get_Text(This,Text) (This)->lpVtbl->get_Text(This,Text)
21087 #define ISpeechPhraseReplacement_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
21088 #define ISpeechPhraseReplacement_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
21089 #else
21090 /*** IUnknown methods ***/
21091 static FORCEINLINE HRESULT ISpeechPhraseReplacement_QueryInterface(ISpeechPhraseReplacement* This,REFIID riid,void **ppvObject) {
21092     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21093 }
21094 static FORCEINLINE ULONG ISpeechPhraseReplacement_AddRef(ISpeechPhraseReplacement* This) {
21095     return This->lpVtbl->AddRef(This);
21096 }
21097 static FORCEINLINE ULONG ISpeechPhraseReplacement_Release(ISpeechPhraseReplacement* This) {
21098     return This->lpVtbl->Release(This);
21099 }
21100 /*** IDispatch methods ***/
21101 static FORCEINLINE HRESULT ISpeechPhraseReplacement_GetTypeInfoCount(ISpeechPhraseReplacement* This,UINT *pctinfo) {
21102     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21103 }
21104 static FORCEINLINE HRESULT ISpeechPhraseReplacement_GetTypeInfo(ISpeechPhraseReplacement* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21105     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21106 }
21107 static FORCEINLINE HRESULT ISpeechPhraseReplacement_GetIDsOfNames(ISpeechPhraseReplacement* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21108     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21109 }
21110 static FORCEINLINE HRESULT ISpeechPhraseReplacement_Invoke(ISpeechPhraseReplacement* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21111     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21112 }
21113 /*** ISpeechPhraseReplacement methods ***/
21114 static FORCEINLINE HRESULT ISpeechPhraseReplacement_get_DisplayAttributes(ISpeechPhraseReplacement* This,SpeechDisplayAttributes *DisplayAttributes) {
21115     return This->lpVtbl->get_DisplayAttributes(This,DisplayAttributes);
21116 }
21117 static FORCEINLINE HRESULT ISpeechPhraseReplacement_get_Text(ISpeechPhraseReplacement* This,BSTR *Text) {
21118     return This->lpVtbl->get_Text(This,Text);
21119 }
21120 static FORCEINLINE HRESULT ISpeechPhraseReplacement_get_FirstElement(ISpeechPhraseReplacement* This,LONG *FirstElement) {
21121     return This->lpVtbl->get_FirstElement(This,FirstElement);
21122 }
21123 static FORCEINLINE HRESULT ISpeechPhraseReplacement_get_NumberOfElements(ISpeechPhraseReplacement* This,LONG *NumberOfElements) {
21124     return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
21125 }
21126 #endif
21127 #endif
21128 
21129 #endif
21130 
21131 HRESULT STDMETHODCALLTYPE ISpeechPhraseReplacement_get_DisplayAttributes_Proxy(
21132     ISpeechPhraseReplacement* This,
21133     SpeechDisplayAttributes *DisplayAttributes);
21134 void __RPC_STUB ISpeechPhraseReplacement_get_DisplayAttributes_Stub(
21135     IRpcStubBuffer* This,
21136     IRpcChannelBuffer* pRpcChannelBuffer,
21137     PRPC_MESSAGE pRpcMessage,
21138     DWORD* pdwStubPhase);
21139 HRESULT STDMETHODCALLTYPE ISpeechPhraseReplacement_get_Text_Proxy(
21140     ISpeechPhraseReplacement* This,
21141     BSTR *Text);
21142 void __RPC_STUB ISpeechPhraseReplacement_get_Text_Stub(
21143     IRpcStubBuffer* This,
21144     IRpcChannelBuffer* pRpcChannelBuffer,
21145     PRPC_MESSAGE pRpcMessage,
21146     DWORD* pdwStubPhase);
21147 HRESULT STDMETHODCALLTYPE ISpeechPhraseReplacement_get_FirstElement_Proxy(
21148     ISpeechPhraseReplacement* This,
21149     LONG *FirstElement);
21150 void __RPC_STUB ISpeechPhraseReplacement_get_FirstElement_Stub(
21151     IRpcStubBuffer* This,
21152     IRpcChannelBuffer* pRpcChannelBuffer,
21153     PRPC_MESSAGE pRpcMessage,
21154     DWORD* pdwStubPhase);
21155 HRESULT STDMETHODCALLTYPE ISpeechPhraseReplacement_get_NumberOfElements_Proxy(
21156     ISpeechPhraseReplacement* This,
21157     LONG *NumberOfElements);
21158 void __RPC_STUB ISpeechPhraseReplacement_get_NumberOfElements_Stub(
21159     IRpcStubBuffer* This,
21160     IRpcChannelBuffer* pRpcChannelBuffer,
21161     PRPC_MESSAGE pRpcMessage,
21162     DWORD* pdwStubPhase);
21163 
21164 #endif  /* __ISpeechPhraseReplacement_INTERFACE_DEFINED__ */
21165 
21166 /*****************************************************************************
21167  * ISpeechPhraseReplacements interface
21168  */
21169 #ifndef __ISpeechPhraseReplacements_INTERFACE_DEFINED__
21170 #define __ISpeechPhraseReplacements_INTERFACE_DEFINED__
21171 
21172 DEFINE_GUID(IID_ISpeechPhraseReplacements, 0x38bc662f, 0x2257, 0x4525, 0x95,0x9e, 0x20,0x69,0xd2,0x59,0x6c,0x05);
21173 #if defined(__cplusplus) && !defined(CINTERFACE)
21174 MIDL_INTERFACE("38bc662f-2257-4525-959e-2069d2596c05")
21175 ISpeechPhraseReplacements : public IDispatch
21176 {
21177     virtual HRESULT STDMETHODCALLTYPE get_Count(
21178         LONG *Count) = 0;
21179 
21180     virtual HRESULT STDMETHODCALLTYPE Item(
21181         LONG Index,
21182         ISpeechPhraseReplacement **Reps) = 0;
21183 
21184     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
21185         IUnknown **EnumVARIANT) = 0;
21186 
21187 };
21188 #ifdef __CRT_UUID_DECL
21189 __CRT_UUID_DECL(ISpeechPhraseReplacements, 0x38bc662f, 0x2257, 0x4525, 0x95,0x9e, 0x20,0x69,0xd2,0x59,0x6c,0x05)
21190 #endif
21191 #else
21192 typedef struct ISpeechPhraseReplacementsVtbl {
21193     BEGIN_INTERFACE
21194 
21195     /*** IUnknown methods ***/
21196     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21197         ISpeechPhraseReplacements* This,
21198         REFIID riid,
21199         void **ppvObject);
21200 
21201     ULONG (STDMETHODCALLTYPE *AddRef)(
21202         ISpeechPhraseReplacements* This);
21203 
21204     ULONG (STDMETHODCALLTYPE *Release)(
21205         ISpeechPhraseReplacements* This);
21206 
21207     /*** IDispatch methods ***/
21208     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21209         ISpeechPhraseReplacements* This,
21210         UINT *pctinfo);
21211 
21212     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21213         ISpeechPhraseReplacements* This,
21214         UINT iTInfo,
21215         LCID lcid,
21216         ITypeInfo **ppTInfo);
21217 
21218     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21219         ISpeechPhraseReplacements* This,
21220         REFIID riid,
21221         LPOLESTR *rgszNames,
21222         UINT cNames,
21223         LCID lcid,
21224         DISPID *rgDispId);
21225 
21226     HRESULT (STDMETHODCALLTYPE *Invoke)(
21227         ISpeechPhraseReplacements* This,
21228         DISPID dispIdMember,
21229         REFIID riid,
21230         LCID lcid,
21231         WORD wFlags,
21232         DISPPARAMS *pDispParams,
21233         VARIANT *pVarResult,
21234         EXCEPINFO *pExcepInfo,
21235         UINT *puArgErr);
21236 
21237     /*** ISpeechPhraseReplacements methods ***/
21238     HRESULT (STDMETHODCALLTYPE *get_Count)(
21239         ISpeechPhraseReplacements* This,
21240         LONG *Count);
21241 
21242     HRESULT (STDMETHODCALLTYPE *Item)(
21243         ISpeechPhraseReplacements* This,
21244         LONG Index,
21245         ISpeechPhraseReplacement **Reps);
21246 
21247     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
21248         ISpeechPhraseReplacements* This,
21249         IUnknown **EnumVARIANT);
21250 
21251     END_INTERFACE
21252 } ISpeechPhraseReplacementsVtbl;
21253 interface ISpeechPhraseReplacements {
21254     CONST_VTBL ISpeechPhraseReplacementsVtbl* lpVtbl;
21255 };
21256 
21257 #ifdef COBJMACROS
21258 #ifndef WIDL_C_INLINE_WRAPPERS
21259 /*** IUnknown methods ***/
21260 #define ISpeechPhraseReplacements_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21261 #define ISpeechPhraseReplacements_AddRef(This) (This)->lpVtbl->AddRef(This)
21262 #define ISpeechPhraseReplacements_Release(This) (This)->lpVtbl->Release(This)
21263 /*** IDispatch methods ***/
21264 #define ISpeechPhraseReplacements_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21265 #define ISpeechPhraseReplacements_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21266 #define ISpeechPhraseReplacements_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21267 #define ISpeechPhraseReplacements_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21268 /*** ISpeechPhraseReplacements methods ***/
21269 #define ISpeechPhraseReplacements_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
21270 #define ISpeechPhraseReplacements_Item(This,Index,Reps) (This)->lpVtbl->Item(This,Index,Reps)
21271 #define ISpeechPhraseReplacements_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
21272 #else
21273 /*** IUnknown methods ***/
21274 static FORCEINLINE HRESULT ISpeechPhraseReplacements_QueryInterface(ISpeechPhraseReplacements* This,REFIID riid,void **ppvObject) {
21275     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21276 }
21277 static FORCEINLINE ULONG ISpeechPhraseReplacements_AddRef(ISpeechPhraseReplacements* This) {
21278     return This->lpVtbl->AddRef(This);
21279 }
21280 static FORCEINLINE ULONG ISpeechPhraseReplacements_Release(ISpeechPhraseReplacements* This) {
21281     return This->lpVtbl->Release(This);
21282 }
21283 /*** IDispatch methods ***/
21284 static FORCEINLINE HRESULT ISpeechPhraseReplacements_GetTypeInfoCount(ISpeechPhraseReplacements* This,UINT *pctinfo) {
21285     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21286 }
21287 static FORCEINLINE HRESULT ISpeechPhraseReplacements_GetTypeInfo(ISpeechPhraseReplacements* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21288     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21289 }
21290 static FORCEINLINE HRESULT ISpeechPhraseReplacements_GetIDsOfNames(ISpeechPhraseReplacements* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21291     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21292 }
21293 static FORCEINLINE HRESULT ISpeechPhraseReplacements_Invoke(ISpeechPhraseReplacements* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21294     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21295 }
21296 /*** ISpeechPhraseReplacements methods ***/
21297 static FORCEINLINE HRESULT ISpeechPhraseReplacements_get_Count(ISpeechPhraseReplacements* This,LONG *Count) {
21298     return This->lpVtbl->get_Count(This,Count);
21299 }
21300 static FORCEINLINE HRESULT ISpeechPhraseReplacements_Item(ISpeechPhraseReplacements* This,LONG Index,ISpeechPhraseReplacement **Reps) {
21301     return This->lpVtbl->Item(This,Index,Reps);
21302 }
21303 static FORCEINLINE HRESULT ISpeechPhraseReplacements_get__NewEnum(ISpeechPhraseReplacements* This,IUnknown **EnumVARIANT) {
21304     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
21305 }
21306 #endif
21307 #endif
21308 
21309 #endif
21310 
21311 HRESULT STDMETHODCALLTYPE ISpeechPhraseReplacements_get_Count_Proxy(
21312     ISpeechPhraseReplacements* This,
21313     LONG *Count);
21314 void __RPC_STUB ISpeechPhraseReplacements_get_Count_Stub(
21315     IRpcStubBuffer* This,
21316     IRpcChannelBuffer* pRpcChannelBuffer,
21317     PRPC_MESSAGE pRpcMessage,
21318     DWORD* pdwStubPhase);
21319 HRESULT STDMETHODCALLTYPE ISpeechPhraseReplacements_Item_Proxy(
21320     ISpeechPhraseReplacements* This,
21321     LONG Index,
21322     ISpeechPhraseReplacement **Reps);
21323 void __RPC_STUB ISpeechPhraseReplacements_Item_Stub(
21324     IRpcStubBuffer* This,
21325     IRpcChannelBuffer* pRpcChannelBuffer,
21326     PRPC_MESSAGE pRpcMessage,
21327     DWORD* pdwStubPhase);
21328 HRESULT STDMETHODCALLTYPE ISpeechPhraseReplacements_get__NewEnum_Proxy(
21329     ISpeechPhraseReplacements* This,
21330     IUnknown **EnumVARIANT);
21331 void __RPC_STUB ISpeechPhraseReplacements_get__NewEnum_Stub(
21332     IRpcStubBuffer* This,
21333     IRpcChannelBuffer* pRpcChannelBuffer,
21334     PRPC_MESSAGE pRpcMessage,
21335     DWORD* pdwStubPhase);
21336 
21337 #endif  /* __ISpeechPhraseReplacements_INTERFACE_DEFINED__ */
21338 
21339 /*****************************************************************************
21340  * ISpeechPhraseProperty interface
21341  */
21342 #ifndef __ISpeechPhraseProperty_INTERFACE_DEFINED__
21343 #define __ISpeechPhraseProperty_INTERFACE_DEFINED__
21344 
21345 DEFINE_GUID(IID_ISpeechPhraseProperty, 0xce563d48, 0x961e, 0x4732, 0xa2,0xe1, 0x37,0x8a,0x42,0xb4,0x30,0xbe);
21346 #if defined(__cplusplus) && !defined(CINTERFACE)
21347 MIDL_INTERFACE("ce563d48-961e-4732-a2e1-378a42b430be")
21348 ISpeechPhraseProperty : public IDispatch
21349 {
21350     virtual HRESULT STDMETHODCALLTYPE get_Name(
21351         BSTR *Name) = 0;
21352 
21353     virtual HRESULT STDMETHODCALLTYPE get_Id(
21354         LONG *Id) = 0;
21355 
21356     virtual HRESULT STDMETHODCALLTYPE get_Value(
21357         VARIANT *Value) = 0;
21358 
21359     virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
21360         LONG *FirstElement) = 0;
21361 
21362     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
21363         LONG *NumberOfElements) = 0;
21364 
21365     virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
21366         float *Confidence) = 0;
21367 
21368     virtual HRESULT STDMETHODCALLTYPE get_Confidence(
21369         SpeechEngineConfidence *Confidence) = 0;
21370 
21371     virtual HRESULT STDMETHODCALLTYPE get_Parent(
21372         ISpeechPhraseProperty **ParentProperty) = 0;
21373 
21374     virtual HRESULT STDMETHODCALLTYPE get_Children(
21375         ISpeechPhraseProperties **Children) = 0;
21376 
21377 };
21378 #ifdef __CRT_UUID_DECL
21379 __CRT_UUID_DECL(ISpeechPhraseProperty, 0xce563d48, 0x961e, 0x4732, 0xa2,0xe1, 0x37,0x8a,0x42,0xb4,0x30,0xbe)
21380 #endif
21381 #else
21382 typedef struct ISpeechPhrasePropertyVtbl {
21383     BEGIN_INTERFACE
21384 
21385     /*** IUnknown methods ***/
21386     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21387         ISpeechPhraseProperty* This,
21388         REFIID riid,
21389         void **ppvObject);
21390 
21391     ULONG (STDMETHODCALLTYPE *AddRef)(
21392         ISpeechPhraseProperty* This);
21393 
21394     ULONG (STDMETHODCALLTYPE *Release)(
21395         ISpeechPhraseProperty* This);
21396 
21397     /*** IDispatch methods ***/
21398     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21399         ISpeechPhraseProperty* This,
21400         UINT *pctinfo);
21401 
21402     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21403         ISpeechPhraseProperty* This,
21404         UINT iTInfo,
21405         LCID lcid,
21406         ITypeInfo **ppTInfo);
21407 
21408     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21409         ISpeechPhraseProperty* This,
21410         REFIID riid,
21411         LPOLESTR *rgszNames,
21412         UINT cNames,
21413         LCID lcid,
21414         DISPID *rgDispId);
21415 
21416     HRESULT (STDMETHODCALLTYPE *Invoke)(
21417         ISpeechPhraseProperty* This,
21418         DISPID dispIdMember,
21419         REFIID riid,
21420         LCID lcid,
21421         WORD wFlags,
21422         DISPPARAMS *pDispParams,
21423         VARIANT *pVarResult,
21424         EXCEPINFO *pExcepInfo,
21425         UINT *puArgErr);
21426 
21427     /*** ISpeechPhraseProperty methods ***/
21428     HRESULT (STDMETHODCALLTYPE *get_Name)(
21429         ISpeechPhraseProperty* This,
21430         BSTR *Name);
21431 
21432     HRESULT (STDMETHODCALLTYPE *get_Id)(
21433         ISpeechPhraseProperty* This,
21434         LONG *Id);
21435 
21436     HRESULT (STDMETHODCALLTYPE *get_Value)(
21437         ISpeechPhraseProperty* This,
21438         VARIANT *Value);
21439 
21440     HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
21441         ISpeechPhraseProperty* This,
21442         LONG *FirstElement);
21443 
21444     HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
21445         ISpeechPhraseProperty* This,
21446         LONG *NumberOfElements);
21447 
21448     HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
21449         ISpeechPhraseProperty* This,
21450         float *Confidence);
21451 
21452     HRESULT (STDMETHODCALLTYPE *get_Confidence)(
21453         ISpeechPhraseProperty* This,
21454         SpeechEngineConfidence *Confidence);
21455 
21456     HRESULT (STDMETHODCALLTYPE *get_Parent)(
21457         ISpeechPhraseProperty* This,
21458         ISpeechPhraseProperty **ParentProperty);
21459 
21460     HRESULT (STDMETHODCALLTYPE *get_Children)(
21461         ISpeechPhraseProperty* This,
21462         ISpeechPhraseProperties **Children);
21463 
21464     END_INTERFACE
21465 } ISpeechPhrasePropertyVtbl;
21466 interface ISpeechPhraseProperty {
21467     CONST_VTBL ISpeechPhrasePropertyVtbl* lpVtbl;
21468 };
21469 
21470 #ifdef COBJMACROS
21471 #ifndef WIDL_C_INLINE_WRAPPERS
21472 /*** IUnknown methods ***/
21473 #define ISpeechPhraseProperty_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21474 #define ISpeechPhraseProperty_AddRef(This) (This)->lpVtbl->AddRef(This)
21475 #define ISpeechPhraseProperty_Release(This) (This)->lpVtbl->Release(This)
21476 /*** IDispatch methods ***/
21477 #define ISpeechPhraseProperty_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21478 #define ISpeechPhraseProperty_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21479 #define ISpeechPhraseProperty_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21480 #define ISpeechPhraseProperty_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21481 /*** ISpeechPhraseProperty methods ***/
21482 #define ISpeechPhraseProperty_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
21483 #define ISpeechPhraseProperty_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
21484 #define ISpeechPhraseProperty_get_Value(This,Value) (This)->lpVtbl->get_Value(This,Value)
21485 #define ISpeechPhraseProperty_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
21486 #define ISpeechPhraseProperty_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
21487 #define ISpeechPhraseProperty_get_EngineConfidence(This,Confidence) (This)->lpVtbl->get_EngineConfidence(This,Confidence)
21488 #define ISpeechPhraseProperty_get_Confidence(This,Confidence) (This)->lpVtbl->get_Confidence(This,Confidence)
21489 #define ISpeechPhraseProperty_get_Parent(This,ParentProperty) (This)->lpVtbl->get_Parent(This,ParentProperty)
21490 #define ISpeechPhraseProperty_get_Children(This,Children) (This)->lpVtbl->get_Children(This,Children)
21491 #else
21492 /*** IUnknown methods ***/
21493 static FORCEINLINE HRESULT ISpeechPhraseProperty_QueryInterface(ISpeechPhraseProperty* This,REFIID riid,void **ppvObject) {
21494     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21495 }
21496 static FORCEINLINE ULONG ISpeechPhraseProperty_AddRef(ISpeechPhraseProperty* This) {
21497     return This->lpVtbl->AddRef(This);
21498 }
21499 static FORCEINLINE ULONG ISpeechPhraseProperty_Release(ISpeechPhraseProperty* This) {
21500     return This->lpVtbl->Release(This);
21501 }
21502 /*** IDispatch methods ***/
21503 static FORCEINLINE HRESULT ISpeechPhraseProperty_GetTypeInfoCount(ISpeechPhraseProperty* This,UINT *pctinfo) {
21504     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21505 }
21506 static FORCEINLINE HRESULT ISpeechPhraseProperty_GetTypeInfo(ISpeechPhraseProperty* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21507     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21508 }
21509 static FORCEINLINE HRESULT ISpeechPhraseProperty_GetIDsOfNames(ISpeechPhraseProperty* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21510     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21511 }
21512 static FORCEINLINE HRESULT ISpeechPhraseProperty_Invoke(ISpeechPhraseProperty* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21513     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21514 }
21515 /*** ISpeechPhraseProperty methods ***/
21516 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Name(ISpeechPhraseProperty* This,BSTR *Name) {
21517     return This->lpVtbl->get_Name(This,Name);
21518 }
21519 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Id(ISpeechPhraseProperty* This,LONG *Id) {
21520     return This->lpVtbl->get_Id(This,Id);
21521 }
21522 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Value(ISpeechPhraseProperty* This,VARIANT *Value) {
21523     return This->lpVtbl->get_Value(This,Value);
21524 }
21525 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_FirstElement(ISpeechPhraseProperty* This,LONG *FirstElement) {
21526     return This->lpVtbl->get_FirstElement(This,FirstElement);
21527 }
21528 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_NumberOfElements(ISpeechPhraseProperty* This,LONG *NumberOfElements) {
21529     return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
21530 }
21531 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_EngineConfidence(ISpeechPhraseProperty* This,float *Confidence) {
21532     return This->lpVtbl->get_EngineConfidence(This,Confidence);
21533 }
21534 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Confidence(ISpeechPhraseProperty* This,SpeechEngineConfidence *Confidence) {
21535     return This->lpVtbl->get_Confidence(This,Confidence);
21536 }
21537 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Parent(ISpeechPhraseProperty* This,ISpeechPhraseProperty **ParentProperty) {
21538     return This->lpVtbl->get_Parent(This,ParentProperty);
21539 }
21540 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Children(ISpeechPhraseProperty* This,ISpeechPhraseProperties **Children) {
21541     return This->lpVtbl->get_Children(This,Children);
21542 }
21543 #endif
21544 #endif
21545 
21546 #endif
21547 
21548 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_Name_Proxy(
21549     ISpeechPhraseProperty* This,
21550     BSTR *Name);
21551 void __RPC_STUB ISpeechPhraseProperty_get_Name_Stub(
21552     IRpcStubBuffer* This,
21553     IRpcChannelBuffer* pRpcChannelBuffer,
21554     PRPC_MESSAGE pRpcMessage,
21555     DWORD* pdwStubPhase);
21556 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_Id_Proxy(
21557     ISpeechPhraseProperty* This,
21558     LONG *Id);
21559 void __RPC_STUB ISpeechPhraseProperty_get_Id_Stub(
21560     IRpcStubBuffer* This,
21561     IRpcChannelBuffer* pRpcChannelBuffer,
21562     PRPC_MESSAGE pRpcMessage,
21563     DWORD* pdwStubPhase);
21564 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_Value_Proxy(
21565     ISpeechPhraseProperty* This,
21566     VARIANT *Value);
21567 void __RPC_STUB ISpeechPhraseProperty_get_Value_Stub(
21568     IRpcStubBuffer* This,
21569     IRpcChannelBuffer* pRpcChannelBuffer,
21570     PRPC_MESSAGE pRpcMessage,
21571     DWORD* pdwStubPhase);
21572 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_FirstElement_Proxy(
21573     ISpeechPhraseProperty* This,
21574     LONG *FirstElement);
21575 void __RPC_STUB ISpeechPhraseProperty_get_FirstElement_Stub(
21576     IRpcStubBuffer* This,
21577     IRpcChannelBuffer* pRpcChannelBuffer,
21578     PRPC_MESSAGE pRpcMessage,
21579     DWORD* pdwStubPhase);
21580 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_NumberOfElements_Proxy(
21581     ISpeechPhraseProperty* This,
21582     LONG *NumberOfElements);
21583 void __RPC_STUB ISpeechPhraseProperty_get_NumberOfElements_Stub(
21584     IRpcStubBuffer* This,
21585     IRpcChannelBuffer* pRpcChannelBuffer,
21586     PRPC_MESSAGE pRpcMessage,
21587     DWORD* pdwStubPhase);
21588 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_EngineConfidence_Proxy(
21589     ISpeechPhraseProperty* This,
21590     float *Confidence);
21591 void __RPC_STUB ISpeechPhraseProperty_get_EngineConfidence_Stub(
21592     IRpcStubBuffer* This,
21593     IRpcChannelBuffer* pRpcChannelBuffer,
21594     PRPC_MESSAGE pRpcMessage,
21595     DWORD* pdwStubPhase);
21596 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_Confidence_Proxy(
21597     ISpeechPhraseProperty* This,
21598     SpeechEngineConfidence *Confidence);
21599 void __RPC_STUB ISpeechPhraseProperty_get_Confidence_Stub(
21600     IRpcStubBuffer* This,
21601     IRpcChannelBuffer* pRpcChannelBuffer,
21602     PRPC_MESSAGE pRpcMessage,
21603     DWORD* pdwStubPhase);
21604 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_Parent_Proxy(
21605     ISpeechPhraseProperty* This,
21606     ISpeechPhraseProperty **ParentProperty);
21607 void __RPC_STUB ISpeechPhraseProperty_get_Parent_Stub(
21608     IRpcStubBuffer* This,
21609     IRpcChannelBuffer* pRpcChannelBuffer,
21610     PRPC_MESSAGE pRpcMessage,
21611     DWORD* pdwStubPhase);
21612 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperty_get_Children_Proxy(
21613     ISpeechPhraseProperty* This,
21614     ISpeechPhraseProperties **Children);
21615 void __RPC_STUB ISpeechPhraseProperty_get_Children_Stub(
21616     IRpcStubBuffer* This,
21617     IRpcChannelBuffer* pRpcChannelBuffer,
21618     PRPC_MESSAGE pRpcMessage,
21619     DWORD* pdwStubPhase);
21620 
21621 #endif  /* __ISpeechPhraseProperty_INTERFACE_DEFINED__ */
21622 
21623 /*****************************************************************************
21624  * ISpeechPhraseProperties interface
21625  */
21626 #ifndef __ISpeechPhraseProperties_INTERFACE_DEFINED__
21627 #define __ISpeechPhraseProperties_INTERFACE_DEFINED__
21628 
21629 DEFINE_GUID(IID_ISpeechPhraseProperties, 0x08166b47, 0x102e, 0x4b23, 0xa5,0x99, 0xbd,0xb9,0x8d,0xbf,0xd1,0xf4);
21630 #if defined(__cplusplus) && !defined(CINTERFACE)
21631 MIDL_INTERFACE("08166b47-102e-4b23-a599-bdb98dbfd1f4")
21632 ISpeechPhraseProperties : public IDispatch
21633 {
21634     virtual HRESULT STDMETHODCALLTYPE get_Count(
21635         LONG *Count) = 0;
21636 
21637     virtual HRESULT STDMETHODCALLTYPE Item(
21638         LONG Index,
21639         ISpeechPhraseProperty **Property) = 0;
21640 
21641     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
21642         IUnknown **EnumVARIANT) = 0;
21643 
21644 };
21645 #ifdef __CRT_UUID_DECL
21646 __CRT_UUID_DECL(ISpeechPhraseProperties, 0x08166b47, 0x102e, 0x4b23, 0xa5,0x99, 0xbd,0xb9,0x8d,0xbf,0xd1,0xf4)
21647 #endif
21648 #else
21649 typedef struct ISpeechPhrasePropertiesVtbl {
21650     BEGIN_INTERFACE
21651 
21652     /*** IUnknown methods ***/
21653     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21654         ISpeechPhraseProperties* This,
21655         REFIID riid,
21656         void **ppvObject);
21657 
21658     ULONG (STDMETHODCALLTYPE *AddRef)(
21659         ISpeechPhraseProperties* This);
21660 
21661     ULONG (STDMETHODCALLTYPE *Release)(
21662         ISpeechPhraseProperties* This);
21663 
21664     /*** IDispatch methods ***/
21665     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21666         ISpeechPhraseProperties* This,
21667         UINT *pctinfo);
21668 
21669     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21670         ISpeechPhraseProperties* This,
21671         UINT iTInfo,
21672         LCID lcid,
21673         ITypeInfo **ppTInfo);
21674 
21675     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21676         ISpeechPhraseProperties* This,
21677         REFIID riid,
21678         LPOLESTR *rgszNames,
21679         UINT cNames,
21680         LCID lcid,
21681         DISPID *rgDispId);
21682 
21683     HRESULT (STDMETHODCALLTYPE *Invoke)(
21684         ISpeechPhraseProperties* This,
21685         DISPID dispIdMember,
21686         REFIID riid,
21687         LCID lcid,
21688         WORD wFlags,
21689         DISPPARAMS *pDispParams,
21690         VARIANT *pVarResult,
21691         EXCEPINFO *pExcepInfo,
21692         UINT *puArgErr);
21693 
21694     /*** ISpeechPhraseProperties methods ***/
21695     HRESULT (STDMETHODCALLTYPE *get_Count)(
21696         ISpeechPhraseProperties* This,
21697         LONG *Count);
21698 
21699     HRESULT (STDMETHODCALLTYPE *Item)(
21700         ISpeechPhraseProperties* This,
21701         LONG Index,
21702         ISpeechPhraseProperty **Property);
21703 
21704     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
21705         ISpeechPhraseProperties* This,
21706         IUnknown **EnumVARIANT);
21707 
21708     END_INTERFACE
21709 } ISpeechPhrasePropertiesVtbl;
21710 interface ISpeechPhraseProperties {
21711     CONST_VTBL ISpeechPhrasePropertiesVtbl* lpVtbl;
21712 };
21713 
21714 #ifdef COBJMACROS
21715 #ifndef WIDL_C_INLINE_WRAPPERS
21716 /*** IUnknown methods ***/
21717 #define ISpeechPhraseProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21718 #define ISpeechPhraseProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
21719 #define ISpeechPhraseProperties_Release(This) (This)->lpVtbl->Release(This)
21720 /*** IDispatch methods ***/
21721 #define ISpeechPhraseProperties_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21722 #define ISpeechPhraseProperties_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21723 #define ISpeechPhraseProperties_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21724 #define ISpeechPhraseProperties_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21725 /*** ISpeechPhraseProperties methods ***/
21726 #define ISpeechPhraseProperties_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
21727 #define ISpeechPhraseProperties_Item(This,Index,Property) (This)->lpVtbl->Item(This,Index,Property)
21728 #define ISpeechPhraseProperties_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
21729 #else
21730 /*** IUnknown methods ***/
21731 static FORCEINLINE HRESULT ISpeechPhraseProperties_QueryInterface(ISpeechPhraseProperties* This,REFIID riid,void **ppvObject) {
21732     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21733 }
21734 static FORCEINLINE ULONG ISpeechPhraseProperties_AddRef(ISpeechPhraseProperties* This) {
21735     return This->lpVtbl->AddRef(This);
21736 }
21737 static FORCEINLINE ULONG ISpeechPhraseProperties_Release(ISpeechPhraseProperties* This) {
21738     return This->lpVtbl->Release(This);
21739 }
21740 /*** IDispatch methods ***/
21741 static FORCEINLINE HRESULT ISpeechPhraseProperties_GetTypeInfoCount(ISpeechPhraseProperties* This,UINT *pctinfo) {
21742     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21743 }
21744 static FORCEINLINE HRESULT ISpeechPhraseProperties_GetTypeInfo(ISpeechPhraseProperties* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21745     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21746 }
21747 static FORCEINLINE HRESULT ISpeechPhraseProperties_GetIDsOfNames(ISpeechPhraseProperties* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21748     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21749 }
21750 static FORCEINLINE HRESULT ISpeechPhraseProperties_Invoke(ISpeechPhraseProperties* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21751     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21752 }
21753 /*** ISpeechPhraseProperties methods ***/
21754 static FORCEINLINE HRESULT ISpeechPhraseProperties_get_Count(ISpeechPhraseProperties* This,LONG *Count) {
21755     return This->lpVtbl->get_Count(This,Count);
21756 }
21757 static FORCEINLINE HRESULT ISpeechPhraseProperties_Item(ISpeechPhraseProperties* This,LONG Index,ISpeechPhraseProperty **Property) {
21758     return This->lpVtbl->Item(This,Index,Property);
21759 }
21760 static FORCEINLINE HRESULT ISpeechPhraseProperties_get__NewEnum(ISpeechPhraseProperties* This,IUnknown **EnumVARIANT) {
21761     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
21762 }
21763 #endif
21764 #endif
21765 
21766 #endif
21767 
21768 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperties_get_Count_Proxy(
21769     ISpeechPhraseProperties* This,
21770     LONG *Count);
21771 void __RPC_STUB ISpeechPhraseProperties_get_Count_Stub(
21772     IRpcStubBuffer* This,
21773     IRpcChannelBuffer* pRpcChannelBuffer,
21774     PRPC_MESSAGE pRpcMessage,
21775     DWORD* pdwStubPhase);
21776 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperties_Item_Proxy(
21777     ISpeechPhraseProperties* This,
21778     LONG Index,
21779     ISpeechPhraseProperty **Property);
21780 void __RPC_STUB ISpeechPhraseProperties_Item_Stub(
21781     IRpcStubBuffer* This,
21782     IRpcChannelBuffer* pRpcChannelBuffer,
21783     PRPC_MESSAGE pRpcMessage,
21784     DWORD* pdwStubPhase);
21785 HRESULT STDMETHODCALLTYPE ISpeechPhraseProperties_get__NewEnum_Proxy(
21786     ISpeechPhraseProperties* This,
21787     IUnknown **EnumVARIANT);
21788 void __RPC_STUB ISpeechPhraseProperties_get__NewEnum_Stub(
21789     IRpcStubBuffer* This,
21790     IRpcChannelBuffer* pRpcChannelBuffer,
21791     PRPC_MESSAGE pRpcMessage,
21792     DWORD* pdwStubPhase);
21793 
21794 #endif  /* __ISpeechPhraseProperties_INTERFACE_DEFINED__ */
21795 
21796 /*****************************************************************************
21797  * ISpeechPhraseRule interface
21798  */
21799 #ifndef __ISpeechPhraseRule_INTERFACE_DEFINED__
21800 #define __ISpeechPhraseRule_INTERFACE_DEFINED__
21801 
21802 DEFINE_GUID(IID_ISpeechPhraseRule, 0xa7bfe112, 0xa4a0, 0x48d9, 0xb6,0x02, 0xc3,0x13,0x84,0x3f,0x69,0x64);
21803 #if defined(__cplusplus) && !defined(CINTERFACE)
21804 MIDL_INTERFACE("a7bfe112-a4a0-48d9-b602-c313843f6964")
21805 ISpeechPhraseRule : public IDispatch
21806 {
21807     virtual HRESULT STDMETHODCALLTYPE get_Name(
21808         BSTR *Name) = 0;
21809 
21810     virtual HRESULT STDMETHODCALLTYPE get_Id(
21811         LONG *Id) = 0;
21812 
21813     virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
21814         LONG *FirstElement) = 0;
21815 
21816     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
21817         LONG *NumberOfElements) = 0;
21818 
21819     virtual HRESULT STDMETHODCALLTYPE get_Parent(
21820         ISpeechPhraseRule **Parent) = 0;
21821 
21822     virtual HRESULT STDMETHODCALLTYPE get_Children(
21823         ISpeechPhraseRules **Children) = 0;
21824 
21825     virtual HRESULT STDMETHODCALLTYPE get_Confidence(
21826         SpeechEngineConfidence *ActualConfidence) = 0;
21827 
21828     virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
21829         float *EngineConfidence) = 0;
21830 
21831 };
21832 #ifdef __CRT_UUID_DECL
21833 __CRT_UUID_DECL(ISpeechPhraseRule, 0xa7bfe112, 0xa4a0, 0x48d9, 0xb6,0x02, 0xc3,0x13,0x84,0x3f,0x69,0x64)
21834 #endif
21835 #else
21836 typedef struct ISpeechPhraseRuleVtbl {
21837     BEGIN_INTERFACE
21838 
21839     /*** IUnknown methods ***/
21840     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21841         ISpeechPhraseRule* This,
21842         REFIID riid,
21843         void **ppvObject);
21844 
21845     ULONG (STDMETHODCALLTYPE *AddRef)(
21846         ISpeechPhraseRule* This);
21847 
21848     ULONG (STDMETHODCALLTYPE *Release)(
21849         ISpeechPhraseRule* This);
21850 
21851     /*** IDispatch methods ***/
21852     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21853         ISpeechPhraseRule* This,
21854         UINT *pctinfo);
21855 
21856     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21857         ISpeechPhraseRule* This,
21858         UINT iTInfo,
21859         LCID lcid,
21860         ITypeInfo **ppTInfo);
21861 
21862     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21863         ISpeechPhraseRule* This,
21864         REFIID riid,
21865         LPOLESTR *rgszNames,
21866         UINT cNames,
21867         LCID lcid,
21868         DISPID *rgDispId);
21869 
21870     HRESULT (STDMETHODCALLTYPE *Invoke)(
21871         ISpeechPhraseRule* This,
21872         DISPID dispIdMember,
21873         REFIID riid,
21874         LCID lcid,
21875         WORD wFlags,
21876         DISPPARAMS *pDispParams,
21877         VARIANT *pVarResult,
21878         EXCEPINFO *pExcepInfo,
21879         UINT *puArgErr);
21880 
21881     /*** ISpeechPhraseRule methods ***/
21882     HRESULT (STDMETHODCALLTYPE *get_Name)(
21883         ISpeechPhraseRule* This,
21884         BSTR *Name);
21885 
21886     HRESULT (STDMETHODCALLTYPE *get_Id)(
21887         ISpeechPhraseRule* This,
21888         LONG *Id);
21889 
21890     HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
21891         ISpeechPhraseRule* This,
21892         LONG *FirstElement);
21893 
21894     HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
21895         ISpeechPhraseRule* This,
21896         LONG *NumberOfElements);
21897 
21898     HRESULT (STDMETHODCALLTYPE *get_Parent)(
21899         ISpeechPhraseRule* This,
21900         ISpeechPhraseRule **Parent);
21901 
21902     HRESULT (STDMETHODCALLTYPE *get_Children)(
21903         ISpeechPhraseRule* This,
21904         ISpeechPhraseRules **Children);
21905 
21906     HRESULT (STDMETHODCALLTYPE *get_Confidence)(
21907         ISpeechPhraseRule* This,
21908         SpeechEngineConfidence *ActualConfidence);
21909 
21910     HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
21911         ISpeechPhraseRule* This,
21912         float *EngineConfidence);
21913 
21914     END_INTERFACE
21915 } ISpeechPhraseRuleVtbl;
21916 interface ISpeechPhraseRule {
21917     CONST_VTBL ISpeechPhraseRuleVtbl* lpVtbl;
21918 };
21919 
21920 #ifdef COBJMACROS
21921 #ifndef WIDL_C_INLINE_WRAPPERS
21922 /*** IUnknown methods ***/
21923 #define ISpeechPhraseRule_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21924 #define ISpeechPhraseRule_AddRef(This) (This)->lpVtbl->AddRef(This)
21925 #define ISpeechPhraseRule_Release(This) (This)->lpVtbl->Release(This)
21926 /*** IDispatch methods ***/
21927 #define ISpeechPhraseRule_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21928 #define ISpeechPhraseRule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21929 #define ISpeechPhraseRule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21930 #define ISpeechPhraseRule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21931 /*** ISpeechPhraseRule methods ***/
21932 #define ISpeechPhraseRule_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
21933 #define ISpeechPhraseRule_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
21934 #define ISpeechPhraseRule_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
21935 #define ISpeechPhraseRule_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
21936 #define ISpeechPhraseRule_get_Parent(This,Parent) (This)->lpVtbl->get_Parent(This,Parent)
21937 #define ISpeechPhraseRule_get_Children(This,Children) (This)->lpVtbl->get_Children(This,Children)
21938 #define ISpeechPhraseRule_get_Confidence(This,ActualConfidence) (This)->lpVtbl->get_Confidence(This,ActualConfidence)
21939 #define ISpeechPhraseRule_get_EngineConfidence(This,EngineConfidence) (This)->lpVtbl->get_EngineConfidence(This,EngineConfidence)
21940 #else
21941 /*** IUnknown methods ***/
21942 static FORCEINLINE HRESULT ISpeechPhraseRule_QueryInterface(ISpeechPhraseRule* This,REFIID riid,void **ppvObject) {
21943     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21944 }
21945 static FORCEINLINE ULONG ISpeechPhraseRule_AddRef(ISpeechPhraseRule* This) {
21946     return This->lpVtbl->AddRef(This);
21947 }
21948 static FORCEINLINE ULONG ISpeechPhraseRule_Release(ISpeechPhraseRule* This) {
21949     return This->lpVtbl->Release(This);
21950 }
21951 /*** IDispatch methods ***/
21952 static FORCEINLINE HRESULT ISpeechPhraseRule_GetTypeInfoCount(ISpeechPhraseRule* This,UINT *pctinfo) {
21953     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21954 }
21955 static FORCEINLINE HRESULT ISpeechPhraseRule_GetTypeInfo(ISpeechPhraseRule* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21956     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21957 }
21958 static FORCEINLINE HRESULT ISpeechPhraseRule_GetIDsOfNames(ISpeechPhraseRule* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21959     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21960 }
21961 static FORCEINLINE HRESULT ISpeechPhraseRule_Invoke(ISpeechPhraseRule* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21962     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21963 }
21964 /*** ISpeechPhraseRule methods ***/
21965 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Name(ISpeechPhraseRule* This,BSTR *Name) {
21966     return This->lpVtbl->get_Name(This,Name);
21967 }
21968 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Id(ISpeechPhraseRule* This,LONG *Id) {
21969     return This->lpVtbl->get_Id(This,Id);
21970 }
21971 static FORCEINLINE HRESULT ISpeechPhraseRule_get_FirstElement(ISpeechPhraseRule* This,LONG *FirstElement) {
21972     return This->lpVtbl->get_FirstElement(This,FirstElement);
21973 }
21974 static FORCEINLINE HRESULT ISpeechPhraseRule_get_NumberOfElements(ISpeechPhraseRule* This,LONG *NumberOfElements) {
21975     return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
21976 }
21977 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Parent(ISpeechPhraseRule* This,ISpeechPhraseRule **Parent) {
21978     return This->lpVtbl->get_Parent(This,Parent);
21979 }
21980 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Children(ISpeechPhraseRule* This,ISpeechPhraseRules **Children) {
21981     return This->lpVtbl->get_Children(This,Children);
21982 }
21983 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Confidence(ISpeechPhraseRule* This,SpeechEngineConfidence *ActualConfidence) {
21984     return This->lpVtbl->get_Confidence(This,ActualConfidence);
21985 }
21986 static FORCEINLINE HRESULT ISpeechPhraseRule_get_EngineConfidence(ISpeechPhraseRule* This,float *EngineConfidence) {
21987     return This->lpVtbl->get_EngineConfidence(This,EngineConfidence);
21988 }
21989 #endif
21990 #endif
21991 
21992 #endif
21993 
21994 HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_Name_Proxy(
21995     ISpeechPhraseRule* This,
21996     BSTR *Name);
21997 void __RPC_STUB ISpeechPhraseRule_get_Name_Stub(
21998     IRpcStubBuffer* This,
21999     IRpcChannelBuffer* pRpcChannelBuffer,
22000     PRPC_MESSAGE pRpcMessage,
22001     DWORD* pdwStubPhase);
22002 HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_Id_Proxy(
22003     ISpeechPhraseRule* This,
22004     LONG *Id);
22005 void __RPC_STUB ISpeechPhraseRule_get_Id_Stub(
22006     IRpcStubBuffer* This,
22007     IRpcChannelBuffer* pRpcChannelBuffer,
22008     PRPC_MESSAGE pRpcMessage,
22009     DWORD* pdwStubPhase);
22010 HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_FirstElement_Proxy(
22011     ISpeechPhraseRule* This,
22012     LONG *FirstElement);
22013 void __RPC_STUB ISpeechPhraseRule_get_FirstElement_Stub(
22014     IRpcStubBuffer* This,
22015     IRpcChannelBuffer* pRpcChannelBuffer,
22016     PRPC_MESSAGE pRpcMessage,
22017     DWORD* pdwStubPhase);
22018 HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_NumberOfElements_Proxy(
22019     ISpeechPhraseRule* This,
22020     LONG *NumberOfElements);
22021 void __RPC_STUB ISpeechPhraseRule_get_NumberOfElements_Stub(
22022     IRpcStubBuffer* This,
22023     IRpcChannelBuffer* pRpcChannelBuffer,
22024     PRPC_MESSAGE pRpcMessage,
22025     DWORD* pdwStubPhase);
22026 HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_Parent_Proxy(
22027     ISpeechPhraseRule* This,
22028     ISpeechPhraseRule **Parent);
22029 void __RPC_STUB ISpeechPhraseRule_get_Parent_Stub(
22030     IRpcStubBuffer* This,
22031     IRpcChannelBuffer* pRpcChannelBuffer,
22032     PRPC_MESSAGE pRpcMessage,
22033     DWORD* pdwStubPhase);
22034 HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_Children_Proxy(
22035     ISpeechPhraseRule* This,
22036     ISpeechPhraseRules **Children);
22037 void __RPC_STUB ISpeechPhraseRule_get_Children_Stub(
22038     IRpcStubBuffer* This,
22039     IRpcChannelBuffer* pRpcChannelBuffer,
22040     PRPC_MESSAGE pRpcMessage,
22041     DWORD* pdwStubPhase);
22042 HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_Confidence_Proxy(
22043     ISpeechPhraseRule* This,
22044     SpeechEngineConfidence *ActualConfidence);
22045 void __RPC_STUB ISpeechPhraseRule_get_Confidence_Stub(
22046     IRpcStubBuffer* This,
22047     IRpcChannelBuffer* pRpcChannelBuffer,
22048     PRPC_MESSAGE pRpcMessage,
22049     DWORD* pdwStubPhase);
22050 HRESULT STDMETHODCALLTYPE ISpeechPhraseRule_get_EngineConfidence_Proxy(
22051     ISpeechPhraseRule* This,
22052     float *EngineConfidence);
22053 void __RPC_STUB ISpeechPhraseRule_get_EngineConfidence_Stub(
22054     IRpcStubBuffer* This,
22055     IRpcChannelBuffer* pRpcChannelBuffer,
22056     PRPC_MESSAGE pRpcMessage,
22057     DWORD* pdwStubPhase);
22058 
22059 #endif  /* __ISpeechPhraseRule_INTERFACE_DEFINED__ */
22060 
22061 /*****************************************************************************
22062  * ISpeechPhraseRules interface
22063  */
22064 #ifndef __ISpeechPhraseRules_INTERFACE_DEFINED__
22065 #define __ISpeechPhraseRules_INTERFACE_DEFINED__
22066 
22067 DEFINE_GUID(IID_ISpeechPhraseRules, 0x9047d593, 0x01dd, 0x4b72, 0x81,0xa3, 0xe4,0xa0,0xca,0x69,0xf4,0x07);
22068 #if defined(__cplusplus) && !defined(CINTERFACE)
22069 MIDL_INTERFACE("9047d593-01dd-4b72-81a3-e4a0ca69f407")
22070 ISpeechPhraseRules : public IDispatch
22071 {
22072     virtual HRESULT STDMETHODCALLTYPE get_Count(
22073         LONG *Count) = 0;
22074 
22075     virtual HRESULT STDMETHODCALLTYPE Item(
22076         LONG Index,
22077         ISpeechPhraseRule **Rule) = 0;
22078 
22079     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
22080         IUnknown **EnumVARIANT) = 0;
22081 
22082 };
22083 #ifdef __CRT_UUID_DECL
22084 __CRT_UUID_DECL(ISpeechPhraseRules, 0x9047d593, 0x01dd, 0x4b72, 0x81,0xa3, 0xe4,0xa0,0xca,0x69,0xf4,0x07)
22085 #endif
22086 #else
22087 typedef struct ISpeechPhraseRulesVtbl {
22088     BEGIN_INTERFACE
22089 
22090     /*** IUnknown methods ***/
22091     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22092         ISpeechPhraseRules* This,
22093         REFIID riid,
22094         void **ppvObject);
22095 
22096     ULONG (STDMETHODCALLTYPE *AddRef)(
22097         ISpeechPhraseRules* This);
22098 
22099     ULONG (STDMETHODCALLTYPE *Release)(
22100         ISpeechPhraseRules* This);
22101 
22102     /*** IDispatch methods ***/
22103     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
22104         ISpeechPhraseRules* This,
22105         UINT *pctinfo);
22106 
22107     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
22108         ISpeechPhraseRules* This,
22109         UINT iTInfo,
22110         LCID lcid,
22111         ITypeInfo **ppTInfo);
22112 
22113     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
22114         ISpeechPhraseRules* This,
22115         REFIID riid,
22116         LPOLESTR *rgszNames,
22117         UINT cNames,
22118         LCID lcid,
22119         DISPID *rgDispId);
22120 
22121     HRESULT (STDMETHODCALLTYPE *Invoke)(
22122         ISpeechPhraseRules* This,
22123         DISPID dispIdMember,
22124         REFIID riid,
22125         LCID lcid,
22126         WORD wFlags,
22127         DISPPARAMS *pDispParams,
22128         VARIANT *pVarResult,
22129         EXCEPINFO *pExcepInfo,
22130         UINT *puArgErr);
22131 
22132     /*** ISpeechPhraseRules methods ***/
22133     HRESULT (STDMETHODCALLTYPE *get_Count)(
22134         ISpeechPhraseRules* This,
22135         LONG *Count);
22136 
22137     HRESULT (STDMETHODCALLTYPE *Item)(
22138         ISpeechPhraseRules* This,
22139         LONG Index,
22140         ISpeechPhraseRule **Rule);
22141 
22142     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
22143         ISpeechPhraseRules* This,
22144         IUnknown **EnumVARIANT);
22145 
22146     END_INTERFACE
22147 } ISpeechPhraseRulesVtbl;
22148 interface ISpeechPhraseRules {
22149     CONST_VTBL ISpeechPhraseRulesVtbl* lpVtbl;
22150 };
22151 
22152 #ifdef COBJMACROS
22153 #ifndef WIDL_C_INLINE_WRAPPERS
22154 /*** IUnknown methods ***/
22155 #define ISpeechPhraseRules_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22156 #define ISpeechPhraseRules_AddRef(This) (This)->lpVtbl->AddRef(This)
22157 #define ISpeechPhraseRules_Release(This) (This)->lpVtbl->Release(This)
22158 /*** IDispatch methods ***/
22159 #define ISpeechPhraseRules_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22160 #define ISpeechPhraseRules_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22161 #define ISpeechPhraseRules_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22162 #define ISpeechPhraseRules_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22163 /*** ISpeechPhraseRules methods ***/
22164 #define ISpeechPhraseRules_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
22165 #define ISpeechPhraseRules_Item(This,Index,Rule) (This)->lpVtbl->Item(This,Index,Rule)
22166 #define ISpeechPhraseRules_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
22167 #else
22168 /*** IUnknown methods ***/
22169 static FORCEINLINE HRESULT ISpeechPhraseRules_QueryInterface(ISpeechPhraseRules* This,REFIID riid,void **ppvObject) {
22170     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22171 }
22172 static FORCEINLINE ULONG ISpeechPhraseRules_AddRef(ISpeechPhraseRules* This) {
22173     return This->lpVtbl->AddRef(This);
22174 }
22175 static FORCEINLINE ULONG ISpeechPhraseRules_Release(ISpeechPhraseRules* This) {
22176     return This->lpVtbl->Release(This);
22177 }
22178 /*** IDispatch methods ***/
22179 static FORCEINLINE HRESULT ISpeechPhraseRules_GetTypeInfoCount(ISpeechPhraseRules* This,UINT *pctinfo) {
22180     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22181 }
22182 static FORCEINLINE HRESULT ISpeechPhraseRules_GetTypeInfo(ISpeechPhraseRules* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22183     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22184 }
22185 static FORCEINLINE HRESULT ISpeechPhraseRules_GetIDsOfNames(ISpeechPhraseRules* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22186     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22187 }
22188 static FORCEINLINE HRESULT ISpeechPhraseRules_Invoke(ISpeechPhraseRules* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22189     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22190 }
22191 /*** ISpeechPhraseRules methods ***/
22192 static FORCEINLINE HRESULT ISpeechPhraseRules_get_Count(ISpeechPhraseRules* This,LONG *Count) {
22193     return This->lpVtbl->get_Count(This,Count);
22194 }
22195 static FORCEINLINE HRESULT ISpeechPhraseRules_Item(ISpeechPhraseRules* This,LONG Index,ISpeechPhraseRule **Rule) {
22196     return This->lpVtbl->Item(This,Index,Rule);
22197 }
22198 static FORCEINLINE HRESULT ISpeechPhraseRules_get__NewEnum(ISpeechPhraseRules* This,IUnknown **EnumVARIANT) {
22199     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
22200 }
22201 #endif
22202 #endif
22203 
22204 #endif
22205 
22206 HRESULT STDMETHODCALLTYPE ISpeechPhraseRules_get_Count_Proxy(
22207     ISpeechPhraseRules* This,
22208     LONG *Count);
22209 void __RPC_STUB ISpeechPhraseRules_get_Count_Stub(
22210     IRpcStubBuffer* This,
22211     IRpcChannelBuffer* pRpcChannelBuffer,
22212     PRPC_MESSAGE pRpcMessage,
22213     DWORD* pdwStubPhase);
22214 HRESULT STDMETHODCALLTYPE ISpeechPhraseRules_Item_Proxy(
22215     ISpeechPhraseRules* This,
22216     LONG Index,
22217     ISpeechPhraseRule **Rule);
22218 void __RPC_STUB ISpeechPhraseRules_Item_Stub(
22219     IRpcStubBuffer* This,
22220     IRpcChannelBuffer* pRpcChannelBuffer,
22221     PRPC_MESSAGE pRpcMessage,
22222     DWORD* pdwStubPhase);
22223 HRESULT STDMETHODCALLTYPE ISpeechPhraseRules_get__NewEnum_Proxy(
22224     ISpeechPhraseRules* This,
22225     IUnknown **EnumVARIANT);
22226 void __RPC_STUB ISpeechPhraseRules_get__NewEnum_Stub(
22227     IRpcStubBuffer* This,
22228     IRpcChannelBuffer* pRpcChannelBuffer,
22229     PRPC_MESSAGE pRpcMessage,
22230     DWORD* pdwStubPhase);
22231 
22232 #endif  /* __ISpeechPhraseRules_INTERFACE_DEFINED__ */
22233 
22234 /*****************************************************************************
22235  * ISpeechLexiconWords interface
22236  */
22237 #ifndef __ISpeechLexiconWords_INTERFACE_DEFINED__
22238 #define __ISpeechLexiconWords_INTERFACE_DEFINED__
22239 
22240 DEFINE_GUID(IID_ISpeechLexiconWords, 0x8d199862, 0x415e, 0x47d5, 0xac,0x4f, 0xfa,0xa6,0x08,0xb4,0x24,0xe6);
22241 #if defined(__cplusplus) && !defined(CINTERFACE)
22242 MIDL_INTERFACE("8d199862-415e-47d5-ac4f-faa608b424e6")
22243 ISpeechLexiconWords : public IDispatch
22244 {
22245     virtual HRESULT STDMETHODCALLTYPE get_Count(
22246         LONG *Count) = 0;
22247 
22248     virtual HRESULT STDMETHODCALLTYPE Item(
22249         LONG Index,
22250         ISpeechLexiconWord **Word) = 0;
22251 
22252     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
22253         IUnknown **EnumVARIANT) = 0;
22254 
22255 };
22256 #ifdef __CRT_UUID_DECL
22257 __CRT_UUID_DECL(ISpeechLexiconWords, 0x8d199862, 0x415e, 0x47d5, 0xac,0x4f, 0xfa,0xa6,0x08,0xb4,0x24,0xe6)
22258 #endif
22259 #else
22260 typedef struct ISpeechLexiconWordsVtbl {
22261     BEGIN_INTERFACE
22262 
22263     /*** IUnknown methods ***/
22264     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22265         ISpeechLexiconWords* This,
22266         REFIID riid,
22267         void **ppvObject);
22268 
22269     ULONG (STDMETHODCALLTYPE *AddRef)(
22270         ISpeechLexiconWords* This);
22271 
22272     ULONG (STDMETHODCALLTYPE *Release)(
22273         ISpeechLexiconWords* This);
22274 
22275     /*** IDispatch methods ***/
22276     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
22277         ISpeechLexiconWords* This,
22278         UINT *pctinfo);
22279 
22280     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
22281         ISpeechLexiconWords* This,
22282         UINT iTInfo,
22283         LCID lcid,
22284         ITypeInfo **ppTInfo);
22285 
22286     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
22287         ISpeechLexiconWords* This,
22288         REFIID riid,
22289         LPOLESTR *rgszNames,
22290         UINT cNames,
22291         LCID lcid,
22292         DISPID *rgDispId);
22293 
22294     HRESULT (STDMETHODCALLTYPE *Invoke)(
22295         ISpeechLexiconWords* This,
22296         DISPID dispIdMember,
22297         REFIID riid,
22298         LCID lcid,
22299         WORD wFlags,
22300         DISPPARAMS *pDispParams,
22301         VARIANT *pVarResult,
22302         EXCEPINFO *pExcepInfo,
22303         UINT *puArgErr);
22304 
22305     /*** ISpeechLexiconWords methods ***/
22306     HRESULT (STDMETHODCALLTYPE *get_Count)(
22307         ISpeechLexiconWords* This,
22308         LONG *Count);
22309 
22310     HRESULT (STDMETHODCALLTYPE *Item)(
22311         ISpeechLexiconWords* This,
22312         LONG Index,
22313         ISpeechLexiconWord **Word);
22314 
22315     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
22316         ISpeechLexiconWords* This,
22317         IUnknown **EnumVARIANT);
22318 
22319     END_INTERFACE
22320 } ISpeechLexiconWordsVtbl;
22321 interface ISpeechLexiconWords {
22322     CONST_VTBL ISpeechLexiconWordsVtbl* lpVtbl;
22323 };
22324 
22325 #ifdef COBJMACROS
22326 #ifndef WIDL_C_INLINE_WRAPPERS
22327 /*** IUnknown methods ***/
22328 #define ISpeechLexiconWords_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22329 #define ISpeechLexiconWords_AddRef(This) (This)->lpVtbl->AddRef(This)
22330 #define ISpeechLexiconWords_Release(This) (This)->lpVtbl->Release(This)
22331 /*** IDispatch methods ***/
22332 #define ISpeechLexiconWords_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22333 #define ISpeechLexiconWords_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22334 #define ISpeechLexiconWords_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22335 #define ISpeechLexiconWords_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22336 /*** ISpeechLexiconWords methods ***/
22337 #define ISpeechLexiconWords_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
22338 #define ISpeechLexiconWords_Item(This,Index,Word) (This)->lpVtbl->Item(This,Index,Word)
22339 #define ISpeechLexiconWords_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
22340 #else
22341 /*** IUnknown methods ***/
22342 static FORCEINLINE HRESULT ISpeechLexiconWords_QueryInterface(ISpeechLexiconWords* This,REFIID riid,void **ppvObject) {
22343     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22344 }
22345 static FORCEINLINE ULONG ISpeechLexiconWords_AddRef(ISpeechLexiconWords* This) {
22346     return This->lpVtbl->AddRef(This);
22347 }
22348 static FORCEINLINE ULONG ISpeechLexiconWords_Release(ISpeechLexiconWords* This) {
22349     return This->lpVtbl->Release(This);
22350 }
22351 /*** IDispatch methods ***/
22352 static FORCEINLINE HRESULT ISpeechLexiconWords_GetTypeInfoCount(ISpeechLexiconWords* This,UINT *pctinfo) {
22353     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22354 }
22355 static FORCEINLINE HRESULT ISpeechLexiconWords_GetTypeInfo(ISpeechLexiconWords* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22356     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22357 }
22358 static FORCEINLINE HRESULT ISpeechLexiconWords_GetIDsOfNames(ISpeechLexiconWords* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22359     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22360 }
22361 static FORCEINLINE HRESULT ISpeechLexiconWords_Invoke(ISpeechLexiconWords* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22362     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22363 }
22364 /*** ISpeechLexiconWords methods ***/
22365 static FORCEINLINE HRESULT ISpeechLexiconWords_get_Count(ISpeechLexiconWords* This,LONG *Count) {
22366     return This->lpVtbl->get_Count(This,Count);
22367 }
22368 static FORCEINLINE HRESULT ISpeechLexiconWords_Item(ISpeechLexiconWords* This,LONG Index,ISpeechLexiconWord **Word) {
22369     return This->lpVtbl->Item(This,Index,Word);
22370 }
22371 static FORCEINLINE HRESULT ISpeechLexiconWords_get__NewEnum(ISpeechLexiconWords* This,IUnknown **EnumVARIANT) {
22372     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
22373 }
22374 #endif
22375 #endif
22376 
22377 #endif
22378 
22379 HRESULT STDMETHODCALLTYPE ISpeechLexiconWords_get_Count_Proxy(
22380     ISpeechLexiconWords* This,
22381     LONG *Count);
22382 void __RPC_STUB ISpeechLexiconWords_get_Count_Stub(
22383     IRpcStubBuffer* This,
22384     IRpcChannelBuffer* pRpcChannelBuffer,
22385     PRPC_MESSAGE pRpcMessage,
22386     DWORD* pdwStubPhase);
22387 HRESULT STDMETHODCALLTYPE ISpeechLexiconWords_Item_Proxy(
22388     ISpeechLexiconWords* This,
22389     LONG Index,
22390     ISpeechLexiconWord **Word);
22391 void __RPC_STUB ISpeechLexiconWords_Item_Stub(
22392     IRpcStubBuffer* This,
22393     IRpcChannelBuffer* pRpcChannelBuffer,
22394     PRPC_MESSAGE pRpcMessage,
22395     DWORD* pdwStubPhase);
22396 HRESULT STDMETHODCALLTYPE ISpeechLexiconWords_get__NewEnum_Proxy(
22397     ISpeechLexiconWords* This,
22398     IUnknown **EnumVARIANT);
22399 void __RPC_STUB ISpeechLexiconWords_get__NewEnum_Stub(
22400     IRpcStubBuffer* This,
22401     IRpcChannelBuffer* pRpcChannelBuffer,
22402     PRPC_MESSAGE pRpcMessage,
22403     DWORD* pdwStubPhase);
22404 
22405 #endif  /* __ISpeechLexiconWords_INTERFACE_DEFINED__ */
22406 
22407 /*****************************************************************************
22408  * ISpeechLexicon interface
22409  */
22410 #ifndef __ISpeechLexicon_INTERFACE_DEFINED__
22411 #define __ISpeechLexicon_INTERFACE_DEFINED__
22412 
22413 DEFINE_GUID(IID_ISpeechLexicon, 0x3da7627a, 0xc7ae, 0x4b23, 0x87,0x08, 0x63,0x8c,0x50,0x36,0x2c,0x25);
22414 #if defined(__cplusplus) && !defined(CINTERFACE)
22415 MIDL_INTERFACE("3da7627a-c7ae-4b23-8708-638c50362c25")
22416 ISpeechLexicon : public IDispatch
22417 {
22418     virtual HRESULT STDMETHODCALLTYPE get_GenerationId(
22419         LONG *GenerationId) = 0;
22420 
22421     virtual HRESULT STDMETHODCALLTYPE GetWords(
22422         SpeechLexiconType Flags,
22423         LONG *GenerationID,
22424         ISpeechLexiconWords **Words) = 0;
22425 
22426     virtual HRESULT STDMETHODCALLTYPE AddPronunciation(
22427         BSTR bstrWord,
22428         SpeechLanguageId LangId,
22429         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
22430         BSTR bstrPronunciation = L"") = 0;
22431 
22432     virtual HRESULT STDMETHODCALLTYPE AddPronunciationByPhoneIds(
22433         BSTR bstrWord,
22434         SpeechLanguageId LangId,
22435         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
22436         VARIANT *PhoneIds = 0) = 0;
22437 
22438     virtual HRESULT STDMETHODCALLTYPE RemovePronunciation(
22439         BSTR bstrWord,
22440         SpeechLanguageId LangId,
22441         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
22442         BSTR bstrPronunciation = L"") = 0;
22443 
22444     virtual HRESULT STDMETHODCALLTYPE RemovePronunciationByPhoneIds(
22445         BSTR bstrWord,
22446         SpeechLanguageId LangId,
22447         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
22448         VARIANT *PhoneIds = 0) = 0;
22449 
22450     virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
22451         BSTR bstrWord,
22452         SpeechLanguageId LangId,
22453         SpeechLexiconType TypeFlags,
22454         ISpeechLexiconPronunciations **ppPronunciations) = 0;
22455 
22456     virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
22457         LONG *GenerationID,
22458         ISpeechLexiconWords **ppWords) = 0;
22459 
22460 };
22461 #ifdef __CRT_UUID_DECL
22462 __CRT_UUID_DECL(ISpeechLexicon, 0x3da7627a, 0xc7ae, 0x4b23, 0x87,0x08, 0x63,0x8c,0x50,0x36,0x2c,0x25)
22463 #endif
22464 #else
22465 typedef struct ISpeechLexiconVtbl {
22466     BEGIN_INTERFACE
22467 
22468     /*** IUnknown methods ***/
22469     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22470         ISpeechLexicon* This,
22471         REFIID riid,
22472         void **ppvObject);
22473 
22474     ULONG (STDMETHODCALLTYPE *AddRef)(
22475         ISpeechLexicon* This);
22476 
22477     ULONG (STDMETHODCALLTYPE *Release)(
22478         ISpeechLexicon* This);
22479 
22480     /*** IDispatch methods ***/
22481     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
22482         ISpeechLexicon* This,
22483         UINT *pctinfo);
22484 
22485     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
22486         ISpeechLexicon* This,
22487         UINT iTInfo,
22488         LCID lcid,
22489         ITypeInfo **ppTInfo);
22490 
22491     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
22492         ISpeechLexicon* This,
22493         REFIID riid,
22494         LPOLESTR *rgszNames,
22495         UINT cNames,
22496         LCID lcid,
22497         DISPID *rgDispId);
22498 
22499     HRESULT (STDMETHODCALLTYPE *Invoke)(
22500         ISpeechLexicon* This,
22501         DISPID dispIdMember,
22502         REFIID riid,
22503         LCID lcid,
22504         WORD wFlags,
22505         DISPPARAMS *pDispParams,
22506         VARIANT *pVarResult,
22507         EXCEPINFO *pExcepInfo,
22508         UINT *puArgErr);
22509 
22510     /*** ISpeechLexicon methods ***/
22511     HRESULT (STDMETHODCALLTYPE *get_GenerationId)(
22512         ISpeechLexicon* This,
22513         LONG *GenerationId);
22514 
22515     HRESULT (STDMETHODCALLTYPE *GetWords)(
22516         ISpeechLexicon* This,
22517         SpeechLexiconType Flags,
22518         LONG *GenerationID,
22519         ISpeechLexiconWords **Words);
22520 
22521     HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
22522         ISpeechLexicon* This,
22523         BSTR bstrWord,
22524         SpeechLanguageId LangId,
22525         SpeechPartOfSpeech PartOfSpeech,
22526         BSTR bstrPronunciation);
22527 
22528     HRESULT (STDMETHODCALLTYPE *AddPronunciationByPhoneIds)(
22529         ISpeechLexicon* This,
22530         BSTR bstrWord,
22531         SpeechLanguageId LangId,
22532         SpeechPartOfSpeech PartOfSpeech,
22533         VARIANT *PhoneIds);
22534 
22535     HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
22536         ISpeechLexicon* This,
22537         BSTR bstrWord,
22538         SpeechLanguageId LangId,
22539         SpeechPartOfSpeech PartOfSpeech,
22540         BSTR bstrPronunciation);
22541 
22542     HRESULT (STDMETHODCALLTYPE *RemovePronunciationByPhoneIds)(
22543         ISpeechLexicon* This,
22544         BSTR bstrWord,
22545         SpeechLanguageId LangId,
22546         SpeechPartOfSpeech PartOfSpeech,
22547         VARIANT *PhoneIds);
22548 
22549     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
22550         ISpeechLexicon* This,
22551         BSTR bstrWord,
22552         SpeechLanguageId LangId,
22553         SpeechLexiconType TypeFlags,
22554         ISpeechLexiconPronunciations **ppPronunciations);
22555 
22556     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
22557         ISpeechLexicon* This,
22558         LONG *GenerationID,
22559         ISpeechLexiconWords **ppWords);
22560 
22561     END_INTERFACE
22562 } ISpeechLexiconVtbl;
22563 interface ISpeechLexicon {
22564     CONST_VTBL ISpeechLexiconVtbl* lpVtbl;
22565 };
22566 
22567 #ifdef COBJMACROS
22568 #ifndef WIDL_C_INLINE_WRAPPERS
22569 /*** IUnknown methods ***/
22570 #define ISpeechLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22571 #define ISpeechLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
22572 #define ISpeechLexicon_Release(This) (This)->lpVtbl->Release(This)
22573 /*** IDispatch methods ***/
22574 #define ISpeechLexicon_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22575 #define ISpeechLexicon_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22576 #define ISpeechLexicon_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22577 #define ISpeechLexicon_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22578 /*** ISpeechLexicon methods ***/
22579 #define ISpeechLexicon_get_GenerationId(This,GenerationId) (This)->lpVtbl->get_GenerationId(This,GenerationId)
22580 #define ISpeechLexicon_GetWords(This,Flags,GenerationID,Words) (This)->lpVtbl->GetWords(This,Flags,GenerationID,Words)
22581 #define ISpeechLexicon_AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation) (This)->lpVtbl->AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation)
22582 #define ISpeechLexicon_AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds) (This)->lpVtbl->AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds)
22583 #define ISpeechLexicon_RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation) (This)->lpVtbl->RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation)
22584 #define ISpeechLexicon_RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds) (This)->lpVtbl->RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds)
22585 #define ISpeechLexicon_GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations) (This)->lpVtbl->GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations)
22586 #define ISpeechLexicon_GetGenerationChange(This,GenerationID,ppWords) (This)->lpVtbl->GetGenerationChange(This,GenerationID,ppWords)
22587 #else
22588 /*** IUnknown methods ***/
22589 static FORCEINLINE HRESULT ISpeechLexicon_QueryInterface(ISpeechLexicon* This,REFIID riid,void **ppvObject) {
22590     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22591 }
22592 static FORCEINLINE ULONG ISpeechLexicon_AddRef(ISpeechLexicon* This) {
22593     return This->lpVtbl->AddRef(This);
22594 }
22595 static FORCEINLINE ULONG ISpeechLexicon_Release(ISpeechLexicon* This) {
22596     return This->lpVtbl->Release(This);
22597 }
22598 /*** IDispatch methods ***/
22599 static FORCEINLINE HRESULT ISpeechLexicon_GetTypeInfoCount(ISpeechLexicon* This,UINT *pctinfo) {
22600     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22601 }
22602 static FORCEINLINE HRESULT ISpeechLexicon_GetTypeInfo(ISpeechLexicon* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22603     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22604 }
22605 static FORCEINLINE HRESULT ISpeechLexicon_GetIDsOfNames(ISpeechLexicon* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22606     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22607 }
22608 static FORCEINLINE HRESULT ISpeechLexicon_Invoke(ISpeechLexicon* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22609     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22610 }
22611 /*** ISpeechLexicon methods ***/
22612 static FORCEINLINE HRESULT ISpeechLexicon_get_GenerationId(ISpeechLexicon* This,LONG *GenerationId) {
22613     return This->lpVtbl->get_GenerationId(This,GenerationId);
22614 }
22615 static FORCEINLINE HRESULT ISpeechLexicon_GetWords(ISpeechLexicon* This,SpeechLexiconType Flags,LONG *GenerationID,ISpeechLexiconWords **Words) {
22616     return This->lpVtbl->GetWords(This,Flags,GenerationID,Words);
22617 }
22618 static FORCEINLINE HRESULT ISpeechLexicon_AddPronunciation(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,BSTR bstrPronunciation) {
22619     return This->lpVtbl->AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation);
22620 }
22621 static FORCEINLINE HRESULT ISpeechLexicon_AddPronunciationByPhoneIds(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,VARIANT *PhoneIds) {
22622     return This->lpVtbl->AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds);
22623 }
22624 static FORCEINLINE HRESULT ISpeechLexicon_RemovePronunciation(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,BSTR bstrPronunciation) {
22625     return This->lpVtbl->RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation);
22626 }
22627 static FORCEINLINE HRESULT ISpeechLexicon_RemovePronunciationByPhoneIds(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,VARIANT *PhoneIds) {
22628     return This->lpVtbl->RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds);
22629 }
22630 static FORCEINLINE HRESULT ISpeechLexicon_GetPronunciations(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechLexiconType TypeFlags,ISpeechLexiconPronunciations **ppPronunciations) {
22631     return This->lpVtbl->GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations);
22632 }
22633 static FORCEINLINE HRESULT ISpeechLexicon_GetGenerationChange(ISpeechLexicon* This,LONG *GenerationID,ISpeechLexiconWords **ppWords) {
22634     return This->lpVtbl->GetGenerationChange(This,GenerationID,ppWords);
22635 }
22636 #endif
22637 #endif
22638 
22639 #endif
22640 
22641 HRESULT STDMETHODCALLTYPE ISpeechLexicon_get_GenerationId_Proxy(
22642     ISpeechLexicon* This,
22643     LONG *GenerationId);
22644 void __RPC_STUB ISpeechLexicon_get_GenerationId_Stub(
22645     IRpcStubBuffer* This,
22646     IRpcChannelBuffer* pRpcChannelBuffer,
22647     PRPC_MESSAGE pRpcMessage,
22648     DWORD* pdwStubPhase);
22649 HRESULT STDMETHODCALLTYPE ISpeechLexicon_GetWords_Proxy(
22650     ISpeechLexicon* This,
22651     SpeechLexiconType Flags,
22652     LONG *GenerationID,
22653     ISpeechLexiconWords **Words);
22654 void __RPC_STUB ISpeechLexicon_GetWords_Stub(
22655     IRpcStubBuffer* This,
22656     IRpcChannelBuffer* pRpcChannelBuffer,
22657     PRPC_MESSAGE pRpcMessage,
22658     DWORD* pdwStubPhase);
22659 HRESULT STDMETHODCALLTYPE ISpeechLexicon_AddPronunciation_Proxy(
22660     ISpeechLexicon* This,
22661     BSTR bstrWord,
22662     SpeechLanguageId LangId,
22663     SpeechPartOfSpeech PartOfSpeech,
22664     BSTR bstrPronunciation);
22665 void __RPC_STUB ISpeechLexicon_AddPronunciation_Stub(
22666     IRpcStubBuffer* This,
22667     IRpcChannelBuffer* pRpcChannelBuffer,
22668     PRPC_MESSAGE pRpcMessage,
22669     DWORD* pdwStubPhase);
22670 HRESULT STDMETHODCALLTYPE ISpeechLexicon_AddPronunciationByPhoneIds_Proxy(
22671     ISpeechLexicon* This,
22672     BSTR bstrWord,
22673     SpeechLanguageId LangId,
22674     SpeechPartOfSpeech PartOfSpeech,
22675     VARIANT *PhoneIds);
22676 void __RPC_STUB ISpeechLexicon_AddPronunciationByPhoneIds_Stub(
22677     IRpcStubBuffer* This,
22678     IRpcChannelBuffer* pRpcChannelBuffer,
22679     PRPC_MESSAGE pRpcMessage,
22680     DWORD* pdwStubPhase);
22681 HRESULT STDMETHODCALLTYPE ISpeechLexicon_RemovePronunciation_Proxy(
22682     ISpeechLexicon* This,
22683     BSTR bstrWord,
22684     SpeechLanguageId LangId,
22685     SpeechPartOfSpeech PartOfSpeech,
22686     BSTR bstrPronunciation);
22687 void __RPC_STUB ISpeechLexicon_RemovePronunciation_Stub(
22688     IRpcStubBuffer* This,
22689     IRpcChannelBuffer* pRpcChannelBuffer,
22690     PRPC_MESSAGE pRpcMessage,
22691     DWORD* pdwStubPhase);
22692 HRESULT STDMETHODCALLTYPE ISpeechLexicon_RemovePronunciationByPhoneIds_Proxy(
22693     ISpeechLexicon* This,
22694     BSTR bstrWord,
22695     SpeechLanguageId LangId,
22696     SpeechPartOfSpeech PartOfSpeech,
22697     VARIANT *PhoneIds);
22698 void __RPC_STUB ISpeechLexicon_RemovePronunciationByPhoneIds_Stub(
22699     IRpcStubBuffer* This,
22700     IRpcChannelBuffer* pRpcChannelBuffer,
22701     PRPC_MESSAGE pRpcMessage,
22702     DWORD* pdwStubPhase);
22703 HRESULT STDMETHODCALLTYPE ISpeechLexicon_GetPronunciations_Proxy(
22704     ISpeechLexicon* This,
22705     BSTR bstrWord,
22706     SpeechLanguageId LangId,
22707     SpeechLexiconType TypeFlags,
22708     ISpeechLexiconPronunciations **ppPronunciations);
22709 void __RPC_STUB ISpeechLexicon_GetPronunciations_Stub(
22710     IRpcStubBuffer* This,
22711     IRpcChannelBuffer* pRpcChannelBuffer,
22712     PRPC_MESSAGE pRpcMessage,
22713     DWORD* pdwStubPhase);
22714 HRESULT STDMETHODCALLTYPE ISpeechLexicon_GetGenerationChange_Proxy(
22715     ISpeechLexicon* This,
22716     LONG *GenerationID,
22717     ISpeechLexiconWords **ppWords);
22718 void __RPC_STUB ISpeechLexicon_GetGenerationChange_Stub(
22719     IRpcStubBuffer* This,
22720     IRpcChannelBuffer* pRpcChannelBuffer,
22721     PRPC_MESSAGE pRpcMessage,
22722     DWORD* pdwStubPhase);
22723 
22724 #endif  /* __ISpeechLexicon_INTERFACE_DEFINED__ */
22725 
22726 /*****************************************************************************
22727  * ISpeechLexiconWord interface
22728  */
22729 #ifndef __ISpeechLexiconWord_INTERFACE_DEFINED__
22730 #define __ISpeechLexiconWord_INTERFACE_DEFINED__
22731 
22732 DEFINE_GUID(IID_ISpeechLexiconWord, 0x4e5b933c, 0xc9be, 0x48ed, 0x88,0x42, 0x1e,0xe5,0x1b,0xb1,0xd4,0xff);
22733 #if defined(__cplusplus) && !defined(CINTERFACE)
22734 MIDL_INTERFACE("4e5b933c-c9be-48ed-8842-1ee51bb1d4ff")
22735 ISpeechLexiconWord : public IDispatch
22736 {
22737     virtual HRESULT STDMETHODCALLTYPE get_LangId(
22738         SpeechLanguageId *LangId) = 0;
22739 
22740     virtual HRESULT STDMETHODCALLTYPE get_Type(
22741         SpeechWordType *WordType) = 0;
22742 
22743     virtual HRESULT STDMETHODCALLTYPE get_Word(
22744         BSTR *Word) = 0;
22745 
22746     virtual HRESULT STDMETHODCALLTYPE get_Pronunciations(
22747         ISpeechLexiconPronunciations **Pronunciations) = 0;
22748 
22749 };
22750 #ifdef __CRT_UUID_DECL
22751 __CRT_UUID_DECL(ISpeechLexiconWord, 0x4e5b933c, 0xc9be, 0x48ed, 0x88,0x42, 0x1e,0xe5,0x1b,0xb1,0xd4,0xff)
22752 #endif
22753 #else
22754 typedef struct ISpeechLexiconWordVtbl {
22755     BEGIN_INTERFACE
22756 
22757     /*** IUnknown methods ***/
22758     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22759         ISpeechLexiconWord* This,
22760         REFIID riid,
22761         void **ppvObject);
22762 
22763     ULONG (STDMETHODCALLTYPE *AddRef)(
22764         ISpeechLexiconWord* This);
22765 
22766     ULONG (STDMETHODCALLTYPE *Release)(
22767         ISpeechLexiconWord* This);
22768 
22769     /*** IDispatch methods ***/
22770     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
22771         ISpeechLexiconWord* This,
22772         UINT *pctinfo);
22773 
22774     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
22775         ISpeechLexiconWord* This,
22776         UINT iTInfo,
22777         LCID lcid,
22778         ITypeInfo **ppTInfo);
22779 
22780     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
22781         ISpeechLexiconWord* This,
22782         REFIID riid,
22783         LPOLESTR *rgszNames,
22784         UINT cNames,
22785         LCID lcid,
22786         DISPID *rgDispId);
22787 
22788     HRESULT (STDMETHODCALLTYPE *Invoke)(
22789         ISpeechLexiconWord* This,
22790         DISPID dispIdMember,
22791         REFIID riid,
22792         LCID lcid,
22793         WORD wFlags,
22794         DISPPARAMS *pDispParams,
22795         VARIANT *pVarResult,
22796         EXCEPINFO *pExcepInfo,
22797         UINT *puArgErr);
22798 
22799     /*** ISpeechLexiconWord methods ***/
22800     HRESULT (STDMETHODCALLTYPE *get_LangId)(
22801         ISpeechLexiconWord* This,
22802         SpeechLanguageId *LangId);
22803 
22804     HRESULT (STDMETHODCALLTYPE *get_Type)(
22805         ISpeechLexiconWord* This,
22806         SpeechWordType *WordType);
22807 
22808     HRESULT (STDMETHODCALLTYPE *get_Word)(
22809         ISpeechLexiconWord* This,
22810         BSTR *Word);
22811 
22812     HRESULT (STDMETHODCALLTYPE *get_Pronunciations)(
22813         ISpeechLexiconWord* This,
22814         ISpeechLexiconPronunciations **Pronunciations);
22815 
22816     END_INTERFACE
22817 } ISpeechLexiconWordVtbl;
22818 interface ISpeechLexiconWord {
22819     CONST_VTBL ISpeechLexiconWordVtbl* lpVtbl;
22820 };
22821 
22822 #ifdef COBJMACROS
22823 #ifndef WIDL_C_INLINE_WRAPPERS
22824 /*** IUnknown methods ***/
22825 #define ISpeechLexiconWord_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22826 #define ISpeechLexiconWord_AddRef(This) (This)->lpVtbl->AddRef(This)
22827 #define ISpeechLexiconWord_Release(This) (This)->lpVtbl->Release(This)
22828 /*** IDispatch methods ***/
22829 #define ISpeechLexiconWord_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22830 #define ISpeechLexiconWord_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22831 #define ISpeechLexiconWord_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22832 #define ISpeechLexiconWord_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22833 /*** ISpeechLexiconWord methods ***/
22834 #define ISpeechLexiconWord_get_LangId(This,LangId) (This)->lpVtbl->get_LangId(This,LangId)
22835 #define ISpeechLexiconWord_get_Type(This,WordType) (This)->lpVtbl->get_Type(This,WordType)
22836 #define ISpeechLexiconWord_get_Word(This,Word) (This)->lpVtbl->get_Word(This,Word)
22837 #define ISpeechLexiconWord_get_Pronunciations(This,Pronunciations) (This)->lpVtbl->get_Pronunciations(This,Pronunciations)
22838 #else
22839 /*** IUnknown methods ***/
22840 static FORCEINLINE HRESULT ISpeechLexiconWord_QueryInterface(ISpeechLexiconWord* This,REFIID riid,void **ppvObject) {
22841     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22842 }
22843 static FORCEINLINE ULONG ISpeechLexiconWord_AddRef(ISpeechLexiconWord* This) {
22844     return This->lpVtbl->AddRef(This);
22845 }
22846 static FORCEINLINE ULONG ISpeechLexiconWord_Release(ISpeechLexiconWord* This) {
22847     return This->lpVtbl->Release(This);
22848 }
22849 /*** IDispatch methods ***/
22850 static FORCEINLINE HRESULT ISpeechLexiconWord_GetTypeInfoCount(ISpeechLexiconWord* This,UINT *pctinfo) {
22851     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22852 }
22853 static FORCEINLINE HRESULT ISpeechLexiconWord_GetTypeInfo(ISpeechLexiconWord* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22854     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22855 }
22856 static FORCEINLINE HRESULT ISpeechLexiconWord_GetIDsOfNames(ISpeechLexiconWord* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22857     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22858 }
22859 static FORCEINLINE HRESULT ISpeechLexiconWord_Invoke(ISpeechLexiconWord* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22860     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22861 }
22862 /*** ISpeechLexiconWord methods ***/
22863 static FORCEINLINE HRESULT ISpeechLexiconWord_get_LangId(ISpeechLexiconWord* This,SpeechLanguageId *LangId) {
22864     return This->lpVtbl->get_LangId(This,LangId);
22865 }
22866 static FORCEINLINE HRESULT ISpeechLexiconWord_get_Type(ISpeechLexiconWord* This,SpeechWordType *WordType) {
22867     return This->lpVtbl->get_Type(This,WordType);
22868 }
22869 static FORCEINLINE HRESULT ISpeechLexiconWord_get_Word(ISpeechLexiconWord* This,BSTR *Word) {
22870     return This->lpVtbl->get_Word(This,Word);
22871 }
22872 static FORCEINLINE HRESULT ISpeechLexiconWord_get_Pronunciations(ISpeechLexiconWord* This,ISpeechLexiconPronunciations **Pronunciations) {
22873     return This->lpVtbl->get_Pronunciations(This,Pronunciations);
22874 }
22875 #endif
22876 #endif
22877 
22878 #endif
22879 
22880 HRESULT STDMETHODCALLTYPE ISpeechLexiconWord_get_LangId_Proxy(
22881     ISpeechLexiconWord* This,
22882     SpeechLanguageId *LangId);
22883 void __RPC_STUB ISpeechLexiconWord_get_LangId_Stub(
22884     IRpcStubBuffer* This,
22885     IRpcChannelBuffer* pRpcChannelBuffer,
22886     PRPC_MESSAGE pRpcMessage,
22887     DWORD* pdwStubPhase);
22888 HRESULT STDMETHODCALLTYPE ISpeechLexiconWord_get_Type_Proxy(
22889     ISpeechLexiconWord* This,
22890     SpeechWordType *WordType);
22891 void __RPC_STUB ISpeechLexiconWord_get_Type_Stub(
22892     IRpcStubBuffer* This,
22893     IRpcChannelBuffer* pRpcChannelBuffer,
22894     PRPC_MESSAGE pRpcMessage,
22895     DWORD* pdwStubPhase);
22896 HRESULT STDMETHODCALLTYPE ISpeechLexiconWord_get_Word_Proxy(
22897     ISpeechLexiconWord* This,
22898     BSTR *Word);
22899 void __RPC_STUB ISpeechLexiconWord_get_Word_Stub(
22900     IRpcStubBuffer* This,
22901     IRpcChannelBuffer* pRpcChannelBuffer,
22902     PRPC_MESSAGE pRpcMessage,
22903     DWORD* pdwStubPhase);
22904 HRESULT STDMETHODCALLTYPE ISpeechLexiconWord_get_Pronunciations_Proxy(
22905     ISpeechLexiconWord* This,
22906     ISpeechLexiconPronunciations **Pronunciations);
22907 void __RPC_STUB ISpeechLexiconWord_get_Pronunciations_Stub(
22908     IRpcStubBuffer* This,
22909     IRpcChannelBuffer* pRpcChannelBuffer,
22910     PRPC_MESSAGE pRpcMessage,
22911     DWORD* pdwStubPhase);
22912 
22913 #endif  /* __ISpeechLexiconWord_INTERFACE_DEFINED__ */
22914 
22915 /*****************************************************************************
22916  * ISpeechLexiconPronunciations interface
22917  */
22918 #ifndef __ISpeechLexiconPronunciations_INTERFACE_DEFINED__
22919 #define __ISpeechLexiconPronunciations_INTERFACE_DEFINED__
22920 
22921 DEFINE_GUID(IID_ISpeechLexiconPronunciations, 0x72829128, 0x5682, 0x4704, 0xa0,0xd4, 0x3e,0x2b,0xb6,0xf2,0xea,0xd3);
22922 #if defined(__cplusplus) && !defined(CINTERFACE)
22923 MIDL_INTERFACE("72829128-5682-4704-a0d4-3e2bb6f2ead3")
22924 ISpeechLexiconPronunciations : public IDispatch
22925 {
22926     virtual HRESULT STDMETHODCALLTYPE get_Count(
22927         LONG *Count) = 0;
22928 
22929     virtual HRESULT STDMETHODCALLTYPE Item(
22930         LONG Index,
22931         ISpeechLexiconPronunciation **Pronunciation) = 0;
22932 
22933     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
22934         IUnknown **EnumVARIANT) = 0;
22935 
22936 };
22937 #ifdef __CRT_UUID_DECL
22938 __CRT_UUID_DECL(ISpeechLexiconPronunciations, 0x72829128, 0x5682, 0x4704, 0xa0,0xd4, 0x3e,0x2b,0xb6,0xf2,0xea,0xd3)
22939 #endif
22940 #else
22941 typedef struct ISpeechLexiconPronunciationsVtbl {
22942     BEGIN_INTERFACE
22943 
22944     /*** IUnknown methods ***/
22945     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22946         ISpeechLexiconPronunciations* This,
22947         REFIID riid,
22948         void **ppvObject);
22949 
22950     ULONG (STDMETHODCALLTYPE *AddRef)(
22951         ISpeechLexiconPronunciations* This);
22952 
22953     ULONG (STDMETHODCALLTYPE *Release)(
22954         ISpeechLexiconPronunciations* This);
22955 
22956     /*** IDispatch methods ***/
22957     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
22958         ISpeechLexiconPronunciations* This,
22959         UINT *pctinfo);
22960 
22961     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
22962         ISpeechLexiconPronunciations* This,
22963         UINT iTInfo,
22964         LCID lcid,
22965         ITypeInfo **ppTInfo);
22966 
22967     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
22968         ISpeechLexiconPronunciations* This,
22969         REFIID riid,
22970         LPOLESTR *rgszNames,
22971         UINT cNames,
22972         LCID lcid,
22973         DISPID *rgDispId);
22974 
22975     HRESULT (STDMETHODCALLTYPE *Invoke)(
22976         ISpeechLexiconPronunciations* This,
22977         DISPID dispIdMember,
22978         REFIID riid,
22979         LCID lcid,
22980         WORD wFlags,
22981         DISPPARAMS *pDispParams,
22982         VARIANT *pVarResult,
22983         EXCEPINFO *pExcepInfo,
22984         UINT *puArgErr);
22985 
22986     /*** ISpeechLexiconPronunciations methods ***/
22987     HRESULT (STDMETHODCALLTYPE *get_Count)(
22988         ISpeechLexiconPronunciations* This,
22989         LONG *Count);
22990 
22991     HRESULT (STDMETHODCALLTYPE *Item)(
22992         ISpeechLexiconPronunciations* This,
22993         LONG Index,
22994         ISpeechLexiconPronunciation **Pronunciation);
22995 
22996     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
22997         ISpeechLexiconPronunciations* This,
22998         IUnknown **EnumVARIANT);
22999 
23000     END_INTERFACE
23001 } ISpeechLexiconPronunciationsVtbl;
23002 interface ISpeechLexiconPronunciations {
23003     CONST_VTBL ISpeechLexiconPronunciationsVtbl* lpVtbl;
23004 };
23005 
23006 #ifdef COBJMACROS
23007 #ifndef WIDL_C_INLINE_WRAPPERS
23008 /*** IUnknown methods ***/
23009 #define ISpeechLexiconPronunciations_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23010 #define ISpeechLexiconPronunciations_AddRef(This) (This)->lpVtbl->AddRef(This)
23011 #define ISpeechLexiconPronunciations_Release(This) (This)->lpVtbl->Release(This)
23012 /*** IDispatch methods ***/
23013 #define ISpeechLexiconPronunciations_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
23014 #define ISpeechLexiconPronunciations_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
23015 #define ISpeechLexiconPronunciations_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
23016 #define ISpeechLexiconPronunciations_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
23017 /*** ISpeechLexiconPronunciations methods ***/
23018 #define ISpeechLexiconPronunciations_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
23019 #define ISpeechLexiconPronunciations_Item(This,Index,Pronunciation) (This)->lpVtbl->Item(This,Index,Pronunciation)
23020 #define ISpeechLexiconPronunciations_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
23021 #else
23022 /*** IUnknown methods ***/
23023 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_QueryInterface(ISpeechLexiconPronunciations* This,REFIID riid,void **ppvObject) {
23024     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23025 }
23026 static FORCEINLINE ULONG ISpeechLexiconPronunciations_AddRef(ISpeechLexiconPronunciations* This) {
23027     return This->lpVtbl->AddRef(This);
23028 }
23029 static FORCEINLINE ULONG ISpeechLexiconPronunciations_Release(ISpeechLexiconPronunciations* This) {
23030     return This->lpVtbl->Release(This);
23031 }
23032 /*** IDispatch methods ***/
23033 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_GetTypeInfoCount(ISpeechLexiconPronunciations* This,UINT *pctinfo) {
23034     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
23035 }
23036 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_GetTypeInfo(ISpeechLexiconPronunciations* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
23037     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
23038 }
23039 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_GetIDsOfNames(ISpeechLexiconPronunciations* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
23040     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
23041 }
23042 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_Invoke(ISpeechLexiconPronunciations* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
23043     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
23044 }
23045 /*** ISpeechLexiconPronunciations methods ***/
23046 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_get_Count(ISpeechLexiconPronunciations* This,LONG *Count) {
23047     return This->lpVtbl->get_Count(This,Count);
23048 }
23049 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_Item(ISpeechLexiconPronunciations* This,LONG Index,ISpeechLexiconPronunciation **Pronunciation) {
23050     return This->lpVtbl->Item(This,Index,Pronunciation);
23051 }
23052 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_get__NewEnum(ISpeechLexiconPronunciations* This,IUnknown **EnumVARIANT) {
23053     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
23054 }
23055 #endif
23056 #endif
23057 
23058 #endif
23059 
23060 HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciations_get_Count_Proxy(
23061     ISpeechLexiconPronunciations* This,
23062     LONG *Count);
23063 void __RPC_STUB ISpeechLexiconPronunciations_get_Count_Stub(
23064     IRpcStubBuffer* This,
23065     IRpcChannelBuffer* pRpcChannelBuffer,
23066     PRPC_MESSAGE pRpcMessage,
23067     DWORD* pdwStubPhase);
23068 HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciations_Item_Proxy(
23069     ISpeechLexiconPronunciations* This,
23070     LONG Index,
23071     ISpeechLexiconPronunciation **Pronunciation);
23072 void __RPC_STUB ISpeechLexiconPronunciations_Item_Stub(
23073     IRpcStubBuffer* This,
23074     IRpcChannelBuffer* pRpcChannelBuffer,
23075     PRPC_MESSAGE pRpcMessage,
23076     DWORD* pdwStubPhase);
23077 HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciations_get__NewEnum_Proxy(
23078     ISpeechLexiconPronunciations* This,
23079     IUnknown **EnumVARIANT);
23080 void __RPC_STUB ISpeechLexiconPronunciations_get__NewEnum_Stub(
23081     IRpcStubBuffer* This,
23082     IRpcChannelBuffer* pRpcChannelBuffer,
23083     PRPC_MESSAGE pRpcMessage,
23084     DWORD* pdwStubPhase);
23085 
23086 #endif  /* __ISpeechLexiconPronunciations_INTERFACE_DEFINED__ */
23087 
23088 /*****************************************************************************
23089  * ISpeechLexiconPronunciation interface
23090  */
23091 #ifndef __ISpeechLexiconPronunciation_INTERFACE_DEFINED__
23092 #define __ISpeechLexiconPronunciation_INTERFACE_DEFINED__
23093 
23094 DEFINE_GUID(IID_ISpeechLexiconPronunciation, 0x95252c5d, 0x9e43, 0x4f4a, 0x98,0x99, 0x48,0xee,0x73,0x35,0x2f,0x9f);
23095 #if defined(__cplusplus) && !defined(CINTERFACE)
23096 MIDL_INTERFACE("95252c5d-9e43-4f4a-9899-48ee73352f9f")
23097 ISpeechLexiconPronunciation : public IDispatch
23098 {
23099     virtual HRESULT STDMETHODCALLTYPE get_Type(
23100         SpeechLexiconType *LexiconType) = 0;
23101 
23102     virtual HRESULT STDMETHODCALLTYPE get_LangId(
23103         SpeechLanguageId *LangId) = 0;
23104 
23105     virtual HRESULT STDMETHODCALLTYPE get_PartOfSpeech(
23106         SpeechPartOfSpeech *PartOfSpeech) = 0;
23107 
23108     virtual HRESULT STDMETHODCALLTYPE get_PhoneIds(
23109         VARIANT *PhoneIds) = 0;
23110 
23111     virtual HRESULT STDMETHODCALLTYPE get_Symbolic(
23112         BSTR *Symbolic) = 0;
23113 
23114 };
23115 #ifdef __CRT_UUID_DECL
23116 __CRT_UUID_DECL(ISpeechLexiconPronunciation, 0x95252c5d, 0x9e43, 0x4f4a, 0x98,0x99, 0x48,0xee,0x73,0x35,0x2f,0x9f)
23117 #endif
23118 #else
23119 typedef struct ISpeechLexiconPronunciationVtbl {
23120     BEGIN_INTERFACE
23121 
23122     /*** IUnknown methods ***/
23123     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23124         ISpeechLexiconPronunciation* This,
23125         REFIID riid,
23126         void **ppvObject);
23127 
23128     ULONG (STDMETHODCALLTYPE *AddRef)(
23129         ISpeechLexiconPronunciation* This);
23130 
23131     ULONG (STDMETHODCALLTYPE *Release)(
23132         ISpeechLexiconPronunciation* This);
23133 
23134     /*** IDispatch methods ***/
23135     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
23136         ISpeechLexiconPronunciation* This,
23137         UINT *pctinfo);
23138 
23139     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
23140         ISpeechLexiconPronunciation* This,
23141         UINT iTInfo,
23142         LCID lcid,
23143         ITypeInfo **ppTInfo);
23144 
23145     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
23146         ISpeechLexiconPronunciation* This,
23147         REFIID riid,
23148         LPOLESTR *rgszNames,
23149         UINT cNames,
23150         LCID lcid,
23151         DISPID *rgDispId);
23152 
23153     HRESULT (STDMETHODCALLTYPE *Invoke)(
23154         ISpeechLexiconPronunciation* This,
23155         DISPID dispIdMember,
23156         REFIID riid,
23157         LCID lcid,
23158         WORD wFlags,
23159         DISPPARAMS *pDispParams,
23160         VARIANT *pVarResult,
23161         EXCEPINFO *pExcepInfo,
23162         UINT *puArgErr);
23163 
23164     /*** ISpeechLexiconPronunciation methods ***/
23165     HRESULT (STDMETHODCALLTYPE *get_Type)(
23166         ISpeechLexiconPronunciation* This,
23167         SpeechLexiconType *LexiconType);
23168 
23169     HRESULT (STDMETHODCALLTYPE *get_LangId)(
23170         ISpeechLexiconPronunciation* This,
23171         SpeechLanguageId *LangId);
23172 
23173     HRESULT (STDMETHODCALLTYPE *get_PartOfSpeech)(
23174         ISpeechLexiconPronunciation* This,
23175         SpeechPartOfSpeech *PartOfSpeech);
23176 
23177     HRESULT (STDMETHODCALLTYPE *get_PhoneIds)(
23178         ISpeechLexiconPronunciation* This,
23179         VARIANT *PhoneIds);
23180 
23181     HRESULT (STDMETHODCALLTYPE *get_Symbolic)(
23182         ISpeechLexiconPronunciation* This,
23183         BSTR *Symbolic);
23184 
23185     END_INTERFACE
23186 } ISpeechLexiconPronunciationVtbl;
23187 interface ISpeechLexiconPronunciation {
23188     CONST_VTBL ISpeechLexiconPronunciationVtbl* lpVtbl;
23189 };
23190 
23191 #ifdef COBJMACROS
23192 #ifndef WIDL_C_INLINE_WRAPPERS
23193 /*** IUnknown methods ***/
23194 #define ISpeechLexiconPronunciation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23195 #define ISpeechLexiconPronunciation_AddRef(This) (This)->lpVtbl->AddRef(This)
23196 #define ISpeechLexiconPronunciation_Release(This) (This)->lpVtbl->Release(This)
23197 /*** IDispatch methods ***/
23198 #define ISpeechLexiconPronunciation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
23199 #define ISpeechLexiconPronunciation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
23200 #define ISpeechLexiconPronunciation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
23201 #define ISpeechLexiconPronunciation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
23202 /*** ISpeechLexiconPronunciation methods ***/
23203 #define ISpeechLexiconPronunciation_get_Type(This,LexiconType) (This)->lpVtbl->get_Type(This,LexiconType)
23204 #define ISpeechLexiconPronunciation_get_LangId(This,LangId) (This)->lpVtbl->get_LangId(This,LangId)
23205 #define ISpeechLexiconPronunciation_get_PartOfSpeech(This,PartOfSpeech) (This)->lpVtbl->get_PartOfSpeech(This,PartOfSpeech)
23206 #define ISpeechLexiconPronunciation_get_PhoneIds(This,PhoneIds) (This)->lpVtbl->get_PhoneIds(This,PhoneIds)
23207 #define ISpeechLexiconPronunciation_get_Symbolic(This,Symbolic) (This)->lpVtbl->get_Symbolic(This,Symbolic)
23208 #else
23209 /*** IUnknown methods ***/
23210 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_QueryInterface(ISpeechLexiconPronunciation* This,REFIID riid,void **ppvObject) {
23211     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23212 }
23213 static FORCEINLINE ULONG ISpeechLexiconPronunciation_AddRef(ISpeechLexiconPronunciation* This) {
23214     return This->lpVtbl->AddRef(This);
23215 }
23216 static FORCEINLINE ULONG ISpeechLexiconPronunciation_Release(ISpeechLexiconPronunciation* This) {
23217     return This->lpVtbl->Release(This);
23218 }
23219 /*** IDispatch methods ***/
23220 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_GetTypeInfoCount(ISpeechLexiconPronunciation* This,UINT *pctinfo) {
23221     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
23222 }
23223 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_GetTypeInfo(ISpeechLexiconPronunciation* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
23224     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
23225 }
23226 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_GetIDsOfNames(ISpeechLexiconPronunciation* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
23227     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
23228 }
23229 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_Invoke(ISpeechLexiconPronunciation* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
23230     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
23231 }
23232 /*** ISpeechLexiconPronunciation methods ***/
23233 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_Type(ISpeechLexiconPronunciation* This,SpeechLexiconType *LexiconType) {
23234     return This->lpVtbl->get_Type(This,LexiconType);
23235 }
23236 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_LangId(ISpeechLexiconPronunciation* This,SpeechLanguageId *LangId) {
23237     return This->lpVtbl->get_LangId(This,LangId);
23238 }
23239 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_PartOfSpeech(ISpeechLexiconPronunciation* This,SpeechPartOfSpeech *PartOfSpeech) {
23240     return This->lpVtbl->get_PartOfSpeech(This,PartOfSpeech);
23241 }
23242 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_PhoneIds(ISpeechLexiconPronunciation* This,VARIANT *PhoneIds) {
23243     return This->lpVtbl->get_PhoneIds(This,PhoneIds);
23244 }
23245 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_Symbolic(ISpeechLexiconPronunciation* This,BSTR *Symbolic) {
23246     return This->lpVtbl->get_Symbolic(This,Symbolic);
23247 }
23248 #endif
23249 #endif
23250 
23251 #endif
23252 
23253 HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciation_get_Type_Proxy(
23254     ISpeechLexiconPronunciation* This,
23255     SpeechLexiconType *LexiconType);
23256 void __RPC_STUB ISpeechLexiconPronunciation_get_Type_Stub(
23257     IRpcStubBuffer* This,
23258     IRpcChannelBuffer* pRpcChannelBuffer,
23259     PRPC_MESSAGE pRpcMessage,
23260     DWORD* pdwStubPhase);
23261 HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciation_get_LangId_Proxy(
23262     ISpeechLexiconPronunciation* This,
23263     SpeechLanguageId *LangId);
23264 void __RPC_STUB ISpeechLexiconPronunciation_get_LangId_Stub(
23265     IRpcStubBuffer* This,
23266     IRpcChannelBuffer* pRpcChannelBuffer,
23267     PRPC_MESSAGE pRpcMessage,
23268     DWORD* pdwStubPhase);
23269 HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciation_get_PartOfSpeech_Proxy(
23270     ISpeechLexiconPronunciation* This,
23271     SpeechPartOfSpeech *PartOfSpeech);
23272 void __RPC_STUB ISpeechLexiconPronunciation_get_PartOfSpeech_Stub(
23273     IRpcStubBuffer* This,
23274     IRpcChannelBuffer* pRpcChannelBuffer,
23275     PRPC_MESSAGE pRpcMessage,
23276     DWORD* pdwStubPhase);
23277 HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciation_get_PhoneIds_Proxy(
23278     ISpeechLexiconPronunciation* This,
23279     VARIANT *PhoneIds);
23280 void __RPC_STUB ISpeechLexiconPronunciation_get_PhoneIds_Stub(
23281     IRpcStubBuffer* This,
23282     IRpcChannelBuffer* pRpcChannelBuffer,
23283     PRPC_MESSAGE pRpcMessage,
23284     DWORD* pdwStubPhase);
23285 HRESULT STDMETHODCALLTYPE ISpeechLexiconPronunciation_get_Symbolic_Proxy(
23286     ISpeechLexiconPronunciation* This,
23287     BSTR *Symbolic);
23288 void __RPC_STUB ISpeechLexiconPronunciation_get_Symbolic_Stub(
23289     IRpcStubBuffer* This,
23290     IRpcChannelBuffer* pRpcChannelBuffer,
23291     PRPC_MESSAGE pRpcMessage,
23292     DWORD* pdwStubPhase);
23293 
23294 #endif  /* __ISpeechLexiconPronunciation_INTERFACE_DEFINED__ */
23295 
23296 /*****************************************************************************
23297  * ISpeechPhoneConverter interface
23298  */
23299 #ifndef __ISpeechPhoneConverter_INTERFACE_DEFINED__
23300 #define __ISpeechPhoneConverter_INTERFACE_DEFINED__
23301 
23302 DEFINE_GUID(IID_ISpeechPhoneConverter, 0xc3e4f353, 0x433f, 0x43d6, 0x89,0xa1, 0x6a,0x62,0xa7,0x05,0x4c,0x3d);
23303 #if defined(__cplusplus) && !defined(CINTERFACE)
23304 MIDL_INTERFACE("c3e4f353-433f-43d6-89a1-6a62a7054c3d")
23305 ISpeechPhoneConverter : public IDispatch
23306 {
23307     virtual HRESULT STDMETHODCALLTYPE get_LanguageId(
23308         SpeechLanguageId *LanguageId) = 0;
23309 
23310     virtual HRESULT STDMETHODCALLTYPE put_LanguageId(
23311         SpeechLanguageId LanguageId) = 0;
23312 
23313     virtual HRESULT STDMETHODCALLTYPE PhoneToId(
23314         const BSTR Phonemes,
23315         VARIANT *IdArray) = 0;
23316 
23317     virtual HRESULT STDMETHODCALLTYPE IdToPhone(
23318         const VARIANT IdArray,
23319         BSTR *Phonemes) = 0;
23320 
23321 };
23322 #ifdef __CRT_UUID_DECL
23323 __CRT_UUID_DECL(ISpeechPhoneConverter, 0xc3e4f353, 0x433f, 0x43d6, 0x89,0xa1, 0x6a,0x62,0xa7,0x05,0x4c,0x3d)
23324 #endif
23325 #else
23326 typedef struct ISpeechPhoneConverterVtbl {
23327     BEGIN_INTERFACE
23328 
23329     /*** IUnknown methods ***/
23330     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23331         ISpeechPhoneConverter* This,
23332         REFIID riid,
23333         void **ppvObject);
23334 
23335     ULONG (STDMETHODCALLTYPE *AddRef)(
23336         ISpeechPhoneConverter* This);
23337 
23338     ULONG (STDMETHODCALLTYPE *Release)(
23339         ISpeechPhoneConverter* This);
23340 
23341     /*** IDispatch methods ***/
23342     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
23343         ISpeechPhoneConverter* This,
23344         UINT *pctinfo);
23345 
23346     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
23347         ISpeechPhoneConverter* This,
23348         UINT iTInfo,
23349         LCID lcid,
23350         ITypeInfo **ppTInfo);
23351 
23352     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
23353         ISpeechPhoneConverter* This,
23354         REFIID riid,
23355         LPOLESTR *rgszNames,
23356         UINT cNames,
23357         LCID lcid,
23358         DISPID *rgDispId);
23359 
23360     HRESULT (STDMETHODCALLTYPE *Invoke)(
23361         ISpeechPhoneConverter* This,
23362         DISPID dispIdMember,
23363         REFIID riid,
23364         LCID lcid,
23365         WORD wFlags,
23366         DISPPARAMS *pDispParams,
23367         VARIANT *pVarResult,
23368         EXCEPINFO *pExcepInfo,
23369         UINT *puArgErr);
23370 
23371     /*** ISpeechPhoneConverter methods ***/
23372     HRESULT (STDMETHODCALLTYPE *get_LanguageId)(
23373         ISpeechPhoneConverter* This,
23374         SpeechLanguageId *LanguageId);
23375 
23376     HRESULT (STDMETHODCALLTYPE *put_LanguageId)(
23377         ISpeechPhoneConverter* This,
23378         SpeechLanguageId LanguageId);
23379 
23380     HRESULT (STDMETHODCALLTYPE *PhoneToId)(
23381         ISpeechPhoneConverter* This,
23382         const BSTR Phonemes,
23383         VARIANT *IdArray);
23384 
23385     HRESULT (STDMETHODCALLTYPE *IdToPhone)(
23386         ISpeechPhoneConverter* This,
23387         const VARIANT IdArray,
23388         BSTR *Phonemes);
23389 
23390     END_INTERFACE
23391 } ISpeechPhoneConverterVtbl;
23392 interface ISpeechPhoneConverter {
23393     CONST_VTBL ISpeechPhoneConverterVtbl* lpVtbl;
23394 };
23395 
23396 #ifdef COBJMACROS
23397 #ifndef WIDL_C_INLINE_WRAPPERS
23398 /*** IUnknown methods ***/
23399 #define ISpeechPhoneConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23400 #define ISpeechPhoneConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
23401 #define ISpeechPhoneConverter_Release(This) (This)->lpVtbl->Release(This)
23402 /*** IDispatch methods ***/
23403 #define ISpeechPhoneConverter_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
23404 #define ISpeechPhoneConverter_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
23405 #define ISpeechPhoneConverter_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
23406 #define ISpeechPhoneConverter_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
23407 /*** ISpeechPhoneConverter methods ***/
23408 #define ISpeechPhoneConverter_get_LanguageId(This,LanguageId) (This)->lpVtbl->get_LanguageId(This,LanguageId)
23409 #define ISpeechPhoneConverter_put_LanguageId(This,LanguageId) (This)->lpVtbl->put_LanguageId(This,LanguageId)
23410 #define ISpeechPhoneConverter_PhoneToId(This,Phonemes,IdArray) (This)->lpVtbl->PhoneToId(This,Phonemes,IdArray)
23411 #define ISpeechPhoneConverter_IdToPhone(This,IdArray,Phonemes) (This)->lpVtbl->IdToPhone(This,IdArray,Phonemes)
23412 #else
23413 /*** IUnknown methods ***/
23414 static FORCEINLINE HRESULT ISpeechPhoneConverter_QueryInterface(ISpeechPhoneConverter* This,REFIID riid,void **ppvObject) {
23415     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23416 }
23417 static FORCEINLINE ULONG ISpeechPhoneConverter_AddRef(ISpeechPhoneConverter* This) {
23418     return This->lpVtbl->AddRef(This);
23419 }
23420 static FORCEINLINE ULONG ISpeechPhoneConverter_Release(ISpeechPhoneConverter* This) {
23421     return This->lpVtbl->Release(This);
23422 }
23423 /*** IDispatch methods ***/
23424 static FORCEINLINE HRESULT ISpeechPhoneConverter_GetTypeInfoCount(ISpeechPhoneConverter* This,UINT *pctinfo) {
23425     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
23426 }
23427 static FORCEINLINE HRESULT ISpeechPhoneConverter_GetTypeInfo(ISpeechPhoneConverter* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
23428     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
23429 }
23430 static FORCEINLINE HRESULT ISpeechPhoneConverter_GetIDsOfNames(ISpeechPhoneConverter* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
23431     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
23432 }
23433 static FORCEINLINE HRESULT ISpeechPhoneConverter_Invoke(ISpeechPhoneConverter* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
23434     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
23435 }
23436 /*** ISpeechPhoneConverter methods ***/
23437 static FORCEINLINE HRESULT ISpeechPhoneConverter_get_LanguageId(ISpeechPhoneConverter* This,SpeechLanguageId *LanguageId) {
23438     return This->lpVtbl->get_LanguageId(This,LanguageId);
23439 }
23440 static FORCEINLINE HRESULT ISpeechPhoneConverter_put_LanguageId(ISpeechPhoneConverter* This,SpeechLanguageId LanguageId) {
23441     return This->lpVtbl->put_LanguageId(This,LanguageId);
23442 }
23443 static FORCEINLINE HRESULT ISpeechPhoneConverter_PhoneToId(ISpeechPhoneConverter* This,const BSTR Phonemes,VARIANT *IdArray) {
23444     return This->lpVtbl->PhoneToId(This,Phonemes,IdArray);
23445 }
23446 static FORCEINLINE HRESULT ISpeechPhoneConverter_IdToPhone(ISpeechPhoneConverter* This,const VARIANT IdArray,BSTR *Phonemes) {
23447     return This->lpVtbl->IdToPhone(This,IdArray,Phonemes);
23448 }
23449 #endif
23450 #endif
23451 
23452 #endif
23453 
23454 HRESULT STDMETHODCALLTYPE ISpeechPhoneConverter_get_LanguageId_Proxy(
23455     ISpeechPhoneConverter* This,
23456     SpeechLanguageId *LanguageId);
23457 void __RPC_STUB ISpeechPhoneConverter_get_LanguageId_Stub(
23458     IRpcStubBuffer* This,
23459     IRpcChannelBuffer* pRpcChannelBuffer,
23460     PRPC_MESSAGE pRpcMessage,
23461     DWORD* pdwStubPhase);
23462 HRESULT STDMETHODCALLTYPE ISpeechPhoneConverter_put_LanguageId_Proxy(
23463     ISpeechPhoneConverter* This,
23464     SpeechLanguageId LanguageId);
23465 void __RPC_STUB ISpeechPhoneConverter_put_LanguageId_Stub(
23466     IRpcStubBuffer* This,
23467     IRpcChannelBuffer* pRpcChannelBuffer,
23468     PRPC_MESSAGE pRpcMessage,
23469     DWORD* pdwStubPhase);
23470 HRESULT STDMETHODCALLTYPE ISpeechPhoneConverter_PhoneToId_Proxy(
23471     ISpeechPhoneConverter* This,
23472     const BSTR Phonemes,
23473     VARIANT *IdArray);
23474 void __RPC_STUB ISpeechPhoneConverter_PhoneToId_Stub(
23475     IRpcStubBuffer* This,
23476     IRpcChannelBuffer* pRpcChannelBuffer,
23477     PRPC_MESSAGE pRpcMessage,
23478     DWORD* pdwStubPhase);
23479 HRESULT STDMETHODCALLTYPE ISpeechPhoneConverter_IdToPhone_Proxy(
23480     ISpeechPhoneConverter* This,
23481     const VARIANT IdArray,
23482     BSTR *Phonemes);
23483 void __RPC_STUB ISpeechPhoneConverter_IdToPhone_Stub(
23484     IRpcStubBuffer* This,
23485     IRpcChannelBuffer* pRpcChannelBuffer,
23486     PRPC_MESSAGE pRpcMessage,
23487     DWORD* pdwStubPhase);
23488 
23489 #endif  /* __ISpeechPhoneConverter_INTERFACE_DEFINED__ */
23490 
23491 /*****************************************************************************
23492  * SpNotifyTranslator coclass
23493  */
23494 
23495 DEFINE_GUID(CLSID_SpNotifyTranslator, 0xe2ae5372, 0x5d40, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
23496 
23497 #ifdef __cplusplus
23498 class DECLSPEC_UUID("e2ae5372-5d40-11d2-960e-00c04f8ee628") SpNotifyTranslator;
23499 #ifdef __CRT_UUID_DECL
23500 __CRT_UUID_DECL(SpNotifyTranslator, 0xe2ae5372, 0x5d40, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
23501 #endif
23502 #endif
23503 
23504 /*****************************************************************************
23505  * SpObjectTokenCategory coclass
23506  */
23507 
23508 DEFINE_GUID(CLSID_SpObjectTokenCategory, 0xa910187f, 0x0c7a, 0x45ac, 0x92,0xcc, 0x59,0xed,0xaf,0xb7,0x7b,0x53);
23509 
23510 #ifdef __cplusplus
23511 class DECLSPEC_UUID("a910187f-0c7a-45ac-92cc-59edafb77b53") SpObjectTokenCategory;
23512 #ifdef __CRT_UUID_DECL
23513 __CRT_UUID_DECL(SpObjectTokenCategory, 0xa910187f, 0x0c7a, 0x45ac, 0x92,0xcc, 0x59,0xed,0xaf,0xb7,0x7b,0x53)
23514 #endif
23515 #endif
23516 
23517 /*****************************************************************************
23518  * SpObjectToken coclass
23519  */
23520 
23521 DEFINE_GUID(CLSID_SpObjectToken, 0xef411752, 0x3736, 0x4cb4, 0x9c,0x8c, 0x8e,0xf4,0xcc,0xb5,0x8e,0xfe);
23522 
23523 #ifdef __cplusplus
23524 class DECLSPEC_UUID("ef411752-3736-4cb4-9c8c-8ef4ccb58efe") SpObjectToken;
23525 #ifdef __CRT_UUID_DECL
23526 __CRT_UUID_DECL(SpObjectToken, 0xef411752, 0x3736, 0x4cb4, 0x9c,0x8c, 0x8e,0xf4,0xcc,0xb5,0x8e,0xfe)
23527 #endif
23528 #endif
23529 
23530 /*****************************************************************************
23531  * SpResourceManager coclass
23532  */
23533 
23534 DEFINE_GUID(CLSID_SpResourceManager, 0x96749373, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96);
23535 
23536 #ifdef __cplusplus
23537 class DECLSPEC_UUID("96749373-3391-11d2-9ee3-00c04f797396") SpResourceManager;
23538 #ifdef __CRT_UUID_DECL
23539 __CRT_UUID_DECL(SpResourceManager, 0x96749373, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96)
23540 #endif
23541 #endif
23542 
23543 /*****************************************************************************
23544  * SpStreamFormatConverter coclass
23545  */
23546 
23547 DEFINE_GUID(CLSID_SpStreamFormatConverter, 0x7013943a, 0xe2ec, 0x11d2, 0xa0,0x86, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5);
23548 
23549 #ifdef __cplusplus
23550 class DECLSPEC_UUID("7013943a-e2ec-11d2-a086-00c04f8ef9b5") SpStreamFormatConverter;
23551 #ifdef __CRT_UUID_DECL
23552 __CRT_UUID_DECL(SpStreamFormatConverter, 0x7013943a, 0xe2ec, 0x11d2, 0xa0,0x86, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5)
23553 #endif
23554 #endif
23555 
23556 /*****************************************************************************
23557  * SpMMAudioEnum coclass
23558  */
23559 
23560 DEFINE_GUID(CLSID_SpMMAudioEnum, 0xab1890a0, 0xe91f, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
23561 
23562 #ifdef __cplusplus
23563 class DECLSPEC_UUID("ab1890a0-e91f-11d2-bb91-00c04f8ee6c0") SpMMAudioEnum;
23564 #ifdef __CRT_UUID_DECL
23565 __CRT_UUID_DECL(SpMMAudioEnum, 0xab1890a0, 0xe91f, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
23566 #endif
23567 #endif
23568 
23569 /*****************************************************************************
23570  * SpMMAudioIn coclass
23571  */
23572 
23573 DEFINE_GUID(CLSID_SpMMAudioIn, 0xcf3d2e50, 0x53f2, 0x11d2, 0x96,0x0c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
23574 
23575 #ifdef __cplusplus
23576 class DECLSPEC_UUID("cf3d2e50-53f2-11d2-960c-00c04f8ee628") SpMMAudioIn;
23577 #ifdef __CRT_UUID_DECL
23578 __CRT_UUID_DECL(SpMMAudioIn, 0xcf3d2e50, 0x53f2, 0x11d2, 0x96,0x0c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
23579 #endif
23580 #endif
23581 
23582 /*****************************************************************************
23583  * SpMMAudioOut coclass
23584  */
23585 
23586 DEFINE_GUID(CLSID_SpMMAudioOut, 0xa8c680eb, 0x3d32, 0x11d2, 0x9e,0xe7, 0x00,0xc0,0x4f,0x79,0x73,0x96);
23587 
23588 #ifdef __cplusplus
23589 class DECLSPEC_UUID("a8c680eb-3d32-11d2-9ee7-00c04f797396") SpMMAudioOut;
23590 #ifdef __CRT_UUID_DECL
23591 __CRT_UUID_DECL(SpMMAudioOut, 0xa8c680eb, 0x3d32, 0x11d2, 0x9e,0xe7, 0x00,0xc0,0x4f,0x79,0x73,0x96)
23592 #endif
23593 #endif
23594 
23595 /*****************************************************************************
23596  * SpStream coclass
23597  */
23598 
23599 DEFINE_GUID(CLSID_SpStream, 0x715d9c59, 0x4442, 0x11d2, 0x96,0x05, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
23600 
23601 #ifdef __cplusplus
23602 class DECLSPEC_UUID("715d9c59-4442-11d2-9605-00c04f8ee628") SpStream;
23603 #ifdef __CRT_UUID_DECL
23604 __CRT_UUID_DECL(SpStream, 0x715d9c59, 0x4442, 0x11d2, 0x96,0x05, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
23605 #endif
23606 #endif
23607 
23608 /*****************************************************************************
23609  * SpVoice coclass
23610  */
23611 
23612 DEFINE_GUID(CLSID_SpVoice, 0x96749377, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96);
23613 
23614 #ifdef __cplusplus
23615 class DECLSPEC_UUID("96749377-3391-11d2-9ee3-00c04f797396") SpVoice;
23616 #ifdef __CRT_UUID_DECL
23617 __CRT_UUID_DECL(SpVoice, 0x96749377, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96)
23618 #endif
23619 #endif
23620 
23621 /*****************************************************************************
23622  * SpSharedRecoContext coclass
23623  */
23624 
23625 DEFINE_GUID(CLSID_SpSharedRecoContext, 0x47206204, 0x5eca, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
23626 
23627 #ifdef __cplusplus
23628 class DECLSPEC_UUID("47206204-5eca-11d2-960f-00c04f8ee628") SpSharedRecoContext;
23629 #ifdef __CRT_UUID_DECL
23630 __CRT_UUID_DECL(SpSharedRecoContext, 0x47206204, 0x5eca, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
23631 #endif
23632 #endif
23633 
23634 /*****************************************************************************
23635  * SpInprocRecognizer coclass
23636  */
23637 
23638 DEFINE_GUID(CLSID_SpInprocRecognizer, 0x41b89b6b, 0x9399, 0x11d2, 0x96,0x23, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
23639 
23640 #ifdef __cplusplus
23641 class DECLSPEC_UUID("41b89b6b-9399-11d2-9623-00c04f8ee628") SpInprocRecognizer;
23642 #ifdef __CRT_UUID_DECL
23643 __CRT_UUID_DECL(SpInprocRecognizer, 0x41b89b6b, 0x9399, 0x11d2, 0x96,0x23, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
23644 #endif
23645 #endif
23646 
23647 /*****************************************************************************
23648  * SpSharedRecognizer coclass
23649  */
23650 
23651 DEFINE_GUID(CLSID_SpSharedRecognizer, 0x3bee4890, 0x4fe9, 0x4a37, 0x8c,0x1e, 0x5e,0x7e,0x12,0x79,0x1c,0x1f);
23652 
23653 #ifdef __cplusplus
23654 class DECLSPEC_UUID("3bee4890-4fe9-4a37-8c1e-5e7e12791c1f") SpSharedRecognizer;
23655 #ifdef __CRT_UUID_DECL
23656 __CRT_UUID_DECL(SpSharedRecognizer, 0x3bee4890, 0x4fe9, 0x4a37, 0x8c,0x1e, 0x5e,0x7e,0x12,0x79,0x1c,0x1f)
23657 #endif
23658 #endif
23659 
23660 /*****************************************************************************
23661  * SpLexicon coclass
23662  */
23663 
23664 DEFINE_GUID(CLSID_SpLexicon, 0x0655e396, 0x25d0, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c);
23665 
23666 #ifdef __cplusplus
23667 class DECLSPEC_UUID("0655e396-25d0-11d3-9c26-00c04f8ef87c") SpLexicon;
23668 #ifdef __CRT_UUID_DECL
23669 __CRT_UUID_DECL(SpLexicon, 0x0655e396, 0x25d0, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c)
23670 #endif
23671 #endif
23672 
23673 /*****************************************************************************
23674  * SpUnCompressedLexicon coclass
23675  */
23676 
23677 DEFINE_GUID(CLSID_SpUnCompressedLexicon, 0xc9e37c15, 0xdf92, 0x4727, 0x85,0xd6, 0x72,0xe5,0xee,0xb6,0x99,0x5a);
23678 
23679 #ifdef __cplusplus
23680 class DECLSPEC_UUID("c9e37c15-df92-4727-85d6-72e5eeb6995a") SpUnCompressedLexicon;
23681 #ifdef __CRT_UUID_DECL
23682 __CRT_UUID_DECL(SpUnCompressedLexicon, 0xc9e37c15, 0xdf92, 0x4727, 0x85,0xd6, 0x72,0xe5,0xee,0xb6,0x99,0x5a)
23683 #endif
23684 #endif
23685 
23686 /*****************************************************************************
23687  * SpCompressedLexicon coclass
23688  */
23689 
23690 DEFINE_GUID(CLSID_SpCompressedLexicon, 0x90903716, 0x2f42, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c);
23691 
23692 #ifdef __cplusplus
23693 class DECLSPEC_UUID("90903716-2f42-11d3-9c26-00c04f8ef87c") SpCompressedLexicon;
23694 #ifdef __CRT_UUID_DECL
23695 __CRT_UUID_DECL(SpCompressedLexicon, 0x90903716, 0x2f42, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c)
23696 #endif
23697 #endif
23698 
23699 /*****************************************************************************
23700  * SpPhoneConverter coclass
23701  */
23702 
23703 DEFINE_GUID(CLSID_SpPhoneConverter, 0x9185f743, 0x1143, 0x4c28, 0x86,0xb5, 0xbf,0xf1,0x4f,0x20,0xe5,0xc8);
23704 
23705 #ifdef __cplusplus
23706 class DECLSPEC_UUID("9185f743-1143-4c28-86b5-bff14f20e5c8") SpPhoneConverter;
23707 #ifdef __CRT_UUID_DECL
23708 __CRT_UUID_DECL(SpPhoneConverter, 0x9185f743, 0x1143, 0x4c28, 0x86,0xb5, 0xbf,0xf1,0x4f,0x20,0xe5,0xc8)
23709 #endif
23710 #endif
23711 
23712 /*****************************************************************************
23713  * SpNullPhoneConverter coclass
23714  */
23715 
23716 DEFINE_GUID(CLSID_SpNullPhoneConverter, 0x455f24e9, 0x7396, 0x4a16, 0x97,0x15, 0x7c,0x0f,0xdb,0xe3,0xef,0xe3);
23717 
23718 #ifdef __cplusplus
23719 class DECLSPEC_UUID("455f24e9-7396-4a16-9715-7c0fdbe3efe3") SpNullPhoneConverter;
23720 #ifdef __CRT_UUID_DECL
23721 __CRT_UUID_DECL(SpNullPhoneConverter, 0x455f24e9, 0x7396, 0x4a16, 0x97,0x15, 0x7c,0x0f,0xdb,0xe3,0xef,0xe3)
23722 #endif
23723 #endif
23724 
23725 /*****************************************************************************
23726  * SpTextSelectionInformation coclass
23727  */
23728 
23729 DEFINE_GUID(CLSID_SpTextSelectionInformation, 0x0f92030a, 0xcbfd, 0x4ab8, 0xa1,0x64, 0xff,0x59,0x85,0x54,0x7f,0xf6);
23730 
23731 #ifdef __cplusplus
23732 class DECLSPEC_UUID("0f92030a-cbfd-4ab8-a164-ff5985547ff6") SpTextSelectionInformation;
23733 #ifdef __CRT_UUID_DECL
23734 __CRT_UUID_DECL(SpTextSelectionInformation, 0x0f92030a, 0xcbfd, 0x4ab8, 0xa1,0x64, 0xff,0x59,0x85,0x54,0x7f,0xf6)
23735 #endif
23736 #endif
23737 
23738 /*****************************************************************************
23739  * SpPhraseInfoBuilder coclass
23740  */
23741 
23742 DEFINE_GUID(CLSID_SpPhraseInfoBuilder, 0xc23fc28d, 0xc55f, 0x4720, 0x8b,0x32, 0x91,0xf7,0x3c,0x2b,0xd5,0xd1);
23743 
23744 #ifdef __cplusplus
23745 class DECLSPEC_UUID("c23fc28d-c55f-4720-8b32-91f73c2bd5d1") SpPhraseInfoBuilder;
23746 #ifdef __CRT_UUID_DECL
23747 __CRT_UUID_DECL(SpPhraseInfoBuilder, 0xc23fc28d, 0xc55f, 0x4720, 0x8b,0x32, 0x91,0xf7,0x3c,0x2b,0xd5,0xd1)
23748 #endif
23749 #endif
23750 
23751 /*****************************************************************************
23752  * SpAudioFormat coclass
23753  */
23754 
23755 DEFINE_GUID(CLSID_SpAudioFormat, 0x9ef96870, 0xe160, 0x4792, 0x82,0x0d, 0x48,0xcf,0x06,0x49,0xe4,0xec);
23756 
23757 #ifdef __cplusplus
23758 class DECLSPEC_UUID("9ef96870-e160-4792-820d-48cf0649e4ec") SpAudioFormat;
23759 #ifdef __CRT_UUID_DECL
23760 __CRT_UUID_DECL(SpAudioFormat, 0x9ef96870, 0xe160, 0x4792, 0x82,0x0d, 0x48,0xcf,0x06,0x49,0xe4,0xec)
23761 #endif
23762 #endif
23763 
23764 /*****************************************************************************
23765  * SpWaveFormatEx coclass
23766  */
23767 
23768 DEFINE_GUID(CLSID_SpWaveFormatEx, 0xc79a574c, 0x63be, 0x44b9, 0x80,0x1f, 0x28,0x3f,0x87,0xf8,0x98,0xbe);
23769 
23770 #ifdef __cplusplus
23771 class DECLSPEC_UUID("c79a574c-63be-44b9-801f-283f87f898be") SpWaveFormatEx;
23772 #ifdef __CRT_UUID_DECL
23773 __CRT_UUID_DECL(SpWaveFormatEx, 0xc79a574c, 0x63be, 0x44b9, 0x80,0x1f, 0x28,0x3f,0x87,0xf8,0x98,0xbe)
23774 #endif
23775 #endif
23776 
23777 /*****************************************************************************
23778  * SpInProcRecoContext coclass
23779  */
23780 
23781 DEFINE_GUID(CLSID_SpInProcRecoContext, 0x73ad6842, 0xace0, 0x45e8, 0xa4,0xdd, 0x87,0x95,0x88,0x1a,0x2c,0x2a);
23782 
23783 #ifdef __cplusplus
23784 class DECLSPEC_UUID("73ad6842-ace0-45e8-a4dd-8795881a2c2a") SpInProcRecoContext;
23785 #ifdef __CRT_UUID_DECL
23786 __CRT_UUID_DECL(SpInProcRecoContext, 0x73ad6842, 0xace0, 0x45e8, 0xa4,0xdd, 0x87,0x95,0x88,0x1a,0x2c,0x2a)
23787 #endif
23788 #endif
23789 
23790 /*****************************************************************************
23791  * SpCustomStream coclass
23792  */
23793 
23794 DEFINE_GUID(CLSID_SpCustomStream, 0x8dbef13f, 0x1948, 0x4aa8, 0x8c,0xf0, 0x04,0x8e,0xeb,0xed,0x95,0xd8);
23795 
23796 #ifdef __cplusplus
23797 class DECLSPEC_UUID("8dbef13f-1948-4aa8-8cf0-048eebed95d8") SpCustomStream;
23798 #ifdef __CRT_UUID_DECL
23799 __CRT_UUID_DECL(SpCustomStream, 0x8dbef13f, 0x1948, 0x4aa8, 0x8c,0xf0, 0x04,0x8e,0xeb,0xed,0x95,0xd8)
23800 #endif
23801 #endif
23802 
23803 /*****************************************************************************
23804  * SpFileStream coclass
23805  */
23806 
23807 DEFINE_GUID(CLSID_SpFileStream, 0x947812b3, 0x2ae1, 0x4644, 0xba,0x86, 0x9e,0x90,0xde,0xd7,0xec,0x91);
23808 
23809 #ifdef __cplusplus
23810 class DECLSPEC_UUID("947812b3-2ae1-4644-ba86-9e90ded7ec91") SpFileStream;
23811 #ifdef __CRT_UUID_DECL
23812 __CRT_UUID_DECL(SpFileStream, 0x947812b3, 0x2ae1, 0x4644, 0xba,0x86, 0x9e,0x90,0xde,0xd7,0xec,0x91)
23813 #endif
23814 #endif
23815 
23816 /*****************************************************************************
23817  * SpMemoryStream coclass
23818  */
23819 
23820 DEFINE_GUID(CLSID_SpMemoryStream, 0x5fb7ef7d, 0xdff4, 0x468a, 0xb6,0xb7, 0x2f,0xcb,0xd1,0x88,0xf9,0x94);
23821 
23822 #ifdef __cplusplus
23823 class DECLSPEC_UUID("5fb7ef7d-dff4-468a-b6b7-2fcbd188f994") SpMemoryStream;
23824 #ifdef __CRT_UUID_DECL
23825 __CRT_UUID_DECL(SpMemoryStream, 0x5fb7ef7d, 0xdff4, 0x468a, 0xb6,0xb7, 0x2f,0xcb,0xd1,0x88,0xf9,0x94)
23826 #endif
23827 #endif
23828 
23829 /* Begin additional prototypes for all interfaces */
23830 
23831 ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
23832 unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
23833 unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
23834 void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
23835 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
23836 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
23837 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
23838 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
23839 ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
23840 unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
23841 unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
23842 void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
23843 
23844 /* End additional prototypes */
23845 
23846 #ifdef __cplusplus
23847 }
23848 #endif
23849 
23850 #endif /* __sapi51_h__ */
23851