zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

sapi54.h (920703B) - Raw


      1 /*** Autogenerated by WIDL 10.4 from include/sapi54.idl - Do not edit ***/
      2 
      3 #ifdef _WIN32
      4 #ifndef __REQUIRED_RPCNDR_H_VERSION__
      5 #define __REQUIRED_RPCNDR_H_VERSION__ 475
      6 #endif
      7 #include <rpc.h>
      8 #include <rpcndr.h>
      9 #endif
     10 
     11 #ifndef COM_NO_WINDOWS_H
     12 #include <windows.h>
     13 #include <ole2.h>
     14 #endif
     15 
     16 #ifndef __sapi54_h__
     17 #define __sapi54_h__
     18 
     19 /* Forward declarations */
     20 
     21 #ifndef __ISpNotifySource_FWD_DEFINED__
     22 #define __ISpNotifySource_FWD_DEFINED__
     23 typedef interface ISpNotifySource ISpNotifySource;
     24 #ifdef __cplusplus
     25 interface ISpNotifySource;
     26 #endif /* __cplusplus */
     27 #endif
     28 
     29 #ifndef __ISpNotifySink_FWD_DEFINED__
     30 #define __ISpNotifySink_FWD_DEFINED__
     31 typedef interface ISpNotifySink ISpNotifySink;
     32 #ifdef __cplusplus
     33 interface ISpNotifySink;
     34 #endif /* __cplusplus */
     35 #endif
     36 
     37 #ifndef __ISpNotifyTranslator_FWD_DEFINED__
     38 #define __ISpNotifyTranslator_FWD_DEFINED__
     39 typedef interface ISpNotifyTranslator ISpNotifyTranslator;
     40 #ifdef __cplusplus
     41 interface ISpNotifyTranslator;
     42 #endif /* __cplusplus */
     43 #endif
     44 
     45 #ifndef __ISpDataKey_FWD_DEFINED__
     46 #define __ISpDataKey_FWD_DEFINED__
     47 typedef interface ISpDataKey ISpDataKey;
     48 #ifdef __cplusplus
     49 interface ISpDataKey;
     50 #endif /* __cplusplus */
     51 #endif
     52 
     53 #ifndef __ISpObjectWithToken_FWD_DEFINED__
     54 #define __ISpObjectWithToken_FWD_DEFINED__
     55 typedef interface ISpObjectWithToken ISpObjectWithToken;
     56 #ifdef __cplusplus
     57 interface ISpObjectWithToken;
     58 #endif /* __cplusplus */
     59 #endif
     60 
     61 #ifndef __IEnumSpObjectTokens_FWD_DEFINED__
     62 #define __IEnumSpObjectTokens_FWD_DEFINED__
     63 typedef interface IEnumSpObjectTokens IEnumSpObjectTokens;
     64 #ifdef __cplusplus
     65 interface IEnumSpObjectTokens;
     66 #endif /* __cplusplus */
     67 #endif
     68 
     69 #ifndef __ISpRegDataKey_FWD_DEFINED__
     70 #define __ISpRegDataKey_FWD_DEFINED__
     71 typedef interface ISpRegDataKey ISpRegDataKey;
     72 #ifdef __cplusplus
     73 interface ISpRegDataKey;
     74 #endif /* __cplusplus */
     75 #endif
     76 
     77 #ifndef __ISpObjectTokenCategory_FWD_DEFINED__
     78 #define __ISpObjectTokenCategory_FWD_DEFINED__
     79 typedef interface ISpObjectTokenCategory ISpObjectTokenCategory;
     80 #ifdef __cplusplus
     81 interface ISpObjectTokenCategory;
     82 #endif /* __cplusplus */
     83 #endif
     84 
     85 #ifndef __ISpObjectToken_FWD_DEFINED__
     86 #define __ISpObjectToken_FWD_DEFINED__
     87 typedef interface ISpObjectToken ISpObjectToken;
     88 #ifdef __cplusplus
     89 interface ISpObjectToken;
     90 #endif /* __cplusplus */
     91 #endif
     92 
     93 #ifndef __ISpObjectTokenInit_FWD_DEFINED__
     94 #define __ISpObjectTokenInit_FWD_DEFINED__
     95 typedef interface ISpObjectTokenInit ISpObjectTokenInit;
     96 #ifdef __cplusplus
     97 interface ISpObjectTokenInit;
     98 #endif /* __cplusplus */
     99 #endif
    100 
    101 #ifndef __ISpResourceManager_FWD_DEFINED__
    102 #define __ISpResourceManager_FWD_DEFINED__
    103 typedef interface ISpResourceManager ISpResourceManager;
    104 #ifdef __cplusplus
    105 interface ISpResourceManager;
    106 #endif /* __cplusplus */
    107 #endif
    108 
    109 #ifndef __ISpEventSource_FWD_DEFINED__
    110 #define __ISpEventSource_FWD_DEFINED__
    111 typedef interface ISpEventSource ISpEventSource;
    112 #ifdef __cplusplus
    113 interface ISpEventSource;
    114 #endif /* __cplusplus */
    115 #endif
    116 
    117 #ifndef __ISpEventSource2_FWD_DEFINED__
    118 #define __ISpEventSource2_FWD_DEFINED__
    119 typedef interface ISpEventSource2 ISpEventSource2;
    120 #ifdef __cplusplus
    121 interface ISpEventSource2;
    122 #endif /* __cplusplus */
    123 #endif
    124 
    125 #ifndef __ISpEventSink_FWD_DEFINED__
    126 #define __ISpEventSink_FWD_DEFINED__
    127 typedef interface ISpEventSink ISpEventSink;
    128 #ifdef __cplusplus
    129 interface ISpEventSink;
    130 #endif /* __cplusplus */
    131 #endif
    132 
    133 #ifndef __ISpStreamFormat_FWD_DEFINED__
    134 #define __ISpStreamFormat_FWD_DEFINED__
    135 typedef interface ISpStreamFormat ISpStreamFormat;
    136 #ifdef __cplusplus
    137 interface ISpStreamFormat;
    138 #endif /* __cplusplus */
    139 #endif
    140 
    141 #ifndef __ISpStream_FWD_DEFINED__
    142 #define __ISpStream_FWD_DEFINED__
    143 typedef interface ISpStream ISpStream;
    144 #ifdef __cplusplus
    145 interface ISpStream;
    146 #endif /* __cplusplus */
    147 #endif
    148 
    149 #ifndef __ISpStreamFormatConverter_FWD_DEFINED__
    150 #define __ISpStreamFormatConverter_FWD_DEFINED__
    151 typedef interface ISpStreamFormatConverter ISpStreamFormatConverter;
    152 #ifdef __cplusplus
    153 interface ISpStreamFormatConverter;
    154 #endif /* __cplusplus */
    155 #endif
    156 
    157 #ifndef __ISpAudio_FWD_DEFINED__
    158 #define __ISpAudio_FWD_DEFINED__
    159 typedef interface ISpAudio ISpAudio;
    160 #ifdef __cplusplus
    161 interface ISpAudio;
    162 #endif /* __cplusplus */
    163 #endif
    164 
    165 #ifndef __ISpMMSysAudio_FWD_DEFINED__
    166 #define __ISpMMSysAudio_FWD_DEFINED__
    167 typedef interface ISpMMSysAudio ISpMMSysAudio;
    168 #ifdef __cplusplus
    169 interface ISpMMSysAudio;
    170 #endif /* __cplusplus */
    171 #endif
    172 
    173 #ifndef __ISpTranscript_FWD_DEFINED__
    174 #define __ISpTranscript_FWD_DEFINED__
    175 typedef interface ISpTranscript ISpTranscript;
    176 #ifdef __cplusplus
    177 interface ISpTranscript;
    178 #endif /* __cplusplus */
    179 #endif
    180 
    181 #ifndef __ISpLexicon_FWD_DEFINED__
    182 #define __ISpLexicon_FWD_DEFINED__
    183 typedef interface ISpLexicon ISpLexicon;
    184 #ifdef __cplusplus
    185 interface ISpLexicon;
    186 #endif /* __cplusplus */
    187 #endif
    188 
    189 #ifndef __ISpContainerLexicon_FWD_DEFINED__
    190 #define __ISpContainerLexicon_FWD_DEFINED__
    191 typedef interface ISpContainerLexicon ISpContainerLexicon;
    192 #ifdef __cplusplus
    193 interface ISpContainerLexicon;
    194 #endif /* __cplusplus */
    195 #endif
    196 
    197 #ifndef __ISpShortcut_FWD_DEFINED__
    198 #define __ISpShortcut_FWD_DEFINED__
    199 typedef interface ISpShortcut ISpShortcut;
    200 #ifdef __cplusplus
    201 interface ISpShortcut;
    202 #endif /* __cplusplus */
    203 #endif
    204 
    205 #ifndef __ISpPhoneConverter_FWD_DEFINED__
    206 #define __ISpPhoneConverter_FWD_DEFINED__
    207 typedef interface ISpPhoneConverter ISpPhoneConverter;
    208 #ifdef __cplusplus
    209 interface ISpPhoneConverter;
    210 #endif /* __cplusplus */
    211 #endif
    212 
    213 #ifndef __ISpPhoneticAlphabetConverter_FWD_DEFINED__
    214 #define __ISpPhoneticAlphabetConverter_FWD_DEFINED__
    215 typedef interface ISpPhoneticAlphabetConverter ISpPhoneticAlphabetConverter;
    216 #ifdef __cplusplus
    217 interface ISpPhoneticAlphabetConverter;
    218 #endif /* __cplusplus */
    219 #endif
    220 
    221 #ifndef __ISpPhoneticAlphabetSelection_FWD_DEFINED__
    222 #define __ISpPhoneticAlphabetSelection_FWD_DEFINED__
    223 typedef interface ISpPhoneticAlphabetSelection ISpPhoneticAlphabetSelection;
    224 #ifdef __cplusplus
    225 interface ISpPhoneticAlphabetSelection;
    226 #endif /* __cplusplus */
    227 #endif
    228 
    229 #ifndef __ISpVoice_FWD_DEFINED__
    230 #define __ISpVoice_FWD_DEFINED__
    231 typedef interface ISpVoice ISpVoice;
    232 #ifdef __cplusplus
    233 interface ISpVoice;
    234 #endif /* __cplusplus */
    235 #endif
    236 
    237 #ifndef __ISpPhrase_FWD_DEFINED__
    238 #define __ISpPhrase_FWD_DEFINED__
    239 typedef interface ISpPhrase ISpPhrase;
    240 #ifdef __cplusplus
    241 interface ISpPhrase;
    242 #endif /* __cplusplus */
    243 #endif
    244 
    245 #ifndef __ISpPhraseAlt_FWD_DEFINED__
    246 #define __ISpPhraseAlt_FWD_DEFINED__
    247 typedef interface ISpPhraseAlt ISpPhraseAlt;
    248 #ifdef __cplusplus
    249 interface ISpPhraseAlt;
    250 #endif /* __cplusplus */
    251 #endif
    252 
    253 #ifndef __ISpPhrase2_FWD_DEFINED__
    254 #define __ISpPhrase2_FWD_DEFINED__
    255 typedef interface ISpPhrase2 ISpPhrase2;
    256 #ifdef __cplusplus
    257 interface ISpPhrase2;
    258 #endif /* __cplusplus */
    259 #endif
    260 
    261 #ifndef __ISpRecoResult_FWD_DEFINED__
    262 #define __ISpRecoResult_FWD_DEFINED__
    263 typedef interface ISpRecoResult ISpRecoResult;
    264 #ifdef __cplusplus
    265 interface ISpRecoResult;
    266 #endif /* __cplusplus */
    267 #endif
    268 
    269 #ifndef __ISpRecoResult2_FWD_DEFINED__
    270 #define __ISpRecoResult2_FWD_DEFINED__
    271 typedef interface ISpRecoResult2 ISpRecoResult2;
    272 #ifdef __cplusplus
    273 interface ISpRecoResult2;
    274 #endif /* __cplusplus */
    275 #endif
    276 
    277 #ifndef __ISpXMLRecoResult_FWD_DEFINED__
    278 #define __ISpXMLRecoResult_FWD_DEFINED__
    279 typedef interface ISpXMLRecoResult ISpXMLRecoResult;
    280 #ifdef __cplusplus
    281 interface ISpXMLRecoResult;
    282 #endif /* __cplusplus */
    283 #endif
    284 
    285 #ifndef __ISpGrammarBuilder_FWD_DEFINED__
    286 #define __ISpGrammarBuilder_FWD_DEFINED__
    287 typedef interface ISpGrammarBuilder ISpGrammarBuilder;
    288 #ifdef __cplusplus
    289 interface ISpGrammarBuilder;
    290 #endif /* __cplusplus */
    291 #endif
    292 
    293 #ifndef __ISpRecoGrammar_FWD_DEFINED__
    294 #define __ISpRecoGrammar_FWD_DEFINED__
    295 typedef interface ISpRecoGrammar ISpRecoGrammar;
    296 #ifdef __cplusplus
    297 interface ISpRecoGrammar;
    298 #endif /* __cplusplus */
    299 #endif
    300 
    301 #ifndef __ISpGrammarBuilder2_FWD_DEFINED__
    302 #define __ISpGrammarBuilder2_FWD_DEFINED__
    303 typedef interface ISpGrammarBuilder2 ISpGrammarBuilder2;
    304 #ifdef __cplusplus
    305 interface ISpGrammarBuilder2;
    306 #endif /* __cplusplus */
    307 #endif
    308 
    309 #ifndef __ISpRecoGrammar2_FWD_DEFINED__
    310 #define __ISpRecoGrammar2_FWD_DEFINED__
    311 typedef interface ISpRecoGrammar2 ISpRecoGrammar2;
    312 #ifdef __cplusplus
    313 interface ISpRecoGrammar2;
    314 #endif /* __cplusplus */
    315 #endif
    316 
    317 #ifndef __ISpeechResourceLoader_FWD_DEFINED__
    318 #define __ISpeechResourceLoader_FWD_DEFINED__
    319 typedef interface ISpeechResourceLoader ISpeechResourceLoader;
    320 #ifdef __cplusplus
    321 interface ISpeechResourceLoader;
    322 #endif /* __cplusplus */
    323 #endif
    324 
    325 #ifndef __ISpRecoContext_FWD_DEFINED__
    326 #define __ISpRecoContext_FWD_DEFINED__
    327 typedef interface ISpRecoContext ISpRecoContext;
    328 #ifdef __cplusplus
    329 interface ISpRecoContext;
    330 #endif /* __cplusplus */
    331 #endif
    332 
    333 #ifndef __ISpRecoContext2_FWD_DEFINED__
    334 #define __ISpRecoContext2_FWD_DEFINED__
    335 typedef interface ISpRecoContext2 ISpRecoContext2;
    336 #ifdef __cplusplus
    337 interface ISpRecoContext2;
    338 #endif /* __cplusplus */
    339 #endif
    340 
    341 #ifndef __ISpProperties_FWD_DEFINED__
    342 #define __ISpProperties_FWD_DEFINED__
    343 typedef interface ISpProperties ISpProperties;
    344 #ifdef __cplusplus
    345 interface ISpProperties;
    346 #endif /* __cplusplus */
    347 #endif
    348 
    349 #ifndef __ISpRecognizer_FWD_DEFINED__
    350 #define __ISpRecognizer_FWD_DEFINED__
    351 typedef interface ISpRecognizer ISpRecognizer;
    352 #ifdef __cplusplus
    353 interface ISpRecognizer;
    354 #endif /* __cplusplus */
    355 #endif
    356 
    357 #ifndef __ISpSerializeState_FWD_DEFINED__
    358 #define __ISpSerializeState_FWD_DEFINED__
    359 typedef interface ISpSerializeState ISpSerializeState;
    360 #ifdef __cplusplus
    361 interface ISpSerializeState;
    362 #endif /* __cplusplus */
    363 #endif
    364 
    365 #ifndef __ISpRecognizer2_FWD_DEFINED__
    366 #define __ISpRecognizer2_FWD_DEFINED__
    367 typedef interface ISpRecognizer2 ISpRecognizer2;
    368 #ifdef __cplusplus
    369 interface ISpRecognizer2;
    370 #endif /* __cplusplus */
    371 #endif
    372 
    373 #ifndef __ISpRecoCategory_FWD_DEFINED__
    374 #define __ISpRecoCategory_FWD_DEFINED__
    375 typedef interface ISpRecoCategory ISpRecoCategory;
    376 #ifdef __cplusplus
    377 interface ISpRecoCategory;
    378 #endif /* __cplusplus */
    379 #endif
    380 
    381 #ifndef __ISpRecognizer3_FWD_DEFINED__
    382 #define __ISpRecognizer3_FWD_DEFINED__
    383 typedef interface ISpRecognizer3 ISpRecognizer3;
    384 #ifdef __cplusplus
    385 interface ISpRecognizer3;
    386 #endif /* __cplusplus */
    387 #endif
    388 
    389 #ifndef __ISpEnginePronunciation_FWD_DEFINED__
    390 #define __ISpEnginePronunciation_FWD_DEFINED__
    391 typedef interface ISpEnginePronunciation ISpEnginePronunciation;
    392 #ifdef __cplusplus
    393 interface ISpEnginePronunciation;
    394 #endif /* __cplusplus */
    395 #endif
    396 
    397 #ifndef __ISpDisplayAlternates_FWD_DEFINED__
    398 #define __ISpDisplayAlternates_FWD_DEFINED__
    399 typedef interface ISpDisplayAlternates ISpDisplayAlternates;
    400 #ifdef __cplusplus
    401 interface ISpDisplayAlternates;
    402 #endif /* __cplusplus */
    403 #endif
    404 
    405 #ifndef __ISpeechDataKey_FWD_DEFINED__
    406 #define __ISpeechDataKey_FWD_DEFINED__
    407 typedef interface ISpeechDataKey ISpeechDataKey;
    408 #ifdef __cplusplus
    409 interface ISpeechDataKey;
    410 #endif /* __cplusplus */
    411 #endif
    412 
    413 #ifndef __ISpeechObjectToken_FWD_DEFINED__
    414 #define __ISpeechObjectToken_FWD_DEFINED__
    415 typedef interface ISpeechObjectToken ISpeechObjectToken;
    416 #ifdef __cplusplus
    417 interface ISpeechObjectToken;
    418 #endif /* __cplusplus */
    419 #endif
    420 
    421 #ifndef __ISpeechObjectTokens_FWD_DEFINED__
    422 #define __ISpeechObjectTokens_FWD_DEFINED__
    423 typedef interface ISpeechObjectTokens ISpeechObjectTokens;
    424 #ifdef __cplusplus
    425 interface ISpeechObjectTokens;
    426 #endif /* __cplusplus */
    427 #endif
    428 
    429 #ifndef __ISpeechObjectTokenCategory_FWD_DEFINED__
    430 #define __ISpeechObjectTokenCategory_FWD_DEFINED__
    431 typedef interface ISpeechObjectTokenCategory ISpeechObjectTokenCategory;
    432 #ifdef __cplusplus
    433 interface ISpeechObjectTokenCategory;
    434 #endif /* __cplusplus */
    435 #endif
    436 
    437 #ifndef __ISpeechAudioFormat_FWD_DEFINED__
    438 #define __ISpeechAudioFormat_FWD_DEFINED__
    439 typedef interface ISpeechAudioFormat ISpeechAudioFormat;
    440 #ifdef __cplusplus
    441 interface ISpeechAudioFormat;
    442 #endif /* __cplusplus */
    443 #endif
    444 
    445 #ifndef __ISpeechBaseStream_FWD_DEFINED__
    446 #define __ISpeechBaseStream_FWD_DEFINED__
    447 typedef interface ISpeechBaseStream ISpeechBaseStream;
    448 #ifdef __cplusplus
    449 interface ISpeechBaseStream;
    450 #endif /* __cplusplus */
    451 #endif
    452 
    453 #ifndef __ISpeechAudio_FWD_DEFINED__
    454 #define __ISpeechAudio_FWD_DEFINED__
    455 typedef interface ISpeechAudio ISpeechAudio;
    456 #ifdef __cplusplus
    457 interface ISpeechAudio;
    458 #endif /* __cplusplus */
    459 #endif
    460 
    461 #ifndef __ISpeechMMSysAudio_FWD_DEFINED__
    462 #define __ISpeechMMSysAudio_FWD_DEFINED__
    463 typedef interface ISpeechMMSysAudio ISpeechMMSysAudio;
    464 #ifdef __cplusplus
    465 interface ISpeechMMSysAudio;
    466 #endif /* __cplusplus */
    467 #endif
    468 
    469 #ifndef __ISpeechFileStream_FWD_DEFINED__
    470 #define __ISpeechFileStream_FWD_DEFINED__
    471 typedef interface ISpeechFileStream ISpeechFileStream;
    472 #ifdef __cplusplus
    473 interface ISpeechFileStream;
    474 #endif /* __cplusplus */
    475 #endif
    476 
    477 #ifndef __ISpeechCustomStream_FWD_DEFINED__
    478 #define __ISpeechCustomStream_FWD_DEFINED__
    479 typedef interface ISpeechCustomStream ISpeechCustomStream;
    480 #ifdef __cplusplus
    481 interface ISpeechCustomStream;
    482 #endif /* __cplusplus */
    483 #endif
    484 
    485 #ifndef __ISpeechMemoryStream_FWD_DEFINED__
    486 #define __ISpeechMemoryStream_FWD_DEFINED__
    487 typedef interface ISpeechMemoryStream ISpeechMemoryStream;
    488 #ifdef __cplusplus
    489 interface ISpeechMemoryStream;
    490 #endif /* __cplusplus */
    491 #endif
    492 
    493 #ifndef __ISpeechAudioStatus_FWD_DEFINED__
    494 #define __ISpeechAudioStatus_FWD_DEFINED__
    495 typedef interface ISpeechAudioStatus ISpeechAudioStatus;
    496 #ifdef __cplusplus
    497 interface ISpeechAudioStatus;
    498 #endif /* __cplusplus */
    499 #endif
    500 
    501 #ifndef __ISpeechAudioBufferInfo_FWD_DEFINED__
    502 #define __ISpeechAudioBufferInfo_FWD_DEFINED__
    503 typedef interface ISpeechAudioBufferInfo ISpeechAudioBufferInfo;
    504 #ifdef __cplusplus
    505 interface ISpeechAudioBufferInfo;
    506 #endif /* __cplusplus */
    507 #endif
    508 
    509 #ifndef __ISpeechWaveFormatEx_FWD_DEFINED__
    510 #define __ISpeechWaveFormatEx_FWD_DEFINED__
    511 typedef interface ISpeechWaveFormatEx ISpeechWaveFormatEx;
    512 #ifdef __cplusplus
    513 interface ISpeechWaveFormatEx;
    514 #endif /* __cplusplus */
    515 #endif
    516 
    517 #ifndef __ISpeechVoice_FWD_DEFINED__
    518 #define __ISpeechVoice_FWD_DEFINED__
    519 typedef interface ISpeechVoice ISpeechVoice;
    520 #ifdef __cplusplus
    521 interface ISpeechVoice;
    522 #endif /* __cplusplus */
    523 #endif
    524 
    525 #ifndef __ISpeechVoiceStatus_FWD_DEFINED__
    526 #define __ISpeechVoiceStatus_FWD_DEFINED__
    527 typedef interface ISpeechVoiceStatus ISpeechVoiceStatus;
    528 #ifdef __cplusplus
    529 interface ISpeechVoiceStatus;
    530 #endif /* __cplusplus */
    531 #endif
    532 
    533 #ifndef ___ISpeechVoiceEvents_FWD_DEFINED__
    534 #define ___ISpeechVoiceEvents_FWD_DEFINED__
    535 typedef interface _ISpeechVoiceEvents _ISpeechVoiceEvents;
    536 #ifdef __cplusplus
    537 interface _ISpeechVoiceEvents;
    538 #endif /* __cplusplus */
    539 #endif
    540 
    541 #ifndef __ISpeechRecognizer_FWD_DEFINED__
    542 #define __ISpeechRecognizer_FWD_DEFINED__
    543 typedef interface ISpeechRecognizer ISpeechRecognizer;
    544 #ifdef __cplusplus
    545 interface ISpeechRecognizer;
    546 #endif /* __cplusplus */
    547 #endif
    548 
    549 #ifndef __ISpeechRecognizerStatus_FWD_DEFINED__
    550 #define __ISpeechRecognizerStatus_FWD_DEFINED__
    551 typedef interface ISpeechRecognizerStatus ISpeechRecognizerStatus;
    552 #ifdef __cplusplus
    553 interface ISpeechRecognizerStatus;
    554 #endif /* __cplusplus */
    555 #endif
    556 
    557 #ifndef __ISpeechRecoContext_FWD_DEFINED__
    558 #define __ISpeechRecoContext_FWD_DEFINED__
    559 typedef interface ISpeechRecoContext ISpeechRecoContext;
    560 #ifdef __cplusplus
    561 interface ISpeechRecoContext;
    562 #endif /* __cplusplus */
    563 #endif
    564 
    565 #ifndef __ISpeechRecoGrammar_FWD_DEFINED__
    566 #define __ISpeechRecoGrammar_FWD_DEFINED__
    567 typedef interface ISpeechRecoGrammar ISpeechRecoGrammar;
    568 #ifdef __cplusplus
    569 interface ISpeechRecoGrammar;
    570 #endif /* __cplusplus */
    571 #endif
    572 
    573 #ifndef ___ISpeechRecoContextEvents_FWD_DEFINED__
    574 #define ___ISpeechRecoContextEvents_FWD_DEFINED__
    575 typedef interface _ISpeechRecoContextEvents _ISpeechRecoContextEvents;
    576 #ifdef __cplusplus
    577 interface _ISpeechRecoContextEvents;
    578 #endif /* __cplusplus */
    579 #endif
    580 
    581 #ifndef __ISpeechGrammarRule_FWD_DEFINED__
    582 #define __ISpeechGrammarRule_FWD_DEFINED__
    583 typedef interface ISpeechGrammarRule ISpeechGrammarRule;
    584 #ifdef __cplusplus
    585 interface ISpeechGrammarRule;
    586 #endif /* __cplusplus */
    587 #endif
    588 
    589 #ifndef __ISpeechGrammarRules_FWD_DEFINED__
    590 #define __ISpeechGrammarRules_FWD_DEFINED__
    591 typedef interface ISpeechGrammarRules ISpeechGrammarRules;
    592 #ifdef __cplusplus
    593 interface ISpeechGrammarRules;
    594 #endif /* __cplusplus */
    595 #endif
    596 
    597 #ifndef __ISpeechGrammarRuleState_FWD_DEFINED__
    598 #define __ISpeechGrammarRuleState_FWD_DEFINED__
    599 typedef interface ISpeechGrammarRuleState ISpeechGrammarRuleState;
    600 #ifdef __cplusplus
    601 interface ISpeechGrammarRuleState;
    602 #endif /* __cplusplus */
    603 #endif
    604 
    605 #ifndef __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
    606 #define __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
    607 typedef interface ISpeechGrammarRuleStateTransitions ISpeechGrammarRuleStateTransitions;
    608 #ifdef __cplusplus
    609 interface ISpeechGrammarRuleStateTransitions;
    610 #endif /* __cplusplus */
    611 #endif
    612 
    613 #ifndef __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
    614 #define __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
    615 typedef interface ISpeechGrammarRuleStateTransition ISpeechGrammarRuleStateTransition;
    616 #ifdef __cplusplus
    617 interface ISpeechGrammarRuleStateTransition;
    618 #endif /* __cplusplus */
    619 #endif
    620 
    621 #ifndef __ISpeechTextSelectionInformation_FWD_DEFINED__
    622 #define __ISpeechTextSelectionInformation_FWD_DEFINED__
    623 typedef interface ISpeechTextSelectionInformation ISpeechTextSelectionInformation;
    624 #ifdef __cplusplus
    625 interface ISpeechTextSelectionInformation;
    626 #endif /* __cplusplus */
    627 #endif
    628 
    629 #ifndef __ISpeechRecoResult_FWD_DEFINED__
    630 #define __ISpeechRecoResult_FWD_DEFINED__
    631 typedef interface ISpeechRecoResult ISpeechRecoResult;
    632 #ifdef __cplusplus
    633 interface ISpeechRecoResult;
    634 #endif /* __cplusplus */
    635 #endif
    636 
    637 #ifndef __ISpeechXMLRecoResult_FWD_DEFINED__
    638 #define __ISpeechXMLRecoResult_FWD_DEFINED__
    639 typedef interface ISpeechXMLRecoResult ISpeechXMLRecoResult;
    640 #ifdef __cplusplus
    641 interface ISpeechXMLRecoResult;
    642 #endif /* __cplusplus */
    643 #endif
    644 
    645 #ifndef __ISpeechRecoResult2_FWD_DEFINED__
    646 #define __ISpeechRecoResult2_FWD_DEFINED__
    647 typedef interface ISpeechRecoResult2 ISpeechRecoResult2;
    648 #ifdef __cplusplus
    649 interface ISpeechRecoResult2;
    650 #endif /* __cplusplus */
    651 #endif
    652 
    653 #ifndef __ISpeechRecoResultDispatch_FWD_DEFINED__
    654 #define __ISpeechRecoResultDispatch_FWD_DEFINED__
    655 typedef interface ISpeechRecoResultDispatch ISpeechRecoResultDispatch;
    656 #ifdef __cplusplus
    657 interface ISpeechRecoResultDispatch;
    658 #endif /* __cplusplus */
    659 #endif
    660 
    661 #ifndef __ISpeechPhraseInfoBuilder_FWD_DEFINED__
    662 #define __ISpeechPhraseInfoBuilder_FWD_DEFINED__
    663 typedef interface ISpeechPhraseInfoBuilder ISpeechPhraseInfoBuilder;
    664 #ifdef __cplusplus
    665 interface ISpeechPhraseInfoBuilder;
    666 #endif /* __cplusplus */
    667 #endif
    668 
    669 #ifndef __ISpeechRecoResultTimes_FWD_DEFINED__
    670 #define __ISpeechRecoResultTimes_FWD_DEFINED__
    671 typedef interface ISpeechRecoResultTimes ISpeechRecoResultTimes;
    672 #ifdef __cplusplus
    673 interface ISpeechRecoResultTimes;
    674 #endif /* __cplusplus */
    675 #endif
    676 
    677 #ifndef __ISpeechPhraseAlternate_FWD_DEFINED__
    678 #define __ISpeechPhraseAlternate_FWD_DEFINED__
    679 typedef interface ISpeechPhraseAlternate ISpeechPhraseAlternate;
    680 #ifdef __cplusplus
    681 interface ISpeechPhraseAlternate;
    682 #endif /* __cplusplus */
    683 #endif
    684 
    685 #ifndef __ISpeechPhraseAlternates_FWD_DEFINED__
    686 #define __ISpeechPhraseAlternates_FWD_DEFINED__
    687 typedef interface ISpeechPhraseAlternates ISpeechPhraseAlternates;
    688 #ifdef __cplusplus
    689 interface ISpeechPhraseAlternates;
    690 #endif /* __cplusplus */
    691 #endif
    692 
    693 #ifndef __ISpeechPhraseInfo_FWD_DEFINED__
    694 #define __ISpeechPhraseInfo_FWD_DEFINED__
    695 typedef interface ISpeechPhraseInfo ISpeechPhraseInfo;
    696 #ifdef __cplusplus
    697 interface ISpeechPhraseInfo;
    698 #endif /* __cplusplus */
    699 #endif
    700 
    701 #ifndef __ISpeechPhraseElement_FWD_DEFINED__
    702 #define __ISpeechPhraseElement_FWD_DEFINED__
    703 typedef interface ISpeechPhraseElement ISpeechPhraseElement;
    704 #ifdef __cplusplus
    705 interface ISpeechPhraseElement;
    706 #endif /* __cplusplus */
    707 #endif
    708 
    709 #ifndef __ISpeechPhraseElements_FWD_DEFINED__
    710 #define __ISpeechPhraseElements_FWD_DEFINED__
    711 typedef interface ISpeechPhraseElements ISpeechPhraseElements;
    712 #ifdef __cplusplus
    713 interface ISpeechPhraseElements;
    714 #endif /* __cplusplus */
    715 #endif
    716 
    717 #ifndef __ISpeechPhraseReplacement_FWD_DEFINED__
    718 #define __ISpeechPhraseReplacement_FWD_DEFINED__
    719 typedef interface ISpeechPhraseReplacement ISpeechPhraseReplacement;
    720 #ifdef __cplusplus
    721 interface ISpeechPhraseReplacement;
    722 #endif /* __cplusplus */
    723 #endif
    724 
    725 #ifndef __ISpeechPhraseReplacements_FWD_DEFINED__
    726 #define __ISpeechPhraseReplacements_FWD_DEFINED__
    727 typedef interface ISpeechPhraseReplacements ISpeechPhraseReplacements;
    728 #ifdef __cplusplus
    729 interface ISpeechPhraseReplacements;
    730 #endif /* __cplusplus */
    731 #endif
    732 
    733 #ifndef __ISpeechPhraseProperty_FWD_DEFINED__
    734 #define __ISpeechPhraseProperty_FWD_DEFINED__
    735 typedef interface ISpeechPhraseProperty ISpeechPhraseProperty;
    736 #ifdef __cplusplus
    737 interface ISpeechPhraseProperty;
    738 #endif /* __cplusplus */
    739 #endif
    740 
    741 #ifndef __ISpeechPhraseProperties_FWD_DEFINED__
    742 #define __ISpeechPhraseProperties_FWD_DEFINED__
    743 typedef interface ISpeechPhraseProperties ISpeechPhraseProperties;
    744 #ifdef __cplusplus
    745 interface ISpeechPhraseProperties;
    746 #endif /* __cplusplus */
    747 #endif
    748 
    749 #ifndef __ISpeechPhraseRule_FWD_DEFINED__
    750 #define __ISpeechPhraseRule_FWD_DEFINED__
    751 typedef interface ISpeechPhraseRule ISpeechPhraseRule;
    752 #ifdef __cplusplus
    753 interface ISpeechPhraseRule;
    754 #endif /* __cplusplus */
    755 #endif
    756 
    757 #ifndef __ISpeechPhraseRules_FWD_DEFINED__
    758 #define __ISpeechPhraseRules_FWD_DEFINED__
    759 typedef interface ISpeechPhraseRules ISpeechPhraseRules;
    760 #ifdef __cplusplus
    761 interface ISpeechPhraseRules;
    762 #endif /* __cplusplus */
    763 #endif
    764 
    765 #ifndef __ISpeechLexiconWords_FWD_DEFINED__
    766 #define __ISpeechLexiconWords_FWD_DEFINED__
    767 typedef interface ISpeechLexiconWords ISpeechLexiconWords;
    768 #ifdef __cplusplus
    769 interface ISpeechLexiconWords;
    770 #endif /* __cplusplus */
    771 #endif
    772 
    773 #ifndef __ISpeechLexicon_FWD_DEFINED__
    774 #define __ISpeechLexicon_FWD_DEFINED__
    775 typedef interface ISpeechLexicon ISpeechLexicon;
    776 #ifdef __cplusplus
    777 interface ISpeechLexicon;
    778 #endif /* __cplusplus */
    779 #endif
    780 
    781 #ifndef __ISpeechLexiconWord_FWD_DEFINED__
    782 #define __ISpeechLexiconWord_FWD_DEFINED__
    783 typedef interface ISpeechLexiconWord ISpeechLexiconWord;
    784 #ifdef __cplusplus
    785 interface ISpeechLexiconWord;
    786 #endif /* __cplusplus */
    787 #endif
    788 
    789 #ifndef __ISpeechLexiconPronunciations_FWD_DEFINED__
    790 #define __ISpeechLexiconPronunciations_FWD_DEFINED__
    791 typedef interface ISpeechLexiconPronunciations ISpeechLexiconPronunciations;
    792 #ifdef __cplusplus
    793 interface ISpeechLexiconPronunciations;
    794 #endif /* __cplusplus */
    795 #endif
    796 
    797 #ifndef __ISpeechLexiconPronunciation_FWD_DEFINED__
    798 #define __ISpeechLexiconPronunciation_FWD_DEFINED__
    799 typedef interface ISpeechLexiconPronunciation ISpeechLexiconPronunciation;
    800 #ifdef __cplusplus
    801 interface ISpeechLexiconPronunciation;
    802 #endif /* __cplusplus */
    803 #endif
    804 
    805 #ifndef __ISpeechPhoneConverter_FWD_DEFINED__
    806 #define __ISpeechPhoneConverter_FWD_DEFINED__
    807 typedef interface ISpeechPhoneConverter ISpeechPhoneConverter;
    808 #ifdef __cplusplus
    809 interface ISpeechPhoneConverter;
    810 #endif /* __cplusplus */
    811 #endif
    812 
    813 #ifndef __SpNotifyTranslator_FWD_DEFINED__
    814 #define __SpNotifyTranslator_FWD_DEFINED__
    815 #ifdef __cplusplus
    816 typedef class SpNotifyTranslator SpNotifyTranslator;
    817 #else
    818 typedef struct SpNotifyTranslator SpNotifyTranslator;
    819 #endif /* defined __cplusplus */
    820 #endif /* defined __SpNotifyTranslator_FWD_DEFINED__ */
    821 
    822 #ifndef __SpObjectTokenCategory_FWD_DEFINED__
    823 #define __SpObjectTokenCategory_FWD_DEFINED__
    824 #ifdef __cplusplus
    825 typedef class SpObjectTokenCategory SpObjectTokenCategory;
    826 #else
    827 typedef struct SpObjectTokenCategory SpObjectTokenCategory;
    828 #endif /* defined __cplusplus */
    829 #endif /* defined __SpObjectTokenCategory_FWD_DEFINED__ */
    830 
    831 #ifndef __SpObjectToken_FWD_DEFINED__
    832 #define __SpObjectToken_FWD_DEFINED__
    833 #ifdef __cplusplus
    834 typedef class SpObjectToken SpObjectToken;
    835 #else
    836 typedef struct SpObjectToken SpObjectToken;
    837 #endif /* defined __cplusplus */
    838 #endif /* defined __SpObjectToken_FWD_DEFINED__ */
    839 
    840 #ifndef __SpResourceManager_FWD_DEFINED__
    841 #define __SpResourceManager_FWD_DEFINED__
    842 #ifdef __cplusplus
    843 typedef class SpResourceManager SpResourceManager;
    844 #else
    845 typedef struct SpResourceManager SpResourceManager;
    846 #endif /* defined __cplusplus */
    847 #endif /* defined __SpResourceManager_FWD_DEFINED__ */
    848 
    849 #ifndef __SpStreamFormatConverter_FWD_DEFINED__
    850 #define __SpStreamFormatConverter_FWD_DEFINED__
    851 #ifdef __cplusplus
    852 typedef class SpStreamFormatConverter SpStreamFormatConverter;
    853 #else
    854 typedef struct SpStreamFormatConverter SpStreamFormatConverter;
    855 #endif /* defined __cplusplus */
    856 #endif /* defined __SpStreamFormatConverter_FWD_DEFINED__ */
    857 
    858 #ifndef __SpMMAudioEnum_FWD_DEFINED__
    859 #define __SpMMAudioEnum_FWD_DEFINED__
    860 #ifdef __cplusplus
    861 typedef class SpMMAudioEnum SpMMAudioEnum;
    862 #else
    863 typedef struct SpMMAudioEnum SpMMAudioEnum;
    864 #endif /* defined __cplusplus */
    865 #endif /* defined __SpMMAudioEnum_FWD_DEFINED__ */
    866 
    867 #ifndef __SpMMAudioIn_FWD_DEFINED__
    868 #define __SpMMAudioIn_FWD_DEFINED__
    869 #ifdef __cplusplus
    870 typedef class SpMMAudioIn SpMMAudioIn;
    871 #else
    872 typedef struct SpMMAudioIn SpMMAudioIn;
    873 #endif /* defined __cplusplus */
    874 #endif /* defined __SpMMAudioIn_FWD_DEFINED__ */
    875 
    876 #ifndef __SpMMAudioOut_FWD_DEFINED__
    877 #define __SpMMAudioOut_FWD_DEFINED__
    878 #ifdef __cplusplus
    879 typedef class SpMMAudioOut SpMMAudioOut;
    880 #else
    881 typedef struct SpMMAudioOut SpMMAudioOut;
    882 #endif /* defined __cplusplus */
    883 #endif /* defined __SpMMAudioOut_FWD_DEFINED__ */
    884 
    885 #ifndef __SpStream_FWD_DEFINED__
    886 #define __SpStream_FWD_DEFINED__
    887 #ifdef __cplusplus
    888 typedef class SpStream SpStream;
    889 #else
    890 typedef struct SpStream SpStream;
    891 #endif /* defined __cplusplus */
    892 #endif /* defined __SpStream_FWD_DEFINED__ */
    893 
    894 #ifndef __SpVoice_FWD_DEFINED__
    895 #define __SpVoice_FWD_DEFINED__
    896 #ifdef __cplusplus
    897 typedef class SpVoice SpVoice;
    898 #else
    899 typedef struct SpVoice SpVoice;
    900 #endif /* defined __cplusplus */
    901 #endif /* defined __SpVoice_FWD_DEFINED__ */
    902 
    903 #ifndef __SpSharedRecoContext_FWD_DEFINED__
    904 #define __SpSharedRecoContext_FWD_DEFINED__
    905 #ifdef __cplusplus
    906 typedef class SpSharedRecoContext SpSharedRecoContext;
    907 #else
    908 typedef struct SpSharedRecoContext SpSharedRecoContext;
    909 #endif /* defined __cplusplus */
    910 #endif /* defined __SpSharedRecoContext_FWD_DEFINED__ */
    911 
    912 #ifndef __SpInprocRecognizer_FWD_DEFINED__
    913 #define __SpInprocRecognizer_FWD_DEFINED__
    914 #ifdef __cplusplus
    915 typedef class SpInprocRecognizer SpInprocRecognizer;
    916 #else
    917 typedef struct SpInprocRecognizer SpInprocRecognizer;
    918 #endif /* defined __cplusplus */
    919 #endif /* defined __SpInprocRecognizer_FWD_DEFINED__ */
    920 
    921 #ifndef __SpSharedRecognizer_FWD_DEFINED__
    922 #define __SpSharedRecognizer_FWD_DEFINED__
    923 #ifdef __cplusplus
    924 typedef class SpSharedRecognizer SpSharedRecognizer;
    925 #else
    926 typedef struct SpSharedRecognizer SpSharedRecognizer;
    927 #endif /* defined __cplusplus */
    928 #endif /* defined __SpSharedRecognizer_FWD_DEFINED__ */
    929 
    930 #ifndef __SpLexicon_FWD_DEFINED__
    931 #define __SpLexicon_FWD_DEFINED__
    932 #ifdef __cplusplus
    933 typedef class SpLexicon SpLexicon;
    934 #else
    935 typedef struct SpLexicon SpLexicon;
    936 #endif /* defined __cplusplus */
    937 #endif /* defined __SpLexicon_FWD_DEFINED__ */
    938 
    939 #ifndef __SpUnCompressedLexicon_FWD_DEFINED__
    940 #define __SpUnCompressedLexicon_FWD_DEFINED__
    941 #ifdef __cplusplus
    942 typedef class SpUnCompressedLexicon SpUnCompressedLexicon;
    943 #else
    944 typedef struct SpUnCompressedLexicon SpUnCompressedLexicon;
    945 #endif /* defined __cplusplus */
    946 #endif /* defined __SpUnCompressedLexicon_FWD_DEFINED__ */
    947 
    948 #ifndef __SpCompressedLexicon_FWD_DEFINED__
    949 #define __SpCompressedLexicon_FWD_DEFINED__
    950 #ifdef __cplusplus
    951 typedef class SpCompressedLexicon SpCompressedLexicon;
    952 #else
    953 typedef struct SpCompressedLexicon SpCompressedLexicon;
    954 #endif /* defined __cplusplus */
    955 #endif /* defined __SpCompressedLexicon_FWD_DEFINED__ */
    956 
    957 #ifndef __SpShortcut_FWD_DEFINED__
    958 #define __SpShortcut_FWD_DEFINED__
    959 #ifdef __cplusplus
    960 typedef class SpShortcut SpShortcut;
    961 #else
    962 typedef struct SpShortcut SpShortcut;
    963 #endif /* defined __cplusplus */
    964 #endif /* defined __SpShortcut_FWD_DEFINED__ */
    965 
    966 #ifndef __SpPhoneConverter_FWD_DEFINED__
    967 #define __SpPhoneConverter_FWD_DEFINED__
    968 #ifdef __cplusplus
    969 typedef class SpPhoneConverter SpPhoneConverter;
    970 #else
    971 typedef struct SpPhoneConverter SpPhoneConverter;
    972 #endif /* defined __cplusplus */
    973 #endif /* defined __SpPhoneConverter_FWD_DEFINED__ */
    974 
    975 #ifndef __SpPhoneticAlphabetConverter_FWD_DEFINED__
    976 #define __SpPhoneticAlphabetConverter_FWD_DEFINED__
    977 #ifdef __cplusplus
    978 typedef class SpPhoneticAlphabetConverter SpPhoneticAlphabetConverter;
    979 #else
    980 typedef struct SpPhoneticAlphabetConverter SpPhoneticAlphabetConverter;
    981 #endif /* defined __cplusplus */
    982 #endif /* defined __SpPhoneticAlphabetConverter_FWD_DEFINED__ */
    983 
    984 #ifndef __SpNullPhoneConverter_FWD_DEFINED__
    985 #define __SpNullPhoneConverter_FWD_DEFINED__
    986 #ifdef __cplusplus
    987 typedef class SpNullPhoneConverter SpNullPhoneConverter;
    988 #else
    989 typedef struct SpNullPhoneConverter SpNullPhoneConverter;
    990 #endif /* defined __cplusplus */
    991 #endif /* defined __SpNullPhoneConverter_FWD_DEFINED__ */
    992 
    993 #ifndef __SpTextSelectionInformation_FWD_DEFINED__
    994 #define __SpTextSelectionInformation_FWD_DEFINED__
    995 #ifdef __cplusplus
    996 typedef class SpTextSelectionInformation SpTextSelectionInformation;
    997 #else
    998 typedef struct SpTextSelectionInformation SpTextSelectionInformation;
    999 #endif /* defined __cplusplus */
   1000 #endif /* defined __SpTextSelectionInformation_FWD_DEFINED__ */
   1001 
   1002 #ifndef __SpPhraseInfoBuilder_FWD_DEFINED__
   1003 #define __SpPhraseInfoBuilder_FWD_DEFINED__
   1004 #ifdef __cplusplus
   1005 typedef class SpPhraseInfoBuilder SpPhraseInfoBuilder;
   1006 #else
   1007 typedef struct SpPhraseInfoBuilder SpPhraseInfoBuilder;
   1008 #endif /* defined __cplusplus */
   1009 #endif /* defined __SpPhraseInfoBuilder_FWD_DEFINED__ */
   1010 
   1011 #ifndef __SpAudioFormat_FWD_DEFINED__
   1012 #define __SpAudioFormat_FWD_DEFINED__
   1013 #ifdef __cplusplus
   1014 typedef class SpAudioFormat SpAudioFormat;
   1015 #else
   1016 typedef struct SpAudioFormat SpAudioFormat;
   1017 #endif /* defined __cplusplus */
   1018 #endif /* defined __SpAudioFormat_FWD_DEFINED__ */
   1019 
   1020 #ifndef __SpWaveFormatEx_FWD_DEFINED__
   1021 #define __SpWaveFormatEx_FWD_DEFINED__
   1022 #ifdef __cplusplus
   1023 typedef class SpWaveFormatEx SpWaveFormatEx;
   1024 #else
   1025 typedef struct SpWaveFormatEx SpWaveFormatEx;
   1026 #endif /* defined __cplusplus */
   1027 #endif /* defined __SpWaveFormatEx_FWD_DEFINED__ */
   1028 
   1029 #ifndef __SpInProcRecoContext_FWD_DEFINED__
   1030 #define __SpInProcRecoContext_FWD_DEFINED__
   1031 #ifdef __cplusplus
   1032 typedef class SpInProcRecoContext SpInProcRecoContext;
   1033 #else
   1034 typedef struct SpInProcRecoContext SpInProcRecoContext;
   1035 #endif /* defined __cplusplus */
   1036 #endif /* defined __SpInProcRecoContext_FWD_DEFINED__ */
   1037 
   1038 #ifndef __SpCustomStream_FWD_DEFINED__
   1039 #define __SpCustomStream_FWD_DEFINED__
   1040 #ifdef __cplusplus
   1041 typedef class SpCustomStream SpCustomStream;
   1042 #else
   1043 typedef struct SpCustomStream SpCustomStream;
   1044 #endif /* defined __cplusplus */
   1045 #endif /* defined __SpCustomStream_FWD_DEFINED__ */
   1046 
   1047 #ifndef __SpFileStream_FWD_DEFINED__
   1048 #define __SpFileStream_FWD_DEFINED__
   1049 #ifdef __cplusplus
   1050 typedef class SpFileStream SpFileStream;
   1051 #else
   1052 typedef struct SpFileStream SpFileStream;
   1053 #endif /* defined __cplusplus */
   1054 #endif /* defined __SpFileStream_FWD_DEFINED__ */
   1055 
   1056 #ifndef __SpMemoryStream_FWD_DEFINED__
   1057 #define __SpMemoryStream_FWD_DEFINED__
   1058 #ifdef __cplusplus
   1059 typedef class SpMemoryStream SpMemoryStream;
   1060 #else
   1061 typedef struct SpMemoryStream SpMemoryStream;
   1062 #endif /* defined __cplusplus */
   1063 #endif /* defined __SpMemoryStream_FWD_DEFINED__ */
   1064 
   1065 /* Headers for imported files */
   1066 
   1067 #include <oaidl.h>
   1068 #include <ocidl.h>
   1069 
   1070 #ifdef __cplusplus
   1071 extern "C" {
   1072 #endif
   1073 
   1074 #ifndef _SAPI_VER
   1075 #error "you have to include <sapi.h> header before this."
   1076 #endif
   1077 #if 0
   1078 typedef struct WAVEFORMATEX {
   1079     WORD wFormatTag;
   1080     WORD nChannels;
   1081     DWORD nSamplesPerSec;
   1082     DWORD nAvgBytesPerSec;
   1083     WORD nBlockAlign;
   1084     WORD wBitsPerSample;
   1085     WORD cbSize;
   1086 } WAVEFORMATEX;
   1087 #endif
   1088 #ifndef __ISpNotifySource_FWD_DEFINED__
   1089 #define __ISpNotifySource_FWD_DEFINED__
   1090 typedef interface ISpNotifySource ISpNotifySource;
   1091 #ifdef __cplusplus
   1092 interface ISpNotifySource;
   1093 #endif /* __cplusplus */
   1094 #endif
   1095 
   1096 #ifndef __ISpNotifySink_FWD_DEFINED__
   1097 #define __ISpNotifySink_FWD_DEFINED__
   1098 typedef interface ISpNotifySink ISpNotifySink;
   1099 #ifdef __cplusplus
   1100 interface ISpNotifySink;
   1101 #endif /* __cplusplus */
   1102 #endif
   1103 
   1104 #ifndef __ISpNotifyTranslator_FWD_DEFINED__
   1105 #define __ISpNotifyTranslator_FWD_DEFINED__
   1106 typedef interface ISpNotifyTranslator ISpNotifyTranslator;
   1107 #ifdef __cplusplus
   1108 interface ISpNotifyTranslator;
   1109 #endif /* __cplusplus */
   1110 #endif
   1111 
   1112 #ifndef __ISpDataKey_FWD_DEFINED__
   1113 #define __ISpDataKey_FWD_DEFINED__
   1114 typedef interface ISpDataKey ISpDataKey;
   1115 #ifdef __cplusplus
   1116 interface ISpDataKey;
   1117 #endif /* __cplusplus */
   1118 #endif
   1119 
   1120 #ifndef __ISpObjectTokenCategory_FWD_DEFINED__
   1121 #define __ISpObjectTokenCategory_FWD_DEFINED__
   1122 typedef interface ISpObjectTokenCategory ISpObjectTokenCategory;
   1123 #ifdef __cplusplus
   1124 interface ISpObjectTokenCategory;
   1125 #endif /* __cplusplus */
   1126 #endif
   1127 
   1128 #ifndef __ISpObjectToken_FWD_DEFINED__
   1129 #define __ISpObjectToken_FWD_DEFINED__
   1130 typedef interface ISpObjectToken ISpObjectToken;
   1131 #ifdef __cplusplus
   1132 interface ISpObjectToken;
   1133 #endif /* __cplusplus */
   1134 #endif
   1135 
   1136 #ifndef __IEnumSpObjectTokens_FWD_DEFINED__
   1137 #define __IEnumSpObjectTokens_FWD_DEFINED__
   1138 typedef interface IEnumSpObjectTokens IEnumSpObjectTokens;
   1139 #ifdef __cplusplus
   1140 interface IEnumSpObjectTokens;
   1141 #endif /* __cplusplus */
   1142 #endif
   1143 
   1144 #ifndef __ISpObjectWithToken_FWD_DEFINED__
   1145 #define __ISpObjectWithToken_FWD_DEFINED__
   1146 typedef interface ISpObjectWithToken ISpObjectWithToken;
   1147 #ifdef __cplusplus
   1148 interface ISpObjectWithToken;
   1149 #endif /* __cplusplus */
   1150 #endif
   1151 
   1152 #ifndef __ISpResourceManager_FWD_DEFINED__
   1153 #define __ISpResourceManager_FWD_DEFINED__
   1154 typedef interface ISpResourceManager ISpResourceManager;
   1155 #ifdef __cplusplus
   1156 interface ISpResourceManager;
   1157 #endif /* __cplusplus */
   1158 #endif
   1159 
   1160 #ifndef __ISpEventSource_FWD_DEFINED__
   1161 #define __ISpEventSource_FWD_DEFINED__
   1162 typedef interface ISpEventSource ISpEventSource;
   1163 #ifdef __cplusplus
   1164 interface ISpEventSource;
   1165 #endif /* __cplusplus */
   1166 #endif
   1167 
   1168 #ifndef __ISpEventSink_FWD_DEFINED__
   1169 #define __ISpEventSink_FWD_DEFINED__
   1170 typedef interface ISpEventSink ISpEventSink;
   1171 #ifdef __cplusplus
   1172 interface ISpEventSink;
   1173 #endif /* __cplusplus */
   1174 #endif
   1175 
   1176 #ifndef __ISpStreamFormat_FWD_DEFINED__
   1177 #define __ISpStreamFormat_FWD_DEFINED__
   1178 typedef interface ISpStreamFormat ISpStreamFormat;
   1179 #ifdef __cplusplus
   1180 interface ISpStreamFormat;
   1181 #endif /* __cplusplus */
   1182 #endif
   1183 
   1184 #ifndef __ISpStream_FWD_DEFINED__
   1185 #define __ISpStream_FWD_DEFINED__
   1186 typedef interface ISpStream ISpStream;
   1187 #ifdef __cplusplus
   1188 interface ISpStream;
   1189 #endif /* __cplusplus */
   1190 #endif
   1191 
   1192 #ifndef __ISpStreamFormatConverter_FWD_DEFINED__
   1193 #define __ISpStreamFormatConverter_FWD_DEFINED__
   1194 typedef interface ISpStreamFormatConverter ISpStreamFormatConverter;
   1195 #ifdef __cplusplus
   1196 interface ISpStreamFormatConverter;
   1197 #endif /* __cplusplus */
   1198 #endif
   1199 
   1200 #ifndef __ISpAudio_FWD_DEFINED__
   1201 #define __ISpAudio_FWD_DEFINED__
   1202 typedef interface ISpAudio ISpAudio;
   1203 #ifdef __cplusplus
   1204 interface ISpAudio;
   1205 #endif /* __cplusplus */
   1206 #endif
   1207 
   1208 #ifndef __ISpMMSysAudio_FWD_DEFINED__
   1209 #define __ISpMMSysAudio_FWD_DEFINED__
   1210 typedef interface ISpMMSysAudio ISpMMSysAudio;
   1211 #ifdef __cplusplus
   1212 interface ISpMMSysAudio;
   1213 #endif /* __cplusplus */
   1214 #endif
   1215 
   1216 #ifndef __ISpTranscript_FWD_DEFINED__
   1217 #define __ISpTranscript_FWD_DEFINED__
   1218 typedef interface ISpTranscript ISpTranscript;
   1219 #ifdef __cplusplus
   1220 interface ISpTranscript;
   1221 #endif /* __cplusplus */
   1222 #endif
   1223 
   1224 #ifndef __ISpVoice_FWD_DEFINED__
   1225 #define __ISpVoice_FWD_DEFINED__
   1226 typedef interface ISpVoice ISpVoice;
   1227 #ifdef __cplusplus
   1228 interface ISpVoice;
   1229 #endif /* __cplusplus */
   1230 #endif
   1231 
   1232 #ifndef __ISpRecoResult_FWD_DEFINED__
   1233 #define __ISpRecoResult_FWD_DEFINED__
   1234 typedef interface ISpRecoResult ISpRecoResult;
   1235 #ifdef __cplusplus
   1236 interface ISpRecoResult;
   1237 #endif /* __cplusplus */
   1238 #endif
   1239 
   1240 #ifndef __ISpRecoContext_FWD_DEFINED__
   1241 #define __ISpRecoContext_FWD_DEFINED__
   1242 typedef interface ISpRecoContext ISpRecoContext;
   1243 #ifdef __cplusplus
   1244 interface ISpRecoContext;
   1245 #endif /* __cplusplus */
   1246 #endif
   1247 
   1248 #ifndef __ISpRecognizer_FWD_DEFINED__
   1249 #define __ISpRecognizer_FWD_DEFINED__
   1250 typedef interface ISpRecognizer ISpRecognizer;
   1251 #ifdef __cplusplus
   1252 interface ISpRecognizer;
   1253 #endif /* __cplusplus */
   1254 #endif
   1255 
   1256 #ifndef __ISpProperties_FWD_DEFINED__
   1257 #define __ISpProperties_FWD_DEFINED__
   1258 typedef interface ISpProperties ISpProperties;
   1259 #ifdef __cplusplus
   1260 interface ISpProperties;
   1261 #endif /* __cplusplus */
   1262 #endif
   1263 
   1264 #ifndef __ISpLexicon_FWD_DEFINED__
   1265 #define __ISpLexicon_FWD_DEFINED__
   1266 typedef interface ISpLexicon ISpLexicon;
   1267 #ifdef __cplusplus
   1268 interface ISpLexicon;
   1269 #endif /* __cplusplus */
   1270 #endif
   1271 
   1272 #ifndef __ISpPhoneConverter_FWD_DEFINED__
   1273 #define __ISpPhoneConverter_FWD_DEFINED__
   1274 typedef interface ISpPhoneConverter ISpPhoneConverter;
   1275 #ifdef __cplusplus
   1276 interface ISpPhoneConverter;
   1277 #endif /* __cplusplus */
   1278 #endif
   1279 
   1280 #ifndef __ISpPhrase_FWD_DEFINED__
   1281 #define __ISpPhrase_FWD_DEFINED__
   1282 typedef interface ISpPhrase ISpPhrase;
   1283 #ifdef __cplusplus
   1284 interface ISpPhrase;
   1285 #endif /* __cplusplus */
   1286 #endif
   1287 
   1288 #ifndef __ISpRecoContext2_FWD_DEFINED__
   1289 #define __ISpRecoContext2_FWD_DEFINED__
   1290 typedef interface ISpRecoContext2 ISpRecoContext2;
   1291 #ifdef __cplusplus
   1292 interface ISpRecoContext2;
   1293 #endif /* __cplusplus */
   1294 #endif
   1295 
   1296 #ifndef __ISpRecognizer2_FWD_DEFINED__
   1297 #define __ISpRecognizer2_FWD_DEFINED__
   1298 typedef interface ISpRecognizer2 ISpRecognizer2;
   1299 #ifdef __cplusplus
   1300 interface ISpRecognizer2;
   1301 #endif /* __cplusplus */
   1302 #endif
   1303 
   1304 #ifndef __ISpShortcut_FWD_DEFINED__
   1305 #define __ISpShortcut_FWD_DEFINED__
   1306 typedef interface ISpShortcut ISpShortcut;
   1307 #ifdef __cplusplus
   1308 interface ISpShortcut;
   1309 #endif /* __cplusplus */
   1310 #endif
   1311 
   1312 #ifndef __ISpPhoneticAlphabetConverter_FWD_DEFINED__
   1313 #define __ISpPhoneticAlphabetConverter_FWD_DEFINED__
   1314 typedef interface ISpPhoneticAlphabetConverter ISpPhoneticAlphabetConverter;
   1315 #ifdef __cplusplus
   1316 interface ISpPhoneticAlphabetConverter;
   1317 #endif /* __cplusplus */
   1318 #endif
   1319 
   1320 #ifndef __ISpPhoneticAlphabetSelection_FWD_DEFINED__
   1321 #define __ISpPhoneticAlphabetSelection_FWD_DEFINED__
   1322 typedef interface ISpPhoneticAlphabetSelection ISpPhoneticAlphabetSelection;
   1323 #ifdef __cplusplus
   1324 interface ISpPhoneticAlphabetSelection;
   1325 #endif /* __cplusplus */
   1326 #endif
   1327 
   1328 #ifndef __ISpRecoGrammar2_FWD_DEFINED__
   1329 #define __ISpRecoGrammar2_FWD_DEFINED__
   1330 typedef interface ISpRecoGrammar2 ISpRecoGrammar2;
   1331 #ifdef __cplusplus
   1332 interface ISpRecoGrammar2;
   1333 #endif /* __cplusplus */
   1334 #endif
   1335 
   1336 #ifndef __ISpeechResourceLoader_FWD_DEFINED__
   1337 #define __ISpeechResourceLoader_FWD_DEFINED__
   1338 typedef interface ISpeechResourceLoader ISpeechResourceLoader;
   1339 #ifdef __cplusplus
   1340 interface ISpeechResourceLoader;
   1341 #endif /* __cplusplus */
   1342 #endif
   1343 
   1344 #ifndef __ISpRecognizer3_FWD_DEFINED__
   1345 #define __ISpRecognizer3_FWD_DEFINED__
   1346 typedef interface ISpRecognizer3 ISpRecognizer3;
   1347 #ifdef __cplusplus
   1348 interface ISpRecognizer3;
   1349 #endif /* __cplusplus */
   1350 #endif
   1351 
   1352 typedef enum SPDATAKEYLOCATION {
   1353     SPDKL_DefaultLocation = 0,
   1354     SPDKL_CurrentUser = 1,
   1355     SPDKL_LocalMachine = 2,
   1356     SPDKL_CurrentConfig = 5
   1357 } SPDATAKEYLOCATION;
   1358 typedef enum SPSTREAMFORMAT {
   1359     SPSF_Default = -1,
   1360     SPSF_NoAssignedFormat = 0,
   1361     SPSF_Text = 1,
   1362     SPSF_NonStandardFormat = 2,
   1363     SPSF_ExtendedAudioFormat = 3,
   1364     SPSF_8kHz8BitMono = 4,
   1365     SPSF_8kHz8BitStereo = 5,
   1366     SPSF_8kHz16BitMono = 6,
   1367     SPSF_8kHz16BitStereo = 7,
   1368     SPSF_11kHz8BitMono = 8,
   1369     SPSF_11kHz8BitStereo = 9,
   1370     SPSF_11kHz16BitMono = 10,
   1371     SPSF_11kHz16BitStereo = 11,
   1372     SPSF_12kHz8BitMono = 12,
   1373     SPSF_12kHz8BitStereo = 13,
   1374     SPSF_12kHz16BitMono = 14,
   1375     SPSF_12kHz16BitStereo = 15,
   1376     SPSF_16kHz8BitMono = 16,
   1377     SPSF_16kHz8BitStereo = 17,
   1378     SPSF_16kHz16BitMono = 18,
   1379     SPSF_16kHz16BitStereo = 19,
   1380     SPSF_22kHz8BitMono = 20,
   1381     SPSF_22kHz8BitStereo = 21,
   1382     SPSF_22kHz16BitMono = 22,
   1383     SPSF_22kHz16BitStereo = 23,
   1384     SPSF_24kHz8BitMono = 24,
   1385     SPSF_24kHz8BitStereo = 25,
   1386     SPSF_24kHz16BitMono = 26,
   1387     SPSF_24kHz16BitStereo = 27,
   1388     SPSF_32kHz8BitMono = 28,
   1389     SPSF_32kHz8BitStereo = 29,
   1390     SPSF_32kHz16BitMono = 30,
   1391     SPSF_32kHz16BitStereo = 31,
   1392     SPSF_44kHz8BitMono = 32,
   1393     SPSF_44kHz8BitStereo = 33,
   1394     SPSF_44kHz16BitMono = 34,
   1395     SPSF_44kHz16BitStereo = 35,
   1396     SPSF_48kHz8BitMono = 36,
   1397     SPSF_48kHz8BitStereo = 37,
   1398     SPSF_48kHz16BitMono = 38,
   1399     SPSF_48kHz16BitStereo = 39,
   1400     SPSF_TrueSpeech_8kHz1BitMono = 40,
   1401     SPSF_CCITT_ALaw_8kHzMono = 41,
   1402     SPSF_CCITT_ALaw_8kHzStereo = 42,
   1403     SPSF_CCITT_ALaw_11kHzMono = 43,
   1404     SPSF_CCITT_ALaw_11kHzStereo = 44,
   1405     SPSF_CCITT_ALaw_22kHzMono = 45,
   1406     SPSF_CCITT_ALaw_22kHzStereo = 46,
   1407     SPSF_CCITT_ALaw_44kHzMono = 47,
   1408     SPSF_CCITT_ALaw_44kHzStereo = 48,
   1409     SPSF_CCITT_uLaw_8kHzMono = 49,
   1410     SPSF_CCITT_uLaw_8kHzStereo = 50,
   1411     SPSF_CCITT_uLaw_11kHzMono = 51,
   1412     SPSF_CCITT_uLaw_11kHzStereo = 52,
   1413     SPSF_CCITT_uLaw_22kHzMono = 53,
   1414     SPSF_CCITT_uLaw_22kHzStereo = 54,
   1415     SPSF_CCITT_uLaw_44kHzMono = 55,
   1416     SPSF_CCITT_uLaw_44kHzStereo = 56,
   1417     SPSF_ADPCM_8kHzMono = 57,
   1418     SPSF_ADPCM_8kHzStereo = 58,
   1419     SPSF_ADPCM_11kHzMono = 59,
   1420     SPSF_ADPCM_11kHzStereo = 60,
   1421     SPSF_ADPCM_22kHzMono = 61,
   1422     SPSF_ADPCM_22kHzStereo = 62,
   1423     SPSF_ADPCM_44kHzMono = 63,
   1424     SPSF_ADPCM_44kHzStereo = 64,
   1425     SPSF_GSM610_8kHzMono = 65,
   1426     SPSF_GSM610_11kHzMono = 66,
   1427     SPSF_GSM610_22kHzMono = 67,
   1428     SPSF_GSM610_44kHzMono = 68,
   1429     SPSF_NUM_FORMATS = 69
   1430 } SPSTREAMFORMAT;
   1431 typedef enum SPEVENTLPARAMTYPE {
   1432     SPET_LPARAM_IS_UNDEFINED = 0,
   1433     SPET_LPARAM_IS_TOKEN = 1,
   1434     SPET_LPARAM_IS_OBJECT = 2,
   1435     SPET_LPARAM_IS_POINTER = 3,
   1436     SPET_LPARAM_IS_STRING = 4
   1437 } SPEVENTLPARAMTYPE;
   1438 typedef enum SPEVENTENUM {
   1439     SPEI_UNDEFINED = 0,
   1440     SPEI_START_INPUT_STREAM = 1,
   1441     SPEI_END_INPUT_STREAM = 2,
   1442     SPEI_VOICE_CHANGE = 3,
   1443     SPEI_TTS_BOOKMARK = 4,
   1444     SPEI_WORD_BOUNDARY = 5,
   1445     SPEI_PHONEME = 6,
   1446     SPEI_SENTENCE_BOUNDARY = 7,
   1447     SPEI_VISEME = 8,
   1448     SPEI_TTS_AUDIO_LEVEL = 9,
   1449     SPEI_TTS_PRIVATE = 15,
   1450     SPEI_MIN_TTS = 1,
   1451     SPEI_MAX_TTS = 15,
   1452     SPEI_END_SR_STREAM = 34,
   1453     SPEI_SOUND_START = 35,
   1454     SPEI_SOUND_END = 36,
   1455     SPEI_PHRASE_START = 37,
   1456     SPEI_RECOGNITION = 38,
   1457     SPEI_HYPOTHESIS = 39,
   1458     SPEI_SR_BOOKMARK = 40,
   1459     SPEI_PROPERTY_NUM_CHANGE = 41,
   1460     SPEI_PROPERTY_STRING_CHANGE = 42,
   1461     SPEI_FALSE_RECOGNITION = 43,
   1462     SPEI_INTERFERENCE = 44,
   1463     SPEI_REQUEST_UI = 45,
   1464     SPEI_RECO_STATE_CHANGE = 46,
   1465     SPEI_ADAPTATION = 47,
   1466     SPEI_START_SR_STREAM = 48,
   1467     SPEI_RECO_OTHER_CONTEXT = 49,
   1468     SPEI_SR_AUDIO_LEVEL = 50,
   1469     SPEI_SR_RETAINEDAUDIO = 51,
   1470     SPEI_SR_PRIVATE = 52,
   1471     SPEI_ACTIVE_CATEGORY_CHANGED = 53,
   1472     SPEI_RESERVED5 = 54,
   1473     SPEI_RESERVED6 = 55,
   1474     SPEI_MIN_SR = 34,
   1475     SPEI_MAX_SR = 55,
   1476     SPEI_RESERVED1 = 30,
   1477     SPEI_RESERVED2 = 33,
   1478     SPEI_RESERVED3 = 63
   1479 } SPEVENTENUM;
   1480 typedef enum SPINTERFERENCE {
   1481     SPINTERFERENCE_NONE = 0,
   1482     SPINTERFERENCE_NOISE = 1,
   1483     SPINTERFERENCE_NOSIGNAL = 2,
   1484     SPINTERFERENCE_TOOLOUD = 3,
   1485     SPINTERFERENCE_TOOQUIET = 4,
   1486     SPINTERFERENCE_TOOFAST = 5,
   1487     SPINTERFERENCE_TOOSLOW = 6,
   1488     SPINTERFERENCE_LATENCY_WARNING = 7,
   1489     SPINTERFERENCE_LATENCY_TRUNCATE_BEGIN = 8,
   1490     SPINTERFERENCE_LATENCY_TRUNCATE_END = 9
   1491 } SPINTERFERENCE;
   1492 typedef enum SPENDSRSTREAMFLAGS {
   1493     SPESF_NONE = 0,
   1494     SPESF_STREAM_RELEASED = 1,
   1495     SPESF_EMULATED = 2
   1496 } SPENDSRSTREAMFLAGS;
   1497 typedef enum SPVFEATURE {
   1498     SPVFEATURE_STRESSED = 1,
   1499     SPVFEATURE_EMPHASIS = 2
   1500 } SPVFEATURE;
   1501 typedef enum SPVISEMES {
   1502     SP_VISEME_0 = 0,
   1503     SP_VISEME_1 = 1,
   1504     SP_VISEME_2 = 2,
   1505     SP_VISEME_3 = 3,
   1506     SP_VISEME_4 = 4,
   1507     SP_VISEME_5 = 5,
   1508     SP_VISEME_6 = 6,
   1509     SP_VISEME_7 = 7,
   1510     SP_VISEME_8 = 8,
   1511     SP_VISEME_9 = 9,
   1512     SP_VISEME_10 = 10,
   1513     SP_VISEME_11 = 11,
   1514     SP_VISEME_12 = 12,
   1515     SP_VISEME_13 = 13,
   1516     SP_VISEME_14 = 14,
   1517     SP_VISEME_15 = 15,
   1518     SP_VISEME_16 = 16,
   1519     SP_VISEME_17 = 17,
   1520     SP_VISEME_18 = 18,
   1521     SP_VISEME_19 = 19,
   1522     SP_VISEME_20 = 20,
   1523     SP_VISEME_21 = 21
   1524 } SPVISEMES;
   1525 typedef enum SPFILEMODE {
   1526     SPFM_OPEN_READONLY = 0,
   1527     SPFM_OPEN_READWRITE = 1,
   1528     SPFM_CREATE = 2,
   1529     SPFM_CREATE_ALWAYS = 3,
   1530     SPFM_NUM_MODES = 4
   1531 } SPFILEMODE;
   1532 typedef enum _SPAUDIOSTATE {
   1533     SPAS_CLOSED = 0,
   1534     SPAS_STOP = 1,
   1535     SPAS_PAUSE = 2,
   1536     SPAS_RUN = 3
   1537 } SPAUDIOSTATE;
   1538 typedef enum SPDISPLYATTRIBUTES {
   1539     SPAF_ONE_TRAILING_SPACE = 0x2,
   1540     SPAF_TWO_TRAILING_SPACES = 0x4,
   1541     SPAF_CONSUME_LEADING_SPACES = 0x8,
   1542     SPAF_BUFFER_POSITION = 0x10,
   1543     SPAF_ALL = 0x1f,
   1544     SPAF_USER_SPECIFIED = 0x80
   1545 } SPDISPLAYATTRIBUTES;
   1546 typedef enum SPPHRASEPROPERTYUNIONTYPE {
   1547     SPPPUT_UNUSED = 0,
   1548     SPPPUT_ARRAY_INDEX = 1
   1549 } SPPHRASEPROPERTYUNIONTYPE;
   1550 typedef enum SPSEMANTICFORMAT {
   1551     SPSMF_SAPI_PROPERTIES = 0,
   1552     SPSMF_SRGS_SEMANTICINTERPRETATION_MS = 1,
   1553     SPSMF_SRGS_SAPIPROPERTIES = 2,
   1554     SPSMF_UPS = 4,
   1555     SPSMF_SRGS_SEMANTICINTERPRETATION_W3C = 8
   1556 } SPSEMANTICFORMAT;
   1557 typedef enum SPRECOEVENTFLAGS {
   1558     SPREF_AutoPause = 0x1,
   1559     SPREF_Emulated = 0x2,
   1560     SPREF_SMLTimeout = 0x4,
   1561     SPREF_ExtendableParse = 0x8,
   1562     SPREF_ReSent = 0x10,
   1563     SPREF_Hypothesis = 0x20,
   1564     SPREF_FalseRecognition = 0x40
   1565 } SPRECOEVENTFLAGS;
   1566 typedef enum SPPARTOFSPEECH {
   1567     SPPS_NotOverriden = -1,
   1568     SPPS_Unknown = 0,
   1569     SPPS_Noun = 0x1000,
   1570     SPPS_Verb = 0x2000,
   1571     SPPS_Modifier = 0x3000,
   1572     SPPS_Function = 0x4000,
   1573     SPPS_Interjection = 0x5000,
   1574     SPPS_Noncontent = 0x6000,
   1575     SPPS_LMA = 0x7000,
   1576     SPPS_SuppressWord = 0xf000
   1577 } SPPARTOFSPEECH;
   1578 typedef enum SPLEXICONTYPE {
   1579     eLEXTYPE_USER = 0x1,
   1580     eLEXTYPE_APP = 0x2,
   1581     eLEXTYPE_VENDORLEXICON = 0x4,
   1582     eLEXTYPE_LETTERTOSOUND = 0x8,
   1583     eLEXTYPE_MORPHOLOGY = 0x10,
   1584     eLEXTYPE_RESERVED4 = 0x20,
   1585     eLEXTYPE_USER_SHORTCUT = 0x40,
   1586     eLEXTYPE_RESERVED6 = 0x80,
   1587     eLEXTYPE_RESERVED7 = 0x100,
   1588     eLEXTYPE_RESERVED8 = 0x200,
   1589     eLEXTYPE_RESERVED9 = 0x400,
   1590     eLEXTYPE_RESERVED10 = 0x800,
   1591     eLEXTYPE_PRIVATE1 = 0x1000,
   1592     eLEXTYPE_PRIVATE2 = 0x2000,
   1593     eLEXTYPE_PRIVATE3 = 0x4000,
   1594     eLEXTYPE_PRIVATE4 = 0x8000,
   1595     eLEXTYPE_PRIVATE5 = 0x10000,
   1596     eLEXTYPE_PRIVATE6 = 0x20000,
   1597     eLEXTYPE_PRIVATE7 = 0x40000,
   1598     eLEXTYPE_PRIVATE8 = 0x80000,
   1599     eLEXTYPE_PRIVATE9 = 0x100000,
   1600     eLEXTYPE_PRIVATE10 = 0x200000,
   1601     eLEXTYPE_PRIVATE11 = 0x400000,
   1602     eLEXTYPE_PRIVATE12 = 0x800000,
   1603     eLEXTYPE_PRIVATE13 = 0x1000000,
   1604     eLEXTYPE_PRIVATE14 = 0x2000000,
   1605     eLEXTYPE_PRIVATE15 = 0x4000000,
   1606     eLEXTYPE_PRIVATE16 = 0x8000000,
   1607     eLEXTYPE_PRIVATE17 = 0x10000000,
   1608     eLEXTYPE_PRIVATE18 = 0x20000000,
   1609     eLEXTYPE_PRIVATE19 = 0x40000000,
   1610     eLEXTYPE_PRIVATE20 = 0x80000000u
   1611 } SPLEXICONTYPE;
   1612 typedef enum SPWORDTYPE {
   1613     eWORDTYPE_ADDED = 1,
   1614     eWORDTYPE_DELETED = 2
   1615 } SPWORDTYPE;
   1616 typedef enum SPPRONUNCIATIONFLAGS {
   1617     ePRONFLAG_USED = 1
   1618 } SPPRONUNCIATIONFLAGS;
   1619 typedef enum SPSHORTCUTTYPE {
   1620     SPSHT_NotOverriden = -1,
   1621     SPSHT_Unknown = 0,
   1622     SPSHT_EMAIL = 0x1000,
   1623     SPSHT_OTHER = 0x2000,
   1624     SPPS_RESERVED1 = 0x3000,
   1625     SPPS_RESERVED2 = 0x4000,
   1626     SPPS_RESERVED3 = 0x5000,
   1627     SPPS_RESERVED4 = 0xf000
   1628 } SPSHORTCUTTYPE;
   1629 typedef enum SPVALUETYPE {
   1630     SPDF_PROPERTY = 0x1,
   1631     SPDF_REPLACEMENT = 0x2,
   1632     SPDF_RULE = 0x4,
   1633     SPDF_DISPLAYTEXT = 0x8,
   1634     SPDF_LEXICALFORM = 0x10,
   1635     SPDF_PRONUNCIATION = 0x20,
   1636     SPDF_AUDIO = 0x40,
   1637     SPDF_ALTERNATES = 0x80,
   1638     SPDF_ALL = 0xff
   1639 } SPVALUETYPE;
   1640 typedef enum SPPHRASERNG {
   1641     SPPR_ALL_ELEMENTS = -1
   1642 } SPPHRASERNG;
   1643 typedef enum SPVACTIONS {
   1644     SPVA_Speak = 0,
   1645     SPVA_Silence = 1,
   1646     SPVA_Pronounce = 2,
   1647     SPVA_Bookmark = 3,
   1648     SPVA_SpellOut = 4,
   1649     SPVA_Section = 5,
   1650     SPVA_ParseUnknownTag = 6
   1651 } SPVACTIONS;
   1652 typedef enum SPRUNSTATE {
   1653     SPRS_DONE = 1,
   1654     SPRS_IS_SPEAKING = 2
   1655 } SPRUNSTATE;
   1656 typedef enum SPVLIMITS {
   1657     SPMIN_VOLUME = 0,
   1658     SPMAX_VOLUME = 100,
   1659     SPMIN_RATE = -10,
   1660     SPMAX_RATE = 10
   1661 } SPVLIMITS;
   1662 typedef enum SPVPRIORITY {
   1663     SPVPRI_NORMAL = 0,
   1664     SPVPRI_ALERT = 1,
   1665     SPVPRI_OVER = 2
   1666 } SPVPRIORITY;
   1667 EXTERN_C const GUID SPDFID_Text;
   1668 EXTERN_C const GUID SPDFID_WaveFormatEx;
   1669 
   1670 #define SP_LOW_CONFIDENCE (-1)
   1671 
   1672 #define SP_NORMAL_CONFIDENCE (0)
   1673 
   1674 #define SP_HIGH_CONFIDENCE (+1)
   1675 
   1676 #define DEFAULT_WEIGHT (1)
   1677 
   1678 #define SP_MAX_WORD_LENGTH (128)
   1679 
   1680 #define SP_MAX_PRON_LENGTH (384)
   1681 
   1682 #define SP_EMULATE_RESULT (0x40000000)
   1683 
   1684 
   1685 #ifdef __cplusplus
   1686 interface ISpNotifyCallback {
   1687   virtual HRESULT STDMETHODCALLTYPE NotifyCallback(WPARAM wParam, LPARAM lParam) = 0;
   1688 };
   1689 #else
   1690 typedef void *ISpNotifyCallback;
   1691 #endif
   1692 #if 0
   1693 typedef void *SPNOTIFYCALLBACK;
   1694 #else
   1695 typedef void __stdcall SPNOTIFYCALLBACK(WPARAM wParam, LPARAM lParam);
   1696 #endif
   1697 /*****************************************************************************
   1698  * ISpNotifySource interface
   1699  */
   1700 #ifndef __ISpNotifySource_INTERFACE_DEFINED__
   1701 #define __ISpNotifySource_INTERFACE_DEFINED__
   1702 
   1703 DEFINE_GUID(IID_ISpNotifySource, 0x5eff4aef, 0x8487, 0x11d2, 0x96,0x1c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
   1704 #if defined(__cplusplus) && !defined(CINTERFACE)
   1705 MIDL_INTERFACE("5eff4aef-8487-11d2-961c-00c04f8ee628")
   1706 ISpNotifySource : public IUnknown
   1707 {
   1708     virtual HRESULT STDMETHODCALLTYPE SetNotifySink(
   1709         ISpNotifySink *pNotifySink) = 0;
   1710 
   1711     virtual HRESULT STDMETHODCALLTYPE SetNotifyWindowMessage(
   1712         HWND hWnd,
   1713         UINT Msg,
   1714         WPARAM wParam,
   1715         LPARAM lParam) = 0;
   1716 
   1717     virtual HRESULT STDMETHODCALLTYPE SetNotifyCallbackFunction(
   1718         SPNOTIFYCALLBACK *pfnCallback,
   1719         WPARAM wParam,
   1720         LPARAM lParam) = 0;
   1721 
   1722     virtual HRESULT STDMETHODCALLTYPE SetNotifyCallbackInterface(
   1723         ISpNotifyCallback *pSpCallback,
   1724         WPARAM wParam,
   1725         LPARAM lParam) = 0;
   1726 
   1727     virtual HRESULT STDMETHODCALLTYPE SetNotifyWin32Event(
   1728         ) = 0;
   1729 
   1730     virtual HRESULT STDMETHODCALLTYPE WaitForNotifyEvent(
   1731         DWORD dwMilliseconds) = 0;
   1732 
   1733     virtual HANDLE STDMETHODCALLTYPE GetNotifyEventHandle(
   1734         ) = 0;
   1735 
   1736 };
   1737 #ifdef __CRT_UUID_DECL
   1738 __CRT_UUID_DECL(ISpNotifySource, 0x5eff4aef, 0x8487, 0x11d2, 0x96,0x1c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
   1739 #endif
   1740 #else
   1741 typedef struct ISpNotifySourceVtbl {
   1742     BEGIN_INTERFACE
   1743 
   1744     /*** IUnknown methods ***/
   1745     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1746         ISpNotifySource *This,
   1747         REFIID riid,
   1748         void **ppvObject);
   1749 
   1750     ULONG (STDMETHODCALLTYPE *AddRef)(
   1751         ISpNotifySource *This);
   1752 
   1753     ULONG (STDMETHODCALLTYPE *Release)(
   1754         ISpNotifySource *This);
   1755 
   1756     /*** ISpNotifySource methods ***/
   1757     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
   1758         ISpNotifySource *This,
   1759         ISpNotifySink *pNotifySink);
   1760 
   1761     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
   1762         ISpNotifySource *This,
   1763         HWND hWnd,
   1764         UINT Msg,
   1765         WPARAM wParam,
   1766         LPARAM lParam);
   1767 
   1768     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
   1769         ISpNotifySource *This,
   1770         SPNOTIFYCALLBACK *pfnCallback,
   1771         WPARAM wParam,
   1772         LPARAM lParam);
   1773 
   1774     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
   1775         ISpNotifySource *This,
   1776         ISpNotifyCallback *pSpCallback,
   1777         WPARAM wParam,
   1778         LPARAM lParam);
   1779 
   1780     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
   1781         ISpNotifySource *This);
   1782 
   1783     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
   1784         ISpNotifySource *This,
   1785         DWORD dwMilliseconds);
   1786 
   1787     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
   1788         ISpNotifySource *This);
   1789 
   1790     END_INTERFACE
   1791 } ISpNotifySourceVtbl;
   1792 
   1793 interface ISpNotifySource {
   1794     CONST_VTBL ISpNotifySourceVtbl* lpVtbl;
   1795 };
   1796 
   1797 #ifdef COBJMACROS
   1798 #ifndef WIDL_C_INLINE_WRAPPERS
   1799 /*** IUnknown methods ***/
   1800 #define ISpNotifySource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1801 #define ISpNotifySource_AddRef(This) (This)->lpVtbl->AddRef(This)
   1802 #define ISpNotifySource_Release(This) (This)->lpVtbl->Release(This)
   1803 /*** ISpNotifySource methods ***/
   1804 #define ISpNotifySource_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
   1805 #define ISpNotifySource_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
   1806 #define ISpNotifySource_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
   1807 #define ISpNotifySource_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
   1808 #define ISpNotifySource_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
   1809 #define ISpNotifySource_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
   1810 #define ISpNotifySource_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
   1811 #else
   1812 /*** IUnknown methods ***/
   1813 static inline HRESULT ISpNotifySource_QueryInterface(ISpNotifySource* This,REFIID riid,void **ppvObject) {
   1814     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1815 }
   1816 static inline ULONG ISpNotifySource_AddRef(ISpNotifySource* This) {
   1817     return This->lpVtbl->AddRef(This);
   1818 }
   1819 static inline ULONG ISpNotifySource_Release(ISpNotifySource* This) {
   1820     return This->lpVtbl->Release(This);
   1821 }
   1822 /*** ISpNotifySource methods ***/
   1823 static inline HRESULT ISpNotifySource_SetNotifySink(ISpNotifySource* This,ISpNotifySink *pNotifySink) {
   1824     return This->lpVtbl->SetNotifySink(This,pNotifySink);
   1825 }
   1826 static inline HRESULT ISpNotifySource_SetNotifyWindowMessage(ISpNotifySource* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
   1827     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
   1828 }
   1829 static inline HRESULT ISpNotifySource_SetNotifyCallbackFunction(ISpNotifySource* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
   1830     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
   1831 }
   1832 static inline HRESULT ISpNotifySource_SetNotifyCallbackInterface(ISpNotifySource* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
   1833     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
   1834 }
   1835 static inline HRESULT ISpNotifySource_SetNotifyWin32Event(ISpNotifySource* This) {
   1836     return This->lpVtbl->SetNotifyWin32Event(This);
   1837 }
   1838 static inline HRESULT ISpNotifySource_WaitForNotifyEvent(ISpNotifySource* This,DWORD dwMilliseconds) {
   1839     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
   1840 }
   1841 static inline HANDLE ISpNotifySource_GetNotifyEventHandle(ISpNotifySource* This) {
   1842     return This->lpVtbl->GetNotifyEventHandle(This);
   1843 }
   1844 #endif
   1845 #endif
   1846 
   1847 #endif
   1848 
   1849 
   1850 #endif  /* __ISpNotifySource_INTERFACE_DEFINED__ */
   1851 
   1852 /*****************************************************************************
   1853  * ISpNotifySink interface
   1854  */
   1855 #ifndef __ISpNotifySink_INTERFACE_DEFINED__
   1856 #define __ISpNotifySink_INTERFACE_DEFINED__
   1857 
   1858 DEFINE_GUID(IID_ISpNotifySink, 0x259684dc, 0x37c3, 0x11d2, 0x96,0x03, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
   1859 #if defined(__cplusplus) && !defined(CINTERFACE)
   1860 MIDL_INTERFACE("259684dc-37c3-11d2-9603-00c04f8ee628")
   1861 ISpNotifySink : public IUnknown
   1862 {
   1863     virtual HRESULT STDMETHODCALLTYPE Notify(
   1864         ) = 0;
   1865 
   1866 };
   1867 #ifdef __CRT_UUID_DECL
   1868 __CRT_UUID_DECL(ISpNotifySink, 0x259684dc, 0x37c3, 0x11d2, 0x96,0x03, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
   1869 #endif
   1870 #else
   1871 typedef struct ISpNotifySinkVtbl {
   1872     BEGIN_INTERFACE
   1873 
   1874     /*** IUnknown methods ***/
   1875     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1876         ISpNotifySink *This,
   1877         REFIID riid,
   1878         void **ppvObject);
   1879 
   1880     ULONG (STDMETHODCALLTYPE *AddRef)(
   1881         ISpNotifySink *This);
   1882 
   1883     ULONG (STDMETHODCALLTYPE *Release)(
   1884         ISpNotifySink *This);
   1885 
   1886     /*** ISpNotifySink methods ***/
   1887     HRESULT (STDMETHODCALLTYPE *Notify)(
   1888         ISpNotifySink *This);
   1889 
   1890     END_INTERFACE
   1891 } ISpNotifySinkVtbl;
   1892 
   1893 interface ISpNotifySink {
   1894     CONST_VTBL ISpNotifySinkVtbl* lpVtbl;
   1895 };
   1896 
   1897 #ifdef COBJMACROS
   1898 #ifndef WIDL_C_INLINE_WRAPPERS
   1899 /*** IUnknown methods ***/
   1900 #define ISpNotifySink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1901 #define ISpNotifySink_AddRef(This) (This)->lpVtbl->AddRef(This)
   1902 #define ISpNotifySink_Release(This) (This)->lpVtbl->Release(This)
   1903 /*** ISpNotifySink methods ***/
   1904 #define ISpNotifySink_Notify(This) (This)->lpVtbl->Notify(This)
   1905 #else
   1906 /*** IUnknown methods ***/
   1907 static inline HRESULT ISpNotifySink_QueryInterface(ISpNotifySink* This,REFIID riid,void **ppvObject) {
   1908     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1909 }
   1910 static inline ULONG ISpNotifySink_AddRef(ISpNotifySink* This) {
   1911     return This->lpVtbl->AddRef(This);
   1912 }
   1913 static inline ULONG ISpNotifySink_Release(ISpNotifySink* This) {
   1914     return This->lpVtbl->Release(This);
   1915 }
   1916 /*** ISpNotifySink methods ***/
   1917 static inline HRESULT ISpNotifySink_Notify(ISpNotifySink* This) {
   1918     return This->lpVtbl->Notify(This);
   1919 }
   1920 #endif
   1921 #endif
   1922 
   1923 #endif
   1924 
   1925 
   1926 #endif  /* __ISpNotifySink_INTERFACE_DEFINED__ */
   1927 
   1928 /*****************************************************************************
   1929  * ISpNotifyTranslator interface
   1930  */
   1931 #ifndef __ISpNotifyTranslator_INTERFACE_DEFINED__
   1932 #define __ISpNotifyTranslator_INTERFACE_DEFINED__
   1933 
   1934 DEFINE_GUID(IID_ISpNotifyTranslator, 0xaca16614, 0x5d3d, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
   1935 #if defined(__cplusplus) && !defined(CINTERFACE)
   1936 MIDL_INTERFACE("aca16614-5d3d-11d2-960e-00c04f8ee628")
   1937 ISpNotifyTranslator : public ISpNotifySink
   1938 {
   1939     virtual HRESULT STDMETHODCALLTYPE InitWindowMessage(
   1940         HWND hWnd,
   1941         UINT Msg,
   1942         WPARAM wParam,
   1943         LPARAM lParam) = 0;
   1944 
   1945     virtual HRESULT STDMETHODCALLTYPE InitCallback(
   1946         SPNOTIFYCALLBACK *pfnCallback,
   1947         WPARAM wParam,
   1948         LPARAM lParam) = 0;
   1949 
   1950     virtual HRESULT STDMETHODCALLTYPE InitSpNotifyCallback(
   1951         ISpNotifyCallback *pSpCallback,
   1952         WPARAM wParam,
   1953         LPARAM lParam) = 0;
   1954 
   1955     virtual HRESULT STDMETHODCALLTYPE InitWin32Event(
   1956         HANDLE hEvent,
   1957         WINBOOL fCloseHandleOnRelease) = 0;
   1958 
   1959     virtual HRESULT STDMETHODCALLTYPE Wait(
   1960         DWORD dwMilliseconds) = 0;
   1961 
   1962     virtual HANDLE STDMETHODCALLTYPE GetEventHandle(
   1963         ) = 0;
   1964 
   1965 };
   1966 #ifdef __CRT_UUID_DECL
   1967 __CRT_UUID_DECL(ISpNotifyTranslator, 0xaca16614, 0x5d3d, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
   1968 #endif
   1969 #else
   1970 typedef struct ISpNotifyTranslatorVtbl {
   1971     BEGIN_INTERFACE
   1972 
   1973     /*** IUnknown methods ***/
   1974     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1975         ISpNotifyTranslator *This,
   1976         REFIID riid,
   1977         void **ppvObject);
   1978 
   1979     ULONG (STDMETHODCALLTYPE *AddRef)(
   1980         ISpNotifyTranslator *This);
   1981 
   1982     ULONG (STDMETHODCALLTYPE *Release)(
   1983         ISpNotifyTranslator *This);
   1984 
   1985     /*** ISpNotifySink methods ***/
   1986     HRESULT (STDMETHODCALLTYPE *Notify)(
   1987         ISpNotifyTranslator *This);
   1988 
   1989     /*** ISpNotifyTranslator methods ***/
   1990     HRESULT (STDMETHODCALLTYPE *InitWindowMessage)(
   1991         ISpNotifyTranslator *This,
   1992         HWND hWnd,
   1993         UINT Msg,
   1994         WPARAM wParam,
   1995         LPARAM lParam);
   1996 
   1997     HRESULT (STDMETHODCALLTYPE *InitCallback)(
   1998         ISpNotifyTranslator *This,
   1999         SPNOTIFYCALLBACK *pfnCallback,
   2000         WPARAM wParam,
   2001         LPARAM lParam);
   2002 
   2003     HRESULT (STDMETHODCALLTYPE *InitSpNotifyCallback)(
   2004         ISpNotifyTranslator *This,
   2005         ISpNotifyCallback *pSpCallback,
   2006         WPARAM wParam,
   2007         LPARAM lParam);
   2008 
   2009     HRESULT (STDMETHODCALLTYPE *InitWin32Event)(
   2010         ISpNotifyTranslator *This,
   2011         HANDLE hEvent,
   2012         WINBOOL fCloseHandleOnRelease);
   2013 
   2014     HRESULT (STDMETHODCALLTYPE *Wait)(
   2015         ISpNotifyTranslator *This,
   2016         DWORD dwMilliseconds);
   2017 
   2018     HANDLE (STDMETHODCALLTYPE *GetEventHandle)(
   2019         ISpNotifyTranslator *This);
   2020 
   2021     END_INTERFACE
   2022 } ISpNotifyTranslatorVtbl;
   2023 
   2024 interface ISpNotifyTranslator {
   2025     CONST_VTBL ISpNotifyTranslatorVtbl* lpVtbl;
   2026 };
   2027 
   2028 #ifdef COBJMACROS
   2029 #ifndef WIDL_C_INLINE_WRAPPERS
   2030 /*** IUnknown methods ***/
   2031 #define ISpNotifyTranslator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2032 #define ISpNotifyTranslator_AddRef(This) (This)->lpVtbl->AddRef(This)
   2033 #define ISpNotifyTranslator_Release(This) (This)->lpVtbl->Release(This)
   2034 /*** ISpNotifySink methods ***/
   2035 #define ISpNotifyTranslator_Notify(This) (This)->lpVtbl->Notify(This)
   2036 /*** ISpNotifyTranslator methods ***/
   2037 #define ISpNotifyTranslator_InitWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->InitWindowMessage(This,hWnd,Msg,wParam,lParam)
   2038 #define ISpNotifyTranslator_InitCallback(This,pfnCallback,wParam,lParam) (This)->lpVtbl->InitCallback(This,pfnCallback,wParam,lParam)
   2039 #define ISpNotifyTranslator_InitSpNotifyCallback(This,pSpCallback,wParam,lParam) (This)->lpVtbl->InitSpNotifyCallback(This,pSpCallback,wParam,lParam)
   2040 #define ISpNotifyTranslator_InitWin32Event(This,hEvent,fCloseHandleOnRelease) (This)->lpVtbl->InitWin32Event(This,hEvent,fCloseHandleOnRelease)
   2041 #define ISpNotifyTranslator_Wait(This,dwMilliseconds) (This)->lpVtbl->Wait(This,dwMilliseconds)
   2042 #define ISpNotifyTranslator_GetEventHandle(This) (This)->lpVtbl->GetEventHandle(This)
   2043 #else
   2044 /*** IUnknown methods ***/
   2045 static inline HRESULT ISpNotifyTranslator_QueryInterface(ISpNotifyTranslator* This,REFIID riid,void **ppvObject) {
   2046     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2047 }
   2048 static inline ULONG ISpNotifyTranslator_AddRef(ISpNotifyTranslator* This) {
   2049     return This->lpVtbl->AddRef(This);
   2050 }
   2051 static inline ULONG ISpNotifyTranslator_Release(ISpNotifyTranslator* This) {
   2052     return This->lpVtbl->Release(This);
   2053 }
   2054 /*** ISpNotifySink methods ***/
   2055 static inline HRESULT ISpNotifyTranslator_Notify(ISpNotifyTranslator* This) {
   2056     return This->lpVtbl->Notify(This);
   2057 }
   2058 /*** ISpNotifyTranslator methods ***/
   2059 static inline HRESULT ISpNotifyTranslator_InitWindowMessage(ISpNotifyTranslator* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
   2060     return This->lpVtbl->InitWindowMessage(This,hWnd,Msg,wParam,lParam);
   2061 }
   2062 static inline HRESULT ISpNotifyTranslator_InitCallback(ISpNotifyTranslator* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
   2063     return This->lpVtbl->InitCallback(This,pfnCallback,wParam,lParam);
   2064 }
   2065 static inline HRESULT ISpNotifyTranslator_InitSpNotifyCallback(ISpNotifyTranslator* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
   2066     return This->lpVtbl->InitSpNotifyCallback(This,pSpCallback,wParam,lParam);
   2067 }
   2068 static inline HRESULT ISpNotifyTranslator_InitWin32Event(ISpNotifyTranslator* This,HANDLE hEvent,WINBOOL fCloseHandleOnRelease) {
   2069     return This->lpVtbl->InitWin32Event(This,hEvent,fCloseHandleOnRelease);
   2070 }
   2071 static inline HRESULT ISpNotifyTranslator_Wait(ISpNotifyTranslator* This,DWORD dwMilliseconds) {
   2072     return This->lpVtbl->Wait(This,dwMilliseconds);
   2073 }
   2074 static inline HANDLE ISpNotifyTranslator_GetEventHandle(ISpNotifyTranslator* This) {
   2075     return This->lpVtbl->GetEventHandle(This);
   2076 }
   2077 #endif
   2078 #endif
   2079 
   2080 #endif
   2081 
   2082 
   2083 #endif  /* __ISpNotifyTranslator_INTERFACE_DEFINED__ */
   2084 
   2085 /*****************************************************************************
   2086  * ISpDataKey interface
   2087  */
   2088 #ifndef __ISpDataKey_INTERFACE_DEFINED__
   2089 #define __ISpDataKey_INTERFACE_DEFINED__
   2090 
   2091 DEFINE_GUID(IID_ISpDataKey, 0x14056581, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
   2092 #if defined(__cplusplus) && !defined(CINTERFACE)
   2093 MIDL_INTERFACE("14056581-e16c-11d2-bb90-00c04f8ee6c0")
   2094 ISpDataKey : public IUnknown
   2095 {
   2096     virtual HRESULT STDMETHODCALLTYPE SetData(
   2097         LPCWSTR pszValueName,
   2098         ULONG cbData,
   2099         const BYTE *pData) = 0;
   2100 
   2101     virtual HRESULT STDMETHODCALLTYPE GetData(
   2102         LPCWSTR pszValueName,
   2103         ULONG *pcbData,
   2104         BYTE *pData) = 0;
   2105 
   2106     virtual HRESULT STDMETHODCALLTYPE SetStringValue(
   2107         LPCWSTR pszValueName,
   2108         LPCWSTR pszValue) = 0;
   2109 
   2110     virtual HRESULT STDMETHODCALLTYPE GetStringValue(
   2111         LPCWSTR pszValueName,
   2112         LPWSTR *ppszValue) = 0;
   2113 
   2114     virtual HRESULT STDMETHODCALLTYPE SetDWORD(
   2115         LPCWSTR pszValueName,
   2116         DWORD dwValue) = 0;
   2117 
   2118     virtual HRESULT STDMETHODCALLTYPE GetDWORD(
   2119         LPCWSTR pszValueName,
   2120         DWORD *pdwValue) = 0;
   2121 
   2122     virtual HRESULT STDMETHODCALLTYPE OpenKey(
   2123         LPCWSTR pszSubKeyName,
   2124         ISpDataKey **ppSubKey) = 0;
   2125 
   2126     virtual HRESULT STDMETHODCALLTYPE CreateKey(
   2127         LPCWSTR pszSubKey,
   2128         ISpDataKey **ppSubKey) = 0;
   2129 
   2130     virtual HRESULT STDMETHODCALLTYPE DeleteKey(
   2131         LPCWSTR pszSubKey) = 0;
   2132 
   2133     virtual HRESULT STDMETHODCALLTYPE DeleteValue(
   2134         LPCWSTR pszValueName) = 0;
   2135 
   2136     virtual HRESULT STDMETHODCALLTYPE EnumKeys(
   2137         ULONG Index,
   2138         LPWSTR *ppszSubKeyName) = 0;
   2139 
   2140     virtual HRESULT STDMETHODCALLTYPE EnumValues(
   2141         ULONG Index,
   2142         LPWSTR *ppszValueName) = 0;
   2143 
   2144 };
   2145 #ifdef __CRT_UUID_DECL
   2146 __CRT_UUID_DECL(ISpDataKey, 0x14056581, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
   2147 #endif
   2148 #else
   2149 typedef struct ISpDataKeyVtbl {
   2150     BEGIN_INTERFACE
   2151 
   2152     /*** IUnknown methods ***/
   2153     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2154         ISpDataKey *This,
   2155         REFIID riid,
   2156         void **ppvObject);
   2157 
   2158     ULONG (STDMETHODCALLTYPE *AddRef)(
   2159         ISpDataKey *This);
   2160 
   2161     ULONG (STDMETHODCALLTYPE *Release)(
   2162         ISpDataKey *This);
   2163 
   2164     /*** ISpDataKey methods ***/
   2165     HRESULT (STDMETHODCALLTYPE *SetData)(
   2166         ISpDataKey *This,
   2167         LPCWSTR pszValueName,
   2168         ULONG cbData,
   2169         const BYTE *pData);
   2170 
   2171     HRESULT (STDMETHODCALLTYPE *GetData)(
   2172         ISpDataKey *This,
   2173         LPCWSTR pszValueName,
   2174         ULONG *pcbData,
   2175         BYTE *pData);
   2176 
   2177     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
   2178         ISpDataKey *This,
   2179         LPCWSTR pszValueName,
   2180         LPCWSTR pszValue);
   2181 
   2182     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
   2183         ISpDataKey *This,
   2184         LPCWSTR pszValueName,
   2185         LPWSTR *ppszValue);
   2186 
   2187     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
   2188         ISpDataKey *This,
   2189         LPCWSTR pszValueName,
   2190         DWORD dwValue);
   2191 
   2192     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
   2193         ISpDataKey *This,
   2194         LPCWSTR pszValueName,
   2195         DWORD *pdwValue);
   2196 
   2197     HRESULT (STDMETHODCALLTYPE *OpenKey)(
   2198         ISpDataKey *This,
   2199         LPCWSTR pszSubKeyName,
   2200         ISpDataKey **ppSubKey);
   2201 
   2202     HRESULT (STDMETHODCALLTYPE *CreateKey)(
   2203         ISpDataKey *This,
   2204         LPCWSTR pszSubKey,
   2205         ISpDataKey **ppSubKey);
   2206 
   2207     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
   2208         ISpDataKey *This,
   2209         LPCWSTR pszSubKey);
   2210 
   2211     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
   2212         ISpDataKey *This,
   2213         LPCWSTR pszValueName);
   2214 
   2215     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
   2216         ISpDataKey *This,
   2217         ULONG Index,
   2218         LPWSTR *ppszSubKeyName);
   2219 
   2220     HRESULT (STDMETHODCALLTYPE *EnumValues)(
   2221         ISpDataKey *This,
   2222         ULONG Index,
   2223         LPWSTR *ppszValueName);
   2224 
   2225     END_INTERFACE
   2226 } ISpDataKeyVtbl;
   2227 
   2228 interface ISpDataKey {
   2229     CONST_VTBL ISpDataKeyVtbl* lpVtbl;
   2230 };
   2231 
   2232 #ifdef COBJMACROS
   2233 #ifndef WIDL_C_INLINE_WRAPPERS
   2234 /*** IUnknown methods ***/
   2235 #define ISpDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2236 #define ISpDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
   2237 #define ISpDataKey_Release(This) (This)->lpVtbl->Release(This)
   2238 /*** ISpDataKey methods ***/
   2239 #define ISpDataKey_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
   2240 #define ISpDataKey_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
   2241 #define ISpDataKey_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
   2242 #define ISpDataKey_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
   2243 #define ISpDataKey_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
   2244 #define ISpDataKey_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
   2245 #define ISpDataKey_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
   2246 #define ISpDataKey_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
   2247 #define ISpDataKey_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
   2248 #define ISpDataKey_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
   2249 #define ISpDataKey_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
   2250 #define ISpDataKey_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
   2251 #else
   2252 /*** IUnknown methods ***/
   2253 static inline HRESULT ISpDataKey_QueryInterface(ISpDataKey* This,REFIID riid,void **ppvObject) {
   2254     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2255 }
   2256 static inline ULONG ISpDataKey_AddRef(ISpDataKey* This) {
   2257     return This->lpVtbl->AddRef(This);
   2258 }
   2259 static inline ULONG ISpDataKey_Release(ISpDataKey* This) {
   2260     return This->lpVtbl->Release(This);
   2261 }
   2262 /*** ISpDataKey methods ***/
   2263 static inline HRESULT ISpDataKey_SetData(ISpDataKey* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
   2264     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
   2265 }
   2266 static inline HRESULT ISpDataKey_GetData(ISpDataKey* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
   2267     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
   2268 }
   2269 static inline HRESULT ISpDataKey_SetStringValue(ISpDataKey* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
   2270     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
   2271 }
   2272 static inline HRESULT ISpDataKey_GetStringValue(ISpDataKey* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
   2273     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
   2274 }
   2275 static inline HRESULT ISpDataKey_SetDWORD(ISpDataKey* This,LPCWSTR pszValueName,DWORD dwValue) {
   2276     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
   2277 }
   2278 static inline HRESULT ISpDataKey_GetDWORD(ISpDataKey* This,LPCWSTR pszValueName,DWORD *pdwValue) {
   2279     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
   2280 }
   2281 static inline HRESULT ISpDataKey_OpenKey(ISpDataKey* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
   2282     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
   2283 }
   2284 static inline HRESULT ISpDataKey_CreateKey(ISpDataKey* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
   2285     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
   2286 }
   2287 static inline HRESULT ISpDataKey_DeleteKey(ISpDataKey* This,LPCWSTR pszSubKey) {
   2288     return This->lpVtbl->DeleteKey(This,pszSubKey);
   2289 }
   2290 static inline HRESULT ISpDataKey_DeleteValue(ISpDataKey* This,LPCWSTR pszValueName) {
   2291     return This->lpVtbl->DeleteValue(This,pszValueName);
   2292 }
   2293 static inline HRESULT ISpDataKey_EnumKeys(ISpDataKey* This,ULONG Index,LPWSTR *ppszSubKeyName) {
   2294     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
   2295 }
   2296 static inline HRESULT ISpDataKey_EnumValues(ISpDataKey* This,ULONG Index,LPWSTR *ppszValueName) {
   2297     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
   2298 }
   2299 #endif
   2300 #endif
   2301 
   2302 #endif
   2303 
   2304 
   2305 #endif  /* __ISpDataKey_INTERFACE_DEFINED__ */
   2306 
   2307 /*****************************************************************************
   2308  * ISpObjectWithToken interface
   2309  */
   2310 #ifndef __ISpObjectWithToken_INTERFACE_DEFINED__
   2311 #define __ISpObjectWithToken_INTERFACE_DEFINED__
   2312 
   2313 DEFINE_GUID(IID_ISpObjectWithToken, 0x5b559f40, 0xe952, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
   2314 #if defined(__cplusplus) && !defined(CINTERFACE)
   2315 MIDL_INTERFACE("5b559f40-e952-11d2-bb91-00c04f8ee6c0")
   2316 ISpObjectWithToken : public IUnknown
   2317 {
   2318     virtual HRESULT STDMETHODCALLTYPE SetObjectToken(
   2319         ISpObjectToken *pToken) = 0;
   2320 
   2321     virtual HRESULT STDMETHODCALLTYPE GetObjectToken(
   2322         ISpObjectToken **ppToken) = 0;
   2323 
   2324 };
   2325 #ifdef __CRT_UUID_DECL
   2326 __CRT_UUID_DECL(ISpObjectWithToken, 0x5b559f40, 0xe952, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
   2327 #endif
   2328 #else
   2329 typedef struct ISpObjectWithTokenVtbl {
   2330     BEGIN_INTERFACE
   2331 
   2332     /*** IUnknown methods ***/
   2333     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2334         ISpObjectWithToken *This,
   2335         REFIID riid,
   2336         void **ppvObject);
   2337 
   2338     ULONG (STDMETHODCALLTYPE *AddRef)(
   2339         ISpObjectWithToken *This);
   2340 
   2341     ULONG (STDMETHODCALLTYPE *Release)(
   2342         ISpObjectWithToken *This);
   2343 
   2344     /*** ISpObjectWithToken methods ***/
   2345     HRESULT (STDMETHODCALLTYPE *SetObjectToken)(
   2346         ISpObjectWithToken *This,
   2347         ISpObjectToken *pToken);
   2348 
   2349     HRESULT (STDMETHODCALLTYPE *GetObjectToken)(
   2350         ISpObjectWithToken *This,
   2351         ISpObjectToken **ppToken);
   2352 
   2353     END_INTERFACE
   2354 } ISpObjectWithTokenVtbl;
   2355 
   2356 interface ISpObjectWithToken {
   2357     CONST_VTBL ISpObjectWithTokenVtbl* lpVtbl;
   2358 };
   2359 
   2360 #ifdef COBJMACROS
   2361 #ifndef WIDL_C_INLINE_WRAPPERS
   2362 /*** IUnknown methods ***/
   2363 #define ISpObjectWithToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2364 #define ISpObjectWithToken_AddRef(This) (This)->lpVtbl->AddRef(This)
   2365 #define ISpObjectWithToken_Release(This) (This)->lpVtbl->Release(This)
   2366 /*** ISpObjectWithToken methods ***/
   2367 #define ISpObjectWithToken_SetObjectToken(This,pToken) (This)->lpVtbl->SetObjectToken(This,pToken)
   2368 #define ISpObjectWithToken_GetObjectToken(This,ppToken) (This)->lpVtbl->GetObjectToken(This,ppToken)
   2369 #else
   2370 /*** IUnknown methods ***/
   2371 static inline HRESULT ISpObjectWithToken_QueryInterface(ISpObjectWithToken* This,REFIID riid,void **ppvObject) {
   2372     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2373 }
   2374 static inline ULONG ISpObjectWithToken_AddRef(ISpObjectWithToken* This) {
   2375     return This->lpVtbl->AddRef(This);
   2376 }
   2377 static inline ULONG ISpObjectWithToken_Release(ISpObjectWithToken* This) {
   2378     return This->lpVtbl->Release(This);
   2379 }
   2380 /*** ISpObjectWithToken methods ***/
   2381 static inline HRESULT ISpObjectWithToken_SetObjectToken(ISpObjectWithToken* This,ISpObjectToken *pToken) {
   2382     return This->lpVtbl->SetObjectToken(This,pToken);
   2383 }
   2384 static inline HRESULT ISpObjectWithToken_GetObjectToken(ISpObjectWithToken* This,ISpObjectToken **ppToken) {
   2385     return This->lpVtbl->GetObjectToken(This,ppToken);
   2386 }
   2387 #endif
   2388 #endif
   2389 
   2390 #endif
   2391 
   2392 
   2393 #endif  /* __ISpObjectWithToken_INTERFACE_DEFINED__ */
   2394 
   2395 /*****************************************************************************
   2396  * IEnumSpObjectTokens interface
   2397  */
   2398 #ifndef __IEnumSpObjectTokens_INTERFACE_DEFINED__
   2399 #define __IEnumSpObjectTokens_INTERFACE_DEFINED__
   2400 
   2401 DEFINE_GUID(IID_IEnumSpObjectTokens, 0x06b64f9e, 0x7fda, 0x11d2, 0xb4,0xf2, 0x00,0xc0,0x4f,0x79,0x73,0x96);
   2402 #if defined(__cplusplus) && !defined(CINTERFACE)
   2403 MIDL_INTERFACE("06b64f9e-7fda-11d2-b4f2-00c04f797396")
   2404 IEnumSpObjectTokens : public IUnknown
   2405 {
   2406     virtual HRESULT STDMETHODCALLTYPE Next(
   2407         ULONG celt,
   2408         ISpObjectToken **pelt,
   2409         ULONG *pceltFetched) = 0;
   2410 
   2411     virtual HRESULT STDMETHODCALLTYPE Skip(
   2412         ULONG celt) = 0;
   2413 
   2414     virtual HRESULT STDMETHODCALLTYPE Reset(
   2415         ) = 0;
   2416 
   2417     virtual HRESULT STDMETHODCALLTYPE Clone(
   2418         IEnumSpObjectTokens **ppEnum) = 0;
   2419 
   2420     virtual HRESULT STDMETHODCALLTYPE Item(
   2421         ULONG Index,
   2422         ISpObjectToken **ppToken) = 0;
   2423 
   2424     virtual HRESULT STDMETHODCALLTYPE GetCount(
   2425         ULONG *pCount) = 0;
   2426 
   2427 };
   2428 #ifdef __CRT_UUID_DECL
   2429 __CRT_UUID_DECL(IEnumSpObjectTokens, 0x06b64f9e, 0x7fda, 0x11d2, 0xb4,0xf2, 0x00,0xc0,0x4f,0x79,0x73,0x96)
   2430 #endif
   2431 #else
   2432 typedef struct IEnumSpObjectTokensVtbl {
   2433     BEGIN_INTERFACE
   2434 
   2435     /*** IUnknown methods ***/
   2436     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2437         IEnumSpObjectTokens *This,
   2438         REFIID riid,
   2439         void **ppvObject);
   2440 
   2441     ULONG (STDMETHODCALLTYPE *AddRef)(
   2442         IEnumSpObjectTokens *This);
   2443 
   2444     ULONG (STDMETHODCALLTYPE *Release)(
   2445         IEnumSpObjectTokens *This);
   2446 
   2447     /*** IEnumSpObjectTokens methods ***/
   2448     HRESULT (STDMETHODCALLTYPE *Next)(
   2449         IEnumSpObjectTokens *This,
   2450         ULONG celt,
   2451         ISpObjectToken **pelt,
   2452         ULONG *pceltFetched);
   2453 
   2454     HRESULT (STDMETHODCALLTYPE *Skip)(
   2455         IEnumSpObjectTokens *This,
   2456         ULONG celt);
   2457 
   2458     HRESULT (STDMETHODCALLTYPE *Reset)(
   2459         IEnumSpObjectTokens *This);
   2460 
   2461     HRESULT (STDMETHODCALLTYPE *Clone)(
   2462         IEnumSpObjectTokens *This,
   2463         IEnumSpObjectTokens **ppEnum);
   2464 
   2465     HRESULT (STDMETHODCALLTYPE *Item)(
   2466         IEnumSpObjectTokens *This,
   2467         ULONG Index,
   2468         ISpObjectToken **ppToken);
   2469 
   2470     HRESULT (STDMETHODCALLTYPE *GetCount)(
   2471         IEnumSpObjectTokens *This,
   2472         ULONG *pCount);
   2473 
   2474     END_INTERFACE
   2475 } IEnumSpObjectTokensVtbl;
   2476 
   2477 interface IEnumSpObjectTokens {
   2478     CONST_VTBL IEnumSpObjectTokensVtbl* lpVtbl;
   2479 };
   2480 
   2481 #ifdef COBJMACROS
   2482 #ifndef WIDL_C_INLINE_WRAPPERS
   2483 /*** IUnknown methods ***/
   2484 #define IEnumSpObjectTokens_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2485 #define IEnumSpObjectTokens_AddRef(This) (This)->lpVtbl->AddRef(This)
   2486 #define IEnumSpObjectTokens_Release(This) (This)->lpVtbl->Release(This)
   2487 /*** IEnumSpObjectTokens methods ***/
   2488 #define IEnumSpObjectTokens_Next(This,celt,pelt,pceltFetched) (This)->lpVtbl->Next(This,celt,pelt,pceltFetched)
   2489 #define IEnumSpObjectTokens_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   2490 #define IEnumSpObjectTokens_Reset(This) (This)->lpVtbl->Reset(This)
   2491 #define IEnumSpObjectTokens_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
   2492 #define IEnumSpObjectTokens_Item(This,Index,ppToken) (This)->lpVtbl->Item(This,Index,ppToken)
   2493 #define IEnumSpObjectTokens_GetCount(This,pCount) (This)->lpVtbl->GetCount(This,pCount)
   2494 #else
   2495 /*** IUnknown methods ***/
   2496 static inline HRESULT IEnumSpObjectTokens_QueryInterface(IEnumSpObjectTokens* This,REFIID riid,void **ppvObject) {
   2497     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2498 }
   2499 static inline ULONG IEnumSpObjectTokens_AddRef(IEnumSpObjectTokens* This) {
   2500     return This->lpVtbl->AddRef(This);
   2501 }
   2502 static inline ULONG IEnumSpObjectTokens_Release(IEnumSpObjectTokens* This) {
   2503     return This->lpVtbl->Release(This);
   2504 }
   2505 /*** IEnumSpObjectTokens methods ***/
   2506 static inline HRESULT IEnumSpObjectTokens_Next(IEnumSpObjectTokens* This,ULONG celt,ISpObjectToken **pelt,ULONG *pceltFetched) {
   2507     return This->lpVtbl->Next(This,celt,pelt,pceltFetched);
   2508 }
   2509 static inline HRESULT IEnumSpObjectTokens_Skip(IEnumSpObjectTokens* This,ULONG celt) {
   2510     return This->lpVtbl->Skip(This,celt);
   2511 }
   2512 static inline HRESULT IEnumSpObjectTokens_Reset(IEnumSpObjectTokens* This) {
   2513     return This->lpVtbl->Reset(This);
   2514 }
   2515 static inline HRESULT IEnumSpObjectTokens_Clone(IEnumSpObjectTokens* This,IEnumSpObjectTokens **ppEnum) {
   2516     return This->lpVtbl->Clone(This,ppEnum);
   2517 }
   2518 static inline HRESULT IEnumSpObjectTokens_Item(IEnumSpObjectTokens* This,ULONG Index,ISpObjectToken **ppToken) {
   2519     return This->lpVtbl->Item(This,Index,ppToken);
   2520 }
   2521 static inline HRESULT IEnumSpObjectTokens_GetCount(IEnumSpObjectTokens* This,ULONG *pCount) {
   2522     return This->lpVtbl->GetCount(This,pCount);
   2523 }
   2524 #endif
   2525 #endif
   2526 
   2527 #endif
   2528 
   2529 
   2530 #endif  /* __IEnumSpObjectTokens_INTERFACE_DEFINED__ */
   2531 
   2532 /*****************************************************************************
   2533  * ISpRegDataKey interface
   2534  */
   2535 #ifndef __ISpRegDataKey_INTERFACE_DEFINED__
   2536 #define __ISpRegDataKey_INTERFACE_DEFINED__
   2537 
   2538 DEFINE_GUID(IID_ISpRegDataKey, 0x92a66e2b, 0xc830, 0x4149, 0x83,0xdf, 0x6f,0xc2,0xba,0x1e,0x7a,0x5b);
   2539 #if defined(__cplusplus) && !defined(CINTERFACE)
   2540 MIDL_INTERFACE("92a66e2b-c830-4149-83df-6fc2ba1e7a5b")
   2541 ISpRegDataKey : public ISpDataKey
   2542 {
   2543     virtual HRESULT STDMETHODCALLTYPE SetKey(
   2544         HKEY hkey,
   2545         WINBOOL fReadOnly) = 0;
   2546 
   2547 };
   2548 #ifdef __CRT_UUID_DECL
   2549 __CRT_UUID_DECL(ISpRegDataKey, 0x92a66e2b, 0xc830, 0x4149, 0x83,0xdf, 0x6f,0xc2,0xba,0x1e,0x7a,0x5b)
   2550 #endif
   2551 #else
   2552 typedef struct ISpRegDataKeyVtbl {
   2553     BEGIN_INTERFACE
   2554 
   2555     /*** IUnknown methods ***/
   2556     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2557         ISpRegDataKey *This,
   2558         REFIID riid,
   2559         void **ppvObject);
   2560 
   2561     ULONG (STDMETHODCALLTYPE *AddRef)(
   2562         ISpRegDataKey *This);
   2563 
   2564     ULONG (STDMETHODCALLTYPE *Release)(
   2565         ISpRegDataKey *This);
   2566 
   2567     /*** ISpDataKey methods ***/
   2568     HRESULT (STDMETHODCALLTYPE *SetData)(
   2569         ISpRegDataKey *This,
   2570         LPCWSTR pszValueName,
   2571         ULONG cbData,
   2572         const BYTE *pData);
   2573 
   2574     HRESULT (STDMETHODCALLTYPE *GetData)(
   2575         ISpRegDataKey *This,
   2576         LPCWSTR pszValueName,
   2577         ULONG *pcbData,
   2578         BYTE *pData);
   2579 
   2580     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
   2581         ISpRegDataKey *This,
   2582         LPCWSTR pszValueName,
   2583         LPCWSTR pszValue);
   2584 
   2585     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
   2586         ISpRegDataKey *This,
   2587         LPCWSTR pszValueName,
   2588         LPWSTR *ppszValue);
   2589 
   2590     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
   2591         ISpRegDataKey *This,
   2592         LPCWSTR pszValueName,
   2593         DWORD dwValue);
   2594 
   2595     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
   2596         ISpRegDataKey *This,
   2597         LPCWSTR pszValueName,
   2598         DWORD *pdwValue);
   2599 
   2600     HRESULT (STDMETHODCALLTYPE *OpenKey)(
   2601         ISpRegDataKey *This,
   2602         LPCWSTR pszSubKeyName,
   2603         ISpDataKey **ppSubKey);
   2604 
   2605     HRESULT (STDMETHODCALLTYPE *CreateKey)(
   2606         ISpRegDataKey *This,
   2607         LPCWSTR pszSubKey,
   2608         ISpDataKey **ppSubKey);
   2609 
   2610     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
   2611         ISpRegDataKey *This,
   2612         LPCWSTR pszSubKey);
   2613 
   2614     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
   2615         ISpRegDataKey *This,
   2616         LPCWSTR pszValueName);
   2617 
   2618     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
   2619         ISpRegDataKey *This,
   2620         ULONG Index,
   2621         LPWSTR *ppszSubKeyName);
   2622 
   2623     HRESULT (STDMETHODCALLTYPE *EnumValues)(
   2624         ISpRegDataKey *This,
   2625         ULONG Index,
   2626         LPWSTR *ppszValueName);
   2627 
   2628     /*** ISpRegDataKey methods ***/
   2629     HRESULT (STDMETHODCALLTYPE *SetKey)(
   2630         ISpRegDataKey *This,
   2631         HKEY hkey,
   2632         WINBOOL fReadOnly);
   2633 
   2634     END_INTERFACE
   2635 } ISpRegDataKeyVtbl;
   2636 
   2637 interface ISpRegDataKey {
   2638     CONST_VTBL ISpRegDataKeyVtbl* lpVtbl;
   2639 };
   2640 
   2641 #ifdef COBJMACROS
   2642 #ifndef WIDL_C_INLINE_WRAPPERS
   2643 /*** IUnknown methods ***/
   2644 #define ISpRegDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2645 #define ISpRegDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
   2646 #define ISpRegDataKey_Release(This) (This)->lpVtbl->Release(This)
   2647 /*** ISpDataKey methods ***/
   2648 #define ISpRegDataKey_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
   2649 #define ISpRegDataKey_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
   2650 #define ISpRegDataKey_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
   2651 #define ISpRegDataKey_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
   2652 #define ISpRegDataKey_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
   2653 #define ISpRegDataKey_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
   2654 #define ISpRegDataKey_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
   2655 #define ISpRegDataKey_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
   2656 #define ISpRegDataKey_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
   2657 #define ISpRegDataKey_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
   2658 #define ISpRegDataKey_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
   2659 #define ISpRegDataKey_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
   2660 /*** ISpRegDataKey methods ***/
   2661 #define ISpRegDataKey_SetKey(This,hkey,fReadOnly) (This)->lpVtbl->SetKey(This,hkey,fReadOnly)
   2662 #else
   2663 /*** IUnknown methods ***/
   2664 static inline HRESULT ISpRegDataKey_QueryInterface(ISpRegDataKey* This,REFIID riid,void **ppvObject) {
   2665     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2666 }
   2667 static inline ULONG ISpRegDataKey_AddRef(ISpRegDataKey* This) {
   2668     return This->lpVtbl->AddRef(This);
   2669 }
   2670 static inline ULONG ISpRegDataKey_Release(ISpRegDataKey* This) {
   2671     return This->lpVtbl->Release(This);
   2672 }
   2673 /*** ISpDataKey methods ***/
   2674 static inline HRESULT ISpRegDataKey_SetData(ISpRegDataKey* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
   2675     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
   2676 }
   2677 static inline HRESULT ISpRegDataKey_GetData(ISpRegDataKey* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
   2678     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
   2679 }
   2680 static inline HRESULT ISpRegDataKey_SetStringValue(ISpRegDataKey* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
   2681     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
   2682 }
   2683 static inline HRESULT ISpRegDataKey_GetStringValue(ISpRegDataKey* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
   2684     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
   2685 }
   2686 static inline HRESULT ISpRegDataKey_SetDWORD(ISpRegDataKey* This,LPCWSTR pszValueName,DWORD dwValue) {
   2687     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
   2688 }
   2689 static inline HRESULT ISpRegDataKey_GetDWORD(ISpRegDataKey* This,LPCWSTR pszValueName,DWORD *pdwValue) {
   2690     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
   2691 }
   2692 static inline HRESULT ISpRegDataKey_OpenKey(ISpRegDataKey* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
   2693     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
   2694 }
   2695 static inline HRESULT ISpRegDataKey_CreateKey(ISpRegDataKey* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
   2696     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
   2697 }
   2698 static inline HRESULT ISpRegDataKey_DeleteKey(ISpRegDataKey* This,LPCWSTR pszSubKey) {
   2699     return This->lpVtbl->DeleteKey(This,pszSubKey);
   2700 }
   2701 static inline HRESULT ISpRegDataKey_DeleteValue(ISpRegDataKey* This,LPCWSTR pszValueName) {
   2702     return This->lpVtbl->DeleteValue(This,pszValueName);
   2703 }
   2704 static inline HRESULT ISpRegDataKey_EnumKeys(ISpRegDataKey* This,ULONG Index,LPWSTR *ppszSubKeyName) {
   2705     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
   2706 }
   2707 static inline HRESULT ISpRegDataKey_EnumValues(ISpRegDataKey* This,ULONG Index,LPWSTR *ppszValueName) {
   2708     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
   2709 }
   2710 /*** ISpRegDataKey methods ***/
   2711 static inline HRESULT ISpRegDataKey_SetKey(ISpRegDataKey* This,HKEY hkey,WINBOOL fReadOnly) {
   2712     return This->lpVtbl->SetKey(This,hkey,fReadOnly);
   2713 }
   2714 #endif
   2715 #endif
   2716 
   2717 #endif
   2718 
   2719 
   2720 #endif  /* __ISpRegDataKey_INTERFACE_DEFINED__ */
   2721 
   2722 /*****************************************************************************
   2723  * ISpObjectTokenCategory interface
   2724  */
   2725 #ifndef __ISpObjectTokenCategory_INTERFACE_DEFINED__
   2726 #define __ISpObjectTokenCategory_INTERFACE_DEFINED__
   2727 
   2728 DEFINE_GUID(IID_ISpObjectTokenCategory, 0x2d3d3845, 0x39af, 0x4850, 0xbb,0xf9, 0x40,0xb4,0x97,0x80,0x01,0x1d);
   2729 #if defined(__cplusplus) && !defined(CINTERFACE)
   2730 MIDL_INTERFACE("2d3d3845-39af-4850-bbf9-40b49780011d")
   2731 ISpObjectTokenCategory : public ISpDataKey
   2732 {
   2733     virtual HRESULT STDMETHODCALLTYPE SetId(
   2734         LPCWSTR pszCategoryId,
   2735         WINBOOL fCreateIfNotExist) = 0;
   2736 
   2737     virtual HRESULT STDMETHODCALLTYPE GetId(
   2738         LPWSTR *ppszCoMemCategoryId) = 0;
   2739 
   2740     virtual HRESULT STDMETHODCALLTYPE GetDataKey(
   2741         SPDATAKEYLOCATION spdkl,
   2742         ISpDataKey **ppDataKey) = 0;
   2743 
   2744     virtual HRESULT STDMETHODCALLTYPE EnumTokens(
   2745         LPCWSTR pzsReqAttribs,
   2746         LPCWSTR pszOptAttribs,
   2747         IEnumSpObjectTokens **ppEnum) = 0;
   2748 
   2749     virtual HRESULT STDMETHODCALLTYPE SetDefaultTokenId(
   2750         LPCWSTR pszTokenId) = 0;
   2751 
   2752     virtual HRESULT STDMETHODCALLTYPE GetDefaultTokenId(
   2753         LPWSTR *ppszCoMemTokenId) = 0;
   2754 
   2755 };
   2756 #ifdef __CRT_UUID_DECL
   2757 __CRT_UUID_DECL(ISpObjectTokenCategory, 0x2d3d3845, 0x39af, 0x4850, 0xbb,0xf9, 0x40,0xb4,0x97,0x80,0x01,0x1d)
   2758 #endif
   2759 #else
   2760 typedef struct ISpObjectTokenCategoryVtbl {
   2761     BEGIN_INTERFACE
   2762 
   2763     /*** IUnknown methods ***/
   2764     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2765         ISpObjectTokenCategory *This,
   2766         REFIID riid,
   2767         void **ppvObject);
   2768 
   2769     ULONG (STDMETHODCALLTYPE *AddRef)(
   2770         ISpObjectTokenCategory *This);
   2771 
   2772     ULONG (STDMETHODCALLTYPE *Release)(
   2773         ISpObjectTokenCategory *This);
   2774 
   2775     /*** ISpDataKey methods ***/
   2776     HRESULT (STDMETHODCALLTYPE *SetData)(
   2777         ISpObjectTokenCategory *This,
   2778         LPCWSTR pszValueName,
   2779         ULONG cbData,
   2780         const BYTE *pData);
   2781 
   2782     HRESULT (STDMETHODCALLTYPE *GetData)(
   2783         ISpObjectTokenCategory *This,
   2784         LPCWSTR pszValueName,
   2785         ULONG *pcbData,
   2786         BYTE *pData);
   2787 
   2788     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
   2789         ISpObjectTokenCategory *This,
   2790         LPCWSTR pszValueName,
   2791         LPCWSTR pszValue);
   2792 
   2793     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
   2794         ISpObjectTokenCategory *This,
   2795         LPCWSTR pszValueName,
   2796         LPWSTR *ppszValue);
   2797 
   2798     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
   2799         ISpObjectTokenCategory *This,
   2800         LPCWSTR pszValueName,
   2801         DWORD dwValue);
   2802 
   2803     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
   2804         ISpObjectTokenCategory *This,
   2805         LPCWSTR pszValueName,
   2806         DWORD *pdwValue);
   2807 
   2808     HRESULT (STDMETHODCALLTYPE *OpenKey)(
   2809         ISpObjectTokenCategory *This,
   2810         LPCWSTR pszSubKeyName,
   2811         ISpDataKey **ppSubKey);
   2812 
   2813     HRESULT (STDMETHODCALLTYPE *CreateKey)(
   2814         ISpObjectTokenCategory *This,
   2815         LPCWSTR pszSubKey,
   2816         ISpDataKey **ppSubKey);
   2817 
   2818     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
   2819         ISpObjectTokenCategory *This,
   2820         LPCWSTR pszSubKey);
   2821 
   2822     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
   2823         ISpObjectTokenCategory *This,
   2824         LPCWSTR pszValueName);
   2825 
   2826     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
   2827         ISpObjectTokenCategory *This,
   2828         ULONG Index,
   2829         LPWSTR *ppszSubKeyName);
   2830 
   2831     HRESULT (STDMETHODCALLTYPE *EnumValues)(
   2832         ISpObjectTokenCategory *This,
   2833         ULONG Index,
   2834         LPWSTR *ppszValueName);
   2835 
   2836     /*** ISpObjectTokenCategory methods ***/
   2837     HRESULT (STDMETHODCALLTYPE *SetId)(
   2838         ISpObjectTokenCategory *This,
   2839         LPCWSTR pszCategoryId,
   2840         WINBOOL fCreateIfNotExist);
   2841 
   2842     HRESULT (STDMETHODCALLTYPE *GetId)(
   2843         ISpObjectTokenCategory *This,
   2844         LPWSTR *ppszCoMemCategoryId);
   2845 
   2846     HRESULT (STDMETHODCALLTYPE *GetDataKey)(
   2847         ISpObjectTokenCategory *This,
   2848         SPDATAKEYLOCATION spdkl,
   2849         ISpDataKey **ppDataKey);
   2850 
   2851     HRESULT (STDMETHODCALLTYPE *EnumTokens)(
   2852         ISpObjectTokenCategory *This,
   2853         LPCWSTR pzsReqAttribs,
   2854         LPCWSTR pszOptAttribs,
   2855         IEnumSpObjectTokens **ppEnum);
   2856 
   2857     HRESULT (STDMETHODCALLTYPE *SetDefaultTokenId)(
   2858         ISpObjectTokenCategory *This,
   2859         LPCWSTR pszTokenId);
   2860 
   2861     HRESULT (STDMETHODCALLTYPE *GetDefaultTokenId)(
   2862         ISpObjectTokenCategory *This,
   2863         LPWSTR *ppszCoMemTokenId);
   2864 
   2865     END_INTERFACE
   2866 } ISpObjectTokenCategoryVtbl;
   2867 
   2868 interface ISpObjectTokenCategory {
   2869     CONST_VTBL ISpObjectTokenCategoryVtbl* lpVtbl;
   2870 };
   2871 
   2872 #ifdef COBJMACROS
   2873 #ifndef WIDL_C_INLINE_WRAPPERS
   2874 /*** IUnknown methods ***/
   2875 #define ISpObjectTokenCategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2876 #define ISpObjectTokenCategory_AddRef(This) (This)->lpVtbl->AddRef(This)
   2877 #define ISpObjectTokenCategory_Release(This) (This)->lpVtbl->Release(This)
   2878 /*** ISpDataKey methods ***/
   2879 #define ISpObjectTokenCategory_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
   2880 #define ISpObjectTokenCategory_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
   2881 #define ISpObjectTokenCategory_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
   2882 #define ISpObjectTokenCategory_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
   2883 #define ISpObjectTokenCategory_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
   2884 #define ISpObjectTokenCategory_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
   2885 #define ISpObjectTokenCategory_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
   2886 #define ISpObjectTokenCategory_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
   2887 #define ISpObjectTokenCategory_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
   2888 #define ISpObjectTokenCategory_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
   2889 #define ISpObjectTokenCategory_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
   2890 #define ISpObjectTokenCategory_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
   2891 /*** ISpObjectTokenCategory methods ***/
   2892 #define ISpObjectTokenCategory_SetId(This,pszCategoryId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,fCreateIfNotExist)
   2893 #define ISpObjectTokenCategory_GetId(This,ppszCoMemCategoryId) (This)->lpVtbl->GetId(This,ppszCoMemCategoryId)
   2894 #define ISpObjectTokenCategory_GetDataKey(This,spdkl,ppDataKey) (This)->lpVtbl->GetDataKey(This,spdkl,ppDataKey)
   2895 #define ISpObjectTokenCategory_EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum) (This)->lpVtbl->EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum)
   2896 #define ISpObjectTokenCategory_SetDefaultTokenId(This,pszTokenId) (This)->lpVtbl->SetDefaultTokenId(This,pszTokenId)
   2897 #define ISpObjectTokenCategory_GetDefaultTokenId(This,ppszCoMemTokenId) (This)->lpVtbl->GetDefaultTokenId(This,ppszCoMemTokenId)
   2898 #else
   2899 /*** IUnknown methods ***/
   2900 static inline HRESULT ISpObjectTokenCategory_QueryInterface(ISpObjectTokenCategory* This,REFIID riid,void **ppvObject) {
   2901     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2902 }
   2903 static inline ULONG ISpObjectTokenCategory_AddRef(ISpObjectTokenCategory* This) {
   2904     return This->lpVtbl->AddRef(This);
   2905 }
   2906 static inline ULONG ISpObjectTokenCategory_Release(ISpObjectTokenCategory* This) {
   2907     return This->lpVtbl->Release(This);
   2908 }
   2909 /*** ISpDataKey methods ***/
   2910 static inline HRESULT ISpObjectTokenCategory_SetData(ISpObjectTokenCategory* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
   2911     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
   2912 }
   2913 static inline HRESULT ISpObjectTokenCategory_GetData(ISpObjectTokenCategory* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
   2914     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
   2915 }
   2916 static inline HRESULT ISpObjectTokenCategory_SetStringValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
   2917     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
   2918 }
   2919 static inline HRESULT ISpObjectTokenCategory_GetStringValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
   2920     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
   2921 }
   2922 static inline HRESULT ISpObjectTokenCategory_SetDWORD(ISpObjectTokenCategory* This,LPCWSTR pszValueName,DWORD dwValue) {
   2923     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
   2924 }
   2925 static inline HRESULT ISpObjectTokenCategory_GetDWORD(ISpObjectTokenCategory* This,LPCWSTR pszValueName,DWORD *pdwValue) {
   2926     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
   2927 }
   2928 static inline HRESULT ISpObjectTokenCategory_OpenKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
   2929     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
   2930 }
   2931 static inline HRESULT ISpObjectTokenCategory_CreateKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
   2932     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
   2933 }
   2934 static inline HRESULT ISpObjectTokenCategory_DeleteKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKey) {
   2935     return This->lpVtbl->DeleteKey(This,pszSubKey);
   2936 }
   2937 static inline HRESULT ISpObjectTokenCategory_DeleteValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName) {
   2938     return This->lpVtbl->DeleteValue(This,pszValueName);
   2939 }
   2940 static inline HRESULT ISpObjectTokenCategory_EnumKeys(ISpObjectTokenCategory* This,ULONG Index,LPWSTR *ppszSubKeyName) {
   2941     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
   2942 }
   2943 static inline HRESULT ISpObjectTokenCategory_EnumValues(ISpObjectTokenCategory* This,ULONG Index,LPWSTR *ppszValueName) {
   2944     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
   2945 }
   2946 /*** ISpObjectTokenCategory methods ***/
   2947 static inline HRESULT ISpObjectTokenCategory_SetId(ISpObjectTokenCategory* This,LPCWSTR pszCategoryId,WINBOOL fCreateIfNotExist) {
   2948     return This->lpVtbl->SetId(This,pszCategoryId,fCreateIfNotExist);
   2949 }
   2950 static inline HRESULT ISpObjectTokenCategory_GetId(ISpObjectTokenCategory* This,LPWSTR *ppszCoMemCategoryId) {
   2951     return This->lpVtbl->GetId(This,ppszCoMemCategoryId);
   2952 }
   2953 static inline HRESULT ISpObjectTokenCategory_GetDataKey(ISpObjectTokenCategory* This,SPDATAKEYLOCATION spdkl,ISpDataKey **ppDataKey) {
   2954     return This->lpVtbl->GetDataKey(This,spdkl,ppDataKey);
   2955 }
   2956 static inline HRESULT ISpObjectTokenCategory_EnumTokens(ISpObjectTokenCategory* This,LPCWSTR pzsReqAttribs,LPCWSTR pszOptAttribs,IEnumSpObjectTokens **ppEnum) {
   2957     return This->lpVtbl->EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum);
   2958 }
   2959 static inline HRESULT ISpObjectTokenCategory_SetDefaultTokenId(ISpObjectTokenCategory* This,LPCWSTR pszTokenId) {
   2960     return This->lpVtbl->SetDefaultTokenId(This,pszTokenId);
   2961 }
   2962 static inline HRESULT ISpObjectTokenCategory_GetDefaultTokenId(ISpObjectTokenCategory* This,LPWSTR *ppszCoMemTokenId) {
   2963     return This->lpVtbl->GetDefaultTokenId(This,ppszCoMemTokenId);
   2964 }
   2965 #endif
   2966 #endif
   2967 
   2968 #endif
   2969 
   2970 
   2971 #endif  /* __ISpObjectTokenCategory_INTERFACE_DEFINED__ */
   2972 
   2973 /*****************************************************************************
   2974  * ISpObjectToken interface
   2975  */
   2976 #ifndef __ISpObjectToken_INTERFACE_DEFINED__
   2977 #define __ISpObjectToken_INTERFACE_DEFINED__
   2978 
   2979 DEFINE_GUID(IID_ISpObjectToken, 0x14056589, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
   2980 #if defined(__cplusplus) && !defined(CINTERFACE)
   2981 MIDL_INTERFACE("14056589-e16c-11d2-bb90-00c04f8ee6c0")
   2982 ISpObjectToken : public ISpDataKey
   2983 {
   2984     virtual HRESULT STDMETHODCALLTYPE SetId(
   2985         LPCWSTR pszCategoryId,
   2986         LPCWSTR pszTokenId,
   2987         WINBOOL fCreateIfNotExist) = 0;
   2988 
   2989     virtual HRESULT STDMETHODCALLTYPE GetId(
   2990         LPWSTR *ppszCoMemTokenId) = 0;
   2991 
   2992     virtual HRESULT STDMETHODCALLTYPE GetCategory(
   2993         ISpObjectTokenCategory **ppTokenCategory) = 0;
   2994 
   2995     virtual HRESULT STDMETHODCALLTYPE CreateInstance(
   2996         IUnknown *pUnkOuter,
   2997         DWORD dwClsContext,
   2998         REFIID riid,
   2999         void **ppvObject) = 0;
   3000 
   3001     virtual HRESULT STDMETHODCALLTYPE GetStorageFileName(
   3002         REFCLSID clsidCaller,
   3003         LPCWSTR pszValueName,
   3004         LPCWSTR pszFileNameSpecifier,
   3005         ULONG nFolder,
   3006         LPWSTR *ppszFilePath) = 0;
   3007 
   3008     virtual HRESULT STDMETHODCALLTYPE RemoveStorageFileName(
   3009         REFCLSID clsidCaller,
   3010         LPCWSTR pszKeyName,
   3011         WINBOOL fDeleteFile) = 0;
   3012 
   3013     virtual HRESULT STDMETHODCALLTYPE Remove(
   3014         const CLSID *pclsidCaller) = 0;
   3015 
   3016     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
   3017         LPCWSTR pszTypeOfUI,
   3018         void *pvExtraData,
   3019         ULONG cbExtraData,
   3020         IUnknown *punkObject,
   3021         WINBOOL *pfSupported) = 0;
   3022 
   3023     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
   3024         HWND hwndParent,
   3025         LPCWSTR pszTitle,
   3026         LPCWSTR pszTypeOfUI,
   3027         void *pvExtraData,
   3028         ULONG cbExtraData,
   3029         IUnknown *punkObject) = 0;
   3030 
   3031     virtual HRESULT STDMETHODCALLTYPE MatchesAttributes(
   3032         LPCWSTR pszAttributes,
   3033         WINBOOL *pfMatches) = 0;
   3034 
   3035 };
   3036 #ifdef __CRT_UUID_DECL
   3037 __CRT_UUID_DECL(ISpObjectToken, 0x14056589, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
   3038 #endif
   3039 #else
   3040 typedef struct ISpObjectTokenVtbl {
   3041     BEGIN_INTERFACE
   3042 
   3043     /*** IUnknown methods ***/
   3044     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3045         ISpObjectToken *This,
   3046         REFIID riid,
   3047         void **ppvObject);
   3048 
   3049     ULONG (STDMETHODCALLTYPE *AddRef)(
   3050         ISpObjectToken *This);
   3051 
   3052     ULONG (STDMETHODCALLTYPE *Release)(
   3053         ISpObjectToken *This);
   3054 
   3055     /*** ISpDataKey methods ***/
   3056     HRESULT (STDMETHODCALLTYPE *SetData)(
   3057         ISpObjectToken *This,
   3058         LPCWSTR pszValueName,
   3059         ULONG cbData,
   3060         const BYTE *pData);
   3061 
   3062     HRESULT (STDMETHODCALLTYPE *GetData)(
   3063         ISpObjectToken *This,
   3064         LPCWSTR pszValueName,
   3065         ULONG *pcbData,
   3066         BYTE *pData);
   3067 
   3068     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
   3069         ISpObjectToken *This,
   3070         LPCWSTR pszValueName,
   3071         LPCWSTR pszValue);
   3072 
   3073     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
   3074         ISpObjectToken *This,
   3075         LPCWSTR pszValueName,
   3076         LPWSTR *ppszValue);
   3077 
   3078     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
   3079         ISpObjectToken *This,
   3080         LPCWSTR pszValueName,
   3081         DWORD dwValue);
   3082 
   3083     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
   3084         ISpObjectToken *This,
   3085         LPCWSTR pszValueName,
   3086         DWORD *pdwValue);
   3087 
   3088     HRESULT (STDMETHODCALLTYPE *OpenKey)(
   3089         ISpObjectToken *This,
   3090         LPCWSTR pszSubKeyName,
   3091         ISpDataKey **ppSubKey);
   3092 
   3093     HRESULT (STDMETHODCALLTYPE *CreateKey)(
   3094         ISpObjectToken *This,
   3095         LPCWSTR pszSubKey,
   3096         ISpDataKey **ppSubKey);
   3097 
   3098     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
   3099         ISpObjectToken *This,
   3100         LPCWSTR pszSubKey);
   3101 
   3102     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
   3103         ISpObjectToken *This,
   3104         LPCWSTR pszValueName);
   3105 
   3106     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
   3107         ISpObjectToken *This,
   3108         ULONG Index,
   3109         LPWSTR *ppszSubKeyName);
   3110 
   3111     HRESULT (STDMETHODCALLTYPE *EnumValues)(
   3112         ISpObjectToken *This,
   3113         ULONG Index,
   3114         LPWSTR *ppszValueName);
   3115 
   3116     /*** ISpObjectToken methods ***/
   3117     HRESULT (STDMETHODCALLTYPE *SetId)(
   3118         ISpObjectToken *This,
   3119         LPCWSTR pszCategoryId,
   3120         LPCWSTR pszTokenId,
   3121         WINBOOL fCreateIfNotExist);
   3122 
   3123     HRESULT (STDMETHODCALLTYPE *GetId)(
   3124         ISpObjectToken *This,
   3125         LPWSTR *ppszCoMemTokenId);
   3126 
   3127     HRESULT (STDMETHODCALLTYPE *GetCategory)(
   3128         ISpObjectToken *This,
   3129         ISpObjectTokenCategory **ppTokenCategory);
   3130 
   3131     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
   3132         ISpObjectToken *This,
   3133         IUnknown *pUnkOuter,
   3134         DWORD dwClsContext,
   3135         REFIID riid,
   3136         void **ppvObject);
   3137 
   3138     HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
   3139         ISpObjectToken *This,
   3140         REFCLSID clsidCaller,
   3141         LPCWSTR pszValueName,
   3142         LPCWSTR pszFileNameSpecifier,
   3143         ULONG nFolder,
   3144         LPWSTR *ppszFilePath);
   3145 
   3146     HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
   3147         ISpObjectToken *This,
   3148         REFCLSID clsidCaller,
   3149         LPCWSTR pszKeyName,
   3150         WINBOOL fDeleteFile);
   3151 
   3152     HRESULT (STDMETHODCALLTYPE *Remove)(
   3153         ISpObjectToken *This,
   3154         const CLSID *pclsidCaller);
   3155 
   3156     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
   3157         ISpObjectToken *This,
   3158         LPCWSTR pszTypeOfUI,
   3159         void *pvExtraData,
   3160         ULONG cbExtraData,
   3161         IUnknown *punkObject,
   3162         WINBOOL *pfSupported);
   3163 
   3164     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
   3165         ISpObjectToken *This,
   3166         HWND hwndParent,
   3167         LPCWSTR pszTitle,
   3168         LPCWSTR pszTypeOfUI,
   3169         void *pvExtraData,
   3170         ULONG cbExtraData,
   3171         IUnknown *punkObject);
   3172 
   3173     HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
   3174         ISpObjectToken *This,
   3175         LPCWSTR pszAttributes,
   3176         WINBOOL *pfMatches);
   3177 
   3178     END_INTERFACE
   3179 } ISpObjectTokenVtbl;
   3180 
   3181 interface ISpObjectToken {
   3182     CONST_VTBL ISpObjectTokenVtbl* lpVtbl;
   3183 };
   3184 
   3185 #ifdef COBJMACROS
   3186 #ifndef WIDL_C_INLINE_WRAPPERS
   3187 /*** IUnknown methods ***/
   3188 #define ISpObjectToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3189 #define ISpObjectToken_AddRef(This) (This)->lpVtbl->AddRef(This)
   3190 #define ISpObjectToken_Release(This) (This)->lpVtbl->Release(This)
   3191 /*** ISpDataKey methods ***/
   3192 #define ISpObjectToken_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
   3193 #define ISpObjectToken_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
   3194 #define ISpObjectToken_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
   3195 #define ISpObjectToken_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
   3196 #define ISpObjectToken_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
   3197 #define ISpObjectToken_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
   3198 #define ISpObjectToken_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
   3199 #define ISpObjectToken_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
   3200 #define ISpObjectToken_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
   3201 #define ISpObjectToken_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
   3202 #define ISpObjectToken_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
   3203 #define ISpObjectToken_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
   3204 /*** ISpObjectToken methods ***/
   3205 #define ISpObjectToken_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
   3206 #define ISpObjectToken_GetId(This,ppszCoMemTokenId) (This)->lpVtbl->GetId(This,ppszCoMemTokenId)
   3207 #define ISpObjectToken_GetCategory(This,ppTokenCategory) (This)->lpVtbl->GetCategory(This,ppTokenCategory)
   3208 #define ISpObjectToken_CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
   3209 #define ISpObjectToken_GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath) (This)->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
   3210 #define ISpObjectToken_RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
   3211 #define ISpObjectToken_Remove(This,pclsidCaller) (This)->lpVtbl->Remove(This,pclsidCaller)
   3212 #define ISpObjectToken_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
   3213 #define ISpObjectToken_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
   3214 #define ISpObjectToken_MatchesAttributes(This,pszAttributes,pfMatches) (This)->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches)
   3215 #else
   3216 /*** IUnknown methods ***/
   3217 static inline HRESULT ISpObjectToken_QueryInterface(ISpObjectToken* This,REFIID riid,void **ppvObject) {
   3218     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3219 }
   3220 static inline ULONG ISpObjectToken_AddRef(ISpObjectToken* This) {
   3221     return This->lpVtbl->AddRef(This);
   3222 }
   3223 static inline ULONG ISpObjectToken_Release(ISpObjectToken* This) {
   3224     return This->lpVtbl->Release(This);
   3225 }
   3226 /*** ISpDataKey methods ***/
   3227 static inline HRESULT ISpObjectToken_SetData(ISpObjectToken* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
   3228     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
   3229 }
   3230 static inline HRESULT ISpObjectToken_GetData(ISpObjectToken* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
   3231     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
   3232 }
   3233 static inline HRESULT ISpObjectToken_SetStringValue(ISpObjectToken* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
   3234     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
   3235 }
   3236 static inline HRESULT ISpObjectToken_GetStringValue(ISpObjectToken* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
   3237     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
   3238 }
   3239 static inline HRESULT ISpObjectToken_SetDWORD(ISpObjectToken* This,LPCWSTR pszValueName,DWORD dwValue) {
   3240     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
   3241 }
   3242 static inline HRESULT ISpObjectToken_GetDWORD(ISpObjectToken* This,LPCWSTR pszValueName,DWORD *pdwValue) {
   3243     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
   3244 }
   3245 static inline HRESULT ISpObjectToken_OpenKey(ISpObjectToken* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
   3246     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
   3247 }
   3248 static inline HRESULT ISpObjectToken_CreateKey(ISpObjectToken* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
   3249     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
   3250 }
   3251 static inline HRESULT ISpObjectToken_DeleteKey(ISpObjectToken* This,LPCWSTR pszSubKey) {
   3252     return This->lpVtbl->DeleteKey(This,pszSubKey);
   3253 }
   3254 static inline HRESULT ISpObjectToken_DeleteValue(ISpObjectToken* This,LPCWSTR pszValueName) {
   3255     return This->lpVtbl->DeleteValue(This,pszValueName);
   3256 }
   3257 static inline HRESULT ISpObjectToken_EnumKeys(ISpObjectToken* This,ULONG Index,LPWSTR *ppszSubKeyName) {
   3258     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
   3259 }
   3260 static inline HRESULT ISpObjectToken_EnumValues(ISpObjectToken* This,ULONG Index,LPWSTR *ppszValueName) {
   3261     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
   3262 }
   3263 /*** ISpObjectToken methods ***/
   3264 static inline HRESULT ISpObjectToken_SetId(ISpObjectToken* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,WINBOOL fCreateIfNotExist) {
   3265     return This->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist);
   3266 }
   3267 static inline HRESULT ISpObjectToken_GetId(ISpObjectToken* This,LPWSTR *ppszCoMemTokenId) {
   3268     return This->lpVtbl->GetId(This,ppszCoMemTokenId);
   3269 }
   3270 static inline HRESULT ISpObjectToken_GetCategory(ISpObjectToken* This,ISpObjectTokenCategory **ppTokenCategory) {
   3271     return This->lpVtbl->GetCategory(This,ppTokenCategory);
   3272 }
   3273 static inline HRESULT ISpObjectToken_CreateInstance(ISpObjectToken* This,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,void **ppvObject) {
   3274     return This->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject);
   3275 }
   3276 static inline HRESULT ISpObjectToken_GetStorageFileName(ISpObjectToken* This,REFCLSID clsidCaller,LPCWSTR pszValueName,LPCWSTR pszFileNameSpecifier,ULONG nFolder,LPWSTR *ppszFilePath) {
   3277     return This->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath);
   3278 }
   3279 static inline HRESULT ISpObjectToken_RemoveStorageFileName(ISpObjectToken* This,REFCLSID clsidCaller,LPCWSTR pszKeyName,WINBOOL fDeleteFile) {
   3280     return This->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile);
   3281 }
   3282 static inline HRESULT ISpObjectToken_Remove(ISpObjectToken* This,const CLSID *pclsidCaller) {
   3283     return This->lpVtbl->Remove(This,pclsidCaller);
   3284 }
   3285 static inline HRESULT ISpObjectToken_IsUISupported(ISpObjectToken* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject,WINBOOL *pfSupported) {
   3286     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported);
   3287 }
   3288 static inline HRESULT ISpObjectToken_DisplayUI(ISpObjectToken* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject) {
   3289     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject);
   3290 }
   3291 static inline HRESULT ISpObjectToken_MatchesAttributes(ISpObjectToken* This,LPCWSTR pszAttributes,WINBOOL *pfMatches) {
   3292     return This->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches);
   3293 }
   3294 #endif
   3295 #endif
   3296 
   3297 #endif
   3298 
   3299 
   3300 #endif  /* __ISpObjectToken_INTERFACE_DEFINED__ */
   3301 
   3302 /*****************************************************************************
   3303  * ISpObjectTokenInit interface
   3304  */
   3305 #ifndef __ISpObjectTokenInit_INTERFACE_DEFINED__
   3306 #define __ISpObjectTokenInit_INTERFACE_DEFINED__
   3307 
   3308 DEFINE_GUID(IID_ISpObjectTokenInit, 0xb8aab0cf, 0x346f, 0x49d8, 0x94,0x99, 0xc8,0xb0,0x3f,0x16,0x1d,0x51);
   3309 #if defined(__cplusplus) && !defined(CINTERFACE)
   3310 MIDL_INTERFACE("b8aab0cf-346f-49d8-9499-c8b03f161d51")
   3311 ISpObjectTokenInit : public ISpObjectToken
   3312 {
   3313     virtual HRESULT STDMETHODCALLTYPE InitFromDataKey(
   3314         LPCWSTR pszCategoryId,
   3315         LPCWSTR pszTokenId,
   3316         ISpDataKey *pDataKey) = 0;
   3317 
   3318 };
   3319 #ifdef __CRT_UUID_DECL
   3320 __CRT_UUID_DECL(ISpObjectTokenInit, 0xb8aab0cf, 0x346f, 0x49d8, 0x94,0x99, 0xc8,0xb0,0x3f,0x16,0x1d,0x51)
   3321 #endif
   3322 #else
   3323 typedef struct ISpObjectTokenInitVtbl {
   3324     BEGIN_INTERFACE
   3325 
   3326     /*** IUnknown methods ***/
   3327     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3328         ISpObjectTokenInit *This,
   3329         REFIID riid,
   3330         void **ppvObject);
   3331 
   3332     ULONG (STDMETHODCALLTYPE *AddRef)(
   3333         ISpObjectTokenInit *This);
   3334 
   3335     ULONG (STDMETHODCALLTYPE *Release)(
   3336         ISpObjectTokenInit *This);
   3337 
   3338     /*** ISpDataKey methods ***/
   3339     HRESULT (STDMETHODCALLTYPE *SetData)(
   3340         ISpObjectTokenInit *This,
   3341         LPCWSTR pszValueName,
   3342         ULONG cbData,
   3343         const BYTE *pData);
   3344 
   3345     HRESULT (STDMETHODCALLTYPE *GetData)(
   3346         ISpObjectTokenInit *This,
   3347         LPCWSTR pszValueName,
   3348         ULONG *pcbData,
   3349         BYTE *pData);
   3350 
   3351     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
   3352         ISpObjectTokenInit *This,
   3353         LPCWSTR pszValueName,
   3354         LPCWSTR pszValue);
   3355 
   3356     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
   3357         ISpObjectTokenInit *This,
   3358         LPCWSTR pszValueName,
   3359         LPWSTR *ppszValue);
   3360 
   3361     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
   3362         ISpObjectTokenInit *This,
   3363         LPCWSTR pszValueName,
   3364         DWORD dwValue);
   3365 
   3366     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
   3367         ISpObjectTokenInit *This,
   3368         LPCWSTR pszValueName,
   3369         DWORD *pdwValue);
   3370 
   3371     HRESULT (STDMETHODCALLTYPE *OpenKey)(
   3372         ISpObjectTokenInit *This,
   3373         LPCWSTR pszSubKeyName,
   3374         ISpDataKey **ppSubKey);
   3375 
   3376     HRESULT (STDMETHODCALLTYPE *CreateKey)(
   3377         ISpObjectTokenInit *This,
   3378         LPCWSTR pszSubKey,
   3379         ISpDataKey **ppSubKey);
   3380 
   3381     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
   3382         ISpObjectTokenInit *This,
   3383         LPCWSTR pszSubKey);
   3384 
   3385     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
   3386         ISpObjectTokenInit *This,
   3387         LPCWSTR pszValueName);
   3388 
   3389     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
   3390         ISpObjectTokenInit *This,
   3391         ULONG Index,
   3392         LPWSTR *ppszSubKeyName);
   3393 
   3394     HRESULT (STDMETHODCALLTYPE *EnumValues)(
   3395         ISpObjectTokenInit *This,
   3396         ULONG Index,
   3397         LPWSTR *ppszValueName);
   3398 
   3399     /*** ISpObjectToken methods ***/
   3400     HRESULT (STDMETHODCALLTYPE *SetId)(
   3401         ISpObjectTokenInit *This,
   3402         LPCWSTR pszCategoryId,
   3403         LPCWSTR pszTokenId,
   3404         WINBOOL fCreateIfNotExist);
   3405 
   3406     HRESULT (STDMETHODCALLTYPE *GetId)(
   3407         ISpObjectTokenInit *This,
   3408         LPWSTR *ppszCoMemTokenId);
   3409 
   3410     HRESULT (STDMETHODCALLTYPE *GetCategory)(
   3411         ISpObjectTokenInit *This,
   3412         ISpObjectTokenCategory **ppTokenCategory);
   3413 
   3414     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
   3415         ISpObjectTokenInit *This,
   3416         IUnknown *pUnkOuter,
   3417         DWORD dwClsContext,
   3418         REFIID riid,
   3419         void **ppvObject);
   3420 
   3421     HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
   3422         ISpObjectTokenInit *This,
   3423         REFCLSID clsidCaller,
   3424         LPCWSTR pszValueName,
   3425         LPCWSTR pszFileNameSpecifier,
   3426         ULONG nFolder,
   3427         LPWSTR *ppszFilePath);
   3428 
   3429     HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
   3430         ISpObjectTokenInit *This,
   3431         REFCLSID clsidCaller,
   3432         LPCWSTR pszKeyName,
   3433         WINBOOL fDeleteFile);
   3434 
   3435     HRESULT (STDMETHODCALLTYPE *Remove)(
   3436         ISpObjectTokenInit *This,
   3437         const CLSID *pclsidCaller);
   3438 
   3439     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
   3440         ISpObjectTokenInit *This,
   3441         LPCWSTR pszTypeOfUI,
   3442         void *pvExtraData,
   3443         ULONG cbExtraData,
   3444         IUnknown *punkObject,
   3445         WINBOOL *pfSupported);
   3446 
   3447     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
   3448         ISpObjectTokenInit *This,
   3449         HWND hwndParent,
   3450         LPCWSTR pszTitle,
   3451         LPCWSTR pszTypeOfUI,
   3452         void *pvExtraData,
   3453         ULONG cbExtraData,
   3454         IUnknown *punkObject);
   3455 
   3456     HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
   3457         ISpObjectTokenInit *This,
   3458         LPCWSTR pszAttributes,
   3459         WINBOOL *pfMatches);
   3460 
   3461     /*** ISpObjectTokenInit methods ***/
   3462     HRESULT (STDMETHODCALLTYPE *InitFromDataKey)(
   3463         ISpObjectTokenInit *This,
   3464         LPCWSTR pszCategoryId,
   3465         LPCWSTR pszTokenId,
   3466         ISpDataKey *pDataKey);
   3467 
   3468     END_INTERFACE
   3469 } ISpObjectTokenInitVtbl;
   3470 
   3471 interface ISpObjectTokenInit {
   3472     CONST_VTBL ISpObjectTokenInitVtbl* lpVtbl;
   3473 };
   3474 
   3475 #ifdef COBJMACROS
   3476 #ifndef WIDL_C_INLINE_WRAPPERS
   3477 /*** IUnknown methods ***/
   3478 #define ISpObjectTokenInit_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3479 #define ISpObjectTokenInit_AddRef(This) (This)->lpVtbl->AddRef(This)
   3480 #define ISpObjectTokenInit_Release(This) (This)->lpVtbl->Release(This)
   3481 /*** ISpDataKey methods ***/
   3482 #define ISpObjectTokenInit_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
   3483 #define ISpObjectTokenInit_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
   3484 #define ISpObjectTokenInit_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
   3485 #define ISpObjectTokenInit_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
   3486 #define ISpObjectTokenInit_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
   3487 #define ISpObjectTokenInit_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
   3488 #define ISpObjectTokenInit_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
   3489 #define ISpObjectTokenInit_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
   3490 #define ISpObjectTokenInit_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
   3491 #define ISpObjectTokenInit_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
   3492 #define ISpObjectTokenInit_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
   3493 #define ISpObjectTokenInit_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
   3494 /*** ISpObjectToken methods ***/
   3495 #define ISpObjectTokenInit_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
   3496 #define ISpObjectTokenInit_GetId(This,ppszCoMemTokenId) (This)->lpVtbl->GetId(This,ppszCoMemTokenId)
   3497 #define ISpObjectTokenInit_GetCategory(This,ppTokenCategory) (This)->lpVtbl->GetCategory(This,ppTokenCategory)
   3498 #define ISpObjectTokenInit_CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
   3499 #define ISpObjectTokenInit_GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath) (This)->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
   3500 #define ISpObjectTokenInit_RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
   3501 #define ISpObjectTokenInit_Remove(This,pclsidCaller) (This)->lpVtbl->Remove(This,pclsidCaller)
   3502 #define ISpObjectTokenInit_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
   3503 #define ISpObjectTokenInit_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
   3504 #define ISpObjectTokenInit_MatchesAttributes(This,pszAttributes,pfMatches) (This)->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches)
   3505 /*** ISpObjectTokenInit methods ***/
   3506 #define ISpObjectTokenInit_InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey) (This)->lpVtbl->InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey)
   3507 #else
   3508 /*** IUnknown methods ***/
   3509 static inline HRESULT ISpObjectTokenInit_QueryInterface(ISpObjectTokenInit* This,REFIID riid,void **ppvObject) {
   3510     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3511 }
   3512 static inline ULONG ISpObjectTokenInit_AddRef(ISpObjectTokenInit* This) {
   3513     return This->lpVtbl->AddRef(This);
   3514 }
   3515 static inline ULONG ISpObjectTokenInit_Release(ISpObjectTokenInit* This) {
   3516     return This->lpVtbl->Release(This);
   3517 }
   3518 /*** ISpDataKey methods ***/
   3519 static inline HRESULT ISpObjectTokenInit_SetData(ISpObjectTokenInit* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
   3520     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
   3521 }
   3522 static inline HRESULT ISpObjectTokenInit_GetData(ISpObjectTokenInit* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
   3523     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
   3524 }
   3525 static inline HRESULT ISpObjectTokenInit_SetStringValue(ISpObjectTokenInit* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
   3526     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
   3527 }
   3528 static inline HRESULT ISpObjectTokenInit_GetStringValue(ISpObjectTokenInit* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
   3529     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
   3530 }
   3531 static inline HRESULT ISpObjectTokenInit_SetDWORD(ISpObjectTokenInit* This,LPCWSTR pszValueName,DWORD dwValue) {
   3532     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
   3533 }
   3534 static inline HRESULT ISpObjectTokenInit_GetDWORD(ISpObjectTokenInit* This,LPCWSTR pszValueName,DWORD *pdwValue) {
   3535     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
   3536 }
   3537 static inline HRESULT ISpObjectTokenInit_OpenKey(ISpObjectTokenInit* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
   3538     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
   3539 }
   3540 static inline HRESULT ISpObjectTokenInit_CreateKey(ISpObjectTokenInit* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
   3541     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
   3542 }
   3543 static inline HRESULT ISpObjectTokenInit_DeleteKey(ISpObjectTokenInit* This,LPCWSTR pszSubKey) {
   3544     return This->lpVtbl->DeleteKey(This,pszSubKey);
   3545 }
   3546 static inline HRESULT ISpObjectTokenInit_DeleteValue(ISpObjectTokenInit* This,LPCWSTR pszValueName) {
   3547     return This->lpVtbl->DeleteValue(This,pszValueName);
   3548 }
   3549 static inline HRESULT ISpObjectTokenInit_EnumKeys(ISpObjectTokenInit* This,ULONG Index,LPWSTR *ppszSubKeyName) {
   3550     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
   3551 }
   3552 static inline HRESULT ISpObjectTokenInit_EnumValues(ISpObjectTokenInit* This,ULONG Index,LPWSTR *ppszValueName) {
   3553     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
   3554 }
   3555 /*** ISpObjectToken methods ***/
   3556 static inline HRESULT ISpObjectTokenInit_SetId(ISpObjectTokenInit* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,WINBOOL fCreateIfNotExist) {
   3557     return This->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist);
   3558 }
   3559 static inline HRESULT ISpObjectTokenInit_GetId(ISpObjectTokenInit* This,LPWSTR *ppszCoMemTokenId) {
   3560     return This->lpVtbl->GetId(This,ppszCoMemTokenId);
   3561 }
   3562 static inline HRESULT ISpObjectTokenInit_GetCategory(ISpObjectTokenInit* This,ISpObjectTokenCategory **ppTokenCategory) {
   3563     return This->lpVtbl->GetCategory(This,ppTokenCategory);
   3564 }
   3565 static inline HRESULT ISpObjectTokenInit_CreateInstance(ISpObjectTokenInit* This,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,void **ppvObject) {
   3566     return This->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject);
   3567 }
   3568 static inline HRESULT ISpObjectTokenInit_GetStorageFileName(ISpObjectTokenInit* This,REFCLSID clsidCaller,LPCWSTR pszValueName,LPCWSTR pszFileNameSpecifier,ULONG nFolder,LPWSTR *ppszFilePath) {
   3569     return This->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath);
   3570 }
   3571 static inline HRESULT ISpObjectTokenInit_RemoveStorageFileName(ISpObjectTokenInit* This,REFCLSID clsidCaller,LPCWSTR pszKeyName,WINBOOL fDeleteFile) {
   3572     return This->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile);
   3573 }
   3574 static inline HRESULT ISpObjectTokenInit_Remove(ISpObjectTokenInit* This,const CLSID *pclsidCaller) {
   3575     return This->lpVtbl->Remove(This,pclsidCaller);
   3576 }
   3577 static inline HRESULT ISpObjectTokenInit_IsUISupported(ISpObjectTokenInit* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject,WINBOOL *pfSupported) {
   3578     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported);
   3579 }
   3580 static inline HRESULT ISpObjectTokenInit_DisplayUI(ISpObjectTokenInit* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject) {
   3581     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject);
   3582 }
   3583 static inline HRESULT ISpObjectTokenInit_MatchesAttributes(ISpObjectTokenInit* This,LPCWSTR pszAttributes,WINBOOL *pfMatches) {
   3584     return This->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches);
   3585 }
   3586 /*** ISpObjectTokenInit methods ***/
   3587 static inline HRESULT ISpObjectTokenInit_InitFromDataKey(ISpObjectTokenInit* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,ISpDataKey *pDataKey) {
   3588     return This->lpVtbl->InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey);
   3589 }
   3590 #endif
   3591 #endif
   3592 
   3593 #endif
   3594 
   3595 
   3596 #endif  /* __ISpObjectTokenInit_INTERFACE_DEFINED__ */
   3597 
   3598 /*****************************************************************************
   3599  * ISpResourceManager interface
   3600  */
   3601 #ifndef __ISpResourceManager_INTERFACE_DEFINED__
   3602 #define __ISpResourceManager_INTERFACE_DEFINED__
   3603 
   3604 DEFINE_GUID(IID_ISpResourceManager, 0x93384e18, 0x5014, 0x43d5, 0xad,0xbb, 0xa7,0x8e,0x05,0x59,0x26,0xbd);
   3605 #if defined(__cplusplus) && !defined(CINTERFACE)
   3606 MIDL_INTERFACE("93384e18-5014-43d5-adbb-a78e055926bd")
   3607 ISpResourceManager : public IServiceProvider
   3608 {
   3609     virtual HRESULT STDMETHODCALLTYPE SetObject(
   3610         REFGUID guidServiceId,
   3611         IUnknown *pUnkObject) = 0;
   3612 
   3613     virtual HRESULT STDMETHODCALLTYPE GetObject(
   3614         REFGUID guidServiceId,
   3615         REFCLSID ObjectCLSID,
   3616         REFIID ObjectIID,
   3617         WINBOOL fReleaseWhenLastExternalRefReleased,
   3618         void **ppObject) = 0;
   3619 
   3620 };
   3621 #ifdef __CRT_UUID_DECL
   3622 __CRT_UUID_DECL(ISpResourceManager, 0x93384e18, 0x5014, 0x43d5, 0xad,0xbb, 0xa7,0x8e,0x05,0x59,0x26,0xbd)
   3623 #endif
   3624 #else
   3625 typedef struct ISpResourceManagerVtbl {
   3626     BEGIN_INTERFACE
   3627 
   3628     /*** IUnknown methods ***/
   3629     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3630         ISpResourceManager *This,
   3631         REFIID riid,
   3632         void **ppvObject);
   3633 
   3634     ULONG (STDMETHODCALLTYPE *AddRef)(
   3635         ISpResourceManager *This);
   3636 
   3637     ULONG (STDMETHODCALLTYPE *Release)(
   3638         ISpResourceManager *This);
   3639 
   3640     /*** IServiceProvider methods ***/
   3641     HRESULT (STDMETHODCALLTYPE *QueryService)(
   3642         ISpResourceManager *This,
   3643         REFGUID guidService,
   3644         REFIID riid,
   3645         void **ppvObject);
   3646 
   3647     /*** ISpResourceManager methods ***/
   3648     HRESULT (STDMETHODCALLTYPE *SetObject)(
   3649         ISpResourceManager *This,
   3650         REFGUID guidServiceId,
   3651         IUnknown *pUnkObject);
   3652 
   3653     HRESULT (STDMETHODCALLTYPE *GetObject)(
   3654         ISpResourceManager *This,
   3655         REFGUID guidServiceId,
   3656         REFCLSID ObjectCLSID,
   3657         REFIID ObjectIID,
   3658         WINBOOL fReleaseWhenLastExternalRefReleased,
   3659         void **ppObject);
   3660 
   3661     END_INTERFACE
   3662 } ISpResourceManagerVtbl;
   3663 
   3664 interface ISpResourceManager {
   3665     CONST_VTBL ISpResourceManagerVtbl* lpVtbl;
   3666 };
   3667 
   3668 #ifdef COBJMACROS
   3669 #ifndef WIDL_C_INLINE_WRAPPERS
   3670 /*** IUnknown methods ***/
   3671 #define ISpResourceManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3672 #define ISpResourceManager_AddRef(This) (This)->lpVtbl->AddRef(This)
   3673 #define ISpResourceManager_Release(This) (This)->lpVtbl->Release(This)
   3674 /*** IServiceProvider methods ***/
   3675 #define ISpResourceManager_QueryService(This,guidService,riid,ppvObject) (This)->lpVtbl->QueryService(This,guidService,riid,ppvObject)
   3676 /*** ISpResourceManager methods ***/
   3677 #define ISpResourceManager_SetObject(This,guidServiceId,pUnkObject) (This)->lpVtbl->SetObject(This,guidServiceId,pUnkObject)
   3678 #define ISpResourceManager_GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject) (This)->lpVtbl->GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject)
   3679 #else
   3680 /*** IUnknown methods ***/
   3681 static inline HRESULT ISpResourceManager_QueryInterface(ISpResourceManager* This,REFIID riid,void **ppvObject) {
   3682     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3683 }
   3684 static inline ULONG ISpResourceManager_AddRef(ISpResourceManager* This) {
   3685     return This->lpVtbl->AddRef(This);
   3686 }
   3687 static inline ULONG ISpResourceManager_Release(ISpResourceManager* This) {
   3688     return This->lpVtbl->Release(This);
   3689 }
   3690 /*** IServiceProvider methods ***/
   3691 static inline HRESULT ISpResourceManager_QueryService(ISpResourceManager* This,REFGUID guidService,REFIID riid,void **ppvObject) {
   3692     return This->lpVtbl->QueryService(This,guidService,riid,ppvObject);
   3693 }
   3694 /*** ISpResourceManager methods ***/
   3695 static inline HRESULT ISpResourceManager_SetObject(ISpResourceManager* This,REFGUID guidServiceId,IUnknown *pUnkObject) {
   3696     return This->lpVtbl->SetObject(This,guidServiceId,pUnkObject);
   3697 }
   3698 static inline HRESULT ISpResourceManager_GetObject(ISpResourceManager* This,REFGUID guidServiceId,REFCLSID ObjectCLSID,REFIID ObjectIID,WINBOOL fReleaseWhenLastExternalRefReleased,void **ppObject) {
   3699     return This->lpVtbl->GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject);
   3700 }
   3701 #endif
   3702 #endif
   3703 
   3704 #endif
   3705 
   3706 
   3707 #endif  /* __ISpResourceManager_INTERFACE_DEFINED__ */
   3708 
   3709 #if 0
   3710 typedef struct SPEVENT {
   3711     WORD eEventId;
   3712     WORD elParamType;
   3713     ULONG ulStreamNum;
   3714     ULONGLONG ullAudioStreamOffset;
   3715     WPARAM wParam;
   3716     LPARAM lParam;
   3717 } SPEVENT;
   3718 typedef struct SPSERIALIZEDEVENT {
   3719     WORD eEventId;
   3720     WORD elParamType;
   3721     ULONG ulStreamNum;
   3722     ULONGLONG ullAudioStreamOffset;
   3723     ULONG SerializedwParam;
   3724     LONG SerializedlParam;
   3725 } SPSERIALIZEDEVENT;
   3726 typedef struct SPSERIALIZEDEVENT64 {
   3727     WORD eEventId;
   3728     WORD elParamType;
   3729     ULONG ulStreamNum;
   3730     ULONGLONG ullAudioStreamOffset;
   3731     ULONGLONG SerializedwParam;
   3732     LONGLONG SerializedlParam;
   3733 } SPSERIALIZEDEVENT64;
   3734 #else
   3735 typedef struct SPEVENT {
   3736   SPEVENTENUM eEventId : 16;
   3737   SPEVENTLPARAMTYPE elParamType : 16;
   3738   ULONG ulStreamNum;
   3739   ULONGLONG ullAudioStreamOffset;
   3740   WPARAM      wParam;
   3741   LPARAM      lParam;
   3742 } SPEVENT;
   3743 
   3744 typedef struct SPSERIALIZEDEVENT {
   3745   SPEVENTENUM eEventId : 16;
   3746   SPEVENTLPARAMTYPE elParamType : 16;
   3747   ULONG ulStreamNum;
   3748   ULONGLONG ullAudioStreamOffset;
   3749   ULONG SerializedwParam;
   3750   LONG SerializedlParam;
   3751 } SPSERIALIZEDEVENT;
   3752 
   3753 typedef struct SPSERIALIZEDEVENT64 {
   3754   SPEVENTENUM eEventId : 16;
   3755   SPEVENTLPARAMTYPE elParamType : 16;
   3756   ULONG ulStreamNum;
   3757   ULONGLONG ullAudioStreamOffset;
   3758   ULONGLONG SerializedwParam;
   3759   LONGLONG SerializedlParam;
   3760 } SPSERIALIZEDEVENT64;
   3761 #endif
   3762 #if 0
   3763 typedef struct SPEVENTEX {
   3764     WORD eEventId;
   3765     WORD elParamType;
   3766     ULONG ulStreamNum;
   3767     ULONGLONG ullAudioStreamOffset;
   3768     WPARAM wParam;
   3769     LPARAM lParam;
   3770     ULONGLONG ullAudioTimeOffset;
   3771 } SPEVENTEX;
   3772 #else
   3773 typedef struct SPEVENTEX {
   3774   SPEVENTENUM eEventId : 16;
   3775   SPEVENTLPARAMTYPE elParamType : 16;
   3776   ULONG ulStreamNum;
   3777   ULONGLONG ullAudioStreamOffset;
   3778   WPARAM wParam;
   3779   LPARAM lParam;
   3780   ULONGLONG ullAudioTimeOffset;
   3781 } SPEVENTEX;
   3782 #endif
   3783 typedef struct SPEVENTSOURCEINFO {
   3784     ULONGLONG ullEventInterest;
   3785     ULONGLONG ullQueuedInterest;
   3786     ULONG ulCount;
   3787 } SPEVENTSOURCEINFO;
   3788 /*****************************************************************************
   3789  * ISpEventSource interface
   3790  */
   3791 #ifndef __ISpEventSource_INTERFACE_DEFINED__
   3792 #define __ISpEventSource_INTERFACE_DEFINED__
   3793 
   3794 DEFINE_GUID(IID_ISpEventSource, 0xbe7a9cce, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
   3795 #if defined(__cplusplus) && !defined(CINTERFACE)
   3796 MIDL_INTERFACE("be7a9cce-5f9e-11d2-960f-00c04f8ee628")
   3797 ISpEventSource : public ISpNotifySource
   3798 {
   3799     virtual HRESULT STDMETHODCALLTYPE SetInterest(
   3800         ULONGLONG ullEventInterest,
   3801         ULONGLONG ullQueuedInterest) = 0;
   3802 
   3803     virtual HRESULT STDMETHODCALLTYPE GetEvents(
   3804         ULONG ulCount,
   3805         SPEVENT *pEventArray,
   3806         ULONG *pulFetched) = 0;
   3807 
   3808     virtual HRESULT STDMETHODCALLTYPE GetInfo(
   3809         SPEVENTSOURCEINFO *pInfo) = 0;
   3810 
   3811 };
   3812 #ifdef __CRT_UUID_DECL
   3813 __CRT_UUID_DECL(ISpEventSource, 0xbe7a9cce, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
   3814 #endif
   3815 #else
   3816 typedef struct ISpEventSourceVtbl {
   3817     BEGIN_INTERFACE
   3818 
   3819     /*** IUnknown methods ***/
   3820     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3821         ISpEventSource *This,
   3822         REFIID riid,
   3823         void **ppvObject);
   3824 
   3825     ULONG (STDMETHODCALLTYPE *AddRef)(
   3826         ISpEventSource *This);
   3827 
   3828     ULONG (STDMETHODCALLTYPE *Release)(
   3829         ISpEventSource *This);
   3830 
   3831     /*** ISpNotifySource methods ***/
   3832     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
   3833         ISpEventSource *This,
   3834         ISpNotifySink *pNotifySink);
   3835 
   3836     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
   3837         ISpEventSource *This,
   3838         HWND hWnd,
   3839         UINT Msg,
   3840         WPARAM wParam,
   3841         LPARAM lParam);
   3842 
   3843     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
   3844         ISpEventSource *This,
   3845         SPNOTIFYCALLBACK *pfnCallback,
   3846         WPARAM wParam,
   3847         LPARAM lParam);
   3848 
   3849     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
   3850         ISpEventSource *This,
   3851         ISpNotifyCallback *pSpCallback,
   3852         WPARAM wParam,
   3853         LPARAM lParam);
   3854 
   3855     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
   3856         ISpEventSource *This);
   3857 
   3858     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
   3859         ISpEventSource *This,
   3860         DWORD dwMilliseconds);
   3861 
   3862     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
   3863         ISpEventSource *This);
   3864 
   3865     /*** ISpEventSource methods ***/
   3866     HRESULT (STDMETHODCALLTYPE *SetInterest)(
   3867         ISpEventSource *This,
   3868         ULONGLONG ullEventInterest,
   3869         ULONGLONG ullQueuedInterest);
   3870 
   3871     HRESULT (STDMETHODCALLTYPE *GetEvents)(
   3872         ISpEventSource *This,
   3873         ULONG ulCount,
   3874         SPEVENT *pEventArray,
   3875         ULONG *pulFetched);
   3876 
   3877     HRESULT (STDMETHODCALLTYPE *GetInfo)(
   3878         ISpEventSource *This,
   3879         SPEVENTSOURCEINFO *pInfo);
   3880 
   3881     END_INTERFACE
   3882 } ISpEventSourceVtbl;
   3883 
   3884 interface ISpEventSource {
   3885     CONST_VTBL ISpEventSourceVtbl* lpVtbl;
   3886 };
   3887 
   3888 #ifdef COBJMACROS
   3889 #ifndef WIDL_C_INLINE_WRAPPERS
   3890 /*** IUnknown methods ***/
   3891 #define ISpEventSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3892 #define ISpEventSource_AddRef(This) (This)->lpVtbl->AddRef(This)
   3893 #define ISpEventSource_Release(This) (This)->lpVtbl->Release(This)
   3894 /*** ISpNotifySource methods ***/
   3895 #define ISpEventSource_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
   3896 #define ISpEventSource_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
   3897 #define ISpEventSource_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
   3898 #define ISpEventSource_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
   3899 #define ISpEventSource_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
   3900 #define ISpEventSource_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
   3901 #define ISpEventSource_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
   3902 /*** ISpEventSource methods ***/
   3903 #define ISpEventSource_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
   3904 #define ISpEventSource_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
   3905 #define ISpEventSource_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
   3906 #else
   3907 /*** IUnknown methods ***/
   3908 static inline HRESULT ISpEventSource_QueryInterface(ISpEventSource* This,REFIID riid,void **ppvObject) {
   3909     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3910 }
   3911 static inline ULONG ISpEventSource_AddRef(ISpEventSource* This) {
   3912     return This->lpVtbl->AddRef(This);
   3913 }
   3914 static inline ULONG ISpEventSource_Release(ISpEventSource* This) {
   3915     return This->lpVtbl->Release(This);
   3916 }
   3917 /*** ISpNotifySource methods ***/
   3918 static inline HRESULT ISpEventSource_SetNotifySink(ISpEventSource* This,ISpNotifySink *pNotifySink) {
   3919     return This->lpVtbl->SetNotifySink(This,pNotifySink);
   3920 }
   3921 static inline HRESULT ISpEventSource_SetNotifyWindowMessage(ISpEventSource* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
   3922     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
   3923 }
   3924 static inline HRESULT ISpEventSource_SetNotifyCallbackFunction(ISpEventSource* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
   3925     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
   3926 }
   3927 static inline HRESULT ISpEventSource_SetNotifyCallbackInterface(ISpEventSource* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
   3928     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
   3929 }
   3930 static inline HRESULT ISpEventSource_SetNotifyWin32Event(ISpEventSource* This) {
   3931     return This->lpVtbl->SetNotifyWin32Event(This);
   3932 }
   3933 static inline HRESULT ISpEventSource_WaitForNotifyEvent(ISpEventSource* This,DWORD dwMilliseconds) {
   3934     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
   3935 }
   3936 static inline HANDLE ISpEventSource_GetNotifyEventHandle(ISpEventSource* This) {
   3937     return This->lpVtbl->GetNotifyEventHandle(This);
   3938 }
   3939 /*** ISpEventSource methods ***/
   3940 static inline HRESULT ISpEventSource_SetInterest(ISpEventSource* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
   3941     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
   3942 }
   3943 static inline HRESULT ISpEventSource_GetEvents(ISpEventSource* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
   3944     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
   3945 }
   3946 static inline HRESULT ISpEventSource_GetInfo(ISpEventSource* This,SPEVENTSOURCEINFO *pInfo) {
   3947     return This->lpVtbl->GetInfo(This,pInfo);
   3948 }
   3949 #endif
   3950 #endif
   3951 
   3952 #endif
   3953 
   3954 
   3955 #endif  /* __ISpEventSource_INTERFACE_DEFINED__ */
   3956 
   3957 /*****************************************************************************
   3958  * ISpEventSource2 interface
   3959  */
   3960 #ifndef __ISpEventSource2_INTERFACE_DEFINED__
   3961 #define __ISpEventSource2_INTERFACE_DEFINED__
   3962 
   3963 DEFINE_GUID(IID_ISpEventSource2, 0x2373a435, 0x6a4b, 0x429e, 0xa6,0xac, 0xd4,0x23,0x1a,0x61,0x97,0x5b);
   3964 #if defined(__cplusplus) && !defined(CINTERFACE)
   3965 MIDL_INTERFACE("2373a435-6a4b-429e-a6ac-d4231a61975b")
   3966 ISpEventSource2 : public ISpEventSource
   3967 {
   3968     virtual HRESULT STDMETHODCALLTYPE GetEventsEx(
   3969         ULONG ulCount,
   3970         SPEVENTEX *pEventArray,
   3971         ULONG *pulFetched) = 0;
   3972 
   3973 };
   3974 #ifdef __CRT_UUID_DECL
   3975 __CRT_UUID_DECL(ISpEventSource2, 0x2373a435, 0x6a4b, 0x429e, 0xa6,0xac, 0xd4,0x23,0x1a,0x61,0x97,0x5b)
   3976 #endif
   3977 #else
   3978 typedef struct ISpEventSource2Vtbl {
   3979     BEGIN_INTERFACE
   3980 
   3981     /*** IUnknown methods ***/
   3982     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3983         ISpEventSource2 *This,
   3984         REFIID riid,
   3985         void **ppvObject);
   3986 
   3987     ULONG (STDMETHODCALLTYPE *AddRef)(
   3988         ISpEventSource2 *This);
   3989 
   3990     ULONG (STDMETHODCALLTYPE *Release)(
   3991         ISpEventSource2 *This);
   3992 
   3993     /*** ISpNotifySource methods ***/
   3994     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
   3995         ISpEventSource2 *This,
   3996         ISpNotifySink *pNotifySink);
   3997 
   3998     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
   3999         ISpEventSource2 *This,
   4000         HWND hWnd,
   4001         UINT Msg,
   4002         WPARAM wParam,
   4003         LPARAM lParam);
   4004 
   4005     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
   4006         ISpEventSource2 *This,
   4007         SPNOTIFYCALLBACK *pfnCallback,
   4008         WPARAM wParam,
   4009         LPARAM lParam);
   4010 
   4011     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
   4012         ISpEventSource2 *This,
   4013         ISpNotifyCallback *pSpCallback,
   4014         WPARAM wParam,
   4015         LPARAM lParam);
   4016 
   4017     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
   4018         ISpEventSource2 *This);
   4019 
   4020     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
   4021         ISpEventSource2 *This,
   4022         DWORD dwMilliseconds);
   4023 
   4024     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
   4025         ISpEventSource2 *This);
   4026 
   4027     /*** ISpEventSource methods ***/
   4028     HRESULT (STDMETHODCALLTYPE *SetInterest)(
   4029         ISpEventSource2 *This,
   4030         ULONGLONG ullEventInterest,
   4031         ULONGLONG ullQueuedInterest);
   4032 
   4033     HRESULT (STDMETHODCALLTYPE *GetEvents)(
   4034         ISpEventSource2 *This,
   4035         ULONG ulCount,
   4036         SPEVENT *pEventArray,
   4037         ULONG *pulFetched);
   4038 
   4039     HRESULT (STDMETHODCALLTYPE *GetInfo)(
   4040         ISpEventSource2 *This,
   4041         SPEVENTSOURCEINFO *pInfo);
   4042 
   4043     /*** ISpEventSource2 methods ***/
   4044     HRESULT (STDMETHODCALLTYPE *GetEventsEx)(
   4045         ISpEventSource2 *This,
   4046         ULONG ulCount,
   4047         SPEVENTEX *pEventArray,
   4048         ULONG *pulFetched);
   4049 
   4050     END_INTERFACE
   4051 } ISpEventSource2Vtbl;
   4052 
   4053 interface ISpEventSource2 {
   4054     CONST_VTBL ISpEventSource2Vtbl* lpVtbl;
   4055 };
   4056 
   4057 #ifdef COBJMACROS
   4058 #ifndef WIDL_C_INLINE_WRAPPERS
   4059 /*** IUnknown methods ***/
   4060 #define ISpEventSource2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4061 #define ISpEventSource2_AddRef(This) (This)->lpVtbl->AddRef(This)
   4062 #define ISpEventSource2_Release(This) (This)->lpVtbl->Release(This)
   4063 /*** ISpNotifySource methods ***/
   4064 #define ISpEventSource2_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
   4065 #define ISpEventSource2_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
   4066 #define ISpEventSource2_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
   4067 #define ISpEventSource2_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
   4068 #define ISpEventSource2_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
   4069 #define ISpEventSource2_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
   4070 #define ISpEventSource2_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
   4071 /*** ISpEventSource methods ***/
   4072 #define ISpEventSource2_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
   4073 #define ISpEventSource2_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
   4074 #define ISpEventSource2_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
   4075 /*** ISpEventSource2 methods ***/
   4076 #define ISpEventSource2_GetEventsEx(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEventsEx(This,ulCount,pEventArray,pulFetched)
   4077 #else
   4078 /*** IUnknown methods ***/
   4079 static inline HRESULT ISpEventSource2_QueryInterface(ISpEventSource2* This,REFIID riid,void **ppvObject) {
   4080     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4081 }
   4082 static inline ULONG ISpEventSource2_AddRef(ISpEventSource2* This) {
   4083     return This->lpVtbl->AddRef(This);
   4084 }
   4085 static inline ULONG ISpEventSource2_Release(ISpEventSource2* This) {
   4086     return This->lpVtbl->Release(This);
   4087 }
   4088 /*** ISpNotifySource methods ***/
   4089 static inline HRESULT ISpEventSource2_SetNotifySink(ISpEventSource2* This,ISpNotifySink *pNotifySink) {
   4090     return This->lpVtbl->SetNotifySink(This,pNotifySink);
   4091 }
   4092 static inline HRESULT ISpEventSource2_SetNotifyWindowMessage(ISpEventSource2* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
   4093     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
   4094 }
   4095 static inline HRESULT ISpEventSource2_SetNotifyCallbackFunction(ISpEventSource2* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
   4096     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
   4097 }
   4098 static inline HRESULT ISpEventSource2_SetNotifyCallbackInterface(ISpEventSource2* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
   4099     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
   4100 }
   4101 static inline HRESULT ISpEventSource2_SetNotifyWin32Event(ISpEventSource2* This) {
   4102     return This->lpVtbl->SetNotifyWin32Event(This);
   4103 }
   4104 static inline HRESULT ISpEventSource2_WaitForNotifyEvent(ISpEventSource2* This,DWORD dwMilliseconds) {
   4105     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
   4106 }
   4107 static inline HANDLE ISpEventSource2_GetNotifyEventHandle(ISpEventSource2* This) {
   4108     return This->lpVtbl->GetNotifyEventHandle(This);
   4109 }
   4110 /*** ISpEventSource methods ***/
   4111 static inline HRESULT ISpEventSource2_SetInterest(ISpEventSource2* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
   4112     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
   4113 }
   4114 static inline HRESULT ISpEventSource2_GetEvents(ISpEventSource2* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
   4115     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
   4116 }
   4117 static inline HRESULT ISpEventSource2_GetInfo(ISpEventSource2* This,SPEVENTSOURCEINFO *pInfo) {
   4118     return This->lpVtbl->GetInfo(This,pInfo);
   4119 }
   4120 /*** ISpEventSource2 methods ***/
   4121 static inline HRESULT ISpEventSource2_GetEventsEx(ISpEventSource2* This,ULONG ulCount,SPEVENTEX *pEventArray,ULONG *pulFetched) {
   4122     return This->lpVtbl->GetEventsEx(This,ulCount,pEventArray,pulFetched);
   4123 }
   4124 #endif
   4125 #endif
   4126 
   4127 #endif
   4128 
   4129 
   4130 #endif  /* __ISpEventSource2_INTERFACE_DEFINED__ */
   4131 
   4132 /*****************************************************************************
   4133  * ISpEventSink interface
   4134  */
   4135 #ifndef __ISpEventSink_INTERFACE_DEFINED__
   4136 #define __ISpEventSink_INTERFACE_DEFINED__
   4137 
   4138 DEFINE_GUID(IID_ISpEventSink, 0xbe7a9cc9, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
   4139 #if defined(__cplusplus) && !defined(CINTERFACE)
   4140 MIDL_INTERFACE("be7a9cc9-5f9e-11d2-960f-00c04f8ee628")
   4141 ISpEventSink : public IUnknown
   4142 {
   4143     virtual HRESULT STDMETHODCALLTYPE AddEvents(
   4144         const SPEVENT *pEventArray,
   4145         ULONG ulCount) = 0;
   4146 
   4147     virtual HRESULT STDMETHODCALLTYPE GetEventInterest(
   4148         ULONGLONG *pullEventInterest) = 0;
   4149 
   4150 };
   4151 #ifdef __CRT_UUID_DECL
   4152 __CRT_UUID_DECL(ISpEventSink, 0xbe7a9cc9, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
   4153 #endif
   4154 #else
   4155 typedef struct ISpEventSinkVtbl {
   4156     BEGIN_INTERFACE
   4157 
   4158     /*** IUnknown methods ***/
   4159     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4160         ISpEventSink *This,
   4161         REFIID riid,
   4162         void **ppvObject);
   4163 
   4164     ULONG (STDMETHODCALLTYPE *AddRef)(
   4165         ISpEventSink *This);
   4166 
   4167     ULONG (STDMETHODCALLTYPE *Release)(
   4168         ISpEventSink *This);
   4169 
   4170     /*** ISpEventSink methods ***/
   4171     HRESULT (STDMETHODCALLTYPE *AddEvents)(
   4172         ISpEventSink *This,
   4173         const SPEVENT *pEventArray,
   4174         ULONG ulCount);
   4175 
   4176     HRESULT (STDMETHODCALLTYPE *GetEventInterest)(
   4177         ISpEventSink *This,
   4178         ULONGLONG *pullEventInterest);
   4179 
   4180     END_INTERFACE
   4181 } ISpEventSinkVtbl;
   4182 
   4183 interface ISpEventSink {
   4184     CONST_VTBL ISpEventSinkVtbl* lpVtbl;
   4185 };
   4186 
   4187 #ifdef COBJMACROS
   4188 #ifndef WIDL_C_INLINE_WRAPPERS
   4189 /*** IUnknown methods ***/
   4190 #define ISpEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4191 #define ISpEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
   4192 #define ISpEventSink_Release(This) (This)->lpVtbl->Release(This)
   4193 /*** ISpEventSink methods ***/
   4194 #define ISpEventSink_AddEvents(This,pEventArray,ulCount) (This)->lpVtbl->AddEvents(This,pEventArray,ulCount)
   4195 #define ISpEventSink_GetEventInterest(This,pullEventInterest) (This)->lpVtbl->GetEventInterest(This,pullEventInterest)
   4196 #else
   4197 /*** IUnknown methods ***/
   4198 static inline HRESULT ISpEventSink_QueryInterface(ISpEventSink* This,REFIID riid,void **ppvObject) {
   4199     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4200 }
   4201 static inline ULONG ISpEventSink_AddRef(ISpEventSink* This) {
   4202     return This->lpVtbl->AddRef(This);
   4203 }
   4204 static inline ULONG ISpEventSink_Release(ISpEventSink* This) {
   4205     return This->lpVtbl->Release(This);
   4206 }
   4207 /*** ISpEventSink methods ***/
   4208 static inline HRESULT ISpEventSink_AddEvents(ISpEventSink* This,const SPEVENT *pEventArray,ULONG ulCount) {
   4209     return This->lpVtbl->AddEvents(This,pEventArray,ulCount);
   4210 }
   4211 static inline HRESULT ISpEventSink_GetEventInterest(ISpEventSink* This,ULONGLONG *pullEventInterest) {
   4212     return This->lpVtbl->GetEventInterest(This,pullEventInterest);
   4213 }
   4214 #endif
   4215 #endif
   4216 
   4217 #endif
   4218 
   4219 
   4220 #endif  /* __ISpEventSink_INTERFACE_DEFINED__ */
   4221 
   4222 /*****************************************************************************
   4223  * ISpStreamFormat interface
   4224  */
   4225 #ifndef __ISpStreamFormat_INTERFACE_DEFINED__
   4226 #define __ISpStreamFormat_INTERFACE_DEFINED__
   4227 
   4228 DEFINE_GUID(IID_ISpStreamFormat, 0xbed530be, 0x2606, 0x4f4d, 0xa1,0xc0, 0x54,0xc5,0xcd,0xa5,0x56,0x6f);
   4229 #if defined(__cplusplus) && !defined(CINTERFACE)
   4230 MIDL_INTERFACE("bed530be-2606-4f4d-a1c0-54c5cda5566f")
   4231 ISpStreamFormat : public IStream
   4232 {
   4233     virtual HRESULT STDMETHODCALLTYPE GetFormat(
   4234         GUID *pguidFormatId,
   4235         WAVEFORMATEX **ppCoMemWaveFormatEx) = 0;
   4236 
   4237 };
   4238 #ifdef __CRT_UUID_DECL
   4239 __CRT_UUID_DECL(ISpStreamFormat, 0xbed530be, 0x2606, 0x4f4d, 0xa1,0xc0, 0x54,0xc5,0xcd,0xa5,0x56,0x6f)
   4240 #endif
   4241 #else
   4242 typedef struct ISpStreamFormatVtbl {
   4243     BEGIN_INTERFACE
   4244 
   4245     /*** IUnknown methods ***/
   4246     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4247         ISpStreamFormat *This,
   4248         REFIID riid,
   4249         void **ppvObject);
   4250 
   4251     ULONG (STDMETHODCALLTYPE *AddRef)(
   4252         ISpStreamFormat *This);
   4253 
   4254     ULONG (STDMETHODCALLTYPE *Release)(
   4255         ISpStreamFormat *This);
   4256 
   4257     /*** ISequentialStream methods ***/
   4258     HRESULT (STDMETHODCALLTYPE *Read)(
   4259         ISpStreamFormat *This,
   4260         void *pv,
   4261         ULONG cb,
   4262         ULONG *pcbRead);
   4263 
   4264     HRESULT (STDMETHODCALLTYPE *Write)(
   4265         ISpStreamFormat *This,
   4266         const void *pv,
   4267         ULONG cb,
   4268         ULONG *pcbWritten);
   4269 
   4270     /*** IStream methods ***/
   4271     HRESULT (STDMETHODCALLTYPE *Seek)(
   4272         ISpStreamFormat *This,
   4273         LARGE_INTEGER dlibMove,
   4274         DWORD dwOrigin,
   4275         ULARGE_INTEGER *plibNewPosition);
   4276 
   4277     HRESULT (STDMETHODCALLTYPE *SetSize)(
   4278         ISpStreamFormat *This,
   4279         ULARGE_INTEGER libNewSize);
   4280 
   4281     HRESULT (STDMETHODCALLTYPE *CopyTo)(
   4282         ISpStreamFormat *This,
   4283         IStream *pstm,
   4284         ULARGE_INTEGER cb,
   4285         ULARGE_INTEGER *pcbRead,
   4286         ULARGE_INTEGER *pcbWritten);
   4287 
   4288     HRESULT (STDMETHODCALLTYPE *Commit)(
   4289         ISpStreamFormat *This,
   4290         DWORD grfCommitFlags);
   4291 
   4292     HRESULT (STDMETHODCALLTYPE *Revert)(
   4293         ISpStreamFormat *This);
   4294 
   4295     HRESULT (STDMETHODCALLTYPE *LockRegion)(
   4296         ISpStreamFormat *This,
   4297         ULARGE_INTEGER libOffset,
   4298         ULARGE_INTEGER cb,
   4299         DWORD dwLockType);
   4300 
   4301     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
   4302         ISpStreamFormat *This,
   4303         ULARGE_INTEGER libOffset,
   4304         ULARGE_INTEGER cb,
   4305         DWORD dwLockType);
   4306 
   4307     HRESULT (STDMETHODCALLTYPE *Stat)(
   4308         ISpStreamFormat *This,
   4309         STATSTG *pstatstg,
   4310         DWORD grfStatFlag);
   4311 
   4312     HRESULT (STDMETHODCALLTYPE *Clone)(
   4313         ISpStreamFormat *This,
   4314         IStream **ppstm);
   4315 
   4316     /*** ISpStreamFormat methods ***/
   4317     HRESULT (STDMETHODCALLTYPE *GetFormat)(
   4318         ISpStreamFormat *This,
   4319         GUID *pguidFormatId,
   4320         WAVEFORMATEX **ppCoMemWaveFormatEx);
   4321 
   4322     END_INTERFACE
   4323 } ISpStreamFormatVtbl;
   4324 
   4325 interface ISpStreamFormat {
   4326     CONST_VTBL ISpStreamFormatVtbl* lpVtbl;
   4327 };
   4328 
   4329 #ifdef COBJMACROS
   4330 #ifndef WIDL_C_INLINE_WRAPPERS
   4331 /*** IUnknown methods ***/
   4332 #define ISpStreamFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4333 #define ISpStreamFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
   4334 #define ISpStreamFormat_Release(This) (This)->lpVtbl->Release(This)
   4335 /*** ISequentialStream methods ***/
   4336 #define ISpStreamFormat_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
   4337 #define ISpStreamFormat_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
   4338 /*** IStream methods ***/
   4339 #define ISpStreamFormat_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
   4340 #define ISpStreamFormat_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
   4341 #define ISpStreamFormat_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
   4342 #define ISpStreamFormat_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
   4343 #define ISpStreamFormat_Revert(This) (This)->lpVtbl->Revert(This)
   4344 #define ISpStreamFormat_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
   4345 #define ISpStreamFormat_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
   4346 #define ISpStreamFormat_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
   4347 #define ISpStreamFormat_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
   4348 /*** ISpStreamFormat methods ***/
   4349 #define ISpStreamFormat_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
   4350 #else
   4351 /*** IUnknown methods ***/
   4352 static inline HRESULT ISpStreamFormat_QueryInterface(ISpStreamFormat* This,REFIID riid,void **ppvObject) {
   4353     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4354 }
   4355 static inline ULONG ISpStreamFormat_AddRef(ISpStreamFormat* This) {
   4356     return This->lpVtbl->AddRef(This);
   4357 }
   4358 static inline ULONG ISpStreamFormat_Release(ISpStreamFormat* This) {
   4359     return This->lpVtbl->Release(This);
   4360 }
   4361 /*** ISequentialStream methods ***/
   4362 static inline HRESULT ISpStreamFormat_Read(ISpStreamFormat* This,void *pv,ULONG cb,ULONG *pcbRead) {
   4363     return This->lpVtbl->Read(This,pv,cb,pcbRead);
   4364 }
   4365 static inline HRESULT ISpStreamFormat_Write(ISpStreamFormat* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
   4366     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
   4367 }
   4368 /*** IStream methods ***/
   4369 static inline HRESULT ISpStreamFormat_Seek(ISpStreamFormat* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
   4370     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
   4371 }
   4372 static inline HRESULT ISpStreamFormat_SetSize(ISpStreamFormat* This,ULARGE_INTEGER libNewSize) {
   4373     return This->lpVtbl->SetSize(This,libNewSize);
   4374 }
   4375 static inline HRESULT ISpStreamFormat_CopyTo(ISpStreamFormat* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
   4376     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
   4377 }
   4378 static inline HRESULT ISpStreamFormat_Commit(ISpStreamFormat* This,DWORD grfCommitFlags) {
   4379     return This->lpVtbl->Commit(This,grfCommitFlags);
   4380 }
   4381 static inline HRESULT ISpStreamFormat_Revert(ISpStreamFormat* This) {
   4382     return This->lpVtbl->Revert(This);
   4383 }
   4384 static inline HRESULT ISpStreamFormat_LockRegion(ISpStreamFormat* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   4385     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
   4386 }
   4387 static inline HRESULT ISpStreamFormat_UnlockRegion(ISpStreamFormat* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   4388     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
   4389 }
   4390 static inline HRESULT ISpStreamFormat_Stat(ISpStreamFormat* This,STATSTG *pstatstg,DWORD grfStatFlag) {
   4391     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
   4392 }
   4393 static inline HRESULT ISpStreamFormat_Clone(ISpStreamFormat* This,IStream **ppstm) {
   4394     return This->lpVtbl->Clone(This,ppstm);
   4395 }
   4396 /*** ISpStreamFormat methods ***/
   4397 static inline HRESULT ISpStreamFormat_GetFormat(ISpStreamFormat* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
   4398     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
   4399 }
   4400 #endif
   4401 #endif
   4402 
   4403 #endif
   4404 
   4405 
   4406 #endif  /* __ISpStreamFormat_INTERFACE_DEFINED__ */
   4407 
   4408 /*****************************************************************************
   4409  * ISpStream interface
   4410  */
   4411 #ifndef __ISpStream_INTERFACE_DEFINED__
   4412 #define __ISpStream_INTERFACE_DEFINED__
   4413 
   4414 DEFINE_GUID(IID_ISpStream, 0x12e3cca9, 0x7518, 0x44c5, 0xa5,0xe7, 0xba,0x5a,0x79,0xcb,0x92,0x9e);
   4415 #if defined(__cplusplus) && !defined(CINTERFACE)
   4416 MIDL_INTERFACE("12e3cca9-7518-44c5-a5e7-ba5a79cb929e")
   4417 ISpStream : public ISpStreamFormat
   4418 {
   4419     virtual HRESULT STDMETHODCALLTYPE SetBaseStream(
   4420         IStream *pStream,
   4421         REFGUID rguidFormat,
   4422         const WAVEFORMATEX *pWaveFormatEx) = 0;
   4423 
   4424     virtual HRESULT STDMETHODCALLTYPE GetBaseStream(
   4425         IStream **ppStream) = 0;
   4426 
   4427     virtual HRESULT STDMETHODCALLTYPE BindToFile(
   4428         LPCWSTR pszFileName,
   4429         SPFILEMODE eMode,
   4430         const GUID *pFormatId,
   4431         const WAVEFORMATEX *pWaveFormatEx,
   4432         ULONGLONG ullEventInterest) = 0;
   4433 
   4434     virtual HRESULT STDMETHODCALLTYPE Close(
   4435         ) = 0;
   4436 
   4437 };
   4438 #ifdef __CRT_UUID_DECL
   4439 __CRT_UUID_DECL(ISpStream, 0x12e3cca9, 0x7518, 0x44c5, 0xa5,0xe7, 0xba,0x5a,0x79,0xcb,0x92,0x9e)
   4440 #endif
   4441 #else
   4442 typedef struct ISpStreamVtbl {
   4443     BEGIN_INTERFACE
   4444 
   4445     /*** IUnknown methods ***/
   4446     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4447         ISpStream *This,
   4448         REFIID riid,
   4449         void **ppvObject);
   4450 
   4451     ULONG (STDMETHODCALLTYPE *AddRef)(
   4452         ISpStream *This);
   4453 
   4454     ULONG (STDMETHODCALLTYPE *Release)(
   4455         ISpStream *This);
   4456 
   4457     /*** ISequentialStream methods ***/
   4458     HRESULT (STDMETHODCALLTYPE *Read)(
   4459         ISpStream *This,
   4460         void *pv,
   4461         ULONG cb,
   4462         ULONG *pcbRead);
   4463 
   4464     HRESULT (STDMETHODCALLTYPE *Write)(
   4465         ISpStream *This,
   4466         const void *pv,
   4467         ULONG cb,
   4468         ULONG *pcbWritten);
   4469 
   4470     /*** IStream methods ***/
   4471     HRESULT (STDMETHODCALLTYPE *Seek)(
   4472         ISpStream *This,
   4473         LARGE_INTEGER dlibMove,
   4474         DWORD dwOrigin,
   4475         ULARGE_INTEGER *plibNewPosition);
   4476 
   4477     HRESULT (STDMETHODCALLTYPE *SetSize)(
   4478         ISpStream *This,
   4479         ULARGE_INTEGER libNewSize);
   4480 
   4481     HRESULT (STDMETHODCALLTYPE *CopyTo)(
   4482         ISpStream *This,
   4483         IStream *pstm,
   4484         ULARGE_INTEGER cb,
   4485         ULARGE_INTEGER *pcbRead,
   4486         ULARGE_INTEGER *pcbWritten);
   4487 
   4488     HRESULT (STDMETHODCALLTYPE *Commit)(
   4489         ISpStream *This,
   4490         DWORD grfCommitFlags);
   4491 
   4492     HRESULT (STDMETHODCALLTYPE *Revert)(
   4493         ISpStream *This);
   4494 
   4495     HRESULT (STDMETHODCALLTYPE *LockRegion)(
   4496         ISpStream *This,
   4497         ULARGE_INTEGER libOffset,
   4498         ULARGE_INTEGER cb,
   4499         DWORD dwLockType);
   4500 
   4501     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
   4502         ISpStream *This,
   4503         ULARGE_INTEGER libOffset,
   4504         ULARGE_INTEGER cb,
   4505         DWORD dwLockType);
   4506 
   4507     HRESULT (STDMETHODCALLTYPE *Stat)(
   4508         ISpStream *This,
   4509         STATSTG *pstatstg,
   4510         DWORD grfStatFlag);
   4511 
   4512     HRESULT (STDMETHODCALLTYPE *Clone)(
   4513         ISpStream *This,
   4514         IStream **ppstm);
   4515 
   4516     /*** ISpStreamFormat methods ***/
   4517     HRESULT (STDMETHODCALLTYPE *GetFormat)(
   4518         ISpStream *This,
   4519         GUID *pguidFormatId,
   4520         WAVEFORMATEX **ppCoMemWaveFormatEx);
   4521 
   4522     /*** ISpStream methods ***/
   4523     HRESULT (STDMETHODCALLTYPE *SetBaseStream)(
   4524         ISpStream *This,
   4525         IStream *pStream,
   4526         REFGUID rguidFormat,
   4527         const WAVEFORMATEX *pWaveFormatEx);
   4528 
   4529     HRESULT (STDMETHODCALLTYPE *GetBaseStream)(
   4530         ISpStream *This,
   4531         IStream **ppStream);
   4532 
   4533     HRESULT (STDMETHODCALLTYPE *BindToFile)(
   4534         ISpStream *This,
   4535         LPCWSTR pszFileName,
   4536         SPFILEMODE eMode,
   4537         const GUID *pFormatId,
   4538         const WAVEFORMATEX *pWaveFormatEx,
   4539         ULONGLONG ullEventInterest);
   4540 
   4541     HRESULT (STDMETHODCALLTYPE *Close)(
   4542         ISpStream *This);
   4543 
   4544     END_INTERFACE
   4545 } ISpStreamVtbl;
   4546 
   4547 interface ISpStream {
   4548     CONST_VTBL ISpStreamVtbl* lpVtbl;
   4549 };
   4550 
   4551 #ifdef COBJMACROS
   4552 #ifndef WIDL_C_INLINE_WRAPPERS
   4553 /*** IUnknown methods ***/
   4554 #define ISpStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4555 #define ISpStream_AddRef(This) (This)->lpVtbl->AddRef(This)
   4556 #define ISpStream_Release(This) (This)->lpVtbl->Release(This)
   4557 /*** ISequentialStream methods ***/
   4558 #define ISpStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
   4559 #define ISpStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
   4560 /*** IStream methods ***/
   4561 #define ISpStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
   4562 #define ISpStream_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
   4563 #define ISpStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
   4564 #define ISpStream_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
   4565 #define ISpStream_Revert(This) (This)->lpVtbl->Revert(This)
   4566 #define ISpStream_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
   4567 #define ISpStream_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
   4568 #define ISpStream_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
   4569 #define ISpStream_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
   4570 /*** ISpStreamFormat methods ***/
   4571 #define ISpStream_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
   4572 /*** ISpStream methods ***/
   4573 #define ISpStream_SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx) (This)->lpVtbl->SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx)
   4574 #define ISpStream_GetBaseStream(This,ppStream) (This)->lpVtbl->GetBaseStream(This,ppStream)
   4575 #define ISpStream_BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest) (This)->lpVtbl->BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest)
   4576 #define ISpStream_Close(This) (This)->lpVtbl->Close(This)
   4577 #else
   4578 /*** IUnknown methods ***/
   4579 static inline HRESULT ISpStream_QueryInterface(ISpStream* This,REFIID riid,void **ppvObject) {
   4580     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4581 }
   4582 static inline ULONG ISpStream_AddRef(ISpStream* This) {
   4583     return This->lpVtbl->AddRef(This);
   4584 }
   4585 static inline ULONG ISpStream_Release(ISpStream* This) {
   4586     return This->lpVtbl->Release(This);
   4587 }
   4588 /*** ISequentialStream methods ***/
   4589 static inline HRESULT ISpStream_Read(ISpStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
   4590     return This->lpVtbl->Read(This,pv,cb,pcbRead);
   4591 }
   4592 static inline HRESULT ISpStream_Write(ISpStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
   4593     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
   4594 }
   4595 /*** IStream methods ***/
   4596 static inline HRESULT ISpStream_Seek(ISpStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
   4597     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
   4598 }
   4599 static inline HRESULT ISpStream_SetSize(ISpStream* This,ULARGE_INTEGER libNewSize) {
   4600     return This->lpVtbl->SetSize(This,libNewSize);
   4601 }
   4602 static inline HRESULT ISpStream_CopyTo(ISpStream* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
   4603     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
   4604 }
   4605 static inline HRESULT ISpStream_Commit(ISpStream* This,DWORD grfCommitFlags) {
   4606     return This->lpVtbl->Commit(This,grfCommitFlags);
   4607 }
   4608 static inline HRESULT ISpStream_Revert(ISpStream* This) {
   4609     return This->lpVtbl->Revert(This);
   4610 }
   4611 static inline HRESULT ISpStream_LockRegion(ISpStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   4612     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
   4613 }
   4614 static inline HRESULT ISpStream_UnlockRegion(ISpStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   4615     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
   4616 }
   4617 static inline HRESULT ISpStream_Stat(ISpStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
   4618     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
   4619 }
   4620 static inline HRESULT ISpStream_Clone(ISpStream* This,IStream **ppstm) {
   4621     return This->lpVtbl->Clone(This,ppstm);
   4622 }
   4623 /*** ISpStreamFormat methods ***/
   4624 static inline HRESULT ISpStream_GetFormat(ISpStream* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
   4625     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
   4626 }
   4627 /*** ISpStream methods ***/
   4628 static inline HRESULT ISpStream_SetBaseStream(ISpStream* This,IStream *pStream,REFGUID rguidFormat,const WAVEFORMATEX *pWaveFormatEx) {
   4629     return This->lpVtbl->SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx);
   4630 }
   4631 static inline HRESULT ISpStream_GetBaseStream(ISpStream* This,IStream **ppStream) {
   4632     return This->lpVtbl->GetBaseStream(This,ppStream);
   4633 }
   4634 static inline HRESULT ISpStream_BindToFile(ISpStream* This,LPCWSTR pszFileName,SPFILEMODE eMode,const GUID *pFormatId,const WAVEFORMATEX *pWaveFormatEx,ULONGLONG ullEventInterest) {
   4635     return This->lpVtbl->BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest);
   4636 }
   4637 static inline HRESULT ISpStream_Close(ISpStream* This) {
   4638     return This->lpVtbl->Close(This);
   4639 }
   4640 #endif
   4641 #endif
   4642 
   4643 #endif
   4644 
   4645 
   4646 #endif  /* __ISpStream_INTERFACE_DEFINED__ */
   4647 
   4648 /*****************************************************************************
   4649  * ISpStreamFormatConverter interface
   4650  */
   4651 #ifndef __ISpStreamFormatConverter_INTERFACE_DEFINED__
   4652 #define __ISpStreamFormatConverter_INTERFACE_DEFINED__
   4653 
   4654 DEFINE_GUID(IID_ISpStreamFormatConverter, 0x678a932c, 0xea71, 0x4446, 0x9b,0x41, 0x78,0xfd,0xa6,0x28,0x0a,0x29);
   4655 #if defined(__cplusplus) && !defined(CINTERFACE)
   4656 MIDL_INTERFACE("678a932c-ea71-4446-9b41-78fda6280a29")
   4657 ISpStreamFormatConverter : public ISpStreamFormat
   4658 {
   4659     virtual HRESULT STDMETHODCALLTYPE SetBaseStream(
   4660         ISpStreamFormat *pStream,
   4661         WINBOOL fSetFormatToBaseStreamFormat,
   4662         WINBOOL fWriteToBaseStream) = 0;
   4663 
   4664     virtual HRESULT STDMETHODCALLTYPE GetBaseStream(
   4665         ISpStreamFormat **ppStream) = 0;
   4666 
   4667     virtual HRESULT STDMETHODCALLTYPE SetFormat(
   4668         REFGUID rguidFormatIdOfConvertedStream,
   4669         const WAVEFORMATEX *pWaveFormatExOfConvertedStream) = 0;
   4670 
   4671     virtual HRESULT STDMETHODCALLTYPE ResetSeekPosition(
   4672         ) = 0;
   4673 
   4674     virtual HRESULT STDMETHODCALLTYPE ScaleConvertedToBaseOffset(
   4675         ULONGLONG ullOffsetConvertedStream,
   4676         ULONGLONG *pullOffsetBaseStream) = 0;
   4677 
   4678     virtual HRESULT STDMETHODCALLTYPE ScaleBaseToConvertedOffset(
   4679         ULONGLONG ullOffsetBaseStream,
   4680         ULONGLONG *pullOffsetConvertedStream) = 0;
   4681 
   4682 };
   4683 #ifdef __CRT_UUID_DECL
   4684 __CRT_UUID_DECL(ISpStreamFormatConverter, 0x678a932c, 0xea71, 0x4446, 0x9b,0x41, 0x78,0xfd,0xa6,0x28,0x0a,0x29)
   4685 #endif
   4686 #else
   4687 typedef struct ISpStreamFormatConverterVtbl {
   4688     BEGIN_INTERFACE
   4689 
   4690     /*** IUnknown methods ***/
   4691     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4692         ISpStreamFormatConverter *This,
   4693         REFIID riid,
   4694         void **ppvObject);
   4695 
   4696     ULONG (STDMETHODCALLTYPE *AddRef)(
   4697         ISpStreamFormatConverter *This);
   4698 
   4699     ULONG (STDMETHODCALLTYPE *Release)(
   4700         ISpStreamFormatConverter *This);
   4701 
   4702     /*** ISequentialStream methods ***/
   4703     HRESULT (STDMETHODCALLTYPE *Read)(
   4704         ISpStreamFormatConverter *This,
   4705         void *pv,
   4706         ULONG cb,
   4707         ULONG *pcbRead);
   4708 
   4709     HRESULT (STDMETHODCALLTYPE *Write)(
   4710         ISpStreamFormatConverter *This,
   4711         const void *pv,
   4712         ULONG cb,
   4713         ULONG *pcbWritten);
   4714 
   4715     /*** IStream methods ***/
   4716     HRESULT (STDMETHODCALLTYPE *Seek)(
   4717         ISpStreamFormatConverter *This,
   4718         LARGE_INTEGER dlibMove,
   4719         DWORD dwOrigin,
   4720         ULARGE_INTEGER *plibNewPosition);
   4721 
   4722     HRESULT (STDMETHODCALLTYPE *SetSize)(
   4723         ISpStreamFormatConverter *This,
   4724         ULARGE_INTEGER libNewSize);
   4725 
   4726     HRESULT (STDMETHODCALLTYPE *CopyTo)(
   4727         ISpStreamFormatConverter *This,
   4728         IStream *pstm,
   4729         ULARGE_INTEGER cb,
   4730         ULARGE_INTEGER *pcbRead,
   4731         ULARGE_INTEGER *pcbWritten);
   4732 
   4733     HRESULT (STDMETHODCALLTYPE *Commit)(
   4734         ISpStreamFormatConverter *This,
   4735         DWORD grfCommitFlags);
   4736 
   4737     HRESULT (STDMETHODCALLTYPE *Revert)(
   4738         ISpStreamFormatConverter *This);
   4739 
   4740     HRESULT (STDMETHODCALLTYPE *LockRegion)(
   4741         ISpStreamFormatConverter *This,
   4742         ULARGE_INTEGER libOffset,
   4743         ULARGE_INTEGER cb,
   4744         DWORD dwLockType);
   4745 
   4746     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
   4747         ISpStreamFormatConverter *This,
   4748         ULARGE_INTEGER libOffset,
   4749         ULARGE_INTEGER cb,
   4750         DWORD dwLockType);
   4751 
   4752     HRESULT (STDMETHODCALLTYPE *Stat)(
   4753         ISpStreamFormatConverter *This,
   4754         STATSTG *pstatstg,
   4755         DWORD grfStatFlag);
   4756 
   4757     HRESULT (STDMETHODCALLTYPE *Clone)(
   4758         ISpStreamFormatConverter *This,
   4759         IStream **ppstm);
   4760 
   4761     /*** ISpStreamFormat methods ***/
   4762     HRESULT (STDMETHODCALLTYPE *GetFormat)(
   4763         ISpStreamFormatConverter *This,
   4764         GUID *pguidFormatId,
   4765         WAVEFORMATEX **ppCoMemWaveFormatEx);
   4766 
   4767     /*** ISpStreamFormatConverter methods ***/
   4768     HRESULT (STDMETHODCALLTYPE *SetBaseStream)(
   4769         ISpStreamFormatConverter *This,
   4770         ISpStreamFormat *pStream,
   4771         WINBOOL fSetFormatToBaseStreamFormat,
   4772         WINBOOL fWriteToBaseStream);
   4773 
   4774     HRESULT (STDMETHODCALLTYPE *GetBaseStream)(
   4775         ISpStreamFormatConverter *This,
   4776         ISpStreamFormat **ppStream);
   4777 
   4778     HRESULT (STDMETHODCALLTYPE *SetFormat)(
   4779         ISpStreamFormatConverter *This,
   4780         REFGUID rguidFormatIdOfConvertedStream,
   4781         const WAVEFORMATEX *pWaveFormatExOfConvertedStream);
   4782 
   4783     HRESULT (STDMETHODCALLTYPE *ResetSeekPosition)(
   4784         ISpStreamFormatConverter *This);
   4785 
   4786     HRESULT (STDMETHODCALLTYPE *ScaleConvertedToBaseOffset)(
   4787         ISpStreamFormatConverter *This,
   4788         ULONGLONG ullOffsetConvertedStream,
   4789         ULONGLONG *pullOffsetBaseStream);
   4790 
   4791     HRESULT (STDMETHODCALLTYPE *ScaleBaseToConvertedOffset)(
   4792         ISpStreamFormatConverter *This,
   4793         ULONGLONG ullOffsetBaseStream,
   4794         ULONGLONG *pullOffsetConvertedStream);
   4795 
   4796     END_INTERFACE
   4797 } ISpStreamFormatConverterVtbl;
   4798 
   4799 interface ISpStreamFormatConverter {
   4800     CONST_VTBL ISpStreamFormatConverterVtbl* lpVtbl;
   4801 };
   4802 
   4803 #ifdef COBJMACROS
   4804 #ifndef WIDL_C_INLINE_WRAPPERS
   4805 /*** IUnknown methods ***/
   4806 #define ISpStreamFormatConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4807 #define ISpStreamFormatConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
   4808 #define ISpStreamFormatConverter_Release(This) (This)->lpVtbl->Release(This)
   4809 /*** ISequentialStream methods ***/
   4810 #define ISpStreamFormatConverter_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
   4811 #define ISpStreamFormatConverter_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
   4812 /*** IStream methods ***/
   4813 #define ISpStreamFormatConverter_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
   4814 #define ISpStreamFormatConverter_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
   4815 #define ISpStreamFormatConverter_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
   4816 #define ISpStreamFormatConverter_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
   4817 #define ISpStreamFormatConverter_Revert(This) (This)->lpVtbl->Revert(This)
   4818 #define ISpStreamFormatConverter_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
   4819 #define ISpStreamFormatConverter_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
   4820 #define ISpStreamFormatConverter_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
   4821 #define ISpStreamFormatConverter_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
   4822 /*** ISpStreamFormat methods ***/
   4823 #define ISpStreamFormatConverter_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
   4824 /*** ISpStreamFormatConverter methods ***/
   4825 #define ISpStreamFormatConverter_SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream) (This)->lpVtbl->SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream)
   4826 #define ISpStreamFormatConverter_GetBaseStream(This,ppStream) (This)->lpVtbl->GetBaseStream(This,ppStream)
   4827 #define ISpStreamFormatConverter_SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream) (This)->lpVtbl->SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream)
   4828 #define ISpStreamFormatConverter_ResetSeekPosition(This) (This)->lpVtbl->ResetSeekPosition(This)
   4829 #define ISpStreamFormatConverter_ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream) (This)->lpVtbl->ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream)
   4830 #define ISpStreamFormatConverter_ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream) (This)->lpVtbl->ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream)
   4831 #else
   4832 /*** IUnknown methods ***/
   4833 static inline HRESULT ISpStreamFormatConverter_QueryInterface(ISpStreamFormatConverter* This,REFIID riid,void **ppvObject) {
   4834     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4835 }
   4836 static inline ULONG ISpStreamFormatConverter_AddRef(ISpStreamFormatConverter* This) {
   4837     return This->lpVtbl->AddRef(This);
   4838 }
   4839 static inline ULONG ISpStreamFormatConverter_Release(ISpStreamFormatConverter* This) {
   4840     return This->lpVtbl->Release(This);
   4841 }
   4842 /*** ISequentialStream methods ***/
   4843 static inline HRESULT ISpStreamFormatConverter_Read(ISpStreamFormatConverter* This,void *pv,ULONG cb,ULONG *pcbRead) {
   4844     return This->lpVtbl->Read(This,pv,cb,pcbRead);
   4845 }
   4846 static inline HRESULT ISpStreamFormatConverter_Write(ISpStreamFormatConverter* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
   4847     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
   4848 }
   4849 /*** IStream methods ***/
   4850 static inline HRESULT ISpStreamFormatConverter_Seek(ISpStreamFormatConverter* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
   4851     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
   4852 }
   4853 static inline HRESULT ISpStreamFormatConverter_SetSize(ISpStreamFormatConverter* This,ULARGE_INTEGER libNewSize) {
   4854     return This->lpVtbl->SetSize(This,libNewSize);
   4855 }
   4856 static inline HRESULT ISpStreamFormatConverter_CopyTo(ISpStreamFormatConverter* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
   4857     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
   4858 }
   4859 static inline HRESULT ISpStreamFormatConverter_Commit(ISpStreamFormatConverter* This,DWORD grfCommitFlags) {
   4860     return This->lpVtbl->Commit(This,grfCommitFlags);
   4861 }
   4862 static inline HRESULT ISpStreamFormatConverter_Revert(ISpStreamFormatConverter* This) {
   4863     return This->lpVtbl->Revert(This);
   4864 }
   4865 static inline HRESULT ISpStreamFormatConverter_LockRegion(ISpStreamFormatConverter* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   4866     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
   4867 }
   4868 static inline HRESULT ISpStreamFormatConverter_UnlockRegion(ISpStreamFormatConverter* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   4869     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
   4870 }
   4871 static inline HRESULT ISpStreamFormatConverter_Stat(ISpStreamFormatConverter* This,STATSTG *pstatstg,DWORD grfStatFlag) {
   4872     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
   4873 }
   4874 static inline HRESULT ISpStreamFormatConverter_Clone(ISpStreamFormatConverter* This,IStream **ppstm) {
   4875     return This->lpVtbl->Clone(This,ppstm);
   4876 }
   4877 /*** ISpStreamFormat methods ***/
   4878 static inline HRESULT ISpStreamFormatConverter_GetFormat(ISpStreamFormatConverter* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
   4879     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
   4880 }
   4881 /*** ISpStreamFormatConverter methods ***/
   4882 static inline HRESULT ISpStreamFormatConverter_SetBaseStream(ISpStreamFormatConverter* This,ISpStreamFormat *pStream,WINBOOL fSetFormatToBaseStreamFormat,WINBOOL fWriteToBaseStream) {
   4883     return This->lpVtbl->SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream);
   4884 }
   4885 static inline HRESULT ISpStreamFormatConverter_GetBaseStream(ISpStreamFormatConverter* This,ISpStreamFormat **ppStream) {
   4886     return This->lpVtbl->GetBaseStream(This,ppStream);
   4887 }
   4888 static inline HRESULT ISpStreamFormatConverter_SetFormat(ISpStreamFormatConverter* This,REFGUID rguidFormatIdOfConvertedStream,const WAVEFORMATEX *pWaveFormatExOfConvertedStream) {
   4889     return This->lpVtbl->SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream);
   4890 }
   4891 static inline HRESULT ISpStreamFormatConverter_ResetSeekPosition(ISpStreamFormatConverter* This) {
   4892     return This->lpVtbl->ResetSeekPosition(This);
   4893 }
   4894 static inline HRESULT ISpStreamFormatConverter_ScaleConvertedToBaseOffset(ISpStreamFormatConverter* This,ULONGLONG ullOffsetConvertedStream,ULONGLONG *pullOffsetBaseStream) {
   4895     return This->lpVtbl->ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream);
   4896 }
   4897 static inline HRESULT ISpStreamFormatConverter_ScaleBaseToConvertedOffset(ISpStreamFormatConverter* This,ULONGLONG ullOffsetBaseStream,ULONGLONG *pullOffsetConvertedStream) {
   4898     return This->lpVtbl->ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream);
   4899 }
   4900 #endif
   4901 #endif
   4902 
   4903 #endif
   4904 
   4905 
   4906 #endif  /* __ISpStreamFormatConverter_INTERFACE_DEFINED__ */
   4907 
   4908 typedef struct SPAUDIOSTATUS {
   4909     LONG cbFreeBuffSpace;
   4910     ULONG cbNonBlockingIO;
   4911     SPAUDIOSTATE State;
   4912     ULONGLONG CurSeekPos;
   4913     ULONGLONG CurDevicePos;
   4914     DWORD dwAudioLevel;
   4915     DWORD dwReserved2;
   4916 } SPAUDIOSTATUS;
   4917 typedef struct SPAUDIOBUFFERINFO {
   4918     ULONG ulMsMinNotification;
   4919     ULONG ulMsBufferSize;
   4920     ULONG ulMsEventBias;
   4921 } SPAUDIOBUFFERINFO;
   4922 /*****************************************************************************
   4923  * ISpAudio interface
   4924  */
   4925 #ifndef __ISpAudio_INTERFACE_DEFINED__
   4926 #define __ISpAudio_INTERFACE_DEFINED__
   4927 
   4928 DEFINE_GUID(IID_ISpAudio, 0xc05c768f, 0xfae8, 0x4ec2, 0x8e,0x07, 0x33,0x83,0x21,0xc1,0x24,0x52);
   4929 #if defined(__cplusplus) && !defined(CINTERFACE)
   4930 MIDL_INTERFACE("c05c768f-fae8-4ec2-8e07-338321c12452")
   4931 ISpAudio : public ISpStreamFormat
   4932 {
   4933     virtual HRESULT STDMETHODCALLTYPE SetState(
   4934         SPAUDIOSTATE NewState,
   4935         ULONGLONG ullReserved) = 0;
   4936 
   4937     virtual HRESULT STDMETHODCALLTYPE SetFormat(
   4938         REFGUID rguidFmtId,
   4939         const WAVEFORMATEX *pWaveFormatEx) = 0;
   4940 
   4941     virtual HRESULT STDMETHODCALLTYPE GetStatus(
   4942         SPAUDIOSTATUS *pStatus) = 0;
   4943 
   4944     virtual HRESULT STDMETHODCALLTYPE SetBufferInfo(
   4945         const SPAUDIOBUFFERINFO *pBuffInfo) = 0;
   4946 
   4947     virtual HRESULT STDMETHODCALLTYPE GetBufferInfo(
   4948         SPAUDIOBUFFERINFO *pBuffInfo) = 0;
   4949 
   4950     virtual HRESULT STDMETHODCALLTYPE GetDefaultFormat(
   4951         GUID *pFormatId,
   4952         WAVEFORMATEX **ppCoMemWaveFormatEx) = 0;
   4953 
   4954     virtual HANDLE STDMETHODCALLTYPE EventHandle(
   4955         ) = 0;
   4956 
   4957     virtual HRESULT STDMETHODCALLTYPE GetVolumeLevel(
   4958         ULONG *pLevel) = 0;
   4959 
   4960     virtual HRESULT STDMETHODCALLTYPE SetVolumeLevel(
   4961         ULONG Level) = 0;
   4962 
   4963     virtual HRESULT STDMETHODCALLTYPE GetBufferNotifySize(
   4964         ULONG *pcbSize) = 0;
   4965 
   4966     virtual HRESULT STDMETHODCALLTYPE SetBufferNotifySize(
   4967         ULONG cbSize) = 0;
   4968 
   4969 };
   4970 #ifdef __CRT_UUID_DECL
   4971 __CRT_UUID_DECL(ISpAudio, 0xc05c768f, 0xfae8, 0x4ec2, 0x8e,0x07, 0x33,0x83,0x21,0xc1,0x24,0x52)
   4972 #endif
   4973 #else
   4974 typedef struct ISpAudioVtbl {
   4975     BEGIN_INTERFACE
   4976 
   4977     /*** IUnknown methods ***/
   4978     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4979         ISpAudio *This,
   4980         REFIID riid,
   4981         void **ppvObject);
   4982 
   4983     ULONG (STDMETHODCALLTYPE *AddRef)(
   4984         ISpAudio *This);
   4985 
   4986     ULONG (STDMETHODCALLTYPE *Release)(
   4987         ISpAudio *This);
   4988 
   4989     /*** ISequentialStream methods ***/
   4990     HRESULT (STDMETHODCALLTYPE *Read)(
   4991         ISpAudio *This,
   4992         void *pv,
   4993         ULONG cb,
   4994         ULONG *pcbRead);
   4995 
   4996     HRESULT (STDMETHODCALLTYPE *Write)(
   4997         ISpAudio *This,
   4998         const void *pv,
   4999         ULONG cb,
   5000         ULONG *pcbWritten);
   5001 
   5002     /*** IStream methods ***/
   5003     HRESULT (STDMETHODCALLTYPE *Seek)(
   5004         ISpAudio *This,
   5005         LARGE_INTEGER dlibMove,
   5006         DWORD dwOrigin,
   5007         ULARGE_INTEGER *plibNewPosition);
   5008 
   5009     HRESULT (STDMETHODCALLTYPE *SetSize)(
   5010         ISpAudio *This,
   5011         ULARGE_INTEGER libNewSize);
   5012 
   5013     HRESULT (STDMETHODCALLTYPE *CopyTo)(
   5014         ISpAudio *This,
   5015         IStream *pstm,
   5016         ULARGE_INTEGER cb,
   5017         ULARGE_INTEGER *pcbRead,
   5018         ULARGE_INTEGER *pcbWritten);
   5019 
   5020     HRESULT (STDMETHODCALLTYPE *Commit)(
   5021         ISpAudio *This,
   5022         DWORD grfCommitFlags);
   5023 
   5024     HRESULT (STDMETHODCALLTYPE *Revert)(
   5025         ISpAudio *This);
   5026 
   5027     HRESULT (STDMETHODCALLTYPE *LockRegion)(
   5028         ISpAudio *This,
   5029         ULARGE_INTEGER libOffset,
   5030         ULARGE_INTEGER cb,
   5031         DWORD dwLockType);
   5032 
   5033     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
   5034         ISpAudio *This,
   5035         ULARGE_INTEGER libOffset,
   5036         ULARGE_INTEGER cb,
   5037         DWORD dwLockType);
   5038 
   5039     HRESULT (STDMETHODCALLTYPE *Stat)(
   5040         ISpAudio *This,
   5041         STATSTG *pstatstg,
   5042         DWORD grfStatFlag);
   5043 
   5044     HRESULT (STDMETHODCALLTYPE *Clone)(
   5045         ISpAudio *This,
   5046         IStream **ppstm);
   5047 
   5048     /*** ISpStreamFormat methods ***/
   5049     HRESULT (STDMETHODCALLTYPE *GetFormat)(
   5050         ISpAudio *This,
   5051         GUID *pguidFormatId,
   5052         WAVEFORMATEX **ppCoMemWaveFormatEx);
   5053 
   5054     /*** ISpAudio methods ***/
   5055     HRESULT (STDMETHODCALLTYPE *SetState)(
   5056         ISpAudio *This,
   5057         SPAUDIOSTATE NewState,
   5058         ULONGLONG ullReserved);
   5059 
   5060     HRESULT (STDMETHODCALLTYPE *SetFormat)(
   5061         ISpAudio *This,
   5062         REFGUID rguidFmtId,
   5063         const WAVEFORMATEX *pWaveFormatEx);
   5064 
   5065     HRESULT (STDMETHODCALLTYPE *GetStatus)(
   5066         ISpAudio *This,
   5067         SPAUDIOSTATUS *pStatus);
   5068 
   5069     HRESULT (STDMETHODCALLTYPE *SetBufferInfo)(
   5070         ISpAudio *This,
   5071         const SPAUDIOBUFFERINFO *pBuffInfo);
   5072 
   5073     HRESULT (STDMETHODCALLTYPE *GetBufferInfo)(
   5074         ISpAudio *This,
   5075         SPAUDIOBUFFERINFO *pBuffInfo);
   5076 
   5077     HRESULT (STDMETHODCALLTYPE *GetDefaultFormat)(
   5078         ISpAudio *This,
   5079         GUID *pFormatId,
   5080         WAVEFORMATEX **ppCoMemWaveFormatEx);
   5081 
   5082     HANDLE (STDMETHODCALLTYPE *EventHandle)(
   5083         ISpAudio *This);
   5084 
   5085     HRESULT (STDMETHODCALLTYPE *GetVolumeLevel)(
   5086         ISpAudio *This,
   5087         ULONG *pLevel);
   5088 
   5089     HRESULT (STDMETHODCALLTYPE *SetVolumeLevel)(
   5090         ISpAudio *This,
   5091         ULONG Level);
   5092 
   5093     HRESULT (STDMETHODCALLTYPE *GetBufferNotifySize)(
   5094         ISpAudio *This,
   5095         ULONG *pcbSize);
   5096 
   5097     HRESULT (STDMETHODCALLTYPE *SetBufferNotifySize)(
   5098         ISpAudio *This,
   5099         ULONG cbSize);
   5100 
   5101     END_INTERFACE
   5102 } ISpAudioVtbl;
   5103 
   5104 interface ISpAudio {
   5105     CONST_VTBL ISpAudioVtbl* lpVtbl;
   5106 };
   5107 
   5108 #ifdef COBJMACROS
   5109 #ifndef WIDL_C_INLINE_WRAPPERS
   5110 /*** IUnknown methods ***/
   5111 #define ISpAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5112 #define ISpAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
   5113 #define ISpAudio_Release(This) (This)->lpVtbl->Release(This)
   5114 /*** ISequentialStream methods ***/
   5115 #define ISpAudio_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
   5116 #define ISpAudio_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
   5117 /*** IStream methods ***/
   5118 #define ISpAudio_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
   5119 #define ISpAudio_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
   5120 #define ISpAudio_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
   5121 #define ISpAudio_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
   5122 #define ISpAudio_Revert(This) (This)->lpVtbl->Revert(This)
   5123 #define ISpAudio_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
   5124 #define ISpAudio_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
   5125 #define ISpAudio_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
   5126 #define ISpAudio_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
   5127 /*** ISpStreamFormat methods ***/
   5128 #define ISpAudio_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
   5129 /*** ISpAudio methods ***/
   5130 #define ISpAudio_SetState(This,NewState,ullReserved) (This)->lpVtbl->SetState(This,NewState,ullReserved)
   5131 #define ISpAudio_SetFormat(This,rguidFmtId,pWaveFormatEx) (This)->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx)
   5132 #define ISpAudio_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
   5133 #define ISpAudio_SetBufferInfo(This,pBuffInfo) (This)->lpVtbl->SetBufferInfo(This,pBuffInfo)
   5134 #define ISpAudio_GetBufferInfo(This,pBuffInfo) (This)->lpVtbl->GetBufferInfo(This,pBuffInfo)
   5135 #define ISpAudio_GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx)
   5136 #define ISpAudio_EventHandle(This) (This)->lpVtbl->EventHandle(This)
   5137 #define ISpAudio_GetVolumeLevel(This,pLevel) (This)->lpVtbl->GetVolumeLevel(This,pLevel)
   5138 #define ISpAudio_SetVolumeLevel(This,Level) (This)->lpVtbl->SetVolumeLevel(This,Level)
   5139 #define ISpAudio_GetBufferNotifySize(This,pcbSize) (This)->lpVtbl->GetBufferNotifySize(This,pcbSize)
   5140 #define ISpAudio_SetBufferNotifySize(This,cbSize) (This)->lpVtbl->SetBufferNotifySize(This,cbSize)
   5141 #else
   5142 /*** IUnknown methods ***/
   5143 static inline HRESULT ISpAudio_QueryInterface(ISpAudio* This,REFIID riid,void **ppvObject) {
   5144     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5145 }
   5146 static inline ULONG ISpAudio_AddRef(ISpAudio* This) {
   5147     return This->lpVtbl->AddRef(This);
   5148 }
   5149 static inline ULONG ISpAudio_Release(ISpAudio* This) {
   5150     return This->lpVtbl->Release(This);
   5151 }
   5152 /*** ISequentialStream methods ***/
   5153 static inline HRESULT ISpAudio_Read(ISpAudio* This,void *pv,ULONG cb,ULONG *pcbRead) {
   5154     return This->lpVtbl->Read(This,pv,cb,pcbRead);
   5155 }
   5156 static inline HRESULT ISpAudio_Write(ISpAudio* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
   5157     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
   5158 }
   5159 /*** IStream methods ***/
   5160 static inline HRESULT ISpAudio_Seek(ISpAudio* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
   5161     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
   5162 }
   5163 static inline HRESULT ISpAudio_SetSize(ISpAudio* This,ULARGE_INTEGER libNewSize) {
   5164     return This->lpVtbl->SetSize(This,libNewSize);
   5165 }
   5166 static inline HRESULT ISpAudio_CopyTo(ISpAudio* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
   5167     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
   5168 }
   5169 static inline HRESULT ISpAudio_Commit(ISpAudio* This,DWORD grfCommitFlags) {
   5170     return This->lpVtbl->Commit(This,grfCommitFlags);
   5171 }
   5172 static inline HRESULT ISpAudio_Revert(ISpAudio* This) {
   5173     return This->lpVtbl->Revert(This);
   5174 }
   5175 static inline HRESULT ISpAudio_LockRegion(ISpAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   5176     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
   5177 }
   5178 static inline HRESULT ISpAudio_UnlockRegion(ISpAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   5179     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
   5180 }
   5181 static inline HRESULT ISpAudio_Stat(ISpAudio* This,STATSTG *pstatstg,DWORD grfStatFlag) {
   5182     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
   5183 }
   5184 static inline HRESULT ISpAudio_Clone(ISpAudio* This,IStream **ppstm) {
   5185     return This->lpVtbl->Clone(This,ppstm);
   5186 }
   5187 /*** ISpStreamFormat methods ***/
   5188 static inline HRESULT ISpAudio_GetFormat(ISpAudio* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
   5189     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
   5190 }
   5191 /*** ISpAudio methods ***/
   5192 static inline HRESULT ISpAudio_SetState(ISpAudio* This,SPAUDIOSTATE NewState,ULONGLONG ullReserved) {
   5193     return This->lpVtbl->SetState(This,NewState,ullReserved);
   5194 }
   5195 static inline HRESULT ISpAudio_SetFormat(ISpAudio* This,REFGUID rguidFmtId,const WAVEFORMATEX *pWaveFormatEx) {
   5196     return This->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx);
   5197 }
   5198 static inline HRESULT ISpAudio_GetStatus(ISpAudio* This,SPAUDIOSTATUS *pStatus) {
   5199     return This->lpVtbl->GetStatus(This,pStatus);
   5200 }
   5201 static inline HRESULT ISpAudio_SetBufferInfo(ISpAudio* This,const SPAUDIOBUFFERINFO *pBuffInfo) {
   5202     return This->lpVtbl->SetBufferInfo(This,pBuffInfo);
   5203 }
   5204 static inline HRESULT ISpAudio_GetBufferInfo(ISpAudio* This,SPAUDIOBUFFERINFO *pBuffInfo) {
   5205     return This->lpVtbl->GetBufferInfo(This,pBuffInfo);
   5206 }
   5207 static inline HRESULT ISpAudio_GetDefaultFormat(ISpAudio* This,GUID *pFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
   5208     return This->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx);
   5209 }
   5210 static inline HANDLE ISpAudio_EventHandle(ISpAudio* This) {
   5211     return This->lpVtbl->EventHandle(This);
   5212 }
   5213 static inline HRESULT ISpAudio_GetVolumeLevel(ISpAudio* This,ULONG *pLevel) {
   5214     return This->lpVtbl->GetVolumeLevel(This,pLevel);
   5215 }
   5216 static inline HRESULT ISpAudio_SetVolumeLevel(ISpAudio* This,ULONG Level) {
   5217     return This->lpVtbl->SetVolumeLevel(This,Level);
   5218 }
   5219 static inline HRESULT ISpAudio_GetBufferNotifySize(ISpAudio* This,ULONG *pcbSize) {
   5220     return This->lpVtbl->GetBufferNotifySize(This,pcbSize);
   5221 }
   5222 static inline HRESULT ISpAudio_SetBufferNotifySize(ISpAudio* This,ULONG cbSize) {
   5223     return This->lpVtbl->SetBufferNotifySize(This,cbSize);
   5224 }
   5225 #endif
   5226 #endif
   5227 
   5228 #endif
   5229 
   5230 
   5231 #endif  /* __ISpAudio_INTERFACE_DEFINED__ */
   5232 
   5233 /*****************************************************************************
   5234  * ISpMMSysAudio interface
   5235  */
   5236 #ifndef __ISpMMSysAudio_INTERFACE_DEFINED__
   5237 #define __ISpMMSysAudio_INTERFACE_DEFINED__
   5238 
   5239 DEFINE_GUID(IID_ISpMMSysAudio, 0x15806f6e, 0x1d70, 0x4b48, 0x98,0xe6, 0x3b,0x1a,0x00,0x75,0x09,0xab);
   5240 #if defined(__cplusplus) && !defined(CINTERFACE)
   5241 MIDL_INTERFACE("15806f6e-1d70-4b48-98e6-3b1a007509ab")
   5242 ISpMMSysAudio : public ISpAudio
   5243 {
   5244     virtual HRESULT STDMETHODCALLTYPE GetDeviceId(
   5245         UINT *puDeviceId) = 0;
   5246 
   5247     virtual HRESULT STDMETHODCALLTYPE SetDeviceId(
   5248         UINT uDeviceId) = 0;
   5249 
   5250     virtual HRESULT STDMETHODCALLTYPE GetMMHandle(
   5251         void **pHandle) = 0;
   5252 
   5253     virtual HRESULT STDMETHODCALLTYPE GetLineId(
   5254         UINT *puLineId) = 0;
   5255 
   5256     virtual HRESULT STDMETHODCALLTYPE SetLineId(
   5257         UINT uLineId) = 0;
   5258 
   5259 };
   5260 #ifdef __CRT_UUID_DECL
   5261 __CRT_UUID_DECL(ISpMMSysAudio, 0x15806f6e, 0x1d70, 0x4b48, 0x98,0xe6, 0x3b,0x1a,0x00,0x75,0x09,0xab)
   5262 #endif
   5263 #else
   5264 typedef struct ISpMMSysAudioVtbl {
   5265     BEGIN_INTERFACE
   5266 
   5267     /*** IUnknown methods ***/
   5268     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5269         ISpMMSysAudio *This,
   5270         REFIID riid,
   5271         void **ppvObject);
   5272 
   5273     ULONG (STDMETHODCALLTYPE *AddRef)(
   5274         ISpMMSysAudio *This);
   5275 
   5276     ULONG (STDMETHODCALLTYPE *Release)(
   5277         ISpMMSysAudio *This);
   5278 
   5279     /*** ISequentialStream methods ***/
   5280     HRESULT (STDMETHODCALLTYPE *Read)(
   5281         ISpMMSysAudio *This,
   5282         void *pv,
   5283         ULONG cb,
   5284         ULONG *pcbRead);
   5285 
   5286     HRESULT (STDMETHODCALLTYPE *Write)(
   5287         ISpMMSysAudio *This,
   5288         const void *pv,
   5289         ULONG cb,
   5290         ULONG *pcbWritten);
   5291 
   5292     /*** IStream methods ***/
   5293     HRESULT (STDMETHODCALLTYPE *Seek)(
   5294         ISpMMSysAudio *This,
   5295         LARGE_INTEGER dlibMove,
   5296         DWORD dwOrigin,
   5297         ULARGE_INTEGER *plibNewPosition);
   5298 
   5299     HRESULT (STDMETHODCALLTYPE *SetSize)(
   5300         ISpMMSysAudio *This,
   5301         ULARGE_INTEGER libNewSize);
   5302 
   5303     HRESULT (STDMETHODCALLTYPE *CopyTo)(
   5304         ISpMMSysAudio *This,
   5305         IStream *pstm,
   5306         ULARGE_INTEGER cb,
   5307         ULARGE_INTEGER *pcbRead,
   5308         ULARGE_INTEGER *pcbWritten);
   5309 
   5310     HRESULT (STDMETHODCALLTYPE *Commit)(
   5311         ISpMMSysAudio *This,
   5312         DWORD grfCommitFlags);
   5313 
   5314     HRESULT (STDMETHODCALLTYPE *Revert)(
   5315         ISpMMSysAudio *This);
   5316 
   5317     HRESULT (STDMETHODCALLTYPE *LockRegion)(
   5318         ISpMMSysAudio *This,
   5319         ULARGE_INTEGER libOffset,
   5320         ULARGE_INTEGER cb,
   5321         DWORD dwLockType);
   5322 
   5323     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
   5324         ISpMMSysAudio *This,
   5325         ULARGE_INTEGER libOffset,
   5326         ULARGE_INTEGER cb,
   5327         DWORD dwLockType);
   5328 
   5329     HRESULT (STDMETHODCALLTYPE *Stat)(
   5330         ISpMMSysAudio *This,
   5331         STATSTG *pstatstg,
   5332         DWORD grfStatFlag);
   5333 
   5334     HRESULT (STDMETHODCALLTYPE *Clone)(
   5335         ISpMMSysAudio *This,
   5336         IStream **ppstm);
   5337 
   5338     /*** ISpStreamFormat methods ***/
   5339     HRESULT (STDMETHODCALLTYPE *GetFormat)(
   5340         ISpMMSysAudio *This,
   5341         GUID *pguidFormatId,
   5342         WAVEFORMATEX **ppCoMemWaveFormatEx);
   5343 
   5344     /*** ISpAudio methods ***/
   5345     HRESULT (STDMETHODCALLTYPE *SetState)(
   5346         ISpMMSysAudio *This,
   5347         SPAUDIOSTATE NewState,
   5348         ULONGLONG ullReserved);
   5349 
   5350     HRESULT (STDMETHODCALLTYPE *SetFormat)(
   5351         ISpMMSysAudio *This,
   5352         REFGUID rguidFmtId,
   5353         const WAVEFORMATEX *pWaveFormatEx);
   5354 
   5355     HRESULT (STDMETHODCALLTYPE *GetStatus)(
   5356         ISpMMSysAudio *This,
   5357         SPAUDIOSTATUS *pStatus);
   5358 
   5359     HRESULT (STDMETHODCALLTYPE *SetBufferInfo)(
   5360         ISpMMSysAudio *This,
   5361         const SPAUDIOBUFFERINFO *pBuffInfo);
   5362 
   5363     HRESULT (STDMETHODCALLTYPE *GetBufferInfo)(
   5364         ISpMMSysAudio *This,
   5365         SPAUDIOBUFFERINFO *pBuffInfo);
   5366 
   5367     HRESULT (STDMETHODCALLTYPE *GetDefaultFormat)(
   5368         ISpMMSysAudio *This,
   5369         GUID *pFormatId,
   5370         WAVEFORMATEX **ppCoMemWaveFormatEx);
   5371 
   5372     HANDLE (STDMETHODCALLTYPE *EventHandle)(
   5373         ISpMMSysAudio *This);
   5374 
   5375     HRESULT (STDMETHODCALLTYPE *GetVolumeLevel)(
   5376         ISpMMSysAudio *This,
   5377         ULONG *pLevel);
   5378 
   5379     HRESULT (STDMETHODCALLTYPE *SetVolumeLevel)(
   5380         ISpMMSysAudio *This,
   5381         ULONG Level);
   5382 
   5383     HRESULT (STDMETHODCALLTYPE *GetBufferNotifySize)(
   5384         ISpMMSysAudio *This,
   5385         ULONG *pcbSize);
   5386 
   5387     HRESULT (STDMETHODCALLTYPE *SetBufferNotifySize)(
   5388         ISpMMSysAudio *This,
   5389         ULONG cbSize);
   5390 
   5391     /*** ISpMMSysAudio methods ***/
   5392     HRESULT (STDMETHODCALLTYPE *GetDeviceId)(
   5393         ISpMMSysAudio *This,
   5394         UINT *puDeviceId);
   5395 
   5396     HRESULT (STDMETHODCALLTYPE *SetDeviceId)(
   5397         ISpMMSysAudio *This,
   5398         UINT uDeviceId);
   5399 
   5400     HRESULT (STDMETHODCALLTYPE *GetMMHandle)(
   5401         ISpMMSysAudio *This,
   5402         void **pHandle);
   5403 
   5404     HRESULT (STDMETHODCALLTYPE *GetLineId)(
   5405         ISpMMSysAudio *This,
   5406         UINT *puLineId);
   5407 
   5408     HRESULT (STDMETHODCALLTYPE *SetLineId)(
   5409         ISpMMSysAudio *This,
   5410         UINT uLineId);
   5411 
   5412     END_INTERFACE
   5413 } ISpMMSysAudioVtbl;
   5414 
   5415 interface ISpMMSysAudio {
   5416     CONST_VTBL ISpMMSysAudioVtbl* lpVtbl;
   5417 };
   5418 
   5419 #ifdef COBJMACROS
   5420 #ifndef WIDL_C_INLINE_WRAPPERS
   5421 /*** IUnknown methods ***/
   5422 #define ISpMMSysAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5423 #define ISpMMSysAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
   5424 #define ISpMMSysAudio_Release(This) (This)->lpVtbl->Release(This)
   5425 /*** ISequentialStream methods ***/
   5426 #define ISpMMSysAudio_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
   5427 #define ISpMMSysAudio_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
   5428 /*** IStream methods ***/
   5429 #define ISpMMSysAudio_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
   5430 #define ISpMMSysAudio_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
   5431 #define ISpMMSysAudio_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
   5432 #define ISpMMSysAudio_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
   5433 #define ISpMMSysAudio_Revert(This) (This)->lpVtbl->Revert(This)
   5434 #define ISpMMSysAudio_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
   5435 #define ISpMMSysAudio_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
   5436 #define ISpMMSysAudio_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
   5437 #define ISpMMSysAudio_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
   5438 /*** ISpStreamFormat methods ***/
   5439 #define ISpMMSysAudio_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
   5440 /*** ISpAudio methods ***/
   5441 #define ISpMMSysAudio_SetState(This,NewState,ullReserved) (This)->lpVtbl->SetState(This,NewState,ullReserved)
   5442 #define ISpMMSysAudio_SetFormat(This,rguidFmtId,pWaveFormatEx) (This)->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx)
   5443 #define ISpMMSysAudio_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
   5444 #define ISpMMSysAudio_SetBufferInfo(This,pBuffInfo) (This)->lpVtbl->SetBufferInfo(This,pBuffInfo)
   5445 #define ISpMMSysAudio_GetBufferInfo(This,pBuffInfo) (This)->lpVtbl->GetBufferInfo(This,pBuffInfo)
   5446 #define ISpMMSysAudio_GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx)
   5447 #define ISpMMSysAudio_EventHandle(This) (This)->lpVtbl->EventHandle(This)
   5448 #define ISpMMSysAudio_GetVolumeLevel(This,pLevel) (This)->lpVtbl->GetVolumeLevel(This,pLevel)
   5449 #define ISpMMSysAudio_SetVolumeLevel(This,Level) (This)->lpVtbl->SetVolumeLevel(This,Level)
   5450 #define ISpMMSysAudio_GetBufferNotifySize(This,pcbSize) (This)->lpVtbl->GetBufferNotifySize(This,pcbSize)
   5451 #define ISpMMSysAudio_SetBufferNotifySize(This,cbSize) (This)->lpVtbl->SetBufferNotifySize(This,cbSize)
   5452 /*** ISpMMSysAudio methods ***/
   5453 #define ISpMMSysAudio_GetDeviceId(This,puDeviceId) (This)->lpVtbl->GetDeviceId(This,puDeviceId)
   5454 #define ISpMMSysAudio_SetDeviceId(This,uDeviceId) (This)->lpVtbl->SetDeviceId(This,uDeviceId)
   5455 #define ISpMMSysAudio_GetMMHandle(This,pHandle) (This)->lpVtbl->GetMMHandle(This,pHandle)
   5456 #define ISpMMSysAudio_GetLineId(This,puLineId) (This)->lpVtbl->GetLineId(This,puLineId)
   5457 #define ISpMMSysAudio_SetLineId(This,uLineId) (This)->lpVtbl->SetLineId(This,uLineId)
   5458 #else
   5459 /*** IUnknown methods ***/
   5460 static inline HRESULT ISpMMSysAudio_QueryInterface(ISpMMSysAudio* This,REFIID riid,void **ppvObject) {
   5461     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5462 }
   5463 static inline ULONG ISpMMSysAudio_AddRef(ISpMMSysAudio* This) {
   5464     return This->lpVtbl->AddRef(This);
   5465 }
   5466 static inline ULONG ISpMMSysAudio_Release(ISpMMSysAudio* This) {
   5467     return This->lpVtbl->Release(This);
   5468 }
   5469 /*** ISequentialStream methods ***/
   5470 static inline HRESULT ISpMMSysAudio_Read(ISpMMSysAudio* This,void *pv,ULONG cb,ULONG *pcbRead) {
   5471     return This->lpVtbl->Read(This,pv,cb,pcbRead);
   5472 }
   5473 static inline HRESULT ISpMMSysAudio_Write(ISpMMSysAudio* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
   5474     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
   5475 }
   5476 /*** IStream methods ***/
   5477 static inline HRESULT ISpMMSysAudio_Seek(ISpMMSysAudio* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
   5478     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
   5479 }
   5480 static inline HRESULT ISpMMSysAudio_SetSize(ISpMMSysAudio* This,ULARGE_INTEGER libNewSize) {
   5481     return This->lpVtbl->SetSize(This,libNewSize);
   5482 }
   5483 static inline HRESULT ISpMMSysAudio_CopyTo(ISpMMSysAudio* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
   5484     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
   5485 }
   5486 static inline HRESULT ISpMMSysAudio_Commit(ISpMMSysAudio* This,DWORD grfCommitFlags) {
   5487     return This->lpVtbl->Commit(This,grfCommitFlags);
   5488 }
   5489 static inline HRESULT ISpMMSysAudio_Revert(ISpMMSysAudio* This) {
   5490     return This->lpVtbl->Revert(This);
   5491 }
   5492 static inline HRESULT ISpMMSysAudio_LockRegion(ISpMMSysAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   5493     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
   5494 }
   5495 static inline HRESULT ISpMMSysAudio_UnlockRegion(ISpMMSysAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   5496     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
   5497 }
   5498 static inline HRESULT ISpMMSysAudio_Stat(ISpMMSysAudio* This,STATSTG *pstatstg,DWORD grfStatFlag) {
   5499     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
   5500 }
   5501 static inline HRESULT ISpMMSysAudio_Clone(ISpMMSysAudio* This,IStream **ppstm) {
   5502     return This->lpVtbl->Clone(This,ppstm);
   5503 }
   5504 /*** ISpStreamFormat methods ***/
   5505 static inline HRESULT ISpMMSysAudio_GetFormat(ISpMMSysAudio* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
   5506     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
   5507 }
   5508 /*** ISpAudio methods ***/
   5509 static inline HRESULT ISpMMSysAudio_SetState(ISpMMSysAudio* This,SPAUDIOSTATE NewState,ULONGLONG ullReserved) {
   5510     return This->lpVtbl->SetState(This,NewState,ullReserved);
   5511 }
   5512 static inline HRESULT ISpMMSysAudio_SetFormat(ISpMMSysAudio* This,REFGUID rguidFmtId,const WAVEFORMATEX *pWaveFormatEx) {
   5513     return This->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx);
   5514 }
   5515 static inline HRESULT ISpMMSysAudio_GetStatus(ISpMMSysAudio* This,SPAUDIOSTATUS *pStatus) {
   5516     return This->lpVtbl->GetStatus(This,pStatus);
   5517 }
   5518 static inline HRESULT ISpMMSysAudio_SetBufferInfo(ISpMMSysAudio* This,const SPAUDIOBUFFERINFO *pBuffInfo) {
   5519     return This->lpVtbl->SetBufferInfo(This,pBuffInfo);
   5520 }
   5521 static inline HRESULT ISpMMSysAudio_GetBufferInfo(ISpMMSysAudio* This,SPAUDIOBUFFERINFO *pBuffInfo) {
   5522     return This->lpVtbl->GetBufferInfo(This,pBuffInfo);
   5523 }
   5524 static inline HRESULT ISpMMSysAudio_GetDefaultFormat(ISpMMSysAudio* This,GUID *pFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
   5525     return This->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx);
   5526 }
   5527 static inline HANDLE ISpMMSysAudio_EventHandle(ISpMMSysAudio* This) {
   5528     return This->lpVtbl->EventHandle(This);
   5529 }
   5530 static inline HRESULT ISpMMSysAudio_GetVolumeLevel(ISpMMSysAudio* This,ULONG *pLevel) {
   5531     return This->lpVtbl->GetVolumeLevel(This,pLevel);
   5532 }
   5533 static inline HRESULT ISpMMSysAudio_SetVolumeLevel(ISpMMSysAudio* This,ULONG Level) {
   5534     return This->lpVtbl->SetVolumeLevel(This,Level);
   5535 }
   5536 static inline HRESULT ISpMMSysAudio_GetBufferNotifySize(ISpMMSysAudio* This,ULONG *pcbSize) {
   5537     return This->lpVtbl->GetBufferNotifySize(This,pcbSize);
   5538 }
   5539 static inline HRESULT ISpMMSysAudio_SetBufferNotifySize(ISpMMSysAudio* This,ULONG cbSize) {
   5540     return This->lpVtbl->SetBufferNotifySize(This,cbSize);
   5541 }
   5542 /*** ISpMMSysAudio methods ***/
   5543 static inline HRESULT ISpMMSysAudio_GetDeviceId(ISpMMSysAudio* This,UINT *puDeviceId) {
   5544     return This->lpVtbl->GetDeviceId(This,puDeviceId);
   5545 }
   5546 static inline HRESULT ISpMMSysAudio_SetDeviceId(ISpMMSysAudio* This,UINT uDeviceId) {
   5547     return This->lpVtbl->SetDeviceId(This,uDeviceId);
   5548 }
   5549 static inline HRESULT ISpMMSysAudio_GetMMHandle(ISpMMSysAudio* This,void **pHandle) {
   5550     return This->lpVtbl->GetMMHandle(This,pHandle);
   5551 }
   5552 static inline HRESULT ISpMMSysAudio_GetLineId(ISpMMSysAudio* This,UINT *puLineId) {
   5553     return This->lpVtbl->GetLineId(This,puLineId);
   5554 }
   5555 static inline HRESULT ISpMMSysAudio_SetLineId(ISpMMSysAudio* This,UINT uLineId) {
   5556     return This->lpVtbl->SetLineId(This,uLineId);
   5557 }
   5558 #endif
   5559 #endif
   5560 
   5561 #endif
   5562 
   5563 
   5564 #endif  /* __ISpMMSysAudio_INTERFACE_DEFINED__ */
   5565 
   5566 /*****************************************************************************
   5567  * ISpTranscript interface
   5568  */
   5569 #ifndef __ISpTranscript_INTERFACE_DEFINED__
   5570 #define __ISpTranscript_INTERFACE_DEFINED__
   5571 
   5572 DEFINE_GUID(IID_ISpTranscript, 0x10f63bce, 0x201a, 0x11d3, 0xac,0x70, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
   5573 #if defined(__cplusplus) && !defined(CINTERFACE)
   5574 MIDL_INTERFACE("10f63bce-201a-11d3-ac70-00c04f8ee6c0")
   5575 ISpTranscript : public IUnknown
   5576 {
   5577     virtual HRESULT STDMETHODCALLTYPE GetTranscript(
   5578         LPWSTR *ppszTranscript) = 0;
   5579 
   5580     virtual HRESULT STDMETHODCALLTYPE AppendTranscript(
   5581         LPCWSTR pszTranscript) = 0;
   5582 
   5583 };
   5584 #ifdef __CRT_UUID_DECL
   5585 __CRT_UUID_DECL(ISpTranscript, 0x10f63bce, 0x201a, 0x11d3, 0xac,0x70, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
   5586 #endif
   5587 #else
   5588 typedef struct ISpTranscriptVtbl {
   5589     BEGIN_INTERFACE
   5590 
   5591     /*** IUnknown methods ***/
   5592     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5593         ISpTranscript *This,
   5594         REFIID riid,
   5595         void **ppvObject);
   5596 
   5597     ULONG (STDMETHODCALLTYPE *AddRef)(
   5598         ISpTranscript *This);
   5599 
   5600     ULONG (STDMETHODCALLTYPE *Release)(
   5601         ISpTranscript *This);
   5602 
   5603     /*** ISpTranscript methods ***/
   5604     HRESULT (STDMETHODCALLTYPE *GetTranscript)(
   5605         ISpTranscript *This,
   5606         LPWSTR *ppszTranscript);
   5607 
   5608     HRESULT (STDMETHODCALLTYPE *AppendTranscript)(
   5609         ISpTranscript *This,
   5610         LPCWSTR pszTranscript);
   5611 
   5612     END_INTERFACE
   5613 } ISpTranscriptVtbl;
   5614 
   5615 interface ISpTranscript {
   5616     CONST_VTBL ISpTranscriptVtbl* lpVtbl;
   5617 };
   5618 
   5619 #ifdef COBJMACROS
   5620 #ifndef WIDL_C_INLINE_WRAPPERS
   5621 /*** IUnknown methods ***/
   5622 #define ISpTranscript_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5623 #define ISpTranscript_AddRef(This) (This)->lpVtbl->AddRef(This)
   5624 #define ISpTranscript_Release(This) (This)->lpVtbl->Release(This)
   5625 /*** ISpTranscript methods ***/
   5626 #define ISpTranscript_GetTranscript(This,ppszTranscript) (This)->lpVtbl->GetTranscript(This,ppszTranscript)
   5627 #define ISpTranscript_AppendTranscript(This,pszTranscript) (This)->lpVtbl->AppendTranscript(This,pszTranscript)
   5628 #else
   5629 /*** IUnknown methods ***/
   5630 static inline HRESULT ISpTranscript_QueryInterface(ISpTranscript* This,REFIID riid,void **ppvObject) {
   5631     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5632 }
   5633 static inline ULONG ISpTranscript_AddRef(ISpTranscript* This) {
   5634     return This->lpVtbl->AddRef(This);
   5635 }
   5636 static inline ULONG ISpTranscript_Release(ISpTranscript* This) {
   5637     return This->lpVtbl->Release(This);
   5638 }
   5639 /*** ISpTranscript methods ***/
   5640 static inline HRESULT ISpTranscript_GetTranscript(ISpTranscript* This,LPWSTR *ppszTranscript) {
   5641     return This->lpVtbl->GetTranscript(This,ppszTranscript);
   5642 }
   5643 static inline HRESULT ISpTranscript_AppendTranscript(ISpTranscript* This,LPCWSTR pszTranscript) {
   5644     return This->lpVtbl->AppendTranscript(This,pszTranscript);
   5645 }
   5646 #endif
   5647 #endif
   5648 
   5649 #endif
   5650 
   5651 
   5652 #endif  /* __ISpTranscript_INTERFACE_DEFINED__ */
   5653 
   5654 typedef WCHAR SPPHONEID;
   5655 typedef LPWSTR PSPPHONEID;
   5656 typedef LPCWSTR PCSPPHONEID;
   5657 typedef struct SPPHRASEELEMENT {
   5658     ULONG ulAudioTimeOffset;
   5659     ULONG ulAudioSizeTime;
   5660     ULONG ulAudioStreamOffset;
   5661     ULONG ulAudioSizeBytes;
   5662     ULONG ulRetainedStreamOffset;
   5663     ULONG ulRetainedSizeBytes;
   5664     LPCWSTR pszDisplayText;
   5665     LPCWSTR pszLexicalForm;
   5666     const SPPHONEID *pszPronunciation;
   5667     BYTE bDisplayAttributes;
   5668     signed char RequiredConfidence;
   5669     signed char ActualConfidence;
   5670     BYTE Reserved;
   5671     float SREngineConfidence;
   5672 } SPPHRASEELEMENT;
   5673 typedef struct SPPHRASERULE SPPHRASERULE;
   5674 typedef struct SPPHRASEPROPERTY SPPHRASEPROPERTY;
   5675 struct SPPHRASERULE {
   5676     LPCWSTR pszName;
   5677     ULONG ulId;
   5678     ULONG ulFirstElement;
   5679     ULONG ulCountOfElements;
   5680     const SPPHRASERULE *pNextSibling;
   5681     const SPPHRASERULE *pFirstChild;
   5682     float SREngineConfidence;
   5683     signed char Confidence;
   5684 };
   5685 struct SPPHRASEPROPERTY {
   5686     LPCWSTR pszName;
   5687     __C89_NAMELESS union {
   5688         ULONG ulId;
   5689         __C89_NAMELESS struct {
   5690             byte bType;
   5691             byte bReserved;
   5692             unsigned short usArrayIndex;
   5693         } __C89_NAMELESSSTRUCTNAME;
   5694     } __C89_NAMELESSUNIONNAME;
   5695     LPCWSTR pszValue;
   5696     VARIANT vValue;
   5697     ULONG ulFirstElement;
   5698     ULONG ulCountOfElements;
   5699     const SPPHRASEPROPERTY *pNextSibling;
   5700     const SPPHRASEPROPERTY *pFirstChild;
   5701     float SREngineConfidence;
   5702     signed char Confidence;
   5703 };
   5704 typedef struct SPPHRASEREPLACEMENT {
   5705     BYTE bDisplayAttributes;
   5706     LPCWSTR pszReplacementText;
   5707     ULONG ulFirstElement;
   5708     ULONG ulCountOfElements;
   5709 } SPPHRASEREPLACEMENT;
   5710 typedef struct SPSEMANTICERRORINFO {
   5711     ULONG ulLineNumber;
   5712     LPWSTR pszScriptLine;
   5713     LPWSTR pszSource;
   5714     LPWSTR pszDescription;
   5715     HRESULT hrResultCode;
   5716 } SPSEMANTICERRORINFO;
   5717 typedef struct SPPHRASE_50 {
   5718     ULONG cbSize;
   5719     WORD LangID;
   5720     WORD wHomophoneGroupId;
   5721     ULONGLONG ullGrammarID;
   5722     ULONGLONG ftStartTime;
   5723     ULONGLONG ullAudioStreamPosition;
   5724     ULONG ulAudioSizeBytes;
   5725     ULONG ulRetainedSizeBytes;
   5726     ULONG ulAudioSizeTime;
   5727     SPPHRASERULE Rule;
   5728     const SPPHRASEPROPERTY *pProperties;
   5729     const SPPHRASEELEMENT *pElements;
   5730     ULONG cReplacements;
   5731     const SPPHRASEREPLACEMENT *pReplacements;
   5732     GUID SREngineID;
   5733     ULONG ulSREnginePrivateDataSize;
   5734     const BYTE *pSREnginePrivateData;
   5735 } SPPHRASE_50;
   5736 #define SP_SPPHRASESIZE_500 sizeof (SPPHRASE_50)
   5737 #ifdef __cplusplus
   5738 typedef struct SPPHRASE_53 : public SPPHRASE_50 {
   5739   LPWSTR pSML;
   5740   SPSEMANTICERRORINFO* pSemanticErrorInfo;
   5741 } SPPHRASE_53;
   5742 #else
   5743 typedef struct SPPHRASE_53 {
   5744     ULONG cbSize;
   5745     WORD LangID;
   5746     WORD wHomophoneGroupId;
   5747     ULONGLONG ullGrammarID;
   5748     ULONGLONG ftStartTime;
   5749     ULONGLONG ullAudioStreamPosition;
   5750     ULONG ulAudioSizeBytes;
   5751     ULONG ulRetainedSizeBytes;
   5752     ULONG ulAudioSizeTime;
   5753     SPPHRASERULE Rule;
   5754     const SPPHRASEPROPERTY *pProperties;
   5755     const SPPHRASEELEMENT *pElements;
   5756     ULONG cReplacements;
   5757     const SPPHRASEREPLACEMENT *pReplacements;
   5758     GUID SREngineID;
   5759     ULONG ulSREnginePrivateDataSize;
   5760     const BYTE *pSREnginePrivateData;
   5761     LPWSTR pSML;
   5762     SPSEMANTICERRORINFO *pSemanticErrorInfo;
   5763 } SPPHRASE_53;
   5764 #endif
   5765 #define SP_SPPHRASESIZE_530 sizeof (SPPHRASE_53)
   5766 #ifdef __cplusplus
   5767 typedef struct SPPHRASE : public SPPHRASE_53 {
   5768   SPSEMANTICFORMAT SemanticTagFormat;
   5769 } SPPHRASE;
   5770 #else
   5771 typedef struct SPPHRASE {
   5772     ULONG cbSize;
   5773     WORD LangID;
   5774     WORD wHomophoneGroupId;
   5775     ULONGLONG ullGrammarID;
   5776     ULONGLONG ftStartTime;
   5777     ULONGLONG ullAudioStreamPosition;
   5778     ULONG ulAudioSizeBytes;
   5779     ULONG ulRetainedSizeBytes;
   5780     ULONG ulAudioSizeTime;
   5781     SPPHRASERULE Rule;
   5782     const SPPHRASEPROPERTY *pProperties;
   5783     const SPPHRASEELEMENT *pElements;
   5784     ULONG cReplacements;
   5785     const SPPHRASEREPLACEMENT *pReplacements;
   5786     GUID SREngineID;
   5787     ULONG ulSREnginePrivateDataSize;
   5788     const BYTE *pSREnginePrivateData;
   5789     LPWSTR pSML;
   5790     SPSEMANTICERRORINFO *pSemanticErrorInfo;
   5791     SPSEMANTICFORMAT SemanticTagFormat;
   5792 } SPPHRASE;
   5793 #endif
   5794 typedef struct SPSERIALIZEDPHRASE {
   5795     ULONG ulSerializedSize;
   5796 } SPSERIALIZEDPHRASE;
   5797 typedef struct SPRULE {
   5798     LPCWSTR pszRuleName;
   5799     ULONG ulRuleId;
   5800     DWORD dwAttributes;
   5801 } SPRULE;
   5802 typedef struct SPBINARYGRAMMAR {
   5803     ULONG ulTotalSerializedSize;
   5804 } SPBINARYGRAMMAR;
   5805 #if 0
   5806 typedef void *SPSTATEHANDLE;
   5807 #else
   5808 DECLARE_HANDLE(SPSTATEHANDLE);
   5809 #endif
   5810 typedef struct SPWORDPRONUNCIATION {
   5811     struct SPWORDPRONUNCIATION *pNextWordPronunciation;
   5812     SPLEXICONTYPE eLexiconType;
   5813     WORD LangID;
   5814     WORD wPronunciationFlags;
   5815     SPPARTOFSPEECH ePartOfSpeech;
   5816     SPPHONEID szPronunciation[1];
   5817 } SPWORDPRONUNCIATION;
   5818 typedef struct SPWORDPRONUNCIATIONLIST {
   5819     ULONG ulSize;
   5820     BYTE *pvBuffer;
   5821     SPWORDPRONUNCIATION *pFirstWordPronunciation;
   5822 } SPWORDPRONUNCIATIONLIST;
   5823 typedef struct SPWORD {
   5824     struct SPWORD *pNextWord;
   5825     WORD LangID;
   5826     WORD wReserved;
   5827     SPWORDTYPE eWordType;
   5828     LPWSTR pszWord;
   5829     SPWORDPRONUNCIATION *pFirstWordPronunciation;
   5830 } SPWORD;
   5831 typedef struct SPWORDLIST {
   5832     ULONG ulSize;
   5833     BYTE *pvBuffer;
   5834     SPWORD *pFirstWord;
   5835 } SPWORDLIST;
   5836 /*****************************************************************************
   5837  * ISpLexicon interface
   5838  */
   5839 #ifndef __ISpLexicon_INTERFACE_DEFINED__
   5840 #define __ISpLexicon_INTERFACE_DEFINED__
   5841 
   5842 DEFINE_GUID(IID_ISpLexicon, 0xda41a7c2, 0x5383, 0x4db2, 0x91,0x6b, 0x6c,0x17,0x19,0xe3,0xdb,0x58);
   5843 #if defined(__cplusplus) && !defined(CINTERFACE)
   5844 MIDL_INTERFACE("da41a7c2-5383-4db2-916b-6c1719e3db58")
   5845 ISpLexicon : public IUnknown
   5846 {
   5847     virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
   5848         LPCWSTR pszWord,
   5849         WORD LangID,
   5850         DWORD dwFlags,
   5851         SPWORDPRONUNCIATIONLIST *pWordPronunciationList) = 0;
   5852 
   5853     virtual HRESULT STDMETHODCALLTYPE AddPronunciation(
   5854         LPCWSTR pszWord,
   5855         WORD LangID,
   5856         SPPARTOFSPEECH ePartOfSpeech,
   5857         PCSPPHONEID pszPronunciation) = 0;
   5858 
   5859     virtual HRESULT STDMETHODCALLTYPE RemovePronunciation(
   5860         LPCWSTR pszWord,
   5861         WORD LangID,
   5862         SPPARTOFSPEECH ePartOfSpeech,
   5863         PCSPPHONEID pszPronunciation) = 0;
   5864 
   5865     virtual HRESULT STDMETHODCALLTYPE GetGeneration(
   5866         DWORD *pdwGeneration) = 0;
   5867 
   5868     virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
   5869         DWORD dwFlags,
   5870         DWORD *pdwGeneration,
   5871         SPWORDLIST *pWordList) = 0;
   5872 
   5873     virtual HRESULT STDMETHODCALLTYPE GetWords(
   5874         DWORD dwFlags,
   5875         DWORD *pdwGeneration,
   5876         DWORD *pdwCookie,
   5877         SPWORDLIST *pWordList) = 0;
   5878 
   5879 };
   5880 #ifdef __CRT_UUID_DECL
   5881 __CRT_UUID_DECL(ISpLexicon, 0xda41a7c2, 0x5383, 0x4db2, 0x91,0x6b, 0x6c,0x17,0x19,0xe3,0xdb,0x58)
   5882 #endif
   5883 #else
   5884 typedef struct ISpLexiconVtbl {
   5885     BEGIN_INTERFACE
   5886 
   5887     /*** IUnknown methods ***/
   5888     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5889         ISpLexicon *This,
   5890         REFIID riid,
   5891         void **ppvObject);
   5892 
   5893     ULONG (STDMETHODCALLTYPE *AddRef)(
   5894         ISpLexicon *This);
   5895 
   5896     ULONG (STDMETHODCALLTYPE *Release)(
   5897         ISpLexicon *This);
   5898 
   5899     /*** ISpLexicon methods ***/
   5900     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
   5901         ISpLexicon *This,
   5902         LPCWSTR pszWord,
   5903         WORD LangID,
   5904         DWORD dwFlags,
   5905         SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
   5906 
   5907     HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
   5908         ISpLexicon *This,
   5909         LPCWSTR pszWord,
   5910         WORD LangID,
   5911         SPPARTOFSPEECH ePartOfSpeech,
   5912         PCSPPHONEID pszPronunciation);
   5913 
   5914     HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
   5915         ISpLexicon *This,
   5916         LPCWSTR pszWord,
   5917         WORD LangID,
   5918         SPPARTOFSPEECH ePartOfSpeech,
   5919         PCSPPHONEID pszPronunciation);
   5920 
   5921     HRESULT (STDMETHODCALLTYPE *GetGeneration)(
   5922         ISpLexicon *This,
   5923         DWORD *pdwGeneration);
   5924 
   5925     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
   5926         ISpLexicon *This,
   5927         DWORD dwFlags,
   5928         DWORD *pdwGeneration,
   5929         SPWORDLIST *pWordList);
   5930 
   5931     HRESULT (STDMETHODCALLTYPE *GetWords)(
   5932         ISpLexicon *This,
   5933         DWORD dwFlags,
   5934         DWORD *pdwGeneration,
   5935         DWORD *pdwCookie,
   5936         SPWORDLIST *pWordList);
   5937 
   5938     END_INTERFACE
   5939 } ISpLexiconVtbl;
   5940 
   5941 interface ISpLexicon {
   5942     CONST_VTBL ISpLexiconVtbl* lpVtbl;
   5943 };
   5944 
   5945 #ifdef COBJMACROS
   5946 #ifndef WIDL_C_INLINE_WRAPPERS
   5947 /*** IUnknown methods ***/
   5948 #define ISpLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5949 #define ISpLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
   5950 #define ISpLexicon_Release(This) (This)->lpVtbl->Release(This)
   5951 /*** ISpLexicon methods ***/
   5952 #define ISpLexicon_GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList)
   5953 #define ISpLexicon_AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
   5954 #define ISpLexicon_RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
   5955 #define ISpLexicon_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
   5956 #define ISpLexicon_GetGenerationChange(This,dwFlags,pdwGeneration,pWordList) (This)->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList)
   5957 #define ISpLexicon_GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList)
   5958 #else
   5959 /*** IUnknown methods ***/
   5960 static inline HRESULT ISpLexicon_QueryInterface(ISpLexicon* This,REFIID riid,void **ppvObject) {
   5961     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5962 }
   5963 static inline ULONG ISpLexicon_AddRef(ISpLexicon* This) {
   5964     return This->lpVtbl->AddRef(This);
   5965 }
   5966 static inline ULONG ISpLexicon_Release(ISpLexicon* This) {
   5967     return This->lpVtbl->Release(This);
   5968 }
   5969 /*** ISpLexicon methods ***/
   5970 static inline HRESULT ISpLexicon_GetPronunciations(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,DWORD dwFlags,SPWORDPRONUNCIATIONLIST *pWordPronunciationList) {
   5971     return This->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList);
   5972 }
   5973 static inline HRESULT ISpLexicon_AddPronunciation(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
   5974     return This->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
   5975 }
   5976 static inline HRESULT ISpLexicon_RemovePronunciation(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
   5977     return This->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
   5978 }
   5979 static inline HRESULT ISpLexicon_GetGeneration(ISpLexicon* This,DWORD *pdwGeneration) {
   5980     return This->lpVtbl->GetGeneration(This,pdwGeneration);
   5981 }
   5982 static inline HRESULT ISpLexicon_GetGenerationChange(ISpLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
   5983     return This->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList);
   5984 }
   5985 static inline HRESULT ISpLexicon_GetWords(ISpLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
   5986     return This->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList);
   5987 }
   5988 #endif
   5989 #endif
   5990 
   5991 #endif
   5992 
   5993 
   5994 #endif  /* __ISpLexicon_INTERFACE_DEFINED__ */
   5995 
   5996 /*****************************************************************************
   5997  * ISpContainerLexicon interface
   5998  */
   5999 #ifndef __ISpContainerLexicon_INTERFACE_DEFINED__
   6000 #define __ISpContainerLexicon_INTERFACE_DEFINED__
   6001 
   6002 DEFINE_GUID(IID_ISpContainerLexicon, 0x8565572f, 0xc094, 0x41cc, 0xb5,0x6e, 0x10,0xbd,0x9c,0x3f,0xf0,0x44);
   6003 #if defined(__cplusplus) && !defined(CINTERFACE)
   6004 MIDL_INTERFACE("8565572f-c094-41cc-b56e-10bd9c3ff044")
   6005 ISpContainerLexicon : public ISpLexicon
   6006 {
   6007     virtual HRESULT STDMETHODCALLTYPE AddLexicon(
   6008         ISpLexicon *pAddLexicon,
   6009         DWORD dwFlags) = 0;
   6010 
   6011 };
   6012 #ifdef __CRT_UUID_DECL
   6013 __CRT_UUID_DECL(ISpContainerLexicon, 0x8565572f, 0xc094, 0x41cc, 0xb5,0x6e, 0x10,0xbd,0x9c,0x3f,0xf0,0x44)
   6014 #endif
   6015 #else
   6016 typedef struct ISpContainerLexiconVtbl {
   6017     BEGIN_INTERFACE
   6018 
   6019     /*** IUnknown methods ***/
   6020     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6021         ISpContainerLexicon *This,
   6022         REFIID riid,
   6023         void **ppvObject);
   6024 
   6025     ULONG (STDMETHODCALLTYPE *AddRef)(
   6026         ISpContainerLexicon *This);
   6027 
   6028     ULONG (STDMETHODCALLTYPE *Release)(
   6029         ISpContainerLexicon *This);
   6030 
   6031     /*** ISpLexicon methods ***/
   6032     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
   6033         ISpContainerLexicon *This,
   6034         LPCWSTR pszWord,
   6035         WORD LangID,
   6036         DWORD dwFlags,
   6037         SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
   6038 
   6039     HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
   6040         ISpContainerLexicon *This,
   6041         LPCWSTR pszWord,
   6042         WORD LangID,
   6043         SPPARTOFSPEECH ePartOfSpeech,
   6044         PCSPPHONEID pszPronunciation);
   6045 
   6046     HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
   6047         ISpContainerLexicon *This,
   6048         LPCWSTR pszWord,
   6049         WORD LangID,
   6050         SPPARTOFSPEECH ePartOfSpeech,
   6051         PCSPPHONEID pszPronunciation);
   6052 
   6053     HRESULT (STDMETHODCALLTYPE *GetGeneration)(
   6054         ISpContainerLexicon *This,
   6055         DWORD *pdwGeneration);
   6056 
   6057     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
   6058         ISpContainerLexicon *This,
   6059         DWORD dwFlags,
   6060         DWORD *pdwGeneration,
   6061         SPWORDLIST *pWordList);
   6062 
   6063     HRESULT (STDMETHODCALLTYPE *GetWords)(
   6064         ISpContainerLexicon *This,
   6065         DWORD dwFlags,
   6066         DWORD *pdwGeneration,
   6067         DWORD *pdwCookie,
   6068         SPWORDLIST *pWordList);
   6069 
   6070     /*** ISpContainerLexicon methods ***/
   6071     HRESULT (STDMETHODCALLTYPE *AddLexicon)(
   6072         ISpContainerLexicon *This,
   6073         ISpLexicon *pAddLexicon,
   6074         DWORD dwFlags);
   6075 
   6076     END_INTERFACE
   6077 } ISpContainerLexiconVtbl;
   6078 
   6079 interface ISpContainerLexicon {
   6080     CONST_VTBL ISpContainerLexiconVtbl* lpVtbl;
   6081 };
   6082 
   6083 #ifdef COBJMACROS
   6084 #ifndef WIDL_C_INLINE_WRAPPERS
   6085 /*** IUnknown methods ***/
   6086 #define ISpContainerLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6087 #define ISpContainerLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
   6088 #define ISpContainerLexicon_Release(This) (This)->lpVtbl->Release(This)
   6089 /*** ISpLexicon methods ***/
   6090 #define ISpContainerLexicon_GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList)
   6091 #define ISpContainerLexicon_AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
   6092 #define ISpContainerLexicon_RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
   6093 #define ISpContainerLexicon_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
   6094 #define ISpContainerLexicon_GetGenerationChange(This,dwFlags,pdwGeneration,pWordList) (This)->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList)
   6095 #define ISpContainerLexicon_GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList)
   6096 /*** ISpContainerLexicon methods ***/
   6097 #define ISpContainerLexicon_AddLexicon(This,pAddLexicon,dwFlags) (This)->lpVtbl->AddLexicon(This,pAddLexicon,dwFlags)
   6098 #else
   6099 /*** IUnknown methods ***/
   6100 static inline HRESULT ISpContainerLexicon_QueryInterface(ISpContainerLexicon* This,REFIID riid,void **ppvObject) {
   6101     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6102 }
   6103 static inline ULONG ISpContainerLexicon_AddRef(ISpContainerLexicon* This) {
   6104     return This->lpVtbl->AddRef(This);
   6105 }
   6106 static inline ULONG ISpContainerLexicon_Release(ISpContainerLexicon* This) {
   6107     return This->lpVtbl->Release(This);
   6108 }
   6109 /*** ISpLexicon methods ***/
   6110 static inline HRESULT ISpContainerLexicon_GetPronunciations(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,DWORD dwFlags,SPWORDPRONUNCIATIONLIST *pWordPronunciationList) {
   6111     return This->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList);
   6112 }
   6113 static inline HRESULT ISpContainerLexicon_AddPronunciation(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
   6114     return This->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
   6115 }
   6116 static inline HRESULT ISpContainerLexicon_RemovePronunciation(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
   6117     return This->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
   6118 }
   6119 static inline HRESULT ISpContainerLexicon_GetGeneration(ISpContainerLexicon* This,DWORD *pdwGeneration) {
   6120     return This->lpVtbl->GetGeneration(This,pdwGeneration);
   6121 }
   6122 static inline HRESULT ISpContainerLexicon_GetGenerationChange(ISpContainerLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
   6123     return This->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList);
   6124 }
   6125 static inline HRESULT ISpContainerLexicon_GetWords(ISpContainerLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
   6126     return This->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList);
   6127 }
   6128 /*** ISpContainerLexicon methods ***/
   6129 static inline HRESULT ISpContainerLexicon_AddLexicon(ISpContainerLexicon* This,ISpLexicon *pAddLexicon,DWORD dwFlags) {
   6130     return This->lpVtbl->AddLexicon(This,pAddLexicon,dwFlags);
   6131 }
   6132 #endif
   6133 #endif
   6134 
   6135 #endif
   6136 
   6137 
   6138 #endif  /* __ISpContainerLexicon_INTERFACE_DEFINED__ */
   6139 
   6140 typedef struct SPSHORTCUTPAIR {
   6141     struct SPSHORTCUTPAIR *pNextSHORTCUTPAIR;
   6142     WORD LangID;
   6143     SPSHORTCUTTYPE shType;
   6144     LPWSTR pszDisplay;
   6145     LPWSTR pszSpoken;
   6146 } SPSHORTCUTPAIR;
   6147 typedef struct SPSHORTCUTPAIRLIST {
   6148     ULONG ulSize;
   6149     BYTE *pvBuffer;
   6150     SPSHORTCUTPAIR *pFirstShortcutPair;
   6151 } SPSHORTCUTPAIRLIST;
   6152 /*****************************************************************************
   6153  * ISpShortcut interface
   6154  */
   6155 #ifndef __ISpShortcut_INTERFACE_DEFINED__
   6156 #define __ISpShortcut_INTERFACE_DEFINED__
   6157 
   6158 DEFINE_GUID(IID_ISpShortcut, 0x3df681e2, 0xea56, 0x11d9, 0x8b,0xde, 0xf6,0x6b,0xad,0x1e,0x3f,0x3a);
   6159 #if defined(__cplusplus) && !defined(CINTERFACE)
   6160 MIDL_INTERFACE("3df681e2-ea56-11d9-8bde-f66bad1e3f3a")
   6161 ISpShortcut : public IUnknown
   6162 {
   6163     virtual HRESULT STDMETHODCALLTYPE AddShortcut(
   6164         LPCWSTR pszDisplay,
   6165         WORD LangID,
   6166         LPCWSTR pszSpoken,
   6167         SPSHORTCUTTYPE shType) = 0;
   6168 
   6169     virtual HRESULT STDMETHODCALLTYPE RemoveShortcut(
   6170         LPCWSTR pszDisplay,
   6171         WORD LangID,
   6172         LPCWSTR pszSpoken,
   6173         SPSHORTCUTTYPE shType) = 0;
   6174 
   6175     virtual HRESULT STDMETHODCALLTYPE GetShortcuts(
   6176         WORD LangID,
   6177         SPSHORTCUTPAIRLIST *pShortcutpairList) = 0;
   6178 
   6179     virtual HRESULT STDMETHODCALLTYPE GetGeneration(
   6180         DWORD *pdwGeneration) = 0;
   6181 
   6182     virtual HRESULT STDMETHODCALLTYPE GetWordsFromGenerationChange(
   6183         DWORD *pdwGeneration,
   6184         SPWORDLIST *pWordList) = 0;
   6185 
   6186     virtual HRESULT STDMETHODCALLTYPE GetWords(
   6187         DWORD *pdwGeneration,
   6188         DWORD *pdwCookie,
   6189         SPWORDLIST *pWordList) = 0;
   6190 
   6191     virtual HRESULT STDMETHODCALLTYPE GetShortcutsForGeneration(
   6192         DWORD *pdwGeneration,
   6193         DWORD *pdwCookie,
   6194         SPSHORTCUTPAIRLIST *pShortcutpairList) = 0;
   6195 
   6196     virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
   6197         DWORD *pdwGeneration,
   6198         SPSHORTCUTPAIRLIST *pShortcutpairList) = 0;
   6199 
   6200 };
   6201 #ifdef __CRT_UUID_DECL
   6202 __CRT_UUID_DECL(ISpShortcut, 0x3df681e2, 0xea56, 0x11d9, 0x8b,0xde, 0xf6,0x6b,0xad,0x1e,0x3f,0x3a)
   6203 #endif
   6204 #else
   6205 typedef struct ISpShortcutVtbl {
   6206     BEGIN_INTERFACE
   6207 
   6208     /*** IUnknown methods ***/
   6209     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6210         ISpShortcut *This,
   6211         REFIID riid,
   6212         void **ppvObject);
   6213 
   6214     ULONG (STDMETHODCALLTYPE *AddRef)(
   6215         ISpShortcut *This);
   6216 
   6217     ULONG (STDMETHODCALLTYPE *Release)(
   6218         ISpShortcut *This);
   6219 
   6220     /*** ISpShortcut methods ***/
   6221     HRESULT (STDMETHODCALLTYPE *AddShortcut)(
   6222         ISpShortcut *This,
   6223         LPCWSTR pszDisplay,
   6224         WORD LangID,
   6225         LPCWSTR pszSpoken,
   6226         SPSHORTCUTTYPE shType);
   6227 
   6228     HRESULT (STDMETHODCALLTYPE *RemoveShortcut)(
   6229         ISpShortcut *This,
   6230         LPCWSTR pszDisplay,
   6231         WORD LangID,
   6232         LPCWSTR pszSpoken,
   6233         SPSHORTCUTTYPE shType);
   6234 
   6235     HRESULT (STDMETHODCALLTYPE *GetShortcuts)(
   6236         ISpShortcut *This,
   6237         WORD LangID,
   6238         SPSHORTCUTPAIRLIST *pShortcutpairList);
   6239 
   6240     HRESULT (STDMETHODCALLTYPE *GetGeneration)(
   6241         ISpShortcut *This,
   6242         DWORD *pdwGeneration);
   6243 
   6244     HRESULT (STDMETHODCALLTYPE *GetWordsFromGenerationChange)(
   6245         ISpShortcut *This,
   6246         DWORD *pdwGeneration,
   6247         SPWORDLIST *pWordList);
   6248 
   6249     HRESULT (STDMETHODCALLTYPE *GetWords)(
   6250         ISpShortcut *This,
   6251         DWORD *pdwGeneration,
   6252         DWORD *pdwCookie,
   6253         SPWORDLIST *pWordList);
   6254 
   6255     HRESULT (STDMETHODCALLTYPE *GetShortcutsForGeneration)(
   6256         ISpShortcut *This,
   6257         DWORD *pdwGeneration,
   6258         DWORD *pdwCookie,
   6259         SPSHORTCUTPAIRLIST *pShortcutpairList);
   6260 
   6261     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
   6262         ISpShortcut *This,
   6263         DWORD *pdwGeneration,
   6264         SPSHORTCUTPAIRLIST *pShortcutpairList);
   6265 
   6266     END_INTERFACE
   6267 } ISpShortcutVtbl;
   6268 
   6269 interface ISpShortcut {
   6270     CONST_VTBL ISpShortcutVtbl* lpVtbl;
   6271 };
   6272 
   6273 #ifdef COBJMACROS
   6274 #ifndef WIDL_C_INLINE_WRAPPERS
   6275 /*** IUnknown methods ***/
   6276 #define ISpShortcut_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6277 #define ISpShortcut_AddRef(This) (This)->lpVtbl->AddRef(This)
   6278 #define ISpShortcut_Release(This) (This)->lpVtbl->Release(This)
   6279 /*** ISpShortcut methods ***/
   6280 #define ISpShortcut_AddShortcut(This,pszDisplay,LangID,pszSpoken,shType) (This)->lpVtbl->AddShortcut(This,pszDisplay,LangID,pszSpoken,shType)
   6281 #define ISpShortcut_RemoveShortcut(This,pszDisplay,LangID,pszSpoken,shType) (This)->lpVtbl->RemoveShortcut(This,pszDisplay,LangID,pszSpoken,shType)
   6282 #define ISpShortcut_GetShortcuts(This,LangID,pShortcutpairList) (This)->lpVtbl->GetShortcuts(This,LangID,pShortcutpairList)
   6283 #define ISpShortcut_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
   6284 #define ISpShortcut_GetWordsFromGenerationChange(This,pdwGeneration,pWordList) (This)->lpVtbl->GetWordsFromGenerationChange(This,pdwGeneration,pWordList)
   6285 #define ISpShortcut_GetWords(This,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,pdwGeneration,pdwCookie,pWordList)
   6286 #define ISpShortcut_GetShortcutsForGeneration(This,pdwGeneration,pdwCookie,pShortcutpairList) (This)->lpVtbl->GetShortcutsForGeneration(This,pdwGeneration,pdwCookie,pShortcutpairList)
   6287 #define ISpShortcut_GetGenerationChange(This,pdwGeneration,pShortcutpairList) (This)->lpVtbl->GetGenerationChange(This,pdwGeneration,pShortcutpairList)
   6288 #else
   6289 /*** IUnknown methods ***/
   6290 static inline HRESULT ISpShortcut_QueryInterface(ISpShortcut* This,REFIID riid,void **ppvObject) {
   6291     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6292 }
   6293 static inline ULONG ISpShortcut_AddRef(ISpShortcut* This) {
   6294     return This->lpVtbl->AddRef(This);
   6295 }
   6296 static inline ULONG ISpShortcut_Release(ISpShortcut* This) {
   6297     return This->lpVtbl->Release(This);
   6298 }
   6299 /*** ISpShortcut methods ***/
   6300 static inline HRESULT ISpShortcut_AddShortcut(ISpShortcut* This,LPCWSTR pszDisplay,WORD LangID,LPCWSTR pszSpoken,SPSHORTCUTTYPE shType) {
   6301     return This->lpVtbl->AddShortcut(This,pszDisplay,LangID,pszSpoken,shType);
   6302 }
   6303 static inline HRESULT ISpShortcut_RemoveShortcut(ISpShortcut* This,LPCWSTR pszDisplay,WORD LangID,LPCWSTR pszSpoken,SPSHORTCUTTYPE shType) {
   6304     return This->lpVtbl->RemoveShortcut(This,pszDisplay,LangID,pszSpoken,shType);
   6305 }
   6306 static inline HRESULT ISpShortcut_GetShortcuts(ISpShortcut* This,WORD LangID,SPSHORTCUTPAIRLIST *pShortcutpairList) {
   6307     return This->lpVtbl->GetShortcuts(This,LangID,pShortcutpairList);
   6308 }
   6309 static inline HRESULT ISpShortcut_GetGeneration(ISpShortcut* This,DWORD *pdwGeneration) {
   6310     return This->lpVtbl->GetGeneration(This,pdwGeneration);
   6311 }
   6312 static inline HRESULT ISpShortcut_GetWordsFromGenerationChange(ISpShortcut* This,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
   6313     return This->lpVtbl->GetWordsFromGenerationChange(This,pdwGeneration,pWordList);
   6314 }
   6315 static inline HRESULT ISpShortcut_GetWords(ISpShortcut* This,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
   6316     return This->lpVtbl->GetWords(This,pdwGeneration,pdwCookie,pWordList);
   6317 }
   6318 static inline HRESULT ISpShortcut_GetShortcutsForGeneration(ISpShortcut* This,DWORD *pdwGeneration,DWORD *pdwCookie,SPSHORTCUTPAIRLIST *pShortcutpairList) {
   6319     return This->lpVtbl->GetShortcutsForGeneration(This,pdwGeneration,pdwCookie,pShortcutpairList);
   6320 }
   6321 static inline HRESULT ISpShortcut_GetGenerationChange(ISpShortcut* This,DWORD *pdwGeneration,SPSHORTCUTPAIRLIST *pShortcutpairList) {
   6322     return This->lpVtbl->GetGenerationChange(This,pdwGeneration,pShortcutpairList);
   6323 }
   6324 #endif
   6325 #endif
   6326 
   6327 #endif
   6328 
   6329 
   6330 #endif  /* __ISpShortcut_INTERFACE_DEFINED__ */
   6331 
   6332 /*****************************************************************************
   6333  * ISpPhoneConverter interface
   6334  */
   6335 #ifndef __ISpPhoneConverter_INTERFACE_DEFINED__
   6336 #define __ISpPhoneConverter_INTERFACE_DEFINED__
   6337 
   6338 DEFINE_GUID(IID_ISpPhoneConverter, 0x8445c581, 0x0cac, 0x4a38, 0xab,0xfe, 0x9b,0x2c,0xe2,0x82,0x64,0x55);
   6339 #if defined(__cplusplus) && !defined(CINTERFACE)
   6340 MIDL_INTERFACE("8445c581-0cac-4a38-abfe-9b2ce2826455")
   6341 ISpPhoneConverter : public ISpObjectWithToken
   6342 {
   6343     virtual HRESULT STDMETHODCALLTYPE PhoneToId(
   6344         LPCWSTR pszPhone,
   6345         SPPHONEID *pId) = 0;
   6346 
   6347     virtual HRESULT STDMETHODCALLTYPE IdToPhone(
   6348         PCSPPHONEID pId,
   6349         WCHAR *pszPhone) = 0;
   6350 
   6351 };
   6352 #ifdef __CRT_UUID_DECL
   6353 __CRT_UUID_DECL(ISpPhoneConverter, 0x8445c581, 0x0cac, 0x4a38, 0xab,0xfe, 0x9b,0x2c,0xe2,0x82,0x64,0x55)
   6354 #endif
   6355 #else
   6356 typedef struct ISpPhoneConverterVtbl {
   6357     BEGIN_INTERFACE
   6358 
   6359     /*** IUnknown methods ***/
   6360     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6361         ISpPhoneConverter *This,
   6362         REFIID riid,
   6363         void **ppvObject);
   6364 
   6365     ULONG (STDMETHODCALLTYPE *AddRef)(
   6366         ISpPhoneConverter *This);
   6367 
   6368     ULONG (STDMETHODCALLTYPE *Release)(
   6369         ISpPhoneConverter *This);
   6370 
   6371     /*** ISpObjectWithToken methods ***/
   6372     HRESULT (STDMETHODCALLTYPE *SetObjectToken)(
   6373         ISpPhoneConverter *This,
   6374         ISpObjectToken *pToken);
   6375 
   6376     HRESULT (STDMETHODCALLTYPE *GetObjectToken)(
   6377         ISpPhoneConverter *This,
   6378         ISpObjectToken **ppToken);
   6379 
   6380     /*** ISpPhoneConverter methods ***/
   6381     HRESULT (STDMETHODCALLTYPE *PhoneToId)(
   6382         ISpPhoneConverter *This,
   6383         LPCWSTR pszPhone,
   6384         SPPHONEID *pId);
   6385 
   6386     HRESULT (STDMETHODCALLTYPE *IdToPhone)(
   6387         ISpPhoneConverter *This,
   6388         PCSPPHONEID pId,
   6389         WCHAR *pszPhone);
   6390 
   6391     END_INTERFACE
   6392 } ISpPhoneConverterVtbl;
   6393 
   6394 interface ISpPhoneConverter {
   6395     CONST_VTBL ISpPhoneConverterVtbl* lpVtbl;
   6396 };
   6397 
   6398 #ifdef COBJMACROS
   6399 #ifndef WIDL_C_INLINE_WRAPPERS
   6400 /*** IUnknown methods ***/
   6401 #define ISpPhoneConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6402 #define ISpPhoneConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
   6403 #define ISpPhoneConverter_Release(This) (This)->lpVtbl->Release(This)
   6404 /*** ISpObjectWithToken methods ***/
   6405 #define ISpPhoneConverter_SetObjectToken(This,pToken) (This)->lpVtbl->SetObjectToken(This,pToken)
   6406 #define ISpPhoneConverter_GetObjectToken(This,ppToken) (This)->lpVtbl->GetObjectToken(This,ppToken)
   6407 /*** ISpPhoneConverter methods ***/
   6408 #define ISpPhoneConverter_PhoneToId(This,pszPhone,pId) (This)->lpVtbl->PhoneToId(This,pszPhone,pId)
   6409 #define ISpPhoneConverter_IdToPhone(This,pId,pszPhone) (This)->lpVtbl->IdToPhone(This,pId,pszPhone)
   6410 #else
   6411 /*** IUnknown methods ***/
   6412 static inline HRESULT ISpPhoneConverter_QueryInterface(ISpPhoneConverter* This,REFIID riid,void **ppvObject) {
   6413     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6414 }
   6415 static inline ULONG ISpPhoneConverter_AddRef(ISpPhoneConverter* This) {
   6416     return This->lpVtbl->AddRef(This);
   6417 }
   6418 static inline ULONG ISpPhoneConverter_Release(ISpPhoneConverter* This) {
   6419     return This->lpVtbl->Release(This);
   6420 }
   6421 /*** ISpObjectWithToken methods ***/
   6422 static inline HRESULT ISpPhoneConverter_SetObjectToken(ISpPhoneConverter* This,ISpObjectToken *pToken) {
   6423     return This->lpVtbl->SetObjectToken(This,pToken);
   6424 }
   6425 static inline HRESULT ISpPhoneConverter_GetObjectToken(ISpPhoneConverter* This,ISpObjectToken **ppToken) {
   6426     return This->lpVtbl->GetObjectToken(This,ppToken);
   6427 }
   6428 /*** ISpPhoneConverter methods ***/
   6429 static inline HRESULT ISpPhoneConverter_PhoneToId(ISpPhoneConverter* This,LPCWSTR pszPhone,SPPHONEID *pId) {
   6430     return This->lpVtbl->PhoneToId(This,pszPhone,pId);
   6431 }
   6432 static inline HRESULT ISpPhoneConverter_IdToPhone(ISpPhoneConverter* This,PCSPPHONEID pId,WCHAR *pszPhone) {
   6433     return This->lpVtbl->IdToPhone(This,pId,pszPhone);
   6434 }
   6435 #endif
   6436 #endif
   6437 
   6438 #endif
   6439 
   6440 
   6441 #endif  /* __ISpPhoneConverter_INTERFACE_DEFINED__ */
   6442 
   6443 /*****************************************************************************
   6444  * ISpPhoneticAlphabetConverter interface
   6445  */
   6446 #ifndef __ISpPhoneticAlphabetConverter_INTERFACE_DEFINED__
   6447 #define __ISpPhoneticAlphabetConverter_INTERFACE_DEFINED__
   6448 
   6449 DEFINE_GUID(IID_ISpPhoneticAlphabetConverter, 0x133adcd4, 0x19b4, 0x4020, 0x9f,0xdc, 0x84,0x2e,0x78,0x25,0x3b,0x17);
   6450 #if defined(__cplusplus) && !defined(CINTERFACE)
   6451 MIDL_INTERFACE("133adcd4-19b4-4020-9fdc-842e78253b17")
   6452 ISpPhoneticAlphabetConverter : public IUnknown
   6453 {
   6454     virtual HRESULT STDMETHODCALLTYPE GetLangId(
   6455         WORD *pLangID) = 0;
   6456 
   6457     virtual HRESULT STDMETHODCALLTYPE SetLangId(
   6458         WORD LangID) = 0;
   6459 
   6460     virtual HRESULT STDMETHODCALLTYPE SAPI2UPS(
   6461         const SPPHONEID *pszSAPIId,
   6462         SPPHONEID *pszUPSId,
   6463         DWORD cMaxLength) = 0;
   6464 
   6465     virtual HRESULT STDMETHODCALLTYPE UPS2SAPI(
   6466         const SPPHONEID *pszUPSId,
   6467         SPPHONEID *pszSAPIId,
   6468         DWORD cMaxLength) = 0;
   6469 
   6470     virtual HRESULT STDMETHODCALLTYPE GetMaxConvertLength(
   6471         DWORD cSrcLength,
   6472         WINBOOL bSAPI2UPS,
   6473         DWORD *pcMaxDestLength) = 0;
   6474 
   6475 };
   6476 #ifdef __CRT_UUID_DECL
   6477 __CRT_UUID_DECL(ISpPhoneticAlphabetConverter, 0x133adcd4, 0x19b4, 0x4020, 0x9f,0xdc, 0x84,0x2e,0x78,0x25,0x3b,0x17)
   6478 #endif
   6479 #else
   6480 typedef struct ISpPhoneticAlphabetConverterVtbl {
   6481     BEGIN_INTERFACE
   6482 
   6483     /*** IUnknown methods ***/
   6484     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6485         ISpPhoneticAlphabetConverter *This,
   6486         REFIID riid,
   6487         void **ppvObject);
   6488 
   6489     ULONG (STDMETHODCALLTYPE *AddRef)(
   6490         ISpPhoneticAlphabetConverter *This);
   6491 
   6492     ULONG (STDMETHODCALLTYPE *Release)(
   6493         ISpPhoneticAlphabetConverter *This);
   6494 
   6495     /*** ISpPhoneticAlphabetConverter methods ***/
   6496     HRESULT (STDMETHODCALLTYPE *GetLangId)(
   6497         ISpPhoneticAlphabetConverter *This,
   6498         WORD *pLangID);
   6499 
   6500     HRESULT (STDMETHODCALLTYPE *SetLangId)(
   6501         ISpPhoneticAlphabetConverter *This,
   6502         WORD LangID);
   6503 
   6504     HRESULT (STDMETHODCALLTYPE *SAPI2UPS)(
   6505         ISpPhoneticAlphabetConverter *This,
   6506         const SPPHONEID *pszSAPIId,
   6507         SPPHONEID *pszUPSId,
   6508         DWORD cMaxLength);
   6509 
   6510     HRESULT (STDMETHODCALLTYPE *UPS2SAPI)(
   6511         ISpPhoneticAlphabetConverter *This,
   6512         const SPPHONEID *pszUPSId,
   6513         SPPHONEID *pszSAPIId,
   6514         DWORD cMaxLength);
   6515 
   6516     HRESULT (STDMETHODCALLTYPE *GetMaxConvertLength)(
   6517         ISpPhoneticAlphabetConverter *This,
   6518         DWORD cSrcLength,
   6519         WINBOOL bSAPI2UPS,
   6520         DWORD *pcMaxDestLength);
   6521 
   6522     END_INTERFACE
   6523 } ISpPhoneticAlphabetConverterVtbl;
   6524 
   6525 interface ISpPhoneticAlphabetConverter {
   6526     CONST_VTBL ISpPhoneticAlphabetConverterVtbl* lpVtbl;
   6527 };
   6528 
   6529 #ifdef COBJMACROS
   6530 #ifndef WIDL_C_INLINE_WRAPPERS
   6531 /*** IUnknown methods ***/
   6532 #define ISpPhoneticAlphabetConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6533 #define ISpPhoneticAlphabetConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
   6534 #define ISpPhoneticAlphabetConverter_Release(This) (This)->lpVtbl->Release(This)
   6535 /*** ISpPhoneticAlphabetConverter methods ***/
   6536 #define ISpPhoneticAlphabetConverter_GetLangId(This,pLangID) (This)->lpVtbl->GetLangId(This,pLangID)
   6537 #define ISpPhoneticAlphabetConverter_SetLangId(This,LangID) (This)->lpVtbl->SetLangId(This,LangID)
   6538 #define ISpPhoneticAlphabetConverter_SAPI2UPS(This,pszSAPIId,pszUPSId,cMaxLength) (This)->lpVtbl->SAPI2UPS(This,pszSAPIId,pszUPSId,cMaxLength)
   6539 #define ISpPhoneticAlphabetConverter_UPS2SAPI(This,pszUPSId,pszSAPIId,cMaxLength) (This)->lpVtbl->UPS2SAPI(This,pszUPSId,pszSAPIId,cMaxLength)
   6540 #define ISpPhoneticAlphabetConverter_GetMaxConvertLength(This,cSrcLength,bSAPI2UPS,pcMaxDestLength) (This)->lpVtbl->GetMaxConvertLength(This,cSrcLength,bSAPI2UPS,pcMaxDestLength)
   6541 #else
   6542 /*** IUnknown methods ***/
   6543 static inline HRESULT ISpPhoneticAlphabetConverter_QueryInterface(ISpPhoneticAlphabetConverter* This,REFIID riid,void **ppvObject) {
   6544     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6545 }
   6546 static inline ULONG ISpPhoneticAlphabetConverter_AddRef(ISpPhoneticAlphabetConverter* This) {
   6547     return This->lpVtbl->AddRef(This);
   6548 }
   6549 static inline ULONG ISpPhoneticAlphabetConverter_Release(ISpPhoneticAlphabetConverter* This) {
   6550     return This->lpVtbl->Release(This);
   6551 }
   6552 /*** ISpPhoneticAlphabetConverter methods ***/
   6553 static inline HRESULT ISpPhoneticAlphabetConverter_GetLangId(ISpPhoneticAlphabetConverter* This,WORD *pLangID) {
   6554     return This->lpVtbl->GetLangId(This,pLangID);
   6555 }
   6556 static inline HRESULT ISpPhoneticAlphabetConverter_SetLangId(ISpPhoneticAlphabetConverter* This,WORD LangID) {
   6557     return This->lpVtbl->SetLangId(This,LangID);
   6558 }
   6559 static inline HRESULT ISpPhoneticAlphabetConverter_SAPI2UPS(ISpPhoneticAlphabetConverter* This,const SPPHONEID *pszSAPIId,SPPHONEID *pszUPSId,DWORD cMaxLength) {
   6560     return This->lpVtbl->SAPI2UPS(This,pszSAPIId,pszUPSId,cMaxLength);
   6561 }
   6562 static inline HRESULT ISpPhoneticAlphabetConverter_UPS2SAPI(ISpPhoneticAlphabetConverter* This,const SPPHONEID *pszUPSId,SPPHONEID *pszSAPIId,DWORD cMaxLength) {
   6563     return This->lpVtbl->UPS2SAPI(This,pszUPSId,pszSAPIId,cMaxLength);
   6564 }
   6565 static inline HRESULT ISpPhoneticAlphabetConverter_GetMaxConvertLength(ISpPhoneticAlphabetConverter* This,DWORD cSrcLength,WINBOOL bSAPI2UPS,DWORD *pcMaxDestLength) {
   6566     return This->lpVtbl->GetMaxConvertLength(This,cSrcLength,bSAPI2UPS,pcMaxDestLength);
   6567 }
   6568 #endif
   6569 #endif
   6570 
   6571 #endif
   6572 
   6573 
   6574 #endif  /* __ISpPhoneticAlphabetConverter_INTERFACE_DEFINED__ */
   6575 
   6576 /*****************************************************************************
   6577  * ISpPhoneticAlphabetSelection interface
   6578  */
   6579 #ifndef __ISpPhoneticAlphabetSelection_INTERFACE_DEFINED__
   6580 #define __ISpPhoneticAlphabetSelection_INTERFACE_DEFINED__
   6581 
   6582 DEFINE_GUID(IID_ISpPhoneticAlphabetSelection, 0xb2745efd, 0x42ce, 0x48ca, 0x81,0xf1, 0xa9,0x6e,0x02,0x53,0x8a,0x90);
   6583 #if defined(__cplusplus) && !defined(CINTERFACE)
   6584 MIDL_INTERFACE("b2745efd-42ce-48ca-81f1-a96e02538a90")
   6585 ISpPhoneticAlphabetSelection : public IUnknown
   6586 {
   6587     virtual HRESULT STDMETHODCALLTYPE IsAlphabetUPS(
   6588         WINBOOL *pfIsUPS) = 0;
   6589 
   6590     virtual HRESULT STDMETHODCALLTYPE SetAlphabetToUPS(
   6591         WINBOOL fForceUPS) = 0;
   6592 
   6593 };
   6594 #ifdef __CRT_UUID_DECL
   6595 __CRT_UUID_DECL(ISpPhoneticAlphabetSelection, 0xb2745efd, 0x42ce, 0x48ca, 0x81,0xf1, 0xa9,0x6e,0x02,0x53,0x8a,0x90)
   6596 #endif
   6597 #else
   6598 typedef struct ISpPhoneticAlphabetSelectionVtbl {
   6599     BEGIN_INTERFACE
   6600 
   6601     /*** IUnknown methods ***/
   6602     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6603         ISpPhoneticAlphabetSelection *This,
   6604         REFIID riid,
   6605         void **ppvObject);
   6606 
   6607     ULONG (STDMETHODCALLTYPE *AddRef)(
   6608         ISpPhoneticAlphabetSelection *This);
   6609 
   6610     ULONG (STDMETHODCALLTYPE *Release)(
   6611         ISpPhoneticAlphabetSelection *This);
   6612 
   6613     /*** ISpPhoneticAlphabetSelection methods ***/
   6614     HRESULT (STDMETHODCALLTYPE *IsAlphabetUPS)(
   6615         ISpPhoneticAlphabetSelection *This,
   6616         WINBOOL *pfIsUPS);
   6617 
   6618     HRESULT (STDMETHODCALLTYPE *SetAlphabetToUPS)(
   6619         ISpPhoneticAlphabetSelection *This,
   6620         WINBOOL fForceUPS);
   6621 
   6622     END_INTERFACE
   6623 } ISpPhoneticAlphabetSelectionVtbl;
   6624 
   6625 interface ISpPhoneticAlphabetSelection {
   6626     CONST_VTBL ISpPhoneticAlphabetSelectionVtbl* lpVtbl;
   6627 };
   6628 
   6629 #ifdef COBJMACROS
   6630 #ifndef WIDL_C_INLINE_WRAPPERS
   6631 /*** IUnknown methods ***/
   6632 #define ISpPhoneticAlphabetSelection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6633 #define ISpPhoneticAlphabetSelection_AddRef(This) (This)->lpVtbl->AddRef(This)
   6634 #define ISpPhoneticAlphabetSelection_Release(This) (This)->lpVtbl->Release(This)
   6635 /*** ISpPhoneticAlphabetSelection methods ***/
   6636 #define ISpPhoneticAlphabetSelection_IsAlphabetUPS(This,pfIsUPS) (This)->lpVtbl->IsAlphabetUPS(This,pfIsUPS)
   6637 #define ISpPhoneticAlphabetSelection_SetAlphabetToUPS(This,fForceUPS) (This)->lpVtbl->SetAlphabetToUPS(This,fForceUPS)
   6638 #else
   6639 /*** IUnknown methods ***/
   6640 static inline HRESULT ISpPhoneticAlphabetSelection_QueryInterface(ISpPhoneticAlphabetSelection* This,REFIID riid,void **ppvObject) {
   6641     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6642 }
   6643 static inline ULONG ISpPhoneticAlphabetSelection_AddRef(ISpPhoneticAlphabetSelection* This) {
   6644     return This->lpVtbl->AddRef(This);
   6645 }
   6646 static inline ULONG ISpPhoneticAlphabetSelection_Release(ISpPhoneticAlphabetSelection* This) {
   6647     return This->lpVtbl->Release(This);
   6648 }
   6649 /*** ISpPhoneticAlphabetSelection methods ***/
   6650 static inline HRESULT ISpPhoneticAlphabetSelection_IsAlphabetUPS(ISpPhoneticAlphabetSelection* This,WINBOOL *pfIsUPS) {
   6651     return This->lpVtbl->IsAlphabetUPS(This,pfIsUPS);
   6652 }
   6653 static inline HRESULT ISpPhoneticAlphabetSelection_SetAlphabetToUPS(ISpPhoneticAlphabetSelection* This,WINBOOL fForceUPS) {
   6654     return This->lpVtbl->SetAlphabetToUPS(This,fForceUPS);
   6655 }
   6656 #endif
   6657 #endif
   6658 
   6659 #endif
   6660 
   6661 
   6662 #endif  /* __ISpPhoneticAlphabetSelection_INTERFACE_DEFINED__ */
   6663 
   6664 typedef struct SPVPITCH {
   6665     LONG MiddleAdj;
   6666     LONG RangeAdj;
   6667 } SPVPITCH;
   6668 typedef struct SPVCONTEXT {
   6669     LPCWSTR pCategory;
   6670     LPCWSTR pBefore;
   6671     LPCWSTR pAfter;
   6672 } SPVCONTEXT;
   6673 typedef struct SPVSTATE {
   6674     SPVACTIONS eAction;
   6675     WORD LangID;
   6676     WORD wReserved;
   6677     LONG EmphAdj;
   6678     LONG RateAdj;
   6679     ULONG Volume;
   6680     SPVPITCH PitchAdj;
   6681     ULONG SilenceMSecs;
   6682     SPPHONEID *pPhoneIds;
   6683     SPPARTOFSPEECH ePartOfSpeech;
   6684     SPVCONTEXT Context;
   6685 } SPVSTATE;
   6686 typedef struct SPVOICESTATUS {
   6687     ULONG ulCurrentStream;
   6688     ULONG ulLastStreamQueued;
   6689     HRESULT hrLastResult;
   6690     DWORD dwRunningState;
   6691     ULONG ulInputWordPos;
   6692     ULONG ulInputWordLen;
   6693     ULONG ulInputSentPos;
   6694     ULONG ulInputSentLen;
   6695     LONG lBookmarkId;
   6696     SPPHONEID PhonemeId;
   6697     SPVISEMES VisemeId;
   6698     DWORD dwReserved1;
   6699     DWORD dwReserved2;
   6700 } SPVOICESTATUS;
   6701 typedef enum SPEAKFLAGS {
   6702     SPF_DEFAULT = 0,
   6703     SPF_ASYNC = 1,
   6704     SPF_PURGEBEFORESPEAK = 2,
   6705     SPF_IS_FILENAME = 4,
   6706     SPF_IS_XML = 8,
   6707     SPF_IS_NOT_XML = 0x10,
   6708     SPF_PERSIST_XML = 0x20,
   6709     SPF_NLP_SPEAK_PUNC = 0x40,
   6710     SPF_PARSE_SAPI = 0x80,
   6711     SPF_PARSE_SSML = 0x100,
   6712     SPF_PARSE_AUTODETECT = 0,
   6713     SPF_NLP_MASK = SPF_NLP_SPEAK_PUNC,
   6714     SPF_PARSE_MASK = SPF_PARSE_SAPI | SPF_PARSE_SSML,
   6715     SPF_VOICE_MASK = ((((((SPF_ASYNC | SPF_PURGEBEFORESPEAK) | SPF_IS_FILENAME) | SPF_IS_XML) | SPF_IS_NOT_XML) | SPF_NLP_MASK) | SPF_PERSIST_XML) | SPF_PARSE_MASK,
   6716     SPF_UNUSED_FLAGS = ~SPF_VOICE_MASK
   6717 } SPEAKFLAGS;
   6718 /*****************************************************************************
   6719  * ISpVoice interface
   6720  */
   6721 #ifndef __ISpVoice_INTERFACE_DEFINED__
   6722 #define __ISpVoice_INTERFACE_DEFINED__
   6723 
   6724 DEFINE_GUID(IID_ISpVoice, 0x6c44df74, 0x72b9, 0x4992, 0xa1,0xec, 0xef,0x99,0x6e,0x04,0x22,0xd4);
   6725 #if defined(__cplusplus) && !defined(CINTERFACE)
   6726 MIDL_INTERFACE("6c44df74-72b9-4992-a1ec-ef996e0422d4")
   6727 ISpVoice : public ISpEventSource
   6728 {
   6729     virtual HRESULT STDMETHODCALLTYPE SetOutput(
   6730         IUnknown *pUnkOutput,
   6731         WINBOOL fAllowFormatChanges) = 0;
   6732 
   6733     virtual HRESULT STDMETHODCALLTYPE GetOutputObjectToken(
   6734         ISpObjectToken **ppObjectToken) = 0;
   6735 
   6736     virtual HRESULT STDMETHODCALLTYPE GetOutputStream(
   6737         ISpStreamFormat **ppStream) = 0;
   6738 
   6739     virtual HRESULT STDMETHODCALLTYPE Pause(
   6740         ) = 0;
   6741 
   6742     virtual HRESULT STDMETHODCALLTYPE Resume(
   6743         ) = 0;
   6744 
   6745     virtual HRESULT STDMETHODCALLTYPE SetVoice(
   6746         ISpObjectToken *pToken) = 0;
   6747 
   6748     virtual HRESULT STDMETHODCALLTYPE GetVoice(
   6749         ISpObjectToken **ppToken) = 0;
   6750 
   6751     virtual HRESULT STDMETHODCALLTYPE Speak(
   6752         LPCWSTR pwcs,
   6753         DWORD dwFlags,
   6754         ULONG *pulStreamNumber) = 0;
   6755 
   6756     virtual HRESULT STDMETHODCALLTYPE SpeakStream(
   6757         IStream *pStream,
   6758         DWORD dwFlags,
   6759         ULONG *pulStreamNumber) = 0;
   6760 
   6761     virtual HRESULT STDMETHODCALLTYPE GetStatus(
   6762         SPVOICESTATUS *pStatus,
   6763         LPWSTR *ppszLastBookmark) = 0;
   6764 
   6765     virtual HRESULT STDMETHODCALLTYPE Skip(
   6766         LPCWSTR pItemType,
   6767         LONG lNumItems,
   6768         ULONG *pulNumSkipped) = 0;
   6769 
   6770     virtual HRESULT STDMETHODCALLTYPE SetPriority(
   6771         SPVPRIORITY ePriority) = 0;
   6772 
   6773     virtual HRESULT STDMETHODCALLTYPE GetPriority(
   6774         SPVPRIORITY *pePriority) = 0;
   6775 
   6776     virtual HRESULT STDMETHODCALLTYPE SetAlertBoundary(
   6777         SPEVENTENUM eBoundary) = 0;
   6778 
   6779     virtual HRESULT STDMETHODCALLTYPE GetAlertBoundary(
   6780         SPEVENTENUM *peBoundary) = 0;
   6781 
   6782     virtual HRESULT STDMETHODCALLTYPE SetRate(
   6783         LONG RateAdjust) = 0;
   6784 
   6785     virtual HRESULT STDMETHODCALLTYPE GetRate(
   6786         LONG *pRateAdjust) = 0;
   6787 
   6788     virtual HRESULT STDMETHODCALLTYPE SetVolume(
   6789         USHORT usVolume) = 0;
   6790 
   6791     virtual HRESULT STDMETHODCALLTYPE GetVolume(
   6792         USHORT *pusVolume) = 0;
   6793 
   6794     virtual HRESULT STDMETHODCALLTYPE WaitUntilDone(
   6795         ULONG msTimeout) = 0;
   6796 
   6797     virtual HRESULT STDMETHODCALLTYPE SetSyncSpeakTimeout(
   6798         ULONG msTimeout) = 0;
   6799 
   6800     virtual HRESULT STDMETHODCALLTYPE GetSyncSpeakTimeout(
   6801         ULONG *pmsTimeout) = 0;
   6802 
   6803     virtual HANDLE STDMETHODCALLTYPE SpeakCompleteEvent(
   6804         ) = 0;
   6805 
   6806     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
   6807         LPCWSTR pszTypeOfUI,
   6808         void *pvExtraData,
   6809         ULONG cbExtraData,
   6810         WINBOOL *pfSupported) = 0;
   6811 
   6812     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
   6813         HWND hwndParent,
   6814         LPCWSTR pszTitle,
   6815         LPCWSTR pszTypeOfUI,
   6816         void *pvExtraData,
   6817         ULONG cbExtraData) = 0;
   6818 
   6819 };
   6820 #ifdef __CRT_UUID_DECL
   6821 __CRT_UUID_DECL(ISpVoice, 0x6c44df74, 0x72b9, 0x4992, 0xa1,0xec, 0xef,0x99,0x6e,0x04,0x22,0xd4)
   6822 #endif
   6823 #else
   6824 typedef struct ISpVoiceVtbl {
   6825     BEGIN_INTERFACE
   6826 
   6827     /*** IUnknown methods ***/
   6828     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6829         ISpVoice *This,
   6830         REFIID riid,
   6831         void **ppvObject);
   6832 
   6833     ULONG (STDMETHODCALLTYPE *AddRef)(
   6834         ISpVoice *This);
   6835 
   6836     ULONG (STDMETHODCALLTYPE *Release)(
   6837         ISpVoice *This);
   6838 
   6839     /*** ISpNotifySource methods ***/
   6840     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
   6841         ISpVoice *This,
   6842         ISpNotifySink *pNotifySink);
   6843 
   6844     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
   6845         ISpVoice *This,
   6846         HWND hWnd,
   6847         UINT Msg,
   6848         WPARAM wParam,
   6849         LPARAM lParam);
   6850 
   6851     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
   6852         ISpVoice *This,
   6853         SPNOTIFYCALLBACK *pfnCallback,
   6854         WPARAM wParam,
   6855         LPARAM lParam);
   6856 
   6857     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
   6858         ISpVoice *This,
   6859         ISpNotifyCallback *pSpCallback,
   6860         WPARAM wParam,
   6861         LPARAM lParam);
   6862 
   6863     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
   6864         ISpVoice *This);
   6865 
   6866     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
   6867         ISpVoice *This,
   6868         DWORD dwMilliseconds);
   6869 
   6870     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
   6871         ISpVoice *This);
   6872 
   6873     /*** ISpEventSource methods ***/
   6874     HRESULT (STDMETHODCALLTYPE *SetInterest)(
   6875         ISpVoice *This,
   6876         ULONGLONG ullEventInterest,
   6877         ULONGLONG ullQueuedInterest);
   6878 
   6879     HRESULT (STDMETHODCALLTYPE *GetEvents)(
   6880         ISpVoice *This,
   6881         ULONG ulCount,
   6882         SPEVENT *pEventArray,
   6883         ULONG *pulFetched);
   6884 
   6885     HRESULT (STDMETHODCALLTYPE *GetInfo)(
   6886         ISpVoice *This,
   6887         SPEVENTSOURCEINFO *pInfo);
   6888 
   6889     /*** ISpVoice methods ***/
   6890     HRESULT (STDMETHODCALLTYPE *SetOutput)(
   6891         ISpVoice *This,
   6892         IUnknown *pUnkOutput,
   6893         WINBOOL fAllowFormatChanges);
   6894 
   6895     HRESULT (STDMETHODCALLTYPE *GetOutputObjectToken)(
   6896         ISpVoice *This,
   6897         ISpObjectToken **ppObjectToken);
   6898 
   6899     HRESULT (STDMETHODCALLTYPE *GetOutputStream)(
   6900         ISpVoice *This,
   6901         ISpStreamFormat **ppStream);
   6902 
   6903     HRESULT (STDMETHODCALLTYPE *Pause)(
   6904         ISpVoice *This);
   6905 
   6906     HRESULT (STDMETHODCALLTYPE *Resume)(
   6907         ISpVoice *This);
   6908 
   6909     HRESULT (STDMETHODCALLTYPE *SetVoice)(
   6910         ISpVoice *This,
   6911         ISpObjectToken *pToken);
   6912 
   6913     HRESULT (STDMETHODCALLTYPE *GetVoice)(
   6914         ISpVoice *This,
   6915         ISpObjectToken **ppToken);
   6916 
   6917     HRESULT (STDMETHODCALLTYPE *Speak)(
   6918         ISpVoice *This,
   6919         LPCWSTR pwcs,
   6920         DWORD dwFlags,
   6921         ULONG *pulStreamNumber);
   6922 
   6923     HRESULT (STDMETHODCALLTYPE *SpeakStream)(
   6924         ISpVoice *This,
   6925         IStream *pStream,
   6926         DWORD dwFlags,
   6927         ULONG *pulStreamNumber);
   6928 
   6929     HRESULT (STDMETHODCALLTYPE *GetStatus)(
   6930         ISpVoice *This,
   6931         SPVOICESTATUS *pStatus,
   6932         LPWSTR *ppszLastBookmark);
   6933 
   6934     HRESULT (STDMETHODCALLTYPE *Skip)(
   6935         ISpVoice *This,
   6936         LPCWSTR pItemType,
   6937         LONG lNumItems,
   6938         ULONG *pulNumSkipped);
   6939 
   6940     HRESULT (STDMETHODCALLTYPE *SetPriority)(
   6941         ISpVoice *This,
   6942         SPVPRIORITY ePriority);
   6943 
   6944     HRESULT (STDMETHODCALLTYPE *GetPriority)(
   6945         ISpVoice *This,
   6946         SPVPRIORITY *pePriority);
   6947 
   6948     HRESULT (STDMETHODCALLTYPE *SetAlertBoundary)(
   6949         ISpVoice *This,
   6950         SPEVENTENUM eBoundary);
   6951 
   6952     HRESULT (STDMETHODCALLTYPE *GetAlertBoundary)(
   6953         ISpVoice *This,
   6954         SPEVENTENUM *peBoundary);
   6955 
   6956     HRESULT (STDMETHODCALLTYPE *SetRate)(
   6957         ISpVoice *This,
   6958         LONG RateAdjust);
   6959 
   6960     HRESULT (STDMETHODCALLTYPE *GetRate)(
   6961         ISpVoice *This,
   6962         LONG *pRateAdjust);
   6963 
   6964     HRESULT (STDMETHODCALLTYPE *SetVolume)(
   6965         ISpVoice *This,
   6966         USHORT usVolume);
   6967 
   6968     HRESULT (STDMETHODCALLTYPE *GetVolume)(
   6969         ISpVoice *This,
   6970         USHORT *pusVolume);
   6971 
   6972     HRESULT (STDMETHODCALLTYPE *WaitUntilDone)(
   6973         ISpVoice *This,
   6974         ULONG msTimeout);
   6975 
   6976     HRESULT (STDMETHODCALLTYPE *SetSyncSpeakTimeout)(
   6977         ISpVoice *This,
   6978         ULONG msTimeout);
   6979 
   6980     HRESULT (STDMETHODCALLTYPE *GetSyncSpeakTimeout)(
   6981         ISpVoice *This,
   6982         ULONG *pmsTimeout);
   6983 
   6984     HANDLE (STDMETHODCALLTYPE *SpeakCompleteEvent)(
   6985         ISpVoice *This);
   6986 
   6987     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
   6988         ISpVoice *This,
   6989         LPCWSTR pszTypeOfUI,
   6990         void *pvExtraData,
   6991         ULONG cbExtraData,
   6992         WINBOOL *pfSupported);
   6993 
   6994     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
   6995         ISpVoice *This,
   6996         HWND hwndParent,
   6997         LPCWSTR pszTitle,
   6998         LPCWSTR pszTypeOfUI,
   6999         void *pvExtraData,
   7000         ULONG cbExtraData);
   7001 
   7002     END_INTERFACE
   7003 } ISpVoiceVtbl;
   7004 
   7005 interface ISpVoice {
   7006     CONST_VTBL ISpVoiceVtbl* lpVtbl;
   7007 };
   7008 
   7009 #ifdef COBJMACROS
   7010 #ifndef WIDL_C_INLINE_WRAPPERS
   7011 /*** IUnknown methods ***/
   7012 #define ISpVoice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7013 #define ISpVoice_AddRef(This) (This)->lpVtbl->AddRef(This)
   7014 #define ISpVoice_Release(This) (This)->lpVtbl->Release(This)
   7015 /*** ISpNotifySource methods ***/
   7016 #define ISpVoice_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
   7017 #define ISpVoice_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
   7018 #define ISpVoice_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
   7019 #define ISpVoice_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
   7020 #define ISpVoice_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
   7021 #define ISpVoice_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
   7022 #define ISpVoice_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
   7023 /*** ISpEventSource methods ***/
   7024 #define ISpVoice_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
   7025 #define ISpVoice_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
   7026 #define ISpVoice_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
   7027 /*** ISpVoice methods ***/
   7028 #define ISpVoice_SetOutput(This,pUnkOutput,fAllowFormatChanges) (This)->lpVtbl->SetOutput(This,pUnkOutput,fAllowFormatChanges)
   7029 #define ISpVoice_GetOutputObjectToken(This,ppObjectToken) (This)->lpVtbl->GetOutputObjectToken(This,ppObjectToken)
   7030 #define ISpVoice_GetOutputStream(This,ppStream) (This)->lpVtbl->GetOutputStream(This,ppStream)
   7031 #define ISpVoice_Pause(This) (This)->lpVtbl->Pause(This)
   7032 #define ISpVoice_Resume(This) (This)->lpVtbl->Resume(This)
   7033 #define ISpVoice_SetVoice(This,pToken) (This)->lpVtbl->SetVoice(This,pToken)
   7034 #define ISpVoice_GetVoice(This,ppToken) (This)->lpVtbl->GetVoice(This,ppToken)
   7035 #define ISpVoice_Speak(This,pwcs,dwFlags,pulStreamNumber) (This)->lpVtbl->Speak(This,pwcs,dwFlags,pulStreamNumber)
   7036 #define ISpVoice_SpeakStream(This,pStream,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakStream(This,pStream,dwFlags,pulStreamNumber)
   7037 #define ISpVoice_GetStatus(This,pStatus,ppszLastBookmark) (This)->lpVtbl->GetStatus(This,pStatus,ppszLastBookmark)
   7038 #define ISpVoice_Skip(This,pItemType,lNumItems,pulNumSkipped) (This)->lpVtbl->Skip(This,pItemType,lNumItems,pulNumSkipped)
   7039 #define ISpVoice_SetPriority(This,ePriority) (This)->lpVtbl->SetPriority(This,ePriority)
   7040 #define ISpVoice_GetPriority(This,pePriority) (This)->lpVtbl->GetPriority(This,pePriority)
   7041 #define ISpVoice_SetAlertBoundary(This,eBoundary) (This)->lpVtbl->SetAlertBoundary(This,eBoundary)
   7042 #define ISpVoice_GetAlertBoundary(This,peBoundary) (This)->lpVtbl->GetAlertBoundary(This,peBoundary)
   7043 #define ISpVoice_SetRate(This,RateAdjust) (This)->lpVtbl->SetRate(This,RateAdjust)
   7044 #define ISpVoice_GetRate(This,pRateAdjust) (This)->lpVtbl->GetRate(This,pRateAdjust)
   7045 #define ISpVoice_SetVolume(This,usVolume) (This)->lpVtbl->SetVolume(This,usVolume)
   7046 #define ISpVoice_GetVolume(This,pusVolume) (This)->lpVtbl->GetVolume(This,pusVolume)
   7047 #define ISpVoice_WaitUntilDone(This,msTimeout) (This)->lpVtbl->WaitUntilDone(This,msTimeout)
   7048 #define ISpVoice_SetSyncSpeakTimeout(This,msTimeout) (This)->lpVtbl->SetSyncSpeakTimeout(This,msTimeout)
   7049 #define ISpVoice_GetSyncSpeakTimeout(This,pmsTimeout) (This)->lpVtbl->GetSyncSpeakTimeout(This,pmsTimeout)
   7050 #define ISpVoice_SpeakCompleteEvent(This) (This)->lpVtbl->SpeakCompleteEvent(This)
   7051 #define ISpVoice_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported)
   7052 #define ISpVoice_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData)
   7053 #else
   7054 /*** IUnknown methods ***/
   7055 static inline HRESULT ISpVoice_QueryInterface(ISpVoice* This,REFIID riid,void **ppvObject) {
   7056     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7057 }
   7058 static inline ULONG ISpVoice_AddRef(ISpVoice* This) {
   7059     return This->lpVtbl->AddRef(This);
   7060 }
   7061 static inline ULONG ISpVoice_Release(ISpVoice* This) {
   7062     return This->lpVtbl->Release(This);
   7063 }
   7064 /*** ISpNotifySource methods ***/
   7065 static inline HRESULT ISpVoice_SetNotifySink(ISpVoice* This,ISpNotifySink *pNotifySink) {
   7066     return This->lpVtbl->SetNotifySink(This,pNotifySink);
   7067 }
   7068 static inline HRESULT ISpVoice_SetNotifyWindowMessage(ISpVoice* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
   7069     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
   7070 }
   7071 static inline HRESULT ISpVoice_SetNotifyCallbackFunction(ISpVoice* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
   7072     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
   7073 }
   7074 static inline HRESULT ISpVoice_SetNotifyCallbackInterface(ISpVoice* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
   7075     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
   7076 }
   7077 static inline HRESULT ISpVoice_SetNotifyWin32Event(ISpVoice* This) {
   7078     return This->lpVtbl->SetNotifyWin32Event(This);
   7079 }
   7080 static inline HRESULT ISpVoice_WaitForNotifyEvent(ISpVoice* This,DWORD dwMilliseconds) {
   7081     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
   7082 }
   7083 static inline HANDLE ISpVoice_GetNotifyEventHandle(ISpVoice* This) {
   7084     return This->lpVtbl->GetNotifyEventHandle(This);
   7085 }
   7086 /*** ISpEventSource methods ***/
   7087 static inline HRESULT ISpVoice_SetInterest(ISpVoice* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
   7088     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
   7089 }
   7090 static inline HRESULT ISpVoice_GetEvents(ISpVoice* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
   7091     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
   7092 }
   7093 static inline HRESULT ISpVoice_GetInfo(ISpVoice* This,SPEVENTSOURCEINFO *pInfo) {
   7094     return This->lpVtbl->GetInfo(This,pInfo);
   7095 }
   7096 /*** ISpVoice methods ***/
   7097 static inline HRESULT ISpVoice_SetOutput(ISpVoice* This,IUnknown *pUnkOutput,WINBOOL fAllowFormatChanges) {
   7098     return This->lpVtbl->SetOutput(This,pUnkOutput,fAllowFormatChanges);
   7099 }
   7100 static inline HRESULT ISpVoice_GetOutputObjectToken(ISpVoice* This,ISpObjectToken **ppObjectToken) {
   7101     return This->lpVtbl->GetOutputObjectToken(This,ppObjectToken);
   7102 }
   7103 static inline HRESULT ISpVoice_GetOutputStream(ISpVoice* This,ISpStreamFormat **ppStream) {
   7104     return This->lpVtbl->GetOutputStream(This,ppStream);
   7105 }
   7106 static inline HRESULT ISpVoice_Pause(ISpVoice* This) {
   7107     return This->lpVtbl->Pause(This);
   7108 }
   7109 static inline HRESULT ISpVoice_Resume(ISpVoice* This) {
   7110     return This->lpVtbl->Resume(This);
   7111 }
   7112 static inline HRESULT ISpVoice_SetVoice(ISpVoice* This,ISpObjectToken *pToken) {
   7113     return This->lpVtbl->SetVoice(This,pToken);
   7114 }
   7115 static inline HRESULT ISpVoice_GetVoice(ISpVoice* This,ISpObjectToken **ppToken) {
   7116     return This->lpVtbl->GetVoice(This,ppToken);
   7117 }
   7118 static inline HRESULT ISpVoice_Speak(ISpVoice* This,LPCWSTR pwcs,DWORD dwFlags,ULONG *pulStreamNumber) {
   7119     return This->lpVtbl->Speak(This,pwcs,dwFlags,pulStreamNumber);
   7120 }
   7121 static inline HRESULT ISpVoice_SpeakStream(ISpVoice* This,IStream *pStream,DWORD dwFlags,ULONG *pulStreamNumber) {
   7122     return This->lpVtbl->SpeakStream(This,pStream,dwFlags,pulStreamNumber);
   7123 }
   7124 static inline HRESULT ISpVoice_GetStatus(ISpVoice* This,SPVOICESTATUS *pStatus,LPWSTR *ppszLastBookmark) {
   7125     return This->lpVtbl->GetStatus(This,pStatus,ppszLastBookmark);
   7126 }
   7127 static inline HRESULT ISpVoice_Skip(ISpVoice* This,LPCWSTR pItemType,LONG lNumItems,ULONG *pulNumSkipped) {
   7128     return This->lpVtbl->Skip(This,pItemType,lNumItems,pulNumSkipped);
   7129 }
   7130 static inline HRESULT ISpVoice_SetPriority(ISpVoice* This,SPVPRIORITY ePriority) {
   7131     return This->lpVtbl->SetPriority(This,ePriority);
   7132 }
   7133 static inline HRESULT ISpVoice_GetPriority(ISpVoice* This,SPVPRIORITY *pePriority) {
   7134     return This->lpVtbl->GetPriority(This,pePriority);
   7135 }
   7136 static inline HRESULT ISpVoice_SetAlertBoundary(ISpVoice* This,SPEVENTENUM eBoundary) {
   7137     return This->lpVtbl->SetAlertBoundary(This,eBoundary);
   7138 }
   7139 static inline HRESULT ISpVoice_GetAlertBoundary(ISpVoice* This,SPEVENTENUM *peBoundary) {
   7140     return This->lpVtbl->GetAlertBoundary(This,peBoundary);
   7141 }
   7142 static inline HRESULT ISpVoice_SetRate(ISpVoice* This,LONG RateAdjust) {
   7143     return This->lpVtbl->SetRate(This,RateAdjust);
   7144 }
   7145 static inline HRESULT ISpVoice_GetRate(ISpVoice* This,LONG *pRateAdjust) {
   7146     return This->lpVtbl->GetRate(This,pRateAdjust);
   7147 }
   7148 static inline HRESULT ISpVoice_SetVolume(ISpVoice* This,USHORT usVolume) {
   7149     return This->lpVtbl->SetVolume(This,usVolume);
   7150 }
   7151 static inline HRESULT ISpVoice_GetVolume(ISpVoice* This,USHORT *pusVolume) {
   7152     return This->lpVtbl->GetVolume(This,pusVolume);
   7153 }
   7154 static inline HRESULT ISpVoice_WaitUntilDone(ISpVoice* This,ULONG msTimeout) {
   7155     return This->lpVtbl->WaitUntilDone(This,msTimeout);
   7156 }
   7157 static inline HRESULT ISpVoice_SetSyncSpeakTimeout(ISpVoice* This,ULONG msTimeout) {
   7158     return This->lpVtbl->SetSyncSpeakTimeout(This,msTimeout);
   7159 }
   7160 static inline HRESULT ISpVoice_GetSyncSpeakTimeout(ISpVoice* This,ULONG *pmsTimeout) {
   7161     return This->lpVtbl->GetSyncSpeakTimeout(This,pmsTimeout);
   7162 }
   7163 static inline HANDLE ISpVoice_SpeakCompleteEvent(ISpVoice* This) {
   7164     return This->lpVtbl->SpeakCompleteEvent(This);
   7165 }
   7166 static inline HRESULT ISpVoice_IsUISupported(ISpVoice* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,WINBOOL *pfSupported) {
   7167     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported);
   7168 }
   7169 static inline HRESULT ISpVoice_DisplayUI(ISpVoice* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData) {
   7170     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData);
   7171 }
   7172 #endif
   7173 #endif
   7174 
   7175 #endif
   7176 
   7177 
   7178 #endif  /* __ISpVoice_INTERFACE_DEFINED__ */
   7179 
   7180 /*****************************************************************************
   7181  * ISpPhrase interface
   7182  */
   7183 #ifndef __ISpPhrase_INTERFACE_DEFINED__
   7184 #define __ISpPhrase_INTERFACE_DEFINED__
   7185 
   7186 DEFINE_GUID(IID_ISpPhrase, 0x1a5c0354, 0xb621, 0x4b5a, 0x87,0x91, 0xd3,0x06,0xed,0x37,0x9e,0x53);
   7187 #if defined(__cplusplus) && !defined(CINTERFACE)
   7188 MIDL_INTERFACE("1a5c0354-b621-4b5a-8791-d306ed379e53")
   7189 ISpPhrase : public IUnknown
   7190 {
   7191     virtual HRESULT STDMETHODCALLTYPE GetPhrase(
   7192         SPPHRASE **ppCoMemPhrase) = 0;
   7193 
   7194     virtual HRESULT STDMETHODCALLTYPE GetSerializedPhrase(
   7195         SPSERIALIZEDPHRASE **ppCoMemPhrase) = 0;
   7196 
   7197     virtual HRESULT STDMETHODCALLTYPE GetText(
   7198         ULONG ulStart,
   7199         ULONG ulCount,
   7200         WINBOOL fUseTextReplacements,
   7201         LPWSTR *ppszCoMemText,
   7202         BYTE *pbDisplayAttributes) = 0;
   7203 
   7204     virtual HRESULT STDMETHODCALLTYPE Discard(
   7205         DWORD dwValueTypes) = 0;
   7206 
   7207 };
   7208 #ifdef __CRT_UUID_DECL
   7209 __CRT_UUID_DECL(ISpPhrase, 0x1a5c0354, 0xb621, 0x4b5a, 0x87,0x91, 0xd3,0x06,0xed,0x37,0x9e,0x53)
   7210 #endif
   7211 #else
   7212 typedef struct ISpPhraseVtbl {
   7213     BEGIN_INTERFACE
   7214 
   7215     /*** IUnknown methods ***/
   7216     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7217         ISpPhrase *This,
   7218         REFIID riid,
   7219         void **ppvObject);
   7220 
   7221     ULONG (STDMETHODCALLTYPE *AddRef)(
   7222         ISpPhrase *This);
   7223 
   7224     ULONG (STDMETHODCALLTYPE *Release)(
   7225         ISpPhrase *This);
   7226 
   7227     /*** ISpPhrase methods ***/
   7228     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
   7229         ISpPhrase *This,
   7230         SPPHRASE **ppCoMemPhrase);
   7231 
   7232     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
   7233         ISpPhrase *This,
   7234         SPSERIALIZEDPHRASE **ppCoMemPhrase);
   7235 
   7236     HRESULT (STDMETHODCALLTYPE *GetText)(
   7237         ISpPhrase *This,
   7238         ULONG ulStart,
   7239         ULONG ulCount,
   7240         WINBOOL fUseTextReplacements,
   7241         LPWSTR *ppszCoMemText,
   7242         BYTE *pbDisplayAttributes);
   7243 
   7244     HRESULT (STDMETHODCALLTYPE *Discard)(
   7245         ISpPhrase *This,
   7246         DWORD dwValueTypes);
   7247 
   7248     END_INTERFACE
   7249 } ISpPhraseVtbl;
   7250 
   7251 interface ISpPhrase {
   7252     CONST_VTBL ISpPhraseVtbl* lpVtbl;
   7253 };
   7254 
   7255 #ifdef COBJMACROS
   7256 #ifndef WIDL_C_INLINE_WRAPPERS
   7257 /*** IUnknown methods ***/
   7258 #define ISpPhrase_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7259 #define ISpPhrase_AddRef(This) (This)->lpVtbl->AddRef(This)
   7260 #define ISpPhrase_Release(This) (This)->lpVtbl->Release(This)
   7261 /*** ISpPhrase methods ***/
   7262 #define ISpPhrase_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
   7263 #define ISpPhrase_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
   7264 #define ISpPhrase_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
   7265 #define ISpPhrase_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
   7266 #else
   7267 /*** IUnknown methods ***/
   7268 static inline HRESULT ISpPhrase_QueryInterface(ISpPhrase* This,REFIID riid,void **ppvObject) {
   7269     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7270 }
   7271 static inline ULONG ISpPhrase_AddRef(ISpPhrase* This) {
   7272     return This->lpVtbl->AddRef(This);
   7273 }
   7274 static inline ULONG ISpPhrase_Release(ISpPhrase* This) {
   7275     return This->lpVtbl->Release(This);
   7276 }
   7277 /*** ISpPhrase methods ***/
   7278 static inline HRESULT ISpPhrase_GetPhrase(ISpPhrase* This,SPPHRASE **ppCoMemPhrase) {
   7279     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
   7280 }
   7281 static inline HRESULT ISpPhrase_GetSerializedPhrase(ISpPhrase* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
   7282     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
   7283 }
   7284 static inline HRESULT ISpPhrase_GetText(ISpPhrase* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
   7285     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
   7286 }
   7287 static inline HRESULT ISpPhrase_Discard(ISpPhrase* This,DWORD dwValueTypes) {
   7288     return This->lpVtbl->Discard(This,dwValueTypes);
   7289 }
   7290 #endif
   7291 #endif
   7292 
   7293 #endif
   7294 
   7295 
   7296 #endif  /* __ISpPhrase_INTERFACE_DEFINED__ */
   7297 
   7298 /*****************************************************************************
   7299  * ISpPhraseAlt interface
   7300  */
   7301 #ifndef __ISpPhraseAlt_INTERFACE_DEFINED__
   7302 #define __ISpPhraseAlt_INTERFACE_DEFINED__
   7303 
   7304 DEFINE_GUID(IID_ISpPhraseAlt, 0x8fcebc98, 0x4e49, 0x4067, 0x9c,0x6c, 0xd8,0x6a,0x0e,0x09,0x2e,0x3d);
   7305 #if defined(__cplusplus) && !defined(CINTERFACE)
   7306 MIDL_INTERFACE("8fcebc98-4e49-4067-9c6c-d86a0e092e3d")
   7307 ISpPhraseAlt : public ISpPhrase
   7308 {
   7309     virtual HRESULT STDMETHODCALLTYPE GetAltInfo(
   7310         ISpPhrase **ppParent,
   7311         ULONG *pulStartElementInParent,
   7312         ULONG *pcElementsInParent,
   7313         ULONG *pcElementsInAlt) = 0;
   7314 
   7315     virtual HRESULT STDMETHODCALLTYPE Commit(
   7316         ) = 0;
   7317 
   7318 };
   7319 #ifdef __CRT_UUID_DECL
   7320 __CRT_UUID_DECL(ISpPhraseAlt, 0x8fcebc98, 0x4e49, 0x4067, 0x9c,0x6c, 0xd8,0x6a,0x0e,0x09,0x2e,0x3d)
   7321 #endif
   7322 #else
   7323 typedef struct ISpPhraseAltVtbl {
   7324     BEGIN_INTERFACE
   7325 
   7326     /*** IUnknown methods ***/
   7327     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7328         ISpPhraseAlt *This,
   7329         REFIID riid,
   7330         void **ppvObject);
   7331 
   7332     ULONG (STDMETHODCALLTYPE *AddRef)(
   7333         ISpPhraseAlt *This);
   7334 
   7335     ULONG (STDMETHODCALLTYPE *Release)(
   7336         ISpPhraseAlt *This);
   7337 
   7338     /*** ISpPhrase methods ***/
   7339     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
   7340         ISpPhraseAlt *This,
   7341         SPPHRASE **ppCoMemPhrase);
   7342 
   7343     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
   7344         ISpPhraseAlt *This,
   7345         SPSERIALIZEDPHRASE **ppCoMemPhrase);
   7346 
   7347     HRESULT (STDMETHODCALLTYPE *GetText)(
   7348         ISpPhraseAlt *This,
   7349         ULONG ulStart,
   7350         ULONG ulCount,
   7351         WINBOOL fUseTextReplacements,
   7352         LPWSTR *ppszCoMemText,
   7353         BYTE *pbDisplayAttributes);
   7354 
   7355     HRESULT (STDMETHODCALLTYPE *Discard)(
   7356         ISpPhraseAlt *This,
   7357         DWORD dwValueTypes);
   7358 
   7359     /*** ISpPhraseAlt methods ***/
   7360     HRESULT (STDMETHODCALLTYPE *GetAltInfo)(
   7361         ISpPhraseAlt *This,
   7362         ISpPhrase **ppParent,
   7363         ULONG *pulStartElementInParent,
   7364         ULONG *pcElementsInParent,
   7365         ULONG *pcElementsInAlt);
   7366 
   7367     HRESULT (STDMETHODCALLTYPE *Commit)(
   7368         ISpPhraseAlt *This);
   7369 
   7370     END_INTERFACE
   7371 } ISpPhraseAltVtbl;
   7372 
   7373 interface ISpPhraseAlt {
   7374     CONST_VTBL ISpPhraseAltVtbl* lpVtbl;
   7375 };
   7376 
   7377 #ifdef COBJMACROS
   7378 #ifndef WIDL_C_INLINE_WRAPPERS
   7379 /*** IUnknown methods ***/
   7380 #define ISpPhraseAlt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7381 #define ISpPhraseAlt_AddRef(This) (This)->lpVtbl->AddRef(This)
   7382 #define ISpPhraseAlt_Release(This) (This)->lpVtbl->Release(This)
   7383 /*** ISpPhrase methods ***/
   7384 #define ISpPhraseAlt_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
   7385 #define ISpPhraseAlt_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
   7386 #define ISpPhraseAlt_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
   7387 #define ISpPhraseAlt_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
   7388 /*** ISpPhraseAlt methods ***/
   7389 #define ISpPhraseAlt_GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt) (This)->lpVtbl->GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt)
   7390 #define ISpPhraseAlt_Commit(This) (This)->lpVtbl->Commit(This)
   7391 #else
   7392 /*** IUnknown methods ***/
   7393 static inline HRESULT ISpPhraseAlt_QueryInterface(ISpPhraseAlt* This,REFIID riid,void **ppvObject) {
   7394     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7395 }
   7396 static inline ULONG ISpPhraseAlt_AddRef(ISpPhraseAlt* This) {
   7397     return This->lpVtbl->AddRef(This);
   7398 }
   7399 static inline ULONG ISpPhraseAlt_Release(ISpPhraseAlt* This) {
   7400     return This->lpVtbl->Release(This);
   7401 }
   7402 /*** ISpPhrase methods ***/
   7403 static inline HRESULT ISpPhraseAlt_GetPhrase(ISpPhraseAlt* This,SPPHRASE **ppCoMemPhrase) {
   7404     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
   7405 }
   7406 static inline HRESULT ISpPhraseAlt_GetSerializedPhrase(ISpPhraseAlt* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
   7407     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
   7408 }
   7409 static inline HRESULT ISpPhraseAlt_GetText(ISpPhraseAlt* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
   7410     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
   7411 }
   7412 static inline HRESULT ISpPhraseAlt_Discard(ISpPhraseAlt* This,DWORD dwValueTypes) {
   7413     return This->lpVtbl->Discard(This,dwValueTypes);
   7414 }
   7415 /*** ISpPhraseAlt methods ***/
   7416 static inline HRESULT ISpPhraseAlt_GetAltInfo(ISpPhraseAlt* This,ISpPhrase **ppParent,ULONG *pulStartElementInParent,ULONG *pcElementsInParent,ULONG *pcElementsInAlt) {
   7417     return This->lpVtbl->GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt);
   7418 }
   7419 static inline HRESULT ISpPhraseAlt_Commit(ISpPhraseAlt* This) {
   7420     return This->lpVtbl->Commit(This);
   7421 }
   7422 #endif
   7423 #endif
   7424 
   7425 #endif
   7426 
   7427 
   7428 #endif  /* __ISpPhraseAlt_INTERFACE_DEFINED__ */
   7429 
   7430 typedef enum SPXMLRESULTOPTIONS {
   7431     SPXRO_SML = 0,
   7432     SPXRO_Alternates_SML = 1
   7433 } SPXMLRESULTOPTIONS;
   7434 /*****************************************************************************
   7435  * ISpPhrase2 interface
   7436  */
   7437 #ifndef __ISpPhrase2_INTERFACE_DEFINED__
   7438 #define __ISpPhrase2_INTERFACE_DEFINED__
   7439 
   7440 DEFINE_GUID(IID_ISpPhrase2, 0xf264da52, 0xe457, 0x4696, 0xb8,0x56, 0xa7,0x37,0xb7,0x17,0xaf,0x79);
   7441 #if defined(__cplusplus) && !defined(CINTERFACE)
   7442 MIDL_INTERFACE("f264da52-e457-4696-b856-a737b717af79")
   7443 ISpPhrase2 : public ISpPhrase
   7444 {
   7445     virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
   7446         LPWSTR *ppszCoMemXMLResult,
   7447         SPXMLRESULTOPTIONS Options) = 0;
   7448 
   7449     virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
   7450         SPSEMANTICERRORINFO *pSemanticErrorInfo) = 0;
   7451 
   7452     virtual HRESULT STDMETHODCALLTYPE GetAudio(
   7453         ULONG ulStartElement,
   7454         ULONG cElements,
   7455         ISpStreamFormat **ppStream) = 0;
   7456 
   7457 };
   7458 #ifdef __CRT_UUID_DECL
   7459 __CRT_UUID_DECL(ISpPhrase2, 0xf264da52, 0xe457, 0x4696, 0xb8,0x56, 0xa7,0x37,0xb7,0x17,0xaf,0x79)
   7460 #endif
   7461 #else
   7462 typedef struct ISpPhrase2Vtbl {
   7463     BEGIN_INTERFACE
   7464 
   7465     /*** IUnknown methods ***/
   7466     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7467         ISpPhrase2 *This,
   7468         REFIID riid,
   7469         void **ppvObject);
   7470 
   7471     ULONG (STDMETHODCALLTYPE *AddRef)(
   7472         ISpPhrase2 *This);
   7473 
   7474     ULONG (STDMETHODCALLTYPE *Release)(
   7475         ISpPhrase2 *This);
   7476 
   7477     /*** ISpPhrase methods ***/
   7478     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
   7479         ISpPhrase2 *This,
   7480         SPPHRASE **ppCoMemPhrase);
   7481 
   7482     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
   7483         ISpPhrase2 *This,
   7484         SPSERIALIZEDPHRASE **ppCoMemPhrase);
   7485 
   7486     HRESULT (STDMETHODCALLTYPE *GetText)(
   7487         ISpPhrase2 *This,
   7488         ULONG ulStart,
   7489         ULONG ulCount,
   7490         WINBOOL fUseTextReplacements,
   7491         LPWSTR *ppszCoMemText,
   7492         BYTE *pbDisplayAttributes);
   7493 
   7494     HRESULT (STDMETHODCALLTYPE *Discard)(
   7495         ISpPhrase2 *This,
   7496         DWORD dwValueTypes);
   7497 
   7498     /*** ISpPhrase2 methods ***/
   7499     HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
   7500         ISpPhrase2 *This,
   7501         LPWSTR *ppszCoMemXMLResult,
   7502         SPXMLRESULTOPTIONS Options);
   7503 
   7504     HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
   7505         ISpPhrase2 *This,
   7506         SPSEMANTICERRORINFO *pSemanticErrorInfo);
   7507 
   7508     HRESULT (STDMETHODCALLTYPE *GetAudio)(
   7509         ISpPhrase2 *This,
   7510         ULONG ulStartElement,
   7511         ULONG cElements,
   7512         ISpStreamFormat **ppStream);
   7513 
   7514     END_INTERFACE
   7515 } ISpPhrase2Vtbl;
   7516 
   7517 interface ISpPhrase2 {
   7518     CONST_VTBL ISpPhrase2Vtbl* lpVtbl;
   7519 };
   7520 
   7521 #ifdef COBJMACROS
   7522 #ifndef WIDL_C_INLINE_WRAPPERS
   7523 /*** IUnknown methods ***/
   7524 #define ISpPhrase2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7525 #define ISpPhrase2_AddRef(This) (This)->lpVtbl->AddRef(This)
   7526 #define ISpPhrase2_Release(This) (This)->lpVtbl->Release(This)
   7527 /*** ISpPhrase methods ***/
   7528 #define ISpPhrase2_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
   7529 #define ISpPhrase2_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
   7530 #define ISpPhrase2_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
   7531 #define ISpPhrase2_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
   7532 /*** ISpPhrase2 methods ***/
   7533 #define ISpPhrase2_GetXMLResult(This,ppszCoMemXMLResult,Options) (This)->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options)
   7534 #define ISpPhrase2_GetXMLErrorInfo(This,pSemanticErrorInfo) (This)->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo)
   7535 #define ISpPhrase2_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
   7536 #else
   7537 /*** IUnknown methods ***/
   7538 static inline HRESULT ISpPhrase2_QueryInterface(ISpPhrase2* This,REFIID riid,void **ppvObject) {
   7539     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7540 }
   7541 static inline ULONG ISpPhrase2_AddRef(ISpPhrase2* This) {
   7542     return This->lpVtbl->AddRef(This);
   7543 }
   7544 static inline ULONG ISpPhrase2_Release(ISpPhrase2* This) {
   7545     return This->lpVtbl->Release(This);
   7546 }
   7547 /*** ISpPhrase methods ***/
   7548 static inline HRESULT ISpPhrase2_GetPhrase(ISpPhrase2* This,SPPHRASE **ppCoMemPhrase) {
   7549     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
   7550 }
   7551 static inline HRESULT ISpPhrase2_GetSerializedPhrase(ISpPhrase2* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
   7552     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
   7553 }
   7554 static inline HRESULT ISpPhrase2_GetText(ISpPhrase2* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
   7555     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
   7556 }
   7557 static inline HRESULT ISpPhrase2_Discard(ISpPhrase2* This,DWORD dwValueTypes) {
   7558     return This->lpVtbl->Discard(This,dwValueTypes);
   7559 }
   7560 /*** ISpPhrase2 methods ***/
   7561 static inline HRESULT ISpPhrase2_GetXMLResult(ISpPhrase2* This,LPWSTR *ppszCoMemXMLResult,SPXMLRESULTOPTIONS Options) {
   7562     return This->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options);
   7563 }
   7564 static inline HRESULT ISpPhrase2_GetXMLErrorInfo(ISpPhrase2* This,SPSEMANTICERRORINFO *pSemanticErrorInfo) {
   7565     return This->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo);
   7566 }
   7567 static inline HRESULT ISpPhrase2_GetAudio(ISpPhrase2* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
   7568     return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
   7569 }
   7570 #endif
   7571 #endif
   7572 
   7573 #endif
   7574 
   7575 
   7576 #endif  /* __ISpPhrase2_INTERFACE_DEFINED__ */
   7577 
   7578 typedef struct SPRECORESULTTIMES {
   7579     FILETIME ftStreamTime;
   7580     ULONGLONG ullLength;
   7581     DWORD dwTickCount;
   7582     ULONGLONG ullStart;
   7583 } SPRECORESULTTIMES;
   7584 typedef struct SPSERIALIZEDRESULT {
   7585     ULONG ulSerializedSize;
   7586 } SPSERIALIZEDRESULT;
   7587 /*****************************************************************************
   7588  * ISpRecoResult interface
   7589  */
   7590 #ifndef __ISpRecoResult_INTERFACE_DEFINED__
   7591 #define __ISpRecoResult_INTERFACE_DEFINED__
   7592 
   7593 DEFINE_GUID(IID_ISpRecoResult, 0x20b053be, 0xe235, 0x43cd, 0x9a,0x2a, 0x8d,0x17,0xa4,0x8b,0x78,0x42);
   7594 #if defined(__cplusplus) && !defined(CINTERFACE)
   7595 MIDL_INTERFACE("20b053be-e235-43cd-9a2a-8d17a48b7842")
   7596 ISpRecoResult : public ISpPhrase
   7597 {
   7598     virtual HRESULT STDMETHODCALLTYPE GetResultTimes(
   7599         SPRECORESULTTIMES *pTimes) = 0;
   7600 
   7601     virtual HRESULT STDMETHODCALLTYPE GetAlternates(
   7602         ULONG ulStartElement,
   7603         ULONG cElements,
   7604         ULONG ulRequestCount,
   7605         ISpPhraseAlt **ppPhrases,
   7606         ULONG *pcPhrasesReturned) = 0;
   7607 
   7608     virtual HRESULT STDMETHODCALLTYPE GetAudio(
   7609         ULONG ulStartElement,
   7610         ULONG cElements,
   7611         ISpStreamFormat **ppStream) = 0;
   7612 
   7613     virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
   7614         ULONG ulStartElement,
   7615         ULONG cElements,
   7616         DWORD dwFlags,
   7617         ULONG *pulStreamNumber) = 0;
   7618 
   7619     virtual HRESULT STDMETHODCALLTYPE Serialize(
   7620         SPSERIALIZEDRESULT **ppCoMemSerializedResult) = 0;
   7621 
   7622     virtual HRESULT STDMETHODCALLTYPE ScaleAudio(
   7623         const GUID *pAudioFormatId,
   7624         const WAVEFORMATEX *pWaveFormatEx) = 0;
   7625 
   7626     virtual HRESULT STDMETHODCALLTYPE GetRecoContext(
   7627         ISpRecoContext **ppRecoContext) = 0;
   7628 
   7629 };
   7630 #ifdef __CRT_UUID_DECL
   7631 __CRT_UUID_DECL(ISpRecoResult, 0x20b053be, 0xe235, 0x43cd, 0x9a,0x2a, 0x8d,0x17,0xa4,0x8b,0x78,0x42)
   7632 #endif
   7633 #else
   7634 typedef struct ISpRecoResultVtbl {
   7635     BEGIN_INTERFACE
   7636 
   7637     /*** IUnknown methods ***/
   7638     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7639         ISpRecoResult *This,
   7640         REFIID riid,
   7641         void **ppvObject);
   7642 
   7643     ULONG (STDMETHODCALLTYPE *AddRef)(
   7644         ISpRecoResult *This);
   7645 
   7646     ULONG (STDMETHODCALLTYPE *Release)(
   7647         ISpRecoResult *This);
   7648 
   7649     /*** ISpPhrase methods ***/
   7650     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
   7651         ISpRecoResult *This,
   7652         SPPHRASE **ppCoMemPhrase);
   7653 
   7654     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
   7655         ISpRecoResult *This,
   7656         SPSERIALIZEDPHRASE **ppCoMemPhrase);
   7657 
   7658     HRESULT (STDMETHODCALLTYPE *GetText)(
   7659         ISpRecoResult *This,
   7660         ULONG ulStart,
   7661         ULONG ulCount,
   7662         WINBOOL fUseTextReplacements,
   7663         LPWSTR *ppszCoMemText,
   7664         BYTE *pbDisplayAttributes);
   7665 
   7666     HRESULT (STDMETHODCALLTYPE *Discard)(
   7667         ISpRecoResult *This,
   7668         DWORD dwValueTypes);
   7669 
   7670     /*** ISpRecoResult methods ***/
   7671     HRESULT (STDMETHODCALLTYPE *GetResultTimes)(
   7672         ISpRecoResult *This,
   7673         SPRECORESULTTIMES *pTimes);
   7674 
   7675     HRESULT (STDMETHODCALLTYPE *GetAlternates)(
   7676         ISpRecoResult *This,
   7677         ULONG ulStartElement,
   7678         ULONG cElements,
   7679         ULONG ulRequestCount,
   7680         ISpPhraseAlt **ppPhrases,
   7681         ULONG *pcPhrasesReturned);
   7682 
   7683     HRESULT (STDMETHODCALLTYPE *GetAudio)(
   7684         ISpRecoResult *This,
   7685         ULONG ulStartElement,
   7686         ULONG cElements,
   7687         ISpStreamFormat **ppStream);
   7688 
   7689     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
   7690         ISpRecoResult *This,
   7691         ULONG ulStartElement,
   7692         ULONG cElements,
   7693         DWORD dwFlags,
   7694         ULONG *pulStreamNumber);
   7695 
   7696     HRESULT (STDMETHODCALLTYPE *Serialize)(
   7697         ISpRecoResult *This,
   7698         SPSERIALIZEDRESULT **ppCoMemSerializedResult);
   7699 
   7700     HRESULT (STDMETHODCALLTYPE *ScaleAudio)(
   7701         ISpRecoResult *This,
   7702         const GUID *pAudioFormatId,
   7703         const WAVEFORMATEX *pWaveFormatEx);
   7704 
   7705     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
   7706         ISpRecoResult *This,
   7707         ISpRecoContext **ppRecoContext);
   7708 
   7709     END_INTERFACE
   7710 } ISpRecoResultVtbl;
   7711 
   7712 interface ISpRecoResult {
   7713     CONST_VTBL ISpRecoResultVtbl* lpVtbl;
   7714 };
   7715 
   7716 #ifdef COBJMACROS
   7717 #ifndef WIDL_C_INLINE_WRAPPERS
   7718 /*** IUnknown methods ***/
   7719 #define ISpRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7720 #define ISpRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
   7721 #define ISpRecoResult_Release(This) (This)->lpVtbl->Release(This)
   7722 /*** ISpPhrase methods ***/
   7723 #define ISpRecoResult_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
   7724 #define ISpRecoResult_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
   7725 #define ISpRecoResult_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
   7726 #define ISpRecoResult_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
   7727 /*** ISpRecoResult methods ***/
   7728 #define ISpRecoResult_GetResultTimes(This,pTimes) (This)->lpVtbl->GetResultTimes(This,pTimes)
   7729 #define ISpRecoResult_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned) (This)->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
   7730 #define ISpRecoResult_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
   7731 #define ISpRecoResult_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
   7732 #define ISpRecoResult_Serialize(This,ppCoMemSerializedResult) (This)->lpVtbl->Serialize(This,ppCoMemSerializedResult)
   7733 #define ISpRecoResult_ScaleAudio(This,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
   7734 #define ISpRecoResult_GetRecoContext(This,ppRecoContext) (This)->lpVtbl->GetRecoContext(This,ppRecoContext)
   7735 #else
   7736 /*** IUnknown methods ***/
   7737 static inline HRESULT ISpRecoResult_QueryInterface(ISpRecoResult* This,REFIID riid,void **ppvObject) {
   7738     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7739 }
   7740 static inline ULONG ISpRecoResult_AddRef(ISpRecoResult* This) {
   7741     return This->lpVtbl->AddRef(This);
   7742 }
   7743 static inline ULONG ISpRecoResult_Release(ISpRecoResult* This) {
   7744     return This->lpVtbl->Release(This);
   7745 }
   7746 /*** ISpPhrase methods ***/
   7747 static inline HRESULT ISpRecoResult_GetPhrase(ISpRecoResult* This,SPPHRASE **ppCoMemPhrase) {
   7748     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
   7749 }
   7750 static inline HRESULT ISpRecoResult_GetSerializedPhrase(ISpRecoResult* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
   7751     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
   7752 }
   7753 static inline HRESULT ISpRecoResult_GetText(ISpRecoResult* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
   7754     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
   7755 }
   7756 static inline HRESULT ISpRecoResult_Discard(ISpRecoResult* This,DWORD dwValueTypes) {
   7757     return This->lpVtbl->Discard(This,dwValueTypes);
   7758 }
   7759 /*** ISpRecoResult methods ***/
   7760 static inline HRESULT ISpRecoResult_GetResultTimes(ISpRecoResult* This,SPRECORESULTTIMES *pTimes) {
   7761     return This->lpVtbl->GetResultTimes(This,pTimes);
   7762 }
   7763 static inline HRESULT ISpRecoResult_GetAlternates(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,ULONG ulRequestCount,ISpPhraseAlt **ppPhrases,ULONG *pcPhrasesReturned) {
   7764     return This->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned);
   7765 }
   7766 static inline HRESULT ISpRecoResult_GetAudio(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
   7767     return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
   7768 }
   7769 static inline HRESULT ISpRecoResult_SpeakAudio(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,DWORD dwFlags,ULONG *pulStreamNumber) {
   7770     return This->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber);
   7771 }
   7772 static inline HRESULT ISpRecoResult_Serialize(ISpRecoResult* This,SPSERIALIZEDRESULT **ppCoMemSerializedResult) {
   7773     return This->lpVtbl->Serialize(This,ppCoMemSerializedResult);
   7774 }
   7775 static inline HRESULT ISpRecoResult_ScaleAudio(ISpRecoResult* This,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
   7776     return This->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx);
   7777 }
   7778 static inline HRESULT ISpRecoResult_GetRecoContext(ISpRecoResult* This,ISpRecoContext **ppRecoContext) {
   7779     return This->lpVtbl->GetRecoContext(This,ppRecoContext);
   7780 }
   7781 #endif
   7782 #endif
   7783 
   7784 #endif
   7785 
   7786 
   7787 #endif  /* __ISpRecoResult_INTERFACE_DEFINED__ */
   7788 
   7789 typedef enum SPCOMMITFLAGS {
   7790     SPCF_NONE = 0,
   7791     SPCF_ADD_TO_USER_LEXICON = 1 << 0,
   7792     SPCF_DEFINITE_CORRECTION = 1 << 1
   7793 } SPCOMMITFLAGS;
   7794 /*****************************************************************************
   7795  * ISpRecoResult2 interface
   7796  */
   7797 #ifndef __ISpRecoResult2_INTERFACE_DEFINED__
   7798 #define __ISpRecoResult2_INTERFACE_DEFINED__
   7799 
   7800 DEFINE_GUID(IID_ISpRecoResult2, 0x27cac6c4, 0x88f2, 0x41f2, 0x88,0x17, 0x0c,0x95,0xe5,0x9f,0x1e,0x6e);
   7801 #if defined(__cplusplus) && !defined(CINTERFACE)
   7802 MIDL_INTERFACE("27cac6c4-88f2-41f2-8817-0c95e59f1e6e")
   7803 ISpRecoResult2 : public ISpRecoResult
   7804 {
   7805     virtual HRESULT STDMETHODCALLTYPE CommitAlternate(
   7806         ISpPhraseAlt *pPhraseAlt,
   7807         ISpRecoResult **ppNewResult) = 0;
   7808 
   7809     virtual HRESULT STDMETHODCALLTYPE CommitText(
   7810         ULONG ulStartElement,
   7811         ULONG cElements,
   7812         LPCWSTR pszCorrectedData,
   7813         DWORD eCommitFlags) = 0;
   7814 
   7815     virtual HRESULT STDMETHODCALLTYPE SetTextFeedback(
   7816         LPCWSTR pszFeedback,
   7817         WINBOOL fSuccessful) = 0;
   7818 
   7819 };
   7820 #ifdef __CRT_UUID_DECL
   7821 __CRT_UUID_DECL(ISpRecoResult2, 0x27cac6c4, 0x88f2, 0x41f2, 0x88,0x17, 0x0c,0x95,0xe5,0x9f,0x1e,0x6e)
   7822 #endif
   7823 #else
   7824 typedef struct ISpRecoResult2Vtbl {
   7825     BEGIN_INTERFACE
   7826 
   7827     /*** IUnknown methods ***/
   7828     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7829         ISpRecoResult2 *This,
   7830         REFIID riid,
   7831         void **ppvObject);
   7832 
   7833     ULONG (STDMETHODCALLTYPE *AddRef)(
   7834         ISpRecoResult2 *This);
   7835 
   7836     ULONG (STDMETHODCALLTYPE *Release)(
   7837         ISpRecoResult2 *This);
   7838 
   7839     /*** ISpPhrase methods ***/
   7840     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
   7841         ISpRecoResult2 *This,
   7842         SPPHRASE **ppCoMemPhrase);
   7843 
   7844     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
   7845         ISpRecoResult2 *This,
   7846         SPSERIALIZEDPHRASE **ppCoMemPhrase);
   7847 
   7848     HRESULT (STDMETHODCALLTYPE *GetText)(
   7849         ISpRecoResult2 *This,
   7850         ULONG ulStart,
   7851         ULONG ulCount,
   7852         WINBOOL fUseTextReplacements,
   7853         LPWSTR *ppszCoMemText,
   7854         BYTE *pbDisplayAttributes);
   7855 
   7856     HRESULT (STDMETHODCALLTYPE *Discard)(
   7857         ISpRecoResult2 *This,
   7858         DWORD dwValueTypes);
   7859 
   7860     /*** ISpRecoResult methods ***/
   7861     HRESULT (STDMETHODCALLTYPE *GetResultTimes)(
   7862         ISpRecoResult2 *This,
   7863         SPRECORESULTTIMES *pTimes);
   7864 
   7865     HRESULT (STDMETHODCALLTYPE *GetAlternates)(
   7866         ISpRecoResult2 *This,
   7867         ULONG ulStartElement,
   7868         ULONG cElements,
   7869         ULONG ulRequestCount,
   7870         ISpPhraseAlt **ppPhrases,
   7871         ULONG *pcPhrasesReturned);
   7872 
   7873     HRESULT (STDMETHODCALLTYPE *GetAudio)(
   7874         ISpRecoResult2 *This,
   7875         ULONG ulStartElement,
   7876         ULONG cElements,
   7877         ISpStreamFormat **ppStream);
   7878 
   7879     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
   7880         ISpRecoResult2 *This,
   7881         ULONG ulStartElement,
   7882         ULONG cElements,
   7883         DWORD dwFlags,
   7884         ULONG *pulStreamNumber);
   7885 
   7886     HRESULT (STDMETHODCALLTYPE *Serialize)(
   7887         ISpRecoResult2 *This,
   7888         SPSERIALIZEDRESULT **ppCoMemSerializedResult);
   7889 
   7890     HRESULT (STDMETHODCALLTYPE *ScaleAudio)(
   7891         ISpRecoResult2 *This,
   7892         const GUID *pAudioFormatId,
   7893         const WAVEFORMATEX *pWaveFormatEx);
   7894 
   7895     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
   7896         ISpRecoResult2 *This,
   7897         ISpRecoContext **ppRecoContext);
   7898 
   7899     /*** ISpRecoResult2 methods ***/
   7900     HRESULT (STDMETHODCALLTYPE *CommitAlternate)(
   7901         ISpRecoResult2 *This,
   7902         ISpPhraseAlt *pPhraseAlt,
   7903         ISpRecoResult **ppNewResult);
   7904 
   7905     HRESULT (STDMETHODCALLTYPE *CommitText)(
   7906         ISpRecoResult2 *This,
   7907         ULONG ulStartElement,
   7908         ULONG cElements,
   7909         LPCWSTR pszCorrectedData,
   7910         DWORD eCommitFlags);
   7911 
   7912     HRESULT (STDMETHODCALLTYPE *SetTextFeedback)(
   7913         ISpRecoResult2 *This,
   7914         LPCWSTR pszFeedback,
   7915         WINBOOL fSuccessful);
   7916 
   7917     END_INTERFACE
   7918 } ISpRecoResult2Vtbl;
   7919 
   7920 interface ISpRecoResult2 {
   7921     CONST_VTBL ISpRecoResult2Vtbl* lpVtbl;
   7922 };
   7923 
   7924 #ifdef COBJMACROS
   7925 #ifndef WIDL_C_INLINE_WRAPPERS
   7926 /*** IUnknown methods ***/
   7927 #define ISpRecoResult2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7928 #define ISpRecoResult2_AddRef(This) (This)->lpVtbl->AddRef(This)
   7929 #define ISpRecoResult2_Release(This) (This)->lpVtbl->Release(This)
   7930 /*** ISpPhrase methods ***/
   7931 #define ISpRecoResult2_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
   7932 #define ISpRecoResult2_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
   7933 #define ISpRecoResult2_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
   7934 #define ISpRecoResult2_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
   7935 /*** ISpRecoResult methods ***/
   7936 #define ISpRecoResult2_GetResultTimes(This,pTimes) (This)->lpVtbl->GetResultTimes(This,pTimes)
   7937 #define ISpRecoResult2_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned) (This)->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
   7938 #define ISpRecoResult2_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
   7939 #define ISpRecoResult2_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
   7940 #define ISpRecoResult2_Serialize(This,ppCoMemSerializedResult) (This)->lpVtbl->Serialize(This,ppCoMemSerializedResult)
   7941 #define ISpRecoResult2_ScaleAudio(This,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
   7942 #define ISpRecoResult2_GetRecoContext(This,ppRecoContext) (This)->lpVtbl->GetRecoContext(This,ppRecoContext)
   7943 /*** ISpRecoResult2 methods ***/
   7944 #define ISpRecoResult2_CommitAlternate(This,pPhraseAlt,ppNewResult) (This)->lpVtbl->CommitAlternate(This,pPhraseAlt,ppNewResult)
   7945 #define ISpRecoResult2_CommitText(This,ulStartElement,cElements,pszCorrectedData,eCommitFlags) (This)->lpVtbl->CommitText(This,ulStartElement,cElements,pszCorrectedData,eCommitFlags)
   7946 #define ISpRecoResult2_SetTextFeedback(This,pszFeedback,fSuccessful) (This)->lpVtbl->SetTextFeedback(This,pszFeedback,fSuccessful)
   7947 #else
   7948 /*** IUnknown methods ***/
   7949 static inline HRESULT ISpRecoResult2_QueryInterface(ISpRecoResult2* This,REFIID riid,void **ppvObject) {
   7950     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7951 }
   7952 static inline ULONG ISpRecoResult2_AddRef(ISpRecoResult2* This) {
   7953     return This->lpVtbl->AddRef(This);
   7954 }
   7955 static inline ULONG ISpRecoResult2_Release(ISpRecoResult2* This) {
   7956     return This->lpVtbl->Release(This);
   7957 }
   7958 /*** ISpPhrase methods ***/
   7959 static inline HRESULT ISpRecoResult2_GetPhrase(ISpRecoResult2* This,SPPHRASE **ppCoMemPhrase) {
   7960     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
   7961 }
   7962 static inline HRESULT ISpRecoResult2_GetSerializedPhrase(ISpRecoResult2* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
   7963     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
   7964 }
   7965 static inline HRESULT ISpRecoResult2_GetText(ISpRecoResult2* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
   7966     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
   7967 }
   7968 static inline HRESULT ISpRecoResult2_Discard(ISpRecoResult2* This,DWORD dwValueTypes) {
   7969     return This->lpVtbl->Discard(This,dwValueTypes);
   7970 }
   7971 /*** ISpRecoResult methods ***/
   7972 static inline HRESULT ISpRecoResult2_GetResultTimes(ISpRecoResult2* This,SPRECORESULTTIMES *pTimes) {
   7973     return This->lpVtbl->GetResultTimes(This,pTimes);
   7974 }
   7975 static inline HRESULT ISpRecoResult2_GetAlternates(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,ULONG ulRequestCount,ISpPhraseAlt **ppPhrases,ULONG *pcPhrasesReturned) {
   7976     return This->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned);
   7977 }
   7978 static inline HRESULT ISpRecoResult2_GetAudio(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
   7979     return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
   7980 }
   7981 static inline HRESULT ISpRecoResult2_SpeakAudio(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,DWORD dwFlags,ULONG *pulStreamNumber) {
   7982     return This->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber);
   7983 }
   7984 static inline HRESULT ISpRecoResult2_Serialize(ISpRecoResult2* This,SPSERIALIZEDRESULT **ppCoMemSerializedResult) {
   7985     return This->lpVtbl->Serialize(This,ppCoMemSerializedResult);
   7986 }
   7987 static inline HRESULT ISpRecoResult2_ScaleAudio(ISpRecoResult2* This,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
   7988     return This->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx);
   7989 }
   7990 static inline HRESULT ISpRecoResult2_GetRecoContext(ISpRecoResult2* This,ISpRecoContext **ppRecoContext) {
   7991     return This->lpVtbl->GetRecoContext(This,ppRecoContext);
   7992 }
   7993 /*** ISpRecoResult2 methods ***/
   7994 static inline HRESULT ISpRecoResult2_CommitAlternate(ISpRecoResult2* This,ISpPhraseAlt *pPhraseAlt,ISpRecoResult **ppNewResult) {
   7995     return This->lpVtbl->CommitAlternate(This,pPhraseAlt,ppNewResult);
   7996 }
   7997 static inline HRESULT ISpRecoResult2_CommitText(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,LPCWSTR pszCorrectedData,DWORD eCommitFlags) {
   7998     return This->lpVtbl->CommitText(This,ulStartElement,cElements,pszCorrectedData,eCommitFlags);
   7999 }
   8000 static inline HRESULT ISpRecoResult2_SetTextFeedback(ISpRecoResult2* This,LPCWSTR pszFeedback,WINBOOL fSuccessful) {
   8001     return This->lpVtbl->SetTextFeedback(This,pszFeedback,fSuccessful);
   8002 }
   8003 #endif
   8004 #endif
   8005 
   8006 #endif
   8007 
   8008 
   8009 #endif  /* __ISpRecoResult2_INTERFACE_DEFINED__ */
   8010 
   8011 /*****************************************************************************
   8012  * ISpXMLRecoResult interface
   8013  */
   8014 #ifndef __ISpXMLRecoResult_INTERFACE_DEFINED__
   8015 #define __ISpXMLRecoResult_INTERFACE_DEFINED__
   8016 
   8017 DEFINE_GUID(IID_ISpXMLRecoResult, 0xae39362b, 0x45a8, 0x4074, 0x9b,0x9e, 0xcc,0xf4,0x9a,0xa2,0xd0,0xb6);
   8018 #if defined(__cplusplus) && !defined(CINTERFACE)
   8019 MIDL_INTERFACE("ae39362b-45a8-4074-9b9e-ccf49aa2d0b6")
   8020 ISpXMLRecoResult : public ISpRecoResult
   8021 {
   8022     virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
   8023         LPWSTR *ppszCoMemXMLResult,
   8024         SPXMLRESULTOPTIONS Options) = 0;
   8025 
   8026     virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
   8027         SPSEMANTICERRORINFO *pSemanticErrorInfo) = 0;
   8028 
   8029 };
   8030 #ifdef __CRT_UUID_DECL
   8031 __CRT_UUID_DECL(ISpXMLRecoResult, 0xae39362b, 0x45a8, 0x4074, 0x9b,0x9e, 0xcc,0xf4,0x9a,0xa2,0xd0,0xb6)
   8032 #endif
   8033 #else
   8034 typedef struct ISpXMLRecoResultVtbl {
   8035     BEGIN_INTERFACE
   8036 
   8037     /*** IUnknown methods ***/
   8038     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8039         ISpXMLRecoResult *This,
   8040         REFIID riid,
   8041         void **ppvObject);
   8042 
   8043     ULONG (STDMETHODCALLTYPE *AddRef)(
   8044         ISpXMLRecoResult *This);
   8045 
   8046     ULONG (STDMETHODCALLTYPE *Release)(
   8047         ISpXMLRecoResult *This);
   8048 
   8049     /*** ISpPhrase methods ***/
   8050     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
   8051         ISpXMLRecoResult *This,
   8052         SPPHRASE **ppCoMemPhrase);
   8053 
   8054     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
   8055         ISpXMLRecoResult *This,
   8056         SPSERIALIZEDPHRASE **ppCoMemPhrase);
   8057 
   8058     HRESULT (STDMETHODCALLTYPE *GetText)(
   8059         ISpXMLRecoResult *This,
   8060         ULONG ulStart,
   8061         ULONG ulCount,
   8062         WINBOOL fUseTextReplacements,
   8063         LPWSTR *ppszCoMemText,
   8064         BYTE *pbDisplayAttributes);
   8065 
   8066     HRESULT (STDMETHODCALLTYPE *Discard)(
   8067         ISpXMLRecoResult *This,
   8068         DWORD dwValueTypes);
   8069 
   8070     /*** ISpRecoResult methods ***/
   8071     HRESULT (STDMETHODCALLTYPE *GetResultTimes)(
   8072         ISpXMLRecoResult *This,
   8073         SPRECORESULTTIMES *pTimes);
   8074 
   8075     HRESULT (STDMETHODCALLTYPE *GetAlternates)(
   8076         ISpXMLRecoResult *This,
   8077         ULONG ulStartElement,
   8078         ULONG cElements,
   8079         ULONG ulRequestCount,
   8080         ISpPhraseAlt **ppPhrases,
   8081         ULONG *pcPhrasesReturned);
   8082 
   8083     HRESULT (STDMETHODCALLTYPE *GetAudio)(
   8084         ISpXMLRecoResult *This,
   8085         ULONG ulStartElement,
   8086         ULONG cElements,
   8087         ISpStreamFormat **ppStream);
   8088 
   8089     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
   8090         ISpXMLRecoResult *This,
   8091         ULONG ulStartElement,
   8092         ULONG cElements,
   8093         DWORD dwFlags,
   8094         ULONG *pulStreamNumber);
   8095 
   8096     HRESULT (STDMETHODCALLTYPE *Serialize)(
   8097         ISpXMLRecoResult *This,
   8098         SPSERIALIZEDRESULT **ppCoMemSerializedResult);
   8099 
   8100     HRESULT (STDMETHODCALLTYPE *ScaleAudio)(
   8101         ISpXMLRecoResult *This,
   8102         const GUID *pAudioFormatId,
   8103         const WAVEFORMATEX *pWaveFormatEx);
   8104 
   8105     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
   8106         ISpXMLRecoResult *This,
   8107         ISpRecoContext **ppRecoContext);
   8108 
   8109     /*** ISpXMLRecoResult methods ***/
   8110     HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
   8111         ISpXMLRecoResult *This,
   8112         LPWSTR *ppszCoMemXMLResult,
   8113         SPXMLRESULTOPTIONS Options);
   8114 
   8115     HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
   8116         ISpXMLRecoResult *This,
   8117         SPSEMANTICERRORINFO *pSemanticErrorInfo);
   8118 
   8119     END_INTERFACE
   8120 } ISpXMLRecoResultVtbl;
   8121 
   8122 interface ISpXMLRecoResult {
   8123     CONST_VTBL ISpXMLRecoResultVtbl* lpVtbl;
   8124 };
   8125 
   8126 #ifdef COBJMACROS
   8127 #ifndef WIDL_C_INLINE_WRAPPERS
   8128 /*** IUnknown methods ***/
   8129 #define ISpXMLRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8130 #define ISpXMLRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
   8131 #define ISpXMLRecoResult_Release(This) (This)->lpVtbl->Release(This)
   8132 /*** ISpPhrase methods ***/
   8133 #define ISpXMLRecoResult_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
   8134 #define ISpXMLRecoResult_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
   8135 #define ISpXMLRecoResult_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
   8136 #define ISpXMLRecoResult_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
   8137 /*** ISpRecoResult methods ***/
   8138 #define ISpXMLRecoResult_GetResultTimes(This,pTimes) (This)->lpVtbl->GetResultTimes(This,pTimes)
   8139 #define ISpXMLRecoResult_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned) (This)->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
   8140 #define ISpXMLRecoResult_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
   8141 #define ISpXMLRecoResult_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
   8142 #define ISpXMLRecoResult_Serialize(This,ppCoMemSerializedResult) (This)->lpVtbl->Serialize(This,ppCoMemSerializedResult)
   8143 #define ISpXMLRecoResult_ScaleAudio(This,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
   8144 #define ISpXMLRecoResult_GetRecoContext(This,ppRecoContext) (This)->lpVtbl->GetRecoContext(This,ppRecoContext)
   8145 /*** ISpXMLRecoResult methods ***/
   8146 #define ISpXMLRecoResult_GetXMLResult(This,ppszCoMemXMLResult,Options) (This)->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options)
   8147 #define ISpXMLRecoResult_GetXMLErrorInfo(This,pSemanticErrorInfo) (This)->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo)
   8148 #else
   8149 /*** IUnknown methods ***/
   8150 static inline HRESULT ISpXMLRecoResult_QueryInterface(ISpXMLRecoResult* This,REFIID riid,void **ppvObject) {
   8151     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8152 }
   8153 static inline ULONG ISpXMLRecoResult_AddRef(ISpXMLRecoResult* This) {
   8154     return This->lpVtbl->AddRef(This);
   8155 }
   8156 static inline ULONG ISpXMLRecoResult_Release(ISpXMLRecoResult* This) {
   8157     return This->lpVtbl->Release(This);
   8158 }
   8159 /*** ISpPhrase methods ***/
   8160 static inline HRESULT ISpXMLRecoResult_GetPhrase(ISpXMLRecoResult* This,SPPHRASE **ppCoMemPhrase) {
   8161     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
   8162 }
   8163 static inline HRESULT ISpXMLRecoResult_GetSerializedPhrase(ISpXMLRecoResult* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
   8164     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
   8165 }
   8166 static inline HRESULT ISpXMLRecoResult_GetText(ISpXMLRecoResult* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
   8167     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
   8168 }
   8169 static inline HRESULT ISpXMLRecoResult_Discard(ISpXMLRecoResult* This,DWORD dwValueTypes) {
   8170     return This->lpVtbl->Discard(This,dwValueTypes);
   8171 }
   8172 /*** ISpRecoResult methods ***/
   8173 static inline HRESULT ISpXMLRecoResult_GetResultTimes(ISpXMLRecoResult* This,SPRECORESULTTIMES *pTimes) {
   8174     return This->lpVtbl->GetResultTimes(This,pTimes);
   8175 }
   8176 static inline HRESULT ISpXMLRecoResult_GetAlternates(ISpXMLRecoResult* This,ULONG ulStartElement,ULONG cElements,ULONG ulRequestCount,ISpPhraseAlt **ppPhrases,ULONG *pcPhrasesReturned) {
   8177     return This->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned);
   8178 }
   8179 static inline HRESULT ISpXMLRecoResult_GetAudio(ISpXMLRecoResult* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
   8180     return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
   8181 }
   8182 static inline HRESULT ISpXMLRecoResult_SpeakAudio(ISpXMLRecoResult* This,ULONG ulStartElement,ULONG cElements,DWORD dwFlags,ULONG *pulStreamNumber) {
   8183     return This->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber);
   8184 }
   8185 static inline HRESULT ISpXMLRecoResult_Serialize(ISpXMLRecoResult* This,SPSERIALIZEDRESULT **ppCoMemSerializedResult) {
   8186     return This->lpVtbl->Serialize(This,ppCoMemSerializedResult);
   8187 }
   8188 static inline HRESULT ISpXMLRecoResult_ScaleAudio(ISpXMLRecoResult* This,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
   8189     return This->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx);
   8190 }
   8191 static inline HRESULT ISpXMLRecoResult_GetRecoContext(ISpXMLRecoResult* This,ISpRecoContext **ppRecoContext) {
   8192     return This->lpVtbl->GetRecoContext(This,ppRecoContext);
   8193 }
   8194 /*** ISpXMLRecoResult methods ***/
   8195 static inline HRESULT ISpXMLRecoResult_GetXMLResult(ISpXMLRecoResult* This,LPWSTR *ppszCoMemXMLResult,SPXMLRESULTOPTIONS Options) {
   8196     return This->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options);
   8197 }
   8198 static inline HRESULT ISpXMLRecoResult_GetXMLErrorInfo(ISpXMLRecoResult* This,SPSEMANTICERRORINFO *pSemanticErrorInfo) {
   8199     return This->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo);
   8200 }
   8201 #endif
   8202 #endif
   8203 
   8204 #endif
   8205 
   8206 
   8207 #endif  /* __ISpXMLRecoResult_INTERFACE_DEFINED__ */
   8208 
   8209 typedef struct tagSPTEXTSELECTIONINFO {
   8210     ULONG ulStartActiveOffset;
   8211     ULONG cchActiveChars;
   8212     ULONG ulStartSelection;
   8213     ULONG cchSelection;
   8214 } SPTEXTSELECTIONINFO;
   8215 typedef enum SPWORDPRONOUNCEABLE {
   8216     SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE = 0,
   8217     SPWP_UNKNOWN_WORD_PRONOUNCEABLE = 1,
   8218     SPWP_KNOWN_WORD_PRONOUNCEABLE = 2
   8219 } SPWORDPRONOUNCEABLE;
   8220 typedef enum SPGRAMMARSTATE {
   8221     SPGS_DISABLED = 0,
   8222     SPGS_ENABLED = 1,
   8223     SPGS_EXCLUSIVE = 3
   8224 } SPGRAMMARSTATE;
   8225 typedef enum SPCONTEXTSTATE {
   8226     SPCS_DISABLED = 0,
   8227     SPCS_ENABLED = 1
   8228 } SPCONTEXTSTATE;
   8229 typedef enum SPRULESTATE {
   8230     SPRS_INACTIVE = 0,
   8231     SPRS_ACTIVE = 1,
   8232     SPRS_ACTIVE_WITH_AUTO_PAUSE = 3,
   8233     SPRS_ACTIVE_USER_DELIMITED = 4
   8234 } SPRULESTATE;
   8235 #define SP_STREAMPOS_ASAP (0)
   8236 
   8237 #define SP_STREAMPOS_REALTIME (-1)
   8238 
   8239 #define SPRULETRANS_TEXTBUFFER (SPSTATEHANDLE) (-1)
   8240 #define SPRULETRANS_WILDCARD (SPSTATEHANDLE) (-2)
   8241 #define SPRULETRANS_DICTATION (SPSTATEHANDLE) (-3)
   8242 typedef enum SPGRAMMARWORDTYPE {
   8243     SPWT_DISPLAY = 0,
   8244     SPWT_LEXICAL = 1,
   8245     SPWT_PRONUNCIATION = 2,
   8246     SPWT_LEXICAL_NO_SPECIAL_CHARS = 3
   8247 } SPGRAMMARWORDTYPE;
   8248 typedef struct tagSPPROPERTYINFO {
   8249     LPCWSTR pszName;
   8250     ULONG ulId;
   8251     LPCWSTR pszValue;
   8252     VARIANT vValue;
   8253 } SPPROPERTYINFO;
   8254 typedef enum SPCFGRULEATTRIBUTES {
   8255     SPRAF_TopLevel = 0x1,
   8256     SPRAF_Active = 0x2,
   8257     SPRAF_Export = 0x4,
   8258     SPRAF_Import = 0x8,
   8259     SPRAF_Interpreter = 0x10,
   8260     SPRAF_Dynamic = 0x20,
   8261     SPRAF_Root = 0x40,
   8262     SPRAF_AutoPause = 0x10000,
   8263     SPRAF_UserDelimited = 0x20000
   8264 } SPCFGRULEATTRIBUTES;
   8265 /*****************************************************************************
   8266  * ISpGrammarBuilder interface
   8267  */
   8268 #ifndef __ISpGrammarBuilder_INTERFACE_DEFINED__
   8269 #define __ISpGrammarBuilder_INTERFACE_DEFINED__
   8270 
   8271 DEFINE_GUID(IID_ISpGrammarBuilder, 0x8137828f, 0x591a, 0x4a42, 0xbe,0x58, 0x49,0xea,0x7e,0xba,0xac,0x68);
   8272 #if defined(__cplusplus) && !defined(CINTERFACE)
   8273 MIDL_INTERFACE("8137828f-591a-4a42-be58-49ea7ebaac68")
   8274 ISpGrammarBuilder : public IUnknown
   8275 {
   8276     virtual HRESULT STDMETHODCALLTYPE ResetGrammar(
   8277         WORD NewLanguage) = 0;
   8278 
   8279     virtual HRESULT STDMETHODCALLTYPE GetRule(
   8280         LPCWSTR pszRuleName,
   8281         DWORD dwRuleId,
   8282         DWORD dwAttributes,
   8283         WINBOOL fCreateIfNotExist,
   8284         SPSTATEHANDLE *phInitialState) = 0;
   8285 
   8286     virtual HRESULT STDMETHODCALLTYPE ClearRule(
   8287         SPSTATEHANDLE hState) = 0;
   8288 
   8289     virtual HRESULT STDMETHODCALLTYPE CreateNewState(
   8290         SPSTATEHANDLE hState,
   8291         SPSTATEHANDLE *phState) = 0;
   8292 
   8293     virtual HRESULT STDMETHODCALLTYPE AddWordTransition(
   8294         SPSTATEHANDLE hFromState,
   8295         SPSTATEHANDLE hToState,
   8296         LPCWSTR psz,
   8297         LPCWSTR pszSeparators,
   8298         SPGRAMMARWORDTYPE eWordType,
   8299         float Weight,
   8300         const SPPROPERTYINFO *pPropInfo) = 0;
   8301 
   8302     virtual HRESULT STDMETHODCALLTYPE AddRuleTransition(
   8303         SPSTATEHANDLE hFromState,
   8304         SPSTATEHANDLE hToState,
   8305         SPSTATEHANDLE hRule,
   8306         float Weight,
   8307         const SPPROPERTYINFO *pPropInfo) = 0;
   8308 
   8309     virtual HRESULT STDMETHODCALLTYPE AddResource(
   8310         SPSTATEHANDLE hRuleState,
   8311         LPCWSTR pszResourceName,
   8312         LPCWSTR pszResourceValue) = 0;
   8313 
   8314     virtual HRESULT STDMETHODCALLTYPE Commit(
   8315         DWORD dwReserved) = 0;
   8316 
   8317 };
   8318 #ifdef __CRT_UUID_DECL
   8319 __CRT_UUID_DECL(ISpGrammarBuilder, 0x8137828f, 0x591a, 0x4a42, 0xbe,0x58, 0x49,0xea,0x7e,0xba,0xac,0x68)
   8320 #endif
   8321 #else
   8322 typedef struct ISpGrammarBuilderVtbl {
   8323     BEGIN_INTERFACE
   8324 
   8325     /*** IUnknown methods ***/
   8326     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8327         ISpGrammarBuilder *This,
   8328         REFIID riid,
   8329         void **ppvObject);
   8330 
   8331     ULONG (STDMETHODCALLTYPE *AddRef)(
   8332         ISpGrammarBuilder *This);
   8333 
   8334     ULONG (STDMETHODCALLTYPE *Release)(
   8335         ISpGrammarBuilder *This);
   8336 
   8337     /*** ISpGrammarBuilder methods ***/
   8338     HRESULT (STDMETHODCALLTYPE *ResetGrammar)(
   8339         ISpGrammarBuilder *This,
   8340         WORD NewLanguage);
   8341 
   8342     HRESULT (STDMETHODCALLTYPE *GetRule)(
   8343         ISpGrammarBuilder *This,
   8344         LPCWSTR pszRuleName,
   8345         DWORD dwRuleId,
   8346         DWORD dwAttributes,
   8347         WINBOOL fCreateIfNotExist,
   8348         SPSTATEHANDLE *phInitialState);
   8349 
   8350     HRESULT (STDMETHODCALLTYPE *ClearRule)(
   8351         ISpGrammarBuilder *This,
   8352         SPSTATEHANDLE hState);
   8353 
   8354     HRESULT (STDMETHODCALLTYPE *CreateNewState)(
   8355         ISpGrammarBuilder *This,
   8356         SPSTATEHANDLE hState,
   8357         SPSTATEHANDLE *phState);
   8358 
   8359     HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
   8360         ISpGrammarBuilder *This,
   8361         SPSTATEHANDLE hFromState,
   8362         SPSTATEHANDLE hToState,
   8363         LPCWSTR psz,
   8364         LPCWSTR pszSeparators,
   8365         SPGRAMMARWORDTYPE eWordType,
   8366         float Weight,
   8367         const SPPROPERTYINFO *pPropInfo);
   8368 
   8369     HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
   8370         ISpGrammarBuilder *This,
   8371         SPSTATEHANDLE hFromState,
   8372         SPSTATEHANDLE hToState,
   8373         SPSTATEHANDLE hRule,
   8374         float Weight,
   8375         const SPPROPERTYINFO *pPropInfo);
   8376 
   8377     HRESULT (STDMETHODCALLTYPE *AddResource)(
   8378         ISpGrammarBuilder *This,
   8379         SPSTATEHANDLE hRuleState,
   8380         LPCWSTR pszResourceName,
   8381         LPCWSTR pszResourceValue);
   8382 
   8383     HRESULT (STDMETHODCALLTYPE *Commit)(
   8384         ISpGrammarBuilder *This,
   8385         DWORD dwReserved);
   8386 
   8387     END_INTERFACE
   8388 } ISpGrammarBuilderVtbl;
   8389 
   8390 interface ISpGrammarBuilder {
   8391     CONST_VTBL ISpGrammarBuilderVtbl* lpVtbl;
   8392 };
   8393 
   8394 #ifdef COBJMACROS
   8395 #ifndef WIDL_C_INLINE_WRAPPERS
   8396 /*** IUnknown methods ***/
   8397 #define ISpGrammarBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8398 #define ISpGrammarBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
   8399 #define ISpGrammarBuilder_Release(This) (This)->lpVtbl->Release(This)
   8400 /*** ISpGrammarBuilder methods ***/
   8401 #define ISpGrammarBuilder_ResetGrammar(This,NewLanguage) (This)->lpVtbl->ResetGrammar(This,NewLanguage)
   8402 #define ISpGrammarBuilder_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState) (This)->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
   8403 #define ISpGrammarBuilder_ClearRule(This,hState) (This)->lpVtbl->ClearRule(This,hState)
   8404 #define ISpGrammarBuilder_CreateNewState(This,hState,phState) (This)->lpVtbl->CreateNewState(This,hState,phState)
   8405 #define ISpGrammarBuilder_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo) (This)->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
   8406 #define ISpGrammarBuilder_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo) (This)->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
   8407 #define ISpGrammarBuilder_AddResource(This,hRuleState,pszResourceName,pszResourceValue) (This)->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue)
   8408 #define ISpGrammarBuilder_Commit(This,dwReserved) (This)->lpVtbl->Commit(This,dwReserved)
   8409 #else
   8410 /*** IUnknown methods ***/
   8411 static inline HRESULT ISpGrammarBuilder_QueryInterface(ISpGrammarBuilder* This,REFIID riid,void **ppvObject) {
   8412     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8413 }
   8414 static inline ULONG ISpGrammarBuilder_AddRef(ISpGrammarBuilder* This) {
   8415     return This->lpVtbl->AddRef(This);
   8416 }
   8417 static inline ULONG ISpGrammarBuilder_Release(ISpGrammarBuilder* This) {
   8418     return This->lpVtbl->Release(This);
   8419 }
   8420 /*** ISpGrammarBuilder methods ***/
   8421 static inline HRESULT ISpGrammarBuilder_ResetGrammar(ISpGrammarBuilder* This,WORD NewLanguage) {
   8422     return This->lpVtbl->ResetGrammar(This,NewLanguage);
   8423 }
   8424 static inline HRESULT ISpGrammarBuilder_GetRule(ISpGrammarBuilder* This,LPCWSTR pszRuleName,DWORD dwRuleId,DWORD dwAttributes,WINBOOL fCreateIfNotExist,SPSTATEHANDLE *phInitialState) {
   8425     return This->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState);
   8426 }
   8427 static inline HRESULT ISpGrammarBuilder_ClearRule(ISpGrammarBuilder* This,SPSTATEHANDLE hState) {
   8428     return This->lpVtbl->ClearRule(This,hState);
   8429 }
   8430 static inline HRESULT ISpGrammarBuilder_CreateNewState(ISpGrammarBuilder* This,SPSTATEHANDLE hState,SPSTATEHANDLE *phState) {
   8431     return This->lpVtbl->CreateNewState(This,hState,phState);
   8432 }
   8433 static inline HRESULT ISpGrammarBuilder_AddWordTransition(ISpGrammarBuilder* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,LPCWSTR pszSeparators,SPGRAMMARWORDTYPE eWordType,float Weight,const SPPROPERTYINFO *pPropInfo) {
   8434     return This->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo);
   8435 }
   8436 static inline HRESULT ISpGrammarBuilder_AddRuleTransition(ISpGrammarBuilder* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,SPSTATEHANDLE hRule,float Weight,const SPPROPERTYINFO *pPropInfo) {
   8437     return This->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo);
   8438 }
   8439 static inline HRESULT ISpGrammarBuilder_AddResource(ISpGrammarBuilder* This,SPSTATEHANDLE hRuleState,LPCWSTR pszResourceName,LPCWSTR pszResourceValue) {
   8440     return This->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue);
   8441 }
   8442 static inline HRESULT ISpGrammarBuilder_Commit(ISpGrammarBuilder* This,DWORD dwReserved) {
   8443     return This->lpVtbl->Commit(This,dwReserved);
   8444 }
   8445 #endif
   8446 #endif
   8447 
   8448 #endif
   8449 
   8450 
   8451 #endif  /* __ISpGrammarBuilder_INTERFACE_DEFINED__ */
   8452 
   8453 typedef enum SPLOADOPTIONS {
   8454     SPLO_STATIC = 0,
   8455     SPLO_DYNAMIC = 1
   8456 } SPLOADOPTIONS;
   8457 /*****************************************************************************
   8458  * ISpRecoGrammar interface
   8459  */
   8460 #ifndef __ISpRecoGrammar_INTERFACE_DEFINED__
   8461 #define __ISpRecoGrammar_INTERFACE_DEFINED__
   8462 
   8463 DEFINE_GUID(IID_ISpRecoGrammar, 0x2177db29, 0x7f45, 0x47d0, 0x85,0x54, 0x06,0x7e,0x91,0xc8,0x05,0x02);
   8464 #if defined(__cplusplus) && !defined(CINTERFACE)
   8465 MIDL_INTERFACE("2177db29-7f45-47d0-8554-067e91c80502")
   8466 ISpRecoGrammar : public ISpGrammarBuilder
   8467 {
   8468     virtual HRESULT STDMETHODCALLTYPE GetGrammarId(
   8469         ULONGLONG *pullGrammarId) = 0;
   8470 
   8471     virtual HRESULT STDMETHODCALLTYPE GetRecoContext(
   8472         ISpRecoContext **ppRecoCtxt) = 0;
   8473 
   8474     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromFile(
   8475         LPCWSTR pszFileName,
   8476         SPLOADOPTIONS Options) = 0;
   8477 
   8478     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromObject(
   8479         REFCLSID rcid,
   8480         LPCWSTR pszGrammarName,
   8481         SPLOADOPTIONS Options) = 0;
   8482 
   8483     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromResource(
   8484         HMODULE hModule,
   8485         LPCWSTR pszResourceName,
   8486         LPCWSTR pszResourceType,
   8487         WORD wLanguage,
   8488         SPLOADOPTIONS Options) = 0;
   8489 
   8490     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromMemory(
   8491         const SPBINARYGRAMMAR *pGrammar,
   8492         SPLOADOPTIONS Options) = 0;
   8493 
   8494     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromProprietaryGrammar(
   8495         REFGUID rguidParam,
   8496         LPCWSTR pszStringParam,
   8497         const void *pvDataPrarm,
   8498         ULONG cbDataSize,
   8499         SPLOADOPTIONS Options) = 0;
   8500 
   8501     virtual HRESULT STDMETHODCALLTYPE SetRuleState(
   8502         LPCWSTR pszName,
   8503         void *pReserved,
   8504         SPRULESTATE NewState) = 0;
   8505 
   8506     virtual HRESULT STDMETHODCALLTYPE SetRuleIdState(
   8507         ULONG ulRuleId,
   8508         SPRULESTATE NewState) = 0;
   8509 
   8510     virtual HRESULT STDMETHODCALLTYPE LoadDictation(
   8511         LPCWSTR pszTopicName,
   8512         SPLOADOPTIONS Options) = 0;
   8513 
   8514     virtual HRESULT STDMETHODCALLTYPE UnloadDictation(
   8515         ) = 0;
   8516 
   8517     virtual HRESULT STDMETHODCALLTYPE SetDictationState(
   8518         SPRULESTATE NewState) = 0;
   8519 
   8520     virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData(
   8521         const WCHAR *pText,
   8522         ULONG cchText,
   8523         const SPTEXTSELECTIONINFO *pInfo) = 0;
   8524 
   8525     virtual HRESULT STDMETHODCALLTYPE SetTextSelection(
   8526         const SPTEXTSELECTIONINFO *pInfo) = 0;
   8527 
   8528     virtual HRESULT STDMETHODCALLTYPE IsPronounceable(
   8529         LPCWSTR pszWord,
   8530         SPWORDPRONOUNCEABLE *pWordPronounceable) = 0;
   8531 
   8532     virtual HRESULT STDMETHODCALLTYPE SetGrammarState(
   8533         SPGRAMMARSTATE eGrammarState) = 0;
   8534 
   8535     virtual HRESULT STDMETHODCALLTYPE SaveCmd(
   8536         IStream *pStream,
   8537         LPWSTR *ppszCoMemErrorText) = 0;
   8538 
   8539     virtual HRESULT STDMETHODCALLTYPE GetGrammarState(
   8540         SPGRAMMARSTATE *peGrammarState) = 0;
   8541 
   8542 };
   8543 #ifdef __CRT_UUID_DECL
   8544 __CRT_UUID_DECL(ISpRecoGrammar, 0x2177db29, 0x7f45, 0x47d0, 0x85,0x54, 0x06,0x7e,0x91,0xc8,0x05,0x02)
   8545 #endif
   8546 #else
   8547 typedef struct ISpRecoGrammarVtbl {
   8548     BEGIN_INTERFACE
   8549 
   8550     /*** IUnknown methods ***/
   8551     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8552         ISpRecoGrammar *This,
   8553         REFIID riid,
   8554         void **ppvObject);
   8555 
   8556     ULONG (STDMETHODCALLTYPE *AddRef)(
   8557         ISpRecoGrammar *This);
   8558 
   8559     ULONG (STDMETHODCALLTYPE *Release)(
   8560         ISpRecoGrammar *This);
   8561 
   8562     /*** ISpGrammarBuilder methods ***/
   8563     HRESULT (STDMETHODCALLTYPE *ResetGrammar)(
   8564         ISpRecoGrammar *This,
   8565         WORD NewLanguage);
   8566 
   8567     HRESULT (STDMETHODCALLTYPE *GetRule)(
   8568         ISpRecoGrammar *This,
   8569         LPCWSTR pszRuleName,
   8570         DWORD dwRuleId,
   8571         DWORD dwAttributes,
   8572         WINBOOL fCreateIfNotExist,
   8573         SPSTATEHANDLE *phInitialState);
   8574 
   8575     HRESULT (STDMETHODCALLTYPE *ClearRule)(
   8576         ISpRecoGrammar *This,
   8577         SPSTATEHANDLE hState);
   8578 
   8579     HRESULT (STDMETHODCALLTYPE *CreateNewState)(
   8580         ISpRecoGrammar *This,
   8581         SPSTATEHANDLE hState,
   8582         SPSTATEHANDLE *phState);
   8583 
   8584     HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
   8585         ISpRecoGrammar *This,
   8586         SPSTATEHANDLE hFromState,
   8587         SPSTATEHANDLE hToState,
   8588         LPCWSTR psz,
   8589         LPCWSTR pszSeparators,
   8590         SPGRAMMARWORDTYPE eWordType,
   8591         float Weight,
   8592         const SPPROPERTYINFO *pPropInfo);
   8593 
   8594     HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
   8595         ISpRecoGrammar *This,
   8596         SPSTATEHANDLE hFromState,
   8597         SPSTATEHANDLE hToState,
   8598         SPSTATEHANDLE hRule,
   8599         float Weight,
   8600         const SPPROPERTYINFO *pPropInfo);
   8601 
   8602     HRESULT (STDMETHODCALLTYPE *AddResource)(
   8603         ISpRecoGrammar *This,
   8604         SPSTATEHANDLE hRuleState,
   8605         LPCWSTR pszResourceName,
   8606         LPCWSTR pszResourceValue);
   8607 
   8608     HRESULT (STDMETHODCALLTYPE *Commit)(
   8609         ISpRecoGrammar *This,
   8610         DWORD dwReserved);
   8611 
   8612     /*** ISpRecoGrammar methods ***/
   8613     HRESULT (STDMETHODCALLTYPE *GetGrammarId)(
   8614         ISpRecoGrammar *This,
   8615         ULONGLONG *pullGrammarId);
   8616 
   8617     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
   8618         ISpRecoGrammar *This,
   8619         ISpRecoContext **ppRecoCtxt);
   8620 
   8621     HRESULT (STDMETHODCALLTYPE *LoadCmdFromFile)(
   8622         ISpRecoGrammar *This,
   8623         LPCWSTR pszFileName,
   8624         SPLOADOPTIONS Options);
   8625 
   8626     HRESULT (STDMETHODCALLTYPE *LoadCmdFromObject)(
   8627         ISpRecoGrammar *This,
   8628         REFCLSID rcid,
   8629         LPCWSTR pszGrammarName,
   8630         SPLOADOPTIONS Options);
   8631 
   8632     HRESULT (STDMETHODCALLTYPE *LoadCmdFromResource)(
   8633         ISpRecoGrammar *This,
   8634         HMODULE hModule,
   8635         LPCWSTR pszResourceName,
   8636         LPCWSTR pszResourceType,
   8637         WORD wLanguage,
   8638         SPLOADOPTIONS Options);
   8639 
   8640     HRESULT (STDMETHODCALLTYPE *LoadCmdFromMemory)(
   8641         ISpRecoGrammar *This,
   8642         const SPBINARYGRAMMAR *pGrammar,
   8643         SPLOADOPTIONS Options);
   8644 
   8645     HRESULT (STDMETHODCALLTYPE *LoadCmdFromProprietaryGrammar)(
   8646         ISpRecoGrammar *This,
   8647         REFGUID rguidParam,
   8648         LPCWSTR pszStringParam,
   8649         const void *pvDataPrarm,
   8650         ULONG cbDataSize,
   8651         SPLOADOPTIONS Options);
   8652 
   8653     HRESULT (STDMETHODCALLTYPE *SetRuleState)(
   8654         ISpRecoGrammar *This,
   8655         LPCWSTR pszName,
   8656         void *pReserved,
   8657         SPRULESTATE NewState);
   8658 
   8659     HRESULT (STDMETHODCALLTYPE *SetRuleIdState)(
   8660         ISpRecoGrammar *This,
   8661         ULONG ulRuleId,
   8662         SPRULESTATE NewState);
   8663 
   8664     HRESULT (STDMETHODCALLTYPE *LoadDictation)(
   8665         ISpRecoGrammar *This,
   8666         LPCWSTR pszTopicName,
   8667         SPLOADOPTIONS Options);
   8668 
   8669     HRESULT (STDMETHODCALLTYPE *UnloadDictation)(
   8670         ISpRecoGrammar *This);
   8671 
   8672     HRESULT (STDMETHODCALLTYPE *SetDictationState)(
   8673         ISpRecoGrammar *This,
   8674         SPRULESTATE NewState);
   8675 
   8676     HRESULT (STDMETHODCALLTYPE *SetWordSequenceData)(
   8677         ISpRecoGrammar *This,
   8678         const WCHAR *pText,
   8679         ULONG cchText,
   8680         const SPTEXTSELECTIONINFO *pInfo);
   8681 
   8682     HRESULT (STDMETHODCALLTYPE *SetTextSelection)(
   8683         ISpRecoGrammar *This,
   8684         const SPTEXTSELECTIONINFO *pInfo);
   8685 
   8686     HRESULT (STDMETHODCALLTYPE *IsPronounceable)(
   8687         ISpRecoGrammar *This,
   8688         LPCWSTR pszWord,
   8689         SPWORDPRONOUNCEABLE *pWordPronounceable);
   8690 
   8691     HRESULT (STDMETHODCALLTYPE *SetGrammarState)(
   8692         ISpRecoGrammar *This,
   8693         SPGRAMMARSTATE eGrammarState);
   8694 
   8695     HRESULT (STDMETHODCALLTYPE *SaveCmd)(
   8696         ISpRecoGrammar *This,
   8697         IStream *pStream,
   8698         LPWSTR *ppszCoMemErrorText);
   8699 
   8700     HRESULT (STDMETHODCALLTYPE *GetGrammarState)(
   8701         ISpRecoGrammar *This,
   8702         SPGRAMMARSTATE *peGrammarState);
   8703 
   8704     END_INTERFACE
   8705 } ISpRecoGrammarVtbl;
   8706 
   8707 interface ISpRecoGrammar {
   8708     CONST_VTBL ISpRecoGrammarVtbl* lpVtbl;
   8709 };
   8710 
   8711 #ifdef COBJMACROS
   8712 #ifndef WIDL_C_INLINE_WRAPPERS
   8713 /*** IUnknown methods ***/
   8714 #define ISpRecoGrammar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8715 #define ISpRecoGrammar_AddRef(This) (This)->lpVtbl->AddRef(This)
   8716 #define ISpRecoGrammar_Release(This) (This)->lpVtbl->Release(This)
   8717 /*** ISpGrammarBuilder methods ***/
   8718 #define ISpRecoGrammar_ResetGrammar(This,NewLanguage) (This)->lpVtbl->ResetGrammar(This,NewLanguage)
   8719 #define ISpRecoGrammar_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState) (This)->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
   8720 #define ISpRecoGrammar_ClearRule(This,hState) (This)->lpVtbl->ClearRule(This,hState)
   8721 #define ISpRecoGrammar_CreateNewState(This,hState,phState) (This)->lpVtbl->CreateNewState(This,hState,phState)
   8722 #define ISpRecoGrammar_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo) (This)->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
   8723 #define ISpRecoGrammar_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo) (This)->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
   8724 #define ISpRecoGrammar_AddResource(This,hRuleState,pszResourceName,pszResourceValue) (This)->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue)
   8725 #define ISpRecoGrammar_Commit(This,dwReserved) (This)->lpVtbl->Commit(This,dwReserved)
   8726 /*** ISpRecoGrammar methods ***/
   8727 #define ISpRecoGrammar_GetGrammarId(This,pullGrammarId) (This)->lpVtbl->GetGrammarId(This,pullGrammarId)
   8728 #define ISpRecoGrammar_GetRecoContext(This,ppRecoCtxt) (This)->lpVtbl->GetRecoContext(This,ppRecoCtxt)
   8729 #define ISpRecoGrammar_LoadCmdFromFile(This,pszFileName,Options) (This)->lpVtbl->LoadCmdFromFile(This,pszFileName,Options)
   8730 #define ISpRecoGrammar_LoadCmdFromObject(This,rcid,pszGrammarName,Options) (This)->lpVtbl->LoadCmdFromObject(This,rcid,pszGrammarName,Options)
   8731 #define ISpRecoGrammar_LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options) (This)->lpVtbl->LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options)
   8732 #define ISpRecoGrammar_LoadCmdFromMemory(This,pGrammar,Options) (This)->lpVtbl->LoadCmdFromMemory(This,pGrammar,Options)
   8733 #define ISpRecoGrammar_LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options) (This)->lpVtbl->LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options)
   8734 #define ISpRecoGrammar_SetRuleState(This,pszName,pReserved,NewState) (This)->lpVtbl->SetRuleState(This,pszName,pReserved,NewState)
   8735 #define ISpRecoGrammar_SetRuleIdState(This,ulRuleId,NewState) (This)->lpVtbl->SetRuleIdState(This,ulRuleId,NewState)
   8736 #define ISpRecoGrammar_LoadDictation(This,pszTopicName,Options) (This)->lpVtbl->LoadDictation(This,pszTopicName,Options)
   8737 #define ISpRecoGrammar_UnloadDictation(This) (This)->lpVtbl->UnloadDictation(This)
   8738 #define ISpRecoGrammar_SetDictationState(This,NewState) (This)->lpVtbl->SetDictationState(This,NewState)
   8739 #define ISpRecoGrammar_SetWordSequenceData(This,pText,cchText,pInfo) (This)->lpVtbl->SetWordSequenceData(This,pText,cchText,pInfo)
   8740 #define ISpRecoGrammar_SetTextSelection(This,pInfo) (This)->lpVtbl->SetTextSelection(This,pInfo)
   8741 #define ISpRecoGrammar_IsPronounceable(This,pszWord,pWordPronounceable) (This)->lpVtbl->IsPronounceable(This,pszWord,pWordPronounceable)
   8742 #define ISpRecoGrammar_SetGrammarState(This,eGrammarState) (This)->lpVtbl->SetGrammarState(This,eGrammarState)
   8743 #define ISpRecoGrammar_SaveCmd(This,pStream,ppszCoMemErrorText) (This)->lpVtbl->SaveCmd(This,pStream,ppszCoMemErrorText)
   8744 #define ISpRecoGrammar_GetGrammarState(This,peGrammarState) (This)->lpVtbl->GetGrammarState(This,peGrammarState)
   8745 #else
   8746 /*** IUnknown methods ***/
   8747 static inline HRESULT ISpRecoGrammar_QueryInterface(ISpRecoGrammar* This,REFIID riid,void **ppvObject) {
   8748     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8749 }
   8750 static inline ULONG ISpRecoGrammar_AddRef(ISpRecoGrammar* This) {
   8751     return This->lpVtbl->AddRef(This);
   8752 }
   8753 static inline ULONG ISpRecoGrammar_Release(ISpRecoGrammar* This) {
   8754     return This->lpVtbl->Release(This);
   8755 }
   8756 /*** ISpGrammarBuilder methods ***/
   8757 static inline HRESULT ISpRecoGrammar_ResetGrammar(ISpRecoGrammar* This,WORD NewLanguage) {
   8758     return This->lpVtbl->ResetGrammar(This,NewLanguage);
   8759 }
   8760 static inline HRESULT ISpRecoGrammar_GetRule(ISpRecoGrammar* This,LPCWSTR pszRuleName,DWORD dwRuleId,DWORD dwAttributes,WINBOOL fCreateIfNotExist,SPSTATEHANDLE *phInitialState) {
   8761     return This->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState);
   8762 }
   8763 static inline HRESULT ISpRecoGrammar_ClearRule(ISpRecoGrammar* This,SPSTATEHANDLE hState) {
   8764     return This->lpVtbl->ClearRule(This,hState);
   8765 }
   8766 static inline HRESULT ISpRecoGrammar_CreateNewState(ISpRecoGrammar* This,SPSTATEHANDLE hState,SPSTATEHANDLE *phState) {
   8767     return This->lpVtbl->CreateNewState(This,hState,phState);
   8768 }
   8769 static inline HRESULT ISpRecoGrammar_AddWordTransition(ISpRecoGrammar* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,LPCWSTR pszSeparators,SPGRAMMARWORDTYPE eWordType,float Weight,const SPPROPERTYINFO *pPropInfo) {
   8770     return This->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo);
   8771 }
   8772 static inline HRESULT ISpRecoGrammar_AddRuleTransition(ISpRecoGrammar* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,SPSTATEHANDLE hRule,float Weight,const SPPROPERTYINFO *pPropInfo) {
   8773     return This->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo);
   8774 }
   8775 static inline HRESULT ISpRecoGrammar_AddResource(ISpRecoGrammar* This,SPSTATEHANDLE hRuleState,LPCWSTR pszResourceName,LPCWSTR pszResourceValue) {
   8776     return This->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue);
   8777 }
   8778 static inline HRESULT ISpRecoGrammar_Commit(ISpRecoGrammar* This,DWORD dwReserved) {
   8779     return This->lpVtbl->Commit(This,dwReserved);
   8780 }
   8781 /*** ISpRecoGrammar methods ***/
   8782 static inline HRESULT ISpRecoGrammar_GetGrammarId(ISpRecoGrammar* This,ULONGLONG *pullGrammarId) {
   8783     return This->lpVtbl->GetGrammarId(This,pullGrammarId);
   8784 }
   8785 static inline HRESULT ISpRecoGrammar_GetRecoContext(ISpRecoGrammar* This,ISpRecoContext **ppRecoCtxt) {
   8786     return This->lpVtbl->GetRecoContext(This,ppRecoCtxt);
   8787 }
   8788 static inline HRESULT ISpRecoGrammar_LoadCmdFromFile(ISpRecoGrammar* This,LPCWSTR pszFileName,SPLOADOPTIONS Options) {
   8789     return This->lpVtbl->LoadCmdFromFile(This,pszFileName,Options);
   8790 }
   8791 static inline HRESULT ISpRecoGrammar_LoadCmdFromObject(ISpRecoGrammar* This,REFCLSID rcid,LPCWSTR pszGrammarName,SPLOADOPTIONS Options) {
   8792     return This->lpVtbl->LoadCmdFromObject(This,rcid,pszGrammarName,Options);
   8793 }
   8794 static inline HRESULT ISpRecoGrammar_LoadCmdFromResource(ISpRecoGrammar* This,HMODULE hModule,LPCWSTR pszResourceName,LPCWSTR pszResourceType,WORD wLanguage,SPLOADOPTIONS Options) {
   8795     return This->lpVtbl->LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options);
   8796 }
   8797 static inline HRESULT ISpRecoGrammar_LoadCmdFromMemory(ISpRecoGrammar* This,const SPBINARYGRAMMAR *pGrammar,SPLOADOPTIONS Options) {
   8798     return This->lpVtbl->LoadCmdFromMemory(This,pGrammar,Options);
   8799 }
   8800 static inline HRESULT ISpRecoGrammar_LoadCmdFromProprietaryGrammar(ISpRecoGrammar* This,REFGUID rguidParam,LPCWSTR pszStringParam,const void *pvDataPrarm,ULONG cbDataSize,SPLOADOPTIONS Options) {
   8801     return This->lpVtbl->LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options);
   8802 }
   8803 static inline HRESULT ISpRecoGrammar_SetRuleState(ISpRecoGrammar* This,LPCWSTR pszName,void *pReserved,SPRULESTATE NewState) {
   8804     return This->lpVtbl->SetRuleState(This,pszName,pReserved,NewState);
   8805 }
   8806 static inline HRESULT ISpRecoGrammar_SetRuleIdState(ISpRecoGrammar* This,ULONG ulRuleId,SPRULESTATE NewState) {
   8807     return This->lpVtbl->SetRuleIdState(This,ulRuleId,NewState);
   8808 }
   8809 static inline HRESULT ISpRecoGrammar_LoadDictation(ISpRecoGrammar* This,LPCWSTR pszTopicName,SPLOADOPTIONS Options) {
   8810     return This->lpVtbl->LoadDictation(This,pszTopicName,Options);
   8811 }
   8812 static inline HRESULT ISpRecoGrammar_UnloadDictation(ISpRecoGrammar* This) {
   8813     return This->lpVtbl->UnloadDictation(This);
   8814 }
   8815 static inline HRESULT ISpRecoGrammar_SetDictationState(ISpRecoGrammar* This,SPRULESTATE NewState) {
   8816     return This->lpVtbl->SetDictationState(This,NewState);
   8817 }
   8818 static inline HRESULT ISpRecoGrammar_SetWordSequenceData(ISpRecoGrammar* This,const WCHAR *pText,ULONG cchText,const SPTEXTSELECTIONINFO *pInfo) {
   8819     return This->lpVtbl->SetWordSequenceData(This,pText,cchText,pInfo);
   8820 }
   8821 static inline HRESULT ISpRecoGrammar_SetTextSelection(ISpRecoGrammar* This,const SPTEXTSELECTIONINFO *pInfo) {
   8822     return This->lpVtbl->SetTextSelection(This,pInfo);
   8823 }
   8824 static inline HRESULT ISpRecoGrammar_IsPronounceable(ISpRecoGrammar* This,LPCWSTR pszWord,SPWORDPRONOUNCEABLE *pWordPronounceable) {
   8825     return This->lpVtbl->IsPronounceable(This,pszWord,pWordPronounceable);
   8826 }
   8827 static inline HRESULT ISpRecoGrammar_SetGrammarState(ISpRecoGrammar* This,SPGRAMMARSTATE eGrammarState) {
   8828     return This->lpVtbl->SetGrammarState(This,eGrammarState);
   8829 }
   8830 static inline HRESULT ISpRecoGrammar_SaveCmd(ISpRecoGrammar* This,IStream *pStream,LPWSTR *ppszCoMemErrorText) {
   8831     return This->lpVtbl->SaveCmd(This,pStream,ppszCoMemErrorText);
   8832 }
   8833 static inline HRESULT ISpRecoGrammar_GetGrammarState(ISpRecoGrammar* This,SPGRAMMARSTATE *peGrammarState) {
   8834     return This->lpVtbl->GetGrammarState(This,peGrammarState);
   8835 }
   8836 #endif
   8837 #endif
   8838 
   8839 #endif
   8840 
   8841 
   8842 #endif  /* __ISpRecoGrammar_INTERFACE_DEFINED__ */
   8843 
   8844 typedef enum SPMATCHINGMODE {
   8845     AllWords = 0,
   8846     Subsequence = 1,
   8847     OrderedSubset = 3,
   8848     SubsequenceContentRequired = 5,
   8849     OrderedSubsetContentRequired = 7
   8850 } SPMATCHINGMODE;
   8851 typedef enum PHONETICALPHABET {
   8852     PA_Ipa = 0,
   8853     PA_Ups = 1,
   8854     PA_Sapi = 2
   8855 } PHONETICALPHABET;
   8856 /*****************************************************************************
   8857  * ISpGrammarBuilder2 interface
   8858  */
   8859 #ifndef __ISpGrammarBuilder2_INTERFACE_DEFINED__
   8860 #define __ISpGrammarBuilder2_INTERFACE_DEFINED__
   8861 
   8862 DEFINE_GUID(IID_ISpGrammarBuilder2, 0x8ab10026, 0x20cc, 0x4b20, 0x8c,0x22, 0xa4,0x9c,0x9b,0xa7,0x8f,0x60);
   8863 #if defined(__cplusplus) && !defined(CINTERFACE)
   8864 MIDL_INTERFACE("8ab10026-20cc-4b20-8c22-a49c9ba78f60")
   8865 ISpGrammarBuilder2 : public IUnknown
   8866 {
   8867     virtual HRESULT STDMETHODCALLTYPE AddTextSubset(
   8868         SPSTATEHANDLE hFromState,
   8869         SPSTATEHANDLE hToState,
   8870         LPCWSTR psz,
   8871         SPMATCHINGMODE eMatchMode) = 0;
   8872 
   8873     virtual HRESULT STDMETHODCALLTYPE SetPhoneticAlphabet(
   8874         PHONETICALPHABET phoneticALphabet) = 0;
   8875 
   8876 };
   8877 #ifdef __CRT_UUID_DECL
   8878 __CRT_UUID_DECL(ISpGrammarBuilder2, 0x8ab10026, 0x20cc, 0x4b20, 0x8c,0x22, 0xa4,0x9c,0x9b,0xa7,0x8f,0x60)
   8879 #endif
   8880 #else
   8881 typedef struct ISpGrammarBuilder2Vtbl {
   8882     BEGIN_INTERFACE
   8883 
   8884     /*** IUnknown methods ***/
   8885     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8886         ISpGrammarBuilder2 *This,
   8887         REFIID riid,
   8888         void **ppvObject);
   8889 
   8890     ULONG (STDMETHODCALLTYPE *AddRef)(
   8891         ISpGrammarBuilder2 *This);
   8892 
   8893     ULONG (STDMETHODCALLTYPE *Release)(
   8894         ISpGrammarBuilder2 *This);
   8895 
   8896     /*** ISpGrammarBuilder2 methods ***/
   8897     HRESULT (STDMETHODCALLTYPE *AddTextSubset)(
   8898         ISpGrammarBuilder2 *This,
   8899         SPSTATEHANDLE hFromState,
   8900         SPSTATEHANDLE hToState,
   8901         LPCWSTR psz,
   8902         SPMATCHINGMODE eMatchMode);
   8903 
   8904     HRESULT (STDMETHODCALLTYPE *SetPhoneticAlphabet)(
   8905         ISpGrammarBuilder2 *This,
   8906         PHONETICALPHABET phoneticALphabet);
   8907 
   8908     END_INTERFACE
   8909 } ISpGrammarBuilder2Vtbl;
   8910 
   8911 interface ISpGrammarBuilder2 {
   8912     CONST_VTBL ISpGrammarBuilder2Vtbl* lpVtbl;
   8913 };
   8914 
   8915 #ifdef COBJMACROS
   8916 #ifndef WIDL_C_INLINE_WRAPPERS
   8917 /*** IUnknown methods ***/
   8918 #define ISpGrammarBuilder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8919 #define ISpGrammarBuilder2_AddRef(This) (This)->lpVtbl->AddRef(This)
   8920 #define ISpGrammarBuilder2_Release(This) (This)->lpVtbl->Release(This)
   8921 /*** ISpGrammarBuilder2 methods ***/
   8922 #define ISpGrammarBuilder2_AddTextSubset(This,hFromState,hToState,psz,eMatchMode) (This)->lpVtbl->AddTextSubset(This,hFromState,hToState,psz,eMatchMode)
   8923 #define ISpGrammarBuilder2_SetPhoneticAlphabet(This,phoneticALphabet) (This)->lpVtbl->SetPhoneticAlphabet(This,phoneticALphabet)
   8924 #else
   8925 /*** IUnknown methods ***/
   8926 static inline HRESULT ISpGrammarBuilder2_QueryInterface(ISpGrammarBuilder2* This,REFIID riid,void **ppvObject) {
   8927     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8928 }
   8929 static inline ULONG ISpGrammarBuilder2_AddRef(ISpGrammarBuilder2* This) {
   8930     return This->lpVtbl->AddRef(This);
   8931 }
   8932 static inline ULONG ISpGrammarBuilder2_Release(ISpGrammarBuilder2* This) {
   8933     return This->lpVtbl->Release(This);
   8934 }
   8935 /*** ISpGrammarBuilder2 methods ***/
   8936 static inline HRESULT ISpGrammarBuilder2_AddTextSubset(ISpGrammarBuilder2* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,SPMATCHINGMODE eMatchMode) {
   8937     return This->lpVtbl->AddTextSubset(This,hFromState,hToState,psz,eMatchMode);
   8938 }
   8939 static inline HRESULT ISpGrammarBuilder2_SetPhoneticAlphabet(ISpGrammarBuilder2* This,PHONETICALPHABET phoneticALphabet) {
   8940     return This->lpVtbl->SetPhoneticAlphabet(This,phoneticALphabet);
   8941 }
   8942 #endif
   8943 #endif
   8944 
   8945 #endif
   8946 
   8947 
   8948 #endif  /* __ISpGrammarBuilder2_INTERFACE_DEFINED__ */
   8949 
   8950 #define SPRP_NORMAL 0
   8951 /*****************************************************************************
   8952  * ISpRecoGrammar2 interface
   8953  */
   8954 #ifndef __ISpRecoGrammar2_INTERFACE_DEFINED__
   8955 #define __ISpRecoGrammar2_INTERFACE_DEFINED__
   8956 
   8957 DEFINE_GUID(IID_ISpRecoGrammar2, 0x4b37bc9e, 0x9ed6, 0x44a3, 0x93,0xd3, 0x18,0xf0,0x22,0xb7,0x9e,0xc3);
   8958 #if defined(__cplusplus) && !defined(CINTERFACE)
   8959 MIDL_INTERFACE("4b37bc9e-9ed6-44a3-93d3-18f022b79ec3")
   8960 ISpRecoGrammar2 : public IUnknown
   8961 {
   8962     virtual HRESULT STDMETHODCALLTYPE GetRules(
   8963         SPRULE **ppCoMemRules,
   8964         UINT *puNumRules) = 0;
   8965 
   8966     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromFile2(
   8967         LPCWSTR pszFileName,
   8968         SPLOADOPTIONS Options,
   8969         LPCWSTR pszSharingUri,
   8970         LPCWSTR pszBaseUri) = 0;
   8971 
   8972     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromMemory2(
   8973         const SPBINARYGRAMMAR *pGrammar,
   8974         SPLOADOPTIONS Options,
   8975         LPCWSTR pszSharingUri,
   8976         LPCWSTR pszBaseUri) = 0;
   8977 
   8978     virtual HRESULT STDMETHODCALLTYPE SetRulePriority(
   8979         LPCWSTR pszRuleName,
   8980         ULONG ulRuleId,
   8981         int nRulePriority) = 0;
   8982 
   8983     virtual HRESULT STDMETHODCALLTYPE SetRuleWeight(
   8984         LPCWSTR pszRuleName,
   8985         ULONG ulRuleId,
   8986         float flWeight) = 0;
   8987 
   8988     virtual HRESULT STDMETHODCALLTYPE SetDictationWeight(
   8989         float flWeight) = 0;
   8990 
   8991     virtual HRESULT STDMETHODCALLTYPE SetGrammarLoader(
   8992         ISpeechResourceLoader *pLoader) = 0;
   8993 
   8994     virtual HRESULT STDMETHODCALLTYPE SetSMLSecurityManager(
   8995         IInternetSecurityManager *pSMLSecurityManager) = 0;
   8996 
   8997 };
   8998 #ifdef __CRT_UUID_DECL
   8999 __CRT_UUID_DECL(ISpRecoGrammar2, 0x4b37bc9e, 0x9ed6, 0x44a3, 0x93,0xd3, 0x18,0xf0,0x22,0xb7,0x9e,0xc3)
   9000 #endif
   9001 #else
   9002 typedef struct ISpRecoGrammar2Vtbl {
   9003     BEGIN_INTERFACE
   9004 
   9005     /*** IUnknown methods ***/
   9006     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9007         ISpRecoGrammar2 *This,
   9008         REFIID riid,
   9009         void **ppvObject);
   9010 
   9011     ULONG (STDMETHODCALLTYPE *AddRef)(
   9012         ISpRecoGrammar2 *This);
   9013 
   9014     ULONG (STDMETHODCALLTYPE *Release)(
   9015         ISpRecoGrammar2 *This);
   9016 
   9017     /*** ISpRecoGrammar2 methods ***/
   9018     HRESULT (STDMETHODCALLTYPE *GetRules)(
   9019         ISpRecoGrammar2 *This,
   9020         SPRULE **ppCoMemRules,
   9021         UINT *puNumRules);
   9022 
   9023     HRESULT (STDMETHODCALLTYPE *LoadCmdFromFile2)(
   9024         ISpRecoGrammar2 *This,
   9025         LPCWSTR pszFileName,
   9026         SPLOADOPTIONS Options,
   9027         LPCWSTR pszSharingUri,
   9028         LPCWSTR pszBaseUri);
   9029 
   9030     HRESULT (STDMETHODCALLTYPE *LoadCmdFromMemory2)(
   9031         ISpRecoGrammar2 *This,
   9032         const SPBINARYGRAMMAR *pGrammar,
   9033         SPLOADOPTIONS Options,
   9034         LPCWSTR pszSharingUri,
   9035         LPCWSTR pszBaseUri);
   9036 
   9037     HRESULT (STDMETHODCALLTYPE *SetRulePriority)(
   9038         ISpRecoGrammar2 *This,
   9039         LPCWSTR pszRuleName,
   9040         ULONG ulRuleId,
   9041         int nRulePriority);
   9042 
   9043     HRESULT (STDMETHODCALLTYPE *SetRuleWeight)(
   9044         ISpRecoGrammar2 *This,
   9045         LPCWSTR pszRuleName,
   9046         ULONG ulRuleId,
   9047         float flWeight);
   9048 
   9049     HRESULT (STDMETHODCALLTYPE *SetDictationWeight)(
   9050         ISpRecoGrammar2 *This,
   9051         float flWeight);
   9052 
   9053     HRESULT (STDMETHODCALLTYPE *SetGrammarLoader)(
   9054         ISpRecoGrammar2 *This,
   9055         ISpeechResourceLoader *pLoader);
   9056 
   9057     HRESULT (STDMETHODCALLTYPE *SetSMLSecurityManager)(
   9058         ISpRecoGrammar2 *This,
   9059         IInternetSecurityManager *pSMLSecurityManager);
   9060 
   9061     END_INTERFACE
   9062 } ISpRecoGrammar2Vtbl;
   9063 
   9064 interface ISpRecoGrammar2 {
   9065     CONST_VTBL ISpRecoGrammar2Vtbl* lpVtbl;
   9066 };
   9067 
   9068 #ifdef COBJMACROS
   9069 #ifndef WIDL_C_INLINE_WRAPPERS
   9070 /*** IUnknown methods ***/
   9071 #define ISpRecoGrammar2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9072 #define ISpRecoGrammar2_AddRef(This) (This)->lpVtbl->AddRef(This)
   9073 #define ISpRecoGrammar2_Release(This) (This)->lpVtbl->Release(This)
   9074 /*** ISpRecoGrammar2 methods ***/
   9075 #define ISpRecoGrammar2_GetRules(This,ppCoMemRules,puNumRules) (This)->lpVtbl->GetRules(This,ppCoMemRules,puNumRules)
   9076 #define ISpRecoGrammar2_LoadCmdFromFile2(This,pszFileName,Options,pszSharingUri,pszBaseUri) (This)->lpVtbl->LoadCmdFromFile2(This,pszFileName,Options,pszSharingUri,pszBaseUri)
   9077 #define ISpRecoGrammar2_LoadCmdFromMemory2(This,pGrammar,Options,pszSharingUri,pszBaseUri) (This)->lpVtbl->LoadCmdFromMemory2(This,pGrammar,Options,pszSharingUri,pszBaseUri)
   9078 #define ISpRecoGrammar2_SetRulePriority(This,pszRuleName,ulRuleId,nRulePriority) (This)->lpVtbl->SetRulePriority(This,pszRuleName,ulRuleId,nRulePriority)
   9079 #define ISpRecoGrammar2_SetRuleWeight(This,pszRuleName,ulRuleId,flWeight) (This)->lpVtbl->SetRuleWeight(This,pszRuleName,ulRuleId,flWeight)
   9080 #define ISpRecoGrammar2_SetDictationWeight(This,flWeight) (This)->lpVtbl->SetDictationWeight(This,flWeight)
   9081 #define ISpRecoGrammar2_SetGrammarLoader(This,pLoader) (This)->lpVtbl->SetGrammarLoader(This,pLoader)
   9082 #define ISpRecoGrammar2_SetSMLSecurityManager(This,pSMLSecurityManager) (This)->lpVtbl->SetSMLSecurityManager(This,pSMLSecurityManager)
   9083 #else
   9084 /*** IUnknown methods ***/
   9085 static inline HRESULT ISpRecoGrammar2_QueryInterface(ISpRecoGrammar2* This,REFIID riid,void **ppvObject) {
   9086     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9087 }
   9088 static inline ULONG ISpRecoGrammar2_AddRef(ISpRecoGrammar2* This) {
   9089     return This->lpVtbl->AddRef(This);
   9090 }
   9091 static inline ULONG ISpRecoGrammar2_Release(ISpRecoGrammar2* This) {
   9092     return This->lpVtbl->Release(This);
   9093 }
   9094 /*** ISpRecoGrammar2 methods ***/
   9095 static inline HRESULT ISpRecoGrammar2_GetRules(ISpRecoGrammar2* This,SPRULE **ppCoMemRules,UINT *puNumRules) {
   9096     return This->lpVtbl->GetRules(This,ppCoMemRules,puNumRules);
   9097 }
   9098 static inline HRESULT ISpRecoGrammar2_LoadCmdFromFile2(ISpRecoGrammar2* This,LPCWSTR pszFileName,SPLOADOPTIONS Options,LPCWSTR pszSharingUri,LPCWSTR pszBaseUri) {
   9099     return This->lpVtbl->LoadCmdFromFile2(This,pszFileName,Options,pszSharingUri,pszBaseUri);
   9100 }
   9101 static inline HRESULT ISpRecoGrammar2_LoadCmdFromMemory2(ISpRecoGrammar2* This,const SPBINARYGRAMMAR *pGrammar,SPLOADOPTIONS Options,LPCWSTR pszSharingUri,LPCWSTR pszBaseUri) {
   9102     return This->lpVtbl->LoadCmdFromMemory2(This,pGrammar,Options,pszSharingUri,pszBaseUri);
   9103 }
   9104 static inline HRESULT ISpRecoGrammar2_SetRulePriority(ISpRecoGrammar2* This,LPCWSTR pszRuleName,ULONG ulRuleId,int nRulePriority) {
   9105     return This->lpVtbl->SetRulePriority(This,pszRuleName,ulRuleId,nRulePriority);
   9106 }
   9107 static inline HRESULT ISpRecoGrammar2_SetRuleWeight(ISpRecoGrammar2* This,LPCWSTR pszRuleName,ULONG ulRuleId,float flWeight) {
   9108     return This->lpVtbl->SetRuleWeight(This,pszRuleName,ulRuleId,flWeight);
   9109 }
   9110 static inline HRESULT ISpRecoGrammar2_SetDictationWeight(ISpRecoGrammar2* This,float flWeight) {
   9111     return This->lpVtbl->SetDictationWeight(This,flWeight);
   9112 }
   9113 static inline HRESULT ISpRecoGrammar2_SetGrammarLoader(ISpRecoGrammar2* This,ISpeechResourceLoader *pLoader) {
   9114     return This->lpVtbl->SetGrammarLoader(This,pLoader);
   9115 }
   9116 static inline HRESULT ISpRecoGrammar2_SetSMLSecurityManager(ISpRecoGrammar2* This,IInternetSecurityManager *pSMLSecurityManager) {
   9117     return This->lpVtbl->SetSMLSecurityManager(This,pSMLSecurityManager);
   9118 }
   9119 #endif
   9120 #endif
   9121 
   9122 #endif
   9123 
   9124 
   9125 #endif  /* __ISpRecoGrammar2_INTERFACE_DEFINED__ */
   9126 
   9127 /*****************************************************************************
   9128  * ISpeechResourceLoader interface
   9129  */
   9130 #ifndef __ISpeechResourceLoader_INTERFACE_DEFINED__
   9131 #define __ISpeechResourceLoader_INTERFACE_DEFINED__
   9132 
   9133 DEFINE_GUID(IID_ISpeechResourceLoader, 0xb9ac5783, 0xfcd0, 0x4b21, 0xb1,0x19, 0xb4,0xf8,0xda,0x8f,0xd2,0xc3);
   9134 #if defined(__cplusplus) && !defined(CINTERFACE)
   9135 MIDL_INTERFACE("b9ac5783-fcd0-4b21-b119-b4f8da8fd2c3")
   9136 ISpeechResourceLoader : public IDispatch
   9137 {
   9138     virtual HRESULT STDMETHODCALLTYPE LoadResource(
   9139         BSTR bstrResourceUri,
   9140         VARIANT_BOOL fAlwaysReload,
   9141         IUnknown **pStream,
   9142         BSTR *pbstrMIMEType,
   9143         VARIANT_BOOL *pfModified,
   9144         BSTR *pbstrRedirectUrl) = 0;
   9145 
   9146     virtual HRESULT STDMETHODCALLTYPE GetLocalCopy(
   9147         BSTR bstrResourceUri,
   9148         BSTR *pbstrLocalPath,
   9149         BSTR *pbstrMIMEType,
   9150         BSTR *pbstrRedirectUrl) = 0;
   9151 
   9152     virtual HRESULT STDMETHODCALLTYPE ReleaseLocalCopy(
   9153         BSTR pbstrLocalPath) = 0;
   9154 
   9155 };
   9156 #ifdef __CRT_UUID_DECL
   9157 __CRT_UUID_DECL(ISpeechResourceLoader, 0xb9ac5783, 0xfcd0, 0x4b21, 0xb1,0x19, 0xb4,0xf8,0xda,0x8f,0xd2,0xc3)
   9158 #endif
   9159 #else
   9160 typedef struct ISpeechResourceLoaderVtbl {
   9161     BEGIN_INTERFACE
   9162 
   9163     /*** IUnknown methods ***/
   9164     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9165         ISpeechResourceLoader *This,
   9166         REFIID riid,
   9167         void **ppvObject);
   9168 
   9169     ULONG (STDMETHODCALLTYPE *AddRef)(
   9170         ISpeechResourceLoader *This);
   9171 
   9172     ULONG (STDMETHODCALLTYPE *Release)(
   9173         ISpeechResourceLoader *This);
   9174 
   9175     /*** IDispatch methods ***/
   9176     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   9177         ISpeechResourceLoader *This,
   9178         UINT *pctinfo);
   9179 
   9180     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   9181         ISpeechResourceLoader *This,
   9182         UINT iTInfo,
   9183         LCID lcid,
   9184         ITypeInfo **ppTInfo);
   9185 
   9186     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   9187         ISpeechResourceLoader *This,
   9188         REFIID riid,
   9189         LPOLESTR *rgszNames,
   9190         UINT cNames,
   9191         LCID lcid,
   9192         DISPID *rgDispId);
   9193 
   9194     HRESULT (STDMETHODCALLTYPE *Invoke)(
   9195         ISpeechResourceLoader *This,
   9196         DISPID dispIdMember,
   9197         REFIID riid,
   9198         LCID lcid,
   9199         WORD wFlags,
   9200         DISPPARAMS *pDispParams,
   9201         VARIANT *pVarResult,
   9202         EXCEPINFO *pExcepInfo,
   9203         UINT *puArgErr);
   9204 
   9205     /*** ISpeechResourceLoader methods ***/
   9206     HRESULT (STDMETHODCALLTYPE *LoadResource)(
   9207         ISpeechResourceLoader *This,
   9208         BSTR bstrResourceUri,
   9209         VARIANT_BOOL fAlwaysReload,
   9210         IUnknown **pStream,
   9211         BSTR *pbstrMIMEType,
   9212         VARIANT_BOOL *pfModified,
   9213         BSTR *pbstrRedirectUrl);
   9214 
   9215     HRESULT (STDMETHODCALLTYPE *GetLocalCopy)(
   9216         ISpeechResourceLoader *This,
   9217         BSTR bstrResourceUri,
   9218         BSTR *pbstrLocalPath,
   9219         BSTR *pbstrMIMEType,
   9220         BSTR *pbstrRedirectUrl);
   9221 
   9222     HRESULT (STDMETHODCALLTYPE *ReleaseLocalCopy)(
   9223         ISpeechResourceLoader *This,
   9224         BSTR pbstrLocalPath);
   9225 
   9226     END_INTERFACE
   9227 } ISpeechResourceLoaderVtbl;
   9228 
   9229 interface ISpeechResourceLoader {
   9230     CONST_VTBL ISpeechResourceLoaderVtbl* lpVtbl;
   9231 };
   9232 
   9233 #ifdef COBJMACROS
   9234 #ifndef WIDL_C_INLINE_WRAPPERS
   9235 /*** IUnknown methods ***/
   9236 #define ISpeechResourceLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9237 #define ISpeechResourceLoader_AddRef(This) (This)->lpVtbl->AddRef(This)
   9238 #define ISpeechResourceLoader_Release(This) (This)->lpVtbl->Release(This)
   9239 /*** IDispatch methods ***/
   9240 #define ISpeechResourceLoader_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   9241 #define ISpeechResourceLoader_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   9242 #define ISpeechResourceLoader_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   9243 #define ISpeechResourceLoader_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   9244 /*** ISpeechResourceLoader methods ***/
   9245 #define ISpeechResourceLoader_LoadResource(This,bstrResourceUri,fAlwaysReload,pStream,pbstrMIMEType,pfModified,pbstrRedirectUrl) (This)->lpVtbl->LoadResource(This,bstrResourceUri,fAlwaysReload,pStream,pbstrMIMEType,pfModified,pbstrRedirectUrl)
   9246 #define ISpeechResourceLoader_GetLocalCopy(This,bstrResourceUri,pbstrLocalPath,pbstrMIMEType,pbstrRedirectUrl) (This)->lpVtbl->GetLocalCopy(This,bstrResourceUri,pbstrLocalPath,pbstrMIMEType,pbstrRedirectUrl)
   9247 #define ISpeechResourceLoader_ReleaseLocalCopy(This,pbstrLocalPath) (This)->lpVtbl->ReleaseLocalCopy(This,pbstrLocalPath)
   9248 #else
   9249 /*** IUnknown methods ***/
   9250 static inline HRESULT ISpeechResourceLoader_QueryInterface(ISpeechResourceLoader* This,REFIID riid,void **ppvObject) {
   9251     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9252 }
   9253 static inline ULONG ISpeechResourceLoader_AddRef(ISpeechResourceLoader* This) {
   9254     return This->lpVtbl->AddRef(This);
   9255 }
   9256 static inline ULONG ISpeechResourceLoader_Release(ISpeechResourceLoader* This) {
   9257     return This->lpVtbl->Release(This);
   9258 }
   9259 /*** IDispatch methods ***/
   9260 static inline HRESULT ISpeechResourceLoader_GetTypeInfoCount(ISpeechResourceLoader* This,UINT *pctinfo) {
   9261     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   9262 }
   9263 static inline HRESULT ISpeechResourceLoader_GetTypeInfo(ISpeechResourceLoader* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   9264     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   9265 }
   9266 static inline HRESULT ISpeechResourceLoader_GetIDsOfNames(ISpeechResourceLoader* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   9267     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   9268 }
   9269 static inline HRESULT ISpeechResourceLoader_Invoke(ISpeechResourceLoader* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   9270     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   9271 }
   9272 /*** ISpeechResourceLoader methods ***/
   9273 static inline HRESULT ISpeechResourceLoader_LoadResource(ISpeechResourceLoader* This,BSTR bstrResourceUri,VARIANT_BOOL fAlwaysReload,IUnknown **pStream,BSTR *pbstrMIMEType,VARIANT_BOOL *pfModified,BSTR *pbstrRedirectUrl) {
   9274     return This->lpVtbl->LoadResource(This,bstrResourceUri,fAlwaysReload,pStream,pbstrMIMEType,pfModified,pbstrRedirectUrl);
   9275 }
   9276 static inline HRESULT ISpeechResourceLoader_GetLocalCopy(ISpeechResourceLoader* This,BSTR bstrResourceUri,BSTR *pbstrLocalPath,BSTR *pbstrMIMEType,BSTR *pbstrRedirectUrl) {
   9277     return This->lpVtbl->GetLocalCopy(This,bstrResourceUri,pbstrLocalPath,pbstrMIMEType,pbstrRedirectUrl);
   9278 }
   9279 static inline HRESULT ISpeechResourceLoader_ReleaseLocalCopy(ISpeechResourceLoader* This,BSTR pbstrLocalPath) {
   9280     return This->lpVtbl->ReleaseLocalCopy(This,pbstrLocalPath);
   9281 }
   9282 #endif
   9283 #endif
   9284 
   9285 #endif
   9286 
   9287 
   9288 #endif  /* __ISpeechResourceLoader_INTERFACE_DEFINED__ */
   9289 
   9290 typedef struct SPRECOCONTEXTSTATUS {
   9291     SPINTERFERENCE eInterference;
   9292     WCHAR szRequestTypeOfUI[255];
   9293     DWORD dwReserved1;
   9294     DWORD dwReserved2;
   9295 } SPRECOCONTEXTSTATUS;
   9296 typedef enum SPBOOKMARKOPTIONS {
   9297     SPBO_NONE = 0,
   9298     SPBO_PAUSE = 0x1,
   9299     SPBO_AHEAD = 0x2,
   9300     SPBO_TIME_UNITS = 0x4
   9301 } SPBOOKMARKOPTIONS;
   9302 typedef enum SPAUDIOOPTIONS {
   9303     SPAO_NONE = 0,
   9304     SPAO_RETAIN_AUDIO = 0x1
   9305 } SPAUDIOOPTIONS;
   9306 /*****************************************************************************
   9307  * ISpRecoContext interface
   9308  */
   9309 #ifndef __ISpRecoContext_INTERFACE_DEFINED__
   9310 #define __ISpRecoContext_INTERFACE_DEFINED__
   9311 
   9312 DEFINE_GUID(IID_ISpRecoContext, 0xf740a62f, 0x7c15, 0x489e, 0x82,0x34, 0x94,0x0a,0x33,0xd9,0x27,0x2d);
   9313 #if defined(__cplusplus) && !defined(CINTERFACE)
   9314 MIDL_INTERFACE("f740a62f-7c15-489e-8234-940a33d9272d")
   9315 ISpRecoContext : public ISpEventSource
   9316 {
   9317     virtual HRESULT STDMETHODCALLTYPE GetRecognizer(
   9318         ISpRecognizer **ppRecognizer) = 0;
   9319 
   9320     virtual HRESULT STDMETHODCALLTYPE CreateGrammar(
   9321         ULONGLONG ullGrammarId,
   9322         ISpRecoGrammar **ppGrammar) = 0;
   9323 
   9324     virtual HRESULT STDMETHODCALLTYPE GetStatus(
   9325         SPRECOCONTEXTSTATUS *pStatus) = 0;
   9326 
   9327     virtual HRESULT STDMETHODCALLTYPE GetMaxAlternates(
   9328         ULONG *pcAlternates) = 0;
   9329 
   9330     virtual HRESULT STDMETHODCALLTYPE SetMaxAlternates(
   9331         ULONG cAlternates) = 0;
   9332 
   9333     virtual HRESULT STDMETHODCALLTYPE SetAudioOptions(
   9334         SPAUDIOOPTIONS Options,
   9335         const GUID *pAudioFormatId,
   9336         const WAVEFORMATEX *pWaveFormatEx) = 0;
   9337 
   9338     virtual HRESULT STDMETHODCALLTYPE GetAudioOptions(
   9339         SPAUDIOOPTIONS *pOptions,
   9340         GUID *pAudioFormatId,
   9341         WAVEFORMATEX **ppCoMemWFEX) = 0;
   9342 
   9343     virtual HRESULT STDMETHODCALLTYPE DeserializeResult(
   9344         const SPSERIALIZEDRESULT *pSerializedResult,
   9345         ISpRecoResult **ppResult) = 0;
   9346 
   9347     virtual HRESULT STDMETHODCALLTYPE Bookmark(
   9348         SPBOOKMARKOPTIONS Options,
   9349         ULONGLONG ullStreamPosition,
   9350         LPARAM lparamEvent) = 0;
   9351 
   9352     virtual HRESULT STDMETHODCALLTYPE SetAdaptationData(
   9353         LPCWSTR pAdaptationData,
   9354         const ULONG cch) = 0;
   9355 
   9356     virtual HRESULT STDMETHODCALLTYPE Pause(
   9357         DWORD dwReserved) = 0;
   9358 
   9359     virtual HRESULT STDMETHODCALLTYPE Resume(
   9360         DWORD dwReserved) = 0;
   9361 
   9362     virtual HRESULT STDMETHODCALLTYPE SetVoice(
   9363         ISpVoice *pVoice,
   9364         WINBOOL fAllowFormatChanges) = 0;
   9365 
   9366     virtual HRESULT STDMETHODCALLTYPE GetVoice(
   9367         ISpVoice **ppVoice) = 0;
   9368 
   9369     virtual HRESULT STDMETHODCALLTYPE SetVoicePurgeEvent(
   9370         ULONGLONG ullEventInterest) = 0;
   9371 
   9372     virtual HRESULT STDMETHODCALLTYPE GetVoicePurgeEvent(
   9373         ULONGLONG *pullEventInterest) = 0;
   9374 
   9375     virtual HRESULT STDMETHODCALLTYPE SetContextState(
   9376         SPCONTEXTSTATE eContextState) = 0;
   9377 
   9378     virtual HRESULT STDMETHODCALLTYPE GetContextState(
   9379         SPCONTEXTSTATE *peContextState) = 0;
   9380 
   9381 };
   9382 #ifdef __CRT_UUID_DECL
   9383 __CRT_UUID_DECL(ISpRecoContext, 0xf740a62f, 0x7c15, 0x489e, 0x82,0x34, 0x94,0x0a,0x33,0xd9,0x27,0x2d)
   9384 #endif
   9385 #else
   9386 typedef struct ISpRecoContextVtbl {
   9387     BEGIN_INTERFACE
   9388 
   9389     /*** IUnknown methods ***/
   9390     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9391         ISpRecoContext *This,
   9392         REFIID riid,
   9393         void **ppvObject);
   9394 
   9395     ULONG (STDMETHODCALLTYPE *AddRef)(
   9396         ISpRecoContext *This);
   9397 
   9398     ULONG (STDMETHODCALLTYPE *Release)(
   9399         ISpRecoContext *This);
   9400 
   9401     /*** ISpNotifySource methods ***/
   9402     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
   9403         ISpRecoContext *This,
   9404         ISpNotifySink *pNotifySink);
   9405 
   9406     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
   9407         ISpRecoContext *This,
   9408         HWND hWnd,
   9409         UINT Msg,
   9410         WPARAM wParam,
   9411         LPARAM lParam);
   9412 
   9413     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
   9414         ISpRecoContext *This,
   9415         SPNOTIFYCALLBACK *pfnCallback,
   9416         WPARAM wParam,
   9417         LPARAM lParam);
   9418 
   9419     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
   9420         ISpRecoContext *This,
   9421         ISpNotifyCallback *pSpCallback,
   9422         WPARAM wParam,
   9423         LPARAM lParam);
   9424 
   9425     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
   9426         ISpRecoContext *This);
   9427 
   9428     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
   9429         ISpRecoContext *This,
   9430         DWORD dwMilliseconds);
   9431 
   9432     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
   9433         ISpRecoContext *This);
   9434 
   9435     /*** ISpEventSource methods ***/
   9436     HRESULT (STDMETHODCALLTYPE *SetInterest)(
   9437         ISpRecoContext *This,
   9438         ULONGLONG ullEventInterest,
   9439         ULONGLONG ullQueuedInterest);
   9440 
   9441     HRESULT (STDMETHODCALLTYPE *GetEvents)(
   9442         ISpRecoContext *This,
   9443         ULONG ulCount,
   9444         SPEVENT *pEventArray,
   9445         ULONG *pulFetched);
   9446 
   9447     HRESULT (STDMETHODCALLTYPE *GetInfo)(
   9448         ISpRecoContext *This,
   9449         SPEVENTSOURCEINFO *pInfo);
   9450 
   9451     /*** ISpRecoContext methods ***/
   9452     HRESULT (STDMETHODCALLTYPE *GetRecognizer)(
   9453         ISpRecoContext *This,
   9454         ISpRecognizer **ppRecognizer);
   9455 
   9456     HRESULT (STDMETHODCALLTYPE *CreateGrammar)(
   9457         ISpRecoContext *This,
   9458         ULONGLONG ullGrammarId,
   9459         ISpRecoGrammar **ppGrammar);
   9460 
   9461     HRESULT (STDMETHODCALLTYPE *GetStatus)(
   9462         ISpRecoContext *This,
   9463         SPRECOCONTEXTSTATUS *pStatus);
   9464 
   9465     HRESULT (STDMETHODCALLTYPE *GetMaxAlternates)(
   9466         ISpRecoContext *This,
   9467         ULONG *pcAlternates);
   9468 
   9469     HRESULT (STDMETHODCALLTYPE *SetMaxAlternates)(
   9470         ISpRecoContext *This,
   9471         ULONG cAlternates);
   9472 
   9473     HRESULT (STDMETHODCALLTYPE *SetAudioOptions)(
   9474         ISpRecoContext *This,
   9475         SPAUDIOOPTIONS Options,
   9476         const GUID *pAudioFormatId,
   9477         const WAVEFORMATEX *pWaveFormatEx);
   9478 
   9479     HRESULT (STDMETHODCALLTYPE *GetAudioOptions)(
   9480         ISpRecoContext *This,
   9481         SPAUDIOOPTIONS *pOptions,
   9482         GUID *pAudioFormatId,
   9483         WAVEFORMATEX **ppCoMemWFEX);
   9484 
   9485     HRESULT (STDMETHODCALLTYPE *DeserializeResult)(
   9486         ISpRecoContext *This,
   9487         const SPSERIALIZEDRESULT *pSerializedResult,
   9488         ISpRecoResult **ppResult);
   9489 
   9490     HRESULT (STDMETHODCALLTYPE *Bookmark)(
   9491         ISpRecoContext *This,
   9492         SPBOOKMARKOPTIONS Options,
   9493         ULONGLONG ullStreamPosition,
   9494         LPARAM lparamEvent);
   9495 
   9496     HRESULT (STDMETHODCALLTYPE *SetAdaptationData)(
   9497         ISpRecoContext *This,
   9498         LPCWSTR pAdaptationData,
   9499         const ULONG cch);
   9500 
   9501     HRESULT (STDMETHODCALLTYPE *Pause)(
   9502         ISpRecoContext *This,
   9503         DWORD dwReserved);
   9504 
   9505     HRESULT (STDMETHODCALLTYPE *Resume)(
   9506         ISpRecoContext *This,
   9507         DWORD dwReserved);
   9508 
   9509     HRESULT (STDMETHODCALLTYPE *SetVoice)(
   9510         ISpRecoContext *This,
   9511         ISpVoice *pVoice,
   9512         WINBOOL fAllowFormatChanges);
   9513 
   9514     HRESULT (STDMETHODCALLTYPE *GetVoice)(
   9515         ISpRecoContext *This,
   9516         ISpVoice **ppVoice);
   9517 
   9518     HRESULT (STDMETHODCALLTYPE *SetVoicePurgeEvent)(
   9519         ISpRecoContext *This,
   9520         ULONGLONG ullEventInterest);
   9521 
   9522     HRESULT (STDMETHODCALLTYPE *GetVoicePurgeEvent)(
   9523         ISpRecoContext *This,
   9524         ULONGLONG *pullEventInterest);
   9525 
   9526     HRESULT (STDMETHODCALLTYPE *SetContextState)(
   9527         ISpRecoContext *This,
   9528         SPCONTEXTSTATE eContextState);
   9529 
   9530     HRESULT (STDMETHODCALLTYPE *GetContextState)(
   9531         ISpRecoContext *This,
   9532         SPCONTEXTSTATE *peContextState);
   9533 
   9534     END_INTERFACE
   9535 } ISpRecoContextVtbl;
   9536 
   9537 interface ISpRecoContext {
   9538     CONST_VTBL ISpRecoContextVtbl* lpVtbl;
   9539 };
   9540 
   9541 #ifdef COBJMACROS
   9542 #ifndef WIDL_C_INLINE_WRAPPERS
   9543 /*** IUnknown methods ***/
   9544 #define ISpRecoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9545 #define ISpRecoContext_AddRef(This) (This)->lpVtbl->AddRef(This)
   9546 #define ISpRecoContext_Release(This) (This)->lpVtbl->Release(This)
   9547 /*** ISpNotifySource methods ***/
   9548 #define ISpRecoContext_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
   9549 #define ISpRecoContext_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
   9550 #define ISpRecoContext_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
   9551 #define ISpRecoContext_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
   9552 #define ISpRecoContext_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
   9553 #define ISpRecoContext_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
   9554 #define ISpRecoContext_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
   9555 /*** ISpEventSource methods ***/
   9556 #define ISpRecoContext_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
   9557 #define ISpRecoContext_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
   9558 #define ISpRecoContext_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
   9559 /*** ISpRecoContext methods ***/
   9560 #define ISpRecoContext_GetRecognizer(This,ppRecognizer) (This)->lpVtbl->GetRecognizer(This,ppRecognizer)
   9561 #define ISpRecoContext_CreateGrammar(This,ullGrammarId,ppGrammar) (This)->lpVtbl->CreateGrammar(This,ullGrammarId,ppGrammar)
   9562 #define ISpRecoContext_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
   9563 #define ISpRecoContext_GetMaxAlternates(This,pcAlternates) (This)->lpVtbl->GetMaxAlternates(This,pcAlternates)
   9564 #define ISpRecoContext_SetMaxAlternates(This,cAlternates) (This)->lpVtbl->SetMaxAlternates(This,cAlternates)
   9565 #define ISpRecoContext_SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx)
   9566 #define ISpRecoContext_GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX) (This)->lpVtbl->GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX)
   9567 #define ISpRecoContext_DeserializeResult(This,pSerializedResult,ppResult) (This)->lpVtbl->DeserializeResult(This,pSerializedResult,ppResult)
   9568 #define ISpRecoContext_Bookmark(This,Options,ullStreamPosition,lparamEvent) (This)->lpVtbl->Bookmark(This,Options,ullStreamPosition,lparamEvent)
   9569 #define ISpRecoContext_SetAdaptationData(This,pAdaptationData,cch) (This)->lpVtbl->SetAdaptationData(This,pAdaptationData,cch)
   9570 #define ISpRecoContext_Pause(This,dwReserved) (This)->lpVtbl->Pause(This,dwReserved)
   9571 #define ISpRecoContext_Resume(This,dwReserved) (This)->lpVtbl->Resume(This,dwReserved)
   9572 #define ISpRecoContext_SetVoice(This,pVoice,fAllowFormatChanges) (This)->lpVtbl->SetVoice(This,pVoice,fAllowFormatChanges)
   9573 #define ISpRecoContext_GetVoice(This,ppVoice) (This)->lpVtbl->GetVoice(This,ppVoice)
   9574 #define ISpRecoContext_SetVoicePurgeEvent(This,ullEventInterest) (This)->lpVtbl->SetVoicePurgeEvent(This,ullEventInterest)
   9575 #define ISpRecoContext_GetVoicePurgeEvent(This,pullEventInterest) (This)->lpVtbl->GetVoicePurgeEvent(This,pullEventInterest)
   9576 #define ISpRecoContext_SetContextState(This,eContextState) (This)->lpVtbl->SetContextState(This,eContextState)
   9577 #define ISpRecoContext_GetContextState(This,peContextState) (This)->lpVtbl->GetContextState(This,peContextState)
   9578 #else
   9579 /*** IUnknown methods ***/
   9580 static inline HRESULT ISpRecoContext_QueryInterface(ISpRecoContext* This,REFIID riid,void **ppvObject) {
   9581     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9582 }
   9583 static inline ULONG ISpRecoContext_AddRef(ISpRecoContext* This) {
   9584     return This->lpVtbl->AddRef(This);
   9585 }
   9586 static inline ULONG ISpRecoContext_Release(ISpRecoContext* This) {
   9587     return This->lpVtbl->Release(This);
   9588 }
   9589 /*** ISpNotifySource methods ***/
   9590 static inline HRESULT ISpRecoContext_SetNotifySink(ISpRecoContext* This,ISpNotifySink *pNotifySink) {
   9591     return This->lpVtbl->SetNotifySink(This,pNotifySink);
   9592 }
   9593 static inline HRESULT ISpRecoContext_SetNotifyWindowMessage(ISpRecoContext* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
   9594     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
   9595 }
   9596 static inline HRESULT ISpRecoContext_SetNotifyCallbackFunction(ISpRecoContext* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
   9597     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
   9598 }
   9599 static inline HRESULT ISpRecoContext_SetNotifyCallbackInterface(ISpRecoContext* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
   9600     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
   9601 }
   9602 static inline HRESULT ISpRecoContext_SetNotifyWin32Event(ISpRecoContext* This) {
   9603     return This->lpVtbl->SetNotifyWin32Event(This);
   9604 }
   9605 static inline HRESULT ISpRecoContext_WaitForNotifyEvent(ISpRecoContext* This,DWORD dwMilliseconds) {
   9606     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
   9607 }
   9608 static inline HANDLE ISpRecoContext_GetNotifyEventHandle(ISpRecoContext* This) {
   9609     return This->lpVtbl->GetNotifyEventHandle(This);
   9610 }
   9611 /*** ISpEventSource methods ***/
   9612 static inline HRESULT ISpRecoContext_SetInterest(ISpRecoContext* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
   9613     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
   9614 }
   9615 static inline HRESULT ISpRecoContext_GetEvents(ISpRecoContext* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
   9616     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
   9617 }
   9618 static inline HRESULT ISpRecoContext_GetInfo(ISpRecoContext* This,SPEVENTSOURCEINFO *pInfo) {
   9619     return This->lpVtbl->GetInfo(This,pInfo);
   9620 }
   9621 /*** ISpRecoContext methods ***/
   9622 static inline HRESULT ISpRecoContext_GetRecognizer(ISpRecoContext* This,ISpRecognizer **ppRecognizer) {
   9623     return This->lpVtbl->GetRecognizer(This,ppRecognizer);
   9624 }
   9625 static inline HRESULT ISpRecoContext_CreateGrammar(ISpRecoContext* This,ULONGLONG ullGrammarId,ISpRecoGrammar **ppGrammar) {
   9626     return This->lpVtbl->CreateGrammar(This,ullGrammarId,ppGrammar);
   9627 }
   9628 static inline HRESULT ISpRecoContext_GetStatus(ISpRecoContext* This,SPRECOCONTEXTSTATUS *pStatus) {
   9629     return This->lpVtbl->GetStatus(This,pStatus);
   9630 }
   9631 static inline HRESULT ISpRecoContext_GetMaxAlternates(ISpRecoContext* This,ULONG *pcAlternates) {
   9632     return This->lpVtbl->GetMaxAlternates(This,pcAlternates);
   9633 }
   9634 static inline HRESULT ISpRecoContext_SetMaxAlternates(ISpRecoContext* This,ULONG cAlternates) {
   9635     return This->lpVtbl->SetMaxAlternates(This,cAlternates);
   9636 }
   9637 static inline HRESULT ISpRecoContext_SetAudioOptions(ISpRecoContext* This,SPAUDIOOPTIONS Options,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
   9638     return This->lpVtbl->SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx);
   9639 }
   9640 static inline HRESULT ISpRecoContext_GetAudioOptions(ISpRecoContext* This,SPAUDIOOPTIONS *pOptions,GUID *pAudioFormatId,WAVEFORMATEX **ppCoMemWFEX) {
   9641     return This->lpVtbl->GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX);
   9642 }
   9643 static inline HRESULT ISpRecoContext_DeserializeResult(ISpRecoContext* This,const SPSERIALIZEDRESULT *pSerializedResult,ISpRecoResult **ppResult) {
   9644     return This->lpVtbl->DeserializeResult(This,pSerializedResult,ppResult);
   9645 }
   9646 static inline HRESULT ISpRecoContext_Bookmark(ISpRecoContext* This,SPBOOKMARKOPTIONS Options,ULONGLONG ullStreamPosition,LPARAM lparamEvent) {
   9647     return This->lpVtbl->Bookmark(This,Options,ullStreamPosition,lparamEvent);
   9648 }
   9649 static inline HRESULT ISpRecoContext_SetAdaptationData(ISpRecoContext* This,LPCWSTR pAdaptationData,const ULONG cch) {
   9650     return This->lpVtbl->SetAdaptationData(This,pAdaptationData,cch);
   9651 }
   9652 static inline HRESULT ISpRecoContext_Pause(ISpRecoContext* This,DWORD dwReserved) {
   9653     return This->lpVtbl->Pause(This,dwReserved);
   9654 }
   9655 static inline HRESULT ISpRecoContext_Resume(ISpRecoContext* This,DWORD dwReserved) {
   9656     return This->lpVtbl->Resume(This,dwReserved);
   9657 }
   9658 static inline HRESULT ISpRecoContext_SetVoice(ISpRecoContext* This,ISpVoice *pVoice,WINBOOL fAllowFormatChanges) {
   9659     return This->lpVtbl->SetVoice(This,pVoice,fAllowFormatChanges);
   9660 }
   9661 static inline HRESULT ISpRecoContext_GetVoice(ISpRecoContext* This,ISpVoice **ppVoice) {
   9662     return This->lpVtbl->GetVoice(This,ppVoice);
   9663 }
   9664 static inline HRESULT ISpRecoContext_SetVoicePurgeEvent(ISpRecoContext* This,ULONGLONG ullEventInterest) {
   9665     return This->lpVtbl->SetVoicePurgeEvent(This,ullEventInterest);
   9666 }
   9667 static inline HRESULT ISpRecoContext_GetVoicePurgeEvent(ISpRecoContext* This,ULONGLONG *pullEventInterest) {
   9668     return This->lpVtbl->GetVoicePurgeEvent(This,pullEventInterest);
   9669 }
   9670 static inline HRESULT ISpRecoContext_SetContextState(ISpRecoContext* This,SPCONTEXTSTATE eContextState) {
   9671     return This->lpVtbl->SetContextState(This,eContextState);
   9672 }
   9673 static inline HRESULT ISpRecoContext_GetContextState(ISpRecoContext* This,SPCONTEXTSTATE *peContextState) {
   9674     return This->lpVtbl->GetContextState(This,peContextState);
   9675 }
   9676 #endif
   9677 #endif
   9678 
   9679 #endif
   9680 
   9681 
   9682 #endif  /* __ISpRecoContext_INTERFACE_DEFINED__ */
   9683 
   9684 typedef enum SPGRAMMAROPTIONS {
   9685     SPGO_SAPI = 0x1,
   9686     SPGO_SRGS = 0x2,
   9687     SPGO_UPS = 0x4,
   9688     SPGO_SRGS_MS_SCRIPT = 0x8,
   9689     SPGO_FILE = 0x10,
   9690     SPGO_HTTP = 0x20,
   9691     SPGO_RES = 0x40,
   9692     SPGO_OBJECT = 0x80,
   9693     SPGO_SRGS_W3C_SCRIPT = 0x100,
   9694     SPGO_SRGS_STG_SCRIPT = 0x200,
   9695     SPGO_SRGS_SCRIPT = ((SPGO_SRGS | SPGO_SRGS_MS_SCRIPT) | SPGO_SRGS_W3C_SCRIPT) | SPGO_SRGS_STG_SCRIPT,
   9696     SPGO_DEFAULT = 0x3fb,
   9697     SPGO_ALL = 0x3ff
   9698 } SPGRAMMAROPTIONS;
   9699 typedef enum SPADAPTATIONSETTINGS {
   9700     SPADS_Default = 0x0,
   9701     SPADS_CurrentRecognizer = 0x1,
   9702     SPADS_RecoProfile = 0x2,
   9703     SPADS_Immediate = 0x4,
   9704     SPADS_Reset = 0x8,
   9705     SPADS_HighVolumeDataSource = 0x10
   9706 } SPADAPTATIONSETTINGS;
   9707 typedef enum SPADAPTATIONRELEVANCE {
   9708     SPAR_Unknown = 0,
   9709     SPAR_Low = 1,
   9710     SPAR_Medium = 2,
   9711     SPAR_High = 3
   9712 } SPADAPTATIONRELEVANCE;
   9713 /*****************************************************************************
   9714  * ISpRecoContext2 interface
   9715  */
   9716 #ifndef __ISpRecoContext2_INTERFACE_DEFINED__
   9717 #define __ISpRecoContext2_INTERFACE_DEFINED__
   9718 
   9719 DEFINE_GUID(IID_ISpRecoContext2, 0xbead311c, 0x52ff, 0x437f, 0x94,0x64, 0x6b,0x21,0x05,0x4c,0xa7,0x3d);
   9720 #if defined(__cplusplus) && !defined(CINTERFACE)
   9721 MIDL_INTERFACE("bead311c-52ff-437f-9464-6b21054ca73d")
   9722 ISpRecoContext2 : public IUnknown
   9723 {
   9724     virtual HRESULT STDMETHODCALLTYPE SetGrammarOptions(
   9725         DWORD eGrammarOptions) = 0;
   9726 
   9727     virtual HRESULT STDMETHODCALLTYPE GetGrammarOptions(
   9728         DWORD *peGrammarOptions) = 0;
   9729 
   9730     virtual HRESULT STDMETHODCALLTYPE SetAdaptationData2(
   9731         LPCWSTR pAdaptationData,
   9732         const ULONG cch,
   9733         LPCWSTR pTopicName,
   9734         DWORD eAdaptationSettings,
   9735         SPADAPTATIONRELEVANCE eRelevance) = 0;
   9736 
   9737 };
   9738 #ifdef __CRT_UUID_DECL
   9739 __CRT_UUID_DECL(ISpRecoContext2, 0xbead311c, 0x52ff, 0x437f, 0x94,0x64, 0x6b,0x21,0x05,0x4c,0xa7,0x3d)
   9740 #endif
   9741 #else
   9742 typedef struct ISpRecoContext2Vtbl {
   9743     BEGIN_INTERFACE
   9744 
   9745     /*** IUnknown methods ***/
   9746     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9747         ISpRecoContext2 *This,
   9748         REFIID riid,
   9749         void **ppvObject);
   9750 
   9751     ULONG (STDMETHODCALLTYPE *AddRef)(
   9752         ISpRecoContext2 *This);
   9753 
   9754     ULONG (STDMETHODCALLTYPE *Release)(
   9755         ISpRecoContext2 *This);
   9756 
   9757     /*** ISpRecoContext2 methods ***/
   9758     HRESULT (STDMETHODCALLTYPE *SetGrammarOptions)(
   9759         ISpRecoContext2 *This,
   9760         DWORD eGrammarOptions);
   9761 
   9762     HRESULT (STDMETHODCALLTYPE *GetGrammarOptions)(
   9763         ISpRecoContext2 *This,
   9764         DWORD *peGrammarOptions);
   9765 
   9766     HRESULT (STDMETHODCALLTYPE *SetAdaptationData2)(
   9767         ISpRecoContext2 *This,
   9768         LPCWSTR pAdaptationData,
   9769         const ULONG cch,
   9770         LPCWSTR pTopicName,
   9771         DWORD eAdaptationSettings,
   9772         SPADAPTATIONRELEVANCE eRelevance);
   9773 
   9774     END_INTERFACE
   9775 } ISpRecoContext2Vtbl;
   9776 
   9777 interface ISpRecoContext2 {
   9778     CONST_VTBL ISpRecoContext2Vtbl* lpVtbl;
   9779 };
   9780 
   9781 #ifdef COBJMACROS
   9782 #ifndef WIDL_C_INLINE_WRAPPERS
   9783 /*** IUnknown methods ***/
   9784 #define ISpRecoContext2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9785 #define ISpRecoContext2_AddRef(This) (This)->lpVtbl->AddRef(This)
   9786 #define ISpRecoContext2_Release(This) (This)->lpVtbl->Release(This)
   9787 /*** ISpRecoContext2 methods ***/
   9788 #define ISpRecoContext2_SetGrammarOptions(This,eGrammarOptions) (This)->lpVtbl->SetGrammarOptions(This,eGrammarOptions)
   9789 #define ISpRecoContext2_GetGrammarOptions(This,peGrammarOptions) (This)->lpVtbl->GetGrammarOptions(This,peGrammarOptions)
   9790 #define ISpRecoContext2_SetAdaptationData2(This,pAdaptationData,cch,pTopicName,eAdaptationSettings,eRelevance) (This)->lpVtbl->SetAdaptationData2(This,pAdaptationData,cch,pTopicName,eAdaptationSettings,eRelevance)
   9791 #else
   9792 /*** IUnknown methods ***/
   9793 static inline HRESULT ISpRecoContext2_QueryInterface(ISpRecoContext2* This,REFIID riid,void **ppvObject) {
   9794     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9795 }
   9796 static inline ULONG ISpRecoContext2_AddRef(ISpRecoContext2* This) {
   9797     return This->lpVtbl->AddRef(This);
   9798 }
   9799 static inline ULONG ISpRecoContext2_Release(ISpRecoContext2* This) {
   9800     return This->lpVtbl->Release(This);
   9801 }
   9802 /*** ISpRecoContext2 methods ***/
   9803 static inline HRESULT ISpRecoContext2_SetGrammarOptions(ISpRecoContext2* This,DWORD eGrammarOptions) {
   9804     return This->lpVtbl->SetGrammarOptions(This,eGrammarOptions);
   9805 }
   9806 static inline HRESULT ISpRecoContext2_GetGrammarOptions(ISpRecoContext2* This,DWORD *peGrammarOptions) {
   9807     return This->lpVtbl->GetGrammarOptions(This,peGrammarOptions);
   9808 }
   9809 static inline HRESULT ISpRecoContext2_SetAdaptationData2(ISpRecoContext2* This,LPCWSTR pAdaptationData,const ULONG cch,LPCWSTR pTopicName,DWORD eAdaptationSettings,SPADAPTATIONRELEVANCE eRelevance) {
   9810     return This->lpVtbl->SetAdaptationData2(This,pAdaptationData,cch,pTopicName,eAdaptationSettings,eRelevance);
   9811 }
   9812 #endif
   9813 #endif
   9814 
   9815 #endif
   9816 
   9817 
   9818 #endif  /* __ISpRecoContext2_INTERFACE_DEFINED__ */
   9819 
   9820 /*****************************************************************************
   9821  * ISpProperties interface
   9822  */
   9823 #ifndef __ISpProperties_INTERFACE_DEFINED__
   9824 #define __ISpProperties_INTERFACE_DEFINED__
   9825 
   9826 DEFINE_GUID(IID_ISpProperties, 0x5b4fb971, 0xb115, 0x4de1, 0xad,0x97, 0xe4,0x82,0xe3,0xbf,0x6e,0xe4);
   9827 #if defined(__cplusplus) && !defined(CINTERFACE)
   9828 MIDL_INTERFACE("5b4fb971-b115-4de1-ad97-e482e3bf6ee4")
   9829 ISpProperties : public IUnknown
   9830 {
   9831     virtual HRESULT STDMETHODCALLTYPE SetPropertyNum(
   9832         LPCWSTR pName,
   9833         LONG lValue) = 0;
   9834 
   9835     virtual HRESULT STDMETHODCALLTYPE GetPropertyNum(
   9836         LPCWSTR pName,
   9837         LONG *plValue) = 0;
   9838 
   9839     virtual HRESULT STDMETHODCALLTYPE SetPropertyString(
   9840         LPCWSTR pName,
   9841         LPCWSTR pValue) = 0;
   9842 
   9843     virtual HRESULT STDMETHODCALLTYPE GetPropertyString(
   9844         LPCWSTR pName,
   9845         LPWSTR *ppCoMemValue) = 0;
   9846 
   9847 };
   9848 #ifdef __CRT_UUID_DECL
   9849 __CRT_UUID_DECL(ISpProperties, 0x5b4fb971, 0xb115, 0x4de1, 0xad,0x97, 0xe4,0x82,0xe3,0xbf,0x6e,0xe4)
   9850 #endif
   9851 #else
   9852 typedef struct ISpPropertiesVtbl {
   9853     BEGIN_INTERFACE
   9854 
   9855     /*** IUnknown methods ***/
   9856     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9857         ISpProperties *This,
   9858         REFIID riid,
   9859         void **ppvObject);
   9860 
   9861     ULONG (STDMETHODCALLTYPE *AddRef)(
   9862         ISpProperties *This);
   9863 
   9864     ULONG (STDMETHODCALLTYPE *Release)(
   9865         ISpProperties *This);
   9866 
   9867     /*** ISpProperties methods ***/
   9868     HRESULT (STDMETHODCALLTYPE *SetPropertyNum)(
   9869         ISpProperties *This,
   9870         LPCWSTR pName,
   9871         LONG lValue);
   9872 
   9873     HRESULT (STDMETHODCALLTYPE *GetPropertyNum)(
   9874         ISpProperties *This,
   9875         LPCWSTR pName,
   9876         LONG *plValue);
   9877 
   9878     HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
   9879         ISpProperties *This,
   9880         LPCWSTR pName,
   9881         LPCWSTR pValue);
   9882 
   9883     HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
   9884         ISpProperties *This,
   9885         LPCWSTR pName,
   9886         LPWSTR *ppCoMemValue);
   9887 
   9888     END_INTERFACE
   9889 } ISpPropertiesVtbl;
   9890 
   9891 interface ISpProperties {
   9892     CONST_VTBL ISpPropertiesVtbl* lpVtbl;
   9893 };
   9894 
   9895 #ifdef COBJMACROS
   9896 #ifndef WIDL_C_INLINE_WRAPPERS
   9897 /*** IUnknown methods ***/
   9898 #define ISpProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9899 #define ISpProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
   9900 #define ISpProperties_Release(This) (This)->lpVtbl->Release(This)
   9901 /*** ISpProperties methods ***/
   9902 #define ISpProperties_SetPropertyNum(This,pName,lValue) (This)->lpVtbl->SetPropertyNum(This,pName,lValue)
   9903 #define ISpProperties_GetPropertyNum(This,pName,plValue) (This)->lpVtbl->GetPropertyNum(This,pName,plValue)
   9904 #define ISpProperties_SetPropertyString(This,pName,pValue) (This)->lpVtbl->SetPropertyString(This,pName,pValue)
   9905 #define ISpProperties_GetPropertyString(This,pName,ppCoMemValue) (This)->lpVtbl->GetPropertyString(This,pName,ppCoMemValue)
   9906 #else
   9907 /*** IUnknown methods ***/
   9908 static inline HRESULT ISpProperties_QueryInterface(ISpProperties* This,REFIID riid,void **ppvObject) {
   9909     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9910 }
   9911 static inline ULONG ISpProperties_AddRef(ISpProperties* This) {
   9912     return This->lpVtbl->AddRef(This);
   9913 }
   9914 static inline ULONG ISpProperties_Release(ISpProperties* This) {
   9915     return This->lpVtbl->Release(This);
   9916 }
   9917 /*** ISpProperties methods ***/
   9918 static inline HRESULT ISpProperties_SetPropertyNum(ISpProperties* This,LPCWSTR pName,LONG lValue) {
   9919     return This->lpVtbl->SetPropertyNum(This,pName,lValue);
   9920 }
   9921 static inline HRESULT ISpProperties_GetPropertyNum(ISpProperties* This,LPCWSTR pName,LONG *plValue) {
   9922     return This->lpVtbl->GetPropertyNum(This,pName,plValue);
   9923 }
   9924 static inline HRESULT ISpProperties_SetPropertyString(ISpProperties* This,LPCWSTR pName,LPCWSTR pValue) {
   9925     return This->lpVtbl->SetPropertyString(This,pName,pValue);
   9926 }
   9927 static inline HRESULT ISpProperties_GetPropertyString(ISpProperties* This,LPCWSTR pName,LPWSTR *ppCoMemValue) {
   9928     return This->lpVtbl->GetPropertyString(This,pName,ppCoMemValue);
   9929 }
   9930 #endif
   9931 #endif
   9932 
   9933 #endif
   9934 
   9935 
   9936 #endif  /* __ISpProperties_INTERFACE_DEFINED__ */
   9937 
   9938 #define SP_MAX_LANGIDS (20)
   9939 
   9940 typedef struct SPRECOGNIZERSTATUS {
   9941     SPAUDIOSTATUS AudioStatus;
   9942     ULONGLONG ullRecognitionStreamPos;
   9943     ULONG ulStreamNumber;
   9944     ULONG ulNumActive;
   9945     CLSID clsidEngine;
   9946     ULONG cLangIDs;
   9947     WORD aLangID[20];
   9948     ULONGLONG ullRecognitionStreamTime;
   9949 } SPRECOGNIZERSTATUS;
   9950 typedef enum SPWAVEFORMATTYPE {
   9951     SPWF_INPUT = 0,
   9952     SPWF_SRENGINE = 1
   9953 } SPSTREAMFORMATTYPE;
   9954 typedef enum SPRECOSTATE {
   9955     SPRST_INACTIVE = 0,
   9956     SPRST_ACTIVE = 1,
   9957     SPRST_ACTIVE_ALWAYS = 2,
   9958     SPRST_INACTIVE_WITH_PURGE = 3,
   9959     SPRST_NUM_STATES = 4
   9960 } SPRECOSTATE;
   9961 typedef enum SPCATEGORYTYPE {
   9962     SPCT_COMMAND = 0,
   9963     SPCT_DICTATION = 1,
   9964     SPCT_SLEEP = 2,
   9965     SPCT_SUB_COMMAND = 3,
   9966     SPCT_SUB_DICTATION = 4
   9967 } SPCATEGORYTYPE;
   9968 /*****************************************************************************
   9969  * ISpRecognizer interface
   9970  */
   9971 #ifndef __ISpRecognizer_INTERFACE_DEFINED__
   9972 #define __ISpRecognizer_INTERFACE_DEFINED__
   9973 
   9974 DEFINE_GUID(IID_ISpRecognizer, 0xc2b5f241, 0xdaa0, 0x4507, 0x9e,0x16, 0x5a,0x1e,0xaa,0x2b,0x7a,0x5c);
   9975 #if defined(__cplusplus) && !defined(CINTERFACE)
   9976 MIDL_INTERFACE("c2b5f241-daa0-4507-9e16-5a1eaa2b7a5c")
   9977 ISpRecognizer : public ISpProperties
   9978 {
   9979     virtual HRESULT STDMETHODCALLTYPE SetRecognizer(
   9980         ISpObjectToken *pRecognizer) = 0;
   9981 
   9982     virtual HRESULT STDMETHODCALLTYPE GetRecognizer(
   9983         ISpObjectToken **ppRecognizer) = 0;
   9984 
   9985     virtual HRESULT STDMETHODCALLTYPE SetInput(
   9986         IUnknown *pUnkInput,
   9987         WINBOOL fAllowFormatChanges) = 0;
   9988 
   9989     virtual HRESULT STDMETHODCALLTYPE GetInputObjectToken(
   9990         ISpObjectToken **ppToken) = 0;
   9991 
   9992     virtual HRESULT STDMETHODCALLTYPE GetInputStream(
   9993         ISpStreamFormat **ppStream) = 0;
   9994 
   9995     virtual HRESULT STDMETHODCALLTYPE CreateRecoContext(
   9996         ISpRecoContext **ppNewCtxt) = 0;
   9997 
   9998     virtual HRESULT STDMETHODCALLTYPE GetRecoProfile(
   9999         ISpObjectToken **ppToken) = 0;
  10000 
  10001     virtual HRESULT STDMETHODCALLTYPE SetRecoProfile(
  10002         ISpObjectToken *pToken) = 0;
  10003 
  10004     virtual HRESULT STDMETHODCALLTYPE IsSharedInstance(
  10005         ) = 0;
  10006 
  10007     virtual HRESULT STDMETHODCALLTYPE GetRecoState(
  10008         SPRECOSTATE *pState) = 0;
  10009 
  10010     virtual HRESULT STDMETHODCALLTYPE SetRecoState(
  10011         SPRECOSTATE NewState) = 0;
  10012 
  10013     virtual HRESULT STDMETHODCALLTYPE GetStatus(
  10014         SPRECOGNIZERSTATUS *pStatus) = 0;
  10015 
  10016     virtual HRESULT STDMETHODCALLTYPE GetFormat(
  10017         SPSTREAMFORMATTYPE WaveFormatType,
  10018         GUID *pFormatId,
  10019         WAVEFORMATEX **ppCoMemWFEX) = 0;
  10020 
  10021     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
  10022         LPCWSTR pszTypeOfUI,
  10023         void *pvExtraData,
  10024         ULONG cbExtraData,
  10025         WINBOOL *pfSupported) = 0;
  10026 
  10027     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
  10028         HWND hwndParent,
  10029         LPCWSTR pszTitle,
  10030         LPCWSTR pszTypeOfUI,
  10031         void *pvExtraData,
  10032         ULONG cbExtraData) = 0;
  10033 
  10034     virtual HRESULT STDMETHODCALLTYPE EmulateRecognition(
  10035         ISpPhrase *pPhrase) = 0;
  10036 
  10037 };
  10038 #ifdef __CRT_UUID_DECL
  10039 __CRT_UUID_DECL(ISpRecognizer, 0xc2b5f241, 0xdaa0, 0x4507, 0x9e,0x16, 0x5a,0x1e,0xaa,0x2b,0x7a,0x5c)
  10040 #endif
  10041 #else
  10042 typedef struct ISpRecognizerVtbl {
  10043     BEGIN_INTERFACE
  10044 
  10045     /*** IUnknown methods ***/
  10046     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10047         ISpRecognizer *This,
  10048         REFIID riid,
  10049         void **ppvObject);
  10050 
  10051     ULONG (STDMETHODCALLTYPE *AddRef)(
  10052         ISpRecognizer *This);
  10053 
  10054     ULONG (STDMETHODCALLTYPE *Release)(
  10055         ISpRecognizer *This);
  10056 
  10057     /*** ISpProperties methods ***/
  10058     HRESULT (STDMETHODCALLTYPE *SetPropertyNum)(
  10059         ISpRecognizer *This,
  10060         LPCWSTR pName,
  10061         LONG lValue);
  10062 
  10063     HRESULT (STDMETHODCALLTYPE *GetPropertyNum)(
  10064         ISpRecognizer *This,
  10065         LPCWSTR pName,
  10066         LONG *plValue);
  10067 
  10068     HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
  10069         ISpRecognizer *This,
  10070         LPCWSTR pName,
  10071         LPCWSTR pValue);
  10072 
  10073     HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
  10074         ISpRecognizer *This,
  10075         LPCWSTR pName,
  10076         LPWSTR *ppCoMemValue);
  10077 
  10078     /*** ISpRecognizer methods ***/
  10079     HRESULT (STDMETHODCALLTYPE *SetRecognizer)(
  10080         ISpRecognizer *This,
  10081         ISpObjectToken *pRecognizer);
  10082 
  10083     HRESULT (STDMETHODCALLTYPE *GetRecognizer)(
  10084         ISpRecognizer *This,
  10085         ISpObjectToken **ppRecognizer);
  10086 
  10087     HRESULT (STDMETHODCALLTYPE *SetInput)(
  10088         ISpRecognizer *This,
  10089         IUnknown *pUnkInput,
  10090         WINBOOL fAllowFormatChanges);
  10091 
  10092     HRESULT (STDMETHODCALLTYPE *GetInputObjectToken)(
  10093         ISpRecognizer *This,
  10094         ISpObjectToken **ppToken);
  10095 
  10096     HRESULT (STDMETHODCALLTYPE *GetInputStream)(
  10097         ISpRecognizer *This,
  10098         ISpStreamFormat **ppStream);
  10099 
  10100     HRESULT (STDMETHODCALLTYPE *CreateRecoContext)(
  10101         ISpRecognizer *This,
  10102         ISpRecoContext **ppNewCtxt);
  10103 
  10104     HRESULT (STDMETHODCALLTYPE *GetRecoProfile)(
  10105         ISpRecognizer *This,
  10106         ISpObjectToken **ppToken);
  10107 
  10108     HRESULT (STDMETHODCALLTYPE *SetRecoProfile)(
  10109         ISpRecognizer *This,
  10110         ISpObjectToken *pToken);
  10111 
  10112     HRESULT (STDMETHODCALLTYPE *IsSharedInstance)(
  10113         ISpRecognizer *This);
  10114 
  10115     HRESULT (STDMETHODCALLTYPE *GetRecoState)(
  10116         ISpRecognizer *This,
  10117         SPRECOSTATE *pState);
  10118 
  10119     HRESULT (STDMETHODCALLTYPE *SetRecoState)(
  10120         ISpRecognizer *This,
  10121         SPRECOSTATE NewState);
  10122 
  10123     HRESULT (STDMETHODCALLTYPE *GetStatus)(
  10124         ISpRecognizer *This,
  10125         SPRECOGNIZERSTATUS *pStatus);
  10126 
  10127     HRESULT (STDMETHODCALLTYPE *GetFormat)(
  10128         ISpRecognizer *This,
  10129         SPSTREAMFORMATTYPE WaveFormatType,
  10130         GUID *pFormatId,
  10131         WAVEFORMATEX **ppCoMemWFEX);
  10132 
  10133     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
  10134         ISpRecognizer *This,
  10135         LPCWSTR pszTypeOfUI,
  10136         void *pvExtraData,
  10137         ULONG cbExtraData,
  10138         WINBOOL *pfSupported);
  10139 
  10140     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
  10141         ISpRecognizer *This,
  10142         HWND hwndParent,
  10143         LPCWSTR pszTitle,
  10144         LPCWSTR pszTypeOfUI,
  10145         void *pvExtraData,
  10146         ULONG cbExtraData);
  10147 
  10148     HRESULT (STDMETHODCALLTYPE *EmulateRecognition)(
  10149         ISpRecognizer *This,
  10150         ISpPhrase *pPhrase);
  10151 
  10152     END_INTERFACE
  10153 } ISpRecognizerVtbl;
  10154 
  10155 interface ISpRecognizer {
  10156     CONST_VTBL ISpRecognizerVtbl* lpVtbl;
  10157 };
  10158 
  10159 #ifdef COBJMACROS
  10160 #ifndef WIDL_C_INLINE_WRAPPERS
  10161 /*** IUnknown methods ***/
  10162 #define ISpRecognizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10163 #define ISpRecognizer_AddRef(This) (This)->lpVtbl->AddRef(This)
  10164 #define ISpRecognizer_Release(This) (This)->lpVtbl->Release(This)
  10165 /*** ISpProperties methods ***/
  10166 #define ISpRecognizer_SetPropertyNum(This,pName,lValue) (This)->lpVtbl->SetPropertyNum(This,pName,lValue)
  10167 #define ISpRecognizer_GetPropertyNum(This,pName,plValue) (This)->lpVtbl->GetPropertyNum(This,pName,plValue)
  10168 #define ISpRecognizer_SetPropertyString(This,pName,pValue) (This)->lpVtbl->SetPropertyString(This,pName,pValue)
  10169 #define ISpRecognizer_GetPropertyString(This,pName,ppCoMemValue) (This)->lpVtbl->GetPropertyString(This,pName,ppCoMemValue)
  10170 /*** ISpRecognizer methods ***/
  10171 #define ISpRecognizer_SetRecognizer(This,pRecognizer) (This)->lpVtbl->SetRecognizer(This,pRecognizer)
  10172 #define ISpRecognizer_GetRecognizer(This,ppRecognizer) (This)->lpVtbl->GetRecognizer(This,ppRecognizer)
  10173 #define ISpRecognizer_SetInput(This,pUnkInput,fAllowFormatChanges) (This)->lpVtbl->SetInput(This,pUnkInput,fAllowFormatChanges)
  10174 #define ISpRecognizer_GetInputObjectToken(This,ppToken) (This)->lpVtbl->GetInputObjectToken(This,ppToken)
  10175 #define ISpRecognizer_GetInputStream(This,ppStream) (This)->lpVtbl->GetInputStream(This,ppStream)
  10176 #define ISpRecognizer_CreateRecoContext(This,ppNewCtxt) (This)->lpVtbl->CreateRecoContext(This,ppNewCtxt)
  10177 #define ISpRecognizer_GetRecoProfile(This,ppToken) (This)->lpVtbl->GetRecoProfile(This,ppToken)
  10178 #define ISpRecognizer_SetRecoProfile(This,pToken) (This)->lpVtbl->SetRecoProfile(This,pToken)
  10179 #define ISpRecognizer_IsSharedInstance(This) (This)->lpVtbl->IsSharedInstance(This)
  10180 #define ISpRecognizer_GetRecoState(This,pState) (This)->lpVtbl->GetRecoState(This,pState)
  10181 #define ISpRecognizer_SetRecoState(This,NewState) (This)->lpVtbl->SetRecoState(This,NewState)
  10182 #define ISpRecognizer_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
  10183 #define ISpRecognizer_GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX) (This)->lpVtbl->GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX)
  10184 #define ISpRecognizer_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported)
  10185 #define ISpRecognizer_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData)
  10186 #define ISpRecognizer_EmulateRecognition(This,pPhrase) (This)->lpVtbl->EmulateRecognition(This,pPhrase)
  10187 #else
  10188 /*** IUnknown methods ***/
  10189 static inline HRESULT ISpRecognizer_QueryInterface(ISpRecognizer* This,REFIID riid,void **ppvObject) {
  10190     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10191 }
  10192 static inline ULONG ISpRecognizer_AddRef(ISpRecognizer* This) {
  10193     return This->lpVtbl->AddRef(This);
  10194 }
  10195 static inline ULONG ISpRecognizer_Release(ISpRecognizer* This) {
  10196     return This->lpVtbl->Release(This);
  10197 }
  10198 /*** ISpProperties methods ***/
  10199 static inline HRESULT ISpRecognizer_SetPropertyNum(ISpRecognizer* This,LPCWSTR pName,LONG lValue) {
  10200     return This->lpVtbl->SetPropertyNum(This,pName,lValue);
  10201 }
  10202 static inline HRESULT ISpRecognizer_GetPropertyNum(ISpRecognizer* This,LPCWSTR pName,LONG *plValue) {
  10203     return This->lpVtbl->GetPropertyNum(This,pName,plValue);
  10204 }
  10205 static inline HRESULT ISpRecognizer_SetPropertyString(ISpRecognizer* This,LPCWSTR pName,LPCWSTR pValue) {
  10206     return This->lpVtbl->SetPropertyString(This,pName,pValue);
  10207 }
  10208 static inline HRESULT ISpRecognizer_GetPropertyString(ISpRecognizer* This,LPCWSTR pName,LPWSTR *ppCoMemValue) {
  10209     return This->lpVtbl->GetPropertyString(This,pName,ppCoMemValue);
  10210 }
  10211 /*** ISpRecognizer methods ***/
  10212 static inline HRESULT ISpRecognizer_SetRecognizer(ISpRecognizer* This,ISpObjectToken *pRecognizer) {
  10213     return This->lpVtbl->SetRecognizer(This,pRecognizer);
  10214 }
  10215 static inline HRESULT ISpRecognizer_GetRecognizer(ISpRecognizer* This,ISpObjectToken **ppRecognizer) {
  10216     return This->lpVtbl->GetRecognizer(This,ppRecognizer);
  10217 }
  10218 static inline HRESULT ISpRecognizer_SetInput(ISpRecognizer* This,IUnknown *pUnkInput,WINBOOL fAllowFormatChanges) {
  10219     return This->lpVtbl->SetInput(This,pUnkInput,fAllowFormatChanges);
  10220 }
  10221 static inline HRESULT ISpRecognizer_GetInputObjectToken(ISpRecognizer* This,ISpObjectToken **ppToken) {
  10222     return This->lpVtbl->GetInputObjectToken(This,ppToken);
  10223 }
  10224 static inline HRESULT ISpRecognizer_GetInputStream(ISpRecognizer* This,ISpStreamFormat **ppStream) {
  10225     return This->lpVtbl->GetInputStream(This,ppStream);
  10226 }
  10227 static inline HRESULT ISpRecognizer_CreateRecoContext(ISpRecognizer* This,ISpRecoContext **ppNewCtxt) {
  10228     return This->lpVtbl->CreateRecoContext(This,ppNewCtxt);
  10229 }
  10230 static inline HRESULT ISpRecognizer_GetRecoProfile(ISpRecognizer* This,ISpObjectToken **ppToken) {
  10231     return This->lpVtbl->GetRecoProfile(This,ppToken);
  10232 }
  10233 static inline HRESULT ISpRecognizer_SetRecoProfile(ISpRecognizer* This,ISpObjectToken *pToken) {
  10234     return This->lpVtbl->SetRecoProfile(This,pToken);
  10235 }
  10236 static inline HRESULT ISpRecognizer_IsSharedInstance(ISpRecognizer* This) {
  10237     return This->lpVtbl->IsSharedInstance(This);
  10238 }
  10239 static inline HRESULT ISpRecognizer_GetRecoState(ISpRecognizer* This,SPRECOSTATE *pState) {
  10240     return This->lpVtbl->GetRecoState(This,pState);
  10241 }
  10242 static inline HRESULT ISpRecognizer_SetRecoState(ISpRecognizer* This,SPRECOSTATE NewState) {
  10243     return This->lpVtbl->SetRecoState(This,NewState);
  10244 }
  10245 static inline HRESULT ISpRecognizer_GetStatus(ISpRecognizer* This,SPRECOGNIZERSTATUS *pStatus) {
  10246     return This->lpVtbl->GetStatus(This,pStatus);
  10247 }
  10248 static inline HRESULT ISpRecognizer_GetFormat(ISpRecognizer* This,SPSTREAMFORMATTYPE WaveFormatType,GUID *pFormatId,WAVEFORMATEX **ppCoMemWFEX) {
  10249     return This->lpVtbl->GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX);
  10250 }
  10251 static inline HRESULT ISpRecognizer_IsUISupported(ISpRecognizer* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,WINBOOL *pfSupported) {
  10252     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported);
  10253 }
  10254 static inline HRESULT ISpRecognizer_DisplayUI(ISpRecognizer* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData) {
  10255     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData);
  10256 }
  10257 static inline HRESULT ISpRecognizer_EmulateRecognition(ISpRecognizer* This,ISpPhrase *pPhrase) {
  10258     return This->lpVtbl->EmulateRecognition(This,pPhrase);
  10259 }
  10260 #endif
  10261 #endif
  10262 
  10263 #endif
  10264 
  10265 
  10266 #endif  /* __ISpRecognizer_INTERFACE_DEFINED__ */
  10267 
  10268 /*****************************************************************************
  10269  * ISpSerializeState interface
  10270  */
  10271 #ifndef __ISpSerializeState_INTERFACE_DEFINED__
  10272 #define __ISpSerializeState_INTERFACE_DEFINED__
  10273 
  10274 DEFINE_GUID(IID_ISpSerializeState, 0x21b501a0, 0x0ec7, 0x46c9, 0x92,0xc3, 0xa2,0xbc,0x78,0x4c,0x54,0xb9);
  10275 #if defined(__cplusplus) && !defined(CINTERFACE)
  10276 MIDL_INTERFACE("21b501a0-0ec7-46c9-92c3-a2bc784c54b9")
  10277 ISpSerializeState : public IUnknown
  10278 {
  10279     virtual HRESULT STDMETHODCALLTYPE GetSerializedState(
  10280         BYTE **ppbData,
  10281         ULONG *pulSize,
  10282         DWORD dwReserved) = 0;
  10283 
  10284     virtual HRESULT STDMETHODCALLTYPE SetSerializedState(
  10285         BYTE *pbData,
  10286         ULONG ulSize,
  10287         DWORD dwReserved) = 0;
  10288 
  10289 };
  10290 #ifdef __CRT_UUID_DECL
  10291 __CRT_UUID_DECL(ISpSerializeState, 0x21b501a0, 0x0ec7, 0x46c9, 0x92,0xc3, 0xa2,0xbc,0x78,0x4c,0x54,0xb9)
  10292 #endif
  10293 #else
  10294 typedef struct ISpSerializeStateVtbl {
  10295     BEGIN_INTERFACE
  10296 
  10297     /*** IUnknown methods ***/
  10298     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10299         ISpSerializeState *This,
  10300         REFIID riid,
  10301         void **ppvObject);
  10302 
  10303     ULONG (STDMETHODCALLTYPE *AddRef)(
  10304         ISpSerializeState *This);
  10305 
  10306     ULONG (STDMETHODCALLTYPE *Release)(
  10307         ISpSerializeState *This);
  10308 
  10309     /*** ISpSerializeState methods ***/
  10310     HRESULT (STDMETHODCALLTYPE *GetSerializedState)(
  10311         ISpSerializeState *This,
  10312         BYTE **ppbData,
  10313         ULONG *pulSize,
  10314         DWORD dwReserved);
  10315 
  10316     HRESULT (STDMETHODCALLTYPE *SetSerializedState)(
  10317         ISpSerializeState *This,
  10318         BYTE *pbData,
  10319         ULONG ulSize,
  10320         DWORD dwReserved);
  10321 
  10322     END_INTERFACE
  10323 } ISpSerializeStateVtbl;
  10324 
  10325 interface ISpSerializeState {
  10326     CONST_VTBL ISpSerializeStateVtbl* lpVtbl;
  10327 };
  10328 
  10329 #ifdef COBJMACROS
  10330 #ifndef WIDL_C_INLINE_WRAPPERS
  10331 /*** IUnknown methods ***/
  10332 #define ISpSerializeState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10333 #define ISpSerializeState_AddRef(This) (This)->lpVtbl->AddRef(This)
  10334 #define ISpSerializeState_Release(This) (This)->lpVtbl->Release(This)
  10335 /*** ISpSerializeState methods ***/
  10336 #define ISpSerializeState_GetSerializedState(This,ppbData,pulSize,dwReserved) (This)->lpVtbl->GetSerializedState(This,ppbData,pulSize,dwReserved)
  10337 #define ISpSerializeState_SetSerializedState(This,pbData,ulSize,dwReserved) (This)->lpVtbl->SetSerializedState(This,pbData,ulSize,dwReserved)
  10338 #else
  10339 /*** IUnknown methods ***/
  10340 static inline HRESULT ISpSerializeState_QueryInterface(ISpSerializeState* This,REFIID riid,void **ppvObject) {
  10341     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10342 }
  10343 static inline ULONG ISpSerializeState_AddRef(ISpSerializeState* This) {
  10344     return This->lpVtbl->AddRef(This);
  10345 }
  10346 static inline ULONG ISpSerializeState_Release(ISpSerializeState* This) {
  10347     return This->lpVtbl->Release(This);
  10348 }
  10349 /*** ISpSerializeState methods ***/
  10350 static inline HRESULT ISpSerializeState_GetSerializedState(ISpSerializeState* This,BYTE **ppbData,ULONG *pulSize,DWORD dwReserved) {
  10351     return This->lpVtbl->GetSerializedState(This,ppbData,pulSize,dwReserved);
  10352 }
  10353 static inline HRESULT ISpSerializeState_SetSerializedState(ISpSerializeState* This,BYTE *pbData,ULONG ulSize,DWORD dwReserved) {
  10354     return This->lpVtbl->SetSerializedState(This,pbData,ulSize,dwReserved);
  10355 }
  10356 #endif
  10357 #endif
  10358 
  10359 #endif
  10360 
  10361 
  10362 #endif  /* __ISpSerializeState_INTERFACE_DEFINED__ */
  10363 
  10364 /*****************************************************************************
  10365  * ISpRecognizer2 interface
  10366  */
  10367 #ifndef __ISpRecognizer2_INTERFACE_DEFINED__
  10368 #define __ISpRecognizer2_INTERFACE_DEFINED__
  10369 
  10370 DEFINE_GUID(IID_ISpRecognizer2, 0x8fc6d974, 0xc81e, 0x4098, 0x93,0xc5, 0x01,0x47,0xf6,0x1e,0xd4,0xd3);
  10371 #if defined(__cplusplus) && !defined(CINTERFACE)
  10372 MIDL_INTERFACE("8fc6d974-c81e-4098-93c5-0147f61ed4d3")
  10373 ISpRecognizer2 : public IUnknown
  10374 {
  10375     virtual HRESULT STDMETHODCALLTYPE EmulateRecognitionEx(
  10376         ISpPhrase *pPhrase,
  10377         DWORD dwCompareFlags) = 0;
  10378 
  10379     virtual HRESULT STDMETHODCALLTYPE SetTrainingState(
  10380         WINBOOL fDoingTraining,
  10381         WINBOOL fAdaptFromTrainingData) = 0;
  10382 
  10383     virtual HRESULT STDMETHODCALLTYPE ResetAcousticModelAdaptation(
  10384         ) = 0;
  10385 
  10386 };
  10387 #ifdef __CRT_UUID_DECL
  10388 __CRT_UUID_DECL(ISpRecognizer2, 0x8fc6d974, 0xc81e, 0x4098, 0x93,0xc5, 0x01,0x47,0xf6,0x1e,0xd4,0xd3)
  10389 #endif
  10390 #else
  10391 typedef struct ISpRecognizer2Vtbl {
  10392     BEGIN_INTERFACE
  10393 
  10394     /*** IUnknown methods ***/
  10395     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10396         ISpRecognizer2 *This,
  10397         REFIID riid,
  10398         void **ppvObject);
  10399 
  10400     ULONG (STDMETHODCALLTYPE *AddRef)(
  10401         ISpRecognizer2 *This);
  10402 
  10403     ULONG (STDMETHODCALLTYPE *Release)(
  10404         ISpRecognizer2 *This);
  10405 
  10406     /*** ISpRecognizer2 methods ***/
  10407     HRESULT (STDMETHODCALLTYPE *EmulateRecognitionEx)(
  10408         ISpRecognizer2 *This,
  10409         ISpPhrase *pPhrase,
  10410         DWORD dwCompareFlags);
  10411 
  10412     HRESULT (STDMETHODCALLTYPE *SetTrainingState)(
  10413         ISpRecognizer2 *This,
  10414         WINBOOL fDoingTraining,
  10415         WINBOOL fAdaptFromTrainingData);
  10416 
  10417     HRESULT (STDMETHODCALLTYPE *ResetAcousticModelAdaptation)(
  10418         ISpRecognizer2 *This);
  10419 
  10420     END_INTERFACE
  10421 } ISpRecognizer2Vtbl;
  10422 
  10423 interface ISpRecognizer2 {
  10424     CONST_VTBL ISpRecognizer2Vtbl* lpVtbl;
  10425 };
  10426 
  10427 #ifdef COBJMACROS
  10428 #ifndef WIDL_C_INLINE_WRAPPERS
  10429 /*** IUnknown methods ***/
  10430 #define ISpRecognizer2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10431 #define ISpRecognizer2_AddRef(This) (This)->lpVtbl->AddRef(This)
  10432 #define ISpRecognizer2_Release(This) (This)->lpVtbl->Release(This)
  10433 /*** ISpRecognizer2 methods ***/
  10434 #define ISpRecognizer2_EmulateRecognitionEx(This,pPhrase,dwCompareFlags) (This)->lpVtbl->EmulateRecognitionEx(This,pPhrase,dwCompareFlags)
  10435 #define ISpRecognizer2_SetTrainingState(This,fDoingTraining,fAdaptFromTrainingData) (This)->lpVtbl->SetTrainingState(This,fDoingTraining,fAdaptFromTrainingData)
  10436 #define ISpRecognizer2_ResetAcousticModelAdaptation(This) (This)->lpVtbl->ResetAcousticModelAdaptation(This)
  10437 #else
  10438 /*** IUnknown methods ***/
  10439 static inline HRESULT ISpRecognizer2_QueryInterface(ISpRecognizer2* This,REFIID riid,void **ppvObject) {
  10440     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10441 }
  10442 static inline ULONG ISpRecognizer2_AddRef(ISpRecognizer2* This) {
  10443     return This->lpVtbl->AddRef(This);
  10444 }
  10445 static inline ULONG ISpRecognizer2_Release(ISpRecognizer2* This) {
  10446     return This->lpVtbl->Release(This);
  10447 }
  10448 /*** ISpRecognizer2 methods ***/
  10449 static inline HRESULT ISpRecognizer2_EmulateRecognitionEx(ISpRecognizer2* This,ISpPhrase *pPhrase,DWORD dwCompareFlags) {
  10450     return This->lpVtbl->EmulateRecognitionEx(This,pPhrase,dwCompareFlags);
  10451 }
  10452 static inline HRESULT ISpRecognizer2_SetTrainingState(ISpRecognizer2* This,WINBOOL fDoingTraining,WINBOOL fAdaptFromTrainingData) {
  10453     return This->lpVtbl->SetTrainingState(This,fDoingTraining,fAdaptFromTrainingData);
  10454 }
  10455 static inline HRESULT ISpRecognizer2_ResetAcousticModelAdaptation(ISpRecognizer2* This) {
  10456     return This->lpVtbl->ResetAcousticModelAdaptation(This);
  10457 }
  10458 #endif
  10459 #endif
  10460 
  10461 #endif
  10462 
  10463 
  10464 #endif  /* __ISpRecognizer2_INTERFACE_DEFINED__ */
  10465 
  10466 /*****************************************************************************
  10467  * ISpRecoCategory interface
  10468  */
  10469 #ifndef __ISpRecoCategory_INTERFACE_DEFINED__
  10470 #define __ISpRecoCategory_INTERFACE_DEFINED__
  10471 
  10472 DEFINE_GUID(IID_ISpRecoCategory, 0xda0cd0f9, 0x14a2, 0x4f09, 0x8c,0x2a, 0x85,0xcc,0x48,0x97,0x93,0x45);
  10473 #if defined(__cplusplus) && !defined(CINTERFACE)
  10474 MIDL_INTERFACE("da0cd0f9-14a2-4f09-8c2a-85cc48979345")
  10475 ISpRecoCategory : public IUnknown
  10476 {
  10477     virtual HRESULT STDMETHODCALLTYPE GetType(
  10478         SPCATEGORYTYPE *peCategoryType) = 0;
  10479 
  10480 };
  10481 #ifdef __CRT_UUID_DECL
  10482 __CRT_UUID_DECL(ISpRecoCategory, 0xda0cd0f9, 0x14a2, 0x4f09, 0x8c,0x2a, 0x85,0xcc,0x48,0x97,0x93,0x45)
  10483 #endif
  10484 #else
  10485 typedef struct ISpRecoCategoryVtbl {
  10486     BEGIN_INTERFACE
  10487 
  10488     /*** IUnknown methods ***/
  10489     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10490         ISpRecoCategory *This,
  10491         REFIID riid,
  10492         void **ppvObject);
  10493 
  10494     ULONG (STDMETHODCALLTYPE *AddRef)(
  10495         ISpRecoCategory *This);
  10496 
  10497     ULONG (STDMETHODCALLTYPE *Release)(
  10498         ISpRecoCategory *This);
  10499 
  10500     /*** ISpRecoCategory methods ***/
  10501     HRESULT (STDMETHODCALLTYPE *GetType)(
  10502         ISpRecoCategory *This,
  10503         SPCATEGORYTYPE *peCategoryType);
  10504 
  10505     END_INTERFACE
  10506 } ISpRecoCategoryVtbl;
  10507 
  10508 interface ISpRecoCategory {
  10509     CONST_VTBL ISpRecoCategoryVtbl* lpVtbl;
  10510 };
  10511 
  10512 #ifdef COBJMACROS
  10513 #ifndef WIDL_C_INLINE_WRAPPERS
  10514 /*** IUnknown methods ***/
  10515 #define ISpRecoCategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10516 #define ISpRecoCategory_AddRef(This) (This)->lpVtbl->AddRef(This)
  10517 #define ISpRecoCategory_Release(This) (This)->lpVtbl->Release(This)
  10518 /*** ISpRecoCategory methods ***/
  10519 #define ISpRecoCategory_GetType(This,peCategoryType) (This)->lpVtbl->GetType(This,peCategoryType)
  10520 #else
  10521 /*** IUnknown methods ***/
  10522 static inline HRESULT ISpRecoCategory_QueryInterface(ISpRecoCategory* This,REFIID riid,void **ppvObject) {
  10523     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10524 }
  10525 static inline ULONG ISpRecoCategory_AddRef(ISpRecoCategory* This) {
  10526     return This->lpVtbl->AddRef(This);
  10527 }
  10528 static inline ULONG ISpRecoCategory_Release(ISpRecoCategory* This) {
  10529     return This->lpVtbl->Release(This);
  10530 }
  10531 /*** ISpRecoCategory methods ***/
  10532 static inline HRESULT ISpRecoCategory_GetType(ISpRecoCategory* This,SPCATEGORYTYPE *peCategoryType) {
  10533     return This->lpVtbl->GetType(This,peCategoryType);
  10534 }
  10535 #endif
  10536 #endif
  10537 
  10538 #endif
  10539 
  10540 
  10541 #endif  /* __ISpRecoCategory_INTERFACE_DEFINED__ */
  10542 
  10543 /*****************************************************************************
  10544  * ISpRecognizer3 interface
  10545  */
  10546 #ifndef __ISpRecognizer3_INTERFACE_DEFINED__
  10547 #define __ISpRecognizer3_INTERFACE_DEFINED__
  10548 
  10549 DEFINE_GUID(IID_ISpRecognizer3, 0xdf1b943c, 0x5838, 0x4aa2, 0x87,0x06, 0xd7,0xcd,0x5b,0x33,0x34,0x99);
  10550 #if defined(__cplusplus) && !defined(CINTERFACE)
  10551 MIDL_INTERFACE("df1b943c-5838-4aa2-8706-d7cd5b333499")
  10552 ISpRecognizer3 : public IUnknown
  10553 {
  10554     virtual HRESULT STDMETHODCALLTYPE GetCategory(
  10555         SPCATEGORYTYPE categoryType,
  10556         ISpRecoCategory **ppCategory) = 0;
  10557 
  10558     virtual HRESULT STDMETHODCALLTYPE SetActiveCategory(
  10559         ISpRecoCategory *pCategory) = 0;
  10560 
  10561     virtual HRESULT STDMETHODCALLTYPE GetActiveCategory(
  10562         ISpRecoCategory **ppCategory) = 0;
  10563 
  10564 };
  10565 #ifdef __CRT_UUID_DECL
  10566 __CRT_UUID_DECL(ISpRecognizer3, 0xdf1b943c, 0x5838, 0x4aa2, 0x87,0x06, 0xd7,0xcd,0x5b,0x33,0x34,0x99)
  10567 #endif
  10568 #else
  10569 typedef struct ISpRecognizer3Vtbl {
  10570     BEGIN_INTERFACE
  10571 
  10572     /*** IUnknown methods ***/
  10573     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10574         ISpRecognizer3 *This,
  10575         REFIID riid,
  10576         void **ppvObject);
  10577 
  10578     ULONG (STDMETHODCALLTYPE *AddRef)(
  10579         ISpRecognizer3 *This);
  10580 
  10581     ULONG (STDMETHODCALLTYPE *Release)(
  10582         ISpRecognizer3 *This);
  10583 
  10584     /*** ISpRecognizer3 methods ***/
  10585     HRESULT (STDMETHODCALLTYPE *GetCategory)(
  10586         ISpRecognizer3 *This,
  10587         SPCATEGORYTYPE categoryType,
  10588         ISpRecoCategory **ppCategory);
  10589 
  10590     HRESULT (STDMETHODCALLTYPE *SetActiveCategory)(
  10591         ISpRecognizer3 *This,
  10592         ISpRecoCategory *pCategory);
  10593 
  10594     HRESULT (STDMETHODCALLTYPE *GetActiveCategory)(
  10595         ISpRecognizer3 *This,
  10596         ISpRecoCategory **ppCategory);
  10597 
  10598     END_INTERFACE
  10599 } ISpRecognizer3Vtbl;
  10600 
  10601 interface ISpRecognizer3 {
  10602     CONST_VTBL ISpRecognizer3Vtbl* lpVtbl;
  10603 };
  10604 
  10605 #ifdef COBJMACROS
  10606 #ifndef WIDL_C_INLINE_WRAPPERS
  10607 /*** IUnknown methods ***/
  10608 #define ISpRecognizer3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10609 #define ISpRecognizer3_AddRef(This) (This)->lpVtbl->AddRef(This)
  10610 #define ISpRecognizer3_Release(This) (This)->lpVtbl->Release(This)
  10611 /*** ISpRecognizer3 methods ***/
  10612 #define ISpRecognizer3_GetCategory(This,categoryType,ppCategory) (This)->lpVtbl->GetCategory(This,categoryType,ppCategory)
  10613 #define ISpRecognizer3_SetActiveCategory(This,pCategory) (This)->lpVtbl->SetActiveCategory(This,pCategory)
  10614 #define ISpRecognizer3_GetActiveCategory(This,ppCategory) (This)->lpVtbl->GetActiveCategory(This,ppCategory)
  10615 #else
  10616 /*** IUnknown methods ***/
  10617 static inline HRESULT ISpRecognizer3_QueryInterface(ISpRecognizer3* This,REFIID riid,void **ppvObject) {
  10618     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10619 }
  10620 static inline ULONG ISpRecognizer3_AddRef(ISpRecognizer3* This) {
  10621     return This->lpVtbl->AddRef(This);
  10622 }
  10623 static inline ULONG ISpRecognizer3_Release(ISpRecognizer3* This) {
  10624     return This->lpVtbl->Release(This);
  10625 }
  10626 /*** ISpRecognizer3 methods ***/
  10627 static inline HRESULT ISpRecognizer3_GetCategory(ISpRecognizer3* This,SPCATEGORYTYPE categoryType,ISpRecoCategory **ppCategory) {
  10628     return This->lpVtbl->GetCategory(This,categoryType,ppCategory);
  10629 }
  10630 static inline HRESULT ISpRecognizer3_SetActiveCategory(ISpRecognizer3* This,ISpRecoCategory *pCategory) {
  10631     return This->lpVtbl->SetActiveCategory(This,pCategory);
  10632 }
  10633 static inline HRESULT ISpRecognizer3_GetActiveCategory(ISpRecognizer3* This,ISpRecoCategory **ppCategory) {
  10634     return This->lpVtbl->GetActiveCategory(This,ppCategory);
  10635 }
  10636 #endif
  10637 #endif
  10638 
  10639 #endif
  10640 
  10641 
  10642 #endif  /* __ISpRecognizer3_INTERFACE_DEFINED__ */
  10643 
  10644 typedef struct SPNORMALIZATIONLIST {
  10645     ULONG ulSize;
  10646     WCHAR **ppszzNormalizedList;
  10647 } SPNORMALIZATIONLIST;
  10648 /*****************************************************************************
  10649  * ISpEnginePronunciation interface
  10650  */
  10651 #ifndef __ISpEnginePronunciation_INTERFACE_DEFINED__
  10652 #define __ISpEnginePronunciation_INTERFACE_DEFINED__
  10653 
  10654 DEFINE_GUID(IID_ISpEnginePronunciation, 0xc360ce4b, 0x76d1, 0x4214, 0xad,0x68, 0x52,0x65,0x7d,0x50,0x83,0xda);
  10655 #if defined(__cplusplus) && !defined(CINTERFACE)
  10656 MIDL_INTERFACE("c360ce4b-76d1-4214-ad68-52657d5083da")
  10657 ISpEnginePronunciation : public IUnknown
  10658 {
  10659     virtual HRESULT STDMETHODCALLTYPE Normalize(
  10660         LPCWSTR pszWord,
  10661         LPCWSTR pszLeftContext,
  10662         LPCWSTR pszRightContext,
  10663         WORD LangID,
  10664         SPNORMALIZATIONLIST *pNormalizationList) = 0;
  10665 
  10666     virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
  10667         LPCWSTR pszWord,
  10668         LPCWSTR pszLeftContext,
  10669         LPCWSTR pszRightContext,
  10670         WORD LangID,
  10671         SPWORDPRONUNCIATIONLIST *pEnginePronunciationList) = 0;
  10672 
  10673 };
  10674 #ifdef __CRT_UUID_DECL
  10675 __CRT_UUID_DECL(ISpEnginePronunciation, 0xc360ce4b, 0x76d1, 0x4214, 0xad,0x68, 0x52,0x65,0x7d,0x50,0x83,0xda)
  10676 #endif
  10677 #else
  10678 typedef struct ISpEnginePronunciationVtbl {
  10679     BEGIN_INTERFACE
  10680 
  10681     /*** IUnknown methods ***/
  10682     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10683         ISpEnginePronunciation *This,
  10684         REFIID riid,
  10685         void **ppvObject);
  10686 
  10687     ULONG (STDMETHODCALLTYPE *AddRef)(
  10688         ISpEnginePronunciation *This);
  10689 
  10690     ULONG (STDMETHODCALLTYPE *Release)(
  10691         ISpEnginePronunciation *This);
  10692 
  10693     /*** ISpEnginePronunciation methods ***/
  10694     HRESULT (STDMETHODCALLTYPE *Normalize)(
  10695         ISpEnginePronunciation *This,
  10696         LPCWSTR pszWord,
  10697         LPCWSTR pszLeftContext,
  10698         LPCWSTR pszRightContext,
  10699         WORD LangID,
  10700         SPNORMALIZATIONLIST *pNormalizationList);
  10701 
  10702     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
  10703         ISpEnginePronunciation *This,
  10704         LPCWSTR pszWord,
  10705         LPCWSTR pszLeftContext,
  10706         LPCWSTR pszRightContext,
  10707         WORD LangID,
  10708         SPWORDPRONUNCIATIONLIST *pEnginePronunciationList);
  10709 
  10710     END_INTERFACE
  10711 } ISpEnginePronunciationVtbl;
  10712 
  10713 interface ISpEnginePronunciation {
  10714     CONST_VTBL ISpEnginePronunciationVtbl* lpVtbl;
  10715 };
  10716 
  10717 #ifdef COBJMACROS
  10718 #ifndef WIDL_C_INLINE_WRAPPERS
  10719 /*** IUnknown methods ***/
  10720 #define ISpEnginePronunciation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10721 #define ISpEnginePronunciation_AddRef(This) (This)->lpVtbl->AddRef(This)
  10722 #define ISpEnginePronunciation_Release(This) (This)->lpVtbl->Release(This)
  10723 /*** ISpEnginePronunciation methods ***/
  10724 #define ISpEnginePronunciation_Normalize(This,pszWord,pszLeftContext,pszRightContext,LangID,pNormalizationList) (This)->lpVtbl->Normalize(This,pszWord,pszLeftContext,pszRightContext,LangID,pNormalizationList)
  10725 #define ISpEnginePronunciation_GetPronunciations(This,pszWord,pszLeftContext,pszRightContext,LangID,pEnginePronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,pszLeftContext,pszRightContext,LangID,pEnginePronunciationList)
  10726 #else
  10727 /*** IUnknown methods ***/
  10728 static inline HRESULT ISpEnginePronunciation_QueryInterface(ISpEnginePronunciation* This,REFIID riid,void **ppvObject) {
  10729     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10730 }
  10731 static inline ULONG ISpEnginePronunciation_AddRef(ISpEnginePronunciation* This) {
  10732     return This->lpVtbl->AddRef(This);
  10733 }
  10734 static inline ULONG ISpEnginePronunciation_Release(ISpEnginePronunciation* This) {
  10735     return This->lpVtbl->Release(This);
  10736 }
  10737 /*** ISpEnginePronunciation methods ***/
  10738 static inline HRESULT ISpEnginePronunciation_Normalize(ISpEnginePronunciation* This,LPCWSTR pszWord,LPCWSTR pszLeftContext,LPCWSTR pszRightContext,WORD LangID,SPNORMALIZATIONLIST *pNormalizationList) {
  10739     return This->lpVtbl->Normalize(This,pszWord,pszLeftContext,pszRightContext,LangID,pNormalizationList);
  10740 }
  10741 static inline HRESULT ISpEnginePronunciation_GetPronunciations(ISpEnginePronunciation* This,LPCWSTR pszWord,LPCWSTR pszLeftContext,LPCWSTR pszRightContext,WORD LangID,SPWORDPRONUNCIATIONLIST *pEnginePronunciationList) {
  10742     return This->lpVtbl->GetPronunciations(This,pszWord,pszLeftContext,pszRightContext,LangID,pEnginePronunciationList);
  10743 }
  10744 #endif
  10745 #endif
  10746 
  10747 #endif
  10748 
  10749 
  10750 #endif  /* __ISpEnginePronunciation_INTERFACE_DEFINED__ */
  10751 
  10752 typedef struct SPDISPLAYTOKEN {
  10753     const WCHAR *pszLexical;
  10754     const WCHAR *pszDisplay;
  10755     BYTE bDisplayAttributes;
  10756 } SPDISPLAYTOKEN;
  10757 typedef struct SPDISPLAYPHRASE {
  10758     ULONG ulNumTokens;
  10759     SPDISPLAYTOKEN *pTokens;
  10760 } SPDISPLAYPHRASE;
  10761 /*****************************************************************************
  10762  * ISpDisplayAlternates interface
  10763  */
  10764 #ifndef __ISpDisplayAlternates_INTERFACE_DEFINED__
  10765 #define __ISpDisplayAlternates_INTERFACE_DEFINED__
  10766 
  10767 DEFINE_GUID(IID_ISpDisplayAlternates, 0xc8d7c7e2, 0x0dde, 0x44b7, 0xaf,0xe3, 0xb0,0xc9,0x91,0xfb,0xeb,0x5e);
  10768 #if defined(__cplusplus) && !defined(CINTERFACE)
  10769 MIDL_INTERFACE("c8d7c7e2-0dde-44b7-afe3-b0c991fbeb5e")
  10770 ISpDisplayAlternates : public IUnknown
  10771 {
  10772     virtual HRESULT STDMETHODCALLTYPE GetDisplayAlternates(
  10773         const SPDISPLAYPHRASE *pPhrase,
  10774         ULONG cRequestCount,
  10775         SPDISPLAYPHRASE **ppCoMemPhrases,
  10776         ULONG *pcPhrasesReturned) = 0;
  10777 
  10778     virtual HRESULT STDMETHODCALLTYPE SetFullStopTrailSpace(
  10779         ULONG ulTrailSpace) = 0;
  10780 
  10781 };
  10782 #ifdef __CRT_UUID_DECL
  10783 __CRT_UUID_DECL(ISpDisplayAlternates, 0xc8d7c7e2, 0x0dde, 0x44b7, 0xaf,0xe3, 0xb0,0xc9,0x91,0xfb,0xeb,0x5e)
  10784 #endif
  10785 #else
  10786 typedef struct ISpDisplayAlternatesVtbl {
  10787     BEGIN_INTERFACE
  10788 
  10789     /*** IUnknown methods ***/
  10790     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10791         ISpDisplayAlternates *This,
  10792         REFIID riid,
  10793         void **ppvObject);
  10794 
  10795     ULONG (STDMETHODCALLTYPE *AddRef)(
  10796         ISpDisplayAlternates *This);
  10797 
  10798     ULONG (STDMETHODCALLTYPE *Release)(
  10799         ISpDisplayAlternates *This);
  10800 
  10801     /*** ISpDisplayAlternates methods ***/
  10802     HRESULT (STDMETHODCALLTYPE *GetDisplayAlternates)(
  10803         ISpDisplayAlternates *This,
  10804         const SPDISPLAYPHRASE *pPhrase,
  10805         ULONG cRequestCount,
  10806         SPDISPLAYPHRASE **ppCoMemPhrases,
  10807         ULONG *pcPhrasesReturned);
  10808 
  10809     HRESULT (STDMETHODCALLTYPE *SetFullStopTrailSpace)(
  10810         ISpDisplayAlternates *This,
  10811         ULONG ulTrailSpace);
  10812 
  10813     END_INTERFACE
  10814 } ISpDisplayAlternatesVtbl;
  10815 
  10816 interface ISpDisplayAlternates {
  10817     CONST_VTBL ISpDisplayAlternatesVtbl* lpVtbl;
  10818 };
  10819 
  10820 #ifdef COBJMACROS
  10821 #ifndef WIDL_C_INLINE_WRAPPERS
  10822 /*** IUnknown methods ***/
  10823 #define ISpDisplayAlternates_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10824 #define ISpDisplayAlternates_AddRef(This) (This)->lpVtbl->AddRef(This)
  10825 #define ISpDisplayAlternates_Release(This) (This)->lpVtbl->Release(This)
  10826 /*** ISpDisplayAlternates methods ***/
  10827 #define ISpDisplayAlternates_GetDisplayAlternates(This,pPhrase,cRequestCount,ppCoMemPhrases,pcPhrasesReturned) (This)->lpVtbl->GetDisplayAlternates(This,pPhrase,cRequestCount,ppCoMemPhrases,pcPhrasesReturned)
  10828 #define ISpDisplayAlternates_SetFullStopTrailSpace(This,ulTrailSpace) (This)->lpVtbl->SetFullStopTrailSpace(This,ulTrailSpace)
  10829 #else
  10830 /*** IUnknown methods ***/
  10831 static inline HRESULT ISpDisplayAlternates_QueryInterface(ISpDisplayAlternates* This,REFIID riid,void **ppvObject) {
  10832     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10833 }
  10834 static inline ULONG ISpDisplayAlternates_AddRef(ISpDisplayAlternates* This) {
  10835     return This->lpVtbl->AddRef(This);
  10836 }
  10837 static inline ULONG ISpDisplayAlternates_Release(ISpDisplayAlternates* This) {
  10838     return This->lpVtbl->Release(This);
  10839 }
  10840 /*** ISpDisplayAlternates methods ***/
  10841 static inline HRESULT ISpDisplayAlternates_GetDisplayAlternates(ISpDisplayAlternates* This,const SPDISPLAYPHRASE *pPhrase,ULONG cRequestCount,SPDISPLAYPHRASE **ppCoMemPhrases,ULONG *pcPhrasesReturned) {
  10842     return This->lpVtbl->GetDisplayAlternates(This,pPhrase,cRequestCount,ppCoMemPhrases,pcPhrasesReturned);
  10843 }
  10844 static inline HRESULT ISpDisplayAlternates_SetFullStopTrailSpace(ISpDisplayAlternates* This,ULONG ulTrailSpace) {
  10845     return This->lpVtbl->SetFullStopTrailSpace(This,ulTrailSpace);
  10846 }
  10847 #endif
  10848 #endif
  10849 
  10850 #endif
  10851 
  10852 
  10853 #endif  /* __ISpDisplayAlternates_INTERFACE_DEFINED__ */
  10854 
  10855 #ifndef __SpeechLib_LIBRARY_DEFINED__
  10856 #define __SpeechLib_LIBRARY_DEFINED__
  10857 
  10858 DEFINE_GUID(LIBID_SpeechLib, 0xc866ca3a, 0x32f7, 0x11d2, 0x96,0x02, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
  10859 
  10860 #ifndef __ISpeechDataKey_FWD_DEFINED__
  10861 #define __ISpeechDataKey_FWD_DEFINED__
  10862 typedef interface ISpeechDataKey ISpeechDataKey;
  10863 #ifdef __cplusplus
  10864 interface ISpeechDataKey;
  10865 #endif /* __cplusplus */
  10866 #endif
  10867 
  10868 #ifndef __ISpeechObjectToken_FWD_DEFINED__
  10869 #define __ISpeechObjectToken_FWD_DEFINED__
  10870 typedef interface ISpeechObjectToken ISpeechObjectToken;
  10871 #ifdef __cplusplus
  10872 interface ISpeechObjectToken;
  10873 #endif /* __cplusplus */
  10874 #endif
  10875 
  10876 #ifndef __ISpeechObjectTokens_FWD_DEFINED__
  10877 #define __ISpeechObjectTokens_FWD_DEFINED__
  10878 typedef interface ISpeechObjectTokens ISpeechObjectTokens;
  10879 #ifdef __cplusplus
  10880 interface ISpeechObjectTokens;
  10881 #endif /* __cplusplus */
  10882 #endif
  10883 
  10884 #ifndef __ISpeechObjectTokenCategory_FWD_DEFINED__
  10885 #define __ISpeechObjectTokenCategory_FWD_DEFINED__
  10886 typedef interface ISpeechObjectTokenCategory ISpeechObjectTokenCategory;
  10887 #ifdef __cplusplus
  10888 interface ISpeechObjectTokenCategory;
  10889 #endif /* __cplusplus */
  10890 #endif
  10891 
  10892 #ifndef __ISpeechAudioBufferInfo_FWD_DEFINED__
  10893 #define __ISpeechAudioBufferInfo_FWD_DEFINED__
  10894 typedef interface ISpeechAudioBufferInfo ISpeechAudioBufferInfo;
  10895 #ifdef __cplusplus
  10896 interface ISpeechAudioBufferInfo;
  10897 #endif /* __cplusplus */
  10898 #endif
  10899 
  10900 #ifndef __ISpeechAudioStatus_FWD_DEFINED__
  10901 #define __ISpeechAudioStatus_FWD_DEFINED__
  10902 typedef interface ISpeechAudioStatus ISpeechAudioStatus;
  10903 #ifdef __cplusplus
  10904 interface ISpeechAudioStatus;
  10905 #endif /* __cplusplus */
  10906 #endif
  10907 
  10908 #ifndef __ISpeechAudioFormat_FWD_DEFINED__
  10909 #define __ISpeechAudioFormat_FWD_DEFINED__
  10910 typedef interface ISpeechAudioFormat ISpeechAudioFormat;
  10911 #ifdef __cplusplus
  10912 interface ISpeechAudioFormat;
  10913 #endif /* __cplusplus */
  10914 #endif
  10915 
  10916 #ifndef __ISpeechWaveFormatEx_FWD_DEFINED__
  10917 #define __ISpeechWaveFormatEx_FWD_DEFINED__
  10918 typedef interface ISpeechWaveFormatEx ISpeechWaveFormatEx;
  10919 #ifdef __cplusplus
  10920 interface ISpeechWaveFormatEx;
  10921 #endif /* __cplusplus */
  10922 #endif
  10923 
  10924 #ifndef __ISpeechBaseStream_FWD_DEFINED__
  10925 #define __ISpeechBaseStream_FWD_DEFINED__
  10926 typedef interface ISpeechBaseStream ISpeechBaseStream;
  10927 #ifdef __cplusplus
  10928 interface ISpeechBaseStream;
  10929 #endif /* __cplusplus */
  10930 #endif
  10931 
  10932 #ifndef __ISpeechFileStream_FWD_DEFINED__
  10933 #define __ISpeechFileStream_FWD_DEFINED__
  10934 typedef interface ISpeechFileStream ISpeechFileStream;
  10935 #ifdef __cplusplus
  10936 interface ISpeechFileStream;
  10937 #endif /* __cplusplus */
  10938 #endif
  10939 
  10940 #ifndef __ISpeechMemoryStream_FWD_DEFINED__
  10941 #define __ISpeechMemoryStream_FWD_DEFINED__
  10942 typedef interface ISpeechMemoryStream ISpeechMemoryStream;
  10943 #ifdef __cplusplus
  10944 interface ISpeechMemoryStream;
  10945 #endif /* __cplusplus */
  10946 #endif
  10947 
  10948 #ifndef __ISpeechCustomStream_FWD_DEFINED__
  10949 #define __ISpeechCustomStream_FWD_DEFINED__
  10950 typedef interface ISpeechCustomStream ISpeechCustomStream;
  10951 #ifdef __cplusplus
  10952 interface ISpeechCustomStream;
  10953 #endif /* __cplusplus */
  10954 #endif
  10955 
  10956 #ifndef __ISpeechAudio_FWD_DEFINED__
  10957 #define __ISpeechAudio_FWD_DEFINED__
  10958 typedef interface ISpeechAudio ISpeechAudio;
  10959 #ifdef __cplusplus
  10960 interface ISpeechAudio;
  10961 #endif /* __cplusplus */
  10962 #endif
  10963 
  10964 #ifndef __ISpeechMMSysAudio_FWD_DEFINED__
  10965 #define __ISpeechMMSysAudio_FWD_DEFINED__
  10966 typedef interface ISpeechMMSysAudio ISpeechMMSysAudio;
  10967 #ifdef __cplusplus
  10968 interface ISpeechMMSysAudio;
  10969 #endif /* __cplusplus */
  10970 #endif
  10971 
  10972 #ifndef __ISpeechVoice_FWD_DEFINED__
  10973 #define __ISpeechVoice_FWD_DEFINED__
  10974 typedef interface ISpeechVoice ISpeechVoice;
  10975 #ifdef __cplusplus
  10976 interface ISpeechVoice;
  10977 #endif /* __cplusplus */
  10978 #endif
  10979 
  10980 #ifndef __ISpeechVoiceStatus_FWD_DEFINED__
  10981 #define __ISpeechVoiceStatus_FWD_DEFINED__
  10982 typedef interface ISpeechVoiceStatus ISpeechVoiceStatus;
  10983 #ifdef __cplusplus
  10984 interface ISpeechVoiceStatus;
  10985 #endif /* __cplusplus */
  10986 #endif
  10987 
  10988 #ifndef ___ISpeechVoiceEvents_FWD_DEFINED__
  10989 #define ___ISpeechVoiceEvents_FWD_DEFINED__
  10990 typedef interface _ISpeechVoiceEvents _ISpeechVoiceEvents;
  10991 #ifdef __cplusplus
  10992 interface _ISpeechVoiceEvents;
  10993 #endif /* __cplusplus */
  10994 #endif
  10995 
  10996 #ifndef __ISpeechRecognizer_FWD_DEFINED__
  10997 #define __ISpeechRecognizer_FWD_DEFINED__
  10998 typedef interface ISpeechRecognizer ISpeechRecognizer;
  10999 #ifdef __cplusplus
  11000 interface ISpeechRecognizer;
  11001 #endif /* __cplusplus */
  11002 #endif
  11003 
  11004 #ifndef __ISpeechRecognizerStatus_FWD_DEFINED__
  11005 #define __ISpeechRecognizerStatus_FWD_DEFINED__
  11006 typedef interface ISpeechRecognizerStatus ISpeechRecognizerStatus;
  11007 #ifdef __cplusplus
  11008 interface ISpeechRecognizerStatus;
  11009 #endif /* __cplusplus */
  11010 #endif
  11011 
  11012 #ifndef __ISpeechRecoContext_FWD_DEFINED__
  11013 #define __ISpeechRecoContext_FWD_DEFINED__
  11014 typedef interface ISpeechRecoContext ISpeechRecoContext;
  11015 #ifdef __cplusplus
  11016 interface ISpeechRecoContext;
  11017 #endif /* __cplusplus */
  11018 #endif
  11019 
  11020 #ifndef __ISpeechRecoGrammar_FWD_DEFINED__
  11021 #define __ISpeechRecoGrammar_FWD_DEFINED__
  11022 typedef interface ISpeechRecoGrammar ISpeechRecoGrammar;
  11023 #ifdef __cplusplus
  11024 interface ISpeechRecoGrammar;
  11025 #endif /* __cplusplus */
  11026 #endif
  11027 
  11028 #ifndef ___ISpeechRecoContextEvents_FWD_DEFINED__
  11029 #define ___ISpeechRecoContextEvents_FWD_DEFINED__
  11030 typedef interface _ISpeechRecoContextEvents _ISpeechRecoContextEvents;
  11031 #ifdef __cplusplus
  11032 interface _ISpeechRecoContextEvents;
  11033 #endif /* __cplusplus */
  11034 #endif
  11035 
  11036 #ifndef __ISpeechGrammarRule_FWD_DEFINED__
  11037 #define __ISpeechGrammarRule_FWD_DEFINED__
  11038 typedef interface ISpeechGrammarRule ISpeechGrammarRule;
  11039 #ifdef __cplusplus
  11040 interface ISpeechGrammarRule;
  11041 #endif /* __cplusplus */
  11042 #endif
  11043 
  11044 #ifndef __ISpeechGrammarRules_FWD_DEFINED__
  11045 #define __ISpeechGrammarRules_FWD_DEFINED__
  11046 typedef interface ISpeechGrammarRules ISpeechGrammarRules;
  11047 #ifdef __cplusplus
  11048 interface ISpeechGrammarRules;
  11049 #endif /* __cplusplus */
  11050 #endif
  11051 
  11052 #ifndef __ISpeechGrammarRuleState_FWD_DEFINED__
  11053 #define __ISpeechGrammarRuleState_FWD_DEFINED__
  11054 typedef interface ISpeechGrammarRuleState ISpeechGrammarRuleState;
  11055 #ifdef __cplusplus
  11056 interface ISpeechGrammarRuleState;
  11057 #endif /* __cplusplus */
  11058 #endif
  11059 
  11060 #ifndef __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
  11061 #define __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
  11062 typedef interface ISpeechGrammarRuleStateTransition ISpeechGrammarRuleStateTransition;
  11063 #ifdef __cplusplus
  11064 interface ISpeechGrammarRuleStateTransition;
  11065 #endif /* __cplusplus */
  11066 #endif
  11067 
  11068 #ifndef __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
  11069 #define __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
  11070 typedef interface ISpeechGrammarRuleStateTransitions ISpeechGrammarRuleStateTransitions;
  11071 #ifdef __cplusplus
  11072 interface ISpeechGrammarRuleStateTransitions;
  11073 #endif /* __cplusplus */
  11074 #endif
  11075 
  11076 #ifndef __ISpeechTextSelectionInformation_FWD_DEFINED__
  11077 #define __ISpeechTextSelectionInformation_FWD_DEFINED__
  11078 typedef interface ISpeechTextSelectionInformation ISpeechTextSelectionInformation;
  11079 #ifdef __cplusplus
  11080 interface ISpeechTextSelectionInformation;
  11081 #endif /* __cplusplus */
  11082 #endif
  11083 
  11084 #ifndef __ISpeechRecoResult_FWD_DEFINED__
  11085 #define __ISpeechRecoResult_FWD_DEFINED__
  11086 typedef interface ISpeechRecoResult ISpeechRecoResult;
  11087 #ifdef __cplusplus
  11088 interface ISpeechRecoResult;
  11089 #endif /* __cplusplus */
  11090 #endif
  11091 
  11092 #ifndef __ISpeechRecoResult2_FWD_DEFINED__
  11093 #define __ISpeechRecoResult2_FWD_DEFINED__
  11094 typedef interface ISpeechRecoResult2 ISpeechRecoResult2;
  11095 #ifdef __cplusplus
  11096 interface ISpeechRecoResult2;
  11097 #endif /* __cplusplus */
  11098 #endif
  11099 
  11100 #ifndef __ISpeechRecoResultTimes_FWD_DEFINED__
  11101 #define __ISpeechRecoResultTimes_FWD_DEFINED__
  11102 typedef interface ISpeechRecoResultTimes ISpeechRecoResultTimes;
  11103 #ifdef __cplusplus
  11104 interface ISpeechRecoResultTimes;
  11105 #endif /* __cplusplus */
  11106 #endif
  11107 
  11108 #ifndef __ISpeechPhraseAlternate_FWD_DEFINED__
  11109 #define __ISpeechPhraseAlternate_FWD_DEFINED__
  11110 typedef interface ISpeechPhraseAlternate ISpeechPhraseAlternate;
  11111 #ifdef __cplusplus
  11112 interface ISpeechPhraseAlternate;
  11113 #endif /* __cplusplus */
  11114 #endif
  11115 
  11116 #ifndef __ISpeechPhraseAlternates_FWD_DEFINED__
  11117 #define __ISpeechPhraseAlternates_FWD_DEFINED__
  11118 typedef interface ISpeechPhraseAlternates ISpeechPhraseAlternates;
  11119 #ifdef __cplusplus
  11120 interface ISpeechPhraseAlternates;
  11121 #endif /* __cplusplus */
  11122 #endif
  11123 
  11124 #ifndef __ISpeechPhraseInfo_FWD_DEFINED__
  11125 #define __ISpeechPhraseInfo_FWD_DEFINED__
  11126 typedef interface ISpeechPhraseInfo ISpeechPhraseInfo;
  11127 #ifdef __cplusplus
  11128 interface ISpeechPhraseInfo;
  11129 #endif /* __cplusplus */
  11130 #endif
  11131 
  11132 #ifndef __ISpeechPhraseElement_FWD_DEFINED__
  11133 #define __ISpeechPhraseElement_FWD_DEFINED__
  11134 typedef interface ISpeechPhraseElement ISpeechPhraseElement;
  11135 #ifdef __cplusplus
  11136 interface ISpeechPhraseElement;
  11137 #endif /* __cplusplus */
  11138 #endif
  11139 
  11140 #ifndef __ISpeechPhraseElements_FWD_DEFINED__
  11141 #define __ISpeechPhraseElements_FWD_DEFINED__
  11142 typedef interface ISpeechPhraseElements ISpeechPhraseElements;
  11143 #ifdef __cplusplus
  11144 interface ISpeechPhraseElements;
  11145 #endif /* __cplusplus */
  11146 #endif
  11147 
  11148 #ifndef __ISpeechPhraseReplacement_FWD_DEFINED__
  11149 #define __ISpeechPhraseReplacement_FWD_DEFINED__
  11150 typedef interface ISpeechPhraseReplacement ISpeechPhraseReplacement;
  11151 #ifdef __cplusplus
  11152 interface ISpeechPhraseReplacement;
  11153 #endif /* __cplusplus */
  11154 #endif
  11155 
  11156 #ifndef __ISpeechPhraseReplacements_FWD_DEFINED__
  11157 #define __ISpeechPhraseReplacements_FWD_DEFINED__
  11158 typedef interface ISpeechPhraseReplacements ISpeechPhraseReplacements;
  11159 #ifdef __cplusplus
  11160 interface ISpeechPhraseReplacements;
  11161 #endif /* __cplusplus */
  11162 #endif
  11163 
  11164 #ifndef __ISpeechPhraseProperty_FWD_DEFINED__
  11165 #define __ISpeechPhraseProperty_FWD_DEFINED__
  11166 typedef interface ISpeechPhraseProperty ISpeechPhraseProperty;
  11167 #ifdef __cplusplus
  11168 interface ISpeechPhraseProperty;
  11169 #endif /* __cplusplus */
  11170 #endif
  11171 
  11172 #ifndef __ISpeechPhraseProperties_FWD_DEFINED__
  11173 #define __ISpeechPhraseProperties_FWD_DEFINED__
  11174 typedef interface ISpeechPhraseProperties ISpeechPhraseProperties;
  11175 #ifdef __cplusplus
  11176 interface ISpeechPhraseProperties;
  11177 #endif /* __cplusplus */
  11178 #endif
  11179 
  11180 #ifndef __ISpeechPhraseRule_FWD_DEFINED__
  11181 #define __ISpeechPhraseRule_FWD_DEFINED__
  11182 typedef interface ISpeechPhraseRule ISpeechPhraseRule;
  11183 #ifdef __cplusplus
  11184 interface ISpeechPhraseRule;
  11185 #endif /* __cplusplus */
  11186 #endif
  11187 
  11188 #ifndef __ISpeechPhraseRules_FWD_DEFINED__
  11189 #define __ISpeechPhraseRules_FWD_DEFINED__
  11190 typedef interface ISpeechPhraseRules ISpeechPhraseRules;
  11191 #ifdef __cplusplus
  11192 interface ISpeechPhraseRules;
  11193 #endif /* __cplusplus */
  11194 #endif
  11195 
  11196 #ifndef __ISpeechLexicon_FWD_DEFINED__
  11197 #define __ISpeechLexicon_FWD_DEFINED__
  11198 typedef interface ISpeechLexicon ISpeechLexicon;
  11199 #ifdef __cplusplus
  11200 interface ISpeechLexicon;
  11201 #endif /* __cplusplus */
  11202 #endif
  11203 
  11204 #ifndef __ISpeechLexiconWords_FWD_DEFINED__
  11205 #define __ISpeechLexiconWords_FWD_DEFINED__
  11206 typedef interface ISpeechLexiconWords ISpeechLexiconWords;
  11207 #ifdef __cplusplus
  11208 interface ISpeechLexiconWords;
  11209 #endif /* __cplusplus */
  11210 #endif
  11211 
  11212 #ifndef __ISpeechLexiconWord_FWD_DEFINED__
  11213 #define __ISpeechLexiconWord_FWD_DEFINED__
  11214 typedef interface ISpeechLexiconWord ISpeechLexiconWord;
  11215 #ifdef __cplusplus
  11216 interface ISpeechLexiconWord;
  11217 #endif /* __cplusplus */
  11218 #endif
  11219 
  11220 #ifndef __ISpeechLexiconPronunciations_FWD_DEFINED__
  11221 #define __ISpeechLexiconPronunciations_FWD_DEFINED__
  11222 typedef interface ISpeechLexiconPronunciations ISpeechLexiconPronunciations;
  11223 #ifdef __cplusplus
  11224 interface ISpeechLexiconPronunciations;
  11225 #endif /* __cplusplus */
  11226 #endif
  11227 
  11228 #ifndef __ISpeechLexiconPronunciation_FWD_DEFINED__
  11229 #define __ISpeechLexiconPronunciation_FWD_DEFINED__
  11230 typedef interface ISpeechLexiconPronunciation ISpeechLexiconPronunciation;
  11231 #ifdef __cplusplus
  11232 interface ISpeechLexiconPronunciation;
  11233 #endif /* __cplusplus */
  11234 #endif
  11235 
  11236 typedef LONG SpeechLanguageId;
  11237 #define __SpeechStringConstants_MODULE_DEFINED__
  11238 #ifndef __SpeechStringConstants_MODULE_DEFINED__
  11239 #define __SpeechStringConstants_MODULE_DEFINED__
  11240 #define SpeechRegistryUserRoot (L"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech")
  11241 
  11242 #define SpeechRegistryLocalMachineRoot (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech")
  11243 
  11244 #define SpeechCategoryAudioOut (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\AudioOutput")
  11245 
  11246 #define SpeechCategoryAudioIn (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\AudioInput")
  11247 
  11248 #define SpeechCategoryVoices (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices")
  11249 
  11250 #define SpeechCategoryRecognizers (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Recognizers")
  11251 
  11252 #define SpeechCategoryAppLexicons (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\AppLexicons")
  11253 
  11254 #define SpeechCategoryPhoneConverters (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\PhoneConverters")
  11255 
  11256 #define SpeechCategoryRecoProfiles (L"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech\RecoProfiles")
  11257 
  11258 #define SpeechTokenIdUserLexicon (L"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech\CurrentUserLexicon")
  11259 
  11260 #define SpeechTokenValueCLSID (L"CLSID")
  11261 
  11262 #define SpeechTokenKeyFiles (L"Files")
  11263 
  11264 #define SpeechTokenKeyUI (L"UI")
  11265 
  11266 #define SpeechTokenKeyAttributes (L"Attributes")
  11267 
  11268 #define SpeechVoiceCategoryTTSRate (L"DefaultTTSRate")
  11269 
  11270 #define SpeechPropertyResourceUsage (L"ResourceUsage")
  11271 
  11272 #define SpeechPropertyHighConfidenceThreshold (L"HighConfidenceThreshold")
  11273 
  11274 #define SpeechPropertyNormalConfidenceThreshold (L"NormalConfidenceThreshold")
  11275 
  11276 #define SpeechPropertyLowConfidenceThreshold (L"LowConfidenceThreshold")
  11277 
  11278 #define SpeechPropertyResponseSpeed (L"ResponseSpeed")
  11279 
  11280 #define SpeechPropertyComplexResponseSpeed (L"ComplexResponseSpeed")
  11281 
  11282 #define SpeechPropertyAdaptationOn (L"AdaptationOn")
  11283 
  11284 #define SpeechDictationTopicSpelling (L"Spelling")
  11285 
  11286 #define SpeechGrammarTagWildcard (L"...")
  11287 
  11288 #define SpeechGrammarTagDictation (L"*")
  11289 
  11290 #define SpeechGrammarTagUnlimitedDictation (L"*+")
  11291 
  11292 #define SpeechEngineProperties (L"EngineProperties")
  11293 
  11294 #define SpeechAddRemoveWord (L"AddRemoveWord")
  11295 
  11296 #define SpeechUserTraining (L"UserTraining")
  11297 
  11298 #define SpeechMicTraining (L"MicTraining")
  11299 
  11300 #define SpeechRecoProfileProperties (L"RecoProfileProperties")
  11301 
  11302 #define SpeechAudioProperties (L"AudioProperties")
  11303 
  11304 #define SpeechAudioVolume (L"AudioVolume")
  11305 
  11306 #define SpeechVoiceSkipTypeSentence (L"Sentence")
  11307 
  11308 #define SpeechAudioFormatGUIDWave (L"{C31ADBAE-527F-4ff5-A230-F62BB61FF70C}")
  11309 
  11310 #define SpeechAudioFormatGUIDText (L"{7CEEF9F9-3D13-11d2-9EE7-00C04F797396}")
  11311 
  11312 #endif /* __SpeechStringConstants_MODULE_DEFINED__ */
  11313 #ifndef __SpeechConstants_MODULE_DEFINED__
  11314 #define __SpeechConstants_MODULE_DEFINED__
  11315 #define Speech_Default_Weight (DEFAULT_WEIGHT)
  11316 
  11317 #define Speech_Max_Word_Length (SP_MAX_WORD_LENGTH)
  11318 
  11319 #define Speech_Max_Pron_Length (SP_MAX_PRON_LENGTH)
  11320 
  11321 #define Speech_StreamPos_Asap (SP_STREAMPOS_ASAP)
  11322 
  11323 #define Speech_StreamPos_RealTime (SP_STREAMPOS_REALTIME)
  11324 
  11325 #define SpeechAllElements (SPPR_ALL_ELEMENTS)
  11326 
  11327 #endif /* __SpeechConstants_MODULE_DEFINED__ */
  11328 typedef enum DISPID_SpeechDataKey {
  11329     DISPID_SDKSetBinaryValue = 1,
  11330     DISPID_SDKGetBinaryValue = 2,
  11331     DISPID_SDKSetStringValue = 3,
  11332     DISPID_SDKGetStringValue = 4,
  11333     DISPID_SDKSetLongValue = 5,
  11334     DISPID_SDKGetlongValue = 6,
  11335     DISPID_SDKOpenKey = 7,
  11336     DISPID_SDKCreateKey = 8,
  11337     DISPID_SDKDeleteKey = 9,
  11338     DISPID_SDKDeleteValue = 10,
  11339     DISPID_SDKEnumKeys = 11,
  11340     DISPID_SDKEnumValues = 12
  11341 } DISPID_SpeechDataKey;
  11342 typedef enum DISPID_SpeechObjectToken {
  11343     DISPID_SOTId = 1,
  11344     DISPID_SOTDataKey = 2,
  11345     DISPID_SOTCategory = 3,
  11346     DISPID_SOTGetDescription = 4,
  11347     DISPID_SOTSetId = 5,
  11348     DISPID_SOTGetAttribute = 6,
  11349     DISPID_SOTCreateInstance = 7,
  11350     DISPID_SOTRemove = 8,
  11351     DISPID_SOTGetStorageFileName = 9,
  11352     DISPID_SOTRemoveStorageFileName = 10,
  11353     DISPID_SOTIsUISupported = 11,
  11354     DISPID_SOTDisplayUI = 12,
  11355     DISPID_SOTMatchesAttributes = 13
  11356 } DISPID_SpeechObjectToken;
  11357 typedef enum SpeechDataKeyLocation {
  11358     SDKLDefaultLocation = SPDKL_DefaultLocation,
  11359     SDKLCurrentUser = SPDKL_CurrentUser,
  11360     SDKLLocalMachine = SPDKL_LocalMachine,
  11361     SDKLCurrentConfig = SPDKL_CurrentConfig
  11362 } SpeechDataKeyLocation;
  11363 typedef enum SpeechTokenContext {
  11364     STCInprocServer = CLSCTX_INPROC_SERVER,
  11365     STCInprocHandler = CLSCTX_INPROC_HANDLER,
  11366     STCLocalServer = CLSCTX_LOCAL_SERVER,
  11367     STCRemoteServer = CLSCTX_REMOTE_SERVER,
  11368     STCAll = ((CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER) | CLSCTX_LOCAL_SERVER) | CLSCTX_REMOTE_SERVER
  11369 } SpeechTokenContext;
  11370 typedef enum SpeechTokenShellFolder {
  11371     STSF_AppData = 0x1a,
  11372     STSF_LocalAppData = 0x1c,
  11373     STSF_CommonAppData = 0x23,
  11374     STSF_FlagCreate = 0x8000
  11375 } SpeechTokenShellFolder;
  11376 typedef enum DISPID_SpeechObjectTokens {
  11377     DISPID_SOTsCount = 1,
  11378     DISPID_SOTsItem = DISPID_VALUE,
  11379     DISPID_SOTs_NewEnum = DISPID_NEWENUM
  11380 } DISPID_SpeechObjectTokens;
  11381 typedef enum DISPID_SpeechObjectTokenCategory {
  11382     DISPID_SOTCId = 1,
  11383     DISPID_SOTCDefault = 2,
  11384     DISPID_SOTCSetId = 3,
  11385     DISPID_SOTCGetDataKey = 4,
  11386     DISPID_SOTCEnumerateTokens = 5
  11387 } DISPID_SpeechObjectTokenCategory;
  11388 /*****************************************************************************
  11389  * ISpeechDataKey interface
  11390  */
  11391 #ifndef __ISpeechDataKey_INTERFACE_DEFINED__
  11392 #define __ISpeechDataKey_INTERFACE_DEFINED__
  11393 
  11394 DEFINE_GUID(IID_ISpeechDataKey, 0xce17c09b, 0x4efa, 0x44d5, 0xa4,0xc9, 0x59,0xd9,0x58,0x5a,0xb0,0xcd);
  11395 #if defined(__cplusplus) && !defined(CINTERFACE)
  11396 MIDL_INTERFACE("ce17c09b-4efa-44d5-a4c9-59d9585ab0cd")
  11397 ISpeechDataKey : public IDispatch
  11398 {
  11399     virtual HRESULT STDMETHODCALLTYPE SetBinaryValue(
  11400         const BSTR ValueName,
  11401         VARIANT Value) = 0;
  11402 
  11403     virtual HRESULT STDMETHODCALLTYPE GetBinaryValue(
  11404         const BSTR ValueName,
  11405         VARIANT *Value) = 0;
  11406 
  11407     virtual HRESULT STDMETHODCALLTYPE SetStringValue(
  11408         const BSTR ValueName,
  11409         const BSTR Value) = 0;
  11410 
  11411     virtual HRESULT STDMETHODCALLTYPE GetStringValue(
  11412         const BSTR ValueName,
  11413         BSTR *Value) = 0;
  11414 
  11415     virtual HRESULT STDMETHODCALLTYPE SetLongValue(
  11416         const BSTR ValueName,
  11417         LONG Value) = 0;
  11418 
  11419     virtual HRESULT STDMETHODCALLTYPE GetLongValue(
  11420         const BSTR ValueName,
  11421         LONG *Value) = 0;
  11422 
  11423     virtual HRESULT STDMETHODCALLTYPE OpenKey(
  11424         const BSTR SubKeyName,
  11425         ISpeechDataKey **SubKey) = 0;
  11426 
  11427     virtual HRESULT STDMETHODCALLTYPE CreateKey(
  11428         const BSTR SubKeyName,
  11429         ISpeechDataKey **SubKey) = 0;
  11430 
  11431     virtual HRESULT STDMETHODCALLTYPE DeleteKey(
  11432         const BSTR SubKeyName) = 0;
  11433 
  11434     virtual HRESULT STDMETHODCALLTYPE DeleteValue(
  11435         const BSTR ValueName) = 0;
  11436 
  11437     virtual HRESULT STDMETHODCALLTYPE EnumKeys(
  11438         LONG Index,
  11439         BSTR *SubKeyName) = 0;
  11440 
  11441     virtual HRESULT STDMETHODCALLTYPE EnumValues(
  11442         LONG Index,
  11443         BSTR *ValueName) = 0;
  11444 
  11445 };
  11446 #ifdef __CRT_UUID_DECL
  11447 __CRT_UUID_DECL(ISpeechDataKey, 0xce17c09b, 0x4efa, 0x44d5, 0xa4,0xc9, 0x59,0xd9,0x58,0x5a,0xb0,0xcd)
  11448 #endif
  11449 #else
  11450 typedef struct ISpeechDataKeyVtbl {
  11451     BEGIN_INTERFACE
  11452 
  11453     /*** IUnknown methods ***/
  11454     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11455         ISpeechDataKey *This,
  11456         REFIID riid,
  11457         void **ppvObject);
  11458 
  11459     ULONG (STDMETHODCALLTYPE *AddRef)(
  11460         ISpeechDataKey *This);
  11461 
  11462     ULONG (STDMETHODCALLTYPE *Release)(
  11463         ISpeechDataKey *This);
  11464 
  11465     /*** IDispatch methods ***/
  11466     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  11467         ISpeechDataKey *This,
  11468         UINT *pctinfo);
  11469 
  11470     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  11471         ISpeechDataKey *This,
  11472         UINT iTInfo,
  11473         LCID lcid,
  11474         ITypeInfo **ppTInfo);
  11475 
  11476     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  11477         ISpeechDataKey *This,
  11478         REFIID riid,
  11479         LPOLESTR *rgszNames,
  11480         UINT cNames,
  11481         LCID lcid,
  11482         DISPID *rgDispId);
  11483 
  11484     HRESULT (STDMETHODCALLTYPE *Invoke)(
  11485         ISpeechDataKey *This,
  11486         DISPID dispIdMember,
  11487         REFIID riid,
  11488         LCID lcid,
  11489         WORD wFlags,
  11490         DISPPARAMS *pDispParams,
  11491         VARIANT *pVarResult,
  11492         EXCEPINFO *pExcepInfo,
  11493         UINT *puArgErr);
  11494 
  11495     /*** ISpeechDataKey methods ***/
  11496     HRESULT (STDMETHODCALLTYPE *SetBinaryValue)(
  11497         ISpeechDataKey *This,
  11498         const BSTR ValueName,
  11499         VARIANT Value);
  11500 
  11501     HRESULT (STDMETHODCALLTYPE *GetBinaryValue)(
  11502         ISpeechDataKey *This,
  11503         const BSTR ValueName,
  11504         VARIANT *Value);
  11505 
  11506     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
  11507         ISpeechDataKey *This,
  11508         const BSTR ValueName,
  11509         const BSTR Value);
  11510 
  11511     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
  11512         ISpeechDataKey *This,
  11513         const BSTR ValueName,
  11514         BSTR *Value);
  11515 
  11516     HRESULT (STDMETHODCALLTYPE *SetLongValue)(
  11517         ISpeechDataKey *This,
  11518         const BSTR ValueName,
  11519         LONG Value);
  11520 
  11521     HRESULT (STDMETHODCALLTYPE *GetLongValue)(
  11522         ISpeechDataKey *This,
  11523         const BSTR ValueName,
  11524         LONG *Value);
  11525 
  11526     HRESULT (STDMETHODCALLTYPE *OpenKey)(
  11527         ISpeechDataKey *This,
  11528         const BSTR SubKeyName,
  11529         ISpeechDataKey **SubKey);
  11530 
  11531     HRESULT (STDMETHODCALLTYPE *CreateKey)(
  11532         ISpeechDataKey *This,
  11533         const BSTR SubKeyName,
  11534         ISpeechDataKey **SubKey);
  11535 
  11536     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
  11537         ISpeechDataKey *This,
  11538         const BSTR SubKeyName);
  11539 
  11540     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
  11541         ISpeechDataKey *This,
  11542         const BSTR ValueName);
  11543 
  11544     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
  11545         ISpeechDataKey *This,
  11546         LONG Index,
  11547         BSTR *SubKeyName);
  11548 
  11549     HRESULT (STDMETHODCALLTYPE *EnumValues)(
  11550         ISpeechDataKey *This,
  11551         LONG Index,
  11552         BSTR *ValueName);
  11553 
  11554     END_INTERFACE
  11555 } ISpeechDataKeyVtbl;
  11556 
  11557 interface ISpeechDataKey {
  11558     CONST_VTBL ISpeechDataKeyVtbl* lpVtbl;
  11559 };
  11560 
  11561 #ifdef COBJMACROS
  11562 #ifndef WIDL_C_INLINE_WRAPPERS
  11563 /*** IUnknown methods ***/
  11564 #define ISpeechDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11565 #define ISpeechDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
  11566 #define ISpeechDataKey_Release(This) (This)->lpVtbl->Release(This)
  11567 /*** IDispatch methods ***/
  11568 #define ISpeechDataKey_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  11569 #define ISpeechDataKey_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  11570 #define ISpeechDataKey_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  11571 #define ISpeechDataKey_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  11572 /*** ISpeechDataKey methods ***/
  11573 #define ISpeechDataKey_SetBinaryValue(This,ValueName,Value) (This)->lpVtbl->SetBinaryValue(This,ValueName,Value)
  11574 #define ISpeechDataKey_GetBinaryValue(This,ValueName,Value) (This)->lpVtbl->GetBinaryValue(This,ValueName,Value)
  11575 #define ISpeechDataKey_SetStringValue(This,ValueName,Value) (This)->lpVtbl->SetStringValue(This,ValueName,Value)
  11576 #define ISpeechDataKey_GetStringValue(This,ValueName,Value) (This)->lpVtbl->GetStringValue(This,ValueName,Value)
  11577 #define ISpeechDataKey_SetLongValue(This,ValueName,Value) (This)->lpVtbl->SetLongValue(This,ValueName,Value)
  11578 #define ISpeechDataKey_GetLongValue(This,ValueName,Value) (This)->lpVtbl->GetLongValue(This,ValueName,Value)
  11579 #define ISpeechDataKey_OpenKey(This,SubKeyName,SubKey) (This)->lpVtbl->OpenKey(This,SubKeyName,SubKey)
  11580 #define ISpeechDataKey_CreateKey(This,SubKeyName,SubKey) (This)->lpVtbl->CreateKey(This,SubKeyName,SubKey)
  11581 #define ISpeechDataKey_DeleteKey(This,SubKeyName) (This)->lpVtbl->DeleteKey(This,SubKeyName)
  11582 #define ISpeechDataKey_DeleteValue(This,ValueName) (This)->lpVtbl->DeleteValue(This,ValueName)
  11583 #define ISpeechDataKey_EnumKeys(This,Index,SubKeyName) (This)->lpVtbl->EnumKeys(This,Index,SubKeyName)
  11584 #define ISpeechDataKey_EnumValues(This,Index,ValueName) (This)->lpVtbl->EnumValues(This,Index,ValueName)
  11585 #else
  11586 /*** IUnknown methods ***/
  11587 static inline HRESULT ISpeechDataKey_QueryInterface(ISpeechDataKey* This,REFIID riid,void **ppvObject) {
  11588     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11589 }
  11590 static inline ULONG ISpeechDataKey_AddRef(ISpeechDataKey* This) {
  11591     return This->lpVtbl->AddRef(This);
  11592 }
  11593 static inline ULONG ISpeechDataKey_Release(ISpeechDataKey* This) {
  11594     return This->lpVtbl->Release(This);
  11595 }
  11596 /*** IDispatch methods ***/
  11597 static inline HRESULT ISpeechDataKey_GetTypeInfoCount(ISpeechDataKey* This,UINT *pctinfo) {
  11598     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  11599 }
  11600 static inline HRESULT ISpeechDataKey_GetTypeInfo(ISpeechDataKey* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  11601     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  11602 }
  11603 static inline HRESULT ISpeechDataKey_GetIDsOfNames(ISpeechDataKey* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  11604     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  11605 }
  11606 static inline HRESULT ISpeechDataKey_Invoke(ISpeechDataKey* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  11607     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  11608 }
  11609 /*** ISpeechDataKey methods ***/
  11610 static inline HRESULT ISpeechDataKey_SetBinaryValue(ISpeechDataKey* This,const BSTR ValueName,VARIANT Value) {
  11611     return This->lpVtbl->SetBinaryValue(This,ValueName,Value);
  11612 }
  11613 static inline HRESULT ISpeechDataKey_GetBinaryValue(ISpeechDataKey* This,const BSTR ValueName,VARIANT *Value) {
  11614     return This->lpVtbl->GetBinaryValue(This,ValueName,Value);
  11615 }
  11616 static inline HRESULT ISpeechDataKey_SetStringValue(ISpeechDataKey* This,const BSTR ValueName,const BSTR Value) {
  11617     return This->lpVtbl->SetStringValue(This,ValueName,Value);
  11618 }
  11619 static inline HRESULT ISpeechDataKey_GetStringValue(ISpeechDataKey* This,const BSTR ValueName,BSTR *Value) {
  11620     return This->lpVtbl->GetStringValue(This,ValueName,Value);
  11621 }
  11622 static inline HRESULT ISpeechDataKey_SetLongValue(ISpeechDataKey* This,const BSTR ValueName,LONG Value) {
  11623     return This->lpVtbl->SetLongValue(This,ValueName,Value);
  11624 }
  11625 static inline HRESULT ISpeechDataKey_GetLongValue(ISpeechDataKey* This,const BSTR ValueName,LONG *Value) {
  11626     return This->lpVtbl->GetLongValue(This,ValueName,Value);
  11627 }
  11628 static inline HRESULT ISpeechDataKey_OpenKey(ISpeechDataKey* This,const BSTR SubKeyName,ISpeechDataKey **SubKey) {
  11629     return This->lpVtbl->OpenKey(This,SubKeyName,SubKey);
  11630 }
  11631 static inline HRESULT ISpeechDataKey_CreateKey(ISpeechDataKey* This,const BSTR SubKeyName,ISpeechDataKey **SubKey) {
  11632     return This->lpVtbl->CreateKey(This,SubKeyName,SubKey);
  11633 }
  11634 static inline HRESULT ISpeechDataKey_DeleteKey(ISpeechDataKey* This,const BSTR SubKeyName) {
  11635     return This->lpVtbl->DeleteKey(This,SubKeyName);
  11636 }
  11637 static inline HRESULT ISpeechDataKey_DeleteValue(ISpeechDataKey* This,const BSTR ValueName) {
  11638     return This->lpVtbl->DeleteValue(This,ValueName);
  11639 }
  11640 static inline HRESULT ISpeechDataKey_EnumKeys(ISpeechDataKey* This,LONG Index,BSTR *SubKeyName) {
  11641     return This->lpVtbl->EnumKeys(This,Index,SubKeyName);
  11642 }
  11643 static inline HRESULT ISpeechDataKey_EnumValues(ISpeechDataKey* This,LONG Index,BSTR *ValueName) {
  11644     return This->lpVtbl->EnumValues(This,Index,ValueName);
  11645 }
  11646 #endif
  11647 #endif
  11648 
  11649 #endif
  11650 
  11651 
  11652 #endif  /* __ISpeechDataKey_INTERFACE_DEFINED__ */
  11653 
  11654 /*****************************************************************************
  11655  * ISpeechObjectToken interface
  11656  */
  11657 #ifndef __ISpeechObjectToken_INTERFACE_DEFINED__
  11658 #define __ISpeechObjectToken_INTERFACE_DEFINED__
  11659 
  11660 DEFINE_GUID(IID_ISpeechObjectToken, 0xc74a3adc, 0xb727, 0x4500, 0xa8,0x4a, 0xb5,0x26,0x72,0x1c,0x8b,0x8c);
  11661 #if defined(__cplusplus) && !defined(CINTERFACE)
  11662 MIDL_INTERFACE("c74a3adc-b727-4500-a84a-b526721c8b8c")
  11663 ISpeechObjectToken : public IDispatch
  11664 {
  11665     virtual HRESULT STDMETHODCALLTYPE get_Id(
  11666         BSTR *ObjectId) = 0;
  11667 
  11668     virtual HRESULT STDMETHODCALLTYPE get_DataKey(
  11669         ISpeechDataKey **DataKey) = 0;
  11670 
  11671     virtual HRESULT STDMETHODCALLTYPE get_Category(
  11672         ISpeechObjectTokenCategory **Category) = 0;
  11673 
  11674     virtual HRESULT STDMETHODCALLTYPE GetDescription(
  11675         LONG Locale,
  11676         BSTR *Description) = 0;
  11677 
  11678     virtual HRESULT STDMETHODCALLTYPE SetId(
  11679         BSTR Id,
  11680         BSTR CategoryID = L"",
  11681         VARIANT_BOOL CreateIfNotExist = 0) = 0;
  11682 
  11683     virtual HRESULT STDMETHODCALLTYPE GetAttribute(
  11684         BSTR AttributeName,
  11685         BSTR *AttributeValue) = 0;
  11686 
  11687     virtual HRESULT STDMETHODCALLTYPE CreateInstance(
  11688         IUnknown *pUnkOuter,
  11689         SpeechTokenContext ClsContext,
  11690         IUnknown **Object) = 0;
  11691 
  11692     virtual HRESULT STDMETHODCALLTYPE Remove(
  11693         BSTR ObjectStorageCLSID) = 0;
  11694 
  11695     virtual HRESULT STDMETHODCALLTYPE GetStorageFileName(
  11696         BSTR ObjectStorageCLSID,
  11697         BSTR KeyName,
  11698         BSTR FileName,
  11699         SpeechTokenShellFolder Folder,
  11700         BSTR *FilePath) = 0;
  11701 
  11702     virtual HRESULT STDMETHODCALLTYPE RemoveStorageFileName(
  11703         BSTR ObjectStorageCLSID,
  11704         BSTR KeyName,
  11705         VARIANT_BOOL DeleteFile) = 0;
  11706 
  11707     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
  11708         const BSTR TypeOfUI,
  11709         const VARIANT *ExtraData,
  11710         IUnknown *Object,
  11711         VARIANT_BOOL *Supported) = 0;
  11712 
  11713     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
  11714         LONG hWnd,
  11715         BSTR Title,
  11716         const BSTR TypeOfUI,
  11717         const VARIANT *ExtraData = 0,
  11718         IUnknown *Object = 0) = 0;
  11719 
  11720     virtual HRESULT STDMETHODCALLTYPE MatchesAttributes(
  11721         BSTR Attributes,
  11722         VARIANT_BOOL *Matches) = 0;
  11723 
  11724 };
  11725 #ifdef __CRT_UUID_DECL
  11726 __CRT_UUID_DECL(ISpeechObjectToken, 0xc74a3adc, 0xb727, 0x4500, 0xa8,0x4a, 0xb5,0x26,0x72,0x1c,0x8b,0x8c)
  11727 #endif
  11728 #else
  11729 typedef struct ISpeechObjectTokenVtbl {
  11730     BEGIN_INTERFACE
  11731 
  11732     /*** IUnknown methods ***/
  11733     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11734         ISpeechObjectToken *This,
  11735         REFIID riid,
  11736         void **ppvObject);
  11737 
  11738     ULONG (STDMETHODCALLTYPE *AddRef)(
  11739         ISpeechObjectToken *This);
  11740 
  11741     ULONG (STDMETHODCALLTYPE *Release)(
  11742         ISpeechObjectToken *This);
  11743 
  11744     /*** IDispatch methods ***/
  11745     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  11746         ISpeechObjectToken *This,
  11747         UINT *pctinfo);
  11748 
  11749     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  11750         ISpeechObjectToken *This,
  11751         UINT iTInfo,
  11752         LCID lcid,
  11753         ITypeInfo **ppTInfo);
  11754 
  11755     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  11756         ISpeechObjectToken *This,
  11757         REFIID riid,
  11758         LPOLESTR *rgszNames,
  11759         UINT cNames,
  11760         LCID lcid,
  11761         DISPID *rgDispId);
  11762 
  11763     HRESULT (STDMETHODCALLTYPE *Invoke)(
  11764         ISpeechObjectToken *This,
  11765         DISPID dispIdMember,
  11766         REFIID riid,
  11767         LCID lcid,
  11768         WORD wFlags,
  11769         DISPPARAMS *pDispParams,
  11770         VARIANT *pVarResult,
  11771         EXCEPINFO *pExcepInfo,
  11772         UINT *puArgErr);
  11773 
  11774     /*** ISpeechObjectToken methods ***/
  11775     HRESULT (STDMETHODCALLTYPE *get_Id)(
  11776         ISpeechObjectToken *This,
  11777         BSTR *ObjectId);
  11778 
  11779     HRESULT (STDMETHODCALLTYPE *get_DataKey)(
  11780         ISpeechObjectToken *This,
  11781         ISpeechDataKey **DataKey);
  11782 
  11783     HRESULT (STDMETHODCALLTYPE *get_Category)(
  11784         ISpeechObjectToken *This,
  11785         ISpeechObjectTokenCategory **Category);
  11786 
  11787     HRESULT (STDMETHODCALLTYPE *GetDescription)(
  11788         ISpeechObjectToken *This,
  11789         LONG Locale,
  11790         BSTR *Description);
  11791 
  11792     HRESULT (STDMETHODCALLTYPE *SetId)(
  11793         ISpeechObjectToken *This,
  11794         BSTR Id,
  11795         BSTR CategoryID,
  11796         VARIANT_BOOL CreateIfNotExist);
  11797 
  11798     HRESULT (STDMETHODCALLTYPE *GetAttribute)(
  11799         ISpeechObjectToken *This,
  11800         BSTR AttributeName,
  11801         BSTR *AttributeValue);
  11802 
  11803     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
  11804         ISpeechObjectToken *This,
  11805         IUnknown *pUnkOuter,
  11806         SpeechTokenContext ClsContext,
  11807         IUnknown **Object);
  11808 
  11809     HRESULT (STDMETHODCALLTYPE *Remove)(
  11810         ISpeechObjectToken *This,
  11811         BSTR ObjectStorageCLSID);
  11812 
  11813     HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
  11814         ISpeechObjectToken *This,
  11815         BSTR ObjectStorageCLSID,
  11816         BSTR KeyName,
  11817         BSTR FileName,
  11818         SpeechTokenShellFolder Folder,
  11819         BSTR *FilePath);
  11820 
  11821     HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
  11822         ISpeechObjectToken *This,
  11823         BSTR ObjectStorageCLSID,
  11824         BSTR KeyName,
  11825         VARIANT_BOOL DeleteFile);
  11826 
  11827     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
  11828         ISpeechObjectToken *This,
  11829         const BSTR TypeOfUI,
  11830         const VARIANT *ExtraData,
  11831         IUnknown *Object,
  11832         VARIANT_BOOL *Supported);
  11833 
  11834     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
  11835         ISpeechObjectToken *This,
  11836         LONG hWnd,
  11837         BSTR Title,
  11838         const BSTR TypeOfUI,
  11839         const VARIANT *ExtraData,
  11840         IUnknown *Object);
  11841 
  11842     HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
  11843         ISpeechObjectToken *This,
  11844         BSTR Attributes,
  11845         VARIANT_BOOL *Matches);
  11846 
  11847     END_INTERFACE
  11848 } ISpeechObjectTokenVtbl;
  11849 
  11850 interface ISpeechObjectToken {
  11851     CONST_VTBL ISpeechObjectTokenVtbl* lpVtbl;
  11852 };
  11853 
  11854 #ifdef COBJMACROS
  11855 #ifndef WIDL_C_INLINE_WRAPPERS
  11856 /*** IUnknown methods ***/
  11857 #define ISpeechObjectToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11858 #define ISpeechObjectToken_AddRef(This) (This)->lpVtbl->AddRef(This)
  11859 #define ISpeechObjectToken_Release(This) (This)->lpVtbl->Release(This)
  11860 /*** IDispatch methods ***/
  11861 #define ISpeechObjectToken_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  11862 #define ISpeechObjectToken_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  11863 #define ISpeechObjectToken_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  11864 #define ISpeechObjectToken_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  11865 /*** ISpeechObjectToken methods ***/
  11866 #define ISpeechObjectToken_get_Id(This,ObjectId) (This)->lpVtbl->get_Id(This,ObjectId)
  11867 #define ISpeechObjectToken_get_DataKey(This,DataKey) (This)->lpVtbl->get_DataKey(This,DataKey)
  11868 #define ISpeechObjectToken_get_Category(This,Category) (This)->lpVtbl->get_Category(This,Category)
  11869 #define ISpeechObjectToken_GetDescription(This,Locale,Description) (This)->lpVtbl->GetDescription(This,Locale,Description)
  11870 #define ISpeechObjectToken_SetId(This,Id,CategoryID,CreateIfNotExist) (This)->lpVtbl->SetId(This,Id,CategoryID,CreateIfNotExist)
  11871 #define ISpeechObjectToken_GetAttribute(This,AttributeName,AttributeValue) (This)->lpVtbl->GetAttribute(This,AttributeName,AttributeValue)
  11872 #define ISpeechObjectToken_CreateInstance(This,pUnkOuter,ClsContext,Object) (This)->lpVtbl->CreateInstance(This,pUnkOuter,ClsContext,Object)
  11873 #define ISpeechObjectToken_Remove(This,ObjectStorageCLSID) (This)->lpVtbl->Remove(This,ObjectStorageCLSID)
  11874 #define ISpeechObjectToken_GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath) (This)->lpVtbl->GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath)
  11875 #define ISpeechObjectToken_RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile)
  11876 #define ISpeechObjectToken_IsUISupported(This,TypeOfUI,ExtraData,Object,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Object,Supported)
  11877 #define ISpeechObjectToken_DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object) (This)->lpVtbl->DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object)
  11878 #define ISpeechObjectToken_MatchesAttributes(This,Attributes,Matches) (This)->lpVtbl->MatchesAttributes(This,Attributes,Matches)
  11879 #else
  11880 /*** IUnknown methods ***/
  11881 static inline HRESULT ISpeechObjectToken_QueryInterface(ISpeechObjectToken* This,REFIID riid,void **ppvObject) {
  11882     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11883 }
  11884 static inline ULONG ISpeechObjectToken_AddRef(ISpeechObjectToken* This) {
  11885     return This->lpVtbl->AddRef(This);
  11886 }
  11887 static inline ULONG ISpeechObjectToken_Release(ISpeechObjectToken* This) {
  11888     return This->lpVtbl->Release(This);
  11889 }
  11890 /*** IDispatch methods ***/
  11891 static inline HRESULT ISpeechObjectToken_GetTypeInfoCount(ISpeechObjectToken* This,UINT *pctinfo) {
  11892     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  11893 }
  11894 static inline HRESULT ISpeechObjectToken_GetTypeInfo(ISpeechObjectToken* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  11895     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  11896 }
  11897 static inline HRESULT ISpeechObjectToken_GetIDsOfNames(ISpeechObjectToken* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  11898     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  11899 }
  11900 static inline HRESULT ISpeechObjectToken_Invoke(ISpeechObjectToken* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  11901     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  11902 }
  11903 /*** ISpeechObjectToken methods ***/
  11904 static inline HRESULT ISpeechObjectToken_get_Id(ISpeechObjectToken* This,BSTR *ObjectId) {
  11905     return This->lpVtbl->get_Id(This,ObjectId);
  11906 }
  11907 static inline HRESULT ISpeechObjectToken_get_DataKey(ISpeechObjectToken* This,ISpeechDataKey **DataKey) {
  11908     return This->lpVtbl->get_DataKey(This,DataKey);
  11909 }
  11910 static inline HRESULT ISpeechObjectToken_get_Category(ISpeechObjectToken* This,ISpeechObjectTokenCategory **Category) {
  11911     return This->lpVtbl->get_Category(This,Category);
  11912 }
  11913 static inline HRESULT ISpeechObjectToken_GetDescription(ISpeechObjectToken* This,LONG Locale,BSTR *Description) {
  11914     return This->lpVtbl->GetDescription(This,Locale,Description);
  11915 }
  11916 static inline HRESULT ISpeechObjectToken_SetId(ISpeechObjectToken* This,BSTR Id,BSTR CategoryID,VARIANT_BOOL CreateIfNotExist) {
  11917     return This->lpVtbl->SetId(This,Id,CategoryID,CreateIfNotExist);
  11918 }
  11919 static inline HRESULT ISpeechObjectToken_GetAttribute(ISpeechObjectToken* This,BSTR AttributeName,BSTR *AttributeValue) {
  11920     return This->lpVtbl->GetAttribute(This,AttributeName,AttributeValue);
  11921 }
  11922 static inline HRESULT ISpeechObjectToken_CreateInstance(ISpeechObjectToken* This,IUnknown *pUnkOuter,SpeechTokenContext ClsContext,IUnknown **Object) {
  11923     return This->lpVtbl->CreateInstance(This,pUnkOuter,ClsContext,Object);
  11924 }
  11925 static inline HRESULT ISpeechObjectToken_Remove(ISpeechObjectToken* This,BSTR ObjectStorageCLSID) {
  11926     return This->lpVtbl->Remove(This,ObjectStorageCLSID);
  11927 }
  11928 static inline HRESULT ISpeechObjectToken_GetStorageFileName(ISpeechObjectToken* This,BSTR ObjectStorageCLSID,BSTR KeyName,BSTR FileName,SpeechTokenShellFolder Folder,BSTR *FilePath) {
  11929     return This->lpVtbl->GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath);
  11930 }
  11931 static inline HRESULT ISpeechObjectToken_RemoveStorageFileName(ISpeechObjectToken* This,BSTR ObjectStorageCLSID,BSTR KeyName,VARIANT_BOOL DeleteFile) {
  11932     return This->lpVtbl->RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile);
  11933 }
  11934 static inline HRESULT ISpeechObjectToken_IsUISupported(ISpeechObjectToken* This,const BSTR TypeOfUI,const VARIANT *ExtraData,IUnknown *Object,VARIANT_BOOL *Supported) {
  11935     return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Object,Supported);
  11936 }
  11937 static inline HRESULT ISpeechObjectToken_DisplayUI(ISpeechObjectToken* This,LONG hWnd,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData,IUnknown *Object) {
  11938     return This->lpVtbl->DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object);
  11939 }
  11940 static inline HRESULT ISpeechObjectToken_MatchesAttributes(ISpeechObjectToken* This,BSTR Attributes,VARIANT_BOOL *Matches) {
  11941     return This->lpVtbl->MatchesAttributes(This,Attributes,Matches);
  11942 }
  11943 #endif
  11944 #endif
  11945 
  11946 #endif
  11947 
  11948 
  11949 #endif  /* __ISpeechObjectToken_INTERFACE_DEFINED__ */
  11950 
  11951 /*****************************************************************************
  11952  * ISpeechObjectTokens interface
  11953  */
  11954 #ifndef __ISpeechObjectTokens_INTERFACE_DEFINED__
  11955 #define __ISpeechObjectTokens_INTERFACE_DEFINED__
  11956 
  11957 DEFINE_GUID(IID_ISpeechObjectTokens, 0x9285b776, 0x2e7b, 0x4bc0, 0xb5,0x3e, 0x58,0x0e,0xb6,0xfa,0x96,0x7f);
  11958 #if defined(__cplusplus) && !defined(CINTERFACE)
  11959 MIDL_INTERFACE("9285b776-2e7b-4bc0-b53e-580eb6fa967f")
  11960 ISpeechObjectTokens : public IDispatch
  11961 {
  11962     virtual HRESULT STDMETHODCALLTYPE get_Count(
  11963         LONG *Count) = 0;
  11964 
  11965     virtual HRESULT STDMETHODCALLTYPE Item(
  11966         LONG Index,
  11967         ISpeechObjectToken **Token) = 0;
  11968 
  11969     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
  11970         IUnknown **ppEnumVARIANT) = 0;
  11971 
  11972 };
  11973 #ifdef __CRT_UUID_DECL
  11974 __CRT_UUID_DECL(ISpeechObjectTokens, 0x9285b776, 0x2e7b, 0x4bc0, 0xb5,0x3e, 0x58,0x0e,0xb6,0xfa,0x96,0x7f)
  11975 #endif
  11976 #else
  11977 typedef struct ISpeechObjectTokensVtbl {
  11978     BEGIN_INTERFACE
  11979 
  11980     /*** IUnknown methods ***/
  11981     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11982         ISpeechObjectTokens *This,
  11983         REFIID riid,
  11984         void **ppvObject);
  11985 
  11986     ULONG (STDMETHODCALLTYPE *AddRef)(
  11987         ISpeechObjectTokens *This);
  11988 
  11989     ULONG (STDMETHODCALLTYPE *Release)(
  11990         ISpeechObjectTokens *This);
  11991 
  11992     /*** IDispatch methods ***/
  11993     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  11994         ISpeechObjectTokens *This,
  11995         UINT *pctinfo);
  11996 
  11997     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  11998         ISpeechObjectTokens *This,
  11999         UINT iTInfo,
  12000         LCID lcid,
  12001         ITypeInfo **ppTInfo);
  12002 
  12003     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  12004         ISpeechObjectTokens *This,
  12005         REFIID riid,
  12006         LPOLESTR *rgszNames,
  12007         UINT cNames,
  12008         LCID lcid,
  12009         DISPID *rgDispId);
  12010 
  12011     HRESULT (STDMETHODCALLTYPE *Invoke)(
  12012         ISpeechObjectTokens *This,
  12013         DISPID dispIdMember,
  12014         REFIID riid,
  12015         LCID lcid,
  12016         WORD wFlags,
  12017         DISPPARAMS *pDispParams,
  12018         VARIANT *pVarResult,
  12019         EXCEPINFO *pExcepInfo,
  12020         UINT *puArgErr);
  12021 
  12022     /*** ISpeechObjectTokens methods ***/
  12023     HRESULT (STDMETHODCALLTYPE *get_Count)(
  12024         ISpeechObjectTokens *This,
  12025         LONG *Count);
  12026 
  12027     HRESULT (STDMETHODCALLTYPE *Item)(
  12028         ISpeechObjectTokens *This,
  12029         LONG Index,
  12030         ISpeechObjectToken **Token);
  12031 
  12032     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
  12033         ISpeechObjectTokens *This,
  12034         IUnknown **ppEnumVARIANT);
  12035 
  12036     END_INTERFACE
  12037 } ISpeechObjectTokensVtbl;
  12038 
  12039 interface ISpeechObjectTokens {
  12040     CONST_VTBL ISpeechObjectTokensVtbl* lpVtbl;
  12041 };
  12042 
  12043 #ifdef COBJMACROS
  12044 #ifndef WIDL_C_INLINE_WRAPPERS
  12045 /*** IUnknown methods ***/
  12046 #define ISpeechObjectTokens_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12047 #define ISpeechObjectTokens_AddRef(This) (This)->lpVtbl->AddRef(This)
  12048 #define ISpeechObjectTokens_Release(This) (This)->lpVtbl->Release(This)
  12049 /*** IDispatch methods ***/
  12050 #define ISpeechObjectTokens_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  12051 #define ISpeechObjectTokens_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  12052 #define ISpeechObjectTokens_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  12053 #define ISpeechObjectTokens_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  12054 /*** ISpeechObjectTokens methods ***/
  12055 #define ISpeechObjectTokens_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
  12056 #define ISpeechObjectTokens_Item(This,Index,Token) (This)->lpVtbl->Item(This,Index,Token)
  12057 #define ISpeechObjectTokens_get__NewEnum(This,ppEnumVARIANT) (This)->lpVtbl->get__NewEnum(This,ppEnumVARIANT)
  12058 #else
  12059 /*** IUnknown methods ***/
  12060 static inline HRESULT ISpeechObjectTokens_QueryInterface(ISpeechObjectTokens* This,REFIID riid,void **ppvObject) {
  12061     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  12062 }
  12063 static inline ULONG ISpeechObjectTokens_AddRef(ISpeechObjectTokens* This) {
  12064     return This->lpVtbl->AddRef(This);
  12065 }
  12066 static inline ULONG ISpeechObjectTokens_Release(ISpeechObjectTokens* This) {
  12067     return This->lpVtbl->Release(This);
  12068 }
  12069 /*** IDispatch methods ***/
  12070 static inline HRESULT ISpeechObjectTokens_GetTypeInfoCount(ISpeechObjectTokens* This,UINT *pctinfo) {
  12071     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  12072 }
  12073 static inline HRESULT ISpeechObjectTokens_GetTypeInfo(ISpeechObjectTokens* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  12074     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  12075 }
  12076 static inline HRESULT ISpeechObjectTokens_GetIDsOfNames(ISpeechObjectTokens* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  12077     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  12078 }
  12079 static inline HRESULT ISpeechObjectTokens_Invoke(ISpeechObjectTokens* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  12080     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  12081 }
  12082 /*** ISpeechObjectTokens methods ***/
  12083 static inline HRESULT ISpeechObjectTokens_get_Count(ISpeechObjectTokens* This,LONG *Count) {
  12084     return This->lpVtbl->get_Count(This,Count);
  12085 }
  12086 static inline HRESULT ISpeechObjectTokens_Item(ISpeechObjectTokens* This,LONG Index,ISpeechObjectToken **Token) {
  12087     return This->lpVtbl->Item(This,Index,Token);
  12088 }
  12089 static inline HRESULT ISpeechObjectTokens_get__NewEnum(ISpeechObjectTokens* This,IUnknown **ppEnumVARIANT) {
  12090     return This->lpVtbl->get__NewEnum(This,ppEnumVARIANT);
  12091 }
  12092 #endif
  12093 #endif
  12094 
  12095 #endif
  12096 
  12097 
  12098 #endif  /* __ISpeechObjectTokens_INTERFACE_DEFINED__ */
  12099 
  12100 /*****************************************************************************
  12101  * ISpeechObjectTokenCategory interface
  12102  */
  12103 #ifndef __ISpeechObjectTokenCategory_INTERFACE_DEFINED__
  12104 #define __ISpeechObjectTokenCategory_INTERFACE_DEFINED__
  12105 
  12106 DEFINE_GUID(IID_ISpeechObjectTokenCategory, 0xca7eac50, 0x2d01, 0x4145, 0x86,0xd4, 0x5a,0xe7,0xd7,0x0f,0x44,0x69);
  12107 #if defined(__cplusplus) && !defined(CINTERFACE)
  12108 MIDL_INTERFACE("ca7eac50-2d01-4145-86d4-5ae7d70f4469")
  12109 ISpeechObjectTokenCategory : public IDispatch
  12110 {
  12111     virtual HRESULT STDMETHODCALLTYPE get_Id(
  12112         BSTR *Id) = 0;
  12113 
  12114     virtual HRESULT STDMETHODCALLTYPE put_Default(
  12115         const BSTR TokenId) = 0;
  12116 
  12117     virtual HRESULT STDMETHODCALLTYPE get_Default(
  12118         BSTR *TokenId) = 0;
  12119 
  12120     virtual HRESULT STDMETHODCALLTYPE SetId(
  12121         const BSTR Id,
  12122         VARIANT_BOOL CreateIfNotExist = 0) = 0;
  12123 
  12124     virtual HRESULT STDMETHODCALLTYPE GetDataKey(
  12125         SpeechDataKeyLocation Location,
  12126         ISpeechDataKey **DataKey) = 0;
  12127 
  12128     virtual HRESULT STDMETHODCALLTYPE EnumerateTokens(
  12129         BSTR RequiredAttributes,
  12130         BSTR OptionalAttributes,
  12131         ISpeechObjectTokens **Tokens) = 0;
  12132 
  12133 };
  12134 #ifdef __CRT_UUID_DECL
  12135 __CRT_UUID_DECL(ISpeechObjectTokenCategory, 0xca7eac50, 0x2d01, 0x4145, 0x86,0xd4, 0x5a,0xe7,0xd7,0x0f,0x44,0x69)
  12136 #endif
  12137 #else
  12138 typedef struct ISpeechObjectTokenCategoryVtbl {
  12139     BEGIN_INTERFACE
  12140 
  12141     /*** IUnknown methods ***/
  12142     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  12143         ISpeechObjectTokenCategory *This,
  12144         REFIID riid,
  12145         void **ppvObject);
  12146 
  12147     ULONG (STDMETHODCALLTYPE *AddRef)(
  12148         ISpeechObjectTokenCategory *This);
  12149 
  12150     ULONG (STDMETHODCALLTYPE *Release)(
  12151         ISpeechObjectTokenCategory *This);
  12152 
  12153     /*** IDispatch methods ***/
  12154     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  12155         ISpeechObjectTokenCategory *This,
  12156         UINT *pctinfo);
  12157 
  12158     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  12159         ISpeechObjectTokenCategory *This,
  12160         UINT iTInfo,
  12161         LCID lcid,
  12162         ITypeInfo **ppTInfo);
  12163 
  12164     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  12165         ISpeechObjectTokenCategory *This,
  12166         REFIID riid,
  12167         LPOLESTR *rgszNames,
  12168         UINT cNames,
  12169         LCID lcid,
  12170         DISPID *rgDispId);
  12171 
  12172     HRESULT (STDMETHODCALLTYPE *Invoke)(
  12173         ISpeechObjectTokenCategory *This,
  12174         DISPID dispIdMember,
  12175         REFIID riid,
  12176         LCID lcid,
  12177         WORD wFlags,
  12178         DISPPARAMS *pDispParams,
  12179         VARIANT *pVarResult,
  12180         EXCEPINFO *pExcepInfo,
  12181         UINT *puArgErr);
  12182 
  12183     /*** ISpeechObjectTokenCategory methods ***/
  12184     HRESULT (STDMETHODCALLTYPE *get_Id)(
  12185         ISpeechObjectTokenCategory *This,
  12186         BSTR *Id);
  12187 
  12188     HRESULT (STDMETHODCALLTYPE *put_Default)(
  12189         ISpeechObjectTokenCategory *This,
  12190         const BSTR TokenId);
  12191 
  12192     HRESULT (STDMETHODCALLTYPE *get_Default)(
  12193         ISpeechObjectTokenCategory *This,
  12194         BSTR *TokenId);
  12195 
  12196     HRESULT (STDMETHODCALLTYPE *SetId)(
  12197         ISpeechObjectTokenCategory *This,
  12198         const BSTR Id,
  12199         VARIANT_BOOL CreateIfNotExist);
  12200 
  12201     HRESULT (STDMETHODCALLTYPE *GetDataKey)(
  12202         ISpeechObjectTokenCategory *This,
  12203         SpeechDataKeyLocation Location,
  12204         ISpeechDataKey **DataKey);
  12205 
  12206     HRESULT (STDMETHODCALLTYPE *EnumerateTokens)(
  12207         ISpeechObjectTokenCategory *This,
  12208         BSTR RequiredAttributes,
  12209         BSTR OptionalAttributes,
  12210         ISpeechObjectTokens **Tokens);
  12211 
  12212     END_INTERFACE
  12213 } ISpeechObjectTokenCategoryVtbl;
  12214 
  12215 interface ISpeechObjectTokenCategory {
  12216     CONST_VTBL ISpeechObjectTokenCategoryVtbl* lpVtbl;
  12217 };
  12218 
  12219 #ifdef COBJMACROS
  12220 #ifndef WIDL_C_INLINE_WRAPPERS
  12221 /*** IUnknown methods ***/
  12222 #define ISpeechObjectTokenCategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12223 #define ISpeechObjectTokenCategory_AddRef(This) (This)->lpVtbl->AddRef(This)
  12224 #define ISpeechObjectTokenCategory_Release(This) (This)->lpVtbl->Release(This)
  12225 /*** IDispatch methods ***/
  12226 #define ISpeechObjectTokenCategory_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  12227 #define ISpeechObjectTokenCategory_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  12228 #define ISpeechObjectTokenCategory_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  12229 #define ISpeechObjectTokenCategory_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  12230 /*** ISpeechObjectTokenCategory methods ***/
  12231 #define ISpeechObjectTokenCategory_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
  12232 #define ISpeechObjectTokenCategory_put_Default(This,TokenId) (This)->lpVtbl->put_Default(This,TokenId)
  12233 #define ISpeechObjectTokenCategory_get_Default(This,TokenId) (This)->lpVtbl->get_Default(This,TokenId)
  12234 #define ISpeechObjectTokenCategory_SetId(This,Id,CreateIfNotExist) (This)->lpVtbl->SetId(This,Id,CreateIfNotExist)
  12235 #define ISpeechObjectTokenCategory_GetDataKey(This,Location,DataKey) (This)->lpVtbl->GetDataKey(This,Location,DataKey)
  12236 #define ISpeechObjectTokenCategory_EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens) (This)->lpVtbl->EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens)
  12237 #else
  12238 /*** IUnknown methods ***/
  12239 static inline HRESULT ISpeechObjectTokenCategory_QueryInterface(ISpeechObjectTokenCategory* This,REFIID riid,void **ppvObject) {
  12240     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  12241 }
  12242 static inline ULONG ISpeechObjectTokenCategory_AddRef(ISpeechObjectTokenCategory* This) {
  12243     return This->lpVtbl->AddRef(This);
  12244 }
  12245 static inline ULONG ISpeechObjectTokenCategory_Release(ISpeechObjectTokenCategory* This) {
  12246     return This->lpVtbl->Release(This);
  12247 }
  12248 /*** IDispatch methods ***/
  12249 static inline HRESULT ISpeechObjectTokenCategory_GetTypeInfoCount(ISpeechObjectTokenCategory* This,UINT *pctinfo) {
  12250     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  12251 }
  12252 static inline HRESULT ISpeechObjectTokenCategory_GetTypeInfo(ISpeechObjectTokenCategory* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  12253     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  12254 }
  12255 static inline HRESULT ISpeechObjectTokenCategory_GetIDsOfNames(ISpeechObjectTokenCategory* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  12256     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  12257 }
  12258 static inline HRESULT ISpeechObjectTokenCategory_Invoke(ISpeechObjectTokenCategory* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  12259     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  12260 }
  12261 /*** ISpeechObjectTokenCategory methods ***/
  12262 static inline HRESULT ISpeechObjectTokenCategory_get_Id(ISpeechObjectTokenCategory* This,BSTR *Id) {
  12263     return This->lpVtbl->get_Id(This,Id);
  12264 }
  12265 static inline HRESULT ISpeechObjectTokenCategory_put_Default(ISpeechObjectTokenCategory* This,const BSTR TokenId) {
  12266     return This->lpVtbl->put_Default(This,TokenId);
  12267 }
  12268 static inline HRESULT ISpeechObjectTokenCategory_get_Default(ISpeechObjectTokenCategory* This,BSTR *TokenId) {
  12269     return This->lpVtbl->get_Default(This,TokenId);
  12270 }
  12271 static inline HRESULT ISpeechObjectTokenCategory_SetId(ISpeechObjectTokenCategory* This,const BSTR Id,VARIANT_BOOL CreateIfNotExist) {
  12272     return This->lpVtbl->SetId(This,Id,CreateIfNotExist);
  12273 }
  12274 static inline HRESULT ISpeechObjectTokenCategory_GetDataKey(ISpeechObjectTokenCategory* This,SpeechDataKeyLocation Location,ISpeechDataKey **DataKey) {
  12275     return This->lpVtbl->GetDataKey(This,Location,DataKey);
  12276 }
  12277 static inline HRESULT ISpeechObjectTokenCategory_EnumerateTokens(ISpeechObjectTokenCategory* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **Tokens) {
  12278     return This->lpVtbl->EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens);
  12279 }
  12280 #endif
  12281 #endif
  12282 
  12283 #endif
  12284 
  12285 
  12286 #endif  /* __ISpeechObjectTokenCategory_INTERFACE_DEFINED__ */
  12287 
  12288 typedef enum SpeechAudioFormatType {
  12289     SAFTDefault = -1,
  12290     SAFTNoAssignedFormat = 0,
  12291     SAFTText = 1,
  12292     SAFTNonStandardFormat = 2,
  12293     SAFTExtendedAudioFormat = 3,
  12294     SAFT8kHz8BitMono = 4,
  12295     SAFT8kHz8BitStereo = 5,
  12296     SAFT8kHz16BitMono = 6,
  12297     SAFT8kHz16BitStereo = 7,
  12298     SAFT11kHz8BitMono = 8,
  12299     SAFT11kHz8BitStereo = 9,
  12300     SAFT11kHz16BitMono = 10,
  12301     SAFT11kHz16BitStereo = 11,
  12302     SAFT12kHz8BitMono = 12,
  12303     SAFT12kHz8BitStereo = 13,
  12304     SAFT12kHz16BitMono = 14,
  12305     SAFT12kHz16BitStereo = 15,
  12306     SAFT16kHz8BitMono = 16,
  12307     SAFT16kHz8BitStereo = 17,
  12308     SAFT16kHz16BitMono = 18,
  12309     SAFT16kHz16BitStereo = 19,
  12310     SAFT22kHz8BitMono = 20,
  12311     SAFT22kHz8BitStereo = 21,
  12312     SAFT22kHz16BitMono = 22,
  12313     SAFT22kHz16BitStereo = 23,
  12314     SAFT24kHz8BitMono = 24,
  12315     SAFT24kHz8BitStereo = 25,
  12316     SAFT24kHz16BitMono = 26,
  12317     SAFT24kHz16BitStereo = 27,
  12318     SAFT32kHz8BitMono = 28,
  12319     SAFT32kHz8BitStereo = 29,
  12320     SAFT32kHz16BitMono = 30,
  12321     SAFT32kHz16BitStereo = 31,
  12322     SAFT44kHz8BitMono = 32,
  12323     SAFT44kHz8BitStereo = 33,
  12324     SAFT44kHz16BitMono = 34,
  12325     SAFT44kHz16BitStereo = 35,
  12326     SAFT48kHz8BitMono = 36,
  12327     SAFT48kHz8BitStereo = 37,
  12328     SAFT48kHz16BitMono = 38,
  12329     SAFT48kHz16BitStereo = 39,
  12330     SAFTTrueSpeech_8kHz1BitMono = 40,
  12331     SAFTCCITT_ALaw_8kHzMono = 41,
  12332     SAFTCCITT_ALaw_8kHzStereo = 42,
  12333     SAFTCCITT_ALaw_11kHzMono = 43,
  12334     SAFTCCITT_ALaw_11kHzStereo = 44,
  12335     SAFTCCITT_ALaw_22kHzMono = 45,
  12336     SAFTCCITT_ALaw_22kHzStereo = 46,
  12337     SAFTCCITT_ALaw_44kHzMono = 47,
  12338     SAFTCCITT_ALaw_44kHzStereo = 48,
  12339     SAFTCCITT_uLaw_8kHzMono = 49,
  12340     SAFTCCITT_uLaw_8kHzStereo = 50,
  12341     SAFTCCITT_uLaw_11kHzMono = 51,
  12342     SAFTCCITT_uLaw_11kHzStereo = 52,
  12343     SAFTCCITT_uLaw_22kHzMono = 53,
  12344     SAFTCCITT_uLaw_22kHzStereo = 54,
  12345     SAFTCCITT_uLaw_44kHzMono = 55,
  12346     SAFTCCITT_uLaw_44kHzStereo = 56,
  12347     SAFTADPCM_8kHzMono = 57,
  12348     SAFTADPCM_8kHzStereo = 58,
  12349     SAFTADPCM_11kHzMono = 59,
  12350     SAFTADPCM_11kHzStereo = 60,
  12351     SAFTADPCM_22kHzMono = 61,
  12352     SAFTADPCM_22kHzStereo = 62,
  12353     SAFTADPCM_44kHzMono = 63,
  12354     SAFTADPCM_44kHzStereo = 64,
  12355     SAFTGSM610_8kHzMono = 65,
  12356     SAFTGSM610_11kHzMono = 66,
  12357     SAFTGSM610_22kHzMono = 67,
  12358     SAFTGSM610_44kHzMono = 68
  12359 } SpeechAudioFormatType;
  12360 typedef enum DISPID_SpeechAudioFormat {
  12361     DISPID_SAFType = 1,
  12362     DISPID_SAFGuid = 2,
  12363     DISPID_SAFGetWaveFormatEx = 3,
  12364     DISPID_SAFSetWaveFormatEx = 4
  12365 } DISPID_SpeechAudioFormat;
  12366 typedef enum DISPID_SpeechBaseStream {
  12367     DISPID_SBSFormat = 1,
  12368     DISPID_SBSRead = 2,
  12369     DISPID_SBSWrite = 3,
  12370     DISPID_SBSSeek = 4
  12371 } DISPID_SpeechBaseStream;
  12372 typedef enum SpeechStreamSeekPositionType {
  12373     SSSPTRelativeToStart = STREAM_SEEK_SET,
  12374     SSSPTRelativeToCurrentPosition = STREAM_SEEK_CUR,
  12375     SSSPTRelativeToEnd = STREAM_SEEK_END
  12376 } SpeechStreamSeekPositionType;
  12377 typedef enum DISPID_SpeechAudio {
  12378     DISPID_SAStatus = 200,
  12379     DISPID_SABufferInfo = 201,
  12380     DISPID_SADefaultFormat = 202,
  12381     DISPID_SAVolume = 203,
  12382     DISPID_SABufferNotifySize = 204,
  12383     DISPID_SAEventHandle = 205,
  12384     DISPID_SASetState = 206
  12385 } DISPID_SpeechAudio;
  12386 typedef enum SpeechAudioState {
  12387     SASClosed = SPAS_CLOSED,
  12388     SASStop = SPAS_STOP,
  12389     SASPause = SPAS_PAUSE,
  12390     SASRun = SPAS_RUN
  12391 } SpeechAudioState;
  12392 typedef enum DISPID_SpeechMMSysAudio {
  12393     DISPID_SMSADeviceId = 300,
  12394     DISPID_SMSALineId = 301,
  12395     DISPID_SMSAMMHandle = 302
  12396 } DISPID_SpeechMMSysAudio;
  12397 typedef enum DISPID_SpeechFileStream {
  12398     DISPID_SFSOpen = 100,
  12399     DISPID_SFSClose = 101
  12400 } DISPID_SpeechFileStream;
  12401 typedef enum SpeechStreamFileMode {
  12402     SSFMOpenForRead = SPFM_OPEN_READONLY,
  12403     SSFMOpenReadWrite = SPFM_OPEN_READWRITE,
  12404     SSFMCreate = SPFM_CREATE,
  12405     SSFMCreateForWrite = SPFM_CREATE_ALWAYS
  12406 } SpeechStreamFileMode;
  12407 typedef enum DISPID_SpeechCustomStream {
  12408     DISPID_SCSBaseStream = 100
  12409 } DISPID_SpeechCustomStream;
  12410 typedef enum DISPID_SpeechMemoryStream {
  12411     DISPID_SMSSetData = 100,
  12412     DISPID_SMSGetData = 101
  12413 } DISPID_SpeechMemoryStream;
  12414 typedef enum DISPID_SpeechAudioStatus {
  12415     DISPID_SASFreeBufferSpace = 1,
  12416     DISPID_SASNonBlockingIO = 2,
  12417     DISPID_SASState = 3,
  12418     DISPID_SASCurrentSeekPosition = 4,
  12419     DISPID_SASCurrentDevicePosition = 5
  12420 } DISPID_SpeechAudioStatus;
  12421 typedef enum DISPID_SpeechAudioBufferInfo {
  12422     DISPID_SABIMinNotification = 1,
  12423     DISPID_SABIBufferSize = 2,
  12424     DISPID_SABIEventBias = 3
  12425 } DISPID_SpeechAudioBufferInfo;
  12426 typedef enum DISPID_SpeechWaveFormatEx {
  12427     DISPID_SWFEFormatTag = 1,
  12428     DISPID_SWFEChannels = 2,
  12429     DISPID_SWFESamplesPerSec = 3,
  12430     DISPID_SWFEAvgBytesPerSec = 4,
  12431     DISPID_SWFEBlockAlign = 5,
  12432     DISPID_SWFEBitsPerSample = 6,
  12433     DISPID_SWFEExtraData = 7
  12434 } DISPID_SpeechWaveFormatEx;
  12435 typedef enum DISPID_SpeechVoice {
  12436     DISPID_SVStatus = 1,
  12437     DISPID_SVVoice = 2,
  12438     DISPID_SVAudioOutput = 3,
  12439     DISPID_SVAudioOutputStream = 4,
  12440     DISPID_SVRate = 5,
  12441     DISPID_SVVolume = 6,
  12442     DISPID_SVAllowAudioOuputFormatChangesOnNextSet = 7,
  12443     DISPID_SVEventInterests = 8,
  12444     DISPID_SVPriority = 9,
  12445     DISPID_SVAlertBoundary = 10,
  12446     DISPID_SVSyncronousSpeakTimeout = 11,
  12447     DISPID_SVSpeak = 12,
  12448     DISPID_SVSpeakStream = 13,
  12449     DISPID_SVPause = 14,
  12450     DISPID_SVResume = 15,
  12451     DISPID_SVSkip = 16,
  12452     DISPID_SVGetVoices = 17,
  12453     DISPID_SVGetAudioOutputs = 18,
  12454     DISPID_SVWaitUntilDone = 19,
  12455     DISPID_SVSpeakCompleteEvent = 20,
  12456     DISPID_SVIsUISupported = 21,
  12457     DISPID_SVDisplayUI = 22
  12458 } DISPID_SpeechVoice;
  12459 typedef enum SpeechVoicePriority {
  12460     SVPNormal = SPVPRI_NORMAL,
  12461     SVPAlert = SPVPRI_ALERT,
  12462     SVPOver = SPVPRI_OVER
  12463 } SpeechVoicePriority;
  12464 typedef enum SpeechVoiceSpeakFlags {
  12465     SVSFDefault = SPF_DEFAULT,
  12466     SVSFlagsAsync = SPF_ASYNC,
  12467     SVSFPurgeBeforeSpeak = SPF_PURGEBEFORESPEAK,
  12468     SVSFIsFilename = SPF_IS_FILENAME,
  12469     SVSFIsXML = SPF_IS_XML,
  12470     SVSFIsNotXML = SPF_IS_NOT_XML,
  12471     SVSFPersistXML = SPF_PERSIST_XML,
  12472     SVSFNLPSpeakPunc = SPF_NLP_SPEAK_PUNC,
  12473     SVSFParseSapi = SPF_PARSE_SAPI,
  12474     SVSFParseSsml = SPF_PARSE_SSML,
  12475     SVSFParseAutodetect = SPF_PARSE_AUTODETECT,
  12476     SVSFNLPMask = SPF_NLP_MASK,
  12477     SVSFParseMask = SPF_PARSE_MASK,
  12478     SVSFVoiceMask = SPF_VOICE_MASK,
  12479     SVSFUnusedFlags = SPF_UNUSED_FLAGS
  12480 } SpeechVoiceSpeakFlags;
  12481 typedef enum SpeechVoiceEvents {
  12482     SVEStartInputStream = 0x2,
  12483     SVEEndInputStream = 0x4,
  12484     SVEVoiceChange = 0x8,
  12485     SVEBookmark = 0x10,
  12486     SVEWordBoundary = 0x20,
  12487     SVEPhoneme = 0x40,
  12488     SVESentenceBoundary = 0x80,
  12489     SVEViseme = 0x100,
  12490     SVEAudioLevel = 0x200,
  12491     SVEPrivate = 0x8000,
  12492     SVEAllEvents = 0x83fe
  12493 } SpeechVoiceEvents;
  12494 typedef enum DISPID_SpeechVoiceStatus {
  12495     DISPID_SVSCurrentStreamNumber = 1,
  12496     DISPID_SVSLastStreamNumberQueued = 2,
  12497     DISPID_SVSLastResult = 3,
  12498     DISPID_SVSRunningState = 4,
  12499     DISPID_SVSInputWordPosition = 5,
  12500     DISPID_SVSInputWordLength = 6,
  12501     DISPID_SVSInputSentencePosition = 7,
  12502     DISPID_SVSInputSentenceLength = 8,
  12503     DISPID_SVSLastBookmark = 9,
  12504     DISPID_SVSLastBookmarkId = 10,
  12505     DISPID_SVSPhonemeId = 11,
  12506     DISPID_SVSVisemeId = 12
  12507 } DISPID_SpeechVoiceStatus;
  12508 typedef enum SpeechRunState {
  12509     SRSEDone = SPRS_DONE,
  12510     SRSEIsSpeaking = SPRS_IS_SPEAKING
  12511 } SpeechRunState;
  12512 /*****************************************************************************
  12513  * ISpeechAudioFormat interface
  12514  */
  12515 #ifndef __ISpeechAudioFormat_INTERFACE_DEFINED__
  12516 #define __ISpeechAudioFormat_INTERFACE_DEFINED__
  12517 
  12518 DEFINE_GUID(IID_ISpeechAudioFormat, 0xe6e9c590, 0x3e18, 0x40e3, 0x82,0x99, 0x06,0x1f,0x98,0xbd,0xe7,0xc7);
  12519 #if defined(__cplusplus) && !defined(CINTERFACE)
  12520 MIDL_INTERFACE("e6e9c590-3e18-40e3-8299-061f98bde7c7")
  12521 ISpeechAudioFormat : public IDispatch
  12522 {
  12523     virtual HRESULT STDMETHODCALLTYPE get_Type(
  12524         SpeechAudioFormatType *AudioFormat) = 0;
  12525 
  12526     virtual HRESULT STDMETHODCALLTYPE put_Type(
  12527         SpeechAudioFormatType AudioFormat) = 0;
  12528 
  12529     virtual HRESULT STDMETHODCALLTYPE get_Guid(
  12530         BSTR *Guid) = 0;
  12531 
  12532     virtual HRESULT STDMETHODCALLTYPE put_Guid(
  12533         BSTR Guid) = 0;
  12534 
  12535     virtual HRESULT STDMETHODCALLTYPE GetWaveFormatEx(
  12536         ISpeechWaveFormatEx **SpeechWaveFormatEx) = 0;
  12537 
  12538     virtual HRESULT STDMETHODCALLTYPE SetWaveFormatEx(
  12539         ISpeechWaveFormatEx *SpeechWaveFormatEx) = 0;
  12540 
  12541 };
  12542 #ifdef __CRT_UUID_DECL
  12543 __CRT_UUID_DECL(ISpeechAudioFormat, 0xe6e9c590, 0x3e18, 0x40e3, 0x82,0x99, 0x06,0x1f,0x98,0xbd,0xe7,0xc7)
  12544 #endif
  12545 #else
  12546 typedef struct ISpeechAudioFormatVtbl {
  12547     BEGIN_INTERFACE
  12548 
  12549     /*** IUnknown methods ***/
  12550     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  12551         ISpeechAudioFormat *This,
  12552         REFIID riid,
  12553         void **ppvObject);
  12554 
  12555     ULONG (STDMETHODCALLTYPE *AddRef)(
  12556         ISpeechAudioFormat *This);
  12557 
  12558     ULONG (STDMETHODCALLTYPE *Release)(
  12559         ISpeechAudioFormat *This);
  12560 
  12561     /*** IDispatch methods ***/
  12562     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  12563         ISpeechAudioFormat *This,
  12564         UINT *pctinfo);
  12565 
  12566     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  12567         ISpeechAudioFormat *This,
  12568         UINT iTInfo,
  12569         LCID lcid,
  12570         ITypeInfo **ppTInfo);
  12571 
  12572     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  12573         ISpeechAudioFormat *This,
  12574         REFIID riid,
  12575         LPOLESTR *rgszNames,
  12576         UINT cNames,
  12577         LCID lcid,
  12578         DISPID *rgDispId);
  12579 
  12580     HRESULT (STDMETHODCALLTYPE *Invoke)(
  12581         ISpeechAudioFormat *This,
  12582         DISPID dispIdMember,
  12583         REFIID riid,
  12584         LCID lcid,
  12585         WORD wFlags,
  12586         DISPPARAMS *pDispParams,
  12587         VARIANT *pVarResult,
  12588         EXCEPINFO *pExcepInfo,
  12589         UINT *puArgErr);
  12590 
  12591     /*** ISpeechAudioFormat methods ***/
  12592     HRESULT (STDMETHODCALLTYPE *get_Type)(
  12593         ISpeechAudioFormat *This,
  12594         SpeechAudioFormatType *AudioFormat);
  12595 
  12596     HRESULT (STDMETHODCALLTYPE *put_Type)(
  12597         ISpeechAudioFormat *This,
  12598         SpeechAudioFormatType AudioFormat);
  12599 
  12600     HRESULT (STDMETHODCALLTYPE *get_Guid)(
  12601         ISpeechAudioFormat *This,
  12602         BSTR *Guid);
  12603 
  12604     HRESULT (STDMETHODCALLTYPE *put_Guid)(
  12605         ISpeechAudioFormat *This,
  12606         BSTR Guid);
  12607 
  12608     HRESULT (STDMETHODCALLTYPE *GetWaveFormatEx)(
  12609         ISpeechAudioFormat *This,
  12610         ISpeechWaveFormatEx **SpeechWaveFormatEx);
  12611 
  12612     HRESULT (STDMETHODCALLTYPE *SetWaveFormatEx)(
  12613         ISpeechAudioFormat *This,
  12614         ISpeechWaveFormatEx *SpeechWaveFormatEx);
  12615 
  12616     END_INTERFACE
  12617 } ISpeechAudioFormatVtbl;
  12618 
  12619 interface ISpeechAudioFormat {
  12620     CONST_VTBL ISpeechAudioFormatVtbl* lpVtbl;
  12621 };
  12622 
  12623 #ifdef COBJMACROS
  12624 #ifndef WIDL_C_INLINE_WRAPPERS
  12625 /*** IUnknown methods ***/
  12626 #define ISpeechAudioFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12627 #define ISpeechAudioFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
  12628 #define ISpeechAudioFormat_Release(This) (This)->lpVtbl->Release(This)
  12629 /*** IDispatch methods ***/
  12630 #define ISpeechAudioFormat_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  12631 #define ISpeechAudioFormat_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  12632 #define ISpeechAudioFormat_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  12633 #define ISpeechAudioFormat_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  12634 /*** ISpeechAudioFormat methods ***/
  12635 #define ISpeechAudioFormat_get_Type(This,AudioFormat) (This)->lpVtbl->get_Type(This,AudioFormat)
  12636 #define ISpeechAudioFormat_put_Type(This,AudioFormat) (This)->lpVtbl->put_Type(This,AudioFormat)
  12637 #define ISpeechAudioFormat_get_Guid(This,Guid) (This)->lpVtbl->get_Guid(This,Guid)
  12638 #define ISpeechAudioFormat_put_Guid(This,Guid) (This)->lpVtbl->put_Guid(This,Guid)
  12639 #define ISpeechAudioFormat_GetWaveFormatEx(This,SpeechWaveFormatEx) (This)->lpVtbl->GetWaveFormatEx(This,SpeechWaveFormatEx)
  12640 #define ISpeechAudioFormat_SetWaveFormatEx(This,SpeechWaveFormatEx) (This)->lpVtbl->SetWaveFormatEx(This,SpeechWaveFormatEx)
  12641 #else
  12642 /*** IUnknown methods ***/
  12643 static inline HRESULT ISpeechAudioFormat_QueryInterface(ISpeechAudioFormat* This,REFIID riid,void **ppvObject) {
  12644     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  12645 }
  12646 static inline ULONG ISpeechAudioFormat_AddRef(ISpeechAudioFormat* This) {
  12647     return This->lpVtbl->AddRef(This);
  12648 }
  12649 static inline ULONG ISpeechAudioFormat_Release(ISpeechAudioFormat* This) {
  12650     return This->lpVtbl->Release(This);
  12651 }
  12652 /*** IDispatch methods ***/
  12653 static inline HRESULT ISpeechAudioFormat_GetTypeInfoCount(ISpeechAudioFormat* This,UINT *pctinfo) {
  12654     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  12655 }
  12656 static inline HRESULT ISpeechAudioFormat_GetTypeInfo(ISpeechAudioFormat* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  12657     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  12658 }
  12659 static inline HRESULT ISpeechAudioFormat_GetIDsOfNames(ISpeechAudioFormat* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  12660     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  12661 }
  12662 static inline HRESULT ISpeechAudioFormat_Invoke(ISpeechAudioFormat* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  12663     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  12664 }
  12665 /*** ISpeechAudioFormat methods ***/
  12666 static inline HRESULT ISpeechAudioFormat_get_Type(ISpeechAudioFormat* This,SpeechAudioFormatType *AudioFormat) {
  12667     return This->lpVtbl->get_Type(This,AudioFormat);
  12668 }
  12669 static inline HRESULT ISpeechAudioFormat_put_Type(ISpeechAudioFormat* This,SpeechAudioFormatType AudioFormat) {
  12670     return This->lpVtbl->put_Type(This,AudioFormat);
  12671 }
  12672 static inline HRESULT ISpeechAudioFormat_get_Guid(ISpeechAudioFormat* This,BSTR *Guid) {
  12673     return This->lpVtbl->get_Guid(This,Guid);
  12674 }
  12675 static inline HRESULT ISpeechAudioFormat_put_Guid(ISpeechAudioFormat* This,BSTR Guid) {
  12676     return This->lpVtbl->put_Guid(This,Guid);
  12677 }
  12678 static inline HRESULT ISpeechAudioFormat_GetWaveFormatEx(ISpeechAudioFormat* This,ISpeechWaveFormatEx **SpeechWaveFormatEx) {
  12679     return This->lpVtbl->GetWaveFormatEx(This,SpeechWaveFormatEx);
  12680 }
  12681 static inline HRESULT ISpeechAudioFormat_SetWaveFormatEx(ISpeechAudioFormat* This,ISpeechWaveFormatEx *SpeechWaveFormatEx) {
  12682     return This->lpVtbl->SetWaveFormatEx(This,SpeechWaveFormatEx);
  12683 }
  12684 #endif
  12685 #endif
  12686 
  12687 #endif
  12688 
  12689 
  12690 #endif  /* __ISpeechAudioFormat_INTERFACE_DEFINED__ */
  12691 
  12692 /*****************************************************************************
  12693  * ISpeechBaseStream interface
  12694  */
  12695 #ifndef __ISpeechBaseStream_INTERFACE_DEFINED__
  12696 #define __ISpeechBaseStream_INTERFACE_DEFINED__
  12697 
  12698 DEFINE_GUID(IID_ISpeechBaseStream, 0x6450336f, 0x7d49, 0x4ced, 0x80,0x97, 0x49,0xd6,0xde,0xe3,0x72,0x94);
  12699 #if defined(__cplusplus) && !defined(CINTERFACE)
  12700 MIDL_INTERFACE("6450336f-7d49-4ced-8097-49d6dee37294")
  12701 ISpeechBaseStream : public IDispatch
  12702 {
  12703     virtual HRESULT STDMETHODCALLTYPE get_Format(
  12704         ISpeechAudioFormat **AudioFormat) = 0;
  12705 
  12706     virtual HRESULT STDMETHODCALLTYPE putref_Format(
  12707         ISpeechAudioFormat *AudioFormat) = 0;
  12708 
  12709     virtual HRESULT STDMETHODCALLTYPE Read(
  12710         VARIANT *Buffer,
  12711         LONG NumberOfBytes,
  12712         LONG *BytesRead) = 0;
  12713 
  12714     virtual HRESULT STDMETHODCALLTYPE Write(
  12715         VARIANT Buffer,
  12716         LONG *BytesWritten) = 0;
  12717 
  12718     virtual HRESULT STDMETHODCALLTYPE Seek(
  12719         VARIANT Position,
  12720         SpeechStreamSeekPositionType Origin,
  12721         VARIANT *NewPosition) = 0;
  12722 
  12723 };
  12724 #ifdef __CRT_UUID_DECL
  12725 __CRT_UUID_DECL(ISpeechBaseStream, 0x6450336f, 0x7d49, 0x4ced, 0x80,0x97, 0x49,0xd6,0xde,0xe3,0x72,0x94)
  12726 #endif
  12727 #else
  12728 typedef struct ISpeechBaseStreamVtbl {
  12729     BEGIN_INTERFACE
  12730 
  12731     /*** IUnknown methods ***/
  12732     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  12733         ISpeechBaseStream *This,
  12734         REFIID riid,
  12735         void **ppvObject);
  12736 
  12737     ULONG (STDMETHODCALLTYPE *AddRef)(
  12738         ISpeechBaseStream *This);
  12739 
  12740     ULONG (STDMETHODCALLTYPE *Release)(
  12741         ISpeechBaseStream *This);
  12742 
  12743     /*** IDispatch methods ***/
  12744     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  12745         ISpeechBaseStream *This,
  12746         UINT *pctinfo);
  12747 
  12748     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  12749         ISpeechBaseStream *This,
  12750         UINT iTInfo,
  12751         LCID lcid,
  12752         ITypeInfo **ppTInfo);
  12753 
  12754     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  12755         ISpeechBaseStream *This,
  12756         REFIID riid,
  12757         LPOLESTR *rgszNames,
  12758         UINT cNames,
  12759         LCID lcid,
  12760         DISPID *rgDispId);
  12761 
  12762     HRESULT (STDMETHODCALLTYPE *Invoke)(
  12763         ISpeechBaseStream *This,
  12764         DISPID dispIdMember,
  12765         REFIID riid,
  12766         LCID lcid,
  12767         WORD wFlags,
  12768         DISPPARAMS *pDispParams,
  12769         VARIANT *pVarResult,
  12770         EXCEPINFO *pExcepInfo,
  12771         UINT *puArgErr);
  12772 
  12773     /*** ISpeechBaseStream methods ***/
  12774     HRESULT (STDMETHODCALLTYPE *get_Format)(
  12775         ISpeechBaseStream *This,
  12776         ISpeechAudioFormat **AudioFormat);
  12777 
  12778     HRESULT (STDMETHODCALLTYPE *putref_Format)(
  12779         ISpeechBaseStream *This,
  12780         ISpeechAudioFormat *AudioFormat);
  12781 
  12782     HRESULT (STDMETHODCALLTYPE *Read)(
  12783         ISpeechBaseStream *This,
  12784         VARIANT *Buffer,
  12785         LONG NumberOfBytes,
  12786         LONG *BytesRead);
  12787 
  12788     HRESULT (STDMETHODCALLTYPE *Write)(
  12789         ISpeechBaseStream *This,
  12790         VARIANT Buffer,
  12791         LONG *BytesWritten);
  12792 
  12793     HRESULT (STDMETHODCALLTYPE *Seek)(
  12794         ISpeechBaseStream *This,
  12795         VARIANT Position,
  12796         SpeechStreamSeekPositionType Origin,
  12797         VARIANT *NewPosition);
  12798 
  12799     END_INTERFACE
  12800 } ISpeechBaseStreamVtbl;
  12801 
  12802 interface ISpeechBaseStream {
  12803     CONST_VTBL ISpeechBaseStreamVtbl* lpVtbl;
  12804 };
  12805 
  12806 #ifdef COBJMACROS
  12807 #ifndef WIDL_C_INLINE_WRAPPERS
  12808 /*** IUnknown methods ***/
  12809 #define ISpeechBaseStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12810 #define ISpeechBaseStream_AddRef(This) (This)->lpVtbl->AddRef(This)
  12811 #define ISpeechBaseStream_Release(This) (This)->lpVtbl->Release(This)
  12812 /*** IDispatch methods ***/
  12813 #define ISpeechBaseStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  12814 #define ISpeechBaseStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  12815 #define ISpeechBaseStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  12816 #define ISpeechBaseStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  12817 /*** ISpeechBaseStream methods ***/
  12818 #define ISpeechBaseStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
  12819 #define ISpeechBaseStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
  12820 #define ISpeechBaseStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
  12821 #define ISpeechBaseStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
  12822 #define ISpeechBaseStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
  12823 #else
  12824 /*** IUnknown methods ***/
  12825 static inline HRESULT ISpeechBaseStream_QueryInterface(ISpeechBaseStream* This,REFIID riid,void **ppvObject) {
  12826     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  12827 }
  12828 static inline ULONG ISpeechBaseStream_AddRef(ISpeechBaseStream* This) {
  12829     return This->lpVtbl->AddRef(This);
  12830 }
  12831 static inline ULONG ISpeechBaseStream_Release(ISpeechBaseStream* This) {
  12832     return This->lpVtbl->Release(This);
  12833 }
  12834 /*** IDispatch methods ***/
  12835 static inline HRESULT ISpeechBaseStream_GetTypeInfoCount(ISpeechBaseStream* This,UINT *pctinfo) {
  12836     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  12837 }
  12838 static inline HRESULT ISpeechBaseStream_GetTypeInfo(ISpeechBaseStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  12839     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  12840 }
  12841 static inline HRESULT ISpeechBaseStream_GetIDsOfNames(ISpeechBaseStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  12842     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  12843 }
  12844 static inline HRESULT ISpeechBaseStream_Invoke(ISpeechBaseStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  12845     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  12846 }
  12847 /*** ISpeechBaseStream methods ***/
  12848 static inline HRESULT ISpeechBaseStream_get_Format(ISpeechBaseStream* This,ISpeechAudioFormat **AudioFormat) {
  12849     return This->lpVtbl->get_Format(This,AudioFormat);
  12850 }
  12851 static inline HRESULT ISpeechBaseStream_putref_Format(ISpeechBaseStream* This,ISpeechAudioFormat *AudioFormat) {
  12852     return This->lpVtbl->putref_Format(This,AudioFormat);
  12853 }
  12854 static inline HRESULT ISpeechBaseStream_Read(ISpeechBaseStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
  12855     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
  12856 }
  12857 static inline HRESULT ISpeechBaseStream_Write(ISpeechBaseStream* This,VARIANT Buffer,LONG *BytesWritten) {
  12858     return This->lpVtbl->Write(This,Buffer,BytesWritten);
  12859 }
  12860 static inline HRESULT ISpeechBaseStream_Seek(ISpeechBaseStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
  12861     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
  12862 }
  12863 #endif
  12864 #endif
  12865 
  12866 #endif
  12867 
  12868 
  12869 #endif  /* __ISpeechBaseStream_INTERFACE_DEFINED__ */
  12870 
  12871 /*****************************************************************************
  12872  * ISpeechAudio interface
  12873  */
  12874 #ifndef __ISpeechAudio_INTERFACE_DEFINED__
  12875 #define __ISpeechAudio_INTERFACE_DEFINED__
  12876 
  12877 DEFINE_GUID(IID_ISpeechAudio, 0xcff8e175, 0x019e, 0x11d3, 0xa0,0x8e, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5);
  12878 #if defined(__cplusplus) && !defined(CINTERFACE)
  12879 MIDL_INTERFACE("cff8e175-019e-11d3-a08e-00c04f8ef9b5")
  12880 ISpeechAudio : public ISpeechBaseStream
  12881 {
  12882     virtual HRESULT STDMETHODCALLTYPE get_Status(
  12883         ISpeechAudioStatus **Status) = 0;
  12884 
  12885     virtual HRESULT STDMETHODCALLTYPE get_BufferInfo(
  12886         ISpeechAudioBufferInfo **BufferInfo) = 0;
  12887 
  12888     virtual HRESULT STDMETHODCALLTYPE get_DefaultFormat(
  12889         ISpeechAudioFormat **StreamFormat) = 0;
  12890 
  12891     virtual HRESULT STDMETHODCALLTYPE get_Volume(
  12892         LONG *Volume) = 0;
  12893 
  12894     virtual HRESULT STDMETHODCALLTYPE put_Volume(
  12895         LONG Volume) = 0;
  12896 
  12897     virtual HRESULT STDMETHODCALLTYPE get_BufferNotifySize(
  12898         LONG *BufferNotifySize) = 0;
  12899 
  12900     virtual HRESULT STDMETHODCALLTYPE put_BufferNotifySize(
  12901         LONG BufferNotifySize) = 0;
  12902 
  12903     virtual HRESULT STDMETHODCALLTYPE get_EventHandle(
  12904         LONG *EventHandle) = 0;
  12905 
  12906     virtual HRESULT STDMETHODCALLTYPE SetState(
  12907         SpeechAudioState State) = 0;
  12908 
  12909 };
  12910 #ifdef __CRT_UUID_DECL
  12911 __CRT_UUID_DECL(ISpeechAudio, 0xcff8e175, 0x019e, 0x11d3, 0xa0,0x8e, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5)
  12912 #endif
  12913 #else
  12914 typedef struct ISpeechAudioVtbl {
  12915     BEGIN_INTERFACE
  12916 
  12917     /*** IUnknown methods ***/
  12918     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  12919         ISpeechAudio *This,
  12920         REFIID riid,
  12921         void **ppvObject);
  12922 
  12923     ULONG (STDMETHODCALLTYPE *AddRef)(
  12924         ISpeechAudio *This);
  12925 
  12926     ULONG (STDMETHODCALLTYPE *Release)(
  12927         ISpeechAudio *This);
  12928 
  12929     /*** IDispatch methods ***/
  12930     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  12931         ISpeechAudio *This,
  12932         UINT *pctinfo);
  12933 
  12934     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  12935         ISpeechAudio *This,
  12936         UINT iTInfo,
  12937         LCID lcid,
  12938         ITypeInfo **ppTInfo);
  12939 
  12940     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  12941         ISpeechAudio *This,
  12942         REFIID riid,
  12943         LPOLESTR *rgszNames,
  12944         UINT cNames,
  12945         LCID lcid,
  12946         DISPID *rgDispId);
  12947 
  12948     HRESULT (STDMETHODCALLTYPE *Invoke)(
  12949         ISpeechAudio *This,
  12950         DISPID dispIdMember,
  12951         REFIID riid,
  12952         LCID lcid,
  12953         WORD wFlags,
  12954         DISPPARAMS *pDispParams,
  12955         VARIANT *pVarResult,
  12956         EXCEPINFO *pExcepInfo,
  12957         UINT *puArgErr);
  12958 
  12959     /*** ISpeechBaseStream methods ***/
  12960     HRESULT (STDMETHODCALLTYPE *get_Format)(
  12961         ISpeechAudio *This,
  12962         ISpeechAudioFormat **AudioFormat);
  12963 
  12964     HRESULT (STDMETHODCALLTYPE *putref_Format)(
  12965         ISpeechAudio *This,
  12966         ISpeechAudioFormat *AudioFormat);
  12967 
  12968     HRESULT (STDMETHODCALLTYPE *Read)(
  12969         ISpeechAudio *This,
  12970         VARIANT *Buffer,
  12971         LONG NumberOfBytes,
  12972         LONG *BytesRead);
  12973 
  12974     HRESULT (STDMETHODCALLTYPE *Write)(
  12975         ISpeechAudio *This,
  12976         VARIANT Buffer,
  12977         LONG *BytesWritten);
  12978 
  12979     HRESULT (STDMETHODCALLTYPE *Seek)(
  12980         ISpeechAudio *This,
  12981         VARIANT Position,
  12982         SpeechStreamSeekPositionType Origin,
  12983         VARIANT *NewPosition);
  12984 
  12985     /*** ISpeechAudio methods ***/
  12986     HRESULT (STDMETHODCALLTYPE *get_Status)(
  12987         ISpeechAudio *This,
  12988         ISpeechAudioStatus **Status);
  12989 
  12990     HRESULT (STDMETHODCALLTYPE *get_BufferInfo)(
  12991         ISpeechAudio *This,
  12992         ISpeechAudioBufferInfo **BufferInfo);
  12993 
  12994     HRESULT (STDMETHODCALLTYPE *get_DefaultFormat)(
  12995         ISpeechAudio *This,
  12996         ISpeechAudioFormat **StreamFormat);
  12997 
  12998     HRESULT (STDMETHODCALLTYPE *get_Volume)(
  12999         ISpeechAudio *This,
  13000         LONG *Volume);
  13001 
  13002     HRESULT (STDMETHODCALLTYPE *put_Volume)(
  13003         ISpeechAudio *This,
  13004         LONG Volume);
  13005 
  13006     HRESULT (STDMETHODCALLTYPE *get_BufferNotifySize)(
  13007         ISpeechAudio *This,
  13008         LONG *BufferNotifySize);
  13009 
  13010     HRESULT (STDMETHODCALLTYPE *put_BufferNotifySize)(
  13011         ISpeechAudio *This,
  13012         LONG BufferNotifySize);
  13013 
  13014     HRESULT (STDMETHODCALLTYPE *get_EventHandle)(
  13015         ISpeechAudio *This,
  13016         LONG *EventHandle);
  13017 
  13018     HRESULT (STDMETHODCALLTYPE *SetState)(
  13019         ISpeechAudio *This,
  13020         SpeechAudioState State);
  13021 
  13022     END_INTERFACE
  13023 } ISpeechAudioVtbl;
  13024 
  13025 interface ISpeechAudio {
  13026     CONST_VTBL ISpeechAudioVtbl* lpVtbl;
  13027 };
  13028 
  13029 #ifdef COBJMACROS
  13030 #ifndef WIDL_C_INLINE_WRAPPERS
  13031 /*** IUnknown methods ***/
  13032 #define ISpeechAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13033 #define ISpeechAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
  13034 #define ISpeechAudio_Release(This) (This)->lpVtbl->Release(This)
  13035 /*** IDispatch methods ***/
  13036 #define ISpeechAudio_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  13037 #define ISpeechAudio_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  13038 #define ISpeechAudio_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  13039 #define ISpeechAudio_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  13040 /*** ISpeechBaseStream methods ***/
  13041 #define ISpeechAudio_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
  13042 #define ISpeechAudio_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
  13043 #define ISpeechAudio_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
  13044 #define ISpeechAudio_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
  13045 #define ISpeechAudio_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
  13046 /*** ISpeechAudio methods ***/
  13047 #define ISpeechAudio_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
  13048 #define ISpeechAudio_get_BufferInfo(This,BufferInfo) (This)->lpVtbl->get_BufferInfo(This,BufferInfo)
  13049 #define ISpeechAudio_get_DefaultFormat(This,StreamFormat) (This)->lpVtbl->get_DefaultFormat(This,StreamFormat)
  13050 #define ISpeechAudio_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
  13051 #define ISpeechAudio_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
  13052 #define ISpeechAudio_get_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->get_BufferNotifySize(This,BufferNotifySize)
  13053 #define ISpeechAudio_put_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->put_BufferNotifySize(This,BufferNotifySize)
  13054 #define ISpeechAudio_get_EventHandle(This,EventHandle) (This)->lpVtbl->get_EventHandle(This,EventHandle)
  13055 #define ISpeechAudio_SetState(This,State) (This)->lpVtbl->SetState(This,State)
  13056 #else
  13057 /*** IUnknown methods ***/
  13058 static inline HRESULT ISpeechAudio_QueryInterface(ISpeechAudio* This,REFIID riid,void **ppvObject) {
  13059     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  13060 }
  13061 static inline ULONG ISpeechAudio_AddRef(ISpeechAudio* This) {
  13062     return This->lpVtbl->AddRef(This);
  13063 }
  13064 static inline ULONG ISpeechAudio_Release(ISpeechAudio* This) {
  13065     return This->lpVtbl->Release(This);
  13066 }
  13067 /*** IDispatch methods ***/
  13068 static inline HRESULT ISpeechAudio_GetTypeInfoCount(ISpeechAudio* This,UINT *pctinfo) {
  13069     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  13070 }
  13071 static inline HRESULT ISpeechAudio_GetTypeInfo(ISpeechAudio* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  13072     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  13073 }
  13074 static inline HRESULT ISpeechAudio_GetIDsOfNames(ISpeechAudio* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  13075     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  13076 }
  13077 static inline HRESULT ISpeechAudio_Invoke(ISpeechAudio* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  13078     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  13079 }
  13080 /*** ISpeechBaseStream methods ***/
  13081 static inline HRESULT ISpeechAudio_get_Format(ISpeechAudio* This,ISpeechAudioFormat **AudioFormat) {
  13082     return This->lpVtbl->get_Format(This,AudioFormat);
  13083 }
  13084 static inline HRESULT ISpeechAudio_putref_Format(ISpeechAudio* This,ISpeechAudioFormat *AudioFormat) {
  13085     return This->lpVtbl->putref_Format(This,AudioFormat);
  13086 }
  13087 static inline HRESULT ISpeechAudio_Read(ISpeechAudio* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
  13088     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
  13089 }
  13090 static inline HRESULT ISpeechAudio_Write(ISpeechAudio* This,VARIANT Buffer,LONG *BytesWritten) {
  13091     return This->lpVtbl->Write(This,Buffer,BytesWritten);
  13092 }
  13093 static inline HRESULT ISpeechAudio_Seek(ISpeechAudio* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
  13094     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
  13095 }
  13096 /*** ISpeechAudio methods ***/
  13097 static inline HRESULT ISpeechAudio_get_Status(ISpeechAudio* This,ISpeechAudioStatus **Status) {
  13098     return This->lpVtbl->get_Status(This,Status);
  13099 }
  13100 static inline HRESULT ISpeechAudio_get_BufferInfo(ISpeechAudio* This,ISpeechAudioBufferInfo **BufferInfo) {
  13101     return This->lpVtbl->get_BufferInfo(This,BufferInfo);
  13102 }
  13103 static inline HRESULT ISpeechAudio_get_DefaultFormat(ISpeechAudio* This,ISpeechAudioFormat **StreamFormat) {
  13104     return This->lpVtbl->get_DefaultFormat(This,StreamFormat);
  13105 }
  13106 static inline HRESULT ISpeechAudio_get_Volume(ISpeechAudio* This,LONG *Volume) {
  13107     return This->lpVtbl->get_Volume(This,Volume);
  13108 }
  13109 static inline HRESULT ISpeechAudio_put_Volume(ISpeechAudio* This,LONG Volume) {
  13110     return This->lpVtbl->put_Volume(This,Volume);
  13111 }
  13112 static inline HRESULT ISpeechAudio_get_BufferNotifySize(ISpeechAudio* This,LONG *BufferNotifySize) {
  13113     return This->lpVtbl->get_BufferNotifySize(This,BufferNotifySize);
  13114 }
  13115 static inline HRESULT ISpeechAudio_put_BufferNotifySize(ISpeechAudio* This,LONG BufferNotifySize) {
  13116     return This->lpVtbl->put_BufferNotifySize(This,BufferNotifySize);
  13117 }
  13118 static inline HRESULT ISpeechAudio_get_EventHandle(ISpeechAudio* This,LONG *EventHandle) {
  13119     return This->lpVtbl->get_EventHandle(This,EventHandle);
  13120 }
  13121 static inline HRESULT ISpeechAudio_SetState(ISpeechAudio* This,SpeechAudioState State) {
  13122     return This->lpVtbl->SetState(This,State);
  13123 }
  13124 #endif
  13125 #endif
  13126 
  13127 #endif
  13128 
  13129 
  13130 #endif  /* __ISpeechAudio_INTERFACE_DEFINED__ */
  13131 
  13132 /*****************************************************************************
  13133  * ISpeechMMSysAudio interface
  13134  */
  13135 #ifndef __ISpeechMMSysAudio_INTERFACE_DEFINED__
  13136 #define __ISpeechMMSysAudio_INTERFACE_DEFINED__
  13137 
  13138 DEFINE_GUID(IID_ISpeechMMSysAudio, 0x3c76af6d, 0x1fd7, 0x4831, 0x81,0xd1, 0x3b,0x71,0xd5,0xa1,0x3c,0x44);
  13139 #if defined(__cplusplus) && !defined(CINTERFACE)
  13140 MIDL_INTERFACE("3c76af6d-1fd7-4831-81d1-3b71d5a13c44")
  13141 ISpeechMMSysAudio : public ISpeechAudio
  13142 {
  13143     virtual HRESULT STDMETHODCALLTYPE get_DeviceId(
  13144         LONG *DeviceId) = 0;
  13145 
  13146     virtual HRESULT STDMETHODCALLTYPE put_DeviceId(
  13147         LONG DeviceId) = 0;
  13148 
  13149     virtual HRESULT STDMETHODCALLTYPE get_LineId(
  13150         LONG *LineId) = 0;
  13151 
  13152     virtual HRESULT STDMETHODCALLTYPE put_LineId(
  13153         LONG LineId) = 0;
  13154 
  13155     virtual HRESULT STDMETHODCALLTYPE get_MMHandle(
  13156         LONG *Handle) = 0;
  13157 
  13158 };
  13159 #ifdef __CRT_UUID_DECL
  13160 __CRT_UUID_DECL(ISpeechMMSysAudio, 0x3c76af6d, 0x1fd7, 0x4831, 0x81,0xd1, 0x3b,0x71,0xd5,0xa1,0x3c,0x44)
  13161 #endif
  13162 #else
  13163 typedef struct ISpeechMMSysAudioVtbl {
  13164     BEGIN_INTERFACE
  13165 
  13166     /*** IUnknown methods ***/
  13167     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  13168         ISpeechMMSysAudio *This,
  13169         REFIID riid,
  13170         void **ppvObject);
  13171 
  13172     ULONG (STDMETHODCALLTYPE *AddRef)(
  13173         ISpeechMMSysAudio *This);
  13174 
  13175     ULONG (STDMETHODCALLTYPE *Release)(
  13176         ISpeechMMSysAudio *This);
  13177 
  13178     /*** IDispatch methods ***/
  13179     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  13180         ISpeechMMSysAudio *This,
  13181         UINT *pctinfo);
  13182 
  13183     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  13184         ISpeechMMSysAudio *This,
  13185         UINT iTInfo,
  13186         LCID lcid,
  13187         ITypeInfo **ppTInfo);
  13188 
  13189     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  13190         ISpeechMMSysAudio *This,
  13191         REFIID riid,
  13192         LPOLESTR *rgszNames,
  13193         UINT cNames,
  13194         LCID lcid,
  13195         DISPID *rgDispId);
  13196 
  13197     HRESULT (STDMETHODCALLTYPE *Invoke)(
  13198         ISpeechMMSysAudio *This,
  13199         DISPID dispIdMember,
  13200         REFIID riid,
  13201         LCID lcid,
  13202         WORD wFlags,
  13203         DISPPARAMS *pDispParams,
  13204         VARIANT *pVarResult,
  13205         EXCEPINFO *pExcepInfo,
  13206         UINT *puArgErr);
  13207 
  13208     /*** ISpeechBaseStream methods ***/
  13209     HRESULT (STDMETHODCALLTYPE *get_Format)(
  13210         ISpeechMMSysAudio *This,
  13211         ISpeechAudioFormat **AudioFormat);
  13212 
  13213     HRESULT (STDMETHODCALLTYPE *putref_Format)(
  13214         ISpeechMMSysAudio *This,
  13215         ISpeechAudioFormat *AudioFormat);
  13216 
  13217     HRESULT (STDMETHODCALLTYPE *Read)(
  13218         ISpeechMMSysAudio *This,
  13219         VARIANT *Buffer,
  13220         LONG NumberOfBytes,
  13221         LONG *BytesRead);
  13222 
  13223     HRESULT (STDMETHODCALLTYPE *Write)(
  13224         ISpeechMMSysAudio *This,
  13225         VARIANT Buffer,
  13226         LONG *BytesWritten);
  13227 
  13228     HRESULT (STDMETHODCALLTYPE *Seek)(
  13229         ISpeechMMSysAudio *This,
  13230         VARIANT Position,
  13231         SpeechStreamSeekPositionType Origin,
  13232         VARIANT *NewPosition);
  13233 
  13234     /*** ISpeechAudio methods ***/
  13235     HRESULT (STDMETHODCALLTYPE *get_Status)(
  13236         ISpeechMMSysAudio *This,
  13237         ISpeechAudioStatus **Status);
  13238 
  13239     HRESULT (STDMETHODCALLTYPE *get_BufferInfo)(
  13240         ISpeechMMSysAudio *This,
  13241         ISpeechAudioBufferInfo **BufferInfo);
  13242 
  13243     HRESULT (STDMETHODCALLTYPE *get_DefaultFormat)(
  13244         ISpeechMMSysAudio *This,
  13245         ISpeechAudioFormat **StreamFormat);
  13246 
  13247     HRESULT (STDMETHODCALLTYPE *get_Volume)(
  13248         ISpeechMMSysAudio *This,
  13249         LONG *Volume);
  13250 
  13251     HRESULT (STDMETHODCALLTYPE *put_Volume)(
  13252         ISpeechMMSysAudio *This,
  13253         LONG Volume);
  13254 
  13255     HRESULT (STDMETHODCALLTYPE *get_BufferNotifySize)(
  13256         ISpeechMMSysAudio *This,
  13257         LONG *BufferNotifySize);
  13258 
  13259     HRESULT (STDMETHODCALLTYPE *put_BufferNotifySize)(
  13260         ISpeechMMSysAudio *This,
  13261         LONG BufferNotifySize);
  13262 
  13263     HRESULT (STDMETHODCALLTYPE *get_EventHandle)(
  13264         ISpeechMMSysAudio *This,
  13265         LONG *EventHandle);
  13266 
  13267     HRESULT (STDMETHODCALLTYPE *SetState)(
  13268         ISpeechMMSysAudio *This,
  13269         SpeechAudioState State);
  13270 
  13271     /*** ISpeechMMSysAudio methods ***/
  13272     HRESULT (STDMETHODCALLTYPE *get_DeviceId)(
  13273         ISpeechMMSysAudio *This,
  13274         LONG *DeviceId);
  13275 
  13276     HRESULT (STDMETHODCALLTYPE *put_DeviceId)(
  13277         ISpeechMMSysAudio *This,
  13278         LONG DeviceId);
  13279 
  13280     HRESULT (STDMETHODCALLTYPE *get_LineId)(
  13281         ISpeechMMSysAudio *This,
  13282         LONG *LineId);
  13283 
  13284     HRESULT (STDMETHODCALLTYPE *put_LineId)(
  13285         ISpeechMMSysAudio *This,
  13286         LONG LineId);
  13287 
  13288     HRESULT (STDMETHODCALLTYPE *get_MMHandle)(
  13289         ISpeechMMSysAudio *This,
  13290         LONG *Handle);
  13291 
  13292     END_INTERFACE
  13293 } ISpeechMMSysAudioVtbl;
  13294 
  13295 interface ISpeechMMSysAudio {
  13296     CONST_VTBL ISpeechMMSysAudioVtbl* lpVtbl;
  13297 };
  13298 
  13299 #ifdef COBJMACROS
  13300 #ifndef WIDL_C_INLINE_WRAPPERS
  13301 /*** IUnknown methods ***/
  13302 #define ISpeechMMSysAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13303 #define ISpeechMMSysAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
  13304 #define ISpeechMMSysAudio_Release(This) (This)->lpVtbl->Release(This)
  13305 /*** IDispatch methods ***/
  13306 #define ISpeechMMSysAudio_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  13307 #define ISpeechMMSysAudio_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  13308 #define ISpeechMMSysAudio_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  13309 #define ISpeechMMSysAudio_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  13310 /*** ISpeechBaseStream methods ***/
  13311 #define ISpeechMMSysAudio_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
  13312 #define ISpeechMMSysAudio_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
  13313 #define ISpeechMMSysAudio_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
  13314 #define ISpeechMMSysAudio_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
  13315 #define ISpeechMMSysAudio_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
  13316 /*** ISpeechAudio methods ***/
  13317 #define ISpeechMMSysAudio_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
  13318 #define ISpeechMMSysAudio_get_BufferInfo(This,BufferInfo) (This)->lpVtbl->get_BufferInfo(This,BufferInfo)
  13319 #define ISpeechMMSysAudio_get_DefaultFormat(This,StreamFormat) (This)->lpVtbl->get_DefaultFormat(This,StreamFormat)
  13320 #define ISpeechMMSysAudio_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
  13321 #define ISpeechMMSysAudio_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
  13322 #define ISpeechMMSysAudio_get_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->get_BufferNotifySize(This,BufferNotifySize)
  13323 #define ISpeechMMSysAudio_put_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->put_BufferNotifySize(This,BufferNotifySize)
  13324 #define ISpeechMMSysAudio_get_EventHandle(This,EventHandle) (This)->lpVtbl->get_EventHandle(This,EventHandle)
  13325 #define ISpeechMMSysAudio_SetState(This,State) (This)->lpVtbl->SetState(This,State)
  13326 /*** ISpeechMMSysAudio methods ***/
  13327 #define ISpeechMMSysAudio_get_DeviceId(This,DeviceId) (This)->lpVtbl->get_DeviceId(This,DeviceId)
  13328 #define ISpeechMMSysAudio_put_DeviceId(This,DeviceId) (This)->lpVtbl->put_DeviceId(This,DeviceId)
  13329 #define ISpeechMMSysAudio_get_LineId(This,LineId) (This)->lpVtbl->get_LineId(This,LineId)
  13330 #define ISpeechMMSysAudio_put_LineId(This,LineId) (This)->lpVtbl->put_LineId(This,LineId)
  13331 #define ISpeechMMSysAudio_get_MMHandle(This,Handle) (This)->lpVtbl->get_MMHandle(This,Handle)
  13332 #else
  13333 /*** IUnknown methods ***/
  13334 static inline HRESULT ISpeechMMSysAudio_QueryInterface(ISpeechMMSysAudio* This,REFIID riid,void **ppvObject) {
  13335     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  13336 }
  13337 static inline ULONG ISpeechMMSysAudio_AddRef(ISpeechMMSysAudio* This) {
  13338     return This->lpVtbl->AddRef(This);
  13339 }
  13340 static inline ULONG ISpeechMMSysAudio_Release(ISpeechMMSysAudio* This) {
  13341     return This->lpVtbl->Release(This);
  13342 }
  13343 /*** IDispatch methods ***/
  13344 static inline HRESULT ISpeechMMSysAudio_GetTypeInfoCount(ISpeechMMSysAudio* This,UINT *pctinfo) {
  13345     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  13346 }
  13347 static inline HRESULT ISpeechMMSysAudio_GetTypeInfo(ISpeechMMSysAudio* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  13348     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  13349 }
  13350 static inline HRESULT ISpeechMMSysAudio_GetIDsOfNames(ISpeechMMSysAudio* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  13351     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  13352 }
  13353 static inline HRESULT ISpeechMMSysAudio_Invoke(ISpeechMMSysAudio* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  13354     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  13355 }
  13356 /*** ISpeechBaseStream methods ***/
  13357 static inline HRESULT ISpeechMMSysAudio_get_Format(ISpeechMMSysAudio* This,ISpeechAudioFormat **AudioFormat) {
  13358     return This->lpVtbl->get_Format(This,AudioFormat);
  13359 }
  13360 static inline HRESULT ISpeechMMSysAudio_putref_Format(ISpeechMMSysAudio* This,ISpeechAudioFormat *AudioFormat) {
  13361     return This->lpVtbl->putref_Format(This,AudioFormat);
  13362 }
  13363 static inline HRESULT ISpeechMMSysAudio_Read(ISpeechMMSysAudio* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
  13364     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
  13365 }
  13366 static inline HRESULT ISpeechMMSysAudio_Write(ISpeechMMSysAudio* This,VARIANT Buffer,LONG *BytesWritten) {
  13367     return This->lpVtbl->Write(This,Buffer,BytesWritten);
  13368 }
  13369 static inline HRESULT ISpeechMMSysAudio_Seek(ISpeechMMSysAudio* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
  13370     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
  13371 }
  13372 /*** ISpeechAudio methods ***/
  13373 static inline HRESULT ISpeechMMSysAudio_get_Status(ISpeechMMSysAudio* This,ISpeechAudioStatus **Status) {
  13374     return This->lpVtbl->get_Status(This,Status);
  13375 }
  13376 static inline HRESULT ISpeechMMSysAudio_get_BufferInfo(ISpeechMMSysAudio* This,ISpeechAudioBufferInfo **BufferInfo) {
  13377     return This->lpVtbl->get_BufferInfo(This,BufferInfo);
  13378 }
  13379 static inline HRESULT ISpeechMMSysAudio_get_DefaultFormat(ISpeechMMSysAudio* This,ISpeechAudioFormat **StreamFormat) {
  13380     return This->lpVtbl->get_DefaultFormat(This,StreamFormat);
  13381 }
  13382 static inline HRESULT ISpeechMMSysAudio_get_Volume(ISpeechMMSysAudio* This,LONG *Volume) {
  13383     return This->lpVtbl->get_Volume(This,Volume);
  13384 }
  13385 static inline HRESULT ISpeechMMSysAudio_put_Volume(ISpeechMMSysAudio* This,LONG Volume) {
  13386     return This->lpVtbl->put_Volume(This,Volume);
  13387 }
  13388 static inline HRESULT ISpeechMMSysAudio_get_BufferNotifySize(ISpeechMMSysAudio* This,LONG *BufferNotifySize) {
  13389     return This->lpVtbl->get_BufferNotifySize(This,BufferNotifySize);
  13390 }
  13391 static inline HRESULT ISpeechMMSysAudio_put_BufferNotifySize(ISpeechMMSysAudio* This,LONG BufferNotifySize) {
  13392     return This->lpVtbl->put_BufferNotifySize(This,BufferNotifySize);
  13393 }
  13394 static inline HRESULT ISpeechMMSysAudio_get_EventHandle(ISpeechMMSysAudio* This,LONG *EventHandle) {
  13395     return This->lpVtbl->get_EventHandle(This,EventHandle);
  13396 }
  13397 static inline HRESULT ISpeechMMSysAudio_SetState(ISpeechMMSysAudio* This,SpeechAudioState State) {
  13398     return This->lpVtbl->SetState(This,State);
  13399 }
  13400 /*** ISpeechMMSysAudio methods ***/
  13401 static inline HRESULT ISpeechMMSysAudio_get_DeviceId(ISpeechMMSysAudio* This,LONG *DeviceId) {
  13402     return This->lpVtbl->get_DeviceId(This,DeviceId);
  13403 }
  13404 static inline HRESULT ISpeechMMSysAudio_put_DeviceId(ISpeechMMSysAudio* This,LONG DeviceId) {
  13405     return This->lpVtbl->put_DeviceId(This,DeviceId);
  13406 }
  13407 static inline HRESULT ISpeechMMSysAudio_get_LineId(ISpeechMMSysAudio* This,LONG *LineId) {
  13408     return This->lpVtbl->get_LineId(This,LineId);
  13409 }
  13410 static inline HRESULT ISpeechMMSysAudio_put_LineId(ISpeechMMSysAudio* This,LONG LineId) {
  13411     return This->lpVtbl->put_LineId(This,LineId);
  13412 }
  13413 static inline HRESULT ISpeechMMSysAudio_get_MMHandle(ISpeechMMSysAudio* This,LONG *Handle) {
  13414     return This->lpVtbl->get_MMHandle(This,Handle);
  13415 }
  13416 #endif
  13417 #endif
  13418 
  13419 #endif
  13420 
  13421 
  13422 #endif  /* __ISpeechMMSysAudio_INTERFACE_DEFINED__ */
  13423 
  13424 /*****************************************************************************
  13425  * ISpeechFileStream interface
  13426  */
  13427 #ifndef __ISpeechFileStream_INTERFACE_DEFINED__
  13428 #define __ISpeechFileStream_INTERFACE_DEFINED__
  13429 
  13430 DEFINE_GUID(IID_ISpeechFileStream, 0xaf67f125, 0xab39, 0x4e93, 0xb4,0xa2, 0xcc,0x2e,0x66,0xe1,0x82,0xa7);
  13431 #if defined(__cplusplus) && !defined(CINTERFACE)
  13432 MIDL_INTERFACE("af67f125-ab39-4e93-b4a2-cc2e66e182a7")
  13433 ISpeechFileStream : public ISpeechBaseStream
  13434 {
  13435     virtual HRESULT STDMETHODCALLTYPE Open(
  13436         BSTR FileName,
  13437         SpeechStreamFileMode FileMode = SSFMOpenForRead,
  13438         VARIANT_BOOL DoEvents = 0) = 0;
  13439 
  13440     virtual HRESULT STDMETHODCALLTYPE Close(
  13441         ) = 0;
  13442 
  13443 };
  13444 #ifdef __CRT_UUID_DECL
  13445 __CRT_UUID_DECL(ISpeechFileStream, 0xaf67f125, 0xab39, 0x4e93, 0xb4,0xa2, 0xcc,0x2e,0x66,0xe1,0x82,0xa7)
  13446 #endif
  13447 #else
  13448 typedef struct ISpeechFileStreamVtbl {
  13449     BEGIN_INTERFACE
  13450 
  13451     /*** IUnknown methods ***/
  13452     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  13453         ISpeechFileStream *This,
  13454         REFIID riid,
  13455         void **ppvObject);
  13456 
  13457     ULONG (STDMETHODCALLTYPE *AddRef)(
  13458         ISpeechFileStream *This);
  13459 
  13460     ULONG (STDMETHODCALLTYPE *Release)(
  13461         ISpeechFileStream *This);
  13462 
  13463     /*** IDispatch methods ***/
  13464     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  13465         ISpeechFileStream *This,
  13466         UINT *pctinfo);
  13467 
  13468     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  13469         ISpeechFileStream *This,
  13470         UINT iTInfo,
  13471         LCID lcid,
  13472         ITypeInfo **ppTInfo);
  13473 
  13474     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  13475         ISpeechFileStream *This,
  13476         REFIID riid,
  13477         LPOLESTR *rgszNames,
  13478         UINT cNames,
  13479         LCID lcid,
  13480         DISPID *rgDispId);
  13481 
  13482     HRESULT (STDMETHODCALLTYPE *Invoke)(
  13483         ISpeechFileStream *This,
  13484         DISPID dispIdMember,
  13485         REFIID riid,
  13486         LCID lcid,
  13487         WORD wFlags,
  13488         DISPPARAMS *pDispParams,
  13489         VARIANT *pVarResult,
  13490         EXCEPINFO *pExcepInfo,
  13491         UINT *puArgErr);
  13492 
  13493     /*** ISpeechBaseStream methods ***/
  13494     HRESULT (STDMETHODCALLTYPE *get_Format)(
  13495         ISpeechFileStream *This,
  13496         ISpeechAudioFormat **AudioFormat);
  13497 
  13498     HRESULT (STDMETHODCALLTYPE *putref_Format)(
  13499         ISpeechFileStream *This,
  13500         ISpeechAudioFormat *AudioFormat);
  13501 
  13502     HRESULT (STDMETHODCALLTYPE *Read)(
  13503         ISpeechFileStream *This,
  13504         VARIANT *Buffer,
  13505         LONG NumberOfBytes,
  13506         LONG *BytesRead);
  13507 
  13508     HRESULT (STDMETHODCALLTYPE *Write)(
  13509         ISpeechFileStream *This,
  13510         VARIANT Buffer,
  13511         LONG *BytesWritten);
  13512 
  13513     HRESULT (STDMETHODCALLTYPE *Seek)(
  13514         ISpeechFileStream *This,
  13515         VARIANT Position,
  13516         SpeechStreamSeekPositionType Origin,
  13517         VARIANT *NewPosition);
  13518 
  13519     /*** ISpeechFileStream methods ***/
  13520     HRESULT (STDMETHODCALLTYPE *Open)(
  13521         ISpeechFileStream *This,
  13522         BSTR FileName,
  13523         SpeechStreamFileMode FileMode,
  13524         VARIANT_BOOL DoEvents);
  13525 
  13526     HRESULT (STDMETHODCALLTYPE *Close)(
  13527         ISpeechFileStream *This);
  13528 
  13529     END_INTERFACE
  13530 } ISpeechFileStreamVtbl;
  13531 
  13532 interface ISpeechFileStream {
  13533     CONST_VTBL ISpeechFileStreamVtbl* lpVtbl;
  13534 };
  13535 
  13536 #ifdef COBJMACROS
  13537 #ifndef WIDL_C_INLINE_WRAPPERS
  13538 /*** IUnknown methods ***/
  13539 #define ISpeechFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13540 #define ISpeechFileStream_AddRef(This) (This)->lpVtbl->AddRef(This)
  13541 #define ISpeechFileStream_Release(This) (This)->lpVtbl->Release(This)
  13542 /*** IDispatch methods ***/
  13543 #define ISpeechFileStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  13544 #define ISpeechFileStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  13545 #define ISpeechFileStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  13546 #define ISpeechFileStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  13547 /*** ISpeechBaseStream methods ***/
  13548 #define ISpeechFileStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
  13549 #define ISpeechFileStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
  13550 #define ISpeechFileStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
  13551 #define ISpeechFileStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
  13552 #define ISpeechFileStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
  13553 /*** ISpeechFileStream methods ***/
  13554 #define ISpeechFileStream_Open(This,FileName,FileMode,DoEvents) (This)->lpVtbl->Open(This,FileName,FileMode,DoEvents)
  13555 #define ISpeechFileStream_Close(This) (This)->lpVtbl->Close(This)
  13556 #else
  13557 /*** IUnknown methods ***/
  13558 static inline HRESULT ISpeechFileStream_QueryInterface(ISpeechFileStream* This,REFIID riid,void **ppvObject) {
  13559     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  13560 }
  13561 static inline ULONG ISpeechFileStream_AddRef(ISpeechFileStream* This) {
  13562     return This->lpVtbl->AddRef(This);
  13563 }
  13564 static inline ULONG ISpeechFileStream_Release(ISpeechFileStream* This) {
  13565     return This->lpVtbl->Release(This);
  13566 }
  13567 /*** IDispatch methods ***/
  13568 static inline HRESULT ISpeechFileStream_GetTypeInfoCount(ISpeechFileStream* This,UINT *pctinfo) {
  13569     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  13570 }
  13571 static inline HRESULT ISpeechFileStream_GetTypeInfo(ISpeechFileStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  13572     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  13573 }
  13574 static inline HRESULT ISpeechFileStream_GetIDsOfNames(ISpeechFileStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  13575     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  13576 }
  13577 static inline HRESULT ISpeechFileStream_Invoke(ISpeechFileStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  13578     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  13579 }
  13580 /*** ISpeechBaseStream methods ***/
  13581 static inline HRESULT ISpeechFileStream_get_Format(ISpeechFileStream* This,ISpeechAudioFormat **AudioFormat) {
  13582     return This->lpVtbl->get_Format(This,AudioFormat);
  13583 }
  13584 static inline HRESULT ISpeechFileStream_putref_Format(ISpeechFileStream* This,ISpeechAudioFormat *AudioFormat) {
  13585     return This->lpVtbl->putref_Format(This,AudioFormat);
  13586 }
  13587 static inline HRESULT ISpeechFileStream_Read(ISpeechFileStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
  13588     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
  13589 }
  13590 static inline HRESULT ISpeechFileStream_Write(ISpeechFileStream* This,VARIANT Buffer,LONG *BytesWritten) {
  13591     return This->lpVtbl->Write(This,Buffer,BytesWritten);
  13592 }
  13593 static inline HRESULT ISpeechFileStream_Seek(ISpeechFileStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
  13594     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
  13595 }
  13596 /*** ISpeechFileStream methods ***/
  13597 static inline HRESULT ISpeechFileStream_Open(ISpeechFileStream* This,BSTR FileName,SpeechStreamFileMode FileMode,VARIANT_BOOL DoEvents) {
  13598     return This->lpVtbl->Open(This,FileName,FileMode,DoEvents);
  13599 }
  13600 static inline HRESULT ISpeechFileStream_Close(ISpeechFileStream* This) {
  13601     return This->lpVtbl->Close(This);
  13602 }
  13603 #endif
  13604 #endif
  13605 
  13606 #endif
  13607 
  13608 
  13609 #endif  /* __ISpeechFileStream_INTERFACE_DEFINED__ */
  13610 
  13611 /*****************************************************************************
  13612  * ISpeechCustomStream interface
  13613  */
  13614 #ifndef __ISpeechCustomStream_INTERFACE_DEFINED__
  13615 #define __ISpeechCustomStream_INTERFACE_DEFINED__
  13616 
  13617 DEFINE_GUID(IID_ISpeechCustomStream, 0x1a9e9f4f, 0x104f, 0x4db8, 0xa1,0x15, 0xef,0xd7,0xfd,0x0c,0x97,0xae);
  13618 #if defined(__cplusplus) && !defined(CINTERFACE)
  13619 MIDL_INTERFACE("1a9e9f4f-104f-4db8-a115-efd7fd0c97ae")
  13620 ISpeechCustomStream : public ISpeechBaseStream
  13621 {
  13622     virtual HRESULT STDMETHODCALLTYPE get_BaseStream(
  13623         IUnknown **ppUnkStream) = 0;
  13624 
  13625     virtual HRESULT STDMETHODCALLTYPE putref_BaseStream(
  13626         IUnknown *pUnkStream) = 0;
  13627 
  13628 };
  13629 #ifdef __CRT_UUID_DECL
  13630 __CRT_UUID_DECL(ISpeechCustomStream, 0x1a9e9f4f, 0x104f, 0x4db8, 0xa1,0x15, 0xef,0xd7,0xfd,0x0c,0x97,0xae)
  13631 #endif
  13632 #else
  13633 typedef struct ISpeechCustomStreamVtbl {
  13634     BEGIN_INTERFACE
  13635 
  13636     /*** IUnknown methods ***/
  13637     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  13638         ISpeechCustomStream *This,
  13639         REFIID riid,
  13640         void **ppvObject);
  13641 
  13642     ULONG (STDMETHODCALLTYPE *AddRef)(
  13643         ISpeechCustomStream *This);
  13644 
  13645     ULONG (STDMETHODCALLTYPE *Release)(
  13646         ISpeechCustomStream *This);
  13647 
  13648     /*** IDispatch methods ***/
  13649     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  13650         ISpeechCustomStream *This,
  13651         UINT *pctinfo);
  13652 
  13653     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  13654         ISpeechCustomStream *This,
  13655         UINT iTInfo,
  13656         LCID lcid,
  13657         ITypeInfo **ppTInfo);
  13658 
  13659     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  13660         ISpeechCustomStream *This,
  13661         REFIID riid,
  13662         LPOLESTR *rgszNames,
  13663         UINT cNames,
  13664         LCID lcid,
  13665         DISPID *rgDispId);
  13666 
  13667     HRESULT (STDMETHODCALLTYPE *Invoke)(
  13668         ISpeechCustomStream *This,
  13669         DISPID dispIdMember,
  13670         REFIID riid,
  13671         LCID lcid,
  13672         WORD wFlags,
  13673         DISPPARAMS *pDispParams,
  13674         VARIANT *pVarResult,
  13675         EXCEPINFO *pExcepInfo,
  13676         UINT *puArgErr);
  13677 
  13678     /*** ISpeechBaseStream methods ***/
  13679     HRESULT (STDMETHODCALLTYPE *get_Format)(
  13680         ISpeechCustomStream *This,
  13681         ISpeechAudioFormat **AudioFormat);
  13682 
  13683     HRESULT (STDMETHODCALLTYPE *putref_Format)(
  13684         ISpeechCustomStream *This,
  13685         ISpeechAudioFormat *AudioFormat);
  13686 
  13687     HRESULT (STDMETHODCALLTYPE *Read)(
  13688         ISpeechCustomStream *This,
  13689         VARIANT *Buffer,
  13690         LONG NumberOfBytes,
  13691         LONG *BytesRead);
  13692 
  13693     HRESULT (STDMETHODCALLTYPE *Write)(
  13694         ISpeechCustomStream *This,
  13695         VARIANT Buffer,
  13696         LONG *BytesWritten);
  13697 
  13698     HRESULT (STDMETHODCALLTYPE *Seek)(
  13699         ISpeechCustomStream *This,
  13700         VARIANT Position,
  13701         SpeechStreamSeekPositionType Origin,
  13702         VARIANT *NewPosition);
  13703 
  13704     /*** ISpeechCustomStream methods ***/
  13705     HRESULT (STDMETHODCALLTYPE *get_BaseStream)(
  13706         ISpeechCustomStream *This,
  13707         IUnknown **ppUnkStream);
  13708 
  13709     HRESULT (STDMETHODCALLTYPE *putref_BaseStream)(
  13710         ISpeechCustomStream *This,
  13711         IUnknown *pUnkStream);
  13712 
  13713     END_INTERFACE
  13714 } ISpeechCustomStreamVtbl;
  13715 
  13716 interface ISpeechCustomStream {
  13717     CONST_VTBL ISpeechCustomStreamVtbl* lpVtbl;
  13718 };
  13719 
  13720 #ifdef COBJMACROS
  13721 #ifndef WIDL_C_INLINE_WRAPPERS
  13722 /*** IUnknown methods ***/
  13723 #define ISpeechCustomStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13724 #define ISpeechCustomStream_AddRef(This) (This)->lpVtbl->AddRef(This)
  13725 #define ISpeechCustomStream_Release(This) (This)->lpVtbl->Release(This)
  13726 /*** IDispatch methods ***/
  13727 #define ISpeechCustomStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  13728 #define ISpeechCustomStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  13729 #define ISpeechCustomStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  13730 #define ISpeechCustomStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  13731 /*** ISpeechBaseStream methods ***/
  13732 #define ISpeechCustomStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
  13733 #define ISpeechCustomStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
  13734 #define ISpeechCustomStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
  13735 #define ISpeechCustomStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
  13736 #define ISpeechCustomStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
  13737 /*** ISpeechCustomStream methods ***/
  13738 #define ISpeechCustomStream_get_BaseStream(This,ppUnkStream) (This)->lpVtbl->get_BaseStream(This,ppUnkStream)
  13739 #define ISpeechCustomStream_putref_BaseStream(This,pUnkStream) (This)->lpVtbl->putref_BaseStream(This,pUnkStream)
  13740 #else
  13741 /*** IUnknown methods ***/
  13742 static inline HRESULT ISpeechCustomStream_QueryInterface(ISpeechCustomStream* This,REFIID riid,void **ppvObject) {
  13743     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  13744 }
  13745 static inline ULONG ISpeechCustomStream_AddRef(ISpeechCustomStream* This) {
  13746     return This->lpVtbl->AddRef(This);
  13747 }
  13748 static inline ULONG ISpeechCustomStream_Release(ISpeechCustomStream* This) {
  13749     return This->lpVtbl->Release(This);
  13750 }
  13751 /*** IDispatch methods ***/
  13752 static inline HRESULT ISpeechCustomStream_GetTypeInfoCount(ISpeechCustomStream* This,UINT *pctinfo) {
  13753     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  13754 }
  13755 static inline HRESULT ISpeechCustomStream_GetTypeInfo(ISpeechCustomStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  13756     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  13757 }
  13758 static inline HRESULT ISpeechCustomStream_GetIDsOfNames(ISpeechCustomStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  13759     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  13760 }
  13761 static inline HRESULT ISpeechCustomStream_Invoke(ISpeechCustomStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  13762     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  13763 }
  13764 /*** ISpeechBaseStream methods ***/
  13765 static inline HRESULT ISpeechCustomStream_get_Format(ISpeechCustomStream* This,ISpeechAudioFormat **AudioFormat) {
  13766     return This->lpVtbl->get_Format(This,AudioFormat);
  13767 }
  13768 static inline HRESULT ISpeechCustomStream_putref_Format(ISpeechCustomStream* This,ISpeechAudioFormat *AudioFormat) {
  13769     return This->lpVtbl->putref_Format(This,AudioFormat);
  13770 }
  13771 static inline HRESULT ISpeechCustomStream_Read(ISpeechCustomStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
  13772     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
  13773 }
  13774 static inline HRESULT ISpeechCustomStream_Write(ISpeechCustomStream* This,VARIANT Buffer,LONG *BytesWritten) {
  13775     return This->lpVtbl->Write(This,Buffer,BytesWritten);
  13776 }
  13777 static inline HRESULT ISpeechCustomStream_Seek(ISpeechCustomStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
  13778     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
  13779 }
  13780 /*** ISpeechCustomStream methods ***/
  13781 static inline HRESULT ISpeechCustomStream_get_BaseStream(ISpeechCustomStream* This,IUnknown **ppUnkStream) {
  13782     return This->lpVtbl->get_BaseStream(This,ppUnkStream);
  13783 }
  13784 static inline HRESULT ISpeechCustomStream_putref_BaseStream(ISpeechCustomStream* This,IUnknown *pUnkStream) {
  13785     return This->lpVtbl->putref_BaseStream(This,pUnkStream);
  13786 }
  13787 #endif
  13788 #endif
  13789 
  13790 #endif
  13791 
  13792 
  13793 #endif  /* __ISpeechCustomStream_INTERFACE_DEFINED__ */
  13794 
  13795 /*****************************************************************************
  13796  * ISpeechMemoryStream interface
  13797  */
  13798 #ifndef __ISpeechMemoryStream_INTERFACE_DEFINED__
  13799 #define __ISpeechMemoryStream_INTERFACE_DEFINED__
  13800 
  13801 DEFINE_GUID(IID_ISpeechMemoryStream, 0xeeb14b68, 0x808b, 0x4abe, 0xa5,0xea, 0xb5,0x1d,0xa7,0x58,0x80,0x08);
  13802 #if defined(__cplusplus) && !defined(CINTERFACE)
  13803 MIDL_INTERFACE("eeb14b68-808b-4abe-a5ea-b51da7588008")
  13804 ISpeechMemoryStream : public ISpeechBaseStream
  13805 {
  13806     virtual HRESULT STDMETHODCALLTYPE SetData(
  13807         VARIANT Data) = 0;
  13808 
  13809     virtual HRESULT STDMETHODCALLTYPE GetData(
  13810         VARIANT *pData) = 0;
  13811 
  13812 };
  13813 #ifdef __CRT_UUID_DECL
  13814 __CRT_UUID_DECL(ISpeechMemoryStream, 0xeeb14b68, 0x808b, 0x4abe, 0xa5,0xea, 0xb5,0x1d,0xa7,0x58,0x80,0x08)
  13815 #endif
  13816 #else
  13817 typedef struct ISpeechMemoryStreamVtbl {
  13818     BEGIN_INTERFACE
  13819 
  13820     /*** IUnknown methods ***/
  13821     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  13822         ISpeechMemoryStream *This,
  13823         REFIID riid,
  13824         void **ppvObject);
  13825 
  13826     ULONG (STDMETHODCALLTYPE *AddRef)(
  13827         ISpeechMemoryStream *This);
  13828 
  13829     ULONG (STDMETHODCALLTYPE *Release)(
  13830         ISpeechMemoryStream *This);
  13831 
  13832     /*** IDispatch methods ***/
  13833     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  13834         ISpeechMemoryStream *This,
  13835         UINT *pctinfo);
  13836 
  13837     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  13838         ISpeechMemoryStream *This,
  13839         UINT iTInfo,
  13840         LCID lcid,
  13841         ITypeInfo **ppTInfo);
  13842 
  13843     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  13844         ISpeechMemoryStream *This,
  13845         REFIID riid,
  13846         LPOLESTR *rgszNames,
  13847         UINT cNames,
  13848         LCID lcid,
  13849         DISPID *rgDispId);
  13850 
  13851     HRESULT (STDMETHODCALLTYPE *Invoke)(
  13852         ISpeechMemoryStream *This,
  13853         DISPID dispIdMember,
  13854         REFIID riid,
  13855         LCID lcid,
  13856         WORD wFlags,
  13857         DISPPARAMS *pDispParams,
  13858         VARIANT *pVarResult,
  13859         EXCEPINFO *pExcepInfo,
  13860         UINT *puArgErr);
  13861 
  13862     /*** ISpeechBaseStream methods ***/
  13863     HRESULT (STDMETHODCALLTYPE *get_Format)(
  13864         ISpeechMemoryStream *This,
  13865         ISpeechAudioFormat **AudioFormat);
  13866 
  13867     HRESULT (STDMETHODCALLTYPE *putref_Format)(
  13868         ISpeechMemoryStream *This,
  13869         ISpeechAudioFormat *AudioFormat);
  13870 
  13871     HRESULT (STDMETHODCALLTYPE *Read)(
  13872         ISpeechMemoryStream *This,
  13873         VARIANT *Buffer,
  13874         LONG NumberOfBytes,
  13875         LONG *BytesRead);
  13876 
  13877     HRESULT (STDMETHODCALLTYPE *Write)(
  13878         ISpeechMemoryStream *This,
  13879         VARIANT Buffer,
  13880         LONG *BytesWritten);
  13881 
  13882     HRESULT (STDMETHODCALLTYPE *Seek)(
  13883         ISpeechMemoryStream *This,
  13884         VARIANT Position,
  13885         SpeechStreamSeekPositionType Origin,
  13886         VARIANT *NewPosition);
  13887 
  13888     /*** ISpeechMemoryStream methods ***/
  13889     HRESULT (STDMETHODCALLTYPE *SetData)(
  13890         ISpeechMemoryStream *This,
  13891         VARIANT Data);
  13892 
  13893     HRESULT (STDMETHODCALLTYPE *GetData)(
  13894         ISpeechMemoryStream *This,
  13895         VARIANT *pData);
  13896 
  13897     END_INTERFACE
  13898 } ISpeechMemoryStreamVtbl;
  13899 
  13900 interface ISpeechMemoryStream {
  13901     CONST_VTBL ISpeechMemoryStreamVtbl* lpVtbl;
  13902 };
  13903 
  13904 #ifdef COBJMACROS
  13905 #ifndef WIDL_C_INLINE_WRAPPERS
  13906 /*** IUnknown methods ***/
  13907 #define ISpeechMemoryStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13908 #define ISpeechMemoryStream_AddRef(This) (This)->lpVtbl->AddRef(This)
  13909 #define ISpeechMemoryStream_Release(This) (This)->lpVtbl->Release(This)
  13910 /*** IDispatch methods ***/
  13911 #define ISpeechMemoryStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  13912 #define ISpeechMemoryStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  13913 #define ISpeechMemoryStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  13914 #define ISpeechMemoryStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  13915 /*** ISpeechBaseStream methods ***/
  13916 #define ISpeechMemoryStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
  13917 #define ISpeechMemoryStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
  13918 #define ISpeechMemoryStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
  13919 #define ISpeechMemoryStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
  13920 #define ISpeechMemoryStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
  13921 /*** ISpeechMemoryStream methods ***/
  13922 #define ISpeechMemoryStream_SetData(This,Data) (This)->lpVtbl->SetData(This,Data)
  13923 #define ISpeechMemoryStream_GetData(This,pData) (This)->lpVtbl->GetData(This,pData)
  13924 #else
  13925 /*** IUnknown methods ***/
  13926 static inline HRESULT ISpeechMemoryStream_QueryInterface(ISpeechMemoryStream* This,REFIID riid,void **ppvObject) {
  13927     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  13928 }
  13929 static inline ULONG ISpeechMemoryStream_AddRef(ISpeechMemoryStream* This) {
  13930     return This->lpVtbl->AddRef(This);
  13931 }
  13932 static inline ULONG ISpeechMemoryStream_Release(ISpeechMemoryStream* This) {
  13933     return This->lpVtbl->Release(This);
  13934 }
  13935 /*** IDispatch methods ***/
  13936 static inline HRESULT ISpeechMemoryStream_GetTypeInfoCount(ISpeechMemoryStream* This,UINT *pctinfo) {
  13937     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  13938 }
  13939 static inline HRESULT ISpeechMemoryStream_GetTypeInfo(ISpeechMemoryStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  13940     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  13941 }
  13942 static inline HRESULT ISpeechMemoryStream_GetIDsOfNames(ISpeechMemoryStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  13943     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  13944 }
  13945 static inline HRESULT ISpeechMemoryStream_Invoke(ISpeechMemoryStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  13946     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  13947 }
  13948 /*** ISpeechBaseStream methods ***/
  13949 static inline HRESULT ISpeechMemoryStream_get_Format(ISpeechMemoryStream* This,ISpeechAudioFormat **AudioFormat) {
  13950     return This->lpVtbl->get_Format(This,AudioFormat);
  13951 }
  13952 static inline HRESULT ISpeechMemoryStream_putref_Format(ISpeechMemoryStream* This,ISpeechAudioFormat *AudioFormat) {
  13953     return This->lpVtbl->putref_Format(This,AudioFormat);
  13954 }
  13955 static inline HRESULT ISpeechMemoryStream_Read(ISpeechMemoryStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
  13956     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
  13957 }
  13958 static inline HRESULT ISpeechMemoryStream_Write(ISpeechMemoryStream* This,VARIANT Buffer,LONG *BytesWritten) {
  13959     return This->lpVtbl->Write(This,Buffer,BytesWritten);
  13960 }
  13961 static inline HRESULT ISpeechMemoryStream_Seek(ISpeechMemoryStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
  13962     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
  13963 }
  13964 /*** ISpeechMemoryStream methods ***/
  13965 static inline HRESULT ISpeechMemoryStream_SetData(ISpeechMemoryStream* This,VARIANT Data) {
  13966     return This->lpVtbl->SetData(This,Data);
  13967 }
  13968 static inline HRESULT ISpeechMemoryStream_GetData(ISpeechMemoryStream* This,VARIANT *pData) {
  13969     return This->lpVtbl->GetData(This,pData);
  13970 }
  13971 #endif
  13972 #endif
  13973 
  13974 #endif
  13975 
  13976 
  13977 #endif  /* __ISpeechMemoryStream_INTERFACE_DEFINED__ */
  13978 
  13979 /*****************************************************************************
  13980  * ISpeechAudioStatus interface
  13981  */
  13982 #ifndef __ISpeechAudioStatus_INTERFACE_DEFINED__
  13983 #define __ISpeechAudioStatus_INTERFACE_DEFINED__
  13984 
  13985 DEFINE_GUID(IID_ISpeechAudioStatus, 0xc62d9c91, 0x7458, 0x47f6, 0x86,0x2d, 0x1e,0xf8,0x6f,0xb0,0xb2,0x78);
  13986 #if defined(__cplusplus) && !defined(CINTERFACE)
  13987 MIDL_INTERFACE("c62d9c91-7458-47f6-862d-1ef86fb0b278")
  13988 ISpeechAudioStatus : public IDispatch
  13989 {
  13990     virtual HRESULT STDMETHODCALLTYPE get_FreeBufferSpace(
  13991         LONG *FreeBufferSpace) = 0;
  13992 
  13993     virtual HRESULT STDMETHODCALLTYPE get_NonBlockingIO(
  13994         LONG *NonBlockingIO) = 0;
  13995 
  13996     virtual HRESULT STDMETHODCALLTYPE get_State(
  13997         SpeechAudioState *State) = 0;
  13998 
  13999     virtual HRESULT STDMETHODCALLTYPE get_CurrentSeekPosition(
  14000         VARIANT *CurrentSeekPosition) = 0;
  14001 
  14002     virtual HRESULT STDMETHODCALLTYPE get_CurrentDevicePosition(
  14003         VARIANT *CurrentDevicePosition) = 0;
  14004 
  14005 };
  14006 #ifdef __CRT_UUID_DECL
  14007 __CRT_UUID_DECL(ISpeechAudioStatus, 0xc62d9c91, 0x7458, 0x47f6, 0x86,0x2d, 0x1e,0xf8,0x6f,0xb0,0xb2,0x78)
  14008 #endif
  14009 #else
  14010 typedef struct ISpeechAudioStatusVtbl {
  14011     BEGIN_INTERFACE
  14012 
  14013     /*** IUnknown methods ***/
  14014     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  14015         ISpeechAudioStatus *This,
  14016         REFIID riid,
  14017         void **ppvObject);
  14018 
  14019     ULONG (STDMETHODCALLTYPE *AddRef)(
  14020         ISpeechAudioStatus *This);
  14021 
  14022     ULONG (STDMETHODCALLTYPE *Release)(
  14023         ISpeechAudioStatus *This);
  14024 
  14025     /*** IDispatch methods ***/
  14026     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  14027         ISpeechAudioStatus *This,
  14028         UINT *pctinfo);
  14029 
  14030     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  14031         ISpeechAudioStatus *This,
  14032         UINT iTInfo,
  14033         LCID lcid,
  14034         ITypeInfo **ppTInfo);
  14035 
  14036     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  14037         ISpeechAudioStatus *This,
  14038         REFIID riid,
  14039         LPOLESTR *rgszNames,
  14040         UINT cNames,
  14041         LCID lcid,
  14042         DISPID *rgDispId);
  14043 
  14044     HRESULT (STDMETHODCALLTYPE *Invoke)(
  14045         ISpeechAudioStatus *This,
  14046         DISPID dispIdMember,
  14047         REFIID riid,
  14048         LCID lcid,
  14049         WORD wFlags,
  14050         DISPPARAMS *pDispParams,
  14051         VARIANT *pVarResult,
  14052         EXCEPINFO *pExcepInfo,
  14053         UINT *puArgErr);
  14054 
  14055     /*** ISpeechAudioStatus methods ***/
  14056     HRESULT (STDMETHODCALLTYPE *get_FreeBufferSpace)(
  14057         ISpeechAudioStatus *This,
  14058         LONG *FreeBufferSpace);
  14059 
  14060     HRESULT (STDMETHODCALLTYPE *get_NonBlockingIO)(
  14061         ISpeechAudioStatus *This,
  14062         LONG *NonBlockingIO);
  14063 
  14064     HRESULT (STDMETHODCALLTYPE *get_State)(
  14065         ISpeechAudioStatus *This,
  14066         SpeechAudioState *State);
  14067 
  14068     HRESULT (STDMETHODCALLTYPE *get_CurrentSeekPosition)(
  14069         ISpeechAudioStatus *This,
  14070         VARIANT *CurrentSeekPosition);
  14071 
  14072     HRESULT (STDMETHODCALLTYPE *get_CurrentDevicePosition)(
  14073         ISpeechAudioStatus *This,
  14074         VARIANT *CurrentDevicePosition);
  14075 
  14076     END_INTERFACE
  14077 } ISpeechAudioStatusVtbl;
  14078 
  14079 interface ISpeechAudioStatus {
  14080     CONST_VTBL ISpeechAudioStatusVtbl* lpVtbl;
  14081 };
  14082 
  14083 #ifdef COBJMACROS
  14084 #ifndef WIDL_C_INLINE_WRAPPERS
  14085 /*** IUnknown methods ***/
  14086 #define ISpeechAudioStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14087 #define ISpeechAudioStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
  14088 #define ISpeechAudioStatus_Release(This) (This)->lpVtbl->Release(This)
  14089 /*** IDispatch methods ***/
  14090 #define ISpeechAudioStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  14091 #define ISpeechAudioStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  14092 #define ISpeechAudioStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  14093 #define ISpeechAudioStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  14094 /*** ISpeechAudioStatus methods ***/
  14095 #define ISpeechAudioStatus_get_FreeBufferSpace(This,FreeBufferSpace) (This)->lpVtbl->get_FreeBufferSpace(This,FreeBufferSpace)
  14096 #define ISpeechAudioStatus_get_NonBlockingIO(This,NonBlockingIO) (This)->lpVtbl->get_NonBlockingIO(This,NonBlockingIO)
  14097 #define ISpeechAudioStatus_get_State(This,State) (This)->lpVtbl->get_State(This,State)
  14098 #define ISpeechAudioStatus_get_CurrentSeekPosition(This,CurrentSeekPosition) (This)->lpVtbl->get_CurrentSeekPosition(This,CurrentSeekPosition)
  14099 #define ISpeechAudioStatus_get_CurrentDevicePosition(This,CurrentDevicePosition) (This)->lpVtbl->get_CurrentDevicePosition(This,CurrentDevicePosition)
  14100 #else
  14101 /*** IUnknown methods ***/
  14102 static inline HRESULT ISpeechAudioStatus_QueryInterface(ISpeechAudioStatus* This,REFIID riid,void **ppvObject) {
  14103     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  14104 }
  14105 static inline ULONG ISpeechAudioStatus_AddRef(ISpeechAudioStatus* This) {
  14106     return This->lpVtbl->AddRef(This);
  14107 }
  14108 static inline ULONG ISpeechAudioStatus_Release(ISpeechAudioStatus* This) {
  14109     return This->lpVtbl->Release(This);
  14110 }
  14111 /*** IDispatch methods ***/
  14112 static inline HRESULT ISpeechAudioStatus_GetTypeInfoCount(ISpeechAudioStatus* This,UINT *pctinfo) {
  14113     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  14114 }
  14115 static inline HRESULT ISpeechAudioStatus_GetTypeInfo(ISpeechAudioStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  14116     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  14117 }
  14118 static inline HRESULT ISpeechAudioStatus_GetIDsOfNames(ISpeechAudioStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  14119     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  14120 }
  14121 static inline HRESULT ISpeechAudioStatus_Invoke(ISpeechAudioStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  14122     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  14123 }
  14124 /*** ISpeechAudioStatus methods ***/
  14125 static inline HRESULT ISpeechAudioStatus_get_FreeBufferSpace(ISpeechAudioStatus* This,LONG *FreeBufferSpace) {
  14126     return This->lpVtbl->get_FreeBufferSpace(This,FreeBufferSpace);
  14127 }
  14128 static inline HRESULT ISpeechAudioStatus_get_NonBlockingIO(ISpeechAudioStatus* This,LONG *NonBlockingIO) {
  14129     return This->lpVtbl->get_NonBlockingIO(This,NonBlockingIO);
  14130 }
  14131 static inline HRESULT ISpeechAudioStatus_get_State(ISpeechAudioStatus* This,SpeechAudioState *State) {
  14132     return This->lpVtbl->get_State(This,State);
  14133 }
  14134 static inline HRESULT ISpeechAudioStatus_get_CurrentSeekPosition(ISpeechAudioStatus* This,VARIANT *CurrentSeekPosition) {
  14135     return This->lpVtbl->get_CurrentSeekPosition(This,CurrentSeekPosition);
  14136 }
  14137 static inline HRESULT ISpeechAudioStatus_get_CurrentDevicePosition(ISpeechAudioStatus* This,VARIANT *CurrentDevicePosition) {
  14138     return This->lpVtbl->get_CurrentDevicePosition(This,CurrentDevicePosition);
  14139 }
  14140 #endif
  14141 #endif
  14142 
  14143 #endif
  14144 
  14145 
  14146 #endif  /* __ISpeechAudioStatus_INTERFACE_DEFINED__ */
  14147 
  14148 /*****************************************************************************
  14149  * ISpeechAudioBufferInfo interface
  14150  */
  14151 #ifndef __ISpeechAudioBufferInfo_INTERFACE_DEFINED__
  14152 #define __ISpeechAudioBufferInfo_INTERFACE_DEFINED__
  14153 
  14154 DEFINE_GUID(IID_ISpeechAudioBufferInfo, 0x11b103d8, 0x1142, 0x4edf, 0xa0,0x93, 0x82,0xfb,0x39,0x15,0xf8,0xcc);
  14155 #if defined(__cplusplus) && !defined(CINTERFACE)
  14156 MIDL_INTERFACE("11b103d8-1142-4edf-a093-82fb3915f8cc")
  14157 ISpeechAudioBufferInfo : public IDispatch
  14158 {
  14159     virtual HRESULT STDMETHODCALLTYPE get_MinNotification(
  14160         LONG *MinNotification) = 0;
  14161 
  14162     virtual HRESULT STDMETHODCALLTYPE put_MinNotification(
  14163         LONG MinNotification) = 0;
  14164 
  14165     virtual HRESULT STDMETHODCALLTYPE get_BufferSize(
  14166         LONG *BufferSize) = 0;
  14167 
  14168     virtual HRESULT STDMETHODCALLTYPE put_BufferSize(
  14169         LONG BufferSize) = 0;
  14170 
  14171     virtual HRESULT STDMETHODCALLTYPE get_EventBias(
  14172         LONG *EventBias) = 0;
  14173 
  14174     virtual HRESULT STDMETHODCALLTYPE put_EventBias(
  14175         LONG EventBias) = 0;
  14176 
  14177 };
  14178 #ifdef __CRT_UUID_DECL
  14179 __CRT_UUID_DECL(ISpeechAudioBufferInfo, 0x11b103d8, 0x1142, 0x4edf, 0xa0,0x93, 0x82,0xfb,0x39,0x15,0xf8,0xcc)
  14180 #endif
  14181 #else
  14182 typedef struct ISpeechAudioBufferInfoVtbl {
  14183     BEGIN_INTERFACE
  14184 
  14185     /*** IUnknown methods ***/
  14186     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  14187         ISpeechAudioBufferInfo *This,
  14188         REFIID riid,
  14189         void **ppvObject);
  14190 
  14191     ULONG (STDMETHODCALLTYPE *AddRef)(
  14192         ISpeechAudioBufferInfo *This);
  14193 
  14194     ULONG (STDMETHODCALLTYPE *Release)(
  14195         ISpeechAudioBufferInfo *This);
  14196 
  14197     /*** IDispatch methods ***/
  14198     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  14199         ISpeechAudioBufferInfo *This,
  14200         UINT *pctinfo);
  14201 
  14202     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  14203         ISpeechAudioBufferInfo *This,
  14204         UINT iTInfo,
  14205         LCID lcid,
  14206         ITypeInfo **ppTInfo);
  14207 
  14208     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  14209         ISpeechAudioBufferInfo *This,
  14210         REFIID riid,
  14211         LPOLESTR *rgszNames,
  14212         UINT cNames,
  14213         LCID lcid,
  14214         DISPID *rgDispId);
  14215 
  14216     HRESULT (STDMETHODCALLTYPE *Invoke)(
  14217         ISpeechAudioBufferInfo *This,
  14218         DISPID dispIdMember,
  14219         REFIID riid,
  14220         LCID lcid,
  14221         WORD wFlags,
  14222         DISPPARAMS *pDispParams,
  14223         VARIANT *pVarResult,
  14224         EXCEPINFO *pExcepInfo,
  14225         UINT *puArgErr);
  14226 
  14227     /*** ISpeechAudioBufferInfo methods ***/
  14228     HRESULT (STDMETHODCALLTYPE *get_MinNotification)(
  14229         ISpeechAudioBufferInfo *This,
  14230         LONG *MinNotification);
  14231 
  14232     HRESULT (STDMETHODCALLTYPE *put_MinNotification)(
  14233         ISpeechAudioBufferInfo *This,
  14234         LONG MinNotification);
  14235 
  14236     HRESULT (STDMETHODCALLTYPE *get_BufferSize)(
  14237         ISpeechAudioBufferInfo *This,
  14238         LONG *BufferSize);
  14239 
  14240     HRESULT (STDMETHODCALLTYPE *put_BufferSize)(
  14241         ISpeechAudioBufferInfo *This,
  14242         LONG BufferSize);
  14243 
  14244     HRESULT (STDMETHODCALLTYPE *get_EventBias)(
  14245         ISpeechAudioBufferInfo *This,
  14246         LONG *EventBias);
  14247 
  14248     HRESULT (STDMETHODCALLTYPE *put_EventBias)(
  14249         ISpeechAudioBufferInfo *This,
  14250         LONG EventBias);
  14251 
  14252     END_INTERFACE
  14253 } ISpeechAudioBufferInfoVtbl;
  14254 
  14255 interface ISpeechAudioBufferInfo {
  14256     CONST_VTBL ISpeechAudioBufferInfoVtbl* lpVtbl;
  14257 };
  14258 
  14259 #ifdef COBJMACROS
  14260 #ifndef WIDL_C_INLINE_WRAPPERS
  14261 /*** IUnknown methods ***/
  14262 #define ISpeechAudioBufferInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14263 #define ISpeechAudioBufferInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
  14264 #define ISpeechAudioBufferInfo_Release(This) (This)->lpVtbl->Release(This)
  14265 /*** IDispatch methods ***/
  14266 #define ISpeechAudioBufferInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  14267 #define ISpeechAudioBufferInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  14268 #define ISpeechAudioBufferInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  14269 #define ISpeechAudioBufferInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  14270 /*** ISpeechAudioBufferInfo methods ***/
  14271 #define ISpeechAudioBufferInfo_get_MinNotification(This,MinNotification) (This)->lpVtbl->get_MinNotification(This,MinNotification)
  14272 #define ISpeechAudioBufferInfo_put_MinNotification(This,MinNotification) (This)->lpVtbl->put_MinNotification(This,MinNotification)
  14273 #define ISpeechAudioBufferInfo_get_BufferSize(This,BufferSize) (This)->lpVtbl->get_BufferSize(This,BufferSize)
  14274 #define ISpeechAudioBufferInfo_put_BufferSize(This,BufferSize) (This)->lpVtbl->put_BufferSize(This,BufferSize)
  14275 #define ISpeechAudioBufferInfo_get_EventBias(This,EventBias) (This)->lpVtbl->get_EventBias(This,EventBias)
  14276 #define ISpeechAudioBufferInfo_put_EventBias(This,EventBias) (This)->lpVtbl->put_EventBias(This,EventBias)
  14277 #else
  14278 /*** IUnknown methods ***/
  14279 static inline HRESULT ISpeechAudioBufferInfo_QueryInterface(ISpeechAudioBufferInfo* This,REFIID riid,void **ppvObject) {
  14280     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  14281 }
  14282 static inline ULONG ISpeechAudioBufferInfo_AddRef(ISpeechAudioBufferInfo* This) {
  14283     return This->lpVtbl->AddRef(This);
  14284 }
  14285 static inline ULONG ISpeechAudioBufferInfo_Release(ISpeechAudioBufferInfo* This) {
  14286     return This->lpVtbl->Release(This);
  14287 }
  14288 /*** IDispatch methods ***/
  14289 static inline HRESULT ISpeechAudioBufferInfo_GetTypeInfoCount(ISpeechAudioBufferInfo* This,UINT *pctinfo) {
  14290     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  14291 }
  14292 static inline HRESULT ISpeechAudioBufferInfo_GetTypeInfo(ISpeechAudioBufferInfo* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  14293     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  14294 }
  14295 static inline HRESULT ISpeechAudioBufferInfo_GetIDsOfNames(ISpeechAudioBufferInfo* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  14296     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  14297 }
  14298 static inline HRESULT ISpeechAudioBufferInfo_Invoke(ISpeechAudioBufferInfo* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  14299     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  14300 }
  14301 /*** ISpeechAudioBufferInfo methods ***/
  14302 static inline HRESULT ISpeechAudioBufferInfo_get_MinNotification(ISpeechAudioBufferInfo* This,LONG *MinNotification) {
  14303     return This->lpVtbl->get_MinNotification(This,MinNotification);
  14304 }
  14305 static inline HRESULT ISpeechAudioBufferInfo_put_MinNotification(ISpeechAudioBufferInfo* This,LONG MinNotification) {
  14306     return This->lpVtbl->put_MinNotification(This,MinNotification);
  14307 }
  14308 static inline HRESULT ISpeechAudioBufferInfo_get_BufferSize(ISpeechAudioBufferInfo* This,LONG *BufferSize) {
  14309     return This->lpVtbl->get_BufferSize(This,BufferSize);
  14310 }
  14311 static inline HRESULT ISpeechAudioBufferInfo_put_BufferSize(ISpeechAudioBufferInfo* This,LONG BufferSize) {
  14312     return This->lpVtbl->put_BufferSize(This,BufferSize);
  14313 }
  14314 static inline HRESULT ISpeechAudioBufferInfo_get_EventBias(ISpeechAudioBufferInfo* This,LONG *EventBias) {
  14315     return This->lpVtbl->get_EventBias(This,EventBias);
  14316 }
  14317 static inline HRESULT ISpeechAudioBufferInfo_put_EventBias(ISpeechAudioBufferInfo* This,LONG EventBias) {
  14318     return This->lpVtbl->put_EventBias(This,EventBias);
  14319 }
  14320 #endif
  14321 #endif
  14322 
  14323 #endif
  14324 
  14325 
  14326 #endif  /* __ISpeechAudioBufferInfo_INTERFACE_DEFINED__ */
  14327 
  14328 /*****************************************************************************
  14329  * ISpeechWaveFormatEx interface
  14330  */
  14331 #ifndef __ISpeechWaveFormatEx_INTERFACE_DEFINED__
  14332 #define __ISpeechWaveFormatEx_INTERFACE_DEFINED__
  14333 
  14334 DEFINE_GUID(IID_ISpeechWaveFormatEx, 0x7a1ef0d5, 0x1581, 0x4741, 0x88,0xe4, 0x20,0x9a,0x49,0xf1,0x1a,0x10);
  14335 #if defined(__cplusplus) && !defined(CINTERFACE)
  14336 MIDL_INTERFACE("7a1ef0d5-1581-4741-88e4-209a49f11a10")
  14337 ISpeechWaveFormatEx : public IDispatch
  14338 {
  14339     virtual HRESULT STDMETHODCALLTYPE get_FormatTag(
  14340         short *FormatTag) = 0;
  14341 
  14342     virtual HRESULT STDMETHODCALLTYPE put_FormatTag(
  14343         short FormatTag) = 0;
  14344 
  14345     virtual HRESULT STDMETHODCALLTYPE get_Channels(
  14346         short *Channels) = 0;
  14347 
  14348     virtual HRESULT STDMETHODCALLTYPE put_Channels(
  14349         short Channels) = 0;
  14350 
  14351     virtual HRESULT STDMETHODCALLTYPE get_SamplesPerSec(
  14352         LONG *SamplesPerSec) = 0;
  14353 
  14354     virtual HRESULT STDMETHODCALLTYPE put_SamplesPerSec(
  14355         LONG SamplesPerSec) = 0;
  14356 
  14357     virtual HRESULT STDMETHODCALLTYPE get_AvgBytesPerSec(
  14358         LONG *AvgBytesPerSec) = 0;
  14359 
  14360     virtual HRESULT STDMETHODCALLTYPE put_AvgBytesPerSec(
  14361         LONG AvgBytesPerSec) = 0;
  14362 
  14363     virtual HRESULT STDMETHODCALLTYPE get_BlockAlign(
  14364         short *BlockAlign) = 0;
  14365 
  14366     virtual HRESULT STDMETHODCALLTYPE put_BlockAlign(
  14367         short BlockAlign) = 0;
  14368 
  14369     virtual HRESULT STDMETHODCALLTYPE get_BitsPerSample(
  14370         short *BitsPerSample) = 0;
  14371 
  14372     virtual HRESULT STDMETHODCALLTYPE put_BitsPerSample(
  14373         short BitsPerSample) = 0;
  14374 
  14375     virtual HRESULT STDMETHODCALLTYPE get_ExtraData(
  14376         VARIANT *ExtraData) = 0;
  14377 
  14378     virtual HRESULT STDMETHODCALLTYPE put_ExtraData(
  14379         VARIANT ExtraData) = 0;
  14380 
  14381 };
  14382 #ifdef __CRT_UUID_DECL
  14383 __CRT_UUID_DECL(ISpeechWaveFormatEx, 0x7a1ef0d5, 0x1581, 0x4741, 0x88,0xe4, 0x20,0x9a,0x49,0xf1,0x1a,0x10)
  14384 #endif
  14385 #else
  14386 typedef struct ISpeechWaveFormatExVtbl {
  14387     BEGIN_INTERFACE
  14388 
  14389     /*** IUnknown methods ***/
  14390     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  14391         ISpeechWaveFormatEx *This,
  14392         REFIID riid,
  14393         void **ppvObject);
  14394 
  14395     ULONG (STDMETHODCALLTYPE *AddRef)(
  14396         ISpeechWaveFormatEx *This);
  14397 
  14398     ULONG (STDMETHODCALLTYPE *Release)(
  14399         ISpeechWaveFormatEx *This);
  14400 
  14401     /*** IDispatch methods ***/
  14402     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  14403         ISpeechWaveFormatEx *This,
  14404         UINT *pctinfo);
  14405 
  14406     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  14407         ISpeechWaveFormatEx *This,
  14408         UINT iTInfo,
  14409         LCID lcid,
  14410         ITypeInfo **ppTInfo);
  14411 
  14412     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  14413         ISpeechWaveFormatEx *This,
  14414         REFIID riid,
  14415         LPOLESTR *rgszNames,
  14416         UINT cNames,
  14417         LCID lcid,
  14418         DISPID *rgDispId);
  14419 
  14420     HRESULT (STDMETHODCALLTYPE *Invoke)(
  14421         ISpeechWaveFormatEx *This,
  14422         DISPID dispIdMember,
  14423         REFIID riid,
  14424         LCID lcid,
  14425         WORD wFlags,
  14426         DISPPARAMS *pDispParams,
  14427         VARIANT *pVarResult,
  14428         EXCEPINFO *pExcepInfo,
  14429         UINT *puArgErr);
  14430 
  14431     /*** ISpeechWaveFormatEx methods ***/
  14432     HRESULT (STDMETHODCALLTYPE *get_FormatTag)(
  14433         ISpeechWaveFormatEx *This,
  14434         short *FormatTag);
  14435 
  14436     HRESULT (STDMETHODCALLTYPE *put_FormatTag)(
  14437         ISpeechWaveFormatEx *This,
  14438         short FormatTag);
  14439 
  14440     HRESULT (STDMETHODCALLTYPE *get_Channels)(
  14441         ISpeechWaveFormatEx *This,
  14442         short *Channels);
  14443 
  14444     HRESULT (STDMETHODCALLTYPE *put_Channels)(
  14445         ISpeechWaveFormatEx *This,
  14446         short Channels);
  14447 
  14448     HRESULT (STDMETHODCALLTYPE *get_SamplesPerSec)(
  14449         ISpeechWaveFormatEx *This,
  14450         LONG *SamplesPerSec);
  14451 
  14452     HRESULT (STDMETHODCALLTYPE *put_SamplesPerSec)(
  14453         ISpeechWaveFormatEx *This,
  14454         LONG SamplesPerSec);
  14455 
  14456     HRESULT (STDMETHODCALLTYPE *get_AvgBytesPerSec)(
  14457         ISpeechWaveFormatEx *This,
  14458         LONG *AvgBytesPerSec);
  14459 
  14460     HRESULT (STDMETHODCALLTYPE *put_AvgBytesPerSec)(
  14461         ISpeechWaveFormatEx *This,
  14462         LONG AvgBytesPerSec);
  14463 
  14464     HRESULT (STDMETHODCALLTYPE *get_BlockAlign)(
  14465         ISpeechWaveFormatEx *This,
  14466         short *BlockAlign);
  14467 
  14468     HRESULT (STDMETHODCALLTYPE *put_BlockAlign)(
  14469         ISpeechWaveFormatEx *This,
  14470         short BlockAlign);
  14471 
  14472     HRESULT (STDMETHODCALLTYPE *get_BitsPerSample)(
  14473         ISpeechWaveFormatEx *This,
  14474         short *BitsPerSample);
  14475 
  14476     HRESULT (STDMETHODCALLTYPE *put_BitsPerSample)(
  14477         ISpeechWaveFormatEx *This,
  14478         short BitsPerSample);
  14479 
  14480     HRESULT (STDMETHODCALLTYPE *get_ExtraData)(
  14481         ISpeechWaveFormatEx *This,
  14482         VARIANT *ExtraData);
  14483 
  14484     HRESULT (STDMETHODCALLTYPE *put_ExtraData)(
  14485         ISpeechWaveFormatEx *This,
  14486         VARIANT ExtraData);
  14487 
  14488     END_INTERFACE
  14489 } ISpeechWaveFormatExVtbl;
  14490 
  14491 interface ISpeechWaveFormatEx {
  14492     CONST_VTBL ISpeechWaveFormatExVtbl* lpVtbl;
  14493 };
  14494 
  14495 #ifdef COBJMACROS
  14496 #ifndef WIDL_C_INLINE_WRAPPERS
  14497 /*** IUnknown methods ***/
  14498 #define ISpeechWaveFormatEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14499 #define ISpeechWaveFormatEx_AddRef(This) (This)->lpVtbl->AddRef(This)
  14500 #define ISpeechWaveFormatEx_Release(This) (This)->lpVtbl->Release(This)
  14501 /*** IDispatch methods ***/
  14502 #define ISpeechWaveFormatEx_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  14503 #define ISpeechWaveFormatEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  14504 #define ISpeechWaveFormatEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  14505 #define ISpeechWaveFormatEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  14506 /*** ISpeechWaveFormatEx methods ***/
  14507 #define ISpeechWaveFormatEx_get_FormatTag(This,FormatTag) (This)->lpVtbl->get_FormatTag(This,FormatTag)
  14508 #define ISpeechWaveFormatEx_put_FormatTag(This,FormatTag) (This)->lpVtbl->put_FormatTag(This,FormatTag)
  14509 #define ISpeechWaveFormatEx_get_Channels(This,Channels) (This)->lpVtbl->get_Channels(This,Channels)
  14510 #define ISpeechWaveFormatEx_put_Channels(This,Channels) (This)->lpVtbl->put_Channels(This,Channels)
  14511 #define ISpeechWaveFormatEx_get_SamplesPerSec(This,SamplesPerSec) (This)->lpVtbl->get_SamplesPerSec(This,SamplesPerSec)
  14512 #define ISpeechWaveFormatEx_put_SamplesPerSec(This,SamplesPerSec) (This)->lpVtbl->put_SamplesPerSec(This,SamplesPerSec)
  14513 #define ISpeechWaveFormatEx_get_AvgBytesPerSec(This,AvgBytesPerSec) (This)->lpVtbl->get_AvgBytesPerSec(This,AvgBytesPerSec)
  14514 #define ISpeechWaveFormatEx_put_AvgBytesPerSec(This,AvgBytesPerSec) (This)->lpVtbl->put_AvgBytesPerSec(This,AvgBytesPerSec)
  14515 #define ISpeechWaveFormatEx_get_BlockAlign(This,BlockAlign) (This)->lpVtbl->get_BlockAlign(This,BlockAlign)
  14516 #define ISpeechWaveFormatEx_put_BlockAlign(This,BlockAlign) (This)->lpVtbl->put_BlockAlign(This,BlockAlign)
  14517 #define ISpeechWaveFormatEx_get_BitsPerSample(This,BitsPerSample) (This)->lpVtbl->get_BitsPerSample(This,BitsPerSample)
  14518 #define ISpeechWaveFormatEx_put_BitsPerSample(This,BitsPerSample) (This)->lpVtbl->put_BitsPerSample(This,BitsPerSample)
  14519 #define ISpeechWaveFormatEx_get_ExtraData(This,ExtraData) (This)->lpVtbl->get_ExtraData(This,ExtraData)
  14520 #define ISpeechWaveFormatEx_put_ExtraData(This,ExtraData) (This)->lpVtbl->put_ExtraData(This,ExtraData)
  14521 #else
  14522 /*** IUnknown methods ***/
  14523 static inline HRESULT ISpeechWaveFormatEx_QueryInterface(ISpeechWaveFormatEx* This,REFIID riid,void **ppvObject) {
  14524     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  14525 }
  14526 static inline ULONG ISpeechWaveFormatEx_AddRef(ISpeechWaveFormatEx* This) {
  14527     return This->lpVtbl->AddRef(This);
  14528 }
  14529 static inline ULONG ISpeechWaveFormatEx_Release(ISpeechWaveFormatEx* This) {
  14530     return This->lpVtbl->Release(This);
  14531 }
  14532 /*** IDispatch methods ***/
  14533 static inline HRESULT ISpeechWaveFormatEx_GetTypeInfoCount(ISpeechWaveFormatEx* This,UINT *pctinfo) {
  14534     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  14535 }
  14536 static inline HRESULT ISpeechWaveFormatEx_GetTypeInfo(ISpeechWaveFormatEx* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  14537     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  14538 }
  14539 static inline HRESULT ISpeechWaveFormatEx_GetIDsOfNames(ISpeechWaveFormatEx* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  14540     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  14541 }
  14542 static inline HRESULT ISpeechWaveFormatEx_Invoke(ISpeechWaveFormatEx* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  14543     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  14544 }
  14545 /*** ISpeechWaveFormatEx methods ***/
  14546 static inline HRESULT ISpeechWaveFormatEx_get_FormatTag(ISpeechWaveFormatEx* This,short *FormatTag) {
  14547     return This->lpVtbl->get_FormatTag(This,FormatTag);
  14548 }
  14549 static inline HRESULT ISpeechWaveFormatEx_put_FormatTag(ISpeechWaveFormatEx* This,short FormatTag) {
  14550     return This->lpVtbl->put_FormatTag(This,FormatTag);
  14551 }
  14552 static inline HRESULT ISpeechWaveFormatEx_get_Channels(ISpeechWaveFormatEx* This,short *Channels) {
  14553     return This->lpVtbl->get_Channels(This,Channels);
  14554 }
  14555 static inline HRESULT ISpeechWaveFormatEx_put_Channels(ISpeechWaveFormatEx* This,short Channels) {
  14556     return This->lpVtbl->put_Channels(This,Channels);
  14557 }
  14558 static inline HRESULT ISpeechWaveFormatEx_get_SamplesPerSec(ISpeechWaveFormatEx* This,LONG *SamplesPerSec) {
  14559     return This->lpVtbl->get_SamplesPerSec(This,SamplesPerSec);
  14560 }
  14561 static inline HRESULT ISpeechWaveFormatEx_put_SamplesPerSec(ISpeechWaveFormatEx* This,LONG SamplesPerSec) {
  14562     return This->lpVtbl->put_SamplesPerSec(This,SamplesPerSec);
  14563 }
  14564 static inline HRESULT ISpeechWaveFormatEx_get_AvgBytesPerSec(ISpeechWaveFormatEx* This,LONG *AvgBytesPerSec) {
  14565     return This->lpVtbl->get_AvgBytesPerSec(This,AvgBytesPerSec);
  14566 }
  14567 static inline HRESULT ISpeechWaveFormatEx_put_AvgBytesPerSec(ISpeechWaveFormatEx* This,LONG AvgBytesPerSec) {
  14568     return This->lpVtbl->put_AvgBytesPerSec(This,AvgBytesPerSec);
  14569 }
  14570 static inline HRESULT ISpeechWaveFormatEx_get_BlockAlign(ISpeechWaveFormatEx* This,short *BlockAlign) {
  14571     return This->lpVtbl->get_BlockAlign(This,BlockAlign);
  14572 }
  14573 static inline HRESULT ISpeechWaveFormatEx_put_BlockAlign(ISpeechWaveFormatEx* This,short BlockAlign) {
  14574     return This->lpVtbl->put_BlockAlign(This,BlockAlign);
  14575 }
  14576 static inline HRESULT ISpeechWaveFormatEx_get_BitsPerSample(ISpeechWaveFormatEx* This,short *BitsPerSample) {
  14577     return This->lpVtbl->get_BitsPerSample(This,BitsPerSample);
  14578 }
  14579 static inline HRESULT ISpeechWaveFormatEx_put_BitsPerSample(ISpeechWaveFormatEx* This,short BitsPerSample) {
  14580     return This->lpVtbl->put_BitsPerSample(This,BitsPerSample);
  14581 }
  14582 static inline HRESULT ISpeechWaveFormatEx_get_ExtraData(ISpeechWaveFormatEx* This,VARIANT *ExtraData) {
  14583     return This->lpVtbl->get_ExtraData(This,ExtraData);
  14584 }
  14585 static inline HRESULT ISpeechWaveFormatEx_put_ExtraData(ISpeechWaveFormatEx* This,VARIANT ExtraData) {
  14586     return This->lpVtbl->put_ExtraData(This,ExtraData);
  14587 }
  14588 #endif
  14589 #endif
  14590 
  14591 #endif
  14592 
  14593 
  14594 #endif  /* __ISpeechWaveFormatEx_INTERFACE_DEFINED__ */
  14595 
  14596 /*****************************************************************************
  14597  * ISpeechVoice interface
  14598  */
  14599 #ifndef __ISpeechVoice_INTERFACE_DEFINED__
  14600 #define __ISpeechVoice_INTERFACE_DEFINED__
  14601 
  14602 DEFINE_GUID(IID_ISpeechVoice, 0x269316d8, 0x57bd, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96);
  14603 #if defined(__cplusplus) && !defined(CINTERFACE)
  14604 MIDL_INTERFACE("269316d8-57bd-11d2-9eee-00c04f797396")
  14605 ISpeechVoice : public IDispatch
  14606 {
  14607     virtual HRESULT STDMETHODCALLTYPE get_Status(
  14608         ISpeechVoiceStatus **Status) = 0;
  14609 
  14610     virtual HRESULT STDMETHODCALLTYPE get_Voice(
  14611         ISpeechObjectToken **Voice) = 0;
  14612 
  14613     virtual HRESULT STDMETHODCALLTYPE putref_Voice(
  14614         ISpeechObjectToken *Voice) = 0;
  14615 
  14616     virtual HRESULT STDMETHODCALLTYPE get_AudioOutput(
  14617         ISpeechObjectToken **AudioOutput) = 0;
  14618 
  14619     virtual HRESULT STDMETHODCALLTYPE putref_AudioOutput(
  14620         ISpeechObjectToken *AudioOutput) = 0;
  14621 
  14622     virtual HRESULT STDMETHODCALLTYPE get_AudioOutputStream(
  14623         ISpeechBaseStream **AudioOutputStream) = 0;
  14624 
  14625     virtual HRESULT STDMETHODCALLTYPE putref_AudioOutputStream(
  14626         ISpeechBaseStream *AudioOutputStream) = 0;
  14627 
  14628     virtual HRESULT STDMETHODCALLTYPE get_Rate(
  14629         LONG *Rate) = 0;
  14630 
  14631     virtual HRESULT STDMETHODCALLTYPE put_Rate(
  14632         LONG Rate) = 0;
  14633 
  14634     virtual HRESULT STDMETHODCALLTYPE get_Volume(
  14635         LONG *Volume) = 0;
  14636 
  14637     virtual HRESULT STDMETHODCALLTYPE put_Volume(
  14638         LONG Volume) = 0;
  14639 
  14640     virtual HRESULT STDMETHODCALLTYPE put_AllowAudioOutputFormatChangesOnNextSet(
  14641         VARIANT_BOOL Allow) = 0;
  14642 
  14643     virtual HRESULT STDMETHODCALLTYPE get_AllowAudioOutputFormatChangesOnNextSet(
  14644         VARIANT_BOOL *Allow) = 0;
  14645 
  14646     virtual HRESULT STDMETHODCALLTYPE get_EventInterests(
  14647         SpeechVoiceEvents *EventInterestFlags) = 0;
  14648 
  14649     virtual HRESULT STDMETHODCALLTYPE put_EventInterests(
  14650         SpeechVoiceEvents EventInterestFlags) = 0;
  14651 
  14652     virtual HRESULT STDMETHODCALLTYPE put_Priority(
  14653         SpeechVoicePriority Priority) = 0;
  14654 
  14655     virtual HRESULT STDMETHODCALLTYPE get_Priority(
  14656         SpeechVoicePriority *Priority) = 0;
  14657 
  14658     virtual HRESULT STDMETHODCALLTYPE put_AlertBoundary(
  14659         SpeechVoiceEvents Boundary) = 0;
  14660 
  14661     virtual HRESULT STDMETHODCALLTYPE get_AlertBoundary(
  14662         SpeechVoiceEvents *Boundary) = 0;
  14663 
  14664     virtual HRESULT STDMETHODCALLTYPE put_SynchronousSpeakTimeout(
  14665         LONG msTimeout) = 0;
  14666 
  14667     virtual HRESULT STDMETHODCALLTYPE get_SynchronousSpeakTimeout(
  14668         LONG *msTimeout) = 0;
  14669 
  14670     virtual HRESULT STDMETHODCALLTYPE Speak(
  14671         BSTR Text,
  14672         SpeechVoiceSpeakFlags Flags,
  14673         LONG *StreamNumber) = 0;
  14674 
  14675     virtual HRESULT STDMETHODCALLTYPE SpeakStream(
  14676         ISpeechBaseStream *Stream,
  14677         SpeechVoiceSpeakFlags Flags,
  14678         LONG *StreamNumber) = 0;
  14679 
  14680     virtual HRESULT STDMETHODCALLTYPE Pause(
  14681         ) = 0;
  14682 
  14683     virtual HRESULT STDMETHODCALLTYPE Resume(
  14684         ) = 0;
  14685 
  14686     virtual HRESULT STDMETHODCALLTYPE Skip(
  14687         const BSTR Type,
  14688         LONG NumItems,
  14689         LONG *NumSkipped) = 0;
  14690 
  14691     virtual HRESULT STDMETHODCALLTYPE GetVoices(
  14692         BSTR RequiredAttributes,
  14693         BSTR OptionalAttributes,
  14694         ISpeechObjectTokens **ObjectTokens) = 0;
  14695 
  14696     virtual HRESULT STDMETHODCALLTYPE GetAudioOutputs(
  14697         BSTR RequiredAttributes,
  14698         BSTR OptionalAttributes,
  14699         ISpeechObjectTokens **ObjectTokens) = 0;
  14700 
  14701     virtual HRESULT STDMETHODCALLTYPE WaitUntilDone(
  14702         LONG msTimeout,
  14703         VARIANT_BOOL *Done) = 0;
  14704 
  14705     virtual HRESULT STDMETHODCALLTYPE SpeakCompleteEvent(
  14706         LONG *Handle) = 0;
  14707 
  14708     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
  14709         const BSTR TypeOfUI,
  14710         const VARIANT *ExtraData,
  14711         VARIANT_BOOL *Supported) = 0;
  14712 
  14713     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
  14714         LONG hWndParent,
  14715         BSTR Title,
  14716         const BSTR TypeOfUI,
  14717         const VARIANT *ExtraData = 0) = 0;
  14718 
  14719 };
  14720 #ifdef __CRT_UUID_DECL
  14721 __CRT_UUID_DECL(ISpeechVoice, 0x269316d8, 0x57bd, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96)
  14722 #endif
  14723 #else
  14724 typedef struct ISpeechVoiceVtbl {
  14725     BEGIN_INTERFACE
  14726 
  14727     /*** IUnknown methods ***/
  14728     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  14729         ISpeechVoice *This,
  14730         REFIID riid,
  14731         void **ppvObject);
  14732 
  14733     ULONG (STDMETHODCALLTYPE *AddRef)(
  14734         ISpeechVoice *This);
  14735 
  14736     ULONG (STDMETHODCALLTYPE *Release)(
  14737         ISpeechVoice *This);
  14738 
  14739     /*** IDispatch methods ***/
  14740     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  14741         ISpeechVoice *This,
  14742         UINT *pctinfo);
  14743 
  14744     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  14745         ISpeechVoice *This,
  14746         UINT iTInfo,
  14747         LCID lcid,
  14748         ITypeInfo **ppTInfo);
  14749 
  14750     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  14751         ISpeechVoice *This,
  14752         REFIID riid,
  14753         LPOLESTR *rgszNames,
  14754         UINT cNames,
  14755         LCID lcid,
  14756         DISPID *rgDispId);
  14757 
  14758     HRESULT (STDMETHODCALLTYPE *Invoke)(
  14759         ISpeechVoice *This,
  14760         DISPID dispIdMember,
  14761         REFIID riid,
  14762         LCID lcid,
  14763         WORD wFlags,
  14764         DISPPARAMS *pDispParams,
  14765         VARIANT *pVarResult,
  14766         EXCEPINFO *pExcepInfo,
  14767         UINT *puArgErr);
  14768 
  14769     /*** ISpeechVoice methods ***/
  14770     HRESULT (STDMETHODCALLTYPE *get_Status)(
  14771         ISpeechVoice *This,
  14772         ISpeechVoiceStatus **Status);
  14773 
  14774     HRESULT (STDMETHODCALLTYPE *get_Voice)(
  14775         ISpeechVoice *This,
  14776         ISpeechObjectToken **Voice);
  14777 
  14778     HRESULT (STDMETHODCALLTYPE *putref_Voice)(
  14779         ISpeechVoice *This,
  14780         ISpeechObjectToken *Voice);
  14781 
  14782     HRESULT (STDMETHODCALLTYPE *get_AudioOutput)(
  14783         ISpeechVoice *This,
  14784         ISpeechObjectToken **AudioOutput);
  14785 
  14786     HRESULT (STDMETHODCALLTYPE *putref_AudioOutput)(
  14787         ISpeechVoice *This,
  14788         ISpeechObjectToken *AudioOutput);
  14789 
  14790     HRESULT (STDMETHODCALLTYPE *get_AudioOutputStream)(
  14791         ISpeechVoice *This,
  14792         ISpeechBaseStream **AudioOutputStream);
  14793 
  14794     HRESULT (STDMETHODCALLTYPE *putref_AudioOutputStream)(
  14795         ISpeechVoice *This,
  14796         ISpeechBaseStream *AudioOutputStream);
  14797 
  14798     HRESULT (STDMETHODCALLTYPE *get_Rate)(
  14799         ISpeechVoice *This,
  14800         LONG *Rate);
  14801 
  14802     HRESULT (STDMETHODCALLTYPE *put_Rate)(
  14803         ISpeechVoice *This,
  14804         LONG Rate);
  14805 
  14806     HRESULT (STDMETHODCALLTYPE *get_Volume)(
  14807         ISpeechVoice *This,
  14808         LONG *Volume);
  14809 
  14810     HRESULT (STDMETHODCALLTYPE *put_Volume)(
  14811         ISpeechVoice *This,
  14812         LONG Volume);
  14813 
  14814     HRESULT (STDMETHODCALLTYPE *put_AllowAudioOutputFormatChangesOnNextSet)(
  14815         ISpeechVoice *This,
  14816         VARIANT_BOOL Allow);
  14817 
  14818     HRESULT (STDMETHODCALLTYPE *get_AllowAudioOutputFormatChangesOnNextSet)(
  14819         ISpeechVoice *This,
  14820         VARIANT_BOOL *Allow);
  14821 
  14822     HRESULT (STDMETHODCALLTYPE *get_EventInterests)(
  14823         ISpeechVoice *This,
  14824         SpeechVoiceEvents *EventInterestFlags);
  14825 
  14826     HRESULT (STDMETHODCALLTYPE *put_EventInterests)(
  14827         ISpeechVoice *This,
  14828         SpeechVoiceEvents EventInterestFlags);
  14829 
  14830     HRESULT (STDMETHODCALLTYPE *put_Priority)(
  14831         ISpeechVoice *This,
  14832         SpeechVoicePriority Priority);
  14833 
  14834     HRESULT (STDMETHODCALLTYPE *get_Priority)(
  14835         ISpeechVoice *This,
  14836         SpeechVoicePriority *Priority);
  14837 
  14838     HRESULT (STDMETHODCALLTYPE *put_AlertBoundary)(
  14839         ISpeechVoice *This,
  14840         SpeechVoiceEvents Boundary);
  14841 
  14842     HRESULT (STDMETHODCALLTYPE *get_AlertBoundary)(
  14843         ISpeechVoice *This,
  14844         SpeechVoiceEvents *Boundary);
  14845 
  14846     HRESULT (STDMETHODCALLTYPE *put_SynchronousSpeakTimeout)(
  14847         ISpeechVoice *This,
  14848         LONG msTimeout);
  14849 
  14850     HRESULT (STDMETHODCALLTYPE *get_SynchronousSpeakTimeout)(
  14851         ISpeechVoice *This,
  14852         LONG *msTimeout);
  14853 
  14854     HRESULT (STDMETHODCALLTYPE *Speak)(
  14855         ISpeechVoice *This,
  14856         BSTR Text,
  14857         SpeechVoiceSpeakFlags Flags,
  14858         LONG *StreamNumber);
  14859 
  14860     HRESULT (STDMETHODCALLTYPE *SpeakStream)(
  14861         ISpeechVoice *This,
  14862         ISpeechBaseStream *Stream,
  14863         SpeechVoiceSpeakFlags Flags,
  14864         LONG *StreamNumber);
  14865 
  14866     HRESULT (STDMETHODCALLTYPE *Pause)(
  14867         ISpeechVoice *This);
  14868 
  14869     HRESULT (STDMETHODCALLTYPE *Resume)(
  14870         ISpeechVoice *This);
  14871 
  14872     HRESULT (STDMETHODCALLTYPE *Skip)(
  14873         ISpeechVoice *This,
  14874         const BSTR Type,
  14875         LONG NumItems,
  14876         LONG *NumSkipped);
  14877 
  14878     HRESULT (STDMETHODCALLTYPE *GetVoices)(
  14879         ISpeechVoice *This,
  14880         BSTR RequiredAttributes,
  14881         BSTR OptionalAttributes,
  14882         ISpeechObjectTokens **ObjectTokens);
  14883 
  14884     HRESULT (STDMETHODCALLTYPE *GetAudioOutputs)(
  14885         ISpeechVoice *This,
  14886         BSTR RequiredAttributes,
  14887         BSTR OptionalAttributes,
  14888         ISpeechObjectTokens **ObjectTokens);
  14889 
  14890     HRESULT (STDMETHODCALLTYPE *WaitUntilDone)(
  14891         ISpeechVoice *This,
  14892         LONG msTimeout,
  14893         VARIANT_BOOL *Done);
  14894 
  14895     HRESULT (STDMETHODCALLTYPE *SpeakCompleteEvent)(
  14896         ISpeechVoice *This,
  14897         LONG *Handle);
  14898 
  14899     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
  14900         ISpeechVoice *This,
  14901         const BSTR TypeOfUI,
  14902         const VARIANT *ExtraData,
  14903         VARIANT_BOOL *Supported);
  14904 
  14905     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
  14906         ISpeechVoice *This,
  14907         LONG hWndParent,
  14908         BSTR Title,
  14909         const BSTR TypeOfUI,
  14910         const VARIANT *ExtraData);
  14911 
  14912     END_INTERFACE
  14913 } ISpeechVoiceVtbl;
  14914 
  14915 interface ISpeechVoice {
  14916     CONST_VTBL ISpeechVoiceVtbl* lpVtbl;
  14917 };
  14918 
  14919 #ifdef COBJMACROS
  14920 #ifndef WIDL_C_INLINE_WRAPPERS
  14921 /*** IUnknown methods ***/
  14922 #define ISpeechVoice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14923 #define ISpeechVoice_AddRef(This) (This)->lpVtbl->AddRef(This)
  14924 #define ISpeechVoice_Release(This) (This)->lpVtbl->Release(This)
  14925 /*** IDispatch methods ***/
  14926 #define ISpeechVoice_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  14927 #define ISpeechVoice_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  14928 #define ISpeechVoice_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  14929 #define ISpeechVoice_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  14930 /*** ISpeechVoice methods ***/
  14931 #define ISpeechVoice_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
  14932 #define ISpeechVoice_get_Voice(This,Voice) (This)->lpVtbl->get_Voice(This,Voice)
  14933 #define ISpeechVoice_putref_Voice(This,Voice) (This)->lpVtbl->putref_Voice(This,Voice)
  14934 #define ISpeechVoice_get_AudioOutput(This,AudioOutput) (This)->lpVtbl->get_AudioOutput(This,AudioOutput)
  14935 #define ISpeechVoice_putref_AudioOutput(This,AudioOutput) (This)->lpVtbl->putref_AudioOutput(This,AudioOutput)
  14936 #define ISpeechVoice_get_AudioOutputStream(This,AudioOutputStream) (This)->lpVtbl->get_AudioOutputStream(This,AudioOutputStream)
  14937 #define ISpeechVoice_putref_AudioOutputStream(This,AudioOutputStream) (This)->lpVtbl->putref_AudioOutputStream(This,AudioOutputStream)
  14938 #define ISpeechVoice_get_Rate(This,Rate) (This)->lpVtbl->get_Rate(This,Rate)
  14939 #define ISpeechVoice_put_Rate(This,Rate) (This)->lpVtbl->put_Rate(This,Rate)
  14940 #define ISpeechVoice_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
  14941 #define ISpeechVoice_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
  14942 #define ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->put_AllowAudioOutputFormatChangesOnNextSet(This,Allow)
  14943 #define ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->get_AllowAudioOutputFormatChangesOnNextSet(This,Allow)
  14944 #define ISpeechVoice_get_EventInterests(This,EventInterestFlags) (This)->lpVtbl->get_EventInterests(This,EventInterestFlags)
  14945 #define ISpeechVoice_put_EventInterests(This,EventInterestFlags) (This)->lpVtbl->put_EventInterests(This,EventInterestFlags)
  14946 #define ISpeechVoice_put_Priority(This,Priority) (This)->lpVtbl->put_Priority(This,Priority)
  14947 #define ISpeechVoice_get_Priority(This,Priority) (This)->lpVtbl->get_Priority(This,Priority)
  14948 #define ISpeechVoice_put_AlertBoundary(This,Boundary) (This)->lpVtbl->put_AlertBoundary(This,Boundary)
  14949 #define ISpeechVoice_get_AlertBoundary(This,Boundary) (This)->lpVtbl->get_AlertBoundary(This,Boundary)
  14950 #define ISpeechVoice_put_SynchronousSpeakTimeout(This,msTimeout) (This)->lpVtbl->put_SynchronousSpeakTimeout(This,msTimeout)
  14951 #define ISpeechVoice_get_SynchronousSpeakTimeout(This,msTimeout) (This)->lpVtbl->get_SynchronousSpeakTimeout(This,msTimeout)
  14952 #define ISpeechVoice_Speak(This,Text,Flags,StreamNumber) (This)->lpVtbl->Speak(This,Text,Flags,StreamNumber)
  14953 #define ISpeechVoice_SpeakStream(This,Stream,Flags,StreamNumber) (This)->lpVtbl->SpeakStream(This,Stream,Flags,StreamNumber)
  14954 #define ISpeechVoice_Pause(This) (This)->lpVtbl->Pause(This)
  14955 #define ISpeechVoice_Resume(This) (This)->lpVtbl->Resume(This)
  14956 #define ISpeechVoice_Skip(This,Type,NumItems,NumSkipped) (This)->lpVtbl->Skip(This,Type,NumItems,NumSkipped)
  14957 #define ISpeechVoice_GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
  14958 #define ISpeechVoice_GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
  14959 #define ISpeechVoice_WaitUntilDone(This,msTimeout,Done) (This)->lpVtbl->WaitUntilDone(This,msTimeout,Done)
  14960 #define ISpeechVoice_SpeakCompleteEvent(This,Handle) (This)->lpVtbl->SpeakCompleteEvent(This,Handle)
  14961 #define ISpeechVoice_IsUISupported(This,TypeOfUI,ExtraData,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported)
  14962 #define ISpeechVoice_DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData) (This)->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData)
  14963 #else
  14964 /*** IUnknown methods ***/
  14965 static inline HRESULT ISpeechVoice_QueryInterface(ISpeechVoice* This,REFIID riid,void **ppvObject) {
  14966     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  14967 }
  14968 static inline ULONG ISpeechVoice_AddRef(ISpeechVoice* This) {
  14969     return This->lpVtbl->AddRef(This);
  14970 }
  14971 static inline ULONG ISpeechVoice_Release(ISpeechVoice* This) {
  14972     return This->lpVtbl->Release(This);
  14973 }
  14974 /*** IDispatch methods ***/
  14975 static inline HRESULT ISpeechVoice_GetTypeInfoCount(ISpeechVoice* This,UINT *pctinfo) {
  14976     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  14977 }
  14978 static inline HRESULT ISpeechVoice_GetTypeInfo(ISpeechVoice* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  14979     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  14980 }
  14981 static inline HRESULT ISpeechVoice_GetIDsOfNames(ISpeechVoice* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  14982     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  14983 }
  14984 static inline HRESULT ISpeechVoice_Invoke(ISpeechVoice* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  14985     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  14986 }
  14987 /*** ISpeechVoice methods ***/
  14988 static inline HRESULT ISpeechVoice_get_Status(ISpeechVoice* This,ISpeechVoiceStatus **Status) {
  14989     return This->lpVtbl->get_Status(This,Status);
  14990 }
  14991 static inline HRESULT ISpeechVoice_get_Voice(ISpeechVoice* This,ISpeechObjectToken **Voice) {
  14992     return This->lpVtbl->get_Voice(This,Voice);
  14993 }
  14994 static inline HRESULT ISpeechVoice_putref_Voice(ISpeechVoice* This,ISpeechObjectToken *Voice) {
  14995     return This->lpVtbl->putref_Voice(This,Voice);
  14996 }
  14997 static inline HRESULT ISpeechVoice_get_AudioOutput(ISpeechVoice* This,ISpeechObjectToken **AudioOutput) {
  14998     return This->lpVtbl->get_AudioOutput(This,AudioOutput);
  14999 }
  15000 static inline HRESULT ISpeechVoice_putref_AudioOutput(ISpeechVoice* This,ISpeechObjectToken *AudioOutput) {
  15001     return This->lpVtbl->putref_AudioOutput(This,AudioOutput);
  15002 }
  15003 static inline HRESULT ISpeechVoice_get_AudioOutputStream(ISpeechVoice* This,ISpeechBaseStream **AudioOutputStream) {
  15004     return This->lpVtbl->get_AudioOutputStream(This,AudioOutputStream);
  15005 }
  15006 static inline HRESULT ISpeechVoice_putref_AudioOutputStream(ISpeechVoice* This,ISpeechBaseStream *AudioOutputStream) {
  15007     return This->lpVtbl->putref_AudioOutputStream(This,AudioOutputStream);
  15008 }
  15009 static inline HRESULT ISpeechVoice_get_Rate(ISpeechVoice* This,LONG *Rate) {
  15010     return This->lpVtbl->get_Rate(This,Rate);
  15011 }
  15012 static inline HRESULT ISpeechVoice_put_Rate(ISpeechVoice* This,LONG Rate) {
  15013     return This->lpVtbl->put_Rate(This,Rate);
  15014 }
  15015 static inline HRESULT ISpeechVoice_get_Volume(ISpeechVoice* This,LONG *Volume) {
  15016     return This->lpVtbl->get_Volume(This,Volume);
  15017 }
  15018 static inline HRESULT ISpeechVoice_put_Volume(ISpeechVoice* This,LONG Volume) {
  15019     return This->lpVtbl->put_Volume(This,Volume);
  15020 }
  15021 static inline HRESULT ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet(ISpeechVoice* This,VARIANT_BOOL Allow) {
  15022     return This->lpVtbl->put_AllowAudioOutputFormatChangesOnNextSet(This,Allow);
  15023 }
  15024 static inline HRESULT ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet(ISpeechVoice* This,VARIANT_BOOL *Allow) {
  15025     return This->lpVtbl->get_AllowAudioOutputFormatChangesOnNextSet(This,Allow);
  15026 }
  15027 static inline HRESULT ISpeechVoice_get_EventInterests(ISpeechVoice* This,SpeechVoiceEvents *EventInterestFlags) {
  15028     return This->lpVtbl->get_EventInterests(This,EventInterestFlags);
  15029 }
  15030 static inline HRESULT ISpeechVoice_put_EventInterests(ISpeechVoice* This,SpeechVoiceEvents EventInterestFlags) {
  15031     return This->lpVtbl->put_EventInterests(This,EventInterestFlags);
  15032 }
  15033 static inline HRESULT ISpeechVoice_put_Priority(ISpeechVoice* This,SpeechVoicePriority Priority) {
  15034     return This->lpVtbl->put_Priority(This,Priority);
  15035 }
  15036 static inline HRESULT ISpeechVoice_get_Priority(ISpeechVoice* This,SpeechVoicePriority *Priority) {
  15037     return This->lpVtbl->get_Priority(This,Priority);
  15038 }
  15039 static inline HRESULT ISpeechVoice_put_AlertBoundary(ISpeechVoice* This,SpeechVoiceEvents Boundary) {
  15040     return This->lpVtbl->put_AlertBoundary(This,Boundary);
  15041 }
  15042 static inline HRESULT ISpeechVoice_get_AlertBoundary(ISpeechVoice* This,SpeechVoiceEvents *Boundary) {
  15043     return This->lpVtbl->get_AlertBoundary(This,Boundary);
  15044 }
  15045 static inline HRESULT ISpeechVoice_put_SynchronousSpeakTimeout(ISpeechVoice* This,LONG msTimeout) {
  15046     return This->lpVtbl->put_SynchronousSpeakTimeout(This,msTimeout);
  15047 }
  15048 static inline HRESULT ISpeechVoice_get_SynchronousSpeakTimeout(ISpeechVoice* This,LONG *msTimeout) {
  15049     return This->lpVtbl->get_SynchronousSpeakTimeout(This,msTimeout);
  15050 }
  15051 static inline HRESULT ISpeechVoice_Speak(ISpeechVoice* This,BSTR Text,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
  15052     return This->lpVtbl->Speak(This,Text,Flags,StreamNumber);
  15053 }
  15054 static inline HRESULT ISpeechVoice_SpeakStream(ISpeechVoice* This,ISpeechBaseStream *Stream,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
  15055     return This->lpVtbl->SpeakStream(This,Stream,Flags,StreamNumber);
  15056 }
  15057 static inline HRESULT ISpeechVoice_Pause(ISpeechVoice* This) {
  15058     return This->lpVtbl->Pause(This);
  15059 }
  15060 static inline HRESULT ISpeechVoice_Resume(ISpeechVoice* This) {
  15061     return This->lpVtbl->Resume(This);
  15062 }
  15063 static inline HRESULT ISpeechVoice_Skip(ISpeechVoice* This,const BSTR Type,LONG NumItems,LONG *NumSkipped) {
  15064     return This->lpVtbl->Skip(This,Type,NumItems,NumSkipped);
  15065 }
  15066 static inline HRESULT ISpeechVoice_GetVoices(ISpeechVoice* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
  15067     return This->lpVtbl->GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
  15068 }
  15069 static inline HRESULT ISpeechVoice_GetAudioOutputs(ISpeechVoice* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
  15070     return This->lpVtbl->GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
  15071 }
  15072 static inline HRESULT ISpeechVoice_WaitUntilDone(ISpeechVoice* This,LONG msTimeout,VARIANT_BOOL *Done) {
  15073     return This->lpVtbl->WaitUntilDone(This,msTimeout,Done);
  15074 }
  15075 static inline HRESULT ISpeechVoice_SpeakCompleteEvent(ISpeechVoice* This,LONG *Handle) {
  15076     return This->lpVtbl->SpeakCompleteEvent(This,Handle);
  15077 }
  15078 static inline HRESULT ISpeechVoice_IsUISupported(ISpeechVoice* This,const BSTR TypeOfUI,const VARIANT *ExtraData,VARIANT_BOOL *Supported) {
  15079     return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported);
  15080 }
  15081 static inline HRESULT ISpeechVoice_DisplayUI(ISpeechVoice* This,LONG hWndParent,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData) {
  15082     return This->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData);
  15083 }
  15084 #endif
  15085 #endif
  15086 
  15087 #endif
  15088 
  15089 
  15090 #endif  /* __ISpeechVoice_INTERFACE_DEFINED__ */
  15091 
  15092 /*****************************************************************************
  15093  * ISpeechVoiceStatus interface
  15094  */
  15095 #ifndef __ISpeechVoiceStatus_INTERFACE_DEFINED__
  15096 #define __ISpeechVoiceStatus_INTERFACE_DEFINED__
  15097 
  15098 DEFINE_GUID(IID_ISpeechVoiceStatus, 0x8be47b07, 0x57f6, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96);
  15099 #if defined(__cplusplus) && !defined(CINTERFACE)
  15100 MIDL_INTERFACE("8be47b07-57f6-11d2-9eee-00c04f797396")
  15101 ISpeechVoiceStatus : public IDispatch
  15102 {
  15103     virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamNumber(
  15104         LONG *StreamNumber) = 0;
  15105 
  15106     virtual HRESULT STDMETHODCALLTYPE get_LastStreamNumberQueued(
  15107         LONG *StreamNumber) = 0;
  15108 
  15109     virtual HRESULT STDMETHODCALLTYPE get_LastHResult(
  15110         LONG *HResult) = 0;
  15111 
  15112     virtual HRESULT STDMETHODCALLTYPE get_RunningState(
  15113         SpeechRunState *State) = 0;
  15114 
  15115     virtual HRESULT STDMETHODCALLTYPE get_InputWordPosition(
  15116         LONG *Position) = 0;
  15117 
  15118     virtual HRESULT STDMETHODCALLTYPE get_InputWordLength(
  15119         LONG *Length) = 0;
  15120 
  15121     virtual HRESULT STDMETHODCALLTYPE get_InputSentencePosition(
  15122         LONG *Position) = 0;
  15123 
  15124     virtual HRESULT STDMETHODCALLTYPE get_InputSentenceLength(
  15125         LONG *Length) = 0;
  15126 
  15127     virtual HRESULT STDMETHODCALLTYPE get_LastBookmark(
  15128         BSTR *Bookmark) = 0;
  15129 
  15130     virtual HRESULT STDMETHODCALLTYPE get_LastBookmarkId(
  15131         LONG *BookmarkId) = 0;
  15132 
  15133     virtual HRESULT STDMETHODCALLTYPE get_PhonemeId(
  15134         short *PhoneId) = 0;
  15135 
  15136     virtual HRESULT STDMETHODCALLTYPE get_VisemeId(
  15137         short *VisemeId) = 0;
  15138 
  15139 };
  15140 #ifdef __CRT_UUID_DECL
  15141 __CRT_UUID_DECL(ISpeechVoiceStatus, 0x8be47b07, 0x57f6, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96)
  15142 #endif
  15143 #else
  15144 typedef struct ISpeechVoiceStatusVtbl {
  15145     BEGIN_INTERFACE
  15146 
  15147     /*** IUnknown methods ***/
  15148     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  15149         ISpeechVoiceStatus *This,
  15150         REFIID riid,
  15151         void **ppvObject);
  15152 
  15153     ULONG (STDMETHODCALLTYPE *AddRef)(
  15154         ISpeechVoiceStatus *This);
  15155 
  15156     ULONG (STDMETHODCALLTYPE *Release)(
  15157         ISpeechVoiceStatus *This);
  15158 
  15159     /*** IDispatch methods ***/
  15160     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  15161         ISpeechVoiceStatus *This,
  15162         UINT *pctinfo);
  15163 
  15164     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  15165         ISpeechVoiceStatus *This,
  15166         UINT iTInfo,
  15167         LCID lcid,
  15168         ITypeInfo **ppTInfo);
  15169 
  15170     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  15171         ISpeechVoiceStatus *This,
  15172         REFIID riid,
  15173         LPOLESTR *rgszNames,
  15174         UINT cNames,
  15175         LCID lcid,
  15176         DISPID *rgDispId);
  15177 
  15178     HRESULT (STDMETHODCALLTYPE *Invoke)(
  15179         ISpeechVoiceStatus *This,
  15180         DISPID dispIdMember,
  15181         REFIID riid,
  15182         LCID lcid,
  15183         WORD wFlags,
  15184         DISPPARAMS *pDispParams,
  15185         VARIANT *pVarResult,
  15186         EXCEPINFO *pExcepInfo,
  15187         UINT *puArgErr);
  15188 
  15189     /*** ISpeechVoiceStatus methods ***/
  15190     HRESULT (STDMETHODCALLTYPE *get_CurrentStreamNumber)(
  15191         ISpeechVoiceStatus *This,
  15192         LONG *StreamNumber);
  15193 
  15194     HRESULT (STDMETHODCALLTYPE *get_LastStreamNumberQueued)(
  15195         ISpeechVoiceStatus *This,
  15196         LONG *StreamNumber);
  15197 
  15198     HRESULT (STDMETHODCALLTYPE *get_LastHResult)(
  15199         ISpeechVoiceStatus *This,
  15200         LONG *HResult);
  15201 
  15202     HRESULT (STDMETHODCALLTYPE *get_RunningState)(
  15203         ISpeechVoiceStatus *This,
  15204         SpeechRunState *State);
  15205 
  15206     HRESULT (STDMETHODCALLTYPE *get_InputWordPosition)(
  15207         ISpeechVoiceStatus *This,
  15208         LONG *Position);
  15209 
  15210     HRESULT (STDMETHODCALLTYPE *get_InputWordLength)(
  15211         ISpeechVoiceStatus *This,
  15212         LONG *Length);
  15213 
  15214     HRESULT (STDMETHODCALLTYPE *get_InputSentencePosition)(
  15215         ISpeechVoiceStatus *This,
  15216         LONG *Position);
  15217 
  15218     HRESULT (STDMETHODCALLTYPE *get_InputSentenceLength)(
  15219         ISpeechVoiceStatus *This,
  15220         LONG *Length);
  15221 
  15222     HRESULT (STDMETHODCALLTYPE *get_LastBookmark)(
  15223         ISpeechVoiceStatus *This,
  15224         BSTR *Bookmark);
  15225 
  15226     HRESULT (STDMETHODCALLTYPE *get_LastBookmarkId)(
  15227         ISpeechVoiceStatus *This,
  15228         LONG *BookmarkId);
  15229 
  15230     HRESULT (STDMETHODCALLTYPE *get_PhonemeId)(
  15231         ISpeechVoiceStatus *This,
  15232         short *PhoneId);
  15233 
  15234     HRESULT (STDMETHODCALLTYPE *get_VisemeId)(
  15235         ISpeechVoiceStatus *This,
  15236         short *VisemeId);
  15237 
  15238     END_INTERFACE
  15239 } ISpeechVoiceStatusVtbl;
  15240 
  15241 interface ISpeechVoiceStatus {
  15242     CONST_VTBL ISpeechVoiceStatusVtbl* lpVtbl;
  15243 };
  15244 
  15245 #ifdef COBJMACROS
  15246 #ifndef WIDL_C_INLINE_WRAPPERS
  15247 /*** IUnknown methods ***/
  15248 #define ISpeechVoiceStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  15249 #define ISpeechVoiceStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
  15250 #define ISpeechVoiceStatus_Release(This) (This)->lpVtbl->Release(This)
  15251 /*** IDispatch methods ***/
  15252 #define ISpeechVoiceStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  15253 #define ISpeechVoiceStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  15254 #define ISpeechVoiceStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  15255 #define ISpeechVoiceStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  15256 /*** ISpeechVoiceStatus methods ***/
  15257 #define ISpeechVoiceStatus_get_CurrentStreamNumber(This,StreamNumber) (This)->lpVtbl->get_CurrentStreamNumber(This,StreamNumber)
  15258 #define ISpeechVoiceStatus_get_LastStreamNumberQueued(This,StreamNumber) (This)->lpVtbl->get_LastStreamNumberQueued(This,StreamNumber)
  15259 #define ISpeechVoiceStatus_get_LastHResult(This,HResult) (This)->lpVtbl->get_LastHResult(This,HResult)
  15260 #define ISpeechVoiceStatus_get_RunningState(This,State) (This)->lpVtbl->get_RunningState(This,State)
  15261 #define ISpeechVoiceStatus_get_InputWordPosition(This,Position) (This)->lpVtbl->get_InputWordPosition(This,Position)
  15262 #define ISpeechVoiceStatus_get_InputWordLength(This,Length) (This)->lpVtbl->get_InputWordLength(This,Length)
  15263 #define ISpeechVoiceStatus_get_InputSentencePosition(This,Position) (This)->lpVtbl->get_InputSentencePosition(This,Position)
  15264 #define ISpeechVoiceStatus_get_InputSentenceLength(This,Length) (This)->lpVtbl->get_InputSentenceLength(This,Length)
  15265 #define ISpeechVoiceStatus_get_LastBookmark(This,Bookmark) (This)->lpVtbl->get_LastBookmark(This,Bookmark)
  15266 #define ISpeechVoiceStatus_get_LastBookmarkId(This,BookmarkId) (This)->lpVtbl->get_LastBookmarkId(This,BookmarkId)
  15267 #define ISpeechVoiceStatus_get_PhonemeId(This,PhoneId) (This)->lpVtbl->get_PhonemeId(This,PhoneId)
  15268 #define ISpeechVoiceStatus_get_VisemeId(This,VisemeId) (This)->lpVtbl->get_VisemeId(This,VisemeId)
  15269 #else
  15270 /*** IUnknown methods ***/
  15271 static inline HRESULT ISpeechVoiceStatus_QueryInterface(ISpeechVoiceStatus* This,REFIID riid,void **ppvObject) {
  15272     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  15273 }
  15274 static inline ULONG ISpeechVoiceStatus_AddRef(ISpeechVoiceStatus* This) {
  15275     return This->lpVtbl->AddRef(This);
  15276 }
  15277 static inline ULONG ISpeechVoiceStatus_Release(ISpeechVoiceStatus* This) {
  15278     return This->lpVtbl->Release(This);
  15279 }
  15280 /*** IDispatch methods ***/
  15281 static inline HRESULT ISpeechVoiceStatus_GetTypeInfoCount(ISpeechVoiceStatus* This,UINT *pctinfo) {
  15282     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  15283 }
  15284 static inline HRESULT ISpeechVoiceStatus_GetTypeInfo(ISpeechVoiceStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  15285     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  15286 }
  15287 static inline HRESULT ISpeechVoiceStatus_GetIDsOfNames(ISpeechVoiceStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  15288     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  15289 }
  15290 static inline HRESULT ISpeechVoiceStatus_Invoke(ISpeechVoiceStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  15291     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  15292 }
  15293 /*** ISpeechVoiceStatus methods ***/
  15294 static inline HRESULT ISpeechVoiceStatus_get_CurrentStreamNumber(ISpeechVoiceStatus* This,LONG *StreamNumber) {
  15295     return This->lpVtbl->get_CurrentStreamNumber(This,StreamNumber);
  15296 }
  15297 static inline HRESULT ISpeechVoiceStatus_get_LastStreamNumberQueued(ISpeechVoiceStatus* This,LONG *StreamNumber) {
  15298     return This->lpVtbl->get_LastStreamNumberQueued(This,StreamNumber);
  15299 }
  15300 static inline HRESULT ISpeechVoiceStatus_get_LastHResult(ISpeechVoiceStatus* This,LONG *HResult) {
  15301     return This->lpVtbl->get_LastHResult(This,HResult);
  15302 }
  15303 static inline HRESULT ISpeechVoiceStatus_get_RunningState(ISpeechVoiceStatus* This,SpeechRunState *State) {
  15304     return This->lpVtbl->get_RunningState(This,State);
  15305 }
  15306 static inline HRESULT ISpeechVoiceStatus_get_InputWordPosition(ISpeechVoiceStatus* This,LONG *Position) {
  15307     return This->lpVtbl->get_InputWordPosition(This,Position);
  15308 }
  15309 static inline HRESULT ISpeechVoiceStatus_get_InputWordLength(ISpeechVoiceStatus* This,LONG *Length) {
  15310     return This->lpVtbl->get_InputWordLength(This,Length);
  15311 }
  15312 static inline HRESULT ISpeechVoiceStatus_get_InputSentencePosition(ISpeechVoiceStatus* This,LONG *Position) {
  15313     return This->lpVtbl->get_InputSentencePosition(This,Position);
  15314 }
  15315 static inline HRESULT ISpeechVoiceStatus_get_InputSentenceLength(ISpeechVoiceStatus* This,LONG *Length) {
  15316     return This->lpVtbl->get_InputSentenceLength(This,Length);
  15317 }
  15318 static inline HRESULT ISpeechVoiceStatus_get_LastBookmark(ISpeechVoiceStatus* This,BSTR *Bookmark) {
  15319     return This->lpVtbl->get_LastBookmark(This,Bookmark);
  15320 }
  15321 static inline HRESULT ISpeechVoiceStatus_get_LastBookmarkId(ISpeechVoiceStatus* This,LONG *BookmarkId) {
  15322     return This->lpVtbl->get_LastBookmarkId(This,BookmarkId);
  15323 }
  15324 static inline HRESULT ISpeechVoiceStatus_get_PhonemeId(ISpeechVoiceStatus* This,short *PhoneId) {
  15325     return This->lpVtbl->get_PhonemeId(This,PhoneId);
  15326 }
  15327 static inline HRESULT ISpeechVoiceStatus_get_VisemeId(ISpeechVoiceStatus* This,short *VisemeId) {
  15328     return This->lpVtbl->get_VisemeId(This,VisemeId);
  15329 }
  15330 #endif
  15331 #endif
  15332 
  15333 #endif
  15334 
  15335 
  15336 #endif  /* __ISpeechVoiceStatus_INTERFACE_DEFINED__ */
  15337 
  15338 typedef enum SpeechVisemeType {
  15339     SVP_0 = 0,
  15340     SVP_1 = 1,
  15341     SVP_2 = 2,
  15342     SVP_3 = 3,
  15343     SVP_4 = 4,
  15344     SVP_5 = 5,
  15345     SVP_6 = 6,
  15346     SVP_7 = 7,
  15347     SVP_8 = 8,
  15348     SVP_9 = 9,
  15349     SVP_10 = 10,
  15350     SVP_11 = 11,
  15351     SVP_12 = 12,
  15352     SVP_13 = 13,
  15353     SVP_14 = 14,
  15354     SVP_15 = 15,
  15355     SVP_16 = 16,
  15356     SVP_17 = 17,
  15357     SVP_18 = 18,
  15358     SVP_19 = 19,
  15359     SVP_20 = 20,
  15360     SVP_21 = 21
  15361 } SpeechVisemeType;
  15362 typedef enum SpeechVisemeFeature {
  15363     SVF_None = 0,
  15364     SVF_Stressed = SPVFEATURE_STRESSED,
  15365     SVF_Emphasis = SPVFEATURE_EMPHASIS
  15366 } SpeechVisemeFeature;
  15367 typedef enum DISPID_SpeechVoiceEvent {
  15368     DISPID_SVEStreamStart = 1,
  15369     DISPID_SVEStreamEnd = 2,
  15370     DISPID_SVEVoiceChange = 3,
  15371     DISPID_SVEBookmark = 4,
  15372     DISPID_SVEWord = 5,
  15373     DISPID_SVEPhoneme = 6,
  15374     DISPID_SVESentenceBoundary = 7,
  15375     DISPID_SVEViseme = 8,
  15376     DISPID_SVEAudioLevel = 9,
  15377     DISPID_SVEEnginePrivate = 10
  15378 } DISPID_SpeechVoiceEvent;
  15379 typedef enum DISPID_SpeechRecognizer {
  15380     DISPID_SRRecognizer = 1,
  15381     DISPID_SRAllowAudioInputFormatChangesOnNextSet = 2,
  15382     DISPID_SRAudioInput = 3,
  15383     DISPID_SRAudioInputStream = 4,
  15384     DISPID_SRIsShared = 5,
  15385     DISPID_SRState = 6,
  15386     DISPID_SRStatus = 7,
  15387     DISPID_SRProfile = 8,
  15388     DISPID_SREmulateRecognition = 9,
  15389     DISPID_SRCreateRecoContext = 10,
  15390     DISPID_SRGetFormat = 11,
  15391     DISPID_SRSetPropertyNumber = 12,
  15392     DISPID_SRGetPropertyNumber = 13,
  15393     DISPID_SRSetPropertyString = 14,
  15394     DISPID_SRGetPropertyString = 15,
  15395     DISPID_SRIsUISupported = 16,
  15396     DISPID_SRDisplayUI = 17,
  15397     DISPID_SRGetRecognizers = 18,
  15398     DISPID_SVGetAudioInputs = 19,
  15399     DISPID_SVGetProfiles = 20
  15400 } DISPID_SpeechRecognizer;
  15401 typedef enum SpeechRecognizerState {
  15402     SRSInactive = SPRST_INACTIVE,
  15403     SRSActive = SPRST_ACTIVE,
  15404     SRSActiveAlways = SPRST_ACTIVE_ALWAYS,
  15405     SRSInactiveWithPurge = SPRST_INACTIVE_WITH_PURGE
  15406 } SpeechRecognizerState;
  15407 typedef enum SpeechDisplayAttributes {
  15408     SDA_No_Trailing_Space = 0,
  15409     SDA_One_Trailing_Space = SPAF_ONE_TRAILING_SPACE,
  15410     SDA_Two_Trailing_Spaces = SPAF_TWO_TRAILING_SPACES,
  15411     SDA_Consume_Leading_Spaces = SPAF_CONSUME_LEADING_SPACES
  15412 } SpeechDisplayAttributes;
  15413 typedef enum SpeechFormatType {
  15414     SFTInput = SPWF_INPUT,
  15415     SFTSREngine = SPWF_SRENGINE
  15416 } SpeechFormatType;
  15417 typedef enum DISPID_SpeechRecognizerStatus {
  15418     DISPID_SRSAudioStatus = 1,
  15419     DISPID_SRSCurrentStreamPosition = 2,
  15420     DISPID_SRSCurrentStreamNumber = 3,
  15421     DISPID_SRSNumberOfActiveRules = 4,
  15422     DISPID_SRSClsidEngine = 5,
  15423     DISPID_SRSSupportedLanguages = 6
  15424 } DISPID_SpeechRecognizerStatus;
  15425 typedef enum DISPID_SpeechRecoContext {
  15426     DISPID_SRCRecognizer = 1,
  15427     DISPID_SRCAudioInInterferenceStatus = 2,
  15428     DISPID_SRCRequestedUIType = 3,
  15429     DISPID_SRCVoice = 4,
  15430     DISPID_SRAllowVoiceFormatMatchingOnNextSet = 5,
  15431     DISPID_SRCVoicePurgeEvent = 6,
  15432     DISPID_SRCEventInterests = 7,
  15433     DISPID_SRCCmdMaxAlternates = 8,
  15434     DISPID_SRCState = 9,
  15435     DISPID_SRCRetainedAudio = 10,
  15436     DISPID_SRCRetainedAudioFormat = 11,
  15437     DISPID_SRCPause = 12,
  15438     DISPID_SRCResume = 13,
  15439     DISPID_SRCCreateGrammar = 14,
  15440     DISPID_SRCCreateResultFromMemory = 15,
  15441     DISPID_SRCBookmark = 16,
  15442     DISPID_SRCSetAdaptationData = 17
  15443 } DISPID_SpeechRecoContext;
  15444 typedef enum SpeechRetainedAudioOptions {
  15445     SRAONone = SPAO_NONE,
  15446     SRAORetainAudio = SPAO_RETAIN_AUDIO
  15447 } SpeechRetainedAudioOptions;
  15448 typedef enum SpeechBookmarkOptions {
  15449     SBONone = SPBO_NONE,
  15450     SBOPause = SPBO_PAUSE
  15451 } SpeechBookmarkOptions;
  15452 typedef enum SpeechInterference {
  15453     SINone = SPINTERFERENCE_NONE,
  15454     SINoise = SPINTERFERENCE_NOISE,
  15455     SINoSignal = SPINTERFERENCE_NOSIGNAL,
  15456     SITooLoud = SPINTERFERENCE_TOOLOUD,
  15457     SITooQuiet = SPINTERFERENCE_TOOQUIET,
  15458     SITooFast = SPINTERFERENCE_TOOFAST,
  15459     SITooSlow = SPINTERFERENCE_TOOSLOW
  15460 } SpeechInterference;
  15461 typedef enum SpeechRecoEvents {
  15462     SREStreamEnd = 0x1,
  15463     SRESoundStart = 0x2,
  15464     SRESoundEnd = 0x4,
  15465     SREPhraseStart = 0x8,
  15466     SRERecognition = 0x10,
  15467     SREHypothesis = 0x20,
  15468     SREBookmark = 0x40,
  15469     SREPropertyNumChange = 0x80,
  15470     SREPropertyStringChange = 0x100,
  15471     SREFalseRecognition = 0x200,
  15472     SREInterference = 0x400,
  15473     SRERequestUI = 0x800,
  15474     SREStateChange = 0x1000,
  15475     SREAdaptation = 0x2000,
  15476     SREStreamStart = 0x4000,
  15477     SRERecoOtherContext = 0x8000,
  15478     SREAudioLevel = 0x10000,
  15479     SREPrivate = 0x40000,
  15480     SREAllEvents = 0x5ffff
  15481 } SpeechRecoEvents;
  15482 typedef enum SpeechRecoContextState {
  15483     SRCS_Disabled = SPCS_DISABLED,
  15484     SRCS_Enabled = SPCS_ENABLED
  15485 } SpeechRecoContextState;
  15486 typedef enum DISPIDSPRG {
  15487     DISPID_SRGId = 1,
  15488     DISPID_SRGRecoContext = 2,
  15489     DISPID_SRGState = 3,
  15490     DISPID_SRGRules = 4,
  15491     DISPID_SRGReset = 5,
  15492     DISPID_SRGCommit = 6,
  15493     DISPID_SRGCmdLoadFromFile = 7,
  15494     DISPID_SRGCmdLoadFromObject = 8,
  15495     DISPID_SRGCmdLoadFromResource = 9,
  15496     DISPID_SRGCmdLoadFromMemory = 10,
  15497     DISPID_SRGCmdLoadFromProprietaryGrammar = 11,
  15498     DISPID_SRGCmdSetRuleState = 12,
  15499     DISPID_SRGCmdSetRuleIdState = 13,
  15500     DISPID_SRGDictationLoad = 14,
  15501     DISPID_SRGDictationUnload = 15,
  15502     DISPID_SRGDictationSetState = 16,
  15503     DISPID_SRGSetWordSequenceData = 17,
  15504     DISPID_SRGSetTextSelection = 18,
  15505     DISPID_SRGIsPronounceable = 19
  15506 } DISPIDSPRG;
  15507 typedef enum SpeechLoadOption {
  15508     SLOStatic = SPLO_STATIC,
  15509     SLODynamic = SPLO_DYNAMIC
  15510 } SpeechLoadOption;
  15511 typedef enum SpeechWordPronounceable {
  15512     SWPUnknownWordUnpronounceable = SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE,
  15513     SWPUnknownWordPronounceable = SPWP_UNKNOWN_WORD_PRONOUNCEABLE,
  15514     SWPKnownWordPronounceable = SPWP_KNOWN_WORD_PRONOUNCEABLE
  15515 } SpeechWordPronounceable;
  15516 typedef enum SpeechGrammarState {
  15517     SGSEnabled = SPGS_ENABLED,
  15518     SGSDisabled = SPGS_DISABLED,
  15519     SGSExclusive = SPGS_EXCLUSIVE
  15520 } SpeechGrammarState;
  15521 typedef enum SpeechRuleState {
  15522     SGDSInactive = SPRS_INACTIVE,
  15523     SGDSActive = SPRS_ACTIVE,
  15524     SGDSActiveWithAutoPause = SPRS_ACTIVE_WITH_AUTO_PAUSE,
  15525     SGDSActiveUserDelimited = SPRS_ACTIVE_USER_DELIMITED
  15526 } SpeechRuleState;
  15527 typedef enum SpeechRuleAttributes {
  15528     SRATopLevel = SPRAF_TopLevel,
  15529     SRADefaultToActive = SPRAF_Active,
  15530     SRAExport = SPRAF_Export,
  15531     SRAImport = SPRAF_Import,
  15532     SRAInterpreter = SPRAF_Interpreter,
  15533     SRADynamic = SPRAF_Dynamic,
  15534     SRARoot = SPRAF_Root
  15535 } SpeechRuleAttributes;
  15536 typedef enum SpeechGrammarWordType {
  15537     SGDisplay = SPWT_DISPLAY,
  15538     SGLexical = SPWT_LEXICAL,
  15539     SGPronounciation = SPWT_PRONUNCIATION,
  15540     SGLexicalNoSpecialChars = SPWT_LEXICAL_NO_SPECIAL_CHARS
  15541 } SpeechGrammarWordType;
  15542 typedef enum DISPID_SpeechRecoContextEvents {
  15543     DISPID_SRCEStartStream = 1,
  15544     DISPID_SRCEEndStream = 2,
  15545     DISPID_SRCEBookmark = 3,
  15546     DISPID_SRCESoundStart = 4,
  15547     DISPID_SRCESoundEnd = 5,
  15548     DISPID_SRCEPhraseStart = 6,
  15549     DISPID_SRCERecognition = 7,
  15550     DISPID_SRCEHypothesis = 8,
  15551     DISPID_SRCEPropertyNumberChange = 9,
  15552     DISPID_SRCEPropertyStringChange = 10,
  15553     DISPID_SRCEFalseRecognition = 11,
  15554     DISPID_SRCEInterference = 12,
  15555     DISPID_SRCERequestUI = 13,
  15556     DISPID_SRCERecognizerStateChange = 14,
  15557     DISPID_SRCEAdaptation = 15,
  15558     DISPID_SRCERecognitionForOtherContext = 16,
  15559     DISPID_SRCEAudioLevel = 17,
  15560     DISPID_SRCEEnginePrivate = 18
  15561 } DISPID_SpeechRecoContextEvents;
  15562 typedef enum SpeechRecognitionType {
  15563     SRTStandard = 0,
  15564     SRTAutopause = SPREF_AutoPause,
  15565     SRTEmulated = SPREF_Emulated,
  15566     SRTSMLTimeout = SPREF_SMLTimeout,
  15567     SRTExtendableParse = SPREF_ExtendableParse,
  15568     SRTReSent = SPREF_ReSent
  15569 } SpeechRecognitionType;
  15570 typedef enum DISPID_SpeechGrammarRule {
  15571     DISPID_SGRAttributes = 1,
  15572     DISPID_SGRInitialState = 2,
  15573     DISPID_SGRName = 3,
  15574     DISPID_SGRId = 4,
  15575     DISPID_SGRClear = 5,
  15576     DISPID_SGRAddResource = 6,
  15577     DISPID_SGRAddState = 7
  15578 } DISPID_SpeechGrammarRule;
  15579 typedef enum DISPID_SpeechGrammarRules {
  15580     DISPID_SGRsCount = 1,
  15581     DISPID_SGRsDynamic = 2,
  15582     DISPID_SGRsAdd = 3,
  15583     DISPID_SGRsCommit = 4,
  15584     DISPID_SGRsCommitAndSave = 5,
  15585     DISPID_SGRsFindRule = 6,
  15586     DISPID_SGRsItem = DISPID_VALUE,
  15587     DISPID_SGRs_NewEnum = DISPID_NEWENUM
  15588 } DISPID_SpeechGrammarRules;
  15589 typedef enum DISPID_SpeechGrammarRuleState {
  15590     DISPID_SGRSRule = 1,
  15591     DISPID_SGRSTransitions = 2,
  15592     DISPID_SGRSAddWordTransition = 3,
  15593     DISPID_SGRSAddRuleTransition = 4,
  15594     DISPID_SGRSAddSpecialTransition = 5
  15595 } DISPID_SpeechGrammarRuleState;
  15596 typedef enum SpeechSpecialTransitionType {
  15597     SSTTWildcard = 1,
  15598     SSTTDictation = 2,
  15599     SSTTTextBuffer = 3
  15600 } SpeechSpecialTransitionType;
  15601 typedef enum DISPID_SpeechGrammarRuleStateTransitions {
  15602     DISPID_SGRSTsCount = 1,
  15603     DISPID_SGRSTsItem = DISPID_VALUE,
  15604     DISPID_SGRSTs_NewEnum = DISPID_NEWENUM
  15605 } DISPID_SpeechGrammarRuleStateTransitions;
  15606 typedef enum DISPID_SpeechGrammarRuleStateTransition {
  15607     DISPID_SGRSTType = 1,
  15608     DISPID_SGRSTText = 2,
  15609     DISPID_SGRSTRule = 3,
  15610     DISPID_SGRSTWeight = 4,
  15611     DISPID_SGRSTPropertyName = 5,
  15612     DISPID_SGRSTPropertyId = 6,
  15613     DISPID_SGRSTPropertyValue = 7,
  15614     DISPID_SGRSTNextState = 8
  15615 } DISPID_SpeechGrammarRuleStateTransition;
  15616 typedef enum SpeechGrammarRuleStateTransitionType {
  15617     SGRSTTEpsilon = 0,
  15618     SGRSTTWord = 1,
  15619     SGRSTTRule = 2,
  15620     SGRSTTDictation = 3,
  15621     SGRSTTWildcard = 4,
  15622     SGRSTTTextBuffer = 5
  15623 } SpeechGrammarRuleStateTransitionType;
  15624 typedef enum DISPIDSPTSI {
  15625     DISPIDSPTSI_ActiveOffset = 1,
  15626     DISPIDSPTSI_ActiveLength = 2,
  15627     DISPIDSPTSI_SelectionOffset = 3,
  15628     DISPIDSPTSI_SelectionLength = 4
  15629 } DISPIDSPTSI;
  15630 typedef enum DISPID_SpeechRecoResult {
  15631     DISPID_SRRRecoContext = 1,
  15632     DISPID_SRRTimes = 2,
  15633     DISPID_SRRAudioFormat = 3,
  15634     DISPID_SRRPhraseInfo = 4,
  15635     DISPID_SRRAlternates = 5,
  15636     DISPID_SRRAudio = 6,
  15637     DISPID_SRRSpeakAudio = 7,
  15638     DISPID_SRRSaveToMemory = 8,
  15639     DISPID_SRRDiscardResultInfo = 9
  15640 } DISPID_SpeechRecoResult;
  15641 typedef enum SpeechDiscardType {
  15642     SDTProperty = SPDF_PROPERTY,
  15643     SDTReplacement = SPDF_REPLACEMENT,
  15644     SDTRule = SPDF_RULE,
  15645     SDTDisplayText = SPDF_DISPLAYTEXT,
  15646     SDTLexicalForm = SPDF_LEXICALFORM,
  15647     SDTPronunciation = SPDF_PRONUNCIATION,
  15648     SDTAudio = SPDF_AUDIO,
  15649     SDTAlternates = SPDF_ALTERNATES,
  15650     SDTAll = SPDF_ALL
  15651 } SpeechDiscardType;
  15652 typedef enum SpeechEmulationCompareFlags {
  15653     SECFIgnoreCase = 0x1,
  15654     SECFIgnoreKanaType = 0x10000,
  15655     SECFIgnoreWidth = 0x20000,
  15656     SECFNoSpecialChars = 0x20000000,
  15657     SECFEmulateResult = 0x40000000,
  15658     SECFDefault = (SECFIgnoreCase | SECFIgnoreKanaType) | SECFIgnoreWidth
  15659 } SpeechEmulationCompareFlags;
  15660 typedef enum DISPID_SpeechXMLRecoResult {
  15661     DISPID_SRRGetXMLResult = DISPID_SRRDiscardResultInfo + 1,
  15662     DISPID_SRRGetXMLErrorInfo = DISPID_SRRGetXMLResult + 1
  15663 } DISPID_SpeechXMLRecoResult;
  15664 typedef enum DISPID_SpeechRecoResult2 {
  15665     DISPID_SRRSetTextFeedback = DISPID_SRRGetXMLErrorInfo + 1
  15666 } DISPID_SpeechRecoResult2;
  15667 typedef enum DISPID_SpeechPhraseBuilder {
  15668     DISPID_SPPBRestorePhraseFromMemory = 1
  15669 } DISPID_SpeechPhraseBuilder;
  15670 typedef enum DISPID_SpeechRecoResultTimes {
  15671     DISPID_SRRTStreamTime = 1,
  15672     DISPID_SRRTLength = 2,
  15673     DISPID_SRRTTickCount = 3,
  15674     DISPID_SRRTOffsetFromStart = 4
  15675 } DISPID_SpeechRecoResultTimes;
  15676 typedef enum DISPID_SpeechPhraseAlternate {
  15677     DISPID_SPARecoResult = 1,
  15678     DISPID_SPAStartElementInResult = 2,
  15679     DISPID_SPANumberOfElementsInResult = 3,
  15680     DISPID_SPAPhraseInfo = 4,
  15681     DISPID_SPACommit = 5
  15682 } DISPID_SpeechPhraseAlternate;
  15683 typedef enum DISPID_SpeechPhraseAlternates {
  15684     DISPID_SPAsCount = 1,
  15685     DISPID_SPAsItem = DISPID_VALUE,
  15686     DISPID_SPAs_NewEnum = DISPID_NEWENUM
  15687 } DISPID_SpeechPhraseAlternates;
  15688 typedef enum DISPID_SpeechPhraseInfo {
  15689     DISPID_SPILanguageId = 1,
  15690     DISPID_SPIGrammarId = 2,
  15691     DISPID_SPIStartTime = 3,
  15692     DISPID_SPIAudioStreamPosition = 4,
  15693     DISPID_SPIAudioSizeBytes = 5,
  15694     DISPID_SPIRetainedSizeBytes = 6,
  15695     DISPID_SPIAudioSizeTime = 7,
  15696     DISPID_SPIRule = 8,
  15697     DISPID_SPIProperties = 9,
  15698     DISPID_SPIElements = 10,
  15699     DISPID_SPIReplacements = 11,
  15700     DISPID_SPIEngineId = 12,
  15701     DISPID_SPIEnginePrivateData = 13,
  15702     DISPID_SPISaveToMemory = 14,
  15703     DISPID_SPIGetText = 15,
  15704     DISPID_SPIGetDisplayAttributes = 16
  15705 } DISPID_SpeechPhraseInfo;
  15706 typedef enum DISPID_SpeechPhraseElement {
  15707     DISPID_SPEAudioTimeOffset = 1,
  15708     DISPID_SPEAudioSizeTime = 2,
  15709     DISPID_SPEAudioStreamOffset = 3,
  15710     DISPID_SPEAudioSizeBytes = 4,
  15711     DISPID_SPERetainedStreamOffset = 5,
  15712     DISPID_SPERetainedSizeBytes = 6,
  15713     DISPID_SPEDisplayText = 7,
  15714     DISPID_SPELexicalForm = 8,
  15715     DISPID_SPEPronunciation = 9,
  15716     DISPID_SPEDisplayAttributes = 10,
  15717     DISPID_SPERequiredConfidence = 11,
  15718     DISPID_SPEActualConfidence = 12,
  15719     DISPID_SPEEngineConfidence = 13
  15720 } DISPID_SpeechPhraseElement;
  15721 typedef enum SpeechEngineConfidence {
  15722     SECLowConfidence = -1,
  15723     SECNormalConfidence = 0,
  15724     SECHighConfidence = 1
  15725 } SpeechEngineConfidence;
  15726 typedef enum DISPID_SpeechPhraseElements {
  15727     DISPID_SPEsCount = 1,
  15728     DISPID_SPEsItem = DISPID_VALUE,
  15729     DISPID_SPEs_NewEnum = DISPID_NEWENUM
  15730 } DISPID_SpeechPhraseElements;
  15731 typedef enum DISPID_SpeechPhraseReplacement {
  15732     DISPID_SPRDisplayAttributes = 1,
  15733     DISPID_SPRText = 2,
  15734     DISPID_SPRFirstElement = 3,
  15735     DISPID_SPRNumberOfElements = 4
  15736 } DISPID_SpeechPhraseReplacement;
  15737 typedef enum DISPID_SpeechPhraseReplacements {
  15738     DISPID_SPRsCount = 1,
  15739     DISPID_SPRsItem = DISPID_VALUE,
  15740     DISPID_SPRs_NewEnum = DISPID_NEWENUM
  15741 } DISPID_SpeechPhraseReplacements;
  15742 typedef enum DISPID_SpeechPhraseProperty {
  15743     DISPID_SPPName = 1,
  15744     DISPID_SPPId = 2,
  15745     DISPID_SPPValue = 3,
  15746     DISPID_SPPFirstElement = 4,
  15747     DISPID_SPPNumberOfElements = 5,
  15748     DISPID_SPPEngineConfidence = 6,
  15749     DISPID_SPPConfidence = 7,
  15750     DISPID_SPPParent = 8,
  15751     DISPID_SPPChildren = 9
  15752 } DISPID_SpeechPhraseProperty;
  15753 typedef enum DISPID_SpeechPhraseProperties {
  15754     DISPID_SPPsCount = 1,
  15755     DISPID_SPPsItem = DISPID_VALUE,
  15756     DISPID_SPPs_NewEnum = DISPID_NEWENUM
  15757 } DISPID_SpeechPhraseProperties;
  15758 typedef enum DISPID_SpeechPhraseRule {
  15759     DISPID_SPRuleName = 1,
  15760     DISPID_SPRuleId = 2,
  15761     DISPID_SPRuleFirstElement = 3,
  15762     DISPID_SPRuleNumberOfElements = 4,
  15763     DISPID_SPRuleParent = 5,
  15764     DISPID_SPRuleChildren = 6,
  15765     DISPID_SPRuleConfidence = 7,
  15766     DISPID_SPRuleEngineConfidence = 8
  15767 } DISPID_SpeechPhraseRule;
  15768 typedef enum DISPID_SpeechPhraseRules {
  15769     DISPID_SPRulesCount = 1,
  15770     DISPID_SPRulesItem = DISPID_VALUE,
  15771     DISPID_SPRules_NewEnum = DISPID_NEWENUM
  15772 } DISPID_SpeechPhraseRules;
  15773 typedef enum DISPID_SpeechLexicon {
  15774     DISPID_SLGenerationId = 1,
  15775     DISPID_SLGetWords = 2,
  15776     DISPID_SLAddPronunciation = 3,
  15777     DISPID_SLAddPronunciationByPhoneIds = 4,
  15778     DISPID_SLRemovePronunciation = 5,
  15779     DISPID_SLRemovePronunciationByPhoneIds = 6,
  15780     DISPID_SLGetPronunciations = 7,
  15781     DISPID_SLGetGenerationChange = 8
  15782 } DISPID_SpeechLexicon;
  15783 typedef enum SpeechLexiconType {
  15784     SLTUser = eLEXTYPE_USER,
  15785     SLTApp = eLEXTYPE_APP
  15786 } SpeechLexiconType;
  15787 typedef enum SpeechPartOfSpeech {
  15788     SPSNotOverriden = SPPS_NotOverriden,
  15789     SPSUnknown = SPPS_Unknown,
  15790     SPSNoun = SPPS_Noun,
  15791     SPSVerb = SPPS_Verb,
  15792     SPSModifier = SPPS_Modifier,
  15793     SPSFunction = SPPS_Function,
  15794     SPSInterjection = SPPS_Interjection,
  15795     SPSLMA = SPPS_LMA,
  15796     SPSSuppressWord = SPPS_SuppressWord
  15797 } SpeechPartOfSpeech;
  15798 typedef enum DISPID_SpeechLexiconWords {
  15799     DISPID_SLWsCount = 1,
  15800     DISPID_SLWsItem = DISPID_VALUE,
  15801     DISPID_SLWs_NewEnum = DISPID_NEWENUM
  15802 } DISPID_SpeechLexiconWords;
  15803 typedef enum SpeechWordType {
  15804     SWTAdded = eWORDTYPE_ADDED,
  15805     SWTDeleted = eWORDTYPE_DELETED
  15806 } SpeechWordType;
  15807 typedef enum DISPID_SpeechLexiconWord {
  15808     DISPID_SLWLangId = 1,
  15809     DISPID_SLWType = 2,
  15810     DISPID_SLWWord = 3,
  15811     DISPID_SLWPronunciations = 4
  15812 } DISPID_SpeechLexiconWord;
  15813 typedef enum DISPID_SpeechLexiconProns {
  15814     DISPID_SLPsCount = 1,
  15815     DISPID_SLPsItem = DISPID_VALUE,
  15816     DISPID_SLPs_NewEnum = DISPID_NEWENUM
  15817 } DISPID_SpeechLexiconProns;
  15818 typedef enum DISPID_SpeechLexiconPronunciation {
  15819     DISPID_SLPType = 1,
  15820     DISPID_SLPLangId = 2,
  15821     DISPID_SLPPartOfSpeech = 3,
  15822     DISPID_SLPPhoneIds = 4,
  15823     DISPID_SLPSymbolic = 5
  15824 } DISPID_SpeechLexiconPronunciation;
  15825 typedef enum DISPID_SpeechPhoneConverter {
  15826     DISPID_SPCLangId = 1,
  15827     DISPID_SPCPhoneToId = 2,
  15828     DISPID_SPCIdToPhone = 3
  15829 } DISPID_SpeechPhoneConverter;
  15830 /*****************************************************************************
  15831  * _ISpeechVoiceEvents dispinterface
  15832  */
  15833 #ifndef ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__
  15834 #define ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__
  15835 
  15836 DEFINE_GUID(DIID__ISpeechVoiceEvents, 0xa372acd1, 0x3bef, 0x4bbd, 0x8f,0xfb, 0xcb,0x3e,0x2b,0x41,0x6a,0xf8);
  15837 #if defined(__cplusplus) && !defined(CINTERFACE)
  15838 MIDL_INTERFACE("a372acd1-3bef-4bbd-8ffb-cb3e2b416af8")
  15839 _ISpeechVoiceEvents : public IDispatch
  15840 {
  15841 };
  15842 #ifdef __CRT_UUID_DECL
  15843 __CRT_UUID_DECL(_ISpeechVoiceEvents, 0xa372acd1, 0x3bef, 0x4bbd, 0x8f,0xfb, 0xcb,0x3e,0x2b,0x41,0x6a,0xf8)
  15844 #endif
  15845 #else
  15846 typedef struct _ISpeechVoiceEventsVtbl {
  15847     BEGIN_INTERFACE
  15848 
  15849     /*** IUnknown methods ***/
  15850     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  15851         _ISpeechVoiceEvents *This,
  15852         REFIID riid,
  15853         void **ppvObject);
  15854 
  15855     ULONG (STDMETHODCALLTYPE *AddRef)(
  15856         _ISpeechVoiceEvents *This);
  15857 
  15858     ULONG (STDMETHODCALLTYPE *Release)(
  15859         _ISpeechVoiceEvents *This);
  15860 
  15861     /*** IDispatch methods ***/
  15862     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  15863         _ISpeechVoiceEvents *This,
  15864         UINT *pctinfo);
  15865 
  15866     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  15867         _ISpeechVoiceEvents *This,
  15868         UINT iTInfo,
  15869         LCID lcid,
  15870         ITypeInfo **ppTInfo);
  15871 
  15872     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  15873         _ISpeechVoiceEvents *This,
  15874         REFIID riid,
  15875         LPOLESTR *rgszNames,
  15876         UINT cNames,
  15877         LCID lcid,
  15878         DISPID *rgDispId);
  15879 
  15880     HRESULT (STDMETHODCALLTYPE *Invoke)(
  15881         _ISpeechVoiceEvents *This,
  15882         DISPID dispIdMember,
  15883         REFIID riid,
  15884         LCID lcid,
  15885         WORD wFlags,
  15886         DISPPARAMS *pDispParams,
  15887         VARIANT *pVarResult,
  15888         EXCEPINFO *pExcepInfo,
  15889         UINT *puArgErr);
  15890 
  15891     END_INTERFACE
  15892 } _ISpeechVoiceEventsVtbl;
  15893 
  15894 interface _ISpeechVoiceEvents {
  15895     CONST_VTBL _ISpeechVoiceEventsVtbl* lpVtbl;
  15896 };
  15897 
  15898 #ifdef COBJMACROS
  15899 #ifndef WIDL_C_INLINE_WRAPPERS
  15900 /*** IUnknown methods ***/
  15901 #define _ISpeechVoiceEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  15902 #define _ISpeechVoiceEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
  15903 #define _ISpeechVoiceEvents_Release(This) (This)->lpVtbl->Release(This)
  15904 /*** IDispatch methods ***/
  15905 #define _ISpeechVoiceEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  15906 #define _ISpeechVoiceEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  15907 #define _ISpeechVoiceEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  15908 #define _ISpeechVoiceEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  15909 #else
  15910 /*** IUnknown methods ***/
  15911 static inline HRESULT _ISpeechVoiceEvents_QueryInterface(_ISpeechVoiceEvents* This,REFIID riid,void **ppvObject) {
  15912     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  15913 }
  15914 static inline ULONG _ISpeechVoiceEvents_AddRef(_ISpeechVoiceEvents* This) {
  15915     return This->lpVtbl->AddRef(This);
  15916 }
  15917 static inline ULONG _ISpeechVoiceEvents_Release(_ISpeechVoiceEvents* This) {
  15918     return This->lpVtbl->Release(This);
  15919 }
  15920 /*** IDispatch methods ***/
  15921 static inline HRESULT _ISpeechVoiceEvents_GetTypeInfoCount(_ISpeechVoiceEvents* This,UINT *pctinfo) {
  15922     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  15923 }
  15924 static inline HRESULT _ISpeechVoiceEvents_GetTypeInfo(_ISpeechVoiceEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  15925     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  15926 }
  15927 static inline HRESULT _ISpeechVoiceEvents_GetIDsOfNames(_ISpeechVoiceEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  15928     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  15929 }
  15930 static inline HRESULT _ISpeechVoiceEvents_Invoke(_ISpeechVoiceEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  15931     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  15932 }
  15933 #endif
  15934 #endif
  15935 
  15936 #endif
  15937 
  15938 #endif  /* ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__ */
  15939 
  15940 /*****************************************************************************
  15941  * ISpeechRecognizer interface
  15942  */
  15943 #ifndef __ISpeechRecognizer_INTERFACE_DEFINED__
  15944 #define __ISpeechRecognizer_INTERFACE_DEFINED__
  15945 
  15946 DEFINE_GUID(IID_ISpeechRecognizer, 0x2d5f1c0c, 0xbd75, 0x4b08, 0x94,0x78, 0x3b,0x11,0xfe,0xa2,0x58,0x6c);
  15947 #if defined(__cplusplus) && !defined(CINTERFACE)
  15948 MIDL_INTERFACE("2d5f1c0c-bd75-4b08-9478-3b11fea2586c")
  15949 ISpeechRecognizer : public IDispatch
  15950 {
  15951     virtual HRESULT STDMETHODCALLTYPE putref_Recognizer(
  15952         ISpeechObjectToken *Recognizer) = 0;
  15953 
  15954     virtual HRESULT STDMETHODCALLTYPE get_Recognizer(
  15955         ISpeechObjectToken **Recognizer) = 0;
  15956 
  15957     virtual HRESULT STDMETHODCALLTYPE put_AllowAudioInputFormatChangesOnNextSet(
  15958         VARIANT_BOOL Allow) = 0;
  15959 
  15960     virtual HRESULT STDMETHODCALLTYPE get_AllowAudioInputFormatChangesOnNextSet(
  15961         VARIANT_BOOL *Allow) = 0;
  15962 
  15963     virtual HRESULT STDMETHODCALLTYPE putref_AudioInput(
  15964         ISpeechObjectToken *AudioInput = 0) = 0;
  15965 
  15966     virtual HRESULT STDMETHODCALLTYPE get_AudioInput(
  15967         ISpeechObjectToken **AudioInput) = 0;
  15968 
  15969     virtual HRESULT STDMETHODCALLTYPE putref_AudioInputStream(
  15970         ISpeechBaseStream *AudioInputStream = 0) = 0;
  15971 
  15972     virtual HRESULT STDMETHODCALLTYPE get_AudioInputStream(
  15973         ISpeechBaseStream **AudioInputStream) = 0;
  15974 
  15975     virtual HRESULT STDMETHODCALLTYPE get_IsShared(
  15976         VARIANT_BOOL *Shared) = 0;
  15977 
  15978     virtual HRESULT STDMETHODCALLTYPE put_State(
  15979         SpeechRecognizerState State) = 0;
  15980 
  15981     virtual HRESULT STDMETHODCALLTYPE get_State(
  15982         SpeechRecognizerState *State) = 0;
  15983 
  15984     virtual HRESULT STDMETHODCALLTYPE get_Status(
  15985         ISpeechRecognizerStatus **Status) = 0;
  15986 
  15987     virtual HRESULT STDMETHODCALLTYPE putref_Profile(
  15988         ISpeechObjectToken *Profile = 0) = 0;
  15989 
  15990     virtual HRESULT STDMETHODCALLTYPE get_Profile(
  15991         ISpeechObjectToken **Profile) = 0;
  15992 
  15993     virtual HRESULT STDMETHODCALLTYPE EmulateRecognition(
  15994         VARIANT TextElements,
  15995         VARIANT *ElementDisplayAttributes = 0,
  15996         LONG LanguageId = 0) = 0;
  15997 
  15998     virtual HRESULT STDMETHODCALLTYPE CreateRecoContext(
  15999         ISpeechRecoContext **NewContext) = 0;
  16000 
  16001     virtual HRESULT STDMETHODCALLTYPE GetFormat(
  16002         SpeechFormatType Type,
  16003         ISpeechAudioFormat **Format) = 0;
  16004 
  16005     virtual HRESULT STDMETHODCALLTYPE SetPropertyNumber(
  16006         const BSTR Name,
  16007         LONG Value,
  16008         VARIANT_BOOL *Supported) = 0;
  16009 
  16010     virtual HRESULT STDMETHODCALLTYPE GetPropertyNumber(
  16011         const BSTR Name,
  16012         LONG *Value,
  16013         VARIANT_BOOL *Supported) = 0;
  16014 
  16015     virtual HRESULT STDMETHODCALLTYPE SetPropertyString(
  16016         const BSTR Name,
  16017         const BSTR Value,
  16018         VARIANT_BOOL *Supported) = 0;
  16019 
  16020     virtual HRESULT STDMETHODCALLTYPE GetPropertyString(
  16021         const BSTR Name,
  16022         BSTR *Value,
  16023         VARIANT_BOOL *Supported) = 0;
  16024 
  16025     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
  16026         const BSTR TypeOfUI,
  16027         const VARIANT *ExtraData,
  16028         VARIANT_BOOL *Supported) = 0;
  16029 
  16030     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
  16031         LONG hWndParent,
  16032         BSTR Title,
  16033         const BSTR TypeOfUI,
  16034         const VARIANT *ExtraData = 0) = 0;
  16035 
  16036     virtual HRESULT STDMETHODCALLTYPE GetRecognizers(
  16037         BSTR RequiredAttributes,
  16038         BSTR OptionalAttributes,
  16039         ISpeechObjectTokens **ObjectTokens) = 0;
  16040 
  16041     virtual HRESULT STDMETHODCALLTYPE GetAudioInputs(
  16042         BSTR RequiredAttributes,
  16043         BSTR OptionalAttributes,
  16044         ISpeechObjectTokens **ObjectTokens) = 0;
  16045 
  16046     virtual HRESULT STDMETHODCALLTYPE GetProfiles(
  16047         BSTR RequiredAttributes,
  16048         BSTR OptionalAttributes,
  16049         ISpeechObjectTokens **ObjectTokens) = 0;
  16050 
  16051 };
  16052 #ifdef __CRT_UUID_DECL
  16053 __CRT_UUID_DECL(ISpeechRecognizer, 0x2d5f1c0c, 0xbd75, 0x4b08, 0x94,0x78, 0x3b,0x11,0xfe,0xa2,0x58,0x6c)
  16054 #endif
  16055 #else
  16056 typedef struct ISpeechRecognizerVtbl {
  16057     BEGIN_INTERFACE
  16058 
  16059     /*** IUnknown methods ***/
  16060     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  16061         ISpeechRecognizer *This,
  16062         REFIID riid,
  16063         void **ppvObject);
  16064 
  16065     ULONG (STDMETHODCALLTYPE *AddRef)(
  16066         ISpeechRecognizer *This);
  16067 
  16068     ULONG (STDMETHODCALLTYPE *Release)(
  16069         ISpeechRecognizer *This);
  16070 
  16071     /*** IDispatch methods ***/
  16072     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  16073         ISpeechRecognizer *This,
  16074         UINT *pctinfo);
  16075 
  16076     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  16077         ISpeechRecognizer *This,
  16078         UINT iTInfo,
  16079         LCID lcid,
  16080         ITypeInfo **ppTInfo);
  16081 
  16082     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  16083         ISpeechRecognizer *This,
  16084         REFIID riid,
  16085         LPOLESTR *rgszNames,
  16086         UINT cNames,
  16087         LCID lcid,
  16088         DISPID *rgDispId);
  16089 
  16090     HRESULT (STDMETHODCALLTYPE *Invoke)(
  16091         ISpeechRecognizer *This,
  16092         DISPID dispIdMember,
  16093         REFIID riid,
  16094         LCID lcid,
  16095         WORD wFlags,
  16096         DISPPARAMS *pDispParams,
  16097         VARIANT *pVarResult,
  16098         EXCEPINFO *pExcepInfo,
  16099         UINT *puArgErr);
  16100 
  16101     /*** ISpeechRecognizer methods ***/
  16102     HRESULT (STDMETHODCALLTYPE *putref_Recognizer)(
  16103         ISpeechRecognizer *This,
  16104         ISpeechObjectToken *Recognizer);
  16105 
  16106     HRESULT (STDMETHODCALLTYPE *get_Recognizer)(
  16107         ISpeechRecognizer *This,
  16108         ISpeechObjectToken **Recognizer);
  16109 
  16110     HRESULT (STDMETHODCALLTYPE *put_AllowAudioInputFormatChangesOnNextSet)(
  16111         ISpeechRecognizer *This,
  16112         VARIANT_BOOL Allow);
  16113 
  16114     HRESULT (STDMETHODCALLTYPE *get_AllowAudioInputFormatChangesOnNextSet)(
  16115         ISpeechRecognizer *This,
  16116         VARIANT_BOOL *Allow);
  16117 
  16118     HRESULT (STDMETHODCALLTYPE *putref_AudioInput)(
  16119         ISpeechRecognizer *This,
  16120         ISpeechObjectToken *AudioInput);
  16121 
  16122     HRESULT (STDMETHODCALLTYPE *get_AudioInput)(
  16123         ISpeechRecognizer *This,
  16124         ISpeechObjectToken **AudioInput);
  16125 
  16126     HRESULT (STDMETHODCALLTYPE *putref_AudioInputStream)(
  16127         ISpeechRecognizer *This,
  16128         ISpeechBaseStream *AudioInputStream);
  16129 
  16130     HRESULT (STDMETHODCALLTYPE *get_AudioInputStream)(
  16131         ISpeechRecognizer *This,
  16132         ISpeechBaseStream **AudioInputStream);
  16133 
  16134     HRESULT (STDMETHODCALLTYPE *get_IsShared)(
  16135         ISpeechRecognizer *This,
  16136         VARIANT_BOOL *Shared);
  16137 
  16138     HRESULT (STDMETHODCALLTYPE *put_State)(
  16139         ISpeechRecognizer *This,
  16140         SpeechRecognizerState State);
  16141 
  16142     HRESULT (STDMETHODCALLTYPE *get_State)(
  16143         ISpeechRecognizer *This,
  16144         SpeechRecognizerState *State);
  16145 
  16146     HRESULT (STDMETHODCALLTYPE *get_Status)(
  16147         ISpeechRecognizer *This,
  16148         ISpeechRecognizerStatus **Status);
  16149 
  16150     HRESULT (STDMETHODCALLTYPE *putref_Profile)(
  16151         ISpeechRecognizer *This,
  16152         ISpeechObjectToken *Profile);
  16153 
  16154     HRESULT (STDMETHODCALLTYPE *get_Profile)(
  16155         ISpeechRecognizer *This,
  16156         ISpeechObjectToken **Profile);
  16157 
  16158     HRESULT (STDMETHODCALLTYPE *EmulateRecognition)(
  16159         ISpeechRecognizer *This,
  16160         VARIANT TextElements,
  16161         VARIANT *ElementDisplayAttributes,
  16162         LONG LanguageId);
  16163 
  16164     HRESULT (STDMETHODCALLTYPE *CreateRecoContext)(
  16165         ISpeechRecognizer *This,
  16166         ISpeechRecoContext **NewContext);
  16167 
  16168     HRESULT (STDMETHODCALLTYPE *GetFormat)(
  16169         ISpeechRecognizer *This,
  16170         SpeechFormatType Type,
  16171         ISpeechAudioFormat **Format);
  16172 
  16173     HRESULT (STDMETHODCALLTYPE *SetPropertyNumber)(
  16174         ISpeechRecognizer *This,
  16175         const BSTR Name,
  16176         LONG Value,
  16177         VARIANT_BOOL *Supported);
  16178 
  16179     HRESULT (STDMETHODCALLTYPE *GetPropertyNumber)(
  16180         ISpeechRecognizer *This,
  16181         const BSTR Name,
  16182         LONG *Value,
  16183         VARIANT_BOOL *Supported);
  16184 
  16185     HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
  16186         ISpeechRecognizer *This,
  16187         const BSTR Name,
  16188         const BSTR Value,
  16189         VARIANT_BOOL *Supported);
  16190 
  16191     HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
  16192         ISpeechRecognizer *This,
  16193         const BSTR Name,
  16194         BSTR *Value,
  16195         VARIANT_BOOL *Supported);
  16196 
  16197     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
  16198         ISpeechRecognizer *This,
  16199         const BSTR TypeOfUI,
  16200         const VARIANT *ExtraData,
  16201         VARIANT_BOOL *Supported);
  16202 
  16203     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
  16204         ISpeechRecognizer *This,
  16205         LONG hWndParent,
  16206         BSTR Title,
  16207         const BSTR TypeOfUI,
  16208         const VARIANT *ExtraData);
  16209 
  16210     HRESULT (STDMETHODCALLTYPE *GetRecognizers)(
  16211         ISpeechRecognizer *This,
  16212         BSTR RequiredAttributes,
  16213         BSTR OptionalAttributes,
  16214         ISpeechObjectTokens **ObjectTokens);
  16215 
  16216     HRESULT (STDMETHODCALLTYPE *GetAudioInputs)(
  16217         ISpeechRecognizer *This,
  16218         BSTR RequiredAttributes,
  16219         BSTR OptionalAttributes,
  16220         ISpeechObjectTokens **ObjectTokens);
  16221 
  16222     HRESULT (STDMETHODCALLTYPE *GetProfiles)(
  16223         ISpeechRecognizer *This,
  16224         BSTR RequiredAttributes,
  16225         BSTR OptionalAttributes,
  16226         ISpeechObjectTokens **ObjectTokens);
  16227 
  16228     END_INTERFACE
  16229 } ISpeechRecognizerVtbl;
  16230 
  16231 interface ISpeechRecognizer {
  16232     CONST_VTBL ISpeechRecognizerVtbl* lpVtbl;
  16233 };
  16234 
  16235 #ifdef COBJMACROS
  16236 #ifndef WIDL_C_INLINE_WRAPPERS
  16237 /*** IUnknown methods ***/
  16238 #define ISpeechRecognizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  16239 #define ISpeechRecognizer_AddRef(This) (This)->lpVtbl->AddRef(This)
  16240 #define ISpeechRecognizer_Release(This) (This)->lpVtbl->Release(This)
  16241 /*** IDispatch methods ***/
  16242 #define ISpeechRecognizer_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  16243 #define ISpeechRecognizer_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  16244 #define ISpeechRecognizer_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  16245 #define ISpeechRecognizer_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  16246 /*** ISpeechRecognizer methods ***/
  16247 #define ISpeechRecognizer_putref_Recognizer(This,Recognizer) (This)->lpVtbl->putref_Recognizer(This,Recognizer)
  16248 #define ISpeechRecognizer_get_Recognizer(This,Recognizer) (This)->lpVtbl->get_Recognizer(This,Recognizer)
  16249 #define ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->put_AllowAudioInputFormatChangesOnNextSet(This,Allow)
  16250 #define ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->get_AllowAudioInputFormatChangesOnNextSet(This,Allow)
  16251 #define ISpeechRecognizer_putref_AudioInput(This,AudioInput) (This)->lpVtbl->putref_AudioInput(This,AudioInput)
  16252 #define ISpeechRecognizer_get_AudioInput(This,AudioInput) (This)->lpVtbl->get_AudioInput(This,AudioInput)
  16253 #define ISpeechRecognizer_putref_AudioInputStream(This,AudioInputStream) (This)->lpVtbl->putref_AudioInputStream(This,AudioInputStream)
  16254 #define ISpeechRecognizer_get_AudioInputStream(This,AudioInputStream) (This)->lpVtbl->get_AudioInputStream(This,AudioInputStream)
  16255 #define ISpeechRecognizer_get_IsShared(This,Shared) (This)->lpVtbl->get_IsShared(This,Shared)
  16256 #define ISpeechRecognizer_put_State(This,State) (This)->lpVtbl->put_State(This,State)
  16257 #define ISpeechRecognizer_get_State(This,State) (This)->lpVtbl->get_State(This,State)
  16258 #define ISpeechRecognizer_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
  16259 #define ISpeechRecognizer_putref_Profile(This,Profile) (This)->lpVtbl->putref_Profile(This,Profile)
  16260 #define ISpeechRecognizer_get_Profile(This,Profile) (This)->lpVtbl->get_Profile(This,Profile)
  16261 #define ISpeechRecognizer_EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId) (This)->lpVtbl->EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId)
  16262 #define ISpeechRecognizer_CreateRecoContext(This,NewContext) (This)->lpVtbl->CreateRecoContext(This,NewContext)
  16263 #define ISpeechRecognizer_GetFormat(This,Type,Format) (This)->lpVtbl->GetFormat(This,Type,Format)
  16264 #define ISpeechRecognizer_SetPropertyNumber(This,Name,Value,Supported) (This)->lpVtbl->SetPropertyNumber(This,Name,Value,Supported)
  16265 #define ISpeechRecognizer_GetPropertyNumber(This,Name,Value,Supported) (This)->lpVtbl->GetPropertyNumber(This,Name,Value,Supported)
  16266 #define ISpeechRecognizer_SetPropertyString(This,Name,Value,Supported) (This)->lpVtbl->SetPropertyString(This,Name,Value,Supported)
  16267 #define ISpeechRecognizer_GetPropertyString(This,Name,Value,Supported) (This)->lpVtbl->GetPropertyString(This,Name,Value,Supported)
  16268 #define ISpeechRecognizer_IsUISupported(This,TypeOfUI,ExtraData,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported)
  16269 #define ISpeechRecognizer_DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData) (This)->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData)
  16270 #define ISpeechRecognizer_GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
  16271 #define ISpeechRecognizer_GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
  16272 #define ISpeechRecognizer_GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
  16273 #else
  16274 /*** IUnknown methods ***/
  16275 static inline HRESULT ISpeechRecognizer_QueryInterface(ISpeechRecognizer* This,REFIID riid,void **ppvObject) {
  16276     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  16277 }
  16278 static inline ULONG ISpeechRecognizer_AddRef(ISpeechRecognizer* This) {
  16279     return This->lpVtbl->AddRef(This);
  16280 }
  16281 static inline ULONG ISpeechRecognizer_Release(ISpeechRecognizer* This) {
  16282     return This->lpVtbl->Release(This);
  16283 }
  16284 /*** IDispatch methods ***/
  16285 static inline HRESULT ISpeechRecognizer_GetTypeInfoCount(ISpeechRecognizer* This,UINT *pctinfo) {
  16286     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  16287 }
  16288 static inline HRESULT ISpeechRecognizer_GetTypeInfo(ISpeechRecognizer* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  16289     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  16290 }
  16291 static inline HRESULT ISpeechRecognizer_GetIDsOfNames(ISpeechRecognizer* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  16292     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  16293 }
  16294 static inline HRESULT ISpeechRecognizer_Invoke(ISpeechRecognizer* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  16295     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  16296 }
  16297 /*** ISpeechRecognizer methods ***/
  16298 static inline HRESULT ISpeechRecognizer_putref_Recognizer(ISpeechRecognizer* This,ISpeechObjectToken *Recognizer) {
  16299     return This->lpVtbl->putref_Recognizer(This,Recognizer);
  16300 }
  16301 static inline HRESULT ISpeechRecognizer_get_Recognizer(ISpeechRecognizer* This,ISpeechObjectToken **Recognizer) {
  16302     return This->lpVtbl->get_Recognizer(This,Recognizer);
  16303 }
  16304 static inline HRESULT ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet(ISpeechRecognizer* This,VARIANT_BOOL Allow) {
  16305     return This->lpVtbl->put_AllowAudioInputFormatChangesOnNextSet(This,Allow);
  16306 }
  16307 static inline HRESULT ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet(ISpeechRecognizer* This,VARIANT_BOOL *Allow) {
  16308     return This->lpVtbl->get_AllowAudioInputFormatChangesOnNextSet(This,Allow);
  16309 }
  16310 static inline HRESULT ISpeechRecognizer_putref_AudioInput(ISpeechRecognizer* This,ISpeechObjectToken *AudioInput) {
  16311     return This->lpVtbl->putref_AudioInput(This,AudioInput);
  16312 }
  16313 static inline HRESULT ISpeechRecognizer_get_AudioInput(ISpeechRecognizer* This,ISpeechObjectToken **AudioInput) {
  16314     return This->lpVtbl->get_AudioInput(This,AudioInput);
  16315 }
  16316 static inline HRESULT ISpeechRecognizer_putref_AudioInputStream(ISpeechRecognizer* This,ISpeechBaseStream *AudioInputStream) {
  16317     return This->lpVtbl->putref_AudioInputStream(This,AudioInputStream);
  16318 }
  16319 static inline HRESULT ISpeechRecognizer_get_AudioInputStream(ISpeechRecognizer* This,ISpeechBaseStream **AudioInputStream) {
  16320     return This->lpVtbl->get_AudioInputStream(This,AudioInputStream);
  16321 }
  16322 static inline HRESULT ISpeechRecognizer_get_IsShared(ISpeechRecognizer* This,VARIANT_BOOL *Shared) {
  16323     return This->lpVtbl->get_IsShared(This,Shared);
  16324 }
  16325 static inline HRESULT ISpeechRecognizer_put_State(ISpeechRecognizer* This,SpeechRecognizerState State) {
  16326     return This->lpVtbl->put_State(This,State);
  16327 }
  16328 static inline HRESULT ISpeechRecognizer_get_State(ISpeechRecognizer* This,SpeechRecognizerState *State) {
  16329     return This->lpVtbl->get_State(This,State);
  16330 }
  16331 static inline HRESULT ISpeechRecognizer_get_Status(ISpeechRecognizer* This,ISpeechRecognizerStatus **Status) {
  16332     return This->lpVtbl->get_Status(This,Status);
  16333 }
  16334 static inline HRESULT ISpeechRecognizer_putref_Profile(ISpeechRecognizer* This,ISpeechObjectToken *Profile) {
  16335     return This->lpVtbl->putref_Profile(This,Profile);
  16336 }
  16337 static inline HRESULT ISpeechRecognizer_get_Profile(ISpeechRecognizer* This,ISpeechObjectToken **Profile) {
  16338     return This->lpVtbl->get_Profile(This,Profile);
  16339 }
  16340 static inline HRESULT ISpeechRecognizer_EmulateRecognition(ISpeechRecognizer* This,VARIANT TextElements,VARIANT *ElementDisplayAttributes,LONG LanguageId) {
  16341     return This->lpVtbl->EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId);
  16342 }
  16343 static inline HRESULT ISpeechRecognizer_CreateRecoContext(ISpeechRecognizer* This,ISpeechRecoContext **NewContext) {
  16344     return This->lpVtbl->CreateRecoContext(This,NewContext);
  16345 }
  16346 static inline HRESULT ISpeechRecognizer_GetFormat(ISpeechRecognizer* This,SpeechFormatType Type,ISpeechAudioFormat **Format) {
  16347     return This->lpVtbl->GetFormat(This,Type,Format);
  16348 }
  16349 static inline HRESULT ISpeechRecognizer_SetPropertyNumber(ISpeechRecognizer* This,const BSTR Name,LONG Value,VARIANT_BOOL *Supported) {
  16350     return This->lpVtbl->SetPropertyNumber(This,Name,Value,Supported);
  16351 }
  16352 static inline HRESULT ISpeechRecognizer_GetPropertyNumber(ISpeechRecognizer* This,const BSTR Name,LONG *Value,VARIANT_BOOL *Supported) {
  16353     return This->lpVtbl->GetPropertyNumber(This,Name,Value,Supported);
  16354 }
  16355 static inline HRESULT ISpeechRecognizer_SetPropertyString(ISpeechRecognizer* This,const BSTR Name,const BSTR Value,VARIANT_BOOL *Supported) {
  16356     return This->lpVtbl->SetPropertyString(This,Name,Value,Supported);
  16357 }
  16358 static inline HRESULT ISpeechRecognizer_GetPropertyString(ISpeechRecognizer* This,const BSTR Name,BSTR *Value,VARIANT_BOOL *Supported) {
  16359     return This->lpVtbl->GetPropertyString(This,Name,Value,Supported);
  16360 }
  16361 static inline HRESULT ISpeechRecognizer_IsUISupported(ISpeechRecognizer* This,const BSTR TypeOfUI,const VARIANT *ExtraData,VARIANT_BOOL *Supported) {
  16362     return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported);
  16363 }
  16364 static inline HRESULT ISpeechRecognizer_DisplayUI(ISpeechRecognizer* This,LONG hWndParent,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData) {
  16365     return This->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData);
  16366 }
  16367 static inline HRESULT ISpeechRecognizer_GetRecognizers(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
  16368     return This->lpVtbl->GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
  16369 }
  16370 static inline HRESULT ISpeechRecognizer_GetAudioInputs(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
  16371     return This->lpVtbl->GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
  16372 }
  16373 static inline HRESULT ISpeechRecognizer_GetProfiles(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
  16374     return This->lpVtbl->GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
  16375 }
  16376 #endif
  16377 #endif
  16378 
  16379 #endif
  16380 
  16381 
  16382 #endif  /* __ISpeechRecognizer_INTERFACE_DEFINED__ */
  16383 
  16384 /*****************************************************************************
  16385  * ISpeechRecognizerStatus interface
  16386  */
  16387 #ifndef __ISpeechRecognizerStatus_INTERFACE_DEFINED__
  16388 #define __ISpeechRecognizerStatus_INTERFACE_DEFINED__
  16389 
  16390 DEFINE_GUID(IID_ISpeechRecognizerStatus, 0xbff9e781, 0x53ec, 0x484e, 0xbb,0x8a, 0x0e,0x1b,0x55,0x51,0xe3,0x5c);
  16391 #if defined(__cplusplus) && !defined(CINTERFACE)
  16392 MIDL_INTERFACE("bff9e781-53ec-484e-bb8a-0e1b5551e35c")
  16393 ISpeechRecognizerStatus : public IDispatch
  16394 {
  16395     virtual HRESULT STDMETHODCALLTYPE get_AudioStatus(
  16396         ISpeechAudioStatus **AudioStatus) = 0;
  16397 
  16398     virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamPosition(
  16399         VARIANT *pCurrentStreamPos) = 0;
  16400 
  16401     virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamNumber(
  16402         LONG *StreamNumber) = 0;
  16403 
  16404     virtual HRESULT STDMETHODCALLTYPE get_NumberOfActiveRules(
  16405         LONG *NumberOfActiveRules) = 0;
  16406 
  16407     virtual HRESULT STDMETHODCALLTYPE get_ClsidEngine(
  16408         BSTR *ClsidEngine) = 0;
  16409 
  16410     virtual HRESULT STDMETHODCALLTYPE get_SupportedLanguages(
  16411         VARIANT *SupportedLanguages) = 0;
  16412 
  16413 };
  16414 #ifdef __CRT_UUID_DECL
  16415 __CRT_UUID_DECL(ISpeechRecognizerStatus, 0xbff9e781, 0x53ec, 0x484e, 0xbb,0x8a, 0x0e,0x1b,0x55,0x51,0xe3,0x5c)
  16416 #endif
  16417 #else
  16418 typedef struct ISpeechRecognizerStatusVtbl {
  16419     BEGIN_INTERFACE
  16420 
  16421     /*** IUnknown methods ***/
  16422     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  16423         ISpeechRecognizerStatus *This,
  16424         REFIID riid,
  16425         void **ppvObject);
  16426 
  16427     ULONG (STDMETHODCALLTYPE *AddRef)(
  16428         ISpeechRecognizerStatus *This);
  16429 
  16430     ULONG (STDMETHODCALLTYPE *Release)(
  16431         ISpeechRecognizerStatus *This);
  16432 
  16433     /*** IDispatch methods ***/
  16434     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  16435         ISpeechRecognizerStatus *This,
  16436         UINT *pctinfo);
  16437 
  16438     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  16439         ISpeechRecognizerStatus *This,
  16440         UINT iTInfo,
  16441         LCID lcid,
  16442         ITypeInfo **ppTInfo);
  16443 
  16444     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  16445         ISpeechRecognizerStatus *This,
  16446         REFIID riid,
  16447         LPOLESTR *rgszNames,
  16448         UINT cNames,
  16449         LCID lcid,
  16450         DISPID *rgDispId);
  16451 
  16452     HRESULT (STDMETHODCALLTYPE *Invoke)(
  16453         ISpeechRecognizerStatus *This,
  16454         DISPID dispIdMember,
  16455         REFIID riid,
  16456         LCID lcid,
  16457         WORD wFlags,
  16458         DISPPARAMS *pDispParams,
  16459         VARIANT *pVarResult,
  16460         EXCEPINFO *pExcepInfo,
  16461         UINT *puArgErr);
  16462 
  16463     /*** ISpeechRecognizerStatus methods ***/
  16464     HRESULT (STDMETHODCALLTYPE *get_AudioStatus)(
  16465         ISpeechRecognizerStatus *This,
  16466         ISpeechAudioStatus **AudioStatus);
  16467 
  16468     HRESULT (STDMETHODCALLTYPE *get_CurrentStreamPosition)(
  16469         ISpeechRecognizerStatus *This,
  16470         VARIANT *pCurrentStreamPos);
  16471 
  16472     HRESULT (STDMETHODCALLTYPE *get_CurrentStreamNumber)(
  16473         ISpeechRecognizerStatus *This,
  16474         LONG *StreamNumber);
  16475 
  16476     HRESULT (STDMETHODCALLTYPE *get_NumberOfActiveRules)(
  16477         ISpeechRecognizerStatus *This,
  16478         LONG *NumberOfActiveRules);
  16479 
  16480     HRESULT (STDMETHODCALLTYPE *get_ClsidEngine)(
  16481         ISpeechRecognizerStatus *This,
  16482         BSTR *ClsidEngine);
  16483 
  16484     HRESULT (STDMETHODCALLTYPE *get_SupportedLanguages)(
  16485         ISpeechRecognizerStatus *This,
  16486         VARIANT *SupportedLanguages);
  16487 
  16488     END_INTERFACE
  16489 } ISpeechRecognizerStatusVtbl;
  16490 
  16491 interface ISpeechRecognizerStatus {
  16492     CONST_VTBL ISpeechRecognizerStatusVtbl* lpVtbl;
  16493 };
  16494 
  16495 #ifdef COBJMACROS
  16496 #ifndef WIDL_C_INLINE_WRAPPERS
  16497 /*** IUnknown methods ***/
  16498 #define ISpeechRecognizerStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  16499 #define ISpeechRecognizerStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
  16500 #define ISpeechRecognizerStatus_Release(This) (This)->lpVtbl->Release(This)
  16501 /*** IDispatch methods ***/
  16502 #define ISpeechRecognizerStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  16503 #define ISpeechRecognizerStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  16504 #define ISpeechRecognizerStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  16505 #define ISpeechRecognizerStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  16506 /*** ISpeechRecognizerStatus methods ***/
  16507 #define ISpeechRecognizerStatus_get_AudioStatus(This,AudioStatus) (This)->lpVtbl->get_AudioStatus(This,AudioStatus)
  16508 #define ISpeechRecognizerStatus_get_CurrentStreamPosition(This,pCurrentStreamPos) (This)->lpVtbl->get_CurrentStreamPosition(This,pCurrentStreamPos)
  16509 #define ISpeechRecognizerStatus_get_CurrentStreamNumber(This,StreamNumber) (This)->lpVtbl->get_CurrentStreamNumber(This,StreamNumber)
  16510 #define ISpeechRecognizerStatus_get_NumberOfActiveRules(This,NumberOfActiveRules) (This)->lpVtbl->get_NumberOfActiveRules(This,NumberOfActiveRules)
  16511 #define ISpeechRecognizerStatus_get_ClsidEngine(This,ClsidEngine) (This)->lpVtbl->get_ClsidEngine(This,ClsidEngine)
  16512 #define ISpeechRecognizerStatus_get_SupportedLanguages(This,SupportedLanguages) (This)->lpVtbl->get_SupportedLanguages(This,SupportedLanguages)
  16513 #else
  16514 /*** IUnknown methods ***/
  16515 static inline HRESULT ISpeechRecognizerStatus_QueryInterface(ISpeechRecognizerStatus* This,REFIID riid,void **ppvObject) {
  16516     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  16517 }
  16518 static inline ULONG ISpeechRecognizerStatus_AddRef(ISpeechRecognizerStatus* This) {
  16519     return This->lpVtbl->AddRef(This);
  16520 }
  16521 static inline ULONG ISpeechRecognizerStatus_Release(ISpeechRecognizerStatus* This) {
  16522     return This->lpVtbl->Release(This);
  16523 }
  16524 /*** IDispatch methods ***/
  16525 static inline HRESULT ISpeechRecognizerStatus_GetTypeInfoCount(ISpeechRecognizerStatus* This,UINT *pctinfo) {
  16526     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  16527 }
  16528 static inline HRESULT ISpeechRecognizerStatus_GetTypeInfo(ISpeechRecognizerStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  16529     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  16530 }
  16531 static inline HRESULT ISpeechRecognizerStatus_GetIDsOfNames(ISpeechRecognizerStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  16532     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  16533 }
  16534 static inline HRESULT ISpeechRecognizerStatus_Invoke(ISpeechRecognizerStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  16535     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  16536 }
  16537 /*** ISpeechRecognizerStatus methods ***/
  16538 static inline HRESULT ISpeechRecognizerStatus_get_AudioStatus(ISpeechRecognizerStatus* This,ISpeechAudioStatus **AudioStatus) {
  16539     return This->lpVtbl->get_AudioStatus(This,AudioStatus);
  16540 }
  16541 static inline HRESULT ISpeechRecognizerStatus_get_CurrentStreamPosition(ISpeechRecognizerStatus* This,VARIANT *pCurrentStreamPos) {
  16542     return This->lpVtbl->get_CurrentStreamPosition(This,pCurrentStreamPos);
  16543 }
  16544 static inline HRESULT ISpeechRecognizerStatus_get_CurrentStreamNumber(ISpeechRecognizerStatus* This,LONG *StreamNumber) {
  16545     return This->lpVtbl->get_CurrentStreamNumber(This,StreamNumber);
  16546 }
  16547 static inline HRESULT ISpeechRecognizerStatus_get_NumberOfActiveRules(ISpeechRecognizerStatus* This,LONG *NumberOfActiveRules) {
  16548     return This->lpVtbl->get_NumberOfActiveRules(This,NumberOfActiveRules);
  16549 }
  16550 static inline HRESULT ISpeechRecognizerStatus_get_ClsidEngine(ISpeechRecognizerStatus* This,BSTR *ClsidEngine) {
  16551     return This->lpVtbl->get_ClsidEngine(This,ClsidEngine);
  16552 }
  16553 static inline HRESULT ISpeechRecognizerStatus_get_SupportedLanguages(ISpeechRecognizerStatus* This,VARIANT *SupportedLanguages) {
  16554     return This->lpVtbl->get_SupportedLanguages(This,SupportedLanguages);
  16555 }
  16556 #endif
  16557 #endif
  16558 
  16559 #endif
  16560 
  16561 
  16562 #endif  /* __ISpeechRecognizerStatus_INTERFACE_DEFINED__ */
  16563 
  16564 /*****************************************************************************
  16565  * ISpeechRecoContext interface
  16566  */
  16567 #ifndef __ISpeechRecoContext_INTERFACE_DEFINED__
  16568 #define __ISpeechRecoContext_INTERFACE_DEFINED__
  16569 
  16570 DEFINE_GUID(IID_ISpeechRecoContext, 0x580aa49d, 0x7e1e, 0x4809, 0xb8,0xe2, 0x57,0xda,0x80,0x61,0x04,0xb8);
  16571 #if defined(__cplusplus) && !defined(CINTERFACE)
  16572 MIDL_INTERFACE("580aa49d-7e1e-4809-b8e2-57da806104b8")
  16573 ISpeechRecoContext : public IDispatch
  16574 {
  16575     virtual HRESULT STDMETHODCALLTYPE get_Recognizer(
  16576         ISpeechRecognizer **Recognizer) = 0;
  16577 
  16578     virtual HRESULT STDMETHODCALLTYPE get_AudioInputInterferenceStatus(
  16579         SpeechInterference *Interference) = 0;
  16580 
  16581     virtual HRESULT STDMETHODCALLTYPE get_RequestedUIType(
  16582         BSTR *UIType) = 0;
  16583 
  16584     virtual HRESULT STDMETHODCALLTYPE putref_Voice(
  16585         ISpeechVoice *Voice) = 0;
  16586 
  16587     virtual HRESULT STDMETHODCALLTYPE get_Voice(
  16588         ISpeechVoice **Voice) = 0;
  16589 
  16590     virtual HRESULT STDMETHODCALLTYPE put_AllowVoiceFormatMatchingOnNextSet(
  16591         VARIANT_BOOL Allow) = 0;
  16592 
  16593     virtual HRESULT STDMETHODCALLTYPE get_AllowVoiceFormatMatchingOnNextSet(
  16594         VARIANT_BOOL *pAllow) = 0;
  16595 
  16596     virtual HRESULT STDMETHODCALLTYPE put_VoicePurgeEvent(
  16597         SpeechRecoEvents EventInterest) = 0;
  16598 
  16599     virtual HRESULT STDMETHODCALLTYPE get_VoicePurgeEvent(
  16600         SpeechRecoEvents *EventInterest) = 0;
  16601 
  16602     virtual HRESULT STDMETHODCALLTYPE put_EventInterests(
  16603         SpeechRecoEvents EventInterest) = 0;
  16604 
  16605     virtual HRESULT STDMETHODCALLTYPE get_EventInterests(
  16606         SpeechRecoEvents *EventInterest) = 0;
  16607 
  16608     virtual HRESULT STDMETHODCALLTYPE put_CmdMaxAlternates(
  16609         LONG MaxAlternates) = 0;
  16610 
  16611     virtual HRESULT STDMETHODCALLTYPE get_CmdMaxAlternates(
  16612         LONG *MaxAlternates) = 0;
  16613 
  16614     virtual HRESULT STDMETHODCALLTYPE put_State(
  16615         SpeechRecoContextState State) = 0;
  16616 
  16617     virtual HRESULT STDMETHODCALLTYPE get_State(
  16618         SpeechRecoContextState *State) = 0;
  16619 
  16620     virtual HRESULT STDMETHODCALLTYPE put_RetainedAudio(
  16621         SpeechRetainedAudioOptions Option) = 0;
  16622 
  16623     virtual HRESULT STDMETHODCALLTYPE get_RetainedAudio(
  16624         SpeechRetainedAudioOptions *Option) = 0;
  16625 
  16626     virtual HRESULT STDMETHODCALLTYPE putref_RetainedAudioFormat(
  16627         ISpeechAudioFormat *Format) = 0;
  16628 
  16629     virtual HRESULT STDMETHODCALLTYPE get_RetainedAudioFormat(
  16630         ISpeechAudioFormat **Format) = 0;
  16631 
  16632     virtual HRESULT STDMETHODCALLTYPE Pause(
  16633         ) = 0;
  16634 
  16635     virtual HRESULT STDMETHODCALLTYPE Resume(
  16636         ) = 0;
  16637 
  16638     virtual HRESULT STDMETHODCALLTYPE CreateGrammar(
  16639         VARIANT GrammarId,
  16640         ISpeechRecoGrammar **Grammar) = 0;
  16641 
  16642     virtual HRESULT STDMETHODCALLTYPE CreateResultFromMemory(
  16643         VARIANT *ResultBlock,
  16644         ISpeechRecoResult **Result) = 0;
  16645 
  16646     virtual HRESULT STDMETHODCALLTYPE Bookmark(
  16647         SpeechBookmarkOptions Options,
  16648         VARIANT StreamPos,
  16649         VARIANT BookmarkId) = 0;
  16650 
  16651     virtual HRESULT STDMETHODCALLTYPE SetAdaptationData(
  16652         BSTR AdaptationString) = 0;
  16653 
  16654 };
  16655 #ifdef __CRT_UUID_DECL
  16656 __CRT_UUID_DECL(ISpeechRecoContext, 0x580aa49d, 0x7e1e, 0x4809, 0xb8,0xe2, 0x57,0xda,0x80,0x61,0x04,0xb8)
  16657 #endif
  16658 #else
  16659 typedef struct ISpeechRecoContextVtbl {
  16660     BEGIN_INTERFACE
  16661 
  16662     /*** IUnknown methods ***/
  16663     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  16664         ISpeechRecoContext *This,
  16665         REFIID riid,
  16666         void **ppvObject);
  16667 
  16668     ULONG (STDMETHODCALLTYPE *AddRef)(
  16669         ISpeechRecoContext *This);
  16670 
  16671     ULONG (STDMETHODCALLTYPE *Release)(
  16672         ISpeechRecoContext *This);
  16673 
  16674     /*** IDispatch methods ***/
  16675     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  16676         ISpeechRecoContext *This,
  16677         UINT *pctinfo);
  16678 
  16679     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  16680         ISpeechRecoContext *This,
  16681         UINT iTInfo,
  16682         LCID lcid,
  16683         ITypeInfo **ppTInfo);
  16684 
  16685     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  16686         ISpeechRecoContext *This,
  16687         REFIID riid,
  16688         LPOLESTR *rgszNames,
  16689         UINT cNames,
  16690         LCID lcid,
  16691         DISPID *rgDispId);
  16692 
  16693     HRESULT (STDMETHODCALLTYPE *Invoke)(
  16694         ISpeechRecoContext *This,
  16695         DISPID dispIdMember,
  16696         REFIID riid,
  16697         LCID lcid,
  16698         WORD wFlags,
  16699         DISPPARAMS *pDispParams,
  16700         VARIANT *pVarResult,
  16701         EXCEPINFO *pExcepInfo,
  16702         UINT *puArgErr);
  16703 
  16704     /*** ISpeechRecoContext methods ***/
  16705     HRESULT (STDMETHODCALLTYPE *get_Recognizer)(
  16706         ISpeechRecoContext *This,
  16707         ISpeechRecognizer **Recognizer);
  16708 
  16709     HRESULT (STDMETHODCALLTYPE *get_AudioInputInterferenceStatus)(
  16710         ISpeechRecoContext *This,
  16711         SpeechInterference *Interference);
  16712 
  16713     HRESULT (STDMETHODCALLTYPE *get_RequestedUIType)(
  16714         ISpeechRecoContext *This,
  16715         BSTR *UIType);
  16716 
  16717     HRESULT (STDMETHODCALLTYPE *putref_Voice)(
  16718         ISpeechRecoContext *This,
  16719         ISpeechVoice *Voice);
  16720 
  16721     HRESULT (STDMETHODCALLTYPE *get_Voice)(
  16722         ISpeechRecoContext *This,
  16723         ISpeechVoice **Voice);
  16724 
  16725     HRESULT (STDMETHODCALLTYPE *put_AllowVoiceFormatMatchingOnNextSet)(
  16726         ISpeechRecoContext *This,
  16727         VARIANT_BOOL Allow);
  16728 
  16729     HRESULT (STDMETHODCALLTYPE *get_AllowVoiceFormatMatchingOnNextSet)(
  16730         ISpeechRecoContext *This,
  16731         VARIANT_BOOL *pAllow);
  16732 
  16733     HRESULT (STDMETHODCALLTYPE *put_VoicePurgeEvent)(
  16734         ISpeechRecoContext *This,
  16735         SpeechRecoEvents EventInterest);
  16736 
  16737     HRESULT (STDMETHODCALLTYPE *get_VoicePurgeEvent)(
  16738         ISpeechRecoContext *This,
  16739         SpeechRecoEvents *EventInterest);
  16740 
  16741     HRESULT (STDMETHODCALLTYPE *put_EventInterests)(
  16742         ISpeechRecoContext *This,
  16743         SpeechRecoEvents EventInterest);
  16744 
  16745     HRESULT (STDMETHODCALLTYPE *get_EventInterests)(
  16746         ISpeechRecoContext *This,
  16747         SpeechRecoEvents *EventInterest);
  16748 
  16749     HRESULT (STDMETHODCALLTYPE *put_CmdMaxAlternates)(
  16750         ISpeechRecoContext *This,
  16751         LONG MaxAlternates);
  16752 
  16753     HRESULT (STDMETHODCALLTYPE *get_CmdMaxAlternates)(
  16754         ISpeechRecoContext *This,
  16755         LONG *MaxAlternates);
  16756 
  16757     HRESULT (STDMETHODCALLTYPE *put_State)(
  16758         ISpeechRecoContext *This,
  16759         SpeechRecoContextState State);
  16760 
  16761     HRESULT (STDMETHODCALLTYPE *get_State)(
  16762         ISpeechRecoContext *This,
  16763         SpeechRecoContextState *State);
  16764 
  16765     HRESULT (STDMETHODCALLTYPE *put_RetainedAudio)(
  16766         ISpeechRecoContext *This,
  16767         SpeechRetainedAudioOptions Option);
  16768 
  16769     HRESULT (STDMETHODCALLTYPE *get_RetainedAudio)(
  16770         ISpeechRecoContext *This,
  16771         SpeechRetainedAudioOptions *Option);
  16772 
  16773     HRESULT (STDMETHODCALLTYPE *putref_RetainedAudioFormat)(
  16774         ISpeechRecoContext *This,
  16775         ISpeechAudioFormat *Format);
  16776 
  16777     HRESULT (STDMETHODCALLTYPE *get_RetainedAudioFormat)(
  16778         ISpeechRecoContext *This,
  16779         ISpeechAudioFormat **Format);
  16780 
  16781     HRESULT (STDMETHODCALLTYPE *Pause)(
  16782         ISpeechRecoContext *This);
  16783 
  16784     HRESULT (STDMETHODCALLTYPE *Resume)(
  16785         ISpeechRecoContext *This);
  16786 
  16787     HRESULT (STDMETHODCALLTYPE *CreateGrammar)(
  16788         ISpeechRecoContext *This,
  16789         VARIANT GrammarId,
  16790         ISpeechRecoGrammar **Grammar);
  16791 
  16792     HRESULT (STDMETHODCALLTYPE *CreateResultFromMemory)(
  16793         ISpeechRecoContext *This,
  16794         VARIANT *ResultBlock,
  16795         ISpeechRecoResult **Result);
  16796 
  16797     HRESULT (STDMETHODCALLTYPE *Bookmark)(
  16798         ISpeechRecoContext *This,
  16799         SpeechBookmarkOptions Options,
  16800         VARIANT StreamPos,
  16801         VARIANT BookmarkId);
  16802 
  16803     HRESULT (STDMETHODCALLTYPE *SetAdaptationData)(
  16804         ISpeechRecoContext *This,
  16805         BSTR AdaptationString);
  16806 
  16807     END_INTERFACE
  16808 } ISpeechRecoContextVtbl;
  16809 
  16810 interface ISpeechRecoContext {
  16811     CONST_VTBL ISpeechRecoContextVtbl* lpVtbl;
  16812 };
  16813 
  16814 #ifdef COBJMACROS
  16815 #ifndef WIDL_C_INLINE_WRAPPERS
  16816 /*** IUnknown methods ***/
  16817 #define ISpeechRecoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  16818 #define ISpeechRecoContext_AddRef(This) (This)->lpVtbl->AddRef(This)
  16819 #define ISpeechRecoContext_Release(This) (This)->lpVtbl->Release(This)
  16820 /*** IDispatch methods ***/
  16821 #define ISpeechRecoContext_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  16822 #define ISpeechRecoContext_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  16823 #define ISpeechRecoContext_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  16824 #define ISpeechRecoContext_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  16825 /*** ISpeechRecoContext methods ***/
  16826 #define ISpeechRecoContext_get_Recognizer(This,Recognizer) (This)->lpVtbl->get_Recognizer(This,Recognizer)
  16827 #define ISpeechRecoContext_get_AudioInputInterferenceStatus(This,Interference) (This)->lpVtbl->get_AudioInputInterferenceStatus(This,Interference)
  16828 #define ISpeechRecoContext_get_RequestedUIType(This,UIType) (This)->lpVtbl->get_RequestedUIType(This,UIType)
  16829 #define ISpeechRecoContext_putref_Voice(This,Voice) (This)->lpVtbl->putref_Voice(This,Voice)
  16830 #define ISpeechRecoContext_get_Voice(This,Voice) (This)->lpVtbl->get_Voice(This,Voice)
  16831 #define ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet(This,Allow) (This)->lpVtbl->put_AllowVoiceFormatMatchingOnNextSet(This,Allow)
  16832 #define ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet(This,pAllow) (This)->lpVtbl->get_AllowVoiceFormatMatchingOnNextSet(This,pAllow)
  16833 #define ISpeechRecoContext_put_VoicePurgeEvent(This,EventInterest) (This)->lpVtbl->put_VoicePurgeEvent(This,EventInterest)
  16834 #define ISpeechRecoContext_get_VoicePurgeEvent(This,EventInterest) (This)->lpVtbl->get_VoicePurgeEvent(This,EventInterest)
  16835 #define ISpeechRecoContext_put_EventInterests(This,EventInterest) (This)->lpVtbl->put_EventInterests(This,EventInterest)
  16836 #define ISpeechRecoContext_get_EventInterests(This,EventInterest) (This)->lpVtbl->get_EventInterests(This,EventInterest)
  16837 #define ISpeechRecoContext_put_CmdMaxAlternates(This,MaxAlternates) (This)->lpVtbl->put_CmdMaxAlternates(This,MaxAlternates)
  16838 #define ISpeechRecoContext_get_CmdMaxAlternates(This,MaxAlternates) (This)->lpVtbl->get_CmdMaxAlternates(This,MaxAlternates)
  16839 #define ISpeechRecoContext_put_State(This,State) (This)->lpVtbl->put_State(This,State)
  16840 #define ISpeechRecoContext_get_State(This,State) (This)->lpVtbl->get_State(This,State)
  16841 #define ISpeechRecoContext_put_RetainedAudio(This,Option) (This)->lpVtbl->put_RetainedAudio(This,Option)
  16842 #define ISpeechRecoContext_get_RetainedAudio(This,Option) (This)->lpVtbl->get_RetainedAudio(This,Option)
  16843 #define ISpeechRecoContext_putref_RetainedAudioFormat(This,Format) (This)->lpVtbl->putref_RetainedAudioFormat(This,Format)
  16844 #define ISpeechRecoContext_get_RetainedAudioFormat(This,Format) (This)->lpVtbl->get_RetainedAudioFormat(This,Format)
  16845 #define ISpeechRecoContext_Pause(This) (This)->lpVtbl->Pause(This)
  16846 #define ISpeechRecoContext_Resume(This) (This)->lpVtbl->Resume(This)
  16847 #define ISpeechRecoContext_CreateGrammar(This,GrammarId,Grammar) (This)->lpVtbl->CreateGrammar(This,GrammarId,Grammar)
  16848 #define ISpeechRecoContext_CreateResultFromMemory(This,ResultBlock,Result) (This)->lpVtbl->CreateResultFromMemory(This,ResultBlock,Result)
  16849 #define ISpeechRecoContext_Bookmark(This,Options,StreamPos,BookmarkId) (This)->lpVtbl->Bookmark(This,Options,StreamPos,BookmarkId)
  16850 #define ISpeechRecoContext_SetAdaptationData(This,AdaptationString) (This)->lpVtbl->SetAdaptationData(This,AdaptationString)
  16851 #else
  16852 /*** IUnknown methods ***/
  16853 static inline HRESULT ISpeechRecoContext_QueryInterface(ISpeechRecoContext* This,REFIID riid,void **ppvObject) {
  16854     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  16855 }
  16856 static inline ULONG ISpeechRecoContext_AddRef(ISpeechRecoContext* This) {
  16857     return This->lpVtbl->AddRef(This);
  16858 }
  16859 static inline ULONG ISpeechRecoContext_Release(ISpeechRecoContext* This) {
  16860     return This->lpVtbl->Release(This);
  16861 }
  16862 /*** IDispatch methods ***/
  16863 static inline HRESULT ISpeechRecoContext_GetTypeInfoCount(ISpeechRecoContext* This,UINT *pctinfo) {
  16864     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  16865 }
  16866 static inline HRESULT ISpeechRecoContext_GetTypeInfo(ISpeechRecoContext* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  16867     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  16868 }
  16869 static inline HRESULT ISpeechRecoContext_GetIDsOfNames(ISpeechRecoContext* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  16870     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  16871 }
  16872 static inline HRESULT ISpeechRecoContext_Invoke(ISpeechRecoContext* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  16873     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  16874 }
  16875 /*** ISpeechRecoContext methods ***/
  16876 static inline HRESULT ISpeechRecoContext_get_Recognizer(ISpeechRecoContext* This,ISpeechRecognizer **Recognizer) {
  16877     return This->lpVtbl->get_Recognizer(This,Recognizer);
  16878 }
  16879 static inline HRESULT ISpeechRecoContext_get_AudioInputInterferenceStatus(ISpeechRecoContext* This,SpeechInterference *Interference) {
  16880     return This->lpVtbl->get_AudioInputInterferenceStatus(This,Interference);
  16881 }
  16882 static inline HRESULT ISpeechRecoContext_get_RequestedUIType(ISpeechRecoContext* This,BSTR *UIType) {
  16883     return This->lpVtbl->get_RequestedUIType(This,UIType);
  16884 }
  16885 static inline HRESULT ISpeechRecoContext_putref_Voice(ISpeechRecoContext* This,ISpeechVoice *Voice) {
  16886     return This->lpVtbl->putref_Voice(This,Voice);
  16887 }
  16888 static inline HRESULT ISpeechRecoContext_get_Voice(ISpeechRecoContext* This,ISpeechVoice **Voice) {
  16889     return This->lpVtbl->get_Voice(This,Voice);
  16890 }
  16891 static inline HRESULT ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet(ISpeechRecoContext* This,VARIANT_BOOL Allow) {
  16892     return This->lpVtbl->put_AllowVoiceFormatMatchingOnNextSet(This,Allow);
  16893 }
  16894 static inline HRESULT ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet(ISpeechRecoContext* This,VARIANT_BOOL *pAllow) {
  16895     return This->lpVtbl->get_AllowVoiceFormatMatchingOnNextSet(This,pAllow);
  16896 }
  16897 static inline HRESULT ISpeechRecoContext_put_VoicePurgeEvent(ISpeechRecoContext* This,SpeechRecoEvents EventInterest) {
  16898     return This->lpVtbl->put_VoicePurgeEvent(This,EventInterest);
  16899 }
  16900 static inline HRESULT ISpeechRecoContext_get_VoicePurgeEvent(ISpeechRecoContext* This,SpeechRecoEvents *EventInterest) {
  16901     return This->lpVtbl->get_VoicePurgeEvent(This,EventInterest);
  16902 }
  16903 static inline HRESULT ISpeechRecoContext_put_EventInterests(ISpeechRecoContext* This,SpeechRecoEvents EventInterest) {
  16904     return This->lpVtbl->put_EventInterests(This,EventInterest);
  16905 }
  16906 static inline HRESULT ISpeechRecoContext_get_EventInterests(ISpeechRecoContext* This,SpeechRecoEvents *EventInterest) {
  16907     return This->lpVtbl->get_EventInterests(This,EventInterest);
  16908 }
  16909 static inline HRESULT ISpeechRecoContext_put_CmdMaxAlternates(ISpeechRecoContext* This,LONG MaxAlternates) {
  16910     return This->lpVtbl->put_CmdMaxAlternates(This,MaxAlternates);
  16911 }
  16912 static inline HRESULT ISpeechRecoContext_get_CmdMaxAlternates(ISpeechRecoContext* This,LONG *MaxAlternates) {
  16913     return This->lpVtbl->get_CmdMaxAlternates(This,MaxAlternates);
  16914 }
  16915 static inline HRESULT ISpeechRecoContext_put_State(ISpeechRecoContext* This,SpeechRecoContextState State) {
  16916     return This->lpVtbl->put_State(This,State);
  16917 }
  16918 static inline HRESULT ISpeechRecoContext_get_State(ISpeechRecoContext* This,SpeechRecoContextState *State) {
  16919     return This->lpVtbl->get_State(This,State);
  16920 }
  16921 static inline HRESULT ISpeechRecoContext_put_RetainedAudio(ISpeechRecoContext* This,SpeechRetainedAudioOptions Option) {
  16922     return This->lpVtbl->put_RetainedAudio(This,Option);
  16923 }
  16924 static inline HRESULT ISpeechRecoContext_get_RetainedAudio(ISpeechRecoContext* This,SpeechRetainedAudioOptions *Option) {
  16925     return This->lpVtbl->get_RetainedAudio(This,Option);
  16926 }
  16927 static inline HRESULT ISpeechRecoContext_putref_RetainedAudioFormat(ISpeechRecoContext* This,ISpeechAudioFormat *Format) {
  16928     return This->lpVtbl->putref_RetainedAudioFormat(This,Format);
  16929 }
  16930 static inline HRESULT ISpeechRecoContext_get_RetainedAudioFormat(ISpeechRecoContext* This,ISpeechAudioFormat **Format) {
  16931     return This->lpVtbl->get_RetainedAudioFormat(This,Format);
  16932 }
  16933 static inline HRESULT ISpeechRecoContext_Pause(ISpeechRecoContext* This) {
  16934     return This->lpVtbl->Pause(This);
  16935 }
  16936 static inline HRESULT ISpeechRecoContext_Resume(ISpeechRecoContext* This) {
  16937     return This->lpVtbl->Resume(This);
  16938 }
  16939 static inline HRESULT ISpeechRecoContext_CreateGrammar(ISpeechRecoContext* This,VARIANT GrammarId,ISpeechRecoGrammar **Grammar) {
  16940     return This->lpVtbl->CreateGrammar(This,GrammarId,Grammar);
  16941 }
  16942 static inline HRESULT ISpeechRecoContext_CreateResultFromMemory(ISpeechRecoContext* This,VARIANT *ResultBlock,ISpeechRecoResult **Result) {
  16943     return This->lpVtbl->CreateResultFromMemory(This,ResultBlock,Result);
  16944 }
  16945 static inline HRESULT ISpeechRecoContext_Bookmark(ISpeechRecoContext* This,SpeechBookmarkOptions Options,VARIANT StreamPos,VARIANT BookmarkId) {
  16946     return This->lpVtbl->Bookmark(This,Options,StreamPos,BookmarkId);
  16947 }
  16948 static inline HRESULT ISpeechRecoContext_SetAdaptationData(ISpeechRecoContext* This,BSTR AdaptationString) {
  16949     return This->lpVtbl->SetAdaptationData(This,AdaptationString);
  16950 }
  16951 #endif
  16952 #endif
  16953 
  16954 #endif
  16955 
  16956 
  16957 #endif  /* __ISpeechRecoContext_INTERFACE_DEFINED__ */
  16958 
  16959 /*****************************************************************************
  16960  * ISpeechRecoGrammar interface
  16961  */
  16962 #ifndef __ISpeechRecoGrammar_INTERFACE_DEFINED__
  16963 #define __ISpeechRecoGrammar_INTERFACE_DEFINED__
  16964 
  16965 DEFINE_GUID(IID_ISpeechRecoGrammar, 0xb6d6f79f, 0x2158, 0x4e50, 0xb5,0xbc, 0x9a,0x9c,0xcd,0x85,0x2a,0x09);
  16966 #if defined(__cplusplus) && !defined(CINTERFACE)
  16967 MIDL_INTERFACE("b6d6f79f-2158-4e50-b5bc-9a9ccd852a09")
  16968 ISpeechRecoGrammar : public IDispatch
  16969 {
  16970     virtual HRESULT STDMETHODCALLTYPE get_Id(
  16971         VARIANT *Id) = 0;
  16972 
  16973     virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
  16974         ISpeechRecoContext **RecoContext) = 0;
  16975 
  16976     virtual HRESULT STDMETHODCALLTYPE put_State(
  16977         SpeechGrammarState State) = 0;
  16978 
  16979     virtual HRESULT STDMETHODCALLTYPE get_State(
  16980         SpeechGrammarState *State) = 0;
  16981 
  16982     virtual HRESULT STDMETHODCALLTYPE get_Rules(
  16983         ISpeechGrammarRules **Rules) = 0;
  16984 
  16985     virtual HRESULT STDMETHODCALLTYPE Reset(
  16986         SpeechLanguageId NewLanguage = 0) = 0;
  16987 
  16988     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromFile(
  16989         const BSTR FileName,
  16990         SpeechLoadOption LoadOption = SLOStatic) = 0;
  16991 
  16992     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromObject(
  16993         const BSTR ClassId,
  16994         const BSTR GrammarName,
  16995         SpeechLoadOption LoadOption = SLOStatic) = 0;
  16996 
  16997     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromResource(
  16998         LONG hModule,
  16999         VARIANT ResourceName,
  17000         VARIANT ResourceType,
  17001         SpeechLanguageId LanguageId,
  17002         SpeechLoadOption LoadOption = SLOStatic) = 0;
  17003 
  17004     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromMemory(
  17005         VARIANT GrammarData,
  17006         SpeechLoadOption LoadOption = SLOStatic) = 0;
  17007 
  17008     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromProprietaryGrammar(
  17009         const BSTR ProprietaryGuid,
  17010         const BSTR ProprietaryString,
  17011         VARIANT ProprietaryData,
  17012         SpeechLoadOption LoadOption = SLOStatic) = 0;
  17013 
  17014     virtual HRESULT STDMETHODCALLTYPE CmdSetRuleState(
  17015         const BSTR Name,
  17016         SpeechRuleState State) = 0;
  17017 
  17018     virtual HRESULT STDMETHODCALLTYPE CmdSetRuleIdState(
  17019         LONG RuleId,
  17020         SpeechRuleState State) = 0;
  17021 
  17022     virtual HRESULT STDMETHODCALLTYPE DictationLoad(
  17023         const BSTR TopicName = L"",
  17024         SpeechLoadOption LoadOption = SLOStatic) = 0;
  17025 
  17026     virtual HRESULT STDMETHODCALLTYPE DictationUnload(
  17027         ) = 0;
  17028 
  17029     virtual HRESULT STDMETHODCALLTYPE DictationSetState(
  17030         SpeechRuleState State) = 0;
  17031 
  17032     virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData(
  17033         const BSTR Text,
  17034         LONG TextLength,
  17035         ISpeechTextSelectionInformation *Info) = 0;
  17036 
  17037     virtual HRESULT STDMETHODCALLTYPE SetTextSelection(
  17038         ISpeechTextSelectionInformation *Info) = 0;
  17039 
  17040     virtual HRESULT STDMETHODCALLTYPE IsPronounceable(
  17041         const BSTR Word,
  17042         SpeechWordPronounceable *WordPronounceable) = 0;
  17043 
  17044 };
  17045 #ifdef __CRT_UUID_DECL
  17046 __CRT_UUID_DECL(ISpeechRecoGrammar, 0xb6d6f79f, 0x2158, 0x4e50, 0xb5,0xbc, 0x9a,0x9c,0xcd,0x85,0x2a,0x09)
  17047 #endif
  17048 #else
  17049 typedef struct ISpeechRecoGrammarVtbl {
  17050     BEGIN_INTERFACE
  17051 
  17052     /*** IUnknown methods ***/
  17053     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  17054         ISpeechRecoGrammar *This,
  17055         REFIID riid,
  17056         void **ppvObject);
  17057 
  17058     ULONG (STDMETHODCALLTYPE *AddRef)(
  17059         ISpeechRecoGrammar *This);
  17060 
  17061     ULONG (STDMETHODCALLTYPE *Release)(
  17062         ISpeechRecoGrammar *This);
  17063 
  17064     /*** IDispatch methods ***/
  17065     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  17066         ISpeechRecoGrammar *This,
  17067         UINT *pctinfo);
  17068 
  17069     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  17070         ISpeechRecoGrammar *This,
  17071         UINT iTInfo,
  17072         LCID lcid,
  17073         ITypeInfo **ppTInfo);
  17074 
  17075     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  17076         ISpeechRecoGrammar *This,
  17077         REFIID riid,
  17078         LPOLESTR *rgszNames,
  17079         UINT cNames,
  17080         LCID lcid,
  17081         DISPID *rgDispId);
  17082 
  17083     HRESULT (STDMETHODCALLTYPE *Invoke)(
  17084         ISpeechRecoGrammar *This,
  17085         DISPID dispIdMember,
  17086         REFIID riid,
  17087         LCID lcid,
  17088         WORD wFlags,
  17089         DISPPARAMS *pDispParams,
  17090         VARIANT *pVarResult,
  17091         EXCEPINFO *pExcepInfo,
  17092         UINT *puArgErr);
  17093 
  17094     /*** ISpeechRecoGrammar methods ***/
  17095     HRESULT (STDMETHODCALLTYPE *get_Id)(
  17096         ISpeechRecoGrammar *This,
  17097         VARIANT *Id);
  17098 
  17099     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
  17100         ISpeechRecoGrammar *This,
  17101         ISpeechRecoContext **RecoContext);
  17102 
  17103     HRESULT (STDMETHODCALLTYPE *put_State)(
  17104         ISpeechRecoGrammar *This,
  17105         SpeechGrammarState State);
  17106 
  17107     HRESULT (STDMETHODCALLTYPE *get_State)(
  17108         ISpeechRecoGrammar *This,
  17109         SpeechGrammarState *State);
  17110 
  17111     HRESULT (STDMETHODCALLTYPE *get_Rules)(
  17112         ISpeechRecoGrammar *This,
  17113         ISpeechGrammarRules **Rules);
  17114 
  17115     HRESULT (STDMETHODCALLTYPE *Reset)(
  17116         ISpeechRecoGrammar *This,
  17117         SpeechLanguageId NewLanguage);
  17118 
  17119     HRESULT (STDMETHODCALLTYPE *CmdLoadFromFile)(
  17120         ISpeechRecoGrammar *This,
  17121         const BSTR FileName,
  17122         SpeechLoadOption LoadOption);
  17123 
  17124     HRESULT (STDMETHODCALLTYPE *CmdLoadFromObject)(
  17125         ISpeechRecoGrammar *This,
  17126         const BSTR ClassId,
  17127         const BSTR GrammarName,
  17128         SpeechLoadOption LoadOption);
  17129 
  17130     HRESULT (STDMETHODCALLTYPE *CmdLoadFromResource)(
  17131         ISpeechRecoGrammar *This,
  17132         LONG hModule,
  17133         VARIANT ResourceName,
  17134         VARIANT ResourceType,
  17135         SpeechLanguageId LanguageId,
  17136         SpeechLoadOption LoadOption);
  17137 
  17138     HRESULT (STDMETHODCALLTYPE *CmdLoadFromMemory)(
  17139         ISpeechRecoGrammar *This,
  17140         VARIANT GrammarData,
  17141         SpeechLoadOption LoadOption);
  17142 
  17143     HRESULT (STDMETHODCALLTYPE *CmdLoadFromProprietaryGrammar)(
  17144         ISpeechRecoGrammar *This,
  17145         const BSTR ProprietaryGuid,
  17146         const BSTR ProprietaryString,
  17147         VARIANT ProprietaryData,
  17148         SpeechLoadOption LoadOption);
  17149 
  17150     HRESULT (STDMETHODCALLTYPE *CmdSetRuleState)(
  17151         ISpeechRecoGrammar *This,
  17152         const BSTR Name,
  17153         SpeechRuleState State);
  17154 
  17155     HRESULT (STDMETHODCALLTYPE *CmdSetRuleIdState)(
  17156         ISpeechRecoGrammar *This,
  17157         LONG RuleId,
  17158         SpeechRuleState State);
  17159 
  17160     HRESULT (STDMETHODCALLTYPE *DictationLoad)(
  17161         ISpeechRecoGrammar *This,
  17162         const BSTR TopicName,
  17163         SpeechLoadOption LoadOption);
  17164 
  17165     HRESULT (STDMETHODCALLTYPE *DictationUnload)(
  17166         ISpeechRecoGrammar *This);
  17167 
  17168     HRESULT (STDMETHODCALLTYPE *DictationSetState)(
  17169         ISpeechRecoGrammar *This,
  17170         SpeechRuleState State);
  17171 
  17172     HRESULT (STDMETHODCALLTYPE *SetWordSequenceData)(
  17173         ISpeechRecoGrammar *This,
  17174         const BSTR Text,
  17175         LONG TextLength,
  17176         ISpeechTextSelectionInformation *Info);
  17177 
  17178     HRESULT (STDMETHODCALLTYPE *SetTextSelection)(
  17179         ISpeechRecoGrammar *This,
  17180         ISpeechTextSelectionInformation *Info);
  17181 
  17182     HRESULT (STDMETHODCALLTYPE *IsPronounceable)(
  17183         ISpeechRecoGrammar *This,
  17184         const BSTR Word,
  17185         SpeechWordPronounceable *WordPronounceable);
  17186 
  17187     END_INTERFACE
  17188 } ISpeechRecoGrammarVtbl;
  17189 
  17190 interface ISpeechRecoGrammar {
  17191     CONST_VTBL ISpeechRecoGrammarVtbl* lpVtbl;
  17192 };
  17193 
  17194 #ifdef COBJMACROS
  17195 #ifndef WIDL_C_INLINE_WRAPPERS
  17196 /*** IUnknown methods ***/
  17197 #define ISpeechRecoGrammar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  17198 #define ISpeechRecoGrammar_AddRef(This) (This)->lpVtbl->AddRef(This)
  17199 #define ISpeechRecoGrammar_Release(This) (This)->lpVtbl->Release(This)
  17200 /*** IDispatch methods ***/
  17201 #define ISpeechRecoGrammar_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  17202 #define ISpeechRecoGrammar_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  17203 #define ISpeechRecoGrammar_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  17204 #define ISpeechRecoGrammar_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  17205 /*** ISpeechRecoGrammar methods ***/
  17206 #define ISpeechRecoGrammar_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
  17207 #define ISpeechRecoGrammar_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
  17208 #define ISpeechRecoGrammar_put_State(This,State) (This)->lpVtbl->put_State(This,State)
  17209 #define ISpeechRecoGrammar_get_State(This,State) (This)->lpVtbl->get_State(This,State)
  17210 #define ISpeechRecoGrammar_get_Rules(This,Rules) (This)->lpVtbl->get_Rules(This,Rules)
  17211 #define ISpeechRecoGrammar_Reset(This,NewLanguage) (This)->lpVtbl->Reset(This,NewLanguage)
  17212 #define ISpeechRecoGrammar_CmdLoadFromFile(This,FileName,LoadOption) (This)->lpVtbl->CmdLoadFromFile(This,FileName,LoadOption)
  17213 #define ISpeechRecoGrammar_CmdLoadFromObject(This,ClassId,GrammarName,LoadOption) (This)->lpVtbl->CmdLoadFromObject(This,ClassId,GrammarName,LoadOption)
  17214 #define ISpeechRecoGrammar_CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption) (This)->lpVtbl->CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption)
  17215 #define ISpeechRecoGrammar_CmdLoadFromMemory(This,GrammarData,LoadOption) (This)->lpVtbl->CmdLoadFromMemory(This,GrammarData,LoadOption)
  17216 #define ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption) (This)->lpVtbl->CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption)
  17217 #define ISpeechRecoGrammar_CmdSetRuleState(This,Name,State) (This)->lpVtbl->CmdSetRuleState(This,Name,State)
  17218 #define ISpeechRecoGrammar_CmdSetRuleIdState(This,RuleId,State) (This)->lpVtbl->CmdSetRuleIdState(This,RuleId,State)
  17219 #define ISpeechRecoGrammar_DictationLoad(This,TopicName,LoadOption) (This)->lpVtbl->DictationLoad(This,TopicName,LoadOption)
  17220 #define ISpeechRecoGrammar_DictationUnload(This) (This)->lpVtbl->DictationUnload(This)
  17221 #define ISpeechRecoGrammar_DictationSetState(This,State) (This)->lpVtbl->DictationSetState(This,State)
  17222 #define ISpeechRecoGrammar_SetWordSequenceData(This,Text,TextLength,Info) (This)->lpVtbl->SetWordSequenceData(This,Text,TextLength,Info)
  17223 #define ISpeechRecoGrammar_SetTextSelection(This,Info) (This)->lpVtbl->SetTextSelection(This,Info)
  17224 #define ISpeechRecoGrammar_IsPronounceable(This,Word,WordPronounceable) (This)->lpVtbl->IsPronounceable(This,Word,WordPronounceable)
  17225 #else
  17226 /*** IUnknown methods ***/
  17227 static inline HRESULT ISpeechRecoGrammar_QueryInterface(ISpeechRecoGrammar* This,REFIID riid,void **ppvObject) {
  17228     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  17229 }
  17230 static inline ULONG ISpeechRecoGrammar_AddRef(ISpeechRecoGrammar* This) {
  17231     return This->lpVtbl->AddRef(This);
  17232 }
  17233 static inline ULONG ISpeechRecoGrammar_Release(ISpeechRecoGrammar* This) {
  17234     return This->lpVtbl->Release(This);
  17235 }
  17236 /*** IDispatch methods ***/
  17237 static inline HRESULT ISpeechRecoGrammar_GetTypeInfoCount(ISpeechRecoGrammar* This,UINT *pctinfo) {
  17238     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  17239 }
  17240 static inline HRESULT ISpeechRecoGrammar_GetTypeInfo(ISpeechRecoGrammar* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  17241     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  17242 }
  17243 static inline HRESULT ISpeechRecoGrammar_GetIDsOfNames(ISpeechRecoGrammar* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  17244     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  17245 }
  17246 static inline HRESULT ISpeechRecoGrammar_Invoke(ISpeechRecoGrammar* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  17247     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  17248 }
  17249 /*** ISpeechRecoGrammar methods ***/
  17250 static inline HRESULT ISpeechRecoGrammar_get_Id(ISpeechRecoGrammar* This,VARIANT *Id) {
  17251     return This->lpVtbl->get_Id(This,Id);
  17252 }
  17253 static inline HRESULT ISpeechRecoGrammar_get_RecoContext(ISpeechRecoGrammar* This,ISpeechRecoContext **RecoContext) {
  17254     return This->lpVtbl->get_RecoContext(This,RecoContext);
  17255 }
  17256 static inline HRESULT ISpeechRecoGrammar_put_State(ISpeechRecoGrammar* This,SpeechGrammarState State) {
  17257     return This->lpVtbl->put_State(This,State);
  17258 }
  17259 static inline HRESULT ISpeechRecoGrammar_get_State(ISpeechRecoGrammar* This,SpeechGrammarState *State) {
  17260     return This->lpVtbl->get_State(This,State);
  17261 }
  17262 static inline HRESULT ISpeechRecoGrammar_get_Rules(ISpeechRecoGrammar* This,ISpeechGrammarRules **Rules) {
  17263     return This->lpVtbl->get_Rules(This,Rules);
  17264 }
  17265 static inline HRESULT ISpeechRecoGrammar_Reset(ISpeechRecoGrammar* This,SpeechLanguageId NewLanguage) {
  17266     return This->lpVtbl->Reset(This,NewLanguage);
  17267 }
  17268 static inline HRESULT ISpeechRecoGrammar_CmdLoadFromFile(ISpeechRecoGrammar* This,const BSTR FileName,SpeechLoadOption LoadOption) {
  17269     return This->lpVtbl->CmdLoadFromFile(This,FileName,LoadOption);
  17270 }
  17271 static inline HRESULT ISpeechRecoGrammar_CmdLoadFromObject(ISpeechRecoGrammar* This,const BSTR ClassId,const BSTR GrammarName,SpeechLoadOption LoadOption) {
  17272     return This->lpVtbl->CmdLoadFromObject(This,ClassId,GrammarName,LoadOption);
  17273 }
  17274 static inline HRESULT ISpeechRecoGrammar_CmdLoadFromResource(ISpeechRecoGrammar* This,LONG hModule,VARIANT ResourceName,VARIANT ResourceType,SpeechLanguageId LanguageId,SpeechLoadOption LoadOption) {
  17275     return This->lpVtbl->CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption);
  17276 }
  17277 static inline HRESULT ISpeechRecoGrammar_CmdLoadFromMemory(ISpeechRecoGrammar* This,VARIANT GrammarData,SpeechLoadOption LoadOption) {
  17278     return This->lpVtbl->CmdLoadFromMemory(This,GrammarData,LoadOption);
  17279 }
  17280 static inline HRESULT ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar(ISpeechRecoGrammar* This,const BSTR ProprietaryGuid,const BSTR ProprietaryString,VARIANT ProprietaryData,SpeechLoadOption LoadOption) {
  17281     return This->lpVtbl->CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption);
  17282 }
  17283 static inline HRESULT ISpeechRecoGrammar_CmdSetRuleState(ISpeechRecoGrammar* This,const BSTR Name,SpeechRuleState State) {
  17284     return This->lpVtbl->CmdSetRuleState(This,Name,State);
  17285 }
  17286 static inline HRESULT ISpeechRecoGrammar_CmdSetRuleIdState(ISpeechRecoGrammar* This,LONG RuleId,SpeechRuleState State) {
  17287     return This->lpVtbl->CmdSetRuleIdState(This,RuleId,State);
  17288 }
  17289 static inline HRESULT ISpeechRecoGrammar_DictationLoad(ISpeechRecoGrammar* This,const BSTR TopicName,SpeechLoadOption LoadOption) {
  17290     return This->lpVtbl->DictationLoad(This,TopicName,LoadOption);
  17291 }
  17292 static inline HRESULT ISpeechRecoGrammar_DictationUnload(ISpeechRecoGrammar* This) {
  17293     return This->lpVtbl->DictationUnload(This);
  17294 }
  17295 static inline HRESULT ISpeechRecoGrammar_DictationSetState(ISpeechRecoGrammar* This,SpeechRuleState State) {
  17296     return This->lpVtbl->DictationSetState(This,State);
  17297 }
  17298 static inline HRESULT ISpeechRecoGrammar_SetWordSequenceData(ISpeechRecoGrammar* This,const BSTR Text,LONG TextLength,ISpeechTextSelectionInformation *Info) {
  17299     return This->lpVtbl->SetWordSequenceData(This,Text,TextLength,Info);
  17300 }
  17301 static inline HRESULT ISpeechRecoGrammar_SetTextSelection(ISpeechRecoGrammar* This,ISpeechTextSelectionInformation *Info) {
  17302     return This->lpVtbl->SetTextSelection(This,Info);
  17303 }
  17304 static inline HRESULT ISpeechRecoGrammar_IsPronounceable(ISpeechRecoGrammar* This,const BSTR Word,SpeechWordPronounceable *WordPronounceable) {
  17305     return This->lpVtbl->IsPronounceable(This,Word,WordPronounceable);
  17306 }
  17307 #endif
  17308 #endif
  17309 
  17310 #endif
  17311 
  17312 
  17313 #endif  /* __ISpeechRecoGrammar_INTERFACE_DEFINED__ */
  17314 
  17315 /*****************************************************************************
  17316  * _ISpeechRecoContextEvents dispinterface
  17317  */
  17318 #ifndef ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__
  17319 #define ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__
  17320 
  17321 DEFINE_GUID(DIID__ISpeechRecoContextEvents, 0x7b8fcb42, 0x0e9d, 0x4f00, 0xa0,0x48, 0x7b,0x04,0xd6,0x17,0x9d,0x3d);
  17322 #if defined(__cplusplus) && !defined(CINTERFACE)
  17323 MIDL_INTERFACE("7b8fcb42-0e9d-4f00-a048-7b04d6179d3d")
  17324 _ISpeechRecoContextEvents : public IDispatch
  17325 {
  17326 };
  17327 #ifdef __CRT_UUID_DECL
  17328 __CRT_UUID_DECL(_ISpeechRecoContextEvents, 0x7b8fcb42, 0x0e9d, 0x4f00, 0xa0,0x48, 0x7b,0x04,0xd6,0x17,0x9d,0x3d)
  17329 #endif
  17330 #else
  17331 typedef struct _ISpeechRecoContextEventsVtbl {
  17332     BEGIN_INTERFACE
  17333 
  17334     /*** IUnknown methods ***/
  17335     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  17336         _ISpeechRecoContextEvents *This,
  17337         REFIID riid,
  17338         void **ppvObject);
  17339 
  17340     ULONG (STDMETHODCALLTYPE *AddRef)(
  17341         _ISpeechRecoContextEvents *This);
  17342 
  17343     ULONG (STDMETHODCALLTYPE *Release)(
  17344         _ISpeechRecoContextEvents *This);
  17345 
  17346     /*** IDispatch methods ***/
  17347     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  17348         _ISpeechRecoContextEvents *This,
  17349         UINT *pctinfo);
  17350 
  17351     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  17352         _ISpeechRecoContextEvents *This,
  17353         UINT iTInfo,
  17354         LCID lcid,
  17355         ITypeInfo **ppTInfo);
  17356 
  17357     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  17358         _ISpeechRecoContextEvents *This,
  17359         REFIID riid,
  17360         LPOLESTR *rgszNames,
  17361         UINT cNames,
  17362         LCID lcid,
  17363         DISPID *rgDispId);
  17364 
  17365     HRESULT (STDMETHODCALLTYPE *Invoke)(
  17366         _ISpeechRecoContextEvents *This,
  17367         DISPID dispIdMember,
  17368         REFIID riid,
  17369         LCID lcid,
  17370         WORD wFlags,
  17371         DISPPARAMS *pDispParams,
  17372         VARIANT *pVarResult,
  17373         EXCEPINFO *pExcepInfo,
  17374         UINT *puArgErr);
  17375 
  17376     END_INTERFACE
  17377 } _ISpeechRecoContextEventsVtbl;
  17378 
  17379 interface _ISpeechRecoContextEvents {
  17380     CONST_VTBL _ISpeechRecoContextEventsVtbl* lpVtbl;
  17381 };
  17382 
  17383 #ifdef COBJMACROS
  17384 #ifndef WIDL_C_INLINE_WRAPPERS
  17385 /*** IUnknown methods ***/
  17386 #define _ISpeechRecoContextEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  17387 #define _ISpeechRecoContextEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
  17388 #define _ISpeechRecoContextEvents_Release(This) (This)->lpVtbl->Release(This)
  17389 /*** IDispatch methods ***/
  17390 #define _ISpeechRecoContextEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  17391 #define _ISpeechRecoContextEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  17392 #define _ISpeechRecoContextEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  17393 #define _ISpeechRecoContextEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  17394 #else
  17395 /*** IUnknown methods ***/
  17396 static inline HRESULT _ISpeechRecoContextEvents_QueryInterface(_ISpeechRecoContextEvents* This,REFIID riid,void **ppvObject) {
  17397     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  17398 }
  17399 static inline ULONG _ISpeechRecoContextEvents_AddRef(_ISpeechRecoContextEvents* This) {
  17400     return This->lpVtbl->AddRef(This);
  17401 }
  17402 static inline ULONG _ISpeechRecoContextEvents_Release(_ISpeechRecoContextEvents* This) {
  17403     return This->lpVtbl->Release(This);
  17404 }
  17405 /*** IDispatch methods ***/
  17406 static inline HRESULT _ISpeechRecoContextEvents_GetTypeInfoCount(_ISpeechRecoContextEvents* This,UINT *pctinfo) {
  17407     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  17408 }
  17409 static inline HRESULT _ISpeechRecoContextEvents_GetTypeInfo(_ISpeechRecoContextEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  17410     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  17411 }
  17412 static inline HRESULT _ISpeechRecoContextEvents_GetIDsOfNames(_ISpeechRecoContextEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  17413     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  17414 }
  17415 static inline HRESULT _ISpeechRecoContextEvents_Invoke(_ISpeechRecoContextEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  17416     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  17417 }
  17418 #endif
  17419 #endif
  17420 
  17421 #endif
  17422 
  17423 #endif  /* ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__ */
  17424 
  17425 /*****************************************************************************
  17426  * ISpeechGrammarRule interface
  17427  */
  17428 #ifndef __ISpeechGrammarRule_INTERFACE_DEFINED__
  17429 #define __ISpeechGrammarRule_INTERFACE_DEFINED__
  17430 
  17431 DEFINE_GUID(IID_ISpeechGrammarRule, 0xafe719cf, 0x5dd1, 0x44f2, 0x99,0x9c, 0x7a,0x39,0x9f,0x1c,0xfc,0xcc);
  17432 #if defined(__cplusplus) && !defined(CINTERFACE)
  17433 MIDL_INTERFACE("afe719cf-5dd1-44f2-999c-7a399f1cfccc")
  17434 ISpeechGrammarRule : public IDispatch
  17435 {
  17436     virtual HRESULT STDMETHODCALLTYPE get_Attributes(
  17437         SpeechRuleAttributes *Attributes) = 0;
  17438 
  17439     virtual HRESULT STDMETHODCALLTYPE get_InitialState(
  17440         ISpeechGrammarRuleState **State) = 0;
  17441 
  17442     virtual HRESULT STDMETHODCALLTYPE get_Name(
  17443         BSTR *Name) = 0;
  17444 
  17445     virtual HRESULT STDMETHODCALLTYPE get_Id(
  17446         LONG *Id) = 0;
  17447 
  17448     virtual HRESULT STDMETHODCALLTYPE Clear(
  17449         ) = 0;
  17450 
  17451     virtual HRESULT STDMETHODCALLTYPE AddResource(
  17452         const BSTR ResourceName,
  17453         const BSTR ResourceValue) = 0;
  17454 
  17455     virtual HRESULT STDMETHODCALLTYPE AddState(
  17456         ISpeechGrammarRuleState **State) = 0;
  17457 
  17458 };
  17459 #ifdef __CRT_UUID_DECL
  17460 __CRT_UUID_DECL(ISpeechGrammarRule, 0xafe719cf, 0x5dd1, 0x44f2, 0x99,0x9c, 0x7a,0x39,0x9f,0x1c,0xfc,0xcc)
  17461 #endif
  17462 #else
  17463 typedef struct ISpeechGrammarRuleVtbl {
  17464     BEGIN_INTERFACE
  17465 
  17466     /*** IUnknown methods ***/
  17467     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  17468         ISpeechGrammarRule *This,
  17469         REFIID riid,
  17470         void **ppvObject);
  17471 
  17472     ULONG (STDMETHODCALLTYPE *AddRef)(
  17473         ISpeechGrammarRule *This);
  17474 
  17475     ULONG (STDMETHODCALLTYPE *Release)(
  17476         ISpeechGrammarRule *This);
  17477 
  17478     /*** IDispatch methods ***/
  17479     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  17480         ISpeechGrammarRule *This,
  17481         UINT *pctinfo);
  17482 
  17483     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  17484         ISpeechGrammarRule *This,
  17485         UINT iTInfo,
  17486         LCID lcid,
  17487         ITypeInfo **ppTInfo);
  17488 
  17489     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  17490         ISpeechGrammarRule *This,
  17491         REFIID riid,
  17492         LPOLESTR *rgszNames,
  17493         UINT cNames,
  17494         LCID lcid,
  17495         DISPID *rgDispId);
  17496 
  17497     HRESULT (STDMETHODCALLTYPE *Invoke)(
  17498         ISpeechGrammarRule *This,
  17499         DISPID dispIdMember,
  17500         REFIID riid,
  17501         LCID lcid,
  17502         WORD wFlags,
  17503         DISPPARAMS *pDispParams,
  17504         VARIANT *pVarResult,
  17505         EXCEPINFO *pExcepInfo,
  17506         UINT *puArgErr);
  17507 
  17508     /*** ISpeechGrammarRule methods ***/
  17509     HRESULT (STDMETHODCALLTYPE *get_Attributes)(
  17510         ISpeechGrammarRule *This,
  17511         SpeechRuleAttributes *Attributes);
  17512 
  17513     HRESULT (STDMETHODCALLTYPE *get_InitialState)(
  17514         ISpeechGrammarRule *This,
  17515         ISpeechGrammarRuleState **State);
  17516 
  17517     HRESULT (STDMETHODCALLTYPE *get_Name)(
  17518         ISpeechGrammarRule *This,
  17519         BSTR *Name);
  17520 
  17521     HRESULT (STDMETHODCALLTYPE *get_Id)(
  17522         ISpeechGrammarRule *This,
  17523         LONG *Id);
  17524 
  17525     HRESULT (STDMETHODCALLTYPE *Clear)(
  17526         ISpeechGrammarRule *This);
  17527 
  17528     HRESULT (STDMETHODCALLTYPE *AddResource)(
  17529         ISpeechGrammarRule *This,
  17530         const BSTR ResourceName,
  17531         const BSTR ResourceValue);
  17532 
  17533     HRESULT (STDMETHODCALLTYPE *AddState)(
  17534         ISpeechGrammarRule *This,
  17535         ISpeechGrammarRuleState **State);
  17536 
  17537     END_INTERFACE
  17538 } ISpeechGrammarRuleVtbl;
  17539 
  17540 interface ISpeechGrammarRule {
  17541     CONST_VTBL ISpeechGrammarRuleVtbl* lpVtbl;
  17542 };
  17543 
  17544 #ifdef COBJMACROS
  17545 #ifndef WIDL_C_INLINE_WRAPPERS
  17546 /*** IUnknown methods ***/
  17547 #define ISpeechGrammarRule_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  17548 #define ISpeechGrammarRule_AddRef(This) (This)->lpVtbl->AddRef(This)
  17549 #define ISpeechGrammarRule_Release(This) (This)->lpVtbl->Release(This)
  17550 /*** IDispatch methods ***/
  17551 #define ISpeechGrammarRule_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  17552 #define ISpeechGrammarRule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  17553 #define ISpeechGrammarRule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  17554 #define ISpeechGrammarRule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  17555 /*** ISpeechGrammarRule methods ***/
  17556 #define ISpeechGrammarRule_get_Attributes(This,Attributes) (This)->lpVtbl->get_Attributes(This,Attributes)
  17557 #define ISpeechGrammarRule_get_InitialState(This,State) (This)->lpVtbl->get_InitialState(This,State)
  17558 #define ISpeechGrammarRule_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
  17559 #define ISpeechGrammarRule_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
  17560 #define ISpeechGrammarRule_Clear(This) (This)->lpVtbl->Clear(This)
  17561 #define ISpeechGrammarRule_AddResource(This,ResourceName,ResourceValue) (This)->lpVtbl->AddResource(This,ResourceName,ResourceValue)
  17562 #define ISpeechGrammarRule_AddState(This,State) (This)->lpVtbl->AddState(This,State)
  17563 #else
  17564 /*** IUnknown methods ***/
  17565 static inline HRESULT ISpeechGrammarRule_QueryInterface(ISpeechGrammarRule* This,REFIID riid,void **ppvObject) {
  17566     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  17567 }
  17568 static inline ULONG ISpeechGrammarRule_AddRef(ISpeechGrammarRule* This) {
  17569     return This->lpVtbl->AddRef(This);
  17570 }
  17571 static inline ULONG ISpeechGrammarRule_Release(ISpeechGrammarRule* This) {
  17572     return This->lpVtbl->Release(This);
  17573 }
  17574 /*** IDispatch methods ***/
  17575 static inline HRESULT ISpeechGrammarRule_GetTypeInfoCount(ISpeechGrammarRule* This,UINT *pctinfo) {
  17576     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  17577 }
  17578 static inline HRESULT ISpeechGrammarRule_GetTypeInfo(ISpeechGrammarRule* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  17579     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  17580 }
  17581 static inline HRESULT ISpeechGrammarRule_GetIDsOfNames(ISpeechGrammarRule* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  17582     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  17583 }
  17584 static inline HRESULT ISpeechGrammarRule_Invoke(ISpeechGrammarRule* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  17585     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  17586 }
  17587 /*** ISpeechGrammarRule methods ***/
  17588 static inline HRESULT ISpeechGrammarRule_get_Attributes(ISpeechGrammarRule* This,SpeechRuleAttributes *Attributes) {
  17589     return This->lpVtbl->get_Attributes(This,Attributes);
  17590 }
  17591 static inline HRESULT ISpeechGrammarRule_get_InitialState(ISpeechGrammarRule* This,ISpeechGrammarRuleState **State) {
  17592     return This->lpVtbl->get_InitialState(This,State);
  17593 }
  17594 static inline HRESULT ISpeechGrammarRule_get_Name(ISpeechGrammarRule* This,BSTR *Name) {
  17595     return This->lpVtbl->get_Name(This,Name);
  17596 }
  17597 static inline HRESULT ISpeechGrammarRule_get_Id(ISpeechGrammarRule* This,LONG *Id) {
  17598     return This->lpVtbl->get_Id(This,Id);
  17599 }
  17600 static inline HRESULT ISpeechGrammarRule_Clear(ISpeechGrammarRule* This) {
  17601     return This->lpVtbl->Clear(This);
  17602 }
  17603 static inline HRESULT ISpeechGrammarRule_AddResource(ISpeechGrammarRule* This,const BSTR ResourceName,const BSTR ResourceValue) {
  17604     return This->lpVtbl->AddResource(This,ResourceName,ResourceValue);
  17605 }
  17606 static inline HRESULT ISpeechGrammarRule_AddState(ISpeechGrammarRule* This,ISpeechGrammarRuleState **State) {
  17607     return This->lpVtbl->AddState(This,State);
  17608 }
  17609 #endif
  17610 #endif
  17611 
  17612 #endif
  17613 
  17614 
  17615 #endif  /* __ISpeechGrammarRule_INTERFACE_DEFINED__ */
  17616 
  17617 /*****************************************************************************
  17618  * ISpeechGrammarRules interface
  17619  */
  17620 #ifndef __ISpeechGrammarRules_INTERFACE_DEFINED__
  17621 #define __ISpeechGrammarRules_INTERFACE_DEFINED__
  17622 
  17623 DEFINE_GUID(IID_ISpeechGrammarRules, 0x6ffa3b44, 0xfc2d, 0x40d1, 0x8a,0xfc, 0x32,0x91,0x1c,0x7f,0x1a,0xd1);
  17624 #if defined(__cplusplus) && !defined(CINTERFACE)
  17625 MIDL_INTERFACE("6ffa3b44-fc2d-40d1-8afc-32911c7f1ad1")
  17626 ISpeechGrammarRules : public IDispatch
  17627 {
  17628     virtual HRESULT STDMETHODCALLTYPE get_Count(
  17629         LONG *Count) = 0;
  17630 
  17631     virtual HRESULT STDMETHODCALLTYPE FindRule(
  17632         VARIANT RuleNameOrId,
  17633         ISpeechGrammarRule **Rule) = 0;
  17634 
  17635     virtual HRESULT STDMETHODCALLTYPE Item(
  17636         LONG Index,
  17637         ISpeechGrammarRule **Rule) = 0;
  17638 
  17639     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
  17640         IUnknown **EnumVARIANT) = 0;
  17641 
  17642     virtual HRESULT STDMETHODCALLTYPE get_Dynamic(
  17643         VARIANT_BOOL *Dynamic) = 0;
  17644 
  17645     virtual HRESULT STDMETHODCALLTYPE Add(
  17646         BSTR RuleName,
  17647         SpeechRuleAttributes Attributes,
  17648         LONG RuleId,
  17649         ISpeechGrammarRule **Rule) = 0;
  17650 
  17651     virtual HRESULT STDMETHODCALLTYPE Commit(
  17652         ) = 0;
  17653 
  17654     virtual HRESULT STDMETHODCALLTYPE CommitAndSave(
  17655         BSTR *ErrorText,
  17656         VARIANT *SaveStream) = 0;
  17657 
  17658 };
  17659 #ifdef __CRT_UUID_DECL
  17660 __CRT_UUID_DECL(ISpeechGrammarRules, 0x6ffa3b44, 0xfc2d, 0x40d1, 0x8a,0xfc, 0x32,0x91,0x1c,0x7f,0x1a,0xd1)
  17661 #endif
  17662 #else
  17663 typedef struct ISpeechGrammarRulesVtbl {
  17664     BEGIN_INTERFACE
  17665 
  17666     /*** IUnknown methods ***/
  17667     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  17668         ISpeechGrammarRules *This,
  17669         REFIID riid,
  17670         void **ppvObject);
  17671 
  17672     ULONG (STDMETHODCALLTYPE *AddRef)(
  17673         ISpeechGrammarRules *This);
  17674 
  17675     ULONG (STDMETHODCALLTYPE *Release)(
  17676         ISpeechGrammarRules *This);
  17677 
  17678     /*** IDispatch methods ***/
  17679     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  17680         ISpeechGrammarRules *This,
  17681         UINT *pctinfo);
  17682 
  17683     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  17684         ISpeechGrammarRules *This,
  17685         UINT iTInfo,
  17686         LCID lcid,
  17687         ITypeInfo **ppTInfo);
  17688 
  17689     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  17690         ISpeechGrammarRules *This,
  17691         REFIID riid,
  17692         LPOLESTR *rgszNames,
  17693         UINT cNames,
  17694         LCID lcid,
  17695         DISPID *rgDispId);
  17696 
  17697     HRESULT (STDMETHODCALLTYPE *Invoke)(
  17698         ISpeechGrammarRules *This,
  17699         DISPID dispIdMember,
  17700         REFIID riid,
  17701         LCID lcid,
  17702         WORD wFlags,
  17703         DISPPARAMS *pDispParams,
  17704         VARIANT *pVarResult,
  17705         EXCEPINFO *pExcepInfo,
  17706         UINT *puArgErr);
  17707 
  17708     /*** ISpeechGrammarRules methods ***/
  17709     HRESULT (STDMETHODCALLTYPE *get_Count)(
  17710         ISpeechGrammarRules *This,
  17711         LONG *Count);
  17712 
  17713     HRESULT (STDMETHODCALLTYPE *FindRule)(
  17714         ISpeechGrammarRules *This,
  17715         VARIANT RuleNameOrId,
  17716         ISpeechGrammarRule **Rule);
  17717 
  17718     HRESULT (STDMETHODCALLTYPE *Item)(
  17719         ISpeechGrammarRules *This,
  17720         LONG Index,
  17721         ISpeechGrammarRule **Rule);
  17722 
  17723     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
  17724         ISpeechGrammarRules *This,
  17725         IUnknown **EnumVARIANT);
  17726 
  17727     HRESULT (STDMETHODCALLTYPE *get_Dynamic)(
  17728         ISpeechGrammarRules *This,
  17729         VARIANT_BOOL *Dynamic);
  17730 
  17731     HRESULT (STDMETHODCALLTYPE *Add)(
  17732         ISpeechGrammarRules *This,
  17733         BSTR RuleName,
  17734         SpeechRuleAttributes Attributes,
  17735         LONG RuleId,
  17736         ISpeechGrammarRule **Rule);
  17737 
  17738     HRESULT (STDMETHODCALLTYPE *Commit)(
  17739         ISpeechGrammarRules *This);
  17740 
  17741     HRESULT (STDMETHODCALLTYPE *CommitAndSave)(
  17742         ISpeechGrammarRules *This,
  17743         BSTR *ErrorText,
  17744         VARIANT *SaveStream);
  17745 
  17746     END_INTERFACE
  17747 } ISpeechGrammarRulesVtbl;
  17748 
  17749 interface ISpeechGrammarRules {
  17750     CONST_VTBL ISpeechGrammarRulesVtbl* lpVtbl;
  17751 };
  17752 
  17753 #ifdef COBJMACROS
  17754 #ifndef WIDL_C_INLINE_WRAPPERS
  17755 /*** IUnknown methods ***/
  17756 #define ISpeechGrammarRules_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  17757 #define ISpeechGrammarRules_AddRef(This) (This)->lpVtbl->AddRef(This)
  17758 #define ISpeechGrammarRules_Release(This) (This)->lpVtbl->Release(This)
  17759 /*** IDispatch methods ***/
  17760 #define ISpeechGrammarRules_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  17761 #define ISpeechGrammarRules_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  17762 #define ISpeechGrammarRules_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  17763 #define ISpeechGrammarRules_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  17764 /*** ISpeechGrammarRules methods ***/
  17765 #define ISpeechGrammarRules_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
  17766 #define ISpeechGrammarRules_FindRule(This,RuleNameOrId,Rule) (This)->lpVtbl->FindRule(This,RuleNameOrId,Rule)
  17767 #define ISpeechGrammarRules_Item(This,Index,Rule) (This)->lpVtbl->Item(This,Index,Rule)
  17768 #define ISpeechGrammarRules_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
  17769 #define ISpeechGrammarRules_get_Dynamic(This,Dynamic) (This)->lpVtbl->get_Dynamic(This,Dynamic)
  17770 #define ISpeechGrammarRules_Add(This,RuleName,Attributes,RuleId,Rule) (This)->lpVtbl->Add(This,RuleName,Attributes,RuleId,Rule)
  17771 #define ISpeechGrammarRules_Commit(This) (This)->lpVtbl->Commit(This)
  17772 #define ISpeechGrammarRules_CommitAndSave(This,ErrorText,SaveStream) (This)->lpVtbl->CommitAndSave(This,ErrorText,SaveStream)
  17773 #else
  17774 /*** IUnknown methods ***/
  17775 static inline HRESULT ISpeechGrammarRules_QueryInterface(ISpeechGrammarRules* This,REFIID riid,void **ppvObject) {
  17776     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  17777 }
  17778 static inline ULONG ISpeechGrammarRules_AddRef(ISpeechGrammarRules* This) {
  17779     return This->lpVtbl->AddRef(This);
  17780 }
  17781 static inline ULONG ISpeechGrammarRules_Release(ISpeechGrammarRules* This) {
  17782     return This->lpVtbl->Release(This);
  17783 }
  17784 /*** IDispatch methods ***/
  17785 static inline HRESULT ISpeechGrammarRules_GetTypeInfoCount(ISpeechGrammarRules* This,UINT *pctinfo) {
  17786     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  17787 }
  17788 static inline HRESULT ISpeechGrammarRules_GetTypeInfo(ISpeechGrammarRules* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  17789     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  17790 }
  17791 static inline HRESULT ISpeechGrammarRules_GetIDsOfNames(ISpeechGrammarRules* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  17792     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  17793 }
  17794 static inline HRESULT ISpeechGrammarRules_Invoke(ISpeechGrammarRules* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  17795     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  17796 }
  17797 /*** ISpeechGrammarRules methods ***/
  17798 static inline HRESULT ISpeechGrammarRules_get_Count(ISpeechGrammarRules* This,LONG *Count) {
  17799     return This->lpVtbl->get_Count(This,Count);
  17800 }
  17801 static inline HRESULT ISpeechGrammarRules_FindRule(ISpeechGrammarRules* This,VARIANT RuleNameOrId,ISpeechGrammarRule **Rule) {
  17802     return This->lpVtbl->FindRule(This,RuleNameOrId,Rule);
  17803 }
  17804 static inline HRESULT ISpeechGrammarRules_Item(ISpeechGrammarRules* This,LONG Index,ISpeechGrammarRule **Rule) {
  17805     return This->lpVtbl->Item(This,Index,Rule);
  17806 }
  17807 static inline HRESULT ISpeechGrammarRules_get__NewEnum(ISpeechGrammarRules* This,IUnknown **EnumVARIANT) {
  17808     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
  17809 }
  17810 static inline HRESULT ISpeechGrammarRules_get_Dynamic(ISpeechGrammarRules* This,VARIANT_BOOL *Dynamic) {
  17811     return This->lpVtbl->get_Dynamic(This,Dynamic);
  17812 }
  17813 static inline HRESULT ISpeechGrammarRules_Add(ISpeechGrammarRules* This,BSTR RuleName,SpeechRuleAttributes Attributes,LONG RuleId,ISpeechGrammarRule **Rule) {
  17814     return This->lpVtbl->Add(This,RuleName,Attributes,RuleId,Rule);
  17815 }
  17816 static inline HRESULT ISpeechGrammarRules_Commit(ISpeechGrammarRules* This) {
  17817     return This->lpVtbl->Commit(This);
  17818 }
  17819 static inline HRESULT ISpeechGrammarRules_CommitAndSave(ISpeechGrammarRules* This,BSTR *ErrorText,VARIANT *SaveStream) {
  17820     return This->lpVtbl->CommitAndSave(This,ErrorText,SaveStream);
  17821 }
  17822 #endif
  17823 #endif
  17824 
  17825 #endif
  17826 
  17827 
  17828 #endif  /* __ISpeechGrammarRules_INTERFACE_DEFINED__ */
  17829 
  17830 /*****************************************************************************
  17831  * ISpeechGrammarRuleState interface
  17832  */
  17833 #ifndef __ISpeechGrammarRuleState_INTERFACE_DEFINED__
  17834 #define __ISpeechGrammarRuleState_INTERFACE_DEFINED__
  17835 
  17836 DEFINE_GUID(IID_ISpeechGrammarRuleState, 0xd4286f2c, 0xee67, 0x45ae, 0xb9,0x28, 0x28,0xd6,0x95,0x36,0x2e,0xda);
  17837 #if defined(__cplusplus) && !defined(CINTERFACE)
  17838 MIDL_INTERFACE("d4286f2c-ee67-45ae-b928-28d695362eda")
  17839 ISpeechGrammarRuleState : public IDispatch
  17840 {
  17841     virtual HRESULT STDMETHODCALLTYPE get_Rule(
  17842         ISpeechGrammarRule **Rule) = 0;
  17843 
  17844     virtual HRESULT STDMETHODCALLTYPE get_Transitions(
  17845         ISpeechGrammarRuleStateTransitions **Transitions) = 0;
  17846 
  17847     virtual HRESULT STDMETHODCALLTYPE AddWordTransition(
  17848         ISpeechGrammarRuleState *DestState,
  17849         const BSTR Words,
  17850         const BSTR Separators = L" ",
  17851         SpeechGrammarWordType Type = SGLexical,
  17852         const BSTR PropertyName = L"",
  17853         LONG PropertyId = 0,
  17854         VARIANT *PropertyValue = 0,
  17855         float Weight = 1) = 0;
  17856 
  17857     virtual HRESULT STDMETHODCALLTYPE AddRuleTransition(
  17858         ISpeechGrammarRuleState *DestinationState,
  17859         ISpeechGrammarRule *Rule,
  17860         const BSTR PropertyName = L"",
  17861         LONG PropertyId = 0,
  17862         VARIANT *PropertyValue = 0,
  17863         float Weight = 1) = 0;
  17864 
  17865     virtual HRESULT STDMETHODCALLTYPE AddSpecialTransition(
  17866         ISpeechGrammarRuleState *DestinationState,
  17867         SpeechSpecialTransitionType Type,
  17868         const BSTR PropertyName = L"",
  17869         LONG PropertyId = 0,
  17870         VARIANT *PropertyValue = 0,
  17871         float Weight = 1) = 0;
  17872 
  17873 };
  17874 #ifdef __CRT_UUID_DECL
  17875 __CRT_UUID_DECL(ISpeechGrammarRuleState, 0xd4286f2c, 0xee67, 0x45ae, 0xb9,0x28, 0x28,0xd6,0x95,0x36,0x2e,0xda)
  17876 #endif
  17877 #else
  17878 typedef struct ISpeechGrammarRuleStateVtbl {
  17879     BEGIN_INTERFACE
  17880 
  17881     /*** IUnknown methods ***/
  17882     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  17883         ISpeechGrammarRuleState *This,
  17884         REFIID riid,
  17885         void **ppvObject);
  17886 
  17887     ULONG (STDMETHODCALLTYPE *AddRef)(
  17888         ISpeechGrammarRuleState *This);
  17889 
  17890     ULONG (STDMETHODCALLTYPE *Release)(
  17891         ISpeechGrammarRuleState *This);
  17892 
  17893     /*** IDispatch methods ***/
  17894     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  17895         ISpeechGrammarRuleState *This,
  17896         UINT *pctinfo);
  17897 
  17898     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  17899         ISpeechGrammarRuleState *This,
  17900         UINT iTInfo,
  17901         LCID lcid,
  17902         ITypeInfo **ppTInfo);
  17903 
  17904     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  17905         ISpeechGrammarRuleState *This,
  17906         REFIID riid,
  17907         LPOLESTR *rgszNames,
  17908         UINT cNames,
  17909         LCID lcid,
  17910         DISPID *rgDispId);
  17911 
  17912     HRESULT (STDMETHODCALLTYPE *Invoke)(
  17913         ISpeechGrammarRuleState *This,
  17914         DISPID dispIdMember,
  17915         REFIID riid,
  17916         LCID lcid,
  17917         WORD wFlags,
  17918         DISPPARAMS *pDispParams,
  17919         VARIANT *pVarResult,
  17920         EXCEPINFO *pExcepInfo,
  17921         UINT *puArgErr);
  17922 
  17923     /*** ISpeechGrammarRuleState methods ***/
  17924     HRESULT (STDMETHODCALLTYPE *get_Rule)(
  17925         ISpeechGrammarRuleState *This,
  17926         ISpeechGrammarRule **Rule);
  17927 
  17928     HRESULT (STDMETHODCALLTYPE *get_Transitions)(
  17929         ISpeechGrammarRuleState *This,
  17930         ISpeechGrammarRuleStateTransitions **Transitions);
  17931 
  17932     HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
  17933         ISpeechGrammarRuleState *This,
  17934         ISpeechGrammarRuleState *DestState,
  17935         const BSTR Words,
  17936         const BSTR Separators,
  17937         SpeechGrammarWordType Type,
  17938         const BSTR PropertyName,
  17939         LONG PropertyId,
  17940         VARIANT *PropertyValue,
  17941         float Weight);
  17942 
  17943     HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
  17944         ISpeechGrammarRuleState *This,
  17945         ISpeechGrammarRuleState *DestinationState,
  17946         ISpeechGrammarRule *Rule,
  17947         const BSTR PropertyName,
  17948         LONG PropertyId,
  17949         VARIANT *PropertyValue,
  17950         float Weight);
  17951 
  17952     HRESULT (STDMETHODCALLTYPE *AddSpecialTransition)(
  17953         ISpeechGrammarRuleState *This,
  17954         ISpeechGrammarRuleState *DestinationState,
  17955         SpeechSpecialTransitionType Type,
  17956         const BSTR PropertyName,
  17957         LONG PropertyId,
  17958         VARIANT *PropertyValue,
  17959         float Weight);
  17960 
  17961     END_INTERFACE
  17962 } ISpeechGrammarRuleStateVtbl;
  17963 
  17964 interface ISpeechGrammarRuleState {
  17965     CONST_VTBL ISpeechGrammarRuleStateVtbl* lpVtbl;
  17966 };
  17967 
  17968 #ifdef COBJMACROS
  17969 #ifndef WIDL_C_INLINE_WRAPPERS
  17970 /*** IUnknown methods ***/
  17971 #define ISpeechGrammarRuleState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  17972 #define ISpeechGrammarRuleState_AddRef(This) (This)->lpVtbl->AddRef(This)
  17973 #define ISpeechGrammarRuleState_Release(This) (This)->lpVtbl->Release(This)
  17974 /*** IDispatch methods ***/
  17975 #define ISpeechGrammarRuleState_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  17976 #define ISpeechGrammarRuleState_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  17977 #define ISpeechGrammarRuleState_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  17978 #define ISpeechGrammarRuleState_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  17979 /*** ISpeechGrammarRuleState methods ***/
  17980 #define ISpeechGrammarRuleState_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
  17981 #define ISpeechGrammarRuleState_get_Transitions(This,Transitions) (This)->lpVtbl->get_Transitions(This,Transitions)
  17982 #define ISpeechGrammarRuleState_AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight)
  17983 #define ISpeechGrammarRuleState_AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight)
  17984 #define ISpeechGrammarRuleState_AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight)
  17985 #else
  17986 /*** IUnknown methods ***/
  17987 static inline HRESULT ISpeechGrammarRuleState_QueryInterface(ISpeechGrammarRuleState* This,REFIID riid,void **ppvObject) {
  17988     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  17989 }
  17990 static inline ULONG ISpeechGrammarRuleState_AddRef(ISpeechGrammarRuleState* This) {
  17991     return This->lpVtbl->AddRef(This);
  17992 }
  17993 static inline ULONG ISpeechGrammarRuleState_Release(ISpeechGrammarRuleState* This) {
  17994     return This->lpVtbl->Release(This);
  17995 }
  17996 /*** IDispatch methods ***/
  17997 static inline HRESULT ISpeechGrammarRuleState_GetTypeInfoCount(ISpeechGrammarRuleState* This,UINT *pctinfo) {
  17998     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  17999 }
  18000 static inline HRESULT ISpeechGrammarRuleState_GetTypeInfo(ISpeechGrammarRuleState* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  18001     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  18002 }
  18003 static inline HRESULT ISpeechGrammarRuleState_GetIDsOfNames(ISpeechGrammarRuleState* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  18004     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  18005 }
  18006 static inline HRESULT ISpeechGrammarRuleState_Invoke(ISpeechGrammarRuleState* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  18007     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  18008 }
  18009 /*** ISpeechGrammarRuleState methods ***/
  18010 static inline HRESULT ISpeechGrammarRuleState_get_Rule(ISpeechGrammarRuleState* This,ISpeechGrammarRule **Rule) {
  18011     return This->lpVtbl->get_Rule(This,Rule);
  18012 }
  18013 static inline HRESULT ISpeechGrammarRuleState_get_Transitions(ISpeechGrammarRuleState* This,ISpeechGrammarRuleStateTransitions **Transitions) {
  18014     return This->lpVtbl->get_Transitions(This,Transitions);
  18015 }
  18016 static inline HRESULT ISpeechGrammarRuleState_AddWordTransition(ISpeechGrammarRuleState* This,ISpeechGrammarRuleState *DestState,const BSTR Words,const BSTR Separators,SpeechGrammarWordType Type,const BSTR PropertyName,LONG PropertyId,VARIANT *PropertyValue,float Weight) {
  18017     return This->lpVtbl->AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight);
  18018 }
  18019 static inline HRESULT ISpeechGrammarRuleState_AddRuleTransition(ISpeechGrammarRuleState* This,ISpeechGrammarRuleState *DestinationState,ISpeechGrammarRule *Rule,const BSTR PropertyName,LONG PropertyId,VARIANT *PropertyValue,float Weight) {
  18020     return This->lpVtbl->AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight);
  18021 }
  18022 static inline HRESULT ISpeechGrammarRuleState_AddSpecialTransition(ISpeechGrammarRuleState* This,ISpeechGrammarRuleState *DestinationState,SpeechSpecialTransitionType Type,const BSTR PropertyName,LONG PropertyId,VARIANT *PropertyValue,float Weight) {
  18023     return This->lpVtbl->AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight);
  18024 }
  18025 #endif
  18026 #endif
  18027 
  18028 #endif
  18029 
  18030 
  18031 #endif  /* __ISpeechGrammarRuleState_INTERFACE_DEFINED__ */
  18032 
  18033 /*****************************************************************************
  18034  * ISpeechGrammarRuleStateTransitions interface
  18035  */
  18036 #ifndef __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__
  18037 #define __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__
  18038 
  18039 DEFINE_GUID(IID_ISpeechGrammarRuleStateTransitions, 0xeabce657, 0x75bc, 0x44a2, 0xaa,0x7f, 0xc5,0x64,0x76,0x74,0x29,0x63);
  18040 #if defined(__cplusplus) && !defined(CINTERFACE)
  18041 MIDL_INTERFACE("eabce657-75bc-44a2-aa7f-c56476742963")
  18042 ISpeechGrammarRuleStateTransitions : public IDispatch
  18043 {
  18044     virtual HRESULT STDMETHODCALLTYPE get_Count(
  18045         LONG *Count) = 0;
  18046 
  18047     virtual HRESULT STDMETHODCALLTYPE Item(
  18048         LONG Index,
  18049         ISpeechGrammarRuleStateTransition **Transition) = 0;
  18050 
  18051     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
  18052         IUnknown **EnumVARIANT) = 0;
  18053 
  18054 };
  18055 #ifdef __CRT_UUID_DECL
  18056 __CRT_UUID_DECL(ISpeechGrammarRuleStateTransitions, 0xeabce657, 0x75bc, 0x44a2, 0xaa,0x7f, 0xc5,0x64,0x76,0x74,0x29,0x63)
  18057 #endif
  18058 #else
  18059 typedef struct ISpeechGrammarRuleStateTransitionsVtbl {
  18060     BEGIN_INTERFACE
  18061 
  18062     /*** IUnknown methods ***/
  18063     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  18064         ISpeechGrammarRuleStateTransitions *This,
  18065         REFIID riid,
  18066         void **ppvObject);
  18067 
  18068     ULONG (STDMETHODCALLTYPE *AddRef)(
  18069         ISpeechGrammarRuleStateTransitions *This);
  18070 
  18071     ULONG (STDMETHODCALLTYPE *Release)(
  18072         ISpeechGrammarRuleStateTransitions *This);
  18073 
  18074     /*** IDispatch methods ***/
  18075     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  18076         ISpeechGrammarRuleStateTransitions *This,
  18077         UINT *pctinfo);
  18078 
  18079     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  18080         ISpeechGrammarRuleStateTransitions *This,
  18081         UINT iTInfo,
  18082         LCID lcid,
  18083         ITypeInfo **ppTInfo);
  18084 
  18085     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  18086         ISpeechGrammarRuleStateTransitions *This,
  18087         REFIID riid,
  18088         LPOLESTR *rgszNames,
  18089         UINT cNames,
  18090         LCID lcid,
  18091         DISPID *rgDispId);
  18092 
  18093     HRESULT (STDMETHODCALLTYPE *Invoke)(
  18094         ISpeechGrammarRuleStateTransitions *This,
  18095         DISPID dispIdMember,
  18096         REFIID riid,
  18097         LCID lcid,
  18098         WORD wFlags,
  18099         DISPPARAMS *pDispParams,
  18100         VARIANT *pVarResult,
  18101         EXCEPINFO *pExcepInfo,
  18102         UINT *puArgErr);
  18103 
  18104     /*** ISpeechGrammarRuleStateTransitions methods ***/
  18105     HRESULT (STDMETHODCALLTYPE *get_Count)(
  18106         ISpeechGrammarRuleStateTransitions *This,
  18107         LONG *Count);
  18108 
  18109     HRESULT (STDMETHODCALLTYPE *Item)(
  18110         ISpeechGrammarRuleStateTransitions *This,
  18111         LONG Index,
  18112         ISpeechGrammarRuleStateTransition **Transition);
  18113 
  18114     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
  18115         ISpeechGrammarRuleStateTransitions *This,
  18116         IUnknown **EnumVARIANT);
  18117 
  18118     END_INTERFACE
  18119 } ISpeechGrammarRuleStateTransitionsVtbl;
  18120 
  18121 interface ISpeechGrammarRuleStateTransitions {
  18122     CONST_VTBL ISpeechGrammarRuleStateTransitionsVtbl* lpVtbl;
  18123 };
  18124 
  18125 #ifdef COBJMACROS
  18126 #ifndef WIDL_C_INLINE_WRAPPERS
  18127 /*** IUnknown methods ***/
  18128 #define ISpeechGrammarRuleStateTransitions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  18129 #define ISpeechGrammarRuleStateTransitions_AddRef(This) (This)->lpVtbl->AddRef(This)
  18130 #define ISpeechGrammarRuleStateTransitions_Release(This) (This)->lpVtbl->Release(This)
  18131 /*** IDispatch methods ***/
  18132 #define ISpeechGrammarRuleStateTransitions_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  18133 #define ISpeechGrammarRuleStateTransitions_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  18134 #define ISpeechGrammarRuleStateTransitions_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  18135 #define ISpeechGrammarRuleStateTransitions_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  18136 /*** ISpeechGrammarRuleStateTransitions methods ***/
  18137 #define ISpeechGrammarRuleStateTransitions_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
  18138 #define ISpeechGrammarRuleStateTransitions_Item(This,Index,Transition) (This)->lpVtbl->Item(This,Index,Transition)
  18139 #define ISpeechGrammarRuleStateTransitions_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
  18140 #else
  18141 /*** IUnknown methods ***/
  18142 static inline HRESULT ISpeechGrammarRuleStateTransitions_QueryInterface(ISpeechGrammarRuleStateTransitions* This,REFIID riid,void **ppvObject) {
  18143     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  18144 }
  18145 static inline ULONG ISpeechGrammarRuleStateTransitions_AddRef(ISpeechGrammarRuleStateTransitions* This) {
  18146     return This->lpVtbl->AddRef(This);
  18147 }
  18148 static inline ULONG ISpeechGrammarRuleStateTransitions_Release(ISpeechGrammarRuleStateTransitions* This) {
  18149     return This->lpVtbl->Release(This);
  18150 }
  18151 /*** IDispatch methods ***/
  18152 static inline HRESULT ISpeechGrammarRuleStateTransitions_GetTypeInfoCount(ISpeechGrammarRuleStateTransitions* This,UINT *pctinfo) {
  18153     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  18154 }
  18155 static inline HRESULT ISpeechGrammarRuleStateTransitions_GetTypeInfo(ISpeechGrammarRuleStateTransitions* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  18156     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  18157 }
  18158 static inline HRESULT ISpeechGrammarRuleStateTransitions_GetIDsOfNames(ISpeechGrammarRuleStateTransitions* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  18159     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  18160 }
  18161 static inline HRESULT ISpeechGrammarRuleStateTransitions_Invoke(ISpeechGrammarRuleStateTransitions* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  18162     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  18163 }
  18164 /*** ISpeechGrammarRuleStateTransitions methods ***/
  18165 static inline HRESULT ISpeechGrammarRuleStateTransitions_get_Count(ISpeechGrammarRuleStateTransitions* This,LONG *Count) {
  18166     return This->lpVtbl->get_Count(This,Count);
  18167 }
  18168 static inline HRESULT ISpeechGrammarRuleStateTransitions_Item(ISpeechGrammarRuleStateTransitions* This,LONG Index,ISpeechGrammarRuleStateTransition **Transition) {
  18169     return This->lpVtbl->Item(This,Index,Transition);
  18170 }
  18171 static inline HRESULT ISpeechGrammarRuleStateTransitions_get__NewEnum(ISpeechGrammarRuleStateTransitions* This,IUnknown **EnumVARIANT) {
  18172     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
  18173 }
  18174 #endif
  18175 #endif
  18176 
  18177 #endif
  18178 
  18179 
  18180 #endif  /* __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__ */
  18181 
  18182 /*****************************************************************************
  18183  * ISpeechGrammarRuleStateTransition interface
  18184  */
  18185 #ifndef __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__
  18186 #define __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__
  18187 
  18188 DEFINE_GUID(IID_ISpeechGrammarRuleStateTransition, 0xcafd1db1, 0x41d1, 0x4a06, 0x98,0x63, 0xe2,0xe8,0x1d,0xa1,0x7a,0x9a);
  18189 #if defined(__cplusplus) && !defined(CINTERFACE)
  18190 MIDL_INTERFACE("cafd1db1-41d1-4a06-9863-e2e81da17a9a")
  18191 ISpeechGrammarRuleStateTransition : public IDispatch
  18192 {
  18193     virtual HRESULT STDMETHODCALLTYPE get_Type(
  18194         SpeechGrammarRuleStateTransitionType *Type) = 0;
  18195 
  18196     virtual HRESULT STDMETHODCALLTYPE get_Text(
  18197         BSTR *Text) = 0;
  18198 
  18199     virtual HRESULT STDMETHODCALLTYPE get_Rule(
  18200         ISpeechGrammarRule **Rule) = 0;
  18201 
  18202     virtual HRESULT STDMETHODCALLTYPE get_Weight(
  18203         VARIANT *Weight) = 0;
  18204 
  18205     virtual HRESULT STDMETHODCALLTYPE get_PropertyName(
  18206         BSTR *PropertyName) = 0;
  18207 
  18208     virtual HRESULT STDMETHODCALLTYPE get_PropertyId(
  18209         LONG *PropertyId) = 0;
  18210 
  18211     virtual HRESULT STDMETHODCALLTYPE get_PropertyValue(
  18212         VARIANT *PropertyValue) = 0;
  18213 
  18214     virtual HRESULT STDMETHODCALLTYPE get_NextState(
  18215         ISpeechGrammarRuleState **NextState) = 0;
  18216 
  18217 };
  18218 #ifdef __CRT_UUID_DECL
  18219 __CRT_UUID_DECL(ISpeechGrammarRuleStateTransition, 0xcafd1db1, 0x41d1, 0x4a06, 0x98,0x63, 0xe2,0xe8,0x1d,0xa1,0x7a,0x9a)
  18220 #endif
  18221 #else
  18222 typedef struct ISpeechGrammarRuleStateTransitionVtbl {
  18223     BEGIN_INTERFACE
  18224 
  18225     /*** IUnknown methods ***/
  18226     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  18227         ISpeechGrammarRuleStateTransition *This,
  18228         REFIID riid,
  18229         void **ppvObject);
  18230 
  18231     ULONG (STDMETHODCALLTYPE *AddRef)(
  18232         ISpeechGrammarRuleStateTransition *This);
  18233 
  18234     ULONG (STDMETHODCALLTYPE *Release)(
  18235         ISpeechGrammarRuleStateTransition *This);
  18236 
  18237     /*** IDispatch methods ***/
  18238     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  18239         ISpeechGrammarRuleStateTransition *This,
  18240         UINT *pctinfo);
  18241 
  18242     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  18243         ISpeechGrammarRuleStateTransition *This,
  18244         UINT iTInfo,
  18245         LCID lcid,
  18246         ITypeInfo **ppTInfo);
  18247 
  18248     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  18249         ISpeechGrammarRuleStateTransition *This,
  18250         REFIID riid,
  18251         LPOLESTR *rgszNames,
  18252         UINT cNames,
  18253         LCID lcid,
  18254         DISPID *rgDispId);
  18255 
  18256     HRESULT (STDMETHODCALLTYPE *Invoke)(
  18257         ISpeechGrammarRuleStateTransition *This,
  18258         DISPID dispIdMember,
  18259         REFIID riid,
  18260         LCID lcid,
  18261         WORD wFlags,
  18262         DISPPARAMS *pDispParams,
  18263         VARIANT *pVarResult,
  18264         EXCEPINFO *pExcepInfo,
  18265         UINT *puArgErr);
  18266 
  18267     /*** ISpeechGrammarRuleStateTransition methods ***/
  18268     HRESULT (STDMETHODCALLTYPE *get_Type)(
  18269         ISpeechGrammarRuleStateTransition *This,
  18270         SpeechGrammarRuleStateTransitionType *Type);
  18271 
  18272     HRESULT (STDMETHODCALLTYPE *get_Text)(
  18273         ISpeechGrammarRuleStateTransition *This,
  18274         BSTR *Text);
  18275 
  18276     HRESULT (STDMETHODCALLTYPE *get_Rule)(
  18277         ISpeechGrammarRuleStateTransition *This,
  18278         ISpeechGrammarRule **Rule);
  18279 
  18280     HRESULT (STDMETHODCALLTYPE *get_Weight)(
  18281         ISpeechGrammarRuleStateTransition *This,
  18282         VARIANT *Weight);
  18283 
  18284     HRESULT (STDMETHODCALLTYPE *get_PropertyName)(
  18285         ISpeechGrammarRuleStateTransition *This,
  18286         BSTR *PropertyName);
  18287 
  18288     HRESULT (STDMETHODCALLTYPE *get_PropertyId)(
  18289         ISpeechGrammarRuleStateTransition *This,
  18290         LONG *PropertyId);
  18291 
  18292     HRESULT (STDMETHODCALLTYPE *get_PropertyValue)(
  18293         ISpeechGrammarRuleStateTransition *This,
  18294         VARIANT *PropertyValue);
  18295 
  18296     HRESULT (STDMETHODCALLTYPE *get_NextState)(
  18297         ISpeechGrammarRuleStateTransition *This,
  18298         ISpeechGrammarRuleState **NextState);
  18299 
  18300     END_INTERFACE
  18301 } ISpeechGrammarRuleStateTransitionVtbl;
  18302 
  18303 interface ISpeechGrammarRuleStateTransition {
  18304     CONST_VTBL ISpeechGrammarRuleStateTransitionVtbl* lpVtbl;
  18305 };
  18306 
  18307 #ifdef COBJMACROS
  18308 #ifndef WIDL_C_INLINE_WRAPPERS
  18309 /*** IUnknown methods ***/
  18310 #define ISpeechGrammarRuleStateTransition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  18311 #define ISpeechGrammarRuleStateTransition_AddRef(This) (This)->lpVtbl->AddRef(This)
  18312 #define ISpeechGrammarRuleStateTransition_Release(This) (This)->lpVtbl->Release(This)
  18313 /*** IDispatch methods ***/
  18314 #define ISpeechGrammarRuleStateTransition_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  18315 #define ISpeechGrammarRuleStateTransition_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  18316 #define ISpeechGrammarRuleStateTransition_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  18317 #define ISpeechGrammarRuleStateTransition_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  18318 /*** ISpeechGrammarRuleStateTransition methods ***/
  18319 #define ISpeechGrammarRuleStateTransition_get_Type(This,Type) (This)->lpVtbl->get_Type(This,Type)
  18320 #define ISpeechGrammarRuleStateTransition_get_Text(This,Text) (This)->lpVtbl->get_Text(This,Text)
  18321 #define ISpeechGrammarRuleStateTransition_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
  18322 #define ISpeechGrammarRuleStateTransition_get_Weight(This,Weight) (This)->lpVtbl->get_Weight(This,Weight)
  18323 #define ISpeechGrammarRuleStateTransition_get_PropertyName(This,PropertyName) (This)->lpVtbl->get_PropertyName(This,PropertyName)
  18324 #define ISpeechGrammarRuleStateTransition_get_PropertyId(This,PropertyId) (This)->lpVtbl->get_PropertyId(This,PropertyId)
  18325 #define ISpeechGrammarRuleStateTransition_get_PropertyValue(This,PropertyValue) (This)->lpVtbl->get_PropertyValue(This,PropertyValue)
  18326 #define ISpeechGrammarRuleStateTransition_get_NextState(This,NextState) (This)->lpVtbl->get_NextState(This,NextState)
  18327 #else
  18328 /*** IUnknown methods ***/
  18329 static inline HRESULT ISpeechGrammarRuleStateTransition_QueryInterface(ISpeechGrammarRuleStateTransition* This,REFIID riid,void **ppvObject) {
  18330     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  18331 }
  18332 static inline ULONG ISpeechGrammarRuleStateTransition_AddRef(ISpeechGrammarRuleStateTransition* This) {
  18333     return This->lpVtbl->AddRef(This);
  18334 }
  18335 static inline ULONG ISpeechGrammarRuleStateTransition_Release(ISpeechGrammarRuleStateTransition* This) {
  18336     return This->lpVtbl->Release(This);
  18337 }
  18338 /*** IDispatch methods ***/
  18339 static inline HRESULT ISpeechGrammarRuleStateTransition_GetTypeInfoCount(ISpeechGrammarRuleStateTransition* This,UINT *pctinfo) {
  18340     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  18341 }
  18342 static inline HRESULT ISpeechGrammarRuleStateTransition_GetTypeInfo(ISpeechGrammarRuleStateTransition* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  18343     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  18344 }
  18345 static inline HRESULT ISpeechGrammarRuleStateTransition_GetIDsOfNames(ISpeechGrammarRuleStateTransition* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  18346     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  18347 }
  18348 static inline HRESULT ISpeechGrammarRuleStateTransition_Invoke(ISpeechGrammarRuleStateTransition* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  18349     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  18350 }
  18351 /*** ISpeechGrammarRuleStateTransition methods ***/
  18352 static inline HRESULT ISpeechGrammarRuleStateTransition_get_Type(ISpeechGrammarRuleStateTransition* This,SpeechGrammarRuleStateTransitionType *Type) {
  18353     return This->lpVtbl->get_Type(This,Type);
  18354 }
  18355 static inline HRESULT ISpeechGrammarRuleStateTransition_get_Text(ISpeechGrammarRuleStateTransition* This,BSTR *Text) {
  18356     return This->lpVtbl->get_Text(This,Text);
  18357 }
  18358 static inline HRESULT ISpeechGrammarRuleStateTransition_get_Rule(ISpeechGrammarRuleStateTransition* This,ISpeechGrammarRule **Rule) {
  18359     return This->lpVtbl->get_Rule(This,Rule);
  18360 }
  18361 static inline HRESULT ISpeechGrammarRuleStateTransition_get_Weight(ISpeechGrammarRuleStateTransition* This,VARIANT *Weight) {
  18362     return This->lpVtbl->get_Weight(This,Weight);
  18363 }
  18364 static inline HRESULT ISpeechGrammarRuleStateTransition_get_PropertyName(ISpeechGrammarRuleStateTransition* This,BSTR *PropertyName) {
  18365     return This->lpVtbl->get_PropertyName(This,PropertyName);
  18366 }
  18367 static inline HRESULT ISpeechGrammarRuleStateTransition_get_PropertyId(ISpeechGrammarRuleStateTransition* This,LONG *PropertyId) {
  18368     return This->lpVtbl->get_PropertyId(This,PropertyId);
  18369 }
  18370 static inline HRESULT ISpeechGrammarRuleStateTransition_get_PropertyValue(ISpeechGrammarRuleStateTransition* This,VARIANT *PropertyValue) {
  18371     return This->lpVtbl->get_PropertyValue(This,PropertyValue);
  18372 }
  18373 static inline HRESULT ISpeechGrammarRuleStateTransition_get_NextState(ISpeechGrammarRuleStateTransition* This,ISpeechGrammarRuleState **NextState) {
  18374     return This->lpVtbl->get_NextState(This,NextState);
  18375 }
  18376 #endif
  18377 #endif
  18378 
  18379 #endif
  18380 
  18381 
  18382 #endif  /* __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__ */
  18383 
  18384 /*****************************************************************************
  18385  * ISpeechTextSelectionInformation interface
  18386  */
  18387 #ifndef __ISpeechTextSelectionInformation_INTERFACE_DEFINED__
  18388 #define __ISpeechTextSelectionInformation_INTERFACE_DEFINED__
  18389 
  18390 DEFINE_GUID(IID_ISpeechTextSelectionInformation, 0x3b9c7e7a, 0x6eee, 0x4ded, 0x90,0x92, 0x11,0x65,0x72,0x79,0xad,0xbe);
  18391 #if defined(__cplusplus) && !defined(CINTERFACE)
  18392 MIDL_INTERFACE("3b9c7e7a-6eee-4ded-9092-11657279adbe")
  18393 ISpeechTextSelectionInformation : public IDispatch
  18394 {
  18395     virtual HRESULT STDMETHODCALLTYPE put_ActiveOffset(
  18396         LONG ActiveOffset) = 0;
  18397 
  18398     virtual HRESULT STDMETHODCALLTYPE get_ActiveOffset(
  18399         LONG *ActiveOffset) = 0;
  18400 
  18401     virtual HRESULT STDMETHODCALLTYPE put_ActiveLength(
  18402         LONG ActiveLength) = 0;
  18403 
  18404     virtual HRESULT STDMETHODCALLTYPE get_ActiveLength(
  18405         LONG *ActiveLength) = 0;
  18406 
  18407     virtual HRESULT STDMETHODCALLTYPE put_SelectionOffset(
  18408         LONG SelectionOffset) = 0;
  18409 
  18410     virtual HRESULT STDMETHODCALLTYPE get_SelectionOffset(
  18411         LONG *SelectionOffset) = 0;
  18412 
  18413     virtual HRESULT STDMETHODCALLTYPE put_SelectionLength(
  18414         LONG SelectionLength) = 0;
  18415 
  18416     virtual HRESULT STDMETHODCALLTYPE get_SelectionLength(
  18417         LONG *SelectionLength) = 0;
  18418 
  18419 };
  18420 #ifdef __CRT_UUID_DECL
  18421 __CRT_UUID_DECL(ISpeechTextSelectionInformation, 0x3b9c7e7a, 0x6eee, 0x4ded, 0x90,0x92, 0x11,0x65,0x72,0x79,0xad,0xbe)
  18422 #endif
  18423 #else
  18424 typedef struct ISpeechTextSelectionInformationVtbl {
  18425     BEGIN_INTERFACE
  18426 
  18427     /*** IUnknown methods ***/
  18428     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  18429         ISpeechTextSelectionInformation *This,
  18430         REFIID riid,
  18431         void **ppvObject);
  18432 
  18433     ULONG (STDMETHODCALLTYPE *AddRef)(
  18434         ISpeechTextSelectionInformation *This);
  18435 
  18436     ULONG (STDMETHODCALLTYPE *Release)(
  18437         ISpeechTextSelectionInformation *This);
  18438 
  18439     /*** IDispatch methods ***/
  18440     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  18441         ISpeechTextSelectionInformation *This,
  18442         UINT *pctinfo);
  18443 
  18444     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  18445         ISpeechTextSelectionInformation *This,
  18446         UINT iTInfo,
  18447         LCID lcid,
  18448         ITypeInfo **ppTInfo);
  18449 
  18450     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  18451         ISpeechTextSelectionInformation *This,
  18452         REFIID riid,
  18453         LPOLESTR *rgszNames,
  18454         UINT cNames,
  18455         LCID lcid,
  18456         DISPID *rgDispId);
  18457 
  18458     HRESULT (STDMETHODCALLTYPE *Invoke)(
  18459         ISpeechTextSelectionInformation *This,
  18460         DISPID dispIdMember,
  18461         REFIID riid,
  18462         LCID lcid,
  18463         WORD wFlags,
  18464         DISPPARAMS *pDispParams,
  18465         VARIANT *pVarResult,
  18466         EXCEPINFO *pExcepInfo,
  18467         UINT *puArgErr);
  18468 
  18469     /*** ISpeechTextSelectionInformation methods ***/
  18470     HRESULT (STDMETHODCALLTYPE *put_ActiveOffset)(
  18471         ISpeechTextSelectionInformation *This,
  18472         LONG ActiveOffset);
  18473 
  18474     HRESULT (STDMETHODCALLTYPE *get_ActiveOffset)(
  18475         ISpeechTextSelectionInformation *This,
  18476         LONG *ActiveOffset);
  18477 
  18478     HRESULT (STDMETHODCALLTYPE *put_ActiveLength)(
  18479         ISpeechTextSelectionInformation *This,
  18480         LONG ActiveLength);
  18481 
  18482     HRESULT (STDMETHODCALLTYPE *get_ActiveLength)(
  18483         ISpeechTextSelectionInformation *This,
  18484         LONG *ActiveLength);
  18485 
  18486     HRESULT (STDMETHODCALLTYPE *put_SelectionOffset)(
  18487         ISpeechTextSelectionInformation *This,
  18488         LONG SelectionOffset);
  18489 
  18490     HRESULT (STDMETHODCALLTYPE *get_SelectionOffset)(
  18491         ISpeechTextSelectionInformation *This,
  18492         LONG *SelectionOffset);
  18493 
  18494     HRESULT (STDMETHODCALLTYPE *put_SelectionLength)(
  18495         ISpeechTextSelectionInformation *This,
  18496         LONG SelectionLength);
  18497 
  18498     HRESULT (STDMETHODCALLTYPE *get_SelectionLength)(
  18499         ISpeechTextSelectionInformation *This,
  18500         LONG *SelectionLength);
  18501 
  18502     END_INTERFACE
  18503 } ISpeechTextSelectionInformationVtbl;
  18504 
  18505 interface ISpeechTextSelectionInformation {
  18506     CONST_VTBL ISpeechTextSelectionInformationVtbl* lpVtbl;
  18507 };
  18508 
  18509 #ifdef COBJMACROS
  18510 #ifndef WIDL_C_INLINE_WRAPPERS
  18511 /*** IUnknown methods ***/
  18512 #define ISpeechTextSelectionInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  18513 #define ISpeechTextSelectionInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
  18514 #define ISpeechTextSelectionInformation_Release(This) (This)->lpVtbl->Release(This)
  18515 /*** IDispatch methods ***/
  18516 #define ISpeechTextSelectionInformation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  18517 #define ISpeechTextSelectionInformation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  18518 #define ISpeechTextSelectionInformation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  18519 #define ISpeechTextSelectionInformation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  18520 /*** ISpeechTextSelectionInformation methods ***/
  18521 #define ISpeechTextSelectionInformation_put_ActiveOffset(This,ActiveOffset) (This)->lpVtbl->put_ActiveOffset(This,ActiveOffset)
  18522 #define ISpeechTextSelectionInformation_get_ActiveOffset(This,ActiveOffset) (This)->lpVtbl->get_ActiveOffset(This,ActiveOffset)
  18523 #define ISpeechTextSelectionInformation_put_ActiveLength(This,ActiveLength) (This)->lpVtbl->put_ActiveLength(This,ActiveLength)
  18524 #define ISpeechTextSelectionInformation_get_ActiveLength(This,ActiveLength) (This)->lpVtbl->get_ActiveLength(This,ActiveLength)
  18525 #define ISpeechTextSelectionInformation_put_SelectionOffset(This,SelectionOffset) (This)->lpVtbl->put_SelectionOffset(This,SelectionOffset)
  18526 #define ISpeechTextSelectionInformation_get_SelectionOffset(This,SelectionOffset) (This)->lpVtbl->get_SelectionOffset(This,SelectionOffset)
  18527 #define ISpeechTextSelectionInformation_put_SelectionLength(This,SelectionLength) (This)->lpVtbl->put_SelectionLength(This,SelectionLength)
  18528 #define ISpeechTextSelectionInformation_get_SelectionLength(This,SelectionLength) (This)->lpVtbl->get_SelectionLength(This,SelectionLength)
  18529 #else
  18530 /*** IUnknown methods ***/
  18531 static inline HRESULT ISpeechTextSelectionInformation_QueryInterface(ISpeechTextSelectionInformation* This,REFIID riid,void **ppvObject) {
  18532     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  18533 }
  18534 static inline ULONG ISpeechTextSelectionInformation_AddRef(ISpeechTextSelectionInformation* This) {
  18535     return This->lpVtbl->AddRef(This);
  18536 }
  18537 static inline ULONG ISpeechTextSelectionInformation_Release(ISpeechTextSelectionInformation* This) {
  18538     return This->lpVtbl->Release(This);
  18539 }
  18540 /*** IDispatch methods ***/
  18541 static inline HRESULT ISpeechTextSelectionInformation_GetTypeInfoCount(ISpeechTextSelectionInformation* This,UINT *pctinfo) {
  18542     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  18543 }
  18544 static inline HRESULT ISpeechTextSelectionInformation_GetTypeInfo(ISpeechTextSelectionInformation* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  18545     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  18546 }
  18547 static inline HRESULT ISpeechTextSelectionInformation_GetIDsOfNames(ISpeechTextSelectionInformation* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  18548     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  18549 }
  18550 static inline HRESULT ISpeechTextSelectionInformation_Invoke(ISpeechTextSelectionInformation* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  18551     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  18552 }
  18553 /*** ISpeechTextSelectionInformation methods ***/
  18554 static inline HRESULT ISpeechTextSelectionInformation_put_ActiveOffset(ISpeechTextSelectionInformation* This,LONG ActiveOffset) {
  18555     return This->lpVtbl->put_ActiveOffset(This,ActiveOffset);
  18556 }
  18557 static inline HRESULT ISpeechTextSelectionInformation_get_ActiveOffset(ISpeechTextSelectionInformation* This,LONG *ActiveOffset) {
  18558     return This->lpVtbl->get_ActiveOffset(This,ActiveOffset);
  18559 }
  18560 static inline HRESULT ISpeechTextSelectionInformation_put_ActiveLength(ISpeechTextSelectionInformation* This,LONG ActiveLength) {
  18561     return This->lpVtbl->put_ActiveLength(This,ActiveLength);
  18562 }
  18563 static inline HRESULT ISpeechTextSelectionInformation_get_ActiveLength(ISpeechTextSelectionInformation* This,LONG *ActiveLength) {
  18564     return This->lpVtbl->get_ActiveLength(This,ActiveLength);
  18565 }
  18566 static inline HRESULT ISpeechTextSelectionInformation_put_SelectionOffset(ISpeechTextSelectionInformation* This,LONG SelectionOffset) {
  18567     return This->lpVtbl->put_SelectionOffset(This,SelectionOffset);
  18568 }
  18569 static inline HRESULT ISpeechTextSelectionInformation_get_SelectionOffset(ISpeechTextSelectionInformation* This,LONG *SelectionOffset) {
  18570     return This->lpVtbl->get_SelectionOffset(This,SelectionOffset);
  18571 }
  18572 static inline HRESULT ISpeechTextSelectionInformation_put_SelectionLength(ISpeechTextSelectionInformation* This,LONG SelectionLength) {
  18573     return This->lpVtbl->put_SelectionLength(This,SelectionLength);
  18574 }
  18575 static inline HRESULT ISpeechTextSelectionInformation_get_SelectionLength(ISpeechTextSelectionInformation* This,LONG *SelectionLength) {
  18576     return This->lpVtbl->get_SelectionLength(This,SelectionLength);
  18577 }
  18578 #endif
  18579 #endif
  18580 
  18581 #endif
  18582 
  18583 
  18584 #endif  /* __ISpeechTextSelectionInformation_INTERFACE_DEFINED__ */
  18585 
  18586 /*****************************************************************************
  18587  * ISpeechRecoResult interface
  18588  */
  18589 #ifndef __ISpeechRecoResult_INTERFACE_DEFINED__
  18590 #define __ISpeechRecoResult_INTERFACE_DEFINED__
  18591 
  18592 DEFINE_GUID(IID_ISpeechRecoResult, 0xed2879cf, 0xced9, 0x4ee6, 0xa5,0x34, 0xde,0x01,0x91,0xd5,0x46,0x8d);
  18593 #if defined(__cplusplus) && !defined(CINTERFACE)
  18594 MIDL_INTERFACE("ed2879cf-ced9-4ee6-a534-de0191d5468d")
  18595 ISpeechRecoResult : public IDispatch
  18596 {
  18597     virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
  18598         ISpeechRecoContext **RecoContext) = 0;
  18599 
  18600     virtual HRESULT STDMETHODCALLTYPE get_Times(
  18601         ISpeechRecoResultTimes **Times) = 0;
  18602 
  18603     virtual HRESULT STDMETHODCALLTYPE putref_AudioFormat(
  18604         ISpeechAudioFormat *Format) = 0;
  18605 
  18606     virtual HRESULT STDMETHODCALLTYPE get_AudioFormat(
  18607         ISpeechAudioFormat **Format) = 0;
  18608 
  18609     virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
  18610         ISpeechPhraseInfo **PhraseInfo) = 0;
  18611 
  18612     virtual HRESULT STDMETHODCALLTYPE Alternates(
  18613         LONG RequestCount,
  18614         LONG StartElement,
  18615         LONG Elements,
  18616         ISpeechPhraseAlternates **Alternates) = 0;
  18617 
  18618     virtual HRESULT STDMETHODCALLTYPE Audio(
  18619         LONG StartElement,
  18620         LONG Elements,
  18621         ISpeechMemoryStream **Stream) = 0;
  18622 
  18623     virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
  18624         LONG StartElement,
  18625         LONG Elements,
  18626         SpeechVoiceSpeakFlags Flags,
  18627         LONG *StreamNumber) = 0;
  18628 
  18629     virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
  18630         VARIANT *ResultBlock) = 0;
  18631 
  18632     virtual HRESULT STDMETHODCALLTYPE DiscardResultInfo(
  18633         SpeechDiscardType ValueTypes) = 0;
  18634 
  18635 };
  18636 #ifdef __CRT_UUID_DECL
  18637 __CRT_UUID_DECL(ISpeechRecoResult, 0xed2879cf, 0xced9, 0x4ee6, 0xa5,0x34, 0xde,0x01,0x91,0xd5,0x46,0x8d)
  18638 #endif
  18639 #else
  18640 typedef struct ISpeechRecoResultVtbl {
  18641     BEGIN_INTERFACE
  18642 
  18643     /*** IUnknown methods ***/
  18644     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  18645         ISpeechRecoResult *This,
  18646         REFIID riid,
  18647         void **ppvObject);
  18648 
  18649     ULONG (STDMETHODCALLTYPE *AddRef)(
  18650         ISpeechRecoResult *This);
  18651 
  18652     ULONG (STDMETHODCALLTYPE *Release)(
  18653         ISpeechRecoResult *This);
  18654 
  18655     /*** IDispatch methods ***/
  18656     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  18657         ISpeechRecoResult *This,
  18658         UINT *pctinfo);
  18659 
  18660     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  18661         ISpeechRecoResult *This,
  18662         UINT iTInfo,
  18663         LCID lcid,
  18664         ITypeInfo **ppTInfo);
  18665 
  18666     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  18667         ISpeechRecoResult *This,
  18668         REFIID riid,
  18669         LPOLESTR *rgszNames,
  18670         UINT cNames,
  18671         LCID lcid,
  18672         DISPID *rgDispId);
  18673 
  18674     HRESULT (STDMETHODCALLTYPE *Invoke)(
  18675         ISpeechRecoResult *This,
  18676         DISPID dispIdMember,
  18677         REFIID riid,
  18678         LCID lcid,
  18679         WORD wFlags,
  18680         DISPPARAMS *pDispParams,
  18681         VARIANT *pVarResult,
  18682         EXCEPINFO *pExcepInfo,
  18683         UINT *puArgErr);
  18684 
  18685     /*** ISpeechRecoResult methods ***/
  18686     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
  18687         ISpeechRecoResult *This,
  18688         ISpeechRecoContext **RecoContext);
  18689 
  18690     HRESULT (STDMETHODCALLTYPE *get_Times)(
  18691         ISpeechRecoResult *This,
  18692         ISpeechRecoResultTimes **Times);
  18693 
  18694     HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
  18695         ISpeechRecoResult *This,
  18696         ISpeechAudioFormat *Format);
  18697 
  18698     HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
  18699         ISpeechRecoResult *This,
  18700         ISpeechAudioFormat **Format);
  18701 
  18702     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
  18703         ISpeechRecoResult *This,
  18704         ISpeechPhraseInfo **PhraseInfo);
  18705 
  18706     HRESULT (STDMETHODCALLTYPE *Alternates)(
  18707         ISpeechRecoResult *This,
  18708         LONG RequestCount,
  18709         LONG StartElement,
  18710         LONG Elements,
  18711         ISpeechPhraseAlternates **Alternates);
  18712 
  18713     HRESULT (STDMETHODCALLTYPE *Audio)(
  18714         ISpeechRecoResult *This,
  18715         LONG StartElement,
  18716         LONG Elements,
  18717         ISpeechMemoryStream **Stream);
  18718 
  18719     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
  18720         ISpeechRecoResult *This,
  18721         LONG StartElement,
  18722         LONG Elements,
  18723         SpeechVoiceSpeakFlags Flags,
  18724         LONG *StreamNumber);
  18725 
  18726     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
  18727         ISpeechRecoResult *This,
  18728         VARIANT *ResultBlock);
  18729 
  18730     HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
  18731         ISpeechRecoResult *This,
  18732         SpeechDiscardType ValueTypes);
  18733 
  18734     END_INTERFACE
  18735 } ISpeechRecoResultVtbl;
  18736 
  18737 interface ISpeechRecoResult {
  18738     CONST_VTBL ISpeechRecoResultVtbl* lpVtbl;
  18739 };
  18740 
  18741 #ifdef COBJMACROS
  18742 #ifndef WIDL_C_INLINE_WRAPPERS
  18743 /*** IUnknown methods ***/
  18744 #define ISpeechRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  18745 #define ISpeechRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
  18746 #define ISpeechRecoResult_Release(This) (This)->lpVtbl->Release(This)
  18747 /*** IDispatch methods ***/
  18748 #define ISpeechRecoResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  18749 #define ISpeechRecoResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  18750 #define ISpeechRecoResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  18751 #define ISpeechRecoResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  18752 /*** ISpeechRecoResult methods ***/
  18753 #define ISpeechRecoResult_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
  18754 #define ISpeechRecoResult_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
  18755 #define ISpeechRecoResult_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
  18756 #define ISpeechRecoResult_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
  18757 #define ISpeechRecoResult_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
  18758 #define ISpeechRecoResult_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
  18759 #define ISpeechRecoResult_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
  18760 #define ISpeechRecoResult_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
  18761 #define ISpeechRecoResult_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
  18762 #define ISpeechRecoResult_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
  18763 #else
  18764 /*** IUnknown methods ***/
  18765 static inline HRESULT ISpeechRecoResult_QueryInterface(ISpeechRecoResult* This,REFIID riid,void **ppvObject) {
  18766     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  18767 }
  18768 static inline ULONG ISpeechRecoResult_AddRef(ISpeechRecoResult* This) {
  18769     return This->lpVtbl->AddRef(This);
  18770 }
  18771 static inline ULONG ISpeechRecoResult_Release(ISpeechRecoResult* This) {
  18772     return This->lpVtbl->Release(This);
  18773 }
  18774 /*** IDispatch methods ***/
  18775 static inline HRESULT ISpeechRecoResult_GetTypeInfoCount(ISpeechRecoResult* This,UINT *pctinfo) {
  18776     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  18777 }
  18778 static inline HRESULT ISpeechRecoResult_GetTypeInfo(ISpeechRecoResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  18779     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  18780 }
  18781 static inline HRESULT ISpeechRecoResult_GetIDsOfNames(ISpeechRecoResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  18782     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  18783 }
  18784 static inline HRESULT ISpeechRecoResult_Invoke(ISpeechRecoResult* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  18785     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  18786 }
  18787 /*** ISpeechRecoResult methods ***/
  18788 static inline HRESULT ISpeechRecoResult_get_RecoContext(ISpeechRecoResult* This,ISpeechRecoContext **RecoContext) {
  18789     return This->lpVtbl->get_RecoContext(This,RecoContext);
  18790 }
  18791 static inline HRESULT ISpeechRecoResult_get_Times(ISpeechRecoResult* This,ISpeechRecoResultTimes **Times) {
  18792     return This->lpVtbl->get_Times(This,Times);
  18793 }
  18794 static inline HRESULT ISpeechRecoResult_putref_AudioFormat(ISpeechRecoResult* This,ISpeechAudioFormat *Format) {
  18795     return This->lpVtbl->putref_AudioFormat(This,Format);
  18796 }
  18797 static inline HRESULT ISpeechRecoResult_get_AudioFormat(ISpeechRecoResult* This,ISpeechAudioFormat **Format) {
  18798     return This->lpVtbl->get_AudioFormat(This,Format);
  18799 }
  18800 static inline HRESULT ISpeechRecoResult_get_PhraseInfo(ISpeechRecoResult* This,ISpeechPhraseInfo **PhraseInfo) {
  18801     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
  18802 }
  18803 static inline HRESULT ISpeechRecoResult_Alternates(ISpeechRecoResult* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
  18804     return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
  18805 }
  18806 static inline HRESULT ISpeechRecoResult_Audio(ISpeechRecoResult* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
  18807     return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
  18808 }
  18809 static inline HRESULT ISpeechRecoResult_SpeakAudio(ISpeechRecoResult* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
  18810     return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
  18811 }
  18812 static inline HRESULT ISpeechRecoResult_SaveToMemory(ISpeechRecoResult* This,VARIANT *ResultBlock) {
  18813     return This->lpVtbl->SaveToMemory(This,ResultBlock);
  18814 }
  18815 static inline HRESULT ISpeechRecoResult_DiscardResultInfo(ISpeechRecoResult* This,SpeechDiscardType ValueTypes) {
  18816     return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
  18817 }
  18818 #endif
  18819 #endif
  18820 
  18821 #endif
  18822 
  18823 
  18824 #endif  /* __ISpeechRecoResult_INTERFACE_DEFINED__ */
  18825 
  18826 /*****************************************************************************
  18827  * ISpeechXMLRecoResult interface
  18828  */
  18829 #ifndef __ISpeechXMLRecoResult_INTERFACE_DEFINED__
  18830 #define __ISpeechXMLRecoResult_INTERFACE_DEFINED__
  18831 
  18832 DEFINE_GUID(IID_ISpeechXMLRecoResult, 0xaaec54af, 0x8f85, 0x4924, 0x94,0x4d, 0xb7,0x9d,0x39,0xd7,0x2e,0x19);
  18833 #if defined(__cplusplus) && !defined(CINTERFACE)
  18834 MIDL_INTERFACE("aaec54af-8f85-4924-944d-b79d39d72e19")
  18835 ISpeechXMLRecoResult : public ISpeechRecoResult
  18836 {
  18837     virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
  18838         SPXMLRESULTOPTIONS Options,
  18839         BSTR *pResult) = 0;
  18840 
  18841     virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
  18842         LONG *LineNumber,
  18843         BSTR *ScriptLine,
  18844         BSTR *Source,
  18845         BSTR *Description,
  18846         LONG *ResultCode,
  18847         VARIANT_BOOL *IsError) = 0;
  18848 
  18849 };
  18850 #ifdef __CRT_UUID_DECL
  18851 __CRT_UUID_DECL(ISpeechXMLRecoResult, 0xaaec54af, 0x8f85, 0x4924, 0x94,0x4d, 0xb7,0x9d,0x39,0xd7,0x2e,0x19)
  18852 #endif
  18853 #else
  18854 typedef struct ISpeechXMLRecoResultVtbl {
  18855     BEGIN_INTERFACE
  18856 
  18857     /*** IUnknown methods ***/
  18858     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  18859         ISpeechXMLRecoResult *This,
  18860         REFIID riid,
  18861         void **ppvObject);
  18862 
  18863     ULONG (STDMETHODCALLTYPE *AddRef)(
  18864         ISpeechXMLRecoResult *This);
  18865 
  18866     ULONG (STDMETHODCALLTYPE *Release)(
  18867         ISpeechXMLRecoResult *This);
  18868 
  18869     /*** IDispatch methods ***/
  18870     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  18871         ISpeechXMLRecoResult *This,
  18872         UINT *pctinfo);
  18873 
  18874     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  18875         ISpeechXMLRecoResult *This,
  18876         UINT iTInfo,
  18877         LCID lcid,
  18878         ITypeInfo **ppTInfo);
  18879 
  18880     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  18881         ISpeechXMLRecoResult *This,
  18882         REFIID riid,
  18883         LPOLESTR *rgszNames,
  18884         UINT cNames,
  18885         LCID lcid,
  18886         DISPID *rgDispId);
  18887 
  18888     HRESULT (STDMETHODCALLTYPE *Invoke)(
  18889         ISpeechXMLRecoResult *This,
  18890         DISPID dispIdMember,
  18891         REFIID riid,
  18892         LCID lcid,
  18893         WORD wFlags,
  18894         DISPPARAMS *pDispParams,
  18895         VARIANT *pVarResult,
  18896         EXCEPINFO *pExcepInfo,
  18897         UINT *puArgErr);
  18898 
  18899     /*** ISpeechRecoResult methods ***/
  18900     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
  18901         ISpeechXMLRecoResult *This,
  18902         ISpeechRecoContext **RecoContext);
  18903 
  18904     HRESULT (STDMETHODCALLTYPE *get_Times)(
  18905         ISpeechXMLRecoResult *This,
  18906         ISpeechRecoResultTimes **Times);
  18907 
  18908     HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
  18909         ISpeechXMLRecoResult *This,
  18910         ISpeechAudioFormat *Format);
  18911 
  18912     HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
  18913         ISpeechXMLRecoResult *This,
  18914         ISpeechAudioFormat **Format);
  18915 
  18916     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
  18917         ISpeechXMLRecoResult *This,
  18918         ISpeechPhraseInfo **PhraseInfo);
  18919 
  18920     HRESULT (STDMETHODCALLTYPE *Alternates)(
  18921         ISpeechXMLRecoResult *This,
  18922         LONG RequestCount,
  18923         LONG StartElement,
  18924         LONG Elements,
  18925         ISpeechPhraseAlternates **Alternates);
  18926 
  18927     HRESULT (STDMETHODCALLTYPE *Audio)(
  18928         ISpeechXMLRecoResult *This,
  18929         LONG StartElement,
  18930         LONG Elements,
  18931         ISpeechMemoryStream **Stream);
  18932 
  18933     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
  18934         ISpeechXMLRecoResult *This,
  18935         LONG StartElement,
  18936         LONG Elements,
  18937         SpeechVoiceSpeakFlags Flags,
  18938         LONG *StreamNumber);
  18939 
  18940     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
  18941         ISpeechXMLRecoResult *This,
  18942         VARIANT *ResultBlock);
  18943 
  18944     HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
  18945         ISpeechXMLRecoResult *This,
  18946         SpeechDiscardType ValueTypes);
  18947 
  18948     /*** ISpeechXMLRecoResult methods ***/
  18949     HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
  18950         ISpeechXMLRecoResult *This,
  18951         SPXMLRESULTOPTIONS Options,
  18952         BSTR *pResult);
  18953 
  18954     HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
  18955         ISpeechXMLRecoResult *This,
  18956         LONG *LineNumber,
  18957         BSTR *ScriptLine,
  18958         BSTR *Source,
  18959         BSTR *Description,
  18960         LONG *ResultCode,
  18961         VARIANT_BOOL *IsError);
  18962 
  18963     END_INTERFACE
  18964 } ISpeechXMLRecoResultVtbl;
  18965 
  18966 interface ISpeechXMLRecoResult {
  18967     CONST_VTBL ISpeechXMLRecoResultVtbl* lpVtbl;
  18968 };
  18969 
  18970 #ifdef COBJMACROS
  18971 #ifndef WIDL_C_INLINE_WRAPPERS
  18972 /*** IUnknown methods ***/
  18973 #define ISpeechXMLRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  18974 #define ISpeechXMLRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
  18975 #define ISpeechXMLRecoResult_Release(This) (This)->lpVtbl->Release(This)
  18976 /*** IDispatch methods ***/
  18977 #define ISpeechXMLRecoResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  18978 #define ISpeechXMLRecoResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  18979 #define ISpeechXMLRecoResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  18980 #define ISpeechXMLRecoResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  18981 /*** ISpeechRecoResult methods ***/
  18982 #define ISpeechXMLRecoResult_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
  18983 #define ISpeechXMLRecoResult_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
  18984 #define ISpeechXMLRecoResult_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
  18985 #define ISpeechXMLRecoResult_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
  18986 #define ISpeechXMLRecoResult_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
  18987 #define ISpeechXMLRecoResult_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
  18988 #define ISpeechXMLRecoResult_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
  18989 #define ISpeechXMLRecoResult_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
  18990 #define ISpeechXMLRecoResult_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
  18991 #define ISpeechXMLRecoResult_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
  18992 /*** ISpeechXMLRecoResult methods ***/
  18993 #define ISpeechXMLRecoResult_GetXMLResult(This,Options,pResult) (This)->lpVtbl->GetXMLResult(This,Options,pResult)
  18994 #define ISpeechXMLRecoResult_GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError) (This)->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError)
  18995 #else
  18996 /*** IUnknown methods ***/
  18997 static inline HRESULT ISpeechXMLRecoResult_QueryInterface(ISpeechXMLRecoResult* This,REFIID riid,void **ppvObject) {
  18998     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  18999 }
  19000 static inline ULONG ISpeechXMLRecoResult_AddRef(ISpeechXMLRecoResult* This) {
  19001     return This->lpVtbl->AddRef(This);
  19002 }
  19003 static inline ULONG ISpeechXMLRecoResult_Release(ISpeechXMLRecoResult* This) {
  19004     return This->lpVtbl->Release(This);
  19005 }
  19006 /*** IDispatch methods ***/
  19007 static inline HRESULT ISpeechXMLRecoResult_GetTypeInfoCount(ISpeechXMLRecoResult* This,UINT *pctinfo) {
  19008     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  19009 }
  19010 static inline HRESULT ISpeechXMLRecoResult_GetTypeInfo(ISpeechXMLRecoResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  19011     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  19012 }
  19013 static inline HRESULT ISpeechXMLRecoResult_GetIDsOfNames(ISpeechXMLRecoResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  19014     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  19015 }
  19016 static inline HRESULT ISpeechXMLRecoResult_Invoke(ISpeechXMLRecoResult* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  19017     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  19018 }
  19019 /*** ISpeechRecoResult methods ***/
  19020 static inline HRESULT ISpeechXMLRecoResult_get_RecoContext(ISpeechXMLRecoResult* This,ISpeechRecoContext **RecoContext) {
  19021     return This->lpVtbl->get_RecoContext(This,RecoContext);
  19022 }
  19023 static inline HRESULT ISpeechXMLRecoResult_get_Times(ISpeechXMLRecoResult* This,ISpeechRecoResultTimes **Times) {
  19024     return This->lpVtbl->get_Times(This,Times);
  19025 }
  19026 static inline HRESULT ISpeechXMLRecoResult_putref_AudioFormat(ISpeechXMLRecoResult* This,ISpeechAudioFormat *Format) {
  19027     return This->lpVtbl->putref_AudioFormat(This,Format);
  19028 }
  19029 static inline HRESULT ISpeechXMLRecoResult_get_AudioFormat(ISpeechXMLRecoResult* This,ISpeechAudioFormat **Format) {
  19030     return This->lpVtbl->get_AudioFormat(This,Format);
  19031 }
  19032 static inline HRESULT ISpeechXMLRecoResult_get_PhraseInfo(ISpeechXMLRecoResult* This,ISpeechPhraseInfo **PhraseInfo) {
  19033     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
  19034 }
  19035 static inline HRESULT ISpeechXMLRecoResult_Alternates(ISpeechXMLRecoResult* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
  19036     return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
  19037 }
  19038 static inline HRESULT ISpeechXMLRecoResult_Audio(ISpeechXMLRecoResult* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
  19039     return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
  19040 }
  19041 static inline HRESULT ISpeechXMLRecoResult_SpeakAudio(ISpeechXMLRecoResult* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
  19042     return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
  19043 }
  19044 static inline HRESULT ISpeechXMLRecoResult_SaveToMemory(ISpeechXMLRecoResult* This,VARIANT *ResultBlock) {
  19045     return This->lpVtbl->SaveToMemory(This,ResultBlock);
  19046 }
  19047 static inline HRESULT ISpeechXMLRecoResult_DiscardResultInfo(ISpeechXMLRecoResult* This,SpeechDiscardType ValueTypes) {
  19048     return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
  19049 }
  19050 /*** ISpeechXMLRecoResult methods ***/
  19051 static inline HRESULT ISpeechXMLRecoResult_GetXMLResult(ISpeechXMLRecoResult* This,SPXMLRESULTOPTIONS Options,BSTR *pResult) {
  19052     return This->lpVtbl->GetXMLResult(This,Options,pResult);
  19053 }
  19054 static inline HRESULT ISpeechXMLRecoResult_GetXMLErrorInfo(ISpeechXMLRecoResult* This,LONG *LineNumber,BSTR *ScriptLine,BSTR *Source,BSTR *Description,LONG *ResultCode,VARIANT_BOOL *IsError) {
  19055     return This->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError);
  19056 }
  19057 #endif
  19058 #endif
  19059 
  19060 #endif
  19061 
  19062 
  19063 #endif  /* __ISpeechXMLRecoResult_INTERFACE_DEFINED__ */
  19064 
  19065 /*****************************************************************************
  19066  * ISpeechRecoResult2 interface
  19067  */
  19068 #ifndef __ISpeechRecoResult2_INTERFACE_DEFINED__
  19069 #define __ISpeechRecoResult2_INTERFACE_DEFINED__
  19070 
  19071 DEFINE_GUID(IID_ISpeechRecoResult2, 0x8e0a246d, 0xd3c8, 0x45de, 0x86,0x57, 0x04,0x29,0x0c,0x45,0x8c,0x3c);
  19072 #if defined(__cplusplus) && !defined(CINTERFACE)
  19073 MIDL_INTERFACE("8e0a246d-d3c8-45de-8657-04290c458c3c")
  19074 ISpeechRecoResult2 : public ISpeechRecoResult
  19075 {
  19076     virtual HRESULT STDMETHODCALLTYPE SetTextFeedback(
  19077         BSTR Feedback,
  19078         VARIANT_BOOL WasSuccessful) = 0;
  19079 
  19080 };
  19081 #ifdef __CRT_UUID_DECL
  19082 __CRT_UUID_DECL(ISpeechRecoResult2, 0x8e0a246d, 0xd3c8, 0x45de, 0x86,0x57, 0x04,0x29,0x0c,0x45,0x8c,0x3c)
  19083 #endif
  19084 #else
  19085 typedef struct ISpeechRecoResult2Vtbl {
  19086     BEGIN_INTERFACE
  19087 
  19088     /*** IUnknown methods ***/
  19089     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  19090         ISpeechRecoResult2 *This,
  19091         REFIID riid,
  19092         void **ppvObject);
  19093 
  19094     ULONG (STDMETHODCALLTYPE *AddRef)(
  19095         ISpeechRecoResult2 *This);
  19096 
  19097     ULONG (STDMETHODCALLTYPE *Release)(
  19098         ISpeechRecoResult2 *This);
  19099 
  19100     /*** IDispatch methods ***/
  19101     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  19102         ISpeechRecoResult2 *This,
  19103         UINT *pctinfo);
  19104 
  19105     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  19106         ISpeechRecoResult2 *This,
  19107         UINT iTInfo,
  19108         LCID lcid,
  19109         ITypeInfo **ppTInfo);
  19110 
  19111     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  19112         ISpeechRecoResult2 *This,
  19113         REFIID riid,
  19114         LPOLESTR *rgszNames,
  19115         UINT cNames,
  19116         LCID lcid,
  19117         DISPID *rgDispId);
  19118 
  19119     HRESULT (STDMETHODCALLTYPE *Invoke)(
  19120         ISpeechRecoResult2 *This,
  19121         DISPID dispIdMember,
  19122         REFIID riid,
  19123         LCID lcid,
  19124         WORD wFlags,
  19125         DISPPARAMS *pDispParams,
  19126         VARIANT *pVarResult,
  19127         EXCEPINFO *pExcepInfo,
  19128         UINT *puArgErr);
  19129 
  19130     /*** ISpeechRecoResult methods ***/
  19131     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
  19132         ISpeechRecoResult2 *This,
  19133         ISpeechRecoContext **RecoContext);
  19134 
  19135     HRESULT (STDMETHODCALLTYPE *get_Times)(
  19136         ISpeechRecoResult2 *This,
  19137         ISpeechRecoResultTimes **Times);
  19138 
  19139     HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
  19140         ISpeechRecoResult2 *This,
  19141         ISpeechAudioFormat *Format);
  19142 
  19143     HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
  19144         ISpeechRecoResult2 *This,
  19145         ISpeechAudioFormat **Format);
  19146 
  19147     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
  19148         ISpeechRecoResult2 *This,
  19149         ISpeechPhraseInfo **PhraseInfo);
  19150 
  19151     HRESULT (STDMETHODCALLTYPE *Alternates)(
  19152         ISpeechRecoResult2 *This,
  19153         LONG RequestCount,
  19154         LONG StartElement,
  19155         LONG Elements,
  19156         ISpeechPhraseAlternates **Alternates);
  19157 
  19158     HRESULT (STDMETHODCALLTYPE *Audio)(
  19159         ISpeechRecoResult2 *This,
  19160         LONG StartElement,
  19161         LONG Elements,
  19162         ISpeechMemoryStream **Stream);
  19163 
  19164     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
  19165         ISpeechRecoResult2 *This,
  19166         LONG StartElement,
  19167         LONG Elements,
  19168         SpeechVoiceSpeakFlags Flags,
  19169         LONG *StreamNumber);
  19170 
  19171     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
  19172         ISpeechRecoResult2 *This,
  19173         VARIANT *ResultBlock);
  19174 
  19175     HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
  19176         ISpeechRecoResult2 *This,
  19177         SpeechDiscardType ValueTypes);
  19178 
  19179     /*** ISpeechRecoResult2 methods ***/
  19180     HRESULT (STDMETHODCALLTYPE *SetTextFeedback)(
  19181         ISpeechRecoResult2 *This,
  19182         BSTR Feedback,
  19183         VARIANT_BOOL WasSuccessful);
  19184 
  19185     END_INTERFACE
  19186 } ISpeechRecoResult2Vtbl;
  19187 
  19188 interface ISpeechRecoResult2 {
  19189     CONST_VTBL ISpeechRecoResult2Vtbl* lpVtbl;
  19190 };
  19191 
  19192 #ifdef COBJMACROS
  19193 #ifndef WIDL_C_INLINE_WRAPPERS
  19194 /*** IUnknown methods ***/
  19195 #define ISpeechRecoResult2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  19196 #define ISpeechRecoResult2_AddRef(This) (This)->lpVtbl->AddRef(This)
  19197 #define ISpeechRecoResult2_Release(This) (This)->lpVtbl->Release(This)
  19198 /*** IDispatch methods ***/
  19199 #define ISpeechRecoResult2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  19200 #define ISpeechRecoResult2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  19201 #define ISpeechRecoResult2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  19202 #define ISpeechRecoResult2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  19203 /*** ISpeechRecoResult methods ***/
  19204 #define ISpeechRecoResult2_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
  19205 #define ISpeechRecoResult2_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
  19206 #define ISpeechRecoResult2_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
  19207 #define ISpeechRecoResult2_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
  19208 #define ISpeechRecoResult2_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
  19209 #define ISpeechRecoResult2_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
  19210 #define ISpeechRecoResult2_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
  19211 #define ISpeechRecoResult2_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
  19212 #define ISpeechRecoResult2_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
  19213 #define ISpeechRecoResult2_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
  19214 /*** ISpeechRecoResult2 methods ***/
  19215 #define ISpeechRecoResult2_SetTextFeedback(This,Feedback,WasSuccessful) (This)->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful)
  19216 #else
  19217 /*** IUnknown methods ***/
  19218 static inline HRESULT ISpeechRecoResult2_QueryInterface(ISpeechRecoResult2* This,REFIID riid,void **ppvObject) {
  19219     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  19220 }
  19221 static inline ULONG ISpeechRecoResult2_AddRef(ISpeechRecoResult2* This) {
  19222     return This->lpVtbl->AddRef(This);
  19223 }
  19224 static inline ULONG ISpeechRecoResult2_Release(ISpeechRecoResult2* This) {
  19225     return This->lpVtbl->Release(This);
  19226 }
  19227 /*** IDispatch methods ***/
  19228 static inline HRESULT ISpeechRecoResult2_GetTypeInfoCount(ISpeechRecoResult2* This,UINT *pctinfo) {
  19229     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  19230 }
  19231 static inline HRESULT ISpeechRecoResult2_GetTypeInfo(ISpeechRecoResult2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  19232     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  19233 }
  19234 static inline HRESULT ISpeechRecoResult2_GetIDsOfNames(ISpeechRecoResult2* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  19235     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  19236 }
  19237 static inline HRESULT ISpeechRecoResult2_Invoke(ISpeechRecoResult2* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  19238     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  19239 }
  19240 /*** ISpeechRecoResult methods ***/
  19241 static inline HRESULT ISpeechRecoResult2_get_RecoContext(ISpeechRecoResult2* This,ISpeechRecoContext **RecoContext) {
  19242     return This->lpVtbl->get_RecoContext(This,RecoContext);
  19243 }
  19244 static inline HRESULT ISpeechRecoResult2_get_Times(ISpeechRecoResult2* This,ISpeechRecoResultTimes **Times) {
  19245     return This->lpVtbl->get_Times(This,Times);
  19246 }
  19247 static inline HRESULT ISpeechRecoResult2_putref_AudioFormat(ISpeechRecoResult2* This,ISpeechAudioFormat *Format) {
  19248     return This->lpVtbl->putref_AudioFormat(This,Format);
  19249 }
  19250 static inline HRESULT ISpeechRecoResult2_get_AudioFormat(ISpeechRecoResult2* This,ISpeechAudioFormat **Format) {
  19251     return This->lpVtbl->get_AudioFormat(This,Format);
  19252 }
  19253 static inline HRESULT ISpeechRecoResult2_get_PhraseInfo(ISpeechRecoResult2* This,ISpeechPhraseInfo **PhraseInfo) {
  19254     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
  19255 }
  19256 static inline HRESULT ISpeechRecoResult2_Alternates(ISpeechRecoResult2* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
  19257     return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
  19258 }
  19259 static inline HRESULT ISpeechRecoResult2_Audio(ISpeechRecoResult2* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
  19260     return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
  19261 }
  19262 static inline HRESULT ISpeechRecoResult2_SpeakAudio(ISpeechRecoResult2* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
  19263     return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
  19264 }
  19265 static inline HRESULT ISpeechRecoResult2_SaveToMemory(ISpeechRecoResult2* This,VARIANT *ResultBlock) {
  19266     return This->lpVtbl->SaveToMemory(This,ResultBlock);
  19267 }
  19268 static inline HRESULT ISpeechRecoResult2_DiscardResultInfo(ISpeechRecoResult2* This,SpeechDiscardType ValueTypes) {
  19269     return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
  19270 }
  19271 /*** ISpeechRecoResult2 methods ***/
  19272 static inline HRESULT ISpeechRecoResult2_SetTextFeedback(ISpeechRecoResult2* This,BSTR Feedback,VARIANT_BOOL WasSuccessful) {
  19273     return This->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful);
  19274 }
  19275 #endif
  19276 #endif
  19277 
  19278 #endif
  19279 
  19280 
  19281 #endif  /* __ISpeechRecoResult2_INTERFACE_DEFINED__ */
  19282 
  19283 /*****************************************************************************
  19284  * ISpeechRecoResultDispatch interface
  19285  */
  19286 #ifndef __ISpeechRecoResultDispatch_INTERFACE_DEFINED__
  19287 #define __ISpeechRecoResultDispatch_INTERFACE_DEFINED__
  19288 
  19289 DEFINE_GUID(IID_ISpeechRecoResultDispatch, 0x6d60eb64, 0xaced, 0x40a6, 0xbb,0xf3, 0x4e,0x55,0x7f,0x71,0xde,0xe2);
  19290 #if defined(__cplusplus) && !defined(CINTERFACE)
  19291 MIDL_INTERFACE("6d60eb64-aced-40a6-bbf3-4e557f71dee2")
  19292 ISpeechRecoResultDispatch : public IDispatch
  19293 {
  19294     virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
  19295         ISpeechRecoContext **RecoContext) = 0;
  19296 
  19297     virtual HRESULT STDMETHODCALLTYPE get_Times(
  19298         ISpeechRecoResultTimes **Times) = 0;
  19299 
  19300     virtual HRESULT STDMETHODCALLTYPE putref_AudioFormat(
  19301         ISpeechAudioFormat *Format) = 0;
  19302 
  19303     virtual HRESULT STDMETHODCALLTYPE get_AudioFormat(
  19304         ISpeechAudioFormat **Format) = 0;
  19305 
  19306     virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
  19307         ISpeechPhraseInfo **PhraseInfo) = 0;
  19308 
  19309     virtual HRESULT STDMETHODCALLTYPE Alternates(
  19310         LONG RequestCount,
  19311         LONG StartElement,
  19312         LONG Elements,
  19313         ISpeechPhraseAlternates **Alternates) = 0;
  19314 
  19315     virtual HRESULT STDMETHODCALLTYPE Audio(
  19316         LONG StartElement,
  19317         LONG Elements,
  19318         ISpeechMemoryStream **Stream) = 0;
  19319 
  19320     virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
  19321         LONG StartElement,
  19322         LONG Elements,
  19323         SpeechVoiceSpeakFlags Flags,
  19324         LONG *StreamNumber) = 0;
  19325 
  19326     virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
  19327         VARIANT *ResultBlock) = 0;
  19328 
  19329     virtual HRESULT STDMETHODCALLTYPE DiscardResultInfo(
  19330         SpeechDiscardType ValueTypes) = 0;
  19331 
  19332     virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
  19333         SPXMLRESULTOPTIONS Options,
  19334         BSTR *pResult) = 0;
  19335 
  19336     virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
  19337         LONG *LineNumber,
  19338         BSTR *ScriptLine,
  19339         BSTR *Source,
  19340         BSTR *Description,
  19341         HRESULT *ResultCode,
  19342         VARIANT_BOOL *IsError) = 0;
  19343 
  19344     virtual HRESULT STDMETHODCALLTYPE SetTextFeedback(
  19345         BSTR Feedback,
  19346         VARIANT_BOOL WasSuccessful) = 0;
  19347 
  19348 };
  19349 #ifdef __CRT_UUID_DECL
  19350 __CRT_UUID_DECL(ISpeechRecoResultDispatch, 0x6d60eb64, 0xaced, 0x40a6, 0xbb,0xf3, 0x4e,0x55,0x7f,0x71,0xde,0xe2)
  19351 #endif
  19352 #else
  19353 typedef struct ISpeechRecoResultDispatchVtbl {
  19354     BEGIN_INTERFACE
  19355 
  19356     /*** IUnknown methods ***/
  19357     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  19358         ISpeechRecoResultDispatch *This,
  19359         REFIID riid,
  19360         void **ppvObject);
  19361 
  19362     ULONG (STDMETHODCALLTYPE *AddRef)(
  19363         ISpeechRecoResultDispatch *This);
  19364 
  19365     ULONG (STDMETHODCALLTYPE *Release)(
  19366         ISpeechRecoResultDispatch *This);
  19367 
  19368     /*** IDispatch methods ***/
  19369     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  19370         ISpeechRecoResultDispatch *This,
  19371         UINT *pctinfo);
  19372 
  19373     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  19374         ISpeechRecoResultDispatch *This,
  19375         UINT iTInfo,
  19376         LCID lcid,
  19377         ITypeInfo **ppTInfo);
  19378 
  19379     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  19380         ISpeechRecoResultDispatch *This,
  19381         REFIID riid,
  19382         LPOLESTR *rgszNames,
  19383         UINT cNames,
  19384         LCID lcid,
  19385         DISPID *rgDispId);
  19386 
  19387     HRESULT (STDMETHODCALLTYPE *Invoke)(
  19388         ISpeechRecoResultDispatch *This,
  19389         DISPID dispIdMember,
  19390         REFIID riid,
  19391         LCID lcid,
  19392         WORD wFlags,
  19393         DISPPARAMS *pDispParams,
  19394         VARIANT *pVarResult,
  19395         EXCEPINFO *pExcepInfo,
  19396         UINT *puArgErr);
  19397 
  19398     /*** ISpeechRecoResultDispatch methods ***/
  19399     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
  19400         ISpeechRecoResultDispatch *This,
  19401         ISpeechRecoContext **RecoContext);
  19402 
  19403     HRESULT (STDMETHODCALLTYPE *get_Times)(
  19404         ISpeechRecoResultDispatch *This,
  19405         ISpeechRecoResultTimes **Times);
  19406 
  19407     HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
  19408         ISpeechRecoResultDispatch *This,
  19409         ISpeechAudioFormat *Format);
  19410 
  19411     HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
  19412         ISpeechRecoResultDispatch *This,
  19413         ISpeechAudioFormat **Format);
  19414 
  19415     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
  19416         ISpeechRecoResultDispatch *This,
  19417         ISpeechPhraseInfo **PhraseInfo);
  19418 
  19419     HRESULT (STDMETHODCALLTYPE *Alternates)(
  19420         ISpeechRecoResultDispatch *This,
  19421         LONG RequestCount,
  19422         LONG StartElement,
  19423         LONG Elements,
  19424         ISpeechPhraseAlternates **Alternates);
  19425 
  19426     HRESULT (STDMETHODCALLTYPE *Audio)(
  19427         ISpeechRecoResultDispatch *This,
  19428         LONG StartElement,
  19429         LONG Elements,
  19430         ISpeechMemoryStream **Stream);
  19431 
  19432     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
  19433         ISpeechRecoResultDispatch *This,
  19434         LONG StartElement,
  19435         LONG Elements,
  19436         SpeechVoiceSpeakFlags Flags,
  19437         LONG *StreamNumber);
  19438 
  19439     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
  19440         ISpeechRecoResultDispatch *This,
  19441         VARIANT *ResultBlock);
  19442 
  19443     HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
  19444         ISpeechRecoResultDispatch *This,
  19445         SpeechDiscardType ValueTypes);
  19446 
  19447     HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
  19448         ISpeechRecoResultDispatch *This,
  19449         SPXMLRESULTOPTIONS Options,
  19450         BSTR *pResult);
  19451 
  19452     HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
  19453         ISpeechRecoResultDispatch *This,
  19454         LONG *LineNumber,
  19455         BSTR *ScriptLine,
  19456         BSTR *Source,
  19457         BSTR *Description,
  19458         HRESULT *ResultCode,
  19459         VARIANT_BOOL *IsError);
  19460 
  19461     HRESULT (STDMETHODCALLTYPE *SetTextFeedback)(
  19462         ISpeechRecoResultDispatch *This,
  19463         BSTR Feedback,
  19464         VARIANT_BOOL WasSuccessful);
  19465 
  19466     END_INTERFACE
  19467 } ISpeechRecoResultDispatchVtbl;
  19468 
  19469 interface ISpeechRecoResultDispatch {
  19470     CONST_VTBL ISpeechRecoResultDispatchVtbl* lpVtbl;
  19471 };
  19472 
  19473 #ifdef COBJMACROS
  19474 #ifndef WIDL_C_INLINE_WRAPPERS
  19475 /*** IUnknown methods ***/
  19476 #define ISpeechRecoResultDispatch_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  19477 #define ISpeechRecoResultDispatch_AddRef(This) (This)->lpVtbl->AddRef(This)
  19478 #define ISpeechRecoResultDispatch_Release(This) (This)->lpVtbl->Release(This)
  19479 /*** IDispatch methods ***/
  19480 #define ISpeechRecoResultDispatch_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  19481 #define ISpeechRecoResultDispatch_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  19482 #define ISpeechRecoResultDispatch_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  19483 #define ISpeechRecoResultDispatch_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  19484 /*** ISpeechRecoResultDispatch methods ***/
  19485 #define ISpeechRecoResultDispatch_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
  19486 #define ISpeechRecoResultDispatch_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
  19487 #define ISpeechRecoResultDispatch_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
  19488 #define ISpeechRecoResultDispatch_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
  19489 #define ISpeechRecoResultDispatch_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
  19490 #define ISpeechRecoResultDispatch_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
  19491 #define ISpeechRecoResultDispatch_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
  19492 #define ISpeechRecoResultDispatch_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
  19493 #define ISpeechRecoResultDispatch_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
  19494 #define ISpeechRecoResultDispatch_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
  19495 #define ISpeechRecoResultDispatch_GetXMLResult(This,Options,pResult) (This)->lpVtbl->GetXMLResult(This,Options,pResult)
  19496 #define ISpeechRecoResultDispatch_GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError) (This)->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError)
  19497 #define ISpeechRecoResultDispatch_SetTextFeedback(This,Feedback,WasSuccessful) (This)->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful)
  19498 #else
  19499 /*** IUnknown methods ***/
  19500 static inline HRESULT ISpeechRecoResultDispatch_QueryInterface(ISpeechRecoResultDispatch* This,REFIID riid,void **ppvObject) {
  19501     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  19502 }
  19503 static inline ULONG ISpeechRecoResultDispatch_AddRef(ISpeechRecoResultDispatch* This) {
  19504     return This->lpVtbl->AddRef(This);
  19505 }
  19506 static inline ULONG ISpeechRecoResultDispatch_Release(ISpeechRecoResultDispatch* This) {
  19507     return This->lpVtbl->Release(This);
  19508 }
  19509 /*** IDispatch methods ***/
  19510 static inline HRESULT ISpeechRecoResultDispatch_GetTypeInfoCount(ISpeechRecoResultDispatch* This,UINT *pctinfo) {
  19511     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  19512 }
  19513 static inline HRESULT ISpeechRecoResultDispatch_GetTypeInfo(ISpeechRecoResultDispatch* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  19514     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  19515 }
  19516 static inline HRESULT ISpeechRecoResultDispatch_GetIDsOfNames(ISpeechRecoResultDispatch* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  19517     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  19518 }
  19519 static inline HRESULT ISpeechRecoResultDispatch_Invoke(ISpeechRecoResultDispatch* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  19520     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  19521 }
  19522 /*** ISpeechRecoResultDispatch methods ***/
  19523 static inline HRESULT ISpeechRecoResultDispatch_get_RecoContext(ISpeechRecoResultDispatch* This,ISpeechRecoContext **RecoContext) {
  19524     return This->lpVtbl->get_RecoContext(This,RecoContext);
  19525 }
  19526 static inline HRESULT ISpeechRecoResultDispatch_get_Times(ISpeechRecoResultDispatch* This,ISpeechRecoResultTimes **Times) {
  19527     return This->lpVtbl->get_Times(This,Times);
  19528 }
  19529 static inline HRESULT ISpeechRecoResultDispatch_putref_AudioFormat(ISpeechRecoResultDispatch* This,ISpeechAudioFormat *Format) {
  19530     return This->lpVtbl->putref_AudioFormat(This,Format);
  19531 }
  19532 static inline HRESULT ISpeechRecoResultDispatch_get_AudioFormat(ISpeechRecoResultDispatch* This,ISpeechAudioFormat **Format) {
  19533     return This->lpVtbl->get_AudioFormat(This,Format);
  19534 }
  19535 static inline HRESULT ISpeechRecoResultDispatch_get_PhraseInfo(ISpeechRecoResultDispatch* This,ISpeechPhraseInfo **PhraseInfo) {
  19536     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
  19537 }
  19538 static inline HRESULT ISpeechRecoResultDispatch_Alternates(ISpeechRecoResultDispatch* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
  19539     return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
  19540 }
  19541 static inline HRESULT ISpeechRecoResultDispatch_Audio(ISpeechRecoResultDispatch* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
  19542     return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
  19543 }
  19544 static inline HRESULT ISpeechRecoResultDispatch_SpeakAudio(ISpeechRecoResultDispatch* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
  19545     return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
  19546 }
  19547 static inline HRESULT ISpeechRecoResultDispatch_SaveToMemory(ISpeechRecoResultDispatch* This,VARIANT *ResultBlock) {
  19548     return This->lpVtbl->SaveToMemory(This,ResultBlock);
  19549 }
  19550 static inline HRESULT ISpeechRecoResultDispatch_DiscardResultInfo(ISpeechRecoResultDispatch* This,SpeechDiscardType ValueTypes) {
  19551     return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
  19552 }
  19553 static inline HRESULT ISpeechRecoResultDispatch_GetXMLResult(ISpeechRecoResultDispatch* This,SPXMLRESULTOPTIONS Options,BSTR *pResult) {
  19554     return This->lpVtbl->GetXMLResult(This,Options,pResult);
  19555 }
  19556 static inline HRESULT ISpeechRecoResultDispatch_GetXMLErrorInfo(ISpeechRecoResultDispatch* This,LONG *LineNumber,BSTR *ScriptLine,BSTR *Source,BSTR *Description,HRESULT *ResultCode,VARIANT_BOOL *IsError) {
  19557     return This->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError);
  19558 }
  19559 static inline HRESULT ISpeechRecoResultDispatch_SetTextFeedback(ISpeechRecoResultDispatch* This,BSTR Feedback,VARIANT_BOOL WasSuccessful) {
  19560     return This->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful);
  19561 }
  19562 #endif
  19563 #endif
  19564 
  19565 #endif
  19566 
  19567 
  19568 #endif  /* __ISpeechRecoResultDispatch_INTERFACE_DEFINED__ */
  19569 
  19570 /*****************************************************************************
  19571  * ISpeechPhraseInfoBuilder interface
  19572  */
  19573 #ifndef __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__
  19574 #define __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__
  19575 
  19576 DEFINE_GUID(IID_ISpeechPhraseInfoBuilder, 0x3b151836, 0xdf3a, 0x4e0a, 0x84,0x6c, 0xd2,0xad,0xc9,0x33,0x43,0x33);
  19577 #if defined(__cplusplus) && !defined(CINTERFACE)
  19578 MIDL_INTERFACE("3b151836-df3a-4e0a-846c-d2adc9334333")
  19579 ISpeechPhraseInfoBuilder : public IDispatch
  19580 {
  19581     virtual HRESULT STDMETHODCALLTYPE RestorePhraseFromMemory(
  19582         VARIANT *PhraseInMemory,
  19583         ISpeechPhraseInfo **PhraseInfo) = 0;
  19584 
  19585 };
  19586 #ifdef __CRT_UUID_DECL
  19587 __CRT_UUID_DECL(ISpeechPhraseInfoBuilder, 0x3b151836, 0xdf3a, 0x4e0a, 0x84,0x6c, 0xd2,0xad,0xc9,0x33,0x43,0x33)
  19588 #endif
  19589 #else
  19590 typedef struct ISpeechPhraseInfoBuilderVtbl {
  19591     BEGIN_INTERFACE
  19592 
  19593     /*** IUnknown methods ***/
  19594     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  19595         ISpeechPhraseInfoBuilder *This,
  19596         REFIID riid,
  19597         void **ppvObject);
  19598 
  19599     ULONG (STDMETHODCALLTYPE *AddRef)(
  19600         ISpeechPhraseInfoBuilder *This);
  19601 
  19602     ULONG (STDMETHODCALLTYPE *Release)(
  19603         ISpeechPhraseInfoBuilder *This);
  19604 
  19605     /*** IDispatch methods ***/
  19606     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  19607         ISpeechPhraseInfoBuilder *This,
  19608         UINT *pctinfo);
  19609 
  19610     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  19611         ISpeechPhraseInfoBuilder *This,
  19612         UINT iTInfo,
  19613         LCID lcid,
  19614         ITypeInfo **ppTInfo);
  19615 
  19616     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  19617         ISpeechPhraseInfoBuilder *This,
  19618         REFIID riid,
  19619         LPOLESTR *rgszNames,
  19620         UINT cNames,
  19621         LCID lcid,
  19622         DISPID *rgDispId);
  19623 
  19624     HRESULT (STDMETHODCALLTYPE *Invoke)(
  19625         ISpeechPhraseInfoBuilder *This,
  19626         DISPID dispIdMember,
  19627         REFIID riid,
  19628         LCID lcid,
  19629         WORD wFlags,
  19630         DISPPARAMS *pDispParams,
  19631         VARIANT *pVarResult,
  19632         EXCEPINFO *pExcepInfo,
  19633         UINT *puArgErr);
  19634 
  19635     /*** ISpeechPhraseInfoBuilder methods ***/
  19636     HRESULT (STDMETHODCALLTYPE *RestorePhraseFromMemory)(
  19637         ISpeechPhraseInfoBuilder *This,
  19638         VARIANT *PhraseInMemory,
  19639         ISpeechPhraseInfo **PhraseInfo);
  19640 
  19641     END_INTERFACE
  19642 } ISpeechPhraseInfoBuilderVtbl;
  19643 
  19644 interface ISpeechPhraseInfoBuilder {
  19645     CONST_VTBL ISpeechPhraseInfoBuilderVtbl* lpVtbl;
  19646 };
  19647 
  19648 #ifdef COBJMACROS
  19649 #ifndef WIDL_C_INLINE_WRAPPERS
  19650 /*** IUnknown methods ***/
  19651 #define ISpeechPhraseInfoBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  19652 #define ISpeechPhraseInfoBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
  19653 #define ISpeechPhraseInfoBuilder_Release(This) (This)->lpVtbl->Release(This)
  19654 /*** IDispatch methods ***/
  19655 #define ISpeechPhraseInfoBuilder_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  19656 #define ISpeechPhraseInfoBuilder_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  19657 #define ISpeechPhraseInfoBuilder_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  19658 #define ISpeechPhraseInfoBuilder_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  19659 /*** ISpeechPhraseInfoBuilder methods ***/
  19660 #define ISpeechPhraseInfoBuilder_RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo) (This)->lpVtbl->RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo)
  19661 #else
  19662 /*** IUnknown methods ***/
  19663 static inline HRESULT ISpeechPhraseInfoBuilder_QueryInterface(ISpeechPhraseInfoBuilder* This,REFIID riid,void **ppvObject) {
  19664     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  19665 }
  19666 static inline ULONG ISpeechPhraseInfoBuilder_AddRef(ISpeechPhraseInfoBuilder* This) {
  19667     return This->lpVtbl->AddRef(This);
  19668 }
  19669 static inline ULONG ISpeechPhraseInfoBuilder_Release(ISpeechPhraseInfoBuilder* This) {
  19670     return This->lpVtbl->Release(This);
  19671 }
  19672 /*** IDispatch methods ***/
  19673 static inline HRESULT ISpeechPhraseInfoBuilder_GetTypeInfoCount(ISpeechPhraseInfoBuilder* This,UINT *pctinfo) {
  19674     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  19675 }
  19676 static inline HRESULT ISpeechPhraseInfoBuilder_GetTypeInfo(ISpeechPhraseInfoBuilder* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  19677     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  19678 }
  19679 static inline HRESULT ISpeechPhraseInfoBuilder_GetIDsOfNames(ISpeechPhraseInfoBuilder* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  19680     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  19681 }
  19682 static inline HRESULT ISpeechPhraseInfoBuilder_Invoke(ISpeechPhraseInfoBuilder* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  19683     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  19684 }
  19685 /*** ISpeechPhraseInfoBuilder methods ***/
  19686 static inline HRESULT ISpeechPhraseInfoBuilder_RestorePhraseFromMemory(ISpeechPhraseInfoBuilder* This,VARIANT *PhraseInMemory,ISpeechPhraseInfo **PhraseInfo) {
  19687     return This->lpVtbl->RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo);
  19688 }
  19689 #endif
  19690 #endif
  19691 
  19692 #endif
  19693 
  19694 
  19695 #endif  /* __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__ */
  19696 
  19697 /*****************************************************************************
  19698  * ISpeechRecoResultTimes interface
  19699  */
  19700 #ifndef __ISpeechRecoResultTimes_INTERFACE_DEFINED__
  19701 #define __ISpeechRecoResultTimes_INTERFACE_DEFINED__
  19702 
  19703 DEFINE_GUID(IID_ISpeechRecoResultTimes, 0x62b3b8fb, 0xf6e7, 0x41be, 0xbd,0xcb, 0x05,0x6b,0x1c,0x29,0xef,0xc0);
  19704 #if defined(__cplusplus) && !defined(CINTERFACE)
  19705 MIDL_INTERFACE("62b3b8fb-f6e7-41be-bdcb-056b1c29efc0")
  19706 ISpeechRecoResultTimes : public IDispatch
  19707 {
  19708     virtual HRESULT STDMETHODCALLTYPE get_StreamTime(
  19709         VARIANT *Time) = 0;
  19710 
  19711     virtual HRESULT STDMETHODCALLTYPE get_Length(
  19712         VARIANT *Length) = 0;
  19713 
  19714     virtual HRESULT STDMETHODCALLTYPE get_TickCount(
  19715         LONG *TickCount) = 0;
  19716 
  19717     virtual HRESULT STDMETHODCALLTYPE get_OffsetFromStart(
  19718         VARIANT *OffsetFromStart) = 0;
  19719 
  19720 };
  19721 #ifdef __CRT_UUID_DECL
  19722 __CRT_UUID_DECL(ISpeechRecoResultTimes, 0x62b3b8fb, 0xf6e7, 0x41be, 0xbd,0xcb, 0x05,0x6b,0x1c,0x29,0xef,0xc0)
  19723 #endif
  19724 #else
  19725 typedef struct ISpeechRecoResultTimesVtbl {
  19726     BEGIN_INTERFACE
  19727 
  19728     /*** IUnknown methods ***/
  19729     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  19730         ISpeechRecoResultTimes *This,
  19731         REFIID riid,
  19732         void **ppvObject);
  19733 
  19734     ULONG (STDMETHODCALLTYPE *AddRef)(
  19735         ISpeechRecoResultTimes *This);
  19736 
  19737     ULONG (STDMETHODCALLTYPE *Release)(
  19738         ISpeechRecoResultTimes *This);
  19739 
  19740     /*** IDispatch methods ***/
  19741     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  19742         ISpeechRecoResultTimes *This,
  19743         UINT *pctinfo);
  19744 
  19745     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  19746         ISpeechRecoResultTimes *This,
  19747         UINT iTInfo,
  19748         LCID lcid,
  19749         ITypeInfo **ppTInfo);
  19750 
  19751     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  19752         ISpeechRecoResultTimes *This,
  19753         REFIID riid,
  19754         LPOLESTR *rgszNames,
  19755         UINT cNames,
  19756         LCID lcid,
  19757         DISPID *rgDispId);
  19758 
  19759     HRESULT (STDMETHODCALLTYPE *Invoke)(
  19760         ISpeechRecoResultTimes *This,
  19761         DISPID dispIdMember,
  19762         REFIID riid,
  19763         LCID lcid,
  19764         WORD wFlags,
  19765         DISPPARAMS *pDispParams,
  19766         VARIANT *pVarResult,
  19767         EXCEPINFO *pExcepInfo,
  19768         UINT *puArgErr);
  19769 
  19770     /*** ISpeechRecoResultTimes methods ***/
  19771     HRESULT (STDMETHODCALLTYPE *get_StreamTime)(
  19772         ISpeechRecoResultTimes *This,
  19773         VARIANT *Time);
  19774 
  19775     HRESULT (STDMETHODCALLTYPE *get_Length)(
  19776         ISpeechRecoResultTimes *This,
  19777         VARIANT *Length);
  19778 
  19779     HRESULT (STDMETHODCALLTYPE *get_TickCount)(
  19780         ISpeechRecoResultTimes *This,
  19781         LONG *TickCount);
  19782 
  19783     HRESULT (STDMETHODCALLTYPE *get_OffsetFromStart)(
  19784         ISpeechRecoResultTimes *This,
  19785         VARIANT *OffsetFromStart);
  19786 
  19787     END_INTERFACE
  19788 } ISpeechRecoResultTimesVtbl;
  19789 
  19790 interface ISpeechRecoResultTimes {
  19791     CONST_VTBL ISpeechRecoResultTimesVtbl* lpVtbl;
  19792 };
  19793 
  19794 #ifdef COBJMACROS
  19795 #ifndef WIDL_C_INLINE_WRAPPERS
  19796 /*** IUnknown methods ***/
  19797 #define ISpeechRecoResultTimes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  19798 #define ISpeechRecoResultTimes_AddRef(This) (This)->lpVtbl->AddRef(This)
  19799 #define ISpeechRecoResultTimes_Release(This) (This)->lpVtbl->Release(This)
  19800 /*** IDispatch methods ***/
  19801 #define ISpeechRecoResultTimes_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  19802 #define ISpeechRecoResultTimes_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  19803 #define ISpeechRecoResultTimes_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  19804 #define ISpeechRecoResultTimes_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  19805 /*** ISpeechRecoResultTimes methods ***/
  19806 #define ISpeechRecoResultTimes_get_StreamTime(This,Time) (This)->lpVtbl->get_StreamTime(This,Time)
  19807 #define ISpeechRecoResultTimes_get_Length(This,Length) (This)->lpVtbl->get_Length(This,Length)
  19808 #define ISpeechRecoResultTimes_get_TickCount(This,TickCount) (This)->lpVtbl->get_TickCount(This,TickCount)
  19809 #define ISpeechRecoResultTimes_get_OffsetFromStart(This,OffsetFromStart) (This)->lpVtbl->get_OffsetFromStart(This,OffsetFromStart)
  19810 #else
  19811 /*** IUnknown methods ***/
  19812 static inline HRESULT ISpeechRecoResultTimes_QueryInterface(ISpeechRecoResultTimes* This,REFIID riid,void **ppvObject) {
  19813     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  19814 }
  19815 static inline ULONG ISpeechRecoResultTimes_AddRef(ISpeechRecoResultTimes* This) {
  19816     return This->lpVtbl->AddRef(This);
  19817 }
  19818 static inline ULONG ISpeechRecoResultTimes_Release(ISpeechRecoResultTimes* This) {
  19819     return This->lpVtbl->Release(This);
  19820 }
  19821 /*** IDispatch methods ***/
  19822 static inline HRESULT ISpeechRecoResultTimes_GetTypeInfoCount(ISpeechRecoResultTimes* This,UINT *pctinfo) {
  19823     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  19824 }
  19825 static inline HRESULT ISpeechRecoResultTimes_GetTypeInfo(ISpeechRecoResultTimes* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  19826     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  19827 }
  19828 static inline HRESULT ISpeechRecoResultTimes_GetIDsOfNames(ISpeechRecoResultTimes* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  19829     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  19830 }
  19831 static inline HRESULT ISpeechRecoResultTimes_Invoke(ISpeechRecoResultTimes* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  19832     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  19833 }
  19834 /*** ISpeechRecoResultTimes methods ***/
  19835 static inline HRESULT ISpeechRecoResultTimes_get_StreamTime(ISpeechRecoResultTimes* This,VARIANT *Time) {
  19836     return This->lpVtbl->get_StreamTime(This,Time);
  19837 }
  19838 static inline HRESULT ISpeechRecoResultTimes_get_Length(ISpeechRecoResultTimes* This,VARIANT *Length) {
  19839     return This->lpVtbl->get_Length(This,Length);
  19840 }
  19841 static inline HRESULT ISpeechRecoResultTimes_get_TickCount(ISpeechRecoResultTimes* This,LONG *TickCount) {
  19842     return This->lpVtbl->get_TickCount(This,TickCount);
  19843 }
  19844 static inline HRESULT ISpeechRecoResultTimes_get_OffsetFromStart(ISpeechRecoResultTimes* This,VARIANT *OffsetFromStart) {
  19845     return This->lpVtbl->get_OffsetFromStart(This,OffsetFromStart);
  19846 }
  19847 #endif
  19848 #endif
  19849 
  19850 #endif
  19851 
  19852 
  19853 #endif  /* __ISpeechRecoResultTimes_INTERFACE_DEFINED__ */
  19854 
  19855 /*****************************************************************************
  19856  * ISpeechPhraseAlternate interface
  19857  */
  19858 #ifndef __ISpeechPhraseAlternate_INTERFACE_DEFINED__
  19859 #define __ISpeechPhraseAlternate_INTERFACE_DEFINED__
  19860 
  19861 DEFINE_GUID(IID_ISpeechPhraseAlternate, 0x27864a2a, 0x2b9f, 0x4cb8, 0x92,0xd3, 0x0d,0x27,0x22,0xfd,0x1e,0x73);
  19862 #if defined(__cplusplus) && !defined(CINTERFACE)
  19863 MIDL_INTERFACE("27864a2a-2b9f-4cb8-92d3-0d2722fd1e73")
  19864 ISpeechPhraseAlternate : public IDispatch
  19865 {
  19866     virtual HRESULT STDMETHODCALLTYPE get_RecoResult(
  19867         ISpeechRecoResult **RecoResult) = 0;
  19868 
  19869     virtual HRESULT STDMETHODCALLTYPE get_StartElementInResult(
  19870         LONG *StartElement) = 0;
  19871 
  19872     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElementsInResult(
  19873         LONG *NumberOfElements) = 0;
  19874 
  19875     virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
  19876         ISpeechPhraseInfo **PhraseInfo) = 0;
  19877 
  19878     virtual HRESULT STDMETHODCALLTYPE Commit(
  19879         ) = 0;
  19880 
  19881 };
  19882 #ifdef __CRT_UUID_DECL
  19883 __CRT_UUID_DECL(ISpeechPhraseAlternate, 0x27864a2a, 0x2b9f, 0x4cb8, 0x92,0xd3, 0x0d,0x27,0x22,0xfd,0x1e,0x73)
  19884 #endif
  19885 #else
  19886 typedef struct ISpeechPhraseAlternateVtbl {
  19887     BEGIN_INTERFACE
  19888 
  19889     /*** IUnknown methods ***/
  19890     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  19891         ISpeechPhraseAlternate *This,
  19892         REFIID riid,
  19893         void **ppvObject);
  19894 
  19895     ULONG (STDMETHODCALLTYPE *AddRef)(
  19896         ISpeechPhraseAlternate *This);
  19897 
  19898     ULONG (STDMETHODCALLTYPE *Release)(
  19899         ISpeechPhraseAlternate *This);
  19900 
  19901     /*** IDispatch methods ***/
  19902     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  19903         ISpeechPhraseAlternate *This,
  19904         UINT *pctinfo);
  19905 
  19906     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  19907         ISpeechPhraseAlternate *This,
  19908         UINT iTInfo,
  19909         LCID lcid,
  19910         ITypeInfo **ppTInfo);
  19911 
  19912     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  19913         ISpeechPhraseAlternate *This,
  19914         REFIID riid,
  19915         LPOLESTR *rgszNames,
  19916         UINT cNames,
  19917         LCID lcid,
  19918         DISPID *rgDispId);
  19919 
  19920     HRESULT (STDMETHODCALLTYPE *Invoke)(
  19921         ISpeechPhraseAlternate *This,
  19922         DISPID dispIdMember,
  19923         REFIID riid,
  19924         LCID lcid,
  19925         WORD wFlags,
  19926         DISPPARAMS *pDispParams,
  19927         VARIANT *pVarResult,
  19928         EXCEPINFO *pExcepInfo,
  19929         UINT *puArgErr);
  19930 
  19931     /*** ISpeechPhraseAlternate methods ***/
  19932     HRESULT (STDMETHODCALLTYPE *get_RecoResult)(
  19933         ISpeechPhraseAlternate *This,
  19934         ISpeechRecoResult **RecoResult);
  19935 
  19936     HRESULT (STDMETHODCALLTYPE *get_StartElementInResult)(
  19937         ISpeechPhraseAlternate *This,
  19938         LONG *StartElement);
  19939 
  19940     HRESULT (STDMETHODCALLTYPE *get_NumberOfElementsInResult)(
  19941         ISpeechPhraseAlternate *This,
  19942         LONG *NumberOfElements);
  19943 
  19944     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
  19945         ISpeechPhraseAlternate *This,
  19946         ISpeechPhraseInfo **PhraseInfo);
  19947 
  19948     HRESULT (STDMETHODCALLTYPE *Commit)(
  19949         ISpeechPhraseAlternate *This);
  19950 
  19951     END_INTERFACE
  19952 } ISpeechPhraseAlternateVtbl;
  19953 
  19954 interface ISpeechPhraseAlternate {
  19955     CONST_VTBL ISpeechPhraseAlternateVtbl* lpVtbl;
  19956 };
  19957 
  19958 #ifdef COBJMACROS
  19959 #ifndef WIDL_C_INLINE_WRAPPERS
  19960 /*** IUnknown methods ***/
  19961 #define ISpeechPhraseAlternate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  19962 #define ISpeechPhraseAlternate_AddRef(This) (This)->lpVtbl->AddRef(This)
  19963 #define ISpeechPhraseAlternate_Release(This) (This)->lpVtbl->Release(This)
  19964 /*** IDispatch methods ***/
  19965 #define ISpeechPhraseAlternate_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  19966 #define ISpeechPhraseAlternate_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  19967 #define ISpeechPhraseAlternate_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  19968 #define ISpeechPhraseAlternate_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  19969 /*** ISpeechPhraseAlternate methods ***/
  19970 #define ISpeechPhraseAlternate_get_RecoResult(This,RecoResult) (This)->lpVtbl->get_RecoResult(This,RecoResult)
  19971 #define ISpeechPhraseAlternate_get_StartElementInResult(This,StartElement) (This)->lpVtbl->get_StartElementInResult(This,StartElement)
  19972 #define ISpeechPhraseAlternate_get_NumberOfElementsInResult(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElementsInResult(This,NumberOfElements)
  19973 #define ISpeechPhraseAlternate_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
  19974 #define ISpeechPhraseAlternate_Commit(This) (This)->lpVtbl->Commit(This)
  19975 #else
  19976 /*** IUnknown methods ***/
  19977 static inline HRESULT ISpeechPhraseAlternate_QueryInterface(ISpeechPhraseAlternate* This,REFIID riid,void **ppvObject) {
  19978     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  19979 }
  19980 static inline ULONG ISpeechPhraseAlternate_AddRef(ISpeechPhraseAlternate* This) {
  19981     return This->lpVtbl->AddRef(This);
  19982 }
  19983 static inline ULONG ISpeechPhraseAlternate_Release(ISpeechPhraseAlternate* This) {
  19984     return This->lpVtbl->Release(This);
  19985 }
  19986 /*** IDispatch methods ***/
  19987 static inline HRESULT ISpeechPhraseAlternate_GetTypeInfoCount(ISpeechPhraseAlternate* This,UINT *pctinfo) {
  19988     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  19989 }
  19990 static inline HRESULT ISpeechPhraseAlternate_GetTypeInfo(ISpeechPhraseAlternate* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  19991     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  19992 }
  19993 static inline HRESULT ISpeechPhraseAlternate_GetIDsOfNames(ISpeechPhraseAlternate* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  19994     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  19995 }
  19996 static inline HRESULT ISpeechPhraseAlternate_Invoke(ISpeechPhraseAlternate* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  19997     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  19998 }
  19999 /*** ISpeechPhraseAlternate methods ***/
  20000 static inline HRESULT ISpeechPhraseAlternate_get_RecoResult(ISpeechPhraseAlternate* This,ISpeechRecoResult **RecoResult) {
  20001     return This->lpVtbl->get_RecoResult(This,RecoResult);
  20002 }
  20003 static inline HRESULT ISpeechPhraseAlternate_get_StartElementInResult(ISpeechPhraseAlternate* This,LONG *StartElement) {
  20004     return This->lpVtbl->get_StartElementInResult(This,StartElement);
  20005 }
  20006 static inline HRESULT ISpeechPhraseAlternate_get_NumberOfElementsInResult(ISpeechPhraseAlternate* This,LONG *NumberOfElements) {
  20007     return This->lpVtbl->get_NumberOfElementsInResult(This,NumberOfElements);
  20008 }
  20009 static inline HRESULT ISpeechPhraseAlternate_get_PhraseInfo(ISpeechPhraseAlternate* This,ISpeechPhraseInfo **PhraseInfo) {
  20010     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
  20011 }
  20012 static inline HRESULT ISpeechPhraseAlternate_Commit(ISpeechPhraseAlternate* This) {
  20013     return This->lpVtbl->Commit(This);
  20014 }
  20015 #endif
  20016 #endif
  20017 
  20018 #endif
  20019 
  20020 
  20021 #endif  /* __ISpeechPhraseAlternate_INTERFACE_DEFINED__ */
  20022 
  20023 /*****************************************************************************
  20024  * ISpeechPhraseAlternates interface
  20025  */
  20026 #ifndef __ISpeechPhraseAlternates_INTERFACE_DEFINED__
  20027 #define __ISpeechPhraseAlternates_INTERFACE_DEFINED__
  20028 
  20029 DEFINE_GUID(IID_ISpeechPhraseAlternates, 0xb238b6d5, 0xf276, 0x4c3d, 0xa6,0xc1, 0x29,0x74,0x80,0x1c,0x3c,0xc2);
  20030 #if defined(__cplusplus) && !defined(CINTERFACE)
  20031 MIDL_INTERFACE("b238b6d5-f276-4c3d-a6c1-2974801c3cc2")
  20032 ISpeechPhraseAlternates : public IDispatch
  20033 {
  20034     virtual HRESULT STDMETHODCALLTYPE get_Count(
  20035         LONG *Count) = 0;
  20036 
  20037     virtual HRESULT STDMETHODCALLTYPE Item(
  20038         LONG Index,
  20039         ISpeechPhraseAlternate **PhraseAlternate) = 0;
  20040 
  20041     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
  20042         IUnknown **EnumVARIANT) = 0;
  20043 
  20044 };
  20045 #ifdef __CRT_UUID_DECL
  20046 __CRT_UUID_DECL(ISpeechPhraseAlternates, 0xb238b6d5, 0xf276, 0x4c3d, 0xa6,0xc1, 0x29,0x74,0x80,0x1c,0x3c,0xc2)
  20047 #endif
  20048 #else
  20049 typedef struct ISpeechPhraseAlternatesVtbl {
  20050     BEGIN_INTERFACE
  20051 
  20052     /*** IUnknown methods ***/
  20053     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  20054         ISpeechPhraseAlternates *This,
  20055         REFIID riid,
  20056         void **ppvObject);
  20057 
  20058     ULONG (STDMETHODCALLTYPE *AddRef)(
  20059         ISpeechPhraseAlternates *This);
  20060 
  20061     ULONG (STDMETHODCALLTYPE *Release)(
  20062         ISpeechPhraseAlternates *This);
  20063 
  20064     /*** IDispatch methods ***/
  20065     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  20066         ISpeechPhraseAlternates *This,
  20067         UINT *pctinfo);
  20068 
  20069     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  20070         ISpeechPhraseAlternates *This,
  20071         UINT iTInfo,
  20072         LCID lcid,
  20073         ITypeInfo **ppTInfo);
  20074 
  20075     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  20076         ISpeechPhraseAlternates *This,
  20077         REFIID riid,
  20078         LPOLESTR *rgszNames,
  20079         UINT cNames,
  20080         LCID lcid,
  20081         DISPID *rgDispId);
  20082 
  20083     HRESULT (STDMETHODCALLTYPE *Invoke)(
  20084         ISpeechPhraseAlternates *This,
  20085         DISPID dispIdMember,
  20086         REFIID riid,
  20087         LCID lcid,
  20088         WORD wFlags,
  20089         DISPPARAMS *pDispParams,
  20090         VARIANT *pVarResult,
  20091         EXCEPINFO *pExcepInfo,
  20092         UINT *puArgErr);
  20093 
  20094     /*** ISpeechPhraseAlternates methods ***/
  20095     HRESULT (STDMETHODCALLTYPE *get_Count)(
  20096         ISpeechPhraseAlternates *This,
  20097         LONG *Count);
  20098 
  20099     HRESULT (STDMETHODCALLTYPE *Item)(
  20100         ISpeechPhraseAlternates *This,
  20101         LONG Index,
  20102         ISpeechPhraseAlternate **PhraseAlternate);
  20103 
  20104     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
  20105         ISpeechPhraseAlternates *This,
  20106         IUnknown **EnumVARIANT);
  20107 
  20108     END_INTERFACE
  20109 } ISpeechPhraseAlternatesVtbl;
  20110 
  20111 interface ISpeechPhraseAlternates {
  20112     CONST_VTBL ISpeechPhraseAlternatesVtbl* lpVtbl;
  20113 };
  20114 
  20115 #ifdef COBJMACROS
  20116 #ifndef WIDL_C_INLINE_WRAPPERS
  20117 /*** IUnknown methods ***/
  20118 #define ISpeechPhraseAlternates_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  20119 #define ISpeechPhraseAlternates_AddRef(This) (This)->lpVtbl->AddRef(This)
  20120 #define ISpeechPhraseAlternates_Release(This) (This)->lpVtbl->Release(This)
  20121 /*** IDispatch methods ***/
  20122 #define ISpeechPhraseAlternates_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  20123 #define ISpeechPhraseAlternates_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  20124 #define ISpeechPhraseAlternates_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  20125 #define ISpeechPhraseAlternates_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  20126 /*** ISpeechPhraseAlternates methods ***/
  20127 #define ISpeechPhraseAlternates_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
  20128 #define ISpeechPhraseAlternates_Item(This,Index,PhraseAlternate) (This)->lpVtbl->Item(This,Index,PhraseAlternate)
  20129 #define ISpeechPhraseAlternates_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
  20130 #else
  20131 /*** IUnknown methods ***/
  20132 static inline HRESULT ISpeechPhraseAlternates_QueryInterface(ISpeechPhraseAlternates* This,REFIID riid,void **ppvObject) {
  20133     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  20134 }
  20135 static inline ULONG ISpeechPhraseAlternates_AddRef(ISpeechPhraseAlternates* This) {
  20136     return This->lpVtbl->AddRef(This);
  20137 }
  20138 static inline ULONG ISpeechPhraseAlternates_Release(ISpeechPhraseAlternates* This) {
  20139     return This->lpVtbl->Release(This);
  20140 }
  20141 /*** IDispatch methods ***/
  20142 static inline HRESULT ISpeechPhraseAlternates_GetTypeInfoCount(ISpeechPhraseAlternates* This,UINT *pctinfo) {
  20143     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  20144 }
  20145 static inline HRESULT ISpeechPhraseAlternates_GetTypeInfo(ISpeechPhraseAlternates* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  20146     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  20147 }
  20148 static inline HRESULT ISpeechPhraseAlternates_GetIDsOfNames(ISpeechPhraseAlternates* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  20149     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  20150 }
  20151 static inline HRESULT ISpeechPhraseAlternates_Invoke(ISpeechPhraseAlternates* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  20152     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  20153 }
  20154 /*** ISpeechPhraseAlternates methods ***/
  20155 static inline HRESULT ISpeechPhraseAlternates_get_Count(ISpeechPhraseAlternates* This,LONG *Count) {
  20156     return This->lpVtbl->get_Count(This,Count);
  20157 }
  20158 static inline HRESULT ISpeechPhraseAlternates_Item(ISpeechPhraseAlternates* This,LONG Index,ISpeechPhraseAlternate **PhraseAlternate) {
  20159     return This->lpVtbl->Item(This,Index,PhraseAlternate);
  20160 }
  20161 static inline HRESULT ISpeechPhraseAlternates_get__NewEnum(ISpeechPhraseAlternates* This,IUnknown **EnumVARIANT) {
  20162     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
  20163 }
  20164 #endif
  20165 #endif
  20166 
  20167 #endif
  20168 
  20169 
  20170 #endif  /* __ISpeechPhraseAlternates_INTERFACE_DEFINED__ */
  20171 
  20172 /*****************************************************************************
  20173  * ISpeechPhraseInfo interface
  20174  */
  20175 #ifndef __ISpeechPhraseInfo_INTERFACE_DEFINED__
  20176 #define __ISpeechPhraseInfo_INTERFACE_DEFINED__
  20177 
  20178 DEFINE_GUID(IID_ISpeechPhraseInfo, 0x961559cf, 0x4e67, 0x4662, 0x8b,0xf0, 0xd9,0x3f,0x1f,0xcd,0x61,0xb3);
  20179 #if defined(__cplusplus) && !defined(CINTERFACE)
  20180 MIDL_INTERFACE("961559cf-4e67-4662-8bf0-d93f1fcd61b3")
  20181 ISpeechPhraseInfo : public IDispatch
  20182 {
  20183     virtual HRESULT STDMETHODCALLTYPE get_LanguageId(
  20184         LONG *LanguageId) = 0;
  20185 
  20186     virtual HRESULT STDMETHODCALLTYPE get_GrammarId(
  20187         VARIANT *GrammarId) = 0;
  20188 
  20189     virtual HRESULT STDMETHODCALLTYPE get_StartTime(
  20190         VARIANT *StartTime) = 0;
  20191 
  20192     virtual HRESULT STDMETHODCALLTYPE get_AudioStreamPosition(
  20193         VARIANT *AudioStreamPosition) = 0;
  20194 
  20195     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeBytes(
  20196         LONG *pAudioSizeBytes) = 0;
  20197 
  20198     virtual HRESULT STDMETHODCALLTYPE get_RetainedSizeBytes(
  20199         LONG *RetainedSizeBytes) = 0;
  20200 
  20201     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeTime(
  20202         LONG *AudioSizeTime) = 0;
  20203 
  20204     virtual HRESULT STDMETHODCALLTYPE get_Rule(
  20205         ISpeechPhraseRule **Rule) = 0;
  20206 
  20207     virtual HRESULT STDMETHODCALLTYPE get_Properties(
  20208         ISpeechPhraseProperties **Properties) = 0;
  20209 
  20210     virtual HRESULT STDMETHODCALLTYPE get_Elements(
  20211         ISpeechPhraseElements **Elements) = 0;
  20212 
  20213     virtual HRESULT STDMETHODCALLTYPE get_Replacements(
  20214         ISpeechPhraseReplacements **Replacements) = 0;
  20215 
  20216     virtual HRESULT STDMETHODCALLTYPE get_EngineId(
  20217         BSTR *EngineIdGuid) = 0;
  20218 
  20219     virtual HRESULT STDMETHODCALLTYPE get_EnginePrivateData(
  20220         VARIANT *PrivateData) = 0;
  20221 
  20222     virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
  20223         VARIANT *PhraseBlock) = 0;
  20224 
  20225     virtual HRESULT STDMETHODCALLTYPE GetText(
  20226         LONG StartElement,
  20227         LONG Elements,
  20228         VARIANT_BOOL UseReplacements,
  20229         BSTR *Text) = 0;
  20230 
  20231     virtual HRESULT STDMETHODCALLTYPE GetDisplayAttributes(
  20232         LONG StartElement,
  20233         LONG Elements,
  20234         VARIANT_BOOL UseReplacements,
  20235         SpeechDisplayAttributes *DisplayAttributes) = 0;
  20236 
  20237 };
  20238 #ifdef __CRT_UUID_DECL
  20239 __CRT_UUID_DECL(ISpeechPhraseInfo, 0x961559cf, 0x4e67, 0x4662, 0x8b,0xf0, 0xd9,0x3f,0x1f,0xcd,0x61,0xb3)
  20240 #endif
  20241 #else
  20242 typedef struct ISpeechPhraseInfoVtbl {
  20243     BEGIN_INTERFACE
  20244 
  20245     /*** IUnknown methods ***/
  20246     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  20247         ISpeechPhraseInfo *This,
  20248         REFIID riid,
  20249         void **ppvObject);
  20250 
  20251     ULONG (STDMETHODCALLTYPE *AddRef)(
  20252         ISpeechPhraseInfo *This);
  20253 
  20254     ULONG (STDMETHODCALLTYPE *Release)(
  20255         ISpeechPhraseInfo *This);
  20256 
  20257     /*** IDispatch methods ***/
  20258     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  20259         ISpeechPhraseInfo *This,
  20260         UINT *pctinfo);
  20261 
  20262     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  20263         ISpeechPhraseInfo *This,
  20264         UINT iTInfo,
  20265         LCID lcid,
  20266         ITypeInfo **ppTInfo);
  20267 
  20268     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  20269         ISpeechPhraseInfo *This,
  20270         REFIID riid,
  20271         LPOLESTR *rgszNames,
  20272         UINT cNames,
  20273         LCID lcid,
  20274         DISPID *rgDispId);
  20275 
  20276     HRESULT (STDMETHODCALLTYPE *Invoke)(
  20277         ISpeechPhraseInfo *This,
  20278         DISPID dispIdMember,
  20279         REFIID riid,
  20280         LCID lcid,
  20281         WORD wFlags,
  20282         DISPPARAMS *pDispParams,
  20283         VARIANT *pVarResult,
  20284         EXCEPINFO *pExcepInfo,
  20285         UINT *puArgErr);
  20286 
  20287     /*** ISpeechPhraseInfo methods ***/
  20288     HRESULT (STDMETHODCALLTYPE *get_LanguageId)(
  20289         ISpeechPhraseInfo *This,
  20290         LONG *LanguageId);
  20291 
  20292     HRESULT (STDMETHODCALLTYPE *get_GrammarId)(
  20293         ISpeechPhraseInfo *This,
  20294         VARIANT *GrammarId);
  20295 
  20296     HRESULT (STDMETHODCALLTYPE *get_StartTime)(
  20297         ISpeechPhraseInfo *This,
  20298         VARIANT *StartTime);
  20299 
  20300     HRESULT (STDMETHODCALLTYPE *get_AudioStreamPosition)(
  20301         ISpeechPhraseInfo *This,
  20302         VARIANT *AudioStreamPosition);
  20303 
  20304     HRESULT (STDMETHODCALLTYPE *get_AudioSizeBytes)(
  20305         ISpeechPhraseInfo *This,
  20306         LONG *pAudioSizeBytes);
  20307 
  20308     HRESULT (STDMETHODCALLTYPE *get_RetainedSizeBytes)(
  20309         ISpeechPhraseInfo *This,
  20310         LONG *RetainedSizeBytes);
  20311 
  20312     HRESULT (STDMETHODCALLTYPE *get_AudioSizeTime)(
  20313         ISpeechPhraseInfo *This,
  20314         LONG *AudioSizeTime);
  20315 
  20316     HRESULT (STDMETHODCALLTYPE *get_Rule)(
  20317         ISpeechPhraseInfo *This,
  20318         ISpeechPhraseRule **Rule);
  20319 
  20320     HRESULT (STDMETHODCALLTYPE *get_Properties)(
  20321         ISpeechPhraseInfo *This,
  20322         ISpeechPhraseProperties **Properties);
  20323 
  20324     HRESULT (STDMETHODCALLTYPE *get_Elements)(
  20325         ISpeechPhraseInfo *This,
  20326         ISpeechPhraseElements **Elements);
  20327 
  20328     HRESULT (STDMETHODCALLTYPE *get_Replacements)(
  20329         ISpeechPhraseInfo *This,
  20330         ISpeechPhraseReplacements **Replacements);
  20331 
  20332     HRESULT (STDMETHODCALLTYPE *get_EngineId)(
  20333         ISpeechPhraseInfo *This,
  20334         BSTR *EngineIdGuid);
  20335 
  20336     HRESULT (STDMETHODCALLTYPE *get_EnginePrivateData)(
  20337         ISpeechPhraseInfo *This,
  20338         VARIANT *PrivateData);
  20339 
  20340     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
  20341         ISpeechPhraseInfo *This,
  20342         VARIANT *PhraseBlock);
  20343 
  20344     HRESULT (STDMETHODCALLTYPE *GetText)(
  20345         ISpeechPhraseInfo *This,
  20346         LONG StartElement,
  20347         LONG Elements,
  20348         VARIANT_BOOL UseReplacements,
  20349         BSTR *Text);
  20350 
  20351     HRESULT (STDMETHODCALLTYPE *GetDisplayAttributes)(
  20352         ISpeechPhraseInfo *This,
  20353         LONG StartElement,
  20354         LONG Elements,
  20355         VARIANT_BOOL UseReplacements,
  20356         SpeechDisplayAttributes *DisplayAttributes);
  20357 
  20358     END_INTERFACE
  20359 } ISpeechPhraseInfoVtbl;
  20360 
  20361 interface ISpeechPhraseInfo {
  20362     CONST_VTBL ISpeechPhraseInfoVtbl* lpVtbl;
  20363 };
  20364 
  20365 #ifdef COBJMACROS
  20366 #ifndef WIDL_C_INLINE_WRAPPERS
  20367 /*** IUnknown methods ***/
  20368 #define ISpeechPhraseInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  20369 #define ISpeechPhraseInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
  20370 #define ISpeechPhraseInfo_Release(This) (This)->lpVtbl->Release(This)
  20371 /*** IDispatch methods ***/
  20372 #define ISpeechPhraseInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  20373 #define ISpeechPhraseInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  20374 #define ISpeechPhraseInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  20375 #define ISpeechPhraseInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  20376 /*** ISpeechPhraseInfo methods ***/
  20377 #define ISpeechPhraseInfo_get_LanguageId(This,LanguageId) (This)->lpVtbl->get_LanguageId(This,LanguageId)
  20378 #define ISpeechPhraseInfo_get_GrammarId(This,GrammarId) (This)->lpVtbl->get_GrammarId(This,GrammarId)
  20379 #define ISpeechPhraseInfo_get_StartTime(This,StartTime) (This)->lpVtbl->get_StartTime(This,StartTime)
  20380 #define ISpeechPhraseInfo_get_AudioStreamPosition(This,AudioStreamPosition) (This)->lpVtbl->get_AudioStreamPosition(This,AudioStreamPosition)
  20381 #define ISpeechPhraseInfo_get_AudioSizeBytes(This,pAudioSizeBytes) (This)->lpVtbl->get_AudioSizeBytes(This,pAudioSizeBytes)
  20382 #define ISpeechPhraseInfo_get_RetainedSizeBytes(This,RetainedSizeBytes) (This)->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes)
  20383 #define ISpeechPhraseInfo_get_AudioSizeTime(This,AudioSizeTime) (This)->lpVtbl->get_AudioSizeTime(This,AudioSizeTime)
  20384 #define ISpeechPhraseInfo_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
  20385 #define ISpeechPhraseInfo_get_Properties(This,Properties) (This)->lpVtbl->get_Properties(This,Properties)
  20386 #define ISpeechPhraseInfo_get_Elements(This,Elements) (This)->lpVtbl->get_Elements(This,Elements)
  20387 #define ISpeechPhraseInfo_get_Replacements(This,Replacements) (This)->lpVtbl->get_Replacements(This,Replacements)
  20388 #define ISpeechPhraseInfo_get_EngineId(This,EngineIdGuid) (This)->lpVtbl->get_EngineId(This,EngineIdGuid)
  20389 #define ISpeechPhraseInfo_get_EnginePrivateData(This,PrivateData) (This)->lpVtbl->get_EnginePrivateData(This,PrivateData)
  20390 #define ISpeechPhraseInfo_SaveToMemory(This,PhraseBlock) (This)->lpVtbl->SaveToMemory(This,PhraseBlock)
  20391 #define ISpeechPhraseInfo_GetText(This,StartElement,Elements,UseReplacements,Text) (This)->lpVtbl->GetText(This,StartElement,Elements,UseReplacements,Text)
  20392 #define ISpeechPhraseInfo_GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes) (This)->lpVtbl->GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes)
  20393 #else
  20394 /*** IUnknown methods ***/
  20395 static inline HRESULT ISpeechPhraseInfo_QueryInterface(ISpeechPhraseInfo* This,REFIID riid,void **ppvObject) {
  20396     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  20397 }
  20398 static inline ULONG ISpeechPhraseInfo_AddRef(ISpeechPhraseInfo* This) {
  20399     return This->lpVtbl->AddRef(This);
  20400 }
  20401 static inline ULONG ISpeechPhraseInfo_Release(ISpeechPhraseInfo* This) {
  20402     return This->lpVtbl->Release(This);
  20403 }
  20404 /*** IDispatch methods ***/
  20405 static inline HRESULT ISpeechPhraseInfo_GetTypeInfoCount(ISpeechPhraseInfo* This,UINT *pctinfo) {
  20406     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  20407 }
  20408 static inline HRESULT ISpeechPhraseInfo_GetTypeInfo(ISpeechPhraseInfo* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  20409     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  20410 }
  20411 static inline HRESULT ISpeechPhraseInfo_GetIDsOfNames(ISpeechPhraseInfo* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  20412     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  20413 }
  20414 static inline HRESULT ISpeechPhraseInfo_Invoke(ISpeechPhraseInfo* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  20415     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  20416 }
  20417 /*** ISpeechPhraseInfo methods ***/
  20418 static inline HRESULT ISpeechPhraseInfo_get_LanguageId(ISpeechPhraseInfo* This,LONG *LanguageId) {
  20419     return This->lpVtbl->get_LanguageId(This,LanguageId);
  20420 }
  20421 static inline HRESULT ISpeechPhraseInfo_get_GrammarId(ISpeechPhraseInfo* This,VARIANT *GrammarId) {
  20422     return This->lpVtbl->get_GrammarId(This,GrammarId);
  20423 }
  20424 static inline HRESULT ISpeechPhraseInfo_get_StartTime(ISpeechPhraseInfo* This,VARIANT *StartTime) {
  20425     return This->lpVtbl->get_StartTime(This,StartTime);
  20426 }
  20427 static inline HRESULT ISpeechPhraseInfo_get_AudioStreamPosition(ISpeechPhraseInfo* This,VARIANT *AudioStreamPosition) {
  20428     return This->lpVtbl->get_AudioStreamPosition(This,AudioStreamPosition);
  20429 }
  20430 static inline HRESULT ISpeechPhraseInfo_get_AudioSizeBytes(ISpeechPhraseInfo* This,LONG *pAudioSizeBytes) {
  20431     return This->lpVtbl->get_AudioSizeBytes(This,pAudioSizeBytes);
  20432 }
  20433 static inline HRESULT ISpeechPhraseInfo_get_RetainedSizeBytes(ISpeechPhraseInfo* This,LONG *RetainedSizeBytes) {
  20434     return This->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes);
  20435 }
  20436 static inline HRESULT ISpeechPhraseInfo_get_AudioSizeTime(ISpeechPhraseInfo* This,LONG *AudioSizeTime) {
  20437     return This->lpVtbl->get_AudioSizeTime(This,AudioSizeTime);
  20438 }
  20439 static inline HRESULT ISpeechPhraseInfo_get_Rule(ISpeechPhraseInfo* This,ISpeechPhraseRule **Rule) {
  20440     return This->lpVtbl->get_Rule(This,Rule);
  20441 }
  20442 static inline HRESULT ISpeechPhraseInfo_get_Properties(ISpeechPhraseInfo* This,ISpeechPhraseProperties **Properties) {
  20443     return This->lpVtbl->get_Properties(This,Properties);
  20444 }
  20445 static inline HRESULT ISpeechPhraseInfo_get_Elements(ISpeechPhraseInfo* This,ISpeechPhraseElements **Elements) {
  20446     return This->lpVtbl->get_Elements(This,Elements);
  20447 }
  20448 static inline HRESULT ISpeechPhraseInfo_get_Replacements(ISpeechPhraseInfo* This,ISpeechPhraseReplacements **Replacements) {
  20449     return This->lpVtbl->get_Replacements(This,Replacements);
  20450 }
  20451 static inline HRESULT ISpeechPhraseInfo_get_EngineId(ISpeechPhraseInfo* This,BSTR *EngineIdGuid) {
  20452     return This->lpVtbl->get_EngineId(This,EngineIdGuid);
  20453 }
  20454 static inline HRESULT ISpeechPhraseInfo_get_EnginePrivateData(ISpeechPhraseInfo* This,VARIANT *PrivateData) {
  20455     return This->lpVtbl->get_EnginePrivateData(This,PrivateData);
  20456 }
  20457 static inline HRESULT ISpeechPhraseInfo_SaveToMemory(ISpeechPhraseInfo* This,VARIANT *PhraseBlock) {
  20458     return This->lpVtbl->SaveToMemory(This,PhraseBlock);
  20459 }
  20460 static inline HRESULT ISpeechPhraseInfo_GetText(ISpeechPhraseInfo* This,LONG StartElement,LONG Elements,VARIANT_BOOL UseReplacements,BSTR *Text) {
  20461     return This->lpVtbl->GetText(This,StartElement,Elements,UseReplacements,Text);
  20462 }
  20463 static inline HRESULT ISpeechPhraseInfo_GetDisplayAttributes(ISpeechPhraseInfo* This,LONG StartElement,LONG Elements,VARIANT_BOOL UseReplacements,SpeechDisplayAttributes *DisplayAttributes) {
  20464     return This->lpVtbl->GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes);
  20465 }
  20466 #endif
  20467 #endif
  20468 
  20469 #endif
  20470 
  20471 
  20472 #endif  /* __ISpeechPhraseInfo_INTERFACE_DEFINED__ */
  20473 
  20474 /*****************************************************************************
  20475  * ISpeechPhraseElement interface
  20476  */
  20477 #ifndef __ISpeechPhraseElement_INTERFACE_DEFINED__
  20478 #define __ISpeechPhraseElement_INTERFACE_DEFINED__
  20479 
  20480 DEFINE_GUID(IID_ISpeechPhraseElement, 0xe6176f96, 0xe373, 0x4801, 0xb2,0x23, 0x3b,0x62,0xc0,0x68,0xc0,0xb4);
  20481 #if defined(__cplusplus) && !defined(CINTERFACE)
  20482 MIDL_INTERFACE("e6176f96-e373-4801-b223-3b62c068c0b4")
  20483 ISpeechPhraseElement : public IDispatch
  20484 {
  20485     virtual HRESULT STDMETHODCALLTYPE get_AudioTimeOffset(
  20486         LONG *AudioTimeOffset) = 0;
  20487 
  20488     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeTime(
  20489         LONG *AudioSizeTime) = 0;
  20490 
  20491     virtual HRESULT STDMETHODCALLTYPE get_AudioStreamOffset(
  20492         LONG *AudioStreamOffset) = 0;
  20493 
  20494     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeBytes(
  20495         LONG *AudioSizeBytes) = 0;
  20496 
  20497     virtual HRESULT STDMETHODCALLTYPE get_RetainedStreamOffset(
  20498         LONG *RetainedStreamOffset) = 0;
  20499 
  20500     virtual HRESULT STDMETHODCALLTYPE get_RetainedSizeBytes(
  20501         LONG *RetainedSizeBytes) = 0;
  20502 
  20503     virtual HRESULT STDMETHODCALLTYPE get_DisplayText(
  20504         BSTR *DisplayText) = 0;
  20505 
  20506     virtual HRESULT STDMETHODCALLTYPE get_LexicalForm(
  20507         BSTR *LexicalForm) = 0;
  20508 
  20509     virtual HRESULT STDMETHODCALLTYPE get_Pronunciation(
  20510         VARIANT *Pronunciation) = 0;
  20511 
  20512     virtual HRESULT STDMETHODCALLTYPE get_DisplayAttributes(
  20513         SpeechDisplayAttributes *DisplayAttributes) = 0;
  20514 
  20515     virtual HRESULT STDMETHODCALLTYPE get_RequiredConfidence(
  20516         SpeechEngineConfidence *RequiredConfidence) = 0;
  20517 
  20518     virtual HRESULT STDMETHODCALLTYPE get_ActualConfidence(
  20519         SpeechEngineConfidence *ActualConfidence) = 0;
  20520 
  20521     virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
  20522         float *EngineConfidence) = 0;
  20523 
  20524 };
  20525 #ifdef __CRT_UUID_DECL
  20526 __CRT_UUID_DECL(ISpeechPhraseElement, 0xe6176f96, 0xe373, 0x4801, 0xb2,0x23, 0x3b,0x62,0xc0,0x68,0xc0,0xb4)
  20527 #endif
  20528 #else
  20529 typedef struct ISpeechPhraseElementVtbl {
  20530     BEGIN_INTERFACE
  20531 
  20532     /*** IUnknown methods ***/
  20533     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  20534         ISpeechPhraseElement *This,
  20535         REFIID riid,
  20536         void **ppvObject);
  20537 
  20538     ULONG (STDMETHODCALLTYPE *AddRef)(
  20539         ISpeechPhraseElement *This);
  20540 
  20541     ULONG (STDMETHODCALLTYPE *Release)(
  20542         ISpeechPhraseElement *This);
  20543 
  20544     /*** IDispatch methods ***/
  20545     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  20546         ISpeechPhraseElement *This,
  20547         UINT *pctinfo);
  20548 
  20549     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  20550         ISpeechPhraseElement *This,
  20551         UINT iTInfo,
  20552         LCID lcid,
  20553         ITypeInfo **ppTInfo);
  20554 
  20555     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  20556         ISpeechPhraseElement *This,
  20557         REFIID riid,
  20558         LPOLESTR *rgszNames,
  20559         UINT cNames,
  20560         LCID lcid,
  20561         DISPID *rgDispId);
  20562 
  20563     HRESULT (STDMETHODCALLTYPE *Invoke)(
  20564         ISpeechPhraseElement *This,
  20565         DISPID dispIdMember,
  20566         REFIID riid,
  20567         LCID lcid,
  20568         WORD wFlags,
  20569         DISPPARAMS *pDispParams,
  20570         VARIANT *pVarResult,
  20571         EXCEPINFO *pExcepInfo,
  20572         UINT *puArgErr);
  20573 
  20574     /*** ISpeechPhraseElement methods ***/
  20575     HRESULT (STDMETHODCALLTYPE *get_AudioTimeOffset)(
  20576         ISpeechPhraseElement *This,
  20577         LONG *AudioTimeOffset);
  20578 
  20579     HRESULT (STDMETHODCALLTYPE *get_AudioSizeTime)(
  20580         ISpeechPhraseElement *This,
  20581         LONG *AudioSizeTime);
  20582 
  20583     HRESULT (STDMETHODCALLTYPE *get_AudioStreamOffset)(
  20584         ISpeechPhraseElement *This,
  20585         LONG *AudioStreamOffset);
  20586 
  20587     HRESULT (STDMETHODCALLTYPE *get_AudioSizeBytes)(
  20588         ISpeechPhraseElement *This,
  20589         LONG *AudioSizeBytes);
  20590 
  20591     HRESULT (STDMETHODCALLTYPE *get_RetainedStreamOffset)(
  20592         ISpeechPhraseElement *This,
  20593         LONG *RetainedStreamOffset);
  20594 
  20595     HRESULT (STDMETHODCALLTYPE *get_RetainedSizeBytes)(
  20596         ISpeechPhraseElement *This,
  20597         LONG *RetainedSizeBytes);
  20598 
  20599     HRESULT (STDMETHODCALLTYPE *get_DisplayText)(
  20600         ISpeechPhraseElement *This,
  20601         BSTR *DisplayText);
  20602 
  20603     HRESULT (STDMETHODCALLTYPE *get_LexicalForm)(
  20604         ISpeechPhraseElement *This,
  20605         BSTR *LexicalForm);
  20606 
  20607     HRESULT (STDMETHODCALLTYPE *get_Pronunciation)(
  20608         ISpeechPhraseElement *This,
  20609         VARIANT *Pronunciation);
  20610 
  20611     HRESULT (STDMETHODCALLTYPE *get_DisplayAttributes)(
  20612         ISpeechPhraseElement *This,
  20613         SpeechDisplayAttributes *DisplayAttributes);
  20614 
  20615     HRESULT (STDMETHODCALLTYPE *get_RequiredConfidence)(
  20616         ISpeechPhraseElement *This,
  20617         SpeechEngineConfidence *RequiredConfidence);
  20618 
  20619     HRESULT (STDMETHODCALLTYPE *get_ActualConfidence)(
  20620         ISpeechPhraseElement *This,
  20621         SpeechEngineConfidence *ActualConfidence);
  20622 
  20623     HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
  20624         ISpeechPhraseElement *This,
  20625         float *EngineConfidence);
  20626 
  20627     END_INTERFACE
  20628 } ISpeechPhraseElementVtbl;
  20629 
  20630 interface ISpeechPhraseElement {
  20631     CONST_VTBL ISpeechPhraseElementVtbl* lpVtbl;
  20632 };
  20633 
  20634 #ifdef COBJMACROS
  20635 #ifndef WIDL_C_INLINE_WRAPPERS
  20636 /*** IUnknown methods ***/
  20637 #define ISpeechPhraseElement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  20638 #define ISpeechPhraseElement_AddRef(This) (This)->lpVtbl->AddRef(This)
  20639 #define ISpeechPhraseElement_Release(This) (This)->lpVtbl->Release(This)
  20640 /*** IDispatch methods ***/
  20641 #define ISpeechPhraseElement_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  20642 #define ISpeechPhraseElement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  20643 #define ISpeechPhraseElement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  20644 #define ISpeechPhraseElement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  20645 /*** ISpeechPhraseElement methods ***/
  20646 #define ISpeechPhraseElement_get_AudioTimeOffset(This,AudioTimeOffset) (This)->lpVtbl->get_AudioTimeOffset(This,AudioTimeOffset)
  20647 #define ISpeechPhraseElement_get_AudioSizeTime(This,AudioSizeTime) (This)->lpVtbl->get_AudioSizeTime(This,AudioSizeTime)
  20648 #define ISpeechPhraseElement_get_AudioStreamOffset(This,AudioStreamOffset) (This)->lpVtbl->get_AudioStreamOffset(This,AudioStreamOffset)
  20649 #define ISpeechPhraseElement_get_AudioSizeBytes(This,AudioSizeBytes) (This)->lpVtbl->get_AudioSizeBytes(This,AudioSizeBytes)
  20650 #define ISpeechPhraseElement_get_RetainedStreamOffset(This,RetainedStreamOffset) (This)->lpVtbl->get_RetainedStreamOffset(This,RetainedStreamOffset)
  20651 #define ISpeechPhraseElement_get_RetainedSizeBytes(This,RetainedSizeBytes) (This)->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes)
  20652 #define ISpeechPhraseElement_get_DisplayText(This,DisplayText) (This)->lpVtbl->get_DisplayText(This,DisplayText)
  20653 #define ISpeechPhraseElement_get_LexicalForm(This,LexicalForm) (This)->lpVtbl->get_LexicalForm(This,LexicalForm)
  20654 #define ISpeechPhraseElement_get_Pronunciation(This,Pronunciation) (This)->lpVtbl->get_Pronunciation(This,Pronunciation)
  20655 #define ISpeechPhraseElement_get_DisplayAttributes(This,DisplayAttributes) (This)->lpVtbl->get_DisplayAttributes(This,DisplayAttributes)
  20656 #define ISpeechPhraseElement_get_RequiredConfidence(This,RequiredConfidence) (This)->lpVtbl->get_RequiredConfidence(This,RequiredConfidence)
  20657 #define ISpeechPhraseElement_get_ActualConfidence(This,ActualConfidence) (This)->lpVtbl->get_ActualConfidence(This,ActualConfidence)
  20658 #define ISpeechPhraseElement_get_EngineConfidence(This,EngineConfidence) (This)->lpVtbl->get_EngineConfidence(This,EngineConfidence)
  20659 #else
  20660 /*** IUnknown methods ***/
  20661 static inline HRESULT ISpeechPhraseElement_QueryInterface(ISpeechPhraseElement* This,REFIID riid,void **ppvObject) {
  20662     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  20663 }
  20664 static inline ULONG ISpeechPhraseElement_AddRef(ISpeechPhraseElement* This) {
  20665     return This->lpVtbl->AddRef(This);
  20666 }
  20667 static inline ULONG ISpeechPhraseElement_Release(ISpeechPhraseElement* This) {
  20668     return This->lpVtbl->Release(This);
  20669 }
  20670 /*** IDispatch methods ***/
  20671 static inline HRESULT ISpeechPhraseElement_GetTypeInfoCount(ISpeechPhraseElement* This,UINT *pctinfo) {
  20672     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  20673 }
  20674 static inline HRESULT ISpeechPhraseElement_GetTypeInfo(ISpeechPhraseElement* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  20675     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  20676 }
  20677 static inline HRESULT ISpeechPhraseElement_GetIDsOfNames(ISpeechPhraseElement* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  20678     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  20679 }
  20680 static inline HRESULT ISpeechPhraseElement_Invoke(ISpeechPhraseElement* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  20681     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  20682 }
  20683 /*** ISpeechPhraseElement methods ***/
  20684 static inline HRESULT ISpeechPhraseElement_get_AudioTimeOffset(ISpeechPhraseElement* This,LONG *AudioTimeOffset) {
  20685     return This->lpVtbl->get_AudioTimeOffset(This,AudioTimeOffset);
  20686 }
  20687 static inline HRESULT ISpeechPhraseElement_get_AudioSizeTime(ISpeechPhraseElement* This,LONG *AudioSizeTime) {
  20688     return This->lpVtbl->get_AudioSizeTime(This,AudioSizeTime);
  20689 }
  20690 static inline HRESULT ISpeechPhraseElement_get_AudioStreamOffset(ISpeechPhraseElement* This,LONG *AudioStreamOffset) {
  20691     return This->lpVtbl->get_AudioStreamOffset(This,AudioStreamOffset);
  20692 }
  20693 static inline HRESULT ISpeechPhraseElement_get_AudioSizeBytes(ISpeechPhraseElement* This,LONG *AudioSizeBytes) {
  20694     return This->lpVtbl->get_AudioSizeBytes(This,AudioSizeBytes);
  20695 }
  20696 static inline HRESULT ISpeechPhraseElement_get_RetainedStreamOffset(ISpeechPhraseElement* This,LONG *RetainedStreamOffset) {
  20697     return This->lpVtbl->get_RetainedStreamOffset(This,RetainedStreamOffset);
  20698 }
  20699 static inline HRESULT ISpeechPhraseElement_get_RetainedSizeBytes(ISpeechPhraseElement* This,LONG *RetainedSizeBytes) {
  20700     return This->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes);
  20701 }
  20702 static inline HRESULT ISpeechPhraseElement_get_DisplayText(ISpeechPhraseElement* This,BSTR *DisplayText) {
  20703     return This->lpVtbl->get_DisplayText(This,DisplayText);
  20704 }
  20705 static inline HRESULT ISpeechPhraseElement_get_LexicalForm(ISpeechPhraseElement* This,BSTR *LexicalForm) {
  20706     return This->lpVtbl->get_LexicalForm(This,LexicalForm);
  20707 }
  20708 static inline HRESULT ISpeechPhraseElement_get_Pronunciation(ISpeechPhraseElement* This,VARIANT *Pronunciation) {
  20709     return This->lpVtbl->get_Pronunciation(This,Pronunciation);
  20710 }
  20711 static inline HRESULT ISpeechPhraseElement_get_DisplayAttributes(ISpeechPhraseElement* This,SpeechDisplayAttributes *DisplayAttributes) {
  20712     return This->lpVtbl->get_DisplayAttributes(This,DisplayAttributes);
  20713 }
  20714 static inline HRESULT ISpeechPhraseElement_get_RequiredConfidence(ISpeechPhraseElement* This,SpeechEngineConfidence *RequiredConfidence) {
  20715     return This->lpVtbl->get_RequiredConfidence(This,RequiredConfidence);
  20716 }
  20717 static inline HRESULT ISpeechPhraseElement_get_ActualConfidence(ISpeechPhraseElement* This,SpeechEngineConfidence *ActualConfidence) {
  20718     return This->lpVtbl->get_ActualConfidence(This,ActualConfidence);
  20719 }
  20720 static inline HRESULT ISpeechPhraseElement_get_EngineConfidence(ISpeechPhraseElement* This,float *EngineConfidence) {
  20721     return This->lpVtbl->get_EngineConfidence(This,EngineConfidence);
  20722 }
  20723 #endif
  20724 #endif
  20725 
  20726 #endif
  20727 
  20728 
  20729 #endif  /* __ISpeechPhraseElement_INTERFACE_DEFINED__ */
  20730 
  20731 /*****************************************************************************
  20732  * ISpeechPhraseElements interface
  20733  */
  20734 #ifndef __ISpeechPhraseElements_INTERFACE_DEFINED__
  20735 #define __ISpeechPhraseElements_INTERFACE_DEFINED__
  20736 
  20737 DEFINE_GUID(IID_ISpeechPhraseElements, 0x0626b328, 0x3478, 0x467d, 0xa0,0xb3, 0xd0,0x85,0x3b,0x93,0xdd,0xa3);
  20738 #if defined(__cplusplus) && !defined(CINTERFACE)
  20739 MIDL_INTERFACE("0626b328-3478-467d-a0b3-d0853b93dda3")
  20740 ISpeechPhraseElements : public IDispatch
  20741 {
  20742     virtual HRESULT STDMETHODCALLTYPE get_Count(
  20743         LONG *Count) = 0;
  20744 
  20745     virtual HRESULT STDMETHODCALLTYPE Item(
  20746         LONG Index,
  20747         ISpeechPhraseElement **Element) = 0;
  20748 
  20749     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
  20750         IUnknown **EnumVARIANT) = 0;
  20751 
  20752 };
  20753 #ifdef __CRT_UUID_DECL
  20754 __CRT_UUID_DECL(ISpeechPhraseElements, 0x0626b328, 0x3478, 0x467d, 0xa0,0xb3, 0xd0,0x85,0x3b,0x93,0xdd,0xa3)
  20755 #endif
  20756 #else
  20757 typedef struct ISpeechPhraseElementsVtbl {
  20758     BEGIN_INTERFACE
  20759 
  20760     /*** IUnknown methods ***/
  20761     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  20762         ISpeechPhraseElements *This,
  20763         REFIID riid,
  20764         void **ppvObject);
  20765 
  20766     ULONG (STDMETHODCALLTYPE *AddRef)(
  20767         ISpeechPhraseElements *This);
  20768 
  20769     ULONG (STDMETHODCALLTYPE *Release)(
  20770         ISpeechPhraseElements *This);
  20771 
  20772     /*** IDispatch methods ***/
  20773     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  20774         ISpeechPhraseElements *This,
  20775         UINT *pctinfo);
  20776 
  20777     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  20778         ISpeechPhraseElements *This,
  20779         UINT iTInfo,
  20780         LCID lcid,
  20781         ITypeInfo **ppTInfo);
  20782 
  20783     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  20784         ISpeechPhraseElements *This,
  20785         REFIID riid,
  20786         LPOLESTR *rgszNames,
  20787         UINT cNames,
  20788         LCID lcid,
  20789         DISPID *rgDispId);
  20790 
  20791     HRESULT (STDMETHODCALLTYPE *Invoke)(
  20792         ISpeechPhraseElements *This,
  20793         DISPID dispIdMember,
  20794         REFIID riid,
  20795         LCID lcid,
  20796         WORD wFlags,
  20797         DISPPARAMS *pDispParams,
  20798         VARIANT *pVarResult,
  20799         EXCEPINFO *pExcepInfo,
  20800         UINT *puArgErr);
  20801 
  20802     /*** ISpeechPhraseElements methods ***/
  20803     HRESULT (STDMETHODCALLTYPE *get_Count)(
  20804         ISpeechPhraseElements *This,
  20805         LONG *Count);
  20806 
  20807     HRESULT (STDMETHODCALLTYPE *Item)(
  20808         ISpeechPhraseElements *This,
  20809         LONG Index,
  20810         ISpeechPhraseElement **Element);
  20811 
  20812     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
  20813         ISpeechPhraseElements *This,
  20814         IUnknown **EnumVARIANT);
  20815 
  20816     END_INTERFACE
  20817 } ISpeechPhraseElementsVtbl;
  20818 
  20819 interface ISpeechPhraseElements {
  20820     CONST_VTBL ISpeechPhraseElementsVtbl* lpVtbl;
  20821 };
  20822 
  20823 #ifdef COBJMACROS
  20824 #ifndef WIDL_C_INLINE_WRAPPERS
  20825 /*** IUnknown methods ***/
  20826 #define ISpeechPhraseElements_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  20827 #define ISpeechPhraseElements_AddRef(This) (This)->lpVtbl->AddRef(This)
  20828 #define ISpeechPhraseElements_Release(This) (This)->lpVtbl->Release(This)
  20829 /*** IDispatch methods ***/
  20830 #define ISpeechPhraseElements_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  20831 #define ISpeechPhraseElements_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  20832 #define ISpeechPhraseElements_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  20833 #define ISpeechPhraseElements_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  20834 /*** ISpeechPhraseElements methods ***/
  20835 #define ISpeechPhraseElements_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
  20836 #define ISpeechPhraseElements_Item(This,Index,Element) (This)->lpVtbl->Item(This,Index,Element)
  20837 #define ISpeechPhraseElements_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
  20838 #else
  20839 /*** IUnknown methods ***/
  20840 static inline HRESULT ISpeechPhraseElements_QueryInterface(ISpeechPhraseElements* This,REFIID riid,void **ppvObject) {
  20841     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  20842 }
  20843 static inline ULONG ISpeechPhraseElements_AddRef(ISpeechPhraseElements* This) {
  20844     return This->lpVtbl->AddRef(This);
  20845 }
  20846 static inline ULONG ISpeechPhraseElements_Release(ISpeechPhraseElements* This) {
  20847     return This->lpVtbl->Release(This);
  20848 }
  20849 /*** IDispatch methods ***/
  20850 static inline HRESULT ISpeechPhraseElements_GetTypeInfoCount(ISpeechPhraseElements* This,UINT *pctinfo) {
  20851     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  20852 }
  20853 static inline HRESULT ISpeechPhraseElements_GetTypeInfo(ISpeechPhraseElements* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  20854     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  20855 }
  20856 static inline HRESULT ISpeechPhraseElements_GetIDsOfNames(ISpeechPhraseElements* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  20857     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  20858 }
  20859 static inline HRESULT ISpeechPhraseElements_Invoke(ISpeechPhraseElements* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  20860     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  20861 }
  20862 /*** ISpeechPhraseElements methods ***/
  20863 static inline HRESULT ISpeechPhraseElements_get_Count(ISpeechPhraseElements* This,LONG *Count) {
  20864     return This->lpVtbl->get_Count(This,Count);
  20865 }
  20866 static inline HRESULT ISpeechPhraseElements_Item(ISpeechPhraseElements* This,LONG Index,ISpeechPhraseElement **Element) {
  20867     return This->lpVtbl->Item(This,Index,Element);
  20868 }
  20869 static inline HRESULT ISpeechPhraseElements_get__NewEnum(ISpeechPhraseElements* This,IUnknown **EnumVARIANT) {
  20870     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
  20871 }
  20872 #endif
  20873 #endif
  20874 
  20875 #endif
  20876 
  20877 
  20878 #endif  /* __ISpeechPhraseElements_INTERFACE_DEFINED__ */
  20879 
  20880 /*****************************************************************************
  20881  * ISpeechPhraseReplacement interface
  20882  */
  20883 #ifndef __ISpeechPhraseReplacement_INTERFACE_DEFINED__
  20884 #define __ISpeechPhraseReplacement_INTERFACE_DEFINED__
  20885 
  20886 DEFINE_GUID(IID_ISpeechPhraseReplacement, 0x2890a410, 0x53a7, 0x4fb5, 0x94,0xec, 0x06,0xd4,0x99,0x8e,0x3d,0x02);
  20887 #if defined(__cplusplus) && !defined(CINTERFACE)
  20888 MIDL_INTERFACE("2890a410-53a7-4fb5-94ec-06d4998e3d02")
  20889 ISpeechPhraseReplacement : public IDispatch
  20890 {
  20891     virtual HRESULT STDMETHODCALLTYPE get_DisplayAttributes(
  20892         SpeechDisplayAttributes *DisplayAttributes) = 0;
  20893 
  20894     virtual HRESULT STDMETHODCALLTYPE get_Text(
  20895         BSTR *Text) = 0;
  20896 
  20897     virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
  20898         LONG *FirstElement) = 0;
  20899 
  20900     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
  20901         LONG *NumberOfElements) = 0;
  20902 
  20903 };
  20904 #ifdef __CRT_UUID_DECL
  20905 __CRT_UUID_DECL(ISpeechPhraseReplacement, 0x2890a410, 0x53a7, 0x4fb5, 0x94,0xec, 0x06,0xd4,0x99,0x8e,0x3d,0x02)
  20906 #endif
  20907 #else
  20908 typedef struct ISpeechPhraseReplacementVtbl {
  20909     BEGIN_INTERFACE
  20910 
  20911     /*** IUnknown methods ***/
  20912     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  20913         ISpeechPhraseReplacement *This,
  20914         REFIID riid,
  20915         void **ppvObject);
  20916 
  20917     ULONG (STDMETHODCALLTYPE *AddRef)(
  20918         ISpeechPhraseReplacement *This);
  20919 
  20920     ULONG (STDMETHODCALLTYPE *Release)(
  20921         ISpeechPhraseReplacement *This);
  20922 
  20923     /*** IDispatch methods ***/
  20924     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  20925         ISpeechPhraseReplacement *This,
  20926         UINT *pctinfo);
  20927 
  20928     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  20929         ISpeechPhraseReplacement *This,
  20930         UINT iTInfo,
  20931         LCID lcid,
  20932         ITypeInfo **ppTInfo);
  20933 
  20934     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  20935         ISpeechPhraseReplacement *This,
  20936         REFIID riid,
  20937         LPOLESTR *rgszNames,
  20938         UINT cNames,
  20939         LCID lcid,
  20940         DISPID *rgDispId);
  20941 
  20942     HRESULT (STDMETHODCALLTYPE *Invoke)(
  20943         ISpeechPhraseReplacement *This,
  20944         DISPID dispIdMember,
  20945         REFIID riid,
  20946         LCID lcid,
  20947         WORD wFlags,
  20948         DISPPARAMS *pDispParams,
  20949         VARIANT *pVarResult,
  20950         EXCEPINFO *pExcepInfo,
  20951         UINT *puArgErr);
  20952 
  20953     /*** ISpeechPhraseReplacement methods ***/
  20954     HRESULT (STDMETHODCALLTYPE *get_DisplayAttributes)(
  20955         ISpeechPhraseReplacement *This,
  20956         SpeechDisplayAttributes *DisplayAttributes);
  20957 
  20958     HRESULT (STDMETHODCALLTYPE *get_Text)(
  20959         ISpeechPhraseReplacement *This,
  20960         BSTR *Text);
  20961 
  20962     HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
  20963         ISpeechPhraseReplacement *This,
  20964         LONG *FirstElement);
  20965 
  20966     HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
  20967         ISpeechPhraseReplacement *This,
  20968         LONG *NumberOfElements);
  20969 
  20970     END_INTERFACE
  20971 } ISpeechPhraseReplacementVtbl;
  20972 
  20973 interface ISpeechPhraseReplacement {
  20974     CONST_VTBL ISpeechPhraseReplacementVtbl* lpVtbl;
  20975 };
  20976 
  20977 #ifdef COBJMACROS
  20978 #ifndef WIDL_C_INLINE_WRAPPERS
  20979 /*** IUnknown methods ***/
  20980 #define ISpeechPhraseReplacement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  20981 #define ISpeechPhraseReplacement_AddRef(This) (This)->lpVtbl->AddRef(This)
  20982 #define ISpeechPhraseReplacement_Release(This) (This)->lpVtbl->Release(This)
  20983 /*** IDispatch methods ***/
  20984 #define ISpeechPhraseReplacement_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  20985 #define ISpeechPhraseReplacement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  20986 #define ISpeechPhraseReplacement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  20987 #define ISpeechPhraseReplacement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  20988 /*** ISpeechPhraseReplacement methods ***/
  20989 #define ISpeechPhraseReplacement_get_DisplayAttributes(This,DisplayAttributes) (This)->lpVtbl->get_DisplayAttributes(This,DisplayAttributes)
  20990 #define ISpeechPhraseReplacement_get_Text(This,Text) (This)->lpVtbl->get_Text(This,Text)
  20991 #define ISpeechPhraseReplacement_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
  20992 #define ISpeechPhraseReplacement_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
  20993 #else
  20994 /*** IUnknown methods ***/
  20995 static inline HRESULT ISpeechPhraseReplacement_QueryInterface(ISpeechPhraseReplacement* This,REFIID riid,void **ppvObject) {
  20996     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  20997 }
  20998 static inline ULONG ISpeechPhraseReplacement_AddRef(ISpeechPhraseReplacement* This) {
  20999     return This->lpVtbl->AddRef(This);
  21000 }
  21001 static inline ULONG ISpeechPhraseReplacement_Release(ISpeechPhraseReplacement* This) {
  21002     return This->lpVtbl->Release(This);
  21003 }
  21004 /*** IDispatch methods ***/
  21005 static inline HRESULT ISpeechPhraseReplacement_GetTypeInfoCount(ISpeechPhraseReplacement* This,UINT *pctinfo) {
  21006     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  21007 }
  21008 static inline HRESULT ISpeechPhraseReplacement_GetTypeInfo(ISpeechPhraseReplacement* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  21009     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  21010 }
  21011 static inline HRESULT ISpeechPhraseReplacement_GetIDsOfNames(ISpeechPhraseReplacement* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  21012     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  21013 }
  21014 static inline HRESULT ISpeechPhraseReplacement_Invoke(ISpeechPhraseReplacement* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  21015     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  21016 }
  21017 /*** ISpeechPhraseReplacement methods ***/
  21018 static inline HRESULT ISpeechPhraseReplacement_get_DisplayAttributes(ISpeechPhraseReplacement* This,SpeechDisplayAttributes *DisplayAttributes) {
  21019     return This->lpVtbl->get_DisplayAttributes(This,DisplayAttributes);
  21020 }
  21021 static inline HRESULT ISpeechPhraseReplacement_get_Text(ISpeechPhraseReplacement* This,BSTR *Text) {
  21022     return This->lpVtbl->get_Text(This,Text);
  21023 }
  21024 static inline HRESULT ISpeechPhraseReplacement_get_FirstElement(ISpeechPhraseReplacement* This,LONG *FirstElement) {
  21025     return This->lpVtbl->get_FirstElement(This,FirstElement);
  21026 }
  21027 static inline HRESULT ISpeechPhraseReplacement_get_NumberOfElements(ISpeechPhraseReplacement* This,LONG *NumberOfElements) {
  21028     return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
  21029 }
  21030 #endif
  21031 #endif
  21032 
  21033 #endif
  21034 
  21035 
  21036 #endif  /* __ISpeechPhraseReplacement_INTERFACE_DEFINED__ */
  21037 
  21038 /*****************************************************************************
  21039  * ISpeechPhraseReplacements interface
  21040  */
  21041 #ifndef __ISpeechPhraseReplacements_INTERFACE_DEFINED__
  21042 #define __ISpeechPhraseReplacements_INTERFACE_DEFINED__
  21043 
  21044 DEFINE_GUID(IID_ISpeechPhraseReplacements, 0x38bc662f, 0x2257, 0x4525, 0x95,0x9e, 0x20,0x69,0xd2,0x59,0x6c,0x05);
  21045 #if defined(__cplusplus) && !defined(CINTERFACE)
  21046 MIDL_INTERFACE("38bc662f-2257-4525-959e-2069d2596c05")
  21047 ISpeechPhraseReplacements : public IDispatch
  21048 {
  21049     virtual HRESULT STDMETHODCALLTYPE get_Count(
  21050         LONG *Count) = 0;
  21051 
  21052     virtual HRESULT STDMETHODCALLTYPE Item(
  21053         LONG Index,
  21054         ISpeechPhraseReplacement **Reps) = 0;
  21055 
  21056     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
  21057         IUnknown **EnumVARIANT) = 0;
  21058 
  21059 };
  21060 #ifdef __CRT_UUID_DECL
  21061 __CRT_UUID_DECL(ISpeechPhraseReplacements, 0x38bc662f, 0x2257, 0x4525, 0x95,0x9e, 0x20,0x69,0xd2,0x59,0x6c,0x05)
  21062 #endif
  21063 #else
  21064 typedef struct ISpeechPhraseReplacementsVtbl {
  21065     BEGIN_INTERFACE
  21066 
  21067     /*** IUnknown methods ***/
  21068     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  21069         ISpeechPhraseReplacements *This,
  21070         REFIID riid,
  21071         void **ppvObject);
  21072 
  21073     ULONG (STDMETHODCALLTYPE *AddRef)(
  21074         ISpeechPhraseReplacements *This);
  21075 
  21076     ULONG (STDMETHODCALLTYPE *Release)(
  21077         ISpeechPhraseReplacements *This);
  21078 
  21079     /*** IDispatch methods ***/
  21080     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  21081         ISpeechPhraseReplacements *This,
  21082         UINT *pctinfo);
  21083 
  21084     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  21085         ISpeechPhraseReplacements *This,
  21086         UINT iTInfo,
  21087         LCID lcid,
  21088         ITypeInfo **ppTInfo);
  21089 
  21090     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  21091         ISpeechPhraseReplacements *This,
  21092         REFIID riid,
  21093         LPOLESTR *rgszNames,
  21094         UINT cNames,
  21095         LCID lcid,
  21096         DISPID *rgDispId);
  21097 
  21098     HRESULT (STDMETHODCALLTYPE *Invoke)(
  21099         ISpeechPhraseReplacements *This,
  21100         DISPID dispIdMember,
  21101         REFIID riid,
  21102         LCID lcid,
  21103         WORD wFlags,
  21104         DISPPARAMS *pDispParams,
  21105         VARIANT *pVarResult,
  21106         EXCEPINFO *pExcepInfo,
  21107         UINT *puArgErr);
  21108 
  21109     /*** ISpeechPhraseReplacements methods ***/
  21110     HRESULT (STDMETHODCALLTYPE *get_Count)(
  21111         ISpeechPhraseReplacements *This,
  21112         LONG *Count);
  21113 
  21114     HRESULT (STDMETHODCALLTYPE *Item)(
  21115         ISpeechPhraseReplacements *This,
  21116         LONG Index,
  21117         ISpeechPhraseReplacement **Reps);
  21118 
  21119     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
  21120         ISpeechPhraseReplacements *This,
  21121         IUnknown **EnumVARIANT);
  21122 
  21123     END_INTERFACE
  21124 } ISpeechPhraseReplacementsVtbl;
  21125 
  21126 interface ISpeechPhraseReplacements {
  21127     CONST_VTBL ISpeechPhraseReplacementsVtbl* lpVtbl;
  21128 };
  21129 
  21130 #ifdef COBJMACROS
  21131 #ifndef WIDL_C_INLINE_WRAPPERS
  21132 /*** IUnknown methods ***/
  21133 #define ISpeechPhraseReplacements_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  21134 #define ISpeechPhraseReplacements_AddRef(This) (This)->lpVtbl->AddRef(This)
  21135 #define ISpeechPhraseReplacements_Release(This) (This)->lpVtbl->Release(This)
  21136 /*** IDispatch methods ***/
  21137 #define ISpeechPhraseReplacements_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  21138 #define ISpeechPhraseReplacements_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  21139 #define ISpeechPhraseReplacements_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  21140 #define ISpeechPhraseReplacements_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  21141 /*** ISpeechPhraseReplacements methods ***/
  21142 #define ISpeechPhraseReplacements_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
  21143 #define ISpeechPhraseReplacements_Item(This,Index,Reps) (This)->lpVtbl->Item(This,Index,Reps)
  21144 #define ISpeechPhraseReplacements_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
  21145 #else
  21146 /*** IUnknown methods ***/
  21147 static inline HRESULT ISpeechPhraseReplacements_QueryInterface(ISpeechPhraseReplacements* This,REFIID riid,void **ppvObject) {
  21148     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  21149 }
  21150 static inline ULONG ISpeechPhraseReplacements_AddRef(ISpeechPhraseReplacements* This) {
  21151     return This->lpVtbl->AddRef(This);
  21152 }
  21153 static inline ULONG ISpeechPhraseReplacements_Release(ISpeechPhraseReplacements* This) {
  21154     return This->lpVtbl->Release(This);
  21155 }
  21156 /*** IDispatch methods ***/
  21157 static inline HRESULT ISpeechPhraseReplacements_GetTypeInfoCount(ISpeechPhraseReplacements* This,UINT *pctinfo) {
  21158     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  21159 }
  21160 static inline HRESULT ISpeechPhraseReplacements_GetTypeInfo(ISpeechPhraseReplacements* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  21161     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  21162 }
  21163 static inline HRESULT ISpeechPhraseReplacements_GetIDsOfNames(ISpeechPhraseReplacements* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  21164     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  21165 }
  21166 static inline HRESULT ISpeechPhraseReplacements_Invoke(ISpeechPhraseReplacements* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  21167     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  21168 }
  21169 /*** ISpeechPhraseReplacements methods ***/
  21170 static inline HRESULT ISpeechPhraseReplacements_get_Count(ISpeechPhraseReplacements* This,LONG *Count) {
  21171     return This->lpVtbl->get_Count(This,Count);
  21172 }
  21173 static inline HRESULT ISpeechPhraseReplacements_Item(ISpeechPhraseReplacements* This,LONG Index,ISpeechPhraseReplacement **Reps) {
  21174     return This->lpVtbl->Item(This,Index,Reps);
  21175 }
  21176 static inline HRESULT ISpeechPhraseReplacements_get__NewEnum(ISpeechPhraseReplacements* This,IUnknown **EnumVARIANT) {
  21177     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
  21178 }
  21179 #endif
  21180 #endif
  21181 
  21182 #endif
  21183 
  21184 
  21185 #endif  /* __ISpeechPhraseReplacements_INTERFACE_DEFINED__ */
  21186 
  21187 /*****************************************************************************
  21188  * ISpeechPhraseProperty interface
  21189  */
  21190 #ifndef __ISpeechPhraseProperty_INTERFACE_DEFINED__
  21191 #define __ISpeechPhraseProperty_INTERFACE_DEFINED__
  21192 
  21193 DEFINE_GUID(IID_ISpeechPhraseProperty, 0xce563d48, 0x961e, 0x4732, 0xa2,0xe1, 0x37,0x8a,0x42,0xb4,0x30,0xbe);
  21194 #if defined(__cplusplus) && !defined(CINTERFACE)
  21195 MIDL_INTERFACE("ce563d48-961e-4732-a2e1-378a42b430be")
  21196 ISpeechPhraseProperty : public IDispatch
  21197 {
  21198     virtual HRESULT STDMETHODCALLTYPE get_Name(
  21199         BSTR *Name) = 0;
  21200 
  21201     virtual HRESULT STDMETHODCALLTYPE get_Id(
  21202         LONG *Id) = 0;
  21203 
  21204     virtual HRESULT STDMETHODCALLTYPE get_Value(
  21205         VARIANT *Value) = 0;
  21206 
  21207     virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
  21208         LONG *FirstElement) = 0;
  21209 
  21210     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
  21211         LONG *NumberOfElements) = 0;
  21212 
  21213     virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
  21214         float *Confidence) = 0;
  21215 
  21216     virtual HRESULT STDMETHODCALLTYPE get_Confidence(
  21217         SpeechEngineConfidence *Confidence) = 0;
  21218 
  21219     virtual HRESULT STDMETHODCALLTYPE get_Parent(
  21220         ISpeechPhraseProperty **ParentProperty) = 0;
  21221 
  21222     virtual HRESULT STDMETHODCALLTYPE get_Children(
  21223         ISpeechPhraseProperties **Children) = 0;
  21224 
  21225 };
  21226 #ifdef __CRT_UUID_DECL
  21227 __CRT_UUID_DECL(ISpeechPhraseProperty, 0xce563d48, 0x961e, 0x4732, 0xa2,0xe1, 0x37,0x8a,0x42,0xb4,0x30,0xbe)
  21228 #endif
  21229 #else
  21230 typedef struct ISpeechPhrasePropertyVtbl {
  21231     BEGIN_INTERFACE
  21232 
  21233     /*** IUnknown methods ***/
  21234     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  21235         ISpeechPhraseProperty *This,
  21236         REFIID riid,
  21237         void **ppvObject);
  21238 
  21239     ULONG (STDMETHODCALLTYPE *AddRef)(
  21240         ISpeechPhraseProperty *This);
  21241 
  21242     ULONG (STDMETHODCALLTYPE *Release)(
  21243         ISpeechPhraseProperty *This);
  21244 
  21245     /*** IDispatch methods ***/
  21246     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  21247         ISpeechPhraseProperty *This,
  21248         UINT *pctinfo);
  21249 
  21250     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  21251         ISpeechPhraseProperty *This,
  21252         UINT iTInfo,
  21253         LCID lcid,
  21254         ITypeInfo **ppTInfo);
  21255 
  21256     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  21257         ISpeechPhraseProperty *This,
  21258         REFIID riid,
  21259         LPOLESTR *rgszNames,
  21260         UINT cNames,
  21261         LCID lcid,
  21262         DISPID *rgDispId);
  21263 
  21264     HRESULT (STDMETHODCALLTYPE *Invoke)(
  21265         ISpeechPhraseProperty *This,
  21266         DISPID dispIdMember,
  21267         REFIID riid,
  21268         LCID lcid,
  21269         WORD wFlags,
  21270         DISPPARAMS *pDispParams,
  21271         VARIANT *pVarResult,
  21272         EXCEPINFO *pExcepInfo,
  21273         UINT *puArgErr);
  21274 
  21275     /*** ISpeechPhraseProperty methods ***/
  21276     HRESULT (STDMETHODCALLTYPE *get_Name)(
  21277         ISpeechPhraseProperty *This,
  21278         BSTR *Name);
  21279 
  21280     HRESULT (STDMETHODCALLTYPE *get_Id)(
  21281         ISpeechPhraseProperty *This,
  21282         LONG *Id);
  21283 
  21284     HRESULT (STDMETHODCALLTYPE *get_Value)(
  21285         ISpeechPhraseProperty *This,
  21286         VARIANT *Value);
  21287 
  21288     HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
  21289         ISpeechPhraseProperty *This,
  21290         LONG *FirstElement);
  21291 
  21292     HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
  21293         ISpeechPhraseProperty *This,
  21294         LONG *NumberOfElements);
  21295 
  21296     HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
  21297         ISpeechPhraseProperty *This,
  21298         float *Confidence);
  21299 
  21300     HRESULT (STDMETHODCALLTYPE *get_Confidence)(
  21301         ISpeechPhraseProperty *This,
  21302         SpeechEngineConfidence *Confidence);
  21303 
  21304     HRESULT (STDMETHODCALLTYPE *get_Parent)(
  21305         ISpeechPhraseProperty *This,
  21306         ISpeechPhraseProperty **ParentProperty);
  21307 
  21308     HRESULT (STDMETHODCALLTYPE *get_Children)(
  21309         ISpeechPhraseProperty *This,
  21310         ISpeechPhraseProperties **Children);
  21311 
  21312     END_INTERFACE
  21313 } ISpeechPhrasePropertyVtbl;
  21314 
  21315 interface ISpeechPhraseProperty {
  21316     CONST_VTBL ISpeechPhrasePropertyVtbl* lpVtbl;
  21317 };
  21318 
  21319 #ifdef COBJMACROS
  21320 #ifndef WIDL_C_INLINE_WRAPPERS
  21321 /*** IUnknown methods ***/
  21322 #define ISpeechPhraseProperty_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  21323 #define ISpeechPhraseProperty_AddRef(This) (This)->lpVtbl->AddRef(This)
  21324 #define ISpeechPhraseProperty_Release(This) (This)->lpVtbl->Release(This)
  21325 /*** IDispatch methods ***/
  21326 #define ISpeechPhraseProperty_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  21327 #define ISpeechPhraseProperty_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  21328 #define ISpeechPhraseProperty_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  21329 #define ISpeechPhraseProperty_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  21330 /*** ISpeechPhraseProperty methods ***/
  21331 #define ISpeechPhraseProperty_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
  21332 #define ISpeechPhraseProperty_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
  21333 #define ISpeechPhraseProperty_get_Value(This,Value) (This)->lpVtbl->get_Value(This,Value)
  21334 #define ISpeechPhraseProperty_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
  21335 #define ISpeechPhraseProperty_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
  21336 #define ISpeechPhraseProperty_get_EngineConfidence(This,Confidence) (This)->lpVtbl->get_EngineConfidence(This,Confidence)
  21337 #define ISpeechPhraseProperty_get_Confidence(This,Confidence) (This)->lpVtbl->get_Confidence(This,Confidence)
  21338 #define ISpeechPhraseProperty_get_Parent(This,ParentProperty) (This)->lpVtbl->get_Parent(This,ParentProperty)
  21339 #define ISpeechPhraseProperty_get_Children(This,Children) (This)->lpVtbl->get_Children(This,Children)
  21340 #else
  21341 /*** IUnknown methods ***/
  21342 static inline HRESULT ISpeechPhraseProperty_QueryInterface(ISpeechPhraseProperty* This,REFIID riid,void **ppvObject) {
  21343     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  21344 }
  21345 static inline ULONG ISpeechPhraseProperty_AddRef(ISpeechPhraseProperty* This) {
  21346     return This->lpVtbl->AddRef(This);
  21347 }
  21348 static inline ULONG ISpeechPhraseProperty_Release(ISpeechPhraseProperty* This) {
  21349     return This->lpVtbl->Release(This);
  21350 }
  21351 /*** IDispatch methods ***/
  21352 static inline HRESULT ISpeechPhraseProperty_GetTypeInfoCount(ISpeechPhraseProperty* This,UINT *pctinfo) {
  21353     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  21354 }
  21355 static inline HRESULT ISpeechPhraseProperty_GetTypeInfo(ISpeechPhraseProperty* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  21356     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  21357 }
  21358 static inline HRESULT ISpeechPhraseProperty_GetIDsOfNames(ISpeechPhraseProperty* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  21359     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  21360 }
  21361 static inline HRESULT ISpeechPhraseProperty_Invoke(ISpeechPhraseProperty* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  21362     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  21363 }
  21364 /*** ISpeechPhraseProperty methods ***/
  21365 static inline HRESULT ISpeechPhraseProperty_get_Name(ISpeechPhraseProperty* This,BSTR *Name) {
  21366     return This->lpVtbl->get_Name(This,Name);
  21367 }
  21368 static inline HRESULT ISpeechPhraseProperty_get_Id(ISpeechPhraseProperty* This,LONG *Id) {
  21369     return This->lpVtbl->get_Id(This,Id);
  21370 }
  21371 static inline HRESULT ISpeechPhraseProperty_get_Value(ISpeechPhraseProperty* This,VARIANT *Value) {
  21372     return This->lpVtbl->get_Value(This,Value);
  21373 }
  21374 static inline HRESULT ISpeechPhraseProperty_get_FirstElement(ISpeechPhraseProperty* This,LONG *FirstElement) {
  21375     return This->lpVtbl->get_FirstElement(This,FirstElement);
  21376 }
  21377 static inline HRESULT ISpeechPhraseProperty_get_NumberOfElements(ISpeechPhraseProperty* This,LONG *NumberOfElements) {
  21378     return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
  21379 }
  21380 static inline HRESULT ISpeechPhraseProperty_get_EngineConfidence(ISpeechPhraseProperty* This,float *Confidence) {
  21381     return This->lpVtbl->get_EngineConfidence(This,Confidence);
  21382 }
  21383 static inline HRESULT ISpeechPhraseProperty_get_Confidence(ISpeechPhraseProperty* This,SpeechEngineConfidence *Confidence) {
  21384     return This->lpVtbl->get_Confidence(This,Confidence);
  21385 }
  21386 static inline HRESULT ISpeechPhraseProperty_get_Parent(ISpeechPhraseProperty* This,ISpeechPhraseProperty **ParentProperty) {
  21387     return This->lpVtbl->get_Parent(This,ParentProperty);
  21388 }
  21389 static inline HRESULT ISpeechPhraseProperty_get_Children(ISpeechPhraseProperty* This,ISpeechPhraseProperties **Children) {
  21390     return This->lpVtbl->get_Children(This,Children);
  21391 }
  21392 #endif
  21393 #endif
  21394 
  21395 #endif
  21396 
  21397 
  21398 #endif  /* __ISpeechPhraseProperty_INTERFACE_DEFINED__ */
  21399 
  21400 /*****************************************************************************
  21401  * ISpeechPhraseProperties interface
  21402  */
  21403 #ifndef __ISpeechPhraseProperties_INTERFACE_DEFINED__
  21404 #define __ISpeechPhraseProperties_INTERFACE_DEFINED__
  21405 
  21406 DEFINE_GUID(IID_ISpeechPhraseProperties, 0x08166b47, 0x102e, 0x4b23, 0xa5,0x99, 0xbd,0xb9,0x8d,0xbf,0xd1,0xf4);
  21407 #if defined(__cplusplus) && !defined(CINTERFACE)
  21408 MIDL_INTERFACE("08166b47-102e-4b23-a599-bdb98dbfd1f4")
  21409 ISpeechPhraseProperties : public IDispatch
  21410 {
  21411     virtual HRESULT STDMETHODCALLTYPE get_Count(
  21412         LONG *Count) = 0;
  21413 
  21414     virtual HRESULT STDMETHODCALLTYPE Item(
  21415         LONG Index,
  21416         ISpeechPhraseProperty **Property) = 0;
  21417 
  21418     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
  21419         IUnknown **EnumVARIANT) = 0;
  21420 
  21421 };
  21422 #ifdef __CRT_UUID_DECL
  21423 __CRT_UUID_DECL(ISpeechPhraseProperties, 0x08166b47, 0x102e, 0x4b23, 0xa5,0x99, 0xbd,0xb9,0x8d,0xbf,0xd1,0xf4)
  21424 #endif
  21425 #else
  21426 typedef struct ISpeechPhrasePropertiesVtbl {
  21427     BEGIN_INTERFACE
  21428 
  21429     /*** IUnknown methods ***/
  21430     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  21431         ISpeechPhraseProperties *This,
  21432         REFIID riid,
  21433         void **ppvObject);
  21434 
  21435     ULONG (STDMETHODCALLTYPE *AddRef)(
  21436         ISpeechPhraseProperties *This);
  21437 
  21438     ULONG (STDMETHODCALLTYPE *Release)(
  21439         ISpeechPhraseProperties *This);
  21440 
  21441     /*** IDispatch methods ***/
  21442     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  21443         ISpeechPhraseProperties *This,
  21444         UINT *pctinfo);
  21445 
  21446     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  21447         ISpeechPhraseProperties *This,
  21448         UINT iTInfo,
  21449         LCID lcid,
  21450         ITypeInfo **ppTInfo);
  21451 
  21452     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  21453         ISpeechPhraseProperties *This,
  21454         REFIID riid,
  21455         LPOLESTR *rgszNames,
  21456         UINT cNames,
  21457         LCID lcid,
  21458         DISPID *rgDispId);
  21459 
  21460     HRESULT (STDMETHODCALLTYPE *Invoke)(
  21461         ISpeechPhraseProperties *This,
  21462         DISPID dispIdMember,
  21463         REFIID riid,
  21464         LCID lcid,
  21465         WORD wFlags,
  21466         DISPPARAMS *pDispParams,
  21467         VARIANT *pVarResult,
  21468         EXCEPINFO *pExcepInfo,
  21469         UINT *puArgErr);
  21470 
  21471     /*** ISpeechPhraseProperties methods ***/
  21472     HRESULT (STDMETHODCALLTYPE *get_Count)(
  21473         ISpeechPhraseProperties *This,
  21474         LONG *Count);
  21475 
  21476     HRESULT (STDMETHODCALLTYPE *Item)(
  21477         ISpeechPhraseProperties *This,
  21478         LONG Index,
  21479         ISpeechPhraseProperty **Property);
  21480 
  21481     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
  21482         ISpeechPhraseProperties *This,
  21483         IUnknown **EnumVARIANT);
  21484 
  21485     END_INTERFACE
  21486 } ISpeechPhrasePropertiesVtbl;
  21487 
  21488 interface ISpeechPhraseProperties {
  21489     CONST_VTBL ISpeechPhrasePropertiesVtbl* lpVtbl;
  21490 };
  21491 
  21492 #ifdef COBJMACROS
  21493 #ifndef WIDL_C_INLINE_WRAPPERS
  21494 /*** IUnknown methods ***/
  21495 #define ISpeechPhraseProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  21496 #define ISpeechPhraseProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
  21497 #define ISpeechPhraseProperties_Release(This) (This)->lpVtbl->Release(This)
  21498 /*** IDispatch methods ***/
  21499 #define ISpeechPhraseProperties_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  21500 #define ISpeechPhraseProperties_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  21501 #define ISpeechPhraseProperties_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  21502 #define ISpeechPhraseProperties_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  21503 /*** ISpeechPhraseProperties methods ***/
  21504 #define ISpeechPhraseProperties_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
  21505 #define ISpeechPhraseProperties_Item(This,Index,Property) (This)->lpVtbl->Item(This,Index,Property)
  21506 #define ISpeechPhraseProperties_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
  21507 #else
  21508 /*** IUnknown methods ***/
  21509 static inline HRESULT ISpeechPhraseProperties_QueryInterface(ISpeechPhraseProperties* This,REFIID riid,void **ppvObject) {
  21510     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  21511 }
  21512 static inline ULONG ISpeechPhraseProperties_AddRef(ISpeechPhraseProperties* This) {
  21513     return This->lpVtbl->AddRef(This);
  21514 }
  21515 static inline ULONG ISpeechPhraseProperties_Release(ISpeechPhraseProperties* This) {
  21516     return This->lpVtbl->Release(This);
  21517 }
  21518 /*** IDispatch methods ***/
  21519 static inline HRESULT ISpeechPhraseProperties_GetTypeInfoCount(ISpeechPhraseProperties* This,UINT *pctinfo) {
  21520     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  21521 }
  21522 static inline HRESULT ISpeechPhraseProperties_GetTypeInfo(ISpeechPhraseProperties* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  21523     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  21524 }
  21525 static inline HRESULT ISpeechPhraseProperties_GetIDsOfNames(ISpeechPhraseProperties* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  21526     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  21527 }
  21528 static inline HRESULT ISpeechPhraseProperties_Invoke(ISpeechPhraseProperties* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  21529     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  21530 }
  21531 /*** ISpeechPhraseProperties methods ***/
  21532 static inline HRESULT ISpeechPhraseProperties_get_Count(ISpeechPhraseProperties* This,LONG *Count) {
  21533     return This->lpVtbl->get_Count(This,Count);
  21534 }
  21535 static inline HRESULT ISpeechPhraseProperties_Item(ISpeechPhraseProperties* This,LONG Index,ISpeechPhraseProperty **Property) {
  21536     return This->lpVtbl->Item(This,Index,Property);
  21537 }
  21538 static inline HRESULT ISpeechPhraseProperties_get__NewEnum(ISpeechPhraseProperties* This,IUnknown **EnumVARIANT) {
  21539     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
  21540 }
  21541 #endif
  21542 #endif
  21543 
  21544 #endif
  21545 
  21546 
  21547 #endif  /* __ISpeechPhraseProperties_INTERFACE_DEFINED__ */
  21548 
  21549 /*****************************************************************************
  21550  * ISpeechPhraseRule interface
  21551  */
  21552 #ifndef __ISpeechPhraseRule_INTERFACE_DEFINED__
  21553 #define __ISpeechPhraseRule_INTERFACE_DEFINED__
  21554 
  21555 DEFINE_GUID(IID_ISpeechPhraseRule, 0xa7bfe112, 0xa4a0, 0x48d9, 0xb6,0x02, 0xc3,0x13,0x84,0x3f,0x69,0x64);
  21556 #if defined(__cplusplus) && !defined(CINTERFACE)
  21557 MIDL_INTERFACE("a7bfe112-a4a0-48d9-b602-c313843f6964")
  21558 ISpeechPhraseRule : public IDispatch
  21559 {
  21560     virtual HRESULT STDMETHODCALLTYPE get_Name(
  21561         BSTR *Name) = 0;
  21562 
  21563     virtual HRESULT STDMETHODCALLTYPE get_Id(
  21564         LONG *Id) = 0;
  21565 
  21566     virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
  21567         LONG *FirstElement) = 0;
  21568 
  21569     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
  21570         LONG *NumberOfElements) = 0;
  21571 
  21572     virtual HRESULT STDMETHODCALLTYPE get_Parent(
  21573         ISpeechPhraseRule **Parent) = 0;
  21574 
  21575     virtual HRESULT STDMETHODCALLTYPE get_Children(
  21576         ISpeechPhraseRules **Children) = 0;
  21577 
  21578     virtual HRESULT STDMETHODCALLTYPE get_Confidence(
  21579         SpeechEngineConfidence *ActualConfidence) = 0;
  21580 
  21581     virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
  21582         float *EngineConfidence) = 0;
  21583 
  21584 };
  21585 #ifdef __CRT_UUID_DECL
  21586 __CRT_UUID_DECL(ISpeechPhraseRule, 0xa7bfe112, 0xa4a0, 0x48d9, 0xb6,0x02, 0xc3,0x13,0x84,0x3f,0x69,0x64)
  21587 #endif
  21588 #else
  21589 typedef struct ISpeechPhraseRuleVtbl {
  21590     BEGIN_INTERFACE
  21591 
  21592     /*** IUnknown methods ***/
  21593     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  21594         ISpeechPhraseRule *This,
  21595         REFIID riid,
  21596         void **ppvObject);
  21597 
  21598     ULONG (STDMETHODCALLTYPE *AddRef)(
  21599         ISpeechPhraseRule *This);
  21600 
  21601     ULONG (STDMETHODCALLTYPE *Release)(
  21602         ISpeechPhraseRule *This);
  21603 
  21604     /*** IDispatch methods ***/
  21605     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  21606         ISpeechPhraseRule *This,
  21607         UINT *pctinfo);
  21608 
  21609     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  21610         ISpeechPhraseRule *This,
  21611         UINT iTInfo,
  21612         LCID lcid,
  21613         ITypeInfo **ppTInfo);
  21614 
  21615     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  21616         ISpeechPhraseRule *This,
  21617         REFIID riid,
  21618         LPOLESTR *rgszNames,
  21619         UINT cNames,
  21620         LCID lcid,
  21621         DISPID *rgDispId);
  21622 
  21623     HRESULT (STDMETHODCALLTYPE *Invoke)(
  21624         ISpeechPhraseRule *This,
  21625         DISPID dispIdMember,
  21626         REFIID riid,
  21627         LCID lcid,
  21628         WORD wFlags,
  21629         DISPPARAMS *pDispParams,
  21630         VARIANT *pVarResult,
  21631         EXCEPINFO *pExcepInfo,
  21632         UINT *puArgErr);
  21633 
  21634     /*** ISpeechPhraseRule methods ***/
  21635     HRESULT (STDMETHODCALLTYPE *get_Name)(
  21636         ISpeechPhraseRule *This,
  21637         BSTR *Name);
  21638 
  21639     HRESULT (STDMETHODCALLTYPE *get_Id)(
  21640         ISpeechPhraseRule *This,
  21641         LONG *Id);
  21642 
  21643     HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
  21644         ISpeechPhraseRule *This,
  21645         LONG *FirstElement);
  21646 
  21647     HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
  21648         ISpeechPhraseRule *This,
  21649         LONG *NumberOfElements);
  21650 
  21651     HRESULT (STDMETHODCALLTYPE *get_Parent)(
  21652         ISpeechPhraseRule *This,
  21653         ISpeechPhraseRule **Parent);
  21654 
  21655     HRESULT (STDMETHODCALLTYPE *get_Children)(
  21656         ISpeechPhraseRule *This,
  21657         ISpeechPhraseRules **Children);
  21658 
  21659     HRESULT (STDMETHODCALLTYPE *get_Confidence)(
  21660         ISpeechPhraseRule *This,
  21661         SpeechEngineConfidence *ActualConfidence);
  21662 
  21663     HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
  21664         ISpeechPhraseRule *This,
  21665         float *EngineConfidence);
  21666 
  21667     END_INTERFACE
  21668 } ISpeechPhraseRuleVtbl;
  21669 
  21670 interface ISpeechPhraseRule {
  21671     CONST_VTBL ISpeechPhraseRuleVtbl* lpVtbl;
  21672 };
  21673 
  21674 #ifdef COBJMACROS
  21675 #ifndef WIDL_C_INLINE_WRAPPERS
  21676 /*** IUnknown methods ***/
  21677 #define ISpeechPhraseRule_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  21678 #define ISpeechPhraseRule_AddRef(This) (This)->lpVtbl->AddRef(This)
  21679 #define ISpeechPhraseRule_Release(This) (This)->lpVtbl->Release(This)
  21680 /*** IDispatch methods ***/
  21681 #define ISpeechPhraseRule_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  21682 #define ISpeechPhraseRule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  21683 #define ISpeechPhraseRule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  21684 #define ISpeechPhraseRule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  21685 /*** ISpeechPhraseRule methods ***/
  21686 #define ISpeechPhraseRule_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
  21687 #define ISpeechPhraseRule_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
  21688 #define ISpeechPhraseRule_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
  21689 #define ISpeechPhraseRule_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
  21690 #define ISpeechPhraseRule_get_Parent(This,Parent) (This)->lpVtbl->get_Parent(This,Parent)
  21691 #define ISpeechPhraseRule_get_Children(This,Children) (This)->lpVtbl->get_Children(This,Children)
  21692 #define ISpeechPhraseRule_get_Confidence(This,ActualConfidence) (This)->lpVtbl->get_Confidence(This,ActualConfidence)
  21693 #define ISpeechPhraseRule_get_EngineConfidence(This,EngineConfidence) (This)->lpVtbl->get_EngineConfidence(This,EngineConfidence)
  21694 #else
  21695 /*** IUnknown methods ***/
  21696 static inline HRESULT ISpeechPhraseRule_QueryInterface(ISpeechPhraseRule* This,REFIID riid,void **ppvObject) {
  21697     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  21698 }
  21699 static inline ULONG ISpeechPhraseRule_AddRef(ISpeechPhraseRule* This) {
  21700     return This->lpVtbl->AddRef(This);
  21701 }
  21702 static inline ULONG ISpeechPhraseRule_Release(ISpeechPhraseRule* This) {
  21703     return This->lpVtbl->Release(This);
  21704 }
  21705 /*** IDispatch methods ***/
  21706 static inline HRESULT ISpeechPhraseRule_GetTypeInfoCount(ISpeechPhraseRule* This,UINT *pctinfo) {
  21707     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  21708 }
  21709 static inline HRESULT ISpeechPhraseRule_GetTypeInfo(ISpeechPhraseRule* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  21710     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  21711 }
  21712 static inline HRESULT ISpeechPhraseRule_GetIDsOfNames(ISpeechPhraseRule* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  21713     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  21714 }
  21715 static inline HRESULT ISpeechPhraseRule_Invoke(ISpeechPhraseRule* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  21716     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  21717 }
  21718 /*** ISpeechPhraseRule methods ***/
  21719 static inline HRESULT ISpeechPhraseRule_get_Name(ISpeechPhraseRule* This,BSTR *Name) {
  21720     return This->lpVtbl->get_Name(This,Name);
  21721 }
  21722 static inline HRESULT ISpeechPhraseRule_get_Id(ISpeechPhraseRule* This,LONG *Id) {
  21723     return This->lpVtbl->get_Id(This,Id);
  21724 }
  21725 static inline HRESULT ISpeechPhraseRule_get_FirstElement(ISpeechPhraseRule* This,LONG *FirstElement) {
  21726     return This->lpVtbl->get_FirstElement(This,FirstElement);
  21727 }
  21728 static inline HRESULT ISpeechPhraseRule_get_NumberOfElements(ISpeechPhraseRule* This,LONG *NumberOfElements) {
  21729     return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
  21730 }
  21731 static inline HRESULT ISpeechPhraseRule_get_Parent(ISpeechPhraseRule* This,ISpeechPhraseRule **Parent) {
  21732     return This->lpVtbl->get_Parent(This,Parent);
  21733 }
  21734 static inline HRESULT ISpeechPhraseRule_get_Children(ISpeechPhraseRule* This,ISpeechPhraseRules **Children) {
  21735     return This->lpVtbl->get_Children(This,Children);
  21736 }
  21737 static inline HRESULT ISpeechPhraseRule_get_Confidence(ISpeechPhraseRule* This,SpeechEngineConfidence *ActualConfidence) {
  21738     return This->lpVtbl->get_Confidence(This,ActualConfidence);
  21739 }
  21740 static inline HRESULT ISpeechPhraseRule_get_EngineConfidence(ISpeechPhraseRule* This,float *EngineConfidence) {
  21741     return This->lpVtbl->get_EngineConfidence(This,EngineConfidence);
  21742 }
  21743 #endif
  21744 #endif
  21745 
  21746 #endif
  21747 
  21748 
  21749 #endif  /* __ISpeechPhraseRule_INTERFACE_DEFINED__ */
  21750 
  21751 /*****************************************************************************
  21752  * ISpeechPhraseRules interface
  21753  */
  21754 #ifndef __ISpeechPhraseRules_INTERFACE_DEFINED__
  21755 #define __ISpeechPhraseRules_INTERFACE_DEFINED__
  21756 
  21757 DEFINE_GUID(IID_ISpeechPhraseRules, 0x9047d593, 0x01dd, 0x4b72, 0x81,0xa3, 0xe4,0xa0,0xca,0x69,0xf4,0x07);
  21758 #if defined(__cplusplus) && !defined(CINTERFACE)
  21759 MIDL_INTERFACE("9047d593-01dd-4b72-81a3-e4a0ca69f407")
  21760 ISpeechPhraseRules : public IDispatch
  21761 {
  21762     virtual HRESULT STDMETHODCALLTYPE get_Count(
  21763         LONG *Count) = 0;
  21764 
  21765     virtual HRESULT STDMETHODCALLTYPE Item(
  21766         LONG Index,
  21767         ISpeechPhraseRule **Rule) = 0;
  21768 
  21769     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
  21770         IUnknown **EnumVARIANT) = 0;
  21771 
  21772 };
  21773 #ifdef __CRT_UUID_DECL
  21774 __CRT_UUID_DECL(ISpeechPhraseRules, 0x9047d593, 0x01dd, 0x4b72, 0x81,0xa3, 0xe4,0xa0,0xca,0x69,0xf4,0x07)
  21775 #endif
  21776 #else
  21777 typedef struct ISpeechPhraseRulesVtbl {
  21778     BEGIN_INTERFACE
  21779 
  21780     /*** IUnknown methods ***/
  21781     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  21782         ISpeechPhraseRules *This,
  21783         REFIID riid,
  21784         void **ppvObject);
  21785 
  21786     ULONG (STDMETHODCALLTYPE *AddRef)(
  21787         ISpeechPhraseRules *This);
  21788 
  21789     ULONG (STDMETHODCALLTYPE *Release)(
  21790         ISpeechPhraseRules *This);
  21791 
  21792     /*** IDispatch methods ***/
  21793     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  21794         ISpeechPhraseRules *This,
  21795         UINT *pctinfo);
  21796 
  21797     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  21798         ISpeechPhraseRules *This,
  21799         UINT iTInfo,
  21800         LCID lcid,
  21801         ITypeInfo **ppTInfo);
  21802 
  21803     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  21804         ISpeechPhraseRules *This,
  21805         REFIID riid,
  21806         LPOLESTR *rgszNames,
  21807         UINT cNames,
  21808         LCID lcid,
  21809         DISPID *rgDispId);
  21810 
  21811     HRESULT (STDMETHODCALLTYPE *Invoke)(
  21812         ISpeechPhraseRules *This,
  21813         DISPID dispIdMember,
  21814         REFIID riid,
  21815         LCID lcid,
  21816         WORD wFlags,
  21817         DISPPARAMS *pDispParams,
  21818         VARIANT *pVarResult,
  21819         EXCEPINFO *pExcepInfo,
  21820         UINT *puArgErr);
  21821 
  21822     /*** ISpeechPhraseRules methods ***/
  21823     HRESULT (STDMETHODCALLTYPE *get_Count)(
  21824         ISpeechPhraseRules *This,
  21825         LONG *Count);
  21826 
  21827     HRESULT (STDMETHODCALLTYPE *Item)(
  21828         ISpeechPhraseRules *This,
  21829         LONG Index,
  21830         ISpeechPhraseRule **Rule);
  21831 
  21832     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
  21833         ISpeechPhraseRules *This,
  21834         IUnknown **EnumVARIANT);
  21835 
  21836     END_INTERFACE
  21837 } ISpeechPhraseRulesVtbl;
  21838 
  21839 interface ISpeechPhraseRules {
  21840     CONST_VTBL ISpeechPhraseRulesVtbl* lpVtbl;
  21841 };
  21842 
  21843 #ifdef COBJMACROS
  21844 #ifndef WIDL_C_INLINE_WRAPPERS
  21845 /*** IUnknown methods ***/
  21846 #define ISpeechPhraseRules_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  21847 #define ISpeechPhraseRules_AddRef(This) (This)->lpVtbl->AddRef(This)
  21848 #define ISpeechPhraseRules_Release(This) (This)->lpVtbl->Release(This)
  21849 /*** IDispatch methods ***/
  21850 #define ISpeechPhraseRules_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  21851 #define ISpeechPhraseRules_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  21852 #define ISpeechPhraseRules_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  21853 #define ISpeechPhraseRules_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  21854 /*** ISpeechPhraseRules methods ***/
  21855 #define ISpeechPhraseRules_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
  21856 #define ISpeechPhraseRules_Item(This,Index,Rule) (This)->lpVtbl->Item(This,Index,Rule)
  21857 #define ISpeechPhraseRules_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
  21858 #else
  21859 /*** IUnknown methods ***/
  21860 static inline HRESULT ISpeechPhraseRules_QueryInterface(ISpeechPhraseRules* This,REFIID riid,void **ppvObject) {
  21861     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  21862 }
  21863 static inline ULONG ISpeechPhraseRules_AddRef(ISpeechPhraseRules* This) {
  21864     return This->lpVtbl->AddRef(This);
  21865 }
  21866 static inline ULONG ISpeechPhraseRules_Release(ISpeechPhraseRules* This) {
  21867     return This->lpVtbl->Release(This);
  21868 }
  21869 /*** IDispatch methods ***/
  21870 static inline HRESULT ISpeechPhraseRules_GetTypeInfoCount(ISpeechPhraseRules* This,UINT *pctinfo) {
  21871     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  21872 }
  21873 static inline HRESULT ISpeechPhraseRules_GetTypeInfo(ISpeechPhraseRules* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  21874     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  21875 }
  21876 static inline HRESULT ISpeechPhraseRules_GetIDsOfNames(ISpeechPhraseRules* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  21877     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  21878 }
  21879 static inline HRESULT ISpeechPhraseRules_Invoke(ISpeechPhraseRules* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  21880     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  21881 }
  21882 /*** ISpeechPhraseRules methods ***/
  21883 static inline HRESULT ISpeechPhraseRules_get_Count(ISpeechPhraseRules* This,LONG *Count) {
  21884     return This->lpVtbl->get_Count(This,Count);
  21885 }
  21886 static inline HRESULT ISpeechPhraseRules_Item(ISpeechPhraseRules* This,LONG Index,ISpeechPhraseRule **Rule) {
  21887     return This->lpVtbl->Item(This,Index,Rule);
  21888 }
  21889 static inline HRESULT ISpeechPhraseRules_get__NewEnum(ISpeechPhraseRules* This,IUnknown **EnumVARIANT) {
  21890     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
  21891 }
  21892 #endif
  21893 #endif
  21894 
  21895 #endif
  21896 
  21897 
  21898 #endif  /* __ISpeechPhraseRules_INTERFACE_DEFINED__ */
  21899 
  21900 /*****************************************************************************
  21901  * ISpeechLexiconWords interface
  21902  */
  21903 #ifndef __ISpeechLexiconWords_INTERFACE_DEFINED__
  21904 #define __ISpeechLexiconWords_INTERFACE_DEFINED__
  21905 
  21906 DEFINE_GUID(IID_ISpeechLexiconWords, 0x8d199862, 0x415e, 0x47d5, 0xac,0x4f, 0xfa,0xa6,0x08,0xb4,0x24,0xe6);
  21907 #if defined(__cplusplus) && !defined(CINTERFACE)
  21908 MIDL_INTERFACE("8d199862-415e-47d5-ac4f-faa608b424e6")
  21909 ISpeechLexiconWords : public IDispatch
  21910 {
  21911     virtual HRESULT STDMETHODCALLTYPE get_Count(
  21912         LONG *Count) = 0;
  21913 
  21914     virtual HRESULT STDMETHODCALLTYPE Item(
  21915         LONG Index,
  21916         ISpeechLexiconWord **Word) = 0;
  21917 
  21918     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
  21919         IUnknown **EnumVARIANT) = 0;
  21920 
  21921 };
  21922 #ifdef __CRT_UUID_DECL
  21923 __CRT_UUID_DECL(ISpeechLexiconWords, 0x8d199862, 0x415e, 0x47d5, 0xac,0x4f, 0xfa,0xa6,0x08,0xb4,0x24,0xe6)
  21924 #endif
  21925 #else
  21926 typedef struct ISpeechLexiconWordsVtbl {
  21927     BEGIN_INTERFACE
  21928 
  21929     /*** IUnknown methods ***/
  21930     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  21931         ISpeechLexiconWords *This,
  21932         REFIID riid,
  21933         void **ppvObject);
  21934 
  21935     ULONG (STDMETHODCALLTYPE *AddRef)(
  21936         ISpeechLexiconWords *This);
  21937 
  21938     ULONG (STDMETHODCALLTYPE *Release)(
  21939         ISpeechLexiconWords *This);
  21940 
  21941     /*** IDispatch methods ***/
  21942     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  21943         ISpeechLexiconWords *This,
  21944         UINT *pctinfo);
  21945 
  21946     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  21947         ISpeechLexiconWords *This,
  21948         UINT iTInfo,
  21949         LCID lcid,
  21950         ITypeInfo **ppTInfo);
  21951 
  21952     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  21953         ISpeechLexiconWords *This,
  21954         REFIID riid,
  21955         LPOLESTR *rgszNames,
  21956         UINT cNames,
  21957         LCID lcid,
  21958         DISPID *rgDispId);
  21959 
  21960     HRESULT (STDMETHODCALLTYPE *Invoke)(
  21961         ISpeechLexiconWords *This,
  21962         DISPID dispIdMember,
  21963         REFIID riid,
  21964         LCID lcid,
  21965         WORD wFlags,
  21966         DISPPARAMS *pDispParams,
  21967         VARIANT *pVarResult,
  21968         EXCEPINFO *pExcepInfo,
  21969         UINT *puArgErr);
  21970 
  21971     /*** ISpeechLexiconWords methods ***/
  21972     HRESULT (STDMETHODCALLTYPE *get_Count)(
  21973         ISpeechLexiconWords *This,
  21974         LONG *Count);
  21975 
  21976     HRESULT (STDMETHODCALLTYPE *Item)(
  21977         ISpeechLexiconWords *This,
  21978         LONG Index,
  21979         ISpeechLexiconWord **Word);
  21980 
  21981     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
  21982         ISpeechLexiconWords *This,
  21983         IUnknown **EnumVARIANT);
  21984 
  21985     END_INTERFACE
  21986 } ISpeechLexiconWordsVtbl;
  21987 
  21988 interface ISpeechLexiconWords {
  21989     CONST_VTBL ISpeechLexiconWordsVtbl* lpVtbl;
  21990 };
  21991 
  21992 #ifdef COBJMACROS
  21993 #ifndef WIDL_C_INLINE_WRAPPERS
  21994 /*** IUnknown methods ***/
  21995 #define ISpeechLexiconWords_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  21996 #define ISpeechLexiconWords_AddRef(This) (This)->lpVtbl->AddRef(This)
  21997 #define ISpeechLexiconWords_Release(This) (This)->lpVtbl->Release(This)
  21998 /*** IDispatch methods ***/
  21999 #define ISpeechLexiconWords_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  22000 #define ISpeechLexiconWords_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  22001 #define ISpeechLexiconWords_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  22002 #define ISpeechLexiconWords_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  22003 /*** ISpeechLexiconWords methods ***/
  22004 #define ISpeechLexiconWords_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
  22005 #define ISpeechLexiconWords_Item(This,Index,Word) (This)->lpVtbl->Item(This,Index,Word)
  22006 #define ISpeechLexiconWords_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
  22007 #else
  22008 /*** IUnknown methods ***/
  22009 static inline HRESULT ISpeechLexiconWords_QueryInterface(ISpeechLexiconWords* This,REFIID riid,void **ppvObject) {
  22010     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  22011 }
  22012 static inline ULONG ISpeechLexiconWords_AddRef(ISpeechLexiconWords* This) {
  22013     return This->lpVtbl->AddRef(This);
  22014 }
  22015 static inline ULONG ISpeechLexiconWords_Release(ISpeechLexiconWords* This) {
  22016     return This->lpVtbl->Release(This);
  22017 }
  22018 /*** IDispatch methods ***/
  22019 static inline HRESULT ISpeechLexiconWords_GetTypeInfoCount(ISpeechLexiconWords* This,UINT *pctinfo) {
  22020     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  22021 }
  22022 static inline HRESULT ISpeechLexiconWords_GetTypeInfo(ISpeechLexiconWords* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  22023     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  22024 }
  22025 static inline HRESULT ISpeechLexiconWords_GetIDsOfNames(ISpeechLexiconWords* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  22026     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  22027 }
  22028 static inline HRESULT ISpeechLexiconWords_Invoke(ISpeechLexiconWords* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  22029     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  22030 }
  22031 /*** ISpeechLexiconWords methods ***/
  22032 static inline HRESULT ISpeechLexiconWords_get_Count(ISpeechLexiconWords* This,LONG *Count) {
  22033     return This->lpVtbl->get_Count(This,Count);
  22034 }
  22035 static inline HRESULT ISpeechLexiconWords_Item(ISpeechLexiconWords* This,LONG Index,ISpeechLexiconWord **Word) {
  22036     return This->lpVtbl->Item(This,Index,Word);
  22037 }
  22038 static inline HRESULT ISpeechLexiconWords_get__NewEnum(ISpeechLexiconWords* This,IUnknown **EnumVARIANT) {
  22039     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
  22040 }
  22041 #endif
  22042 #endif
  22043 
  22044 #endif
  22045 
  22046 
  22047 #endif  /* __ISpeechLexiconWords_INTERFACE_DEFINED__ */
  22048 
  22049 /*****************************************************************************
  22050  * ISpeechLexicon interface
  22051  */
  22052 #ifndef __ISpeechLexicon_INTERFACE_DEFINED__
  22053 #define __ISpeechLexicon_INTERFACE_DEFINED__
  22054 
  22055 DEFINE_GUID(IID_ISpeechLexicon, 0x3da7627a, 0xc7ae, 0x4b23, 0x87,0x08, 0x63,0x8c,0x50,0x36,0x2c,0x25);
  22056 #if defined(__cplusplus) && !defined(CINTERFACE)
  22057 MIDL_INTERFACE("3da7627a-c7ae-4b23-8708-638c50362c25")
  22058 ISpeechLexicon : public IDispatch
  22059 {
  22060     virtual HRESULT STDMETHODCALLTYPE get_GenerationId(
  22061         LONG *GenerationId) = 0;
  22062 
  22063     virtual HRESULT STDMETHODCALLTYPE GetWords(
  22064         SpeechLexiconType Flags,
  22065         LONG *GenerationID,
  22066         ISpeechLexiconWords **Words) = 0;
  22067 
  22068     virtual HRESULT STDMETHODCALLTYPE AddPronunciation(
  22069         BSTR bstrWord,
  22070         SpeechLanguageId LangId,
  22071         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
  22072         BSTR bstrPronunciation = L"") = 0;
  22073 
  22074     virtual HRESULT STDMETHODCALLTYPE AddPronunciationByPhoneIds(
  22075         BSTR bstrWord,
  22076         SpeechLanguageId LangId,
  22077         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
  22078         VARIANT *PhoneIds = 0) = 0;
  22079 
  22080     virtual HRESULT STDMETHODCALLTYPE RemovePronunciation(
  22081         BSTR bstrWord,
  22082         SpeechLanguageId LangId,
  22083         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
  22084         BSTR bstrPronunciation = L"") = 0;
  22085 
  22086     virtual HRESULT STDMETHODCALLTYPE RemovePronunciationByPhoneIds(
  22087         BSTR bstrWord,
  22088         SpeechLanguageId LangId,
  22089         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
  22090         VARIANT *PhoneIds = 0) = 0;
  22091 
  22092     virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
  22093         BSTR bstrWord,
  22094         SpeechLanguageId LangId,
  22095         SpeechLexiconType TypeFlags,
  22096         ISpeechLexiconPronunciations **ppPronunciations) = 0;
  22097 
  22098     virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
  22099         LONG *GenerationID,
  22100         ISpeechLexiconWords **ppWords) = 0;
  22101 
  22102 };
  22103 #ifdef __CRT_UUID_DECL
  22104 __CRT_UUID_DECL(ISpeechLexicon, 0x3da7627a, 0xc7ae, 0x4b23, 0x87,0x08, 0x63,0x8c,0x50,0x36,0x2c,0x25)
  22105 #endif
  22106 #else
  22107 typedef struct ISpeechLexiconVtbl {
  22108     BEGIN_INTERFACE
  22109 
  22110     /*** IUnknown methods ***/
  22111     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  22112         ISpeechLexicon *This,
  22113         REFIID riid,
  22114         void **ppvObject);
  22115 
  22116     ULONG (STDMETHODCALLTYPE *AddRef)(
  22117         ISpeechLexicon *This);
  22118 
  22119     ULONG (STDMETHODCALLTYPE *Release)(
  22120         ISpeechLexicon *This);
  22121 
  22122     /*** IDispatch methods ***/
  22123     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  22124         ISpeechLexicon *This,
  22125         UINT *pctinfo);
  22126 
  22127     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  22128         ISpeechLexicon *This,
  22129         UINT iTInfo,
  22130         LCID lcid,
  22131         ITypeInfo **ppTInfo);
  22132 
  22133     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  22134         ISpeechLexicon *This,
  22135         REFIID riid,
  22136         LPOLESTR *rgszNames,
  22137         UINT cNames,
  22138         LCID lcid,
  22139         DISPID *rgDispId);
  22140 
  22141     HRESULT (STDMETHODCALLTYPE *Invoke)(
  22142         ISpeechLexicon *This,
  22143         DISPID dispIdMember,
  22144         REFIID riid,
  22145         LCID lcid,
  22146         WORD wFlags,
  22147         DISPPARAMS *pDispParams,
  22148         VARIANT *pVarResult,
  22149         EXCEPINFO *pExcepInfo,
  22150         UINT *puArgErr);
  22151 
  22152     /*** ISpeechLexicon methods ***/
  22153     HRESULT (STDMETHODCALLTYPE *get_GenerationId)(
  22154         ISpeechLexicon *This,
  22155         LONG *GenerationId);
  22156 
  22157     HRESULT (STDMETHODCALLTYPE *GetWords)(
  22158         ISpeechLexicon *This,
  22159         SpeechLexiconType Flags,
  22160         LONG *GenerationID,
  22161         ISpeechLexiconWords **Words);
  22162 
  22163     HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
  22164         ISpeechLexicon *This,
  22165         BSTR bstrWord,
  22166         SpeechLanguageId LangId,
  22167         SpeechPartOfSpeech PartOfSpeech,
  22168         BSTR bstrPronunciation);
  22169 
  22170     HRESULT (STDMETHODCALLTYPE *AddPronunciationByPhoneIds)(
  22171         ISpeechLexicon *This,
  22172         BSTR bstrWord,
  22173         SpeechLanguageId LangId,
  22174         SpeechPartOfSpeech PartOfSpeech,
  22175         VARIANT *PhoneIds);
  22176 
  22177     HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
  22178         ISpeechLexicon *This,
  22179         BSTR bstrWord,
  22180         SpeechLanguageId LangId,
  22181         SpeechPartOfSpeech PartOfSpeech,
  22182         BSTR bstrPronunciation);
  22183 
  22184     HRESULT (STDMETHODCALLTYPE *RemovePronunciationByPhoneIds)(
  22185         ISpeechLexicon *This,
  22186         BSTR bstrWord,
  22187         SpeechLanguageId LangId,
  22188         SpeechPartOfSpeech PartOfSpeech,
  22189         VARIANT *PhoneIds);
  22190 
  22191     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
  22192         ISpeechLexicon *This,
  22193         BSTR bstrWord,
  22194         SpeechLanguageId LangId,
  22195         SpeechLexiconType TypeFlags,
  22196         ISpeechLexiconPronunciations **ppPronunciations);
  22197 
  22198     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
  22199         ISpeechLexicon *This,
  22200         LONG *GenerationID,
  22201         ISpeechLexiconWords **ppWords);
  22202 
  22203     END_INTERFACE
  22204 } ISpeechLexiconVtbl;
  22205 
  22206 interface ISpeechLexicon {
  22207     CONST_VTBL ISpeechLexiconVtbl* lpVtbl;
  22208 };
  22209 
  22210 #ifdef COBJMACROS
  22211 #ifndef WIDL_C_INLINE_WRAPPERS
  22212 /*** IUnknown methods ***/
  22213 #define ISpeechLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  22214 #define ISpeechLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
  22215 #define ISpeechLexicon_Release(This) (This)->lpVtbl->Release(This)
  22216 /*** IDispatch methods ***/
  22217 #define ISpeechLexicon_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  22218 #define ISpeechLexicon_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  22219 #define ISpeechLexicon_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  22220 #define ISpeechLexicon_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  22221 /*** ISpeechLexicon methods ***/
  22222 #define ISpeechLexicon_get_GenerationId(This,GenerationId) (This)->lpVtbl->get_GenerationId(This,GenerationId)
  22223 #define ISpeechLexicon_GetWords(This,Flags,GenerationID,Words) (This)->lpVtbl->GetWords(This,Flags,GenerationID,Words)
  22224 #define ISpeechLexicon_AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation) (This)->lpVtbl->AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation)
  22225 #define ISpeechLexicon_AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds) (This)->lpVtbl->AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds)
  22226 #define ISpeechLexicon_RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation) (This)->lpVtbl->RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation)
  22227 #define ISpeechLexicon_RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds) (This)->lpVtbl->RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds)
  22228 #define ISpeechLexicon_GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations) (This)->lpVtbl->GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations)
  22229 #define ISpeechLexicon_GetGenerationChange(This,GenerationID,ppWords) (This)->lpVtbl->GetGenerationChange(This,GenerationID,ppWords)
  22230 #else
  22231 /*** IUnknown methods ***/
  22232 static inline HRESULT ISpeechLexicon_QueryInterface(ISpeechLexicon* This,REFIID riid,void **ppvObject) {
  22233     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  22234 }
  22235 static inline ULONG ISpeechLexicon_AddRef(ISpeechLexicon* This) {
  22236     return This->lpVtbl->AddRef(This);
  22237 }
  22238 static inline ULONG ISpeechLexicon_Release(ISpeechLexicon* This) {
  22239     return This->lpVtbl->Release(This);
  22240 }
  22241 /*** IDispatch methods ***/
  22242 static inline HRESULT ISpeechLexicon_GetTypeInfoCount(ISpeechLexicon* This,UINT *pctinfo) {
  22243     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  22244 }
  22245 static inline HRESULT ISpeechLexicon_GetTypeInfo(ISpeechLexicon* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  22246     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  22247 }
  22248 static inline HRESULT ISpeechLexicon_GetIDsOfNames(ISpeechLexicon* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  22249     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  22250 }
  22251 static inline HRESULT ISpeechLexicon_Invoke(ISpeechLexicon* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  22252     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  22253 }
  22254 /*** ISpeechLexicon methods ***/
  22255 static inline HRESULT ISpeechLexicon_get_GenerationId(ISpeechLexicon* This,LONG *GenerationId) {
  22256     return This->lpVtbl->get_GenerationId(This,GenerationId);
  22257 }
  22258 static inline HRESULT ISpeechLexicon_GetWords(ISpeechLexicon* This,SpeechLexiconType Flags,LONG *GenerationID,ISpeechLexiconWords **Words) {
  22259     return This->lpVtbl->GetWords(This,Flags,GenerationID,Words);
  22260 }
  22261 static inline HRESULT ISpeechLexicon_AddPronunciation(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,BSTR bstrPronunciation) {
  22262     return This->lpVtbl->AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation);
  22263 }
  22264 static inline HRESULT ISpeechLexicon_AddPronunciationByPhoneIds(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,VARIANT *PhoneIds) {
  22265     return This->lpVtbl->AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds);
  22266 }
  22267 static inline HRESULT ISpeechLexicon_RemovePronunciation(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,BSTR bstrPronunciation) {
  22268     return This->lpVtbl->RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation);
  22269 }
  22270 static inline HRESULT ISpeechLexicon_RemovePronunciationByPhoneIds(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,VARIANT *PhoneIds) {
  22271     return This->lpVtbl->RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds);
  22272 }
  22273 static inline HRESULT ISpeechLexicon_GetPronunciations(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechLexiconType TypeFlags,ISpeechLexiconPronunciations **ppPronunciations) {
  22274     return This->lpVtbl->GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations);
  22275 }
  22276 static inline HRESULT ISpeechLexicon_GetGenerationChange(ISpeechLexicon* This,LONG *GenerationID,ISpeechLexiconWords **ppWords) {
  22277     return This->lpVtbl->GetGenerationChange(This,GenerationID,ppWords);
  22278 }
  22279 #endif
  22280 #endif
  22281 
  22282 #endif
  22283 
  22284 
  22285 #endif  /* __ISpeechLexicon_INTERFACE_DEFINED__ */
  22286 
  22287 /*****************************************************************************
  22288  * ISpeechLexiconWord interface
  22289  */
  22290 #ifndef __ISpeechLexiconWord_INTERFACE_DEFINED__
  22291 #define __ISpeechLexiconWord_INTERFACE_DEFINED__
  22292 
  22293 DEFINE_GUID(IID_ISpeechLexiconWord, 0x4e5b933c, 0xc9be, 0x48ed, 0x88,0x42, 0x1e,0xe5,0x1b,0xb1,0xd4,0xff);
  22294 #if defined(__cplusplus) && !defined(CINTERFACE)
  22295 MIDL_INTERFACE("4e5b933c-c9be-48ed-8842-1ee51bb1d4ff")
  22296 ISpeechLexiconWord : public IDispatch
  22297 {
  22298     virtual HRESULT STDMETHODCALLTYPE get_LangId(
  22299         SpeechLanguageId *LangId) = 0;
  22300 
  22301     virtual HRESULT STDMETHODCALLTYPE get_Type(
  22302         SpeechWordType *WordType) = 0;
  22303 
  22304     virtual HRESULT STDMETHODCALLTYPE get_Word(
  22305         BSTR *Word) = 0;
  22306 
  22307     virtual HRESULT STDMETHODCALLTYPE get_Pronunciations(
  22308         ISpeechLexiconPronunciations **Pronunciations) = 0;
  22309 
  22310 };
  22311 #ifdef __CRT_UUID_DECL
  22312 __CRT_UUID_DECL(ISpeechLexiconWord, 0x4e5b933c, 0xc9be, 0x48ed, 0x88,0x42, 0x1e,0xe5,0x1b,0xb1,0xd4,0xff)
  22313 #endif
  22314 #else
  22315 typedef struct ISpeechLexiconWordVtbl {
  22316     BEGIN_INTERFACE
  22317 
  22318     /*** IUnknown methods ***/
  22319     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  22320         ISpeechLexiconWord *This,
  22321         REFIID riid,
  22322         void **ppvObject);
  22323 
  22324     ULONG (STDMETHODCALLTYPE *AddRef)(
  22325         ISpeechLexiconWord *This);
  22326 
  22327     ULONG (STDMETHODCALLTYPE *Release)(
  22328         ISpeechLexiconWord *This);
  22329 
  22330     /*** IDispatch methods ***/
  22331     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  22332         ISpeechLexiconWord *This,
  22333         UINT *pctinfo);
  22334 
  22335     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  22336         ISpeechLexiconWord *This,
  22337         UINT iTInfo,
  22338         LCID lcid,
  22339         ITypeInfo **ppTInfo);
  22340 
  22341     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  22342         ISpeechLexiconWord *This,
  22343         REFIID riid,
  22344         LPOLESTR *rgszNames,
  22345         UINT cNames,
  22346         LCID lcid,
  22347         DISPID *rgDispId);
  22348 
  22349     HRESULT (STDMETHODCALLTYPE *Invoke)(
  22350         ISpeechLexiconWord *This,
  22351         DISPID dispIdMember,
  22352         REFIID riid,
  22353         LCID lcid,
  22354         WORD wFlags,
  22355         DISPPARAMS *pDispParams,
  22356         VARIANT *pVarResult,
  22357         EXCEPINFO *pExcepInfo,
  22358         UINT *puArgErr);
  22359 
  22360     /*** ISpeechLexiconWord methods ***/
  22361     HRESULT (STDMETHODCALLTYPE *get_LangId)(
  22362         ISpeechLexiconWord *This,
  22363         SpeechLanguageId *LangId);
  22364 
  22365     HRESULT (STDMETHODCALLTYPE *get_Type)(
  22366         ISpeechLexiconWord *This,
  22367         SpeechWordType *WordType);
  22368 
  22369     HRESULT (STDMETHODCALLTYPE *get_Word)(
  22370         ISpeechLexiconWord *This,
  22371         BSTR *Word);
  22372 
  22373     HRESULT (STDMETHODCALLTYPE *get_Pronunciations)(
  22374         ISpeechLexiconWord *This,
  22375         ISpeechLexiconPronunciations **Pronunciations);
  22376 
  22377     END_INTERFACE
  22378 } ISpeechLexiconWordVtbl;
  22379 
  22380 interface ISpeechLexiconWord {
  22381     CONST_VTBL ISpeechLexiconWordVtbl* lpVtbl;
  22382 };
  22383 
  22384 #ifdef COBJMACROS
  22385 #ifndef WIDL_C_INLINE_WRAPPERS
  22386 /*** IUnknown methods ***/
  22387 #define ISpeechLexiconWord_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  22388 #define ISpeechLexiconWord_AddRef(This) (This)->lpVtbl->AddRef(This)
  22389 #define ISpeechLexiconWord_Release(This) (This)->lpVtbl->Release(This)
  22390 /*** IDispatch methods ***/
  22391 #define ISpeechLexiconWord_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  22392 #define ISpeechLexiconWord_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  22393 #define ISpeechLexiconWord_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  22394 #define ISpeechLexiconWord_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  22395 /*** ISpeechLexiconWord methods ***/
  22396 #define ISpeechLexiconWord_get_LangId(This,LangId) (This)->lpVtbl->get_LangId(This,LangId)
  22397 #define ISpeechLexiconWord_get_Type(This,WordType) (This)->lpVtbl->get_Type(This,WordType)
  22398 #define ISpeechLexiconWord_get_Word(This,Word) (This)->lpVtbl->get_Word(This,Word)
  22399 #define ISpeechLexiconWord_get_Pronunciations(This,Pronunciations) (This)->lpVtbl->get_Pronunciations(This,Pronunciations)
  22400 #else
  22401 /*** IUnknown methods ***/
  22402 static inline HRESULT ISpeechLexiconWord_QueryInterface(ISpeechLexiconWord* This,REFIID riid,void **ppvObject) {
  22403     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  22404 }
  22405 static inline ULONG ISpeechLexiconWord_AddRef(ISpeechLexiconWord* This) {
  22406     return This->lpVtbl->AddRef(This);
  22407 }
  22408 static inline ULONG ISpeechLexiconWord_Release(ISpeechLexiconWord* This) {
  22409     return This->lpVtbl->Release(This);
  22410 }
  22411 /*** IDispatch methods ***/
  22412 static inline HRESULT ISpeechLexiconWord_GetTypeInfoCount(ISpeechLexiconWord* This,UINT *pctinfo) {
  22413     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  22414 }
  22415 static inline HRESULT ISpeechLexiconWord_GetTypeInfo(ISpeechLexiconWord* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  22416     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  22417 }
  22418 static inline HRESULT ISpeechLexiconWord_GetIDsOfNames(ISpeechLexiconWord* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  22419     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  22420 }
  22421 static inline HRESULT ISpeechLexiconWord_Invoke(ISpeechLexiconWord* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  22422     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  22423 }
  22424 /*** ISpeechLexiconWord methods ***/
  22425 static inline HRESULT ISpeechLexiconWord_get_LangId(ISpeechLexiconWord* This,SpeechLanguageId *LangId) {
  22426     return This->lpVtbl->get_LangId(This,LangId);
  22427 }
  22428 static inline HRESULT ISpeechLexiconWord_get_Type(ISpeechLexiconWord* This,SpeechWordType *WordType) {
  22429     return This->lpVtbl->get_Type(This,WordType);
  22430 }
  22431 static inline HRESULT ISpeechLexiconWord_get_Word(ISpeechLexiconWord* This,BSTR *Word) {
  22432     return This->lpVtbl->get_Word(This,Word);
  22433 }
  22434 static inline HRESULT ISpeechLexiconWord_get_Pronunciations(ISpeechLexiconWord* This,ISpeechLexiconPronunciations **Pronunciations) {
  22435     return This->lpVtbl->get_Pronunciations(This,Pronunciations);
  22436 }
  22437 #endif
  22438 #endif
  22439 
  22440 #endif
  22441 
  22442 
  22443 #endif  /* __ISpeechLexiconWord_INTERFACE_DEFINED__ */
  22444 
  22445 /*****************************************************************************
  22446  * ISpeechLexiconPronunciations interface
  22447  */
  22448 #ifndef __ISpeechLexiconPronunciations_INTERFACE_DEFINED__
  22449 #define __ISpeechLexiconPronunciations_INTERFACE_DEFINED__
  22450 
  22451 DEFINE_GUID(IID_ISpeechLexiconPronunciations, 0x72829128, 0x5682, 0x4704, 0xa0,0xd4, 0x3e,0x2b,0xb6,0xf2,0xea,0xd3);
  22452 #if defined(__cplusplus) && !defined(CINTERFACE)
  22453 MIDL_INTERFACE("72829128-5682-4704-a0d4-3e2bb6f2ead3")
  22454 ISpeechLexiconPronunciations : public IDispatch
  22455 {
  22456     virtual HRESULT STDMETHODCALLTYPE get_Count(
  22457         LONG *Count) = 0;
  22458 
  22459     virtual HRESULT STDMETHODCALLTYPE Item(
  22460         LONG Index,
  22461         ISpeechLexiconPronunciation **Pronunciation) = 0;
  22462 
  22463     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
  22464         IUnknown **EnumVARIANT) = 0;
  22465 
  22466 };
  22467 #ifdef __CRT_UUID_DECL
  22468 __CRT_UUID_DECL(ISpeechLexiconPronunciations, 0x72829128, 0x5682, 0x4704, 0xa0,0xd4, 0x3e,0x2b,0xb6,0xf2,0xea,0xd3)
  22469 #endif
  22470 #else
  22471 typedef struct ISpeechLexiconPronunciationsVtbl {
  22472     BEGIN_INTERFACE
  22473 
  22474     /*** IUnknown methods ***/
  22475     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  22476         ISpeechLexiconPronunciations *This,
  22477         REFIID riid,
  22478         void **ppvObject);
  22479 
  22480     ULONG (STDMETHODCALLTYPE *AddRef)(
  22481         ISpeechLexiconPronunciations *This);
  22482 
  22483     ULONG (STDMETHODCALLTYPE *Release)(
  22484         ISpeechLexiconPronunciations *This);
  22485 
  22486     /*** IDispatch methods ***/
  22487     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  22488         ISpeechLexiconPronunciations *This,
  22489         UINT *pctinfo);
  22490 
  22491     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  22492         ISpeechLexiconPronunciations *This,
  22493         UINT iTInfo,
  22494         LCID lcid,
  22495         ITypeInfo **ppTInfo);
  22496 
  22497     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  22498         ISpeechLexiconPronunciations *This,
  22499         REFIID riid,
  22500         LPOLESTR *rgszNames,
  22501         UINT cNames,
  22502         LCID lcid,
  22503         DISPID *rgDispId);
  22504 
  22505     HRESULT (STDMETHODCALLTYPE *Invoke)(
  22506         ISpeechLexiconPronunciations *This,
  22507         DISPID dispIdMember,
  22508         REFIID riid,
  22509         LCID lcid,
  22510         WORD wFlags,
  22511         DISPPARAMS *pDispParams,
  22512         VARIANT *pVarResult,
  22513         EXCEPINFO *pExcepInfo,
  22514         UINT *puArgErr);
  22515 
  22516     /*** ISpeechLexiconPronunciations methods ***/
  22517     HRESULT (STDMETHODCALLTYPE *get_Count)(
  22518         ISpeechLexiconPronunciations *This,
  22519         LONG *Count);
  22520 
  22521     HRESULT (STDMETHODCALLTYPE *Item)(
  22522         ISpeechLexiconPronunciations *This,
  22523         LONG Index,
  22524         ISpeechLexiconPronunciation **Pronunciation);
  22525 
  22526     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
  22527         ISpeechLexiconPronunciations *This,
  22528         IUnknown **EnumVARIANT);
  22529 
  22530     END_INTERFACE
  22531 } ISpeechLexiconPronunciationsVtbl;
  22532 
  22533 interface ISpeechLexiconPronunciations {
  22534     CONST_VTBL ISpeechLexiconPronunciationsVtbl* lpVtbl;
  22535 };
  22536 
  22537 #ifdef COBJMACROS
  22538 #ifndef WIDL_C_INLINE_WRAPPERS
  22539 /*** IUnknown methods ***/
  22540 #define ISpeechLexiconPronunciations_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  22541 #define ISpeechLexiconPronunciations_AddRef(This) (This)->lpVtbl->AddRef(This)
  22542 #define ISpeechLexiconPronunciations_Release(This) (This)->lpVtbl->Release(This)
  22543 /*** IDispatch methods ***/
  22544 #define ISpeechLexiconPronunciations_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  22545 #define ISpeechLexiconPronunciations_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  22546 #define ISpeechLexiconPronunciations_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  22547 #define ISpeechLexiconPronunciations_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  22548 /*** ISpeechLexiconPronunciations methods ***/
  22549 #define ISpeechLexiconPronunciations_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
  22550 #define ISpeechLexiconPronunciations_Item(This,Index,Pronunciation) (This)->lpVtbl->Item(This,Index,Pronunciation)
  22551 #define ISpeechLexiconPronunciations_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
  22552 #else
  22553 /*** IUnknown methods ***/
  22554 static inline HRESULT ISpeechLexiconPronunciations_QueryInterface(ISpeechLexiconPronunciations* This,REFIID riid,void **ppvObject) {
  22555     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  22556 }
  22557 static inline ULONG ISpeechLexiconPronunciations_AddRef(ISpeechLexiconPronunciations* This) {
  22558     return This->lpVtbl->AddRef(This);
  22559 }
  22560 static inline ULONG ISpeechLexiconPronunciations_Release(ISpeechLexiconPronunciations* This) {
  22561     return This->lpVtbl->Release(This);
  22562 }
  22563 /*** IDispatch methods ***/
  22564 static inline HRESULT ISpeechLexiconPronunciations_GetTypeInfoCount(ISpeechLexiconPronunciations* This,UINT *pctinfo) {
  22565     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  22566 }
  22567 static inline HRESULT ISpeechLexiconPronunciations_GetTypeInfo(ISpeechLexiconPronunciations* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  22568     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  22569 }
  22570 static inline HRESULT ISpeechLexiconPronunciations_GetIDsOfNames(ISpeechLexiconPronunciations* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  22571     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  22572 }
  22573 static inline HRESULT ISpeechLexiconPronunciations_Invoke(ISpeechLexiconPronunciations* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  22574     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  22575 }
  22576 /*** ISpeechLexiconPronunciations methods ***/
  22577 static inline HRESULT ISpeechLexiconPronunciations_get_Count(ISpeechLexiconPronunciations* This,LONG *Count) {
  22578     return This->lpVtbl->get_Count(This,Count);
  22579 }
  22580 static inline HRESULT ISpeechLexiconPronunciations_Item(ISpeechLexiconPronunciations* This,LONG Index,ISpeechLexiconPronunciation **Pronunciation) {
  22581     return This->lpVtbl->Item(This,Index,Pronunciation);
  22582 }
  22583 static inline HRESULT ISpeechLexiconPronunciations_get__NewEnum(ISpeechLexiconPronunciations* This,IUnknown **EnumVARIANT) {
  22584     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
  22585 }
  22586 #endif
  22587 #endif
  22588 
  22589 #endif
  22590 
  22591 
  22592 #endif  /* __ISpeechLexiconPronunciations_INTERFACE_DEFINED__ */
  22593 
  22594 /*****************************************************************************
  22595  * ISpeechLexiconPronunciation interface
  22596  */
  22597 #ifndef __ISpeechLexiconPronunciation_INTERFACE_DEFINED__
  22598 #define __ISpeechLexiconPronunciation_INTERFACE_DEFINED__
  22599 
  22600 DEFINE_GUID(IID_ISpeechLexiconPronunciation, 0x95252c5d, 0x9e43, 0x4f4a, 0x98,0x99, 0x48,0xee,0x73,0x35,0x2f,0x9f);
  22601 #if defined(__cplusplus) && !defined(CINTERFACE)
  22602 MIDL_INTERFACE("95252c5d-9e43-4f4a-9899-48ee73352f9f")
  22603 ISpeechLexiconPronunciation : public IDispatch
  22604 {
  22605     virtual HRESULT STDMETHODCALLTYPE get_Type(
  22606         SpeechLexiconType *LexiconType) = 0;
  22607 
  22608     virtual HRESULT STDMETHODCALLTYPE get_LangId(
  22609         SpeechLanguageId *LangId) = 0;
  22610 
  22611     virtual HRESULT STDMETHODCALLTYPE get_PartOfSpeech(
  22612         SpeechPartOfSpeech *PartOfSpeech) = 0;
  22613 
  22614     virtual HRESULT STDMETHODCALLTYPE get_PhoneIds(
  22615         VARIANT *PhoneIds) = 0;
  22616 
  22617     virtual HRESULT STDMETHODCALLTYPE get_Symbolic(
  22618         BSTR *Symbolic) = 0;
  22619 
  22620 };
  22621 #ifdef __CRT_UUID_DECL
  22622 __CRT_UUID_DECL(ISpeechLexiconPronunciation, 0x95252c5d, 0x9e43, 0x4f4a, 0x98,0x99, 0x48,0xee,0x73,0x35,0x2f,0x9f)
  22623 #endif
  22624 #else
  22625 typedef struct ISpeechLexiconPronunciationVtbl {
  22626     BEGIN_INTERFACE
  22627 
  22628     /*** IUnknown methods ***/
  22629     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  22630         ISpeechLexiconPronunciation *This,
  22631         REFIID riid,
  22632         void **ppvObject);
  22633 
  22634     ULONG (STDMETHODCALLTYPE *AddRef)(
  22635         ISpeechLexiconPronunciation *This);
  22636 
  22637     ULONG (STDMETHODCALLTYPE *Release)(
  22638         ISpeechLexiconPronunciation *This);
  22639 
  22640     /*** IDispatch methods ***/
  22641     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  22642         ISpeechLexiconPronunciation *This,
  22643         UINT *pctinfo);
  22644 
  22645     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  22646         ISpeechLexiconPronunciation *This,
  22647         UINT iTInfo,
  22648         LCID lcid,
  22649         ITypeInfo **ppTInfo);
  22650 
  22651     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  22652         ISpeechLexiconPronunciation *This,
  22653         REFIID riid,
  22654         LPOLESTR *rgszNames,
  22655         UINT cNames,
  22656         LCID lcid,
  22657         DISPID *rgDispId);
  22658 
  22659     HRESULT (STDMETHODCALLTYPE *Invoke)(
  22660         ISpeechLexiconPronunciation *This,
  22661         DISPID dispIdMember,
  22662         REFIID riid,
  22663         LCID lcid,
  22664         WORD wFlags,
  22665         DISPPARAMS *pDispParams,
  22666         VARIANT *pVarResult,
  22667         EXCEPINFO *pExcepInfo,
  22668         UINT *puArgErr);
  22669 
  22670     /*** ISpeechLexiconPronunciation methods ***/
  22671     HRESULT (STDMETHODCALLTYPE *get_Type)(
  22672         ISpeechLexiconPronunciation *This,
  22673         SpeechLexiconType *LexiconType);
  22674 
  22675     HRESULT (STDMETHODCALLTYPE *get_LangId)(
  22676         ISpeechLexiconPronunciation *This,
  22677         SpeechLanguageId *LangId);
  22678 
  22679     HRESULT (STDMETHODCALLTYPE *get_PartOfSpeech)(
  22680         ISpeechLexiconPronunciation *This,
  22681         SpeechPartOfSpeech *PartOfSpeech);
  22682 
  22683     HRESULT (STDMETHODCALLTYPE *get_PhoneIds)(
  22684         ISpeechLexiconPronunciation *This,
  22685         VARIANT *PhoneIds);
  22686 
  22687     HRESULT (STDMETHODCALLTYPE *get_Symbolic)(
  22688         ISpeechLexiconPronunciation *This,
  22689         BSTR *Symbolic);
  22690 
  22691     END_INTERFACE
  22692 } ISpeechLexiconPronunciationVtbl;
  22693 
  22694 interface ISpeechLexiconPronunciation {
  22695     CONST_VTBL ISpeechLexiconPronunciationVtbl* lpVtbl;
  22696 };
  22697 
  22698 #ifdef COBJMACROS
  22699 #ifndef WIDL_C_INLINE_WRAPPERS
  22700 /*** IUnknown methods ***/
  22701 #define ISpeechLexiconPronunciation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  22702 #define ISpeechLexiconPronunciation_AddRef(This) (This)->lpVtbl->AddRef(This)
  22703 #define ISpeechLexiconPronunciation_Release(This) (This)->lpVtbl->Release(This)
  22704 /*** IDispatch methods ***/
  22705 #define ISpeechLexiconPronunciation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  22706 #define ISpeechLexiconPronunciation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  22707 #define ISpeechLexiconPronunciation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  22708 #define ISpeechLexiconPronunciation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  22709 /*** ISpeechLexiconPronunciation methods ***/
  22710 #define ISpeechLexiconPronunciation_get_Type(This,LexiconType) (This)->lpVtbl->get_Type(This,LexiconType)
  22711 #define ISpeechLexiconPronunciation_get_LangId(This,LangId) (This)->lpVtbl->get_LangId(This,LangId)
  22712 #define ISpeechLexiconPronunciation_get_PartOfSpeech(This,PartOfSpeech) (This)->lpVtbl->get_PartOfSpeech(This,PartOfSpeech)
  22713 #define ISpeechLexiconPronunciation_get_PhoneIds(This,PhoneIds) (This)->lpVtbl->get_PhoneIds(This,PhoneIds)
  22714 #define ISpeechLexiconPronunciation_get_Symbolic(This,Symbolic) (This)->lpVtbl->get_Symbolic(This,Symbolic)
  22715 #else
  22716 /*** IUnknown methods ***/
  22717 static inline HRESULT ISpeechLexiconPronunciation_QueryInterface(ISpeechLexiconPronunciation* This,REFIID riid,void **ppvObject) {
  22718     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  22719 }
  22720 static inline ULONG ISpeechLexiconPronunciation_AddRef(ISpeechLexiconPronunciation* This) {
  22721     return This->lpVtbl->AddRef(This);
  22722 }
  22723 static inline ULONG ISpeechLexiconPronunciation_Release(ISpeechLexiconPronunciation* This) {
  22724     return This->lpVtbl->Release(This);
  22725 }
  22726 /*** IDispatch methods ***/
  22727 static inline HRESULT ISpeechLexiconPronunciation_GetTypeInfoCount(ISpeechLexiconPronunciation* This,UINT *pctinfo) {
  22728     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  22729 }
  22730 static inline HRESULT ISpeechLexiconPronunciation_GetTypeInfo(ISpeechLexiconPronunciation* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  22731     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  22732 }
  22733 static inline HRESULT ISpeechLexiconPronunciation_GetIDsOfNames(ISpeechLexiconPronunciation* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  22734     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  22735 }
  22736 static inline HRESULT ISpeechLexiconPronunciation_Invoke(ISpeechLexiconPronunciation* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  22737     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  22738 }
  22739 /*** ISpeechLexiconPronunciation methods ***/
  22740 static inline HRESULT ISpeechLexiconPronunciation_get_Type(ISpeechLexiconPronunciation* This,SpeechLexiconType *LexiconType) {
  22741     return This->lpVtbl->get_Type(This,LexiconType);
  22742 }
  22743 static inline HRESULT ISpeechLexiconPronunciation_get_LangId(ISpeechLexiconPronunciation* This,SpeechLanguageId *LangId) {
  22744     return This->lpVtbl->get_LangId(This,LangId);
  22745 }
  22746 static inline HRESULT ISpeechLexiconPronunciation_get_PartOfSpeech(ISpeechLexiconPronunciation* This,SpeechPartOfSpeech *PartOfSpeech) {
  22747     return This->lpVtbl->get_PartOfSpeech(This,PartOfSpeech);
  22748 }
  22749 static inline HRESULT ISpeechLexiconPronunciation_get_PhoneIds(ISpeechLexiconPronunciation* This,VARIANT *PhoneIds) {
  22750     return This->lpVtbl->get_PhoneIds(This,PhoneIds);
  22751 }
  22752 static inline HRESULT ISpeechLexiconPronunciation_get_Symbolic(ISpeechLexiconPronunciation* This,BSTR *Symbolic) {
  22753     return This->lpVtbl->get_Symbolic(This,Symbolic);
  22754 }
  22755 #endif
  22756 #endif
  22757 
  22758 #endif
  22759 
  22760 
  22761 #endif  /* __ISpeechLexiconPronunciation_INTERFACE_DEFINED__ */
  22762 
  22763 /*****************************************************************************
  22764  * ISpeechPhoneConverter interface
  22765  */
  22766 #ifndef __ISpeechPhoneConverter_INTERFACE_DEFINED__
  22767 #define __ISpeechPhoneConverter_INTERFACE_DEFINED__
  22768 
  22769 DEFINE_GUID(IID_ISpeechPhoneConverter, 0xc3e4f353, 0x433f, 0x43d6, 0x89,0xa1, 0x6a,0x62,0xa7,0x05,0x4c,0x3d);
  22770 #if defined(__cplusplus) && !defined(CINTERFACE)
  22771 MIDL_INTERFACE("c3e4f353-433f-43d6-89a1-6a62a7054c3d")
  22772 ISpeechPhoneConverter : public IDispatch
  22773 {
  22774     virtual HRESULT STDMETHODCALLTYPE get_LanguageId(
  22775         SpeechLanguageId *LanguageId) = 0;
  22776 
  22777     virtual HRESULT STDMETHODCALLTYPE put_LanguageId(
  22778         SpeechLanguageId LanguageId) = 0;
  22779 
  22780     virtual HRESULT STDMETHODCALLTYPE PhoneToId(
  22781         const BSTR Phonemes,
  22782         VARIANT *IdArray) = 0;
  22783 
  22784     virtual HRESULT STDMETHODCALLTYPE IdToPhone(
  22785         const VARIANT IdArray,
  22786         BSTR *Phonemes) = 0;
  22787 
  22788 };
  22789 #ifdef __CRT_UUID_DECL
  22790 __CRT_UUID_DECL(ISpeechPhoneConverter, 0xc3e4f353, 0x433f, 0x43d6, 0x89,0xa1, 0x6a,0x62,0xa7,0x05,0x4c,0x3d)
  22791 #endif
  22792 #else
  22793 typedef struct ISpeechPhoneConverterVtbl {
  22794     BEGIN_INTERFACE
  22795 
  22796     /*** IUnknown methods ***/
  22797     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  22798         ISpeechPhoneConverter *This,
  22799         REFIID riid,
  22800         void **ppvObject);
  22801 
  22802     ULONG (STDMETHODCALLTYPE *AddRef)(
  22803         ISpeechPhoneConverter *This);
  22804 
  22805     ULONG (STDMETHODCALLTYPE *Release)(
  22806         ISpeechPhoneConverter *This);
  22807 
  22808     /*** IDispatch methods ***/
  22809     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  22810         ISpeechPhoneConverter *This,
  22811         UINT *pctinfo);
  22812 
  22813     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  22814         ISpeechPhoneConverter *This,
  22815         UINT iTInfo,
  22816         LCID lcid,
  22817         ITypeInfo **ppTInfo);
  22818 
  22819     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  22820         ISpeechPhoneConverter *This,
  22821         REFIID riid,
  22822         LPOLESTR *rgszNames,
  22823         UINT cNames,
  22824         LCID lcid,
  22825         DISPID *rgDispId);
  22826 
  22827     HRESULT (STDMETHODCALLTYPE *Invoke)(
  22828         ISpeechPhoneConverter *This,
  22829         DISPID dispIdMember,
  22830         REFIID riid,
  22831         LCID lcid,
  22832         WORD wFlags,
  22833         DISPPARAMS *pDispParams,
  22834         VARIANT *pVarResult,
  22835         EXCEPINFO *pExcepInfo,
  22836         UINT *puArgErr);
  22837 
  22838     /*** ISpeechPhoneConverter methods ***/
  22839     HRESULT (STDMETHODCALLTYPE *get_LanguageId)(
  22840         ISpeechPhoneConverter *This,
  22841         SpeechLanguageId *LanguageId);
  22842 
  22843     HRESULT (STDMETHODCALLTYPE *put_LanguageId)(
  22844         ISpeechPhoneConverter *This,
  22845         SpeechLanguageId LanguageId);
  22846 
  22847     HRESULT (STDMETHODCALLTYPE *PhoneToId)(
  22848         ISpeechPhoneConverter *This,
  22849         const BSTR Phonemes,
  22850         VARIANT *IdArray);
  22851 
  22852     HRESULT (STDMETHODCALLTYPE *IdToPhone)(
  22853         ISpeechPhoneConverter *This,
  22854         const VARIANT IdArray,
  22855         BSTR *Phonemes);
  22856 
  22857     END_INTERFACE
  22858 } ISpeechPhoneConverterVtbl;
  22859 
  22860 interface ISpeechPhoneConverter {
  22861     CONST_VTBL ISpeechPhoneConverterVtbl* lpVtbl;
  22862 };
  22863 
  22864 #ifdef COBJMACROS
  22865 #ifndef WIDL_C_INLINE_WRAPPERS
  22866 /*** IUnknown methods ***/
  22867 #define ISpeechPhoneConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  22868 #define ISpeechPhoneConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
  22869 #define ISpeechPhoneConverter_Release(This) (This)->lpVtbl->Release(This)
  22870 /*** IDispatch methods ***/
  22871 #define ISpeechPhoneConverter_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  22872 #define ISpeechPhoneConverter_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  22873 #define ISpeechPhoneConverter_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  22874 #define ISpeechPhoneConverter_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  22875 /*** ISpeechPhoneConverter methods ***/
  22876 #define ISpeechPhoneConverter_get_LanguageId(This,LanguageId) (This)->lpVtbl->get_LanguageId(This,LanguageId)
  22877 #define ISpeechPhoneConverter_put_LanguageId(This,LanguageId) (This)->lpVtbl->put_LanguageId(This,LanguageId)
  22878 #define ISpeechPhoneConverter_PhoneToId(This,Phonemes,IdArray) (This)->lpVtbl->PhoneToId(This,Phonemes,IdArray)
  22879 #define ISpeechPhoneConverter_IdToPhone(This,IdArray,Phonemes) (This)->lpVtbl->IdToPhone(This,IdArray,Phonemes)
  22880 #else
  22881 /*** IUnknown methods ***/
  22882 static inline HRESULT ISpeechPhoneConverter_QueryInterface(ISpeechPhoneConverter* This,REFIID riid,void **ppvObject) {
  22883     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  22884 }
  22885 static inline ULONG ISpeechPhoneConverter_AddRef(ISpeechPhoneConverter* This) {
  22886     return This->lpVtbl->AddRef(This);
  22887 }
  22888 static inline ULONG ISpeechPhoneConverter_Release(ISpeechPhoneConverter* This) {
  22889     return This->lpVtbl->Release(This);
  22890 }
  22891 /*** IDispatch methods ***/
  22892 static inline HRESULT ISpeechPhoneConverter_GetTypeInfoCount(ISpeechPhoneConverter* This,UINT *pctinfo) {
  22893     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  22894 }
  22895 static inline HRESULT ISpeechPhoneConverter_GetTypeInfo(ISpeechPhoneConverter* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  22896     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  22897 }
  22898 static inline HRESULT ISpeechPhoneConverter_GetIDsOfNames(ISpeechPhoneConverter* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  22899     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  22900 }
  22901 static inline HRESULT ISpeechPhoneConverter_Invoke(ISpeechPhoneConverter* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  22902     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  22903 }
  22904 /*** ISpeechPhoneConverter methods ***/
  22905 static inline HRESULT ISpeechPhoneConverter_get_LanguageId(ISpeechPhoneConverter* This,SpeechLanguageId *LanguageId) {
  22906     return This->lpVtbl->get_LanguageId(This,LanguageId);
  22907 }
  22908 static inline HRESULT ISpeechPhoneConverter_put_LanguageId(ISpeechPhoneConverter* This,SpeechLanguageId LanguageId) {
  22909     return This->lpVtbl->put_LanguageId(This,LanguageId);
  22910 }
  22911 static inline HRESULT ISpeechPhoneConverter_PhoneToId(ISpeechPhoneConverter* This,const BSTR Phonemes,VARIANT *IdArray) {
  22912     return This->lpVtbl->PhoneToId(This,Phonemes,IdArray);
  22913 }
  22914 static inline HRESULT ISpeechPhoneConverter_IdToPhone(ISpeechPhoneConverter* This,const VARIANT IdArray,BSTR *Phonemes) {
  22915     return This->lpVtbl->IdToPhone(This,IdArray,Phonemes);
  22916 }
  22917 #endif
  22918 #endif
  22919 
  22920 #endif
  22921 
  22922 
  22923 #endif  /* __ISpeechPhoneConverter_INTERFACE_DEFINED__ */
  22924 
  22925 /*****************************************************************************
  22926  * SpNotifyTranslator coclass
  22927  */
  22928 
  22929 DEFINE_GUID(CLSID_SpNotifyTranslator, 0xe2ae5372, 0x5d40, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
  22930 
  22931 #ifdef __cplusplus
  22932 class DECLSPEC_UUID("e2ae5372-5d40-11d2-960e-00c04f8ee628") SpNotifyTranslator;
  22933 #ifdef __CRT_UUID_DECL
  22934 __CRT_UUID_DECL(SpNotifyTranslator, 0xe2ae5372, 0x5d40, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
  22935 #endif
  22936 #endif
  22937 
  22938 /*****************************************************************************
  22939  * SpObjectTokenCategory coclass
  22940  */
  22941 
  22942 DEFINE_GUID(CLSID_SpObjectTokenCategory, 0xa910187f, 0x0c7a, 0x45ac, 0x92,0xcc, 0x59,0xed,0xaf,0xb7,0x7b,0x53);
  22943 
  22944 #ifdef __cplusplus
  22945 class DECLSPEC_UUID("a910187f-0c7a-45ac-92cc-59edafb77b53") SpObjectTokenCategory;
  22946 #ifdef __CRT_UUID_DECL
  22947 __CRT_UUID_DECL(SpObjectTokenCategory, 0xa910187f, 0x0c7a, 0x45ac, 0x92,0xcc, 0x59,0xed,0xaf,0xb7,0x7b,0x53)
  22948 #endif
  22949 #endif
  22950 
  22951 /*****************************************************************************
  22952  * SpObjectToken coclass
  22953  */
  22954 
  22955 DEFINE_GUID(CLSID_SpObjectToken, 0xef411752, 0x3736, 0x4cb4, 0x9c,0x8c, 0x8e,0xf4,0xcc,0xb5,0x8e,0xfe);
  22956 
  22957 #ifdef __cplusplus
  22958 class DECLSPEC_UUID("ef411752-3736-4cb4-9c8c-8ef4ccb58efe") SpObjectToken;
  22959 #ifdef __CRT_UUID_DECL
  22960 __CRT_UUID_DECL(SpObjectToken, 0xef411752, 0x3736, 0x4cb4, 0x9c,0x8c, 0x8e,0xf4,0xcc,0xb5,0x8e,0xfe)
  22961 #endif
  22962 #endif
  22963 
  22964 /*****************************************************************************
  22965  * SpResourceManager coclass
  22966  */
  22967 
  22968 DEFINE_GUID(CLSID_SpResourceManager, 0x96749373, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96);
  22969 
  22970 #ifdef __cplusplus
  22971 class DECLSPEC_UUID("96749373-3391-11d2-9ee3-00c04f797396") SpResourceManager;
  22972 #ifdef __CRT_UUID_DECL
  22973 __CRT_UUID_DECL(SpResourceManager, 0x96749373, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96)
  22974 #endif
  22975 #endif
  22976 
  22977 /*****************************************************************************
  22978  * SpStreamFormatConverter coclass
  22979  */
  22980 
  22981 DEFINE_GUID(CLSID_SpStreamFormatConverter, 0x7013943a, 0xe2ec, 0x11d2, 0xa0,0x86, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5);
  22982 
  22983 #ifdef __cplusplus
  22984 class DECLSPEC_UUID("7013943a-e2ec-11d2-a086-00c04f8ef9b5") SpStreamFormatConverter;
  22985 #ifdef __CRT_UUID_DECL
  22986 __CRT_UUID_DECL(SpStreamFormatConverter, 0x7013943a, 0xe2ec, 0x11d2, 0xa0,0x86, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5)
  22987 #endif
  22988 #endif
  22989 
  22990 /*****************************************************************************
  22991  * SpMMAudioEnum coclass
  22992  */
  22993 
  22994 DEFINE_GUID(CLSID_SpMMAudioEnum, 0xab1890a0, 0xe91f, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
  22995 
  22996 #ifdef __cplusplus
  22997 class DECLSPEC_UUID("ab1890a0-e91f-11d2-bb91-00c04f8ee6c0") SpMMAudioEnum;
  22998 #ifdef __CRT_UUID_DECL
  22999 __CRT_UUID_DECL(SpMMAudioEnum, 0xab1890a0, 0xe91f, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
  23000 #endif
  23001 #endif
  23002 
  23003 /*****************************************************************************
  23004  * SpMMAudioIn coclass
  23005  */
  23006 
  23007 DEFINE_GUID(CLSID_SpMMAudioIn, 0xcf3d2e50, 0x53f2, 0x11d2, 0x96,0x0c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
  23008 
  23009 #ifdef __cplusplus
  23010 class DECLSPEC_UUID("cf3d2e50-53f2-11d2-960c-00c04f8ee628") SpMMAudioIn;
  23011 #ifdef __CRT_UUID_DECL
  23012 __CRT_UUID_DECL(SpMMAudioIn, 0xcf3d2e50, 0x53f2, 0x11d2, 0x96,0x0c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
  23013 #endif
  23014 #endif
  23015 
  23016 /*****************************************************************************
  23017  * SpMMAudioOut coclass
  23018  */
  23019 
  23020 DEFINE_GUID(CLSID_SpMMAudioOut, 0xa8c680eb, 0x3d32, 0x11d2, 0x9e,0xe7, 0x00,0xc0,0x4f,0x79,0x73,0x96);
  23021 
  23022 #ifdef __cplusplus
  23023 class DECLSPEC_UUID("a8c680eb-3d32-11d2-9ee7-00c04f797396") SpMMAudioOut;
  23024 #ifdef __CRT_UUID_DECL
  23025 __CRT_UUID_DECL(SpMMAudioOut, 0xa8c680eb, 0x3d32, 0x11d2, 0x9e,0xe7, 0x00,0xc0,0x4f,0x79,0x73,0x96)
  23026 #endif
  23027 #endif
  23028 
  23029 /*****************************************************************************
  23030  * SpStream coclass
  23031  */
  23032 
  23033 DEFINE_GUID(CLSID_SpStream, 0x715d9c59, 0x4442, 0x11d2, 0x96,0x05, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
  23034 
  23035 #ifdef __cplusplus
  23036 class DECLSPEC_UUID("715d9c59-4442-11d2-9605-00c04f8ee628") SpStream;
  23037 #ifdef __CRT_UUID_DECL
  23038 __CRT_UUID_DECL(SpStream, 0x715d9c59, 0x4442, 0x11d2, 0x96,0x05, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
  23039 #endif
  23040 #endif
  23041 
  23042 /*****************************************************************************
  23043  * SpVoice coclass
  23044  */
  23045 
  23046 DEFINE_GUID(CLSID_SpVoice, 0x96749377, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96);
  23047 
  23048 #ifdef __cplusplus
  23049 class DECLSPEC_UUID("96749377-3391-11d2-9ee3-00c04f797396") SpVoice;
  23050 #ifdef __CRT_UUID_DECL
  23051 __CRT_UUID_DECL(SpVoice, 0x96749377, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96)
  23052 #endif
  23053 #endif
  23054 
  23055 /*****************************************************************************
  23056  * SpSharedRecoContext coclass
  23057  */
  23058 
  23059 DEFINE_GUID(CLSID_SpSharedRecoContext, 0x47206204, 0x5eca, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
  23060 
  23061 #ifdef __cplusplus
  23062 class DECLSPEC_UUID("47206204-5eca-11d2-960f-00c04f8ee628") SpSharedRecoContext;
  23063 #ifdef __CRT_UUID_DECL
  23064 __CRT_UUID_DECL(SpSharedRecoContext, 0x47206204, 0x5eca, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
  23065 #endif
  23066 #endif
  23067 
  23068 /*****************************************************************************
  23069  * SpInprocRecognizer coclass
  23070  */
  23071 
  23072 DEFINE_GUID(CLSID_SpInprocRecognizer, 0x41b89b6b, 0x9399, 0x11d2, 0x96,0x23, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
  23073 
  23074 #ifdef __cplusplus
  23075 class DECLSPEC_UUID("41b89b6b-9399-11d2-9623-00c04f8ee628") SpInprocRecognizer;
  23076 #ifdef __CRT_UUID_DECL
  23077 __CRT_UUID_DECL(SpInprocRecognizer, 0x41b89b6b, 0x9399, 0x11d2, 0x96,0x23, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
  23078 #endif
  23079 #endif
  23080 
  23081 /*****************************************************************************
  23082  * SpSharedRecognizer coclass
  23083  */
  23084 
  23085 DEFINE_GUID(CLSID_SpSharedRecognizer, 0x3bee4890, 0x4fe9, 0x4a37, 0x8c,0x1e, 0x5e,0x7e,0x12,0x79,0x1c,0x1f);
  23086 
  23087 #ifdef __cplusplus
  23088 class DECLSPEC_UUID("3bee4890-4fe9-4a37-8c1e-5e7e12791c1f") SpSharedRecognizer;
  23089 #ifdef __CRT_UUID_DECL
  23090 __CRT_UUID_DECL(SpSharedRecognizer, 0x3bee4890, 0x4fe9, 0x4a37, 0x8c,0x1e, 0x5e,0x7e,0x12,0x79,0x1c,0x1f)
  23091 #endif
  23092 #endif
  23093 
  23094 /*****************************************************************************
  23095  * SpLexicon coclass
  23096  */
  23097 
  23098 DEFINE_GUID(CLSID_SpLexicon, 0x0655e396, 0x25d0, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c);
  23099 
  23100 #ifdef __cplusplus
  23101 class DECLSPEC_UUID("0655e396-25d0-11d3-9c26-00c04f8ef87c") SpLexicon;
  23102 #ifdef __CRT_UUID_DECL
  23103 __CRT_UUID_DECL(SpLexicon, 0x0655e396, 0x25d0, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c)
  23104 #endif
  23105 #endif
  23106 
  23107 /*****************************************************************************
  23108  * SpUnCompressedLexicon coclass
  23109  */
  23110 
  23111 DEFINE_GUID(CLSID_SpUnCompressedLexicon, 0xc9e37c15, 0xdf92, 0x4727, 0x85,0xd6, 0x72,0xe5,0xee,0xb6,0x99,0x5a);
  23112 
  23113 #ifdef __cplusplus
  23114 class DECLSPEC_UUID("c9e37c15-df92-4727-85d6-72e5eeb6995a") SpUnCompressedLexicon;
  23115 #ifdef __CRT_UUID_DECL
  23116 __CRT_UUID_DECL(SpUnCompressedLexicon, 0xc9e37c15, 0xdf92, 0x4727, 0x85,0xd6, 0x72,0xe5,0xee,0xb6,0x99,0x5a)
  23117 #endif
  23118 #endif
  23119 
  23120 /*****************************************************************************
  23121  * SpCompressedLexicon coclass
  23122  */
  23123 
  23124 DEFINE_GUID(CLSID_SpCompressedLexicon, 0x90903716, 0x2f42, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c);
  23125 
  23126 #ifdef __cplusplus
  23127 class DECLSPEC_UUID("90903716-2f42-11d3-9c26-00c04f8ef87c") SpCompressedLexicon;
  23128 #ifdef __CRT_UUID_DECL
  23129 __CRT_UUID_DECL(SpCompressedLexicon, 0x90903716, 0x2f42, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c)
  23130 #endif
  23131 #endif
  23132 
  23133 /*****************************************************************************
  23134  * SpShortcut coclass
  23135  */
  23136 
  23137 DEFINE_GUID(CLSID_SpShortcut, 0x0d722f1a, 0x9fcf, 0x4e62, 0x96,0xd8, 0x6d,0xf8,0xf0,0x1a,0x26,0xaa);
  23138 
  23139 #ifdef __cplusplus
  23140 class DECLSPEC_UUID("0d722f1a-9fcf-4e62-96d8-6df8f01a26aa") SpShortcut;
  23141 #ifdef __CRT_UUID_DECL
  23142 __CRT_UUID_DECL(SpShortcut, 0x0d722f1a, 0x9fcf, 0x4e62, 0x96,0xd8, 0x6d,0xf8,0xf0,0x1a,0x26,0xaa)
  23143 #endif
  23144 #endif
  23145 
  23146 /*****************************************************************************
  23147  * SpPhoneConverter coclass
  23148  */
  23149 
  23150 DEFINE_GUID(CLSID_SpPhoneConverter, 0x9185f743, 0x1143, 0x4c28, 0x86,0xb5, 0xbf,0xf1,0x4f,0x20,0xe5,0xc8);
  23151 
  23152 #ifdef __cplusplus
  23153 class DECLSPEC_UUID("9185f743-1143-4c28-86b5-bff14f20e5c8") SpPhoneConverter;
  23154 #ifdef __CRT_UUID_DECL
  23155 __CRT_UUID_DECL(SpPhoneConverter, 0x9185f743, 0x1143, 0x4c28, 0x86,0xb5, 0xbf,0xf1,0x4f,0x20,0xe5,0xc8)
  23156 #endif
  23157 #endif
  23158 
  23159 /*****************************************************************************
  23160  * SpPhoneticAlphabetConverter coclass
  23161  */
  23162 
  23163 DEFINE_GUID(CLSID_SpPhoneticAlphabetConverter, 0x4f414126, 0xdfe3, 0x4629, 0x99,0xee, 0x79,0x79,0x78,0x31,0x7e,0xad);
  23164 
  23165 #ifdef __cplusplus
  23166 class DECLSPEC_UUID("4f414126-dfe3-4629-99ee-797978317ead") SpPhoneticAlphabetConverter;
  23167 #ifdef __CRT_UUID_DECL
  23168 __CRT_UUID_DECL(SpPhoneticAlphabetConverter, 0x4f414126, 0xdfe3, 0x4629, 0x99,0xee, 0x79,0x79,0x78,0x31,0x7e,0xad)
  23169 #endif
  23170 #endif
  23171 
  23172 /*****************************************************************************
  23173  * SpNullPhoneConverter coclass
  23174  */
  23175 
  23176 DEFINE_GUID(CLSID_SpNullPhoneConverter, 0x455f24e9, 0x7396, 0x4a16, 0x97,0x15, 0x7c,0x0f,0xdb,0xe3,0xef,0xe3);
  23177 
  23178 #ifdef __cplusplus
  23179 class DECLSPEC_UUID("455f24e9-7396-4a16-9715-7c0fdbe3efe3") SpNullPhoneConverter;
  23180 #ifdef __CRT_UUID_DECL
  23181 __CRT_UUID_DECL(SpNullPhoneConverter, 0x455f24e9, 0x7396, 0x4a16, 0x97,0x15, 0x7c,0x0f,0xdb,0xe3,0xef,0xe3)
  23182 #endif
  23183 #endif
  23184 
  23185 /*****************************************************************************
  23186  * SpTextSelectionInformation coclass
  23187  */
  23188 
  23189 DEFINE_GUID(CLSID_SpTextSelectionInformation, 0x0f92030a, 0xcbfd, 0x4ab8, 0xa1,0x64, 0xff,0x59,0x85,0x54,0x7f,0xf6);
  23190 
  23191 #ifdef __cplusplus
  23192 class DECLSPEC_UUID("0f92030a-cbfd-4ab8-a164-ff5985547ff6") SpTextSelectionInformation;
  23193 #ifdef __CRT_UUID_DECL
  23194 __CRT_UUID_DECL(SpTextSelectionInformation, 0x0f92030a, 0xcbfd, 0x4ab8, 0xa1,0x64, 0xff,0x59,0x85,0x54,0x7f,0xf6)
  23195 #endif
  23196 #endif
  23197 
  23198 /*****************************************************************************
  23199  * SpPhraseInfoBuilder coclass
  23200  */
  23201 
  23202 DEFINE_GUID(CLSID_SpPhraseInfoBuilder, 0xc23fc28d, 0xc55f, 0x4720, 0x8b,0x32, 0x91,0xf7,0x3c,0x2b,0xd5,0xd1);
  23203 
  23204 #ifdef __cplusplus
  23205 class DECLSPEC_UUID("c23fc28d-c55f-4720-8b32-91f73c2bd5d1") SpPhraseInfoBuilder;
  23206 #ifdef __CRT_UUID_DECL
  23207 __CRT_UUID_DECL(SpPhraseInfoBuilder, 0xc23fc28d, 0xc55f, 0x4720, 0x8b,0x32, 0x91,0xf7,0x3c,0x2b,0xd5,0xd1)
  23208 #endif
  23209 #endif
  23210 
  23211 /*****************************************************************************
  23212  * SpAudioFormat coclass
  23213  */
  23214 
  23215 DEFINE_GUID(CLSID_SpAudioFormat, 0x9ef96870, 0xe160, 0x4792, 0x82,0x0d, 0x48,0xcf,0x06,0x49,0xe4,0xec);
  23216 
  23217 #ifdef __cplusplus
  23218 class DECLSPEC_UUID("9ef96870-e160-4792-820d-48cf0649e4ec") SpAudioFormat;
  23219 #ifdef __CRT_UUID_DECL
  23220 __CRT_UUID_DECL(SpAudioFormat, 0x9ef96870, 0xe160, 0x4792, 0x82,0x0d, 0x48,0xcf,0x06,0x49,0xe4,0xec)
  23221 #endif
  23222 #endif
  23223 
  23224 /*****************************************************************************
  23225  * SpWaveFormatEx coclass
  23226  */
  23227 
  23228 DEFINE_GUID(CLSID_SpWaveFormatEx, 0xc79a574c, 0x63be, 0x44b9, 0x80,0x1f, 0x28,0x3f,0x87,0xf8,0x98,0xbe);
  23229 
  23230 #ifdef __cplusplus
  23231 class DECLSPEC_UUID("c79a574c-63be-44b9-801f-283f87f898be") SpWaveFormatEx;
  23232 #ifdef __CRT_UUID_DECL
  23233 __CRT_UUID_DECL(SpWaveFormatEx, 0xc79a574c, 0x63be, 0x44b9, 0x80,0x1f, 0x28,0x3f,0x87,0xf8,0x98,0xbe)
  23234 #endif
  23235 #endif
  23236 
  23237 /*****************************************************************************
  23238  * SpInProcRecoContext coclass
  23239  */
  23240 
  23241 DEFINE_GUID(CLSID_SpInProcRecoContext, 0x73ad6842, 0xace0, 0x45e8, 0xa4,0xdd, 0x87,0x95,0x88,0x1a,0x2c,0x2a);
  23242 
  23243 #ifdef __cplusplus
  23244 class DECLSPEC_UUID("73ad6842-ace0-45e8-a4dd-8795881a2c2a") SpInProcRecoContext;
  23245 #ifdef __CRT_UUID_DECL
  23246 __CRT_UUID_DECL(SpInProcRecoContext, 0x73ad6842, 0xace0, 0x45e8, 0xa4,0xdd, 0x87,0x95,0x88,0x1a,0x2c,0x2a)
  23247 #endif
  23248 #endif
  23249 
  23250 /*****************************************************************************
  23251  * SpCustomStream coclass
  23252  */
  23253 
  23254 DEFINE_GUID(CLSID_SpCustomStream, 0x8dbef13f, 0x1948, 0x4aa8, 0x8c,0xf0, 0x04,0x8e,0xeb,0xed,0x95,0xd8);
  23255 
  23256 #ifdef __cplusplus
  23257 class DECLSPEC_UUID("8dbef13f-1948-4aa8-8cf0-048eebed95d8") SpCustomStream;
  23258 #ifdef __CRT_UUID_DECL
  23259 __CRT_UUID_DECL(SpCustomStream, 0x8dbef13f, 0x1948, 0x4aa8, 0x8c,0xf0, 0x04,0x8e,0xeb,0xed,0x95,0xd8)
  23260 #endif
  23261 #endif
  23262 
  23263 /*****************************************************************************
  23264  * SpFileStream coclass
  23265  */
  23266 
  23267 DEFINE_GUID(CLSID_SpFileStream, 0x947812b3, 0x2ae1, 0x4644, 0xba,0x86, 0x9e,0x90,0xde,0xd7,0xec,0x91);
  23268 
  23269 #ifdef __cplusplus
  23270 class DECLSPEC_UUID("947812b3-2ae1-4644-ba86-9e90ded7ec91") SpFileStream;
  23271 #ifdef __CRT_UUID_DECL
  23272 __CRT_UUID_DECL(SpFileStream, 0x947812b3, 0x2ae1, 0x4644, 0xba,0x86, 0x9e,0x90,0xde,0xd7,0xec,0x91)
  23273 #endif
  23274 #endif
  23275 
  23276 /*****************************************************************************
  23277  * SpMemoryStream coclass
  23278  */
  23279 
  23280 DEFINE_GUID(CLSID_SpMemoryStream, 0x5fb7ef7d, 0xdff4, 0x468a, 0xb6,0xb7, 0x2f,0xcb,0xd1,0x88,0xf9,0x94);
  23281 
  23282 #ifdef __cplusplus
  23283 class DECLSPEC_UUID("5fb7ef7d-dff4-468a-b6b7-2fcbd188f994") SpMemoryStream;
  23284 #ifdef __CRT_UUID_DECL
  23285 __CRT_UUID_DECL(SpMemoryStream, 0x5fb7ef7d, 0xdff4, 0x468a, 0xb6,0xb7, 0x2f,0xcb,0xd1,0x88,0xf9,0x94)
  23286 #endif
  23287 #endif
  23288 
  23289 #ifndef __ISpXMLRecoResult_FWD_DEFINED__
  23290 #define __ISpXMLRecoResult_FWD_DEFINED__
  23291 typedef interface ISpXMLRecoResult ISpXMLRecoResult;
  23292 #ifdef __cplusplus
  23293 interface ISpXMLRecoResult;
  23294 #endif /* __cplusplus */
  23295 #endif
  23296 
  23297 #ifndef __ISpRecoGrammar2_FWD_DEFINED__
  23298 #define __ISpRecoGrammar2_FWD_DEFINED__
  23299 typedef interface ISpRecoGrammar2 ISpRecoGrammar2;
  23300 #ifdef __cplusplus
  23301 interface ISpRecoGrammar2;
  23302 #endif /* __cplusplus */
  23303 #endif
  23304 
  23305 #ifndef __ISpeechResourceLoader_FWD_DEFINED__
  23306 #define __ISpeechResourceLoader_FWD_DEFINED__
  23307 typedef interface ISpeechResourceLoader ISpeechResourceLoader;
  23308 #ifdef __cplusplus
  23309 interface ISpeechResourceLoader;
  23310 #endif /* __cplusplus */
  23311 #endif
  23312 
  23313 #endif /* __SpeechLib_LIBRARY_DEFINED__ */
  23314 /* Begin additional prototypes for all interfaces */
  23315 
  23316 ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
  23317 unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
  23318 unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
  23319 void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
  23320 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
  23321 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
  23322 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
  23323 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
  23324 ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
  23325 unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
  23326 unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
  23327 void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
  23328 
  23329 /* End additional prototypes */
  23330 
  23331 #ifdef __cplusplus
  23332 }
  23333 #endif
  23334 
  23335 #endif /* __sapi54_h__ */