zig

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

sapi53.h (913015B) - Raw


      1 /*** Autogenerated by WIDL 10.4 from include/sapi53.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 __sapi53_h__
     17 #define __sapi53_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 __ISpEnginePronunciation_FWD_DEFINED__
    374 #define __ISpEnginePronunciation_FWD_DEFINED__
    375 typedef interface ISpEnginePronunciation ISpEnginePronunciation;
    376 #ifdef __cplusplus
    377 interface ISpEnginePronunciation;
    378 #endif /* __cplusplus */
    379 #endif
    380 
    381 #ifndef __ISpDisplayAlternates_FWD_DEFINED__
    382 #define __ISpDisplayAlternates_FWD_DEFINED__
    383 typedef interface ISpDisplayAlternates ISpDisplayAlternates;
    384 #ifdef __cplusplus
    385 interface ISpDisplayAlternates;
    386 #endif /* __cplusplus */
    387 #endif
    388 
    389 #ifndef __ISpeechDataKey_FWD_DEFINED__
    390 #define __ISpeechDataKey_FWD_DEFINED__
    391 typedef interface ISpeechDataKey ISpeechDataKey;
    392 #ifdef __cplusplus
    393 interface ISpeechDataKey;
    394 #endif /* __cplusplus */
    395 #endif
    396 
    397 #ifndef __ISpeechObjectToken_FWD_DEFINED__
    398 #define __ISpeechObjectToken_FWD_DEFINED__
    399 typedef interface ISpeechObjectToken ISpeechObjectToken;
    400 #ifdef __cplusplus
    401 interface ISpeechObjectToken;
    402 #endif /* __cplusplus */
    403 #endif
    404 
    405 #ifndef __ISpeechObjectTokens_FWD_DEFINED__
    406 #define __ISpeechObjectTokens_FWD_DEFINED__
    407 typedef interface ISpeechObjectTokens ISpeechObjectTokens;
    408 #ifdef __cplusplus
    409 interface ISpeechObjectTokens;
    410 #endif /* __cplusplus */
    411 #endif
    412 
    413 #ifndef __ISpeechObjectTokenCategory_FWD_DEFINED__
    414 #define __ISpeechObjectTokenCategory_FWD_DEFINED__
    415 typedef interface ISpeechObjectTokenCategory ISpeechObjectTokenCategory;
    416 #ifdef __cplusplus
    417 interface ISpeechObjectTokenCategory;
    418 #endif /* __cplusplus */
    419 #endif
    420 
    421 #ifndef __ISpeechAudioFormat_FWD_DEFINED__
    422 #define __ISpeechAudioFormat_FWD_DEFINED__
    423 typedef interface ISpeechAudioFormat ISpeechAudioFormat;
    424 #ifdef __cplusplus
    425 interface ISpeechAudioFormat;
    426 #endif /* __cplusplus */
    427 #endif
    428 
    429 #ifndef __ISpeechBaseStream_FWD_DEFINED__
    430 #define __ISpeechBaseStream_FWD_DEFINED__
    431 typedef interface ISpeechBaseStream ISpeechBaseStream;
    432 #ifdef __cplusplus
    433 interface ISpeechBaseStream;
    434 #endif /* __cplusplus */
    435 #endif
    436 
    437 #ifndef __ISpeechAudio_FWD_DEFINED__
    438 #define __ISpeechAudio_FWD_DEFINED__
    439 typedef interface ISpeechAudio ISpeechAudio;
    440 #ifdef __cplusplus
    441 interface ISpeechAudio;
    442 #endif /* __cplusplus */
    443 #endif
    444 
    445 #ifndef __ISpeechMMSysAudio_FWD_DEFINED__
    446 #define __ISpeechMMSysAudio_FWD_DEFINED__
    447 typedef interface ISpeechMMSysAudio ISpeechMMSysAudio;
    448 #ifdef __cplusplus
    449 interface ISpeechMMSysAudio;
    450 #endif /* __cplusplus */
    451 #endif
    452 
    453 #ifndef __ISpeechFileStream_FWD_DEFINED__
    454 #define __ISpeechFileStream_FWD_DEFINED__
    455 typedef interface ISpeechFileStream ISpeechFileStream;
    456 #ifdef __cplusplus
    457 interface ISpeechFileStream;
    458 #endif /* __cplusplus */
    459 #endif
    460 
    461 #ifndef __ISpeechCustomStream_FWD_DEFINED__
    462 #define __ISpeechCustomStream_FWD_DEFINED__
    463 typedef interface ISpeechCustomStream ISpeechCustomStream;
    464 #ifdef __cplusplus
    465 interface ISpeechCustomStream;
    466 #endif /* __cplusplus */
    467 #endif
    468 
    469 #ifndef __ISpeechMemoryStream_FWD_DEFINED__
    470 #define __ISpeechMemoryStream_FWD_DEFINED__
    471 typedef interface ISpeechMemoryStream ISpeechMemoryStream;
    472 #ifdef __cplusplus
    473 interface ISpeechMemoryStream;
    474 #endif /* __cplusplus */
    475 #endif
    476 
    477 #ifndef __ISpeechAudioStatus_FWD_DEFINED__
    478 #define __ISpeechAudioStatus_FWD_DEFINED__
    479 typedef interface ISpeechAudioStatus ISpeechAudioStatus;
    480 #ifdef __cplusplus
    481 interface ISpeechAudioStatus;
    482 #endif /* __cplusplus */
    483 #endif
    484 
    485 #ifndef __ISpeechAudioBufferInfo_FWD_DEFINED__
    486 #define __ISpeechAudioBufferInfo_FWD_DEFINED__
    487 typedef interface ISpeechAudioBufferInfo ISpeechAudioBufferInfo;
    488 #ifdef __cplusplus
    489 interface ISpeechAudioBufferInfo;
    490 #endif /* __cplusplus */
    491 #endif
    492 
    493 #ifndef __ISpeechWaveFormatEx_FWD_DEFINED__
    494 #define __ISpeechWaveFormatEx_FWD_DEFINED__
    495 typedef interface ISpeechWaveFormatEx ISpeechWaveFormatEx;
    496 #ifdef __cplusplus
    497 interface ISpeechWaveFormatEx;
    498 #endif /* __cplusplus */
    499 #endif
    500 
    501 #ifndef __ISpeechVoice_FWD_DEFINED__
    502 #define __ISpeechVoice_FWD_DEFINED__
    503 typedef interface ISpeechVoice ISpeechVoice;
    504 #ifdef __cplusplus
    505 interface ISpeechVoice;
    506 #endif /* __cplusplus */
    507 #endif
    508 
    509 #ifndef __ISpeechVoiceStatus_FWD_DEFINED__
    510 #define __ISpeechVoiceStatus_FWD_DEFINED__
    511 typedef interface ISpeechVoiceStatus ISpeechVoiceStatus;
    512 #ifdef __cplusplus
    513 interface ISpeechVoiceStatus;
    514 #endif /* __cplusplus */
    515 #endif
    516 
    517 #ifndef ___ISpeechVoiceEvents_FWD_DEFINED__
    518 #define ___ISpeechVoiceEvents_FWD_DEFINED__
    519 typedef interface _ISpeechVoiceEvents _ISpeechVoiceEvents;
    520 #ifdef __cplusplus
    521 interface _ISpeechVoiceEvents;
    522 #endif /* __cplusplus */
    523 #endif
    524 
    525 #ifndef __ISpeechRecognizer_FWD_DEFINED__
    526 #define __ISpeechRecognizer_FWD_DEFINED__
    527 typedef interface ISpeechRecognizer ISpeechRecognizer;
    528 #ifdef __cplusplus
    529 interface ISpeechRecognizer;
    530 #endif /* __cplusplus */
    531 #endif
    532 
    533 #ifndef __ISpeechRecognizerStatus_FWD_DEFINED__
    534 #define __ISpeechRecognizerStatus_FWD_DEFINED__
    535 typedef interface ISpeechRecognizerStatus ISpeechRecognizerStatus;
    536 #ifdef __cplusplus
    537 interface ISpeechRecognizerStatus;
    538 #endif /* __cplusplus */
    539 #endif
    540 
    541 #ifndef __ISpeechRecoContext_FWD_DEFINED__
    542 #define __ISpeechRecoContext_FWD_DEFINED__
    543 typedef interface ISpeechRecoContext ISpeechRecoContext;
    544 #ifdef __cplusplus
    545 interface ISpeechRecoContext;
    546 #endif /* __cplusplus */
    547 #endif
    548 
    549 #ifndef __ISpeechRecoGrammar_FWD_DEFINED__
    550 #define __ISpeechRecoGrammar_FWD_DEFINED__
    551 typedef interface ISpeechRecoGrammar ISpeechRecoGrammar;
    552 #ifdef __cplusplus
    553 interface ISpeechRecoGrammar;
    554 #endif /* __cplusplus */
    555 #endif
    556 
    557 #ifndef ___ISpeechRecoContextEvents_FWD_DEFINED__
    558 #define ___ISpeechRecoContextEvents_FWD_DEFINED__
    559 typedef interface _ISpeechRecoContextEvents _ISpeechRecoContextEvents;
    560 #ifdef __cplusplus
    561 interface _ISpeechRecoContextEvents;
    562 #endif /* __cplusplus */
    563 #endif
    564 
    565 #ifndef __ISpeechGrammarRule_FWD_DEFINED__
    566 #define __ISpeechGrammarRule_FWD_DEFINED__
    567 typedef interface ISpeechGrammarRule ISpeechGrammarRule;
    568 #ifdef __cplusplus
    569 interface ISpeechGrammarRule;
    570 #endif /* __cplusplus */
    571 #endif
    572 
    573 #ifndef __ISpeechGrammarRules_FWD_DEFINED__
    574 #define __ISpeechGrammarRules_FWD_DEFINED__
    575 typedef interface ISpeechGrammarRules ISpeechGrammarRules;
    576 #ifdef __cplusplus
    577 interface ISpeechGrammarRules;
    578 #endif /* __cplusplus */
    579 #endif
    580 
    581 #ifndef __ISpeechGrammarRuleState_FWD_DEFINED__
    582 #define __ISpeechGrammarRuleState_FWD_DEFINED__
    583 typedef interface ISpeechGrammarRuleState ISpeechGrammarRuleState;
    584 #ifdef __cplusplus
    585 interface ISpeechGrammarRuleState;
    586 #endif /* __cplusplus */
    587 #endif
    588 
    589 #ifndef __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
    590 #define __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
    591 typedef interface ISpeechGrammarRuleStateTransitions ISpeechGrammarRuleStateTransitions;
    592 #ifdef __cplusplus
    593 interface ISpeechGrammarRuleStateTransitions;
    594 #endif /* __cplusplus */
    595 #endif
    596 
    597 #ifndef __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
    598 #define __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
    599 typedef interface ISpeechGrammarRuleStateTransition ISpeechGrammarRuleStateTransition;
    600 #ifdef __cplusplus
    601 interface ISpeechGrammarRuleStateTransition;
    602 #endif /* __cplusplus */
    603 #endif
    604 
    605 #ifndef __ISpeechTextSelectionInformation_FWD_DEFINED__
    606 #define __ISpeechTextSelectionInformation_FWD_DEFINED__
    607 typedef interface ISpeechTextSelectionInformation ISpeechTextSelectionInformation;
    608 #ifdef __cplusplus
    609 interface ISpeechTextSelectionInformation;
    610 #endif /* __cplusplus */
    611 #endif
    612 
    613 #ifndef __ISpeechRecoResult_FWD_DEFINED__
    614 #define __ISpeechRecoResult_FWD_DEFINED__
    615 typedef interface ISpeechRecoResult ISpeechRecoResult;
    616 #ifdef __cplusplus
    617 interface ISpeechRecoResult;
    618 #endif /* __cplusplus */
    619 #endif
    620 
    621 #ifndef __ISpeechXMLRecoResult_FWD_DEFINED__
    622 #define __ISpeechXMLRecoResult_FWD_DEFINED__
    623 typedef interface ISpeechXMLRecoResult ISpeechXMLRecoResult;
    624 #ifdef __cplusplus
    625 interface ISpeechXMLRecoResult;
    626 #endif /* __cplusplus */
    627 #endif
    628 
    629 #ifndef __ISpeechRecoResult2_FWD_DEFINED__
    630 #define __ISpeechRecoResult2_FWD_DEFINED__
    631 typedef interface ISpeechRecoResult2 ISpeechRecoResult2;
    632 #ifdef __cplusplus
    633 interface ISpeechRecoResult2;
    634 #endif /* __cplusplus */
    635 #endif
    636 
    637 #ifndef __ISpeechRecoResultDispatch_FWD_DEFINED__
    638 #define __ISpeechRecoResultDispatch_FWD_DEFINED__
    639 typedef interface ISpeechRecoResultDispatch ISpeechRecoResultDispatch;
    640 #ifdef __cplusplus
    641 interface ISpeechRecoResultDispatch;
    642 #endif /* __cplusplus */
    643 #endif
    644 
    645 #ifndef __ISpeechPhraseInfoBuilder_FWD_DEFINED__
    646 #define __ISpeechPhraseInfoBuilder_FWD_DEFINED__
    647 typedef interface ISpeechPhraseInfoBuilder ISpeechPhraseInfoBuilder;
    648 #ifdef __cplusplus
    649 interface ISpeechPhraseInfoBuilder;
    650 #endif /* __cplusplus */
    651 #endif
    652 
    653 #ifndef __ISpeechRecoResultTimes_FWD_DEFINED__
    654 #define __ISpeechRecoResultTimes_FWD_DEFINED__
    655 typedef interface ISpeechRecoResultTimes ISpeechRecoResultTimes;
    656 #ifdef __cplusplus
    657 interface ISpeechRecoResultTimes;
    658 #endif /* __cplusplus */
    659 #endif
    660 
    661 #ifndef __ISpeechPhraseAlternate_FWD_DEFINED__
    662 #define __ISpeechPhraseAlternate_FWD_DEFINED__
    663 typedef interface ISpeechPhraseAlternate ISpeechPhraseAlternate;
    664 #ifdef __cplusplus
    665 interface ISpeechPhraseAlternate;
    666 #endif /* __cplusplus */
    667 #endif
    668 
    669 #ifndef __ISpeechPhraseAlternates_FWD_DEFINED__
    670 #define __ISpeechPhraseAlternates_FWD_DEFINED__
    671 typedef interface ISpeechPhraseAlternates ISpeechPhraseAlternates;
    672 #ifdef __cplusplus
    673 interface ISpeechPhraseAlternates;
    674 #endif /* __cplusplus */
    675 #endif
    676 
    677 #ifndef __ISpeechPhraseInfo_FWD_DEFINED__
    678 #define __ISpeechPhraseInfo_FWD_DEFINED__
    679 typedef interface ISpeechPhraseInfo ISpeechPhraseInfo;
    680 #ifdef __cplusplus
    681 interface ISpeechPhraseInfo;
    682 #endif /* __cplusplus */
    683 #endif
    684 
    685 #ifndef __ISpeechPhraseElement_FWD_DEFINED__
    686 #define __ISpeechPhraseElement_FWD_DEFINED__
    687 typedef interface ISpeechPhraseElement ISpeechPhraseElement;
    688 #ifdef __cplusplus
    689 interface ISpeechPhraseElement;
    690 #endif /* __cplusplus */
    691 #endif
    692 
    693 #ifndef __ISpeechPhraseElements_FWD_DEFINED__
    694 #define __ISpeechPhraseElements_FWD_DEFINED__
    695 typedef interface ISpeechPhraseElements ISpeechPhraseElements;
    696 #ifdef __cplusplus
    697 interface ISpeechPhraseElements;
    698 #endif /* __cplusplus */
    699 #endif
    700 
    701 #ifndef __ISpeechPhraseReplacement_FWD_DEFINED__
    702 #define __ISpeechPhraseReplacement_FWD_DEFINED__
    703 typedef interface ISpeechPhraseReplacement ISpeechPhraseReplacement;
    704 #ifdef __cplusplus
    705 interface ISpeechPhraseReplacement;
    706 #endif /* __cplusplus */
    707 #endif
    708 
    709 #ifndef __ISpeechPhraseReplacements_FWD_DEFINED__
    710 #define __ISpeechPhraseReplacements_FWD_DEFINED__
    711 typedef interface ISpeechPhraseReplacements ISpeechPhraseReplacements;
    712 #ifdef __cplusplus
    713 interface ISpeechPhraseReplacements;
    714 #endif /* __cplusplus */
    715 #endif
    716 
    717 #ifndef __ISpeechPhraseProperty_FWD_DEFINED__
    718 #define __ISpeechPhraseProperty_FWD_DEFINED__
    719 typedef interface ISpeechPhraseProperty ISpeechPhraseProperty;
    720 #ifdef __cplusplus
    721 interface ISpeechPhraseProperty;
    722 #endif /* __cplusplus */
    723 #endif
    724 
    725 #ifndef __ISpeechPhraseProperties_FWD_DEFINED__
    726 #define __ISpeechPhraseProperties_FWD_DEFINED__
    727 typedef interface ISpeechPhraseProperties ISpeechPhraseProperties;
    728 #ifdef __cplusplus
    729 interface ISpeechPhraseProperties;
    730 #endif /* __cplusplus */
    731 #endif
    732 
    733 #ifndef __ISpeechPhraseRule_FWD_DEFINED__
    734 #define __ISpeechPhraseRule_FWD_DEFINED__
    735 typedef interface ISpeechPhraseRule ISpeechPhraseRule;
    736 #ifdef __cplusplus
    737 interface ISpeechPhraseRule;
    738 #endif /* __cplusplus */
    739 #endif
    740 
    741 #ifndef __ISpeechPhraseRules_FWD_DEFINED__
    742 #define __ISpeechPhraseRules_FWD_DEFINED__
    743 typedef interface ISpeechPhraseRules ISpeechPhraseRules;
    744 #ifdef __cplusplus
    745 interface ISpeechPhraseRules;
    746 #endif /* __cplusplus */
    747 #endif
    748 
    749 #ifndef __ISpeechLexiconWords_FWD_DEFINED__
    750 #define __ISpeechLexiconWords_FWD_DEFINED__
    751 typedef interface ISpeechLexiconWords ISpeechLexiconWords;
    752 #ifdef __cplusplus
    753 interface ISpeechLexiconWords;
    754 #endif /* __cplusplus */
    755 #endif
    756 
    757 #ifndef __ISpeechLexicon_FWD_DEFINED__
    758 #define __ISpeechLexicon_FWD_DEFINED__
    759 typedef interface ISpeechLexicon ISpeechLexicon;
    760 #ifdef __cplusplus
    761 interface ISpeechLexicon;
    762 #endif /* __cplusplus */
    763 #endif
    764 
    765 #ifndef __ISpeechLexiconWord_FWD_DEFINED__
    766 #define __ISpeechLexiconWord_FWD_DEFINED__
    767 typedef interface ISpeechLexiconWord ISpeechLexiconWord;
    768 #ifdef __cplusplus
    769 interface ISpeechLexiconWord;
    770 #endif /* __cplusplus */
    771 #endif
    772 
    773 #ifndef __ISpeechLexiconPronunciations_FWD_DEFINED__
    774 #define __ISpeechLexiconPronunciations_FWD_DEFINED__
    775 typedef interface ISpeechLexiconPronunciations ISpeechLexiconPronunciations;
    776 #ifdef __cplusplus
    777 interface ISpeechLexiconPronunciations;
    778 #endif /* __cplusplus */
    779 #endif
    780 
    781 #ifndef __ISpeechLexiconPronunciation_FWD_DEFINED__
    782 #define __ISpeechLexiconPronunciation_FWD_DEFINED__
    783 typedef interface ISpeechLexiconPronunciation ISpeechLexiconPronunciation;
    784 #ifdef __cplusplus
    785 interface ISpeechLexiconPronunciation;
    786 #endif /* __cplusplus */
    787 #endif
    788 
    789 #ifndef __ISpeechPhoneConverter_FWD_DEFINED__
    790 #define __ISpeechPhoneConverter_FWD_DEFINED__
    791 typedef interface ISpeechPhoneConverter ISpeechPhoneConverter;
    792 #ifdef __cplusplus
    793 interface ISpeechPhoneConverter;
    794 #endif /* __cplusplus */
    795 #endif
    796 
    797 #ifndef __SpNotifyTranslator_FWD_DEFINED__
    798 #define __SpNotifyTranslator_FWD_DEFINED__
    799 #ifdef __cplusplus
    800 typedef class SpNotifyTranslator SpNotifyTranslator;
    801 #else
    802 typedef struct SpNotifyTranslator SpNotifyTranslator;
    803 #endif /* defined __cplusplus */
    804 #endif /* defined __SpNotifyTranslator_FWD_DEFINED__ */
    805 
    806 #ifndef __SpObjectTokenCategory_FWD_DEFINED__
    807 #define __SpObjectTokenCategory_FWD_DEFINED__
    808 #ifdef __cplusplus
    809 typedef class SpObjectTokenCategory SpObjectTokenCategory;
    810 #else
    811 typedef struct SpObjectTokenCategory SpObjectTokenCategory;
    812 #endif /* defined __cplusplus */
    813 #endif /* defined __SpObjectTokenCategory_FWD_DEFINED__ */
    814 
    815 #ifndef __SpObjectToken_FWD_DEFINED__
    816 #define __SpObjectToken_FWD_DEFINED__
    817 #ifdef __cplusplus
    818 typedef class SpObjectToken SpObjectToken;
    819 #else
    820 typedef struct SpObjectToken SpObjectToken;
    821 #endif /* defined __cplusplus */
    822 #endif /* defined __SpObjectToken_FWD_DEFINED__ */
    823 
    824 #ifndef __SpResourceManager_FWD_DEFINED__
    825 #define __SpResourceManager_FWD_DEFINED__
    826 #ifdef __cplusplus
    827 typedef class SpResourceManager SpResourceManager;
    828 #else
    829 typedef struct SpResourceManager SpResourceManager;
    830 #endif /* defined __cplusplus */
    831 #endif /* defined __SpResourceManager_FWD_DEFINED__ */
    832 
    833 #ifndef __SpStreamFormatConverter_FWD_DEFINED__
    834 #define __SpStreamFormatConverter_FWD_DEFINED__
    835 #ifdef __cplusplus
    836 typedef class SpStreamFormatConverter SpStreamFormatConverter;
    837 #else
    838 typedef struct SpStreamFormatConverter SpStreamFormatConverter;
    839 #endif /* defined __cplusplus */
    840 #endif /* defined __SpStreamFormatConverter_FWD_DEFINED__ */
    841 
    842 #ifndef __SpMMAudioEnum_FWD_DEFINED__
    843 #define __SpMMAudioEnum_FWD_DEFINED__
    844 #ifdef __cplusplus
    845 typedef class SpMMAudioEnum SpMMAudioEnum;
    846 #else
    847 typedef struct SpMMAudioEnum SpMMAudioEnum;
    848 #endif /* defined __cplusplus */
    849 #endif /* defined __SpMMAudioEnum_FWD_DEFINED__ */
    850 
    851 #ifndef __SpMMAudioIn_FWD_DEFINED__
    852 #define __SpMMAudioIn_FWD_DEFINED__
    853 #ifdef __cplusplus
    854 typedef class SpMMAudioIn SpMMAudioIn;
    855 #else
    856 typedef struct SpMMAudioIn SpMMAudioIn;
    857 #endif /* defined __cplusplus */
    858 #endif /* defined __SpMMAudioIn_FWD_DEFINED__ */
    859 
    860 #ifndef __SpMMAudioOut_FWD_DEFINED__
    861 #define __SpMMAudioOut_FWD_DEFINED__
    862 #ifdef __cplusplus
    863 typedef class SpMMAudioOut SpMMAudioOut;
    864 #else
    865 typedef struct SpMMAudioOut SpMMAudioOut;
    866 #endif /* defined __cplusplus */
    867 #endif /* defined __SpMMAudioOut_FWD_DEFINED__ */
    868 
    869 #ifndef __SpStream_FWD_DEFINED__
    870 #define __SpStream_FWD_DEFINED__
    871 #ifdef __cplusplus
    872 typedef class SpStream SpStream;
    873 #else
    874 typedef struct SpStream SpStream;
    875 #endif /* defined __cplusplus */
    876 #endif /* defined __SpStream_FWD_DEFINED__ */
    877 
    878 #ifndef __SpVoice_FWD_DEFINED__
    879 #define __SpVoice_FWD_DEFINED__
    880 #ifdef __cplusplus
    881 typedef class SpVoice SpVoice;
    882 #else
    883 typedef struct SpVoice SpVoice;
    884 #endif /* defined __cplusplus */
    885 #endif /* defined __SpVoice_FWD_DEFINED__ */
    886 
    887 #ifndef __SpSharedRecoContext_FWD_DEFINED__
    888 #define __SpSharedRecoContext_FWD_DEFINED__
    889 #ifdef __cplusplus
    890 typedef class SpSharedRecoContext SpSharedRecoContext;
    891 #else
    892 typedef struct SpSharedRecoContext SpSharedRecoContext;
    893 #endif /* defined __cplusplus */
    894 #endif /* defined __SpSharedRecoContext_FWD_DEFINED__ */
    895 
    896 #ifndef __SpInprocRecognizer_FWD_DEFINED__
    897 #define __SpInprocRecognizer_FWD_DEFINED__
    898 #ifdef __cplusplus
    899 typedef class SpInprocRecognizer SpInprocRecognizer;
    900 #else
    901 typedef struct SpInprocRecognizer SpInprocRecognizer;
    902 #endif /* defined __cplusplus */
    903 #endif /* defined __SpInprocRecognizer_FWD_DEFINED__ */
    904 
    905 #ifndef __SpSharedRecognizer_FWD_DEFINED__
    906 #define __SpSharedRecognizer_FWD_DEFINED__
    907 #ifdef __cplusplus
    908 typedef class SpSharedRecognizer SpSharedRecognizer;
    909 #else
    910 typedef struct SpSharedRecognizer SpSharedRecognizer;
    911 #endif /* defined __cplusplus */
    912 #endif /* defined __SpSharedRecognizer_FWD_DEFINED__ */
    913 
    914 #ifndef __SpLexicon_FWD_DEFINED__
    915 #define __SpLexicon_FWD_DEFINED__
    916 #ifdef __cplusplus
    917 typedef class SpLexicon SpLexicon;
    918 #else
    919 typedef struct SpLexicon SpLexicon;
    920 #endif /* defined __cplusplus */
    921 #endif /* defined __SpLexicon_FWD_DEFINED__ */
    922 
    923 #ifndef __SpUnCompressedLexicon_FWD_DEFINED__
    924 #define __SpUnCompressedLexicon_FWD_DEFINED__
    925 #ifdef __cplusplus
    926 typedef class SpUnCompressedLexicon SpUnCompressedLexicon;
    927 #else
    928 typedef struct SpUnCompressedLexicon SpUnCompressedLexicon;
    929 #endif /* defined __cplusplus */
    930 #endif /* defined __SpUnCompressedLexicon_FWD_DEFINED__ */
    931 
    932 #ifndef __SpCompressedLexicon_FWD_DEFINED__
    933 #define __SpCompressedLexicon_FWD_DEFINED__
    934 #ifdef __cplusplus
    935 typedef class SpCompressedLexicon SpCompressedLexicon;
    936 #else
    937 typedef struct SpCompressedLexicon SpCompressedLexicon;
    938 #endif /* defined __cplusplus */
    939 #endif /* defined __SpCompressedLexicon_FWD_DEFINED__ */
    940 
    941 #ifndef __SpShortcut_FWD_DEFINED__
    942 #define __SpShortcut_FWD_DEFINED__
    943 #ifdef __cplusplus
    944 typedef class SpShortcut SpShortcut;
    945 #else
    946 typedef struct SpShortcut SpShortcut;
    947 #endif /* defined __cplusplus */
    948 #endif /* defined __SpShortcut_FWD_DEFINED__ */
    949 
    950 #ifndef __SpPhoneConverter_FWD_DEFINED__
    951 #define __SpPhoneConverter_FWD_DEFINED__
    952 #ifdef __cplusplus
    953 typedef class SpPhoneConverter SpPhoneConverter;
    954 #else
    955 typedef struct SpPhoneConverter SpPhoneConverter;
    956 #endif /* defined __cplusplus */
    957 #endif /* defined __SpPhoneConverter_FWD_DEFINED__ */
    958 
    959 #ifndef __SpPhoneticAlphabetConverter_FWD_DEFINED__
    960 #define __SpPhoneticAlphabetConverter_FWD_DEFINED__
    961 #ifdef __cplusplus
    962 typedef class SpPhoneticAlphabetConverter SpPhoneticAlphabetConverter;
    963 #else
    964 typedef struct SpPhoneticAlphabetConverter SpPhoneticAlphabetConverter;
    965 #endif /* defined __cplusplus */
    966 #endif /* defined __SpPhoneticAlphabetConverter_FWD_DEFINED__ */
    967 
    968 #ifndef __SpNullPhoneConverter_FWD_DEFINED__
    969 #define __SpNullPhoneConverter_FWD_DEFINED__
    970 #ifdef __cplusplus
    971 typedef class SpNullPhoneConverter SpNullPhoneConverter;
    972 #else
    973 typedef struct SpNullPhoneConverter SpNullPhoneConverter;
    974 #endif /* defined __cplusplus */
    975 #endif /* defined __SpNullPhoneConverter_FWD_DEFINED__ */
    976 
    977 #ifndef __SpTextSelectionInformation_FWD_DEFINED__
    978 #define __SpTextSelectionInformation_FWD_DEFINED__
    979 #ifdef __cplusplus
    980 typedef class SpTextSelectionInformation SpTextSelectionInformation;
    981 #else
    982 typedef struct SpTextSelectionInformation SpTextSelectionInformation;
    983 #endif /* defined __cplusplus */
    984 #endif /* defined __SpTextSelectionInformation_FWD_DEFINED__ */
    985 
    986 #ifndef __SpPhraseInfoBuilder_FWD_DEFINED__
    987 #define __SpPhraseInfoBuilder_FWD_DEFINED__
    988 #ifdef __cplusplus
    989 typedef class SpPhraseInfoBuilder SpPhraseInfoBuilder;
    990 #else
    991 typedef struct SpPhraseInfoBuilder SpPhraseInfoBuilder;
    992 #endif /* defined __cplusplus */
    993 #endif /* defined __SpPhraseInfoBuilder_FWD_DEFINED__ */
    994 
    995 #ifndef __SpAudioFormat_FWD_DEFINED__
    996 #define __SpAudioFormat_FWD_DEFINED__
    997 #ifdef __cplusplus
    998 typedef class SpAudioFormat SpAudioFormat;
    999 #else
   1000 typedef struct SpAudioFormat SpAudioFormat;
   1001 #endif /* defined __cplusplus */
   1002 #endif /* defined __SpAudioFormat_FWD_DEFINED__ */
   1003 
   1004 #ifndef __SpWaveFormatEx_FWD_DEFINED__
   1005 #define __SpWaveFormatEx_FWD_DEFINED__
   1006 #ifdef __cplusplus
   1007 typedef class SpWaveFormatEx SpWaveFormatEx;
   1008 #else
   1009 typedef struct SpWaveFormatEx SpWaveFormatEx;
   1010 #endif /* defined __cplusplus */
   1011 #endif /* defined __SpWaveFormatEx_FWD_DEFINED__ */
   1012 
   1013 #ifndef __SpInProcRecoContext_FWD_DEFINED__
   1014 #define __SpInProcRecoContext_FWD_DEFINED__
   1015 #ifdef __cplusplus
   1016 typedef class SpInProcRecoContext SpInProcRecoContext;
   1017 #else
   1018 typedef struct SpInProcRecoContext SpInProcRecoContext;
   1019 #endif /* defined __cplusplus */
   1020 #endif /* defined __SpInProcRecoContext_FWD_DEFINED__ */
   1021 
   1022 #ifndef __SpCustomStream_FWD_DEFINED__
   1023 #define __SpCustomStream_FWD_DEFINED__
   1024 #ifdef __cplusplus
   1025 typedef class SpCustomStream SpCustomStream;
   1026 #else
   1027 typedef struct SpCustomStream SpCustomStream;
   1028 #endif /* defined __cplusplus */
   1029 #endif /* defined __SpCustomStream_FWD_DEFINED__ */
   1030 
   1031 #ifndef __SpFileStream_FWD_DEFINED__
   1032 #define __SpFileStream_FWD_DEFINED__
   1033 #ifdef __cplusplus
   1034 typedef class SpFileStream SpFileStream;
   1035 #else
   1036 typedef struct SpFileStream SpFileStream;
   1037 #endif /* defined __cplusplus */
   1038 #endif /* defined __SpFileStream_FWD_DEFINED__ */
   1039 
   1040 #ifndef __SpMemoryStream_FWD_DEFINED__
   1041 #define __SpMemoryStream_FWD_DEFINED__
   1042 #ifdef __cplusplus
   1043 typedef class SpMemoryStream SpMemoryStream;
   1044 #else
   1045 typedef struct SpMemoryStream SpMemoryStream;
   1046 #endif /* defined __cplusplus */
   1047 #endif /* defined __SpMemoryStream_FWD_DEFINED__ */
   1048 
   1049 /* Headers for imported files */
   1050 
   1051 #include <oaidl.h>
   1052 #include <ocidl.h>
   1053 
   1054 #ifdef __cplusplus
   1055 extern "C" {
   1056 #endif
   1057 
   1058 #ifndef _SAPI_VER
   1059 #error "you have to include <sapi.h> header before this."
   1060 #endif
   1061 #if 0
   1062 typedef struct WAVEFORMATEX {
   1063     WORD wFormatTag;
   1064     WORD nChannels;
   1065     DWORD nSamplesPerSec;
   1066     DWORD nAvgBytesPerSec;
   1067     WORD nBlockAlign;
   1068     WORD wBitsPerSample;
   1069     WORD cbSize;
   1070 } WAVEFORMATEX;
   1071 #endif
   1072 #ifndef __ISpNotifySource_FWD_DEFINED__
   1073 #define __ISpNotifySource_FWD_DEFINED__
   1074 typedef interface ISpNotifySource ISpNotifySource;
   1075 #ifdef __cplusplus
   1076 interface ISpNotifySource;
   1077 #endif /* __cplusplus */
   1078 #endif
   1079 
   1080 #ifndef __ISpNotifySink_FWD_DEFINED__
   1081 #define __ISpNotifySink_FWD_DEFINED__
   1082 typedef interface ISpNotifySink ISpNotifySink;
   1083 #ifdef __cplusplus
   1084 interface ISpNotifySink;
   1085 #endif /* __cplusplus */
   1086 #endif
   1087 
   1088 #ifndef __ISpNotifyTranslator_FWD_DEFINED__
   1089 #define __ISpNotifyTranslator_FWD_DEFINED__
   1090 typedef interface ISpNotifyTranslator ISpNotifyTranslator;
   1091 #ifdef __cplusplus
   1092 interface ISpNotifyTranslator;
   1093 #endif /* __cplusplus */
   1094 #endif
   1095 
   1096 #ifndef __ISpDataKey_FWD_DEFINED__
   1097 #define __ISpDataKey_FWD_DEFINED__
   1098 typedef interface ISpDataKey ISpDataKey;
   1099 #ifdef __cplusplus
   1100 interface ISpDataKey;
   1101 #endif /* __cplusplus */
   1102 #endif
   1103 
   1104 #ifndef __ISpObjectTokenCategory_FWD_DEFINED__
   1105 #define __ISpObjectTokenCategory_FWD_DEFINED__
   1106 typedef interface ISpObjectTokenCategory ISpObjectTokenCategory;
   1107 #ifdef __cplusplus
   1108 interface ISpObjectTokenCategory;
   1109 #endif /* __cplusplus */
   1110 #endif
   1111 
   1112 #ifndef __ISpObjectToken_FWD_DEFINED__
   1113 #define __ISpObjectToken_FWD_DEFINED__
   1114 typedef interface ISpObjectToken ISpObjectToken;
   1115 #ifdef __cplusplus
   1116 interface ISpObjectToken;
   1117 #endif /* __cplusplus */
   1118 #endif
   1119 
   1120 #ifndef __IEnumSpObjectTokens_FWD_DEFINED__
   1121 #define __IEnumSpObjectTokens_FWD_DEFINED__
   1122 typedef interface IEnumSpObjectTokens IEnumSpObjectTokens;
   1123 #ifdef __cplusplus
   1124 interface IEnumSpObjectTokens;
   1125 #endif /* __cplusplus */
   1126 #endif
   1127 
   1128 #ifndef __ISpObjectWithToken_FWD_DEFINED__
   1129 #define __ISpObjectWithToken_FWD_DEFINED__
   1130 typedef interface ISpObjectWithToken ISpObjectWithToken;
   1131 #ifdef __cplusplus
   1132 interface ISpObjectWithToken;
   1133 #endif /* __cplusplus */
   1134 #endif
   1135 
   1136 #ifndef __ISpResourceManager_FWD_DEFINED__
   1137 #define __ISpResourceManager_FWD_DEFINED__
   1138 typedef interface ISpResourceManager ISpResourceManager;
   1139 #ifdef __cplusplus
   1140 interface ISpResourceManager;
   1141 #endif /* __cplusplus */
   1142 #endif
   1143 
   1144 #ifndef __ISpEventSource_FWD_DEFINED__
   1145 #define __ISpEventSource_FWD_DEFINED__
   1146 typedef interface ISpEventSource ISpEventSource;
   1147 #ifdef __cplusplus
   1148 interface ISpEventSource;
   1149 #endif /* __cplusplus */
   1150 #endif
   1151 
   1152 #ifndef __ISpEventSink_FWD_DEFINED__
   1153 #define __ISpEventSink_FWD_DEFINED__
   1154 typedef interface ISpEventSink ISpEventSink;
   1155 #ifdef __cplusplus
   1156 interface ISpEventSink;
   1157 #endif /* __cplusplus */
   1158 #endif
   1159 
   1160 #ifndef __ISpStreamFormat_FWD_DEFINED__
   1161 #define __ISpStreamFormat_FWD_DEFINED__
   1162 typedef interface ISpStreamFormat ISpStreamFormat;
   1163 #ifdef __cplusplus
   1164 interface ISpStreamFormat;
   1165 #endif /* __cplusplus */
   1166 #endif
   1167 
   1168 #ifndef __ISpStream_FWD_DEFINED__
   1169 #define __ISpStream_FWD_DEFINED__
   1170 typedef interface ISpStream ISpStream;
   1171 #ifdef __cplusplus
   1172 interface ISpStream;
   1173 #endif /* __cplusplus */
   1174 #endif
   1175 
   1176 #ifndef __ISpStreamFormatConverter_FWD_DEFINED__
   1177 #define __ISpStreamFormatConverter_FWD_DEFINED__
   1178 typedef interface ISpStreamFormatConverter ISpStreamFormatConverter;
   1179 #ifdef __cplusplus
   1180 interface ISpStreamFormatConverter;
   1181 #endif /* __cplusplus */
   1182 #endif
   1183 
   1184 #ifndef __ISpAudio_FWD_DEFINED__
   1185 #define __ISpAudio_FWD_DEFINED__
   1186 typedef interface ISpAudio ISpAudio;
   1187 #ifdef __cplusplus
   1188 interface ISpAudio;
   1189 #endif /* __cplusplus */
   1190 #endif
   1191 
   1192 #ifndef __ISpMMSysAudio_FWD_DEFINED__
   1193 #define __ISpMMSysAudio_FWD_DEFINED__
   1194 typedef interface ISpMMSysAudio ISpMMSysAudio;
   1195 #ifdef __cplusplus
   1196 interface ISpMMSysAudio;
   1197 #endif /* __cplusplus */
   1198 #endif
   1199 
   1200 #ifndef __ISpTranscript_FWD_DEFINED__
   1201 #define __ISpTranscript_FWD_DEFINED__
   1202 typedef interface ISpTranscript ISpTranscript;
   1203 #ifdef __cplusplus
   1204 interface ISpTranscript;
   1205 #endif /* __cplusplus */
   1206 #endif
   1207 
   1208 #ifndef __ISpVoice_FWD_DEFINED__
   1209 #define __ISpVoice_FWD_DEFINED__
   1210 typedef interface ISpVoice ISpVoice;
   1211 #ifdef __cplusplus
   1212 interface ISpVoice;
   1213 #endif /* __cplusplus */
   1214 #endif
   1215 
   1216 #ifndef __ISpRecoResult_FWD_DEFINED__
   1217 #define __ISpRecoResult_FWD_DEFINED__
   1218 typedef interface ISpRecoResult ISpRecoResult;
   1219 #ifdef __cplusplus
   1220 interface ISpRecoResult;
   1221 #endif /* __cplusplus */
   1222 #endif
   1223 
   1224 #ifndef __ISpRecoContext_FWD_DEFINED__
   1225 #define __ISpRecoContext_FWD_DEFINED__
   1226 typedef interface ISpRecoContext ISpRecoContext;
   1227 #ifdef __cplusplus
   1228 interface ISpRecoContext;
   1229 #endif /* __cplusplus */
   1230 #endif
   1231 
   1232 #ifndef __ISpRecognizer_FWD_DEFINED__
   1233 #define __ISpRecognizer_FWD_DEFINED__
   1234 typedef interface ISpRecognizer ISpRecognizer;
   1235 #ifdef __cplusplus
   1236 interface ISpRecognizer;
   1237 #endif /* __cplusplus */
   1238 #endif
   1239 
   1240 #ifndef __ISpProperties_FWD_DEFINED__
   1241 #define __ISpProperties_FWD_DEFINED__
   1242 typedef interface ISpProperties ISpProperties;
   1243 #ifdef __cplusplus
   1244 interface ISpProperties;
   1245 #endif /* __cplusplus */
   1246 #endif
   1247 
   1248 #ifndef __ISpLexicon_FWD_DEFINED__
   1249 #define __ISpLexicon_FWD_DEFINED__
   1250 typedef interface ISpLexicon ISpLexicon;
   1251 #ifdef __cplusplus
   1252 interface ISpLexicon;
   1253 #endif /* __cplusplus */
   1254 #endif
   1255 
   1256 #ifndef __ISpPhoneConverter_FWD_DEFINED__
   1257 #define __ISpPhoneConverter_FWD_DEFINED__
   1258 typedef interface ISpPhoneConverter ISpPhoneConverter;
   1259 #ifdef __cplusplus
   1260 interface ISpPhoneConverter;
   1261 #endif /* __cplusplus */
   1262 #endif
   1263 
   1264 #ifndef __ISpPhrase_FWD_DEFINED__
   1265 #define __ISpPhrase_FWD_DEFINED__
   1266 typedef interface ISpPhrase ISpPhrase;
   1267 #ifdef __cplusplus
   1268 interface ISpPhrase;
   1269 #endif /* __cplusplus */
   1270 #endif
   1271 
   1272 #ifndef __ISpRecoContext2_FWD_DEFINED__
   1273 #define __ISpRecoContext2_FWD_DEFINED__
   1274 typedef interface ISpRecoContext2 ISpRecoContext2;
   1275 #ifdef __cplusplus
   1276 interface ISpRecoContext2;
   1277 #endif /* __cplusplus */
   1278 #endif
   1279 
   1280 #ifndef __ISpRecognizer2_FWD_DEFINED__
   1281 #define __ISpRecognizer2_FWD_DEFINED__
   1282 typedef interface ISpRecognizer2 ISpRecognizer2;
   1283 #ifdef __cplusplus
   1284 interface ISpRecognizer2;
   1285 #endif /* __cplusplus */
   1286 #endif
   1287 
   1288 #ifndef __ISpShortcut_FWD_DEFINED__
   1289 #define __ISpShortcut_FWD_DEFINED__
   1290 typedef interface ISpShortcut ISpShortcut;
   1291 #ifdef __cplusplus
   1292 interface ISpShortcut;
   1293 #endif /* __cplusplus */
   1294 #endif
   1295 
   1296 #ifndef __ISpPhoneticAlphabetConverter_FWD_DEFINED__
   1297 #define __ISpPhoneticAlphabetConverter_FWD_DEFINED__
   1298 typedef interface ISpPhoneticAlphabetConverter ISpPhoneticAlphabetConverter;
   1299 #ifdef __cplusplus
   1300 interface ISpPhoneticAlphabetConverter;
   1301 #endif /* __cplusplus */
   1302 #endif
   1303 
   1304 #ifndef __ISpPhoneticAlphabetSelection_FWD_DEFINED__
   1305 #define __ISpPhoneticAlphabetSelection_FWD_DEFINED__
   1306 typedef interface ISpPhoneticAlphabetSelection ISpPhoneticAlphabetSelection;
   1307 #ifdef __cplusplus
   1308 interface ISpPhoneticAlphabetSelection;
   1309 #endif /* __cplusplus */
   1310 #endif
   1311 
   1312 #ifndef __ISpRecoGrammar2_FWD_DEFINED__
   1313 #define __ISpRecoGrammar2_FWD_DEFINED__
   1314 typedef interface ISpRecoGrammar2 ISpRecoGrammar2;
   1315 #ifdef __cplusplus
   1316 interface ISpRecoGrammar2;
   1317 #endif /* __cplusplus */
   1318 #endif
   1319 
   1320 #ifndef __ISpeechResourceLoader_FWD_DEFINED__
   1321 #define __ISpeechResourceLoader_FWD_DEFINED__
   1322 typedef interface ISpeechResourceLoader ISpeechResourceLoader;
   1323 #ifdef __cplusplus
   1324 interface ISpeechResourceLoader;
   1325 #endif /* __cplusplus */
   1326 #endif
   1327 
   1328 typedef enum SPDATAKEYLOCATION {
   1329     SPDKL_DefaultLocation = 0,
   1330     SPDKL_CurrentUser = 1,
   1331     SPDKL_LocalMachine = 2,
   1332     SPDKL_CurrentConfig = 5
   1333 } SPDATAKEYLOCATION;
   1334 typedef enum SPSTREAMFORMAT {
   1335     SPSF_Default = -1,
   1336     SPSF_NoAssignedFormat = 0,
   1337     SPSF_Text = 1,
   1338     SPSF_NonStandardFormat = 2,
   1339     SPSF_ExtendedAudioFormat = 3,
   1340     SPSF_8kHz8BitMono = 4,
   1341     SPSF_8kHz8BitStereo = 5,
   1342     SPSF_8kHz16BitMono = 6,
   1343     SPSF_8kHz16BitStereo = 7,
   1344     SPSF_11kHz8BitMono = 8,
   1345     SPSF_11kHz8BitStereo = 9,
   1346     SPSF_11kHz16BitMono = 10,
   1347     SPSF_11kHz16BitStereo = 11,
   1348     SPSF_12kHz8BitMono = 12,
   1349     SPSF_12kHz8BitStereo = 13,
   1350     SPSF_12kHz16BitMono = 14,
   1351     SPSF_12kHz16BitStereo = 15,
   1352     SPSF_16kHz8BitMono = 16,
   1353     SPSF_16kHz8BitStereo = 17,
   1354     SPSF_16kHz16BitMono = 18,
   1355     SPSF_16kHz16BitStereo = 19,
   1356     SPSF_22kHz8BitMono = 20,
   1357     SPSF_22kHz8BitStereo = 21,
   1358     SPSF_22kHz16BitMono = 22,
   1359     SPSF_22kHz16BitStereo = 23,
   1360     SPSF_24kHz8BitMono = 24,
   1361     SPSF_24kHz8BitStereo = 25,
   1362     SPSF_24kHz16BitMono = 26,
   1363     SPSF_24kHz16BitStereo = 27,
   1364     SPSF_32kHz8BitMono = 28,
   1365     SPSF_32kHz8BitStereo = 29,
   1366     SPSF_32kHz16BitMono = 30,
   1367     SPSF_32kHz16BitStereo = 31,
   1368     SPSF_44kHz8BitMono = 32,
   1369     SPSF_44kHz8BitStereo = 33,
   1370     SPSF_44kHz16BitMono = 34,
   1371     SPSF_44kHz16BitStereo = 35,
   1372     SPSF_48kHz8BitMono = 36,
   1373     SPSF_48kHz8BitStereo = 37,
   1374     SPSF_48kHz16BitMono = 38,
   1375     SPSF_48kHz16BitStereo = 39,
   1376     SPSF_TrueSpeech_8kHz1BitMono = 40,
   1377     SPSF_CCITT_ALaw_8kHzMono = 41,
   1378     SPSF_CCITT_ALaw_8kHzStereo = 42,
   1379     SPSF_CCITT_ALaw_11kHzMono = 43,
   1380     SPSF_CCITT_ALaw_11kHzStereo = 44,
   1381     SPSF_CCITT_ALaw_22kHzMono = 45,
   1382     SPSF_CCITT_ALaw_22kHzStereo = 46,
   1383     SPSF_CCITT_ALaw_44kHzMono = 47,
   1384     SPSF_CCITT_ALaw_44kHzStereo = 48,
   1385     SPSF_CCITT_uLaw_8kHzMono = 49,
   1386     SPSF_CCITT_uLaw_8kHzStereo = 50,
   1387     SPSF_CCITT_uLaw_11kHzMono = 51,
   1388     SPSF_CCITT_uLaw_11kHzStereo = 52,
   1389     SPSF_CCITT_uLaw_22kHzMono = 53,
   1390     SPSF_CCITT_uLaw_22kHzStereo = 54,
   1391     SPSF_CCITT_uLaw_44kHzMono = 55,
   1392     SPSF_CCITT_uLaw_44kHzStereo = 56,
   1393     SPSF_ADPCM_8kHzMono = 57,
   1394     SPSF_ADPCM_8kHzStereo = 58,
   1395     SPSF_ADPCM_11kHzMono = 59,
   1396     SPSF_ADPCM_11kHzStereo = 60,
   1397     SPSF_ADPCM_22kHzMono = 61,
   1398     SPSF_ADPCM_22kHzStereo = 62,
   1399     SPSF_ADPCM_44kHzMono = 63,
   1400     SPSF_ADPCM_44kHzStereo = 64,
   1401     SPSF_GSM610_8kHzMono = 65,
   1402     SPSF_GSM610_11kHzMono = 66,
   1403     SPSF_GSM610_22kHzMono = 67,
   1404     SPSF_GSM610_44kHzMono = 68,
   1405     SPSF_NUM_FORMATS = 69
   1406 } SPSTREAMFORMAT;
   1407 typedef enum SPEVENTLPARAMTYPE {
   1408     SPET_LPARAM_IS_UNDEFINED = 0,
   1409     SPET_LPARAM_IS_TOKEN = 1,
   1410     SPET_LPARAM_IS_OBJECT = 2,
   1411     SPET_LPARAM_IS_POINTER = 3,
   1412     SPET_LPARAM_IS_STRING = 4
   1413 } SPEVENTLPARAMTYPE;
   1414 typedef enum SPEVENTENUM {
   1415     SPEI_UNDEFINED = 0,
   1416     SPEI_START_INPUT_STREAM = 1,
   1417     SPEI_END_INPUT_STREAM = 2,
   1418     SPEI_VOICE_CHANGE = 3,
   1419     SPEI_TTS_BOOKMARK = 4,
   1420     SPEI_WORD_BOUNDARY = 5,
   1421     SPEI_PHONEME = 6,
   1422     SPEI_SENTENCE_BOUNDARY = 7,
   1423     SPEI_VISEME = 8,
   1424     SPEI_TTS_AUDIO_LEVEL = 9,
   1425     SPEI_TTS_PRIVATE = 15,
   1426     SPEI_MIN_TTS = 1,
   1427     SPEI_MAX_TTS = 15,
   1428     SPEI_END_SR_STREAM = 34,
   1429     SPEI_SOUND_START = 35,
   1430     SPEI_SOUND_END = 36,
   1431     SPEI_PHRASE_START = 37,
   1432     SPEI_RECOGNITION = 38,
   1433     SPEI_HYPOTHESIS = 39,
   1434     SPEI_SR_BOOKMARK = 40,
   1435     SPEI_PROPERTY_NUM_CHANGE = 41,
   1436     SPEI_PROPERTY_STRING_CHANGE = 42,
   1437     SPEI_FALSE_RECOGNITION = 43,
   1438     SPEI_INTERFERENCE = 44,
   1439     SPEI_REQUEST_UI = 45,
   1440     SPEI_RECO_STATE_CHANGE = 46,
   1441     SPEI_ADAPTATION = 47,
   1442     SPEI_START_SR_STREAM = 48,
   1443     SPEI_RECO_OTHER_CONTEXT = 49,
   1444     SPEI_SR_AUDIO_LEVEL = 50,
   1445     SPEI_SR_RETAINEDAUDIO = 51,
   1446     SPEI_SR_PRIVATE = 52,
   1447     SPEI_RESERVED4 = 53,
   1448     SPEI_RESERVED5 = 54,
   1449     SPEI_RESERVED6 = 55,
   1450     SPEI_MIN_SR = 34,
   1451     SPEI_MAX_SR = 55,
   1452     SPEI_RESERVED1 = 30,
   1453     SPEI_RESERVED2 = 33,
   1454     SPEI_RESERVED3 = 63
   1455 } SPEVENTENUM;
   1456 typedef enum SPINTERFERENCE {
   1457     SPINTERFERENCE_NONE = 0,
   1458     SPINTERFERENCE_NOISE = 1,
   1459     SPINTERFERENCE_NOSIGNAL = 2,
   1460     SPINTERFERENCE_TOOLOUD = 3,
   1461     SPINTERFERENCE_TOOQUIET = 4,
   1462     SPINTERFERENCE_TOOFAST = 5,
   1463     SPINTERFERENCE_TOOSLOW = 6,
   1464     SPINTERFERENCE_LATENCY_WARNING = 7,
   1465     SPINTERFERENCE_LATENCY_TRUNCATE_BEGIN = 8,
   1466     SPINTERFERENCE_LATENCY_TRUNCATE_END = 9
   1467 } SPINTERFERENCE;
   1468 typedef enum SPENDSRSTREAMFLAGS {
   1469     SPESF_NONE = 0,
   1470     SPESF_STREAM_RELEASED = 1,
   1471     SPESF_EMULATED = 2
   1472 } SPENDSRSTREAMFLAGS;
   1473 typedef enum SPVFEATURE {
   1474     SPVFEATURE_STRESSED = 1,
   1475     SPVFEATURE_EMPHASIS = 2
   1476 } SPVFEATURE;
   1477 typedef enum SPVISEMES {
   1478     SP_VISEME_0 = 0,
   1479     SP_VISEME_1 = 1,
   1480     SP_VISEME_2 = 2,
   1481     SP_VISEME_3 = 3,
   1482     SP_VISEME_4 = 4,
   1483     SP_VISEME_5 = 5,
   1484     SP_VISEME_6 = 6,
   1485     SP_VISEME_7 = 7,
   1486     SP_VISEME_8 = 8,
   1487     SP_VISEME_9 = 9,
   1488     SP_VISEME_10 = 10,
   1489     SP_VISEME_11 = 11,
   1490     SP_VISEME_12 = 12,
   1491     SP_VISEME_13 = 13,
   1492     SP_VISEME_14 = 14,
   1493     SP_VISEME_15 = 15,
   1494     SP_VISEME_16 = 16,
   1495     SP_VISEME_17 = 17,
   1496     SP_VISEME_18 = 18,
   1497     SP_VISEME_19 = 19,
   1498     SP_VISEME_20 = 20,
   1499     SP_VISEME_21 = 21
   1500 } SPVISEMES;
   1501 typedef enum SPFILEMODE {
   1502     SPFM_OPEN_READONLY = 0,
   1503     SPFM_OPEN_READWRITE = 1,
   1504     SPFM_CREATE = 2,
   1505     SPFM_CREATE_ALWAYS = 3,
   1506     SPFM_NUM_MODES = 4
   1507 } SPFILEMODE;
   1508 typedef enum _SPAUDIOSTATE {
   1509     SPAS_CLOSED = 0,
   1510     SPAS_STOP = 1,
   1511     SPAS_PAUSE = 2,
   1512     SPAS_RUN = 3
   1513 } SPAUDIOSTATE;
   1514 typedef enum SPDISPLYATTRIBUTES {
   1515     SPAF_ONE_TRAILING_SPACE = 0x2,
   1516     SPAF_TWO_TRAILING_SPACES = 0x4,
   1517     SPAF_CONSUME_LEADING_SPACES = 0x8,
   1518     SPAF_BUFFER_POSITION = 0x10,
   1519     SPAF_ALL = 0x1f,
   1520     SPAF_USER_SPECIFIED = 0x80
   1521 } SPDISPLAYATTRIBUTES;
   1522 typedef enum SPPHRASEPROPERTYUNIONTYPE {
   1523     SPPPUT_UNUSED = 0,
   1524     SPPPUT_ARRAY_INDEX = 1
   1525 } SPPHRASEPROPERTYUNIONTYPE;
   1526 typedef enum SPSEMANTICFORMAT {
   1527     SPSMF_SAPI_PROPERTIES = 0,
   1528     SPSMF_SRGS_SEMANTICINTERPRETATION_MS = 1,
   1529     SPSMF_SRGS_SAPIPROPERTIES = 2,
   1530     SPSMF_UPS = 4,
   1531     SPSMF_SRGS_SEMANTICINTERPRETATION_W3C = 8
   1532 } SPSEMANTICFORMAT;
   1533 typedef enum SPRECOEVENTFLAGS {
   1534     SPREF_AutoPause = 0x1,
   1535     SPREF_Emulated = 0x2,
   1536     SPREF_SMLTimeout = 0x4,
   1537     SPREF_ExtendableParse = 0x8,
   1538     SPREF_ReSent = 0x10,
   1539     SPREF_Hypothesis = 0x20,
   1540     SPREF_FalseRecognition = 0x40
   1541 } SPRECOEVENTFLAGS;
   1542 typedef enum SPPARTOFSPEECH {
   1543     SPPS_NotOverriden = -1,
   1544     SPPS_Unknown = 0,
   1545     SPPS_Noun = 0x1000,
   1546     SPPS_Verb = 0x2000,
   1547     SPPS_Modifier = 0x3000,
   1548     SPPS_Function = 0x4000,
   1549     SPPS_Interjection = 0x5000,
   1550     SPPS_Noncontent = 0x6000,
   1551     SPPS_LMA = 0x7000,
   1552     SPPS_SuppressWord = 0xf000
   1553 } SPPARTOFSPEECH;
   1554 typedef enum SPLEXICONTYPE {
   1555     eLEXTYPE_USER = 0x1,
   1556     eLEXTYPE_APP = 0x2,
   1557     eLEXTYPE_VENDORLEXICON = 0x4,
   1558     eLEXTYPE_LETTERTOSOUND = 0x8,
   1559     eLEXTYPE_MORPHOLOGY = 0x10,
   1560     eLEXTYPE_RESERVED4 = 0x20,
   1561     eLEXTYPE_USER_SHORTCUT = 0x40,
   1562     eLEXTYPE_RESERVED6 = 0x80,
   1563     eLEXTYPE_RESERVED7 = 0x100,
   1564     eLEXTYPE_RESERVED8 = 0x200,
   1565     eLEXTYPE_RESERVED9 = 0x400,
   1566     eLEXTYPE_RESERVED10 = 0x800,
   1567     eLEXTYPE_PRIVATE1 = 0x1000,
   1568     eLEXTYPE_PRIVATE2 = 0x2000,
   1569     eLEXTYPE_PRIVATE3 = 0x4000,
   1570     eLEXTYPE_PRIVATE4 = 0x8000,
   1571     eLEXTYPE_PRIVATE5 = 0x10000,
   1572     eLEXTYPE_PRIVATE6 = 0x20000,
   1573     eLEXTYPE_PRIVATE7 = 0x40000,
   1574     eLEXTYPE_PRIVATE8 = 0x80000,
   1575     eLEXTYPE_PRIVATE9 = 0x100000,
   1576     eLEXTYPE_PRIVATE10 = 0x200000,
   1577     eLEXTYPE_PRIVATE11 = 0x400000,
   1578     eLEXTYPE_PRIVATE12 = 0x800000,
   1579     eLEXTYPE_PRIVATE13 = 0x1000000,
   1580     eLEXTYPE_PRIVATE14 = 0x2000000,
   1581     eLEXTYPE_PRIVATE15 = 0x4000000,
   1582     eLEXTYPE_PRIVATE16 = 0x8000000,
   1583     eLEXTYPE_PRIVATE17 = 0x10000000,
   1584     eLEXTYPE_PRIVATE18 = 0x20000000,
   1585     eLEXTYPE_PRIVATE19 = 0x40000000,
   1586     eLEXTYPE_PRIVATE20 = 0x80000000u
   1587 } SPLEXICONTYPE;
   1588 typedef enum SPWORDTYPE {
   1589     eWORDTYPE_ADDED = 1,
   1590     eWORDTYPE_DELETED = 2
   1591 } SPWORDTYPE;
   1592 typedef enum SPPRONUNCIATIONFLAGS {
   1593     ePRONFLAG_USED = 1
   1594 } SPPRONUNCIATIONFLAGS;
   1595 typedef enum SPSHORTCUTTYPE {
   1596     SPSHT_NotOverriden = -1,
   1597     SPSHT_Unknown = 0,
   1598     SPSHT_EMAIL = 0x1000,
   1599     SPSHT_OTHER = 0x2000,
   1600     SPPS_RESERVED1 = 0x3000,
   1601     SPPS_RESERVED2 = 0x4000,
   1602     SPPS_RESERVED3 = 0x5000,
   1603     SPPS_RESERVED4 = 0xf000
   1604 } SPSHORTCUTTYPE;
   1605 typedef enum SPVALUETYPE {
   1606     SPDF_PROPERTY = 0x1,
   1607     SPDF_REPLACEMENT = 0x2,
   1608     SPDF_RULE = 0x4,
   1609     SPDF_DISPLAYTEXT = 0x8,
   1610     SPDF_LEXICALFORM = 0x10,
   1611     SPDF_PRONUNCIATION = 0x20,
   1612     SPDF_AUDIO = 0x40,
   1613     SPDF_ALTERNATES = 0x80,
   1614     SPDF_ALL = 0xff
   1615 } SPVALUETYPE;
   1616 typedef enum SPPHRASERNG {
   1617     SPPR_ALL_ELEMENTS = -1
   1618 } SPPHRASERNG;
   1619 typedef enum SPVACTIONS {
   1620     SPVA_Speak = 0,
   1621     SPVA_Silence = 1,
   1622     SPVA_Pronounce = 2,
   1623     SPVA_Bookmark = 3,
   1624     SPVA_SpellOut = 4,
   1625     SPVA_Section = 5,
   1626     SPVA_ParseUnknownTag = 6
   1627 } SPVACTIONS;
   1628 typedef enum SPRUNSTATE {
   1629     SPRS_DONE = 1,
   1630     SPRS_IS_SPEAKING = 2
   1631 } SPRUNSTATE;
   1632 typedef enum SPVLIMITS {
   1633     SPMIN_VOLUME = 0,
   1634     SPMAX_VOLUME = 100,
   1635     SPMIN_RATE = -10,
   1636     SPMAX_RATE = 10
   1637 } SPVLIMITS;
   1638 typedef enum SPVPRIORITY {
   1639     SPVPRI_NORMAL = 0,
   1640     SPVPRI_ALERT = 1,
   1641     SPVPRI_OVER = 2
   1642 } SPVPRIORITY;
   1643 EXTERN_C const GUID SPDFID_Text;
   1644 EXTERN_C const GUID SPDFID_WaveFormatEx;
   1645 
   1646 #define SP_LOW_CONFIDENCE (-1)
   1647 
   1648 #define SP_NORMAL_CONFIDENCE (0)
   1649 
   1650 #define SP_HIGH_CONFIDENCE (+1)
   1651 
   1652 #define DEFAULT_WEIGHT (1)
   1653 
   1654 #define SP_MAX_WORD_LENGTH (128)
   1655 
   1656 #define SP_MAX_PRON_LENGTH (384)
   1657 
   1658 #define SP_EMULATE_RESULT (0x40000000)
   1659 
   1660 
   1661 #ifdef __cplusplus
   1662 interface ISpNotifyCallback {
   1663   virtual HRESULT STDMETHODCALLTYPE NotifyCallback(WPARAM wParam, LPARAM lParam) = 0;
   1664 };
   1665 #else
   1666 typedef void *ISpNotifyCallback;
   1667 #endif
   1668 #if 0
   1669 typedef void *SPNOTIFYCALLBACK;
   1670 #else
   1671 typedef void __stdcall SPNOTIFYCALLBACK(WPARAM wParam, LPARAM lParam);
   1672 #endif
   1673 /*****************************************************************************
   1674  * ISpNotifySource interface
   1675  */
   1676 #ifndef __ISpNotifySource_INTERFACE_DEFINED__
   1677 #define __ISpNotifySource_INTERFACE_DEFINED__
   1678 
   1679 DEFINE_GUID(IID_ISpNotifySource, 0x5eff4aef, 0x8487, 0x11d2, 0x96,0x1c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
   1680 #if defined(__cplusplus) && !defined(CINTERFACE)
   1681 MIDL_INTERFACE("5eff4aef-8487-11d2-961c-00c04f8ee628")
   1682 ISpNotifySource : public IUnknown
   1683 {
   1684     virtual HRESULT STDMETHODCALLTYPE SetNotifySink(
   1685         ISpNotifySink *pNotifySink) = 0;
   1686 
   1687     virtual HRESULT STDMETHODCALLTYPE SetNotifyWindowMessage(
   1688         HWND hWnd,
   1689         UINT Msg,
   1690         WPARAM wParam,
   1691         LPARAM lParam) = 0;
   1692 
   1693     virtual HRESULT STDMETHODCALLTYPE SetNotifyCallbackFunction(
   1694         SPNOTIFYCALLBACK *pfnCallback,
   1695         WPARAM wParam,
   1696         LPARAM lParam) = 0;
   1697 
   1698     virtual HRESULT STDMETHODCALLTYPE SetNotifyCallbackInterface(
   1699         ISpNotifyCallback *pSpCallback,
   1700         WPARAM wParam,
   1701         LPARAM lParam) = 0;
   1702 
   1703     virtual HRESULT STDMETHODCALLTYPE SetNotifyWin32Event(
   1704         ) = 0;
   1705 
   1706     virtual HRESULT STDMETHODCALLTYPE WaitForNotifyEvent(
   1707         DWORD dwMilliseconds) = 0;
   1708 
   1709     virtual HANDLE STDMETHODCALLTYPE GetNotifyEventHandle(
   1710         ) = 0;
   1711 
   1712 };
   1713 #ifdef __CRT_UUID_DECL
   1714 __CRT_UUID_DECL(ISpNotifySource, 0x5eff4aef, 0x8487, 0x11d2, 0x96,0x1c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
   1715 #endif
   1716 #else
   1717 typedef struct ISpNotifySourceVtbl {
   1718     BEGIN_INTERFACE
   1719 
   1720     /*** IUnknown methods ***/
   1721     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1722         ISpNotifySource *This,
   1723         REFIID riid,
   1724         void **ppvObject);
   1725 
   1726     ULONG (STDMETHODCALLTYPE *AddRef)(
   1727         ISpNotifySource *This);
   1728 
   1729     ULONG (STDMETHODCALLTYPE *Release)(
   1730         ISpNotifySource *This);
   1731 
   1732     /*** ISpNotifySource methods ***/
   1733     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
   1734         ISpNotifySource *This,
   1735         ISpNotifySink *pNotifySink);
   1736 
   1737     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
   1738         ISpNotifySource *This,
   1739         HWND hWnd,
   1740         UINT Msg,
   1741         WPARAM wParam,
   1742         LPARAM lParam);
   1743 
   1744     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
   1745         ISpNotifySource *This,
   1746         SPNOTIFYCALLBACK *pfnCallback,
   1747         WPARAM wParam,
   1748         LPARAM lParam);
   1749 
   1750     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
   1751         ISpNotifySource *This,
   1752         ISpNotifyCallback *pSpCallback,
   1753         WPARAM wParam,
   1754         LPARAM lParam);
   1755 
   1756     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
   1757         ISpNotifySource *This);
   1758 
   1759     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
   1760         ISpNotifySource *This,
   1761         DWORD dwMilliseconds);
   1762 
   1763     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
   1764         ISpNotifySource *This);
   1765 
   1766     END_INTERFACE
   1767 } ISpNotifySourceVtbl;
   1768 
   1769 interface ISpNotifySource {
   1770     CONST_VTBL ISpNotifySourceVtbl* lpVtbl;
   1771 };
   1772 
   1773 #ifdef COBJMACROS
   1774 #ifndef WIDL_C_INLINE_WRAPPERS
   1775 /*** IUnknown methods ***/
   1776 #define ISpNotifySource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1777 #define ISpNotifySource_AddRef(This) (This)->lpVtbl->AddRef(This)
   1778 #define ISpNotifySource_Release(This) (This)->lpVtbl->Release(This)
   1779 /*** ISpNotifySource methods ***/
   1780 #define ISpNotifySource_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
   1781 #define ISpNotifySource_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
   1782 #define ISpNotifySource_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
   1783 #define ISpNotifySource_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
   1784 #define ISpNotifySource_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
   1785 #define ISpNotifySource_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
   1786 #define ISpNotifySource_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
   1787 #else
   1788 /*** IUnknown methods ***/
   1789 static inline HRESULT ISpNotifySource_QueryInterface(ISpNotifySource* This,REFIID riid,void **ppvObject) {
   1790     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1791 }
   1792 static inline ULONG ISpNotifySource_AddRef(ISpNotifySource* This) {
   1793     return This->lpVtbl->AddRef(This);
   1794 }
   1795 static inline ULONG ISpNotifySource_Release(ISpNotifySource* This) {
   1796     return This->lpVtbl->Release(This);
   1797 }
   1798 /*** ISpNotifySource methods ***/
   1799 static inline HRESULT ISpNotifySource_SetNotifySink(ISpNotifySource* This,ISpNotifySink *pNotifySink) {
   1800     return This->lpVtbl->SetNotifySink(This,pNotifySink);
   1801 }
   1802 static inline HRESULT ISpNotifySource_SetNotifyWindowMessage(ISpNotifySource* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
   1803     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
   1804 }
   1805 static inline HRESULT ISpNotifySource_SetNotifyCallbackFunction(ISpNotifySource* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
   1806     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
   1807 }
   1808 static inline HRESULT ISpNotifySource_SetNotifyCallbackInterface(ISpNotifySource* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
   1809     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
   1810 }
   1811 static inline HRESULT ISpNotifySource_SetNotifyWin32Event(ISpNotifySource* This) {
   1812     return This->lpVtbl->SetNotifyWin32Event(This);
   1813 }
   1814 static inline HRESULT ISpNotifySource_WaitForNotifyEvent(ISpNotifySource* This,DWORD dwMilliseconds) {
   1815     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
   1816 }
   1817 static inline HANDLE ISpNotifySource_GetNotifyEventHandle(ISpNotifySource* This) {
   1818     return This->lpVtbl->GetNotifyEventHandle(This);
   1819 }
   1820 #endif
   1821 #endif
   1822 
   1823 #endif
   1824 
   1825 
   1826 #endif  /* __ISpNotifySource_INTERFACE_DEFINED__ */
   1827 
   1828 /*****************************************************************************
   1829  * ISpNotifySink interface
   1830  */
   1831 #ifndef __ISpNotifySink_INTERFACE_DEFINED__
   1832 #define __ISpNotifySink_INTERFACE_DEFINED__
   1833 
   1834 DEFINE_GUID(IID_ISpNotifySink, 0x259684dc, 0x37c3, 0x11d2, 0x96,0x03, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
   1835 #if defined(__cplusplus) && !defined(CINTERFACE)
   1836 MIDL_INTERFACE("259684dc-37c3-11d2-9603-00c04f8ee628")
   1837 ISpNotifySink : public IUnknown
   1838 {
   1839     virtual HRESULT STDMETHODCALLTYPE Notify(
   1840         ) = 0;
   1841 
   1842 };
   1843 #ifdef __CRT_UUID_DECL
   1844 __CRT_UUID_DECL(ISpNotifySink, 0x259684dc, 0x37c3, 0x11d2, 0x96,0x03, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
   1845 #endif
   1846 #else
   1847 typedef struct ISpNotifySinkVtbl {
   1848     BEGIN_INTERFACE
   1849 
   1850     /*** IUnknown methods ***/
   1851     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1852         ISpNotifySink *This,
   1853         REFIID riid,
   1854         void **ppvObject);
   1855 
   1856     ULONG (STDMETHODCALLTYPE *AddRef)(
   1857         ISpNotifySink *This);
   1858 
   1859     ULONG (STDMETHODCALLTYPE *Release)(
   1860         ISpNotifySink *This);
   1861 
   1862     /*** ISpNotifySink methods ***/
   1863     HRESULT (STDMETHODCALLTYPE *Notify)(
   1864         ISpNotifySink *This);
   1865 
   1866     END_INTERFACE
   1867 } ISpNotifySinkVtbl;
   1868 
   1869 interface ISpNotifySink {
   1870     CONST_VTBL ISpNotifySinkVtbl* lpVtbl;
   1871 };
   1872 
   1873 #ifdef COBJMACROS
   1874 #ifndef WIDL_C_INLINE_WRAPPERS
   1875 /*** IUnknown methods ***/
   1876 #define ISpNotifySink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1877 #define ISpNotifySink_AddRef(This) (This)->lpVtbl->AddRef(This)
   1878 #define ISpNotifySink_Release(This) (This)->lpVtbl->Release(This)
   1879 /*** ISpNotifySink methods ***/
   1880 #define ISpNotifySink_Notify(This) (This)->lpVtbl->Notify(This)
   1881 #else
   1882 /*** IUnknown methods ***/
   1883 static inline HRESULT ISpNotifySink_QueryInterface(ISpNotifySink* This,REFIID riid,void **ppvObject) {
   1884     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1885 }
   1886 static inline ULONG ISpNotifySink_AddRef(ISpNotifySink* This) {
   1887     return This->lpVtbl->AddRef(This);
   1888 }
   1889 static inline ULONG ISpNotifySink_Release(ISpNotifySink* This) {
   1890     return This->lpVtbl->Release(This);
   1891 }
   1892 /*** ISpNotifySink methods ***/
   1893 static inline HRESULT ISpNotifySink_Notify(ISpNotifySink* This) {
   1894     return This->lpVtbl->Notify(This);
   1895 }
   1896 #endif
   1897 #endif
   1898 
   1899 #endif
   1900 
   1901 
   1902 #endif  /* __ISpNotifySink_INTERFACE_DEFINED__ */
   1903 
   1904 /*****************************************************************************
   1905  * ISpNotifyTranslator interface
   1906  */
   1907 #ifndef __ISpNotifyTranslator_INTERFACE_DEFINED__
   1908 #define __ISpNotifyTranslator_INTERFACE_DEFINED__
   1909 
   1910 DEFINE_GUID(IID_ISpNotifyTranslator, 0xaca16614, 0x5d3d, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
   1911 #if defined(__cplusplus) && !defined(CINTERFACE)
   1912 MIDL_INTERFACE("aca16614-5d3d-11d2-960e-00c04f8ee628")
   1913 ISpNotifyTranslator : public ISpNotifySink
   1914 {
   1915     virtual HRESULT STDMETHODCALLTYPE InitWindowMessage(
   1916         HWND hWnd,
   1917         UINT Msg,
   1918         WPARAM wParam,
   1919         LPARAM lParam) = 0;
   1920 
   1921     virtual HRESULT STDMETHODCALLTYPE InitCallback(
   1922         SPNOTIFYCALLBACK *pfnCallback,
   1923         WPARAM wParam,
   1924         LPARAM lParam) = 0;
   1925 
   1926     virtual HRESULT STDMETHODCALLTYPE InitSpNotifyCallback(
   1927         ISpNotifyCallback *pSpCallback,
   1928         WPARAM wParam,
   1929         LPARAM lParam) = 0;
   1930 
   1931     virtual HRESULT STDMETHODCALLTYPE InitWin32Event(
   1932         HANDLE hEvent,
   1933         WINBOOL fCloseHandleOnRelease) = 0;
   1934 
   1935     virtual HRESULT STDMETHODCALLTYPE Wait(
   1936         DWORD dwMilliseconds) = 0;
   1937 
   1938     virtual HANDLE STDMETHODCALLTYPE GetEventHandle(
   1939         ) = 0;
   1940 
   1941 };
   1942 #ifdef __CRT_UUID_DECL
   1943 __CRT_UUID_DECL(ISpNotifyTranslator, 0xaca16614, 0x5d3d, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
   1944 #endif
   1945 #else
   1946 typedef struct ISpNotifyTranslatorVtbl {
   1947     BEGIN_INTERFACE
   1948 
   1949     /*** IUnknown methods ***/
   1950     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1951         ISpNotifyTranslator *This,
   1952         REFIID riid,
   1953         void **ppvObject);
   1954 
   1955     ULONG (STDMETHODCALLTYPE *AddRef)(
   1956         ISpNotifyTranslator *This);
   1957 
   1958     ULONG (STDMETHODCALLTYPE *Release)(
   1959         ISpNotifyTranslator *This);
   1960 
   1961     /*** ISpNotifySink methods ***/
   1962     HRESULT (STDMETHODCALLTYPE *Notify)(
   1963         ISpNotifyTranslator *This);
   1964 
   1965     /*** ISpNotifyTranslator methods ***/
   1966     HRESULT (STDMETHODCALLTYPE *InitWindowMessage)(
   1967         ISpNotifyTranslator *This,
   1968         HWND hWnd,
   1969         UINT Msg,
   1970         WPARAM wParam,
   1971         LPARAM lParam);
   1972 
   1973     HRESULT (STDMETHODCALLTYPE *InitCallback)(
   1974         ISpNotifyTranslator *This,
   1975         SPNOTIFYCALLBACK *pfnCallback,
   1976         WPARAM wParam,
   1977         LPARAM lParam);
   1978 
   1979     HRESULT (STDMETHODCALLTYPE *InitSpNotifyCallback)(
   1980         ISpNotifyTranslator *This,
   1981         ISpNotifyCallback *pSpCallback,
   1982         WPARAM wParam,
   1983         LPARAM lParam);
   1984 
   1985     HRESULT (STDMETHODCALLTYPE *InitWin32Event)(
   1986         ISpNotifyTranslator *This,
   1987         HANDLE hEvent,
   1988         WINBOOL fCloseHandleOnRelease);
   1989 
   1990     HRESULT (STDMETHODCALLTYPE *Wait)(
   1991         ISpNotifyTranslator *This,
   1992         DWORD dwMilliseconds);
   1993 
   1994     HANDLE (STDMETHODCALLTYPE *GetEventHandle)(
   1995         ISpNotifyTranslator *This);
   1996 
   1997     END_INTERFACE
   1998 } ISpNotifyTranslatorVtbl;
   1999 
   2000 interface ISpNotifyTranslator {
   2001     CONST_VTBL ISpNotifyTranslatorVtbl* lpVtbl;
   2002 };
   2003 
   2004 #ifdef COBJMACROS
   2005 #ifndef WIDL_C_INLINE_WRAPPERS
   2006 /*** IUnknown methods ***/
   2007 #define ISpNotifyTranslator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2008 #define ISpNotifyTranslator_AddRef(This) (This)->lpVtbl->AddRef(This)
   2009 #define ISpNotifyTranslator_Release(This) (This)->lpVtbl->Release(This)
   2010 /*** ISpNotifySink methods ***/
   2011 #define ISpNotifyTranslator_Notify(This) (This)->lpVtbl->Notify(This)
   2012 /*** ISpNotifyTranslator methods ***/
   2013 #define ISpNotifyTranslator_InitWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->InitWindowMessage(This,hWnd,Msg,wParam,lParam)
   2014 #define ISpNotifyTranslator_InitCallback(This,pfnCallback,wParam,lParam) (This)->lpVtbl->InitCallback(This,pfnCallback,wParam,lParam)
   2015 #define ISpNotifyTranslator_InitSpNotifyCallback(This,pSpCallback,wParam,lParam) (This)->lpVtbl->InitSpNotifyCallback(This,pSpCallback,wParam,lParam)
   2016 #define ISpNotifyTranslator_InitWin32Event(This,hEvent,fCloseHandleOnRelease) (This)->lpVtbl->InitWin32Event(This,hEvent,fCloseHandleOnRelease)
   2017 #define ISpNotifyTranslator_Wait(This,dwMilliseconds) (This)->lpVtbl->Wait(This,dwMilliseconds)
   2018 #define ISpNotifyTranslator_GetEventHandle(This) (This)->lpVtbl->GetEventHandle(This)
   2019 #else
   2020 /*** IUnknown methods ***/
   2021 static inline HRESULT ISpNotifyTranslator_QueryInterface(ISpNotifyTranslator* This,REFIID riid,void **ppvObject) {
   2022     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2023 }
   2024 static inline ULONG ISpNotifyTranslator_AddRef(ISpNotifyTranslator* This) {
   2025     return This->lpVtbl->AddRef(This);
   2026 }
   2027 static inline ULONG ISpNotifyTranslator_Release(ISpNotifyTranslator* This) {
   2028     return This->lpVtbl->Release(This);
   2029 }
   2030 /*** ISpNotifySink methods ***/
   2031 static inline HRESULT ISpNotifyTranslator_Notify(ISpNotifyTranslator* This) {
   2032     return This->lpVtbl->Notify(This);
   2033 }
   2034 /*** ISpNotifyTranslator methods ***/
   2035 static inline HRESULT ISpNotifyTranslator_InitWindowMessage(ISpNotifyTranslator* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
   2036     return This->lpVtbl->InitWindowMessage(This,hWnd,Msg,wParam,lParam);
   2037 }
   2038 static inline HRESULT ISpNotifyTranslator_InitCallback(ISpNotifyTranslator* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
   2039     return This->lpVtbl->InitCallback(This,pfnCallback,wParam,lParam);
   2040 }
   2041 static inline HRESULT ISpNotifyTranslator_InitSpNotifyCallback(ISpNotifyTranslator* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
   2042     return This->lpVtbl->InitSpNotifyCallback(This,pSpCallback,wParam,lParam);
   2043 }
   2044 static inline HRESULT ISpNotifyTranslator_InitWin32Event(ISpNotifyTranslator* This,HANDLE hEvent,WINBOOL fCloseHandleOnRelease) {
   2045     return This->lpVtbl->InitWin32Event(This,hEvent,fCloseHandleOnRelease);
   2046 }
   2047 static inline HRESULT ISpNotifyTranslator_Wait(ISpNotifyTranslator* This,DWORD dwMilliseconds) {
   2048     return This->lpVtbl->Wait(This,dwMilliseconds);
   2049 }
   2050 static inline HANDLE ISpNotifyTranslator_GetEventHandle(ISpNotifyTranslator* This) {
   2051     return This->lpVtbl->GetEventHandle(This);
   2052 }
   2053 #endif
   2054 #endif
   2055 
   2056 #endif
   2057 
   2058 
   2059 #endif  /* __ISpNotifyTranslator_INTERFACE_DEFINED__ */
   2060 
   2061 /*****************************************************************************
   2062  * ISpDataKey interface
   2063  */
   2064 #ifndef __ISpDataKey_INTERFACE_DEFINED__
   2065 #define __ISpDataKey_INTERFACE_DEFINED__
   2066 
   2067 DEFINE_GUID(IID_ISpDataKey, 0x14056581, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
   2068 #if defined(__cplusplus) && !defined(CINTERFACE)
   2069 MIDL_INTERFACE("14056581-e16c-11d2-bb90-00c04f8ee6c0")
   2070 ISpDataKey : public IUnknown
   2071 {
   2072     virtual HRESULT STDMETHODCALLTYPE SetData(
   2073         LPCWSTR pszValueName,
   2074         ULONG cbData,
   2075         const BYTE *pData) = 0;
   2076 
   2077     virtual HRESULT STDMETHODCALLTYPE GetData(
   2078         LPCWSTR pszValueName,
   2079         ULONG *pcbData,
   2080         BYTE *pData) = 0;
   2081 
   2082     virtual HRESULT STDMETHODCALLTYPE SetStringValue(
   2083         LPCWSTR pszValueName,
   2084         LPCWSTR pszValue) = 0;
   2085 
   2086     virtual HRESULT STDMETHODCALLTYPE GetStringValue(
   2087         LPCWSTR pszValueName,
   2088         LPWSTR *ppszValue) = 0;
   2089 
   2090     virtual HRESULT STDMETHODCALLTYPE SetDWORD(
   2091         LPCWSTR pszValueName,
   2092         DWORD dwValue) = 0;
   2093 
   2094     virtual HRESULT STDMETHODCALLTYPE GetDWORD(
   2095         LPCWSTR pszValueName,
   2096         DWORD *pdwValue) = 0;
   2097 
   2098     virtual HRESULT STDMETHODCALLTYPE OpenKey(
   2099         LPCWSTR pszSubKeyName,
   2100         ISpDataKey **ppSubKey) = 0;
   2101 
   2102     virtual HRESULT STDMETHODCALLTYPE CreateKey(
   2103         LPCWSTR pszSubKey,
   2104         ISpDataKey **ppSubKey) = 0;
   2105 
   2106     virtual HRESULT STDMETHODCALLTYPE DeleteKey(
   2107         LPCWSTR pszSubKey) = 0;
   2108 
   2109     virtual HRESULT STDMETHODCALLTYPE DeleteValue(
   2110         LPCWSTR pszValueName) = 0;
   2111 
   2112     virtual HRESULT STDMETHODCALLTYPE EnumKeys(
   2113         ULONG Index,
   2114         LPWSTR *ppszSubKeyName) = 0;
   2115 
   2116     virtual HRESULT STDMETHODCALLTYPE EnumValues(
   2117         ULONG Index,
   2118         LPWSTR *ppszValueName) = 0;
   2119 
   2120 };
   2121 #ifdef __CRT_UUID_DECL
   2122 __CRT_UUID_DECL(ISpDataKey, 0x14056581, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
   2123 #endif
   2124 #else
   2125 typedef struct ISpDataKeyVtbl {
   2126     BEGIN_INTERFACE
   2127 
   2128     /*** IUnknown methods ***/
   2129     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2130         ISpDataKey *This,
   2131         REFIID riid,
   2132         void **ppvObject);
   2133 
   2134     ULONG (STDMETHODCALLTYPE *AddRef)(
   2135         ISpDataKey *This);
   2136 
   2137     ULONG (STDMETHODCALLTYPE *Release)(
   2138         ISpDataKey *This);
   2139 
   2140     /*** ISpDataKey methods ***/
   2141     HRESULT (STDMETHODCALLTYPE *SetData)(
   2142         ISpDataKey *This,
   2143         LPCWSTR pszValueName,
   2144         ULONG cbData,
   2145         const BYTE *pData);
   2146 
   2147     HRESULT (STDMETHODCALLTYPE *GetData)(
   2148         ISpDataKey *This,
   2149         LPCWSTR pszValueName,
   2150         ULONG *pcbData,
   2151         BYTE *pData);
   2152 
   2153     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
   2154         ISpDataKey *This,
   2155         LPCWSTR pszValueName,
   2156         LPCWSTR pszValue);
   2157 
   2158     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
   2159         ISpDataKey *This,
   2160         LPCWSTR pszValueName,
   2161         LPWSTR *ppszValue);
   2162 
   2163     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
   2164         ISpDataKey *This,
   2165         LPCWSTR pszValueName,
   2166         DWORD dwValue);
   2167 
   2168     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
   2169         ISpDataKey *This,
   2170         LPCWSTR pszValueName,
   2171         DWORD *pdwValue);
   2172 
   2173     HRESULT (STDMETHODCALLTYPE *OpenKey)(
   2174         ISpDataKey *This,
   2175         LPCWSTR pszSubKeyName,
   2176         ISpDataKey **ppSubKey);
   2177 
   2178     HRESULT (STDMETHODCALLTYPE *CreateKey)(
   2179         ISpDataKey *This,
   2180         LPCWSTR pszSubKey,
   2181         ISpDataKey **ppSubKey);
   2182 
   2183     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
   2184         ISpDataKey *This,
   2185         LPCWSTR pszSubKey);
   2186 
   2187     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
   2188         ISpDataKey *This,
   2189         LPCWSTR pszValueName);
   2190 
   2191     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
   2192         ISpDataKey *This,
   2193         ULONG Index,
   2194         LPWSTR *ppszSubKeyName);
   2195 
   2196     HRESULT (STDMETHODCALLTYPE *EnumValues)(
   2197         ISpDataKey *This,
   2198         ULONG Index,
   2199         LPWSTR *ppszValueName);
   2200 
   2201     END_INTERFACE
   2202 } ISpDataKeyVtbl;
   2203 
   2204 interface ISpDataKey {
   2205     CONST_VTBL ISpDataKeyVtbl* lpVtbl;
   2206 };
   2207 
   2208 #ifdef COBJMACROS
   2209 #ifndef WIDL_C_INLINE_WRAPPERS
   2210 /*** IUnknown methods ***/
   2211 #define ISpDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2212 #define ISpDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
   2213 #define ISpDataKey_Release(This) (This)->lpVtbl->Release(This)
   2214 /*** ISpDataKey methods ***/
   2215 #define ISpDataKey_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
   2216 #define ISpDataKey_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
   2217 #define ISpDataKey_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
   2218 #define ISpDataKey_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
   2219 #define ISpDataKey_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
   2220 #define ISpDataKey_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
   2221 #define ISpDataKey_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
   2222 #define ISpDataKey_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
   2223 #define ISpDataKey_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
   2224 #define ISpDataKey_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
   2225 #define ISpDataKey_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
   2226 #define ISpDataKey_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
   2227 #else
   2228 /*** IUnknown methods ***/
   2229 static inline HRESULT ISpDataKey_QueryInterface(ISpDataKey* This,REFIID riid,void **ppvObject) {
   2230     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2231 }
   2232 static inline ULONG ISpDataKey_AddRef(ISpDataKey* This) {
   2233     return This->lpVtbl->AddRef(This);
   2234 }
   2235 static inline ULONG ISpDataKey_Release(ISpDataKey* This) {
   2236     return This->lpVtbl->Release(This);
   2237 }
   2238 /*** ISpDataKey methods ***/
   2239 static inline HRESULT ISpDataKey_SetData(ISpDataKey* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
   2240     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
   2241 }
   2242 static inline HRESULT ISpDataKey_GetData(ISpDataKey* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
   2243     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
   2244 }
   2245 static inline HRESULT ISpDataKey_SetStringValue(ISpDataKey* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
   2246     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
   2247 }
   2248 static inline HRESULT ISpDataKey_GetStringValue(ISpDataKey* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
   2249     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
   2250 }
   2251 static inline HRESULT ISpDataKey_SetDWORD(ISpDataKey* This,LPCWSTR pszValueName,DWORD dwValue) {
   2252     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
   2253 }
   2254 static inline HRESULT ISpDataKey_GetDWORD(ISpDataKey* This,LPCWSTR pszValueName,DWORD *pdwValue) {
   2255     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
   2256 }
   2257 static inline HRESULT ISpDataKey_OpenKey(ISpDataKey* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
   2258     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
   2259 }
   2260 static inline HRESULT ISpDataKey_CreateKey(ISpDataKey* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
   2261     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
   2262 }
   2263 static inline HRESULT ISpDataKey_DeleteKey(ISpDataKey* This,LPCWSTR pszSubKey) {
   2264     return This->lpVtbl->DeleteKey(This,pszSubKey);
   2265 }
   2266 static inline HRESULT ISpDataKey_DeleteValue(ISpDataKey* This,LPCWSTR pszValueName) {
   2267     return This->lpVtbl->DeleteValue(This,pszValueName);
   2268 }
   2269 static inline HRESULT ISpDataKey_EnumKeys(ISpDataKey* This,ULONG Index,LPWSTR *ppszSubKeyName) {
   2270     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
   2271 }
   2272 static inline HRESULT ISpDataKey_EnumValues(ISpDataKey* This,ULONG Index,LPWSTR *ppszValueName) {
   2273     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
   2274 }
   2275 #endif
   2276 #endif
   2277 
   2278 #endif
   2279 
   2280 
   2281 #endif  /* __ISpDataKey_INTERFACE_DEFINED__ */
   2282 
   2283 /*****************************************************************************
   2284  * ISpObjectWithToken interface
   2285  */
   2286 #ifndef __ISpObjectWithToken_INTERFACE_DEFINED__
   2287 #define __ISpObjectWithToken_INTERFACE_DEFINED__
   2288 
   2289 DEFINE_GUID(IID_ISpObjectWithToken, 0x5b559f40, 0xe952, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
   2290 #if defined(__cplusplus) && !defined(CINTERFACE)
   2291 MIDL_INTERFACE("5b559f40-e952-11d2-bb91-00c04f8ee6c0")
   2292 ISpObjectWithToken : public IUnknown
   2293 {
   2294     virtual HRESULT STDMETHODCALLTYPE SetObjectToken(
   2295         ISpObjectToken *pToken) = 0;
   2296 
   2297     virtual HRESULT STDMETHODCALLTYPE GetObjectToken(
   2298         ISpObjectToken **ppToken) = 0;
   2299 
   2300 };
   2301 #ifdef __CRT_UUID_DECL
   2302 __CRT_UUID_DECL(ISpObjectWithToken, 0x5b559f40, 0xe952, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
   2303 #endif
   2304 #else
   2305 typedef struct ISpObjectWithTokenVtbl {
   2306     BEGIN_INTERFACE
   2307 
   2308     /*** IUnknown methods ***/
   2309     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2310         ISpObjectWithToken *This,
   2311         REFIID riid,
   2312         void **ppvObject);
   2313 
   2314     ULONG (STDMETHODCALLTYPE *AddRef)(
   2315         ISpObjectWithToken *This);
   2316 
   2317     ULONG (STDMETHODCALLTYPE *Release)(
   2318         ISpObjectWithToken *This);
   2319 
   2320     /*** ISpObjectWithToken methods ***/
   2321     HRESULT (STDMETHODCALLTYPE *SetObjectToken)(
   2322         ISpObjectWithToken *This,
   2323         ISpObjectToken *pToken);
   2324 
   2325     HRESULT (STDMETHODCALLTYPE *GetObjectToken)(
   2326         ISpObjectWithToken *This,
   2327         ISpObjectToken **ppToken);
   2328 
   2329     END_INTERFACE
   2330 } ISpObjectWithTokenVtbl;
   2331 
   2332 interface ISpObjectWithToken {
   2333     CONST_VTBL ISpObjectWithTokenVtbl* lpVtbl;
   2334 };
   2335 
   2336 #ifdef COBJMACROS
   2337 #ifndef WIDL_C_INLINE_WRAPPERS
   2338 /*** IUnknown methods ***/
   2339 #define ISpObjectWithToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2340 #define ISpObjectWithToken_AddRef(This) (This)->lpVtbl->AddRef(This)
   2341 #define ISpObjectWithToken_Release(This) (This)->lpVtbl->Release(This)
   2342 /*** ISpObjectWithToken methods ***/
   2343 #define ISpObjectWithToken_SetObjectToken(This,pToken) (This)->lpVtbl->SetObjectToken(This,pToken)
   2344 #define ISpObjectWithToken_GetObjectToken(This,ppToken) (This)->lpVtbl->GetObjectToken(This,ppToken)
   2345 #else
   2346 /*** IUnknown methods ***/
   2347 static inline HRESULT ISpObjectWithToken_QueryInterface(ISpObjectWithToken* This,REFIID riid,void **ppvObject) {
   2348     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2349 }
   2350 static inline ULONG ISpObjectWithToken_AddRef(ISpObjectWithToken* This) {
   2351     return This->lpVtbl->AddRef(This);
   2352 }
   2353 static inline ULONG ISpObjectWithToken_Release(ISpObjectWithToken* This) {
   2354     return This->lpVtbl->Release(This);
   2355 }
   2356 /*** ISpObjectWithToken methods ***/
   2357 static inline HRESULT ISpObjectWithToken_SetObjectToken(ISpObjectWithToken* This,ISpObjectToken *pToken) {
   2358     return This->lpVtbl->SetObjectToken(This,pToken);
   2359 }
   2360 static inline HRESULT ISpObjectWithToken_GetObjectToken(ISpObjectWithToken* This,ISpObjectToken **ppToken) {
   2361     return This->lpVtbl->GetObjectToken(This,ppToken);
   2362 }
   2363 #endif
   2364 #endif
   2365 
   2366 #endif
   2367 
   2368 
   2369 #endif  /* __ISpObjectWithToken_INTERFACE_DEFINED__ */
   2370 
   2371 /*****************************************************************************
   2372  * IEnumSpObjectTokens interface
   2373  */
   2374 #ifndef __IEnumSpObjectTokens_INTERFACE_DEFINED__
   2375 #define __IEnumSpObjectTokens_INTERFACE_DEFINED__
   2376 
   2377 DEFINE_GUID(IID_IEnumSpObjectTokens, 0x06b64f9e, 0x7fda, 0x11d2, 0xb4,0xf2, 0x00,0xc0,0x4f,0x79,0x73,0x96);
   2378 #if defined(__cplusplus) && !defined(CINTERFACE)
   2379 MIDL_INTERFACE("06b64f9e-7fda-11d2-b4f2-00c04f797396")
   2380 IEnumSpObjectTokens : public IUnknown
   2381 {
   2382     virtual HRESULT STDMETHODCALLTYPE Next(
   2383         ULONG celt,
   2384         ISpObjectToken **pelt,
   2385         ULONG *pceltFetched) = 0;
   2386 
   2387     virtual HRESULT STDMETHODCALLTYPE Skip(
   2388         ULONG celt) = 0;
   2389 
   2390     virtual HRESULT STDMETHODCALLTYPE Reset(
   2391         ) = 0;
   2392 
   2393     virtual HRESULT STDMETHODCALLTYPE Clone(
   2394         IEnumSpObjectTokens **ppEnum) = 0;
   2395 
   2396     virtual HRESULT STDMETHODCALLTYPE Item(
   2397         ULONG Index,
   2398         ISpObjectToken **ppToken) = 0;
   2399 
   2400     virtual HRESULT STDMETHODCALLTYPE GetCount(
   2401         ULONG *pCount) = 0;
   2402 
   2403 };
   2404 #ifdef __CRT_UUID_DECL
   2405 __CRT_UUID_DECL(IEnumSpObjectTokens, 0x06b64f9e, 0x7fda, 0x11d2, 0xb4,0xf2, 0x00,0xc0,0x4f,0x79,0x73,0x96)
   2406 #endif
   2407 #else
   2408 typedef struct IEnumSpObjectTokensVtbl {
   2409     BEGIN_INTERFACE
   2410 
   2411     /*** IUnknown methods ***/
   2412     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2413         IEnumSpObjectTokens *This,
   2414         REFIID riid,
   2415         void **ppvObject);
   2416 
   2417     ULONG (STDMETHODCALLTYPE *AddRef)(
   2418         IEnumSpObjectTokens *This);
   2419 
   2420     ULONG (STDMETHODCALLTYPE *Release)(
   2421         IEnumSpObjectTokens *This);
   2422 
   2423     /*** IEnumSpObjectTokens methods ***/
   2424     HRESULT (STDMETHODCALLTYPE *Next)(
   2425         IEnumSpObjectTokens *This,
   2426         ULONG celt,
   2427         ISpObjectToken **pelt,
   2428         ULONG *pceltFetched);
   2429 
   2430     HRESULT (STDMETHODCALLTYPE *Skip)(
   2431         IEnumSpObjectTokens *This,
   2432         ULONG celt);
   2433 
   2434     HRESULT (STDMETHODCALLTYPE *Reset)(
   2435         IEnumSpObjectTokens *This);
   2436 
   2437     HRESULT (STDMETHODCALLTYPE *Clone)(
   2438         IEnumSpObjectTokens *This,
   2439         IEnumSpObjectTokens **ppEnum);
   2440 
   2441     HRESULT (STDMETHODCALLTYPE *Item)(
   2442         IEnumSpObjectTokens *This,
   2443         ULONG Index,
   2444         ISpObjectToken **ppToken);
   2445 
   2446     HRESULT (STDMETHODCALLTYPE *GetCount)(
   2447         IEnumSpObjectTokens *This,
   2448         ULONG *pCount);
   2449 
   2450     END_INTERFACE
   2451 } IEnumSpObjectTokensVtbl;
   2452 
   2453 interface IEnumSpObjectTokens {
   2454     CONST_VTBL IEnumSpObjectTokensVtbl* lpVtbl;
   2455 };
   2456 
   2457 #ifdef COBJMACROS
   2458 #ifndef WIDL_C_INLINE_WRAPPERS
   2459 /*** IUnknown methods ***/
   2460 #define IEnumSpObjectTokens_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2461 #define IEnumSpObjectTokens_AddRef(This) (This)->lpVtbl->AddRef(This)
   2462 #define IEnumSpObjectTokens_Release(This) (This)->lpVtbl->Release(This)
   2463 /*** IEnumSpObjectTokens methods ***/
   2464 #define IEnumSpObjectTokens_Next(This,celt,pelt,pceltFetched) (This)->lpVtbl->Next(This,celt,pelt,pceltFetched)
   2465 #define IEnumSpObjectTokens_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   2466 #define IEnumSpObjectTokens_Reset(This) (This)->lpVtbl->Reset(This)
   2467 #define IEnumSpObjectTokens_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
   2468 #define IEnumSpObjectTokens_Item(This,Index,ppToken) (This)->lpVtbl->Item(This,Index,ppToken)
   2469 #define IEnumSpObjectTokens_GetCount(This,pCount) (This)->lpVtbl->GetCount(This,pCount)
   2470 #else
   2471 /*** IUnknown methods ***/
   2472 static inline HRESULT IEnumSpObjectTokens_QueryInterface(IEnumSpObjectTokens* This,REFIID riid,void **ppvObject) {
   2473     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2474 }
   2475 static inline ULONG IEnumSpObjectTokens_AddRef(IEnumSpObjectTokens* This) {
   2476     return This->lpVtbl->AddRef(This);
   2477 }
   2478 static inline ULONG IEnumSpObjectTokens_Release(IEnumSpObjectTokens* This) {
   2479     return This->lpVtbl->Release(This);
   2480 }
   2481 /*** IEnumSpObjectTokens methods ***/
   2482 static inline HRESULT IEnumSpObjectTokens_Next(IEnumSpObjectTokens* This,ULONG celt,ISpObjectToken **pelt,ULONG *pceltFetched) {
   2483     return This->lpVtbl->Next(This,celt,pelt,pceltFetched);
   2484 }
   2485 static inline HRESULT IEnumSpObjectTokens_Skip(IEnumSpObjectTokens* This,ULONG celt) {
   2486     return This->lpVtbl->Skip(This,celt);
   2487 }
   2488 static inline HRESULT IEnumSpObjectTokens_Reset(IEnumSpObjectTokens* This) {
   2489     return This->lpVtbl->Reset(This);
   2490 }
   2491 static inline HRESULT IEnumSpObjectTokens_Clone(IEnumSpObjectTokens* This,IEnumSpObjectTokens **ppEnum) {
   2492     return This->lpVtbl->Clone(This,ppEnum);
   2493 }
   2494 static inline HRESULT IEnumSpObjectTokens_Item(IEnumSpObjectTokens* This,ULONG Index,ISpObjectToken **ppToken) {
   2495     return This->lpVtbl->Item(This,Index,ppToken);
   2496 }
   2497 static inline HRESULT IEnumSpObjectTokens_GetCount(IEnumSpObjectTokens* This,ULONG *pCount) {
   2498     return This->lpVtbl->GetCount(This,pCount);
   2499 }
   2500 #endif
   2501 #endif
   2502 
   2503 #endif
   2504 
   2505 
   2506 #endif  /* __IEnumSpObjectTokens_INTERFACE_DEFINED__ */
   2507 
   2508 /*****************************************************************************
   2509  * ISpRegDataKey interface
   2510  */
   2511 #ifndef __ISpRegDataKey_INTERFACE_DEFINED__
   2512 #define __ISpRegDataKey_INTERFACE_DEFINED__
   2513 
   2514 DEFINE_GUID(IID_ISpRegDataKey, 0x92a66e2b, 0xc830, 0x4149, 0x83,0xdf, 0x6f,0xc2,0xba,0x1e,0x7a,0x5b);
   2515 #if defined(__cplusplus) && !defined(CINTERFACE)
   2516 MIDL_INTERFACE("92a66e2b-c830-4149-83df-6fc2ba1e7a5b")
   2517 ISpRegDataKey : public ISpDataKey
   2518 {
   2519     virtual HRESULT STDMETHODCALLTYPE SetKey(
   2520         HKEY hkey,
   2521         WINBOOL fReadOnly) = 0;
   2522 
   2523 };
   2524 #ifdef __CRT_UUID_DECL
   2525 __CRT_UUID_DECL(ISpRegDataKey, 0x92a66e2b, 0xc830, 0x4149, 0x83,0xdf, 0x6f,0xc2,0xba,0x1e,0x7a,0x5b)
   2526 #endif
   2527 #else
   2528 typedef struct ISpRegDataKeyVtbl {
   2529     BEGIN_INTERFACE
   2530 
   2531     /*** IUnknown methods ***/
   2532     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2533         ISpRegDataKey *This,
   2534         REFIID riid,
   2535         void **ppvObject);
   2536 
   2537     ULONG (STDMETHODCALLTYPE *AddRef)(
   2538         ISpRegDataKey *This);
   2539 
   2540     ULONG (STDMETHODCALLTYPE *Release)(
   2541         ISpRegDataKey *This);
   2542 
   2543     /*** ISpDataKey methods ***/
   2544     HRESULT (STDMETHODCALLTYPE *SetData)(
   2545         ISpRegDataKey *This,
   2546         LPCWSTR pszValueName,
   2547         ULONG cbData,
   2548         const BYTE *pData);
   2549 
   2550     HRESULT (STDMETHODCALLTYPE *GetData)(
   2551         ISpRegDataKey *This,
   2552         LPCWSTR pszValueName,
   2553         ULONG *pcbData,
   2554         BYTE *pData);
   2555 
   2556     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
   2557         ISpRegDataKey *This,
   2558         LPCWSTR pszValueName,
   2559         LPCWSTR pszValue);
   2560 
   2561     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
   2562         ISpRegDataKey *This,
   2563         LPCWSTR pszValueName,
   2564         LPWSTR *ppszValue);
   2565 
   2566     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
   2567         ISpRegDataKey *This,
   2568         LPCWSTR pszValueName,
   2569         DWORD dwValue);
   2570 
   2571     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
   2572         ISpRegDataKey *This,
   2573         LPCWSTR pszValueName,
   2574         DWORD *pdwValue);
   2575 
   2576     HRESULT (STDMETHODCALLTYPE *OpenKey)(
   2577         ISpRegDataKey *This,
   2578         LPCWSTR pszSubKeyName,
   2579         ISpDataKey **ppSubKey);
   2580 
   2581     HRESULT (STDMETHODCALLTYPE *CreateKey)(
   2582         ISpRegDataKey *This,
   2583         LPCWSTR pszSubKey,
   2584         ISpDataKey **ppSubKey);
   2585 
   2586     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
   2587         ISpRegDataKey *This,
   2588         LPCWSTR pszSubKey);
   2589 
   2590     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
   2591         ISpRegDataKey *This,
   2592         LPCWSTR pszValueName);
   2593 
   2594     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
   2595         ISpRegDataKey *This,
   2596         ULONG Index,
   2597         LPWSTR *ppszSubKeyName);
   2598 
   2599     HRESULT (STDMETHODCALLTYPE *EnumValues)(
   2600         ISpRegDataKey *This,
   2601         ULONG Index,
   2602         LPWSTR *ppszValueName);
   2603 
   2604     /*** ISpRegDataKey methods ***/
   2605     HRESULT (STDMETHODCALLTYPE *SetKey)(
   2606         ISpRegDataKey *This,
   2607         HKEY hkey,
   2608         WINBOOL fReadOnly);
   2609 
   2610     END_INTERFACE
   2611 } ISpRegDataKeyVtbl;
   2612 
   2613 interface ISpRegDataKey {
   2614     CONST_VTBL ISpRegDataKeyVtbl* lpVtbl;
   2615 };
   2616 
   2617 #ifdef COBJMACROS
   2618 #ifndef WIDL_C_INLINE_WRAPPERS
   2619 /*** IUnknown methods ***/
   2620 #define ISpRegDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2621 #define ISpRegDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
   2622 #define ISpRegDataKey_Release(This) (This)->lpVtbl->Release(This)
   2623 /*** ISpDataKey methods ***/
   2624 #define ISpRegDataKey_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
   2625 #define ISpRegDataKey_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
   2626 #define ISpRegDataKey_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
   2627 #define ISpRegDataKey_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
   2628 #define ISpRegDataKey_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
   2629 #define ISpRegDataKey_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
   2630 #define ISpRegDataKey_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
   2631 #define ISpRegDataKey_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
   2632 #define ISpRegDataKey_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
   2633 #define ISpRegDataKey_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
   2634 #define ISpRegDataKey_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
   2635 #define ISpRegDataKey_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
   2636 /*** ISpRegDataKey methods ***/
   2637 #define ISpRegDataKey_SetKey(This,hkey,fReadOnly) (This)->lpVtbl->SetKey(This,hkey,fReadOnly)
   2638 #else
   2639 /*** IUnknown methods ***/
   2640 static inline HRESULT ISpRegDataKey_QueryInterface(ISpRegDataKey* This,REFIID riid,void **ppvObject) {
   2641     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2642 }
   2643 static inline ULONG ISpRegDataKey_AddRef(ISpRegDataKey* This) {
   2644     return This->lpVtbl->AddRef(This);
   2645 }
   2646 static inline ULONG ISpRegDataKey_Release(ISpRegDataKey* This) {
   2647     return This->lpVtbl->Release(This);
   2648 }
   2649 /*** ISpDataKey methods ***/
   2650 static inline HRESULT ISpRegDataKey_SetData(ISpRegDataKey* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
   2651     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
   2652 }
   2653 static inline HRESULT ISpRegDataKey_GetData(ISpRegDataKey* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
   2654     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
   2655 }
   2656 static inline HRESULT ISpRegDataKey_SetStringValue(ISpRegDataKey* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
   2657     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
   2658 }
   2659 static inline HRESULT ISpRegDataKey_GetStringValue(ISpRegDataKey* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
   2660     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
   2661 }
   2662 static inline HRESULT ISpRegDataKey_SetDWORD(ISpRegDataKey* This,LPCWSTR pszValueName,DWORD dwValue) {
   2663     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
   2664 }
   2665 static inline HRESULT ISpRegDataKey_GetDWORD(ISpRegDataKey* This,LPCWSTR pszValueName,DWORD *pdwValue) {
   2666     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
   2667 }
   2668 static inline HRESULT ISpRegDataKey_OpenKey(ISpRegDataKey* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
   2669     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
   2670 }
   2671 static inline HRESULT ISpRegDataKey_CreateKey(ISpRegDataKey* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
   2672     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
   2673 }
   2674 static inline HRESULT ISpRegDataKey_DeleteKey(ISpRegDataKey* This,LPCWSTR pszSubKey) {
   2675     return This->lpVtbl->DeleteKey(This,pszSubKey);
   2676 }
   2677 static inline HRESULT ISpRegDataKey_DeleteValue(ISpRegDataKey* This,LPCWSTR pszValueName) {
   2678     return This->lpVtbl->DeleteValue(This,pszValueName);
   2679 }
   2680 static inline HRESULT ISpRegDataKey_EnumKeys(ISpRegDataKey* This,ULONG Index,LPWSTR *ppszSubKeyName) {
   2681     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
   2682 }
   2683 static inline HRESULT ISpRegDataKey_EnumValues(ISpRegDataKey* This,ULONG Index,LPWSTR *ppszValueName) {
   2684     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
   2685 }
   2686 /*** ISpRegDataKey methods ***/
   2687 static inline HRESULT ISpRegDataKey_SetKey(ISpRegDataKey* This,HKEY hkey,WINBOOL fReadOnly) {
   2688     return This->lpVtbl->SetKey(This,hkey,fReadOnly);
   2689 }
   2690 #endif
   2691 #endif
   2692 
   2693 #endif
   2694 
   2695 
   2696 #endif  /* __ISpRegDataKey_INTERFACE_DEFINED__ */
   2697 
   2698 /*****************************************************************************
   2699  * ISpObjectTokenCategory interface
   2700  */
   2701 #ifndef __ISpObjectTokenCategory_INTERFACE_DEFINED__
   2702 #define __ISpObjectTokenCategory_INTERFACE_DEFINED__
   2703 
   2704 DEFINE_GUID(IID_ISpObjectTokenCategory, 0x2d3d3845, 0x39af, 0x4850, 0xbb,0xf9, 0x40,0xb4,0x97,0x80,0x01,0x1d);
   2705 #if defined(__cplusplus) && !defined(CINTERFACE)
   2706 MIDL_INTERFACE("2d3d3845-39af-4850-bbf9-40b49780011d")
   2707 ISpObjectTokenCategory : public ISpDataKey
   2708 {
   2709     virtual HRESULT STDMETHODCALLTYPE SetId(
   2710         LPCWSTR pszCategoryId,
   2711         WINBOOL fCreateIfNotExist) = 0;
   2712 
   2713     virtual HRESULT STDMETHODCALLTYPE GetId(
   2714         LPWSTR *ppszCoMemCategoryId) = 0;
   2715 
   2716     virtual HRESULT STDMETHODCALLTYPE GetDataKey(
   2717         SPDATAKEYLOCATION spdkl,
   2718         ISpDataKey **ppDataKey) = 0;
   2719 
   2720     virtual HRESULT STDMETHODCALLTYPE EnumTokens(
   2721         LPCWSTR pzsReqAttribs,
   2722         LPCWSTR pszOptAttribs,
   2723         IEnumSpObjectTokens **ppEnum) = 0;
   2724 
   2725     virtual HRESULT STDMETHODCALLTYPE SetDefaultTokenId(
   2726         LPCWSTR pszTokenId) = 0;
   2727 
   2728     virtual HRESULT STDMETHODCALLTYPE GetDefaultTokenId(
   2729         LPWSTR *ppszCoMemTokenId) = 0;
   2730 
   2731 };
   2732 #ifdef __CRT_UUID_DECL
   2733 __CRT_UUID_DECL(ISpObjectTokenCategory, 0x2d3d3845, 0x39af, 0x4850, 0xbb,0xf9, 0x40,0xb4,0x97,0x80,0x01,0x1d)
   2734 #endif
   2735 #else
   2736 typedef struct ISpObjectTokenCategoryVtbl {
   2737     BEGIN_INTERFACE
   2738 
   2739     /*** IUnknown methods ***/
   2740     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2741         ISpObjectTokenCategory *This,
   2742         REFIID riid,
   2743         void **ppvObject);
   2744 
   2745     ULONG (STDMETHODCALLTYPE *AddRef)(
   2746         ISpObjectTokenCategory *This);
   2747 
   2748     ULONG (STDMETHODCALLTYPE *Release)(
   2749         ISpObjectTokenCategory *This);
   2750 
   2751     /*** ISpDataKey methods ***/
   2752     HRESULT (STDMETHODCALLTYPE *SetData)(
   2753         ISpObjectTokenCategory *This,
   2754         LPCWSTR pszValueName,
   2755         ULONG cbData,
   2756         const BYTE *pData);
   2757 
   2758     HRESULT (STDMETHODCALLTYPE *GetData)(
   2759         ISpObjectTokenCategory *This,
   2760         LPCWSTR pszValueName,
   2761         ULONG *pcbData,
   2762         BYTE *pData);
   2763 
   2764     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
   2765         ISpObjectTokenCategory *This,
   2766         LPCWSTR pszValueName,
   2767         LPCWSTR pszValue);
   2768 
   2769     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
   2770         ISpObjectTokenCategory *This,
   2771         LPCWSTR pszValueName,
   2772         LPWSTR *ppszValue);
   2773 
   2774     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
   2775         ISpObjectTokenCategory *This,
   2776         LPCWSTR pszValueName,
   2777         DWORD dwValue);
   2778 
   2779     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
   2780         ISpObjectTokenCategory *This,
   2781         LPCWSTR pszValueName,
   2782         DWORD *pdwValue);
   2783 
   2784     HRESULT (STDMETHODCALLTYPE *OpenKey)(
   2785         ISpObjectTokenCategory *This,
   2786         LPCWSTR pszSubKeyName,
   2787         ISpDataKey **ppSubKey);
   2788 
   2789     HRESULT (STDMETHODCALLTYPE *CreateKey)(
   2790         ISpObjectTokenCategory *This,
   2791         LPCWSTR pszSubKey,
   2792         ISpDataKey **ppSubKey);
   2793 
   2794     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
   2795         ISpObjectTokenCategory *This,
   2796         LPCWSTR pszSubKey);
   2797 
   2798     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
   2799         ISpObjectTokenCategory *This,
   2800         LPCWSTR pszValueName);
   2801 
   2802     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
   2803         ISpObjectTokenCategory *This,
   2804         ULONG Index,
   2805         LPWSTR *ppszSubKeyName);
   2806 
   2807     HRESULT (STDMETHODCALLTYPE *EnumValues)(
   2808         ISpObjectTokenCategory *This,
   2809         ULONG Index,
   2810         LPWSTR *ppszValueName);
   2811 
   2812     /*** ISpObjectTokenCategory methods ***/
   2813     HRESULT (STDMETHODCALLTYPE *SetId)(
   2814         ISpObjectTokenCategory *This,
   2815         LPCWSTR pszCategoryId,
   2816         WINBOOL fCreateIfNotExist);
   2817 
   2818     HRESULT (STDMETHODCALLTYPE *GetId)(
   2819         ISpObjectTokenCategory *This,
   2820         LPWSTR *ppszCoMemCategoryId);
   2821 
   2822     HRESULT (STDMETHODCALLTYPE *GetDataKey)(
   2823         ISpObjectTokenCategory *This,
   2824         SPDATAKEYLOCATION spdkl,
   2825         ISpDataKey **ppDataKey);
   2826 
   2827     HRESULT (STDMETHODCALLTYPE *EnumTokens)(
   2828         ISpObjectTokenCategory *This,
   2829         LPCWSTR pzsReqAttribs,
   2830         LPCWSTR pszOptAttribs,
   2831         IEnumSpObjectTokens **ppEnum);
   2832 
   2833     HRESULT (STDMETHODCALLTYPE *SetDefaultTokenId)(
   2834         ISpObjectTokenCategory *This,
   2835         LPCWSTR pszTokenId);
   2836 
   2837     HRESULT (STDMETHODCALLTYPE *GetDefaultTokenId)(
   2838         ISpObjectTokenCategory *This,
   2839         LPWSTR *ppszCoMemTokenId);
   2840 
   2841     END_INTERFACE
   2842 } ISpObjectTokenCategoryVtbl;
   2843 
   2844 interface ISpObjectTokenCategory {
   2845     CONST_VTBL ISpObjectTokenCategoryVtbl* lpVtbl;
   2846 };
   2847 
   2848 #ifdef COBJMACROS
   2849 #ifndef WIDL_C_INLINE_WRAPPERS
   2850 /*** IUnknown methods ***/
   2851 #define ISpObjectTokenCategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2852 #define ISpObjectTokenCategory_AddRef(This) (This)->lpVtbl->AddRef(This)
   2853 #define ISpObjectTokenCategory_Release(This) (This)->lpVtbl->Release(This)
   2854 /*** ISpDataKey methods ***/
   2855 #define ISpObjectTokenCategory_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
   2856 #define ISpObjectTokenCategory_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
   2857 #define ISpObjectTokenCategory_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
   2858 #define ISpObjectTokenCategory_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
   2859 #define ISpObjectTokenCategory_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
   2860 #define ISpObjectTokenCategory_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
   2861 #define ISpObjectTokenCategory_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
   2862 #define ISpObjectTokenCategory_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
   2863 #define ISpObjectTokenCategory_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
   2864 #define ISpObjectTokenCategory_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
   2865 #define ISpObjectTokenCategory_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
   2866 #define ISpObjectTokenCategory_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
   2867 /*** ISpObjectTokenCategory methods ***/
   2868 #define ISpObjectTokenCategory_SetId(This,pszCategoryId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,fCreateIfNotExist)
   2869 #define ISpObjectTokenCategory_GetId(This,ppszCoMemCategoryId) (This)->lpVtbl->GetId(This,ppszCoMemCategoryId)
   2870 #define ISpObjectTokenCategory_GetDataKey(This,spdkl,ppDataKey) (This)->lpVtbl->GetDataKey(This,spdkl,ppDataKey)
   2871 #define ISpObjectTokenCategory_EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum) (This)->lpVtbl->EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum)
   2872 #define ISpObjectTokenCategory_SetDefaultTokenId(This,pszTokenId) (This)->lpVtbl->SetDefaultTokenId(This,pszTokenId)
   2873 #define ISpObjectTokenCategory_GetDefaultTokenId(This,ppszCoMemTokenId) (This)->lpVtbl->GetDefaultTokenId(This,ppszCoMemTokenId)
   2874 #else
   2875 /*** IUnknown methods ***/
   2876 static inline HRESULT ISpObjectTokenCategory_QueryInterface(ISpObjectTokenCategory* This,REFIID riid,void **ppvObject) {
   2877     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2878 }
   2879 static inline ULONG ISpObjectTokenCategory_AddRef(ISpObjectTokenCategory* This) {
   2880     return This->lpVtbl->AddRef(This);
   2881 }
   2882 static inline ULONG ISpObjectTokenCategory_Release(ISpObjectTokenCategory* This) {
   2883     return This->lpVtbl->Release(This);
   2884 }
   2885 /*** ISpDataKey methods ***/
   2886 static inline HRESULT ISpObjectTokenCategory_SetData(ISpObjectTokenCategory* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
   2887     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
   2888 }
   2889 static inline HRESULT ISpObjectTokenCategory_GetData(ISpObjectTokenCategory* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
   2890     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
   2891 }
   2892 static inline HRESULT ISpObjectTokenCategory_SetStringValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
   2893     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
   2894 }
   2895 static inline HRESULT ISpObjectTokenCategory_GetStringValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
   2896     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
   2897 }
   2898 static inline HRESULT ISpObjectTokenCategory_SetDWORD(ISpObjectTokenCategory* This,LPCWSTR pszValueName,DWORD dwValue) {
   2899     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
   2900 }
   2901 static inline HRESULT ISpObjectTokenCategory_GetDWORD(ISpObjectTokenCategory* This,LPCWSTR pszValueName,DWORD *pdwValue) {
   2902     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
   2903 }
   2904 static inline HRESULT ISpObjectTokenCategory_OpenKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
   2905     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
   2906 }
   2907 static inline HRESULT ISpObjectTokenCategory_CreateKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
   2908     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
   2909 }
   2910 static inline HRESULT ISpObjectTokenCategory_DeleteKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKey) {
   2911     return This->lpVtbl->DeleteKey(This,pszSubKey);
   2912 }
   2913 static inline HRESULT ISpObjectTokenCategory_DeleteValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName) {
   2914     return This->lpVtbl->DeleteValue(This,pszValueName);
   2915 }
   2916 static inline HRESULT ISpObjectTokenCategory_EnumKeys(ISpObjectTokenCategory* This,ULONG Index,LPWSTR *ppszSubKeyName) {
   2917     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
   2918 }
   2919 static inline HRESULT ISpObjectTokenCategory_EnumValues(ISpObjectTokenCategory* This,ULONG Index,LPWSTR *ppszValueName) {
   2920     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
   2921 }
   2922 /*** ISpObjectTokenCategory methods ***/
   2923 static inline HRESULT ISpObjectTokenCategory_SetId(ISpObjectTokenCategory* This,LPCWSTR pszCategoryId,WINBOOL fCreateIfNotExist) {
   2924     return This->lpVtbl->SetId(This,pszCategoryId,fCreateIfNotExist);
   2925 }
   2926 static inline HRESULT ISpObjectTokenCategory_GetId(ISpObjectTokenCategory* This,LPWSTR *ppszCoMemCategoryId) {
   2927     return This->lpVtbl->GetId(This,ppszCoMemCategoryId);
   2928 }
   2929 static inline HRESULT ISpObjectTokenCategory_GetDataKey(ISpObjectTokenCategory* This,SPDATAKEYLOCATION spdkl,ISpDataKey **ppDataKey) {
   2930     return This->lpVtbl->GetDataKey(This,spdkl,ppDataKey);
   2931 }
   2932 static inline HRESULT ISpObjectTokenCategory_EnumTokens(ISpObjectTokenCategory* This,LPCWSTR pzsReqAttribs,LPCWSTR pszOptAttribs,IEnumSpObjectTokens **ppEnum) {
   2933     return This->lpVtbl->EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum);
   2934 }
   2935 static inline HRESULT ISpObjectTokenCategory_SetDefaultTokenId(ISpObjectTokenCategory* This,LPCWSTR pszTokenId) {
   2936     return This->lpVtbl->SetDefaultTokenId(This,pszTokenId);
   2937 }
   2938 static inline HRESULT ISpObjectTokenCategory_GetDefaultTokenId(ISpObjectTokenCategory* This,LPWSTR *ppszCoMemTokenId) {
   2939     return This->lpVtbl->GetDefaultTokenId(This,ppszCoMemTokenId);
   2940 }
   2941 #endif
   2942 #endif
   2943 
   2944 #endif
   2945 
   2946 
   2947 #endif  /* __ISpObjectTokenCategory_INTERFACE_DEFINED__ */
   2948 
   2949 /*****************************************************************************
   2950  * ISpObjectToken interface
   2951  */
   2952 #ifndef __ISpObjectToken_INTERFACE_DEFINED__
   2953 #define __ISpObjectToken_INTERFACE_DEFINED__
   2954 
   2955 DEFINE_GUID(IID_ISpObjectToken, 0x14056589, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
   2956 #if defined(__cplusplus) && !defined(CINTERFACE)
   2957 MIDL_INTERFACE("14056589-e16c-11d2-bb90-00c04f8ee6c0")
   2958 ISpObjectToken : public ISpDataKey
   2959 {
   2960     virtual HRESULT STDMETHODCALLTYPE SetId(
   2961         LPCWSTR pszCategoryId,
   2962         LPCWSTR pszTokenId,
   2963         WINBOOL fCreateIfNotExist) = 0;
   2964 
   2965     virtual HRESULT STDMETHODCALLTYPE GetId(
   2966         LPWSTR *ppszCoMemTokenId) = 0;
   2967 
   2968     virtual HRESULT STDMETHODCALLTYPE GetCategory(
   2969         ISpObjectTokenCategory **ppTokenCategory) = 0;
   2970 
   2971     virtual HRESULT STDMETHODCALLTYPE CreateInstance(
   2972         IUnknown *pUnkOuter,
   2973         DWORD dwClsContext,
   2974         REFIID riid,
   2975         void **ppvObject) = 0;
   2976 
   2977     virtual HRESULT STDMETHODCALLTYPE GetStorageFileName(
   2978         REFCLSID clsidCaller,
   2979         LPCWSTR pszValueName,
   2980         LPCWSTR pszFileNameSpecifier,
   2981         ULONG nFolder,
   2982         LPWSTR *ppszFilePath) = 0;
   2983 
   2984     virtual HRESULT STDMETHODCALLTYPE RemoveStorageFileName(
   2985         REFCLSID clsidCaller,
   2986         LPCWSTR pszKeyName,
   2987         WINBOOL fDeleteFile) = 0;
   2988 
   2989     virtual HRESULT STDMETHODCALLTYPE Remove(
   2990         const CLSID *pclsidCaller) = 0;
   2991 
   2992     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
   2993         LPCWSTR pszTypeOfUI,
   2994         void *pvExtraData,
   2995         ULONG cbExtraData,
   2996         IUnknown *punkObject,
   2997         WINBOOL *pfSupported) = 0;
   2998 
   2999     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
   3000         HWND hwndParent,
   3001         LPCWSTR pszTitle,
   3002         LPCWSTR pszTypeOfUI,
   3003         void *pvExtraData,
   3004         ULONG cbExtraData,
   3005         IUnknown *punkObject) = 0;
   3006 
   3007     virtual HRESULT STDMETHODCALLTYPE MatchesAttributes(
   3008         LPCWSTR pszAttributes,
   3009         WINBOOL *pfMatches) = 0;
   3010 
   3011 };
   3012 #ifdef __CRT_UUID_DECL
   3013 __CRT_UUID_DECL(ISpObjectToken, 0x14056589, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
   3014 #endif
   3015 #else
   3016 typedef struct ISpObjectTokenVtbl {
   3017     BEGIN_INTERFACE
   3018 
   3019     /*** IUnknown methods ***/
   3020     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3021         ISpObjectToken *This,
   3022         REFIID riid,
   3023         void **ppvObject);
   3024 
   3025     ULONG (STDMETHODCALLTYPE *AddRef)(
   3026         ISpObjectToken *This);
   3027 
   3028     ULONG (STDMETHODCALLTYPE *Release)(
   3029         ISpObjectToken *This);
   3030 
   3031     /*** ISpDataKey methods ***/
   3032     HRESULT (STDMETHODCALLTYPE *SetData)(
   3033         ISpObjectToken *This,
   3034         LPCWSTR pszValueName,
   3035         ULONG cbData,
   3036         const BYTE *pData);
   3037 
   3038     HRESULT (STDMETHODCALLTYPE *GetData)(
   3039         ISpObjectToken *This,
   3040         LPCWSTR pszValueName,
   3041         ULONG *pcbData,
   3042         BYTE *pData);
   3043 
   3044     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
   3045         ISpObjectToken *This,
   3046         LPCWSTR pszValueName,
   3047         LPCWSTR pszValue);
   3048 
   3049     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
   3050         ISpObjectToken *This,
   3051         LPCWSTR pszValueName,
   3052         LPWSTR *ppszValue);
   3053 
   3054     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
   3055         ISpObjectToken *This,
   3056         LPCWSTR pszValueName,
   3057         DWORD dwValue);
   3058 
   3059     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
   3060         ISpObjectToken *This,
   3061         LPCWSTR pszValueName,
   3062         DWORD *pdwValue);
   3063 
   3064     HRESULT (STDMETHODCALLTYPE *OpenKey)(
   3065         ISpObjectToken *This,
   3066         LPCWSTR pszSubKeyName,
   3067         ISpDataKey **ppSubKey);
   3068 
   3069     HRESULT (STDMETHODCALLTYPE *CreateKey)(
   3070         ISpObjectToken *This,
   3071         LPCWSTR pszSubKey,
   3072         ISpDataKey **ppSubKey);
   3073 
   3074     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
   3075         ISpObjectToken *This,
   3076         LPCWSTR pszSubKey);
   3077 
   3078     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
   3079         ISpObjectToken *This,
   3080         LPCWSTR pszValueName);
   3081 
   3082     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
   3083         ISpObjectToken *This,
   3084         ULONG Index,
   3085         LPWSTR *ppszSubKeyName);
   3086 
   3087     HRESULT (STDMETHODCALLTYPE *EnumValues)(
   3088         ISpObjectToken *This,
   3089         ULONG Index,
   3090         LPWSTR *ppszValueName);
   3091 
   3092     /*** ISpObjectToken methods ***/
   3093     HRESULT (STDMETHODCALLTYPE *SetId)(
   3094         ISpObjectToken *This,
   3095         LPCWSTR pszCategoryId,
   3096         LPCWSTR pszTokenId,
   3097         WINBOOL fCreateIfNotExist);
   3098 
   3099     HRESULT (STDMETHODCALLTYPE *GetId)(
   3100         ISpObjectToken *This,
   3101         LPWSTR *ppszCoMemTokenId);
   3102 
   3103     HRESULT (STDMETHODCALLTYPE *GetCategory)(
   3104         ISpObjectToken *This,
   3105         ISpObjectTokenCategory **ppTokenCategory);
   3106 
   3107     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
   3108         ISpObjectToken *This,
   3109         IUnknown *pUnkOuter,
   3110         DWORD dwClsContext,
   3111         REFIID riid,
   3112         void **ppvObject);
   3113 
   3114     HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
   3115         ISpObjectToken *This,
   3116         REFCLSID clsidCaller,
   3117         LPCWSTR pszValueName,
   3118         LPCWSTR pszFileNameSpecifier,
   3119         ULONG nFolder,
   3120         LPWSTR *ppszFilePath);
   3121 
   3122     HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
   3123         ISpObjectToken *This,
   3124         REFCLSID clsidCaller,
   3125         LPCWSTR pszKeyName,
   3126         WINBOOL fDeleteFile);
   3127 
   3128     HRESULT (STDMETHODCALLTYPE *Remove)(
   3129         ISpObjectToken *This,
   3130         const CLSID *pclsidCaller);
   3131 
   3132     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
   3133         ISpObjectToken *This,
   3134         LPCWSTR pszTypeOfUI,
   3135         void *pvExtraData,
   3136         ULONG cbExtraData,
   3137         IUnknown *punkObject,
   3138         WINBOOL *pfSupported);
   3139 
   3140     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
   3141         ISpObjectToken *This,
   3142         HWND hwndParent,
   3143         LPCWSTR pszTitle,
   3144         LPCWSTR pszTypeOfUI,
   3145         void *pvExtraData,
   3146         ULONG cbExtraData,
   3147         IUnknown *punkObject);
   3148 
   3149     HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
   3150         ISpObjectToken *This,
   3151         LPCWSTR pszAttributes,
   3152         WINBOOL *pfMatches);
   3153 
   3154     END_INTERFACE
   3155 } ISpObjectTokenVtbl;
   3156 
   3157 interface ISpObjectToken {
   3158     CONST_VTBL ISpObjectTokenVtbl* lpVtbl;
   3159 };
   3160 
   3161 #ifdef COBJMACROS
   3162 #ifndef WIDL_C_INLINE_WRAPPERS
   3163 /*** IUnknown methods ***/
   3164 #define ISpObjectToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3165 #define ISpObjectToken_AddRef(This) (This)->lpVtbl->AddRef(This)
   3166 #define ISpObjectToken_Release(This) (This)->lpVtbl->Release(This)
   3167 /*** ISpDataKey methods ***/
   3168 #define ISpObjectToken_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
   3169 #define ISpObjectToken_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
   3170 #define ISpObjectToken_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
   3171 #define ISpObjectToken_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
   3172 #define ISpObjectToken_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
   3173 #define ISpObjectToken_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
   3174 #define ISpObjectToken_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
   3175 #define ISpObjectToken_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
   3176 #define ISpObjectToken_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
   3177 #define ISpObjectToken_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
   3178 #define ISpObjectToken_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
   3179 #define ISpObjectToken_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
   3180 /*** ISpObjectToken methods ***/
   3181 #define ISpObjectToken_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
   3182 #define ISpObjectToken_GetId(This,ppszCoMemTokenId) (This)->lpVtbl->GetId(This,ppszCoMemTokenId)
   3183 #define ISpObjectToken_GetCategory(This,ppTokenCategory) (This)->lpVtbl->GetCategory(This,ppTokenCategory)
   3184 #define ISpObjectToken_CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
   3185 #define ISpObjectToken_GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath) (This)->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
   3186 #define ISpObjectToken_RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
   3187 #define ISpObjectToken_Remove(This,pclsidCaller) (This)->lpVtbl->Remove(This,pclsidCaller)
   3188 #define ISpObjectToken_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
   3189 #define ISpObjectToken_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
   3190 #define ISpObjectToken_MatchesAttributes(This,pszAttributes,pfMatches) (This)->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches)
   3191 #else
   3192 /*** IUnknown methods ***/
   3193 static inline HRESULT ISpObjectToken_QueryInterface(ISpObjectToken* This,REFIID riid,void **ppvObject) {
   3194     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3195 }
   3196 static inline ULONG ISpObjectToken_AddRef(ISpObjectToken* This) {
   3197     return This->lpVtbl->AddRef(This);
   3198 }
   3199 static inline ULONG ISpObjectToken_Release(ISpObjectToken* This) {
   3200     return This->lpVtbl->Release(This);
   3201 }
   3202 /*** ISpDataKey methods ***/
   3203 static inline HRESULT ISpObjectToken_SetData(ISpObjectToken* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
   3204     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
   3205 }
   3206 static inline HRESULT ISpObjectToken_GetData(ISpObjectToken* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
   3207     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
   3208 }
   3209 static inline HRESULT ISpObjectToken_SetStringValue(ISpObjectToken* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
   3210     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
   3211 }
   3212 static inline HRESULT ISpObjectToken_GetStringValue(ISpObjectToken* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
   3213     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
   3214 }
   3215 static inline HRESULT ISpObjectToken_SetDWORD(ISpObjectToken* This,LPCWSTR pszValueName,DWORD dwValue) {
   3216     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
   3217 }
   3218 static inline HRESULT ISpObjectToken_GetDWORD(ISpObjectToken* This,LPCWSTR pszValueName,DWORD *pdwValue) {
   3219     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
   3220 }
   3221 static inline HRESULT ISpObjectToken_OpenKey(ISpObjectToken* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
   3222     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
   3223 }
   3224 static inline HRESULT ISpObjectToken_CreateKey(ISpObjectToken* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
   3225     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
   3226 }
   3227 static inline HRESULT ISpObjectToken_DeleteKey(ISpObjectToken* This,LPCWSTR pszSubKey) {
   3228     return This->lpVtbl->DeleteKey(This,pszSubKey);
   3229 }
   3230 static inline HRESULT ISpObjectToken_DeleteValue(ISpObjectToken* This,LPCWSTR pszValueName) {
   3231     return This->lpVtbl->DeleteValue(This,pszValueName);
   3232 }
   3233 static inline HRESULT ISpObjectToken_EnumKeys(ISpObjectToken* This,ULONG Index,LPWSTR *ppszSubKeyName) {
   3234     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
   3235 }
   3236 static inline HRESULT ISpObjectToken_EnumValues(ISpObjectToken* This,ULONG Index,LPWSTR *ppszValueName) {
   3237     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
   3238 }
   3239 /*** ISpObjectToken methods ***/
   3240 static inline HRESULT ISpObjectToken_SetId(ISpObjectToken* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,WINBOOL fCreateIfNotExist) {
   3241     return This->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist);
   3242 }
   3243 static inline HRESULT ISpObjectToken_GetId(ISpObjectToken* This,LPWSTR *ppszCoMemTokenId) {
   3244     return This->lpVtbl->GetId(This,ppszCoMemTokenId);
   3245 }
   3246 static inline HRESULT ISpObjectToken_GetCategory(ISpObjectToken* This,ISpObjectTokenCategory **ppTokenCategory) {
   3247     return This->lpVtbl->GetCategory(This,ppTokenCategory);
   3248 }
   3249 static inline HRESULT ISpObjectToken_CreateInstance(ISpObjectToken* This,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,void **ppvObject) {
   3250     return This->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject);
   3251 }
   3252 static inline HRESULT ISpObjectToken_GetStorageFileName(ISpObjectToken* This,REFCLSID clsidCaller,LPCWSTR pszValueName,LPCWSTR pszFileNameSpecifier,ULONG nFolder,LPWSTR *ppszFilePath) {
   3253     return This->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath);
   3254 }
   3255 static inline HRESULT ISpObjectToken_RemoveStorageFileName(ISpObjectToken* This,REFCLSID clsidCaller,LPCWSTR pszKeyName,WINBOOL fDeleteFile) {
   3256     return This->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile);
   3257 }
   3258 static inline HRESULT ISpObjectToken_Remove(ISpObjectToken* This,const CLSID *pclsidCaller) {
   3259     return This->lpVtbl->Remove(This,pclsidCaller);
   3260 }
   3261 static inline HRESULT ISpObjectToken_IsUISupported(ISpObjectToken* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject,WINBOOL *pfSupported) {
   3262     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported);
   3263 }
   3264 static inline HRESULT ISpObjectToken_DisplayUI(ISpObjectToken* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject) {
   3265     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject);
   3266 }
   3267 static inline HRESULT ISpObjectToken_MatchesAttributes(ISpObjectToken* This,LPCWSTR pszAttributes,WINBOOL *pfMatches) {
   3268     return This->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches);
   3269 }
   3270 #endif
   3271 #endif
   3272 
   3273 #endif
   3274 
   3275 
   3276 #endif  /* __ISpObjectToken_INTERFACE_DEFINED__ */
   3277 
   3278 /*****************************************************************************
   3279  * ISpObjectTokenInit interface
   3280  */
   3281 #ifndef __ISpObjectTokenInit_INTERFACE_DEFINED__
   3282 #define __ISpObjectTokenInit_INTERFACE_DEFINED__
   3283 
   3284 DEFINE_GUID(IID_ISpObjectTokenInit, 0xb8aab0cf, 0x346f, 0x49d8, 0x94,0x99, 0xc8,0xb0,0x3f,0x16,0x1d,0x51);
   3285 #if defined(__cplusplus) && !defined(CINTERFACE)
   3286 MIDL_INTERFACE("b8aab0cf-346f-49d8-9499-c8b03f161d51")
   3287 ISpObjectTokenInit : public ISpObjectToken
   3288 {
   3289     virtual HRESULT STDMETHODCALLTYPE InitFromDataKey(
   3290         LPCWSTR pszCategoryId,
   3291         LPCWSTR pszTokenId,
   3292         ISpDataKey *pDataKey) = 0;
   3293 
   3294 };
   3295 #ifdef __CRT_UUID_DECL
   3296 __CRT_UUID_DECL(ISpObjectTokenInit, 0xb8aab0cf, 0x346f, 0x49d8, 0x94,0x99, 0xc8,0xb0,0x3f,0x16,0x1d,0x51)
   3297 #endif
   3298 #else
   3299 typedef struct ISpObjectTokenInitVtbl {
   3300     BEGIN_INTERFACE
   3301 
   3302     /*** IUnknown methods ***/
   3303     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3304         ISpObjectTokenInit *This,
   3305         REFIID riid,
   3306         void **ppvObject);
   3307 
   3308     ULONG (STDMETHODCALLTYPE *AddRef)(
   3309         ISpObjectTokenInit *This);
   3310 
   3311     ULONG (STDMETHODCALLTYPE *Release)(
   3312         ISpObjectTokenInit *This);
   3313 
   3314     /*** ISpDataKey methods ***/
   3315     HRESULT (STDMETHODCALLTYPE *SetData)(
   3316         ISpObjectTokenInit *This,
   3317         LPCWSTR pszValueName,
   3318         ULONG cbData,
   3319         const BYTE *pData);
   3320 
   3321     HRESULT (STDMETHODCALLTYPE *GetData)(
   3322         ISpObjectTokenInit *This,
   3323         LPCWSTR pszValueName,
   3324         ULONG *pcbData,
   3325         BYTE *pData);
   3326 
   3327     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
   3328         ISpObjectTokenInit *This,
   3329         LPCWSTR pszValueName,
   3330         LPCWSTR pszValue);
   3331 
   3332     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
   3333         ISpObjectTokenInit *This,
   3334         LPCWSTR pszValueName,
   3335         LPWSTR *ppszValue);
   3336 
   3337     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
   3338         ISpObjectTokenInit *This,
   3339         LPCWSTR pszValueName,
   3340         DWORD dwValue);
   3341 
   3342     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
   3343         ISpObjectTokenInit *This,
   3344         LPCWSTR pszValueName,
   3345         DWORD *pdwValue);
   3346 
   3347     HRESULT (STDMETHODCALLTYPE *OpenKey)(
   3348         ISpObjectTokenInit *This,
   3349         LPCWSTR pszSubKeyName,
   3350         ISpDataKey **ppSubKey);
   3351 
   3352     HRESULT (STDMETHODCALLTYPE *CreateKey)(
   3353         ISpObjectTokenInit *This,
   3354         LPCWSTR pszSubKey,
   3355         ISpDataKey **ppSubKey);
   3356 
   3357     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
   3358         ISpObjectTokenInit *This,
   3359         LPCWSTR pszSubKey);
   3360 
   3361     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
   3362         ISpObjectTokenInit *This,
   3363         LPCWSTR pszValueName);
   3364 
   3365     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
   3366         ISpObjectTokenInit *This,
   3367         ULONG Index,
   3368         LPWSTR *ppszSubKeyName);
   3369 
   3370     HRESULT (STDMETHODCALLTYPE *EnumValues)(
   3371         ISpObjectTokenInit *This,
   3372         ULONG Index,
   3373         LPWSTR *ppszValueName);
   3374 
   3375     /*** ISpObjectToken methods ***/
   3376     HRESULT (STDMETHODCALLTYPE *SetId)(
   3377         ISpObjectTokenInit *This,
   3378         LPCWSTR pszCategoryId,
   3379         LPCWSTR pszTokenId,
   3380         WINBOOL fCreateIfNotExist);
   3381 
   3382     HRESULT (STDMETHODCALLTYPE *GetId)(
   3383         ISpObjectTokenInit *This,
   3384         LPWSTR *ppszCoMemTokenId);
   3385 
   3386     HRESULT (STDMETHODCALLTYPE *GetCategory)(
   3387         ISpObjectTokenInit *This,
   3388         ISpObjectTokenCategory **ppTokenCategory);
   3389 
   3390     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
   3391         ISpObjectTokenInit *This,
   3392         IUnknown *pUnkOuter,
   3393         DWORD dwClsContext,
   3394         REFIID riid,
   3395         void **ppvObject);
   3396 
   3397     HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
   3398         ISpObjectTokenInit *This,
   3399         REFCLSID clsidCaller,
   3400         LPCWSTR pszValueName,
   3401         LPCWSTR pszFileNameSpecifier,
   3402         ULONG nFolder,
   3403         LPWSTR *ppszFilePath);
   3404 
   3405     HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
   3406         ISpObjectTokenInit *This,
   3407         REFCLSID clsidCaller,
   3408         LPCWSTR pszKeyName,
   3409         WINBOOL fDeleteFile);
   3410 
   3411     HRESULT (STDMETHODCALLTYPE *Remove)(
   3412         ISpObjectTokenInit *This,
   3413         const CLSID *pclsidCaller);
   3414 
   3415     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
   3416         ISpObjectTokenInit *This,
   3417         LPCWSTR pszTypeOfUI,
   3418         void *pvExtraData,
   3419         ULONG cbExtraData,
   3420         IUnknown *punkObject,
   3421         WINBOOL *pfSupported);
   3422 
   3423     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
   3424         ISpObjectTokenInit *This,
   3425         HWND hwndParent,
   3426         LPCWSTR pszTitle,
   3427         LPCWSTR pszTypeOfUI,
   3428         void *pvExtraData,
   3429         ULONG cbExtraData,
   3430         IUnknown *punkObject);
   3431 
   3432     HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
   3433         ISpObjectTokenInit *This,
   3434         LPCWSTR pszAttributes,
   3435         WINBOOL *pfMatches);
   3436 
   3437     /*** ISpObjectTokenInit methods ***/
   3438     HRESULT (STDMETHODCALLTYPE *InitFromDataKey)(
   3439         ISpObjectTokenInit *This,
   3440         LPCWSTR pszCategoryId,
   3441         LPCWSTR pszTokenId,
   3442         ISpDataKey *pDataKey);
   3443 
   3444     END_INTERFACE
   3445 } ISpObjectTokenInitVtbl;
   3446 
   3447 interface ISpObjectTokenInit {
   3448     CONST_VTBL ISpObjectTokenInitVtbl* lpVtbl;
   3449 };
   3450 
   3451 #ifdef COBJMACROS
   3452 #ifndef WIDL_C_INLINE_WRAPPERS
   3453 /*** IUnknown methods ***/
   3454 #define ISpObjectTokenInit_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3455 #define ISpObjectTokenInit_AddRef(This) (This)->lpVtbl->AddRef(This)
   3456 #define ISpObjectTokenInit_Release(This) (This)->lpVtbl->Release(This)
   3457 /*** ISpDataKey methods ***/
   3458 #define ISpObjectTokenInit_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
   3459 #define ISpObjectTokenInit_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
   3460 #define ISpObjectTokenInit_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
   3461 #define ISpObjectTokenInit_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
   3462 #define ISpObjectTokenInit_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
   3463 #define ISpObjectTokenInit_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
   3464 #define ISpObjectTokenInit_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
   3465 #define ISpObjectTokenInit_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
   3466 #define ISpObjectTokenInit_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
   3467 #define ISpObjectTokenInit_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
   3468 #define ISpObjectTokenInit_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
   3469 #define ISpObjectTokenInit_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
   3470 /*** ISpObjectToken methods ***/
   3471 #define ISpObjectTokenInit_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
   3472 #define ISpObjectTokenInit_GetId(This,ppszCoMemTokenId) (This)->lpVtbl->GetId(This,ppszCoMemTokenId)
   3473 #define ISpObjectTokenInit_GetCategory(This,ppTokenCategory) (This)->lpVtbl->GetCategory(This,ppTokenCategory)
   3474 #define ISpObjectTokenInit_CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
   3475 #define ISpObjectTokenInit_GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath) (This)->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
   3476 #define ISpObjectTokenInit_RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
   3477 #define ISpObjectTokenInit_Remove(This,pclsidCaller) (This)->lpVtbl->Remove(This,pclsidCaller)
   3478 #define ISpObjectTokenInit_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
   3479 #define ISpObjectTokenInit_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
   3480 #define ISpObjectTokenInit_MatchesAttributes(This,pszAttributes,pfMatches) (This)->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches)
   3481 /*** ISpObjectTokenInit methods ***/
   3482 #define ISpObjectTokenInit_InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey) (This)->lpVtbl->InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey)
   3483 #else
   3484 /*** IUnknown methods ***/
   3485 static inline HRESULT ISpObjectTokenInit_QueryInterface(ISpObjectTokenInit* This,REFIID riid,void **ppvObject) {
   3486     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3487 }
   3488 static inline ULONG ISpObjectTokenInit_AddRef(ISpObjectTokenInit* This) {
   3489     return This->lpVtbl->AddRef(This);
   3490 }
   3491 static inline ULONG ISpObjectTokenInit_Release(ISpObjectTokenInit* This) {
   3492     return This->lpVtbl->Release(This);
   3493 }
   3494 /*** ISpDataKey methods ***/
   3495 static inline HRESULT ISpObjectTokenInit_SetData(ISpObjectTokenInit* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
   3496     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
   3497 }
   3498 static inline HRESULT ISpObjectTokenInit_GetData(ISpObjectTokenInit* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
   3499     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
   3500 }
   3501 static inline HRESULT ISpObjectTokenInit_SetStringValue(ISpObjectTokenInit* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
   3502     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
   3503 }
   3504 static inline HRESULT ISpObjectTokenInit_GetStringValue(ISpObjectTokenInit* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
   3505     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
   3506 }
   3507 static inline HRESULT ISpObjectTokenInit_SetDWORD(ISpObjectTokenInit* This,LPCWSTR pszValueName,DWORD dwValue) {
   3508     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
   3509 }
   3510 static inline HRESULT ISpObjectTokenInit_GetDWORD(ISpObjectTokenInit* This,LPCWSTR pszValueName,DWORD *pdwValue) {
   3511     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
   3512 }
   3513 static inline HRESULT ISpObjectTokenInit_OpenKey(ISpObjectTokenInit* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
   3514     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
   3515 }
   3516 static inline HRESULT ISpObjectTokenInit_CreateKey(ISpObjectTokenInit* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
   3517     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
   3518 }
   3519 static inline HRESULT ISpObjectTokenInit_DeleteKey(ISpObjectTokenInit* This,LPCWSTR pszSubKey) {
   3520     return This->lpVtbl->DeleteKey(This,pszSubKey);
   3521 }
   3522 static inline HRESULT ISpObjectTokenInit_DeleteValue(ISpObjectTokenInit* This,LPCWSTR pszValueName) {
   3523     return This->lpVtbl->DeleteValue(This,pszValueName);
   3524 }
   3525 static inline HRESULT ISpObjectTokenInit_EnumKeys(ISpObjectTokenInit* This,ULONG Index,LPWSTR *ppszSubKeyName) {
   3526     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
   3527 }
   3528 static inline HRESULT ISpObjectTokenInit_EnumValues(ISpObjectTokenInit* This,ULONG Index,LPWSTR *ppszValueName) {
   3529     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
   3530 }
   3531 /*** ISpObjectToken methods ***/
   3532 static inline HRESULT ISpObjectTokenInit_SetId(ISpObjectTokenInit* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,WINBOOL fCreateIfNotExist) {
   3533     return This->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist);
   3534 }
   3535 static inline HRESULT ISpObjectTokenInit_GetId(ISpObjectTokenInit* This,LPWSTR *ppszCoMemTokenId) {
   3536     return This->lpVtbl->GetId(This,ppszCoMemTokenId);
   3537 }
   3538 static inline HRESULT ISpObjectTokenInit_GetCategory(ISpObjectTokenInit* This,ISpObjectTokenCategory **ppTokenCategory) {
   3539     return This->lpVtbl->GetCategory(This,ppTokenCategory);
   3540 }
   3541 static inline HRESULT ISpObjectTokenInit_CreateInstance(ISpObjectTokenInit* This,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,void **ppvObject) {
   3542     return This->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject);
   3543 }
   3544 static inline HRESULT ISpObjectTokenInit_GetStorageFileName(ISpObjectTokenInit* This,REFCLSID clsidCaller,LPCWSTR pszValueName,LPCWSTR pszFileNameSpecifier,ULONG nFolder,LPWSTR *ppszFilePath) {
   3545     return This->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath);
   3546 }
   3547 static inline HRESULT ISpObjectTokenInit_RemoveStorageFileName(ISpObjectTokenInit* This,REFCLSID clsidCaller,LPCWSTR pszKeyName,WINBOOL fDeleteFile) {
   3548     return This->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile);
   3549 }
   3550 static inline HRESULT ISpObjectTokenInit_Remove(ISpObjectTokenInit* This,const CLSID *pclsidCaller) {
   3551     return This->lpVtbl->Remove(This,pclsidCaller);
   3552 }
   3553 static inline HRESULT ISpObjectTokenInit_IsUISupported(ISpObjectTokenInit* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject,WINBOOL *pfSupported) {
   3554     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported);
   3555 }
   3556 static inline HRESULT ISpObjectTokenInit_DisplayUI(ISpObjectTokenInit* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject) {
   3557     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject);
   3558 }
   3559 static inline HRESULT ISpObjectTokenInit_MatchesAttributes(ISpObjectTokenInit* This,LPCWSTR pszAttributes,WINBOOL *pfMatches) {
   3560     return This->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches);
   3561 }
   3562 /*** ISpObjectTokenInit methods ***/
   3563 static inline HRESULT ISpObjectTokenInit_InitFromDataKey(ISpObjectTokenInit* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,ISpDataKey *pDataKey) {
   3564     return This->lpVtbl->InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey);
   3565 }
   3566 #endif
   3567 #endif
   3568 
   3569 #endif
   3570 
   3571 
   3572 #endif  /* __ISpObjectTokenInit_INTERFACE_DEFINED__ */
   3573 
   3574 /*****************************************************************************
   3575  * ISpResourceManager interface
   3576  */
   3577 #ifndef __ISpResourceManager_INTERFACE_DEFINED__
   3578 #define __ISpResourceManager_INTERFACE_DEFINED__
   3579 
   3580 DEFINE_GUID(IID_ISpResourceManager, 0x93384e18, 0x5014, 0x43d5, 0xad,0xbb, 0xa7,0x8e,0x05,0x59,0x26,0xbd);
   3581 #if defined(__cplusplus) && !defined(CINTERFACE)
   3582 MIDL_INTERFACE("93384e18-5014-43d5-adbb-a78e055926bd")
   3583 ISpResourceManager : public IServiceProvider
   3584 {
   3585     virtual HRESULT STDMETHODCALLTYPE SetObject(
   3586         REFGUID guidServiceId,
   3587         IUnknown *pUnkObject) = 0;
   3588 
   3589     virtual HRESULT STDMETHODCALLTYPE GetObject(
   3590         REFGUID guidServiceId,
   3591         REFCLSID ObjectCLSID,
   3592         REFIID ObjectIID,
   3593         WINBOOL fReleaseWhenLastExternalRefReleased,
   3594         void **ppObject) = 0;
   3595 
   3596 };
   3597 #ifdef __CRT_UUID_DECL
   3598 __CRT_UUID_DECL(ISpResourceManager, 0x93384e18, 0x5014, 0x43d5, 0xad,0xbb, 0xa7,0x8e,0x05,0x59,0x26,0xbd)
   3599 #endif
   3600 #else
   3601 typedef struct ISpResourceManagerVtbl {
   3602     BEGIN_INTERFACE
   3603 
   3604     /*** IUnknown methods ***/
   3605     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3606         ISpResourceManager *This,
   3607         REFIID riid,
   3608         void **ppvObject);
   3609 
   3610     ULONG (STDMETHODCALLTYPE *AddRef)(
   3611         ISpResourceManager *This);
   3612 
   3613     ULONG (STDMETHODCALLTYPE *Release)(
   3614         ISpResourceManager *This);
   3615 
   3616     /*** IServiceProvider methods ***/
   3617     HRESULT (STDMETHODCALLTYPE *QueryService)(
   3618         ISpResourceManager *This,
   3619         REFGUID guidService,
   3620         REFIID riid,
   3621         void **ppvObject);
   3622 
   3623     /*** ISpResourceManager methods ***/
   3624     HRESULT (STDMETHODCALLTYPE *SetObject)(
   3625         ISpResourceManager *This,
   3626         REFGUID guidServiceId,
   3627         IUnknown *pUnkObject);
   3628 
   3629     HRESULT (STDMETHODCALLTYPE *GetObject)(
   3630         ISpResourceManager *This,
   3631         REFGUID guidServiceId,
   3632         REFCLSID ObjectCLSID,
   3633         REFIID ObjectIID,
   3634         WINBOOL fReleaseWhenLastExternalRefReleased,
   3635         void **ppObject);
   3636 
   3637     END_INTERFACE
   3638 } ISpResourceManagerVtbl;
   3639 
   3640 interface ISpResourceManager {
   3641     CONST_VTBL ISpResourceManagerVtbl* lpVtbl;
   3642 };
   3643 
   3644 #ifdef COBJMACROS
   3645 #ifndef WIDL_C_INLINE_WRAPPERS
   3646 /*** IUnknown methods ***/
   3647 #define ISpResourceManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3648 #define ISpResourceManager_AddRef(This) (This)->lpVtbl->AddRef(This)
   3649 #define ISpResourceManager_Release(This) (This)->lpVtbl->Release(This)
   3650 /*** IServiceProvider methods ***/
   3651 #define ISpResourceManager_QueryService(This,guidService,riid,ppvObject) (This)->lpVtbl->QueryService(This,guidService,riid,ppvObject)
   3652 /*** ISpResourceManager methods ***/
   3653 #define ISpResourceManager_SetObject(This,guidServiceId,pUnkObject) (This)->lpVtbl->SetObject(This,guidServiceId,pUnkObject)
   3654 #define ISpResourceManager_GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject) (This)->lpVtbl->GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject)
   3655 #else
   3656 /*** IUnknown methods ***/
   3657 static inline HRESULT ISpResourceManager_QueryInterface(ISpResourceManager* This,REFIID riid,void **ppvObject) {
   3658     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3659 }
   3660 static inline ULONG ISpResourceManager_AddRef(ISpResourceManager* This) {
   3661     return This->lpVtbl->AddRef(This);
   3662 }
   3663 static inline ULONG ISpResourceManager_Release(ISpResourceManager* This) {
   3664     return This->lpVtbl->Release(This);
   3665 }
   3666 /*** IServiceProvider methods ***/
   3667 static inline HRESULT ISpResourceManager_QueryService(ISpResourceManager* This,REFGUID guidService,REFIID riid,void **ppvObject) {
   3668     return This->lpVtbl->QueryService(This,guidService,riid,ppvObject);
   3669 }
   3670 /*** ISpResourceManager methods ***/
   3671 static inline HRESULT ISpResourceManager_SetObject(ISpResourceManager* This,REFGUID guidServiceId,IUnknown *pUnkObject) {
   3672     return This->lpVtbl->SetObject(This,guidServiceId,pUnkObject);
   3673 }
   3674 static inline HRESULT ISpResourceManager_GetObject(ISpResourceManager* This,REFGUID guidServiceId,REFCLSID ObjectCLSID,REFIID ObjectIID,WINBOOL fReleaseWhenLastExternalRefReleased,void **ppObject) {
   3675     return This->lpVtbl->GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject);
   3676 }
   3677 #endif
   3678 #endif
   3679 
   3680 #endif
   3681 
   3682 
   3683 #endif  /* __ISpResourceManager_INTERFACE_DEFINED__ */
   3684 
   3685 #if 0
   3686 typedef struct SPEVENT {
   3687     WORD eEventId;
   3688     WORD elParamType;
   3689     ULONG ulStreamNum;
   3690     ULONGLONG ullAudioStreamOffset;
   3691     WPARAM wParam;
   3692     LPARAM lParam;
   3693 } SPEVENT;
   3694 typedef struct SPSERIALIZEDEVENT {
   3695     WORD eEventId;
   3696     WORD elParamType;
   3697     ULONG ulStreamNum;
   3698     ULONGLONG ullAudioStreamOffset;
   3699     ULONG SerializedwParam;
   3700     LONG SerializedlParam;
   3701 } SPSERIALIZEDEVENT;
   3702 typedef struct SPSERIALIZEDEVENT64 {
   3703     WORD eEventId;
   3704     WORD elParamType;
   3705     ULONG ulStreamNum;
   3706     ULONGLONG ullAudioStreamOffset;
   3707     ULONGLONG SerializedwParam;
   3708     LONGLONG SerializedlParam;
   3709 } SPSERIALIZEDEVENT64;
   3710 #else
   3711 typedef struct SPEVENT {
   3712   SPEVENTENUM eEventId : 16;
   3713   SPEVENTLPARAMTYPE elParamType : 16;
   3714   ULONG ulStreamNum;
   3715   ULONGLONG ullAudioStreamOffset;
   3716   WPARAM      wParam;
   3717   LPARAM      lParam;
   3718 } SPEVENT;
   3719 
   3720 typedef struct SPSERIALIZEDEVENT {
   3721   SPEVENTENUM eEventId : 16;
   3722   SPEVENTLPARAMTYPE elParamType : 16;
   3723   ULONG ulStreamNum;
   3724   ULONGLONG ullAudioStreamOffset;
   3725   ULONG SerializedwParam;
   3726   LONG SerializedlParam;
   3727 } SPSERIALIZEDEVENT;
   3728 
   3729 typedef struct SPSERIALIZEDEVENT64 {
   3730   SPEVENTENUM eEventId : 16;
   3731   SPEVENTLPARAMTYPE elParamType : 16;
   3732   ULONG ulStreamNum;
   3733   ULONGLONG ullAudioStreamOffset;
   3734   ULONGLONG SerializedwParam;
   3735   LONGLONG SerializedlParam;
   3736 } SPSERIALIZEDEVENT64;
   3737 #endif
   3738 #if 0
   3739 typedef struct SPEVENTEX {
   3740     WORD eEventId;
   3741     WORD elParamType;
   3742     ULONG ulStreamNum;
   3743     ULONGLONG ullAudioStreamOffset;
   3744     WPARAM wParam;
   3745     LPARAM lParam;
   3746     ULONGLONG ullAudioTimeOffset;
   3747 } SPEVENTEX;
   3748 #else
   3749 typedef struct SPEVENTEX {
   3750   SPEVENTENUM eEventId : 16;
   3751   SPEVENTLPARAMTYPE elParamType : 16;
   3752   ULONG ulStreamNum;
   3753   ULONGLONG ullAudioStreamOffset;
   3754   WPARAM wParam;
   3755   LPARAM lParam;
   3756   ULONGLONG ullAudioTimeOffset;
   3757 } SPEVENTEX;
   3758 #endif
   3759 typedef struct SPEVENTSOURCEINFO {
   3760     ULONGLONG ullEventInterest;
   3761     ULONGLONG ullQueuedInterest;
   3762     ULONG ulCount;
   3763 } SPEVENTSOURCEINFO;
   3764 /*****************************************************************************
   3765  * ISpEventSource interface
   3766  */
   3767 #ifndef __ISpEventSource_INTERFACE_DEFINED__
   3768 #define __ISpEventSource_INTERFACE_DEFINED__
   3769 
   3770 DEFINE_GUID(IID_ISpEventSource, 0xbe7a9cce, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
   3771 #if defined(__cplusplus) && !defined(CINTERFACE)
   3772 MIDL_INTERFACE("be7a9cce-5f9e-11d2-960f-00c04f8ee628")
   3773 ISpEventSource : public ISpNotifySource
   3774 {
   3775     virtual HRESULT STDMETHODCALLTYPE SetInterest(
   3776         ULONGLONG ullEventInterest,
   3777         ULONGLONG ullQueuedInterest) = 0;
   3778 
   3779     virtual HRESULT STDMETHODCALLTYPE GetEvents(
   3780         ULONG ulCount,
   3781         SPEVENT *pEventArray,
   3782         ULONG *pulFetched) = 0;
   3783 
   3784     virtual HRESULT STDMETHODCALLTYPE GetInfo(
   3785         SPEVENTSOURCEINFO *pInfo) = 0;
   3786 
   3787 };
   3788 #ifdef __CRT_UUID_DECL
   3789 __CRT_UUID_DECL(ISpEventSource, 0xbe7a9cce, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
   3790 #endif
   3791 #else
   3792 typedef struct ISpEventSourceVtbl {
   3793     BEGIN_INTERFACE
   3794 
   3795     /*** IUnknown methods ***/
   3796     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3797         ISpEventSource *This,
   3798         REFIID riid,
   3799         void **ppvObject);
   3800 
   3801     ULONG (STDMETHODCALLTYPE *AddRef)(
   3802         ISpEventSource *This);
   3803 
   3804     ULONG (STDMETHODCALLTYPE *Release)(
   3805         ISpEventSource *This);
   3806 
   3807     /*** ISpNotifySource methods ***/
   3808     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
   3809         ISpEventSource *This,
   3810         ISpNotifySink *pNotifySink);
   3811 
   3812     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
   3813         ISpEventSource *This,
   3814         HWND hWnd,
   3815         UINT Msg,
   3816         WPARAM wParam,
   3817         LPARAM lParam);
   3818 
   3819     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
   3820         ISpEventSource *This,
   3821         SPNOTIFYCALLBACK *pfnCallback,
   3822         WPARAM wParam,
   3823         LPARAM lParam);
   3824 
   3825     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
   3826         ISpEventSource *This,
   3827         ISpNotifyCallback *pSpCallback,
   3828         WPARAM wParam,
   3829         LPARAM lParam);
   3830 
   3831     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
   3832         ISpEventSource *This);
   3833 
   3834     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
   3835         ISpEventSource *This,
   3836         DWORD dwMilliseconds);
   3837 
   3838     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
   3839         ISpEventSource *This);
   3840 
   3841     /*** ISpEventSource methods ***/
   3842     HRESULT (STDMETHODCALLTYPE *SetInterest)(
   3843         ISpEventSource *This,
   3844         ULONGLONG ullEventInterest,
   3845         ULONGLONG ullQueuedInterest);
   3846 
   3847     HRESULT (STDMETHODCALLTYPE *GetEvents)(
   3848         ISpEventSource *This,
   3849         ULONG ulCount,
   3850         SPEVENT *pEventArray,
   3851         ULONG *pulFetched);
   3852 
   3853     HRESULT (STDMETHODCALLTYPE *GetInfo)(
   3854         ISpEventSource *This,
   3855         SPEVENTSOURCEINFO *pInfo);
   3856 
   3857     END_INTERFACE
   3858 } ISpEventSourceVtbl;
   3859 
   3860 interface ISpEventSource {
   3861     CONST_VTBL ISpEventSourceVtbl* lpVtbl;
   3862 };
   3863 
   3864 #ifdef COBJMACROS
   3865 #ifndef WIDL_C_INLINE_WRAPPERS
   3866 /*** IUnknown methods ***/
   3867 #define ISpEventSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3868 #define ISpEventSource_AddRef(This) (This)->lpVtbl->AddRef(This)
   3869 #define ISpEventSource_Release(This) (This)->lpVtbl->Release(This)
   3870 /*** ISpNotifySource methods ***/
   3871 #define ISpEventSource_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
   3872 #define ISpEventSource_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
   3873 #define ISpEventSource_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
   3874 #define ISpEventSource_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
   3875 #define ISpEventSource_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
   3876 #define ISpEventSource_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
   3877 #define ISpEventSource_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
   3878 /*** ISpEventSource methods ***/
   3879 #define ISpEventSource_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
   3880 #define ISpEventSource_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
   3881 #define ISpEventSource_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
   3882 #else
   3883 /*** IUnknown methods ***/
   3884 static inline HRESULT ISpEventSource_QueryInterface(ISpEventSource* This,REFIID riid,void **ppvObject) {
   3885     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3886 }
   3887 static inline ULONG ISpEventSource_AddRef(ISpEventSource* This) {
   3888     return This->lpVtbl->AddRef(This);
   3889 }
   3890 static inline ULONG ISpEventSource_Release(ISpEventSource* This) {
   3891     return This->lpVtbl->Release(This);
   3892 }
   3893 /*** ISpNotifySource methods ***/
   3894 static inline HRESULT ISpEventSource_SetNotifySink(ISpEventSource* This,ISpNotifySink *pNotifySink) {
   3895     return This->lpVtbl->SetNotifySink(This,pNotifySink);
   3896 }
   3897 static inline HRESULT ISpEventSource_SetNotifyWindowMessage(ISpEventSource* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
   3898     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
   3899 }
   3900 static inline HRESULT ISpEventSource_SetNotifyCallbackFunction(ISpEventSource* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
   3901     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
   3902 }
   3903 static inline HRESULT ISpEventSource_SetNotifyCallbackInterface(ISpEventSource* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
   3904     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
   3905 }
   3906 static inline HRESULT ISpEventSource_SetNotifyWin32Event(ISpEventSource* This) {
   3907     return This->lpVtbl->SetNotifyWin32Event(This);
   3908 }
   3909 static inline HRESULT ISpEventSource_WaitForNotifyEvent(ISpEventSource* This,DWORD dwMilliseconds) {
   3910     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
   3911 }
   3912 static inline HANDLE ISpEventSource_GetNotifyEventHandle(ISpEventSource* This) {
   3913     return This->lpVtbl->GetNotifyEventHandle(This);
   3914 }
   3915 /*** ISpEventSource methods ***/
   3916 static inline HRESULT ISpEventSource_SetInterest(ISpEventSource* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
   3917     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
   3918 }
   3919 static inline HRESULT ISpEventSource_GetEvents(ISpEventSource* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
   3920     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
   3921 }
   3922 static inline HRESULT ISpEventSource_GetInfo(ISpEventSource* This,SPEVENTSOURCEINFO *pInfo) {
   3923     return This->lpVtbl->GetInfo(This,pInfo);
   3924 }
   3925 #endif
   3926 #endif
   3927 
   3928 #endif
   3929 
   3930 
   3931 #endif  /* __ISpEventSource_INTERFACE_DEFINED__ */
   3932 
   3933 /*****************************************************************************
   3934  * ISpEventSource2 interface
   3935  */
   3936 #ifndef __ISpEventSource2_INTERFACE_DEFINED__
   3937 #define __ISpEventSource2_INTERFACE_DEFINED__
   3938 
   3939 DEFINE_GUID(IID_ISpEventSource2, 0x2373a435, 0x6a4b, 0x429e, 0xa6,0xac, 0xd4,0x23,0x1a,0x61,0x97,0x5b);
   3940 #if defined(__cplusplus) && !defined(CINTERFACE)
   3941 MIDL_INTERFACE("2373a435-6a4b-429e-a6ac-d4231a61975b")
   3942 ISpEventSource2 : public ISpEventSource
   3943 {
   3944     virtual HRESULT STDMETHODCALLTYPE GetEventsEx(
   3945         ULONG ulCount,
   3946         SPEVENTEX *pEventArray,
   3947         ULONG *pulFetched) = 0;
   3948 
   3949 };
   3950 #ifdef __CRT_UUID_DECL
   3951 __CRT_UUID_DECL(ISpEventSource2, 0x2373a435, 0x6a4b, 0x429e, 0xa6,0xac, 0xd4,0x23,0x1a,0x61,0x97,0x5b)
   3952 #endif
   3953 #else
   3954 typedef struct ISpEventSource2Vtbl {
   3955     BEGIN_INTERFACE
   3956 
   3957     /*** IUnknown methods ***/
   3958     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3959         ISpEventSource2 *This,
   3960         REFIID riid,
   3961         void **ppvObject);
   3962 
   3963     ULONG (STDMETHODCALLTYPE *AddRef)(
   3964         ISpEventSource2 *This);
   3965 
   3966     ULONG (STDMETHODCALLTYPE *Release)(
   3967         ISpEventSource2 *This);
   3968 
   3969     /*** ISpNotifySource methods ***/
   3970     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
   3971         ISpEventSource2 *This,
   3972         ISpNotifySink *pNotifySink);
   3973 
   3974     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
   3975         ISpEventSource2 *This,
   3976         HWND hWnd,
   3977         UINT Msg,
   3978         WPARAM wParam,
   3979         LPARAM lParam);
   3980 
   3981     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
   3982         ISpEventSource2 *This,
   3983         SPNOTIFYCALLBACK *pfnCallback,
   3984         WPARAM wParam,
   3985         LPARAM lParam);
   3986 
   3987     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
   3988         ISpEventSource2 *This,
   3989         ISpNotifyCallback *pSpCallback,
   3990         WPARAM wParam,
   3991         LPARAM lParam);
   3992 
   3993     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
   3994         ISpEventSource2 *This);
   3995 
   3996     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
   3997         ISpEventSource2 *This,
   3998         DWORD dwMilliseconds);
   3999 
   4000     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
   4001         ISpEventSource2 *This);
   4002 
   4003     /*** ISpEventSource methods ***/
   4004     HRESULT (STDMETHODCALLTYPE *SetInterest)(
   4005         ISpEventSource2 *This,
   4006         ULONGLONG ullEventInterest,
   4007         ULONGLONG ullQueuedInterest);
   4008 
   4009     HRESULT (STDMETHODCALLTYPE *GetEvents)(
   4010         ISpEventSource2 *This,
   4011         ULONG ulCount,
   4012         SPEVENT *pEventArray,
   4013         ULONG *pulFetched);
   4014 
   4015     HRESULT (STDMETHODCALLTYPE *GetInfo)(
   4016         ISpEventSource2 *This,
   4017         SPEVENTSOURCEINFO *pInfo);
   4018 
   4019     /*** ISpEventSource2 methods ***/
   4020     HRESULT (STDMETHODCALLTYPE *GetEventsEx)(
   4021         ISpEventSource2 *This,
   4022         ULONG ulCount,
   4023         SPEVENTEX *pEventArray,
   4024         ULONG *pulFetched);
   4025 
   4026     END_INTERFACE
   4027 } ISpEventSource2Vtbl;
   4028 
   4029 interface ISpEventSource2 {
   4030     CONST_VTBL ISpEventSource2Vtbl* lpVtbl;
   4031 };
   4032 
   4033 #ifdef COBJMACROS
   4034 #ifndef WIDL_C_INLINE_WRAPPERS
   4035 /*** IUnknown methods ***/
   4036 #define ISpEventSource2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4037 #define ISpEventSource2_AddRef(This) (This)->lpVtbl->AddRef(This)
   4038 #define ISpEventSource2_Release(This) (This)->lpVtbl->Release(This)
   4039 /*** ISpNotifySource methods ***/
   4040 #define ISpEventSource2_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
   4041 #define ISpEventSource2_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
   4042 #define ISpEventSource2_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
   4043 #define ISpEventSource2_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
   4044 #define ISpEventSource2_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
   4045 #define ISpEventSource2_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
   4046 #define ISpEventSource2_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
   4047 /*** ISpEventSource methods ***/
   4048 #define ISpEventSource2_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
   4049 #define ISpEventSource2_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
   4050 #define ISpEventSource2_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
   4051 /*** ISpEventSource2 methods ***/
   4052 #define ISpEventSource2_GetEventsEx(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEventsEx(This,ulCount,pEventArray,pulFetched)
   4053 #else
   4054 /*** IUnknown methods ***/
   4055 static inline HRESULT ISpEventSource2_QueryInterface(ISpEventSource2* This,REFIID riid,void **ppvObject) {
   4056     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4057 }
   4058 static inline ULONG ISpEventSource2_AddRef(ISpEventSource2* This) {
   4059     return This->lpVtbl->AddRef(This);
   4060 }
   4061 static inline ULONG ISpEventSource2_Release(ISpEventSource2* This) {
   4062     return This->lpVtbl->Release(This);
   4063 }
   4064 /*** ISpNotifySource methods ***/
   4065 static inline HRESULT ISpEventSource2_SetNotifySink(ISpEventSource2* This,ISpNotifySink *pNotifySink) {
   4066     return This->lpVtbl->SetNotifySink(This,pNotifySink);
   4067 }
   4068 static inline HRESULT ISpEventSource2_SetNotifyWindowMessage(ISpEventSource2* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
   4069     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
   4070 }
   4071 static inline HRESULT ISpEventSource2_SetNotifyCallbackFunction(ISpEventSource2* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
   4072     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
   4073 }
   4074 static inline HRESULT ISpEventSource2_SetNotifyCallbackInterface(ISpEventSource2* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
   4075     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
   4076 }
   4077 static inline HRESULT ISpEventSource2_SetNotifyWin32Event(ISpEventSource2* This) {
   4078     return This->lpVtbl->SetNotifyWin32Event(This);
   4079 }
   4080 static inline HRESULT ISpEventSource2_WaitForNotifyEvent(ISpEventSource2* This,DWORD dwMilliseconds) {
   4081     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
   4082 }
   4083 static inline HANDLE ISpEventSource2_GetNotifyEventHandle(ISpEventSource2* This) {
   4084     return This->lpVtbl->GetNotifyEventHandle(This);
   4085 }
   4086 /*** ISpEventSource methods ***/
   4087 static inline HRESULT ISpEventSource2_SetInterest(ISpEventSource2* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
   4088     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
   4089 }
   4090 static inline HRESULT ISpEventSource2_GetEvents(ISpEventSource2* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
   4091     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
   4092 }
   4093 static inline HRESULT ISpEventSource2_GetInfo(ISpEventSource2* This,SPEVENTSOURCEINFO *pInfo) {
   4094     return This->lpVtbl->GetInfo(This,pInfo);
   4095 }
   4096 /*** ISpEventSource2 methods ***/
   4097 static inline HRESULT ISpEventSource2_GetEventsEx(ISpEventSource2* This,ULONG ulCount,SPEVENTEX *pEventArray,ULONG *pulFetched) {
   4098     return This->lpVtbl->GetEventsEx(This,ulCount,pEventArray,pulFetched);
   4099 }
   4100 #endif
   4101 #endif
   4102 
   4103 #endif
   4104 
   4105 
   4106 #endif  /* __ISpEventSource2_INTERFACE_DEFINED__ */
   4107 
   4108 /*****************************************************************************
   4109  * ISpEventSink interface
   4110  */
   4111 #ifndef __ISpEventSink_INTERFACE_DEFINED__
   4112 #define __ISpEventSink_INTERFACE_DEFINED__
   4113 
   4114 DEFINE_GUID(IID_ISpEventSink, 0xbe7a9cc9, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
   4115 #if defined(__cplusplus) && !defined(CINTERFACE)
   4116 MIDL_INTERFACE("be7a9cc9-5f9e-11d2-960f-00c04f8ee628")
   4117 ISpEventSink : public IUnknown
   4118 {
   4119     virtual HRESULT STDMETHODCALLTYPE AddEvents(
   4120         const SPEVENT *pEventArray,
   4121         ULONG ulCount) = 0;
   4122 
   4123     virtual HRESULT STDMETHODCALLTYPE GetEventInterest(
   4124         ULONGLONG *pullEventInterest) = 0;
   4125 
   4126 };
   4127 #ifdef __CRT_UUID_DECL
   4128 __CRT_UUID_DECL(ISpEventSink, 0xbe7a9cc9, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
   4129 #endif
   4130 #else
   4131 typedef struct ISpEventSinkVtbl {
   4132     BEGIN_INTERFACE
   4133 
   4134     /*** IUnknown methods ***/
   4135     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4136         ISpEventSink *This,
   4137         REFIID riid,
   4138         void **ppvObject);
   4139 
   4140     ULONG (STDMETHODCALLTYPE *AddRef)(
   4141         ISpEventSink *This);
   4142 
   4143     ULONG (STDMETHODCALLTYPE *Release)(
   4144         ISpEventSink *This);
   4145 
   4146     /*** ISpEventSink methods ***/
   4147     HRESULT (STDMETHODCALLTYPE *AddEvents)(
   4148         ISpEventSink *This,
   4149         const SPEVENT *pEventArray,
   4150         ULONG ulCount);
   4151 
   4152     HRESULT (STDMETHODCALLTYPE *GetEventInterest)(
   4153         ISpEventSink *This,
   4154         ULONGLONG *pullEventInterest);
   4155 
   4156     END_INTERFACE
   4157 } ISpEventSinkVtbl;
   4158 
   4159 interface ISpEventSink {
   4160     CONST_VTBL ISpEventSinkVtbl* lpVtbl;
   4161 };
   4162 
   4163 #ifdef COBJMACROS
   4164 #ifndef WIDL_C_INLINE_WRAPPERS
   4165 /*** IUnknown methods ***/
   4166 #define ISpEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4167 #define ISpEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
   4168 #define ISpEventSink_Release(This) (This)->lpVtbl->Release(This)
   4169 /*** ISpEventSink methods ***/
   4170 #define ISpEventSink_AddEvents(This,pEventArray,ulCount) (This)->lpVtbl->AddEvents(This,pEventArray,ulCount)
   4171 #define ISpEventSink_GetEventInterest(This,pullEventInterest) (This)->lpVtbl->GetEventInterest(This,pullEventInterest)
   4172 #else
   4173 /*** IUnknown methods ***/
   4174 static inline HRESULT ISpEventSink_QueryInterface(ISpEventSink* This,REFIID riid,void **ppvObject) {
   4175     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4176 }
   4177 static inline ULONG ISpEventSink_AddRef(ISpEventSink* This) {
   4178     return This->lpVtbl->AddRef(This);
   4179 }
   4180 static inline ULONG ISpEventSink_Release(ISpEventSink* This) {
   4181     return This->lpVtbl->Release(This);
   4182 }
   4183 /*** ISpEventSink methods ***/
   4184 static inline HRESULT ISpEventSink_AddEvents(ISpEventSink* This,const SPEVENT *pEventArray,ULONG ulCount) {
   4185     return This->lpVtbl->AddEvents(This,pEventArray,ulCount);
   4186 }
   4187 static inline HRESULT ISpEventSink_GetEventInterest(ISpEventSink* This,ULONGLONG *pullEventInterest) {
   4188     return This->lpVtbl->GetEventInterest(This,pullEventInterest);
   4189 }
   4190 #endif
   4191 #endif
   4192 
   4193 #endif
   4194 
   4195 
   4196 #endif  /* __ISpEventSink_INTERFACE_DEFINED__ */
   4197 
   4198 /*****************************************************************************
   4199  * ISpStreamFormat interface
   4200  */
   4201 #ifndef __ISpStreamFormat_INTERFACE_DEFINED__
   4202 #define __ISpStreamFormat_INTERFACE_DEFINED__
   4203 
   4204 DEFINE_GUID(IID_ISpStreamFormat, 0xbed530be, 0x2606, 0x4f4d, 0xa1,0xc0, 0x54,0xc5,0xcd,0xa5,0x56,0x6f);
   4205 #if defined(__cplusplus) && !defined(CINTERFACE)
   4206 MIDL_INTERFACE("bed530be-2606-4f4d-a1c0-54c5cda5566f")
   4207 ISpStreamFormat : public IStream
   4208 {
   4209     virtual HRESULT STDMETHODCALLTYPE GetFormat(
   4210         GUID *pguidFormatId,
   4211         WAVEFORMATEX **ppCoMemWaveFormatEx) = 0;
   4212 
   4213 };
   4214 #ifdef __CRT_UUID_DECL
   4215 __CRT_UUID_DECL(ISpStreamFormat, 0xbed530be, 0x2606, 0x4f4d, 0xa1,0xc0, 0x54,0xc5,0xcd,0xa5,0x56,0x6f)
   4216 #endif
   4217 #else
   4218 typedef struct ISpStreamFormatVtbl {
   4219     BEGIN_INTERFACE
   4220 
   4221     /*** IUnknown methods ***/
   4222     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4223         ISpStreamFormat *This,
   4224         REFIID riid,
   4225         void **ppvObject);
   4226 
   4227     ULONG (STDMETHODCALLTYPE *AddRef)(
   4228         ISpStreamFormat *This);
   4229 
   4230     ULONG (STDMETHODCALLTYPE *Release)(
   4231         ISpStreamFormat *This);
   4232 
   4233     /*** ISequentialStream methods ***/
   4234     HRESULT (STDMETHODCALLTYPE *Read)(
   4235         ISpStreamFormat *This,
   4236         void *pv,
   4237         ULONG cb,
   4238         ULONG *pcbRead);
   4239 
   4240     HRESULT (STDMETHODCALLTYPE *Write)(
   4241         ISpStreamFormat *This,
   4242         const void *pv,
   4243         ULONG cb,
   4244         ULONG *pcbWritten);
   4245 
   4246     /*** IStream methods ***/
   4247     HRESULT (STDMETHODCALLTYPE *Seek)(
   4248         ISpStreamFormat *This,
   4249         LARGE_INTEGER dlibMove,
   4250         DWORD dwOrigin,
   4251         ULARGE_INTEGER *plibNewPosition);
   4252 
   4253     HRESULT (STDMETHODCALLTYPE *SetSize)(
   4254         ISpStreamFormat *This,
   4255         ULARGE_INTEGER libNewSize);
   4256 
   4257     HRESULT (STDMETHODCALLTYPE *CopyTo)(
   4258         ISpStreamFormat *This,
   4259         IStream *pstm,
   4260         ULARGE_INTEGER cb,
   4261         ULARGE_INTEGER *pcbRead,
   4262         ULARGE_INTEGER *pcbWritten);
   4263 
   4264     HRESULT (STDMETHODCALLTYPE *Commit)(
   4265         ISpStreamFormat *This,
   4266         DWORD grfCommitFlags);
   4267 
   4268     HRESULT (STDMETHODCALLTYPE *Revert)(
   4269         ISpStreamFormat *This);
   4270 
   4271     HRESULT (STDMETHODCALLTYPE *LockRegion)(
   4272         ISpStreamFormat *This,
   4273         ULARGE_INTEGER libOffset,
   4274         ULARGE_INTEGER cb,
   4275         DWORD dwLockType);
   4276 
   4277     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
   4278         ISpStreamFormat *This,
   4279         ULARGE_INTEGER libOffset,
   4280         ULARGE_INTEGER cb,
   4281         DWORD dwLockType);
   4282 
   4283     HRESULT (STDMETHODCALLTYPE *Stat)(
   4284         ISpStreamFormat *This,
   4285         STATSTG *pstatstg,
   4286         DWORD grfStatFlag);
   4287 
   4288     HRESULT (STDMETHODCALLTYPE *Clone)(
   4289         ISpStreamFormat *This,
   4290         IStream **ppstm);
   4291 
   4292     /*** ISpStreamFormat methods ***/
   4293     HRESULT (STDMETHODCALLTYPE *GetFormat)(
   4294         ISpStreamFormat *This,
   4295         GUID *pguidFormatId,
   4296         WAVEFORMATEX **ppCoMemWaveFormatEx);
   4297 
   4298     END_INTERFACE
   4299 } ISpStreamFormatVtbl;
   4300 
   4301 interface ISpStreamFormat {
   4302     CONST_VTBL ISpStreamFormatVtbl* lpVtbl;
   4303 };
   4304 
   4305 #ifdef COBJMACROS
   4306 #ifndef WIDL_C_INLINE_WRAPPERS
   4307 /*** IUnknown methods ***/
   4308 #define ISpStreamFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4309 #define ISpStreamFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
   4310 #define ISpStreamFormat_Release(This) (This)->lpVtbl->Release(This)
   4311 /*** ISequentialStream methods ***/
   4312 #define ISpStreamFormat_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
   4313 #define ISpStreamFormat_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
   4314 /*** IStream methods ***/
   4315 #define ISpStreamFormat_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
   4316 #define ISpStreamFormat_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
   4317 #define ISpStreamFormat_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
   4318 #define ISpStreamFormat_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
   4319 #define ISpStreamFormat_Revert(This) (This)->lpVtbl->Revert(This)
   4320 #define ISpStreamFormat_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
   4321 #define ISpStreamFormat_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
   4322 #define ISpStreamFormat_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
   4323 #define ISpStreamFormat_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
   4324 /*** ISpStreamFormat methods ***/
   4325 #define ISpStreamFormat_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
   4326 #else
   4327 /*** IUnknown methods ***/
   4328 static inline HRESULT ISpStreamFormat_QueryInterface(ISpStreamFormat* This,REFIID riid,void **ppvObject) {
   4329     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4330 }
   4331 static inline ULONG ISpStreamFormat_AddRef(ISpStreamFormat* This) {
   4332     return This->lpVtbl->AddRef(This);
   4333 }
   4334 static inline ULONG ISpStreamFormat_Release(ISpStreamFormat* This) {
   4335     return This->lpVtbl->Release(This);
   4336 }
   4337 /*** ISequentialStream methods ***/
   4338 static inline HRESULT ISpStreamFormat_Read(ISpStreamFormat* This,void *pv,ULONG cb,ULONG *pcbRead) {
   4339     return This->lpVtbl->Read(This,pv,cb,pcbRead);
   4340 }
   4341 static inline HRESULT ISpStreamFormat_Write(ISpStreamFormat* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
   4342     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
   4343 }
   4344 /*** IStream methods ***/
   4345 static inline HRESULT ISpStreamFormat_Seek(ISpStreamFormat* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
   4346     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
   4347 }
   4348 static inline HRESULT ISpStreamFormat_SetSize(ISpStreamFormat* This,ULARGE_INTEGER libNewSize) {
   4349     return This->lpVtbl->SetSize(This,libNewSize);
   4350 }
   4351 static inline HRESULT ISpStreamFormat_CopyTo(ISpStreamFormat* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
   4352     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
   4353 }
   4354 static inline HRESULT ISpStreamFormat_Commit(ISpStreamFormat* This,DWORD grfCommitFlags) {
   4355     return This->lpVtbl->Commit(This,grfCommitFlags);
   4356 }
   4357 static inline HRESULT ISpStreamFormat_Revert(ISpStreamFormat* This) {
   4358     return This->lpVtbl->Revert(This);
   4359 }
   4360 static inline HRESULT ISpStreamFormat_LockRegion(ISpStreamFormat* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   4361     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
   4362 }
   4363 static inline HRESULT ISpStreamFormat_UnlockRegion(ISpStreamFormat* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   4364     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
   4365 }
   4366 static inline HRESULT ISpStreamFormat_Stat(ISpStreamFormat* This,STATSTG *pstatstg,DWORD grfStatFlag) {
   4367     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
   4368 }
   4369 static inline HRESULT ISpStreamFormat_Clone(ISpStreamFormat* This,IStream **ppstm) {
   4370     return This->lpVtbl->Clone(This,ppstm);
   4371 }
   4372 /*** ISpStreamFormat methods ***/
   4373 static inline HRESULT ISpStreamFormat_GetFormat(ISpStreamFormat* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
   4374     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
   4375 }
   4376 #endif
   4377 #endif
   4378 
   4379 #endif
   4380 
   4381 
   4382 #endif  /* __ISpStreamFormat_INTERFACE_DEFINED__ */
   4383 
   4384 /*****************************************************************************
   4385  * ISpStream interface
   4386  */
   4387 #ifndef __ISpStream_INTERFACE_DEFINED__
   4388 #define __ISpStream_INTERFACE_DEFINED__
   4389 
   4390 DEFINE_GUID(IID_ISpStream, 0x12e3cca9, 0x7518, 0x44c5, 0xa5,0xe7, 0xba,0x5a,0x79,0xcb,0x92,0x9e);
   4391 #if defined(__cplusplus) && !defined(CINTERFACE)
   4392 MIDL_INTERFACE("12e3cca9-7518-44c5-a5e7-ba5a79cb929e")
   4393 ISpStream : public ISpStreamFormat
   4394 {
   4395     virtual HRESULT STDMETHODCALLTYPE SetBaseStream(
   4396         IStream *pStream,
   4397         REFGUID rguidFormat,
   4398         const WAVEFORMATEX *pWaveFormatEx) = 0;
   4399 
   4400     virtual HRESULT STDMETHODCALLTYPE GetBaseStream(
   4401         IStream **ppStream) = 0;
   4402 
   4403     virtual HRESULT STDMETHODCALLTYPE BindToFile(
   4404         LPCWSTR pszFileName,
   4405         SPFILEMODE eMode,
   4406         const GUID *pFormatId,
   4407         const WAVEFORMATEX *pWaveFormatEx,
   4408         ULONGLONG ullEventInterest) = 0;
   4409 
   4410     virtual HRESULT STDMETHODCALLTYPE Close(
   4411         ) = 0;
   4412 
   4413 };
   4414 #ifdef __CRT_UUID_DECL
   4415 __CRT_UUID_DECL(ISpStream, 0x12e3cca9, 0x7518, 0x44c5, 0xa5,0xe7, 0xba,0x5a,0x79,0xcb,0x92,0x9e)
   4416 #endif
   4417 #else
   4418 typedef struct ISpStreamVtbl {
   4419     BEGIN_INTERFACE
   4420 
   4421     /*** IUnknown methods ***/
   4422     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4423         ISpStream *This,
   4424         REFIID riid,
   4425         void **ppvObject);
   4426 
   4427     ULONG (STDMETHODCALLTYPE *AddRef)(
   4428         ISpStream *This);
   4429 
   4430     ULONG (STDMETHODCALLTYPE *Release)(
   4431         ISpStream *This);
   4432 
   4433     /*** ISequentialStream methods ***/
   4434     HRESULT (STDMETHODCALLTYPE *Read)(
   4435         ISpStream *This,
   4436         void *pv,
   4437         ULONG cb,
   4438         ULONG *pcbRead);
   4439 
   4440     HRESULT (STDMETHODCALLTYPE *Write)(
   4441         ISpStream *This,
   4442         const void *pv,
   4443         ULONG cb,
   4444         ULONG *pcbWritten);
   4445 
   4446     /*** IStream methods ***/
   4447     HRESULT (STDMETHODCALLTYPE *Seek)(
   4448         ISpStream *This,
   4449         LARGE_INTEGER dlibMove,
   4450         DWORD dwOrigin,
   4451         ULARGE_INTEGER *plibNewPosition);
   4452 
   4453     HRESULT (STDMETHODCALLTYPE *SetSize)(
   4454         ISpStream *This,
   4455         ULARGE_INTEGER libNewSize);
   4456 
   4457     HRESULT (STDMETHODCALLTYPE *CopyTo)(
   4458         ISpStream *This,
   4459         IStream *pstm,
   4460         ULARGE_INTEGER cb,
   4461         ULARGE_INTEGER *pcbRead,
   4462         ULARGE_INTEGER *pcbWritten);
   4463 
   4464     HRESULT (STDMETHODCALLTYPE *Commit)(
   4465         ISpStream *This,
   4466         DWORD grfCommitFlags);
   4467 
   4468     HRESULT (STDMETHODCALLTYPE *Revert)(
   4469         ISpStream *This);
   4470 
   4471     HRESULT (STDMETHODCALLTYPE *LockRegion)(
   4472         ISpStream *This,
   4473         ULARGE_INTEGER libOffset,
   4474         ULARGE_INTEGER cb,
   4475         DWORD dwLockType);
   4476 
   4477     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
   4478         ISpStream *This,
   4479         ULARGE_INTEGER libOffset,
   4480         ULARGE_INTEGER cb,
   4481         DWORD dwLockType);
   4482 
   4483     HRESULT (STDMETHODCALLTYPE *Stat)(
   4484         ISpStream *This,
   4485         STATSTG *pstatstg,
   4486         DWORD grfStatFlag);
   4487 
   4488     HRESULT (STDMETHODCALLTYPE *Clone)(
   4489         ISpStream *This,
   4490         IStream **ppstm);
   4491 
   4492     /*** ISpStreamFormat methods ***/
   4493     HRESULT (STDMETHODCALLTYPE *GetFormat)(
   4494         ISpStream *This,
   4495         GUID *pguidFormatId,
   4496         WAVEFORMATEX **ppCoMemWaveFormatEx);
   4497 
   4498     /*** ISpStream methods ***/
   4499     HRESULT (STDMETHODCALLTYPE *SetBaseStream)(
   4500         ISpStream *This,
   4501         IStream *pStream,
   4502         REFGUID rguidFormat,
   4503         const WAVEFORMATEX *pWaveFormatEx);
   4504 
   4505     HRESULT (STDMETHODCALLTYPE *GetBaseStream)(
   4506         ISpStream *This,
   4507         IStream **ppStream);
   4508 
   4509     HRESULT (STDMETHODCALLTYPE *BindToFile)(
   4510         ISpStream *This,
   4511         LPCWSTR pszFileName,
   4512         SPFILEMODE eMode,
   4513         const GUID *pFormatId,
   4514         const WAVEFORMATEX *pWaveFormatEx,
   4515         ULONGLONG ullEventInterest);
   4516 
   4517     HRESULT (STDMETHODCALLTYPE *Close)(
   4518         ISpStream *This);
   4519 
   4520     END_INTERFACE
   4521 } ISpStreamVtbl;
   4522 
   4523 interface ISpStream {
   4524     CONST_VTBL ISpStreamVtbl* lpVtbl;
   4525 };
   4526 
   4527 #ifdef COBJMACROS
   4528 #ifndef WIDL_C_INLINE_WRAPPERS
   4529 /*** IUnknown methods ***/
   4530 #define ISpStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4531 #define ISpStream_AddRef(This) (This)->lpVtbl->AddRef(This)
   4532 #define ISpStream_Release(This) (This)->lpVtbl->Release(This)
   4533 /*** ISequentialStream methods ***/
   4534 #define ISpStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
   4535 #define ISpStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
   4536 /*** IStream methods ***/
   4537 #define ISpStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
   4538 #define ISpStream_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
   4539 #define ISpStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
   4540 #define ISpStream_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
   4541 #define ISpStream_Revert(This) (This)->lpVtbl->Revert(This)
   4542 #define ISpStream_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
   4543 #define ISpStream_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
   4544 #define ISpStream_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
   4545 #define ISpStream_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
   4546 /*** ISpStreamFormat methods ***/
   4547 #define ISpStream_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
   4548 /*** ISpStream methods ***/
   4549 #define ISpStream_SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx) (This)->lpVtbl->SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx)
   4550 #define ISpStream_GetBaseStream(This,ppStream) (This)->lpVtbl->GetBaseStream(This,ppStream)
   4551 #define ISpStream_BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest) (This)->lpVtbl->BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest)
   4552 #define ISpStream_Close(This) (This)->lpVtbl->Close(This)
   4553 #else
   4554 /*** IUnknown methods ***/
   4555 static inline HRESULT ISpStream_QueryInterface(ISpStream* This,REFIID riid,void **ppvObject) {
   4556     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4557 }
   4558 static inline ULONG ISpStream_AddRef(ISpStream* This) {
   4559     return This->lpVtbl->AddRef(This);
   4560 }
   4561 static inline ULONG ISpStream_Release(ISpStream* This) {
   4562     return This->lpVtbl->Release(This);
   4563 }
   4564 /*** ISequentialStream methods ***/
   4565 static inline HRESULT ISpStream_Read(ISpStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
   4566     return This->lpVtbl->Read(This,pv,cb,pcbRead);
   4567 }
   4568 static inline HRESULT ISpStream_Write(ISpStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
   4569     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
   4570 }
   4571 /*** IStream methods ***/
   4572 static inline HRESULT ISpStream_Seek(ISpStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
   4573     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
   4574 }
   4575 static inline HRESULT ISpStream_SetSize(ISpStream* This,ULARGE_INTEGER libNewSize) {
   4576     return This->lpVtbl->SetSize(This,libNewSize);
   4577 }
   4578 static inline HRESULT ISpStream_CopyTo(ISpStream* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
   4579     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
   4580 }
   4581 static inline HRESULT ISpStream_Commit(ISpStream* This,DWORD grfCommitFlags) {
   4582     return This->lpVtbl->Commit(This,grfCommitFlags);
   4583 }
   4584 static inline HRESULT ISpStream_Revert(ISpStream* This) {
   4585     return This->lpVtbl->Revert(This);
   4586 }
   4587 static inline HRESULT ISpStream_LockRegion(ISpStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   4588     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
   4589 }
   4590 static inline HRESULT ISpStream_UnlockRegion(ISpStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   4591     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
   4592 }
   4593 static inline HRESULT ISpStream_Stat(ISpStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
   4594     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
   4595 }
   4596 static inline HRESULT ISpStream_Clone(ISpStream* This,IStream **ppstm) {
   4597     return This->lpVtbl->Clone(This,ppstm);
   4598 }
   4599 /*** ISpStreamFormat methods ***/
   4600 static inline HRESULT ISpStream_GetFormat(ISpStream* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
   4601     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
   4602 }
   4603 /*** ISpStream methods ***/
   4604 static inline HRESULT ISpStream_SetBaseStream(ISpStream* This,IStream *pStream,REFGUID rguidFormat,const WAVEFORMATEX *pWaveFormatEx) {
   4605     return This->lpVtbl->SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx);
   4606 }
   4607 static inline HRESULT ISpStream_GetBaseStream(ISpStream* This,IStream **ppStream) {
   4608     return This->lpVtbl->GetBaseStream(This,ppStream);
   4609 }
   4610 static inline HRESULT ISpStream_BindToFile(ISpStream* This,LPCWSTR pszFileName,SPFILEMODE eMode,const GUID *pFormatId,const WAVEFORMATEX *pWaveFormatEx,ULONGLONG ullEventInterest) {
   4611     return This->lpVtbl->BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest);
   4612 }
   4613 static inline HRESULT ISpStream_Close(ISpStream* This) {
   4614     return This->lpVtbl->Close(This);
   4615 }
   4616 #endif
   4617 #endif
   4618 
   4619 #endif
   4620 
   4621 
   4622 #endif  /* __ISpStream_INTERFACE_DEFINED__ */
   4623 
   4624 /*****************************************************************************
   4625  * ISpStreamFormatConverter interface
   4626  */
   4627 #ifndef __ISpStreamFormatConverter_INTERFACE_DEFINED__
   4628 #define __ISpStreamFormatConverter_INTERFACE_DEFINED__
   4629 
   4630 DEFINE_GUID(IID_ISpStreamFormatConverter, 0x678a932c, 0xea71, 0x4446, 0x9b,0x41, 0x78,0xfd,0xa6,0x28,0x0a,0x29);
   4631 #if defined(__cplusplus) && !defined(CINTERFACE)
   4632 MIDL_INTERFACE("678a932c-ea71-4446-9b41-78fda6280a29")
   4633 ISpStreamFormatConverter : public ISpStreamFormat
   4634 {
   4635     virtual HRESULT STDMETHODCALLTYPE SetBaseStream(
   4636         ISpStreamFormat *pStream,
   4637         WINBOOL fSetFormatToBaseStreamFormat,
   4638         WINBOOL fWriteToBaseStream) = 0;
   4639 
   4640     virtual HRESULT STDMETHODCALLTYPE GetBaseStream(
   4641         ISpStreamFormat **ppStream) = 0;
   4642 
   4643     virtual HRESULT STDMETHODCALLTYPE SetFormat(
   4644         REFGUID rguidFormatIdOfConvertedStream,
   4645         const WAVEFORMATEX *pWaveFormatExOfConvertedStream) = 0;
   4646 
   4647     virtual HRESULT STDMETHODCALLTYPE ResetSeekPosition(
   4648         ) = 0;
   4649 
   4650     virtual HRESULT STDMETHODCALLTYPE ScaleConvertedToBaseOffset(
   4651         ULONGLONG ullOffsetConvertedStream,
   4652         ULONGLONG *pullOffsetBaseStream) = 0;
   4653 
   4654     virtual HRESULT STDMETHODCALLTYPE ScaleBaseToConvertedOffset(
   4655         ULONGLONG ullOffsetBaseStream,
   4656         ULONGLONG *pullOffsetConvertedStream) = 0;
   4657 
   4658 };
   4659 #ifdef __CRT_UUID_DECL
   4660 __CRT_UUID_DECL(ISpStreamFormatConverter, 0x678a932c, 0xea71, 0x4446, 0x9b,0x41, 0x78,0xfd,0xa6,0x28,0x0a,0x29)
   4661 #endif
   4662 #else
   4663 typedef struct ISpStreamFormatConverterVtbl {
   4664     BEGIN_INTERFACE
   4665 
   4666     /*** IUnknown methods ***/
   4667     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4668         ISpStreamFormatConverter *This,
   4669         REFIID riid,
   4670         void **ppvObject);
   4671 
   4672     ULONG (STDMETHODCALLTYPE *AddRef)(
   4673         ISpStreamFormatConverter *This);
   4674 
   4675     ULONG (STDMETHODCALLTYPE *Release)(
   4676         ISpStreamFormatConverter *This);
   4677 
   4678     /*** ISequentialStream methods ***/
   4679     HRESULT (STDMETHODCALLTYPE *Read)(
   4680         ISpStreamFormatConverter *This,
   4681         void *pv,
   4682         ULONG cb,
   4683         ULONG *pcbRead);
   4684 
   4685     HRESULT (STDMETHODCALLTYPE *Write)(
   4686         ISpStreamFormatConverter *This,
   4687         const void *pv,
   4688         ULONG cb,
   4689         ULONG *pcbWritten);
   4690 
   4691     /*** IStream methods ***/
   4692     HRESULT (STDMETHODCALLTYPE *Seek)(
   4693         ISpStreamFormatConverter *This,
   4694         LARGE_INTEGER dlibMove,
   4695         DWORD dwOrigin,
   4696         ULARGE_INTEGER *plibNewPosition);
   4697 
   4698     HRESULT (STDMETHODCALLTYPE *SetSize)(
   4699         ISpStreamFormatConverter *This,
   4700         ULARGE_INTEGER libNewSize);
   4701 
   4702     HRESULT (STDMETHODCALLTYPE *CopyTo)(
   4703         ISpStreamFormatConverter *This,
   4704         IStream *pstm,
   4705         ULARGE_INTEGER cb,
   4706         ULARGE_INTEGER *pcbRead,
   4707         ULARGE_INTEGER *pcbWritten);
   4708 
   4709     HRESULT (STDMETHODCALLTYPE *Commit)(
   4710         ISpStreamFormatConverter *This,
   4711         DWORD grfCommitFlags);
   4712 
   4713     HRESULT (STDMETHODCALLTYPE *Revert)(
   4714         ISpStreamFormatConverter *This);
   4715 
   4716     HRESULT (STDMETHODCALLTYPE *LockRegion)(
   4717         ISpStreamFormatConverter *This,
   4718         ULARGE_INTEGER libOffset,
   4719         ULARGE_INTEGER cb,
   4720         DWORD dwLockType);
   4721 
   4722     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
   4723         ISpStreamFormatConverter *This,
   4724         ULARGE_INTEGER libOffset,
   4725         ULARGE_INTEGER cb,
   4726         DWORD dwLockType);
   4727 
   4728     HRESULT (STDMETHODCALLTYPE *Stat)(
   4729         ISpStreamFormatConverter *This,
   4730         STATSTG *pstatstg,
   4731         DWORD grfStatFlag);
   4732 
   4733     HRESULT (STDMETHODCALLTYPE *Clone)(
   4734         ISpStreamFormatConverter *This,
   4735         IStream **ppstm);
   4736 
   4737     /*** ISpStreamFormat methods ***/
   4738     HRESULT (STDMETHODCALLTYPE *GetFormat)(
   4739         ISpStreamFormatConverter *This,
   4740         GUID *pguidFormatId,
   4741         WAVEFORMATEX **ppCoMemWaveFormatEx);
   4742 
   4743     /*** ISpStreamFormatConverter methods ***/
   4744     HRESULT (STDMETHODCALLTYPE *SetBaseStream)(
   4745         ISpStreamFormatConverter *This,
   4746         ISpStreamFormat *pStream,
   4747         WINBOOL fSetFormatToBaseStreamFormat,
   4748         WINBOOL fWriteToBaseStream);
   4749 
   4750     HRESULT (STDMETHODCALLTYPE *GetBaseStream)(
   4751         ISpStreamFormatConverter *This,
   4752         ISpStreamFormat **ppStream);
   4753 
   4754     HRESULT (STDMETHODCALLTYPE *SetFormat)(
   4755         ISpStreamFormatConverter *This,
   4756         REFGUID rguidFormatIdOfConvertedStream,
   4757         const WAVEFORMATEX *pWaveFormatExOfConvertedStream);
   4758 
   4759     HRESULT (STDMETHODCALLTYPE *ResetSeekPosition)(
   4760         ISpStreamFormatConverter *This);
   4761 
   4762     HRESULT (STDMETHODCALLTYPE *ScaleConvertedToBaseOffset)(
   4763         ISpStreamFormatConverter *This,
   4764         ULONGLONG ullOffsetConvertedStream,
   4765         ULONGLONG *pullOffsetBaseStream);
   4766 
   4767     HRESULT (STDMETHODCALLTYPE *ScaleBaseToConvertedOffset)(
   4768         ISpStreamFormatConverter *This,
   4769         ULONGLONG ullOffsetBaseStream,
   4770         ULONGLONG *pullOffsetConvertedStream);
   4771 
   4772     END_INTERFACE
   4773 } ISpStreamFormatConverterVtbl;
   4774 
   4775 interface ISpStreamFormatConverter {
   4776     CONST_VTBL ISpStreamFormatConverterVtbl* lpVtbl;
   4777 };
   4778 
   4779 #ifdef COBJMACROS
   4780 #ifndef WIDL_C_INLINE_WRAPPERS
   4781 /*** IUnknown methods ***/
   4782 #define ISpStreamFormatConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4783 #define ISpStreamFormatConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
   4784 #define ISpStreamFormatConverter_Release(This) (This)->lpVtbl->Release(This)
   4785 /*** ISequentialStream methods ***/
   4786 #define ISpStreamFormatConverter_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
   4787 #define ISpStreamFormatConverter_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
   4788 /*** IStream methods ***/
   4789 #define ISpStreamFormatConverter_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
   4790 #define ISpStreamFormatConverter_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
   4791 #define ISpStreamFormatConverter_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
   4792 #define ISpStreamFormatConverter_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
   4793 #define ISpStreamFormatConverter_Revert(This) (This)->lpVtbl->Revert(This)
   4794 #define ISpStreamFormatConverter_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
   4795 #define ISpStreamFormatConverter_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
   4796 #define ISpStreamFormatConverter_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
   4797 #define ISpStreamFormatConverter_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
   4798 /*** ISpStreamFormat methods ***/
   4799 #define ISpStreamFormatConverter_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
   4800 /*** ISpStreamFormatConverter methods ***/
   4801 #define ISpStreamFormatConverter_SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream) (This)->lpVtbl->SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream)
   4802 #define ISpStreamFormatConverter_GetBaseStream(This,ppStream) (This)->lpVtbl->GetBaseStream(This,ppStream)
   4803 #define ISpStreamFormatConverter_SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream) (This)->lpVtbl->SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream)
   4804 #define ISpStreamFormatConverter_ResetSeekPosition(This) (This)->lpVtbl->ResetSeekPosition(This)
   4805 #define ISpStreamFormatConverter_ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream) (This)->lpVtbl->ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream)
   4806 #define ISpStreamFormatConverter_ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream) (This)->lpVtbl->ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream)
   4807 #else
   4808 /*** IUnknown methods ***/
   4809 static inline HRESULT ISpStreamFormatConverter_QueryInterface(ISpStreamFormatConverter* This,REFIID riid,void **ppvObject) {
   4810     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4811 }
   4812 static inline ULONG ISpStreamFormatConverter_AddRef(ISpStreamFormatConverter* This) {
   4813     return This->lpVtbl->AddRef(This);
   4814 }
   4815 static inline ULONG ISpStreamFormatConverter_Release(ISpStreamFormatConverter* This) {
   4816     return This->lpVtbl->Release(This);
   4817 }
   4818 /*** ISequentialStream methods ***/
   4819 static inline HRESULT ISpStreamFormatConverter_Read(ISpStreamFormatConverter* This,void *pv,ULONG cb,ULONG *pcbRead) {
   4820     return This->lpVtbl->Read(This,pv,cb,pcbRead);
   4821 }
   4822 static inline HRESULT ISpStreamFormatConverter_Write(ISpStreamFormatConverter* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
   4823     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
   4824 }
   4825 /*** IStream methods ***/
   4826 static inline HRESULT ISpStreamFormatConverter_Seek(ISpStreamFormatConverter* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
   4827     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
   4828 }
   4829 static inline HRESULT ISpStreamFormatConverter_SetSize(ISpStreamFormatConverter* This,ULARGE_INTEGER libNewSize) {
   4830     return This->lpVtbl->SetSize(This,libNewSize);
   4831 }
   4832 static inline HRESULT ISpStreamFormatConverter_CopyTo(ISpStreamFormatConverter* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
   4833     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
   4834 }
   4835 static inline HRESULT ISpStreamFormatConverter_Commit(ISpStreamFormatConverter* This,DWORD grfCommitFlags) {
   4836     return This->lpVtbl->Commit(This,grfCommitFlags);
   4837 }
   4838 static inline HRESULT ISpStreamFormatConverter_Revert(ISpStreamFormatConverter* This) {
   4839     return This->lpVtbl->Revert(This);
   4840 }
   4841 static inline HRESULT ISpStreamFormatConverter_LockRegion(ISpStreamFormatConverter* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   4842     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
   4843 }
   4844 static inline HRESULT ISpStreamFormatConverter_UnlockRegion(ISpStreamFormatConverter* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   4845     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
   4846 }
   4847 static inline HRESULT ISpStreamFormatConverter_Stat(ISpStreamFormatConverter* This,STATSTG *pstatstg,DWORD grfStatFlag) {
   4848     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
   4849 }
   4850 static inline HRESULT ISpStreamFormatConverter_Clone(ISpStreamFormatConverter* This,IStream **ppstm) {
   4851     return This->lpVtbl->Clone(This,ppstm);
   4852 }
   4853 /*** ISpStreamFormat methods ***/
   4854 static inline HRESULT ISpStreamFormatConverter_GetFormat(ISpStreamFormatConverter* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
   4855     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
   4856 }
   4857 /*** ISpStreamFormatConverter methods ***/
   4858 static inline HRESULT ISpStreamFormatConverter_SetBaseStream(ISpStreamFormatConverter* This,ISpStreamFormat *pStream,WINBOOL fSetFormatToBaseStreamFormat,WINBOOL fWriteToBaseStream) {
   4859     return This->lpVtbl->SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream);
   4860 }
   4861 static inline HRESULT ISpStreamFormatConverter_GetBaseStream(ISpStreamFormatConverter* This,ISpStreamFormat **ppStream) {
   4862     return This->lpVtbl->GetBaseStream(This,ppStream);
   4863 }
   4864 static inline HRESULT ISpStreamFormatConverter_SetFormat(ISpStreamFormatConverter* This,REFGUID rguidFormatIdOfConvertedStream,const WAVEFORMATEX *pWaveFormatExOfConvertedStream) {
   4865     return This->lpVtbl->SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream);
   4866 }
   4867 static inline HRESULT ISpStreamFormatConverter_ResetSeekPosition(ISpStreamFormatConverter* This) {
   4868     return This->lpVtbl->ResetSeekPosition(This);
   4869 }
   4870 static inline HRESULT ISpStreamFormatConverter_ScaleConvertedToBaseOffset(ISpStreamFormatConverter* This,ULONGLONG ullOffsetConvertedStream,ULONGLONG *pullOffsetBaseStream) {
   4871     return This->lpVtbl->ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream);
   4872 }
   4873 static inline HRESULT ISpStreamFormatConverter_ScaleBaseToConvertedOffset(ISpStreamFormatConverter* This,ULONGLONG ullOffsetBaseStream,ULONGLONG *pullOffsetConvertedStream) {
   4874     return This->lpVtbl->ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream);
   4875 }
   4876 #endif
   4877 #endif
   4878 
   4879 #endif
   4880 
   4881 
   4882 #endif  /* __ISpStreamFormatConverter_INTERFACE_DEFINED__ */
   4883 
   4884 typedef struct SPAUDIOSTATUS {
   4885     LONG cbFreeBuffSpace;
   4886     ULONG cbNonBlockingIO;
   4887     SPAUDIOSTATE State;
   4888     ULONGLONG CurSeekPos;
   4889     ULONGLONG CurDevicePos;
   4890     DWORD dwAudioLevel;
   4891     DWORD dwReserved2;
   4892 } SPAUDIOSTATUS;
   4893 typedef struct SPAUDIOBUFFERINFO {
   4894     ULONG ulMsMinNotification;
   4895     ULONG ulMsBufferSize;
   4896     ULONG ulMsEventBias;
   4897 } SPAUDIOBUFFERINFO;
   4898 /*****************************************************************************
   4899  * ISpAudio interface
   4900  */
   4901 #ifndef __ISpAudio_INTERFACE_DEFINED__
   4902 #define __ISpAudio_INTERFACE_DEFINED__
   4903 
   4904 DEFINE_GUID(IID_ISpAudio, 0xc05c768f, 0xfae8, 0x4ec2, 0x8e,0x07, 0x33,0x83,0x21,0xc1,0x24,0x52);
   4905 #if defined(__cplusplus) && !defined(CINTERFACE)
   4906 MIDL_INTERFACE("c05c768f-fae8-4ec2-8e07-338321c12452")
   4907 ISpAudio : public ISpStreamFormat
   4908 {
   4909     virtual HRESULT STDMETHODCALLTYPE SetState(
   4910         SPAUDIOSTATE NewState,
   4911         ULONGLONG ullReserved) = 0;
   4912 
   4913     virtual HRESULT STDMETHODCALLTYPE SetFormat(
   4914         REFGUID rguidFmtId,
   4915         const WAVEFORMATEX *pWaveFormatEx) = 0;
   4916 
   4917     virtual HRESULT STDMETHODCALLTYPE GetStatus(
   4918         SPAUDIOSTATUS *pStatus) = 0;
   4919 
   4920     virtual HRESULT STDMETHODCALLTYPE SetBufferInfo(
   4921         const SPAUDIOBUFFERINFO *pBuffInfo) = 0;
   4922 
   4923     virtual HRESULT STDMETHODCALLTYPE GetBufferInfo(
   4924         SPAUDIOBUFFERINFO *pBuffInfo) = 0;
   4925 
   4926     virtual HRESULT STDMETHODCALLTYPE GetDefaultFormat(
   4927         GUID *pFormatId,
   4928         WAVEFORMATEX **ppCoMemWaveFormatEx) = 0;
   4929 
   4930     virtual HANDLE STDMETHODCALLTYPE EventHandle(
   4931         ) = 0;
   4932 
   4933     virtual HRESULT STDMETHODCALLTYPE GetVolumeLevel(
   4934         ULONG *pLevel) = 0;
   4935 
   4936     virtual HRESULT STDMETHODCALLTYPE SetVolumeLevel(
   4937         ULONG Level) = 0;
   4938 
   4939     virtual HRESULT STDMETHODCALLTYPE GetBufferNotifySize(
   4940         ULONG *pcbSize) = 0;
   4941 
   4942     virtual HRESULT STDMETHODCALLTYPE SetBufferNotifySize(
   4943         ULONG cbSize) = 0;
   4944 
   4945 };
   4946 #ifdef __CRT_UUID_DECL
   4947 __CRT_UUID_DECL(ISpAudio, 0xc05c768f, 0xfae8, 0x4ec2, 0x8e,0x07, 0x33,0x83,0x21,0xc1,0x24,0x52)
   4948 #endif
   4949 #else
   4950 typedef struct ISpAudioVtbl {
   4951     BEGIN_INTERFACE
   4952 
   4953     /*** IUnknown methods ***/
   4954     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4955         ISpAudio *This,
   4956         REFIID riid,
   4957         void **ppvObject);
   4958 
   4959     ULONG (STDMETHODCALLTYPE *AddRef)(
   4960         ISpAudio *This);
   4961 
   4962     ULONG (STDMETHODCALLTYPE *Release)(
   4963         ISpAudio *This);
   4964 
   4965     /*** ISequentialStream methods ***/
   4966     HRESULT (STDMETHODCALLTYPE *Read)(
   4967         ISpAudio *This,
   4968         void *pv,
   4969         ULONG cb,
   4970         ULONG *pcbRead);
   4971 
   4972     HRESULT (STDMETHODCALLTYPE *Write)(
   4973         ISpAudio *This,
   4974         const void *pv,
   4975         ULONG cb,
   4976         ULONG *pcbWritten);
   4977 
   4978     /*** IStream methods ***/
   4979     HRESULT (STDMETHODCALLTYPE *Seek)(
   4980         ISpAudio *This,
   4981         LARGE_INTEGER dlibMove,
   4982         DWORD dwOrigin,
   4983         ULARGE_INTEGER *plibNewPosition);
   4984 
   4985     HRESULT (STDMETHODCALLTYPE *SetSize)(
   4986         ISpAudio *This,
   4987         ULARGE_INTEGER libNewSize);
   4988 
   4989     HRESULT (STDMETHODCALLTYPE *CopyTo)(
   4990         ISpAudio *This,
   4991         IStream *pstm,
   4992         ULARGE_INTEGER cb,
   4993         ULARGE_INTEGER *pcbRead,
   4994         ULARGE_INTEGER *pcbWritten);
   4995 
   4996     HRESULT (STDMETHODCALLTYPE *Commit)(
   4997         ISpAudio *This,
   4998         DWORD grfCommitFlags);
   4999 
   5000     HRESULT (STDMETHODCALLTYPE *Revert)(
   5001         ISpAudio *This);
   5002 
   5003     HRESULT (STDMETHODCALLTYPE *LockRegion)(
   5004         ISpAudio *This,
   5005         ULARGE_INTEGER libOffset,
   5006         ULARGE_INTEGER cb,
   5007         DWORD dwLockType);
   5008 
   5009     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
   5010         ISpAudio *This,
   5011         ULARGE_INTEGER libOffset,
   5012         ULARGE_INTEGER cb,
   5013         DWORD dwLockType);
   5014 
   5015     HRESULT (STDMETHODCALLTYPE *Stat)(
   5016         ISpAudio *This,
   5017         STATSTG *pstatstg,
   5018         DWORD grfStatFlag);
   5019 
   5020     HRESULT (STDMETHODCALLTYPE *Clone)(
   5021         ISpAudio *This,
   5022         IStream **ppstm);
   5023 
   5024     /*** ISpStreamFormat methods ***/
   5025     HRESULT (STDMETHODCALLTYPE *GetFormat)(
   5026         ISpAudio *This,
   5027         GUID *pguidFormatId,
   5028         WAVEFORMATEX **ppCoMemWaveFormatEx);
   5029 
   5030     /*** ISpAudio methods ***/
   5031     HRESULT (STDMETHODCALLTYPE *SetState)(
   5032         ISpAudio *This,
   5033         SPAUDIOSTATE NewState,
   5034         ULONGLONG ullReserved);
   5035 
   5036     HRESULT (STDMETHODCALLTYPE *SetFormat)(
   5037         ISpAudio *This,
   5038         REFGUID rguidFmtId,
   5039         const WAVEFORMATEX *pWaveFormatEx);
   5040 
   5041     HRESULT (STDMETHODCALLTYPE *GetStatus)(
   5042         ISpAudio *This,
   5043         SPAUDIOSTATUS *pStatus);
   5044 
   5045     HRESULT (STDMETHODCALLTYPE *SetBufferInfo)(
   5046         ISpAudio *This,
   5047         const SPAUDIOBUFFERINFO *pBuffInfo);
   5048 
   5049     HRESULT (STDMETHODCALLTYPE *GetBufferInfo)(
   5050         ISpAudio *This,
   5051         SPAUDIOBUFFERINFO *pBuffInfo);
   5052 
   5053     HRESULT (STDMETHODCALLTYPE *GetDefaultFormat)(
   5054         ISpAudio *This,
   5055         GUID *pFormatId,
   5056         WAVEFORMATEX **ppCoMemWaveFormatEx);
   5057 
   5058     HANDLE (STDMETHODCALLTYPE *EventHandle)(
   5059         ISpAudio *This);
   5060 
   5061     HRESULT (STDMETHODCALLTYPE *GetVolumeLevel)(
   5062         ISpAudio *This,
   5063         ULONG *pLevel);
   5064 
   5065     HRESULT (STDMETHODCALLTYPE *SetVolumeLevel)(
   5066         ISpAudio *This,
   5067         ULONG Level);
   5068 
   5069     HRESULT (STDMETHODCALLTYPE *GetBufferNotifySize)(
   5070         ISpAudio *This,
   5071         ULONG *pcbSize);
   5072 
   5073     HRESULT (STDMETHODCALLTYPE *SetBufferNotifySize)(
   5074         ISpAudio *This,
   5075         ULONG cbSize);
   5076 
   5077     END_INTERFACE
   5078 } ISpAudioVtbl;
   5079 
   5080 interface ISpAudio {
   5081     CONST_VTBL ISpAudioVtbl* lpVtbl;
   5082 };
   5083 
   5084 #ifdef COBJMACROS
   5085 #ifndef WIDL_C_INLINE_WRAPPERS
   5086 /*** IUnknown methods ***/
   5087 #define ISpAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5088 #define ISpAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
   5089 #define ISpAudio_Release(This) (This)->lpVtbl->Release(This)
   5090 /*** ISequentialStream methods ***/
   5091 #define ISpAudio_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
   5092 #define ISpAudio_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
   5093 /*** IStream methods ***/
   5094 #define ISpAudio_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
   5095 #define ISpAudio_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
   5096 #define ISpAudio_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
   5097 #define ISpAudio_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
   5098 #define ISpAudio_Revert(This) (This)->lpVtbl->Revert(This)
   5099 #define ISpAudio_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
   5100 #define ISpAudio_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
   5101 #define ISpAudio_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
   5102 #define ISpAudio_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
   5103 /*** ISpStreamFormat methods ***/
   5104 #define ISpAudio_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
   5105 /*** ISpAudio methods ***/
   5106 #define ISpAudio_SetState(This,NewState,ullReserved) (This)->lpVtbl->SetState(This,NewState,ullReserved)
   5107 #define ISpAudio_SetFormat(This,rguidFmtId,pWaveFormatEx) (This)->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx)
   5108 #define ISpAudio_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
   5109 #define ISpAudio_SetBufferInfo(This,pBuffInfo) (This)->lpVtbl->SetBufferInfo(This,pBuffInfo)
   5110 #define ISpAudio_GetBufferInfo(This,pBuffInfo) (This)->lpVtbl->GetBufferInfo(This,pBuffInfo)
   5111 #define ISpAudio_GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx)
   5112 #define ISpAudio_EventHandle(This) (This)->lpVtbl->EventHandle(This)
   5113 #define ISpAudio_GetVolumeLevel(This,pLevel) (This)->lpVtbl->GetVolumeLevel(This,pLevel)
   5114 #define ISpAudio_SetVolumeLevel(This,Level) (This)->lpVtbl->SetVolumeLevel(This,Level)
   5115 #define ISpAudio_GetBufferNotifySize(This,pcbSize) (This)->lpVtbl->GetBufferNotifySize(This,pcbSize)
   5116 #define ISpAudio_SetBufferNotifySize(This,cbSize) (This)->lpVtbl->SetBufferNotifySize(This,cbSize)
   5117 #else
   5118 /*** IUnknown methods ***/
   5119 static inline HRESULT ISpAudio_QueryInterface(ISpAudio* This,REFIID riid,void **ppvObject) {
   5120     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5121 }
   5122 static inline ULONG ISpAudio_AddRef(ISpAudio* This) {
   5123     return This->lpVtbl->AddRef(This);
   5124 }
   5125 static inline ULONG ISpAudio_Release(ISpAudio* This) {
   5126     return This->lpVtbl->Release(This);
   5127 }
   5128 /*** ISequentialStream methods ***/
   5129 static inline HRESULT ISpAudio_Read(ISpAudio* This,void *pv,ULONG cb,ULONG *pcbRead) {
   5130     return This->lpVtbl->Read(This,pv,cb,pcbRead);
   5131 }
   5132 static inline HRESULT ISpAudio_Write(ISpAudio* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
   5133     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
   5134 }
   5135 /*** IStream methods ***/
   5136 static inline HRESULT ISpAudio_Seek(ISpAudio* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
   5137     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
   5138 }
   5139 static inline HRESULT ISpAudio_SetSize(ISpAudio* This,ULARGE_INTEGER libNewSize) {
   5140     return This->lpVtbl->SetSize(This,libNewSize);
   5141 }
   5142 static inline HRESULT ISpAudio_CopyTo(ISpAudio* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
   5143     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
   5144 }
   5145 static inline HRESULT ISpAudio_Commit(ISpAudio* This,DWORD grfCommitFlags) {
   5146     return This->lpVtbl->Commit(This,grfCommitFlags);
   5147 }
   5148 static inline HRESULT ISpAudio_Revert(ISpAudio* This) {
   5149     return This->lpVtbl->Revert(This);
   5150 }
   5151 static inline HRESULT ISpAudio_LockRegion(ISpAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   5152     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
   5153 }
   5154 static inline HRESULT ISpAudio_UnlockRegion(ISpAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   5155     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
   5156 }
   5157 static inline HRESULT ISpAudio_Stat(ISpAudio* This,STATSTG *pstatstg,DWORD grfStatFlag) {
   5158     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
   5159 }
   5160 static inline HRESULT ISpAudio_Clone(ISpAudio* This,IStream **ppstm) {
   5161     return This->lpVtbl->Clone(This,ppstm);
   5162 }
   5163 /*** ISpStreamFormat methods ***/
   5164 static inline HRESULT ISpAudio_GetFormat(ISpAudio* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
   5165     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
   5166 }
   5167 /*** ISpAudio methods ***/
   5168 static inline HRESULT ISpAudio_SetState(ISpAudio* This,SPAUDIOSTATE NewState,ULONGLONG ullReserved) {
   5169     return This->lpVtbl->SetState(This,NewState,ullReserved);
   5170 }
   5171 static inline HRESULT ISpAudio_SetFormat(ISpAudio* This,REFGUID rguidFmtId,const WAVEFORMATEX *pWaveFormatEx) {
   5172     return This->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx);
   5173 }
   5174 static inline HRESULT ISpAudio_GetStatus(ISpAudio* This,SPAUDIOSTATUS *pStatus) {
   5175     return This->lpVtbl->GetStatus(This,pStatus);
   5176 }
   5177 static inline HRESULT ISpAudio_SetBufferInfo(ISpAudio* This,const SPAUDIOBUFFERINFO *pBuffInfo) {
   5178     return This->lpVtbl->SetBufferInfo(This,pBuffInfo);
   5179 }
   5180 static inline HRESULT ISpAudio_GetBufferInfo(ISpAudio* This,SPAUDIOBUFFERINFO *pBuffInfo) {
   5181     return This->lpVtbl->GetBufferInfo(This,pBuffInfo);
   5182 }
   5183 static inline HRESULT ISpAudio_GetDefaultFormat(ISpAudio* This,GUID *pFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
   5184     return This->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx);
   5185 }
   5186 static inline HANDLE ISpAudio_EventHandle(ISpAudio* This) {
   5187     return This->lpVtbl->EventHandle(This);
   5188 }
   5189 static inline HRESULT ISpAudio_GetVolumeLevel(ISpAudio* This,ULONG *pLevel) {
   5190     return This->lpVtbl->GetVolumeLevel(This,pLevel);
   5191 }
   5192 static inline HRESULT ISpAudio_SetVolumeLevel(ISpAudio* This,ULONG Level) {
   5193     return This->lpVtbl->SetVolumeLevel(This,Level);
   5194 }
   5195 static inline HRESULT ISpAudio_GetBufferNotifySize(ISpAudio* This,ULONG *pcbSize) {
   5196     return This->lpVtbl->GetBufferNotifySize(This,pcbSize);
   5197 }
   5198 static inline HRESULT ISpAudio_SetBufferNotifySize(ISpAudio* This,ULONG cbSize) {
   5199     return This->lpVtbl->SetBufferNotifySize(This,cbSize);
   5200 }
   5201 #endif
   5202 #endif
   5203 
   5204 #endif
   5205 
   5206 
   5207 #endif  /* __ISpAudio_INTERFACE_DEFINED__ */
   5208 
   5209 /*****************************************************************************
   5210  * ISpMMSysAudio interface
   5211  */
   5212 #ifndef __ISpMMSysAudio_INTERFACE_DEFINED__
   5213 #define __ISpMMSysAudio_INTERFACE_DEFINED__
   5214 
   5215 DEFINE_GUID(IID_ISpMMSysAudio, 0x15806f6e, 0x1d70, 0x4b48, 0x98,0xe6, 0x3b,0x1a,0x00,0x75,0x09,0xab);
   5216 #if defined(__cplusplus) && !defined(CINTERFACE)
   5217 MIDL_INTERFACE("15806f6e-1d70-4b48-98e6-3b1a007509ab")
   5218 ISpMMSysAudio : public ISpAudio
   5219 {
   5220     virtual HRESULT STDMETHODCALLTYPE GetDeviceId(
   5221         UINT *puDeviceId) = 0;
   5222 
   5223     virtual HRESULT STDMETHODCALLTYPE SetDeviceId(
   5224         UINT uDeviceId) = 0;
   5225 
   5226     virtual HRESULT STDMETHODCALLTYPE GetMMHandle(
   5227         void **pHandle) = 0;
   5228 
   5229     virtual HRESULT STDMETHODCALLTYPE GetLineId(
   5230         UINT *puLineId) = 0;
   5231 
   5232     virtual HRESULT STDMETHODCALLTYPE SetLineId(
   5233         UINT uLineId) = 0;
   5234 
   5235 };
   5236 #ifdef __CRT_UUID_DECL
   5237 __CRT_UUID_DECL(ISpMMSysAudio, 0x15806f6e, 0x1d70, 0x4b48, 0x98,0xe6, 0x3b,0x1a,0x00,0x75,0x09,0xab)
   5238 #endif
   5239 #else
   5240 typedef struct ISpMMSysAudioVtbl {
   5241     BEGIN_INTERFACE
   5242 
   5243     /*** IUnknown methods ***/
   5244     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5245         ISpMMSysAudio *This,
   5246         REFIID riid,
   5247         void **ppvObject);
   5248 
   5249     ULONG (STDMETHODCALLTYPE *AddRef)(
   5250         ISpMMSysAudio *This);
   5251 
   5252     ULONG (STDMETHODCALLTYPE *Release)(
   5253         ISpMMSysAudio *This);
   5254 
   5255     /*** ISequentialStream methods ***/
   5256     HRESULT (STDMETHODCALLTYPE *Read)(
   5257         ISpMMSysAudio *This,
   5258         void *pv,
   5259         ULONG cb,
   5260         ULONG *pcbRead);
   5261 
   5262     HRESULT (STDMETHODCALLTYPE *Write)(
   5263         ISpMMSysAudio *This,
   5264         const void *pv,
   5265         ULONG cb,
   5266         ULONG *pcbWritten);
   5267 
   5268     /*** IStream methods ***/
   5269     HRESULT (STDMETHODCALLTYPE *Seek)(
   5270         ISpMMSysAudio *This,
   5271         LARGE_INTEGER dlibMove,
   5272         DWORD dwOrigin,
   5273         ULARGE_INTEGER *plibNewPosition);
   5274 
   5275     HRESULT (STDMETHODCALLTYPE *SetSize)(
   5276         ISpMMSysAudio *This,
   5277         ULARGE_INTEGER libNewSize);
   5278 
   5279     HRESULT (STDMETHODCALLTYPE *CopyTo)(
   5280         ISpMMSysAudio *This,
   5281         IStream *pstm,
   5282         ULARGE_INTEGER cb,
   5283         ULARGE_INTEGER *pcbRead,
   5284         ULARGE_INTEGER *pcbWritten);
   5285 
   5286     HRESULT (STDMETHODCALLTYPE *Commit)(
   5287         ISpMMSysAudio *This,
   5288         DWORD grfCommitFlags);
   5289 
   5290     HRESULT (STDMETHODCALLTYPE *Revert)(
   5291         ISpMMSysAudio *This);
   5292 
   5293     HRESULT (STDMETHODCALLTYPE *LockRegion)(
   5294         ISpMMSysAudio *This,
   5295         ULARGE_INTEGER libOffset,
   5296         ULARGE_INTEGER cb,
   5297         DWORD dwLockType);
   5298 
   5299     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
   5300         ISpMMSysAudio *This,
   5301         ULARGE_INTEGER libOffset,
   5302         ULARGE_INTEGER cb,
   5303         DWORD dwLockType);
   5304 
   5305     HRESULT (STDMETHODCALLTYPE *Stat)(
   5306         ISpMMSysAudio *This,
   5307         STATSTG *pstatstg,
   5308         DWORD grfStatFlag);
   5309 
   5310     HRESULT (STDMETHODCALLTYPE *Clone)(
   5311         ISpMMSysAudio *This,
   5312         IStream **ppstm);
   5313 
   5314     /*** ISpStreamFormat methods ***/
   5315     HRESULT (STDMETHODCALLTYPE *GetFormat)(
   5316         ISpMMSysAudio *This,
   5317         GUID *pguidFormatId,
   5318         WAVEFORMATEX **ppCoMemWaveFormatEx);
   5319 
   5320     /*** ISpAudio methods ***/
   5321     HRESULT (STDMETHODCALLTYPE *SetState)(
   5322         ISpMMSysAudio *This,
   5323         SPAUDIOSTATE NewState,
   5324         ULONGLONG ullReserved);
   5325 
   5326     HRESULT (STDMETHODCALLTYPE *SetFormat)(
   5327         ISpMMSysAudio *This,
   5328         REFGUID rguidFmtId,
   5329         const WAVEFORMATEX *pWaveFormatEx);
   5330 
   5331     HRESULT (STDMETHODCALLTYPE *GetStatus)(
   5332         ISpMMSysAudio *This,
   5333         SPAUDIOSTATUS *pStatus);
   5334 
   5335     HRESULT (STDMETHODCALLTYPE *SetBufferInfo)(
   5336         ISpMMSysAudio *This,
   5337         const SPAUDIOBUFFERINFO *pBuffInfo);
   5338 
   5339     HRESULT (STDMETHODCALLTYPE *GetBufferInfo)(
   5340         ISpMMSysAudio *This,
   5341         SPAUDIOBUFFERINFO *pBuffInfo);
   5342 
   5343     HRESULT (STDMETHODCALLTYPE *GetDefaultFormat)(
   5344         ISpMMSysAudio *This,
   5345         GUID *pFormatId,
   5346         WAVEFORMATEX **ppCoMemWaveFormatEx);
   5347 
   5348     HANDLE (STDMETHODCALLTYPE *EventHandle)(
   5349         ISpMMSysAudio *This);
   5350 
   5351     HRESULT (STDMETHODCALLTYPE *GetVolumeLevel)(
   5352         ISpMMSysAudio *This,
   5353         ULONG *pLevel);
   5354 
   5355     HRESULT (STDMETHODCALLTYPE *SetVolumeLevel)(
   5356         ISpMMSysAudio *This,
   5357         ULONG Level);
   5358 
   5359     HRESULT (STDMETHODCALLTYPE *GetBufferNotifySize)(
   5360         ISpMMSysAudio *This,
   5361         ULONG *pcbSize);
   5362 
   5363     HRESULT (STDMETHODCALLTYPE *SetBufferNotifySize)(
   5364         ISpMMSysAudio *This,
   5365         ULONG cbSize);
   5366 
   5367     /*** ISpMMSysAudio methods ***/
   5368     HRESULT (STDMETHODCALLTYPE *GetDeviceId)(
   5369         ISpMMSysAudio *This,
   5370         UINT *puDeviceId);
   5371 
   5372     HRESULT (STDMETHODCALLTYPE *SetDeviceId)(
   5373         ISpMMSysAudio *This,
   5374         UINT uDeviceId);
   5375 
   5376     HRESULT (STDMETHODCALLTYPE *GetMMHandle)(
   5377         ISpMMSysAudio *This,
   5378         void **pHandle);
   5379 
   5380     HRESULT (STDMETHODCALLTYPE *GetLineId)(
   5381         ISpMMSysAudio *This,
   5382         UINT *puLineId);
   5383 
   5384     HRESULT (STDMETHODCALLTYPE *SetLineId)(
   5385         ISpMMSysAudio *This,
   5386         UINT uLineId);
   5387 
   5388     END_INTERFACE
   5389 } ISpMMSysAudioVtbl;
   5390 
   5391 interface ISpMMSysAudio {
   5392     CONST_VTBL ISpMMSysAudioVtbl* lpVtbl;
   5393 };
   5394 
   5395 #ifdef COBJMACROS
   5396 #ifndef WIDL_C_INLINE_WRAPPERS
   5397 /*** IUnknown methods ***/
   5398 #define ISpMMSysAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5399 #define ISpMMSysAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
   5400 #define ISpMMSysAudio_Release(This) (This)->lpVtbl->Release(This)
   5401 /*** ISequentialStream methods ***/
   5402 #define ISpMMSysAudio_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
   5403 #define ISpMMSysAudio_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
   5404 /*** IStream methods ***/
   5405 #define ISpMMSysAudio_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
   5406 #define ISpMMSysAudio_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
   5407 #define ISpMMSysAudio_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
   5408 #define ISpMMSysAudio_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
   5409 #define ISpMMSysAudio_Revert(This) (This)->lpVtbl->Revert(This)
   5410 #define ISpMMSysAudio_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
   5411 #define ISpMMSysAudio_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
   5412 #define ISpMMSysAudio_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
   5413 #define ISpMMSysAudio_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
   5414 /*** ISpStreamFormat methods ***/
   5415 #define ISpMMSysAudio_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
   5416 /*** ISpAudio methods ***/
   5417 #define ISpMMSysAudio_SetState(This,NewState,ullReserved) (This)->lpVtbl->SetState(This,NewState,ullReserved)
   5418 #define ISpMMSysAudio_SetFormat(This,rguidFmtId,pWaveFormatEx) (This)->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx)
   5419 #define ISpMMSysAudio_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
   5420 #define ISpMMSysAudio_SetBufferInfo(This,pBuffInfo) (This)->lpVtbl->SetBufferInfo(This,pBuffInfo)
   5421 #define ISpMMSysAudio_GetBufferInfo(This,pBuffInfo) (This)->lpVtbl->GetBufferInfo(This,pBuffInfo)
   5422 #define ISpMMSysAudio_GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx)
   5423 #define ISpMMSysAudio_EventHandle(This) (This)->lpVtbl->EventHandle(This)
   5424 #define ISpMMSysAudio_GetVolumeLevel(This,pLevel) (This)->lpVtbl->GetVolumeLevel(This,pLevel)
   5425 #define ISpMMSysAudio_SetVolumeLevel(This,Level) (This)->lpVtbl->SetVolumeLevel(This,Level)
   5426 #define ISpMMSysAudio_GetBufferNotifySize(This,pcbSize) (This)->lpVtbl->GetBufferNotifySize(This,pcbSize)
   5427 #define ISpMMSysAudio_SetBufferNotifySize(This,cbSize) (This)->lpVtbl->SetBufferNotifySize(This,cbSize)
   5428 /*** ISpMMSysAudio methods ***/
   5429 #define ISpMMSysAudio_GetDeviceId(This,puDeviceId) (This)->lpVtbl->GetDeviceId(This,puDeviceId)
   5430 #define ISpMMSysAudio_SetDeviceId(This,uDeviceId) (This)->lpVtbl->SetDeviceId(This,uDeviceId)
   5431 #define ISpMMSysAudio_GetMMHandle(This,pHandle) (This)->lpVtbl->GetMMHandle(This,pHandle)
   5432 #define ISpMMSysAudio_GetLineId(This,puLineId) (This)->lpVtbl->GetLineId(This,puLineId)
   5433 #define ISpMMSysAudio_SetLineId(This,uLineId) (This)->lpVtbl->SetLineId(This,uLineId)
   5434 #else
   5435 /*** IUnknown methods ***/
   5436 static inline HRESULT ISpMMSysAudio_QueryInterface(ISpMMSysAudio* This,REFIID riid,void **ppvObject) {
   5437     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5438 }
   5439 static inline ULONG ISpMMSysAudio_AddRef(ISpMMSysAudio* This) {
   5440     return This->lpVtbl->AddRef(This);
   5441 }
   5442 static inline ULONG ISpMMSysAudio_Release(ISpMMSysAudio* This) {
   5443     return This->lpVtbl->Release(This);
   5444 }
   5445 /*** ISequentialStream methods ***/
   5446 static inline HRESULT ISpMMSysAudio_Read(ISpMMSysAudio* This,void *pv,ULONG cb,ULONG *pcbRead) {
   5447     return This->lpVtbl->Read(This,pv,cb,pcbRead);
   5448 }
   5449 static inline HRESULT ISpMMSysAudio_Write(ISpMMSysAudio* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
   5450     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
   5451 }
   5452 /*** IStream methods ***/
   5453 static inline HRESULT ISpMMSysAudio_Seek(ISpMMSysAudio* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
   5454     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
   5455 }
   5456 static inline HRESULT ISpMMSysAudio_SetSize(ISpMMSysAudio* This,ULARGE_INTEGER libNewSize) {
   5457     return This->lpVtbl->SetSize(This,libNewSize);
   5458 }
   5459 static inline HRESULT ISpMMSysAudio_CopyTo(ISpMMSysAudio* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
   5460     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
   5461 }
   5462 static inline HRESULT ISpMMSysAudio_Commit(ISpMMSysAudio* This,DWORD grfCommitFlags) {
   5463     return This->lpVtbl->Commit(This,grfCommitFlags);
   5464 }
   5465 static inline HRESULT ISpMMSysAudio_Revert(ISpMMSysAudio* This) {
   5466     return This->lpVtbl->Revert(This);
   5467 }
   5468 static inline HRESULT ISpMMSysAudio_LockRegion(ISpMMSysAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   5469     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
   5470 }
   5471 static inline HRESULT ISpMMSysAudio_UnlockRegion(ISpMMSysAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   5472     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
   5473 }
   5474 static inline HRESULT ISpMMSysAudio_Stat(ISpMMSysAudio* This,STATSTG *pstatstg,DWORD grfStatFlag) {
   5475     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
   5476 }
   5477 static inline HRESULT ISpMMSysAudio_Clone(ISpMMSysAudio* This,IStream **ppstm) {
   5478     return This->lpVtbl->Clone(This,ppstm);
   5479 }
   5480 /*** ISpStreamFormat methods ***/
   5481 static inline HRESULT ISpMMSysAudio_GetFormat(ISpMMSysAudio* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
   5482     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
   5483 }
   5484 /*** ISpAudio methods ***/
   5485 static inline HRESULT ISpMMSysAudio_SetState(ISpMMSysAudio* This,SPAUDIOSTATE NewState,ULONGLONG ullReserved) {
   5486     return This->lpVtbl->SetState(This,NewState,ullReserved);
   5487 }
   5488 static inline HRESULT ISpMMSysAudio_SetFormat(ISpMMSysAudio* This,REFGUID rguidFmtId,const WAVEFORMATEX *pWaveFormatEx) {
   5489     return This->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx);
   5490 }
   5491 static inline HRESULT ISpMMSysAudio_GetStatus(ISpMMSysAudio* This,SPAUDIOSTATUS *pStatus) {
   5492     return This->lpVtbl->GetStatus(This,pStatus);
   5493 }
   5494 static inline HRESULT ISpMMSysAudio_SetBufferInfo(ISpMMSysAudio* This,const SPAUDIOBUFFERINFO *pBuffInfo) {
   5495     return This->lpVtbl->SetBufferInfo(This,pBuffInfo);
   5496 }
   5497 static inline HRESULT ISpMMSysAudio_GetBufferInfo(ISpMMSysAudio* This,SPAUDIOBUFFERINFO *pBuffInfo) {
   5498     return This->lpVtbl->GetBufferInfo(This,pBuffInfo);
   5499 }
   5500 static inline HRESULT ISpMMSysAudio_GetDefaultFormat(ISpMMSysAudio* This,GUID *pFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
   5501     return This->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx);
   5502 }
   5503 static inline HANDLE ISpMMSysAudio_EventHandle(ISpMMSysAudio* This) {
   5504     return This->lpVtbl->EventHandle(This);
   5505 }
   5506 static inline HRESULT ISpMMSysAudio_GetVolumeLevel(ISpMMSysAudio* This,ULONG *pLevel) {
   5507     return This->lpVtbl->GetVolumeLevel(This,pLevel);
   5508 }
   5509 static inline HRESULT ISpMMSysAudio_SetVolumeLevel(ISpMMSysAudio* This,ULONG Level) {
   5510     return This->lpVtbl->SetVolumeLevel(This,Level);
   5511 }
   5512 static inline HRESULT ISpMMSysAudio_GetBufferNotifySize(ISpMMSysAudio* This,ULONG *pcbSize) {
   5513     return This->lpVtbl->GetBufferNotifySize(This,pcbSize);
   5514 }
   5515 static inline HRESULT ISpMMSysAudio_SetBufferNotifySize(ISpMMSysAudio* This,ULONG cbSize) {
   5516     return This->lpVtbl->SetBufferNotifySize(This,cbSize);
   5517 }
   5518 /*** ISpMMSysAudio methods ***/
   5519 static inline HRESULT ISpMMSysAudio_GetDeviceId(ISpMMSysAudio* This,UINT *puDeviceId) {
   5520     return This->lpVtbl->GetDeviceId(This,puDeviceId);
   5521 }
   5522 static inline HRESULT ISpMMSysAudio_SetDeviceId(ISpMMSysAudio* This,UINT uDeviceId) {
   5523     return This->lpVtbl->SetDeviceId(This,uDeviceId);
   5524 }
   5525 static inline HRESULT ISpMMSysAudio_GetMMHandle(ISpMMSysAudio* This,void **pHandle) {
   5526     return This->lpVtbl->GetMMHandle(This,pHandle);
   5527 }
   5528 static inline HRESULT ISpMMSysAudio_GetLineId(ISpMMSysAudio* This,UINT *puLineId) {
   5529     return This->lpVtbl->GetLineId(This,puLineId);
   5530 }
   5531 static inline HRESULT ISpMMSysAudio_SetLineId(ISpMMSysAudio* This,UINT uLineId) {
   5532     return This->lpVtbl->SetLineId(This,uLineId);
   5533 }
   5534 #endif
   5535 #endif
   5536 
   5537 #endif
   5538 
   5539 
   5540 #endif  /* __ISpMMSysAudio_INTERFACE_DEFINED__ */
   5541 
   5542 /*****************************************************************************
   5543  * ISpTranscript interface
   5544  */
   5545 #ifndef __ISpTranscript_INTERFACE_DEFINED__
   5546 #define __ISpTranscript_INTERFACE_DEFINED__
   5547 
   5548 DEFINE_GUID(IID_ISpTranscript, 0x10f63bce, 0x201a, 0x11d3, 0xac,0x70, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
   5549 #if defined(__cplusplus) && !defined(CINTERFACE)
   5550 MIDL_INTERFACE("10f63bce-201a-11d3-ac70-00c04f8ee6c0")
   5551 ISpTranscript : public IUnknown
   5552 {
   5553     virtual HRESULT STDMETHODCALLTYPE GetTranscript(
   5554         LPWSTR *ppszTranscript) = 0;
   5555 
   5556     virtual HRESULT STDMETHODCALLTYPE AppendTranscript(
   5557         LPCWSTR pszTranscript) = 0;
   5558 
   5559 };
   5560 #ifdef __CRT_UUID_DECL
   5561 __CRT_UUID_DECL(ISpTranscript, 0x10f63bce, 0x201a, 0x11d3, 0xac,0x70, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
   5562 #endif
   5563 #else
   5564 typedef struct ISpTranscriptVtbl {
   5565     BEGIN_INTERFACE
   5566 
   5567     /*** IUnknown methods ***/
   5568     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5569         ISpTranscript *This,
   5570         REFIID riid,
   5571         void **ppvObject);
   5572 
   5573     ULONG (STDMETHODCALLTYPE *AddRef)(
   5574         ISpTranscript *This);
   5575 
   5576     ULONG (STDMETHODCALLTYPE *Release)(
   5577         ISpTranscript *This);
   5578 
   5579     /*** ISpTranscript methods ***/
   5580     HRESULT (STDMETHODCALLTYPE *GetTranscript)(
   5581         ISpTranscript *This,
   5582         LPWSTR *ppszTranscript);
   5583 
   5584     HRESULT (STDMETHODCALLTYPE *AppendTranscript)(
   5585         ISpTranscript *This,
   5586         LPCWSTR pszTranscript);
   5587 
   5588     END_INTERFACE
   5589 } ISpTranscriptVtbl;
   5590 
   5591 interface ISpTranscript {
   5592     CONST_VTBL ISpTranscriptVtbl* lpVtbl;
   5593 };
   5594 
   5595 #ifdef COBJMACROS
   5596 #ifndef WIDL_C_INLINE_WRAPPERS
   5597 /*** IUnknown methods ***/
   5598 #define ISpTranscript_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5599 #define ISpTranscript_AddRef(This) (This)->lpVtbl->AddRef(This)
   5600 #define ISpTranscript_Release(This) (This)->lpVtbl->Release(This)
   5601 /*** ISpTranscript methods ***/
   5602 #define ISpTranscript_GetTranscript(This,ppszTranscript) (This)->lpVtbl->GetTranscript(This,ppszTranscript)
   5603 #define ISpTranscript_AppendTranscript(This,pszTranscript) (This)->lpVtbl->AppendTranscript(This,pszTranscript)
   5604 #else
   5605 /*** IUnknown methods ***/
   5606 static inline HRESULT ISpTranscript_QueryInterface(ISpTranscript* This,REFIID riid,void **ppvObject) {
   5607     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5608 }
   5609 static inline ULONG ISpTranscript_AddRef(ISpTranscript* This) {
   5610     return This->lpVtbl->AddRef(This);
   5611 }
   5612 static inline ULONG ISpTranscript_Release(ISpTranscript* This) {
   5613     return This->lpVtbl->Release(This);
   5614 }
   5615 /*** ISpTranscript methods ***/
   5616 static inline HRESULT ISpTranscript_GetTranscript(ISpTranscript* This,LPWSTR *ppszTranscript) {
   5617     return This->lpVtbl->GetTranscript(This,ppszTranscript);
   5618 }
   5619 static inline HRESULT ISpTranscript_AppendTranscript(ISpTranscript* This,LPCWSTR pszTranscript) {
   5620     return This->lpVtbl->AppendTranscript(This,pszTranscript);
   5621 }
   5622 #endif
   5623 #endif
   5624 
   5625 #endif
   5626 
   5627 
   5628 #endif  /* __ISpTranscript_INTERFACE_DEFINED__ */
   5629 
   5630 typedef WCHAR SPPHONEID;
   5631 typedef LPWSTR PSPPHONEID;
   5632 typedef LPCWSTR PCSPPHONEID;
   5633 typedef struct SPPHRASEELEMENT {
   5634     ULONG ulAudioTimeOffset;
   5635     ULONG ulAudioSizeTime;
   5636     ULONG ulAudioStreamOffset;
   5637     ULONG ulAudioSizeBytes;
   5638     ULONG ulRetainedStreamOffset;
   5639     ULONG ulRetainedSizeBytes;
   5640     LPCWSTR pszDisplayText;
   5641     LPCWSTR pszLexicalForm;
   5642     const SPPHONEID *pszPronunciation;
   5643     BYTE bDisplayAttributes;
   5644     signed char RequiredConfidence;
   5645     signed char ActualConfidence;
   5646     BYTE Reserved;
   5647     float SREngineConfidence;
   5648 } SPPHRASEELEMENT;
   5649 typedef struct SPPHRASERULE SPPHRASERULE;
   5650 typedef struct SPPHRASEPROPERTY SPPHRASEPROPERTY;
   5651 struct SPPHRASERULE {
   5652     LPCWSTR pszName;
   5653     ULONG ulId;
   5654     ULONG ulFirstElement;
   5655     ULONG ulCountOfElements;
   5656     const SPPHRASERULE *pNextSibling;
   5657     const SPPHRASERULE *pFirstChild;
   5658     float SREngineConfidence;
   5659     signed char Confidence;
   5660 };
   5661 struct SPPHRASEPROPERTY {
   5662     LPCWSTR pszName;
   5663     __C89_NAMELESS union {
   5664         ULONG ulId;
   5665         __C89_NAMELESS struct {
   5666             byte bType;
   5667             byte bReserved;
   5668             unsigned short usArrayIndex;
   5669         } __C89_NAMELESSSTRUCTNAME;
   5670     } __C89_NAMELESSUNIONNAME;
   5671     LPCWSTR pszValue;
   5672     VARIANT vValue;
   5673     ULONG ulFirstElement;
   5674     ULONG ulCountOfElements;
   5675     const SPPHRASEPROPERTY *pNextSibling;
   5676     const SPPHRASEPROPERTY *pFirstChild;
   5677     float SREngineConfidence;
   5678     signed char Confidence;
   5679 };
   5680 typedef struct SPPHRASEREPLACEMENT {
   5681     BYTE bDisplayAttributes;
   5682     LPCWSTR pszReplacementText;
   5683     ULONG ulFirstElement;
   5684     ULONG ulCountOfElements;
   5685 } SPPHRASEREPLACEMENT;
   5686 typedef struct SPSEMANTICERRORINFO {
   5687     ULONG ulLineNumber;
   5688     LPWSTR pszScriptLine;
   5689     LPWSTR pszSource;
   5690     LPWSTR pszDescription;
   5691     HRESULT hrResultCode;
   5692 } SPSEMANTICERRORINFO;
   5693 typedef struct SPPHRASE_50 {
   5694     ULONG cbSize;
   5695     WORD LangID;
   5696     WORD wHomophoneGroupId;
   5697     ULONGLONG ullGrammarID;
   5698     ULONGLONG ftStartTime;
   5699     ULONGLONG ullAudioStreamPosition;
   5700     ULONG ulAudioSizeBytes;
   5701     ULONG ulRetainedSizeBytes;
   5702     ULONG ulAudioSizeTime;
   5703     SPPHRASERULE Rule;
   5704     const SPPHRASEPROPERTY *pProperties;
   5705     const SPPHRASEELEMENT *pElements;
   5706     ULONG cReplacements;
   5707     const SPPHRASEREPLACEMENT *pReplacements;
   5708     GUID SREngineID;
   5709     ULONG ulSREnginePrivateDataSize;
   5710     const BYTE *pSREnginePrivateData;
   5711 } SPPHRASE_50;
   5712 #define SP_SPPHRASESIZE_500 sizeof (SPPHRASE_50)
   5713 #ifdef __cplusplus
   5714 typedef struct SPPHRASE : public SPPHRASE_50 {
   5715   LPWSTR pSML;
   5716   SPSEMANTICERRORINFO* pSemanticErrorInfo;
   5717 } SPPHRASE;
   5718 #else
   5719 typedef struct SPPHRASE {
   5720     ULONG cbSize;
   5721     WORD LangID;
   5722     WORD wHomophoneGroupId;
   5723     ULONGLONG ullGrammarID;
   5724     ULONGLONG ftStartTime;
   5725     ULONGLONG ullAudioStreamPosition;
   5726     ULONG ulAudioSizeBytes;
   5727     ULONG ulRetainedSizeBytes;
   5728     ULONG ulAudioSizeTime;
   5729     SPPHRASERULE Rule;
   5730     const SPPHRASEPROPERTY *pProperties;
   5731     const SPPHRASEELEMENT *pElements;
   5732     ULONG cReplacements;
   5733     const SPPHRASEREPLACEMENT *pReplacements;
   5734     GUID SREngineID;
   5735     ULONG ulSREnginePrivateDataSize;
   5736     const BYTE *pSREnginePrivateData;
   5737     LPWSTR pSML;
   5738     SPSEMANTICERRORINFO *pSemanticErrorInfo;
   5739 } SPPHRASE;
   5740 #endif
   5741 typedef struct SPSERIALIZEDPHRASE {
   5742     ULONG ulSerializedSize;
   5743 } SPSERIALIZEDPHRASE;
   5744 typedef struct SPRULE {
   5745     LPCWSTR pszRuleName;
   5746     ULONG ulRuleId;
   5747     DWORD dwAttributes;
   5748 } SPRULE;
   5749 typedef struct SPBINARYGRAMMAR {
   5750     ULONG ulTotalSerializedSize;
   5751 } SPBINARYGRAMMAR;
   5752 #if 0
   5753 typedef void *SPSTATEHANDLE;
   5754 #else
   5755 DECLARE_HANDLE(SPSTATEHANDLE);
   5756 #endif
   5757 typedef struct SPWORDPRONUNCIATION {
   5758     struct SPWORDPRONUNCIATION *pNextWordPronunciation;
   5759     SPLEXICONTYPE eLexiconType;
   5760     WORD LangID;
   5761     WORD wPronunciationFlags;
   5762     SPPARTOFSPEECH ePartOfSpeech;
   5763     SPPHONEID szPronunciation[1];
   5764 } SPWORDPRONUNCIATION;
   5765 typedef struct SPWORDPRONUNCIATIONLIST {
   5766     ULONG ulSize;
   5767     BYTE *pvBuffer;
   5768     SPWORDPRONUNCIATION *pFirstWordPronunciation;
   5769 } SPWORDPRONUNCIATIONLIST;
   5770 typedef struct SPWORD {
   5771     struct SPWORD *pNextWord;
   5772     WORD LangID;
   5773     WORD wReserved;
   5774     SPWORDTYPE eWordType;
   5775     LPWSTR pszWord;
   5776     SPWORDPRONUNCIATION *pFirstWordPronunciation;
   5777 } SPWORD;
   5778 typedef struct SPWORDLIST {
   5779     ULONG ulSize;
   5780     BYTE *pvBuffer;
   5781     SPWORD *pFirstWord;
   5782 } SPWORDLIST;
   5783 /*****************************************************************************
   5784  * ISpLexicon interface
   5785  */
   5786 #ifndef __ISpLexicon_INTERFACE_DEFINED__
   5787 #define __ISpLexicon_INTERFACE_DEFINED__
   5788 
   5789 DEFINE_GUID(IID_ISpLexicon, 0xda41a7c2, 0x5383, 0x4db2, 0x91,0x6b, 0x6c,0x17,0x19,0xe3,0xdb,0x58);
   5790 #if defined(__cplusplus) && !defined(CINTERFACE)
   5791 MIDL_INTERFACE("da41a7c2-5383-4db2-916b-6c1719e3db58")
   5792 ISpLexicon : public IUnknown
   5793 {
   5794     virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
   5795         LPCWSTR pszWord,
   5796         WORD LangID,
   5797         DWORD dwFlags,
   5798         SPWORDPRONUNCIATIONLIST *pWordPronunciationList) = 0;
   5799 
   5800     virtual HRESULT STDMETHODCALLTYPE AddPronunciation(
   5801         LPCWSTR pszWord,
   5802         WORD LangID,
   5803         SPPARTOFSPEECH ePartOfSpeech,
   5804         PCSPPHONEID pszPronunciation) = 0;
   5805 
   5806     virtual HRESULT STDMETHODCALLTYPE RemovePronunciation(
   5807         LPCWSTR pszWord,
   5808         WORD LangID,
   5809         SPPARTOFSPEECH ePartOfSpeech,
   5810         PCSPPHONEID pszPronunciation) = 0;
   5811 
   5812     virtual HRESULT STDMETHODCALLTYPE GetGeneration(
   5813         DWORD *pdwGeneration) = 0;
   5814 
   5815     virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
   5816         DWORD dwFlags,
   5817         DWORD *pdwGeneration,
   5818         SPWORDLIST *pWordList) = 0;
   5819 
   5820     virtual HRESULT STDMETHODCALLTYPE GetWords(
   5821         DWORD dwFlags,
   5822         DWORD *pdwGeneration,
   5823         DWORD *pdwCookie,
   5824         SPWORDLIST *pWordList) = 0;
   5825 
   5826 };
   5827 #ifdef __CRT_UUID_DECL
   5828 __CRT_UUID_DECL(ISpLexicon, 0xda41a7c2, 0x5383, 0x4db2, 0x91,0x6b, 0x6c,0x17,0x19,0xe3,0xdb,0x58)
   5829 #endif
   5830 #else
   5831 typedef struct ISpLexiconVtbl {
   5832     BEGIN_INTERFACE
   5833 
   5834     /*** IUnknown methods ***/
   5835     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5836         ISpLexicon *This,
   5837         REFIID riid,
   5838         void **ppvObject);
   5839 
   5840     ULONG (STDMETHODCALLTYPE *AddRef)(
   5841         ISpLexicon *This);
   5842 
   5843     ULONG (STDMETHODCALLTYPE *Release)(
   5844         ISpLexicon *This);
   5845 
   5846     /*** ISpLexicon methods ***/
   5847     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
   5848         ISpLexicon *This,
   5849         LPCWSTR pszWord,
   5850         WORD LangID,
   5851         DWORD dwFlags,
   5852         SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
   5853 
   5854     HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
   5855         ISpLexicon *This,
   5856         LPCWSTR pszWord,
   5857         WORD LangID,
   5858         SPPARTOFSPEECH ePartOfSpeech,
   5859         PCSPPHONEID pszPronunciation);
   5860 
   5861     HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
   5862         ISpLexicon *This,
   5863         LPCWSTR pszWord,
   5864         WORD LangID,
   5865         SPPARTOFSPEECH ePartOfSpeech,
   5866         PCSPPHONEID pszPronunciation);
   5867 
   5868     HRESULT (STDMETHODCALLTYPE *GetGeneration)(
   5869         ISpLexicon *This,
   5870         DWORD *pdwGeneration);
   5871 
   5872     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
   5873         ISpLexicon *This,
   5874         DWORD dwFlags,
   5875         DWORD *pdwGeneration,
   5876         SPWORDLIST *pWordList);
   5877 
   5878     HRESULT (STDMETHODCALLTYPE *GetWords)(
   5879         ISpLexicon *This,
   5880         DWORD dwFlags,
   5881         DWORD *pdwGeneration,
   5882         DWORD *pdwCookie,
   5883         SPWORDLIST *pWordList);
   5884 
   5885     END_INTERFACE
   5886 } ISpLexiconVtbl;
   5887 
   5888 interface ISpLexicon {
   5889     CONST_VTBL ISpLexiconVtbl* lpVtbl;
   5890 };
   5891 
   5892 #ifdef COBJMACROS
   5893 #ifndef WIDL_C_INLINE_WRAPPERS
   5894 /*** IUnknown methods ***/
   5895 #define ISpLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5896 #define ISpLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
   5897 #define ISpLexicon_Release(This) (This)->lpVtbl->Release(This)
   5898 /*** ISpLexicon methods ***/
   5899 #define ISpLexicon_GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList)
   5900 #define ISpLexicon_AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
   5901 #define ISpLexicon_RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
   5902 #define ISpLexicon_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
   5903 #define ISpLexicon_GetGenerationChange(This,dwFlags,pdwGeneration,pWordList) (This)->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList)
   5904 #define ISpLexicon_GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList)
   5905 #else
   5906 /*** IUnknown methods ***/
   5907 static inline HRESULT ISpLexicon_QueryInterface(ISpLexicon* This,REFIID riid,void **ppvObject) {
   5908     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5909 }
   5910 static inline ULONG ISpLexicon_AddRef(ISpLexicon* This) {
   5911     return This->lpVtbl->AddRef(This);
   5912 }
   5913 static inline ULONG ISpLexicon_Release(ISpLexicon* This) {
   5914     return This->lpVtbl->Release(This);
   5915 }
   5916 /*** ISpLexicon methods ***/
   5917 static inline HRESULT ISpLexicon_GetPronunciations(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,DWORD dwFlags,SPWORDPRONUNCIATIONLIST *pWordPronunciationList) {
   5918     return This->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList);
   5919 }
   5920 static inline HRESULT ISpLexicon_AddPronunciation(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
   5921     return This->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
   5922 }
   5923 static inline HRESULT ISpLexicon_RemovePronunciation(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
   5924     return This->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
   5925 }
   5926 static inline HRESULT ISpLexicon_GetGeneration(ISpLexicon* This,DWORD *pdwGeneration) {
   5927     return This->lpVtbl->GetGeneration(This,pdwGeneration);
   5928 }
   5929 static inline HRESULT ISpLexicon_GetGenerationChange(ISpLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
   5930     return This->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList);
   5931 }
   5932 static inline HRESULT ISpLexicon_GetWords(ISpLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
   5933     return This->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList);
   5934 }
   5935 #endif
   5936 #endif
   5937 
   5938 #endif
   5939 
   5940 
   5941 #endif  /* __ISpLexicon_INTERFACE_DEFINED__ */
   5942 
   5943 /*****************************************************************************
   5944  * ISpContainerLexicon interface
   5945  */
   5946 #ifndef __ISpContainerLexicon_INTERFACE_DEFINED__
   5947 #define __ISpContainerLexicon_INTERFACE_DEFINED__
   5948 
   5949 DEFINE_GUID(IID_ISpContainerLexicon, 0x8565572f, 0xc094, 0x41cc, 0xb5,0x6e, 0x10,0xbd,0x9c,0x3f,0xf0,0x44);
   5950 #if defined(__cplusplus) && !defined(CINTERFACE)
   5951 MIDL_INTERFACE("8565572f-c094-41cc-b56e-10bd9c3ff044")
   5952 ISpContainerLexicon : public ISpLexicon
   5953 {
   5954     virtual HRESULT STDMETHODCALLTYPE AddLexicon(
   5955         ISpLexicon *pAddLexicon,
   5956         DWORD dwFlags) = 0;
   5957 
   5958 };
   5959 #ifdef __CRT_UUID_DECL
   5960 __CRT_UUID_DECL(ISpContainerLexicon, 0x8565572f, 0xc094, 0x41cc, 0xb5,0x6e, 0x10,0xbd,0x9c,0x3f,0xf0,0x44)
   5961 #endif
   5962 #else
   5963 typedef struct ISpContainerLexiconVtbl {
   5964     BEGIN_INTERFACE
   5965 
   5966     /*** IUnknown methods ***/
   5967     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5968         ISpContainerLexicon *This,
   5969         REFIID riid,
   5970         void **ppvObject);
   5971 
   5972     ULONG (STDMETHODCALLTYPE *AddRef)(
   5973         ISpContainerLexicon *This);
   5974 
   5975     ULONG (STDMETHODCALLTYPE *Release)(
   5976         ISpContainerLexicon *This);
   5977 
   5978     /*** ISpLexicon methods ***/
   5979     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
   5980         ISpContainerLexicon *This,
   5981         LPCWSTR pszWord,
   5982         WORD LangID,
   5983         DWORD dwFlags,
   5984         SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
   5985 
   5986     HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
   5987         ISpContainerLexicon *This,
   5988         LPCWSTR pszWord,
   5989         WORD LangID,
   5990         SPPARTOFSPEECH ePartOfSpeech,
   5991         PCSPPHONEID pszPronunciation);
   5992 
   5993     HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
   5994         ISpContainerLexicon *This,
   5995         LPCWSTR pszWord,
   5996         WORD LangID,
   5997         SPPARTOFSPEECH ePartOfSpeech,
   5998         PCSPPHONEID pszPronunciation);
   5999 
   6000     HRESULT (STDMETHODCALLTYPE *GetGeneration)(
   6001         ISpContainerLexicon *This,
   6002         DWORD *pdwGeneration);
   6003 
   6004     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
   6005         ISpContainerLexicon *This,
   6006         DWORD dwFlags,
   6007         DWORD *pdwGeneration,
   6008         SPWORDLIST *pWordList);
   6009 
   6010     HRESULT (STDMETHODCALLTYPE *GetWords)(
   6011         ISpContainerLexicon *This,
   6012         DWORD dwFlags,
   6013         DWORD *pdwGeneration,
   6014         DWORD *pdwCookie,
   6015         SPWORDLIST *pWordList);
   6016 
   6017     /*** ISpContainerLexicon methods ***/
   6018     HRESULT (STDMETHODCALLTYPE *AddLexicon)(
   6019         ISpContainerLexicon *This,
   6020         ISpLexicon *pAddLexicon,
   6021         DWORD dwFlags);
   6022 
   6023     END_INTERFACE
   6024 } ISpContainerLexiconVtbl;
   6025 
   6026 interface ISpContainerLexicon {
   6027     CONST_VTBL ISpContainerLexiconVtbl* lpVtbl;
   6028 };
   6029 
   6030 #ifdef COBJMACROS
   6031 #ifndef WIDL_C_INLINE_WRAPPERS
   6032 /*** IUnknown methods ***/
   6033 #define ISpContainerLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6034 #define ISpContainerLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
   6035 #define ISpContainerLexicon_Release(This) (This)->lpVtbl->Release(This)
   6036 /*** ISpLexicon methods ***/
   6037 #define ISpContainerLexicon_GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList)
   6038 #define ISpContainerLexicon_AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
   6039 #define ISpContainerLexicon_RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
   6040 #define ISpContainerLexicon_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
   6041 #define ISpContainerLexicon_GetGenerationChange(This,dwFlags,pdwGeneration,pWordList) (This)->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList)
   6042 #define ISpContainerLexicon_GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList)
   6043 /*** ISpContainerLexicon methods ***/
   6044 #define ISpContainerLexicon_AddLexicon(This,pAddLexicon,dwFlags) (This)->lpVtbl->AddLexicon(This,pAddLexicon,dwFlags)
   6045 #else
   6046 /*** IUnknown methods ***/
   6047 static inline HRESULT ISpContainerLexicon_QueryInterface(ISpContainerLexicon* This,REFIID riid,void **ppvObject) {
   6048     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6049 }
   6050 static inline ULONG ISpContainerLexicon_AddRef(ISpContainerLexicon* This) {
   6051     return This->lpVtbl->AddRef(This);
   6052 }
   6053 static inline ULONG ISpContainerLexicon_Release(ISpContainerLexicon* This) {
   6054     return This->lpVtbl->Release(This);
   6055 }
   6056 /*** ISpLexicon methods ***/
   6057 static inline HRESULT ISpContainerLexicon_GetPronunciations(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,DWORD dwFlags,SPWORDPRONUNCIATIONLIST *pWordPronunciationList) {
   6058     return This->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList);
   6059 }
   6060 static inline HRESULT ISpContainerLexicon_AddPronunciation(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
   6061     return This->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
   6062 }
   6063 static inline HRESULT ISpContainerLexicon_RemovePronunciation(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
   6064     return This->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
   6065 }
   6066 static inline HRESULT ISpContainerLexicon_GetGeneration(ISpContainerLexicon* This,DWORD *pdwGeneration) {
   6067     return This->lpVtbl->GetGeneration(This,pdwGeneration);
   6068 }
   6069 static inline HRESULT ISpContainerLexicon_GetGenerationChange(ISpContainerLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
   6070     return This->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList);
   6071 }
   6072 static inline HRESULT ISpContainerLexicon_GetWords(ISpContainerLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
   6073     return This->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList);
   6074 }
   6075 /*** ISpContainerLexicon methods ***/
   6076 static inline HRESULT ISpContainerLexicon_AddLexicon(ISpContainerLexicon* This,ISpLexicon *pAddLexicon,DWORD dwFlags) {
   6077     return This->lpVtbl->AddLexicon(This,pAddLexicon,dwFlags);
   6078 }
   6079 #endif
   6080 #endif
   6081 
   6082 #endif
   6083 
   6084 
   6085 #endif  /* __ISpContainerLexicon_INTERFACE_DEFINED__ */
   6086 
   6087 typedef struct SPSHORTCUTPAIR {
   6088     struct SPSHORTCUTPAIR *pNextSHORTCUTPAIR;
   6089     WORD LangID;
   6090     SPSHORTCUTTYPE shType;
   6091     LPWSTR pszDisplay;
   6092     LPWSTR pszSpoken;
   6093 } SPSHORTCUTPAIR;
   6094 typedef struct SPSHORTCUTPAIRLIST {
   6095     ULONG ulSize;
   6096     BYTE *pvBuffer;
   6097     SPSHORTCUTPAIR *pFirstShortcutPair;
   6098 } SPSHORTCUTPAIRLIST;
   6099 /*****************************************************************************
   6100  * ISpShortcut interface
   6101  */
   6102 #ifndef __ISpShortcut_INTERFACE_DEFINED__
   6103 #define __ISpShortcut_INTERFACE_DEFINED__
   6104 
   6105 DEFINE_GUID(IID_ISpShortcut, 0x3df681e2, 0xea56, 0x11d9, 0x8b,0xde, 0xf6,0x6b,0xad,0x1e,0x3f,0x3a);
   6106 #if defined(__cplusplus) && !defined(CINTERFACE)
   6107 MIDL_INTERFACE("3df681e2-ea56-11d9-8bde-f66bad1e3f3a")
   6108 ISpShortcut : public IUnknown
   6109 {
   6110     virtual HRESULT STDMETHODCALLTYPE AddShortcut(
   6111         LPCWSTR pszDisplay,
   6112         WORD LangID,
   6113         LPCWSTR pszSpoken,
   6114         SPSHORTCUTTYPE shType) = 0;
   6115 
   6116     virtual HRESULT STDMETHODCALLTYPE RemoveShortcut(
   6117         LPCWSTR pszDisplay,
   6118         WORD LangID,
   6119         LPCWSTR pszSpoken,
   6120         SPSHORTCUTTYPE shType) = 0;
   6121 
   6122     virtual HRESULT STDMETHODCALLTYPE GetShortcuts(
   6123         WORD LangID,
   6124         SPSHORTCUTPAIRLIST *pShortcutpairList) = 0;
   6125 
   6126     virtual HRESULT STDMETHODCALLTYPE GetGeneration(
   6127         DWORD *pdwGeneration) = 0;
   6128 
   6129     virtual HRESULT STDMETHODCALLTYPE GetWordsFromGenerationChange(
   6130         DWORD *pdwGeneration,
   6131         SPWORDLIST *pWordList) = 0;
   6132 
   6133     virtual HRESULT STDMETHODCALLTYPE GetWords(
   6134         DWORD *pdwGeneration,
   6135         DWORD *pdwCookie,
   6136         SPWORDLIST *pWordList) = 0;
   6137 
   6138     virtual HRESULT STDMETHODCALLTYPE GetShortcutsForGeneration(
   6139         DWORD *pdwGeneration,
   6140         DWORD *pdwCookie,
   6141         SPSHORTCUTPAIRLIST *pShortcutpairList) = 0;
   6142 
   6143     virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
   6144         DWORD *pdwGeneration,
   6145         SPSHORTCUTPAIRLIST *pShortcutpairList) = 0;
   6146 
   6147 };
   6148 #ifdef __CRT_UUID_DECL
   6149 __CRT_UUID_DECL(ISpShortcut, 0x3df681e2, 0xea56, 0x11d9, 0x8b,0xde, 0xf6,0x6b,0xad,0x1e,0x3f,0x3a)
   6150 #endif
   6151 #else
   6152 typedef struct ISpShortcutVtbl {
   6153     BEGIN_INTERFACE
   6154 
   6155     /*** IUnknown methods ***/
   6156     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6157         ISpShortcut *This,
   6158         REFIID riid,
   6159         void **ppvObject);
   6160 
   6161     ULONG (STDMETHODCALLTYPE *AddRef)(
   6162         ISpShortcut *This);
   6163 
   6164     ULONG (STDMETHODCALLTYPE *Release)(
   6165         ISpShortcut *This);
   6166 
   6167     /*** ISpShortcut methods ***/
   6168     HRESULT (STDMETHODCALLTYPE *AddShortcut)(
   6169         ISpShortcut *This,
   6170         LPCWSTR pszDisplay,
   6171         WORD LangID,
   6172         LPCWSTR pszSpoken,
   6173         SPSHORTCUTTYPE shType);
   6174 
   6175     HRESULT (STDMETHODCALLTYPE *RemoveShortcut)(
   6176         ISpShortcut *This,
   6177         LPCWSTR pszDisplay,
   6178         WORD LangID,
   6179         LPCWSTR pszSpoken,
   6180         SPSHORTCUTTYPE shType);
   6181 
   6182     HRESULT (STDMETHODCALLTYPE *GetShortcuts)(
   6183         ISpShortcut *This,
   6184         WORD LangID,
   6185         SPSHORTCUTPAIRLIST *pShortcutpairList);
   6186 
   6187     HRESULT (STDMETHODCALLTYPE *GetGeneration)(
   6188         ISpShortcut *This,
   6189         DWORD *pdwGeneration);
   6190 
   6191     HRESULT (STDMETHODCALLTYPE *GetWordsFromGenerationChange)(
   6192         ISpShortcut *This,
   6193         DWORD *pdwGeneration,
   6194         SPWORDLIST *pWordList);
   6195 
   6196     HRESULT (STDMETHODCALLTYPE *GetWords)(
   6197         ISpShortcut *This,
   6198         DWORD *pdwGeneration,
   6199         DWORD *pdwCookie,
   6200         SPWORDLIST *pWordList);
   6201 
   6202     HRESULT (STDMETHODCALLTYPE *GetShortcutsForGeneration)(
   6203         ISpShortcut *This,
   6204         DWORD *pdwGeneration,
   6205         DWORD *pdwCookie,
   6206         SPSHORTCUTPAIRLIST *pShortcutpairList);
   6207 
   6208     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
   6209         ISpShortcut *This,
   6210         DWORD *pdwGeneration,
   6211         SPSHORTCUTPAIRLIST *pShortcutpairList);
   6212 
   6213     END_INTERFACE
   6214 } ISpShortcutVtbl;
   6215 
   6216 interface ISpShortcut {
   6217     CONST_VTBL ISpShortcutVtbl* lpVtbl;
   6218 };
   6219 
   6220 #ifdef COBJMACROS
   6221 #ifndef WIDL_C_INLINE_WRAPPERS
   6222 /*** IUnknown methods ***/
   6223 #define ISpShortcut_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6224 #define ISpShortcut_AddRef(This) (This)->lpVtbl->AddRef(This)
   6225 #define ISpShortcut_Release(This) (This)->lpVtbl->Release(This)
   6226 /*** ISpShortcut methods ***/
   6227 #define ISpShortcut_AddShortcut(This,pszDisplay,LangID,pszSpoken,shType) (This)->lpVtbl->AddShortcut(This,pszDisplay,LangID,pszSpoken,shType)
   6228 #define ISpShortcut_RemoveShortcut(This,pszDisplay,LangID,pszSpoken,shType) (This)->lpVtbl->RemoveShortcut(This,pszDisplay,LangID,pszSpoken,shType)
   6229 #define ISpShortcut_GetShortcuts(This,LangID,pShortcutpairList) (This)->lpVtbl->GetShortcuts(This,LangID,pShortcutpairList)
   6230 #define ISpShortcut_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
   6231 #define ISpShortcut_GetWordsFromGenerationChange(This,pdwGeneration,pWordList) (This)->lpVtbl->GetWordsFromGenerationChange(This,pdwGeneration,pWordList)
   6232 #define ISpShortcut_GetWords(This,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,pdwGeneration,pdwCookie,pWordList)
   6233 #define ISpShortcut_GetShortcutsForGeneration(This,pdwGeneration,pdwCookie,pShortcutpairList) (This)->lpVtbl->GetShortcutsForGeneration(This,pdwGeneration,pdwCookie,pShortcutpairList)
   6234 #define ISpShortcut_GetGenerationChange(This,pdwGeneration,pShortcutpairList) (This)->lpVtbl->GetGenerationChange(This,pdwGeneration,pShortcutpairList)
   6235 #else
   6236 /*** IUnknown methods ***/
   6237 static inline HRESULT ISpShortcut_QueryInterface(ISpShortcut* This,REFIID riid,void **ppvObject) {
   6238     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6239 }
   6240 static inline ULONG ISpShortcut_AddRef(ISpShortcut* This) {
   6241     return This->lpVtbl->AddRef(This);
   6242 }
   6243 static inline ULONG ISpShortcut_Release(ISpShortcut* This) {
   6244     return This->lpVtbl->Release(This);
   6245 }
   6246 /*** ISpShortcut methods ***/
   6247 static inline HRESULT ISpShortcut_AddShortcut(ISpShortcut* This,LPCWSTR pszDisplay,WORD LangID,LPCWSTR pszSpoken,SPSHORTCUTTYPE shType) {
   6248     return This->lpVtbl->AddShortcut(This,pszDisplay,LangID,pszSpoken,shType);
   6249 }
   6250 static inline HRESULT ISpShortcut_RemoveShortcut(ISpShortcut* This,LPCWSTR pszDisplay,WORD LangID,LPCWSTR pszSpoken,SPSHORTCUTTYPE shType) {
   6251     return This->lpVtbl->RemoveShortcut(This,pszDisplay,LangID,pszSpoken,shType);
   6252 }
   6253 static inline HRESULT ISpShortcut_GetShortcuts(ISpShortcut* This,WORD LangID,SPSHORTCUTPAIRLIST *pShortcutpairList) {
   6254     return This->lpVtbl->GetShortcuts(This,LangID,pShortcutpairList);
   6255 }
   6256 static inline HRESULT ISpShortcut_GetGeneration(ISpShortcut* This,DWORD *pdwGeneration) {
   6257     return This->lpVtbl->GetGeneration(This,pdwGeneration);
   6258 }
   6259 static inline HRESULT ISpShortcut_GetWordsFromGenerationChange(ISpShortcut* This,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
   6260     return This->lpVtbl->GetWordsFromGenerationChange(This,pdwGeneration,pWordList);
   6261 }
   6262 static inline HRESULT ISpShortcut_GetWords(ISpShortcut* This,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
   6263     return This->lpVtbl->GetWords(This,pdwGeneration,pdwCookie,pWordList);
   6264 }
   6265 static inline HRESULT ISpShortcut_GetShortcutsForGeneration(ISpShortcut* This,DWORD *pdwGeneration,DWORD *pdwCookie,SPSHORTCUTPAIRLIST *pShortcutpairList) {
   6266     return This->lpVtbl->GetShortcutsForGeneration(This,pdwGeneration,pdwCookie,pShortcutpairList);
   6267 }
   6268 static inline HRESULT ISpShortcut_GetGenerationChange(ISpShortcut* This,DWORD *pdwGeneration,SPSHORTCUTPAIRLIST *pShortcutpairList) {
   6269     return This->lpVtbl->GetGenerationChange(This,pdwGeneration,pShortcutpairList);
   6270 }
   6271 #endif
   6272 #endif
   6273 
   6274 #endif
   6275 
   6276 
   6277 #endif  /* __ISpShortcut_INTERFACE_DEFINED__ */
   6278 
   6279 /*****************************************************************************
   6280  * ISpPhoneConverter interface
   6281  */
   6282 #ifndef __ISpPhoneConverter_INTERFACE_DEFINED__
   6283 #define __ISpPhoneConverter_INTERFACE_DEFINED__
   6284 
   6285 DEFINE_GUID(IID_ISpPhoneConverter, 0x8445c581, 0x0cac, 0x4a38, 0xab,0xfe, 0x9b,0x2c,0xe2,0x82,0x64,0x55);
   6286 #if defined(__cplusplus) && !defined(CINTERFACE)
   6287 MIDL_INTERFACE("8445c581-0cac-4a38-abfe-9b2ce2826455")
   6288 ISpPhoneConverter : public ISpObjectWithToken
   6289 {
   6290     virtual HRESULT STDMETHODCALLTYPE PhoneToId(
   6291         LPCWSTR pszPhone,
   6292         SPPHONEID *pId) = 0;
   6293 
   6294     virtual HRESULT STDMETHODCALLTYPE IdToPhone(
   6295         PCSPPHONEID pId,
   6296         WCHAR *pszPhone) = 0;
   6297 
   6298 };
   6299 #ifdef __CRT_UUID_DECL
   6300 __CRT_UUID_DECL(ISpPhoneConverter, 0x8445c581, 0x0cac, 0x4a38, 0xab,0xfe, 0x9b,0x2c,0xe2,0x82,0x64,0x55)
   6301 #endif
   6302 #else
   6303 typedef struct ISpPhoneConverterVtbl {
   6304     BEGIN_INTERFACE
   6305 
   6306     /*** IUnknown methods ***/
   6307     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6308         ISpPhoneConverter *This,
   6309         REFIID riid,
   6310         void **ppvObject);
   6311 
   6312     ULONG (STDMETHODCALLTYPE *AddRef)(
   6313         ISpPhoneConverter *This);
   6314 
   6315     ULONG (STDMETHODCALLTYPE *Release)(
   6316         ISpPhoneConverter *This);
   6317 
   6318     /*** ISpObjectWithToken methods ***/
   6319     HRESULT (STDMETHODCALLTYPE *SetObjectToken)(
   6320         ISpPhoneConverter *This,
   6321         ISpObjectToken *pToken);
   6322 
   6323     HRESULT (STDMETHODCALLTYPE *GetObjectToken)(
   6324         ISpPhoneConverter *This,
   6325         ISpObjectToken **ppToken);
   6326 
   6327     /*** ISpPhoneConverter methods ***/
   6328     HRESULT (STDMETHODCALLTYPE *PhoneToId)(
   6329         ISpPhoneConverter *This,
   6330         LPCWSTR pszPhone,
   6331         SPPHONEID *pId);
   6332 
   6333     HRESULT (STDMETHODCALLTYPE *IdToPhone)(
   6334         ISpPhoneConverter *This,
   6335         PCSPPHONEID pId,
   6336         WCHAR *pszPhone);
   6337 
   6338     END_INTERFACE
   6339 } ISpPhoneConverterVtbl;
   6340 
   6341 interface ISpPhoneConverter {
   6342     CONST_VTBL ISpPhoneConverterVtbl* lpVtbl;
   6343 };
   6344 
   6345 #ifdef COBJMACROS
   6346 #ifndef WIDL_C_INLINE_WRAPPERS
   6347 /*** IUnknown methods ***/
   6348 #define ISpPhoneConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6349 #define ISpPhoneConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
   6350 #define ISpPhoneConverter_Release(This) (This)->lpVtbl->Release(This)
   6351 /*** ISpObjectWithToken methods ***/
   6352 #define ISpPhoneConverter_SetObjectToken(This,pToken) (This)->lpVtbl->SetObjectToken(This,pToken)
   6353 #define ISpPhoneConverter_GetObjectToken(This,ppToken) (This)->lpVtbl->GetObjectToken(This,ppToken)
   6354 /*** ISpPhoneConverter methods ***/
   6355 #define ISpPhoneConverter_PhoneToId(This,pszPhone,pId) (This)->lpVtbl->PhoneToId(This,pszPhone,pId)
   6356 #define ISpPhoneConverter_IdToPhone(This,pId,pszPhone) (This)->lpVtbl->IdToPhone(This,pId,pszPhone)
   6357 #else
   6358 /*** IUnknown methods ***/
   6359 static inline HRESULT ISpPhoneConverter_QueryInterface(ISpPhoneConverter* This,REFIID riid,void **ppvObject) {
   6360     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6361 }
   6362 static inline ULONG ISpPhoneConverter_AddRef(ISpPhoneConverter* This) {
   6363     return This->lpVtbl->AddRef(This);
   6364 }
   6365 static inline ULONG ISpPhoneConverter_Release(ISpPhoneConverter* This) {
   6366     return This->lpVtbl->Release(This);
   6367 }
   6368 /*** ISpObjectWithToken methods ***/
   6369 static inline HRESULT ISpPhoneConverter_SetObjectToken(ISpPhoneConverter* This,ISpObjectToken *pToken) {
   6370     return This->lpVtbl->SetObjectToken(This,pToken);
   6371 }
   6372 static inline HRESULT ISpPhoneConverter_GetObjectToken(ISpPhoneConverter* This,ISpObjectToken **ppToken) {
   6373     return This->lpVtbl->GetObjectToken(This,ppToken);
   6374 }
   6375 /*** ISpPhoneConverter methods ***/
   6376 static inline HRESULT ISpPhoneConverter_PhoneToId(ISpPhoneConverter* This,LPCWSTR pszPhone,SPPHONEID *pId) {
   6377     return This->lpVtbl->PhoneToId(This,pszPhone,pId);
   6378 }
   6379 static inline HRESULT ISpPhoneConverter_IdToPhone(ISpPhoneConverter* This,PCSPPHONEID pId,WCHAR *pszPhone) {
   6380     return This->lpVtbl->IdToPhone(This,pId,pszPhone);
   6381 }
   6382 #endif
   6383 #endif
   6384 
   6385 #endif
   6386 
   6387 
   6388 #endif  /* __ISpPhoneConverter_INTERFACE_DEFINED__ */
   6389 
   6390 /*****************************************************************************
   6391  * ISpPhoneticAlphabetConverter interface
   6392  */
   6393 #ifndef __ISpPhoneticAlphabetConverter_INTERFACE_DEFINED__
   6394 #define __ISpPhoneticAlphabetConverter_INTERFACE_DEFINED__
   6395 
   6396 DEFINE_GUID(IID_ISpPhoneticAlphabetConverter, 0x133adcd4, 0x19b4, 0x4020, 0x9f,0xdc, 0x84,0x2e,0x78,0x25,0x3b,0x17);
   6397 #if defined(__cplusplus) && !defined(CINTERFACE)
   6398 MIDL_INTERFACE("133adcd4-19b4-4020-9fdc-842e78253b17")
   6399 ISpPhoneticAlphabetConverter : public IUnknown
   6400 {
   6401     virtual HRESULT STDMETHODCALLTYPE GetLangId(
   6402         WORD *pLangID) = 0;
   6403 
   6404     virtual HRESULT STDMETHODCALLTYPE SetLangId(
   6405         WORD LangID) = 0;
   6406 
   6407     virtual HRESULT STDMETHODCALLTYPE SAPI2UPS(
   6408         const SPPHONEID *pszSAPIId,
   6409         SPPHONEID *pszUPSId,
   6410         DWORD cMaxLength) = 0;
   6411 
   6412     virtual HRESULT STDMETHODCALLTYPE UPS2SAPI(
   6413         const SPPHONEID *pszUPSId,
   6414         SPPHONEID *pszSAPIId,
   6415         DWORD cMaxLength) = 0;
   6416 
   6417     virtual HRESULT STDMETHODCALLTYPE GetMaxConvertLength(
   6418         DWORD cSrcLength,
   6419         WINBOOL bSAPI2UPS,
   6420         DWORD *pcMaxDestLength) = 0;
   6421 
   6422 };
   6423 #ifdef __CRT_UUID_DECL
   6424 __CRT_UUID_DECL(ISpPhoneticAlphabetConverter, 0x133adcd4, 0x19b4, 0x4020, 0x9f,0xdc, 0x84,0x2e,0x78,0x25,0x3b,0x17)
   6425 #endif
   6426 #else
   6427 typedef struct ISpPhoneticAlphabetConverterVtbl {
   6428     BEGIN_INTERFACE
   6429 
   6430     /*** IUnknown methods ***/
   6431     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6432         ISpPhoneticAlphabetConverter *This,
   6433         REFIID riid,
   6434         void **ppvObject);
   6435 
   6436     ULONG (STDMETHODCALLTYPE *AddRef)(
   6437         ISpPhoneticAlphabetConverter *This);
   6438 
   6439     ULONG (STDMETHODCALLTYPE *Release)(
   6440         ISpPhoneticAlphabetConverter *This);
   6441 
   6442     /*** ISpPhoneticAlphabetConverter methods ***/
   6443     HRESULT (STDMETHODCALLTYPE *GetLangId)(
   6444         ISpPhoneticAlphabetConverter *This,
   6445         WORD *pLangID);
   6446 
   6447     HRESULT (STDMETHODCALLTYPE *SetLangId)(
   6448         ISpPhoneticAlphabetConverter *This,
   6449         WORD LangID);
   6450 
   6451     HRESULT (STDMETHODCALLTYPE *SAPI2UPS)(
   6452         ISpPhoneticAlphabetConverter *This,
   6453         const SPPHONEID *pszSAPIId,
   6454         SPPHONEID *pszUPSId,
   6455         DWORD cMaxLength);
   6456 
   6457     HRESULT (STDMETHODCALLTYPE *UPS2SAPI)(
   6458         ISpPhoneticAlphabetConverter *This,
   6459         const SPPHONEID *pszUPSId,
   6460         SPPHONEID *pszSAPIId,
   6461         DWORD cMaxLength);
   6462 
   6463     HRESULT (STDMETHODCALLTYPE *GetMaxConvertLength)(
   6464         ISpPhoneticAlphabetConverter *This,
   6465         DWORD cSrcLength,
   6466         WINBOOL bSAPI2UPS,
   6467         DWORD *pcMaxDestLength);
   6468 
   6469     END_INTERFACE
   6470 } ISpPhoneticAlphabetConverterVtbl;
   6471 
   6472 interface ISpPhoneticAlphabetConverter {
   6473     CONST_VTBL ISpPhoneticAlphabetConverterVtbl* lpVtbl;
   6474 };
   6475 
   6476 #ifdef COBJMACROS
   6477 #ifndef WIDL_C_INLINE_WRAPPERS
   6478 /*** IUnknown methods ***/
   6479 #define ISpPhoneticAlphabetConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6480 #define ISpPhoneticAlphabetConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
   6481 #define ISpPhoneticAlphabetConverter_Release(This) (This)->lpVtbl->Release(This)
   6482 /*** ISpPhoneticAlphabetConverter methods ***/
   6483 #define ISpPhoneticAlphabetConverter_GetLangId(This,pLangID) (This)->lpVtbl->GetLangId(This,pLangID)
   6484 #define ISpPhoneticAlphabetConverter_SetLangId(This,LangID) (This)->lpVtbl->SetLangId(This,LangID)
   6485 #define ISpPhoneticAlphabetConverter_SAPI2UPS(This,pszSAPIId,pszUPSId,cMaxLength) (This)->lpVtbl->SAPI2UPS(This,pszSAPIId,pszUPSId,cMaxLength)
   6486 #define ISpPhoneticAlphabetConverter_UPS2SAPI(This,pszUPSId,pszSAPIId,cMaxLength) (This)->lpVtbl->UPS2SAPI(This,pszUPSId,pszSAPIId,cMaxLength)
   6487 #define ISpPhoneticAlphabetConverter_GetMaxConvertLength(This,cSrcLength,bSAPI2UPS,pcMaxDestLength) (This)->lpVtbl->GetMaxConvertLength(This,cSrcLength,bSAPI2UPS,pcMaxDestLength)
   6488 #else
   6489 /*** IUnknown methods ***/
   6490 static inline HRESULT ISpPhoneticAlphabetConverter_QueryInterface(ISpPhoneticAlphabetConverter* This,REFIID riid,void **ppvObject) {
   6491     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6492 }
   6493 static inline ULONG ISpPhoneticAlphabetConverter_AddRef(ISpPhoneticAlphabetConverter* This) {
   6494     return This->lpVtbl->AddRef(This);
   6495 }
   6496 static inline ULONG ISpPhoneticAlphabetConverter_Release(ISpPhoneticAlphabetConverter* This) {
   6497     return This->lpVtbl->Release(This);
   6498 }
   6499 /*** ISpPhoneticAlphabetConverter methods ***/
   6500 static inline HRESULT ISpPhoneticAlphabetConverter_GetLangId(ISpPhoneticAlphabetConverter* This,WORD *pLangID) {
   6501     return This->lpVtbl->GetLangId(This,pLangID);
   6502 }
   6503 static inline HRESULT ISpPhoneticAlphabetConverter_SetLangId(ISpPhoneticAlphabetConverter* This,WORD LangID) {
   6504     return This->lpVtbl->SetLangId(This,LangID);
   6505 }
   6506 static inline HRESULT ISpPhoneticAlphabetConverter_SAPI2UPS(ISpPhoneticAlphabetConverter* This,const SPPHONEID *pszSAPIId,SPPHONEID *pszUPSId,DWORD cMaxLength) {
   6507     return This->lpVtbl->SAPI2UPS(This,pszSAPIId,pszUPSId,cMaxLength);
   6508 }
   6509 static inline HRESULT ISpPhoneticAlphabetConverter_UPS2SAPI(ISpPhoneticAlphabetConverter* This,const SPPHONEID *pszUPSId,SPPHONEID *pszSAPIId,DWORD cMaxLength) {
   6510     return This->lpVtbl->UPS2SAPI(This,pszUPSId,pszSAPIId,cMaxLength);
   6511 }
   6512 static inline HRESULT ISpPhoneticAlphabetConverter_GetMaxConvertLength(ISpPhoneticAlphabetConverter* This,DWORD cSrcLength,WINBOOL bSAPI2UPS,DWORD *pcMaxDestLength) {
   6513     return This->lpVtbl->GetMaxConvertLength(This,cSrcLength,bSAPI2UPS,pcMaxDestLength);
   6514 }
   6515 #endif
   6516 #endif
   6517 
   6518 #endif
   6519 
   6520 
   6521 #endif  /* __ISpPhoneticAlphabetConverter_INTERFACE_DEFINED__ */
   6522 
   6523 /*****************************************************************************
   6524  * ISpPhoneticAlphabetSelection interface
   6525  */
   6526 #ifndef __ISpPhoneticAlphabetSelection_INTERFACE_DEFINED__
   6527 #define __ISpPhoneticAlphabetSelection_INTERFACE_DEFINED__
   6528 
   6529 DEFINE_GUID(IID_ISpPhoneticAlphabetSelection, 0xb2745efd, 0x42ce, 0x48ca, 0x81,0xf1, 0xa9,0x6e,0x02,0x53,0x8a,0x90);
   6530 #if defined(__cplusplus) && !defined(CINTERFACE)
   6531 MIDL_INTERFACE("b2745efd-42ce-48ca-81f1-a96e02538a90")
   6532 ISpPhoneticAlphabetSelection : public IUnknown
   6533 {
   6534     virtual HRESULT STDMETHODCALLTYPE IsAlphabetUPS(
   6535         WINBOOL *pfIsUPS) = 0;
   6536 
   6537     virtual HRESULT STDMETHODCALLTYPE SetAlphabetToUPS(
   6538         WINBOOL fForceUPS) = 0;
   6539 
   6540 };
   6541 #ifdef __CRT_UUID_DECL
   6542 __CRT_UUID_DECL(ISpPhoneticAlphabetSelection, 0xb2745efd, 0x42ce, 0x48ca, 0x81,0xf1, 0xa9,0x6e,0x02,0x53,0x8a,0x90)
   6543 #endif
   6544 #else
   6545 typedef struct ISpPhoneticAlphabetSelectionVtbl {
   6546     BEGIN_INTERFACE
   6547 
   6548     /*** IUnknown methods ***/
   6549     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6550         ISpPhoneticAlphabetSelection *This,
   6551         REFIID riid,
   6552         void **ppvObject);
   6553 
   6554     ULONG (STDMETHODCALLTYPE *AddRef)(
   6555         ISpPhoneticAlphabetSelection *This);
   6556 
   6557     ULONG (STDMETHODCALLTYPE *Release)(
   6558         ISpPhoneticAlphabetSelection *This);
   6559 
   6560     /*** ISpPhoneticAlphabetSelection methods ***/
   6561     HRESULT (STDMETHODCALLTYPE *IsAlphabetUPS)(
   6562         ISpPhoneticAlphabetSelection *This,
   6563         WINBOOL *pfIsUPS);
   6564 
   6565     HRESULT (STDMETHODCALLTYPE *SetAlphabetToUPS)(
   6566         ISpPhoneticAlphabetSelection *This,
   6567         WINBOOL fForceUPS);
   6568 
   6569     END_INTERFACE
   6570 } ISpPhoneticAlphabetSelectionVtbl;
   6571 
   6572 interface ISpPhoneticAlphabetSelection {
   6573     CONST_VTBL ISpPhoneticAlphabetSelectionVtbl* lpVtbl;
   6574 };
   6575 
   6576 #ifdef COBJMACROS
   6577 #ifndef WIDL_C_INLINE_WRAPPERS
   6578 /*** IUnknown methods ***/
   6579 #define ISpPhoneticAlphabetSelection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6580 #define ISpPhoneticAlphabetSelection_AddRef(This) (This)->lpVtbl->AddRef(This)
   6581 #define ISpPhoneticAlphabetSelection_Release(This) (This)->lpVtbl->Release(This)
   6582 /*** ISpPhoneticAlphabetSelection methods ***/
   6583 #define ISpPhoneticAlphabetSelection_IsAlphabetUPS(This,pfIsUPS) (This)->lpVtbl->IsAlphabetUPS(This,pfIsUPS)
   6584 #define ISpPhoneticAlphabetSelection_SetAlphabetToUPS(This,fForceUPS) (This)->lpVtbl->SetAlphabetToUPS(This,fForceUPS)
   6585 #else
   6586 /*** IUnknown methods ***/
   6587 static inline HRESULT ISpPhoneticAlphabetSelection_QueryInterface(ISpPhoneticAlphabetSelection* This,REFIID riid,void **ppvObject) {
   6588     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6589 }
   6590 static inline ULONG ISpPhoneticAlphabetSelection_AddRef(ISpPhoneticAlphabetSelection* This) {
   6591     return This->lpVtbl->AddRef(This);
   6592 }
   6593 static inline ULONG ISpPhoneticAlphabetSelection_Release(ISpPhoneticAlphabetSelection* This) {
   6594     return This->lpVtbl->Release(This);
   6595 }
   6596 /*** ISpPhoneticAlphabetSelection methods ***/
   6597 static inline HRESULT ISpPhoneticAlphabetSelection_IsAlphabetUPS(ISpPhoneticAlphabetSelection* This,WINBOOL *pfIsUPS) {
   6598     return This->lpVtbl->IsAlphabetUPS(This,pfIsUPS);
   6599 }
   6600 static inline HRESULT ISpPhoneticAlphabetSelection_SetAlphabetToUPS(ISpPhoneticAlphabetSelection* This,WINBOOL fForceUPS) {
   6601     return This->lpVtbl->SetAlphabetToUPS(This,fForceUPS);
   6602 }
   6603 #endif
   6604 #endif
   6605 
   6606 #endif
   6607 
   6608 
   6609 #endif  /* __ISpPhoneticAlphabetSelection_INTERFACE_DEFINED__ */
   6610 
   6611 typedef struct SPVPITCH {
   6612     LONG MiddleAdj;
   6613     LONG RangeAdj;
   6614 } SPVPITCH;
   6615 typedef struct SPVCONTEXT {
   6616     LPCWSTR pCategory;
   6617     LPCWSTR pBefore;
   6618     LPCWSTR pAfter;
   6619 } SPVCONTEXT;
   6620 typedef struct SPVSTATE {
   6621     SPVACTIONS eAction;
   6622     WORD LangID;
   6623     WORD wReserved;
   6624     LONG EmphAdj;
   6625     LONG RateAdj;
   6626     ULONG Volume;
   6627     SPVPITCH PitchAdj;
   6628     ULONG SilenceMSecs;
   6629     SPPHONEID *pPhoneIds;
   6630     SPPARTOFSPEECH ePartOfSpeech;
   6631     SPVCONTEXT Context;
   6632 } SPVSTATE;
   6633 typedef struct SPVOICESTATUS {
   6634     ULONG ulCurrentStream;
   6635     ULONG ulLastStreamQueued;
   6636     HRESULT hrLastResult;
   6637     DWORD dwRunningState;
   6638     ULONG ulInputWordPos;
   6639     ULONG ulInputWordLen;
   6640     ULONG ulInputSentPos;
   6641     ULONG ulInputSentLen;
   6642     LONG lBookmarkId;
   6643     SPPHONEID PhonemeId;
   6644     SPVISEMES VisemeId;
   6645     DWORD dwReserved1;
   6646     DWORD dwReserved2;
   6647 } SPVOICESTATUS;
   6648 typedef enum SPEAKFLAGS {
   6649     SPF_DEFAULT = 0,
   6650     SPF_ASYNC = 1,
   6651     SPF_PURGEBEFORESPEAK = 2,
   6652     SPF_IS_FILENAME = 4,
   6653     SPF_IS_XML = 8,
   6654     SPF_IS_NOT_XML = 0x10,
   6655     SPF_PERSIST_XML = 0x20,
   6656     SPF_NLP_SPEAK_PUNC = 0x40,
   6657     SPF_PARSE_SAPI = 0x80,
   6658     SPF_PARSE_SSML = 0x100,
   6659     SPF_PARSE_AUTODETECT = 0,
   6660     SPF_NLP_MASK = SPF_NLP_SPEAK_PUNC,
   6661     SPF_PARSE_MASK = SPF_PARSE_SAPI | SPF_PARSE_SSML,
   6662     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,
   6663     SPF_UNUSED_FLAGS = ~SPF_VOICE_MASK
   6664 } SPEAKFLAGS;
   6665 /*****************************************************************************
   6666  * ISpVoice interface
   6667  */
   6668 #ifndef __ISpVoice_INTERFACE_DEFINED__
   6669 #define __ISpVoice_INTERFACE_DEFINED__
   6670 
   6671 DEFINE_GUID(IID_ISpVoice, 0x6c44df74, 0x72b9, 0x4992, 0xa1,0xec, 0xef,0x99,0x6e,0x04,0x22,0xd4);
   6672 #if defined(__cplusplus) && !defined(CINTERFACE)
   6673 MIDL_INTERFACE("6c44df74-72b9-4992-a1ec-ef996e0422d4")
   6674 ISpVoice : public ISpEventSource
   6675 {
   6676     virtual HRESULT STDMETHODCALLTYPE SetOutput(
   6677         IUnknown *pUnkOutput,
   6678         WINBOOL fAllowFormatChanges) = 0;
   6679 
   6680     virtual HRESULT STDMETHODCALLTYPE GetOutputObjectToken(
   6681         ISpObjectToken **ppObjectToken) = 0;
   6682 
   6683     virtual HRESULT STDMETHODCALLTYPE GetOutputStream(
   6684         ISpStreamFormat **ppStream) = 0;
   6685 
   6686     virtual HRESULT STDMETHODCALLTYPE Pause(
   6687         ) = 0;
   6688 
   6689     virtual HRESULT STDMETHODCALLTYPE Resume(
   6690         ) = 0;
   6691 
   6692     virtual HRESULT STDMETHODCALLTYPE SetVoice(
   6693         ISpObjectToken *pToken) = 0;
   6694 
   6695     virtual HRESULT STDMETHODCALLTYPE GetVoice(
   6696         ISpObjectToken **ppToken) = 0;
   6697 
   6698     virtual HRESULT STDMETHODCALLTYPE Speak(
   6699         LPCWSTR pwcs,
   6700         DWORD dwFlags,
   6701         ULONG *pulStreamNumber) = 0;
   6702 
   6703     virtual HRESULT STDMETHODCALLTYPE SpeakStream(
   6704         IStream *pStream,
   6705         DWORD dwFlags,
   6706         ULONG *pulStreamNumber) = 0;
   6707 
   6708     virtual HRESULT STDMETHODCALLTYPE GetStatus(
   6709         SPVOICESTATUS *pStatus,
   6710         LPWSTR *ppszLastBookmark) = 0;
   6711 
   6712     virtual HRESULT STDMETHODCALLTYPE Skip(
   6713         LPCWSTR pItemType,
   6714         LONG lNumItems,
   6715         ULONG *pulNumSkipped) = 0;
   6716 
   6717     virtual HRESULT STDMETHODCALLTYPE SetPriority(
   6718         SPVPRIORITY ePriority) = 0;
   6719 
   6720     virtual HRESULT STDMETHODCALLTYPE GetPriority(
   6721         SPVPRIORITY *pePriority) = 0;
   6722 
   6723     virtual HRESULT STDMETHODCALLTYPE SetAlertBoundary(
   6724         SPEVENTENUM eBoundary) = 0;
   6725 
   6726     virtual HRESULT STDMETHODCALLTYPE GetAlertBoundary(
   6727         SPEVENTENUM *peBoundary) = 0;
   6728 
   6729     virtual HRESULT STDMETHODCALLTYPE SetRate(
   6730         LONG RateAdjust) = 0;
   6731 
   6732     virtual HRESULT STDMETHODCALLTYPE GetRate(
   6733         LONG *pRateAdjust) = 0;
   6734 
   6735     virtual HRESULT STDMETHODCALLTYPE SetVolume(
   6736         USHORT usVolume) = 0;
   6737 
   6738     virtual HRESULT STDMETHODCALLTYPE GetVolume(
   6739         USHORT *pusVolume) = 0;
   6740 
   6741     virtual HRESULT STDMETHODCALLTYPE WaitUntilDone(
   6742         ULONG msTimeout) = 0;
   6743 
   6744     virtual HRESULT STDMETHODCALLTYPE SetSyncSpeakTimeout(
   6745         ULONG msTimeout) = 0;
   6746 
   6747     virtual HRESULT STDMETHODCALLTYPE GetSyncSpeakTimeout(
   6748         ULONG *pmsTimeout) = 0;
   6749 
   6750     virtual HANDLE STDMETHODCALLTYPE SpeakCompleteEvent(
   6751         ) = 0;
   6752 
   6753     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
   6754         LPCWSTR pszTypeOfUI,
   6755         void *pvExtraData,
   6756         ULONG cbExtraData,
   6757         WINBOOL *pfSupported) = 0;
   6758 
   6759     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
   6760         HWND hwndParent,
   6761         LPCWSTR pszTitle,
   6762         LPCWSTR pszTypeOfUI,
   6763         void *pvExtraData,
   6764         ULONG cbExtraData) = 0;
   6765 
   6766 };
   6767 #ifdef __CRT_UUID_DECL
   6768 __CRT_UUID_DECL(ISpVoice, 0x6c44df74, 0x72b9, 0x4992, 0xa1,0xec, 0xef,0x99,0x6e,0x04,0x22,0xd4)
   6769 #endif
   6770 #else
   6771 typedef struct ISpVoiceVtbl {
   6772     BEGIN_INTERFACE
   6773 
   6774     /*** IUnknown methods ***/
   6775     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6776         ISpVoice *This,
   6777         REFIID riid,
   6778         void **ppvObject);
   6779 
   6780     ULONG (STDMETHODCALLTYPE *AddRef)(
   6781         ISpVoice *This);
   6782 
   6783     ULONG (STDMETHODCALLTYPE *Release)(
   6784         ISpVoice *This);
   6785 
   6786     /*** ISpNotifySource methods ***/
   6787     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
   6788         ISpVoice *This,
   6789         ISpNotifySink *pNotifySink);
   6790 
   6791     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
   6792         ISpVoice *This,
   6793         HWND hWnd,
   6794         UINT Msg,
   6795         WPARAM wParam,
   6796         LPARAM lParam);
   6797 
   6798     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
   6799         ISpVoice *This,
   6800         SPNOTIFYCALLBACK *pfnCallback,
   6801         WPARAM wParam,
   6802         LPARAM lParam);
   6803 
   6804     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
   6805         ISpVoice *This,
   6806         ISpNotifyCallback *pSpCallback,
   6807         WPARAM wParam,
   6808         LPARAM lParam);
   6809 
   6810     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
   6811         ISpVoice *This);
   6812 
   6813     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
   6814         ISpVoice *This,
   6815         DWORD dwMilliseconds);
   6816 
   6817     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
   6818         ISpVoice *This);
   6819 
   6820     /*** ISpEventSource methods ***/
   6821     HRESULT (STDMETHODCALLTYPE *SetInterest)(
   6822         ISpVoice *This,
   6823         ULONGLONG ullEventInterest,
   6824         ULONGLONG ullQueuedInterest);
   6825 
   6826     HRESULT (STDMETHODCALLTYPE *GetEvents)(
   6827         ISpVoice *This,
   6828         ULONG ulCount,
   6829         SPEVENT *pEventArray,
   6830         ULONG *pulFetched);
   6831 
   6832     HRESULT (STDMETHODCALLTYPE *GetInfo)(
   6833         ISpVoice *This,
   6834         SPEVENTSOURCEINFO *pInfo);
   6835 
   6836     /*** ISpVoice methods ***/
   6837     HRESULT (STDMETHODCALLTYPE *SetOutput)(
   6838         ISpVoice *This,
   6839         IUnknown *pUnkOutput,
   6840         WINBOOL fAllowFormatChanges);
   6841 
   6842     HRESULT (STDMETHODCALLTYPE *GetOutputObjectToken)(
   6843         ISpVoice *This,
   6844         ISpObjectToken **ppObjectToken);
   6845 
   6846     HRESULT (STDMETHODCALLTYPE *GetOutputStream)(
   6847         ISpVoice *This,
   6848         ISpStreamFormat **ppStream);
   6849 
   6850     HRESULT (STDMETHODCALLTYPE *Pause)(
   6851         ISpVoice *This);
   6852 
   6853     HRESULT (STDMETHODCALLTYPE *Resume)(
   6854         ISpVoice *This);
   6855 
   6856     HRESULT (STDMETHODCALLTYPE *SetVoice)(
   6857         ISpVoice *This,
   6858         ISpObjectToken *pToken);
   6859 
   6860     HRESULT (STDMETHODCALLTYPE *GetVoice)(
   6861         ISpVoice *This,
   6862         ISpObjectToken **ppToken);
   6863 
   6864     HRESULT (STDMETHODCALLTYPE *Speak)(
   6865         ISpVoice *This,
   6866         LPCWSTR pwcs,
   6867         DWORD dwFlags,
   6868         ULONG *pulStreamNumber);
   6869 
   6870     HRESULT (STDMETHODCALLTYPE *SpeakStream)(
   6871         ISpVoice *This,
   6872         IStream *pStream,
   6873         DWORD dwFlags,
   6874         ULONG *pulStreamNumber);
   6875 
   6876     HRESULT (STDMETHODCALLTYPE *GetStatus)(
   6877         ISpVoice *This,
   6878         SPVOICESTATUS *pStatus,
   6879         LPWSTR *ppszLastBookmark);
   6880 
   6881     HRESULT (STDMETHODCALLTYPE *Skip)(
   6882         ISpVoice *This,
   6883         LPCWSTR pItemType,
   6884         LONG lNumItems,
   6885         ULONG *pulNumSkipped);
   6886 
   6887     HRESULT (STDMETHODCALLTYPE *SetPriority)(
   6888         ISpVoice *This,
   6889         SPVPRIORITY ePriority);
   6890 
   6891     HRESULT (STDMETHODCALLTYPE *GetPriority)(
   6892         ISpVoice *This,
   6893         SPVPRIORITY *pePriority);
   6894 
   6895     HRESULT (STDMETHODCALLTYPE *SetAlertBoundary)(
   6896         ISpVoice *This,
   6897         SPEVENTENUM eBoundary);
   6898 
   6899     HRESULT (STDMETHODCALLTYPE *GetAlertBoundary)(
   6900         ISpVoice *This,
   6901         SPEVENTENUM *peBoundary);
   6902 
   6903     HRESULT (STDMETHODCALLTYPE *SetRate)(
   6904         ISpVoice *This,
   6905         LONG RateAdjust);
   6906 
   6907     HRESULT (STDMETHODCALLTYPE *GetRate)(
   6908         ISpVoice *This,
   6909         LONG *pRateAdjust);
   6910 
   6911     HRESULT (STDMETHODCALLTYPE *SetVolume)(
   6912         ISpVoice *This,
   6913         USHORT usVolume);
   6914 
   6915     HRESULT (STDMETHODCALLTYPE *GetVolume)(
   6916         ISpVoice *This,
   6917         USHORT *pusVolume);
   6918 
   6919     HRESULT (STDMETHODCALLTYPE *WaitUntilDone)(
   6920         ISpVoice *This,
   6921         ULONG msTimeout);
   6922 
   6923     HRESULT (STDMETHODCALLTYPE *SetSyncSpeakTimeout)(
   6924         ISpVoice *This,
   6925         ULONG msTimeout);
   6926 
   6927     HRESULT (STDMETHODCALLTYPE *GetSyncSpeakTimeout)(
   6928         ISpVoice *This,
   6929         ULONG *pmsTimeout);
   6930 
   6931     HANDLE (STDMETHODCALLTYPE *SpeakCompleteEvent)(
   6932         ISpVoice *This);
   6933 
   6934     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
   6935         ISpVoice *This,
   6936         LPCWSTR pszTypeOfUI,
   6937         void *pvExtraData,
   6938         ULONG cbExtraData,
   6939         WINBOOL *pfSupported);
   6940 
   6941     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
   6942         ISpVoice *This,
   6943         HWND hwndParent,
   6944         LPCWSTR pszTitle,
   6945         LPCWSTR pszTypeOfUI,
   6946         void *pvExtraData,
   6947         ULONG cbExtraData);
   6948 
   6949     END_INTERFACE
   6950 } ISpVoiceVtbl;
   6951 
   6952 interface ISpVoice {
   6953     CONST_VTBL ISpVoiceVtbl* lpVtbl;
   6954 };
   6955 
   6956 #ifdef COBJMACROS
   6957 #ifndef WIDL_C_INLINE_WRAPPERS
   6958 /*** IUnknown methods ***/
   6959 #define ISpVoice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6960 #define ISpVoice_AddRef(This) (This)->lpVtbl->AddRef(This)
   6961 #define ISpVoice_Release(This) (This)->lpVtbl->Release(This)
   6962 /*** ISpNotifySource methods ***/
   6963 #define ISpVoice_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
   6964 #define ISpVoice_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
   6965 #define ISpVoice_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
   6966 #define ISpVoice_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
   6967 #define ISpVoice_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
   6968 #define ISpVoice_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
   6969 #define ISpVoice_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
   6970 /*** ISpEventSource methods ***/
   6971 #define ISpVoice_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
   6972 #define ISpVoice_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
   6973 #define ISpVoice_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
   6974 /*** ISpVoice methods ***/
   6975 #define ISpVoice_SetOutput(This,pUnkOutput,fAllowFormatChanges) (This)->lpVtbl->SetOutput(This,pUnkOutput,fAllowFormatChanges)
   6976 #define ISpVoice_GetOutputObjectToken(This,ppObjectToken) (This)->lpVtbl->GetOutputObjectToken(This,ppObjectToken)
   6977 #define ISpVoice_GetOutputStream(This,ppStream) (This)->lpVtbl->GetOutputStream(This,ppStream)
   6978 #define ISpVoice_Pause(This) (This)->lpVtbl->Pause(This)
   6979 #define ISpVoice_Resume(This) (This)->lpVtbl->Resume(This)
   6980 #define ISpVoice_SetVoice(This,pToken) (This)->lpVtbl->SetVoice(This,pToken)
   6981 #define ISpVoice_GetVoice(This,ppToken) (This)->lpVtbl->GetVoice(This,ppToken)
   6982 #define ISpVoice_Speak(This,pwcs,dwFlags,pulStreamNumber) (This)->lpVtbl->Speak(This,pwcs,dwFlags,pulStreamNumber)
   6983 #define ISpVoice_SpeakStream(This,pStream,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakStream(This,pStream,dwFlags,pulStreamNumber)
   6984 #define ISpVoice_GetStatus(This,pStatus,ppszLastBookmark) (This)->lpVtbl->GetStatus(This,pStatus,ppszLastBookmark)
   6985 #define ISpVoice_Skip(This,pItemType,lNumItems,pulNumSkipped) (This)->lpVtbl->Skip(This,pItemType,lNumItems,pulNumSkipped)
   6986 #define ISpVoice_SetPriority(This,ePriority) (This)->lpVtbl->SetPriority(This,ePriority)
   6987 #define ISpVoice_GetPriority(This,pePriority) (This)->lpVtbl->GetPriority(This,pePriority)
   6988 #define ISpVoice_SetAlertBoundary(This,eBoundary) (This)->lpVtbl->SetAlertBoundary(This,eBoundary)
   6989 #define ISpVoice_GetAlertBoundary(This,peBoundary) (This)->lpVtbl->GetAlertBoundary(This,peBoundary)
   6990 #define ISpVoice_SetRate(This,RateAdjust) (This)->lpVtbl->SetRate(This,RateAdjust)
   6991 #define ISpVoice_GetRate(This,pRateAdjust) (This)->lpVtbl->GetRate(This,pRateAdjust)
   6992 #define ISpVoice_SetVolume(This,usVolume) (This)->lpVtbl->SetVolume(This,usVolume)
   6993 #define ISpVoice_GetVolume(This,pusVolume) (This)->lpVtbl->GetVolume(This,pusVolume)
   6994 #define ISpVoice_WaitUntilDone(This,msTimeout) (This)->lpVtbl->WaitUntilDone(This,msTimeout)
   6995 #define ISpVoice_SetSyncSpeakTimeout(This,msTimeout) (This)->lpVtbl->SetSyncSpeakTimeout(This,msTimeout)
   6996 #define ISpVoice_GetSyncSpeakTimeout(This,pmsTimeout) (This)->lpVtbl->GetSyncSpeakTimeout(This,pmsTimeout)
   6997 #define ISpVoice_SpeakCompleteEvent(This) (This)->lpVtbl->SpeakCompleteEvent(This)
   6998 #define ISpVoice_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported)
   6999 #define ISpVoice_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData)
   7000 #else
   7001 /*** IUnknown methods ***/
   7002 static inline HRESULT ISpVoice_QueryInterface(ISpVoice* This,REFIID riid,void **ppvObject) {
   7003     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7004 }
   7005 static inline ULONG ISpVoice_AddRef(ISpVoice* This) {
   7006     return This->lpVtbl->AddRef(This);
   7007 }
   7008 static inline ULONG ISpVoice_Release(ISpVoice* This) {
   7009     return This->lpVtbl->Release(This);
   7010 }
   7011 /*** ISpNotifySource methods ***/
   7012 static inline HRESULT ISpVoice_SetNotifySink(ISpVoice* This,ISpNotifySink *pNotifySink) {
   7013     return This->lpVtbl->SetNotifySink(This,pNotifySink);
   7014 }
   7015 static inline HRESULT ISpVoice_SetNotifyWindowMessage(ISpVoice* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
   7016     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
   7017 }
   7018 static inline HRESULT ISpVoice_SetNotifyCallbackFunction(ISpVoice* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
   7019     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
   7020 }
   7021 static inline HRESULT ISpVoice_SetNotifyCallbackInterface(ISpVoice* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
   7022     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
   7023 }
   7024 static inline HRESULT ISpVoice_SetNotifyWin32Event(ISpVoice* This) {
   7025     return This->lpVtbl->SetNotifyWin32Event(This);
   7026 }
   7027 static inline HRESULT ISpVoice_WaitForNotifyEvent(ISpVoice* This,DWORD dwMilliseconds) {
   7028     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
   7029 }
   7030 static inline HANDLE ISpVoice_GetNotifyEventHandle(ISpVoice* This) {
   7031     return This->lpVtbl->GetNotifyEventHandle(This);
   7032 }
   7033 /*** ISpEventSource methods ***/
   7034 static inline HRESULT ISpVoice_SetInterest(ISpVoice* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
   7035     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
   7036 }
   7037 static inline HRESULT ISpVoice_GetEvents(ISpVoice* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
   7038     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
   7039 }
   7040 static inline HRESULT ISpVoice_GetInfo(ISpVoice* This,SPEVENTSOURCEINFO *pInfo) {
   7041     return This->lpVtbl->GetInfo(This,pInfo);
   7042 }
   7043 /*** ISpVoice methods ***/
   7044 static inline HRESULT ISpVoice_SetOutput(ISpVoice* This,IUnknown *pUnkOutput,WINBOOL fAllowFormatChanges) {
   7045     return This->lpVtbl->SetOutput(This,pUnkOutput,fAllowFormatChanges);
   7046 }
   7047 static inline HRESULT ISpVoice_GetOutputObjectToken(ISpVoice* This,ISpObjectToken **ppObjectToken) {
   7048     return This->lpVtbl->GetOutputObjectToken(This,ppObjectToken);
   7049 }
   7050 static inline HRESULT ISpVoice_GetOutputStream(ISpVoice* This,ISpStreamFormat **ppStream) {
   7051     return This->lpVtbl->GetOutputStream(This,ppStream);
   7052 }
   7053 static inline HRESULT ISpVoice_Pause(ISpVoice* This) {
   7054     return This->lpVtbl->Pause(This);
   7055 }
   7056 static inline HRESULT ISpVoice_Resume(ISpVoice* This) {
   7057     return This->lpVtbl->Resume(This);
   7058 }
   7059 static inline HRESULT ISpVoice_SetVoice(ISpVoice* This,ISpObjectToken *pToken) {
   7060     return This->lpVtbl->SetVoice(This,pToken);
   7061 }
   7062 static inline HRESULT ISpVoice_GetVoice(ISpVoice* This,ISpObjectToken **ppToken) {
   7063     return This->lpVtbl->GetVoice(This,ppToken);
   7064 }
   7065 static inline HRESULT ISpVoice_Speak(ISpVoice* This,LPCWSTR pwcs,DWORD dwFlags,ULONG *pulStreamNumber) {
   7066     return This->lpVtbl->Speak(This,pwcs,dwFlags,pulStreamNumber);
   7067 }
   7068 static inline HRESULT ISpVoice_SpeakStream(ISpVoice* This,IStream *pStream,DWORD dwFlags,ULONG *pulStreamNumber) {
   7069     return This->lpVtbl->SpeakStream(This,pStream,dwFlags,pulStreamNumber);
   7070 }
   7071 static inline HRESULT ISpVoice_GetStatus(ISpVoice* This,SPVOICESTATUS *pStatus,LPWSTR *ppszLastBookmark) {
   7072     return This->lpVtbl->GetStatus(This,pStatus,ppszLastBookmark);
   7073 }
   7074 static inline HRESULT ISpVoice_Skip(ISpVoice* This,LPCWSTR pItemType,LONG lNumItems,ULONG *pulNumSkipped) {
   7075     return This->lpVtbl->Skip(This,pItemType,lNumItems,pulNumSkipped);
   7076 }
   7077 static inline HRESULT ISpVoice_SetPriority(ISpVoice* This,SPVPRIORITY ePriority) {
   7078     return This->lpVtbl->SetPriority(This,ePriority);
   7079 }
   7080 static inline HRESULT ISpVoice_GetPriority(ISpVoice* This,SPVPRIORITY *pePriority) {
   7081     return This->lpVtbl->GetPriority(This,pePriority);
   7082 }
   7083 static inline HRESULT ISpVoice_SetAlertBoundary(ISpVoice* This,SPEVENTENUM eBoundary) {
   7084     return This->lpVtbl->SetAlertBoundary(This,eBoundary);
   7085 }
   7086 static inline HRESULT ISpVoice_GetAlertBoundary(ISpVoice* This,SPEVENTENUM *peBoundary) {
   7087     return This->lpVtbl->GetAlertBoundary(This,peBoundary);
   7088 }
   7089 static inline HRESULT ISpVoice_SetRate(ISpVoice* This,LONG RateAdjust) {
   7090     return This->lpVtbl->SetRate(This,RateAdjust);
   7091 }
   7092 static inline HRESULT ISpVoice_GetRate(ISpVoice* This,LONG *pRateAdjust) {
   7093     return This->lpVtbl->GetRate(This,pRateAdjust);
   7094 }
   7095 static inline HRESULT ISpVoice_SetVolume(ISpVoice* This,USHORT usVolume) {
   7096     return This->lpVtbl->SetVolume(This,usVolume);
   7097 }
   7098 static inline HRESULT ISpVoice_GetVolume(ISpVoice* This,USHORT *pusVolume) {
   7099     return This->lpVtbl->GetVolume(This,pusVolume);
   7100 }
   7101 static inline HRESULT ISpVoice_WaitUntilDone(ISpVoice* This,ULONG msTimeout) {
   7102     return This->lpVtbl->WaitUntilDone(This,msTimeout);
   7103 }
   7104 static inline HRESULT ISpVoice_SetSyncSpeakTimeout(ISpVoice* This,ULONG msTimeout) {
   7105     return This->lpVtbl->SetSyncSpeakTimeout(This,msTimeout);
   7106 }
   7107 static inline HRESULT ISpVoice_GetSyncSpeakTimeout(ISpVoice* This,ULONG *pmsTimeout) {
   7108     return This->lpVtbl->GetSyncSpeakTimeout(This,pmsTimeout);
   7109 }
   7110 static inline HANDLE ISpVoice_SpeakCompleteEvent(ISpVoice* This) {
   7111     return This->lpVtbl->SpeakCompleteEvent(This);
   7112 }
   7113 static inline HRESULT ISpVoice_IsUISupported(ISpVoice* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,WINBOOL *pfSupported) {
   7114     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported);
   7115 }
   7116 static inline HRESULT ISpVoice_DisplayUI(ISpVoice* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData) {
   7117     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData);
   7118 }
   7119 #endif
   7120 #endif
   7121 
   7122 #endif
   7123 
   7124 
   7125 #endif  /* __ISpVoice_INTERFACE_DEFINED__ */
   7126 
   7127 /*****************************************************************************
   7128  * ISpPhrase interface
   7129  */
   7130 #ifndef __ISpPhrase_INTERFACE_DEFINED__
   7131 #define __ISpPhrase_INTERFACE_DEFINED__
   7132 
   7133 DEFINE_GUID(IID_ISpPhrase, 0x1a5c0354, 0xb621, 0x4b5a, 0x87,0x91, 0xd3,0x06,0xed,0x37,0x9e,0x53);
   7134 #if defined(__cplusplus) && !defined(CINTERFACE)
   7135 MIDL_INTERFACE("1a5c0354-b621-4b5a-8791-d306ed379e53")
   7136 ISpPhrase : public IUnknown
   7137 {
   7138     virtual HRESULT STDMETHODCALLTYPE GetPhrase(
   7139         SPPHRASE **ppCoMemPhrase) = 0;
   7140 
   7141     virtual HRESULT STDMETHODCALLTYPE GetSerializedPhrase(
   7142         SPSERIALIZEDPHRASE **ppCoMemPhrase) = 0;
   7143 
   7144     virtual HRESULT STDMETHODCALLTYPE GetText(
   7145         ULONG ulStart,
   7146         ULONG ulCount,
   7147         WINBOOL fUseTextReplacements,
   7148         LPWSTR *ppszCoMemText,
   7149         BYTE *pbDisplayAttributes) = 0;
   7150 
   7151     virtual HRESULT STDMETHODCALLTYPE Discard(
   7152         DWORD dwValueTypes) = 0;
   7153 
   7154 };
   7155 #ifdef __CRT_UUID_DECL
   7156 __CRT_UUID_DECL(ISpPhrase, 0x1a5c0354, 0xb621, 0x4b5a, 0x87,0x91, 0xd3,0x06,0xed,0x37,0x9e,0x53)
   7157 #endif
   7158 #else
   7159 typedef struct ISpPhraseVtbl {
   7160     BEGIN_INTERFACE
   7161 
   7162     /*** IUnknown methods ***/
   7163     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7164         ISpPhrase *This,
   7165         REFIID riid,
   7166         void **ppvObject);
   7167 
   7168     ULONG (STDMETHODCALLTYPE *AddRef)(
   7169         ISpPhrase *This);
   7170 
   7171     ULONG (STDMETHODCALLTYPE *Release)(
   7172         ISpPhrase *This);
   7173 
   7174     /*** ISpPhrase methods ***/
   7175     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
   7176         ISpPhrase *This,
   7177         SPPHRASE **ppCoMemPhrase);
   7178 
   7179     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
   7180         ISpPhrase *This,
   7181         SPSERIALIZEDPHRASE **ppCoMemPhrase);
   7182 
   7183     HRESULT (STDMETHODCALLTYPE *GetText)(
   7184         ISpPhrase *This,
   7185         ULONG ulStart,
   7186         ULONG ulCount,
   7187         WINBOOL fUseTextReplacements,
   7188         LPWSTR *ppszCoMemText,
   7189         BYTE *pbDisplayAttributes);
   7190 
   7191     HRESULT (STDMETHODCALLTYPE *Discard)(
   7192         ISpPhrase *This,
   7193         DWORD dwValueTypes);
   7194 
   7195     END_INTERFACE
   7196 } ISpPhraseVtbl;
   7197 
   7198 interface ISpPhrase {
   7199     CONST_VTBL ISpPhraseVtbl* lpVtbl;
   7200 };
   7201 
   7202 #ifdef COBJMACROS
   7203 #ifndef WIDL_C_INLINE_WRAPPERS
   7204 /*** IUnknown methods ***/
   7205 #define ISpPhrase_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7206 #define ISpPhrase_AddRef(This) (This)->lpVtbl->AddRef(This)
   7207 #define ISpPhrase_Release(This) (This)->lpVtbl->Release(This)
   7208 /*** ISpPhrase methods ***/
   7209 #define ISpPhrase_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
   7210 #define ISpPhrase_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
   7211 #define ISpPhrase_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
   7212 #define ISpPhrase_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
   7213 #else
   7214 /*** IUnknown methods ***/
   7215 static inline HRESULT ISpPhrase_QueryInterface(ISpPhrase* This,REFIID riid,void **ppvObject) {
   7216     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7217 }
   7218 static inline ULONG ISpPhrase_AddRef(ISpPhrase* This) {
   7219     return This->lpVtbl->AddRef(This);
   7220 }
   7221 static inline ULONG ISpPhrase_Release(ISpPhrase* This) {
   7222     return This->lpVtbl->Release(This);
   7223 }
   7224 /*** ISpPhrase methods ***/
   7225 static inline HRESULT ISpPhrase_GetPhrase(ISpPhrase* This,SPPHRASE **ppCoMemPhrase) {
   7226     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
   7227 }
   7228 static inline HRESULT ISpPhrase_GetSerializedPhrase(ISpPhrase* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
   7229     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
   7230 }
   7231 static inline HRESULT ISpPhrase_GetText(ISpPhrase* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
   7232     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
   7233 }
   7234 static inline HRESULT ISpPhrase_Discard(ISpPhrase* This,DWORD dwValueTypes) {
   7235     return This->lpVtbl->Discard(This,dwValueTypes);
   7236 }
   7237 #endif
   7238 #endif
   7239 
   7240 #endif
   7241 
   7242 
   7243 #endif  /* __ISpPhrase_INTERFACE_DEFINED__ */
   7244 
   7245 /*****************************************************************************
   7246  * ISpPhraseAlt interface
   7247  */
   7248 #ifndef __ISpPhraseAlt_INTERFACE_DEFINED__
   7249 #define __ISpPhraseAlt_INTERFACE_DEFINED__
   7250 
   7251 DEFINE_GUID(IID_ISpPhraseAlt, 0x8fcebc98, 0x4e49, 0x4067, 0x9c,0x6c, 0xd8,0x6a,0x0e,0x09,0x2e,0x3d);
   7252 #if defined(__cplusplus) && !defined(CINTERFACE)
   7253 MIDL_INTERFACE("8fcebc98-4e49-4067-9c6c-d86a0e092e3d")
   7254 ISpPhraseAlt : public ISpPhrase
   7255 {
   7256     virtual HRESULT STDMETHODCALLTYPE GetAltInfo(
   7257         ISpPhrase **ppParent,
   7258         ULONG *pulStartElementInParent,
   7259         ULONG *pcElementsInParent,
   7260         ULONG *pcElementsInAlt) = 0;
   7261 
   7262     virtual HRESULT STDMETHODCALLTYPE Commit(
   7263         ) = 0;
   7264 
   7265 };
   7266 #ifdef __CRT_UUID_DECL
   7267 __CRT_UUID_DECL(ISpPhraseAlt, 0x8fcebc98, 0x4e49, 0x4067, 0x9c,0x6c, 0xd8,0x6a,0x0e,0x09,0x2e,0x3d)
   7268 #endif
   7269 #else
   7270 typedef struct ISpPhraseAltVtbl {
   7271     BEGIN_INTERFACE
   7272 
   7273     /*** IUnknown methods ***/
   7274     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7275         ISpPhraseAlt *This,
   7276         REFIID riid,
   7277         void **ppvObject);
   7278 
   7279     ULONG (STDMETHODCALLTYPE *AddRef)(
   7280         ISpPhraseAlt *This);
   7281 
   7282     ULONG (STDMETHODCALLTYPE *Release)(
   7283         ISpPhraseAlt *This);
   7284 
   7285     /*** ISpPhrase methods ***/
   7286     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
   7287         ISpPhraseAlt *This,
   7288         SPPHRASE **ppCoMemPhrase);
   7289 
   7290     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
   7291         ISpPhraseAlt *This,
   7292         SPSERIALIZEDPHRASE **ppCoMemPhrase);
   7293 
   7294     HRESULT (STDMETHODCALLTYPE *GetText)(
   7295         ISpPhraseAlt *This,
   7296         ULONG ulStart,
   7297         ULONG ulCount,
   7298         WINBOOL fUseTextReplacements,
   7299         LPWSTR *ppszCoMemText,
   7300         BYTE *pbDisplayAttributes);
   7301 
   7302     HRESULT (STDMETHODCALLTYPE *Discard)(
   7303         ISpPhraseAlt *This,
   7304         DWORD dwValueTypes);
   7305 
   7306     /*** ISpPhraseAlt methods ***/
   7307     HRESULT (STDMETHODCALLTYPE *GetAltInfo)(
   7308         ISpPhraseAlt *This,
   7309         ISpPhrase **ppParent,
   7310         ULONG *pulStartElementInParent,
   7311         ULONG *pcElementsInParent,
   7312         ULONG *pcElementsInAlt);
   7313 
   7314     HRESULT (STDMETHODCALLTYPE *Commit)(
   7315         ISpPhraseAlt *This);
   7316 
   7317     END_INTERFACE
   7318 } ISpPhraseAltVtbl;
   7319 
   7320 interface ISpPhraseAlt {
   7321     CONST_VTBL ISpPhraseAltVtbl* lpVtbl;
   7322 };
   7323 
   7324 #ifdef COBJMACROS
   7325 #ifndef WIDL_C_INLINE_WRAPPERS
   7326 /*** IUnknown methods ***/
   7327 #define ISpPhraseAlt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7328 #define ISpPhraseAlt_AddRef(This) (This)->lpVtbl->AddRef(This)
   7329 #define ISpPhraseAlt_Release(This) (This)->lpVtbl->Release(This)
   7330 /*** ISpPhrase methods ***/
   7331 #define ISpPhraseAlt_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
   7332 #define ISpPhraseAlt_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
   7333 #define ISpPhraseAlt_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
   7334 #define ISpPhraseAlt_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
   7335 /*** ISpPhraseAlt methods ***/
   7336 #define ISpPhraseAlt_GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt) (This)->lpVtbl->GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt)
   7337 #define ISpPhraseAlt_Commit(This) (This)->lpVtbl->Commit(This)
   7338 #else
   7339 /*** IUnknown methods ***/
   7340 static inline HRESULT ISpPhraseAlt_QueryInterface(ISpPhraseAlt* This,REFIID riid,void **ppvObject) {
   7341     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7342 }
   7343 static inline ULONG ISpPhraseAlt_AddRef(ISpPhraseAlt* This) {
   7344     return This->lpVtbl->AddRef(This);
   7345 }
   7346 static inline ULONG ISpPhraseAlt_Release(ISpPhraseAlt* This) {
   7347     return This->lpVtbl->Release(This);
   7348 }
   7349 /*** ISpPhrase methods ***/
   7350 static inline HRESULT ISpPhraseAlt_GetPhrase(ISpPhraseAlt* This,SPPHRASE **ppCoMemPhrase) {
   7351     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
   7352 }
   7353 static inline HRESULT ISpPhraseAlt_GetSerializedPhrase(ISpPhraseAlt* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
   7354     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
   7355 }
   7356 static inline HRESULT ISpPhraseAlt_GetText(ISpPhraseAlt* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
   7357     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
   7358 }
   7359 static inline HRESULT ISpPhraseAlt_Discard(ISpPhraseAlt* This,DWORD dwValueTypes) {
   7360     return This->lpVtbl->Discard(This,dwValueTypes);
   7361 }
   7362 /*** ISpPhraseAlt methods ***/
   7363 static inline HRESULT ISpPhraseAlt_GetAltInfo(ISpPhraseAlt* This,ISpPhrase **ppParent,ULONG *pulStartElementInParent,ULONG *pcElementsInParent,ULONG *pcElementsInAlt) {
   7364     return This->lpVtbl->GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt);
   7365 }
   7366 static inline HRESULT ISpPhraseAlt_Commit(ISpPhraseAlt* This) {
   7367     return This->lpVtbl->Commit(This);
   7368 }
   7369 #endif
   7370 #endif
   7371 
   7372 #endif
   7373 
   7374 
   7375 #endif  /* __ISpPhraseAlt_INTERFACE_DEFINED__ */
   7376 
   7377 typedef enum SPXMLRESULTOPTIONS {
   7378     SPXRO_SML = 0,
   7379     SPXRO_Alternates_SML = 1
   7380 } SPXMLRESULTOPTIONS;
   7381 /*****************************************************************************
   7382  * ISpPhrase2 interface
   7383  */
   7384 #ifndef __ISpPhrase2_INTERFACE_DEFINED__
   7385 #define __ISpPhrase2_INTERFACE_DEFINED__
   7386 
   7387 DEFINE_GUID(IID_ISpPhrase2, 0xf264da52, 0xe457, 0x4696, 0xb8,0x56, 0xa7,0x37,0xb7,0x17,0xaf,0x79);
   7388 #if defined(__cplusplus) && !defined(CINTERFACE)
   7389 MIDL_INTERFACE("f264da52-e457-4696-b856-a737b717af79")
   7390 ISpPhrase2 : public ISpPhrase
   7391 {
   7392     virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
   7393         LPWSTR *ppszCoMemXMLResult,
   7394         SPXMLRESULTOPTIONS Options) = 0;
   7395 
   7396     virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
   7397         SPSEMANTICERRORINFO *pSemanticErrorInfo) = 0;
   7398 
   7399     virtual HRESULT STDMETHODCALLTYPE GetAudio(
   7400         ULONG ulStartElement,
   7401         ULONG cElements,
   7402         ISpStreamFormat **ppStream) = 0;
   7403 
   7404 };
   7405 #ifdef __CRT_UUID_DECL
   7406 __CRT_UUID_DECL(ISpPhrase2, 0xf264da52, 0xe457, 0x4696, 0xb8,0x56, 0xa7,0x37,0xb7,0x17,0xaf,0x79)
   7407 #endif
   7408 #else
   7409 typedef struct ISpPhrase2Vtbl {
   7410     BEGIN_INTERFACE
   7411 
   7412     /*** IUnknown methods ***/
   7413     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7414         ISpPhrase2 *This,
   7415         REFIID riid,
   7416         void **ppvObject);
   7417 
   7418     ULONG (STDMETHODCALLTYPE *AddRef)(
   7419         ISpPhrase2 *This);
   7420 
   7421     ULONG (STDMETHODCALLTYPE *Release)(
   7422         ISpPhrase2 *This);
   7423 
   7424     /*** ISpPhrase methods ***/
   7425     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
   7426         ISpPhrase2 *This,
   7427         SPPHRASE **ppCoMemPhrase);
   7428 
   7429     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
   7430         ISpPhrase2 *This,
   7431         SPSERIALIZEDPHRASE **ppCoMemPhrase);
   7432 
   7433     HRESULT (STDMETHODCALLTYPE *GetText)(
   7434         ISpPhrase2 *This,
   7435         ULONG ulStart,
   7436         ULONG ulCount,
   7437         WINBOOL fUseTextReplacements,
   7438         LPWSTR *ppszCoMemText,
   7439         BYTE *pbDisplayAttributes);
   7440 
   7441     HRESULT (STDMETHODCALLTYPE *Discard)(
   7442         ISpPhrase2 *This,
   7443         DWORD dwValueTypes);
   7444 
   7445     /*** ISpPhrase2 methods ***/
   7446     HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
   7447         ISpPhrase2 *This,
   7448         LPWSTR *ppszCoMemXMLResult,
   7449         SPXMLRESULTOPTIONS Options);
   7450 
   7451     HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
   7452         ISpPhrase2 *This,
   7453         SPSEMANTICERRORINFO *pSemanticErrorInfo);
   7454 
   7455     HRESULT (STDMETHODCALLTYPE *GetAudio)(
   7456         ISpPhrase2 *This,
   7457         ULONG ulStartElement,
   7458         ULONG cElements,
   7459         ISpStreamFormat **ppStream);
   7460 
   7461     END_INTERFACE
   7462 } ISpPhrase2Vtbl;
   7463 
   7464 interface ISpPhrase2 {
   7465     CONST_VTBL ISpPhrase2Vtbl* lpVtbl;
   7466 };
   7467 
   7468 #ifdef COBJMACROS
   7469 #ifndef WIDL_C_INLINE_WRAPPERS
   7470 /*** IUnknown methods ***/
   7471 #define ISpPhrase2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7472 #define ISpPhrase2_AddRef(This) (This)->lpVtbl->AddRef(This)
   7473 #define ISpPhrase2_Release(This) (This)->lpVtbl->Release(This)
   7474 /*** ISpPhrase methods ***/
   7475 #define ISpPhrase2_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
   7476 #define ISpPhrase2_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
   7477 #define ISpPhrase2_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
   7478 #define ISpPhrase2_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
   7479 /*** ISpPhrase2 methods ***/
   7480 #define ISpPhrase2_GetXMLResult(This,ppszCoMemXMLResult,Options) (This)->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options)
   7481 #define ISpPhrase2_GetXMLErrorInfo(This,pSemanticErrorInfo) (This)->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo)
   7482 #define ISpPhrase2_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
   7483 #else
   7484 /*** IUnknown methods ***/
   7485 static inline HRESULT ISpPhrase2_QueryInterface(ISpPhrase2* This,REFIID riid,void **ppvObject) {
   7486     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7487 }
   7488 static inline ULONG ISpPhrase2_AddRef(ISpPhrase2* This) {
   7489     return This->lpVtbl->AddRef(This);
   7490 }
   7491 static inline ULONG ISpPhrase2_Release(ISpPhrase2* This) {
   7492     return This->lpVtbl->Release(This);
   7493 }
   7494 /*** ISpPhrase methods ***/
   7495 static inline HRESULT ISpPhrase2_GetPhrase(ISpPhrase2* This,SPPHRASE **ppCoMemPhrase) {
   7496     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
   7497 }
   7498 static inline HRESULT ISpPhrase2_GetSerializedPhrase(ISpPhrase2* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
   7499     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
   7500 }
   7501 static inline HRESULT ISpPhrase2_GetText(ISpPhrase2* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
   7502     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
   7503 }
   7504 static inline HRESULT ISpPhrase2_Discard(ISpPhrase2* This,DWORD dwValueTypes) {
   7505     return This->lpVtbl->Discard(This,dwValueTypes);
   7506 }
   7507 /*** ISpPhrase2 methods ***/
   7508 static inline HRESULT ISpPhrase2_GetXMLResult(ISpPhrase2* This,LPWSTR *ppszCoMemXMLResult,SPXMLRESULTOPTIONS Options) {
   7509     return This->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options);
   7510 }
   7511 static inline HRESULT ISpPhrase2_GetXMLErrorInfo(ISpPhrase2* This,SPSEMANTICERRORINFO *pSemanticErrorInfo) {
   7512     return This->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo);
   7513 }
   7514 static inline HRESULT ISpPhrase2_GetAudio(ISpPhrase2* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
   7515     return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
   7516 }
   7517 #endif
   7518 #endif
   7519 
   7520 #endif
   7521 
   7522 
   7523 #endif  /* __ISpPhrase2_INTERFACE_DEFINED__ */
   7524 
   7525 typedef struct SPRECORESULTTIMES {
   7526     FILETIME ftStreamTime;
   7527     ULONGLONG ullLength;
   7528     DWORD dwTickCount;
   7529     ULONGLONG ullStart;
   7530 } SPRECORESULTTIMES;
   7531 typedef struct SPSERIALIZEDRESULT {
   7532     ULONG ulSerializedSize;
   7533 } SPSERIALIZEDRESULT;
   7534 /*****************************************************************************
   7535  * ISpRecoResult interface
   7536  */
   7537 #ifndef __ISpRecoResult_INTERFACE_DEFINED__
   7538 #define __ISpRecoResult_INTERFACE_DEFINED__
   7539 
   7540 DEFINE_GUID(IID_ISpRecoResult, 0x20b053be, 0xe235, 0x43cd, 0x9a,0x2a, 0x8d,0x17,0xa4,0x8b,0x78,0x42);
   7541 #if defined(__cplusplus) && !defined(CINTERFACE)
   7542 MIDL_INTERFACE("20b053be-e235-43cd-9a2a-8d17a48b7842")
   7543 ISpRecoResult : public ISpPhrase
   7544 {
   7545     virtual HRESULT STDMETHODCALLTYPE GetResultTimes(
   7546         SPRECORESULTTIMES *pTimes) = 0;
   7547 
   7548     virtual HRESULT STDMETHODCALLTYPE GetAlternates(
   7549         ULONG ulStartElement,
   7550         ULONG cElements,
   7551         ULONG ulRequestCount,
   7552         ISpPhraseAlt **ppPhrases,
   7553         ULONG *pcPhrasesReturned) = 0;
   7554 
   7555     virtual HRESULT STDMETHODCALLTYPE GetAudio(
   7556         ULONG ulStartElement,
   7557         ULONG cElements,
   7558         ISpStreamFormat **ppStream) = 0;
   7559 
   7560     virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
   7561         ULONG ulStartElement,
   7562         ULONG cElements,
   7563         DWORD dwFlags,
   7564         ULONG *pulStreamNumber) = 0;
   7565 
   7566     virtual HRESULT STDMETHODCALLTYPE Serialize(
   7567         SPSERIALIZEDRESULT **ppCoMemSerializedResult) = 0;
   7568 
   7569     virtual HRESULT STDMETHODCALLTYPE ScaleAudio(
   7570         const GUID *pAudioFormatId,
   7571         const WAVEFORMATEX *pWaveFormatEx) = 0;
   7572 
   7573     virtual HRESULT STDMETHODCALLTYPE GetRecoContext(
   7574         ISpRecoContext **ppRecoContext) = 0;
   7575 
   7576 };
   7577 #ifdef __CRT_UUID_DECL
   7578 __CRT_UUID_DECL(ISpRecoResult, 0x20b053be, 0xe235, 0x43cd, 0x9a,0x2a, 0x8d,0x17,0xa4,0x8b,0x78,0x42)
   7579 #endif
   7580 #else
   7581 typedef struct ISpRecoResultVtbl {
   7582     BEGIN_INTERFACE
   7583 
   7584     /*** IUnknown methods ***/
   7585     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7586         ISpRecoResult *This,
   7587         REFIID riid,
   7588         void **ppvObject);
   7589 
   7590     ULONG (STDMETHODCALLTYPE *AddRef)(
   7591         ISpRecoResult *This);
   7592 
   7593     ULONG (STDMETHODCALLTYPE *Release)(
   7594         ISpRecoResult *This);
   7595 
   7596     /*** ISpPhrase methods ***/
   7597     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
   7598         ISpRecoResult *This,
   7599         SPPHRASE **ppCoMemPhrase);
   7600 
   7601     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
   7602         ISpRecoResult *This,
   7603         SPSERIALIZEDPHRASE **ppCoMemPhrase);
   7604 
   7605     HRESULT (STDMETHODCALLTYPE *GetText)(
   7606         ISpRecoResult *This,
   7607         ULONG ulStart,
   7608         ULONG ulCount,
   7609         WINBOOL fUseTextReplacements,
   7610         LPWSTR *ppszCoMemText,
   7611         BYTE *pbDisplayAttributes);
   7612 
   7613     HRESULT (STDMETHODCALLTYPE *Discard)(
   7614         ISpRecoResult *This,
   7615         DWORD dwValueTypes);
   7616 
   7617     /*** ISpRecoResult methods ***/
   7618     HRESULT (STDMETHODCALLTYPE *GetResultTimes)(
   7619         ISpRecoResult *This,
   7620         SPRECORESULTTIMES *pTimes);
   7621 
   7622     HRESULT (STDMETHODCALLTYPE *GetAlternates)(
   7623         ISpRecoResult *This,
   7624         ULONG ulStartElement,
   7625         ULONG cElements,
   7626         ULONG ulRequestCount,
   7627         ISpPhraseAlt **ppPhrases,
   7628         ULONG *pcPhrasesReturned);
   7629 
   7630     HRESULT (STDMETHODCALLTYPE *GetAudio)(
   7631         ISpRecoResult *This,
   7632         ULONG ulStartElement,
   7633         ULONG cElements,
   7634         ISpStreamFormat **ppStream);
   7635 
   7636     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
   7637         ISpRecoResult *This,
   7638         ULONG ulStartElement,
   7639         ULONG cElements,
   7640         DWORD dwFlags,
   7641         ULONG *pulStreamNumber);
   7642 
   7643     HRESULT (STDMETHODCALLTYPE *Serialize)(
   7644         ISpRecoResult *This,
   7645         SPSERIALIZEDRESULT **ppCoMemSerializedResult);
   7646 
   7647     HRESULT (STDMETHODCALLTYPE *ScaleAudio)(
   7648         ISpRecoResult *This,
   7649         const GUID *pAudioFormatId,
   7650         const WAVEFORMATEX *pWaveFormatEx);
   7651 
   7652     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
   7653         ISpRecoResult *This,
   7654         ISpRecoContext **ppRecoContext);
   7655 
   7656     END_INTERFACE
   7657 } ISpRecoResultVtbl;
   7658 
   7659 interface ISpRecoResult {
   7660     CONST_VTBL ISpRecoResultVtbl* lpVtbl;
   7661 };
   7662 
   7663 #ifdef COBJMACROS
   7664 #ifndef WIDL_C_INLINE_WRAPPERS
   7665 /*** IUnknown methods ***/
   7666 #define ISpRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7667 #define ISpRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
   7668 #define ISpRecoResult_Release(This) (This)->lpVtbl->Release(This)
   7669 /*** ISpPhrase methods ***/
   7670 #define ISpRecoResult_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
   7671 #define ISpRecoResult_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
   7672 #define ISpRecoResult_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
   7673 #define ISpRecoResult_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
   7674 /*** ISpRecoResult methods ***/
   7675 #define ISpRecoResult_GetResultTimes(This,pTimes) (This)->lpVtbl->GetResultTimes(This,pTimes)
   7676 #define ISpRecoResult_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned) (This)->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
   7677 #define ISpRecoResult_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
   7678 #define ISpRecoResult_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
   7679 #define ISpRecoResult_Serialize(This,ppCoMemSerializedResult) (This)->lpVtbl->Serialize(This,ppCoMemSerializedResult)
   7680 #define ISpRecoResult_ScaleAudio(This,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
   7681 #define ISpRecoResult_GetRecoContext(This,ppRecoContext) (This)->lpVtbl->GetRecoContext(This,ppRecoContext)
   7682 #else
   7683 /*** IUnknown methods ***/
   7684 static inline HRESULT ISpRecoResult_QueryInterface(ISpRecoResult* This,REFIID riid,void **ppvObject) {
   7685     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7686 }
   7687 static inline ULONG ISpRecoResult_AddRef(ISpRecoResult* This) {
   7688     return This->lpVtbl->AddRef(This);
   7689 }
   7690 static inline ULONG ISpRecoResult_Release(ISpRecoResult* This) {
   7691     return This->lpVtbl->Release(This);
   7692 }
   7693 /*** ISpPhrase methods ***/
   7694 static inline HRESULT ISpRecoResult_GetPhrase(ISpRecoResult* This,SPPHRASE **ppCoMemPhrase) {
   7695     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
   7696 }
   7697 static inline HRESULT ISpRecoResult_GetSerializedPhrase(ISpRecoResult* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
   7698     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
   7699 }
   7700 static inline HRESULT ISpRecoResult_GetText(ISpRecoResult* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
   7701     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
   7702 }
   7703 static inline HRESULT ISpRecoResult_Discard(ISpRecoResult* This,DWORD dwValueTypes) {
   7704     return This->lpVtbl->Discard(This,dwValueTypes);
   7705 }
   7706 /*** ISpRecoResult methods ***/
   7707 static inline HRESULT ISpRecoResult_GetResultTimes(ISpRecoResult* This,SPRECORESULTTIMES *pTimes) {
   7708     return This->lpVtbl->GetResultTimes(This,pTimes);
   7709 }
   7710 static inline HRESULT ISpRecoResult_GetAlternates(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,ULONG ulRequestCount,ISpPhraseAlt **ppPhrases,ULONG *pcPhrasesReturned) {
   7711     return This->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned);
   7712 }
   7713 static inline HRESULT ISpRecoResult_GetAudio(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
   7714     return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
   7715 }
   7716 static inline HRESULT ISpRecoResult_SpeakAudio(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,DWORD dwFlags,ULONG *pulStreamNumber) {
   7717     return This->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber);
   7718 }
   7719 static inline HRESULT ISpRecoResult_Serialize(ISpRecoResult* This,SPSERIALIZEDRESULT **ppCoMemSerializedResult) {
   7720     return This->lpVtbl->Serialize(This,ppCoMemSerializedResult);
   7721 }
   7722 static inline HRESULT ISpRecoResult_ScaleAudio(ISpRecoResult* This,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
   7723     return This->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx);
   7724 }
   7725 static inline HRESULT ISpRecoResult_GetRecoContext(ISpRecoResult* This,ISpRecoContext **ppRecoContext) {
   7726     return This->lpVtbl->GetRecoContext(This,ppRecoContext);
   7727 }
   7728 #endif
   7729 #endif
   7730 
   7731 #endif
   7732 
   7733 
   7734 #endif  /* __ISpRecoResult_INTERFACE_DEFINED__ */
   7735 
   7736 typedef enum SPCOMMITFLAGS {
   7737     SPCF_NONE = 0,
   7738     SPCF_ADD_TO_USER_LEXICON = 1 << 0,
   7739     SPCF_DEFINITE_CORRECTION = 1 << 1
   7740 } SPCOMMITFLAGS;
   7741 /*****************************************************************************
   7742  * ISpRecoResult2 interface
   7743  */
   7744 #ifndef __ISpRecoResult2_INTERFACE_DEFINED__
   7745 #define __ISpRecoResult2_INTERFACE_DEFINED__
   7746 
   7747 DEFINE_GUID(IID_ISpRecoResult2, 0x27cac6c4, 0x88f2, 0x41f2, 0x88,0x17, 0x0c,0x95,0xe5,0x9f,0x1e,0x6e);
   7748 #if defined(__cplusplus) && !defined(CINTERFACE)
   7749 MIDL_INTERFACE("27cac6c4-88f2-41f2-8817-0c95e59f1e6e")
   7750 ISpRecoResult2 : public ISpRecoResult
   7751 {
   7752     virtual HRESULT STDMETHODCALLTYPE CommitAlternate(
   7753         ISpPhraseAlt *pPhraseAlt,
   7754         ISpRecoResult **ppNewResult) = 0;
   7755 
   7756     virtual HRESULT STDMETHODCALLTYPE CommitText(
   7757         ULONG ulStartElement,
   7758         ULONG cElements,
   7759         LPCWSTR pszCorrectedData,
   7760         DWORD eCommitFlags) = 0;
   7761 
   7762     virtual HRESULT STDMETHODCALLTYPE SetTextFeedback(
   7763         LPCWSTR pszFeedback,
   7764         WINBOOL fSuccessful) = 0;
   7765 
   7766 };
   7767 #ifdef __CRT_UUID_DECL
   7768 __CRT_UUID_DECL(ISpRecoResult2, 0x27cac6c4, 0x88f2, 0x41f2, 0x88,0x17, 0x0c,0x95,0xe5,0x9f,0x1e,0x6e)
   7769 #endif
   7770 #else
   7771 typedef struct ISpRecoResult2Vtbl {
   7772     BEGIN_INTERFACE
   7773 
   7774     /*** IUnknown methods ***/
   7775     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7776         ISpRecoResult2 *This,
   7777         REFIID riid,
   7778         void **ppvObject);
   7779 
   7780     ULONG (STDMETHODCALLTYPE *AddRef)(
   7781         ISpRecoResult2 *This);
   7782 
   7783     ULONG (STDMETHODCALLTYPE *Release)(
   7784         ISpRecoResult2 *This);
   7785 
   7786     /*** ISpPhrase methods ***/
   7787     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
   7788         ISpRecoResult2 *This,
   7789         SPPHRASE **ppCoMemPhrase);
   7790 
   7791     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
   7792         ISpRecoResult2 *This,
   7793         SPSERIALIZEDPHRASE **ppCoMemPhrase);
   7794 
   7795     HRESULT (STDMETHODCALLTYPE *GetText)(
   7796         ISpRecoResult2 *This,
   7797         ULONG ulStart,
   7798         ULONG ulCount,
   7799         WINBOOL fUseTextReplacements,
   7800         LPWSTR *ppszCoMemText,
   7801         BYTE *pbDisplayAttributes);
   7802 
   7803     HRESULT (STDMETHODCALLTYPE *Discard)(
   7804         ISpRecoResult2 *This,
   7805         DWORD dwValueTypes);
   7806 
   7807     /*** ISpRecoResult methods ***/
   7808     HRESULT (STDMETHODCALLTYPE *GetResultTimes)(
   7809         ISpRecoResult2 *This,
   7810         SPRECORESULTTIMES *pTimes);
   7811 
   7812     HRESULT (STDMETHODCALLTYPE *GetAlternates)(
   7813         ISpRecoResult2 *This,
   7814         ULONG ulStartElement,
   7815         ULONG cElements,
   7816         ULONG ulRequestCount,
   7817         ISpPhraseAlt **ppPhrases,
   7818         ULONG *pcPhrasesReturned);
   7819 
   7820     HRESULT (STDMETHODCALLTYPE *GetAudio)(
   7821         ISpRecoResult2 *This,
   7822         ULONG ulStartElement,
   7823         ULONG cElements,
   7824         ISpStreamFormat **ppStream);
   7825 
   7826     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
   7827         ISpRecoResult2 *This,
   7828         ULONG ulStartElement,
   7829         ULONG cElements,
   7830         DWORD dwFlags,
   7831         ULONG *pulStreamNumber);
   7832 
   7833     HRESULT (STDMETHODCALLTYPE *Serialize)(
   7834         ISpRecoResult2 *This,
   7835         SPSERIALIZEDRESULT **ppCoMemSerializedResult);
   7836 
   7837     HRESULT (STDMETHODCALLTYPE *ScaleAudio)(
   7838         ISpRecoResult2 *This,
   7839         const GUID *pAudioFormatId,
   7840         const WAVEFORMATEX *pWaveFormatEx);
   7841 
   7842     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
   7843         ISpRecoResult2 *This,
   7844         ISpRecoContext **ppRecoContext);
   7845 
   7846     /*** ISpRecoResult2 methods ***/
   7847     HRESULT (STDMETHODCALLTYPE *CommitAlternate)(
   7848         ISpRecoResult2 *This,
   7849         ISpPhraseAlt *pPhraseAlt,
   7850         ISpRecoResult **ppNewResult);
   7851 
   7852     HRESULT (STDMETHODCALLTYPE *CommitText)(
   7853         ISpRecoResult2 *This,
   7854         ULONG ulStartElement,
   7855         ULONG cElements,
   7856         LPCWSTR pszCorrectedData,
   7857         DWORD eCommitFlags);
   7858 
   7859     HRESULT (STDMETHODCALLTYPE *SetTextFeedback)(
   7860         ISpRecoResult2 *This,
   7861         LPCWSTR pszFeedback,
   7862         WINBOOL fSuccessful);
   7863 
   7864     END_INTERFACE
   7865 } ISpRecoResult2Vtbl;
   7866 
   7867 interface ISpRecoResult2 {
   7868     CONST_VTBL ISpRecoResult2Vtbl* lpVtbl;
   7869 };
   7870 
   7871 #ifdef COBJMACROS
   7872 #ifndef WIDL_C_INLINE_WRAPPERS
   7873 /*** IUnknown methods ***/
   7874 #define ISpRecoResult2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7875 #define ISpRecoResult2_AddRef(This) (This)->lpVtbl->AddRef(This)
   7876 #define ISpRecoResult2_Release(This) (This)->lpVtbl->Release(This)
   7877 /*** ISpPhrase methods ***/
   7878 #define ISpRecoResult2_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
   7879 #define ISpRecoResult2_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
   7880 #define ISpRecoResult2_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
   7881 #define ISpRecoResult2_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
   7882 /*** ISpRecoResult methods ***/
   7883 #define ISpRecoResult2_GetResultTimes(This,pTimes) (This)->lpVtbl->GetResultTimes(This,pTimes)
   7884 #define ISpRecoResult2_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned) (This)->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
   7885 #define ISpRecoResult2_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
   7886 #define ISpRecoResult2_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
   7887 #define ISpRecoResult2_Serialize(This,ppCoMemSerializedResult) (This)->lpVtbl->Serialize(This,ppCoMemSerializedResult)
   7888 #define ISpRecoResult2_ScaleAudio(This,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
   7889 #define ISpRecoResult2_GetRecoContext(This,ppRecoContext) (This)->lpVtbl->GetRecoContext(This,ppRecoContext)
   7890 /*** ISpRecoResult2 methods ***/
   7891 #define ISpRecoResult2_CommitAlternate(This,pPhraseAlt,ppNewResult) (This)->lpVtbl->CommitAlternate(This,pPhraseAlt,ppNewResult)
   7892 #define ISpRecoResult2_CommitText(This,ulStartElement,cElements,pszCorrectedData,eCommitFlags) (This)->lpVtbl->CommitText(This,ulStartElement,cElements,pszCorrectedData,eCommitFlags)
   7893 #define ISpRecoResult2_SetTextFeedback(This,pszFeedback,fSuccessful) (This)->lpVtbl->SetTextFeedback(This,pszFeedback,fSuccessful)
   7894 #else
   7895 /*** IUnknown methods ***/
   7896 static inline HRESULT ISpRecoResult2_QueryInterface(ISpRecoResult2* This,REFIID riid,void **ppvObject) {
   7897     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7898 }
   7899 static inline ULONG ISpRecoResult2_AddRef(ISpRecoResult2* This) {
   7900     return This->lpVtbl->AddRef(This);
   7901 }
   7902 static inline ULONG ISpRecoResult2_Release(ISpRecoResult2* This) {
   7903     return This->lpVtbl->Release(This);
   7904 }
   7905 /*** ISpPhrase methods ***/
   7906 static inline HRESULT ISpRecoResult2_GetPhrase(ISpRecoResult2* This,SPPHRASE **ppCoMemPhrase) {
   7907     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
   7908 }
   7909 static inline HRESULT ISpRecoResult2_GetSerializedPhrase(ISpRecoResult2* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
   7910     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
   7911 }
   7912 static inline HRESULT ISpRecoResult2_GetText(ISpRecoResult2* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
   7913     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
   7914 }
   7915 static inline HRESULT ISpRecoResult2_Discard(ISpRecoResult2* This,DWORD dwValueTypes) {
   7916     return This->lpVtbl->Discard(This,dwValueTypes);
   7917 }
   7918 /*** ISpRecoResult methods ***/
   7919 static inline HRESULT ISpRecoResult2_GetResultTimes(ISpRecoResult2* This,SPRECORESULTTIMES *pTimes) {
   7920     return This->lpVtbl->GetResultTimes(This,pTimes);
   7921 }
   7922 static inline HRESULT ISpRecoResult2_GetAlternates(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,ULONG ulRequestCount,ISpPhraseAlt **ppPhrases,ULONG *pcPhrasesReturned) {
   7923     return This->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned);
   7924 }
   7925 static inline HRESULT ISpRecoResult2_GetAudio(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
   7926     return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
   7927 }
   7928 static inline HRESULT ISpRecoResult2_SpeakAudio(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,DWORD dwFlags,ULONG *pulStreamNumber) {
   7929     return This->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber);
   7930 }
   7931 static inline HRESULT ISpRecoResult2_Serialize(ISpRecoResult2* This,SPSERIALIZEDRESULT **ppCoMemSerializedResult) {
   7932     return This->lpVtbl->Serialize(This,ppCoMemSerializedResult);
   7933 }
   7934 static inline HRESULT ISpRecoResult2_ScaleAudio(ISpRecoResult2* This,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
   7935     return This->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx);
   7936 }
   7937 static inline HRESULT ISpRecoResult2_GetRecoContext(ISpRecoResult2* This,ISpRecoContext **ppRecoContext) {
   7938     return This->lpVtbl->GetRecoContext(This,ppRecoContext);
   7939 }
   7940 /*** ISpRecoResult2 methods ***/
   7941 static inline HRESULT ISpRecoResult2_CommitAlternate(ISpRecoResult2* This,ISpPhraseAlt *pPhraseAlt,ISpRecoResult **ppNewResult) {
   7942     return This->lpVtbl->CommitAlternate(This,pPhraseAlt,ppNewResult);
   7943 }
   7944 static inline HRESULT ISpRecoResult2_CommitText(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,LPCWSTR pszCorrectedData,DWORD eCommitFlags) {
   7945     return This->lpVtbl->CommitText(This,ulStartElement,cElements,pszCorrectedData,eCommitFlags);
   7946 }
   7947 static inline HRESULT ISpRecoResult2_SetTextFeedback(ISpRecoResult2* This,LPCWSTR pszFeedback,WINBOOL fSuccessful) {
   7948     return This->lpVtbl->SetTextFeedback(This,pszFeedback,fSuccessful);
   7949 }
   7950 #endif
   7951 #endif
   7952 
   7953 #endif
   7954 
   7955 
   7956 #endif  /* __ISpRecoResult2_INTERFACE_DEFINED__ */
   7957 
   7958 /*****************************************************************************
   7959  * ISpXMLRecoResult interface
   7960  */
   7961 #ifndef __ISpXMLRecoResult_INTERFACE_DEFINED__
   7962 #define __ISpXMLRecoResult_INTERFACE_DEFINED__
   7963 
   7964 DEFINE_GUID(IID_ISpXMLRecoResult, 0xae39362b, 0x45a8, 0x4074, 0x9b,0x9e, 0xcc,0xf4,0x9a,0xa2,0xd0,0xb6);
   7965 #if defined(__cplusplus) && !defined(CINTERFACE)
   7966 MIDL_INTERFACE("ae39362b-45a8-4074-9b9e-ccf49aa2d0b6")
   7967 ISpXMLRecoResult : public ISpRecoResult
   7968 {
   7969     virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
   7970         LPWSTR *ppszCoMemXMLResult,
   7971         SPXMLRESULTOPTIONS Options) = 0;
   7972 
   7973     virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
   7974         SPSEMANTICERRORINFO *pSemanticErrorInfo) = 0;
   7975 
   7976 };
   7977 #ifdef __CRT_UUID_DECL
   7978 __CRT_UUID_DECL(ISpXMLRecoResult, 0xae39362b, 0x45a8, 0x4074, 0x9b,0x9e, 0xcc,0xf4,0x9a,0xa2,0xd0,0xb6)
   7979 #endif
   7980 #else
   7981 typedef struct ISpXMLRecoResultVtbl {
   7982     BEGIN_INTERFACE
   7983 
   7984     /*** IUnknown methods ***/
   7985     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7986         ISpXMLRecoResult *This,
   7987         REFIID riid,
   7988         void **ppvObject);
   7989 
   7990     ULONG (STDMETHODCALLTYPE *AddRef)(
   7991         ISpXMLRecoResult *This);
   7992 
   7993     ULONG (STDMETHODCALLTYPE *Release)(
   7994         ISpXMLRecoResult *This);
   7995 
   7996     /*** ISpPhrase methods ***/
   7997     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
   7998         ISpXMLRecoResult *This,
   7999         SPPHRASE **ppCoMemPhrase);
   8000 
   8001     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
   8002         ISpXMLRecoResult *This,
   8003         SPSERIALIZEDPHRASE **ppCoMemPhrase);
   8004 
   8005     HRESULT (STDMETHODCALLTYPE *GetText)(
   8006         ISpXMLRecoResult *This,
   8007         ULONG ulStart,
   8008         ULONG ulCount,
   8009         WINBOOL fUseTextReplacements,
   8010         LPWSTR *ppszCoMemText,
   8011         BYTE *pbDisplayAttributes);
   8012 
   8013     HRESULT (STDMETHODCALLTYPE *Discard)(
   8014         ISpXMLRecoResult *This,
   8015         DWORD dwValueTypes);
   8016 
   8017     /*** ISpRecoResult methods ***/
   8018     HRESULT (STDMETHODCALLTYPE *GetResultTimes)(
   8019         ISpXMLRecoResult *This,
   8020         SPRECORESULTTIMES *pTimes);
   8021 
   8022     HRESULT (STDMETHODCALLTYPE *GetAlternates)(
   8023         ISpXMLRecoResult *This,
   8024         ULONG ulStartElement,
   8025         ULONG cElements,
   8026         ULONG ulRequestCount,
   8027         ISpPhraseAlt **ppPhrases,
   8028         ULONG *pcPhrasesReturned);
   8029 
   8030     HRESULT (STDMETHODCALLTYPE *GetAudio)(
   8031         ISpXMLRecoResult *This,
   8032         ULONG ulStartElement,
   8033         ULONG cElements,
   8034         ISpStreamFormat **ppStream);
   8035 
   8036     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
   8037         ISpXMLRecoResult *This,
   8038         ULONG ulStartElement,
   8039         ULONG cElements,
   8040         DWORD dwFlags,
   8041         ULONG *pulStreamNumber);
   8042 
   8043     HRESULT (STDMETHODCALLTYPE *Serialize)(
   8044         ISpXMLRecoResult *This,
   8045         SPSERIALIZEDRESULT **ppCoMemSerializedResult);
   8046 
   8047     HRESULT (STDMETHODCALLTYPE *ScaleAudio)(
   8048         ISpXMLRecoResult *This,
   8049         const GUID *pAudioFormatId,
   8050         const WAVEFORMATEX *pWaveFormatEx);
   8051 
   8052     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
   8053         ISpXMLRecoResult *This,
   8054         ISpRecoContext **ppRecoContext);
   8055 
   8056     /*** ISpXMLRecoResult methods ***/
   8057     HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
   8058         ISpXMLRecoResult *This,
   8059         LPWSTR *ppszCoMemXMLResult,
   8060         SPXMLRESULTOPTIONS Options);
   8061 
   8062     HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
   8063         ISpXMLRecoResult *This,
   8064         SPSEMANTICERRORINFO *pSemanticErrorInfo);
   8065 
   8066     END_INTERFACE
   8067 } ISpXMLRecoResultVtbl;
   8068 
   8069 interface ISpXMLRecoResult {
   8070     CONST_VTBL ISpXMLRecoResultVtbl* lpVtbl;
   8071 };
   8072 
   8073 #ifdef COBJMACROS
   8074 #ifndef WIDL_C_INLINE_WRAPPERS
   8075 /*** IUnknown methods ***/
   8076 #define ISpXMLRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8077 #define ISpXMLRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
   8078 #define ISpXMLRecoResult_Release(This) (This)->lpVtbl->Release(This)
   8079 /*** ISpPhrase methods ***/
   8080 #define ISpXMLRecoResult_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
   8081 #define ISpXMLRecoResult_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
   8082 #define ISpXMLRecoResult_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
   8083 #define ISpXMLRecoResult_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
   8084 /*** ISpRecoResult methods ***/
   8085 #define ISpXMLRecoResult_GetResultTimes(This,pTimes) (This)->lpVtbl->GetResultTimes(This,pTimes)
   8086 #define ISpXMLRecoResult_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned) (This)->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
   8087 #define ISpXMLRecoResult_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
   8088 #define ISpXMLRecoResult_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
   8089 #define ISpXMLRecoResult_Serialize(This,ppCoMemSerializedResult) (This)->lpVtbl->Serialize(This,ppCoMemSerializedResult)
   8090 #define ISpXMLRecoResult_ScaleAudio(This,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
   8091 #define ISpXMLRecoResult_GetRecoContext(This,ppRecoContext) (This)->lpVtbl->GetRecoContext(This,ppRecoContext)
   8092 /*** ISpXMLRecoResult methods ***/
   8093 #define ISpXMLRecoResult_GetXMLResult(This,ppszCoMemXMLResult,Options) (This)->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options)
   8094 #define ISpXMLRecoResult_GetXMLErrorInfo(This,pSemanticErrorInfo) (This)->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo)
   8095 #else
   8096 /*** IUnknown methods ***/
   8097 static inline HRESULT ISpXMLRecoResult_QueryInterface(ISpXMLRecoResult* This,REFIID riid,void **ppvObject) {
   8098     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8099 }
   8100 static inline ULONG ISpXMLRecoResult_AddRef(ISpXMLRecoResult* This) {
   8101     return This->lpVtbl->AddRef(This);
   8102 }
   8103 static inline ULONG ISpXMLRecoResult_Release(ISpXMLRecoResult* This) {
   8104     return This->lpVtbl->Release(This);
   8105 }
   8106 /*** ISpPhrase methods ***/
   8107 static inline HRESULT ISpXMLRecoResult_GetPhrase(ISpXMLRecoResult* This,SPPHRASE **ppCoMemPhrase) {
   8108     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
   8109 }
   8110 static inline HRESULT ISpXMLRecoResult_GetSerializedPhrase(ISpXMLRecoResult* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
   8111     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
   8112 }
   8113 static inline HRESULT ISpXMLRecoResult_GetText(ISpXMLRecoResult* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
   8114     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
   8115 }
   8116 static inline HRESULT ISpXMLRecoResult_Discard(ISpXMLRecoResult* This,DWORD dwValueTypes) {
   8117     return This->lpVtbl->Discard(This,dwValueTypes);
   8118 }
   8119 /*** ISpRecoResult methods ***/
   8120 static inline HRESULT ISpXMLRecoResult_GetResultTimes(ISpXMLRecoResult* This,SPRECORESULTTIMES *pTimes) {
   8121     return This->lpVtbl->GetResultTimes(This,pTimes);
   8122 }
   8123 static inline HRESULT ISpXMLRecoResult_GetAlternates(ISpXMLRecoResult* This,ULONG ulStartElement,ULONG cElements,ULONG ulRequestCount,ISpPhraseAlt **ppPhrases,ULONG *pcPhrasesReturned) {
   8124     return This->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned);
   8125 }
   8126 static inline HRESULT ISpXMLRecoResult_GetAudio(ISpXMLRecoResult* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
   8127     return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
   8128 }
   8129 static inline HRESULT ISpXMLRecoResult_SpeakAudio(ISpXMLRecoResult* This,ULONG ulStartElement,ULONG cElements,DWORD dwFlags,ULONG *pulStreamNumber) {
   8130     return This->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber);
   8131 }
   8132 static inline HRESULT ISpXMLRecoResult_Serialize(ISpXMLRecoResult* This,SPSERIALIZEDRESULT **ppCoMemSerializedResult) {
   8133     return This->lpVtbl->Serialize(This,ppCoMemSerializedResult);
   8134 }
   8135 static inline HRESULT ISpXMLRecoResult_ScaleAudio(ISpXMLRecoResult* This,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
   8136     return This->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx);
   8137 }
   8138 static inline HRESULT ISpXMLRecoResult_GetRecoContext(ISpXMLRecoResult* This,ISpRecoContext **ppRecoContext) {
   8139     return This->lpVtbl->GetRecoContext(This,ppRecoContext);
   8140 }
   8141 /*** ISpXMLRecoResult methods ***/
   8142 static inline HRESULT ISpXMLRecoResult_GetXMLResult(ISpXMLRecoResult* This,LPWSTR *ppszCoMemXMLResult,SPXMLRESULTOPTIONS Options) {
   8143     return This->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options);
   8144 }
   8145 static inline HRESULT ISpXMLRecoResult_GetXMLErrorInfo(ISpXMLRecoResult* This,SPSEMANTICERRORINFO *pSemanticErrorInfo) {
   8146     return This->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo);
   8147 }
   8148 #endif
   8149 #endif
   8150 
   8151 #endif
   8152 
   8153 
   8154 #endif  /* __ISpXMLRecoResult_INTERFACE_DEFINED__ */
   8155 
   8156 typedef struct tagSPTEXTSELECTIONINFO {
   8157     ULONG ulStartActiveOffset;
   8158     ULONG cchActiveChars;
   8159     ULONG ulStartSelection;
   8160     ULONG cchSelection;
   8161 } SPTEXTSELECTIONINFO;
   8162 typedef enum SPWORDPRONOUNCEABLE {
   8163     SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE = 0,
   8164     SPWP_UNKNOWN_WORD_PRONOUNCEABLE = 1,
   8165     SPWP_KNOWN_WORD_PRONOUNCEABLE = 2
   8166 } SPWORDPRONOUNCEABLE;
   8167 typedef enum SPGRAMMARSTATE {
   8168     SPGS_DISABLED = 0,
   8169     SPGS_ENABLED = 1,
   8170     SPGS_EXCLUSIVE = 3
   8171 } SPGRAMMARSTATE;
   8172 typedef enum SPCONTEXTSTATE {
   8173     SPCS_DISABLED = 0,
   8174     SPCS_ENABLED = 1
   8175 } SPCONTEXTSTATE;
   8176 typedef enum SPRULESTATE {
   8177     SPRS_INACTIVE = 0,
   8178     SPRS_ACTIVE = 1,
   8179     SPRS_ACTIVE_WITH_AUTO_PAUSE = 3,
   8180     SPRS_ACTIVE_USER_DELIMITED = 4
   8181 } SPRULESTATE;
   8182 #define SP_STREAMPOS_ASAP (0)
   8183 
   8184 #define SP_STREAMPOS_REALTIME (-1)
   8185 
   8186 #define SPRULETRANS_TEXTBUFFER (SPSTATEHANDLE) (-1)
   8187 #define SPRULETRANS_WILDCARD (SPSTATEHANDLE) (-2)
   8188 #define SPRULETRANS_DICTATION (SPSTATEHANDLE) (-3)
   8189 typedef enum SPGRAMMARWORDTYPE {
   8190     SPWT_DISPLAY = 0,
   8191     SPWT_LEXICAL = 1,
   8192     SPWT_PRONUNCIATION = 2,
   8193     SPWT_LEXICAL_NO_SPECIAL_CHARS = 3
   8194 } SPGRAMMARWORDTYPE;
   8195 typedef struct tagSPPROPERTYINFO {
   8196     LPCWSTR pszName;
   8197     ULONG ulId;
   8198     LPCWSTR pszValue;
   8199     VARIANT vValue;
   8200 } SPPROPERTYINFO;
   8201 typedef enum SPCFGRULEATTRIBUTES {
   8202     SPRAF_TopLevel = 0x1,
   8203     SPRAF_Active = 0x2,
   8204     SPRAF_Export = 0x4,
   8205     SPRAF_Import = 0x8,
   8206     SPRAF_Interpreter = 0x10,
   8207     SPRAF_Dynamic = 0x20,
   8208     SPRAF_Root = 0x40,
   8209     SPRAF_AutoPause = 0x10000,
   8210     SPRAF_UserDelimited = 0x20000
   8211 } SPCFGRULEATTRIBUTES;
   8212 /*****************************************************************************
   8213  * ISpGrammarBuilder interface
   8214  */
   8215 #ifndef __ISpGrammarBuilder_INTERFACE_DEFINED__
   8216 #define __ISpGrammarBuilder_INTERFACE_DEFINED__
   8217 
   8218 DEFINE_GUID(IID_ISpGrammarBuilder, 0x8137828f, 0x591a, 0x4a42, 0xbe,0x58, 0x49,0xea,0x7e,0xba,0xac,0x68);
   8219 #if defined(__cplusplus) && !defined(CINTERFACE)
   8220 MIDL_INTERFACE("8137828f-591a-4a42-be58-49ea7ebaac68")
   8221 ISpGrammarBuilder : public IUnknown
   8222 {
   8223     virtual HRESULT STDMETHODCALLTYPE ResetGrammar(
   8224         WORD NewLanguage) = 0;
   8225 
   8226     virtual HRESULT STDMETHODCALLTYPE GetRule(
   8227         LPCWSTR pszRuleName,
   8228         DWORD dwRuleId,
   8229         DWORD dwAttributes,
   8230         WINBOOL fCreateIfNotExist,
   8231         SPSTATEHANDLE *phInitialState) = 0;
   8232 
   8233     virtual HRESULT STDMETHODCALLTYPE ClearRule(
   8234         SPSTATEHANDLE hState) = 0;
   8235 
   8236     virtual HRESULT STDMETHODCALLTYPE CreateNewState(
   8237         SPSTATEHANDLE hState,
   8238         SPSTATEHANDLE *phState) = 0;
   8239 
   8240     virtual HRESULT STDMETHODCALLTYPE AddWordTransition(
   8241         SPSTATEHANDLE hFromState,
   8242         SPSTATEHANDLE hToState,
   8243         LPCWSTR psz,
   8244         LPCWSTR pszSeparators,
   8245         SPGRAMMARWORDTYPE eWordType,
   8246         float Weight,
   8247         const SPPROPERTYINFO *pPropInfo) = 0;
   8248 
   8249     virtual HRESULT STDMETHODCALLTYPE AddRuleTransition(
   8250         SPSTATEHANDLE hFromState,
   8251         SPSTATEHANDLE hToState,
   8252         SPSTATEHANDLE hRule,
   8253         float Weight,
   8254         const SPPROPERTYINFO *pPropInfo) = 0;
   8255 
   8256     virtual HRESULT STDMETHODCALLTYPE AddResource(
   8257         SPSTATEHANDLE hRuleState,
   8258         LPCWSTR pszResourceName,
   8259         LPCWSTR pszResourceValue) = 0;
   8260 
   8261     virtual HRESULT STDMETHODCALLTYPE Commit(
   8262         DWORD dwReserved) = 0;
   8263 
   8264 };
   8265 #ifdef __CRT_UUID_DECL
   8266 __CRT_UUID_DECL(ISpGrammarBuilder, 0x8137828f, 0x591a, 0x4a42, 0xbe,0x58, 0x49,0xea,0x7e,0xba,0xac,0x68)
   8267 #endif
   8268 #else
   8269 typedef struct ISpGrammarBuilderVtbl {
   8270     BEGIN_INTERFACE
   8271 
   8272     /*** IUnknown methods ***/
   8273     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8274         ISpGrammarBuilder *This,
   8275         REFIID riid,
   8276         void **ppvObject);
   8277 
   8278     ULONG (STDMETHODCALLTYPE *AddRef)(
   8279         ISpGrammarBuilder *This);
   8280 
   8281     ULONG (STDMETHODCALLTYPE *Release)(
   8282         ISpGrammarBuilder *This);
   8283 
   8284     /*** ISpGrammarBuilder methods ***/
   8285     HRESULT (STDMETHODCALLTYPE *ResetGrammar)(
   8286         ISpGrammarBuilder *This,
   8287         WORD NewLanguage);
   8288 
   8289     HRESULT (STDMETHODCALLTYPE *GetRule)(
   8290         ISpGrammarBuilder *This,
   8291         LPCWSTR pszRuleName,
   8292         DWORD dwRuleId,
   8293         DWORD dwAttributes,
   8294         WINBOOL fCreateIfNotExist,
   8295         SPSTATEHANDLE *phInitialState);
   8296 
   8297     HRESULT (STDMETHODCALLTYPE *ClearRule)(
   8298         ISpGrammarBuilder *This,
   8299         SPSTATEHANDLE hState);
   8300 
   8301     HRESULT (STDMETHODCALLTYPE *CreateNewState)(
   8302         ISpGrammarBuilder *This,
   8303         SPSTATEHANDLE hState,
   8304         SPSTATEHANDLE *phState);
   8305 
   8306     HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
   8307         ISpGrammarBuilder *This,
   8308         SPSTATEHANDLE hFromState,
   8309         SPSTATEHANDLE hToState,
   8310         LPCWSTR psz,
   8311         LPCWSTR pszSeparators,
   8312         SPGRAMMARWORDTYPE eWordType,
   8313         float Weight,
   8314         const SPPROPERTYINFO *pPropInfo);
   8315 
   8316     HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
   8317         ISpGrammarBuilder *This,
   8318         SPSTATEHANDLE hFromState,
   8319         SPSTATEHANDLE hToState,
   8320         SPSTATEHANDLE hRule,
   8321         float Weight,
   8322         const SPPROPERTYINFO *pPropInfo);
   8323 
   8324     HRESULT (STDMETHODCALLTYPE *AddResource)(
   8325         ISpGrammarBuilder *This,
   8326         SPSTATEHANDLE hRuleState,
   8327         LPCWSTR pszResourceName,
   8328         LPCWSTR pszResourceValue);
   8329 
   8330     HRESULT (STDMETHODCALLTYPE *Commit)(
   8331         ISpGrammarBuilder *This,
   8332         DWORD dwReserved);
   8333 
   8334     END_INTERFACE
   8335 } ISpGrammarBuilderVtbl;
   8336 
   8337 interface ISpGrammarBuilder {
   8338     CONST_VTBL ISpGrammarBuilderVtbl* lpVtbl;
   8339 };
   8340 
   8341 #ifdef COBJMACROS
   8342 #ifndef WIDL_C_INLINE_WRAPPERS
   8343 /*** IUnknown methods ***/
   8344 #define ISpGrammarBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8345 #define ISpGrammarBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
   8346 #define ISpGrammarBuilder_Release(This) (This)->lpVtbl->Release(This)
   8347 /*** ISpGrammarBuilder methods ***/
   8348 #define ISpGrammarBuilder_ResetGrammar(This,NewLanguage) (This)->lpVtbl->ResetGrammar(This,NewLanguage)
   8349 #define ISpGrammarBuilder_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState) (This)->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
   8350 #define ISpGrammarBuilder_ClearRule(This,hState) (This)->lpVtbl->ClearRule(This,hState)
   8351 #define ISpGrammarBuilder_CreateNewState(This,hState,phState) (This)->lpVtbl->CreateNewState(This,hState,phState)
   8352 #define ISpGrammarBuilder_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo) (This)->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
   8353 #define ISpGrammarBuilder_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo) (This)->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
   8354 #define ISpGrammarBuilder_AddResource(This,hRuleState,pszResourceName,pszResourceValue) (This)->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue)
   8355 #define ISpGrammarBuilder_Commit(This,dwReserved) (This)->lpVtbl->Commit(This,dwReserved)
   8356 #else
   8357 /*** IUnknown methods ***/
   8358 static inline HRESULT ISpGrammarBuilder_QueryInterface(ISpGrammarBuilder* This,REFIID riid,void **ppvObject) {
   8359     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8360 }
   8361 static inline ULONG ISpGrammarBuilder_AddRef(ISpGrammarBuilder* This) {
   8362     return This->lpVtbl->AddRef(This);
   8363 }
   8364 static inline ULONG ISpGrammarBuilder_Release(ISpGrammarBuilder* This) {
   8365     return This->lpVtbl->Release(This);
   8366 }
   8367 /*** ISpGrammarBuilder methods ***/
   8368 static inline HRESULT ISpGrammarBuilder_ResetGrammar(ISpGrammarBuilder* This,WORD NewLanguage) {
   8369     return This->lpVtbl->ResetGrammar(This,NewLanguage);
   8370 }
   8371 static inline HRESULT ISpGrammarBuilder_GetRule(ISpGrammarBuilder* This,LPCWSTR pszRuleName,DWORD dwRuleId,DWORD dwAttributes,WINBOOL fCreateIfNotExist,SPSTATEHANDLE *phInitialState) {
   8372     return This->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState);
   8373 }
   8374 static inline HRESULT ISpGrammarBuilder_ClearRule(ISpGrammarBuilder* This,SPSTATEHANDLE hState) {
   8375     return This->lpVtbl->ClearRule(This,hState);
   8376 }
   8377 static inline HRESULT ISpGrammarBuilder_CreateNewState(ISpGrammarBuilder* This,SPSTATEHANDLE hState,SPSTATEHANDLE *phState) {
   8378     return This->lpVtbl->CreateNewState(This,hState,phState);
   8379 }
   8380 static inline HRESULT ISpGrammarBuilder_AddWordTransition(ISpGrammarBuilder* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,LPCWSTR pszSeparators,SPGRAMMARWORDTYPE eWordType,float Weight,const SPPROPERTYINFO *pPropInfo) {
   8381     return This->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo);
   8382 }
   8383 static inline HRESULT ISpGrammarBuilder_AddRuleTransition(ISpGrammarBuilder* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,SPSTATEHANDLE hRule,float Weight,const SPPROPERTYINFO *pPropInfo) {
   8384     return This->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo);
   8385 }
   8386 static inline HRESULT ISpGrammarBuilder_AddResource(ISpGrammarBuilder* This,SPSTATEHANDLE hRuleState,LPCWSTR pszResourceName,LPCWSTR pszResourceValue) {
   8387     return This->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue);
   8388 }
   8389 static inline HRESULT ISpGrammarBuilder_Commit(ISpGrammarBuilder* This,DWORD dwReserved) {
   8390     return This->lpVtbl->Commit(This,dwReserved);
   8391 }
   8392 #endif
   8393 #endif
   8394 
   8395 #endif
   8396 
   8397 
   8398 #endif  /* __ISpGrammarBuilder_INTERFACE_DEFINED__ */
   8399 
   8400 typedef enum SPLOADOPTIONS {
   8401     SPLO_STATIC = 0,
   8402     SPLO_DYNAMIC = 1
   8403 } SPLOADOPTIONS;
   8404 /*****************************************************************************
   8405  * ISpRecoGrammar interface
   8406  */
   8407 #ifndef __ISpRecoGrammar_INTERFACE_DEFINED__
   8408 #define __ISpRecoGrammar_INTERFACE_DEFINED__
   8409 
   8410 DEFINE_GUID(IID_ISpRecoGrammar, 0x2177db29, 0x7f45, 0x47d0, 0x85,0x54, 0x06,0x7e,0x91,0xc8,0x05,0x02);
   8411 #if defined(__cplusplus) && !defined(CINTERFACE)
   8412 MIDL_INTERFACE("2177db29-7f45-47d0-8554-067e91c80502")
   8413 ISpRecoGrammar : public ISpGrammarBuilder
   8414 {
   8415     virtual HRESULT STDMETHODCALLTYPE GetGrammarId(
   8416         ULONGLONG *pullGrammarId) = 0;
   8417 
   8418     virtual HRESULT STDMETHODCALLTYPE GetRecoContext(
   8419         ISpRecoContext **ppRecoCtxt) = 0;
   8420 
   8421     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromFile(
   8422         LPCWSTR pszFileName,
   8423         SPLOADOPTIONS Options) = 0;
   8424 
   8425     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromObject(
   8426         REFCLSID rcid,
   8427         LPCWSTR pszGrammarName,
   8428         SPLOADOPTIONS Options) = 0;
   8429 
   8430     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromResource(
   8431         HMODULE hModule,
   8432         LPCWSTR pszResourceName,
   8433         LPCWSTR pszResourceType,
   8434         WORD wLanguage,
   8435         SPLOADOPTIONS Options) = 0;
   8436 
   8437     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromMemory(
   8438         const SPBINARYGRAMMAR *pGrammar,
   8439         SPLOADOPTIONS Options) = 0;
   8440 
   8441     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromProprietaryGrammar(
   8442         REFGUID rguidParam,
   8443         LPCWSTR pszStringParam,
   8444         const void *pvDataPrarm,
   8445         ULONG cbDataSize,
   8446         SPLOADOPTIONS Options) = 0;
   8447 
   8448     virtual HRESULT STDMETHODCALLTYPE SetRuleState(
   8449         LPCWSTR pszName,
   8450         void *pReserved,
   8451         SPRULESTATE NewState) = 0;
   8452 
   8453     virtual HRESULT STDMETHODCALLTYPE SetRuleIdState(
   8454         ULONG ulRuleId,
   8455         SPRULESTATE NewState) = 0;
   8456 
   8457     virtual HRESULT STDMETHODCALLTYPE LoadDictation(
   8458         LPCWSTR pszTopicName,
   8459         SPLOADOPTIONS Options) = 0;
   8460 
   8461     virtual HRESULT STDMETHODCALLTYPE UnloadDictation(
   8462         ) = 0;
   8463 
   8464     virtual HRESULT STDMETHODCALLTYPE SetDictationState(
   8465         SPRULESTATE NewState) = 0;
   8466 
   8467     virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData(
   8468         const WCHAR *pText,
   8469         ULONG cchText,
   8470         const SPTEXTSELECTIONINFO *pInfo) = 0;
   8471 
   8472     virtual HRESULT STDMETHODCALLTYPE SetTextSelection(
   8473         const SPTEXTSELECTIONINFO *pInfo) = 0;
   8474 
   8475     virtual HRESULT STDMETHODCALLTYPE IsPronounceable(
   8476         LPCWSTR pszWord,
   8477         SPWORDPRONOUNCEABLE *pWordPronounceable) = 0;
   8478 
   8479     virtual HRESULT STDMETHODCALLTYPE SetGrammarState(
   8480         SPGRAMMARSTATE eGrammarState) = 0;
   8481 
   8482     virtual HRESULT STDMETHODCALLTYPE SaveCmd(
   8483         IStream *pStream,
   8484         LPWSTR *ppszCoMemErrorText) = 0;
   8485 
   8486     virtual HRESULT STDMETHODCALLTYPE GetGrammarState(
   8487         SPGRAMMARSTATE *peGrammarState) = 0;
   8488 
   8489 };
   8490 #ifdef __CRT_UUID_DECL
   8491 __CRT_UUID_DECL(ISpRecoGrammar, 0x2177db29, 0x7f45, 0x47d0, 0x85,0x54, 0x06,0x7e,0x91,0xc8,0x05,0x02)
   8492 #endif
   8493 #else
   8494 typedef struct ISpRecoGrammarVtbl {
   8495     BEGIN_INTERFACE
   8496 
   8497     /*** IUnknown methods ***/
   8498     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8499         ISpRecoGrammar *This,
   8500         REFIID riid,
   8501         void **ppvObject);
   8502 
   8503     ULONG (STDMETHODCALLTYPE *AddRef)(
   8504         ISpRecoGrammar *This);
   8505 
   8506     ULONG (STDMETHODCALLTYPE *Release)(
   8507         ISpRecoGrammar *This);
   8508 
   8509     /*** ISpGrammarBuilder methods ***/
   8510     HRESULT (STDMETHODCALLTYPE *ResetGrammar)(
   8511         ISpRecoGrammar *This,
   8512         WORD NewLanguage);
   8513 
   8514     HRESULT (STDMETHODCALLTYPE *GetRule)(
   8515         ISpRecoGrammar *This,
   8516         LPCWSTR pszRuleName,
   8517         DWORD dwRuleId,
   8518         DWORD dwAttributes,
   8519         WINBOOL fCreateIfNotExist,
   8520         SPSTATEHANDLE *phInitialState);
   8521 
   8522     HRESULT (STDMETHODCALLTYPE *ClearRule)(
   8523         ISpRecoGrammar *This,
   8524         SPSTATEHANDLE hState);
   8525 
   8526     HRESULT (STDMETHODCALLTYPE *CreateNewState)(
   8527         ISpRecoGrammar *This,
   8528         SPSTATEHANDLE hState,
   8529         SPSTATEHANDLE *phState);
   8530 
   8531     HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
   8532         ISpRecoGrammar *This,
   8533         SPSTATEHANDLE hFromState,
   8534         SPSTATEHANDLE hToState,
   8535         LPCWSTR psz,
   8536         LPCWSTR pszSeparators,
   8537         SPGRAMMARWORDTYPE eWordType,
   8538         float Weight,
   8539         const SPPROPERTYINFO *pPropInfo);
   8540 
   8541     HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
   8542         ISpRecoGrammar *This,
   8543         SPSTATEHANDLE hFromState,
   8544         SPSTATEHANDLE hToState,
   8545         SPSTATEHANDLE hRule,
   8546         float Weight,
   8547         const SPPROPERTYINFO *pPropInfo);
   8548 
   8549     HRESULT (STDMETHODCALLTYPE *AddResource)(
   8550         ISpRecoGrammar *This,
   8551         SPSTATEHANDLE hRuleState,
   8552         LPCWSTR pszResourceName,
   8553         LPCWSTR pszResourceValue);
   8554 
   8555     HRESULT (STDMETHODCALLTYPE *Commit)(
   8556         ISpRecoGrammar *This,
   8557         DWORD dwReserved);
   8558 
   8559     /*** ISpRecoGrammar methods ***/
   8560     HRESULT (STDMETHODCALLTYPE *GetGrammarId)(
   8561         ISpRecoGrammar *This,
   8562         ULONGLONG *pullGrammarId);
   8563 
   8564     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
   8565         ISpRecoGrammar *This,
   8566         ISpRecoContext **ppRecoCtxt);
   8567 
   8568     HRESULT (STDMETHODCALLTYPE *LoadCmdFromFile)(
   8569         ISpRecoGrammar *This,
   8570         LPCWSTR pszFileName,
   8571         SPLOADOPTIONS Options);
   8572 
   8573     HRESULT (STDMETHODCALLTYPE *LoadCmdFromObject)(
   8574         ISpRecoGrammar *This,
   8575         REFCLSID rcid,
   8576         LPCWSTR pszGrammarName,
   8577         SPLOADOPTIONS Options);
   8578 
   8579     HRESULT (STDMETHODCALLTYPE *LoadCmdFromResource)(
   8580         ISpRecoGrammar *This,
   8581         HMODULE hModule,
   8582         LPCWSTR pszResourceName,
   8583         LPCWSTR pszResourceType,
   8584         WORD wLanguage,
   8585         SPLOADOPTIONS Options);
   8586 
   8587     HRESULT (STDMETHODCALLTYPE *LoadCmdFromMemory)(
   8588         ISpRecoGrammar *This,
   8589         const SPBINARYGRAMMAR *pGrammar,
   8590         SPLOADOPTIONS Options);
   8591 
   8592     HRESULT (STDMETHODCALLTYPE *LoadCmdFromProprietaryGrammar)(
   8593         ISpRecoGrammar *This,
   8594         REFGUID rguidParam,
   8595         LPCWSTR pszStringParam,
   8596         const void *pvDataPrarm,
   8597         ULONG cbDataSize,
   8598         SPLOADOPTIONS Options);
   8599 
   8600     HRESULT (STDMETHODCALLTYPE *SetRuleState)(
   8601         ISpRecoGrammar *This,
   8602         LPCWSTR pszName,
   8603         void *pReserved,
   8604         SPRULESTATE NewState);
   8605 
   8606     HRESULT (STDMETHODCALLTYPE *SetRuleIdState)(
   8607         ISpRecoGrammar *This,
   8608         ULONG ulRuleId,
   8609         SPRULESTATE NewState);
   8610 
   8611     HRESULT (STDMETHODCALLTYPE *LoadDictation)(
   8612         ISpRecoGrammar *This,
   8613         LPCWSTR pszTopicName,
   8614         SPLOADOPTIONS Options);
   8615 
   8616     HRESULT (STDMETHODCALLTYPE *UnloadDictation)(
   8617         ISpRecoGrammar *This);
   8618 
   8619     HRESULT (STDMETHODCALLTYPE *SetDictationState)(
   8620         ISpRecoGrammar *This,
   8621         SPRULESTATE NewState);
   8622 
   8623     HRESULT (STDMETHODCALLTYPE *SetWordSequenceData)(
   8624         ISpRecoGrammar *This,
   8625         const WCHAR *pText,
   8626         ULONG cchText,
   8627         const SPTEXTSELECTIONINFO *pInfo);
   8628 
   8629     HRESULT (STDMETHODCALLTYPE *SetTextSelection)(
   8630         ISpRecoGrammar *This,
   8631         const SPTEXTSELECTIONINFO *pInfo);
   8632 
   8633     HRESULT (STDMETHODCALLTYPE *IsPronounceable)(
   8634         ISpRecoGrammar *This,
   8635         LPCWSTR pszWord,
   8636         SPWORDPRONOUNCEABLE *pWordPronounceable);
   8637 
   8638     HRESULT (STDMETHODCALLTYPE *SetGrammarState)(
   8639         ISpRecoGrammar *This,
   8640         SPGRAMMARSTATE eGrammarState);
   8641 
   8642     HRESULT (STDMETHODCALLTYPE *SaveCmd)(
   8643         ISpRecoGrammar *This,
   8644         IStream *pStream,
   8645         LPWSTR *ppszCoMemErrorText);
   8646 
   8647     HRESULT (STDMETHODCALLTYPE *GetGrammarState)(
   8648         ISpRecoGrammar *This,
   8649         SPGRAMMARSTATE *peGrammarState);
   8650 
   8651     END_INTERFACE
   8652 } ISpRecoGrammarVtbl;
   8653 
   8654 interface ISpRecoGrammar {
   8655     CONST_VTBL ISpRecoGrammarVtbl* lpVtbl;
   8656 };
   8657 
   8658 #ifdef COBJMACROS
   8659 #ifndef WIDL_C_INLINE_WRAPPERS
   8660 /*** IUnknown methods ***/
   8661 #define ISpRecoGrammar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8662 #define ISpRecoGrammar_AddRef(This) (This)->lpVtbl->AddRef(This)
   8663 #define ISpRecoGrammar_Release(This) (This)->lpVtbl->Release(This)
   8664 /*** ISpGrammarBuilder methods ***/
   8665 #define ISpRecoGrammar_ResetGrammar(This,NewLanguage) (This)->lpVtbl->ResetGrammar(This,NewLanguage)
   8666 #define ISpRecoGrammar_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState) (This)->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
   8667 #define ISpRecoGrammar_ClearRule(This,hState) (This)->lpVtbl->ClearRule(This,hState)
   8668 #define ISpRecoGrammar_CreateNewState(This,hState,phState) (This)->lpVtbl->CreateNewState(This,hState,phState)
   8669 #define ISpRecoGrammar_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo) (This)->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
   8670 #define ISpRecoGrammar_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo) (This)->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
   8671 #define ISpRecoGrammar_AddResource(This,hRuleState,pszResourceName,pszResourceValue) (This)->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue)
   8672 #define ISpRecoGrammar_Commit(This,dwReserved) (This)->lpVtbl->Commit(This,dwReserved)
   8673 /*** ISpRecoGrammar methods ***/
   8674 #define ISpRecoGrammar_GetGrammarId(This,pullGrammarId) (This)->lpVtbl->GetGrammarId(This,pullGrammarId)
   8675 #define ISpRecoGrammar_GetRecoContext(This,ppRecoCtxt) (This)->lpVtbl->GetRecoContext(This,ppRecoCtxt)
   8676 #define ISpRecoGrammar_LoadCmdFromFile(This,pszFileName,Options) (This)->lpVtbl->LoadCmdFromFile(This,pszFileName,Options)
   8677 #define ISpRecoGrammar_LoadCmdFromObject(This,rcid,pszGrammarName,Options) (This)->lpVtbl->LoadCmdFromObject(This,rcid,pszGrammarName,Options)
   8678 #define ISpRecoGrammar_LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options) (This)->lpVtbl->LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options)
   8679 #define ISpRecoGrammar_LoadCmdFromMemory(This,pGrammar,Options) (This)->lpVtbl->LoadCmdFromMemory(This,pGrammar,Options)
   8680 #define ISpRecoGrammar_LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options) (This)->lpVtbl->LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options)
   8681 #define ISpRecoGrammar_SetRuleState(This,pszName,pReserved,NewState) (This)->lpVtbl->SetRuleState(This,pszName,pReserved,NewState)
   8682 #define ISpRecoGrammar_SetRuleIdState(This,ulRuleId,NewState) (This)->lpVtbl->SetRuleIdState(This,ulRuleId,NewState)
   8683 #define ISpRecoGrammar_LoadDictation(This,pszTopicName,Options) (This)->lpVtbl->LoadDictation(This,pszTopicName,Options)
   8684 #define ISpRecoGrammar_UnloadDictation(This) (This)->lpVtbl->UnloadDictation(This)
   8685 #define ISpRecoGrammar_SetDictationState(This,NewState) (This)->lpVtbl->SetDictationState(This,NewState)
   8686 #define ISpRecoGrammar_SetWordSequenceData(This,pText,cchText,pInfo) (This)->lpVtbl->SetWordSequenceData(This,pText,cchText,pInfo)
   8687 #define ISpRecoGrammar_SetTextSelection(This,pInfo) (This)->lpVtbl->SetTextSelection(This,pInfo)
   8688 #define ISpRecoGrammar_IsPronounceable(This,pszWord,pWordPronounceable) (This)->lpVtbl->IsPronounceable(This,pszWord,pWordPronounceable)
   8689 #define ISpRecoGrammar_SetGrammarState(This,eGrammarState) (This)->lpVtbl->SetGrammarState(This,eGrammarState)
   8690 #define ISpRecoGrammar_SaveCmd(This,pStream,ppszCoMemErrorText) (This)->lpVtbl->SaveCmd(This,pStream,ppszCoMemErrorText)
   8691 #define ISpRecoGrammar_GetGrammarState(This,peGrammarState) (This)->lpVtbl->GetGrammarState(This,peGrammarState)
   8692 #else
   8693 /*** IUnknown methods ***/
   8694 static inline HRESULT ISpRecoGrammar_QueryInterface(ISpRecoGrammar* This,REFIID riid,void **ppvObject) {
   8695     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8696 }
   8697 static inline ULONG ISpRecoGrammar_AddRef(ISpRecoGrammar* This) {
   8698     return This->lpVtbl->AddRef(This);
   8699 }
   8700 static inline ULONG ISpRecoGrammar_Release(ISpRecoGrammar* This) {
   8701     return This->lpVtbl->Release(This);
   8702 }
   8703 /*** ISpGrammarBuilder methods ***/
   8704 static inline HRESULT ISpRecoGrammar_ResetGrammar(ISpRecoGrammar* This,WORD NewLanguage) {
   8705     return This->lpVtbl->ResetGrammar(This,NewLanguage);
   8706 }
   8707 static inline HRESULT ISpRecoGrammar_GetRule(ISpRecoGrammar* This,LPCWSTR pszRuleName,DWORD dwRuleId,DWORD dwAttributes,WINBOOL fCreateIfNotExist,SPSTATEHANDLE *phInitialState) {
   8708     return This->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState);
   8709 }
   8710 static inline HRESULT ISpRecoGrammar_ClearRule(ISpRecoGrammar* This,SPSTATEHANDLE hState) {
   8711     return This->lpVtbl->ClearRule(This,hState);
   8712 }
   8713 static inline HRESULT ISpRecoGrammar_CreateNewState(ISpRecoGrammar* This,SPSTATEHANDLE hState,SPSTATEHANDLE *phState) {
   8714     return This->lpVtbl->CreateNewState(This,hState,phState);
   8715 }
   8716 static inline HRESULT ISpRecoGrammar_AddWordTransition(ISpRecoGrammar* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,LPCWSTR pszSeparators,SPGRAMMARWORDTYPE eWordType,float Weight,const SPPROPERTYINFO *pPropInfo) {
   8717     return This->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo);
   8718 }
   8719 static inline HRESULT ISpRecoGrammar_AddRuleTransition(ISpRecoGrammar* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,SPSTATEHANDLE hRule,float Weight,const SPPROPERTYINFO *pPropInfo) {
   8720     return This->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo);
   8721 }
   8722 static inline HRESULT ISpRecoGrammar_AddResource(ISpRecoGrammar* This,SPSTATEHANDLE hRuleState,LPCWSTR pszResourceName,LPCWSTR pszResourceValue) {
   8723     return This->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue);
   8724 }
   8725 static inline HRESULT ISpRecoGrammar_Commit(ISpRecoGrammar* This,DWORD dwReserved) {
   8726     return This->lpVtbl->Commit(This,dwReserved);
   8727 }
   8728 /*** ISpRecoGrammar methods ***/
   8729 static inline HRESULT ISpRecoGrammar_GetGrammarId(ISpRecoGrammar* This,ULONGLONG *pullGrammarId) {
   8730     return This->lpVtbl->GetGrammarId(This,pullGrammarId);
   8731 }
   8732 static inline HRESULT ISpRecoGrammar_GetRecoContext(ISpRecoGrammar* This,ISpRecoContext **ppRecoCtxt) {
   8733     return This->lpVtbl->GetRecoContext(This,ppRecoCtxt);
   8734 }
   8735 static inline HRESULT ISpRecoGrammar_LoadCmdFromFile(ISpRecoGrammar* This,LPCWSTR pszFileName,SPLOADOPTIONS Options) {
   8736     return This->lpVtbl->LoadCmdFromFile(This,pszFileName,Options);
   8737 }
   8738 static inline HRESULT ISpRecoGrammar_LoadCmdFromObject(ISpRecoGrammar* This,REFCLSID rcid,LPCWSTR pszGrammarName,SPLOADOPTIONS Options) {
   8739     return This->lpVtbl->LoadCmdFromObject(This,rcid,pszGrammarName,Options);
   8740 }
   8741 static inline HRESULT ISpRecoGrammar_LoadCmdFromResource(ISpRecoGrammar* This,HMODULE hModule,LPCWSTR pszResourceName,LPCWSTR pszResourceType,WORD wLanguage,SPLOADOPTIONS Options) {
   8742     return This->lpVtbl->LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options);
   8743 }
   8744 static inline HRESULT ISpRecoGrammar_LoadCmdFromMemory(ISpRecoGrammar* This,const SPBINARYGRAMMAR *pGrammar,SPLOADOPTIONS Options) {
   8745     return This->lpVtbl->LoadCmdFromMemory(This,pGrammar,Options);
   8746 }
   8747 static inline HRESULT ISpRecoGrammar_LoadCmdFromProprietaryGrammar(ISpRecoGrammar* This,REFGUID rguidParam,LPCWSTR pszStringParam,const void *pvDataPrarm,ULONG cbDataSize,SPLOADOPTIONS Options) {
   8748     return This->lpVtbl->LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options);
   8749 }
   8750 static inline HRESULT ISpRecoGrammar_SetRuleState(ISpRecoGrammar* This,LPCWSTR pszName,void *pReserved,SPRULESTATE NewState) {
   8751     return This->lpVtbl->SetRuleState(This,pszName,pReserved,NewState);
   8752 }
   8753 static inline HRESULT ISpRecoGrammar_SetRuleIdState(ISpRecoGrammar* This,ULONG ulRuleId,SPRULESTATE NewState) {
   8754     return This->lpVtbl->SetRuleIdState(This,ulRuleId,NewState);
   8755 }
   8756 static inline HRESULT ISpRecoGrammar_LoadDictation(ISpRecoGrammar* This,LPCWSTR pszTopicName,SPLOADOPTIONS Options) {
   8757     return This->lpVtbl->LoadDictation(This,pszTopicName,Options);
   8758 }
   8759 static inline HRESULT ISpRecoGrammar_UnloadDictation(ISpRecoGrammar* This) {
   8760     return This->lpVtbl->UnloadDictation(This);
   8761 }
   8762 static inline HRESULT ISpRecoGrammar_SetDictationState(ISpRecoGrammar* This,SPRULESTATE NewState) {
   8763     return This->lpVtbl->SetDictationState(This,NewState);
   8764 }
   8765 static inline HRESULT ISpRecoGrammar_SetWordSequenceData(ISpRecoGrammar* This,const WCHAR *pText,ULONG cchText,const SPTEXTSELECTIONINFO *pInfo) {
   8766     return This->lpVtbl->SetWordSequenceData(This,pText,cchText,pInfo);
   8767 }
   8768 static inline HRESULT ISpRecoGrammar_SetTextSelection(ISpRecoGrammar* This,const SPTEXTSELECTIONINFO *pInfo) {
   8769     return This->lpVtbl->SetTextSelection(This,pInfo);
   8770 }
   8771 static inline HRESULT ISpRecoGrammar_IsPronounceable(ISpRecoGrammar* This,LPCWSTR pszWord,SPWORDPRONOUNCEABLE *pWordPronounceable) {
   8772     return This->lpVtbl->IsPronounceable(This,pszWord,pWordPronounceable);
   8773 }
   8774 static inline HRESULT ISpRecoGrammar_SetGrammarState(ISpRecoGrammar* This,SPGRAMMARSTATE eGrammarState) {
   8775     return This->lpVtbl->SetGrammarState(This,eGrammarState);
   8776 }
   8777 static inline HRESULT ISpRecoGrammar_SaveCmd(ISpRecoGrammar* This,IStream *pStream,LPWSTR *ppszCoMemErrorText) {
   8778     return This->lpVtbl->SaveCmd(This,pStream,ppszCoMemErrorText);
   8779 }
   8780 static inline HRESULT ISpRecoGrammar_GetGrammarState(ISpRecoGrammar* This,SPGRAMMARSTATE *peGrammarState) {
   8781     return This->lpVtbl->GetGrammarState(This,peGrammarState);
   8782 }
   8783 #endif
   8784 #endif
   8785 
   8786 #endif
   8787 
   8788 
   8789 #endif  /* __ISpRecoGrammar_INTERFACE_DEFINED__ */
   8790 
   8791 typedef enum SPMATCHINGMODE {
   8792     AllWords = 0,
   8793     Subsequence = 1,
   8794     OrderedSubset = 3,
   8795     SubsequenceContentRequired = 5,
   8796     OrderedSubsetContentRequired = 7
   8797 } SPMATCHINGMODE;
   8798 typedef enum PHONETICALPHABET {
   8799     PA_Ipa = 0,
   8800     PA_Ups = 1,
   8801     PA_Sapi = 2
   8802 } PHONETICALPHABET;
   8803 /*****************************************************************************
   8804  * ISpGrammarBuilder2 interface
   8805  */
   8806 #ifndef __ISpGrammarBuilder2_INTERFACE_DEFINED__
   8807 #define __ISpGrammarBuilder2_INTERFACE_DEFINED__
   8808 
   8809 DEFINE_GUID(IID_ISpGrammarBuilder2, 0x8ab10026, 0x20cc, 0x4b20, 0x8c,0x22, 0xa4,0x9c,0x9b,0xa7,0x8f,0x60);
   8810 #if defined(__cplusplus) && !defined(CINTERFACE)
   8811 MIDL_INTERFACE("8ab10026-20cc-4b20-8c22-a49c9ba78f60")
   8812 ISpGrammarBuilder2 : public IUnknown
   8813 {
   8814     virtual HRESULT STDMETHODCALLTYPE AddTextSubset(
   8815         SPSTATEHANDLE hFromState,
   8816         SPSTATEHANDLE hToState,
   8817         LPCWSTR psz,
   8818         SPMATCHINGMODE eMatchMode) = 0;
   8819 
   8820     virtual HRESULT STDMETHODCALLTYPE SetPhoneticAlphabet(
   8821         PHONETICALPHABET phoneticALphabet) = 0;
   8822 
   8823 };
   8824 #ifdef __CRT_UUID_DECL
   8825 __CRT_UUID_DECL(ISpGrammarBuilder2, 0x8ab10026, 0x20cc, 0x4b20, 0x8c,0x22, 0xa4,0x9c,0x9b,0xa7,0x8f,0x60)
   8826 #endif
   8827 #else
   8828 typedef struct ISpGrammarBuilder2Vtbl {
   8829     BEGIN_INTERFACE
   8830 
   8831     /*** IUnknown methods ***/
   8832     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8833         ISpGrammarBuilder2 *This,
   8834         REFIID riid,
   8835         void **ppvObject);
   8836 
   8837     ULONG (STDMETHODCALLTYPE *AddRef)(
   8838         ISpGrammarBuilder2 *This);
   8839 
   8840     ULONG (STDMETHODCALLTYPE *Release)(
   8841         ISpGrammarBuilder2 *This);
   8842 
   8843     /*** ISpGrammarBuilder2 methods ***/
   8844     HRESULT (STDMETHODCALLTYPE *AddTextSubset)(
   8845         ISpGrammarBuilder2 *This,
   8846         SPSTATEHANDLE hFromState,
   8847         SPSTATEHANDLE hToState,
   8848         LPCWSTR psz,
   8849         SPMATCHINGMODE eMatchMode);
   8850 
   8851     HRESULT (STDMETHODCALLTYPE *SetPhoneticAlphabet)(
   8852         ISpGrammarBuilder2 *This,
   8853         PHONETICALPHABET phoneticALphabet);
   8854 
   8855     END_INTERFACE
   8856 } ISpGrammarBuilder2Vtbl;
   8857 
   8858 interface ISpGrammarBuilder2 {
   8859     CONST_VTBL ISpGrammarBuilder2Vtbl* lpVtbl;
   8860 };
   8861 
   8862 #ifdef COBJMACROS
   8863 #ifndef WIDL_C_INLINE_WRAPPERS
   8864 /*** IUnknown methods ***/
   8865 #define ISpGrammarBuilder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8866 #define ISpGrammarBuilder2_AddRef(This) (This)->lpVtbl->AddRef(This)
   8867 #define ISpGrammarBuilder2_Release(This) (This)->lpVtbl->Release(This)
   8868 /*** ISpGrammarBuilder2 methods ***/
   8869 #define ISpGrammarBuilder2_AddTextSubset(This,hFromState,hToState,psz,eMatchMode) (This)->lpVtbl->AddTextSubset(This,hFromState,hToState,psz,eMatchMode)
   8870 #define ISpGrammarBuilder2_SetPhoneticAlphabet(This,phoneticALphabet) (This)->lpVtbl->SetPhoneticAlphabet(This,phoneticALphabet)
   8871 #else
   8872 /*** IUnknown methods ***/
   8873 static inline HRESULT ISpGrammarBuilder2_QueryInterface(ISpGrammarBuilder2* This,REFIID riid,void **ppvObject) {
   8874     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8875 }
   8876 static inline ULONG ISpGrammarBuilder2_AddRef(ISpGrammarBuilder2* This) {
   8877     return This->lpVtbl->AddRef(This);
   8878 }
   8879 static inline ULONG ISpGrammarBuilder2_Release(ISpGrammarBuilder2* This) {
   8880     return This->lpVtbl->Release(This);
   8881 }
   8882 /*** ISpGrammarBuilder2 methods ***/
   8883 static inline HRESULT ISpGrammarBuilder2_AddTextSubset(ISpGrammarBuilder2* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,SPMATCHINGMODE eMatchMode) {
   8884     return This->lpVtbl->AddTextSubset(This,hFromState,hToState,psz,eMatchMode);
   8885 }
   8886 static inline HRESULT ISpGrammarBuilder2_SetPhoneticAlphabet(ISpGrammarBuilder2* This,PHONETICALPHABET phoneticALphabet) {
   8887     return This->lpVtbl->SetPhoneticAlphabet(This,phoneticALphabet);
   8888 }
   8889 #endif
   8890 #endif
   8891 
   8892 #endif
   8893 
   8894 
   8895 #endif  /* __ISpGrammarBuilder2_INTERFACE_DEFINED__ */
   8896 
   8897 #define SPRP_NORMAL 0
   8898 /*****************************************************************************
   8899  * ISpRecoGrammar2 interface
   8900  */
   8901 #ifndef __ISpRecoGrammar2_INTERFACE_DEFINED__
   8902 #define __ISpRecoGrammar2_INTERFACE_DEFINED__
   8903 
   8904 DEFINE_GUID(IID_ISpRecoGrammar2, 0x4b37bc9e, 0x9ed6, 0x44a3, 0x93,0xd3, 0x18,0xf0,0x22,0xb7,0x9e,0xc3);
   8905 #if defined(__cplusplus) && !defined(CINTERFACE)
   8906 MIDL_INTERFACE("4b37bc9e-9ed6-44a3-93d3-18f022b79ec3")
   8907 ISpRecoGrammar2 : public IUnknown
   8908 {
   8909     virtual HRESULT STDMETHODCALLTYPE GetRules(
   8910         SPRULE **ppCoMemRules,
   8911         UINT *puNumRules) = 0;
   8912 
   8913     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromFile2(
   8914         LPCWSTR pszFileName,
   8915         SPLOADOPTIONS Options,
   8916         LPCWSTR pszSharingUri,
   8917         LPCWSTR pszBaseUri) = 0;
   8918 
   8919     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromMemory2(
   8920         const SPBINARYGRAMMAR *pGrammar,
   8921         SPLOADOPTIONS Options,
   8922         LPCWSTR pszSharingUri,
   8923         LPCWSTR pszBaseUri) = 0;
   8924 
   8925     virtual HRESULT STDMETHODCALLTYPE SetRulePriority(
   8926         LPCWSTR pszRuleName,
   8927         ULONG ulRuleId,
   8928         int nRulePriority) = 0;
   8929 
   8930     virtual HRESULT STDMETHODCALLTYPE SetRuleWeight(
   8931         LPCWSTR pszRuleName,
   8932         ULONG ulRuleId,
   8933         float flWeight) = 0;
   8934 
   8935     virtual HRESULT STDMETHODCALLTYPE SetDictationWeight(
   8936         float flWeight) = 0;
   8937 
   8938     virtual HRESULT STDMETHODCALLTYPE SetGrammarLoader(
   8939         ISpeechResourceLoader *pLoader) = 0;
   8940 
   8941     virtual HRESULT STDMETHODCALLTYPE SetSMLSecurityManager(
   8942         IInternetSecurityManager *pSMLSecurityManager) = 0;
   8943 
   8944 };
   8945 #ifdef __CRT_UUID_DECL
   8946 __CRT_UUID_DECL(ISpRecoGrammar2, 0x4b37bc9e, 0x9ed6, 0x44a3, 0x93,0xd3, 0x18,0xf0,0x22,0xb7,0x9e,0xc3)
   8947 #endif
   8948 #else
   8949 typedef struct ISpRecoGrammar2Vtbl {
   8950     BEGIN_INTERFACE
   8951 
   8952     /*** IUnknown methods ***/
   8953     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8954         ISpRecoGrammar2 *This,
   8955         REFIID riid,
   8956         void **ppvObject);
   8957 
   8958     ULONG (STDMETHODCALLTYPE *AddRef)(
   8959         ISpRecoGrammar2 *This);
   8960 
   8961     ULONG (STDMETHODCALLTYPE *Release)(
   8962         ISpRecoGrammar2 *This);
   8963 
   8964     /*** ISpRecoGrammar2 methods ***/
   8965     HRESULT (STDMETHODCALLTYPE *GetRules)(
   8966         ISpRecoGrammar2 *This,
   8967         SPRULE **ppCoMemRules,
   8968         UINT *puNumRules);
   8969 
   8970     HRESULT (STDMETHODCALLTYPE *LoadCmdFromFile2)(
   8971         ISpRecoGrammar2 *This,
   8972         LPCWSTR pszFileName,
   8973         SPLOADOPTIONS Options,
   8974         LPCWSTR pszSharingUri,
   8975         LPCWSTR pszBaseUri);
   8976 
   8977     HRESULT (STDMETHODCALLTYPE *LoadCmdFromMemory2)(
   8978         ISpRecoGrammar2 *This,
   8979         const SPBINARYGRAMMAR *pGrammar,
   8980         SPLOADOPTIONS Options,
   8981         LPCWSTR pszSharingUri,
   8982         LPCWSTR pszBaseUri);
   8983 
   8984     HRESULT (STDMETHODCALLTYPE *SetRulePriority)(
   8985         ISpRecoGrammar2 *This,
   8986         LPCWSTR pszRuleName,
   8987         ULONG ulRuleId,
   8988         int nRulePriority);
   8989 
   8990     HRESULT (STDMETHODCALLTYPE *SetRuleWeight)(
   8991         ISpRecoGrammar2 *This,
   8992         LPCWSTR pszRuleName,
   8993         ULONG ulRuleId,
   8994         float flWeight);
   8995 
   8996     HRESULT (STDMETHODCALLTYPE *SetDictationWeight)(
   8997         ISpRecoGrammar2 *This,
   8998         float flWeight);
   8999 
   9000     HRESULT (STDMETHODCALLTYPE *SetGrammarLoader)(
   9001         ISpRecoGrammar2 *This,
   9002         ISpeechResourceLoader *pLoader);
   9003 
   9004     HRESULT (STDMETHODCALLTYPE *SetSMLSecurityManager)(
   9005         ISpRecoGrammar2 *This,
   9006         IInternetSecurityManager *pSMLSecurityManager);
   9007 
   9008     END_INTERFACE
   9009 } ISpRecoGrammar2Vtbl;
   9010 
   9011 interface ISpRecoGrammar2 {
   9012     CONST_VTBL ISpRecoGrammar2Vtbl* lpVtbl;
   9013 };
   9014 
   9015 #ifdef COBJMACROS
   9016 #ifndef WIDL_C_INLINE_WRAPPERS
   9017 /*** IUnknown methods ***/
   9018 #define ISpRecoGrammar2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9019 #define ISpRecoGrammar2_AddRef(This) (This)->lpVtbl->AddRef(This)
   9020 #define ISpRecoGrammar2_Release(This) (This)->lpVtbl->Release(This)
   9021 /*** ISpRecoGrammar2 methods ***/
   9022 #define ISpRecoGrammar2_GetRules(This,ppCoMemRules,puNumRules) (This)->lpVtbl->GetRules(This,ppCoMemRules,puNumRules)
   9023 #define ISpRecoGrammar2_LoadCmdFromFile2(This,pszFileName,Options,pszSharingUri,pszBaseUri) (This)->lpVtbl->LoadCmdFromFile2(This,pszFileName,Options,pszSharingUri,pszBaseUri)
   9024 #define ISpRecoGrammar2_LoadCmdFromMemory2(This,pGrammar,Options,pszSharingUri,pszBaseUri) (This)->lpVtbl->LoadCmdFromMemory2(This,pGrammar,Options,pszSharingUri,pszBaseUri)
   9025 #define ISpRecoGrammar2_SetRulePriority(This,pszRuleName,ulRuleId,nRulePriority) (This)->lpVtbl->SetRulePriority(This,pszRuleName,ulRuleId,nRulePriority)
   9026 #define ISpRecoGrammar2_SetRuleWeight(This,pszRuleName,ulRuleId,flWeight) (This)->lpVtbl->SetRuleWeight(This,pszRuleName,ulRuleId,flWeight)
   9027 #define ISpRecoGrammar2_SetDictationWeight(This,flWeight) (This)->lpVtbl->SetDictationWeight(This,flWeight)
   9028 #define ISpRecoGrammar2_SetGrammarLoader(This,pLoader) (This)->lpVtbl->SetGrammarLoader(This,pLoader)
   9029 #define ISpRecoGrammar2_SetSMLSecurityManager(This,pSMLSecurityManager) (This)->lpVtbl->SetSMLSecurityManager(This,pSMLSecurityManager)
   9030 #else
   9031 /*** IUnknown methods ***/
   9032 static inline HRESULT ISpRecoGrammar2_QueryInterface(ISpRecoGrammar2* This,REFIID riid,void **ppvObject) {
   9033     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9034 }
   9035 static inline ULONG ISpRecoGrammar2_AddRef(ISpRecoGrammar2* This) {
   9036     return This->lpVtbl->AddRef(This);
   9037 }
   9038 static inline ULONG ISpRecoGrammar2_Release(ISpRecoGrammar2* This) {
   9039     return This->lpVtbl->Release(This);
   9040 }
   9041 /*** ISpRecoGrammar2 methods ***/
   9042 static inline HRESULT ISpRecoGrammar2_GetRules(ISpRecoGrammar2* This,SPRULE **ppCoMemRules,UINT *puNumRules) {
   9043     return This->lpVtbl->GetRules(This,ppCoMemRules,puNumRules);
   9044 }
   9045 static inline HRESULT ISpRecoGrammar2_LoadCmdFromFile2(ISpRecoGrammar2* This,LPCWSTR pszFileName,SPLOADOPTIONS Options,LPCWSTR pszSharingUri,LPCWSTR pszBaseUri) {
   9046     return This->lpVtbl->LoadCmdFromFile2(This,pszFileName,Options,pszSharingUri,pszBaseUri);
   9047 }
   9048 static inline HRESULT ISpRecoGrammar2_LoadCmdFromMemory2(ISpRecoGrammar2* This,const SPBINARYGRAMMAR *pGrammar,SPLOADOPTIONS Options,LPCWSTR pszSharingUri,LPCWSTR pszBaseUri) {
   9049     return This->lpVtbl->LoadCmdFromMemory2(This,pGrammar,Options,pszSharingUri,pszBaseUri);
   9050 }
   9051 static inline HRESULT ISpRecoGrammar2_SetRulePriority(ISpRecoGrammar2* This,LPCWSTR pszRuleName,ULONG ulRuleId,int nRulePriority) {
   9052     return This->lpVtbl->SetRulePriority(This,pszRuleName,ulRuleId,nRulePriority);
   9053 }
   9054 static inline HRESULT ISpRecoGrammar2_SetRuleWeight(ISpRecoGrammar2* This,LPCWSTR pszRuleName,ULONG ulRuleId,float flWeight) {
   9055     return This->lpVtbl->SetRuleWeight(This,pszRuleName,ulRuleId,flWeight);
   9056 }
   9057 static inline HRESULT ISpRecoGrammar2_SetDictationWeight(ISpRecoGrammar2* This,float flWeight) {
   9058     return This->lpVtbl->SetDictationWeight(This,flWeight);
   9059 }
   9060 static inline HRESULT ISpRecoGrammar2_SetGrammarLoader(ISpRecoGrammar2* This,ISpeechResourceLoader *pLoader) {
   9061     return This->lpVtbl->SetGrammarLoader(This,pLoader);
   9062 }
   9063 static inline HRESULT ISpRecoGrammar2_SetSMLSecurityManager(ISpRecoGrammar2* This,IInternetSecurityManager *pSMLSecurityManager) {
   9064     return This->lpVtbl->SetSMLSecurityManager(This,pSMLSecurityManager);
   9065 }
   9066 #endif
   9067 #endif
   9068 
   9069 #endif
   9070 
   9071 
   9072 #endif  /* __ISpRecoGrammar2_INTERFACE_DEFINED__ */
   9073 
   9074 /*****************************************************************************
   9075  * ISpeechResourceLoader interface
   9076  */
   9077 #ifndef __ISpeechResourceLoader_INTERFACE_DEFINED__
   9078 #define __ISpeechResourceLoader_INTERFACE_DEFINED__
   9079 
   9080 DEFINE_GUID(IID_ISpeechResourceLoader, 0xb9ac5783, 0xfcd0, 0x4b21, 0xb1,0x19, 0xb4,0xf8,0xda,0x8f,0xd2,0xc3);
   9081 #if defined(__cplusplus) && !defined(CINTERFACE)
   9082 MIDL_INTERFACE("b9ac5783-fcd0-4b21-b119-b4f8da8fd2c3")
   9083 ISpeechResourceLoader : public IDispatch
   9084 {
   9085     virtual HRESULT STDMETHODCALLTYPE LoadResource(
   9086         BSTR bstrResourceUri,
   9087         VARIANT_BOOL fAlwaysReload,
   9088         IUnknown **pStream,
   9089         BSTR *pbstrMIMEType,
   9090         VARIANT_BOOL *pfModified,
   9091         BSTR *pbstrRedirectUrl) = 0;
   9092 
   9093     virtual HRESULT STDMETHODCALLTYPE GetLocalCopy(
   9094         BSTR bstrResourceUri,
   9095         BSTR *pbstrLocalPath,
   9096         BSTR *pbstrMIMEType,
   9097         BSTR *pbstrRedirectUrl) = 0;
   9098 
   9099     virtual HRESULT STDMETHODCALLTYPE ReleaseLocalCopy(
   9100         BSTR pbstrLocalPath) = 0;
   9101 
   9102 };
   9103 #ifdef __CRT_UUID_DECL
   9104 __CRT_UUID_DECL(ISpeechResourceLoader, 0xb9ac5783, 0xfcd0, 0x4b21, 0xb1,0x19, 0xb4,0xf8,0xda,0x8f,0xd2,0xc3)
   9105 #endif
   9106 #else
   9107 typedef struct ISpeechResourceLoaderVtbl {
   9108     BEGIN_INTERFACE
   9109 
   9110     /*** IUnknown methods ***/
   9111     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9112         ISpeechResourceLoader *This,
   9113         REFIID riid,
   9114         void **ppvObject);
   9115 
   9116     ULONG (STDMETHODCALLTYPE *AddRef)(
   9117         ISpeechResourceLoader *This);
   9118 
   9119     ULONG (STDMETHODCALLTYPE *Release)(
   9120         ISpeechResourceLoader *This);
   9121 
   9122     /*** IDispatch methods ***/
   9123     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   9124         ISpeechResourceLoader *This,
   9125         UINT *pctinfo);
   9126 
   9127     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   9128         ISpeechResourceLoader *This,
   9129         UINT iTInfo,
   9130         LCID lcid,
   9131         ITypeInfo **ppTInfo);
   9132 
   9133     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   9134         ISpeechResourceLoader *This,
   9135         REFIID riid,
   9136         LPOLESTR *rgszNames,
   9137         UINT cNames,
   9138         LCID lcid,
   9139         DISPID *rgDispId);
   9140 
   9141     HRESULT (STDMETHODCALLTYPE *Invoke)(
   9142         ISpeechResourceLoader *This,
   9143         DISPID dispIdMember,
   9144         REFIID riid,
   9145         LCID lcid,
   9146         WORD wFlags,
   9147         DISPPARAMS *pDispParams,
   9148         VARIANT *pVarResult,
   9149         EXCEPINFO *pExcepInfo,
   9150         UINT *puArgErr);
   9151 
   9152     /*** ISpeechResourceLoader methods ***/
   9153     HRESULT (STDMETHODCALLTYPE *LoadResource)(
   9154         ISpeechResourceLoader *This,
   9155         BSTR bstrResourceUri,
   9156         VARIANT_BOOL fAlwaysReload,
   9157         IUnknown **pStream,
   9158         BSTR *pbstrMIMEType,
   9159         VARIANT_BOOL *pfModified,
   9160         BSTR *pbstrRedirectUrl);
   9161 
   9162     HRESULT (STDMETHODCALLTYPE *GetLocalCopy)(
   9163         ISpeechResourceLoader *This,
   9164         BSTR bstrResourceUri,
   9165         BSTR *pbstrLocalPath,
   9166         BSTR *pbstrMIMEType,
   9167         BSTR *pbstrRedirectUrl);
   9168 
   9169     HRESULT (STDMETHODCALLTYPE *ReleaseLocalCopy)(
   9170         ISpeechResourceLoader *This,
   9171         BSTR pbstrLocalPath);
   9172 
   9173     END_INTERFACE
   9174 } ISpeechResourceLoaderVtbl;
   9175 
   9176 interface ISpeechResourceLoader {
   9177     CONST_VTBL ISpeechResourceLoaderVtbl* lpVtbl;
   9178 };
   9179 
   9180 #ifdef COBJMACROS
   9181 #ifndef WIDL_C_INLINE_WRAPPERS
   9182 /*** IUnknown methods ***/
   9183 #define ISpeechResourceLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9184 #define ISpeechResourceLoader_AddRef(This) (This)->lpVtbl->AddRef(This)
   9185 #define ISpeechResourceLoader_Release(This) (This)->lpVtbl->Release(This)
   9186 /*** IDispatch methods ***/
   9187 #define ISpeechResourceLoader_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   9188 #define ISpeechResourceLoader_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   9189 #define ISpeechResourceLoader_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   9190 #define ISpeechResourceLoader_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   9191 /*** ISpeechResourceLoader methods ***/
   9192 #define ISpeechResourceLoader_LoadResource(This,bstrResourceUri,fAlwaysReload,pStream,pbstrMIMEType,pfModified,pbstrRedirectUrl) (This)->lpVtbl->LoadResource(This,bstrResourceUri,fAlwaysReload,pStream,pbstrMIMEType,pfModified,pbstrRedirectUrl)
   9193 #define ISpeechResourceLoader_GetLocalCopy(This,bstrResourceUri,pbstrLocalPath,pbstrMIMEType,pbstrRedirectUrl) (This)->lpVtbl->GetLocalCopy(This,bstrResourceUri,pbstrLocalPath,pbstrMIMEType,pbstrRedirectUrl)
   9194 #define ISpeechResourceLoader_ReleaseLocalCopy(This,pbstrLocalPath) (This)->lpVtbl->ReleaseLocalCopy(This,pbstrLocalPath)
   9195 #else
   9196 /*** IUnknown methods ***/
   9197 static inline HRESULT ISpeechResourceLoader_QueryInterface(ISpeechResourceLoader* This,REFIID riid,void **ppvObject) {
   9198     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9199 }
   9200 static inline ULONG ISpeechResourceLoader_AddRef(ISpeechResourceLoader* This) {
   9201     return This->lpVtbl->AddRef(This);
   9202 }
   9203 static inline ULONG ISpeechResourceLoader_Release(ISpeechResourceLoader* This) {
   9204     return This->lpVtbl->Release(This);
   9205 }
   9206 /*** IDispatch methods ***/
   9207 static inline HRESULT ISpeechResourceLoader_GetTypeInfoCount(ISpeechResourceLoader* This,UINT *pctinfo) {
   9208     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   9209 }
   9210 static inline HRESULT ISpeechResourceLoader_GetTypeInfo(ISpeechResourceLoader* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   9211     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   9212 }
   9213 static inline HRESULT ISpeechResourceLoader_GetIDsOfNames(ISpeechResourceLoader* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   9214     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   9215 }
   9216 static inline HRESULT ISpeechResourceLoader_Invoke(ISpeechResourceLoader* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   9217     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   9218 }
   9219 /*** ISpeechResourceLoader methods ***/
   9220 static inline HRESULT ISpeechResourceLoader_LoadResource(ISpeechResourceLoader* This,BSTR bstrResourceUri,VARIANT_BOOL fAlwaysReload,IUnknown **pStream,BSTR *pbstrMIMEType,VARIANT_BOOL *pfModified,BSTR *pbstrRedirectUrl) {
   9221     return This->lpVtbl->LoadResource(This,bstrResourceUri,fAlwaysReload,pStream,pbstrMIMEType,pfModified,pbstrRedirectUrl);
   9222 }
   9223 static inline HRESULT ISpeechResourceLoader_GetLocalCopy(ISpeechResourceLoader* This,BSTR bstrResourceUri,BSTR *pbstrLocalPath,BSTR *pbstrMIMEType,BSTR *pbstrRedirectUrl) {
   9224     return This->lpVtbl->GetLocalCopy(This,bstrResourceUri,pbstrLocalPath,pbstrMIMEType,pbstrRedirectUrl);
   9225 }
   9226 static inline HRESULT ISpeechResourceLoader_ReleaseLocalCopy(ISpeechResourceLoader* This,BSTR pbstrLocalPath) {
   9227     return This->lpVtbl->ReleaseLocalCopy(This,pbstrLocalPath);
   9228 }
   9229 #endif
   9230 #endif
   9231 
   9232 #endif
   9233 
   9234 
   9235 #endif  /* __ISpeechResourceLoader_INTERFACE_DEFINED__ */
   9236 
   9237 typedef struct SPRECOCONTEXTSTATUS {
   9238     SPINTERFERENCE eInterference;
   9239     WCHAR szRequestTypeOfUI[255];
   9240     DWORD dwReserved1;
   9241     DWORD dwReserved2;
   9242 } SPRECOCONTEXTSTATUS;
   9243 typedef enum SPBOOKMARKOPTIONS {
   9244     SPBO_NONE = 0,
   9245     SPBO_PAUSE = 0x1,
   9246     SPBO_AHEAD = 0x2,
   9247     SPBO_TIME_UNITS = 0x4
   9248 } SPBOOKMARKOPTIONS;
   9249 typedef enum SPAUDIOOPTIONS {
   9250     SPAO_NONE = 0,
   9251     SPAO_RETAIN_AUDIO = 0x1
   9252 } SPAUDIOOPTIONS;
   9253 /*****************************************************************************
   9254  * ISpRecoContext interface
   9255  */
   9256 #ifndef __ISpRecoContext_INTERFACE_DEFINED__
   9257 #define __ISpRecoContext_INTERFACE_DEFINED__
   9258 
   9259 DEFINE_GUID(IID_ISpRecoContext, 0xf740a62f, 0x7c15, 0x489e, 0x82,0x34, 0x94,0x0a,0x33,0xd9,0x27,0x2d);
   9260 #if defined(__cplusplus) && !defined(CINTERFACE)
   9261 MIDL_INTERFACE("f740a62f-7c15-489e-8234-940a33d9272d")
   9262 ISpRecoContext : public ISpEventSource
   9263 {
   9264     virtual HRESULT STDMETHODCALLTYPE GetRecognizer(
   9265         ISpRecognizer **ppRecognizer) = 0;
   9266 
   9267     virtual HRESULT STDMETHODCALLTYPE CreateGrammar(
   9268         ULONGLONG ullGrammarId,
   9269         ISpRecoGrammar **ppGrammar) = 0;
   9270 
   9271     virtual HRESULT STDMETHODCALLTYPE GetStatus(
   9272         SPRECOCONTEXTSTATUS *pStatus) = 0;
   9273 
   9274     virtual HRESULT STDMETHODCALLTYPE GetMaxAlternates(
   9275         ULONG *pcAlternates) = 0;
   9276 
   9277     virtual HRESULT STDMETHODCALLTYPE SetMaxAlternates(
   9278         ULONG cAlternates) = 0;
   9279 
   9280     virtual HRESULT STDMETHODCALLTYPE SetAudioOptions(
   9281         SPAUDIOOPTIONS Options,
   9282         const GUID *pAudioFormatId,
   9283         const WAVEFORMATEX *pWaveFormatEx) = 0;
   9284 
   9285     virtual HRESULT STDMETHODCALLTYPE GetAudioOptions(
   9286         SPAUDIOOPTIONS *pOptions,
   9287         GUID *pAudioFormatId,
   9288         WAVEFORMATEX **ppCoMemWFEX) = 0;
   9289 
   9290     virtual HRESULT STDMETHODCALLTYPE DeserializeResult(
   9291         const SPSERIALIZEDRESULT *pSerializedResult,
   9292         ISpRecoResult **ppResult) = 0;
   9293 
   9294     virtual HRESULT STDMETHODCALLTYPE Bookmark(
   9295         SPBOOKMARKOPTIONS Options,
   9296         ULONGLONG ullStreamPosition,
   9297         LPARAM lparamEvent) = 0;
   9298 
   9299     virtual HRESULT STDMETHODCALLTYPE SetAdaptationData(
   9300         LPCWSTR pAdaptationData,
   9301         const ULONG cch) = 0;
   9302 
   9303     virtual HRESULT STDMETHODCALLTYPE Pause(
   9304         DWORD dwReserved) = 0;
   9305 
   9306     virtual HRESULT STDMETHODCALLTYPE Resume(
   9307         DWORD dwReserved) = 0;
   9308 
   9309     virtual HRESULT STDMETHODCALLTYPE SetVoice(
   9310         ISpVoice *pVoice,
   9311         WINBOOL fAllowFormatChanges) = 0;
   9312 
   9313     virtual HRESULT STDMETHODCALLTYPE GetVoice(
   9314         ISpVoice **ppVoice) = 0;
   9315 
   9316     virtual HRESULT STDMETHODCALLTYPE SetVoicePurgeEvent(
   9317         ULONGLONG ullEventInterest) = 0;
   9318 
   9319     virtual HRESULT STDMETHODCALLTYPE GetVoicePurgeEvent(
   9320         ULONGLONG *pullEventInterest) = 0;
   9321 
   9322     virtual HRESULT STDMETHODCALLTYPE SetContextState(
   9323         SPCONTEXTSTATE eContextState) = 0;
   9324 
   9325     virtual HRESULT STDMETHODCALLTYPE GetContextState(
   9326         SPCONTEXTSTATE *peContextState) = 0;
   9327 
   9328 };
   9329 #ifdef __CRT_UUID_DECL
   9330 __CRT_UUID_DECL(ISpRecoContext, 0xf740a62f, 0x7c15, 0x489e, 0x82,0x34, 0x94,0x0a,0x33,0xd9,0x27,0x2d)
   9331 #endif
   9332 #else
   9333 typedef struct ISpRecoContextVtbl {
   9334     BEGIN_INTERFACE
   9335 
   9336     /*** IUnknown methods ***/
   9337     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9338         ISpRecoContext *This,
   9339         REFIID riid,
   9340         void **ppvObject);
   9341 
   9342     ULONG (STDMETHODCALLTYPE *AddRef)(
   9343         ISpRecoContext *This);
   9344 
   9345     ULONG (STDMETHODCALLTYPE *Release)(
   9346         ISpRecoContext *This);
   9347 
   9348     /*** ISpNotifySource methods ***/
   9349     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
   9350         ISpRecoContext *This,
   9351         ISpNotifySink *pNotifySink);
   9352 
   9353     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
   9354         ISpRecoContext *This,
   9355         HWND hWnd,
   9356         UINT Msg,
   9357         WPARAM wParam,
   9358         LPARAM lParam);
   9359 
   9360     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
   9361         ISpRecoContext *This,
   9362         SPNOTIFYCALLBACK *pfnCallback,
   9363         WPARAM wParam,
   9364         LPARAM lParam);
   9365 
   9366     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
   9367         ISpRecoContext *This,
   9368         ISpNotifyCallback *pSpCallback,
   9369         WPARAM wParam,
   9370         LPARAM lParam);
   9371 
   9372     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
   9373         ISpRecoContext *This);
   9374 
   9375     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
   9376         ISpRecoContext *This,
   9377         DWORD dwMilliseconds);
   9378 
   9379     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
   9380         ISpRecoContext *This);
   9381 
   9382     /*** ISpEventSource methods ***/
   9383     HRESULT (STDMETHODCALLTYPE *SetInterest)(
   9384         ISpRecoContext *This,
   9385         ULONGLONG ullEventInterest,
   9386         ULONGLONG ullQueuedInterest);
   9387 
   9388     HRESULT (STDMETHODCALLTYPE *GetEvents)(
   9389         ISpRecoContext *This,
   9390         ULONG ulCount,
   9391         SPEVENT *pEventArray,
   9392         ULONG *pulFetched);
   9393 
   9394     HRESULT (STDMETHODCALLTYPE *GetInfo)(
   9395         ISpRecoContext *This,
   9396         SPEVENTSOURCEINFO *pInfo);
   9397 
   9398     /*** ISpRecoContext methods ***/
   9399     HRESULT (STDMETHODCALLTYPE *GetRecognizer)(
   9400         ISpRecoContext *This,
   9401         ISpRecognizer **ppRecognizer);
   9402 
   9403     HRESULT (STDMETHODCALLTYPE *CreateGrammar)(
   9404         ISpRecoContext *This,
   9405         ULONGLONG ullGrammarId,
   9406         ISpRecoGrammar **ppGrammar);
   9407 
   9408     HRESULT (STDMETHODCALLTYPE *GetStatus)(
   9409         ISpRecoContext *This,
   9410         SPRECOCONTEXTSTATUS *pStatus);
   9411 
   9412     HRESULT (STDMETHODCALLTYPE *GetMaxAlternates)(
   9413         ISpRecoContext *This,
   9414         ULONG *pcAlternates);
   9415 
   9416     HRESULT (STDMETHODCALLTYPE *SetMaxAlternates)(
   9417         ISpRecoContext *This,
   9418         ULONG cAlternates);
   9419 
   9420     HRESULT (STDMETHODCALLTYPE *SetAudioOptions)(
   9421         ISpRecoContext *This,
   9422         SPAUDIOOPTIONS Options,
   9423         const GUID *pAudioFormatId,
   9424         const WAVEFORMATEX *pWaveFormatEx);
   9425 
   9426     HRESULT (STDMETHODCALLTYPE *GetAudioOptions)(
   9427         ISpRecoContext *This,
   9428         SPAUDIOOPTIONS *pOptions,
   9429         GUID *pAudioFormatId,
   9430         WAVEFORMATEX **ppCoMemWFEX);
   9431 
   9432     HRESULT (STDMETHODCALLTYPE *DeserializeResult)(
   9433         ISpRecoContext *This,
   9434         const SPSERIALIZEDRESULT *pSerializedResult,
   9435         ISpRecoResult **ppResult);
   9436 
   9437     HRESULT (STDMETHODCALLTYPE *Bookmark)(
   9438         ISpRecoContext *This,
   9439         SPBOOKMARKOPTIONS Options,
   9440         ULONGLONG ullStreamPosition,
   9441         LPARAM lparamEvent);
   9442 
   9443     HRESULT (STDMETHODCALLTYPE *SetAdaptationData)(
   9444         ISpRecoContext *This,
   9445         LPCWSTR pAdaptationData,
   9446         const ULONG cch);
   9447 
   9448     HRESULT (STDMETHODCALLTYPE *Pause)(
   9449         ISpRecoContext *This,
   9450         DWORD dwReserved);
   9451 
   9452     HRESULT (STDMETHODCALLTYPE *Resume)(
   9453         ISpRecoContext *This,
   9454         DWORD dwReserved);
   9455 
   9456     HRESULT (STDMETHODCALLTYPE *SetVoice)(
   9457         ISpRecoContext *This,
   9458         ISpVoice *pVoice,
   9459         WINBOOL fAllowFormatChanges);
   9460 
   9461     HRESULT (STDMETHODCALLTYPE *GetVoice)(
   9462         ISpRecoContext *This,
   9463         ISpVoice **ppVoice);
   9464 
   9465     HRESULT (STDMETHODCALLTYPE *SetVoicePurgeEvent)(
   9466         ISpRecoContext *This,
   9467         ULONGLONG ullEventInterest);
   9468 
   9469     HRESULT (STDMETHODCALLTYPE *GetVoicePurgeEvent)(
   9470         ISpRecoContext *This,
   9471         ULONGLONG *pullEventInterest);
   9472 
   9473     HRESULT (STDMETHODCALLTYPE *SetContextState)(
   9474         ISpRecoContext *This,
   9475         SPCONTEXTSTATE eContextState);
   9476 
   9477     HRESULT (STDMETHODCALLTYPE *GetContextState)(
   9478         ISpRecoContext *This,
   9479         SPCONTEXTSTATE *peContextState);
   9480 
   9481     END_INTERFACE
   9482 } ISpRecoContextVtbl;
   9483 
   9484 interface ISpRecoContext {
   9485     CONST_VTBL ISpRecoContextVtbl* lpVtbl;
   9486 };
   9487 
   9488 #ifdef COBJMACROS
   9489 #ifndef WIDL_C_INLINE_WRAPPERS
   9490 /*** IUnknown methods ***/
   9491 #define ISpRecoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9492 #define ISpRecoContext_AddRef(This) (This)->lpVtbl->AddRef(This)
   9493 #define ISpRecoContext_Release(This) (This)->lpVtbl->Release(This)
   9494 /*** ISpNotifySource methods ***/
   9495 #define ISpRecoContext_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
   9496 #define ISpRecoContext_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
   9497 #define ISpRecoContext_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
   9498 #define ISpRecoContext_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
   9499 #define ISpRecoContext_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
   9500 #define ISpRecoContext_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
   9501 #define ISpRecoContext_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
   9502 /*** ISpEventSource methods ***/
   9503 #define ISpRecoContext_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
   9504 #define ISpRecoContext_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
   9505 #define ISpRecoContext_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
   9506 /*** ISpRecoContext methods ***/
   9507 #define ISpRecoContext_GetRecognizer(This,ppRecognizer) (This)->lpVtbl->GetRecognizer(This,ppRecognizer)
   9508 #define ISpRecoContext_CreateGrammar(This,ullGrammarId,ppGrammar) (This)->lpVtbl->CreateGrammar(This,ullGrammarId,ppGrammar)
   9509 #define ISpRecoContext_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
   9510 #define ISpRecoContext_GetMaxAlternates(This,pcAlternates) (This)->lpVtbl->GetMaxAlternates(This,pcAlternates)
   9511 #define ISpRecoContext_SetMaxAlternates(This,cAlternates) (This)->lpVtbl->SetMaxAlternates(This,cAlternates)
   9512 #define ISpRecoContext_SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx)
   9513 #define ISpRecoContext_GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX) (This)->lpVtbl->GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX)
   9514 #define ISpRecoContext_DeserializeResult(This,pSerializedResult,ppResult) (This)->lpVtbl->DeserializeResult(This,pSerializedResult,ppResult)
   9515 #define ISpRecoContext_Bookmark(This,Options,ullStreamPosition,lparamEvent) (This)->lpVtbl->Bookmark(This,Options,ullStreamPosition,lparamEvent)
   9516 #define ISpRecoContext_SetAdaptationData(This,pAdaptationData,cch) (This)->lpVtbl->SetAdaptationData(This,pAdaptationData,cch)
   9517 #define ISpRecoContext_Pause(This,dwReserved) (This)->lpVtbl->Pause(This,dwReserved)
   9518 #define ISpRecoContext_Resume(This,dwReserved) (This)->lpVtbl->Resume(This,dwReserved)
   9519 #define ISpRecoContext_SetVoice(This,pVoice,fAllowFormatChanges) (This)->lpVtbl->SetVoice(This,pVoice,fAllowFormatChanges)
   9520 #define ISpRecoContext_GetVoice(This,ppVoice) (This)->lpVtbl->GetVoice(This,ppVoice)
   9521 #define ISpRecoContext_SetVoicePurgeEvent(This,ullEventInterest) (This)->lpVtbl->SetVoicePurgeEvent(This,ullEventInterest)
   9522 #define ISpRecoContext_GetVoicePurgeEvent(This,pullEventInterest) (This)->lpVtbl->GetVoicePurgeEvent(This,pullEventInterest)
   9523 #define ISpRecoContext_SetContextState(This,eContextState) (This)->lpVtbl->SetContextState(This,eContextState)
   9524 #define ISpRecoContext_GetContextState(This,peContextState) (This)->lpVtbl->GetContextState(This,peContextState)
   9525 #else
   9526 /*** IUnknown methods ***/
   9527 static inline HRESULT ISpRecoContext_QueryInterface(ISpRecoContext* This,REFIID riid,void **ppvObject) {
   9528     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9529 }
   9530 static inline ULONG ISpRecoContext_AddRef(ISpRecoContext* This) {
   9531     return This->lpVtbl->AddRef(This);
   9532 }
   9533 static inline ULONG ISpRecoContext_Release(ISpRecoContext* This) {
   9534     return This->lpVtbl->Release(This);
   9535 }
   9536 /*** ISpNotifySource methods ***/
   9537 static inline HRESULT ISpRecoContext_SetNotifySink(ISpRecoContext* This,ISpNotifySink *pNotifySink) {
   9538     return This->lpVtbl->SetNotifySink(This,pNotifySink);
   9539 }
   9540 static inline HRESULT ISpRecoContext_SetNotifyWindowMessage(ISpRecoContext* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
   9541     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
   9542 }
   9543 static inline HRESULT ISpRecoContext_SetNotifyCallbackFunction(ISpRecoContext* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
   9544     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
   9545 }
   9546 static inline HRESULT ISpRecoContext_SetNotifyCallbackInterface(ISpRecoContext* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
   9547     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
   9548 }
   9549 static inline HRESULT ISpRecoContext_SetNotifyWin32Event(ISpRecoContext* This) {
   9550     return This->lpVtbl->SetNotifyWin32Event(This);
   9551 }
   9552 static inline HRESULT ISpRecoContext_WaitForNotifyEvent(ISpRecoContext* This,DWORD dwMilliseconds) {
   9553     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
   9554 }
   9555 static inline HANDLE ISpRecoContext_GetNotifyEventHandle(ISpRecoContext* This) {
   9556     return This->lpVtbl->GetNotifyEventHandle(This);
   9557 }
   9558 /*** ISpEventSource methods ***/
   9559 static inline HRESULT ISpRecoContext_SetInterest(ISpRecoContext* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
   9560     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
   9561 }
   9562 static inline HRESULT ISpRecoContext_GetEvents(ISpRecoContext* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
   9563     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
   9564 }
   9565 static inline HRESULT ISpRecoContext_GetInfo(ISpRecoContext* This,SPEVENTSOURCEINFO *pInfo) {
   9566     return This->lpVtbl->GetInfo(This,pInfo);
   9567 }
   9568 /*** ISpRecoContext methods ***/
   9569 static inline HRESULT ISpRecoContext_GetRecognizer(ISpRecoContext* This,ISpRecognizer **ppRecognizer) {
   9570     return This->lpVtbl->GetRecognizer(This,ppRecognizer);
   9571 }
   9572 static inline HRESULT ISpRecoContext_CreateGrammar(ISpRecoContext* This,ULONGLONG ullGrammarId,ISpRecoGrammar **ppGrammar) {
   9573     return This->lpVtbl->CreateGrammar(This,ullGrammarId,ppGrammar);
   9574 }
   9575 static inline HRESULT ISpRecoContext_GetStatus(ISpRecoContext* This,SPRECOCONTEXTSTATUS *pStatus) {
   9576     return This->lpVtbl->GetStatus(This,pStatus);
   9577 }
   9578 static inline HRESULT ISpRecoContext_GetMaxAlternates(ISpRecoContext* This,ULONG *pcAlternates) {
   9579     return This->lpVtbl->GetMaxAlternates(This,pcAlternates);
   9580 }
   9581 static inline HRESULT ISpRecoContext_SetMaxAlternates(ISpRecoContext* This,ULONG cAlternates) {
   9582     return This->lpVtbl->SetMaxAlternates(This,cAlternates);
   9583 }
   9584 static inline HRESULT ISpRecoContext_SetAudioOptions(ISpRecoContext* This,SPAUDIOOPTIONS Options,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
   9585     return This->lpVtbl->SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx);
   9586 }
   9587 static inline HRESULT ISpRecoContext_GetAudioOptions(ISpRecoContext* This,SPAUDIOOPTIONS *pOptions,GUID *pAudioFormatId,WAVEFORMATEX **ppCoMemWFEX) {
   9588     return This->lpVtbl->GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX);
   9589 }
   9590 static inline HRESULT ISpRecoContext_DeserializeResult(ISpRecoContext* This,const SPSERIALIZEDRESULT *pSerializedResult,ISpRecoResult **ppResult) {
   9591     return This->lpVtbl->DeserializeResult(This,pSerializedResult,ppResult);
   9592 }
   9593 static inline HRESULT ISpRecoContext_Bookmark(ISpRecoContext* This,SPBOOKMARKOPTIONS Options,ULONGLONG ullStreamPosition,LPARAM lparamEvent) {
   9594     return This->lpVtbl->Bookmark(This,Options,ullStreamPosition,lparamEvent);
   9595 }
   9596 static inline HRESULT ISpRecoContext_SetAdaptationData(ISpRecoContext* This,LPCWSTR pAdaptationData,const ULONG cch) {
   9597     return This->lpVtbl->SetAdaptationData(This,pAdaptationData,cch);
   9598 }
   9599 static inline HRESULT ISpRecoContext_Pause(ISpRecoContext* This,DWORD dwReserved) {
   9600     return This->lpVtbl->Pause(This,dwReserved);
   9601 }
   9602 static inline HRESULT ISpRecoContext_Resume(ISpRecoContext* This,DWORD dwReserved) {
   9603     return This->lpVtbl->Resume(This,dwReserved);
   9604 }
   9605 static inline HRESULT ISpRecoContext_SetVoice(ISpRecoContext* This,ISpVoice *pVoice,WINBOOL fAllowFormatChanges) {
   9606     return This->lpVtbl->SetVoice(This,pVoice,fAllowFormatChanges);
   9607 }
   9608 static inline HRESULT ISpRecoContext_GetVoice(ISpRecoContext* This,ISpVoice **ppVoice) {
   9609     return This->lpVtbl->GetVoice(This,ppVoice);
   9610 }
   9611 static inline HRESULT ISpRecoContext_SetVoicePurgeEvent(ISpRecoContext* This,ULONGLONG ullEventInterest) {
   9612     return This->lpVtbl->SetVoicePurgeEvent(This,ullEventInterest);
   9613 }
   9614 static inline HRESULT ISpRecoContext_GetVoicePurgeEvent(ISpRecoContext* This,ULONGLONG *pullEventInterest) {
   9615     return This->lpVtbl->GetVoicePurgeEvent(This,pullEventInterest);
   9616 }
   9617 static inline HRESULT ISpRecoContext_SetContextState(ISpRecoContext* This,SPCONTEXTSTATE eContextState) {
   9618     return This->lpVtbl->SetContextState(This,eContextState);
   9619 }
   9620 static inline HRESULT ISpRecoContext_GetContextState(ISpRecoContext* This,SPCONTEXTSTATE *peContextState) {
   9621     return This->lpVtbl->GetContextState(This,peContextState);
   9622 }
   9623 #endif
   9624 #endif
   9625 
   9626 #endif
   9627 
   9628 
   9629 #endif  /* __ISpRecoContext_INTERFACE_DEFINED__ */
   9630 
   9631 typedef enum SPGRAMMAROPTIONS {
   9632     SPGO_SAPI = 0x1,
   9633     SPGO_SRGS = 0x2,
   9634     SPGO_UPS = 0x4,
   9635     SPGO_SRGS_MS_SCRIPT = 0x8,
   9636     SPGO_FILE = 0x10,
   9637     SPGO_HTTP = 0x20,
   9638     SPGO_RES = 0x40,
   9639     SPGO_OBJECT = 0x80,
   9640     SPGO_SRGS_W3C_SCRIPT = 0x100,
   9641     SPGO_SRGS_STG_SCRIPT = 0x200,
   9642     SPGO_SRGS_SCRIPT = ((SPGO_SRGS | SPGO_SRGS_MS_SCRIPT) | SPGO_SRGS_W3C_SCRIPT) | SPGO_SRGS_STG_SCRIPT,
   9643     SPGO_DEFAULT = 0x3fb,
   9644     SPGO_ALL = 0x3ff
   9645 } SPGRAMMAROPTIONS;
   9646 typedef enum SPADAPTATIONSETTINGS {
   9647     SPADS_Default = 0x0,
   9648     SPADS_CurrentRecognizer = 0x1,
   9649     SPADS_RecoProfile = 0x2,
   9650     SPADS_Immediate = 0x4,
   9651     SPADS_Reset = 0x8,
   9652     SPADS_HighVolumeDataSource = 0x10
   9653 } SPADAPTATIONSETTINGS;
   9654 typedef enum SPADAPTATIONRELEVANCE {
   9655     SPAR_Unknown = 0,
   9656     SPAR_Low = 1,
   9657     SPAR_Medium = 2,
   9658     SPAR_High = 3
   9659 } SPADAPTATIONRELEVANCE;
   9660 /*****************************************************************************
   9661  * ISpRecoContext2 interface
   9662  */
   9663 #ifndef __ISpRecoContext2_INTERFACE_DEFINED__
   9664 #define __ISpRecoContext2_INTERFACE_DEFINED__
   9665 
   9666 DEFINE_GUID(IID_ISpRecoContext2, 0xbead311c, 0x52ff, 0x437f, 0x94,0x64, 0x6b,0x21,0x05,0x4c,0xa7,0x3d);
   9667 #if defined(__cplusplus) && !defined(CINTERFACE)
   9668 MIDL_INTERFACE("bead311c-52ff-437f-9464-6b21054ca73d")
   9669 ISpRecoContext2 : public IUnknown
   9670 {
   9671     virtual HRESULT STDMETHODCALLTYPE SetGrammarOptions(
   9672         DWORD eGrammarOptions) = 0;
   9673 
   9674     virtual HRESULT STDMETHODCALLTYPE GetGrammarOptions(
   9675         DWORD *peGrammarOptions) = 0;
   9676 
   9677     virtual HRESULT STDMETHODCALLTYPE SetAdaptationData2(
   9678         LPCWSTR pAdaptationData,
   9679         const ULONG cch,
   9680         LPCWSTR pTopicName,
   9681         DWORD eAdaptationSettings,
   9682         SPADAPTATIONRELEVANCE eRelevance) = 0;
   9683 
   9684 };
   9685 #ifdef __CRT_UUID_DECL
   9686 __CRT_UUID_DECL(ISpRecoContext2, 0xbead311c, 0x52ff, 0x437f, 0x94,0x64, 0x6b,0x21,0x05,0x4c,0xa7,0x3d)
   9687 #endif
   9688 #else
   9689 typedef struct ISpRecoContext2Vtbl {
   9690     BEGIN_INTERFACE
   9691 
   9692     /*** IUnknown methods ***/
   9693     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9694         ISpRecoContext2 *This,
   9695         REFIID riid,
   9696         void **ppvObject);
   9697 
   9698     ULONG (STDMETHODCALLTYPE *AddRef)(
   9699         ISpRecoContext2 *This);
   9700 
   9701     ULONG (STDMETHODCALLTYPE *Release)(
   9702         ISpRecoContext2 *This);
   9703 
   9704     /*** ISpRecoContext2 methods ***/
   9705     HRESULT (STDMETHODCALLTYPE *SetGrammarOptions)(
   9706         ISpRecoContext2 *This,
   9707         DWORD eGrammarOptions);
   9708 
   9709     HRESULT (STDMETHODCALLTYPE *GetGrammarOptions)(
   9710         ISpRecoContext2 *This,
   9711         DWORD *peGrammarOptions);
   9712 
   9713     HRESULT (STDMETHODCALLTYPE *SetAdaptationData2)(
   9714         ISpRecoContext2 *This,
   9715         LPCWSTR pAdaptationData,
   9716         const ULONG cch,
   9717         LPCWSTR pTopicName,
   9718         DWORD eAdaptationSettings,
   9719         SPADAPTATIONRELEVANCE eRelevance);
   9720 
   9721     END_INTERFACE
   9722 } ISpRecoContext2Vtbl;
   9723 
   9724 interface ISpRecoContext2 {
   9725     CONST_VTBL ISpRecoContext2Vtbl* lpVtbl;
   9726 };
   9727 
   9728 #ifdef COBJMACROS
   9729 #ifndef WIDL_C_INLINE_WRAPPERS
   9730 /*** IUnknown methods ***/
   9731 #define ISpRecoContext2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9732 #define ISpRecoContext2_AddRef(This) (This)->lpVtbl->AddRef(This)
   9733 #define ISpRecoContext2_Release(This) (This)->lpVtbl->Release(This)
   9734 /*** ISpRecoContext2 methods ***/
   9735 #define ISpRecoContext2_SetGrammarOptions(This,eGrammarOptions) (This)->lpVtbl->SetGrammarOptions(This,eGrammarOptions)
   9736 #define ISpRecoContext2_GetGrammarOptions(This,peGrammarOptions) (This)->lpVtbl->GetGrammarOptions(This,peGrammarOptions)
   9737 #define ISpRecoContext2_SetAdaptationData2(This,pAdaptationData,cch,pTopicName,eAdaptationSettings,eRelevance) (This)->lpVtbl->SetAdaptationData2(This,pAdaptationData,cch,pTopicName,eAdaptationSettings,eRelevance)
   9738 #else
   9739 /*** IUnknown methods ***/
   9740 static inline HRESULT ISpRecoContext2_QueryInterface(ISpRecoContext2* This,REFIID riid,void **ppvObject) {
   9741     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9742 }
   9743 static inline ULONG ISpRecoContext2_AddRef(ISpRecoContext2* This) {
   9744     return This->lpVtbl->AddRef(This);
   9745 }
   9746 static inline ULONG ISpRecoContext2_Release(ISpRecoContext2* This) {
   9747     return This->lpVtbl->Release(This);
   9748 }
   9749 /*** ISpRecoContext2 methods ***/
   9750 static inline HRESULT ISpRecoContext2_SetGrammarOptions(ISpRecoContext2* This,DWORD eGrammarOptions) {
   9751     return This->lpVtbl->SetGrammarOptions(This,eGrammarOptions);
   9752 }
   9753 static inline HRESULT ISpRecoContext2_GetGrammarOptions(ISpRecoContext2* This,DWORD *peGrammarOptions) {
   9754     return This->lpVtbl->GetGrammarOptions(This,peGrammarOptions);
   9755 }
   9756 static inline HRESULT ISpRecoContext2_SetAdaptationData2(ISpRecoContext2* This,LPCWSTR pAdaptationData,const ULONG cch,LPCWSTR pTopicName,DWORD eAdaptationSettings,SPADAPTATIONRELEVANCE eRelevance) {
   9757     return This->lpVtbl->SetAdaptationData2(This,pAdaptationData,cch,pTopicName,eAdaptationSettings,eRelevance);
   9758 }
   9759 #endif
   9760 #endif
   9761 
   9762 #endif
   9763 
   9764 
   9765 #endif  /* __ISpRecoContext2_INTERFACE_DEFINED__ */
   9766 
   9767 /*****************************************************************************
   9768  * ISpProperties interface
   9769  */
   9770 #ifndef __ISpProperties_INTERFACE_DEFINED__
   9771 #define __ISpProperties_INTERFACE_DEFINED__
   9772 
   9773 DEFINE_GUID(IID_ISpProperties, 0x5b4fb971, 0xb115, 0x4de1, 0xad,0x97, 0xe4,0x82,0xe3,0xbf,0x6e,0xe4);
   9774 #if defined(__cplusplus) && !defined(CINTERFACE)
   9775 MIDL_INTERFACE("5b4fb971-b115-4de1-ad97-e482e3bf6ee4")
   9776 ISpProperties : public IUnknown
   9777 {
   9778     virtual HRESULT STDMETHODCALLTYPE SetPropertyNum(
   9779         LPCWSTR pName,
   9780         LONG lValue) = 0;
   9781 
   9782     virtual HRESULT STDMETHODCALLTYPE GetPropertyNum(
   9783         LPCWSTR pName,
   9784         LONG *plValue) = 0;
   9785 
   9786     virtual HRESULT STDMETHODCALLTYPE SetPropertyString(
   9787         LPCWSTR pName,
   9788         LPCWSTR pValue) = 0;
   9789 
   9790     virtual HRESULT STDMETHODCALLTYPE GetPropertyString(
   9791         LPCWSTR pName,
   9792         LPWSTR *ppCoMemValue) = 0;
   9793 
   9794 };
   9795 #ifdef __CRT_UUID_DECL
   9796 __CRT_UUID_DECL(ISpProperties, 0x5b4fb971, 0xb115, 0x4de1, 0xad,0x97, 0xe4,0x82,0xe3,0xbf,0x6e,0xe4)
   9797 #endif
   9798 #else
   9799 typedef struct ISpPropertiesVtbl {
   9800     BEGIN_INTERFACE
   9801 
   9802     /*** IUnknown methods ***/
   9803     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9804         ISpProperties *This,
   9805         REFIID riid,
   9806         void **ppvObject);
   9807 
   9808     ULONG (STDMETHODCALLTYPE *AddRef)(
   9809         ISpProperties *This);
   9810 
   9811     ULONG (STDMETHODCALLTYPE *Release)(
   9812         ISpProperties *This);
   9813 
   9814     /*** ISpProperties methods ***/
   9815     HRESULT (STDMETHODCALLTYPE *SetPropertyNum)(
   9816         ISpProperties *This,
   9817         LPCWSTR pName,
   9818         LONG lValue);
   9819 
   9820     HRESULT (STDMETHODCALLTYPE *GetPropertyNum)(
   9821         ISpProperties *This,
   9822         LPCWSTR pName,
   9823         LONG *plValue);
   9824 
   9825     HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
   9826         ISpProperties *This,
   9827         LPCWSTR pName,
   9828         LPCWSTR pValue);
   9829 
   9830     HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
   9831         ISpProperties *This,
   9832         LPCWSTR pName,
   9833         LPWSTR *ppCoMemValue);
   9834 
   9835     END_INTERFACE
   9836 } ISpPropertiesVtbl;
   9837 
   9838 interface ISpProperties {
   9839     CONST_VTBL ISpPropertiesVtbl* lpVtbl;
   9840 };
   9841 
   9842 #ifdef COBJMACROS
   9843 #ifndef WIDL_C_INLINE_WRAPPERS
   9844 /*** IUnknown methods ***/
   9845 #define ISpProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9846 #define ISpProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
   9847 #define ISpProperties_Release(This) (This)->lpVtbl->Release(This)
   9848 /*** ISpProperties methods ***/
   9849 #define ISpProperties_SetPropertyNum(This,pName,lValue) (This)->lpVtbl->SetPropertyNum(This,pName,lValue)
   9850 #define ISpProperties_GetPropertyNum(This,pName,plValue) (This)->lpVtbl->GetPropertyNum(This,pName,plValue)
   9851 #define ISpProperties_SetPropertyString(This,pName,pValue) (This)->lpVtbl->SetPropertyString(This,pName,pValue)
   9852 #define ISpProperties_GetPropertyString(This,pName,ppCoMemValue) (This)->lpVtbl->GetPropertyString(This,pName,ppCoMemValue)
   9853 #else
   9854 /*** IUnknown methods ***/
   9855 static inline HRESULT ISpProperties_QueryInterface(ISpProperties* This,REFIID riid,void **ppvObject) {
   9856     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9857 }
   9858 static inline ULONG ISpProperties_AddRef(ISpProperties* This) {
   9859     return This->lpVtbl->AddRef(This);
   9860 }
   9861 static inline ULONG ISpProperties_Release(ISpProperties* This) {
   9862     return This->lpVtbl->Release(This);
   9863 }
   9864 /*** ISpProperties methods ***/
   9865 static inline HRESULT ISpProperties_SetPropertyNum(ISpProperties* This,LPCWSTR pName,LONG lValue) {
   9866     return This->lpVtbl->SetPropertyNum(This,pName,lValue);
   9867 }
   9868 static inline HRESULT ISpProperties_GetPropertyNum(ISpProperties* This,LPCWSTR pName,LONG *plValue) {
   9869     return This->lpVtbl->GetPropertyNum(This,pName,plValue);
   9870 }
   9871 static inline HRESULT ISpProperties_SetPropertyString(ISpProperties* This,LPCWSTR pName,LPCWSTR pValue) {
   9872     return This->lpVtbl->SetPropertyString(This,pName,pValue);
   9873 }
   9874 static inline HRESULT ISpProperties_GetPropertyString(ISpProperties* This,LPCWSTR pName,LPWSTR *ppCoMemValue) {
   9875     return This->lpVtbl->GetPropertyString(This,pName,ppCoMemValue);
   9876 }
   9877 #endif
   9878 #endif
   9879 
   9880 #endif
   9881 
   9882 
   9883 #endif  /* __ISpProperties_INTERFACE_DEFINED__ */
   9884 
   9885 #define SP_MAX_LANGIDS (20)
   9886 
   9887 typedef struct SPRECOGNIZERSTATUS {
   9888     SPAUDIOSTATUS AudioStatus;
   9889     ULONGLONG ullRecognitionStreamPos;
   9890     ULONG ulStreamNumber;
   9891     ULONG ulNumActive;
   9892     CLSID clsidEngine;
   9893     ULONG cLangIDs;
   9894     WORD aLangID[20];
   9895     ULONGLONG ullRecognitionStreamTime;
   9896 } SPRECOGNIZERSTATUS;
   9897 typedef enum SPWAVEFORMATTYPE {
   9898     SPWF_INPUT = 0,
   9899     SPWF_SRENGINE = 1
   9900 } SPSTREAMFORMATTYPE;
   9901 typedef enum SPRECOSTATE {
   9902     SPRST_INACTIVE = 0,
   9903     SPRST_ACTIVE = 1,
   9904     SPRST_ACTIVE_ALWAYS = 2,
   9905     SPRST_INACTIVE_WITH_PURGE = 3,
   9906     SPRST_NUM_STATES = 4
   9907 } SPRECOSTATE;
   9908 /*****************************************************************************
   9909  * ISpRecognizer interface
   9910  */
   9911 #ifndef __ISpRecognizer_INTERFACE_DEFINED__
   9912 #define __ISpRecognizer_INTERFACE_DEFINED__
   9913 
   9914 DEFINE_GUID(IID_ISpRecognizer, 0xc2b5f241, 0xdaa0, 0x4507, 0x9e,0x16, 0x5a,0x1e,0xaa,0x2b,0x7a,0x5c);
   9915 #if defined(__cplusplus) && !defined(CINTERFACE)
   9916 MIDL_INTERFACE("c2b5f241-daa0-4507-9e16-5a1eaa2b7a5c")
   9917 ISpRecognizer : public ISpProperties
   9918 {
   9919     virtual HRESULT STDMETHODCALLTYPE SetRecognizer(
   9920         ISpObjectToken *pRecognizer) = 0;
   9921 
   9922     virtual HRESULT STDMETHODCALLTYPE GetRecognizer(
   9923         ISpObjectToken **ppRecognizer) = 0;
   9924 
   9925     virtual HRESULT STDMETHODCALLTYPE SetInput(
   9926         IUnknown *pUnkInput,
   9927         WINBOOL fAllowFormatChanges) = 0;
   9928 
   9929     virtual HRESULT STDMETHODCALLTYPE GetInputObjectToken(
   9930         ISpObjectToken **ppToken) = 0;
   9931 
   9932     virtual HRESULT STDMETHODCALLTYPE GetInputStream(
   9933         ISpStreamFormat **ppStream) = 0;
   9934 
   9935     virtual HRESULT STDMETHODCALLTYPE CreateRecoContext(
   9936         ISpRecoContext **ppNewCtxt) = 0;
   9937 
   9938     virtual HRESULT STDMETHODCALLTYPE GetRecoProfile(
   9939         ISpObjectToken **ppToken) = 0;
   9940 
   9941     virtual HRESULT STDMETHODCALLTYPE SetRecoProfile(
   9942         ISpObjectToken *pToken) = 0;
   9943 
   9944     virtual HRESULT STDMETHODCALLTYPE IsSharedInstance(
   9945         ) = 0;
   9946 
   9947     virtual HRESULT STDMETHODCALLTYPE GetRecoState(
   9948         SPRECOSTATE *pState) = 0;
   9949 
   9950     virtual HRESULT STDMETHODCALLTYPE SetRecoState(
   9951         SPRECOSTATE NewState) = 0;
   9952 
   9953     virtual HRESULT STDMETHODCALLTYPE GetStatus(
   9954         SPRECOGNIZERSTATUS *pStatus) = 0;
   9955 
   9956     virtual HRESULT STDMETHODCALLTYPE GetFormat(
   9957         SPSTREAMFORMATTYPE WaveFormatType,
   9958         GUID *pFormatId,
   9959         WAVEFORMATEX **ppCoMemWFEX) = 0;
   9960 
   9961     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
   9962         LPCWSTR pszTypeOfUI,
   9963         void *pvExtraData,
   9964         ULONG cbExtraData,
   9965         WINBOOL *pfSupported) = 0;
   9966 
   9967     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
   9968         HWND hwndParent,
   9969         LPCWSTR pszTitle,
   9970         LPCWSTR pszTypeOfUI,
   9971         void *pvExtraData,
   9972         ULONG cbExtraData) = 0;
   9973 
   9974     virtual HRESULT STDMETHODCALLTYPE EmulateRecognition(
   9975         ISpPhrase *pPhrase) = 0;
   9976 
   9977 };
   9978 #ifdef __CRT_UUID_DECL
   9979 __CRT_UUID_DECL(ISpRecognizer, 0xc2b5f241, 0xdaa0, 0x4507, 0x9e,0x16, 0x5a,0x1e,0xaa,0x2b,0x7a,0x5c)
   9980 #endif
   9981 #else
   9982 typedef struct ISpRecognizerVtbl {
   9983     BEGIN_INTERFACE
   9984 
   9985     /*** IUnknown methods ***/
   9986     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9987         ISpRecognizer *This,
   9988         REFIID riid,
   9989         void **ppvObject);
   9990 
   9991     ULONG (STDMETHODCALLTYPE *AddRef)(
   9992         ISpRecognizer *This);
   9993 
   9994     ULONG (STDMETHODCALLTYPE *Release)(
   9995         ISpRecognizer *This);
   9996 
   9997     /*** ISpProperties methods ***/
   9998     HRESULT (STDMETHODCALLTYPE *SetPropertyNum)(
   9999         ISpRecognizer *This,
  10000         LPCWSTR pName,
  10001         LONG lValue);
  10002 
  10003     HRESULT (STDMETHODCALLTYPE *GetPropertyNum)(
  10004         ISpRecognizer *This,
  10005         LPCWSTR pName,
  10006         LONG *plValue);
  10007 
  10008     HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
  10009         ISpRecognizer *This,
  10010         LPCWSTR pName,
  10011         LPCWSTR pValue);
  10012 
  10013     HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
  10014         ISpRecognizer *This,
  10015         LPCWSTR pName,
  10016         LPWSTR *ppCoMemValue);
  10017 
  10018     /*** ISpRecognizer methods ***/
  10019     HRESULT (STDMETHODCALLTYPE *SetRecognizer)(
  10020         ISpRecognizer *This,
  10021         ISpObjectToken *pRecognizer);
  10022 
  10023     HRESULT (STDMETHODCALLTYPE *GetRecognizer)(
  10024         ISpRecognizer *This,
  10025         ISpObjectToken **ppRecognizer);
  10026 
  10027     HRESULT (STDMETHODCALLTYPE *SetInput)(
  10028         ISpRecognizer *This,
  10029         IUnknown *pUnkInput,
  10030         WINBOOL fAllowFormatChanges);
  10031 
  10032     HRESULT (STDMETHODCALLTYPE *GetInputObjectToken)(
  10033         ISpRecognizer *This,
  10034         ISpObjectToken **ppToken);
  10035 
  10036     HRESULT (STDMETHODCALLTYPE *GetInputStream)(
  10037         ISpRecognizer *This,
  10038         ISpStreamFormat **ppStream);
  10039 
  10040     HRESULT (STDMETHODCALLTYPE *CreateRecoContext)(
  10041         ISpRecognizer *This,
  10042         ISpRecoContext **ppNewCtxt);
  10043 
  10044     HRESULT (STDMETHODCALLTYPE *GetRecoProfile)(
  10045         ISpRecognizer *This,
  10046         ISpObjectToken **ppToken);
  10047 
  10048     HRESULT (STDMETHODCALLTYPE *SetRecoProfile)(
  10049         ISpRecognizer *This,
  10050         ISpObjectToken *pToken);
  10051 
  10052     HRESULT (STDMETHODCALLTYPE *IsSharedInstance)(
  10053         ISpRecognizer *This);
  10054 
  10055     HRESULT (STDMETHODCALLTYPE *GetRecoState)(
  10056         ISpRecognizer *This,
  10057         SPRECOSTATE *pState);
  10058 
  10059     HRESULT (STDMETHODCALLTYPE *SetRecoState)(
  10060         ISpRecognizer *This,
  10061         SPRECOSTATE NewState);
  10062 
  10063     HRESULT (STDMETHODCALLTYPE *GetStatus)(
  10064         ISpRecognizer *This,
  10065         SPRECOGNIZERSTATUS *pStatus);
  10066 
  10067     HRESULT (STDMETHODCALLTYPE *GetFormat)(
  10068         ISpRecognizer *This,
  10069         SPSTREAMFORMATTYPE WaveFormatType,
  10070         GUID *pFormatId,
  10071         WAVEFORMATEX **ppCoMemWFEX);
  10072 
  10073     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
  10074         ISpRecognizer *This,
  10075         LPCWSTR pszTypeOfUI,
  10076         void *pvExtraData,
  10077         ULONG cbExtraData,
  10078         WINBOOL *pfSupported);
  10079 
  10080     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
  10081         ISpRecognizer *This,
  10082         HWND hwndParent,
  10083         LPCWSTR pszTitle,
  10084         LPCWSTR pszTypeOfUI,
  10085         void *pvExtraData,
  10086         ULONG cbExtraData);
  10087 
  10088     HRESULT (STDMETHODCALLTYPE *EmulateRecognition)(
  10089         ISpRecognizer *This,
  10090         ISpPhrase *pPhrase);
  10091 
  10092     END_INTERFACE
  10093 } ISpRecognizerVtbl;
  10094 
  10095 interface ISpRecognizer {
  10096     CONST_VTBL ISpRecognizerVtbl* lpVtbl;
  10097 };
  10098 
  10099 #ifdef COBJMACROS
  10100 #ifndef WIDL_C_INLINE_WRAPPERS
  10101 /*** IUnknown methods ***/
  10102 #define ISpRecognizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10103 #define ISpRecognizer_AddRef(This) (This)->lpVtbl->AddRef(This)
  10104 #define ISpRecognizer_Release(This) (This)->lpVtbl->Release(This)
  10105 /*** ISpProperties methods ***/
  10106 #define ISpRecognizer_SetPropertyNum(This,pName,lValue) (This)->lpVtbl->SetPropertyNum(This,pName,lValue)
  10107 #define ISpRecognizer_GetPropertyNum(This,pName,plValue) (This)->lpVtbl->GetPropertyNum(This,pName,plValue)
  10108 #define ISpRecognizer_SetPropertyString(This,pName,pValue) (This)->lpVtbl->SetPropertyString(This,pName,pValue)
  10109 #define ISpRecognizer_GetPropertyString(This,pName,ppCoMemValue) (This)->lpVtbl->GetPropertyString(This,pName,ppCoMemValue)
  10110 /*** ISpRecognizer methods ***/
  10111 #define ISpRecognizer_SetRecognizer(This,pRecognizer) (This)->lpVtbl->SetRecognizer(This,pRecognizer)
  10112 #define ISpRecognizer_GetRecognizer(This,ppRecognizer) (This)->lpVtbl->GetRecognizer(This,ppRecognizer)
  10113 #define ISpRecognizer_SetInput(This,pUnkInput,fAllowFormatChanges) (This)->lpVtbl->SetInput(This,pUnkInput,fAllowFormatChanges)
  10114 #define ISpRecognizer_GetInputObjectToken(This,ppToken) (This)->lpVtbl->GetInputObjectToken(This,ppToken)
  10115 #define ISpRecognizer_GetInputStream(This,ppStream) (This)->lpVtbl->GetInputStream(This,ppStream)
  10116 #define ISpRecognizer_CreateRecoContext(This,ppNewCtxt) (This)->lpVtbl->CreateRecoContext(This,ppNewCtxt)
  10117 #define ISpRecognizer_GetRecoProfile(This,ppToken) (This)->lpVtbl->GetRecoProfile(This,ppToken)
  10118 #define ISpRecognizer_SetRecoProfile(This,pToken) (This)->lpVtbl->SetRecoProfile(This,pToken)
  10119 #define ISpRecognizer_IsSharedInstance(This) (This)->lpVtbl->IsSharedInstance(This)
  10120 #define ISpRecognizer_GetRecoState(This,pState) (This)->lpVtbl->GetRecoState(This,pState)
  10121 #define ISpRecognizer_SetRecoState(This,NewState) (This)->lpVtbl->SetRecoState(This,NewState)
  10122 #define ISpRecognizer_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
  10123 #define ISpRecognizer_GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX) (This)->lpVtbl->GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX)
  10124 #define ISpRecognizer_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported)
  10125 #define ISpRecognizer_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData)
  10126 #define ISpRecognizer_EmulateRecognition(This,pPhrase) (This)->lpVtbl->EmulateRecognition(This,pPhrase)
  10127 #else
  10128 /*** IUnknown methods ***/
  10129 static inline HRESULT ISpRecognizer_QueryInterface(ISpRecognizer* This,REFIID riid,void **ppvObject) {
  10130     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10131 }
  10132 static inline ULONG ISpRecognizer_AddRef(ISpRecognizer* This) {
  10133     return This->lpVtbl->AddRef(This);
  10134 }
  10135 static inline ULONG ISpRecognizer_Release(ISpRecognizer* This) {
  10136     return This->lpVtbl->Release(This);
  10137 }
  10138 /*** ISpProperties methods ***/
  10139 static inline HRESULT ISpRecognizer_SetPropertyNum(ISpRecognizer* This,LPCWSTR pName,LONG lValue) {
  10140     return This->lpVtbl->SetPropertyNum(This,pName,lValue);
  10141 }
  10142 static inline HRESULT ISpRecognizer_GetPropertyNum(ISpRecognizer* This,LPCWSTR pName,LONG *plValue) {
  10143     return This->lpVtbl->GetPropertyNum(This,pName,plValue);
  10144 }
  10145 static inline HRESULT ISpRecognizer_SetPropertyString(ISpRecognizer* This,LPCWSTR pName,LPCWSTR pValue) {
  10146     return This->lpVtbl->SetPropertyString(This,pName,pValue);
  10147 }
  10148 static inline HRESULT ISpRecognizer_GetPropertyString(ISpRecognizer* This,LPCWSTR pName,LPWSTR *ppCoMemValue) {
  10149     return This->lpVtbl->GetPropertyString(This,pName,ppCoMemValue);
  10150 }
  10151 /*** ISpRecognizer methods ***/
  10152 static inline HRESULT ISpRecognizer_SetRecognizer(ISpRecognizer* This,ISpObjectToken *pRecognizer) {
  10153     return This->lpVtbl->SetRecognizer(This,pRecognizer);
  10154 }
  10155 static inline HRESULT ISpRecognizer_GetRecognizer(ISpRecognizer* This,ISpObjectToken **ppRecognizer) {
  10156     return This->lpVtbl->GetRecognizer(This,ppRecognizer);
  10157 }
  10158 static inline HRESULT ISpRecognizer_SetInput(ISpRecognizer* This,IUnknown *pUnkInput,WINBOOL fAllowFormatChanges) {
  10159     return This->lpVtbl->SetInput(This,pUnkInput,fAllowFormatChanges);
  10160 }
  10161 static inline HRESULT ISpRecognizer_GetInputObjectToken(ISpRecognizer* This,ISpObjectToken **ppToken) {
  10162     return This->lpVtbl->GetInputObjectToken(This,ppToken);
  10163 }
  10164 static inline HRESULT ISpRecognizer_GetInputStream(ISpRecognizer* This,ISpStreamFormat **ppStream) {
  10165     return This->lpVtbl->GetInputStream(This,ppStream);
  10166 }
  10167 static inline HRESULT ISpRecognizer_CreateRecoContext(ISpRecognizer* This,ISpRecoContext **ppNewCtxt) {
  10168     return This->lpVtbl->CreateRecoContext(This,ppNewCtxt);
  10169 }
  10170 static inline HRESULT ISpRecognizer_GetRecoProfile(ISpRecognizer* This,ISpObjectToken **ppToken) {
  10171     return This->lpVtbl->GetRecoProfile(This,ppToken);
  10172 }
  10173 static inline HRESULT ISpRecognizer_SetRecoProfile(ISpRecognizer* This,ISpObjectToken *pToken) {
  10174     return This->lpVtbl->SetRecoProfile(This,pToken);
  10175 }
  10176 static inline HRESULT ISpRecognizer_IsSharedInstance(ISpRecognizer* This) {
  10177     return This->lpVtbl->IsSharedInstance(This);
  10178 }
  10179 static inline HRESULT ISpRecognizer_GetRecoState(ISpRecognizer* This,SPRECOSTATE *pState) {
  10180     return This->lpVtbl->GetRecoState(This,pState);
  10181 }
  10182 static inline HRESULT ISpRecognizer_SetRecoState(ISpRecognizer* This,SPRECOSTATE NewState) {
  10183     return This->lpVtbl->SetRecoState(This,NewState);
  10184 }
  10185 static inline HRESULT ISpRecognizer_GetStatus(ISpRecognizer* This,SPRECOGNIZERSTATUS *pStatus) {
  10186     return This->lpVtbl->GetStatus(This,pStatus);
  10187 }
  10188 static inline HRESULT ISpRecognizer_GetFormat(ISpRecognizer* This,SPSTREAMFORMATTYPE WaveFormatType,GUID *pFormatId,WAVEFORMATEX **ppCoMemWFEX) {
  10189     return This->lpVtbl->GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX);
  10190 }
  10191 static inline HRESULT ISpRecognizer_IsUISupported(ISpRecognizer* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,WINBOOL *pfSupported) {
  10192     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported);
  10193 }
  10194 static inline HRESULT ISpRecognizer_DisplayUI(ISpRecognizer* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData) {
  10195     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData);
  10196 }
  10197 static inline HRESULT ISpRecognizer_EmulateRecognition(ISpRecognizer* This,ISpPhrase *pPhrase) {
  10198     return This->lpVtbl->EmulateRecognition(This,pPhrase);
  10199 }
  10200 #endif
  10201 #endif
  10202 
  10203 #endif
  10204 
  10205 
  10206 #endif  /* __ISpRecognizer_INTERFACE_DEFINED__ */
  10207 
  10208 /*****************************************************************************
  10209  * ISpSerializeState interface
  10210  */
  10211 #ifndef __ISpSerializeState_INTERFACE_DEFINED__
  10212 #define __ISpSerializeState_INTERFACE_DEFINED__
  10213 
  10214 DEFINE_GUID(IID_ISpSerializeState, 0x21b501a0, 0x0ec7, 0x46c9, 0x92,0xc3, 0xa2,0xbc,0x78,0x4c,0x54,0xb9);
  10215 #if defined(__cplusplus) && !defined(CINTERFACE)
  10216 MIDL_INTERFACE("21b501a0-0ec7-46c9-92c3-a2bc784c54b9")
  10217 ISpSerializeState : public IUnknown
  10218 {
  10219     virtual HRESULT STDMETHODCALLTYPE GetSerializedState(
  10220         BYTE **ppbData,
  10221         ULONG *pulSize,
  10222         DWORD dwReserved) = 0;
  10223 
  10224     virtual HRESULT STDMETHODCALLTYPE SetSerializedState(
  10225         BYTE *pbData,
  10226         ULONG ulSize,
  10227         DWORD dwReserved) = 0;
  10228 
  10229 };
  10230 #ifdef __CRT_UUID_DECL
  10231 __CRT_UUID_DECL(ISpSerializeState, 0x21b501a0, 0x0ec7, 0x46c9, 0x92,0xc3, 0xa2,0xbc,0x78,0x4c,0x54,0xb9)
  10232 #endif
  10233 #else
  10234 typedef struct ISpSerializeStateVtbl {
  10235     BEGIN_INTERFACE
  10236 
  10237     /*** IUnknown methods ***/
  10238     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10239         ISpSerializeState *This,
  10240         REFIID riid,
  10241         void **ppvObject);
  10242 
  10243     ULONG (STDMETHODCALLTYPE *AddRef)(
  10244         ISpSerializeState *This);
  10245 
  10246     ULONG (STDMETHODCALLTYPE *Release)(
  10247         ISpSerializeState *This);
  10248 
  10249     /*** ISpSerializeState methods ***/
  10250     HRESULT (STDMETHODCALLTYPE *GetSerializedState)(
  10251         ISpSerializeState *This,
  10252         BYTE **ppbData,
  10253         ULONG *pulSize,
  10254         DWORD dwReserved);
  10255 
  10256     HRESULT (STDMETHODCALLTYPE *SetSerializedState)(
  10257         ISpSerializeState *This,
  10258         BYTE *pbData,
  10259         ULONG ulSize,
  10260         DWORD dwReserved);
  10261 
  10262     END_INTERFACE
  10263 } ISpSerializeStateVtbl;
  10264 
  10265 interface ISpSerializeState {
  10266     CONST_VTBL ISpSerializeStateVtbl* lpVtbl;
  10267 };
  10268 
  10269 #ifdef COBJMACROS
  10270 #ifndef WIDL_C_INLINE_WRAPPERS
  10271 /*** IUnknown methods ***/
  10272 #define ISpSerializeState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10273 #define ISpSerializeState_AddRef(This) (This)->lpVtbl->AddRef(This)
  10274 #define ISpSerializeState_Release(This) (This)->lpVtbl->Release(This)
  10275 /*** ISpSerializeState methods ***/
  10276 #define ISpSerializeState_GetSerializedState(This,ppbData,pulSize,dwReserved) (This)->lpVtbl->GetSerializedState(This,ppbData,pulSize,dwReserved)
  10277 #define ISpSerializeState_SetSerializedState(This,pbData,ulSize,dwReserved) (This)->lpVtbl->SetSerializedState(This,pbData,ulSize,dwReserved)
  10278 #else
  10279 /*** IUnknown methods ***/
  10280 static inline HRESULT ISpSerializeState_QueryInterface(ISpSerializeState* This,REFIID riid,void **ppvObject) {
  10281     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10282 }
  10283 static inline ULONG ISpSerializeState_AddRef(ISpSerializeState* This) {
  10284     return This->lpVtbl->AddRef(This);
  10285 }
  10286 static inline ULONG ISpSerializeState_Release(ISpSerializeState* This) {
  10287     return This->lpVtbl->Release(This);
  10288 }
  10289 /*** ISpSerializeState methods ***/
  10290 static inline HRESULT ISpSerializeState_GetSerializedState(ISpSerializeState* This,BYTE **ppbData,ULONG *pulSize,DWORD dwReserved) {
  10291     return This->lpVtbl->GetSerializedState(This,ppbData,pulSize,dwReserved);
  10292 }
  10293 static inline HRESULT ISpSerializeState_SetSerializedState(ISpSerializeState* This,BYTE *pbData,ULONG ulSize,DWORD dwReserved) {
  10294     return This->lpVtbl->SetSerializedState(This,pbData,ulSize,dwReserved);
  10295 }
  10296 #endif
  10297 #endif
  10298 
  10299 #endif
  10300 
  10301 
  10302 #endif  /* __ISpSerializeState_INTERFACE_DEFINED__ */
  10303 
  10304 /*****************************************************************************
  10305  * ISpRecognizer2 interface
  10306  */
  10307 #ifndef __ISpRecognizer2_INTERFACE_DEFINED__
  10308 #define __ISpRecognizer2_INTERFACE_DEFINED__
  10309 
  10310 DEFINE_GUID(IID_ISpRecognizer2, 0x8fc6d974, 0xc81e, 0x4098, 0x93,0xc5, 0x01,0x47,0xf6,0x1e,0xd4,0xd3);
  10311 #if defined(__cplusplus) && !defined(CINTERFACE)
  10312 MIDL_INTERFACE("8fc6d974-c81e-4098-93c5-0147f61ed4d3")
  10313 ISpRecognizer2 : public IUnknown
  10314 {
  10315     virtual HRESULT STDMETHODCALLTYPE EmulateRecognitionEx(
  10316         ISpPhrase *pPhrase,
  10317         DWORD dwCompareFlags) = 0;
  10318 
  10319     virtual HRESULT STDMETHODCALLTYPE SetTrainingState(
  10320         WINBOOL fDoingTraining,
  10321         WINBOOL fAdaptFromTrainingData) = 0;
  10322 
  10323     virtual HRESULT STDMETHODCALLTYPE ResetAcousticModelAdaptation(
  10324         ) = 0;
  10325 
  10326 };
  10327 #ifdef __CRT_UUID_DECL
  10328 __CRT_UUID_DECL(ISpRecognizer2, 0x8fc6d974, 0xc81e, 0x4098, 0x93,0xc5, 0x01,0x47,0xf6,0x1e,0xd4,0xd3)
  10329 #endif
  10330 #else
  10331 typedef struct ISpRecognizer2Vtbl {
  10332     BEGIN_INTERFACE
  10333 
  10334     /*** IUnknown methods ***/
  10335     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10336         ISpRecognizer2 *This,
  10337         REFIID riid,
  10338         void **ppvObject);
  10339 
  10340     ULONG (STDMETHODCALLTYPE *AddRef)(
  10341         ISpRecognizer2 *This);
  10342 
  10343     ULONG (STDMETHODCALLTYPE *Release)(
  10344         ISpRecognizer2 *This);
  10345 
  10346     /*** ISpRecognizer2 methods ***/
  10347     HRESULT (STDMETHODCALLTYPE *EmulateRecognitionEx)(
  10348         ISpRecognizer2 *This,
  10349         ISpPhrase *pPhrase,
  10350         DWORD dwCompareFlags);
  10351 
  10352     HRESULT (STDMETHODCALLTYPE *SetTrainingState)(
  10353         ISpRecognizer2 *This,
  10354         WINBOOL fDoingTraining,
  10355         WINBOOL fAdaptFromTrainingData);
  10356 
  10357     HRESULT (STDMETHODCALLTYPE *ResetAcousticModelAdaptation)(
  10358         ISpRecognizer2 *This);
  10359 
  10360     END_INTERFACE
  10361 } ISpRecognizer2Vtbl;
  10362 
  10363 interface ISpRecognizer2 {
  10364     CONST_VTBL ISpRecognizer2Vtbl* lpVtbl;
  10365 };
  10366 
  10367 #ifdef COBJMACROS
  10368 #ifndef WIDL_C_INLINE_WRAPPERS
  10369 /*** IUnknown methods ***/
  10370 #define ISpRecognizer2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10371 #define ISpRecognizer2_AddRef(This) (This)->lpVtbl->AddRef(This)
  10372 #define ISpRecognizer2_Release(This) (This)->lpVtbl->Release(This)
  10373 /*** ISpRecognizer2 methods ***/
  10374 #define ISpRecognizer2_EmulateRecognitionEx(This,pPhrase,dwCompareFlags) (This)->lpVtbl->EmulateRecognitionEx(This,pPhrase,dwCompareFlags)
  10375 #define ISpRecognizer2_SetTrainingState(This,fDoingTraining,fAdaptFromTrainingData) (This)->lpVtbl->SetTrainingState(This,fDoingTraining,fAdaptFromTrainingData)
  10376 #define ISpRecognizer2_ResetAcousticModelAdaptation(This) (This)->lpVtbl->ResetAcousticModelAdaptation(This)
  10377 #else
  10378 /*** IUnknown methods ***/
  10379 static inline HRESULT ISpRecognizer2_QueryInterface(ISpRecognizer2* This,REFIID riid,void **ppvObject) {
  10380     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10381 }
  10382 static inline ULONG ISpRecognizer2_AddRef(ISpRecognizer2* This) {
  10383     return This->lpVtbl->AddRef(This);
  10384 }
  10385 static inline ULONG ISpRecognizer2_Release(ISpRecognizer2* This) {
  10386     return This->lpVtbl->Release(This);
  10387 }
  10388 /*** ISpRecognizer2 methods ***/
  10389 static inline HRESULT ISpRecognizer2_EmulateRecognitionEx(ISpRecognizer2* This,ISpPhrase *pPhrase,DWORD dwCompareFlags) {
  10390     return This->lpVtbl->EmulateRecognitionEx(This,pPhrase,dwCompareFlags);
  10391 }
  10392 static inline HRESULT ISpRecognizer2_SetTrainingState(ISpRecognizer2* This,WINBOOL fDoingTraining,WINBOOL fAdaptFromTrainingData) {
  10393     return This->lpVtbl->SetTrainingState(This,fDoingTraining,fAdaptFromTrainingData);
  10394 }
  10395 static inline HRESULT ISpRecognizer2_ResetAcousticModelAdaptation(ISpRecognizer2* This) {
  10396     return This->lpVtbl->ResetAcousticModelAdaptation(This);
  10397 }
  10398 #endif
  10399 #endif
  10400 
  10401 #endif
  10402 
  10403 
  10404 #endif  /* __ISpRecognizer2_INTERFACE_DEFINED__ */
  10405 
  10406 typedef struct SPNORMALIZATIONLIST {
  10407     ULONG ulSize;
  10408     WCHAR **ppszzNormalizedList;
  10409 } SPNORMALIZATIONLIST;
  10410 /*****************************************************************************
  10411  * ISpEnginePronunciation interface
  10412  */
  10413 #ifndef __ISpEnginePronunciation_INTERFACE_DEFINED__
  10414 #define __ISpEnginePronunciation_INTERFACE_DEFINED__
  10415 
  10416 DEFINE_GUID(IID_ISpEnginePronunciation, 0xc360ce4b, 0x76d1, 0x4214, 0xad,0x68, 0x52,0x65,0x7d,0x50,0x83,0xda);
  10417 #if defined(__cplusplus) && !defined(CINTERFACE)
  10418 MIDL_INTERFACE("c360ce4b-76d1-4214-ad68-52657d5083da")
  10419 ISpEnginePronunciation : public IUnknown
  10420 {
  10421     virtual HRESULT STDMETHODCALLTYPE Normalize(
  10422         LPCWSTR pszWord,
  10423         LPCWSTR pszLeftContext,
  10424         LPCWSTR pszRightContext,
  10425         WORD LangID,
  10426         SPNORMALIZATIONLIST *pNormalizationList) = 0;
  10427 
  10428     virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
  10429         LPCWSTR pszWord,
  10430         LPCWSTR pszLeftContext,
  10431         LPCWSTR pszRightContext,
  10432         WORD LangID,
  10433         SPWORDPRONUNCIATIONLIST *pEnginePronunciationList) = 0;
  10434 
  10435 };
  10436 #ifdef __CRT_UUID_DECL
  10437 __CRT_UUID_DECL(ISpEnginePronunciation, 0xc360ce4b, 0x76d1, 0x4214, 0xad,0x68, 0x52,0x65,0x7d,0x50,0x83,0xda)
  10438 #endif
  10439 #else
  10440 typedef struct ISpEnginePronunciationVtbl {
  10441     BEGIN_INTERFACE
  10442 
  10443     /*** IUnknown methods ***/
  10444     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10445         ISpEnginePronunciation *This,
  10446         REFIID riid,
  10447         void **ppvObject);
  10448 
  10449     ULONG (STDMETHODCALLTYPE *AddRef)(
  10450         ISpEnginePronunciation *This);
  10451 
  10452     ULONG (STDMETHODCALLTYPE *Release)(
  10453         ISpEnginePronunciation *This);
  10454 
  10455     /*** ISpEnginePronunciation methods ***/
  10456     HRESULT (STDMETHODCALLTYPE *Normalize)(
  10457         ISpEnginePronunciation *This,
  10458         LPCWSTR pszWord,
  10459         LPCWSTR pszLeftContext,
  10460         LPCWSTR pszRightContext,
  10461         WORD LangID,
  10462         SPNORMALIZATIONLIST *pNormalizationList);
  10463 
  10464     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
  10465         ISpEnginePronunciation *This,
  10466         LPCWSTR pszWord,
  10467         LPCWSTR pszLeftContext,
  10468         LPCWSTR pszRightContext,
  10469         WORD LangID,
  10470         SPWORDPRONUNCIATIONLIST *pEnginePronunciationList);
  10471 
  10472     END_INTERFACE
  10473 } ISpEnginePronunciationVtbl;
  10474 
  10475 interface ISpEnginePronunciation {
  10476     CONST_VTBL ISpEnginePronunciationVtbl* lpVtbl;
  10477 };
  10478 
  10479 #ifdef COBJMACROS
  10480 #ifndef WIDL_C_INLINE_WRAPPERS
  10481 /*** IUnknown methods ***/
  10482 #define ISpEnginePronunciation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10483 #define ISpEnginePronunciation_AddRef(This) (This)->lpVtbl->AddRef(This)
  10484 #define ISpEnginePronunciation_Release(This) (This)->lpVtbl->Release(This)
  10485 /*** ISpEnginePronunciation methods ***/
  10486 #define ISpEnginePronunciation_Normalize(This,pszWord,pszLeftContext,pszRightContext,LangID,pNormalizationList) (This)->lpVtbl->Normalize(This,pszWord,pszLeftContext,pszRightContext,LangID,pNormalizationList)
  10487 #define ISpEnginePronunciation_GetPronunciations(This,pszWord,pszLeftContext,pszRightContext,LangID,pEnginePronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,pszLeftContext,pszRightContext,LangID,pEnginePronunciationList)
  10488 #else
  10489 /*** IUnknown methods ***/
  10490 static inline HRESULT ISpEnginePronunciation_QueryInterface(ISpEnginePronunciation* This,REFIID riid,void **ppvObject) {
  10491     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10492 }
  10493 static inline ULONG ISpEnginePronunciation_AddRef(ISpEnginePronunciation* This) {
  10494     return This->lpVtbl->AddRef(This);
  10495 }
  10496 static inline ULONG ISpEnginePronunciation_Release(ISpEnginePronunciation* This) {
  10497     return This->lpVtbl->Release(This);
  10498 }
  10499 /*** ISpEnginePronunciation methods ***/
  10500 static inline HRESULT ISpEnginePronunciation_Normalize(ISpEnginePronunciation* This,LPCWSTR pszWord,LPCWSTR pszLeftContext,LPCWSTR pszRightContext,WORD LangID,SPNORMALIZATIONLIST *pNormalizationList) {
  10501     return This->lpVtbl->Normalize(This,pszWord,pszLeftContext,pszRightContext,LangID,pNormalizationList);
  10502 }
  10503 static inline HRESULT ISpEnginePronunciation_GetPronunciations(ISpEnginePronunciation* This,LPCWSTR pszWord,LPCWSTR pszLeftContext,LPCWSTR pszRightContext,WORD LangID,SPWORDPRONUNCIATIONLIST *pEnginePronunciationList) {
  10504     return This->lpVtbl->GetPronunciations(This,pszWord,pszLeftContext,pszRightContext,LangID,pEnginePronunciationList);
  10505 }
  10506 #endif
  10507 #endif
  10508 
  10509 #endif
  10510 
  10511 
  10512 #endif  /* __ISpEnginePronunciation_INTERFACE_DEFINED__ */
  10513 
  10514 typedef struct SPDISPLAYTOKEN {
  10515     const WCHAR *pszLexical;
  10516     const WCHAR *pszDisplay;
  10517     BYTE bDisplayAttributes;
  10518 } SPDISPLAYTOKEN;
  10519 typedef struct SPDISPLAYPHRASE {
  10520     ULONG ulNumTokens;
  10521     SPDISPLAYTOKEN *pTokens;
  10522 } SPDISPLAYPHRASE;
  10523 /*****************************************************************************
  10524  * ISpDisplayAlternates interface
  10525  */
  10526 #ifndef __ISpDisplayAlternates_INTERFACE_DEFINED__
  10527 #define __ISpDisplayAlternates_INTERFACE_DEFINED__
  10528 
  10529 DEFINE_GUID(IID_ISpDisplayAlternates, 0xc8d7c7e2, 0x0dde, 0x44b7, 0xaf,0xe3, 0xb0,0xc9,0x91,0xfb,0xeb,0x5e);
  10530 #if defined(__cplusplus) && !defined(CINTERFACE)
  10531 MIDL_INTERFACE("c8d7c7e2-0dde-44b7-afe3-b0c991fbeb5e")
  10532 ISpDisplayAlternates : public IUnknown
  10533 {
  10534     virtual HRESULT STDMETHODCALLTYPE GetDisplayAlternates(
  10535         const SPDISPLAYPHRASE *pPhrase,
  10536         ULONG cRequestCount,
  10537         SPDISPLAYPHRASE **ppCoMemPhrases,
  10538         ULONG *pcPhrasesReturned) = 0;
  10539 
  10540     virtual HRESULT STDMETHODCALLTYPE SetFullStopTrailSpace(
  10541         ULONG ulTrailSpace) = 0;
  10542 
  10543 };
  10544 #ifdef __CRT_UUID_DECL
  10545 __CRT_UUID_DECL(ISpDisplayAlternates, 0xc8d7c7e2, 0x0dde, 0x44b7, 0xaf,0xe3, 0xb0,0xc9,0x91,0xfb,0xeb,0x5e)
  10546 #endif
  10547 #else
  10548 typedef struct ISpDisplayAlternatesVtbl {
  10549     BEGIN_INTERFACE
  10550 
  10551     /*** IUnknown methods ***/
  10552     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10553         ISpDisplayAlternates *This,
  10554         REFIID riid,
  10555         void **ppvObject);
  10556 
  10557     ULONG (STDMETHODCALLTYPE *AddRef)(
  10558         ISpDisplayAlternates *This);
  10559 
  10560     ULONG (STDMETHODCALLTYPE *Release)(
  10561         ISpDisplayAlternates *This);
  10562 
  10563     /*** ISpDisplayAlternates methods ***/
  10564     HRESULT (STDMETHODCALLTYPE *GetDisplayAlternates)(
  10565         ISpDisplayAlternates *This,
  10566         const SPDISPLAYPHRASE *pPhrase,
  10567         ULONG cRequestCount,
  10568         SPDISPLAYPHRASE **ppCoMemPhrases,
  10569         ULONG *pcPhrasesReturned);
  10570 
  10571     HRESULT (STDMETHODCALLTYPE *SetFullStopTrailSpace)(
  10572         ISpDisplayAlternates *This,
  10573         ULONG ulTrailSpace);
  10574 
  10575     END_INTERFACE
  10576 } ISpDisplayAlternatesVtbl;
  10577 
  10578 interface ISpDisplayAlternates {
  10579     CONST_VTBL ISpDisplayAlternatesVtbl* lpVtbl;
  10580 };
  10581 
  10582 #ifdef COBJMACROS
  10583 #ifndef WIDL_C_INLINE_WRAPPERS
  10584 /*** IUnknown methods ***/
  10585 #define ISpDisplayAlternates_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10586 #define ISpDisplayAlternates_AddRef(This) (This)->lpVtbl->AddRef(This)
  10587 #define ISpDisplayAlternates_Release(This) (This)->lpVtbl->Release(This)
  10588 /*** ISpDisplayAlternates methods ***/
  10589 #define ISpDisplayAlternates_GetDisplayAlternates(This,pPhrase,cRequestCount,ppCoMemPhrases,pcPhrasesReturned) (This)->lpVtbl->GetDisplayAlternates(This,pPhrase,cRequestCount,ppCoMemPhrases,pcPhrasesReturned)
  10590 #define ISpDisplayAlternates_SetFullStopTrailSpace(This,ulTrailSpace) (This)->lpVtbl->SetFullStopTrailSpace(This,ulTrailSpace)
  10591 #else
  10592 /*** IUnknown methods ***/
  10593 static inline HRESULT ISpDisplayAlternates_QueryInterface(ISpDisplayAlternates* This,REFIID riid,void **ppvObject) {
  10594     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10595 }
  10596 static inline ULONG ISpDisplayAlternates_AddRef(ISpDisplayAlternates* This) {
  10597     return This->lpVtbl->AddRef(This);
  10598 }
  10599 static inline ULONG ISpDisplayAlternates_Release(ISpDisplayAlternates* This) {
  10600     return This->lpVtbl->Release(This);
  10601 }
  10602 /*** ISpDisplayAlternates methods ***/
  10603 static inline HRESULT ISpDisplayAlternates_GetDisplayAlternates(ISpDisplayAlternates* This,const SPDISPLAYPHRASE *pPhrase,ULONG cRequestCount,SPDISPLAYPHRASE **ppCoMemPhrases,ULONG *pcPhrasesReturned) {
  10604     return This->lpVtbl->GetDisplayAlternates(This,pPhrase,cRequestCount,ppCoMemPhrases,pcPhrasesReturned);
  10605 }
  10606 static inline HRESULT ISpDisplayAlternates_SetFullStopTrailSpace(ISpDisplayAlternates* This,ULONG ulTrailSpace) {
  10607     return This->lpVtbl->SetFullStopTrailSpace(This,ulTrailSpace);
  10608 }
  10609 #endif
  10610 #endif
  10611 
  10612 #endif
  10613 
  10614 
  10615 #endif  /* __ISpDisplayAlternates_INTERFACE_DEFINED__ */
  10616 
  10617 #ifndef __SpeechLib_LIBRARY_DEFINED__
  10618 #define __SpeechLib_LIBRARY_DEFINED__
  10619 
  10620 DEFINE_GUID(LIBID_SpeechLib, 0xc866ca3a, 0x32f7, 0x11d2, 0x96,0x02, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
  10621 
  10622 #ifndef __ISpeechDataKey_FWD_DEFINED__
  10623 #define __ISpeechDataKey_FWD_DEFINED__
  10624 typedef interface ISpeechDataKey ISpeechDataKey;
  10625 #ifdef __cplusplus
  10626 interface ISpeechDataKey;
  10627 #endif /* __cplusplus */
  10628 #endif
  10629 
  10630 #ifndef __ISpeechObjectToken_FWD_DEFINED__
  10631 #define __ISpeechObjectToken_FWD_DEFINED__
  10632 typedef interface ISpeechObjectToken ISpeechObjectToken;
  10633 #ifdef __cplusplus
  10634 interface ISpeechObjectToken;
  10635 #endif /* __cplusplus */
  10636 #endif
  10637 
  10638 #ifndef __ISpeechObjectTokens_FWD_DEFINED__
  10639 #define __ISpeechObjectTokens_FWD_DEFINED__
  10640 typedef interface ISpeechObjectTokens ISpeechObjectTokens;
  10641 #ifdef __cplusplus
  10642 interface ISpeechObjectTokens;
  10643 #endif /* __cplusplus */
  10644 #endif
  10645 
  10646 #ifndef __ISpeechObjectTokenCategory_FWD_DEFINED__
  10647 #define __ISpeechObjectTokenCategory_FWD_DEFINED__
  10648 typedef interface ISpeechObjectTokenCategory ISpeechObjectTokenCategory;
  10649 #ifdef __cplusplus
  10650 interface ISpeechObjectTokenCategory;
  10651 #endif /* __cplusplus */
  10652 #endif
  10653 
  10654 #ifndef __ISpeechAudioBufferInfo_FWD_DEFINED__
  10655 #define __ISpeechAudioBufferInfo_FWD_DEFINED__
  10656 typedef interface ISpeechAudioBufferInfo ISpeechAudioBufferInfo;
  10657 #ifdef __cplusplus
  10658 interface ISpeechAudioBufferInfo;
  10659 #endif /* __cplusplus */
  10660 #endif
  10661 
  10662 #ifndef __ISpeechAudioStatus_FWD_DEFINED__
  10663 #define __ISpeechAudioStatus_FWD_DEFINED__
  10664 typedef interface ISpeechAudioStatus ISpeechAudioStatus;
  10665 #ifdef __cplusplus
  10666 interface ISpeechAudioStatus;
  10667 #endif /* __cplusplus */
  10668 #endif
  10669 
  10670 #ifndef __ISpeechAudioFormat_FWD_DEFINED__
  10671 #define __ISpeechAudioFormat_FWD_DEFINED__
  10672 typedef interface ISpeechAudioFormat ISpeechAudioFormat;
  10673 #ifdef __cplusplus
  10674 interface ISpeechAudioFormat;
  10675 #endif /* __cplusplus */
  10676 #endif
  10677 
  10678 #ifndef __ISpeechWaveFormatEx_FWD_DEFINED__
  10679 #define __ISpeechWaveFormatEx_FWD_DEFINED__
  10680 typedef interface ISpeechWaveFormatEx ISpeechWaveFormatEx;
  10681 #ifdef __cplusplus
  10682 interface ISpeechWaveFormatEx;
  10683 #endif /* __cplusplus */
  10684 #endif
  10685 
  10686 #ifndef __ISpeechBaseStream_FWD_DEFINED__
  10687 #define __ISpeechBaseStream_FWD_DEFINED__
  10688 typedef interface ISpeechBaseStream ISpeechBaseStream;
  10689 #ifdef __cplusplus
  10690 interface ISpeechBaseStream;
  10691 #endif /* __cplusplus */
  10692 #endif
  10693 
  10694 #ifndef __ISpeechFileStream_FWD_DEFINED__
  10695 #define __ISpeechFileStream_FWD_DEFINED__
  10696 typedef interface ISpeechFileStream ISpeechFileStream;
  10697 #ifdef __cplusplus
  10698 interface ISpeechFileStream;
  10699 #endif /* __cplusplus */
  10700 #endif
  10701 
  10702 #ifndef __ISpeechMemoryStream_FWD_DEFINED__
  10703 #define __ISpeechMemoryStream_FWD_DEFINED__
  10704 typedef interface ISpeechMemoryStream ISpeechMemoryStream;
  10705 #ifdef __cplusplus
  10706 interface ISpeechMemoryStream;
  10707 #endif /* __cplusplus */
  10708 #endif
  10709 
  10710 #ifndef __ISpeechCustomStream_FWD_DEFINED__
  10711 #define __ISpeechCustomStream_FWD_DEFINED__
  10712 typedef interface ISpeechCustomStream ISpeechCustomStream;
  10713 #ifdef __cplusplus
  10714 interface ISpeechCustomStream;
  10715 #endif /* __cplusplus */
  10716 #endif
  10717 
  10718 #ifndef __ISpeechAudio_FWD_DEFINED__
  10719 #define __ISpeechAudio_FWD_DEFINED__
  10720 typedef interface ISpeechAudio ISpeechAudio;
  10721 #ifdef __cplusplus
  10722 interface ISpeechAudio;
  10723 #endif /* __cplusplus */
  10724 #endif
  10725 
  10726 #ifndef __ISpeechMMSysAudio_FWD_DEFINED__
  10727 #define __ISpeechMMSysAudio_FWD_DEFINED__
  10728 typedef interface ISpeechMMSysAudio ISpeechMMSysAudio;
  10729 #ifdef __cplusplus
  10730 interface ISpeechMMSysAudio;
  10731 #endif /* __cplusplus */
  10732 #endif
  10733 
  10734 #ifndef __ISpeechVoice_FWD_DEFINED__
  10735 #define __ISpeechVoice_FWD_DEFINED__
  10736 typedef interface ISpeechVoice ISpeechVoice;
  10737 #ifdef __cplusplus
  10738 interface ISpeechVoice;
  10739 #endif /* __cplusplus */
  10740 #endif
  10741 
  10742 #ifndef __ISpeechVoiceStatus_FWD_DEFINED__
  10743 #define __ISpeechVoiceStatus_FWD_DEFINED__
  10744 typedef interface ISpeechVoiceStatus ISpeechVoiceStatus;
  10745 #ifdef __cplusplus
  10746 interface ISpeechVoiceStatus;
  10747 #endif /* __cplusplus */
  10748 #endif
  10749 
  10750 #ifndef ___ISpeechVoiceEvents_FWD_DEFINED__
  10751 #define ___ISpeechVoiceEvents_FWD_DEFINED__
  10752 typedef interface _ISpeechVoiceEvents _ISpeechVoiceEvents;
  10753 #ifdef __cplusplus
  10754 interface _ISpeechVoiceEvents;
  10755 #endif /* __cplusplus */
  10756 #endif
  10757 
  10758 #ifndef __ISpeechRecognizer_FWD_DEFINED__
  10759 #define __ISpeechRecognizer_FWD_DEFINED__
  10760 typedef interface ISpeechRecognizer ISpeechRecognizer;
  10761 #ifdef __cplusplus
  10762 interface ISpeechRecognizer;
  10763 #endif /* __cplusplus */
  10764 #endif
  10765 
  10766 #ifndef __ISpeechRecognizerStatus_FWD_DEFINED__
  10767 #define __ISpeechRecognizerStatus_FWD_DEFINED__
  10768 typedef interface ISpeechRecognizerStatus ISpeechRecognizerStatus;
  10769 #ifdef __cplusplus
  10770 interface ISpeechRecognizerStatus;
  10771 #endif /* __cplusplus */
  10772 #endif
  10773 
  10774 #ifndef __ISpeechRecoContext_FWD_DEFINED__
  10775 #define __ISpeechRecoContext_FWD_DEFINED__
  10776 typedef interface ISpeechRecoContext ISpeechRecoContext;
  10777 #ifdef __cplusplus
  10778 interface ISpeechRecoContext;
  10779 #endif /* __cplusplus */
  10780 #endif
  10781 
  10782 #ifndef __ISpeechRecoGrammar_FWD_DEFINED__
  10783 #define __ISpeechRecoGrammar_FWD_DEFINED__
  10784 typedef interface ISpeechRecoGrammar ISpeechRecoGrammar;
  10785 #ifdef __cplusplus
  10786 interface ISpeechRecoGrammar;
  10787 #endif /* __cplusplus */
  10788 #endif
  10789 
  10790 #ifndef ___ISpeechRecoContextEvents_FWD_DEFINED__
  10791 #define ___ISpeechRecoContextEvents_FWD_DEFINED__
  10792 typedef interface _ISpeechRecoContextEvents _ISpeechRecoContextEvents;
  10793 #ifdef __cplusplus
  10794 interface _ISpeechRecoContextEvents;
  10795 #endif /* __cplusplus */
  10796 #endif
  10797 
  10798 #ifndef __ISpeechGrammarRule_FWD_DEFINED__
  10799 #define __ISpeechGrammarRule_FWD_DEFINED__
  10800 typedef interface ISpeechGrammarRule ISpeechGrammarRule;
  10801 #ifdef __cplusplus
  10802 interface ISpeechGrammarRule;
  10803 #endif /* __cplusplus */
  10804 #endif
  10805 
  10806 #ifndef __ISpeechGrammarRules_FWD_DEFINED__
  10807 #define __ISpeechGrammarRules_FWD_DEFINED__
  10808 typedef interface ISpeechGrammarRules ISpeechGrammarRules;
  10809 #ifdef __cplusplus
  10810 interface ISpeechGrammarRules;
  10811 #endif /* __cplusplus */
  10812 #endif
  10813 
  10814 #ifndef __ISpeechGrammarRuleState_FWD_DEFINED__
  10815 #define __ISpeechGrammarRuleState_FWD_DEFINED__
  10816 typedef interface ISpeechGrammarRuleState ISpeechGrammarRuleState;
  10817 #ifdef __cplusplus
  10818 interface ISpeechGrammarRuleState;
  10819 #endif /* __cplusplus */
  10820 #endif
  10821 
  10822 #ifndef __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
  10823 #define __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
  10824 typedef interface ISpeechGrammarRuleStateTransition ISpeechGrammarRuleStateTransition;
  10825 #ifdef __cplusplus
  10826 interface ISpeechGrammarRuleStateTransition;
  10827 #endif /* __cplusplus */
  10828 #endif
  10829 
  10830 #ifndef __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
  10831 #define __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
  10832 typedef interface ISpeechGrammarRuleStateTransitions ISpeechGrammarRuleStateTransitions;
  10833 #ifdef __cplusplus
  10834 interface ISpeechGrammarRuleStateTransitions;
  10835 #endif /* __cplusplus */
  10836 #endif
  10837 
  10838 #ifndef __ISpeechTextSelectionInformation_FWD_DEFINED__
  10839 #define __ISpeechTextSelectionInformation_FWD_DEFINED__
  10840 typedef interface ISpeechTextSelectionInformation ISpeechTextSelectionInformation;
  10841 #ifdef __cplusplus
  10842 interface ISpeechTextSelectionInformation;
  10843 #endif /* __cplusplus */
  10844 #endif
  10845 
  10846 #ifndef __ISpeechRecoResult_FWD_DEFINED__
  10847 #define __ISpeechRecoResult_FWD_DEFINED__
  10848 typedef interface ISpeechRecoResult ISpeechRecoResult;
  10849 #ifdef __cplusplus
  10850 interface ISpeechRecoResult;
  10851 #endif /* __cplusplus */
  10852 #endif
  10853 
  10854 #ifndef __ISpeechRecoResult2_FWD_DEFINED__
  10855 #define __ISpeechRecoResult2_FWD_DEFINED__
  10856 typedef interface ISpeechRecoResult2 ISpeechRecoResult2;
  10857 #ifdef __cplusplus
  10858 interface ISpeechRecoResult2;
  10859 #endif /* __cplusplus */
  10860 #endif
  10861 
  10862 #ifndef __ISpeechRecoResultTimes_FWD_DEFINED__
  10863 #define __ISpeechRecoResultTimes_FWD_DEFINED__
  10864 typedef interface ISpeechRecoResultTimes ISpeechRecoResultTimes;
  10865 #ifdef __cplusplus
  10866 interface ISpeechRecoResultTimes;
  10867 #endif /* __cplusplus */
  10868 #endif
  10869 
  10870 #ifndef __ISpeechPhraseAlternate_FWD_DEFINED__
  10871 #define __ISpeechPhraseAlternate_FWD_DEFINED__
  10872 typedef interface ISpeechPhraseAlternate ISpeechPhraseAlternate;
  10873 #ifdef __cplusplus
  10874 interface ISpeechPhraseAlternate;
  10875 #endif /* __cplusplus */
  10876 #endif
  10877 
  10878 #ifndef __ISpeechPhraseAlternates_FWD_DEFINED__
  10879 #define __ISpeechPhraseAlternates_FWD_DEFINED__
  10880 typedef interface ISpeechPhraseAlternates ISpeechPhraseAlternates;
  10881 #ifdef __cplusplus
  10882 interface ISpeechPhraseAlternates;
  10883 #endif /* __cplusplus */
  10884 #endif
  10885 
  10886 #ifndef __ISpeechPhraseInfo_FWD_DEFINED__
  10887 #define __ISpeechPhraseInfo_FWD_DEFINED__
  10888 typedef interface ISpeechPhraseInfo ISpeechPhraseInfo;
  10889 #ifdef __cplusplus
  10890 interface ISpeechPhraseInfo;
  10891 #endif /* __cplusplus */
  10892 #endif
  10893 
  10894 #ifndef __ISpeechPhraseElement_FWD_DEFINED__
  10895 #define __ISpeechPhraseElement_FWD_DEFINED__
  10896 typedef interface ISpeechPhraseElement ISpeechPhraseElement;
  10897 #ifdef __cplusplus
  10898 interface ISpeechPhraseElement;
  10899 #endif /* __cplusplus */
  10900 #endif
  10901 
  10902 #ifndef __ISpeechPhraseElements_FWD_DEFINED__
  10903 #define __ISpeechPhraseElements_FWD_DEFINED__
  10904 typedef interface ISpeechPhraseElements ISpeechPhraseElements;
  10905 #ifdef __cplusplus
  10906 interface ISpeechPhraseElements;
  10907 #endif /* __cplusplus */
  10908 #endif
  10909 
  10910 #ifndef __ISpeechPhraseReplacement_FWD_DEFINED__
  10911 #define __ISpeechPhraseReplacement_FWD_DEFINED__
  10912 typedef interface ISpeechPhraseReplacement ISpeechPhraseReplacement;
  10913 #ifdef __cplusplus
  10914 interface ISpeechPhraseReplacement;
  10915 #endif /* __cplusplus */
  10916 #endif
  10917 
  10918 #ifndef __ISpeechPhraseReplacements_FWD_DEFINED__
  10919 #define __ISpeechPhraseReplacements_FWD_DEFINED__
  10920 typedef interface ISpeechPhraseReplacements ISpeechPhraseReplacements;
  10921 #ifdef __cplusplus
  10922 interface ISpeechPhraseReplacements;
  10923 #endif /* __cplusplus */
  10924 #endif
  10925 
  10926 #ifndef __ISpeechPhraseProperty_FWD_DEFINED__
  10927 #define __ISpeechPhraseProperty_FWD_DEFINED__
  10928 typedef interface ISpeechPhraseProperty ISpeechPhraseProperty;
  10929 #ifdef __cplusplus
  10930 interface ISpeechPhraseProperty;
  10931 #endif /* __cplusplus */
  10932 #endif
  10933 
  10934 #ifndef __ISpeechPhraseProperties_FWD_DEFINED__
  10935 #define __ISpeechPhraseProperties_FWD_DEFINED__
  10936 typedef interface ISpeechPhraseProperties ISpeechPhraseProperties;
  10937 #ifdef __cplusplus
  10938 interface ISpeechPhraseProperties;
  10939 #endif /* __cplusplus */
  10940 #endif
  10941 
  10942 #ifndef __ISpeechPhraseRule_FWD_DEFINED__
  10943 #define __ISpeechPhraseRule_FWD_DEFINED__
  10944 typedef interface ISpeechPhraseRule ISpeechPhraseRule;
  10945 #ifdef __cplusplus
  10946 interface ISpeechPhraseRule;
  10947 #endif /* __cplusplus */
  10948 #endif
  10949 
  10950 #ifndef __ISpeechPhraseRules_FWD_DEFINED__
  10951 #define __ISpeechPhraseRules_FWD_DEFINED__
  10952 typedef interface ISpeechPhraseRules ISpeechPhraseRules;
  10953 #ifdef __cplusplus
  10954 interface ISpeechPhraseRules;
  10955 #endif /* __cplusplus */
  10956 #endif
  10957 
  10958 #ifndef __ISpeechLexicon_FWD_DEFINED__
  10959 #define __ISpeechLexicon_FWD_DEFINED__
  10960 typedef interface ISpeechLexicon ISpeechLexicon;
  10961 #ifdef __cplusplus
  10962 interface ISpeechLexicon;
  10963 #endif /* __cplusplus */
  10964 #endif
  10965 
  10966 #ifndef __ISpeechLexiconWords_FWD_DEFINED__
  10967 #define __ISpeechLexiconWords_FWD_DEFINED__
  10968 typedef interface ISpeechLexiconWords ISpeechLexiconWords;
  10969 #ifdef __cplusplus
  10970 interface ISpeechLexiconWords;
  10971 #endif /* __cplusplus */
  10972 #endif
  10973 
  10974 #ifndef __ISpeechLexiconWord_FWD_DEFINED__
  10975 #define __ISpeechLexiconWord_FWD_DEFINED__
  10976 typedef interface ISpeechLexiconWord ISpeechLexiconWord;
  10977 #ifdef __cplusplus
  10978 interface ISpeechLexiconWord;
  10979 #endif /* __cplusplus */
  10980 #endif
  10981 
  10982 #ifndef __ISpeechLexiconPronunciations_FWD_DEFINED__
  10983 #define __ISpeechLexiconPronunciations_FWD_DEFINED__
  10984 typedef interface ISpeechLexiconPronunciations ISpeechLexiconPronunciations;
  10985 #ifdef __cplusplus
  10986 interface ISpeechLexiconPronunciations;
  10987 #endif /* __cplusplus */
  10988 #endif
  10989 
  10990 #ifndef __ISpeechLexiconPronunciation_FWD_DEFINED__
  10991 #define __ISpeechLexiconPronunciation_FWD_DEFINED__
  10992 typedef interface ISpeechLexiconPronunciation ISpeechLexiconPronunciation;
  10993 #ifdef __cplusplus
  10994 interface ISpeechLexiconPronunciation;
  10995 #endif /* __cplusplus */
  10996 #endif
  10997 
  10998 typedef LONG SpeechLanguageId;
  10999 #define __SpeechStringConstants_MODULE_DEFINED__
  11000 #ifndef __SpeechStringConstants_MODULE_DEFINED__
  11001 #define __SpeechStringConstants_MODULE_DEFINED__
  11002 #define SpeechRegistryUserRoot (L"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech")
  11003 
  11004 #define SpeechRegistryLocalMachineRoot (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech")
  11005 
  11006 #define SpeechCategoryAudioOut (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\AudioOutput")
  11007 
  11008 #define SpeechCategoryAudioIn (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\AudioInput")
  11009 
  11010 #define SpeechCategoryVoices (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices")
  11011 
  11012 #define SpeechCategoryRecognizers (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Recognizers")
  11013 
  11014 #define SpeechCategoryAppLexicons (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\AppLexicons")
  11015 
  11016 #define SpeechCategoryPhoneConverters (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\PhoneConverters")
  11017 
  11018 #define SpeechCategoryRecoProfiles (L"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech\RecoProfiles")
  11019 
  11020 #define SpeechTokenIdUserLexicon (L"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech\CurrentUserLexicon")
  11021 
  11022 #define SpeechTokenValueCLSID (L"CLSID")
  11023 
  11024 #define SpeechTokenKeyFiles (L"Files")
  11025 
  11026 #define SpeechTokenKeyUI (L"UI")
  11027 
  11028 #define SpeechTokenKeyAttributes (L"Attributes")
  11029 
  11030 #define SpeechVoiceCategoryTTSRate (L"DefaultTTSRate")
  11031 
  11032 #define SpeechPropertyResourceUsage (L"ResourceUsage")
  11033 
  11034 #define SpeechPropertyHighConfidenceThreshold (L"HighConfidenceThreshold")
  11035 
  11036 #define SpeechPropertyNormalConfidenceThreshold (L"NormalConfidenceThreshold")
  11037 
  11038 #define SpeechPropertyLowConfidenceThreshold (L"LowConfidenceThreshold")
  11039 
  11040 #define SpeechPropertyResponseSpeed (L"ResponseSpeed")
  11041 
  11042 #define SpeechPropertyComplexResponseSpeed (L"ComplexResponseSpeed")
  11043 
  11044 #define SpeechPropertyAdaptationOn (L"AdaptationOn")
  11045 
  11046 #define SpeechDictationTopicSpelling (L"Spelling")
  11047 
  11048 #define SpeechGrammarTagWildcard (L"...")
  11049 
  11050 #define SpeechGrammarTagDictation (L"*")
  11051 
  11052 #define SpeechGrammarTagUnlimitedDictation (L"*+")
  11053 
  11054 #define SpeechEngineProperties (L"EngineProperties")
  11055 
  11056 #define SpeechAddRemoveWord (L"AddRemoveWord")
  11057 
  11058 #define SpeechUserTraining (L"UserTraining")
  11059 
  11060 #define SpeechMicTraining (L"MicTraining")
  11061 
  11062 #define SpeechRecoProfileProperties (L"RecoProfileProperties")
  11063 
  11064 #define SpeechAudioProperties (L"AudioProperties")
  11065 
  11066 #define SpeechAudioVolume (L"AudioVolume")
  11067 
  11068 #define SpeechVoiceSkipTypeSentence (L"Sentence")
  11069 
  11070 #define SpeechAudioFormatGUIDWave (L"{C31ADBAE-527F-4ff5-A230-F62BB61FF70C}")
  11071 
  11072 #define SpeechAudioFormatGUIDText (L"{7CEEF9F9-3D13-11d2-9EE7-00C04F797396}")
  11073 
  11074 #endif /* __SpeechStringConstants_MODULE_DEFINED__ */
  11075 #ifndef __SpeechConstants_MODULE_DEFINED__
  11076 #define __SpeechConstants_MODULE_DEFINED__
  11077 #define Speech_Default_Weight (DEFAULT_WEIGHT)
  11078 
  11079 #define Speech_Max_Word_Length (SP_MAX_WORD_LENGTH)
  11080 
  11081 #define Speech_Max_Pron_Length (SP_MAX_PRON_LENGTH)
  11082 
  11083 #define Speech_StreamPos_Asap (SP_STREAMPOS_ASAP)
  11084 
  11085 #define Speech_StreamPos_RealTime (SP_STREAMPOS_REALTIME)
  11086 
  11087 #define SpeechAllElements (SPPR_ALL_ELEMENTS)
  11088 
  11089 #endif /* __SpeechConstants_MODULE_DEFINED__ */
  11090 typedef enum DISPID_SpeechDataKey {
  11091     DISPID_SDKSetBinaryValue = 1,
  11092     DISPID_SDKGetBinaryValue = 2,
  11093     DISPID_SDKSetStringValue = 3,
  11094     DISPID_SDKGetStringValue = 4,
  11095     DISPID_SDKSetLongValue = 5,
  11096     DISPID_SDKGetlongValue = 6,
  11097     DISPID_SDKOpenKey = 7,
  11098     DISPID_SDKCreateKey = 8,
  11099     DISPID_SDKDeleteKey = 9,
  11100     DISPID_SDKDeleteValue = 10,
  11101     DISPID_SDKEnumKeys = 11,
  11102     DISPID_SDKEnumValues = 12
  11103 } DISPID_SpeechDataKey;
  11104 typedef enum DISPID_SpeechObjectToken {
  11105     DISPID_SOTId = 1,
  11106     DISPID_SOTDataKey = 2,
  11107     DISPID_SOTCategory = 3,
  11108     DISPID_SOTGetDescription = 4,
  11109     DISPID_SOTSetId = 5,
  11110     DISPID_SOTGetAttribute = 6,
  11111     DISPID_SOTCreateInstance = 7,
  11112     DISPID_SOTRemove = 8,
  11113     DISPID_SOTGetStorageFileName = 9,
  11114     DISPID_SOTRemoveStorageFileName = 10,
  11115     DISPID_SOTIsUISupported = 11,
  11116     DISPID_SOTDisplayUI = 12,
  11117     DISPID_SOTMatchesAttributes = 13
  11118 } DISPID_SpeechObjectToken;
  11119 typedef enum SpeechDataKeyLocation {
  11120     SDKLDefaultLocation = SPDKL_DefaultLocation,
  11121     SDKLCurrentUser = SPDKL_CurrentUser,
  11122     SDKLLocalMachine = SPDKL_LocalMachine,
  11123     SDKLCurrentConfig = SPDKL_CurrentConfig
  11124 } SpeechDataKeyLocation;
  11125 typedef enum SpeechTokenContext {
  11126     STCInprocServer = CLSCTX_INPROC_SERVER,
  11127     STCInprocHandler = CLSCTX_INPROC_HANDLER,
  11128     STCLocalServer = CLSCTX_LOCAL_SERVER,
  11129     STCRemoteServer = CLSCTX_REMOTE_SERVER,
  11130     STCAll = ((CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER) | CLSCTX_LOCAL_SERVER) | CLSCTX_REMOTE_SERVER
  11131 } SpeechTokenContext;
  11132 typedef enum SpeechTokenShellFolder {
  11133     STSF_AppData = 0x1a,
  11134     STSF_LocalAppData = 0x1c,
  11135     STSF_CommonAppData = 0x23,
  11136     STSF_FlagCreate = 0x8000
  11137 } SpeechTokenShellFolder;
  11138 typedef enum DISPID_SpeechObjectTokens {
  11139     DISPID_SOTsCount = 1,
  11140     DISPID_SOTsItem = DISPID_VALUE,
  11141     DISPID_SOTs_NewEnum = DISPID_NEWENUM
  11142 } DISPID_SpeechObjectTokens;
  11143 typedef enum DISPID_SpeechObjectTokenCategory {
  11144     DISPID_SOTCId = 1,
  11145     DISPID_SOTCDefault = 2,
  11146     DISPID_SOTCSetId = 3,
  11147     DISPID_SOTCGetDataKey = 4,
  11148     DISPID_SOTCEnumerateTokens = 5
  11149 } DISPID_SpeechObjectTokenCategory;
  11150 /*****************************************************************************
  11151  * ISpeechDataKey interface
  11152  */
  11153 #ifndef __ISpeechDataKey_INTERFACE_DEFINED__
  11154 #define __ISpeechDataKey_INTERFACE_DEFINED__
  11155 
  11156 DEFINE_GUID(IID_ISpeechDataKey, 0xce17c09b, 0x4efa, 0x44d5, 0xa4,0xc9, 0x59,0xd9,0x58,0x5a,0xb0,0xcd);
  11157 #if defined(__cplusplus) && !defined(CINTERFACE)
  11158 MIDL_INTERFACE("ce17c09b-4efa-44d5-a4c9-59d9585ab0cd")
  11159 ISpeechDataKey : public IDispatch
  11160 {
  11161     virtual HRESULT STDMETHODCALLTYPE SetBinaryValue(
  11162         const BSTR ValueName,
  11163         VARIANT Value) = 0;
  11164 
  11165     virtual HRESULT STDMETHODCALLTYPE GetBinaryValue(
  11166         const BSTR ValueName,
  11167         VARIANT *Value) = 0;
  11168 
  11169     virtual HRESULT STDMETHODCALLTYPE SetStringValue(
  11170         const BSTR ValueName,
  11171         const BSTR Value) = 0;
  11172 
  11173     virtual HRESULT STDMETHODCALLTYPE GetStringValue(
  11174         const BSTR ValueName,
  11175         BSTR *Value) = 0;
  11176 
  11177     virtual HRESULT STDMETHODCALLTYPE SetLongValue(
  11178         const BSTR ValueName,
  11179         LONG Value) = 0;
  11180 
  11181     virtual HRESULT STDMETHODCALLTYPE GetLongValue(
  11182         const BSTR ValueName,
  11183         LONG *Value) = 0;
  11184 
  11185     virtual HRESULT STDMETHODCALLTYPE OpenKey(
  11186         const BSTR SubKeyName,
  11187         ISpeechDataKey **SubKey) = 0;
  11188 
  11189     virtual HRESULT STDMETHODCALLTYPE CreateKey(
  11190         const BSTR SubKeyName,
  11191         ISpeechDataKey **SubKey) = 0;
  11192 
  11193     virtual HRESULT STDMETHODCALLTYPE DeleteKey(
  11194         const BSTR SubKeyName) = 0;
  11195 
  11196     virtual HRESULT STDMETHODCALLTYPE DeleteValue(
  11197         const BSTR ValueName) = 0;
  11198 
  11199     virtual HRESULT STDMETHODCALLTYPE EnumKeys(
  11200         LONG Index,
  11201         BSTR *SubKeyName) = 0;
  11202 
  11203     virtual HRESULT STDMETHODCALLTYPE EnumValues(
  11204         LONG Index,
  11205         BSTR *ValueName) = 0;
  11206 
  11207 };
  11208 #ifdef __CRT_UUID_DECL
  11209 __CRT_UUID_DECL(ISpeechDataKey, 0xce17c09b, 0x4efa, 0x44d5, 0xa4,0xc9, 0x59,0xd9,0x58,0x5a,0xb0,0xcd)
  11210 #endif
  11211 #else
  11212 typedef struct ISpeechDataKeyVtbl {
  11213     BEGIN_INTERFACE
  11214 
  11215     /*** IUnknown methods ***/
  11216     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11217         ISpeechDataKey *This,
  11218         REFIID riid,
  11219         void **ppvObject);
  11220 
  11221     ULONG (STDMETHODCALLTYPE *AddRef)(
  11222         ISpeechDataKey *This);
  11223 
  11224     ULONG (STDMETHODCALLTYPE *Release)(
  11225         ISpeechDataKey *This);
  11226 
  11227     /*** IDispatch methods ***/
  11228     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  11229         ISpeechDataKey *This,
  11230         UINT *pctinfo);
  11231 
  11232     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  11233         ISpeechDataKey *This,
  11234         UINT iTInfo,
  11235         LCID lcid,
  11236         ITypeInfo **ppTInfo);
  11237 
  11238     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  11239         ISpeechDataKey *This,
  11240         REFIID riid,
  11241         LPOLESTR *rgszNames,
  11242         UINT cNames,
  11243         LCID lcid,
  11244         DISPID *rgDispId);
  11245 
  11246     HRESULT (STDMETHODCALLTYPE *Invoke)(
  11247         ISpeechDataKey *This,
  11248         DISPID dispIdMember,
  11249         REFIID riid,
  11250         LCID lcid,
  11251         WORD wFlags,
  11252         DISPPARAMS *pDispParams,
  11253         VARIANT *pVarResult,
  11254         EXCEPINFO *pExcepInfo,
  11255         UINT *puArgErr);
  11256 
  11257     /*** ISpeechDataKey methods ***/
  11258     HRESULT (STDMETHODCALLTYPE *SetBinaryValue)(
  11259         ISpeechDataKey *This,
  11260         const BSTR ValueName,
  11261         VARIANT Value);
  11262 
  11263     HRESULT (STDMETHODCALLTYPE *GetBinaryValue)(
  11264         ISpeechDataKey *This,
  11265         const BSTR ValueName,
  11266         VARIANT *Value);
  11267 
  11268     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
  11269         ISpeechDataKey *This,
  11270         const BSTR ValueName,
  11271         const BSTR Value);
  11272 
  11273     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
  11274         ISpeechDataKey *This,
  11275         const BSTR ValueName,
  11276         BSTR *Value);
  11277 
  11278     HRESULT (STDMETHODCALLTYPE *SetLongValue)(
  11279         ISpeechDataKey *This,
  11280         const BSTR ValueName,
  11281         LONG Value);
  11282 
  11283     HRESULT (STDMETHODCALLTYPE *GetLongValue)(
  11284         ISpeechDataKey *This,
  11285         const BSTR ValueName,
  11286         LONG *Value);
  11287 
  11288     HRESULT (STDMETHODCALLTYPE *OpenKey)(
  11289         ISpeechDataKey *This,
  11290         const BSTR SubKeyName,
  11291         ISpeechDataKey **SubKey);
  11292 
  11293     HRESULT (STDMETHODCALLTYPE *CreateKey)(
  11294         ISpeechDataKey *This,
  11295         const BSTR SubKeyName,
  11296         ISpeechDataKey **SubKey);
  11297 
  11298     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
  11299         ISpeechDataKey *This,
  11300         const BSTR SubKeyName);
  11301 
  11302     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
  11303         ISpeechDataKey *This,
  11304         const BSTR ValueName);
  11305 
  11306     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
  11307         ISpeechDataKey *This,
  11308         LONG Index,
  11309         BSTR *SubKeyName);
  11310 
  11311     HRESULT (STDMETHODCALLTYPE *EnumValues)(
  11312         ISpeechDataKey *This,
  11313         LONG Index,
  11314         BSTR *ValueName);
  11315 
  11316     END_INTERFACE
  11317 } ISpeechDataKeyVtbl;
  11318 
  11319 interface ISpeechDataKey {
  11320     CONST_VTBL ISpeechDataKeyVtbl* lpVtbl;
  11321 };
  11322 
  11323 #ifdef COBJMACROS
  11324 #ifndef WIDL_C_INLINE_WRAPPERS
  11325 /*** IUnknown methods ***/
  11326 #define ISpeechDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11327 #define ISpeechDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
  11328 #define ISpeechDataKey_Release(This) (This)->lpVtbl->Release(This)
  11329 /*** IDispatch methods ***/
  11330 #define ISpeechDataKey_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  11331 #define ISpeechDataKey_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  11332 #define ISpeechDataKey_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  11333 #define ISpeechDataKey_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  11334 /*** ISpeechDataKey methods ***/
  11335 #define ISpeechDataKey_SetBinaryValue(This,ValueName,Value) (This)->lpVtbl->SetBinaryValue(This,ValueName,Value)
  11336 #define ISpeechDataKey_GetBinaryValue(This,ValueName,Value) (This)->lpVtbl->GetBinaryValue(This,ValueName,Value)
  11337 #define ISpeechDataKey_SetStringValue(This,ValueName,Value) (This)->lpVtbl->SetStringValue(This,ValueName,Value)
  11338 #define ISpeechDataKey_GetStringValue(This,ValueName,Value) (This)->lpVtbl->GetStringValue(This,ValueName,Value)
  11339 #define ISpeechDataKey_SetLongValue(This,ValueName,Value) (This)->lpVtbl->SetLongValue(This,ValueName,Value)
  11340 #define ISpeechDataKey_GetLongValue(This,ValueName,Value) (This)->lpVtbl->GetLongValue(This,ValueName,Value)
  11341 #define ISpeechDataKey_OpenKey(This,SubKeyName,SubKey) (This)->lpVtbl->OpenKey(This,SubKeyName,SubKey)
  11342 #define ISpeechDataKey_CreateKey(This,SubKeyName,SubKey) (This)->lpVtbl->CreateKey(This,SubKeyName,SubKey)
  11343 #define ISpeechDataKey_DeleteKey(This,SubKeyName) (This)->lpVtbl->DeleteKey(This,SubKeyName)
  11344 #define ISpeechDataKey_DeleteValue(This,ValueName) (This)->lpVtbl->DeleteValue(This,ValueName)
  11345 #define ISpeechDataKey_EnumKeys(This,Index,SubKeyName) (This)->lpVtbl->EnumKeys(This,Index,SubKeyName)
  11346 #define ISpeechDataKey_EnumValues(This,Index,ValueName) (This)->lpVtbl->EnumValues(This,Index,ValueName)
  11347 #else
  11348 /*** IUnknown methods ***/
  11349 static inline HRESULT ISpeechDataKey_QueryInterface(ISpeechDataKey* This,REFIID riid,void **ppvObject) {
  11350     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11351 }
  11352 static inline ULONG ISpeechDataKey_AddRef(ISpeechDataKey* This) {
  11353     return This->lpVtbl->AddRef(This);
  11354 }
  11355 static inline ULONG ISpeechDataKey_Release(ISpeechDataKey* This) {
  11356     return This->lpVtbl->Release(This);
  11357 }
  11358 /*** IDispatch methods ***/
  11359 static inline HRESULT ISpeechDataKey_GetTypeInfoCount(ISpeechDataKey* This,UINT *pctinfo) {
  11360     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  11361 }
  11362 static inline HRESULT ISpeechDataKey_GetTypeInfo(ISpeechDataKey* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  11363     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  11364 }
  11365 static inline HRESULT ISpeechDataKey_GetIDsOfNames(ISpeechDataKey* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  11366     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  11367 }
  11368 static inline HRESULT ISpeechDataKey_Invoke(ISpeechDataKey* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  11369     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  11370 }
  11371 /*** ISpeechDataKey methods ***/
  11372 static inline HRESULT ISpeechDataKey_SetBinaryValue(ISpeechDataKey* This,const BSTR ValueName,VARIANT Value) {
  11373     return This->lpVtbl->SetBinaryValue(This,ValueName,Value);
  11374 }
  11375 static inline HRESULT ISpeechDataKey_GetBinaryValue(ISpeechDataKey* This,const BSTR ValueName,VARIANT *Value) {
  11376     return This->lpVtbl->GetBinaryValue(This,ValueName,Value);
  11377 }
  11378 static inline HRESULT ISpeechDataKey_SetStringValue(ISpeechDataKey* This,const BSTR ValueName,const BSTR Value) {
  11379     return This->lpVtbl->SetStringValue(This,ValueName,Value);
  11380 }
  11381 static inline HRESULT ISpeechDataKey_GetStringValue(ISpeechDataKey* This,const BSTR ValueName,BSTR *Value) {
  11382     return This->lpVtbl->GetStringValue(This,ValueName,Value);
  11383 }
  11384 static inline HRESULT ISpeechDataKey_SetLongValue(ISpeechDataKey* This,const BSTR ValueName,LONG Value) {
  11385     return This->lpVtbl->SetLongValue(This,ValueName,Value);
  11386 }
  11387 static inline HRESULT ISpeechDataKey_GetLongValue(ISpeechDataKey* This,const BSTR ValueName,LONG *Value) {
  11388     return This->lpVtbl->GetLongValue(This,ValueName,Value);
  11389 }
  11390 static inline HRESULT ISpeechDataKey_OpenKey(ISpeechDataKey* This,const BSTR SubKeyName,ISpeechDataKey **SubKey) {
  11391     return This->lpVtbl->OpenKey(This,SubKeyName,SubKey);
  11392 }
  11393 static inline HRESULT ISpeechDataKey_CreateKey(ISpeechDataKey* This,const BSTR SubKeyName,ISpeechDataKey **SubKey) {
  11394     return This->lpVtbl->CreateKey(This,SubKeyName,SubKey);
  11395 }
  11396 static inline HRESULT ISpeechDataKey_DeleteKey(ISpeechDataKey* This,const BSTR SubKeyName) {
  11397     return This->lpVtbl->DeleteKey(This,SubKeyName);
  11398 }
  11399 static inline HRESULT ISpeechDataKey_DeleteValue(ISpeechDataKey* This,const BSTR ValueName) {
  11400     return This->lpVtbl->DeleteValue(This,ValueName);
  11401 }
  11402 static inline HRESULT ISpeechDataKey_EnumKeys(ISpeechDataKey* This,LONG Index,BSTR *SubKeyName) {
  11403     return This->lpVtbl->EnumKeys(This,Index,SubKeyName);
  11404 }
  11405 static inline HRESULT ISpeechDataKey_EnumValues(ISpeechDataKey* This,LONG Index,BSTR *ValueName) {
  11406     return This->lpVtbl->EnumValues(This,Index,ValueName);
  11407 }
  11408 #endif
  11409 #endif
  11410 
  11411 #endif
  11412 
  11413 
  11414 #endif  /* __ISpeechDataKey_INTERFACE_DEFINED__ */
  11415 
  11416 /*****************************************************************************
  11417  * ISpeechObjectToken interface
  11418  */
  11419 #ifndef __ISpeechObjectToken_INTERFACE_DEFINED__
  11420 #define __ISpeechObjectToken_INTERFACE_DEFINED__
  11421 
  11422 DEFINE_GUID(IID_ISpeechObjectToken, 0xc74a3adc, 0xb727, 0x4500, 0xa8,0x4a, 0xb5,0x26,0x72,0x1c,0x8b,0x8c);
  11423 #if defined(__cplusplus) && !defined(CINTERFACE)
  11424 MIDL_INTERFACE("c74a3adc-b727-4500-a84a-b526721c8b8c")
  11425 ISpeechObjectToken : public IDispatch
  11426 {
  11427     virtual HRESULT STDMETHODCALLTYPE get_Id(
  11428         BSTR *ObjectId) = 0;
  11429 
  11430     virtual HRESULT STDMETHODCALLTYPE get_DataKey(
  11431         ISpeechDataKey **DataKey) = 0;
  11432 
  11433     virtual HRESULT STDMETHODCALLTYPE get_Category(
  11434         ISpeechObjectTokenCategory **Category) = 0;
  11435 
  11436     virtual HRESULT STDMETHODCALLTYPE GetDescription(
  11437         LONG Locale,
  11438         BSTR *Description) = 0;
  11439 
  11440     virtual HRESULT STDMETHODCALLTYPE SetId(
  11441         BSTR Id,
  11442         BSTR CategoryID = L"",
  11443         VARIANT_BOOL CreateIfNotExist = 0) = 0;
  11444 
  11445     virtual HRESULT STDMETHODCALLTYPE GetAttribute(
  11446         BSTR AttributeName,
  11447         BSTR *AttributeValue) = 0;
  11448 
  11449     virtual HRESULT STDMETHODCALLTYPE CreateInstance(
  11450         IUnknown *pUnkOuter,
  11451         SpeechTokenContext ClsContext,
  11452         IUnknown **Object) = 0;
  11453 
  11454     virtual HRESULT STDMETHODCALLTYPE Remove(
  11455         BSTR ObjectStorageCLSID) = 0;
  11456 
  11457     virtual HRESULT STDMETHODCALLTYPE GetStorageFileName(
  11458         BSTR ObjectStorageCLSID,
  11459         BSTR KeyName,
  11460         BSTR FileName,
  11461         SpeechTokenShellFolder Folder,
  11462         BSTR *FilePath) = 0;
  11463 
  11464     virtual HRESULT STDMETHODCALLTYPE RemoveStorageFileName(
  11465         BSTR ObjectStorageCLSID,
  11466         BSTR KeyName,
  11467         VARIANT_BOOL DeleteFile) = 0;
  11468 
  11469     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
  11470         const BSTR TypeOfUI,
  11471         const VARIANT *ExtraData,
  11472         IUnknown *Object,
  11473         VARIANT_BOOL *Supported) = 0;
  11474 
  11475     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
  11476         LONG hWnd,
  11477         BSTR Title,
  11478         const BSTR TypeOfUI,
  11479         const VARIANT *ExtraData = 0,
  11480         IUnknown *Object = 0) = 0;
  11481 
  11482     virtual HRESULT STDMETHODCALLTYPE MatchesAttributes(
  11483         BSTR Attributes,
  11484         VARIANT_BOOL *Matches) = 0;
  11485 
  11486 };
  11487 #ifdef __CRT_UUID_DECL
  11488 __CRT_UUID_DECL(ISpeechObjectToken, 0xc74a3adc, 0xb727, 0x4500, 0xa8,0x4a, 0xb5,0x26,0x72,0x1c,0x8b,0x8c)
  11489 #endif
  11490 #else
  11491 typedef struct ISpeechObjectTokenVtbl {
  11492     BEGIN_INTERFACE
  11493 
  11494     /*** IUnknown methods ***/
  11495     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11496         ISpeechObjectToken *This,
  11497         REFIID riid,
  11498         void **ppvObject);
  11499 
  11500     ULONG (STDMETHODCALLTYPE *AddRef)(
  11501         ISpeechObjectToken *This);
  11502 
  11503     ULONG (STDMETHODCALLTYPE *Release)(
  11504         ISpeechObjectToken *This);
  11505 
  11506     /*** IDispatch methods ***/
  11507     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  11508         ISpeechObjectToken *This,
  11509         UINT *pctinfo);
  11510 
  11511     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  11512         ISpeechObjectToken *This,
  11513         UINT iTInfo,
  11514         LCID lcid,
  11515         ITypeInfo **ppTInfo);
  11516 
  11517     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  11518         ISpeechObjectToken *This,
  11519         REFIID riid,
  11520         LPOLESTR *rgszNames,
  11521         UINT cNames,
  11522         LCID lcid,
  11523         DISPID *rgDispId);
  11524 
  11525     HRESULT (STDMETHODCALLTYPE *Invoke)(
  11526         ISpeechObjectToken *This,
  11527         DISPID dispIdMember,
  11528         REFIID riid,
  11529         LCID lcid,
  11530         WORD wFlags,
  11531         DISPPARAMS *pDispParams,
  11532         VARIANT *pVarResult,
  11533         EXCEPINFO *pExcepInfo,
  11534         UINT *puArgErr);
  11535 
  11536     /*** ISpeechObjectToken methods ***/
  11537     HRESULT (STDMETHODCALLTYPE *get_Id)(
  11538         ISpeechObjectToken *This,
  11539         BSTR *ObjectId);
  11540 
  11541     HRESULT (STDMETHODCALLTYPE *get_DataKey)(
  11542         ISpeechObjectToken *This,
  11543         ISpeechDataKey **DataKey);
  11544 
  11545     HRESULT (STDMETHODCALLTYPE *get_Category)(
  11546         ISpeechObjectToken *This,
  11547         ISpeechObjectTokenCategory **Category);
  11548 
  11549     HRESULT (STDMETHODCALLTYPE *GetDescription)(
  11550         ISpeechObjectToken *This,
  11551         LONG Locale,
  11552         BSTR *Description);
  11553 
  11554     HRESULT (STDMETHODCALLTYPE *SetId)(
  11555         ISpeechObjectToken *This,
  11556         BSTR Id,
  11557         BSTR CategoryID,
  11558         VARIANT_BOOL CreateIfNotExist);
  11559 
  11560     HRESULT (STDMETHODCALLTYPE *GetAttribute)(
  11561         ISpeechObjectToken *This,
  11562         BSTR AttributeName,
  11563         BSTR *AttributeValue);
  11564 
  11565     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
  11566         ISpeechObjectToken *This,
  11567         IUnknown *pUnkOuter,
  11568         SpeechTokenContext ClsContext,
  11569         IUnknown **Object);
  11570 
  11571     HRESULT (STDMETHODCALLTYPE *Remove)(
  11572         ISpeechObjectToken *This,
  11573         BSTR ObjectStorageCLSID);
  11574 
  11575     HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
  11576         ISpeechObjectToken *This,
  11577         BSTR ObjectStorageCLSID,
  11578         BSTR KeyName,
  11579         BSTR FileName,
  11580         SpeechTokenShellFolder Folder,
  11581         BSTR *FilePath);
  11582 
  11583     HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
  11584         ISpeechObjectToken *This,
  11585         BSTR ObjectStorageCLSID,
  11586         BSTR KeyName,
  11587         VARIANT_BOOL DeleteFile);
  11588 
  11589     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
  11590         ISpeechObjectToken *This,
  11591         const BSTR TypeOfUI,
  11592         const VARIANT *ExtraData,
  11593         IUnknown *Object,
  11594         VARIANT_BOOL *Supported);
  11595 
  11596     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
  11597         ISpeechObjectToken *This,
  11598         LONG hWnd,
  11599         BSTR Title,
  11600         const BSTR TypeOfUI,
  11601         const VARIANT *ExtraData,
  11602         IUnknown *Object);
  11603 
  11604     HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
  11605         ISpeechObjectToken *This,
  11606         BSTR Attributes,
  11607         VARIANT_BOOL *Matches);
  11608 
  11609     END_INTERFACE
  11610 } ISpeechObjectTokenVtbl;
  11611 
  11612 interface ISpeechObjectToken {
  11613     CONST_VTBL ISpeechObjectTokenVtbl* lpVtbl;
  11614 };
  11615 
  11616 #ifdef COBJMACROS
  11617 #ifndef WIDL_C_INLINE_WRAPPERS
  11618 /*** IUnknown methods ***/
  11619 #define ISpeechObjectToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11620 #define ISpeechObjectToken_AddRef(This) (This)->lpVtbl->AddRef(This)
  11621 #define ISpeechObjectToken_Release(This) (This)->lpVtbl->Release(This)
  11622 /*** IDispatch methods ***/
  11623 #define ISpeechObjectToken_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  11624 #define ISpeechObjectToken_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  11625 #define ISpeechObjectToken_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  11626 #define ISpeechObjectToken_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  11627 /*** ISpeechObjectToken methods ***/
  11628 #define ISpeechObjectToken_get_Id(This,ObjectId) (This)->lpVtbl->get_Id(This,ObjectId)
  11629 #define ISpeechObjectToken_get_DataKey(This,DataKey) (This)->lpVtbl->get_DataKey(This,DataKey)
  11630 #define ISpeechObjectToken_get_Category(This,Category) (This)->lpVtbl->get_Category(This,Category)
  11631 #define ISpeechObjectToken_GetDescription(This,Locale,Description) (This)->lpVtbl->GetDescription(This,Locale,Description)
  11632 #define ISpeechObjectToken_SetId(This,Id,CategoryID,CreateIfNotExist) (This)->lpVtbl->SetId(This,Id,CategoryID,CreateIfNotExist)
  11633 #define ISpeechObjectToken_GetAttribute(This,AttributeName,AttributeValue) (This)->lpVtbl->GetAttribute(This,AttributeName,AttributeValue)
  11634 #define ISpeechObjectToken_CreateInstance(This,pUnkOuter,ClsContext,Object) (This)->lpVtbl->CreateInstance(This,pUnkOuter,ClsContext,Object)
  11635 #define ISpeechObjectToken_Remove(This,ObjectStorageCLSID) (This)->lpVtbl->Remove(This,ObjectStorageCLSID)
  11636 #define ISpeechObjectToken_GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath) (This)->lpVtbl->GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath)
  11637 #define ISpeechObjectToken_RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile)
  11638 #define ISpeechObjectToken_IsUISupported(This,TypeOfUI,ExtraData,Object,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Object,Supported)
  11639 #define ISpeechObjectToken_DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object) (This)->lpVtbl->DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object)
  11640 #define ISpeechObjectToken_MatchesAttributes(This,Attributes,Matches) (This)->lpVtbl->MatchesAttributes(This,Attributes,Matches)
  11641 #else
  11642 /*** IUnknown methods ***/
  11643 static inline HRESULT ISpeechObjectToken_QueryInterface(ISpeechObjectToken* This,REFIID riid,void **ppvObject) {
  11644     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11645 }
  11646 static inline ULONG ISpeechObjectToken_AddRef(ISpeechObjectToken* This) {
  11647     return This->lpVtbl->AddRef(This);
  11648 }
  11649 static inline ULONG ISpeechObjectToken_Release(ISpeechObjectToken* This) {
  11650     return This->lpVtbl->Release(This);
  11651 }
  11652 /*** IDispatch methods ***/
  11653 static inline HRESULT ISpeechObjectToken_GetTypeInfoCount(ISpeechObjectToken* This,UINT *pctinfo) {
  11654     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  11655 }
  11656 static inline HRESULT ISpeechObjectToken_GetTypeInfo(ISpeechObjectToken* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  11657     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  11658 }
  11659 static inline HRESULT ISpeechObjectToken_GetIDsOfNames(ISpeechObjectToken* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  11660     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  11661 }
  11662 static inline HRESULT ISpeechObjectToken_Invoke(ISpeechObjectToken* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  11663     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  11664 }
  11665 /*** ISpeechObjectToken methods ***/
  11666 static inline HRESULT ISpeechObjectToken_get_Id(ISpeechObjectToken* This,BSTR *ObjectId) {
  11667     return This->lpVtbl->get_Id(This,ObjectId);
  11668 }
  11669 static inline HRESULT ISpeechObjectToken_get_DataKey(ISpeechObjectToken* This,ISpeechDataKey **DataKey) {
  11670     return This->lpVtbl->get_DataKey(This,DataKey);
  11671 }
  11672 static inline HRESULT ISpeechObjectToken_get_Category(ISpeechObjectToken* This,ISpeechObjectTokenCategory **Category) {
  11673     return This->lpVtbl->get_Category(This,Category);
  11674 }
  11675 static inline HRESULT ISpeechObjectToken_GetDescription(ISpeechObjectToken* This,LONG Locale,BSTR *Description) {
  11676     return This->lpVtbl->GetDescription(This,Locale,Description);
  11677 }
  11678 static inline HRESULT ISpeechObjectToken_SetId(ISpeechObjectToken* This,BSTR Id,BSTR CategoryID,VARIANT_BOOL CreateIfNotExist) {
  11679     return This->lpVtbl->SetId(This,Id,CategoryID,CreateIfNotExist);
  11680 }
  11681 static inline HRESULT ISpeechObjectToken_GetAttribute(ISpeechObjectToken* This,BSTR AttributeName,BSTR *AttributeValue) {
  11682     return This->lpVtbl->GetAttribute(This,AttributeName,AttributeValue);
  11683 }
  11684 static inline HRESULT ISpeechObjectToken_CreateInstance(ISpeechObjectToken* This,IUnknown *pUnkOuter,SpeechTokenContext ClsContext,IUnknown **Object) {
  11685     return This->lpVtbl->CreateInstance(This,pUnkOuter,ClsContext,Object);
  11686 }
  11687 static inline HRESULT ISpeechObjectToken_Remove(ISpeechObjectToken* This,BSTR ObjectStorageCLSID) {
  11688     return This->lpVtbl->Remove(This,ObjectStorageCLSID);
  11689 }
  11690 static inline HRESULT ISpeechObjectToken_GetStorageFileName(ISpeechObjectToken* This,BSTR ObjectStorageCLSID,BSTR KeyName,BSTR FileName,SpeechTokenShellFolder Folder,BSTR *FilePath) {
  11691     return This->lpVtbl->GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath);
  11692 }
  11693 static inline HRESULT ISpeechObjectToken_RemoveStorageFileName(ISpeechObjectToken* This,BSTR ObjectStorageCLSID,BSTR KeyName,VARIANT_BOOL DeleteFile) {
  11694     return This->lpVtbl->RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile);
  11695 }
  11696 static inline HRESULT ISpeechObjectToken_IsUISupported(ISpeechObjectToken* This,const BSTR TypeOfUI,const VARIANT *ExtraData,IUnknown *Object,VARIANT_BOOL *Supported) {
  11697     return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Object,Supported);
  11698 }
  11699 static inline HRESULT ISpeechObjectToken_DisplayUI(ISpeechObjectToken* This,LONG hWnd,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData,IUnknown *Object) {
  11700     return This->lpVtbl->DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object);
  11701 }
  11702 static inline HRESULT ISpeechObjectToken_MatchesAttributes(ISpeechObjectToken* This,BSTR Attributes,VARIANT_BOOL *Matches) {
  11703     return This->lpVtbl->MatchesAttributes(This,Attributes,Matches);
  11704 }
  11705 #endif
  11706 #endif
  11707 
  11708 #endif
  11709 
  11710 
  11711 #endif  /* __ISpeechObjectToken_INTERFACE_DEFINED__ */
  11712 
  11713 /*****************************************************************************
  11714  * ISpeechObjectTokens interface
  11715  */
  11716 #ifndef __ISpeechObjectTokens_INTERFACE_DEFINED__
  11717 #define __ISpeechObjectTokens_INTERFACE_DEFINED__
  11718 
  11719 DEFINE_GUID(IID_ISpeechObjectTokens, 0x9285b776, 0x2e7b, 0x4bc0, 0xb5,0x3e, 0x58,0x0e,0xb6,0xfa,0x96,0x7f);
  11720 #if defined(__cplusplus) && !defined(CINTERFACE)
  11721 MIDL_INTERFACE("9285b776-2e7b-4bc0-b53e-580eb6fa967f")
  11722 ISpeechObjectTokens : public IDispatch
  11723 {
  11724     virtual HRESULT STDMETHODCALLTYPE get_Count(
  11725         LONG *Count) = 0;
  11726 
  11727     virtual HRESULT STDMETHODCALLTYPE Item(
  11728         LONG Index,
  11729         ISpeechObjectToken **Token) = 0;
  11730 
  11731     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
  11732         IUnknown **ppEnumVARIANT) = 0;
  11733 
  11734 };
  11735 #ifdef __CRT_UUID_DECL
  11736 __CRT_UUID_DECL(ISpeechObjectTokens, 0x9285b776, 0x2e7b, 0x4bc0, 0xb5,0x3e, 0x58,0x0e,0xb6,0xfa,0x96,0x7f)
  11737 #endif
  11738 #else
  11739 typedef struct ISpeechObjectTokensVtbl {
  11740     BEGIN_INTERFACE
  11741 
  11742     /*** IUnknown methods ***/
  11743     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11744         ISpeechObjectTokens *This,
  11745         REFIID riid,
  11746         void **ppvObject);
  11747 
  11748     ULONG (STDMETHODCALLTYPE *AddRef)(
  11749         ISpeechObjectTokens *This);
  11750 
  11751     ULONG (STDMETHODCALLTYPE *Release)(
  11752         ISpeechObjectTokens *This);
  11753 
  11754     /*** IDispatch methods ***/
  11755     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  11756         ISpeechObjectTokens *This,
  11757         UINT *pctinfo);
  11758 
  11759     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  11760         ISpeechObjectTokens *This,
  11761         UINT iTInfo,
  11762         LCID lcid,
  11763         ITypeInfo **ppTInfo);
  11764 
  11765     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  11766         ISpeechObjectTokens *This,
  11767         REFIID riid,
  11768         LPOLESTR *rgszNames,
  11769         UINT cNames,
  11770         LCID lcid,
  11771         DISPID *rgDispId);
  11772 
  11773     HRESULT (STDMETHODCALLTYPE *Invoke)(
  11774         ISpeechObjectTokens *This,
  11775         DISPID dispIdMember,
  11776         REFIID riid,
  11777         LCID lcid,
  11778         WORD wFlags,
  11779         DISPPARAMS *pDispParams,
  11780         VARIANT *pVarResult,
  11781         EXCEPINFO *pExcepInfo,
  11782         UINT *puArgErr);
  11783 
  11784     /*** ISpeechObjectTokens methods ***/
  11785     HRESULT (STDMETHODCALLTYPE *get_Count)(
  11786         ISpeechObjectTokens *This,
  11787         LONG *Count);
  11788 
  11789     HRESULT (STDMETHODCALLTYPE *Item)(
  11790         ISpeechObjectTokens *This,
  11791         LONG Index,
  11792         ISpeechObjectToken **Token);
  11793 
  11794     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
  11795         ISpeechObjectTokens *This,
  11796         IUnknown **ppEnumVARIANT);
  11797 
  11798     END_INTERFACE
  11799 } ISpeechObjectTokensVtbl;
  11800 
  11801 interface ISpeechObjectTokens {
  11802     CONST_VTBL ISpeechObjectTokensVtbl* lpVtbl;
  11803 };
  11804 
  11805 #ifdef COBJMACROS
  11806 #ifndef WIDL_C_INLINE_WRAPPERS
  11807 /*** IUnknown methods ***/
  11808 #define ISpeechObjectTokens_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11809 #define ISpeechObjectTokens_AddRef(This) (This)->lpVtbl->AddRef(This)
  11810 #define ISpeechObjectTokens_Release(This) (This)->lpVtbl->Release(This)
  11811 /*** IDispatch methods ***/
  11812 #define ISpeechObjectTokens_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  11813 #define ISpeechObjectTokens_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  11814 #define ISpeechObjectTokens_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  11815 #define ISpeechObjectTokens_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  11816 /*** ISpeechObjectTokens methods ***/
  11817 #define ISpeechObjectTokens_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
  11818 #define ISpeechObjectTokens_Item(This,Index,Token) (This)->lpVtbl->Item(This,Index,Token)
  11819 #define ISpeechObjectTokens_get__NewEnum(This,ppEnumVARIANT) (This)->lpVtbl->get__NewEnum(This,ppEnumVARIANT)
  11820 #else
  11821 /*** IUnknown methods ***/
  11822 static inline HRESULT ISpeechObjectTokens_QueryInterface(ISpeechObjectTokens* This,REFIID riid,void **ppvObject) {
  11823     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11824 }
  11825 static inline ULONG ISpeechObjectTokens_AddRef(ISpeechObjectTokens* This) {
  11826     return This->lpVtbl->AddRef(This);
  11827 }
  11828 static inline ULONG ISpeechObjectTokens_Release(ISpeechObjectTokens* This) {
  11829     return This->lpVtbl->Release(This);
  11830 }
  11831 /*** IDispatch methods ***/
  11832 static inline HRESULT ISpeechObjectTokens_GetTypeInfoCount(ISpeechObjectTokens* This,UINT *pctinfo) {
  11833     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  11834 }
  11835 static inline HRESULT ISpeechObjectTokens_GetTypeInfo(ISpeechObjectTokens* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  11836     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  11837 }
  11838 static inline HRESULT ISpeechObjectTokens_GetIDsOfNames(ISpeechObjectTokens* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  11839     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  11840 }
  11841 static inline HRESULT ISpeechObjectTokens_Invoke(ISpeechObjectTokens* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  11842     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  11843 }
  11844 /*** ISpeechObjectTokens methods ***/
  11845 static inline HRESULT ISpeechObjectTokens_get_Count(ISpeechObjectTokens* This,LONG *Count) {
  11846     return This->lpVtbl->get_Count(This,Count);
  11847 }
  11848 static inline HRESULT ISpeechObjectTokens_Item(ISpeechObjectTokens* This,LONG Index,ISpeechObjectToken **Token) {
  11849     return This->lpVtbl->Item(This,Index,Token);
  11850 }
  11851 static inline HRESULT ISpeechObjectTokens_get__NewEnum(ISpeechObjectTokens* This,IUnknown **ppEnumVARIANT) {
  11852     return This->lpVtbl->get__NewEnum(This,ppEnumVARIANT);
  11853 }
  11854 #endif
  11855 #endif
  11856 
  11857 #endif
  11858 
  11859 
  11860 #endif  /* __ISpeechObjectTokens_INTERFACE_DEFINED__ */
  11861 
  11862 /*****************************************************************************
  11863  * ISpeechObjectTokenCategory interface
  11864  */
  11865 #ifndef __ISpeechObjectTokenCategory_INTERFACE_DEFINED__
  11866 #define __ISpeechObjectTokenCategory_INTERFACE_DEFINED__
  11867 
  11868 DEFINE_GUID(IID_ISpeechObjectTokenCategory, 0xca7eac50, 0x2d01, 0x4145, 0x86,0xd4, 0x5a,0xe7,0xd7,0x0f,0x44,0x69);
  11869 #if defined(__cplusplus) && !defined(CINTERFACE)
  11870 MIDL_INTERFACE("ca7eac50-2d01-4145-86d4-5ae7d70f4469")
  11871 ISpeechObjectTokenCategory : public IDispatch
  11872 {
  11873     virtual HRESULT STDMETHODCALLTYPE get_Id(
  11874         BSTR *Id) = 0;
  11875 
  11876     virtual HRESULT STDMETHODCALLTYPE put_Default(
  11877         const BSTR TokenId) = 0;
  11878 
  11879     virtual HRESULT STDMETHODCALLTYPE get_Default(
  11880         BSTR *TokenId) = 0;
  11881 
  11882     virtual HRESULT STDMETHODCALLTYPE SetId(
  11883         const BSTR Id,
  11884         VARIANT_BOOL CreateIfNotExist = 0) = 0;
  11885 
  11886     virtual HRESULT STDMETHODCALLTYPE GetDataKey(
  11887         SpeechDataKeyLocation Location,
  11888         ISpeechDataKey **DataKey) = 0;
  11889 
  11890     virtual HRESULT STDMETHODCALLTYPE EnumerateTokens(
  11891         BSTR RequiredAttributes,
  11892         BSTR OptionalAttributes,
  11893         ISpeechObjectTokens **Tokens) = 0;
  11894 
  11895 };
  11896 #ifdef __CRT_UUID_DECL
  11897 __CRT_UUID_DECL(ISpeechObjectTokenCategory, 0xca7eac50, 0x2d01, 0x4145, 0x86,0xd4, 0x5a,0xe7,0xd7,0x0f,0x44,0x69)
  11898 #endif
  11899 #else
  11900 typedef struct ISpeechObjectTokenCategoryVtbl {
  11901     BEGIN_INTERFACE
  11902 
  11903     /*** IUnknown methods ***/
  11904     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11905         ISpeechObjectTokenCategory *This,
  11906         REFIID riid,
  11907         void **ppvObject);
  11908 
  11909     ULONG (STDMETHODCALLTYPE *AddRef)(
  11910         ISpeechObjectTokenCategory *This);
  11911 
  11912     ULONG (STDMETHODCALLTYPE *Release)(
  11913         ISpeechObjectTokenCategory *This);
  11914 
  11915     /*** IDispatch methods ***/
  11916     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  11917         ISpeechObjectTokenCategory *This,
  11918         UINT *pctinfo);
  11919 
  11920     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  11921         ISpeechObjectTokenCategory *This,
  11922         UINT iTInfo,
  11923         LCID lcid,
  11924         ITypeInfo **ppTInfo);
  11925 
  11926     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  11927         ISpeechObjectTokenCategory *This,
  11928         REFIID riid,
  11929         LPOLESTR *rgszNames,
  11930         UINT cNames,
  11931         LCID lcid,
  11932         DISPID *rgDispId);
  11933 
  11934     HRESULT (STDMETHODCALLTYPE *Invoke)(
  11935         ISpeechObjectTokenCategory *This,
  11936         DISPID dispIdMember,
  11937         REFIID riid,
  11938         LCID lcid,
  11939         WORD wFlags,
  11940         DISPPARAMS *pDispParams,
  11941         VARIANT *pVarResult,
  11942         EXCEPINFO *pExcepInfo,
  11943         UINT *puArgErr);
  11944 
  11945     /*** ISpeechObjectTokenCategory methods ***/
  11946     HRESULT (STDMETHODCALLTYPE *get_Id)(
  11947         ISpeechObjectTokenCategory *This,
  11948         BSTR *Id);
  11949 
  11950     HRESULT (STDMETHODCALLTYPE *put_Default)(
  11951         ISpeechObjectTokenCategory *This,
  11952         const BSTR TokenId);
  11953 
  11954     HRESULT (STDMETHODCALLTYPE *get_Default)(
  11955         ISpeechObjectTokenCategory *This,
  11956         BSTR *TokenId);
  11957 
  11958     HRESULT (STDMETHODCALLTYPE *SetId)(
  11959         ISpeechObjectTokenCategory *This,
  11960         const BSTR Id,
  11961         VARIANT_BOOL CreateIfNotExist);
  11962 
  11963     HRESULT (STDMETHODCALLTYPE *GetDataKey)(
  11964         ISpeechObjectTokenCategory *This,
  11965         SpeechDataKeyLocation Location,
  11966         ISpeechDataKey **DataKey);
  11967 
  11968     HRESULT (STDMETHODCALLTYPE *EnumerateTokens)(
  11969         ISpeechObjectTokenCategory *This,
  11970         BSTR RequiredAttributes,
  11971         BSTR OptionalAttributes,
  11972         ISpeechObjectTokens **Tokens);
  11973 
  11974     END_INTERFACE
  11975 } ISpeechObjectTokenCategoryVtbl;
  11976 
  11977 interface ISpeechObjectTokenCategory {
  11978     CONST_VTBL ISpeechObjectTokenCategoryVtbl* lpVtbl;
  11979 };
  11980 
  11981 #ifdef COBJMACROS
  11982 #ifndef WIDL_C_INLINE_WRAPPERS
  11983 /*** IUnknown methods ***/
  11984 #define ISpeechObjectTokenCategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11985 #define ISpeechObjectTokenCategory_AddRef(This) (This)->lpVtbl->AddRef(This)
  11986 #define ISpeechObjectTokenCategory_Release(This) (This)->lpVtbl->Release(This)
  11987 /*** IDispatch methods ***/
  11988 #define ISpeechObjectTokenCategory_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  11989 #define ISpeechObjectTokenCategory_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  11990 #define ISpeechObjectTokenCategory_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  11991 #define ISpeechObjectTokenCategory_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  11992 /*** ISpeechObjectTokenCategory methods ***/
  11993 #define ISpeechObjectTokenCategory_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
  11994 #define ISpeechObjectTokenCategory_put_Default(This,TokenId) (This)->lpVtbl->put_Default(This,TokenId)
  11995 #define ISpeechObjectTokenCategory_get_Default(This,TokenId) (This)->lpVtbl->get_Default(This,TokenId)
  11996 #define ISpeechObjectTokenCategory_SetId(This,Id,CreateIfNotExist) (This)->lpVtbl->SetId(This,Id,CreateIfNotExist)
  11997 #define ISpeechObjectTokenCategory_GetDataKey(This,Location,DataKey) (This)->lpVtbl->GetDataKey(This,Location,DataKey)
  11998 #define ISpeechObjectTokenCategory_EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens) (This)->lpVtbl->EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens)
  11999 #else
  12000 /*** IUnknown methods ***/
  12001 static inline HRESULT ISpeechObjectTokenCategory_QueryInterface(ISpeechObjectTokenCategory* This,REFIID riid,void **ppvObject) {
  12002     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  12003 }
  12004 static inline ULONG ISpeechObjectTokenCategory_AddRef(ISpeechObjectTokenCategory* This) {
  12005     return This->lpVtbl->AddRef(This);
  12006 }
  12007 static inline ULONG ISpeechObjectTokenCategory_Release(ISpeechObjectTokenCategory* This) {
  12008     return This->lpVtbl->Release(This);
  12009 }
  12010 /*** IDispatch methods ***/
  12011 static inline HRESULT ISpeechObjectTokenCategory_GetTypeInfoCount(ISpeechObjectTokenCategory* This,UINT *pctinfo) {
  12012     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  12013 }
  12014 static inline HRESULT ISpeechObjectTokenCategory_GetTypeInfo(ISpeechObjectTokenCategory* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  12015     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  12016 }
  12017 static inline HRESULT ISpeechObjectTokenCategory_GetIDsOfNames(ISpeechObjectTokenCategory* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  12018     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  12019 }
  12020 static inline HRESULT ISpeechObjectTokenCategory_Invoke(ISpeechObjectTokenCategory* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  12021     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  12022 }
  12023 /*** ISpeechObjectTokenCategory methods ***/
  12024 static inline HRESULT ISpeechObjectTokenCategory_get_Id(ISpeechObjectTokenCategory* This,BSTR *Id) {
  12025     return This->lpVtbl->get_Id(This,Id);
  12026 }
  12027 static inline HRESULT ISpeechObjectTokenCategory_put_Default(ISpeechObjectTokenCategory* This,const BSTR TokenId) {
  12028     return This->lpVtbl->put_Default(This,TokenId);
  12029 }
  12030 static inline HRESULT ISpeechObjectTokenCategory_get_Default(ISpeechObjectTokenCategory* This,BSTR *TokenId) {
  12031     return This->lpVtbl->get_Default(This,TokenId);
  12032 }
  12033 static inline HRESULT ISpeechObjectTokenCategory_SetId(ISpeechObjectTokenCategory* This,const BSTR Id,VARIANT_BOOL CreateIfNotExist) {
  12034     return This->lpVtbl->SetId(This,Id,CreateIfNotExist);
  12035 }
  12036 static inline HRESULT ISpeechObjectTokenCategory_GetDataKey(ISpeechObjectTokenCategory* This,SpeechDataKeyLocation Location,ISpeechDataKey **DataKey) {
  12037     return This->lpVtbl->GetDataKey(This,Location,DataKey);
  12038 }
  12039 static inline HRESULT ISpeechObjectTokenCategory_EnumerateTokens(ISpeechObjectTokenCategory* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **Tokens) {
  12040     return This->lpVtbl->EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens);
  12041 }
  12042 #endif
  12043 #endif
  12044 
  12045 #endif
  12046 
  12047 
  12048 #endif  /* __ISpeechObjectTokenCategory_INTERFACE_DEFINED__ */
  12049 
  12050 typedef enum SpeechAudioFormatType {
  12051     SAFTDefault = -1,
  12052     SAFTNoAssignedFormat = 0,
  12053     SAFTText = 1,
  12054     SAFTNonStandardFormat = 2,
  12055     SAFTExtendedAudioFormat = 3,
  12056     SAFT8kHz8BitMono = 4,
  12057     SAFT8kHz8BitStereo = 5,
  12058     SAFT8kHz16BitMono = 6,
  12059     SAFT8kHz16BitStereo = 7,
  12060     SAFT11kHz8BitMono = 8,
  12061     SAFT11kHz8BitStereo = 9,
  12062     SAFT11kHz16BitMono = 10,
  12063     SAFT11kHz16BitStereo = 11,
  12064     SAFT12kHz8BitMono = 12,
  12065     SAFT12kHz8BitStereo = 13,
  12066     SAFT12kHz16BitMono = 14,
  12067     SAFT12kHz16BitStereo = 15,
  12068     SAFT16kHz8BitMono = 16,
  12069     SAFT16kHz8BitStereo = 17,
  12070     SAFT16kHz16BitMono = 18,
  12071     SAFT16kHz16BitStereo = 19,
  12072     SAFT22kHz8BitMono = 20,
  12073     SAFT22kHz8BitStereo = 21,
  12074     SAFT22kHz16BitMono = 22,
  12075     SAFT22kHz16BitStereo = 23,
  12076     SAFT24kHz8BitMono = 24,
  12077     SAFT24kHz8BitStereo = 25,
  12078     SAFT24kHz16BitMono = 26,
  12079     SAFT24kHz16BitStereo = 27,
  12080     SAFT32kHz8BitMono = 28,
  12081     SAFT32kHz8BitStereo = 29,
  12082     SAFT32kHz16BitMono = 30,
  12083     SAFT32kHz16BitStereo = 31,
  12084     SAFT44kHz8BitMono = 32,
  12085     SAFT44kHz8BitStereo = 33,
  12086     SAFT44kHz16BitMono = 34,
  12087     SAFT44kHz16BitStereo = 35,
  12088     SAFT48kHz8BitMono = 36,
  12089     SAFT48kHz8BitStereo = 37,
  12090     SAFT48kHz16BitMono = 38,
  12091     SAFT48kHz16BitStereo = 39,
  12092     SAFTTrueSpeech_8kHz1BitMono = 40,
  12093     SAFTCCITT_ALaw_8kHzMono = 41,
  12094     SAFTCCITT_ALaw_8kHzStereo = 42,
  12095     SAFTCCITT_ALaw_11kHzMono = 43,
  12096     SAFTCCITT_ALaw_11kHzStereo = 44,
  12097     SAFTCCITT_ALaw_22kHzMono = 45,
  12098     SAFTCCITT_ALaw_22kHzStereo = 46,
  12099     SAFTCCITT_ALaw_44kHzMono = 47,
  12100     SAFTCCITT_ALaw_44kHzStereo = 48,
  12101     SAFTCCITT_uLaw_8kHzMono = 49,
  12102     SAFTCCITT_uLaw_8kHzStereo = 50,
  12103     SAFTCCITT_uLaw_11kHzMono = 51,
  12104     SAFTCCITT_uLaw_11kHzStereo = 52,
  12105     SAFTCCITT_uLaw_22kHzMono = 53,
  12106     SAFTCCITT_uLaw_22kHzStereo = 54,
  12107     SAFTCCITT_uLaw_44kHzMono = 55,
  12108     SAFTCCITT_uLaw_44kHzStereo = 56,
  12109     SAFTADPCM_8kHzMono = 57,
  12110     SAFTADPCM_8kHzStereo = 58,
  12111     SAFTADPCM_11kHzMono = 59,
  12112     SAFTADPCM_11kHzStereo = 60,
  12113     SAFTADPCM_22kHzMono = 61,
  12114     SAFTADPCM_22kHzStereo = 62,
  12115     SAFTADPCM_44kHzMono = 63,
  12116     SAFTADPCM_44kHzStereo = 64,
  12117     SAFTGSM610_8kHzMono = 65,
  12118     SAFTGSM610_11kHzMono = 66,
  12119     SAFTGSM610_22kHzMono = 67,
  12120     SAFTGSM610_44kHzMono = 68
  12121 } SpeechAudioFormatType;
  12122 typedef enum DISPID_SpeechAudioFormat {
  12123     DISPID_SAFType = 1,
  12124     DISPID_SAFGuid = 2,
  12125     DISPID_SAFGetWaveFormatEx = 3,
  12126     DISPID_SAFSetWaveFormatEx = 4
  12127 } DISPID_SpeechAudioFormat;
  12128 typedef enum DISPID_SpeechBaseStream {
  12129     DISPID_SBSFormat = 1,
  12130     DISPID_SBSRead = 2,
  12131     DISPID_SBSWrite = 3,
  12132     DISPID_SBSSeek = 4
  12133 } DISPID_SpeechBaseStream;
  12134 typedef enum SpeechStreamSeekPositionType {
  12135     SSSPTRelativeToStart = STREAM_SEEK_SET,
  12136     SSSPTRelativeToCurrentPosition = STREAM_SEEK_CUR,
  12137     SSSPTRelativeToEnd = STREAM_SEEK_END
  12138 } SpeechStreamSeekPositionType;
  12139 typedef enum DISPID_SpeechAudio {
  12140     DISPID_SAStatus = 200,
  12141     DISPID_SABufferInfo = 201,
  12142     DISPID_SADefaultFormat = 202,
  12143     DISPID_SAVolume = 203,
  12144     DISPID_SABufferNotifySize = 204,
  12145     DISPID_SAEventHandle = 205,
  12146     DISPID_SASetState = 206
  12147 } DISPID_SpeechAudio;
  12148 typedef enum SpeechAudioState {
  12149     SASClosed = SPAS_CLOSED,
  12150     SASStop = SPAS_STOP,
  12151     SASPause = SPAS_PAUSE,
  12152     SASRun = SPAS_RUN
  12153 } SpeechAudioState;
  12154 typedef enum DISPID_SpeechMMSysAudio {
  12155     DISPID_SMSADeviceId = 300,
  12156     DISPID_SMSALineId = 301,
  12157     DISPID_SMSAMMHandle = 302
  12158 } DISPID_SpeechMMSysAudio;
  12159 typedef enum DISPID_SpeechFileStream {
  12160     DISPID_SFSOpen = 100,
  12161     DISPID_SFSClose = 101
  12162 } DISPID_SpeechFileStream;
  12163 typedef enum SpeechStreamFileMode {
  12164     SSFMOpenForRead = SPFM_OPEN_READONLY,
  12165     SSFMOpenReadWrite = SPFM_OPEN_READWRITE,
  12166     SSFMCreate = SPFM_CREATE,
  12167     SSFMCreateForWrite = SPFM_CREATE_ALWAYS
  12168 } SpeechStreamFileMode;
  12169 typedef enum DISPID_SpeechCustomStream {
  12170     DISPID_SCSBaseStream = 100
  12171 } DISPID_SpeechCustomStream;
  12172 typedef enum DISPID_SpeechMemoryStream {
  12173     DISPID_SMSSetData = 100,
  12174     DISPID_SMSGetData = 101
  12175 } DISPID_SpeechMemoryStream;
  12176 typedef enum DISPID_SpeechAudioStatus {
  12177     DISPID_SASFreeBufferSpace = 1,
  12178     DISPID_SASNonBlockingIO = 2,
  12179     DISPID_SASState = 3,
  12180     DISPID_SASCurrentSeekPosition = 4,
  12181     DISPID_SASCurrentDevicePosition = 5
  12182 } DISPID_SpeechAudioStatus;
  12183 typedef enum DISPID_SpeechAudioBufferInfo {
  12184     DISPID_SABIMinNotification = 1,
  12185     DISPID_SABIBufferSize = 2,
  12186     DISPID_SABIEventBias = 3
  12187 } DISPID_SpeechAudioBufferInfo;
  12188 typedef enum DISPID_SpeechWaveFormatEx {
  12189     DISPID_SWFEFormatTag = 1,
  12190     DISPID_SWFEChannels = 2,
  12191     DISPID_SWFESamplesPerSec = 3,
  12192     DISPID_SWFEAvgBytesPerSec = 4,
  12193     DISPID_SWFEBlockAlign = 5,
  12194     DISPID_SWFEBitsPerSample = 6,
  12195     DISPID_SWFEExtraData = 7
  12196 } DISPID_SpeechWaveFormatEx;
  12197 typedef enum DISPID_SpeechVoice {
  12198     DISPID_SVStatus = 1,
  12199     DISPID_SVVoice = 2,
  12200     DISPID_SVAudioOutput = 3,
  12201     DISPID_SVAudioOutputStream = 4,
  12202     DISPID_SVRate = 5,
  12203     DISPID_SVVolume = 6,
  12204     DISPID_SVAllowAudioOuputFormatChangesOnNextSet = 7,
  12205     DISPID_SVEventInterests = 8,
  12206     DISPID_SVPriority = 9,
  12207     DISPID_SVAlertBoundary = 10,
  12208     DISPID_SVSyncronousSpeakTimeout = 11,
  12209     DISPID_SVSpeak = 12,
  12210     DISPID_SVSpeakStream = 13,
  12211     DISPID_SVPause = 14,
  12212     DISPID_SVResume = 15,
  12213     DISPID_SVSkip = 16,
  12214     DISPID_SVGetVoices = 17,
  12215     DISPID_SVGetAudioOutputs = 18,
  12216     DISPID_SVWaitUntilDone = 19,
  12217     DISPID_SVSpeakCompleteEvent = 20,
  12218     DISPID_SVIsUISupported = 21,
  12219     DISPID_SVDisplayUI = 22
  12220 } DISPID_SpeechVoice;
  12221 typedef enum SpeechVoicePriority {
  12222     SVPNormal = SPVPRI_NORMAL,
  12223     SVPAlert = SPVPRI_ALERT,
  12224     SVPOver = SPVPRI_OVER
  12225 } SpeechVoicePriority;
  12226 typedef enum SpeechVoiceSpeakFlags {
  12227     SVSFDefault = SPF_DEFAULT,
  12228     SVSFlagsAsync = SPF_ASYNC,
  12229     SVSFPurgeBeforeSpeak = SPF_PURGEBEFORESPEAK,
  12230     SVSFIsFilename = SPF_IS_FILENAME,
  12231     SVSFIsXML = SPF_IS_XML,
  12232     SVSFIsNotXML = SPF_IS_NOT_XML,
  12233     SVSFPersistXML = SPF_PERSIST_XML,
  12234     SVSFNLPSpeakPunc = SPF_NLP_SPEAK_PUNC,
  12235     SVSFParseSapi = SPF_PARSE_SAPI,
  12236     SVSFParseSsml = SPF_PARSE_SSML,
  12237     SVSFParseAutodetect = SPF_PARSE_AUTODETECT,
  12238     SVSFNLPMask = SPF_NLP_MASK,
  12239     SVSFParseMask = SPF_PARSE_MASK,
  12240     SVSFVoiceMask = SPF_VOICE_MASK,
  12241     SVSFUnusedFlags = SPF_UNUSED_FLAGS
  12242 } SpeechVoiceSpeakFlags;
  12243 typedef enum SpeechVoiceEvents {
  12244     SVEStartInputStream = 0x2,
  12245     SVEEndInputStream = 0x4,
  12246     SVEVoiceChange = 0x8,
  12247     SVEBookmark = 0x10,
  12248     SVEWordBoundary = 0x20,
  12249     SVEPhoneme = 0x40,
  12250     SVESentenceBoundary = 0x80,
  12251     SVEViseme = 0x100,
  12252     SVEAudioLevel = 0x200,
  12253     SVEPrivate = 0x8000,
  12254     SVEAllEvents = 0x83fe
  12255 } SpeechVoiceEvents;
  12256 typedef enum DISPID_SpeechVoiceStatus {
  12257     DISPID_SVSCurrentStreamNumber = 1,
  12258     DISPID_SVSLastStreamNumberQueued = 2,
  12259     DISPID_SVSLastResult = 3,
  12260     DISPID_SVSRunningState = 4,
  12261     DISPID_SVSInputWordPosition = 5,
  12262     DISPID_SVSInputWordLength = 6,
  12263     DISPID_SVSInputSentencePosition = 7,
  12264     DISPID_SVSInputSentenceLength = 8,
  12265     DISPID_SVSLastBookmark = 9,
  12266     DISPID_SVSLastBookmarkId = 10,
  12267     DISPID_SVSPhonemeId = 11,
  12268     DISPID_SVSVisemeId = 12
  12269 } DISPID_SpeechVoiceStatus;
  12270 typedef enum SpeechRunState {
  12271     SRSEDone = SPRS_DONE,
  12272     SRSEIsSpeaking = SPRS_IS_SPEAKING
  12273 } SpeechRunState;
  12274 /*****************************************************************************
  12275  * ISpeechAudioFormat interface
  12276  */
  12277 #ifndef __ISpeechAudioFormat_INTERFACE_DEFINED__
  12278 #define __ISpeechAudioFormat_INTERFACE_DEFINED__
  12279 
  12280 DEFINE_GUID(IID_ISpeechAudioFormat, 0xe6e9c590, 0x3e18, 0x40e3, 0x82,0x99, 0x06,0x1f,0x98,0xbd,0xe7,0xc7);
  12281 #if defined(__cplusplus) && !defined(CINTERFACE)
  12282 MIDL_INTERFACE("e6e9c590-3e18-40e3-8299-061f98bde7c7")
  12283 ISpeechAudioFormat : public IDispatch
  12284 {
  12285     virtual HRESULT STDMETHODCALLTYPE get_Type(
  12286         SpeechAudioFormatType *AudioFormat) = 0;
  12287 
  12288     virtual HRESULT STDMETHODCALLTYPE put_Type(
  12289         SpeechAudioFormatType AudioFormat) = 0;
  12290 
  12291     virtual HRESULT STDMETHODCALLTYPE get_Guid(
  12292         BSTR *Guid) = 0;
  12293 
  12294     virtual HRESULT STDMETHODCALLTYPE put_Guid(
  12295         BSTR Guid) = 0;
  12296 
  12297     virtual HRESULT STDMETHODCALLTYPE GetWaveFormatEx(
  12298         ISpeechWaveFormatEx **SpeechWaveFormatEx) = 0;
  12299 
  12300     virtual HRESULT STDMETHODCALLTYPE SetWaveFormatEx(
  12301         ISpeechWaveFormatEx *SpeechWaveFormatEx) = 0;
  12302 
  12303 };
  12304 #ifdef __CRT_UUID_DECL
  12305 __CRT_UUID_DECL(ISpeechAudioFormat, 0xe6e9c590, 0x3e18, 0x40e3, 0x82,0x99, 0x06,0x1f,0x98,0xbd,0xe7,0xc7)
  12306 #endif
  12307 #else
  12308 typedef struct ISpeechAudioFormatVtbl {
  12309     BEGIN_INTERFACE
  12310 
  12311     /*** IUnknown methods ***/
  12312     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  12313         ISpeechAudioFormat *This,
  12314         REFIID riid,
  12315         void **ppvObject);
  12316 
  12317     ULONG (STDMETHODCALLTYPE *AddRef)(
  12318         ISpeechAudioFormat *This);
  12319 
  12320     ULONG (STDMETHODCALLTYPE *Release)(
  12321         ISpeechAudioFormat *This);
  12322 
  12323     /*** IDispatch methods ***/
  12324     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  12325         ISpeechAudioFormat *This,
  12326         UINT *pctinfo);
  12327 
  12328     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  12329         ISpeechAudioFormat *This,
  12330         UINT iTInfo,
  12331         LCID lcid,
  12332         ITypeInfo **ppTInfo);
  12333 
  12334     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  12335         ISpeechAudioFormat *This,
  12336         REFIID riid,
  12337         LPOLESTR *rgszNames,
  12338         UINT cNames,
  12339         LCID lcid,
  12340         DISPID *rgDispId);
  12341 
  12342     HRESULT (STDMETHODCALLTYPE *Invoke)(
  12343         ISpeechAudioFormat *This,
  12344         DISPID dispIdMember,
  12345         REFIID riid,
  12346         LCID lcid,
  12347         WORD wFlags,
  12348         DISPPARAMS *pDispParams,
  12349         VARIANT *pVarResult,
  12350         EXCEPINFO *pExcepInfo,
  12351         UINT *puArgErr);
  12352 
  12353     /*** ISpeechAudioFormat methods ***/
  12354     HRESULT (STDMETHODCALLTYPE *get_Type)(
  12355         ISpeechAudioFormat *This,
  12356         SpeechAudioFormatType *AudioFormat);
  12357 
  12358     HRESULT (STDMETHODCALLTYPE *put_Type)(
  12359         ISpeechAudioFormat *This,
  12360         SpeechAudioFormatType AudioFormat);
  12361 
  12362     HRESULT (STDMETHODCALLTYPE *get_Guid)(
  12363         ISpeechAudioFormat *This,
  12364         BSTR *Guid);
  12365 
  12366     HRESULT (STDMETHODCALLTYPE *put_Guid)(
  12367         ISpeechAudioFormat *This,
  12368         BSTR Guid);
  12369 
  12370     HRESULT (STDMETHODCALLTYPE *GetWaveFormatEx)(
  12371         ISpeechAudioFormat *This,
  12372         ISpeechWaveFormatEx **SpeechWaveFormatEx);
  12373 
  12374     HRESULT (STDMETHODCALLTYPE *SetWaveFormatEx)(
  12375         ISpeechAudioFormat *This,
  12376         ISpeechWaveFormatEx *SpeechWaveFormatEx);
  12377 
  12378     END_INTERFACE
  12379 } ISpeechAudioFormatVtbl;
  12380 
  12381 interface ISpeechAudioFormat {
  12382     CONST_VTBL ISpeechAudioFormatVtbl* lpVtbl;
  12383 };
  12384 
  12385 #ifdef COBJMACROS
  12386 #ifndef WIDL_C_INLINE_WRAPPERS
  12387 /*** IUnknown methods ***/
  12388 #define ISpeechAudioFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12389 #define ISpeechAudioFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
  12390 #define ISpeechAudioFormat_Release(This) (This)->lpVtbl->Release(This)
  12391 /*** IDispatch methods ***/
  12392 #define ISpeechAudioFormat_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  12393 #define ISpeechAudioFormat_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  12394 #define ISpeechAudioFormat_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  12395 #define ISpeechAudioFormat_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  12396 /*** ISpeechAudioFormat methods ***/
  12397 #define ISpeechAudioFormat_get_Type(This,AudioFormat) (This)->lpVtbl->get_Type(This,AudioFormat)
  12398 #define ISpeechAudioFormat_put_Type(This,AudioFormat) (This)->lpVtbl->put_Type(This,AudioFormat)
  12399 #define ISpeechAudioFormat_get_Guid(This,Guid) (This)->lpVtbl->get_Guid(This,Guid)
  12400 #define ISpeechAudioFormat_put_Guid(This,Guid) (This)->lpVtbl->put_Guid(This,Guid)
  12401 #define ISpeechAudioFormat_GetWaveFormatEx(This,SpeechWaveFormatEx) (This)->lpVtbl->GetWaveFormatEx(This,SpeechWaveFormatEx)
  12402 #define ISpeechAudioFormat_SetWaveFormatEx(This,SpeechWaveFormatEx) (This)->lpVtbl->SetWaveFormatEx(This,SpeechWaveFormatEx)
  12403 #else
  12404 /*** IUnknown methods ***/
  12405 static inline HRESULT ISpeechAudioFormat_QueryInterface(ISpeechAudioFormat* This,REFIID riid,void **ppvObject) {
  12406     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  12407 }
  12408 static inline ULONG ISpeechAudioFormat_AddRef(ISpeechAudioFormat* This) {
  12409     return This->lpVtbl->AddRef(This);
  12410 }
  12411 static inline ULONG ISpeechAudioFormat_Release(ISpeechAudioFormat* This) {
  12412     return This->lpVtbl->Release(This);
  12413 }
  12414 /*** IDispatch methods ***/
  12415 static inline HRESULT ISpeechAudioFormat_GetTypeInfoCount(ISpeechAudioFormat* This,UINT *pctinfo) {
  12416     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  12417 }
  12418 static inline HRESULT ISpeechAudioFormat_GetTypeInfo(ISpeechAudioFormat* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  12419     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  12420 }
  12421 static inline HRESULT ISpeechAudioFormat_GetIDsOfNames(ISpeechAudioFormat* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  12422     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  12423 }
  12424 static inline HRESULT ISpeechAudioFormat_Invoke(ISpeechAudioFormat* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  12425     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  12426 }
  12427 /*** ISpeechAudioFormat methods ***/
  12428 static inline HRESULT ISpeechAudioFormat_get_Type(ISpeechAudioFormat* This,SpeechAudioFormatType *AudioFormat) {
  12429     return This->lpVtbl->get_Type(This,AudioFormat);
  12430 }
  12431 static inline HRESULT ISpeechAudioFormat_put_Type(ISpeechAudioFormat* This,SpeechAudioFormatType AudioFormat) {
  12432     return This->lpVtbl->put_Type(This,AudioFormat);
  12433 }
  12434 static inline HRESULT ISpeechAudioFormat_get_Guid(ISpeechAudioFormat* This,BSTR *Guid) {
  12435     return This->lpVtbl->get_Guid(This,Guid);
  12436 }
  12437 static inline HRESULT ISpeechAudioFormat_put_Guid(ISpeechAudioFormat* This,BSTR Guid) {
  12438     return This->lpVtbl->put_Guid(This,Guid);
  12439 }
  12440 static inline HRESULT ISpeechAudioFormat_GetWaveFormatEx(ISpeechAudioFormat* This,ISpeechWaveFormatEx **SpeechWaveFormatEx) {
  12441     return This->lpVtbl->GetWaveFormatEx(This,SpeechWaveFormatEx);
  12442 }
  12443 static inline HRESULT ISpeechAudioFormat_SetWaveFormatEx(ISpeechAudioFormat* This,ISpeechWaveFormatEx *SpeechWaveFormatEx) {
  12444     return This->lpVtbl->SetWaveFormatEx(This,SpeechWaveFormatEx);
  12445 }
  12446 #endif
  12447 #endif
  12448 
  12449 #endif
  12450 
  12451 
  12452 #endif  /* __ISpeechAudioFormat_INTERFACE_DEFINED__ */
  12453 
  12454 /*****************************************************************************
  12455  * ISpeechBaseStream interface
  12456  */
  12457 #ifndef __ISpeechBaseStream_INTERFACE_DEFINED__
  12458 #define __ISpeechBaseStream_INTERFACE_DEFINED__
  12459 
  12460 DEFINE_GUID(IID_ISpeechBaseStream, 0x6450336f, 0x7d49, 0x4ced, 0x80,0x97, 0x49,0xd6,0xde,0xe3,0x72,0x94);
  12461 #if defined(__cplusplus) && !defined(CINTERFACE)
  12462 MIDL_INTERFACE("6450336f-7d49-4ced-8097-49d6dee37294")
  12463 ISpeechBaseStream : public IDispatch
  12464 {
  12465     virtual HRESULT STDMETHODCALLTYPE get_Format(
  12466         ISpeechAudioFormat **AudioFormat) = 0;
  12467 
  12468     virtual HRESULT STDMETHODCALLTYPE putref_Format(
  12469         ISpeechAudioFormat *AudioFormat) = 0;
  12470 
  12471     virtual HRESULT STDMETHODCALLTYPE Read(
  12472         VARIANT *Buffer,
  12473         LONG NumberOfBytes,
  12474         LONG *BytesRead) = 0;
  12475 
  12476     virtual HRESULT STDMETHODCALLTYPE Write(
  12477         VARIANT Buffer,
  12478         LONG *BytesWritten) = 0;
  12479 
  12480     virtual HRESULT STDMETHODCALLTYPE Seek(
  12481         VARIANT Position,
  12482         SpeechStreamSeekPositionType Origin,
  12483         VARIANT *NewPosition) = 0;
  12484 
  12485 };
  12486 #ifdef __CRT_UUID_DECL
  12487 __CRT_UUID_DECL(ISpeechBaseStream, 0x6450336f, 0x7d49, 0x4ced, 0x80,0x97, 0x49,0xd6,0xde,0xe3,0x72,0x94)
  12488 #endif
  12489 #else
  12490 typedef struct ISpeechBaseStreamVtbl {
  12491     BEGIN_INTERFACE
  12492 
  12493     /*** IUnknown methods ***/
  12494     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  12495         ISpeechBaseStream *This,
  12496         REFIID riid,
  12497         void **ppvObject);
  12498 
  12499     ULONG (STDMETHODCALLTYPE *AddRef)(
  12500         ISpeechBaseStream *This);
  12501 
  12502     ULONG (STDMETHODCALLTYPE *Release)(
  12503         ISpeechBaseStream *This);
  12504 
  12505     /*** IDispatch methods ***/
  12506     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  12507         ISpeechBaseStream *This,
  12508         UINT *pctinfo);
  12509 
  12510     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  12511         ISpeechBaseStream *This,
  12512         UINT iTInfo,
  12513         LCID lcid,
  12514         ITypeInfo **ppTInfo);
  12515 
  12516     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  12517         ISpeechBaseStream *This,
  12518         REFIID riid,
  12519         LPOLESTR *rgszNames,
  12520         UINT cNames,
  12521         LCID lcid,
  12522         DISPID *rgDispId);
  12523 
  12524     HRESULT (STDMETHODCALLTYPE *Invoke)(
  12525         ISpeechBaseStream *This,
  12526         DISPID dispIdMember,
  12527         REFIID riid,
  12528         LCID lcid,
  12529         WORD wFlags,
  12530         DISPPARAMS *pDispParams,
  12531         VARIANT *pVarResult,
  12532         EXCEPINFO *pExcepInfo,
  12533         UINT *puArgErr);
  12534 
  12535     /*** ISpeechBaseStream methods ***/
  12536     HRESULT (STDMETHODCALLTYPE *get_Format)(
  12537         ISpeechBaseStream *This,
  12538         ISpeechAudioFormat **AudioFormat);
  12539 
  12540     HRESULT (STDMETHODCALLTYPE *putref_Format)(
  12541         ISpeechBaseStream *This,
  12542         ISpeechAudioFormat *AudioFormat);
  12543 
  12544     HRESULT (STDMETHODCALLTYPE *Read)(
  12545         ISpeechBaseStream *This,
  12546         VARIANT *Buffer,
  12547         LONG NumberOfBytes,
  12548         LONG *BytesRead);
  12549 
  12550     HRESULT (STDMETHODCALLTYPE *Write)(
  12551         ISpeechBaseStream *This,
  12552         VARIANT Buffer,
  12553         LONG *BytesWritten);
  12554 
  12555     HRESULT (STDMETHODCALLTYPE *Seek)(
  12556         ISpeechBaseStream *This,
  12557         VARIANT Position,
  12558         SpeechStreamSeekPositionType Origin,
  12559         VARIANT *NewPosition);
  12560 
  12561     END_INTERFACE
  12562 } ISpeechBaseStreamVtbl;
  12563 
  12564 interface ISpeechBaseStream {
  12565     CONST_VTBL ISpeechBaseStreamVtbl* lpVtbl;
  12566 };
  12567 
  12568 #ifdef COBJMACROS
  12569 #ifndef WIDL_C_INLINE_WRAPPERS
  12570 /*** IUnknown methods ***/
  12571 #define ISpeechBaseStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12572 #define ISpeechBaseStream_AddRef(This) (This)->lpVtbl->AddRef(This)
  12573 #define ISpeechBaseStream_Release(This) (This)->lpVtbl->Release(This)
  12574 /*** IDispatch methods ***/
  12575 #define ISpeechBaseStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  12576 #define ISpeechBaseStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  12577 #define ISpeechBaseStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  12578 #define ISpeechBaseStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  12579 /*** ISpeechBaseStream methods ***/
  12580 #define ISpeechBaseStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
  12581 #define ISpeechBaseStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
  12582 #define ISpeechBaseStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
  12583 #define ISpeechBaseStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
  12584 #define ISpeechBaseStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
  12585 #else
  12586 /*** IUnknown methods ***/
  12587 static inline HRESULT ISpeechBaseStream_QueryInterface(ISpeechBaseStream* This,REFIID riid,void **ppvObject) {
  12588     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  12589 }
  12590 static inline ULONG ISpeechBaseStream_AddRef(ISpeechBaseStream* This) {
  12591     return This->lpVtbl->AddRef(This);
  12592 }
  12593 static inline ULONG ISpeechBaseStream_Release(ISpeechBaseStream* This) {
  12594     return This->lpVtbl->Release(This);
  12595 }
  12596 /*** IDispatch methods ***/
  12597 static inline HRESULT ISpeechBaseStream_GetTypeInfoCount(ISpeechBaseStream* This,UINT *pctinfo) {
  12598     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  12599 }
  12600 static inline HRESULT ISpeechBaseStream_GetTypeInfo(ISpeechBaseStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  12601     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  12602 }
  12603 static inline HRESULT ISpeechBaseStream_GetIDsOfNames(ISpeechBaseStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  12604     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  12605 }
  12606 static inline HRESULT ISpeechBaseStream_Invoke(ISpeechBaseStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  12607     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  12608 }
  12609 /*** ISpeechBaseStream methods ***/
  12610 static inline HRESULT ISpeechBaseStream_get_Format(ISpeechBaseStream* This,ISpeechAudioFormat **AudioFormat) {
  12611     return This->lpVtbl->get_Format(This,AudioFormat);
  12612 }
  12613 static inline HRESULT ISpeechBaseStream_putref_Format(ISpeechBaseStream* This,ISpeechAudioFormat *AudioFormat) {
  12614     return This->lpVtbl->putref_Format(This,AudioFormat);
  12615 }
  12616 static inline HRESULT ISpeechBaseStream_Read(ISpeechBaseStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
  12617     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
  12618 }
  12619 static inline HRESULT ISpeechBaseStream_Write(ISpeechBaseStream* This,VARIANT Buffer,LONG *BytesWritten) {
  12620     return This->lpVtbl->Write(This,Buffer,BytesWritten);
  12621 }
  12622 static inline HRESULT ISpeechBaseStream_Seek(ISpeechBaseStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
  12623     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
  12624 }
  12625 #endif
  12626 #endif
  12627 
  12628 #endif
  12629 
  12630 
  12631 #endif  /* __ISpeechBaseStream_INTERFACE_DEFINED__ */
  12632 
  12633 /*****************************************************************************
  12634  * ISpeechAudio interface
  12635  */
  12636 #ifndef __ISpeechAudio_INTERFACE_DEFINED__
  12637 #define __ISpeechAudio_INTERFACE_DEFINED__
  12638 
  12639 DEFINE_GUID(IID_ISpeechAudio, 0xcff8e175, 0x019e, 0x11d3, 0xa0,0x8e, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5);
  12640 #if defined(__cplusplus) && !defined(CINTERFACE)
  12641 MIDL_INTERFACE("cff8e175-019e-11d3-a08e-00c04f8ef9b5")
  12642 ISpeechAudio : public ISpeechBaseStream
  12643 {
  12644     virtual HRESULT STDMETHODCALLTYPE get_Status(
  12645         ISpeechAudioStatus **Status) = 0;
  12646 
  12647     virtual HRESULT STDMETHODCALLTYPE get_BufferInfo(
  12648         ISpeechAudioBufferInfo **BufferInfo) = 0;
  12649 
  12650     virtual HRESULT STDMETHODCALLTYPE get_DefaultFormat(
  12651         ISpeechAudioFormat **StreamFormat) = 0;
  12652 
  12653     virtual HRESULT STDMETHODCALLTYPE get_Volume(
  12654         LONG *Volume) = 0;
  12655 
  12656     virtual HRESULT STDMETHODCALLTYPE put_Volume(
  12657         LONG Volume) = 0;
  12658 
  12659     virtual HRESULT STDMETHODCALLTYPE get_BufferNotifySize(
  12660         LONG *BufferNotifySize) = 0;
  12661 
  12662     virtual HRESULT STDMETHODCALLTYPE put_BufferNotifySize(
  12663         LONG BufferNotifySize) = 0;
  12664 
  12665     virtual HRESULT STDMETHODCALLTYPE get_EventHandle(
  12666         LONG *EventHandle) = 0;
  12667 
  12668     virtual HRESULT STDMETHODCALLTYPE SetState(
  12669         SpeechAudioState State) = 0;
  12670 
  12671 };
  12672 #ifdef __CRT_UUID_DECL
  12673 __CRT_UUID_DECL(ISpeechAudio, 0xcff8e175, 0x019e, 0x11d3, 0xa0,0x8e, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5)
  12674 #endif
  12675 #else
  12676 typedef struct ISpeechAudioVtbl {
  12677     BEGIN_INTERFACE
  12678 
  12679     /*** IUnknown methods ***/
  12680     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  12681         ISpeechAudio *This,
  12682         REFIID riid,
  12683         void **ppvObject);
  12684 
  12685     ULONG (STDMETHODCALLTYPE *AddRef)(
  12686         ISpeechAudio *This);
  12687 
  12688     ULONG (STDMETHODCALLTYPE *Release)(
  12689         ISpeechAudio *This);
  12690 
  12691     /*** IDispatch methods ***/
  12692     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  12693         ISpeechAudio *This,
  12694         UINT *pctinfo);
  12695 
  12696     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  12697         ISpeechAudio *This,
  12698         UINT iTInfo,
  12699         LCID lcid,
  12700         ITypeInfo **ppTInfo);
  12701 
  12702     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  12703         ISpeechAudio *This,
  12704         REFIID riid,
  12705         LPOLESTR *rgszNames,
  12706         UINT cNames,
  12707         LCID lcid,
  12708         DISPID *rgDispId);
  12709 
  12710     HRESULT (STDMETHODCALLTYPE *Invoke)(
  12711         ISpeechAudio *This,
  12712         DISPID dispIdMember,
  12713         REFIID riid,
  12714         LCID lcid,
  12715         WORD wFlags,
  12716         DISPPARAMS *pDispParams,
  12717         VARIANT *pVarResult,
  12718         EXCEPINFO *pExcepInfo,
  12719         UINT *puArgErr);
  12720 
  12721     /*** ISpeechBaseStream methods ***/
  12722     HRESULT (STDMETHODCALLTYPE *get_Format)(
  12723         ISpeechAudio *This,
  12724         ISpeechAudioFormat **AudioFormat);
  12725 
  12726     HRESULT (STDMETHODCALLTYPE *putref_Format)(
  12727         ISpeechAudio *This,
  12728         ISpeechAudioFormat *AudioFormat);
  12729 
  12730     HRESULT (STDMETHODCALLTYPE *Read)(
  12731         ISpeechAudio *This,
  12732         VARIANT *Buffer,
  12733         LONG NumberOfBytes,
  12734         LONG *BytesRead);
  12735 
  12736     HRESULT (STDMETHODCALLTYPE *Write)(
  12737         ISpeechAudio *This,
  12738         VARIANT Buffer,
  12739         LONG *BytesWritten);
  12740 
  12741     HRESULT (STDMETHODCALLTYPE *Seek)(
  12742         ISpeechAudio *This,
  12743         VARIANT Position,
  12744         SpeechStreamSeekPositionType Origin,
  12745         VARIANT *NewPosition);
  12746 
  12747     /*** ISpeechAudio methods ***/
  12748     HRESULT (STDMETHODCALLTYPE *get_Status)(
  12749         ISpeechAudio *This,
  12750         ISpeechAudioStatus **Status);
  12751 
  12752     HRESULT (STDMETHODCALLTYPE *get_BufferInfo)(
  12753         ISpeechAudio *This,
  12754         ISpeechAudioBufferInfo **BufferInfo);
  12755 
  12756     HRESULT (STDMETHODCALLTYPE *get_DefaultFormat)(
  12757         ISpeechAudio *This,
  12758         ISpeechAudioFormat **StreamFormat);
  12759 
  12760     HRESULT (STDMETHODCALLTYPE *get_Volume)(
  12761         ISpeechAudio *This,
  12762         LONG *Volume);
  12763 
  12764     HRESULT (STDMETHODCALLTYPE *put_Volume)(
  12765         ISpeechAudio *This,
  12766         LONG Volume);
  12767 
  12768     HRESULT (STDMETHODCALLTYPE *get_BufferNotifySize)(
  12769         ISpeechAudio *This,
  12770         LONG *BufferNotifySize);
  12771 
  12772     HRESULT (STDMETHODCALLTYPE *put_BufferNotifySize)(
  12773         ISpeechAudio *This,
  12774         LONG BufferNotifySize);
  12775 
  12776     HRESULT (STDMETHODCALLTYPE *get_EventHandle)(
  12777         ISpeechAudio *This,
  12778         LONG *EventHandle);
  12779 
  12780     HRESULT (STDMETHODCALLTYPE *SetState)(
  12781         ISpeechAudio *This,
  12782         SpeechAudioState State);
  12783 
  12784     END_INTERFACE
  12785 } ISpeechAudioVtbl;
  12786 
  12787 interface ISpeechAudio {
  12788     CONST_VTBL ISpeechAudioVtbl* lpVtbl;
  12789 };
  12790 
  12791 #ifdef COBJMACROS
  12792 #ifndef WIDL_C_INLINE_WRAPPERS
  12793 /*** IUnknown methods ***/
  12794 #define ISpeechAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12795 #define ISpeechAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
  12796 #define ISpeechAudio_Release(This) (This)->lpVtbl->Release(This)
  12797 /*** IDispatch methods ***/
  12798 #define ISpeechAudio_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  12799 #define ISpeechAudio_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  12800 #define ISpeechAudio_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  12801 #define ISpeechAudio_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  12802 /*** ISpeechBaseStream methods ***/
  12803 #define ISpeechAudio_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
  12804 #define ISpeechAudio_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
  12805 #define ISpeechAudio_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
  12806 #define ISpeechAudio_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
  12807 #define ISpeechAudio_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
  12808 /*** ISpeechAudio methods ***/
  12809 #define ISpeechAudio_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
  12810 #define ISpeechAudio_get_BufferInfo(This,BufferInfo) (This)->lpVtbl->get_BufferInfo(This,BufferInfo)
  12811 #define ISpeechAudio_get_DefaultFormat(This,StreamFormat) (This)->lpVtbl->get_DefaultFormat(This,StreamFormat)
  12812 #define ISpeechAudio_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
  12813 #define ISpeechAudio_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
  12814 #define ISpeechAudio_get_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->get_BufferNotifySize(This,BufferNotifySize)
  12815 #define ISpeechAudio_put_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->put_BufferNotifySize(This,BufferNotifySize)
  12816 #define ISpeechAudio_get_EventHandle(This,EventHandle) (This)->lpVtbl->get_EventHandle(This,EventHandle)
  12817 #define ISpeechAudio_SetState(This,State) (This)->lpVtbl->SetState(This,State)
  12818 #else
  12819 /*** IUnknown methods ***/
  12820 static inline HRESULT ISpeechAudio_QueryInterface(ISpeechAudio* This,REFIID riid,void **ppvObject) {
  12821     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  12822 }
  12823 static inline ULONG ISpeechAudio_AddRef(ISpeechAudio* This) {
  12824     return This->lpVtbl->AddRef(This);
  12825 }
  12826 static inline ULONG ISpeechAudio_Release(ISpeechAudio* This) {
  12827     return This->lpVtbl->Release(This);
  12828 }
  12829 /*** IDispatch methods ***/
  12830 static inline HRESULT ISpeechAudio_GetTypeInfoCount(ISpeechAudio* This,UINT *pctinfo) {
  12831     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  12832 }
  12833 static inline HRESULT ISpeechAudio_GetTypeInfo(ISpeechAudio* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  12834     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  12835 }
  12836 static inline HRESULT ISpeechAudio_GetIDsOfNames(ISpeechAudio* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  12837     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  12838 }
  12839 static inline HRESULT ISpeechAudio_Invoke(ISpeechAudio* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  12840     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  12841 }
  12842 /*** ISpeechBaseStream methods ***/
  12843 static inline HRESULT ISpeechAudio_get_Format(ISpeechAudio* This,ISpeechAudioFormat **AudioFormat) {
  12844     return This->lpVtbl->get_Format(This,AudioFormat);
  12845 }
  12846 static inline HRESULT ISpeechAudio_putref_Format(ISpeechAudio* This,ISpeechAudioFormat *AudioFormat) {
  12847     return This->lpVtbl->putref_Format(This,AudioFormat);
  12848 }
  12849 static inline HRESULT ISpeechAudio_Read(ISpeechAudio* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
  12850     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
  12851 }
  12852 static inline HRESULT ISpeechAudio_Write(ISpeechAudio* This,VARIANT Buffer,LONG *BytesWritten) {
  12853     return This->lpVtbl->Write(This,Buffer,BytesWritten);
  12854 }
  12855 static inline HRESULT ISpeechAudio_Seek(ISpeechAudio* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
  12856     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
  12857 }
  12858 /*** ISpeechAudio methods ***/
  12859 static inline HRESULT ISpeechAudio_get_Status(ISpeechAudio* This,ISpeechAudioStatus **Status) {
  12860     return This->lpVtbl->get_Status(This,Status);
  12861 }
  12862 static inline HRESULT ISpeechAudio_get_BufferInfo(ISpeechAudio* This,ISpeechAudioBufferInfo **BufferInfo) {
  12863     return This->lpVtbl->get_BufferInfo(This,BufferInfo);
  12864 }
  12865 static inline HRESULT ISpeechAudio_get_DefaultFormat(ISpeechAudio* This,ISpeechAudioFormat **StreamFormat) {
  12866     return This->lpVtbl->get_DefaultFormat(This,StreamFormat);
  12867 }
  12868 static inline HRESULT ISpeechAudio_get_Volume(ISpeechAudio* This,LONG *Volume) {
  12869     return This->lpVtbl->get_Volume(This,Volume);
  12870 }
  12871 static inline HRESULT ISpeechAudio_put_Volume(ISpeechAudio* This,LONG Volume) {
  12872     return This->lpVtbl->put_Volume(This,Volume);
  12873 }
  12874 static inline HRESULT ISpeechAudio_get_BufferNotifySize(ISpeechAudio* This,LONG *BufferNotifySize) {
  12875     return This->lpVtbl->get_BufferNotifySize(This,BufferNotifySize);
  12876 }
  12877 static inline HRESULT ISpeechAudio_put_BufferNotifySize(ISpeechAudio* This,LONG BufferNotifySize) {
  12878     return This->lpVtbl->put_BufferNotifySize(This,BufferNotifySize);
  12879 }
  12880 static inline HRESULT ISpeechAudio_get_EventHandle(ISpeechAudio* This,LONG *EventHandle) {
  12881     return This->lpVtbl->get_EventHandle(This,EventHandle);
  12882 }
  12883 static inline HRESULT ISpeechAudio_SetState(ISpeechAudio* This,SpeechAudioState State) {
  12884     return This->lpVtbl->SetState(This,State);
  12885 }
  12886 #endif
  12887 #endif
  12888 
  12889 #endif
  12890 
  12891 
  12892 #endif  /* __ISpeechAudio_INTERFACE_DEFINED__ */
  12893 
  12894 /*****************************************************************************
  12895  * ISpeechMMSysAudio interface
  12896  */
  12897 #ifndef __ISpeechMMSysAudio_INTERFACE_DEFINED__
  12898 #define __ISpeechMMSysAudio_INTERFACE_DEFINED__
  12899 
  12900 DEFINE_GUID(IID_ISpeechMMSysAudio, 0x3c76af6d, 0x1fd7, 0x4831, 0x81,0xd1, 0x3b,0x71,0xd5,0xa1,0x3c,0x44);
  12901 #if defined(__cplusplus) && !defined(CINTERFACE)
  12902 MIDL_INTERFACE("3c76af6d-1fd7-4831-81d1-3b71d5a13c44")
  12903 ISpeechMMSysAudio : public ISpeechAudio
  12904 {
  12905     virtual HRESULT STDMETHODCALLTYPE get_DeviceId(
  12906         LONG *DeviceId) = 0;
  12907 
  12908     virtual HRESULT STDMETHODCALLTYPE put_DeviceId(
  12909         LONG DeviceId) = 0;
  12910 
  12911     virtual HRESULT STDMETHODCALLTYPE get_LineId(
  12912         LONG *LineId) = 0;
  12913 
  12914     virtual HRESULT STDMETHODCALLTYPE put_LineId(
  12915         LONG LineId) = 0;
  12916 
  12917     virtual HRESULT STDMETHODCALLTYPE get_MMHandle(
  12918         LONG *Handle) = 0;
  12919 
  12920 };
  12921 #ifdef __CRT_UUID_DECL
  12922 __CRT_UUID_DECL(ISpeechMMSysAudio, 0x3c76af6d, 0x1fd7, 0x4831, 0x81,0xd1, 0x3b,0x71,0xd5,0xa1,0x3c,0x44)
  12923 #endif
  12924 #else
  12925 typedef struct ISpeechMMSysAudioVtbl {
  12926     BEGIN_INTERFACE
  12927 
  12928     /*** IUnknown methods ***/
  12929     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  12930         ISpeechMMSysAudio *This,
  12931         REFIID riid,
  12932         void **ppvObject);
  12933 
  12934     ULONG (STDMETHODCALLTYPE *AddRef)(
  12935         ISpeechMMSysAudio *This);
  12936 
  12937     ULONG (STDMETHODCALLTYPE *Release)(
  12938         ISpeechMMSysAudio *This);
  12939 
  12940     /*** IDispatch methods ***/
  12941     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  12942         ISpeechMMSysAudio *This,
  12943         UINT *pctinfo);
  12944 
  12945     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  12946         ISpeechMMSysAudio *This,
  12947         UINT iTInfo,
  12948         LCID lcid,
  12949         ITypeInfo **ppTInfo);
  12950 
  12951     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  12952         ISpeechMMSysAudio *This,
  12953         REFIID riid,
  12954         LPOLESTR *rgszNames,
  12955         UINT cNames,
  12956         LCID lcid,
  12957         DISPID *rgDispId);
  12958 
  12959     HRESULT (STDMETHODCALLTYPE *Invoke)(
  12960         ISpeechMMSysAudio *This,
  12961         DISPID dispIdMember,
  12962         REFIID riid,
  12963         LCID lcid,
  12964         WORD wFlags,
  12965         DISPPARAMS *pDispParams,
  12966         VARIANT *pVarResult,
  12967         EXCEPINFO *pExcepInfo,
  12968         UINT *puArgErr);
  12969 
  12970     /*** ISpeechBaseStream methods ***/
  12971     HRESULT (STDMETHODCALLTYPE *get_Format)(
  12972         ISpeechMMSysAudio *This,
  12973         ISpeechAudioFormat **AudioFormat);
  12974 
  12975     HRESULT (STDMETHODCALLTYPE *putref_Format)(
  12976         ISpeechMMSysAudio *This,
  12977         ISpeechAudioFormat *AudioFormat);
  12978 
  12979     HRESULT (STDMETHODCALLTYPE *Read)(
  12980         ISpeechMMSysAudio *This,
  12981         VARIANT *Buffer,
  12982         LONG NumberOfBytes,
  12983         LONG *BytesRead);
  12984 
  12985     HRESULT (STDMETHODCALLTYPE *Write)(
  12986         ISpeechMMSysAudio *This,
  12987         VARIANT Buffer,
  12988         LONG *BytesWritten);
  12989 
  12990     HRESULT (STDMETHODCALLTYPE *Seek)(
  12991         ISpeechMMSysAudio *This,
  12992         VARIANT Position,
  12993         SpeechStreamSeekPositionType Origin,
  12994         VARIANT *NewPosition);
  12995 
  12996     /*** ISpeechAudio methods ***/
  12997     HRESULT (STDMETHODCALLTYPE *get_Status)(
  12998         ISpeechMMSysAudio *This,
  12999         ISpeechAudioStatus **Status);
  13000 
  13001     HRESULT (STDMETHODCALLTYPE *get_BufferInfo)(
  13002         ISpeechMMSysAudio *This,
  13003         ISpeechAudioBufferInfo **BufferInfo);
  13004 
  13005     HRESULT (STDMETHODCALLTYPE *get_DefaultFormat)(
  13006         ISpeechMMSysAudio *This,
  13007         ISpeechAudioFormat **StreamFormat);
  13008 
  13009     HRESULT (STDMETHODCALLTYPE *get_Volume)(
  13010         ISpeechMMSysAudio *This,
  13011         LONG *Volume);
  13012 
  13013     HRESULT (STDMETHODCALLTYPE *put_Volume)(
  13014         ISpeechMMSysAudio *This,
  13015         LONG Volume);
  13016 
  13017     HRESULT (STDMETHODCALLTYPE *get_BufferNotifySize)(
  13018         ISpeechMMSysAudio *This,
  13019         LONG *BufferNotifySize);
  13020 
  13021     HRESULT (STDMETHODCALLTYPE *put_BufferNotifySize)(
  13022         ISpeechMMSysAudio *This,
  13023         LONG BufferNotifySize);
  13024 
  13025     HRESULT (STDMETHODCALLTYPE *get_EventHandle)(
  13026         ISpeechMMSysAudio *This,
  13027         LONG *EventHandle);
  13028 
  13029     HRESULT (STDMETHODCALLTYPE *SetState)(
  13030         ISpeechMMSysAudio *This,
  13031         SpeechAudioState State);
  13032 
  13033     /*** ISpeechMMSysAudio methods ***/
  13034     HRESULT (STDMETHODCALLTYPE *get_DeviceId)(
  13035         ISpeechMMSysAudio *This,
  13036         LONG *DeviceId);
  13037 
  13038     HRESULT (STDMETHODCALLTYPE *put_DeviceId)(
  13039         ISpeechMMSysAudio *This,
  13040         LONG DeviceId);
  13041 
  13042     HRESULT (STDMETHODCALLTYPE *get_LineId)(
  13043         ISpeechMMSysAudio *This,
  13044         LONG *LineId);
  13045 
  13046     HRESULT (STDMETHODCALLTYPE *put_LineId)(
  13047         ISpeechMMSysAudio *This,
  13048         LONG LineId);
  13049 
  13050     HRESULT (STDMETHODCALLTYPE *get_MMHandle)(
  13051         ISpeechMMSysAudio *This,
  13052         LONG *Handle);
  13053 
  13054     END_INTERFACE
  13055 } ISpeechMMSysAudioVtbl;
  13056 
  13057 interface ISpeechMMSysAudio {
  13058     CONST_VTBL ISpeechMMSysAudioVtbl* lpVtbl;
  13059 };
  13060 
  13061 #ifdef COBJMACROS
  13062 #ifndef WIDL_C_INLINE_WRAPPERS
  13063 /*** IUnknown methods ***/
  13064 #define ISpeechMMSysAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13065 #define ISpeechMMSysAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
  13066 #define ISpeechMMSysAudio_Release(This) (This)->lpVtbl->Release(This)
  13067 /*** IDispatch methods ***/
  13068 #define ISpeechMMSysAudio_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  13069 #define ISpeechMMSysAudio_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  13070 #define ISpeechMMSysAudio_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  13071 #define ISpeechMMSysAudio_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  13072 /*** ISpeechBaseStream methods ***/
  13073 #define ISpeechMMSysAudio_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
  13074 #define ISpeechMMSysAudio_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
  13075 #define ISpeechMMSysAudio_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
  13076 #define ISpeechMMSysAudio_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
  13077 #define ISpeechMMSysAudio_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
  13078 /*** ISpeechAudio methods ***/
  13079 #define ISpeechMMSysAudio_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
  13080 #define ISpeechMMSysAudio_get_BufferInfo(This,BufferInfo) (This)->lpVtbl->get_BufferInfo(This,BufferInfo)
  13081 #define ISpeechMMSysAudio_get_DefaultFormat(This,StreamFormat) (This)->lpVtbl->get_DefaultFormat(This,StreamFormat)
  13082 #define ISpeechMMSysAudio_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
  13083 #define ISpeechMMSysAudio_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
  13084 #define ISpeechMMSysAudio_get_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->get_BufferNotifySize(This,BufferNotifySize)
  13085 #define ISpeechMMSysAudio_put_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->put_BufferNotifySize(This,BufferNotifySize)
  13086 #define ISpeechMMSysAudio_get_EventHandle(This,EventHandle) (This)->lpVtbl->get_EventHandle(This,EventHandle)
  13087 #define ISpeechMMSysAudio_SetState(This,State) (This)->lpVtbl->SetState(This,State)
  13088 /*** ISpeechMMSysAudio methods ***/
  13089 #define ISpeechMMSysAudio_get_DeviceId(This,DeviceId) (This)->lpVtbl->get_DeviceId(This,DeviceId)
  13090 #define ISpeechMMSysAudio_put_DeviceId(This,DeviceId) (This)->lpVtbl->put_DeviceId(This,DeviceId)
  13091 #define ISpeechMMSysAudio_get_LineId(This,LineId) (This)->lpVtbl->get_LineId(This,LineId)
  13092 #define ISpeechMMSysAudio_put_LineId(This,LineId) (This)->lpVtbl->put_LineId(This,LineId)
  13093 #define ISpeechMMSysAudio_get_MMHandle(This,Handle) (This)->lpVtbl->get_MMHandle(This,Handle)
  13094 #else
  13095 /*** IUnknown methods ***/
  13096 static inline HRESULT ISpeechMMSysAudio_QueryInterface(ISpeechMMSysAudio* This,REFIID riid,void **ppvObject) {
  13097     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  13098 }
  13099 static inline ULONG ISpeechMMSysAudio_AddRef(ISpeechMMSysAudio* This) {
  13100     return This->lpVtbl->AddRef(This);
  13101 }
  13102 static inline ULONG ISpeechMMSysAudio_Release(ISpeechMMSysAudio* This) {
  13103     return This->lpVtbl->Release(This);
  13104 }
  13105 /*** IDispatch methods ***/
  13106 static inline HRESULT ISpeechMMSysAudio_GetTypeInfoCount(ISpeechMMSysAudio* This,UINT *pctinfo) {
  13107     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  13108 }
  13109 static inline HRESULT ISpeechMMSysAudio_GetTypeInfo(ISpeechMMSysAudio* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  13110     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  13111 }
  13112 static inline HRESULT ISpeechMMSysAudio_GetIDsOfNames(ISpeechMMSysAudio* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  13113     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  13114 }
  13115 static inline HRESULT ISpeechMMSysAudio_Invoke(ISpeechMMSysAudio* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  13116     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  13117 }
  13118 /*** ISpeechBaseStream methods ***/
  13119 static inline HRESULT ISpeechMMSysAudio_get_Format(ISpeechMMSysAudio* This,ISpeechAudioFormat **AudioFormat) {
  13120     return This->lpVtbl->get_Format(This,AudioFormat);
  13121 }
  13122 static inline HRESULT ISpeechMMSysAudio_putref_Format(ISpeechMMSysAudio* This,ISpeechAudioFormat *AudioFormat) {
  13123     return This->lpVtbl->putref_Format(This,AudioFormat);
  13124 }
  13125 static inline HRESULT ISpeechMMSysAudio_Read(ISpeechMMSysAudio* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
  13126     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
  13127 }
  13128 static inline HRESULT ISpeechMMSysAudio_Write(ISpeechMMSysAudio* This,VARIANT Buffer,LONG *BytesWritten) {
  13129     return This->lpVtbl->Write(This,Buffer,BytesWritten);
  13130 }
  13131 static inline HRESULT ISpeechMMSysAudio_Seek(ISpeechMMSysAudio* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
  13132     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
  13133 }
  13134 /*** ISpeechAudio methods ***/
  13135 static inline HRESULT ISpeechMMSysAudio_get_Status(ISpeechMMSysAudio* This,ISpeechAudioStatus **Status) {
  13136     return This->lpVtbl->get_Status(This,Status);
  13137 }
  13138 static inline HRESULT ISpeechMMSysAudio_get_BufferInfo(ISpeechMMSysAudio* This,ISpeechAudioBufferInfo **BufferInfo) {
  13139     return This->lpVtbl->get_BufferInfo(This,BufferInfo);
  13140 }
  13141 static inline HRESULT ISpeechMMSysAudio_get_DefaultFormat(ISpeechMMSysAudio* This,ISpeechAudioFormat **StreamFormat) {
  13142     return This->lpVtbl->get_DefaultFormat(This,StreamFormat);
  13143 }
  13144 static inline HRESULT ISpeechMMSysAudio_get_Volume(ISpeechMMSysAudio* This,LONG *Volume) {
  13145     return This->lpVtbl->get_Volume(This,Volume);
  13146 }
  13147 static inline HRESULT ISpeechMMSysAudio_put_Volume(ISpeechMMSysAudio* This,LONG Volume) {
  13148     return This->lpVtbl->put_Volume(This,Volume);
  13149 }
  13150 static inline HRESULT ISpeechMMSysAudio_get_BufferNotifySize(ISpeechMMSysAudio* This,LONG *BufferNotifySize) {
  13151     return This->lpVtbl->get_BufferNotifySize(This,BufferNotifySize);
  13152 }
  13153 static inline HRESULT ISpeechMMSysAudio_put_BufferNotifySize(ISpeechMMSysAudio* This,LONG BufferNotifySize) {
  13154     return This->lpVtbl->put_BufferNotifySize(This,BufferNotifySize);
  13155 }
  13156 static inline HRESULT ISpeechMMSysAudio_get_EventHandle(ISpeechMMSysAudio* This,LONG *EventHandle) {
  13157     return This->lpVtbl->get_EventHandle(This,EventHandle);
  13158 }
  13159 static inline HRESULT ISpeechMMSysAudio_SetState(ISpeechMMSysAudio* This,SpeechAudioState State) {
  13160     return This->lpVtbl->SetState(This,State);
  13161 }
  13162 /*** ISpeechMMSysAudio methods ***/
  13163 static inline HRESULT ISpeechMMSysAudio_get_DeviceId(ISpeechMMSysAudio* This,LONG *DeviceId) {
  13164     return This->lpVtbl->get_DeviceId(This,DeviceId);
  13165 }
  13166 static inline HRESULT ISpeechMMSysAudio_put_DeviceId(ISpeechMMSysAudio* This,LONG DeviceId) {
  13167     return This->lpVtbl->put_DeviceId(This,DeviceId);
  13168 }
  13169 static inline HRESULT ISpeechMMSysAudio_get_LineId(ISpeechMMSysAudio* This,LONG *LineId) {
  13170     return This->lpVtbl->get_LineId(This,LineId);
  13171 }
  13172 static inline HRESULT ISpeechMMSysAudio_put_LineId(ISpeechMMSysAudio* This,LONG LineId) {
  13173     return This->lpVtbl->put_LineId(This,LineId);
  13174 }
  13175 static inline HRESULT ISpeechMMSysAudio_get_MMHandle(ISpeechMMSysAudio* This,LONG *Handle) {
  13176     return This->lpVtbl->get_MMHandle(This,Handle);
  13177 }
  13178 #endif
  13179 #endif
  13180 
  13181 #endif
  13182 
  13183 
  13184 #endif  /* __ISpeechMMSysAudio_INTERFACE_DEFINED__ */
  13185 
  13186 /*****************************************************************************
  13187  * ISpeechFileStream interface
  13188  */
  13189 #ifndef __ISpeechFileStream_INTERFACE_DEFINED__
  13190 #define __ISpeechFileStream_INTERFACE_DEFINED__
  13191 
  13192 DEFINE_GUID(IID_ISpeechFileStream, 0xaf67f125, 0xab39, 0x4e93, 0xb4,0xa2, 0xcc,0x2e,0x66,0xe1,0x82,0xa7);
  13193 #if defined(__cplusplus) && !defined(CINTERFACE)
  13194 MIDL_INTERFACE("af67f125-ab39-4e93-b4a2-cc2e66e182a7")
  13195 ISpeechFileStream : public ISpeechBaseStream
  13196 {
  13197     virtual HRESULT STDMETHODCALLTYPE Open(
  13198         BSTR FileName,
  13199         SpeechStreamFileMode FileMode = SSFMOpenForRead,
  13200         VARIANT_BOOL DoEvents = 0) = 0;
  13201 
  13202     virtual HRESULT STDMETHODCALLTYPE Close(
  13203         ) = 0;
  13204 
  13205 };
  13206 #ifdef __CRT_UUID_DECL
  13207 __CRT_UUID_DECL(ISpeechFileStream, 0xaf67f125, 0xab39, 0x4e93, 0xb4,0xa2, 0xcc,0x2e,0x66,0xe1,0x82,0xa7)
  13208 #endif
  13209 #else
  13210 typedef struct ISpeechFileStreamVtbl {
  13211     BEGIN_INTERFACE
  13212 
  13213     /*** IUnknown methods ***/
  13214     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  13215         ISpeechFileStream *This,
  13216         REFIID riid,
  13217         void **ppvObject);
  13218 
  13219     ULONG (STDMETHODCALLTYPE *AddRef)(
  13220         ISpeechFileStream *This);
  13221 
  13222     ULONG (STDMETHODCALLTYPE *Release)(
  13223         ISpeechFileStream *This);
  13224 
  13225     /*** IDispatch methods ***/
  13226     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  13227         ISpeechFileStream *This,
  13228         UINT *pctinfo);
  13229 
  13230     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  13231         ISpeechFileStream *This,
  13232         UINT iTInfo,
  13233         LCID lcid,
  13234         ITypeInfo **ppTInfo);
  13235 
  13236     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  13237         ISpeechFileStream *This,
  13238         REFIID riid,
  13239         LPOLESTR *rgszNames,
  13240         UINT cNames,
  13241         LCID lcid,
  13242         DISPID *rgDispId);
  13243 
  13244     HRESULT (STDMETHODCALLTYPE *Invoke)(
  13245         ISpeechFileStream *This,
  13246         DISPID dispIdMember,
  13247         REFIID riid,
  13248         LCID lcid,
  13249         WORD wFlags,
  13250         DISPPARAMS *pDispParams,
  13251         VARIANT *pVarResult,
  13252         EXCEPINFO *pExcepInfo,
  13253         UINT *puArgErr);
  13254 
  13255     /*** ISpeechBaseStream methods ***/
  13256     HRESULT (STDMETHODCALLTYPE *get_Format)(
  13257         ISpeechFileStream *This,
  13258         ISpeechAudioFormat **AudioFormat);
  13259 
  13260     HRESULT (STDMETHODCALLTYPE *putref_Format)(
  13261         ISpeechFileStream *This,
  13262         ISpeechAudioFormat *AudioFormat);
  13263 
  13264     HRESULT (STDMETHODCALLTYPE *Read)(
  13265         ISpeechFileStream *This,
  13266         VARIANT *Buffer,
  13267         LONG NumberOfBytes,
  13268         LONG *BytesRead);
  13269 
  13270     HRESULT (STDMETHODCALLTYPE *Write)(
  13271         ISpeechFileStream *This,
  13272         VARIANT Buffer,
  13273         LONG *BytesWritten);
  13274 
  13275     HRESULT (STDMETHODCALLTYPE *Seek)(
  13276         ISpeechFileStream *This,
  13277         VARIANT Position,
  13278         SpeechStreamSeekPositionType Origin,
  13279         VARIANT *NewPosition);
  13280 
  13281     /*** ISpeechFileStream methods ***/
  13282     HRESULT (STDMETHODCALLTYPE *Open)(
  13283         ISpeechFileStream *This,
  13284         BSTR FileName,
  13285         SpeechStreamFileMode FileMode,
  13286         VARIANT_BOOL DoEvents);
  13287 
  13288     HRESULT (STDMETHODCALLTYPE *Close)(
  13289         ISpeechFileStream *This);
  13290 
  13291     END_INTERFACE
  13292 } ISpeechFileStreamVtbl;
  13293 
  13294 interface ISpeechFileStream {
  13295     CONST_VTBL ISpeechFileStreamVtbl* lpVtbl;
  13296 };
  13297 
  13298 #ifdef COBJMACROS
  13299 #ifndef WIDL_C_INLINE_WRAPPERS
  13300 /*** IUnknown methods ***/
  13301 #define ISpeechFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13302 #define ISpeechFileStream_AddRef(This) (This)->lpVtbl->AddRef(This)
  13303 #define ISpeechFileStream_Release(This) (This)->lpVtbl->Release(This)
  13304 /*** IDispatch methods ***/
  13305 #define ISpeechFileStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  13306 #define ISpeechFileStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  13307 #define ISpeechFileStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  13308 #define ISpeechFileStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  13309 /*** ISpeechBaseStream methods ***/
  13310 #define ISpeechFileStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
  13311 #define ISpeechFileStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
  13312 #define ISpeechFileStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
  13313 #define ISpeechFileStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
  13314 #define ISpeechFileStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
  13315 /*** ISpeechFileStream methods ***/
  13316 #define ISpeechFileStream_Open(This,FileName,FileMode,DoEvents) (This)->lpVtbl->Open(This,FileName,FileMode,DoEvents)
  13317 #define ISpeechFileStream_Close(This) (This)->lpVtbl->Close(This)
  13318 #else
  13319 /*** IUnknown methods ***/
  13320 static inline HRESULT ISpeechFileStream_QueryInterface(ISpeechFileStream* This,REFIID riid,void **ppvObject) {
  13321     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  13322 }
  13323 static inline ULONG ISpeechFileStream_AddRef(ISpeechFileStream* This) {
  13324     return This->lpVtbl->AddRef(This);
  13325 }
  13326 static inline ULONG ISpeechFileStream_Release(ISpeechFileStream* This) {
  13327     return This->lpVtbl->Release(This);
  13328 }
  13329 /*** IDispatch methods ***/
  13330 static inline HRESULT ISpeechFileStream_GetTypeInfoCount(ISpeechFileStream* This,UINT *pctinfo) {
  13331     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  13332 }
  13333 static inline HRESULT ISpeechFileStream_GetTypeInfo(ISpeechFileStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  13334     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  13335 }
  13336 static inline HRESULT ISpeechFileStream_GetIDsOfNames(ISpeechFileStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  13337     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  13338 }
  13339 static inline HRESULT ISpeechFileStream_Invoke(ISpeechFileStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  13340     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  13341 }
  13342 /*** ISpeechBaseStream methods ***/
  13343 static inline HRESULT ISpeechFileStream_get_Format(ISpeechFileStream* This,ISpeechAudioFormat **AudioFormat) {
  13344     return This->lpVtbl->get_Format(This,AudioFormat);
  13345 }
  13346 static inline HRESULT ISpeechFileStream_putref_Format(ISpeechFileStream* This,ISpeechAudioFormat *AudioFormat) {
  13347     return This->lpVtbl->putref_Format(This,AudioFormat);
  13348 }
  13349 static inline HRESULT ISpeechFileStream_Read(ISpeechFileStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
  13350     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
  13351 }
  13352 static inline HRESULT ISpeechFileStream_Write(ISpeechFileStream* This,VARIANT Buffer,LONG *BytesWritten) {
  13353     return This->lpVtbl->Write(This,Buffer,BytesWritten);
  13354 }
  13355 static inline HRESULT ISpeechFileStream_Seek(ISpeechFileStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
  13356     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
  13357 }
  13358 /*** ISpeechFileStream methods ***/
  13359 static inline HRESULT ISpeechFileStream_Open(ISpeechFileStream* This,BSTR FileName,SpeechStreamFileMode FileMode,VARIANT_BOOL DoEvents) {
  13360     return This->lpVtbl->Open(This,FileName,FileMode,DoEvents);
  13361 }
  13362 static inline HRESULT ISpeechFileStream_Close(ISpeechFileStream* This) {
  13363     return This->lpVtbl->Close(This);
  13364 }
  13365 #endif
  13366 #endif
  13367 
  13368 #endif
  13369 
  13370 
  13371 #endif  /* __ISpeechFileStream_INTERFACE_DEFINED__ */
  13372 
  13373 /*****************************************************************************
  13374  * ISpeechCustomStream interface
  13375  */
  13376 #ifndef __ISpeechCustomStream_INTERFACE_DEFINED__
  13377 #define __ISpeechCustomStream_INTERFACE_DEFINED__
  13378 
  13379 DEFINE_GUID(IID_ISpeechCustomStream, 0x1a9e9f4f, 0x104f, 0x4db8, 0xa1,0x15, 0xef,0xd7,0xfd,0x0c,0x97,0xae);
  13380 #if defined(__cplusplus) && !defined(CINTERFACE)
  13381 MIDL_INTERFACE("1a9e9f4f-104f-4db8-a115-efd7fd0c97ae")
  13382 ISpeechCustomStream : public ISpeechBaseStream
  13383 {
  13384     virtual HRESULT STDMETHODCALLTYPE get_BaseStream(
  13385         IUnknown **ppUnkStream) = 0;
  13386 
  13387     virtual HRESULT STDMETHODCALLTYPE putref_BaseStream(
  13388         IUnknown *pUnkStream) = 0;
  13389 
  13390 };
  13391 #ifdef __CRT_UUID_DECL
  13392 __CRT_UUID_DECL(ISpeechCustomStream, 0x1a9e9f4f, 0x104f, 0x4db8, 0xa1,0x15, 0xef,0xd7,0xfd,0x0c,0x97,0xae)
  13393 #endif
  13394 #else
  13395 typedef struct ISpeechCustomStreamVtbl {
  13396     BEGIN_INTERFACE
  13397 
  13398     /*** IUnknown methods ***/
  13399     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  13400         ISpeechCustomStream *This,
  13401         REFIID riid,
  13402         void **ppvObject);
  13403 
  13404     ULONG (STDMETHODCALLTYPE *AddRef)(
  13405         ISpeechCustomStream *This);
  13406 
  13407     ULONG (STDMETHODCALLTYPE *Release)(
  13408         ISpeechCustomStream *This);
  13409 
  13410     /*** IDispatch methods ***/
  13411     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  13412         ISpeechCustomStream *This,
  13413         UINT *pctinfo);
  13414 
  13415     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  13416         ISpeechCustomStream *This,
  13417         UINT iTInfo,
  13418         LCID lcid,
  13419         ITypeInfo **ppTInfo);
  13420 
  13421     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  13422         ISpeechCustomStream *This,
  13423         REFIID riid,
  13424         LPOLESTR *rgszNames,
  13425         UINT cNames,
  13426         LCID lcid,
  13427         DISPID *rgDispId);
  13428 
  13429     HRESULT (STDMETHODCALLTYPE *Invoke)(
  13430         ISpeechCustomStream *This,
  13431         DISPID dispIdMember,
  13432         REFIID riid,
  13433         LCID lcid,
  13434         WORD wFlags,
  13435         DISPPARAMS *pDispParams,
  13436         VARIANT *pVarResult,
  13437         EXCEPINFO *pExcepInfo,
  13438         UINT *puArgErr);
  13439 
  13440     /*** ISpeechBaseStream methods ***/
  13441     HRESULT (STDMETHODCALLTYPE *get_Format)(
  13442         ISpeechCustomStream *This,
  13443         ISpeechAudioFormat **AudioFormat);
  13444 
  13445     HRESULT (STDMETHODCALLTYPE *putref_Format)(
  13446         ISpeechCustomStream *This,
  13447         ISpeechAudioFormat *AudioFormat);
  13448 
  13449     HRESULT (STDMETHODCALLTYPE *Read)(
  13450         ISpeechCustomStream *This,
  13451         VARIANT *Buffer,
  13452         LONG NumberOfBytes,
  13453         LONG *BytesRead);
  13454 
  13455     HRESULT (STDMETHODCALLTYPE *Write)(
  13456         ISpeechCustomStream *This,
  13457         VARIANT Buffer,
  13458         LONG *BytesWritten);
  13459 
  13460     HRESULT (STDMETHODCALLTYPE *Seek)(
  13461         ISpeechCustomStream *This,
  13462         VARIANT Position,
  13463         SpeechStreamSeekPositionType Origin,
  13464         VARIANT *NewPosition);
  13465 
  13466     /*** ISpeechCustomStream methods ***/
  13467     HRESULT (STDMETHODCALLTYPE *get_BaseStream)(
  13468         ISpeechCustomStream *This,
  13469         IUnknown **ppUnkStream);
  13470 
  13471     HRESULT (STDMETHODCALLTYPE *putref_BaseStream)(
  13472         ISpeechCustomStream *This,
  13473         IUnknown *pUnkStream);
  13474 
  13475     END_INTERFACE
  13476 } ISpeechCustomStreamVtbl;
  13477 
  13478 interface ISpeechCustomStream {
  13479     CONST_VTBL ISpeechCustomStreamVtbl* lpVtbl;
  13480 };
  13481 
  13482 #ifdef COBJMACROS
  13483 #ifndef WIDL_C_INLINE_WRAPPERS
  13484 /*** IUnknown methods ***/
  13485 #define ISpeechCustomStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13486 #define ISpeechCustomStream_AddRef(This) (This)->lpVtbl->AddRef(This)
  13487 #define ISpeechCustomStream_Release(This) (This)->lpVtbl->Release(This)
  13488 /*** IDispatch methods ***/
  13489 #define ISpeechCustomStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  13490 #define ISpeechCustomStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  13491 #define ISpeechCustomStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  13492 #define ISpeechCustomStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  13493 /*** ISpeechBaseStream methods ***/
  13494 #define ISpeechCustomStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
  13495 #define ISpeechCustomStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
  13496 #define ISpeechCustomStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
  13497 #define ISpeechCustomStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
  13498 #define ISpeechCustomStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
  13499 /*** ISpeechCustomStream methods ***/
  13500 #define ISpeechCustomStream_get_BaseStream(This,ppUnkStream) (This)->lpVtbl->get_BaseStream(This,ppUnkStream)
  13501 #define ISpeechCustomStream_putref_BaseStream(This,pUnkStream) (This)->lpVtbl->putref_BaseStream(This,pUnkStream)
  13502 #else
  13503 /*** IUnknown methods ***/
  13504 static inline HRESULT ISpeechCustomStream_QueryInterface(ISpeechCustomStream* This,REFIID riid,void **ppvObject) {
  13505     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  13506 }
  13507 static inline ULONG ISpeechCustomStream_AddRef(ISpeechCustomStream* This) {
  13508     return This->lpVtbl->AddRef(This);
  13509 }
  13510 static inline ULONG ISpeechCustomStream_Release(ISpeechCustomStream* This) {
  13511     return This->lpVtbl->Release(This);
  13512 }
  13513 /*** IDispatch methods ***/
  13514 static inline HRESULT ISpeechCustomStream_GetTypeInfoCount(ISpeechCustomStream* This,UINT *pctinfo) {
  13515     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  13516 }
  13517 static inline HRESULT ISpeechCustomStream_GetTypeInfo(ISpeechCustomStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  13518     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  13519 }
  13520 static inline HRESULT ISpeechCustomStream_GetIDsOfNames(ISpeechCustomStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  13521     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  13522 }
  13523 static inline HRESULT ISpeechCustomStream_Invoke(ISpeechCustomStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  13524     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  13525 }
  13526 /*** ISpeechBaseStream methods ***/
  13527 static inline HRESULT ISpeechCustomStream_get_Format(ISpeechCustomStream* This,ISpeechAudioFormat **AudioFormat) {
  13528     return This->lpVtbl->get_Format(This,AudioFormat);
  13529 }
  13530 static inline HRESULT ISpeechCustomStream_putref_Format(ISpeechCustomStream* This,ISpeechAudioFormat *AudioFormat) {
  13531     return This->lpVtbl->putref_Format(This,AudioFormat);
  13532 }
  13533 static inline HRESULT ISpeechCustomStream_Read(ISpeechCustomStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
  13534     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
  13535 }
  13536 static inline HRESULT ISpeechCustomStream_Write(ISpeechCustomStream* This,VARIANT Buffer,LONG *BytesWritten) {
  13537     return This->lpVtbl->Write(This,Buffer,BytesWritten);
  13538 }
  13539 static inline HRESULT ISpeechCustomStream_Seek(ISpeechCustomStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
  13540     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
  13541 }
  13542 /*** ISpeechCustomStream methods ***/
  13543 static inline HRESULT ISpeechCustomStream_get_BaseStream(ISpeechCustomStream* This,IUnknown **ppUnkStream) {
  13544     return This->lpVtbl->get_BaseStream(This,ppUnkStream);
  13545 }
  13546 static inline HRESULT ISpeechCustomStream_putref_BaseStream(ISpeechCustomStream* This,IUnknown *pUnkStream) {
  13547     return This->lpVtbl->putref_BaseStream(This,pUnkStream);
  13548 }
  13549 #endif
  13550 #endif
  13551 
  13552 #endif
  13553 
  13554 
  13555 #endif  /* __ISpeechCustomStream_INTERFACE_DEFINED__ */
  13556 
  13557 /*****************************************************************************
  13558  * ISpeechMemoryStream interface
  13559  */
  13560 #ifndef __ISpeechMemoryStream_INTERFACE_DEFINED__
  13561 #define __ISpeechMemoryStream_INTERFACE_DEFINED__
  13562 
  13563 DEFINE_GUID(IID_ISpeechMemoryStream, 0xeeb14b68, 0x808b, 0x4abe, 0xa5,0xea, 0xb5,0x1d,0xa7,0x58,0x80,0x08);
  13564 #if defined(__cplusplus) && !defined(CINTERFACE)
  13565 MIDL_INTERFACE("eeb14b68-808b-4abe-a5ea-b51da7588008")
  13566 ISpeechMemoryStream : public ISpeechBaseStream
  13567 {
  13568     virtual HRESULT STDMETHODCALLTYPE SetData(
  13569         VARIANT Data) = 0;
  13570 
  13571     virtual HRESULT STDMETHODCALLTYPE GetData(
  13572         VARIANT *pData) = 0;
  13573 
  13574 };
  13575 #ifdef __CRT_UUID_DECL
  13576 __CRT_UUID_DECL(ISpeechMemoryStream, 0xeeb14b68, 0x808b, 0x4abe, 0xa5,0xea, 0xb5,0x1d,0xa7,0x58,0x80,0x08)
  13577 #endif
  13578 #else
  13579 typedef struct ISpeechMemoryStreamVtbl {
  13580     BEGIN_INTERFACE
  13581 
  13582     /*** IUnknown methods ***/
  13583     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  13584         ISpeechMemoryStream *This,
  13585         REFIID riid,
  13586         void **ppvObject);
  13587 
  13588     ULONG (STDMETHODCALLTYPE *AddRef)(
  13589         ISpeechMemoryStream *This);
  13590 
  13591     ULONG (STDMETHODCALLTYPE *Release)(
  13592         ISpeechMemoryStream *This);
  13593 
  13594     /*** IDispatch methods ***/
  13595     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  13596         ISpeechMemoryStream *This,
  13597         UINT *pctinfo);
  13598 
  13599     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  13600         ISpeechMemoryStream *This,
  13601         UINT iTInfo,
  13602         LCID lcid,
  13603         ITypeInfo **ppTInfo);
  13604 
  13605     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  13606         ISpeechMemoryStream *This,
  13607         REFIID riid,
  13608         LPOLESTR *rgszNames,
  13609         UINT cNames,
  13610         LCID lcid,
  13611         DISPID *rgDispId);
  13612 
  13613     HRESULT (STDMETHODCALLTYPE *Invoke)(
  13614         ISpeechMemoryStream *This,
  13615         DISPID dispIdMember,
  13616         REFIID riid,
  13617         LCID lcid,
  13618         WORD wFlags,
  13619         DISPPARAMS *pDispParams,
  13620         VARIANT *pVarResult,
  13621         EXCEPINFO *pExcepInfo,
  13622         UINT *puArgErr);
  13623 
  13624     /*** ISpeechBaseStream methods ***/
  13625     HRESULT (STDMETHODCALLTYPE *get_Format)(
  13626         ISpeechMemoryStream *This,
  13627         ISpeechAudioFormat **AudioFormat);
  13628 
  13629     HRESULT (STDMETHODCALLTYPE *putref_Format)(
  13630         ISpeechMemoryStream *This,
  13631         ISpeechAudioFormat *AudioFormat);
  13632 
  13633     HRESULT (STDMETHODCALLTYPE *Read)(
  13634         ISpeechMemoryStream *This,
  13635         VARIANT *Buffer,
  13636         LONG NumberOfBytes,
  13637         LONG *BytesRead);
  13638 
  13639     HRESULT (STDMETHODCALLTYPE *Write)(
  13640         ISpeechMemoryStream *This,
  13641         VARIANT Buffer,
  13642         LONG *BytesWritten);
  13643 
  13644     HRESULT (STDMETHODCALLTYPE *Seek)(
  13645         ISpeechMemoryStream *This,
  13646         VARIANT Position,
  13647         SpeechStreamSeekPositionType Origin,
  13648         VARIANT *NewPosition);
  13649 
  13650     /*** ISpeechMemoryStream methods ***/
  13651     HRESULT (STDMETHODCALLTYPE *SetData)(
  13652         ISpeechMemoryStream *This,
  13653         VARIANT Data);
  13654 
  13655     HRESULT (STDMETHODCALLTYPE *GetData)(
  13656         ISpeechMemoryStream *This,
  13657         VARIANT *pData);
  13658 
  13659     END_INTERFACE
  13660 } ISpeechMemoryStreamVtbl;
  13661 
  13662 interface ISpeechMemoryStream {
  13663     CONST_VTBL ISpeechMemoryStreamVtbl* lpVtbl;
  13664 };
  13665 
  13666 #ifdef COBJMACROS
  13667 #ifndef WIDL_C_INLINE_WRAPPERS
  13668 /*** IUnknown methods ***/
  13669 #define ISpeechMemoryStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13670 #define ISpeechMemoryStream_AddRef(This) (This)->lpVtbl->AddRef(This)
  13671 #define ISpeechMemoryStream_Release(This) (This)->lpVtbl->Release(This)
  13672 /*** IDispatch methods ***/
  13673 #define ISpeechMemoryStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  13674 #define ISpeechMemoryStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  13675 #define ISpeechMemoryStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  13676 #define ISpeechMemoryStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  13677 /*** ISpeechBaseStream methods ***/
  13678 #define ISpeechMemoryStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
  13679 #define ISpeechMemoryStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
  13680 #define ISpeechMemoryStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
  13681 #define ISpeechMemoryStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
  13682 #define ISpeechMemoryStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
  13683 /*** ISpeechMemoryStream methods ***/
  13684 #define ISpeechMemoryStream_SetData(This,Data) (This)->lpVtbl->SetData(This,Data)
  13685 #define ISpeechMemoryStream_GetData(This,pData) (This)->lpVtbl->GetData(This,pData)
  13686 #else
  13687 /*** IUnknown methods ***/
  13688 static inline HRESULT ISpeechMemoryStream_QueryInterface(ISpeechMemoryStream* This,REFIID riid,void **ppvObject) {
  13689     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  13690 }
  13691 static inline ULONG ISpeechMemoryStream_AddRef(ISpeechMemoryStream* This) {
  13692     return This->lpVtbl->AddRef(This);
  13693 }
  13694 static inline ULONG ISpeechMemoryStream_Release(ISpeechMemoryStream* This) {
  13695     return This->lpVtbl->Release(This);
  13696 }
  13697 /*** IDispatch methods ***/
  13698 static inline HRESULT ISpeechMemoryStream_GetTypeInfoCount(ISpeechMemoryStream* This,UINT *pctinfo) {
  13699     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  13700 }
  13701 static inline HRESULT ISpeechMemoryStream_GetTypeInfo(ISpeechMemoryStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  13702     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  13703 }
  13704 static inline HRESULT ISpeechMemoryStream_GetIDsOfNames(ISpeechMemoryStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  13705     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  13706 }
  13707 static inline HRESULT ISpeechMemoryStream_Invoke(ISpeechMemoryStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  13708     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  13709 }
  13710 /*** ISpeechBaseStream methods ***/
  13711 static inline HRESULT ISpeechMemoryStream_get_Format(ISpeechMemoryStream* This,ISpeechAudioFormat **AudioFormat) {
  13712     return This->lpVtbl->get_Format(This,AudioFormat);
  13713 }
  13714 static inline HRESULT ISpeechMemoryStream_putref_Format(ISpeechMemoryStream* This,ISpeechAudioFormat *AudioFormat) {
  13715     return This->lpVtbl->putref_Format(This,AudioFormat);
  13716 }
  13717 static inline HRESULT ISpeechMemoryStream_Read(ISpeechMemoryStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
  13718     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
  13719 }
  13720 static inline HRESULT ISpeechMemoryStream_Write(ISpeechMemoryStream* This,VARIANT Buffer,LONG *BytesWritten) {
  13721     return This->lpVtbl->Write(This,Buffer,BytesWritten);
  13722 }
  13723 static inline HRESULT ISpeechMemoryStream_Seek(ISpeechMemoryStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
  13724     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
  13725 }
  13726 /*** ISpeechMemoryStream methods ***/
  13727 static inline HRESULT ISpeechMemoryStream_SetData(ISpeechMemoryStream* This,VARIANT Data) {
  13728     return This->lpVtbl->SetData(This,Data);
  13729 }
  13730 static inline HRESULT ISpeechMemoryStream_GetData(ISpeechMemoryStream* This,VARIANT *pData) {
  13731     return This->lpVtbl->GetData(This,pData);
  13732 }
  13733 #endif
  13734 #endif
  13735 
  13736 #endif
  13737 
  13738 
  13739 #endif  /* __ISpeechMemoryStream_INTERFACE_DEFINED__ */
  13740 
  13741 /*****************************************************************************
  13742  * ISpeechAudioStatus interface
  13743  */
  13744 #ifndef __ISpeechAudioStatus_INTERFACE_DEFINED__
  13745 #define __ISpeechAudioStatus_INTERFACE_DEFINED__
  13746 
  13747 DEFINE_GUID(IID_ISpeechAudioStatus, 0xc62d9c91, 0x7458, 0x47f6, 0x86,0x2d, 0x1e,0xf8,0x6f,0xb0,0xb2,0x78);
  13748 #if defined(__cplusplus) && !defined(CINTERFACE)
  13749 MIDL_INTERFACE("c62d9c91-7458-47f6-862d-1ef86fb0b278")
  13750 ISpeechAudioStatus : public IDispatch
  13751 {
  13752     virtual HRESULT STDMETHODCALLTYPE get_FreeBufferSpace(
  13753         LONG *FreeBufferSpace) = 0;
  13754 
  13755     virtual HRESULT STDMETHODCALLTYPE get_NonBlockingIO(
  13756         LONG *NonBlockingIO) = 0;
  13757 
  13758     virtual HRESULT STDMETHODCALLTYPE get_State(
  13759         SpeechAudioState *State) = 0;
  13760 
  13761     virtual HRESULT STDMETHODCALLTYPE get_CurrentSeekPosition(
  13762         VARIANT *CurrentSeekPosition) = 0;
  13763 
  13764     virtual HRESULT STDMETHODCALLTYPE get_CurrentDevicePosition(
  13765         VARIANT *CurrentDevicePosition) = 0;
  13766 
  13767 };
  13768 #ifdef __CRT_UUID_DECL
  13769 __CRT_UUID_DECL(ISpeechAudioStatus, 0xc62d9c91, 0x7458, 0x47f6, 0x86,0x2d, 0x1e,0xf8,0x6f,0xb0,0xb2,0x78)
  13770 #endif
  13771 #else
  13772 typedef struct ISpeechAudioStatusVtbl {
  13773     BEGIN_INTERFACE
  13774 
  13775     /*** IUnknown methods ***/
  13776     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  13777         ISpeechAudioStatus *This,
  13778         REFIID riid,
  13779         void **ppvObject);
  13780 
  13781     ULONG (STDMETHODCALLTYPE *AddRef)(
  13782         ISpeechAudioStatus *This);
  13783 
  13784     ULONG (STDMETHODCALLTYPE *Release)(
  13785         ISpeechAudioStatus *This);
  13786 
  13787     /*** IDispatch methods ***/
  13788     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  13789         ISpeechAudioStatus *This,
  13790         UINT *pctinfo);
  13791 
  13792     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  13793         ISpeechAudioStatus *This,
  13794         UINT iTInfo,
  13795         LCID lcid,
  13796         ITypeInfo **ppTInfo);
  13797 
  13798     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  13799         ISpeechAudioStatus *This,
  13800         REFIID riid,
  13801         LPOLESTR *rgszNames,
  13802         UINT cNames,
  13803         LCID lcid,
  13804         DISPID *rgDispId);
  13805 
  13806     HRESULT (STDMETHODCALLTYPE *Invoke)(
  13807         ISpeechAudioStatus *This,
  13808         DISPID dispIdMember,
  13809         REFIID riid,
  13810         LCID lcid,
  13811         WORD wFlags,
  13812         DISPPARAMS *pDispParams,
  13813         VARIANT *pVarResult,
  13814         EXCEPINFO *pExcepInfo,
  13815         UINT *puArgErr);
  13816 
  13817     /*** ISpeechAudioStatus methods ***/
  13818     HRESULT (STDMETHODCALLTYPE *get_FreeBufferSpace)(
  13819         ISpeechAudioStatus *This,
  13820         LONG *FreeBufferSpace);
  13821 
  13822     HRESULT (STDMETHODCALLTYPE *get_NonBlockingIO)(
  13823         ISpeechAudioStatus *This,
  13824         LONG *NonBlockingIO);
  13825 
  13826     HRESULT (STDMETHODCALLTYPE *get_State)(
  13827         ISpeechAudioStatus *This,
  13828         SpeechAudioState *State);
  13829 
  13830     HRESULT (STDMETHODCALLTYPE *get_CurrentSeekPosition)(
  13831         ISpeechAudioStatus *This,
  13832         VARIANT *CurrentSeekPosition);
  13833 
  13834     HRESULT (STDMETHODCALLTYPE *get_CurrentDevicePosition)(
  13835         ISpeechAudioStatus *This,
  13836         VARIANT *CurrentDevicePosition);
  13837 
  13838     END_INTERFACE
  13839 } ISpeechAudioStatusVtbl;
  13840 
  13841 interface ISpeechAudioStatus {
  13842     CONST_VTBL ISpeechAudioStatusVtbl* lpVtbl;
  13843 };
  13844 
  13845 #ifdef COBJMACROS
  13846 #ifndef WIDL_C_INLINE_WRAPPERS
  13847 /*** IUnknown methods ***/
  13848 #define ISpeechAudioStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13849 #define ISpeechAudioStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
  13850 #define ISpeechAudioStatus_Release(This) (This)->lpVtbl->Release(This)
  13851 /*** IDispatch methods ***/
  13852 #define ISpeechAudioStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  13853 #define ISpeechAudioStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  13854 #define ISpeechAudioStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  13855 #define ISpeechAudioStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  13856 /*** ISpeechAudioStatus methods ***/
  13857 #define ISpeechAudioStatus_get_FreeBufferSpace(This,FreeBufferSpace) (This)->lpVtbl->get_FreeBufferSpace(This,FreeBufferSpace)
  13858 #define ISpeechAudioStatus_get_NonBlockingIO(This,NonBlockingIO) (This)->lpVtbl->get_NonBlockingIO(This,NonBlockingIO)
  13859 #define ISpeechAudioStatus_get_State(This,State) (This)->lpVtbl->get_State(This,State)
  13860 #define ISpeechAudioStatus_get_CurrentSeekPosition(This,CurrentSeekPosition) (This)->lpVtbl->get_CurrentSeekPosition(This,CurrentSeekPosition)
  13861 #define ISpeechAudioStatus_get_CurrentDevicePosition(This,CurrentDevicePosition) (This)->lpVtbl->get_CurrentDevicePosition(This,CurrentDevicePosition)
  13862 #else
  13863 /*** IUnknown methods ***/
  13864 static inline HRESULT ISpeechAudioStatus_QueryInterface(ISpeechAudioStatus* This,REFIID riid,void **ppvObject) {
  13865     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  13866 }
  13867 static inline ULONG ISpeechAudioStatus_AddRef(ISpeechAudioStatus* This) {
  13868     return This->lpVtbl->AddRef(This);
  13869 }
  13870 static inline ULONG ISpeechAudioStatus_Release(ISpeechAudioStatus* This) {
  13871     return This->lpVtbl->Release(This);
  13872 }
  13873 /*** IDispatch methods ***/
  13874 static inline HRESULT ISpeechAudioStatus_GetTypeInfoCount(ISpeechAudioStatus* This,UINT *pctinfo) {
  13875     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  13876 }
  13877 static inline HRESULT ISpeechAudioStatus_GetTypeInfo(ISpeechAudioStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  13878     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  13879 }
  13880 static inline HRESULT ISpeechAudioStatus_GetIDsOfNames(ISpeechAudioStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  13881     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  13882 }
  13883 static inline HRESULT ISpeechAudioStatus_Invoke(ISpeechAudioStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  13884     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  13885 }
  13886 /*** ISpeechAudioStatus methods ***/
  13887 static inline HRESULT ISpeechAudioStatus_get_FreeBufferSpace(ISpeechAudioStatus* This,LONG *FreeBufferSpace) {
  13888     return This->lpVtbl->get_FreeBufferSpace(This,FreeBufferSpace);
  13889 }
  13890 static inline HRESULT ISpeechAudioStatus_get_NonBlockingIO(ISpeechAudioStatus* This,LONG *NonBlockingIO) {
  13891     return This->lpVtbl->get_NonBlockingIO(This,NonBlockingIO);
  13892 }
  13893 static inline HRESULT ISpeechAudioStatus_get_State(ISpeechAudioStatus* This,SpeechAudioState *State) {
  13894     return This->lpVtbl->get_State(This,State);
  13895 }
  13896 static inline HRESULT ISpeechAudioStatus_get_CurrentSeekPosition(ISpeechAudioStatus* This,VARIANT *CurrentSeekPosition) {
  13897     return This->lpVtbl->get_CurrentSeekPosition(This,CurrentSeekPosition);
  13898 }
  13899 static inline HRESULT ISpeechAudioStatus_get_CurrentDevicePosition(ISpeechAudioStatus* This,VARIANT *CurrentDevicePosition) {
  13900     return This->lpVtbl->get_CurrentDevicePosition(This,CurrentDevicePosition);
  13901 }
  13902 #endif
  13903 #endif
  13904 
  13905 #endif
  13906 
  13907 
  13908 #endif  /* __ISpeechAudioStatus_INTERFACE_DEFINED__ */
  13909 
  13910 /*****************************************************************************
  13911  * ISpeechAudioBufferInfo interface
  13912  */
  13913 #ifndef __ISpeechAudioBufferInfo_INTERFACE_DEFINED__
  13914 #define __ISpeechAudioBufferInfo_INTERFACE_DEFINED__
  13915 
  13916 DEFINE_GUID(IID_ISpeechAudioBufferInfo, 0x11b103d8, 0x1142, 0x4edf, 0xa0,0x93, 0x82,0xfb,0x39,0x15,0xf8,0xcc);
  13917 #if defined(__cplusplus) && !defined(CINTERFACE)
  13918 MIDL_INTERFACE("11b103d8-1142-4edf-a093-82fb3915f8cc")
  13919 ISpeechAudioBufferInfo : public IDispatch
  13920 {
  13921     virtual HRESULT STDMETHODCALLTYPE get_MinNotification(
  13922         LONG *MinNotification) = 0;
  13923 
  13924     virtual HRESULT STDMETHODCALLTYPE put_MinNotification(
  13925         LONG MinNotification) = 0;
  13926 
  13927     virtual HRESULT STDMETHODCALLTYPE get_BufferSize(
  13928         LONG *BufferSize) = 0;
  13929 
  13930     virtual HRESULT STDMETHODCALLTYPE put_BufferSize(
  13931         LONG BufferSize) = 0;
  13932 
  13933     virtual HRESULT STDMETHODCALLTYPE get_EventBias(
  13934         LONG *EventBias) = 0;
  13935 
  13936     virtual HRESULT STDMETHODCALLTYPE put_EventBias(
  13937         LONG EventBias) = 0;
  13938 
  13939 };
  13940 #ifdef __CRT_UUID_DECL
  13941 __CRT_UUID_DECL(ISpeechAudioBufferInfo, 0x11b103d8, 0x1142, 0x4edf, 0xa0,0x93, 0x82,0xfb,0x39,0x15,0xf8,0xcc)
  13942 #endif
  13943 #else
  13944 typedef struct ISpeechAudioBufferInfoVtbl {
  13945     BEGIN_INTERFACE
  13946 
  13947     /*** IUnknown methods ***/
  13948     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  13949         ISpeechAudioBufferInfo *This,
  13950         REFIID riid,
  13951         void **ppvObject);
  13952 
  13953     ULONG (STDMETHODCALLTYPE *AddRef)(
  13954         ISpeechAudioBufferInfo *This);
  13955 
  13956     ULONG (STDMETHODCALLTYPE *Release)(
  13957         ISpeechAudioBufferInfo *This);
  13958 
  13959     /*** IDispatch methods ***/
  13960     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  13961         ISpeechAudioBufferInfo *This,
  13962         UINT *pctinfo);
  13963 
  13964     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  13965         ISpeechAudioBufferInfo *This,
  13966         UINT iTInfo,
  13967         LCID lcid,
  13968         ITypeInfo **ppTInfo);
  13969 
  13970     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  13971         ISpeechAudioBufferInfo *This,
  13972         REFIID riid,
  13973         LPOLESTR *rgszNames,
  13974         UINT cNames,
  13975         LCID lcid,
  13976         DISPID *rgDispId);
  13977 
  13978     HRESULT (STDMETHODCALLTYPE *Invoke)(
  13979         ISpeechAudioBufferInfo *This,
  13980         DISPID dispIdMember,
  13981         REFIID riid,
  13982         LCID lcid,
  13983         WORD wFlags,
  13984         DISPPARAMS *pDispParams,
  13985         VARIANT *pVarResult,
  13986         EXCEPINFO *pExcepInfo,
  13987         UINT *puArgErr);
  13988 
  13989     /*** ISpeechAudioBufferInfo methods ***/
  13990     HRESULT (STDMETHODCALLTYPE *get_MinNotification)(
  13991         ISpeechAudioBufferInfo *This,
  13992         LONG *MinNotification);
  13993 
  13994     HRESULT (STDMETHODCALLTYPE *put_MinNotification)(
  13995         ISpeechAudioBufferInfo *This,
  13996         LONG MinNotification);
  13997 
  13998     HRESULT (STDMETHODCALLTYPE *get_BufferSize)(
  13999         ISpeechAudioBufferInfo *This,
  14000         LONG *BufferSize);
  14001 
  14002     HRESULT (STDMETHODCALLTYPE *put_BufferSize)(
  14003         ISpeechAudioBufferInfo *This,
  14004         LONG BufferSize);
  14005 
  14006     HRESULT (STDMETHODCALLTYPE *get_EventBias)(
  14007         ISpeechAudioBufferInfo *This,
  14008         LONG *EventBias);
  14009 
  14010     HRESULT (STDMETHODCALLTYPE *put_EventBias)(
  14011         ISpeechAudioBufferInfo *This,
  14012         LONG EventBias);
  14013 
  14014     END_INTERFACE
  14015 } ISpeechAudioBufferInfoVtbl;
  14016 
  14017 interface ISpeechAudioBufferInfo {
  14018     CONST_VTBL ISpeechAudioBufferInfoVtbl* lpVtbl;
  14019 };
  14020 
  14021 #ifdef COBJMACROS
  14022 #ifndef WIDL_C_INLINE_WRAPPERS
  14023 /*** IUnknown methods ***/
  14024 #define ISpeechAudioBufferInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14025 #define ISpeechAudioBufferInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
  14026 #define ISpeechAudioBufferInfo_Release(This) (This)->lpVtbl->Release(This)
  14027 /*** IDispatch methods ***/
  14028 #define ISpeechAudioBufferInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  14029 #define ISpeechAudioBufferInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  14030 #define ISpeechAudioBufferInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  14031 #define ISpeechAudioBufferInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  14032 /*** ISpeechAudioBufferInfo methods ***/
  14033 #define ISpeechAudioBufferInfo_get_MinNotification(This,MinNotification) (This)->lpVtbl->get_MinNotification(This,MinNotification)
  14034 #define ISpeechAudioBufferInfo_put_MinNotification(This,MinNotification) (This)->lpVtbl->put_MinNotification(This,MinNotification)
  14035 #define ISpeechAudioBufferInfo_get_BufferSize(This,BufferSize) (This)->lpVtbl->get_BufferSize(This,BufferSize)
  14036 #define ISpeechAudioBufferInfo_put_BufferSize(This,BufferSize) (This)->lpVtbl->put_BufferSize(This,BufferSize)
  14037 #define ISpeechAudioBufferInfo_get_EventBias(This,EventBias) (This)->lpVtbl->get_EventBias(This,EventBias)
  14038 #define ISpeechAudioBufferInfo_put_EventBias(This,EventBias) (This)->lpVtbl->put_EventBias(This,EventBias)
  14039 #else
  14040 /*** IUnknown methods ***/
  14041 static inline HRESULT ISpeechAudioBufferInfo_QueryInterface(ISpeechAudioBufferInfo* This,REFIID riid,void **ppvObject) {
  14042     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  14043 }
  14044 static inline ULONG ISpeechAudioBufferInfo_AddRef(ISpeechAudioBufferInfo* This) {
  14045     return This->lpVtbl->AddRef(This);
  14046 }
  14047 static inline ULONG ISpeechAudioBufferInfo_Release(ISpeechAudioBufferInfo* This) {
  14048     return This->lpVtbl->Release(This);
  14049 }
  14050 /*** IDispatch methods ***/
  14051 static inline HRESULT ISpeechAudioBufferInfo_GetTypeInfoCount(ISpeechAudioBufferInfo* This,UINT *pctinfo) {
  14052     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  14053 }
  14054 static inline HRESULT ISpeechAudioBufferInfo_GetTypeInfo(ISpeechAudioBufferInfo* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  14055     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  14056 }
  14057 static inline HRESULT ISpeechAudioBufferInfo_GetIDsOfNames(ISpeechAudioBufferInfo* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  14058     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  14059 }
  14060 static inline HRESULT ISpeechAudioBufferInfo_Invoke(ISpeechAudioBufferInfo* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  14061     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  14062 }
  14063 /*** ISpeechAudioBufferInfo methods ***/
  14064 static inline HRESULT ISpeechAudioBufferInfo_get_MinNotification(ISpeechAudioBufferInfo* This,LONG *MinNotification) {
  14065     return This->lpVtbl->get_MinNotification(This,MinNotification);
  14066 }
  14067 static inline HRESULT ISpeechAudioBufferInfo_put_MinNotification(ISpeechAudioBufferInfo* This,LONG MinNotification) {
  14068     return This->lpVtbl->put_MinNotification(This,MinNotification);
  14069 }
  14070 static inline HRESULT ISpeechAudioBufferInfo_get_BufferSize(ISpeechAudioBufferInfo* This,LONG *BufferSize) {
  14071     return This->lpVtbl->get_BufferSize(This,BufferSize);
  14072 }
  14073 static inline HRESULT ISpeechAudioBufferInfo_put_BufferSize(ISpeechAudioBufferInfo* This,LONG BufferSize) {
  14074     return This->lpVtbl->put_BufferSize(This,BufferSize);
  14075 }
  14076 static inline HRESULT ISpeechAudioBufferInfo_get_EventBias(ISpeechAudioBufferInfo* This,LONG *EventBias) {
  14077     return This->lpVtbl->get_EventBias(This,EventBias);
  14078 }
  14079 static inline HRESULT ISpeechAudioBufferInfo_put_EventBias(ISpeechAudioBufferInfo* This,LONG EventBias) {
  14080     return This->lpVtbl->put_EventBias(This,EventBias);
  14081 }
  14082 #endif
  14083 #endif
  14084 
  14085 #endif
  14086 
  14087 
  14088 #endif  /* __ISpeechAudioBufferInfo_INTERFACE_DEFINED__ */
  14089 
  14090 /*****************************************************************************
  14091  * ISpeechWaveFormatEx interface
  14092  */
  14093 #ifndef __ISpeechWaveFormatEx_INTERFACE_DEFINED__
  14094 #define __ISpeechWaveFormatEx_INTERFACE_DEFINED__
  14095 
  14096 DEFINE_GUID(IID_ISpeechWaveFormatEx, 0x7a1ef0d5, 0x1581, 0x4741, 0x88,0xe4, 0x20,0x9a,0x49,0xf1,0x1a,0x10);
  14097 #if defined(__cplusplus) && !defined(CINTERFACE)
  14098 MIDL_INTERFACE("7a1ef0d5-1581-4741-88e4-209a49f11a10")
  14099 ISpeechWaveFormatEx : public IDispatch
  14100 {
  14101     virtual HRESULT STDMETHODCALLTYPE get_FormatTag(
  14102         short *FormatTag) = 0;
  14103 
  14104     virtual HRESULT STDMETHODCALLTYPE put_FormatTag(
  14105         short FormatTag) = 0;
  14106 
  14107     virtual HRESULT STDMETHODCALLTYPE get_Channels(
  14108         short *Channels) = 0;
  14109 
  14110     virtual HRESULT STDMETHODCALLTYPE put_Channels(
  14111         short Channels) = 0;
  14112 
  14113     virtual HRESULT STDMETHODCALLTYPE get_SamplesPerSec(
  14114         LONG *SamplesPerSec) = 0;
  14115 
  14116     virtual HRESULT STDMETHODCALLTYPE put_SamplesPerSec(
  14117         LONG SamplesPerSec) = 0;
  14118 
  14119     virtual HRESULT STDMETHODCALLTYPE get_AvgBytesPerSec(
  14120         LONG *AvgBytesPerSec) = 0;
  14121 
  14122     virtual HRESULT STDMETHODCALLTYPE put_AvgBytesPerSec(
  14123         LONG AvgBytesPerSec) = 0;
  14124 
  14125     virtual HRESULT STDMETHODCALLTYPE get_BlockAlign(
  14126         short *BlockAlign) = 0;
  14127 
  14128     virtual HRESULT STDMETHODCALLTYPE put_BlockAlign(
  14129         short BlockAlign) = 0;
  14130 
  14131     virtual HRESULT STDMETHODCALLTYPE get_BitsPerSample(
  14132         short *BitsPerSample) = 0;
  14133 
  14134     virtual HRESULT STDMETHODCALLTYPE put_BitsPerSample(
  14135         short BitsPerSample) = 0;
  14136 
  14137     virtual HRESULT STDMETHODCALLTYPE get_ExtraData(
  14138         VARIANT *ExtraData) = 0;
  14139 
  14140     virtual HRESULT STDMETHODCALLTYPE put_ExtraData(
  14141         VARIANT ExtraData) = 0;
  14142 
  14143 };
  14144 #ifdef __CRT_UUID_DECL
  14145 __CRT_UUID_DECL(ISpeechWaveFormatEx, 0x7a1ef0d5, 0x1581, 0x4741, 0x88,0xe4, 0x20,0x9a,0x49,0xf1,0x1a,0x10)
  14146 #endif
  14147 #else
  14148 typedef struct ISpeechWaveFormatExVtbl {
  14149     BEGIN_INTERFACE
  14150 
  14151     /*** IUnknown methods ***/
  14152     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  14153         ISpeechWaveFormatEx *This,
  14154         REFIID riid,
  14155         void **ppvObject);
  14156 
  14157     ULONG (STDMETHODCALLTYPE *AddRef)(
  14158         ISpeechWaveFormatEx *This);
  14159 
  14160     ULONG (STDMETHODCALLTYPE *Release)(
  14161         ISpeechWaveFormatEx *This);
  14162 
  14163     /*** IDispatch methods ***/
  14164     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  14165         ISpeechWaveFormatEx *This,
  14166         UINT *pctinfo);
  14167 
  14168     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  14169         ISpeechWaveFormatEx *This,
  14170         UINT iTInfo,
  14171         LCID lcid,
  14172         ITypeInfo **ppTInfo);
  14173 
  14174     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  14175         ISpeechWaveFormatEx *This,
  14176         REFIID riid,
  14177         LPOLESTR *rgszNames,
  14178         UINT cNames,
  14179         LCID lcid,
  14180         DISPID *rgDispId);
  14181 
  14182     HRESULT (STDMETHODCALLTYPE *Invoke)(
  14183         ISpeechWaveFormatEx *This,
  14184         DISPID dispIdMember,
  14185         REFIID riid,
  14186         LCID lcid,
  14187         WORD wFlags,
  14188         DISPPARAMS *pDispParams,
  14189         VARIANT *pVarResult,
  14190         EXCEPINFO *pExcepInfo,
  14191         UINT *puArgErr);
  14192 
  14193     /*** ISpeechWaveFormatEx methods ***/
  14194     HRESULT (STDMETHODCALLTYPE *get_FormatTag)(
  14195         ISpeechWaveFormatEx *This,
  14196         short *FormatTag);
  14197 
  14198     HRESULT (STDMETHODCALLTYPE *put_FormatTag)(
  14199         ISpeechWaveFormatEx *This,
  14200         short FormatTag);
  14201 
  14202     HRESULT (STDMETHODCALLTYPE *get_Channels)(
  14203         ISpeechWaveFormatEx *This,
  14204         short *Channels);
  14205 
  14206     HRESULT (STDMETHODCALLTYPE *put_Channels)(
  14207         ISpeechWaveFormatEx *This,
  14208         short Channels);
  14209 
  14210     HRESULT (STDMETHODCALLTYPE *get_SamplesPerSec)(
  14211         ISpeechWaveFormatEx *This,
  14212         LONG *SamplesPerSec);
  14213 
  14214     HRESULT (STDMETHODCALLTYPE *put_SamplesPerSec)(
  14215         ISpeechWaveFormatEx *This,
  14216         LONG SamplesPerSec);
  14217 
  14218     HRESULT (STDMETHODCALLTYPE *get_AvgBytesPerSec)(
  14219         ISpeechWaveFormatEx *This,
  14220         LONG *AvgBytesPerSec);
  14221 
  14222     HRESULT (STDMETHODCALLTYPE *put_AvgBytesPerSec)(
  14223         ISpeechWaveFormatEx *This,
  14224         LONG AvgBytesPerSec);
  14225 
  14226     HRESULT (STDMETHODCALLTYPE *get_BlockAlign)(
  14227         ISpeechWaveFormatEx *This,
  14228         short *BlockAlign);
  14229 
  14230     HRESULT (STDMETHODCALLTYPE *put_BlockAlign)(
  14231         ISpeechWaveFormatEx *This,
  14232         short BlockAlign);
  14233 
  14234     HRESULT (STDMETHODCALLTYPE *get_BitsPerSample)(
  14235         ISpeechWaveFormatEx *This,
  14236         short *BitsPerSample);
  14237 
  14238     HRESULT (STDMETHODCALLTYPE *put_BitsPerSample)(
  14239         ISpeechWaveFormatEx *This,
  14240         short BitsPerSample);
  14241 
  14242     HRESULT (STDMETHODCALLTYPE *get_ExtraData)(
  14243         ISpeechWaveFormatEx *This,
  14244         VARIANT *ExtraData);
  14245 
  14246     HRESULT (STDMETHODCALLTYPE *put_ExtraData)(
  14247         ISpeechWaveFormatEx *This,
  14248         VARIANT ExtraData);
  14249 
  14250     END_INTERFACE
  14251 } ISpeechWaveFormatExVtbl;
  14252 
  14253 interface ISpeechWaveFormatEx {
  14254     CONST_VTBL ISpeechWaveFormatExVtbl* lpVtbl;
  14255 };
  14256 
  14257 #ifdef COBJMACROS
  14258 #ifndef WIDL_C_INLINE_WRAPPERS
  14259 /*** IUnknown methods ***/
  14260 #define ISpeechWaveFormatEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14261 #define ISpeechWaveFormatEx_AddRef(This) (This)->lpVtbl->AddRef(This)
  14262 #define ISpeechWaveFormatEx_Release(This) (This)->lpVtbl->Release(This)
  14263 /*** IDispatch methods ***/
  14264 #define ISpeechWaveFormatEx_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  14265 #define ISpeechWaveFormatEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  14266 #define ISpeechWaveFormatEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  14267 #define ISpeechWaveFormatEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  14268 /*** ISpeechWaveFormatEx methods ***/
  14269 #define ISpeechWaveFormatEx_get_FormatTag(This,FormatTag) (This)->lpVtbl->get_FormatTag(This,FormatTag)
  14270 #define ISpeechWaveFormatEx_put_FormatTag(This,FormatTag) (This)->lpVtbl->put_FormatTag(This,FormatTag)
  14271 #define ISpeechWaveFormatEx_get_Channels(This,Channels) (This)->lpVtbl->get_Channels(This,Channels)
  14272 #define ISpeechWaveFormatEx_put_Channels(This,Channels) (This)->lpVtbl->put_Channels(This,Channels)
  14273 #define ISpeechWaveFormatEx_get_SamplesPerSec(This,SamplesPerSec) (This)->lpVtbl->get_SamplesPerSec(This,SamplesPerSec)
  14274 #define ISpeechWaveFormatEx_put_SamplesPerSec(This,SamplesPerSec) (This)->lpVtbl->put_SamplesPerSec(This,SamplesPerSec)
  14275 #define ISpeechWaveFormatEx_get_AvgBytesPerSec(This,AvgBytesPerSec) (This)->lpVtbl->get_AvgBytesPerSec(This,AvgBytesPerSec)
  14276 #define ISpeechWaveFormatEx_put_AvgBytesPerSec(This,AvgBytesPerSec) (This)->lpVtbl->put_AvgBytesPerSec(This,AvgBytesPerSec)
  14277 #define ISpeechWaveFormatEx_get_BlockAlign(This,BlockAlign) (This)->lpVtbl->get_BlockAlign(This,BlockAlign)
  14278 #define ISpeechWaveFormatEx_put_BlockAlign(This,BlockAlign) (This)->lpVtbl->put_BlockAlign(This,BlockAlign)
  14279 #define ISpeechWaveFormatEx_get_BitsPerSample(This,BitsPerSample) (This)->lpVtbl->get_BitsPerSample(This,BitsPerSample)
  14280 #define ISpeechWaveFormatEx_put_BitsPerSample(This,BitsPerSample) (This)->lpVtbl->put_BitsPerSample(This,BitsPerSample)
  14281 #define ISpeechWaveFormatEx_get_ExtraData(This,ExtraData) (This)->lpVtbl->get_ExtraData(This,ExtraData)
  14282 #define ISpeechWaveFormatEx_put_ExtraData(This,ExtraData) (This)->lpVtbl->put_ExtraData(This,ExtraData)
  14283 #else
  14284 /*** IUnknown methods ***/
  14285 static inline HRESULT ISpeechWaveFormatEx_QueryInterface(ISpeechWaveFormatEx* This,REFIID riid,void **ppvObject) {
  14286     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  14287 }
  14288 static inline ULONG ISpeechWaveFormatEx_AddRef(ISpeechWaveFormatEx* This) {
  14289     return This->lpVtbl->AddRef(This);
  14290 }
  14291 static inline ULONG ISpeechWaveFormatEx_Release(ISpeechWaveFormatEx* This) {
  14292     return This->lpVtbl->Release(This);
  14293 }
  14294 /*** IDispatch methods ***/
  14295 static inline HRESULT ISpeechWaveFormatEx_GetTypeInfoCount(ISpeechWaveFormatEx* This,UINT *pctinfo) {
  14296     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  14297 }
  14298 static inline HRESULT ISpeechWaveFormatEx_GetTypeInfo(ISpeechWaveFormatEx* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  14299     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  14300 }
  14301 static inline HRESULT ISpeechWaveFormatEx_GetIDsOfNames(ISpeechWaveFormatEx* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  14302     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  14303 }
  14304 static inline HRESULT ISpeechWaveFormatEx_Invoke(ISpeechWaveFormatEx* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  14305     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  14306 }
  14307 /*** ISpeechWaveFormatEx methods ***/
  14308 static inline HRESULT ISpeechWaveFormatEx_get_FormatTag(ISpeechWaveFormatEx* This,short *FormatTag) {
  14309     return This->lpVtbl->get_FormatTag(This,FormatTag);
  14310 }
  14311 static inline HRESULT ISpeechWaveFormatEx_put_FormatTag(ISpeechWaveFormatEx* This,short FormatTag) {
  14312     return This->lpVtbl->put_FormatTag(This,FormatTag);
  14313 }
  14314 static inline HRESULT ISpeechWaveFormatEx_get_Channels(ISpeechWaveFormatEx* This,short *Channels) {
  14315     return This->lpVtbl->get_Channels(This,Channels);
  14316 }
  14317 static inline HRESULT ISpeechWaveFormatEx_put_Channels(ISpeechWaveFormatEx* This,short Channels) {
  14318     return This->lpVtbl->put_Channels(This,Channels);
  14319 }
  14320 static inline HRESULT ISpeechWaveFormatEx_get_SamplesPerSec(ISpeechWaveFormatEx* This,LONG *SamplesPerSec) {
  14321     return This->lpVtbl->get_SamplesPerSec(This,SamplesPerSec);
  14322 }
  14323 static inline HRESULT ISpeechWaveFormatEx_put_SamplesPerSec(ISpeechWaveFormatEx* This,LONG SamplesPerSec) {
  14324     return This->lpVtbl->put_SamplesPerSec(This,SamplesPerSec);
  14325 }
  14326 static inline HRESULT ISpeechWaveFormatEx_get_AvgBytesPerSec(ISpeechWaveFormatEx* This,LONG *AvgBytesPerSec) {
  14327     return This->lpVtbl->get_AvgBytesPerSec(This,AvgBytesPerSec);
  14328 }
  14329 static inline HRESULT ISpeechWaveFormatEx_put_AvgBytesPerSec(ISpeechWaveFormatEx* This,LONG AvgBytesPerSec) {
  14330     return This->lpVtbl->put_AvgBytesPerSec(This,AvgBytesPerSec);
  14331 }
  14332 static inline HRESULT ISpeechWaveFormatEx_get_BlockAlign(ISpeechWaveFormatEx* This,short *BlockAlign) {
  14333     return This->lpVtbl->get_BlockAlign(This,BlockAlign);
  14334 }
  14335 static inline HRESULT ISpeechWaveFormatEx_put_BlockAlign(ISpeechWaveFormatEx* This,short BlockAlign) {
  14336     return This->lpVtbl->put_BlockAlign(This,BlockAlign);
  14337 }
  14338 static inline HRESULT ISpeechWaveFormatEx_get_BitsPerSample(ISpeechWaveFormatEx* This,short *BitsPerSample) {
  14339     return This->lpVtbl->get_BitsPerSample(This,BitsPerSample);
  14340 }
  14341 static inline HRESULT ISpeechWaveFormatEx_put_BitsPerSample(ISpeechWaveFormatEx* This,short BitsPerSample) {
  14342     return This->lpVtbl->put_BitsPerSample(This,BitsPerSample);
  14343 }
  14344 static inline HRESULT ISpeechWaveFormatEx_get_ExtraData(ISpeechWaveFormatEx* This,VARIANT *ExtraData) {
  14345     return This->lpVtbl->get_ExtraData(This,ExtraData);
  14346 }
  14347 static inline HRESULT ISpeechWaveFormatEx_put_ExtraData(ISpeechWaveFormatEx* This,VARIANT ExtraData) {
  14348     return This->lpVtbl->put_ExtraData(This,ExtraData);
  14349 }
  14350 #endif
  14351 #endif
  14352 
  14353 #endif
  14354 
  14355 
  14356 #endif  /* __ISpeechWaveFormatEx_INTERFACE_DEFINED__ */
  14357 
  14358 /*****************************************************************************
  14359  * ISpeechVoice interface
  14360  */
  14361 #ifndef __ISpeechVoice_INTERFACE_DEFINED__
  14362 #define __ISpeechVoice_INTERFACE_DEFINED__
  14363 
  14364 DEFINE_GUID(IID_ISpeechVoice, 0x269316d8, 0x57bd, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96);
  14365 #if defined(__cplusplus) && !defined(CINTERFACE)
  14366 MIDL_INTERFACE("269316d8-57bd-11d2-9eee-00c04f797396")
  14367 ISpeechVoice : public IDispatch
  14368 {
  14369     virtual HRESULT STDMETHODCALLTYPE get_Status(
  14370         ISpeechVoiceStatus **Status) = 0;
  14371 
  14372     virtual HRESULT STDMETHODCALLTYPE get_Voice(
  14373         ISpeechObjectToken **Voice) = 0;
  14374 
  14375     virtual HRESULT STDMETHODCALLTYPE putref_Voice(
  14376         ISpeechObjectToken *Voice) = 0;
  14377 
  14378     virtual HRESULT STDMETHODCALLTYPE get_AudioOutput(
  14379         ISpeechObjectToken **AudioOutput) = 0;
  14380 
  14381     virtual HRESULT STDMETHODCALLTYPE putref_AudioOutput(
  14382         ISpeechObjectToken *AudioOutput) = 0;
  14383 
  14384     virtual HRESULT STDMETHODCALLTYPE get_AudioOutputStream(
  14385         ISpeechBaseStream **AudioOutputStream) = 0;
  14386 
  14387     virtual HRESULT STDMETHODCALLTYPE putref_AudioOutputStream(
  14388         ISpeechBaseStream *AudioOutputStream) = 0;
  14389 
  14390     virtual HRESULT STDMETHODCALLTYPE get_Rate(
  14391         LONG *Rate) = 0;
  14392 
  14393     virtual HRESULT STDMETHODCALLTYPE put_Rate(
  14394         LONG Rate) = 0;
  14395 
  14396     virtual HRESULT STDMETHODCALLTYPE get_Volume(
  14397         LONG *Volume) = 0;
  14398 
  14399     virtual HRESULT STDMETHODCALLTYPE put_Volume(
  14400         LONG Volume) = 0;
  14401 
  14402     virtual HRESULT STDMETHODCALLTYPE put_AllowAudioOutputFormatChangesOnNextSet(
  14403         VARIANT_BOOL Allow) = 0;
  14404 
  14405     virtual HRESULT STDMETHODCALLTYPE get_AllowAudioOutputFormatChangesOnNextSet(
  14406         VARIANT_BOOL *Allow) = 0;
  14407 
  14408     virtual HRESULT STDMETHODCALLTYPE get_EventInterests(
  14409         SpeechVoiceEvents *EventInterestFlags) = 0;
  14410 
  14411     virtual HRESULT STDMETHODCALLTYPE put_EventInterests(
  14412         SpeechVoiceEvents EventInterestFlags) = 0;
  14413 
  14414     virtual HRESULT STDMETHODCALLTYPE put_Priority(
  14415         SpeechVoicePriority Priority) = 0;
  14416 
  14417     virtual HRESULT STDMETHODCALLTYPE get_Priority(
  14418         SpeechVoicePriority *Priority) = 0;
  14419 
  14420     virtual HRESULT STDMETHODCALLTYPE put_AlertBoundary(
  14421         SpeechVoiceEvents Boundary) = 0;
  14422 
  14423     virtual HRESULT STDMETHODCALLTYPE get_AlertBoundary(
  14424         SpeechVoiceEvents *Boundary) = 0;
  14425 
  14426     virtual HRESULT STDMETHODCALLTYPE put_SynchronousSpeakTimeout(
  14427         LONG msTimeout) = 0;
  14428 
  14429     virtual HRESULT STDMETHODCALLTYPE get_SynchronousSpeakTimeout(
  14430         LONG *msTimeout) = 0;
  14431 
  14432     virtual HRESULT STDMETHODCALLTYPE Speak(
  14433         BSTR Text,
  14434         SpeechVoiceSpeakFlags Flags,
  14435         LONG *StreamNumber) = 0;
  14436 
  14437     virtual HRESULT STDMETHODCALLTYPE SpeakStream(
  14438         ISpeechBaseStream *Stream,
  14439         SpeechVoiceSpeakFlags Flags,
  14440         LONG *StreamNumber) = 0;
  14441 
  14442     virtual HRESULT STDMETHODCALLTYPE Pause(
  14443         ) = 0;
  14444 
  14445     virtual HRESULT STDMETHODCALLTYPE Resume(
  14446         ) = 0;
  14447 
  14448     virtual HRESULT STDMETHODCALLTYPE Skip(
  14449         const BSTR Type,
  14450         LONG NumItems,
  14451         LONG *NumSkipped) = 0;
  14452 
  14453     virtual HRESULT STDMETHODCALLTYPE GetVoices(
  14454         BSTR RequiredAttributes,
  14455         BSTR OptionalAttributes,
  14456         ISpeechObjectTokens **ObjectTokens) = 0;
  14457 
  14458     virtual HRESULT STDMETHODCALLTYPE GetAudioOutputs(
  14459         BSTR RequiredAttributes,
  14460         BSTR OptionalAttributes,
  14461         ISpeechObjectTokens **ObjectTokens) = 0;
  14462 
  14463     virtual HRESULT STDMETHODCALLTYPE WaitUntilDone(
  14464         LONG msTimeout,
  14465         VARIANT_BOOL *Done) = 0;
  14466 
  14467     virtual HRESULT STDMETHODCALLTYPE SpeakCompleteEvent(
  14468         LONG *Handle) = 0;
  14469 
  14470     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
  14471         const BSTR TypeOfUI,
  14472         const VARIANT *ExtraData,
  14473         VARIANT_BOOL *Supported) = 0;
  14474 
  14475     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
  14476         LONG hWndParent,
  14477         BSTR Title,
  14478         const BSTR TypeOfUI,
  14479         const VARIANT *ExtraData = 0) = 0;
  14480 
  14481 };
  14482 #ifdef __CRT_UUID_DECL
  14483 __CRT_UUID_DECL(ISpeechVoice, 0x269316d8, 0x57bd, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96)
  14484 #endif
  14485 #else
  14486 typedef struct ISpeechVoiceVtbl {
  14487     BEGIN_INTERFACE
  14488 
  14489     /*** IUnknown methods ***/
  14490     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  14491         ISpeechVoice *This,
  14492         REFIID riid,
  14493         void **ppvObject);
  14494 
  14495     ULONG (STDMETHODCALLTYPE *AddRef)(
  14496         ISpeechVoice *This);
  14497 
  14498     ULONG (STDMETHODCALLTYPE *Release)(
  14499         ISpeechVoice *This);
  14500 
  14501     /*** IDispatch methods ***/
  14502     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  14503         ISpeechVoice *This,
  14504         UINT *pctinfo);
  14505 
  14506     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  14507         ISpeechVoice *This,
  14508         UINT iTInfo,
  14509         LCID lcid,
  14510         ITypeInfo **ppTInfo);
  14511 
  14512     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  14513         ISpeechVoice *This,
  14514         REFIID riid,
  14515         LPOLESTR *rgszNames,
  14516         UINT cNames,
  14517         LCID lcid,
  14518         DISPID *rgDispId);
  14519 
  14520     HRESULT (STDMETHODCALLTYPE *Invoke)(
  14521         ISpeechVoice *This,
  14522         DISPID dispIdMember,
  14523         REFIID riid,
  14524         LCID lcid,
  14525         WORD wFlags,
  14526         DISPPARAMS *pDispParams,
  14527         VARIANT *pVarResult,
  14528         EXCEPINFO *pExcepInfo,
  14529         UINT *puArgErr);
  14530 
  14531     /*** ISpeechVoice methods ***/
  14532     HRESULT (STDMETHODCALLTYPE *get_Status)(
  14533         ISpeechVoice *This,
  14534         ISpeechVoiceStatus **Status);
  14535 
  14536     HRESULT (STDMETHODCALLTYPE *get_Voice)(
  14537         ISpeechVoice *This,
  14538         ISpeechObjectToken **Voice);
  14539 
  14540     HRESULT (STDMETHODCALLTYPE *putref_Voice)(
  14541         ISpeechVoice *This,
  14542         ISpeechObjectToken *Voice);
  14543 
  14544     HRESULT (STDMETHODCALLTYPE *get_AudioOutput)(
  14545         ISpeechVoice *This,
  14546         ISpeechObjectToken **AudioOutput);
  14547 
  14548     HRESULT (STDMETHODCALLTYPE *putref_AudioOutput)(
  14549         ISpeechVoice *This,
  14550         ISpeechObjectToken *AudioOutput);
  14551 
  14552     HRESULT (STDMETHODCALLTYPE *get_AudioOutputStream)(
  14553         ISpeechVoice *This,
  14554         ISpeechBaseStream **AudioOutputStream);
  14555 
  14556     HRESULT (STDMETHODCALLTYPE *putref_AudioOutputStream)(
  14557         ISpeechVoice *This,
  14558         ISpeechBaseStream *AudioOutputStream);
  14559 
  14560     HRESULT (STDMETHODCALLTYPE *get_Rate)(
  14561         ISpeechVoice *This,
  14562         LONG *Rate);
  14563 
  14564     HRESULT (STDMETHODCALLTYPE *put_Rate)(
  14565         ISpeechVoice *This,
  14566         LONG Rate);
  14567 
  14568     HRESULT (STDMETHODCALLTYPE *get_Volume)(
  14569         ISpeechVoice *This,
  14570         LONG *Volume);
  14571 
  14572     HRESULT (STDMETHODCALLTYPE *put_Volume)(
  14573         ISpeechVoice *This,
  14574         LONG Volume);
  14575 
  14576     HRESULT (STDMETHODCALLTYPE *put_AllowAudioOutputFormatChangesOnNextSet)(
  14577         ISpeechVoice *This,
  14578         VARIANT_BOOL Allow);
  14579 
  14580     HRESULT (STDMETHODCALLTYPE *get_AllowAudioOutputFormatChangesOnNextSet)(
  14581         ISpeechVoice *This,
  14582         VARIANT_BOOL *Allow);
  14583 
  14584     HRESULT (STDMETHODCALLTYPE *get_EventInterests)(
  14585         ISpeechVoice *This,
  14586         SpeechVoiceEvents *EventInterestFlags);
  14587 
  14588     HRESULT (STDMETHODCALLTYPE *put_EventInterests)(
  14589         ISpeechVoice *This,
  14590         SpeechVoiceEvents EventInterestFlags);
  14591 
  14592     HRESULT (STDMETHODCALLTYPE *put_Priority)(
  14593         ISpeechVoice *This,
  14594         SpeechVoicePriority Priority);
  14595 
  14596     HRESULT (STDMETHODCALLTYPE *get_Priority)(
  14597         ISpeechVoice *This,
  14598         SpeechVoicePriority *Priority);
  14599 
  14600     HRESULT (STDMETHODCALLTYPE *put_AlertBoundary)(
  14601         ISpeechVoice *This,
  14602         SpeechVoiceEvents Boundary);
  14603 
  14604     HRESULT (STDMETHODCALLTYPE *get_AlertBoundary)(
  14605         ISpeechVoice *This,
  14606         SpeechVoiceEvents *Boundary);
  14607 
  14608     HRESULT (STDMETHODCALLTYPE *put_SynchronousSpeakTimeout)(
  14609         ISpeechVoice *This,
  14610         LONG msTimeout);
  14611 
  14612     HRESULT (STDMETHODCALLTYPE *get_SynchronousSpeakTimeout)(
  14613         ISpeechVoice *This,
  14614         LONG *msTimeout);
  14615 
  14616     HRESULT (STDMETHODCALLTYPE *Speak)(
  14617         ISpeechVoice *This,
  14618         BSTR Text,
  14619         SpeechVoiceSpeakFlags Flags,
  14620         LONG *StreamNumber);
  14621 
  14622     HRESULT (STDMETHODCALLTYPE *SpeakStream)(
  14623         ISpeechVoice *This,
  14624         ISpeechBaseStream *Stream,
  14625         SpeechVoiceSpeakFlags Flags,
  14626         LONG *StreamNumber);
  14627 
  14628     HRESULT (STDMETHODCALLTYPE *Pause)(
  14629         ISpeechVoice *This);
  14630 
  14631     HRESULT (STDMETHODCALLTYPE *Resume)(
  14632         ISpeechVoice *This);
  14633 
  14634     HRESULT (STDMETHODCALLTYPE *Skip)(
  14635         ISpeechVoice *This,
  14636         const BSTR Type,
  14637         LONG NumItems,
  14638         LONG *NumSkipped);
  14639 
  14640     HRESULT (STDMETHODCALLTYPE *GetVoices)(
  14641         ISpeechVoice *This,
  14642         BSTR RequiredAttributes,
  14643         BSTR OptionalAttributes,
  14644         ISpeechObjectTokens **ObjectTokens);
  14645 
  14646     HRESULT (STDMETHODCALLTYPE *GetAudioOutputs)(
  14647         ISpeechVoice *This,
  14648         BSTR RequiredAttributes,
  14649         BSTR OptionalAttributes,
  14650         ISpeechObjectTokens **ObjectTokens);
  14651 
  14652     HRESULT (STDMETHODCALLTYPE *WaitUntilDone)(
  14653         ISpeechVoice *This,
  14654         LONG msTimeout,
  14655         VARIANT_BOOL *Done);
  14656 
  14657     HRESULT (STDMETHODCALLTYPE *SpeakCompleteEvent)(
  14658         ISpeechVoice *This,
  14659         LONG *Handle);
  14660 
  14661     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
  14662         ISpeechVoice *This,
  14663         const BSTR TypeOfUI,
  14664         const VARIANT *ExtraData,
  14665         VARIANT_BOOL *Supported);
  14666 
  14667     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
  14668         ISpeechVoice *This,
  14669         LONG hWndParent,
  14670         BSTR Title,
  14671         const BSTR TypeOfUI,
  14672         const VARIANT *ExtraData);
  14673 
  14674     END_INTERFACE
  14675 } ISpeechVoiceVtbl;
  14676 
  14677 interface ISpeechVoice {
  14678     CONST_VTBL ISpeechVoiceVtbl* lpVtbl;
  14679 };
  14680 
  14681 #ifdef COBJMACROS
  14682 #ifndef WIDL_C_INLINE_WRAPPERS
  14683 /*** IUnknown methods ***/
  14684 #define ISpeechVoice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14685 #define ISpeechVoice_AddRef(This) (This)->lpVtbl->AddRef(This)
  14686 #define ISpeechVoice_Release(This) (This)->lpVtbl->Release(This)
  14687 /*** IDispatch methods ***/
  14688 #define ISpeechVoice_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  14689 #define ISpeechVoice_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  14690 #define ISpeechVoice_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  14691 #define ISpeechVoice_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  14692 /*** ISpeechVoice methods ***/
  14693 #define ISpeechVoice_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
  14694 #define ISpeechVoice_get_Voice(This,Voice) (This)->lpVtbl->get_Voice(This,Voice)
  14695 #define ISpeechVoice_putref_Voice(This,Voice) (This)->lpVtbl->putref_Voice(This,Voice)
  14696 #define ISpeechVoice_get_AudioOutput(This,AudioOutput) (This)->lpVtbl->get_AudioOutput(This,AudioOutput)
  14697 #define ISpeechVoice_putref_AudioOutput(This,AudioOutput) (This)->lpVtbl->putref_AudioOutput(This,AudioOutput)
  14698 #define ISpeechVoice_get_AudioOutputStream(This,AudioOutputStream) (This)->lpVtbl->get_AudioOutputStream(This,AudioOutputStream)
  14699 #define ISpeechVoice_putref_AudioOutputStream(This,AudioOutputStream) (This)->lpVtbl->putref_AudioOutputStream(This,AudioOutputStream)
  14700 #define ISpeechVoice_get_Rate(This,Rate) (This)->lpVtbl->get_Rate(This,Rate)
  14701 #define ISpeechVoice_put_Rate(This,Rate) (This)->lpVtbl->put_Rate(This,Rate)
  14702 #define ISpeechVoice_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
  14703 #define ISpeechVoice_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
  14704 #define ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->put_AllowAudioOutputFormatChangesOnNextSet(This,Allow)
  14705 #define ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->get_AllowAudioOutputFormatChangesOnNextSet(This,Allow)
  14706 #define ISpeechVoice_get_EventInterests(This,EventInterestFlags) (This)->lpVtbl->get_EventInterests(This,EventInterestFlags)
  14707 #define ISpeechVoice_put_EventInterests(This,EventInterestFlags) (This)->lpVtbl->put_EventInterests(This,EventInterestFlags)
  14708 #define ISpeechVoice_put_Priority(This,Priority) (This)->lpVtbl->put_Priority(This,Priority)
  14709 #define ISpeechVoice_get_Priority(This,Priority) (This)->lpVtbl->get_Priority(This,Priority)
  14710 #define ISpeechVoice_put_AlertBoundary(This,Boundary) (This)->lpVtbl->put_AlertBoundary(This,Boundary)
  14711 #define ISpeechVoice_get_AlertBoundary(This,Boundary) (This)->lpVtbl->get_AlertBoundary(This,Boundary)
  14712 #define ISpeechVoice_put_SynchronousSpeakTimeout(This,msTimeout) (This)->lpVtbl->put_SynchronousSpeakTimeout(This,msTimeout)
  14713 #define ISpeechVoice_get_SynchronousSpeakTimeout(This,msTimeout) (This)->lpVtbl->get_SynchronousSpeakTimeout(This,msTimeout)
  14714 #define ISpeechVoice_Speak(This,Text,Flags,StreamNumber) (This)->lpVtbl->Speak(This,Text,Flags,StreamNumber)
  14715 #define ISpeechVoice_SpeakStream(This,Stream,Flags,StreamNumber) (This)->lpVtbl->SpeakStream(This,Stream,Flags,StreamNumber)
  14716 #define ISpeechVoice_Pause(This) (This)->lpVtbl->Pause(This)
  14717 #define ISpeechVoice_Resume(This) (This)->lpVtbl->Resume(This)
  14718 #define ISpeechVoice_Skip(This,Type,NumItems,NumSkipped) (This)->lpVtbl->Skip(This,Type,NumItems,NumSkipped)
  14719 #define ISpeechVoice_GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
  14720 #define ISpeechVoice_GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
  14721 #define ISpeechVoice_WaitUntilDone(This,msTimeout,Done) (This)->lpVtbl->WaitUntilDone(This,msTimeout,Done)
  14722 #define ISpeechVoice_SpeakCompleteEvent(This,Handle) (This)->lpVtbl->SpeakCompleteEvent(This,Handle)
  14723 #define ISpeechVoice_IsUISupported(This,TypeOfUI,ExtraData,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported)
  14724 #define ISpeechVoice_DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData) (This)->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData)
  14725 #else
  14726 /*** IUnknown methods ***/
  14727 static inline HRESULT ISpeechVoice_QueryInterface(ISpeechVoice* This,REFIID riid,void **ppvObject) {
  14728     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  14729 }
  14730 static inline ULONG ISpeechVoice_AddRef(ISpeechVoice* This) {
  14731     return This->lpVtbl->AddRef(This);
  14732 }
  14733 static inline ULONG ISpeechVoice_Release(ISpeechVoice* This) {
  14734     return This->lpVtbl->Release(This);
  14735 }
  14736 /*** IDispatch methods ***/
  14737 static inline HRESULT ISpeechVoice_GetTypeInfoCount(ISpeechVoice* This,UINT *pctinfo) {
  14738     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  14739 }
  14740 static inline HRESULT ISpeechVoice_GetTypeInfo(ISpeechVoice* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  14741     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  14742 }
  14743 static inline HRESULT ISpeechVoice_GetIDsOfNames(ISpeechVoice* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  14744     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  14745 }
  14746 static inline HRESULT ISpeechVoice_Invoke(ISpeechVoice* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  14747     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  14748 }
  14749 /*** ISpeechVoice methods ***/
  14750 static inline HRESULT ISpeechVoice_get_Status(ISpeechVoice* This,ISpeechVoiceStatus **Status) {
  14751     return This->lpVtbl->get_Status(This,Status);
  14752 }
  14753 static inline HRESULT ISpeechVoice_get_Voice(ISpeechVoice* This,ISpeechObjectToken **Voice) {
  14754     return This->lpVtbl->get_Voice(This,Voice);
  14755 }
  14756 static inline HRESULT ISpeechVoice_putref_Voice(ISpeechVoice* This,ISpeechObjectToken *Voice) {
  14757     return This->lpVtbl->putref_Voice(This,Voice);
  14758 }
  14759 static inline HRESULT ISpeechVoice_get_AudioOutput(ISpeechVoice* This,ISpeechObjectToken **AudioOutput) {
  14760     return This->lpVtbl->get_AudioOutput(This,AudioOutput);
  14761 }
  14762 static inline HRESULT ISpeechVoice_putref_AudioOutput(ISpeechVoice* This,ISpeechObjectToken *AudioOutput) {
  14763     return This->lpVtbl->putref_AudioOutput(This,AudioOutput);
  14764 }
  14765 static inline HRESULT ISpeechVoice_get_AudioOutputStream(ISpeechVoice* This,ISpeechBaseStream **AudioOutputStream) {
  14766     return This->lpVtbl->get_AudioOutputStream(This,AudioOutputStream);
  14767 }
  14768 static inline HRESULT ISpeechVoice_putref_AudioOutputStream(ISpeechVoice* This,ISpeechBaseStream *AudioOutputStream) {
  14769     return This->lpVtbl->putref_AudioOutputStream(This,AudioOutputStream);
  14770 }
  14771 static inline HRESULT ISpeechVoice_get_Rate(ISpeechVoice* This,LONG *Rate) {
  14772     return This->lpVtbl->get_Rate(This,Rate);
  14773 }
  14774 static inline HRESULT ISpeechVoice_put_Rate(ISpeechVoice* This,LONG Rate) {
  14775     return This->lpVtbl->put_Rate(This,Rate);
  14776 }
  14777 static inline HRESULT ISpeechVoice_get_Volume(ISpeechVoice* This,LONG *Volume) {
  14778     return This->lpVtbl->get_Volume(This,Volume);
  14779 }
  14780 static inline HRESULT ISpeechVoice_put_Volume(ISpeechVoice* This,LONG Volume) {
  14781     return This->lpVtbl->put_Volume(This,Volume);
  14782 }
  14783 static inline HRESULT ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet(ISpeechVoice* This,VARIANT_BOOL Allow) {
  14784     return This->lpVtbl->put_AllowAudioOutputFormatChangesOnNextSet(This,Allow);
  14785 }
  14786 static inline HRESULT ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet(ISpeechVoice* This,VARIANT_BOOL *Allow) {
  14787     return This->lpVtbl->get_AllowAudioOutputFormatChangesOnNextSet(This,Allow);
  14788 }
  14789 static inline HRESULT ISpeechVoice_get_EventInterests(ISpeechVoice* This,SpeechVoiceEvents *EventInterestFlags) {
  14790     return This->lpVtbl->get_EventInterests(This,EventInterestFlags);
  14791 }
  14792 static inline HRESULT ISpeechVoice_put_EventInterests(ISpeechVoice* This,SpeechVoiceEvents EventInterestFlags) {
  14793     return This->lpVtbl->put_EventInterests(This,EventInterestFlags);
  14794 }
  14795 static inline HRESULT ISpeechVoice_put_Priority(ISpeechVoice* This,SpeechVoicePriority Priority) {
  14796     return This->lpVtbl->put_Priority(This,Priority);
  14797 }
  14798 static inline HRESULT ISpeechVoice_get_Priority(ISpeechVoice* This,SpeechVoicePriority *Priority) {
  14799     return This->lpVtbl->get_Priority(This,Priority);
  14800 }
  14801 static inline HRESULT ISpeechVoice_put_AlertBoundary(ISpeechVoice* This,SpeechVoiceEvents Boundary) {
  14802     return This->lpVtbl->put_AlertBoundary(This,Boundary);
  14803 }
  14804 static inline HRESULT ISpeechVoice_get_AlertBoundary(ISpeechVoice* This,SpeechVoiceEvents *Boundary) {
  14805     return This->lpVtbl->get_AlertBoundary(This,Boundary);
  14806 }
  14807 static inline HRESULT ISpeechVoice_put_SynchronousSpeakTimeout(ISpeechVoice* This,LONG msTimeout) {
  14808     return This->lpVtbl->put_SynchronousSpeakTimeout(This,msTimeout);
  14809 }
  14810 static inline HRESULT ISpeechVoice_get_SynchronousSpeakTimeout(ISpeechVoice* This,LONG *msTimeout) {
  14811     return This->lpVtbl->get_SynchronousSpeakTimeout(This,msTimeout);
  14812 }
  14813 static inline HRESULT ISpeechVoice_Speak(ISpeechVoice* This,BSTR Text,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
  14814     return This->lpVtbl->Speak(This,Text,Flags,StreamNumber);
  14815 }
  14816 static inline HRESULT ISpeechVoice_SpeakStream(ISpeechVoice* This,ISpeechBaseStream *Stream,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
  14817     return This->lpVtbl->SpeakStream(This,Stream,Flags,StreamNumber);
  14818 }
  14819 static inline HRESULT ISpeechVoice_Pause(ISpeechVoice* This) {
  14820     return This->lpVtbl->Pause(This);
  14821 }
  14822 static inline HRESULT ISpeechVoice_Resume(ISpeechVoice* This) {
  14823     return This->lpVtbl->Resume(This);
  14824 }
  14825 static inline HRESULT ISpeechVoice_Skip(ISpeechVoice* This,const BSTR Type,LONG NumItems,LONG *NumSkipped) {
  14826     return This->lpVtbl->Skip(This,Type,NumItems,NumSkipped);
  14827 }
  14828 static inline HRESULT ISpeechVoice_GetVoices(ISpeechVoice* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
  14829     return This->lpVtbl->GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
  14830 }
  14831 static inline HRESULT ISpeechVoice_GetAudioOutputs(ISpeechVoice* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
  14832     return This->lpVtbl->GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
  14833 }
  14834 static inline HRESULT ISpeechVoice_WaitUntilDone(ISpeechVoice* This,LONG msTimeout,VARIANT_BOOL *Done) {
  14835     return This->lpVtbl->WaitUntilDone(This,msTimeout,Done);
  14836 }
  14837 static inline HRESULT ISpeechVoice_SpeakCompleteEvent(ISpeechVoice* This,LONG *Handle) {
  14838     return This->lpVtbl->SpeakCompleteEvent(This,Handle);
  14839 }
  14840 static inline HRESULT ISpeechVoice_IsUISupported(ISpeechVoice* This,const BSTR TypeOfUI,const VARIANT *ExtraData,VARIANT_BOOL *Supported) {
  14841     return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported);
  14842 }
  14843 static inline HRESULT ISpeechVoice_DisplayUI(ISpeechVoice* This,LONG hWndParent,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData) {
  14844     return This->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData);
  14845 }
  14846 #endif
  14847 #endif
  14848 
  14849 #endif
  14850 
  14851 
  14852 #endif  /* __ISpeechVoice_INTERFACE_DEFINED__ */
  14853 
  14854 /*****************************************************************************
  14855  * ISpeechVoiceStatus interface
  14856  */
  14857 #ifndef __ISpeechVoiceStatus_INTERFACE_DEFINED__
  14858 #define __ISpeechVoiceStatus_INTERFACE_DEFINED__
  14859 
  14860 DEFINE_GUID(IID_ISpeechVoiceStatus, 0x8be47b07, 0x57f6, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96);
  14861 #if defined(__cplusplus) && !defined(CINTERFACE)
  14862 MIDL_INTERFACE("8be47b07-57f6-11d2-9eee-00c04f797396")
  14863 ISpeechVoiceStatus : public IDispatch
  14864 {
  14865     virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamNumber(
  14866         LONG *StreamNumber) = 0;
  14867 
  14868     virtual HRESULT STDMETHODCALLTYPE get_LastStreamNumberQueued(
  14869         LONG *StreamNumber) = 0;
  14870 
  14871     virtual HRESULT STDMETHODCALLTYPE get_LastHResult(
  14872         LONG *HResult) = 0;
  14873 
  14874     virtual HRESULT STDMETHODCALLTYPE get_RunningState(
  14875         SpeechRunState *State) = 0;
  14876 
  14877     virtual HRESULT STDMETHODCALLTYPE get_InputWordPosition(
  14878         LONG *Position) = 0;
  14879 
  14880     virtual HRESULT STDMETHODCALLTYPE get_InputWordLength(
  14881         LONG *Length) = 0;
  14882 
  14883     virtual HRESULT STDMETHODCALLTYPE get_InputSentencePosition(
  14884         LONG *Position) = 0;
  14885 
  14886     virtual HRESULT STDMETHODCALLTYPE get_InputSentenceLength(
  14887         LONG *Length) = 0;
  14888 
  14889     virtual HRESULT STDMETHODCALLTYPE get_LastBookmark(
  14890         BSTR *Bookmark) = 0;
  14891 
  14892     virtual HRESULT STDMETHODCALLTYPE get_LastBookmarkId(
  14893         LONG *BookmarkId) = 0;
  14894 
  14895     virtual HRESULT STDMETHODCALLTYPE get_PhonemeId(
  14896         short *PhoneId) = 0;
  14897 
  14898     virtual HRESULT STDMETHODCALLTYPE get_VisemeId(
  14899         short *VisemeId) = 0;
  14900 
  14901 };
  14902 #ifdef __CRT_UUID_DECL
  14903 __CRT_UUID_DECL(ISpeechVoiceStatus, 0x8be47b07, 0x57f6, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96)
  14904 #endif
  14905 #else
  14906 typedef struct ISpeechVoiceStatusVtbl {
  14907     BEGIN_INTERFACE
  14908 
  14909     /*** IUnknown methods ***/
  14910     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  14911         ISpeechVoiceStatus *This,
  14912         REFIID riid,
  14913         void **ppvObject);
  14914 
  14915     ULONG (STDMETHODCALLTYPE *AddRef)(
  14916         ISpeechVoiceStatus *This);
  14917 
  14918     ULONG (STDMETHODCALLTYPE *Release)(
  14919         ISpeechVoiceStatus *This);
  14920 
  14921     /*** IDispatch methods ***/
  14922     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  14923         ISpeechVoiceStatus *This,
  14924         UINT *pctinfo);
  14925 
  14926     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  14927         ISpeechVoiceStatus *This,
  14928         UINT iTInfo,
  14929         LCID lcid,
  14930         ITypeInfo **ppTInfo);
  14931 
  14932     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  14933         ISpeechVoiceStatus *This,
  14934         REFIID riid,
  14935         LPOLESTR *rgszNames,
  14936         UINT cNames,
  14937         LCID lcid,
  14938         DISPID *rgDispId);
  14939 
  14940     HRESULT (STDMETHODCALLTYPE *Invoke)(
  14941         ISpeechVoiceStatus *This,
  14942         DISPID dispIdMember,
  14943         REFIID riid,
  14944         LCID lcid,
  14945         WORD wFlags,
  14946         DISPPARAMS *pDispParams,
  14947         VARIANT *pVarResult,
  14948         EXCEPINFO *pExcepInfo,
  14949         UINT *puArgErr);
  14950 
  14951     /*** ISpeechVoiceStatus methods ***/
  14952     HRESULT (STDMETHODCALLTYPE *get_CurrentStreamNumber)(
  14953         ISpeechVoiceStatus *This,
  14954         LONG *StreamNumber);
  14955 
  14956     HRESULT (STDMETHODCALLTYPE *get_LastStreamNumberQueued)(
  14957         ISpeechVoiceStatus *This,
  14958         LONG *StreamNumber);
  14959 
  14960     HRESULT (STDMETHODCALLTYPE *get_LastHResult)(
  14961         ISpeechVoiceStatus *This,
  14962         LONG *HResult);
  14963 
  14964     HRESULT (STDMETHODCALLTYPE *get_RunningState)(
  14965         ISpeechVoiceStatus *This,
  14966         SpeechRunState *State);
  14967 
  14968     HRESULT (STDMETHODCALLTYPE *get_InputWordPosition)(
  14969         ISpeechVoiceStatus *This,
  14970         LONG *Position);
  14971 
  14972     HRESULT (STDMETHODCALLTYPE *get_InputWordLength)(
  14973         ISpeechVoiceStatus *This,
  14974         LONG *Length);
  14975 
  14976     HRESULT (STDMETHODCALLTYPE *get_InputSentencePosition)(
  14977         ISpeechVoiceStatus *This,
  14978         LONG *Position);
  14979 
  14980     HRESULT (STDMETHODCALLTYPE *get_InputSentenceLength)(
  14981         ISpeechVoiceStatus *This,
  14982         LONG *Length);
  14983 
  14984     HRESULT (STDMETHODCALLTYPE *get_LastBookmark)(
  14985         ISpeechVoiceStatus *This,
  14986         BSTR *Bookmark);
  14987 
  14988     HRESULT (STDMETHODCALLTYPE *get_LastBookmarkId)(
  14989         ISpeechVoiceStatus *This,
  14990         LONG *BookmarkId);
  14991 
  14992     HRESULT (STDMETHODCALLTYPE *get_PhonemeId)(
  14993         ISpeechVoiceStatus *This,
  14994         short *PhoneId);
  14995 
  14996     HRESULT (STDMETHODCALLTYPE *get_VisemeId)(
  14997         ISpeechVoiceStatus *This,
  14998         short *VisemeId);
  14999 
  15000     END_INTERFACE
  15001 } ISpeechVoiceStatusVtbl;
  15002 
  15003 interface ISpeechVoiceStatus {
  15004     CONST_VTBL ISpeechVoiceStatusVtbl* lpVtbl;
  15005 };
  15006 
  15007 #ifdef COBJMACROS
  15008 #ifndef WIDL_C_INLINE_WRAPPERS
  15009 /*** IUnknown methods ***/
  15010 #define ISpeechVoiceStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  15011 #define ISpeechVoiceStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
  15012 #define ISpeechVoiceStatus_Release(This) (This)->lpVtbl->Release(This)
  15013 /*** IDispatch methods ***/
  15014 #define ISpeechVoiceStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  15015 #define ISpeechVoiceStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  15016 #define ISpeechVoiceStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  15017 #define ISpeechVoiceStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  15018 /*** ISpeechVoiceStatus methods ***/
  15019 #define ISpeechVoiceStatus_get_CurrentStreamNumber(This,StreamNumber) (This)->lpVtbl->get_CurrentStreamNumber(This,StreamNumber)
  15020 #define ISpeechVoiceStatus_get_LastStreamNumberQueued(This,StreamNumber) (This)->lpVtbl->get_LastStreamNumberQueued(This,StreamNumber)
  15021 #define ISpeechVoiceStatus_get_LastHResult(This,HResult) (This)->lpVtbl->get_LastHResult(This,HResult)
  15022 #define ISpeechVoiceStatus_get_RunningState(This,State) (This)->lpVtbl->get_RunningState(This,State)
  15023 #define ISpeechVoiceStatus_get_InputWordPosition(This,Position) (This)->lpVtbl->get_InputWordPosition(This,Position)
  15024 #define ISpeechVoiceStatus_get_InputWordLength(This,Length) (This)->lpVtbl->get_InputWordLength(This,Length)
  15025 #define ISpeechVoiceStatus_get_InputSentencePosition(This,Position) (This)->lpVtbl->get_InputSentencePosition(This,Position)
  15026 #define ISpeechVoiceStatus_get_InputSentenceLength(This,Length) (This)->lpVtbl->get_InputSentenceLength(This,Length)
  15027 #define ISpeechVoiceStatus_get_LastBookmark(This,Bookmark) (This)->lpVtbl->get_LastBookmark(This,Bookmark)
  15028 #define ISpeechVoiceStatus_get_LastBookmarkId(This,BookmarkId) (This)->lpVtbl->get_LastBookmarkId(This,BookmarkId)
  15029 #define ISpeechVoiceStatus_get_PhonemeId(This,PhoneId) (This)->lpVtbl->get_PhonemeId(This,PhoneId)
  15030 #define ISpeechVoiceStatus_get_VisemeId(This,VisemeId) (This)->lpVtbl->get_VisemeId(This,VisemeId)
  15031 #else
  15032 /*** IUnknown methods ***/
  15033 static inline HRESULT ISpeechVoiceStatus_QueryInterface(ISpeechVoiceStatus* This,REFIID riid,void **ppvObject) {
  15034     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  15035 }
  15036 static inline ULONG ISpeechVoiceStatus_AddRef(ISpeechVoiceStatus* This) {
  15037     return This->lpVtbl->AddRef(This);
  15038 }
  15039 static inline ULONG ISpeechVoiceStatus_Release(ISpeechVoiceStatus* This) {
  15040     return This->lpVtbl->Release(This);
  15041 }
  15042 /*** IDispatch methods ***/
  15043 static inline HRESULT ISpeechVoiceStatus_GetTypeInfoCount(ISpeechVoiceStatus* This,UINT *pctinfo) {
  15044     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  15045 }
  15046 static inline HRESULT ISpeechVoiceStatus_GetTypeInfo(ISpeechVoiceStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  15047     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  15048 }
  15049 static inline HRESULT ISpeechVoiceStatus_GetIDsOfNames(ISpeechVoiceStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  15050     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  15051 }
  15052 static inline HRESULT ISpeechVoiceStatus_Invoke(ISpeechVoiceStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  15053     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  15054 }
  15055 /*** ISpeechVoiceStatus methods ***/
  15056 static inline HRESULT ISpeechVoiceStatus_get_CurrentStreamNumber(ISpeechVoiceStatus* This,LONG *StreamNumber) {
  15057     return This->lpVtbl->get_CurrentStreamNumber(This,StreamNumber);
  15058 }
  15059 static inline HRESULT ISpeechVoiceStatus_get_LastStreamNumberQueued(ISpeechVoiceStatus* This,LONG *StreamNumber) {
  15060     return This->lpVtbl->get_LastStreamNumberQueued(This,StreamNumber);
  15061 }
  15062 static inline HRESULT ISpeechVoiceStatus_get_LastHResult(ISpeechVoiceStatus* This,LONG *HResult) {
  15063     return This->lpVtbl->get_LastHResult(This,HResult);
  15064 }
  15065 static inline HRESULT ISpeechVoiceStatus_get_RunningState(ISpeechVoiceStatus* This,SpeechRunState *State) {
  15066     return This->lpVtbl->get_RunningState(This,State);
  15067 }
  15068 static inline HRESULT ISpeechVoiceStatus_get_InputWordPosition(ISpeechVoiceStatus* This,LONG *Position) {
  15069     return This->lpVtbl->get_InputWordPosition(This,Position);
  15070 }
  15071 static inline HRESULT ISpeechVoiceStatus_get_InputWordLength(ISpeechVoiceStatus* This,LONG *Length) {
  15072     return This->lpVtbl->get_InputWordLength(This,Length);
  15073 }
  15074 static inline HRESULT ISpeechVoiceStatus_get_InputSentencePosition(ISpeechVoiceStatus* This,LONG *Position) {
  15075     return This->lpVtbl->get_InputSentencePosition(This,Position);
  15076 }
  15077 static inline HRESULT ISpeechVoiceStatus_get_InputSentenceLength(ISpeechVoiceStatus* This,LONG *Length) {
  15078     return This->lpVtbl->get_InputSentenceLength(This,Length);
  15079 }
  15080 static inline HRESULT ISpeechVoiceStatus_get_LastBookmark(ISpeechVoiceStatus* This,BSTR *Bookmark) {
  15081     return This->lpVtbl->get_LastBookmark(This,Bookmark);
  15082 }
  15083 static inline HRESULT ISpeechVoiceStatus_get_LastBookmarkId(ISpeechVoiceStatus* This,LONG *BookmarkId) {
  15084     return This->lpVtbl->get_LastBookmarkId(This,BookmarkId);
  15085 }
  15086 static inline HRESULT ISpeechVoiceStatus_get_PhonemeId(ISpeechVoiceStatus* This,short *PhoneId) {
  15087     return This->lpVtbl->get_PhonemeId(This,PhoneId);
  15088 }
  15089 static inline HRESULT ISpeechVoiceStatus_get_VisemeId(ISpeechVoiceStatus* This,short *VisemeId) {
  15090     return This->lpVtbl->get_VisemeId(This,VisemeId);
  15091 }
  15092 #endif
  15093 #endif
  15094 
  15095 #endif
  15096 
  15097 
  15098 #endif  /* __ISpeechVoiceStatus_INTERFACE_DEFINED__ */
  15099 
  15100 typedef enum SpeechVisemeType {
  15101     SVP_0 = 0,
  15102     SVP_1 = 1,
  15103     SVP_2 = 2,
  15104     SVP_3 = 3,
  15105     SVP_4 = 4,
  15106     SVP_5 = 5,
  15107     SVP_6 = 6,
  15108     SVP_7 = 7,
  15109     SVP_8 = 8,
  15110     SVP_9 = 9,
  15111     SVP_10 = 10,
  15112     SVP_11 = 11,
  15113     SVP_12 = 12,
  15114     SVP_13 = 13,
  15115     SVP_14 = 14,
  15116     SVP_15 = 15,
  15117     SVP_16 = 16,
  15118     SVP_17 = 17,
  15119     SVP_18 = 18,
  15120     SVP_19 = 19,
  15121     SVP_20 = 20,
  15122     SVP_21 = 21
  15123 } SpeechVisemeType;
  15124 typedef enum SpeechVisemeFeature {
  15125     SVF_None = 0,
  15126     SVF_Stressed = SPVFEATURE_STRESSED,
  15127     SVF_Emphasis = SPVFEATURE_EMPHASIS
  15128 } SpeechVisemeFeature;
  15129 typedef enum DISPID_SpeechVoiceEvent {
  15130     DISPID_SVEStreamStart = 1,
  15131     DISPID_SVEStreamEnd = 2,
  15132     DISPID_SVEVoiceChange = 3,
  15133     DISPID_SVEBookmark = 4,
  15134     DISPID_SVEWord = 5,
  15135     DISPID_SVEPhoneme = 6,
  15136     DISPID_SVESentenceBoundary = 7,
  15137     DISPID_SVEViseme = 8,
  15138     DISPID_SVEAudioLevel = 9,
  15139     DISPID_SVEEnginePrivate = 10
  15140 } DISPID_SpeechVoiceEvent;
  15141 typedef enum DISPID_SpeechRecognizer {
  15142     DISPID_SRRecognizer = 1,
  15143     DISPID_SRAllowAudioInputFormatChangesOnNextSet = 2,
  15144     DISPID_SRAudioInput = 3,
  15145     DISPID_SRAudioInputStream = 4,
  15146     DISPID_SRIsShared = 5,
  15147     DISPID_SRState = 6,
  15148     DISPID_SRStatus = 7,
  15149     DISPID_SRProfile = 8,
  15150     DISPID_SREmulateRecognition = 9,
  15151     DISPID_SRCreateRecoContext = 10,
  15152     DISPID_SRGetFormat = 11,
  15153     DISPID_SRSetPropertyNumber = 12,
  15154     DISPID_SRGetPropertyNumber = 13,
  15155     DISPID_SRSetPropertyString = 14,
  15156     DISPID_SRGetPropertyString = 15,
  15157     DISPID_SRIsUISupported = 16,
  15158     DISPID_SRDisplayUI = 17,
  15159     DISPID_SRGetRecognizers = 18,
  15160     DISPID_SVGetAudioInputs = 19,
  15161     DISPID_SVGetProfiles = 20
  15162 } DISPID_SpeechRecognizer;
  15163 typedef enum SpeechRecognizerState {
  15164     SRSInactive = SPRST_INACTIVE,
  15165     SRSActive = SPRST_ACTIVE,
  15166     SRSActiveAlways = SPRST_ACTIVE_ALWAYS,
  15167     SRSInactiveWithPurge = SPRST_INACTIVE_WITH_PURGE
  15168 } SpeechRecognizerState;
  15169 typedef enum SpeechDisplayAttributes {
  15170     SDA_No_Trailing_Space = 0,
  15171     SDA_One_Trailing_Space = SPAF_ONE_TRAILING_SPACE,
  15172     SDA_Two_Trailing_Spaces = SPAF_TWO_TRAILING_SPACES,
  15173     SDA_Consume_Leading_Spaces = SPAF_CONSUME_LEADING_SPACES
  15174 } SpeechDisplayAttributes;
  15175 typedef enum SpeechFormatType {
  15176     SFTInput = SPWF_INPUT,
  15177     SFTSREngine = SPWF_SRENGINE
  15178 } SpeechFormatType;
  15179 typedef enum DISPID_SpeechRecognizerStatus {
  15180     DISPID_SRSAudioStatus = 1,
  15181     DISPID_SRSCurrentStreamPosition = 2,
  15182     DISPID_SRSCurrentStreamNumber = 3,
  15183     DISPID_SRSNumberOfActiveRules = 4,
  15184     DISPID_SRSClsidEngine = 5,
  15185     DISPID_SRSSupportedLanguages = 6
  15186 } DISPID_SpeechRecognizerStatus;
  15187 typedef enum DISPID_SpeechRecoContext {
  15188     DISPID_SRCRecognizer = 1,
  15189     DISPID_SRCAudioInInterferenceStatus = 2,
  15190     DISPID_SRCRequestedUIType = 3,
  15191     DISPID_SRCVoice = 4,
  15192     DISPID_SRAllowVoiceFormatMatchingOnNextSet = 5,
  15193     DISPID_SRCVoicePurgeEvent = 6,
  15194     DISPID_SRCEventInterests = 7,
  15195     DISPID_SRCCmdMaxAlternates = 8,
  15196     DISPID_SRCState = 9,
  15197     DISPID_SRCRetainedAudio = 10,
  15198     DISPID_SRCRetainedAudioFormat = 11,
  15199     DISPID_SRCPause = 12,
  15200     DISPID_SRCResume = 13,
  15201     DISPID_SRCCreateGrammar = 14,
  15202     DISPID_SRCCreateResultFromMemory = 15,
  15203     DISPID_SRCBookmark = 16,
  15204     DISPID_SRCSetAdaptationData = 17
  15205 } DISPID_SpeechRecoContext;
  15206 typedef enum SpeechRetainedAudioOptions {
  15207     SRAONone = SPAO_NONE,
  15208     SRAORetainAudio = SPAO_RETAIN_AUDIO
  15209 } SpeechRetainedAudioOptions;
  15210 typedef enum SpeechBookmarkOptions {
  15211     SBONone = SPBO_NONE,
  15212     SBOPause = SPBO_PAUSE
  15213 } SpeechBookmarkOptions;
  15214 typedef enum SpeechInterference {
  15215     SINone = SPINTERFERENCE_NONE,
  15216     SINoise = SPINTERFERENCE_NOISE,
  15217     SINoSignal = SPINTERFERENCE_NOSIGNAL,
  15218     SITooLoud = SPINTERFERENCE_TOOLOUD,
  15219     SITooQuiet = SPINTERFERENCE_TOOQUIET,
  15220     SITooFast = SPINTERFERENCE_TOOFAST,
  15221     SITooSlow = SPINTERFERENCE_TOOSLOW
  15222 } SpeechInterference;
  15223 typedef enum SpeechRecoEvents {
  15224     SREStreamEnd = 0x1,
  15225     SRESoundStart = 0x2,
  15226     SRESoundEnd = 0x4,
  15227     SREPhraseStart = 0x8,
  15228     SRERecognition = 0x10,
  15229     SREHypothesis = 0x20,
  15230     SREBookmark = 0x40,
  15231     SREPropertyNumChange = 0x80,
  15232     SREPropertyStringChange = 0x100,
  15233     SREFalseRecognition = 0x200,
  15234     SREInterference = 0x400,
  15235     SRERequestUI = 0x800,
  15236     SREStateChange = 0x1000,
  15237     SREAdaptation = 0x2000,
  15238     SREStreamStart = 0x4000,
  15239     SRERecoOtherContext = 0x8000,
  15240     SREAudioLevel = 0x10000,
  15241     SREPrivate = 0x40000,
  15242     SREAllEvents = 0x5ffff
  15243 } SpeechRecoEvents;
  15244 typedef enum SpeechRecoContextState {
  15245     SRCS_Disabled = SPCS_DISABLED,
  15246     SRCS_Enabled = SPCS_ENABLED
  15247 } SpeechRecoContextState;
  15248 typedef enum DISPIDSPRG {
  15249     DISPID_SRGId = 1,
  15250     DISPID_SRGRecoContext = 2,
  15251     DISPID_SRGState = 3,
  15252     DISPID_SRGRules = 4,
  15253     DISPID_SRGReset = 5,
  15254     DISPID_SRGCommit = 6,
  15255     DISPID_SRGCmdLoadFromFile = 7,
  15256     DISPID_SRGCmdLoadFromObject = 8,
  15257     DISPID_SRGCmdLoadFromResource = 9,
  15258     DISPID_SRGCmdLoadFromMemory = 10,
  15259     DISPID_SRGCmdLoadFromProprietaryGrammar = 11,
  15260     DISPID_SRGCmdSetRuleState = 12,
  15261     DISPID_SRGCmdSetRuleIdState = 13,
  15262     DISPID_SRGDictationLoad = 14,
  15263     DISPID_SRGDictationUnload = 15,
  15264     DISPID_SRGDictationSetState = 16,
  15265     DISPID_SRGSetWordSequenceData = 17,
  15266     DISPID_SRGSetTextSelection = 18,
  15267     DISPID_SRGIsPronounceable = 19
  15268 } DISPIDSPRG;
  15269 typedef enum SpeechLoadOption {
  15270     SLOStatic = SPLO_STATIC,
  15271     SLODynamic = SPLO_DYNAMIC
  15272 } SpeechLoadOption;
  15273 typedef enum SpeechWordPronounceable {
  15274     SWPUnknownWordUnpronounceable = SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE,
  15275     SWPUnknownWordPronounceable = SPWP_UNKNOWN_WORD_PRONOUNCEABLE,
  15276     SWPKnownWordPronounceable = SPWP_KNOWN_WORD_PRONOUNCEABLE
  15277 } SpeechWordPronounceable;
  15278 typedef enum SpeechGrammarState {
  15279     SGSEnabled = SPGS_ENABLED,
  15280     SGSDisabled = SPGS_DISABLED,
  15281     SGSExclusive = SPGS_EXCLUSIVE
  15282 } SpeechGrammarState;
  15283 typedef enum SpeechRuleState {
  15284     SGDSInactive = SPRS_INACTIVE,
  15285     SGDSActive = SPRS_ACTIVE,
  15286     SGDSActiveWithAutoPause = SPRS_ACTIVE_WITH_AUTO_PAUSE,
  15287     SGDSActiveUserDelimited = SPRS_ACTIVE_USER_DELIMITED
  15288 } SpeechRuleState;
  15289 typedef enum SpeechRuleAttributes {
  15290     SRATopLevel = SPRAF_TopLevel,
  15291     SRADefaultToActive = SPRAF_Active,
  15292     SRAExport = SPRAF_Export,
  15293     SRAImport = SPRAF_Import,
  15294     SRAInterpreter = SPRAF_Interpreter,
  15295     SRADynamic = SPRAF_Dynamic,
  15296     SRARoot = SPRAF_Root
  15297 } SpeechRuleAttributes;
  15298 typedef enum SpeechGrammarWordType {
  15299     SGDisplay = SPWT_DISPLAY,
  15300     SGLexical = SPWT_LEXICAL,
  15301     SGPronounciation = SPWT_PRONUNCIATION,
  15302     SGLexicalNoSpecialChars = SPWT_LEXICAL_NO_SPECIAL_CHARS
  15303 } SpeechGrammarWordType;
  15304 typedef enum DISPID_SpeechRecoContextEvents {
  15305     DISPID_SRCEStartStream = 1,
  15306     DISPID_SRCEEndStream = 2,
  15307     DISPID_SRCEBookmark = 3,
  15308     DISPID_SRCESoundStart = 4,
  15309     DISPID_SRCESoundEnd = 5,
  15310     DISPID_SRCEPhraseStart = 6,
  15311     DISPID_SRCERecognition = 7,
  15312     DISPID_SRCEHypothesis = 8,
  15313     DISPID_SRCEPropertyNumberChange = 9,
  15314     DISPID_SRCEPropertyStringChange = 10,
  15315     DISPID_SRCEFalseRecognition = 11,
  15316     DISPID_SRCEInterference = 12,
  15317     DISPID_SRCERequestUI = 13,
  15318     DISPID_SRCERecognizerStateChange = 14,
  15319     DISPID_SRCEAdaptation = 15,
  15320     DISPID_SRCERecognitionForOtherContext = 16,
  15321     DISPID_SRCEAudioLevel = 17,
  15322     DISPID_SRCEEnginePrivate = 18
  15323 } DISPID_SpeechRecoContextEvents;
  15324 typedef enum SpeechRecognitionType {
  15325     SRTStandard = 0,
  15326     SRTAutopause = SPREF_AutoPause,
  15327     SRTEmulated = SPREF_Emulated,
  15328     SRTSMLTimeout = SPREF_SMLTimeout,
  15329     SRTExtendableParse = SPREF_ExtendableParse,
  15330     SRTReSent = SPREF_ReSent
  15331 } SpeechRecognitionType;
  15332 typedef enum DISPID_SpeechGrammarRule {
  15333     DISPID_SGRAttributes = 1,
  15334     DISPID_SGRInitialState = 2,
  15335     DISPID_SGRName = 3,
  15336     DISPID_SGRId = 4,
  15337     DISPID_SGRClear = 5,
  15338     DISPID_SGRAddResource = 6,
  15339     DISPID_SGRAddState = 7
  15340 } DISPID_SpeechGrammarRule;
  15341 typedef enum DISPID_SpeechGrammarRules {
  15342     DISPID_SGRsCount = 1,
  15343     DISPID_SGRsDynamic = 2,
  15344     DISPID_SGRsAdd = 3,
  15345     DISPID_SGRsCommit = 4,
  15346     DISPID_SGRsCommitAndSave = 5,
  15347     DISPID_SGRsFindRule = 6,
  15348     DISPID_SGRsItem = DISPID_VALUE,
  15349     DISPID_SGRs_NewEnum = DISPID_NEWENUM
  15350 } DISPID_SpeechGrammarRules;
  15351 typedef enum DISPID_SpeechGrammarRuleState {
  15352     DISPID_SGRSRule = 1,
  15353     DISPID_SGRSTransitions = 2,
  15354     DISPID_SGRSAddWordTransition = 3,
  15355     DISPID_SGRSAddRuleTransition = 4,
  15356     DISPID_SGRSAddSpecialTransition = 5
  15357 } DISPID_SpeechGrammarRuleState;
  15358 typedef enum SpeechSpecialTransitionType {
  15359     SSTTWildcard = 1,
  15360     SSTTDictation = 2,
  15361     SSTTTextBuffer = 3
  15362 } SpeechSpecialTransitionType;
  15363 typedef enum DISPID_SpeechGrammarRuleStateTransitions {
  15364     DISPID_SGRSTsCount = 1,
  15365     DISPID_SGRSTsItem = DISPID_VALUE,
  15366     DISPID_SGRSTs_NewEnum = DISPID_NEWENUM
  15367 } DISPID_SpeechGrammarRuleStateTransitions;
  15368 typedef enum DISPID_SpeechGrammarRuleStateTransition {
  15369     DISPID_SGRSTType = 1,
  15370     DISPID_SGRSTText = 2,
  15371     DISPID_SGRSTRule = 3,
  15372     DISPID_SGRSTWeight = 4,
  15373     DISPID_SGRSTPropertyName = 5,
  15374     DISPID_SGRSTPropertyId = 6,
  15375     DISPID_SGRSTPropertyValue = 7,
  15376     DISPID_SGRSTNextState = 8
  15377 } DISPID_SpeechGrammarRuleStateTransition;
  15378 typedef enum SpeechGrammarRuleStateTransitionType {
  15379     SGRSTTEpsilon = 0,
  15380     SGRSTTWord = 1,
  15381     SGRSTTRule = 2,
  15382     SGRSTTDictation = 3,
  15383     SGRSTTWildcard = 4,
  15384     SGRSTTTextBuffer = 5
  15385 } SpeechGrammarRuleStateTransitionType;
  15386 typedef enum DISPIDSPTSI {
  15387     DISPIDSPTSI_ActiveOffset = 1,
  15388     DISPIDSPTSI_ActiveLength = 2,
  15389     DISPIDSPTSI_SelectionOffset = 3,
  15390     DISPIDSPTSI_SelectionLength = 4
  15391 } DISPIDSPTSI;
  15392 typedef enum DISPID_SpeechRecoResult {
  15393     DISPID_SRRRecoContext = 1,
  15394     DISPID_SRRTimes = 2,
  15395     DISPID_SRRAudioFormat = 3,
  15396     DISPID_SRRPhraseInfo = 4,
  15397     DISPID_SRRAlternates = 5,
  15398     DISPID_SRRAudio = 6,
  15399     DISPID_SRRSpeakAudio = 7,
  15400     DISPID_SRRSaveToMemory = 8,
  15401     DISPID_SRRDiscardResultInfo = 9
  15402 } DISPID_SpeechRecoResult;
  15403 typedef enum SpeechDiscardType {
  15404     SDTProperty = SPDF_PROPERTY,
  15405     SDTReplacement = SPDF_REPLACEMENT,
  15406     SDTRule = SPDF_RULE,
  15407     SDTDisplayText = SPDF_DISPLAYTEXT,
  15408     SDTLexicalForm = SPDF_LEXICALFORM,
  15409     SDTPronunciation = SPDF_PRONUNCIATION,
  15410     SDTAudio = SPDF_AUDIO,
  15411     SDTAlternates = SPDF_ALTERNATES,
  15412     SDTAll = SPDF_ALL
  15413 } SpeechDiscardType;
  15414 typedef enum SpeechEmulationCompareFlags {
  15415     SECFIgnoreCase = 0x1,
  15416     SECFIgnoreKanaType = 0x10000,
  15417     SECFIgnoreWidth = 0x20000,
  15418     SECFNoSpecialChars = 0x20000000,
  15419     SECFEmulateResult = 0x40000000,
  15420     SECFDefault = (SECFIgnoreCase | SECFIgnoreKanaType) | SECFIgnoreWidth
  15421 } SpeechEmulationCompareFlags;
  15422 typedef enum DISPID_SpeechXMLRecoResult {
  15423     DISPID_SRRGetXMLResult = DISPID_SRRDiscardResultInfo + 1,
  15424     DISPID_SRRGetXMLErrorInfo = DISPID_SRRGetXMLResult + 1
  15425 } DISPID_SpeechXMLRecoResult;
  15426 typedef enum DISPID_SpeechRecoResult2 {
  15427     DISPID_SRRSetTextFeedback = DISPID_SRRGetXMLErrorInfo + 1
  15428 } DISPID_SpeechRecoResult2;
  15429 typedef enum DISPID_SpeechPhraseBuilder {
  15430     DISPID_SPPBRestorePhraseFromMemory = 1
  15431 } DISPID_SpeechPhraseBuilder;
  15432 typedef enum DISPID_SpeechRecoResultTimes {
  15433     DISPID_SRRTStreamTime = 1,
  15434     DISPID_SRRTLength = 2,
  15435     DISPID_SRRTTickCount = 3,
  15436     DISPID_SRRTOffsetFromStart = 4
  15437 } DISPID_SpeechRecoResultTimes;
  15438 typedef enum DISPID_SpeechPhraseAlternate {
  15439     DISPID_SPARecoResult = 1,
  15440     DISPID_SPAStartElementInResult = 2,
  15441     DISPID_SPANumberOfElementsInResult = 3,
  15442     DISPID_SPAPhraseInfo = 4,
  15443     DISPID_SPACommit = 5
  15444 } DISPID_SpeechPhraseAlternate;
  15445 typedef enum DISPID_SpeechPhraseAlternates {
  15446     DISPID_SPAsCount = 1,
  15447     DISPID_SPAsItem = DISPID_VALUE,
  15448     DISPID_SPAs_NewEnum = DISPID_NEWENUM
  15449 } DISPID_SpeechPhraseAlternates;
  15450 typedef enum DISPID_SpeechPhraseInfo {
  15451     DISPID_SPILanguageId = 1,
  15452     DISPID_SPIGrammarId = 2,
  15453     DISPID_SPIStartTime = 3,
  15454     DISPID_SPIAudioStreamPosition = 4,
  15455     DISPID_SPIAudioSizeBytes = 5,
  15456     DISPID_SPIRetainedSizeBytes = 6,
  15457     DISPID_SPIAudioSizeTime = 7,
  15458     DISPID_SPIRule = 8,
  15459     DISPID_SPIProperties = 9,
  15460     DISPID_SPIElements = 10,
  15461     DISPID_SPIReplacements = 11,
  15462     DISPID_SPIEngineId = 12,
  15463     DISPID_SPIEnginePrivateData = 13,
  15464     DISPID_SPISaveToMemory = 14,
  15465     DISPID_SPIGetText = 15,
  15466     DISPID_SPIGetDisplayAttributes = 16
  15467 } DISPID_SpeechPhraseInfo;
  15468 typedef enum DISPID_SpeechPhraseElement {
  15469     DISPID_SPEAudioTimeOffset = 1,
  15470     DISPID_SPEAudioSizeTime = 2,
  15471     DISPID_SPEAudioStreamOffset = 3,
  15472     DISPID_SPEAudioSizeBytes = 4,
  15473     DISPID_SPERetainedStreamOffset = 5,
  15474     DISPID_SPERetainedSizeBytes = 6,
  15475     DISPID_SPEDisplayText = 7,
  15476     DISPID_SPELexicalForm = 8,
  15477     DISPID_SPEPronunciation = 9,
  15478     DISPID_SPEDisplayAttributes = 10,
  15479     DISPID_SPERequiredConfidence = 11,
  15480     DISPID_SPEActualConfidence = 12,
  15481     DISPID_SPEEngineConfidence = 13
  15482 } DISPID_SpeechPhraseElement;
  15483 typedef enum SpeechEngineConfidence {
  15484     SECLowConfidence = -1,
  15485     SECNormalConfidence = 0,
  15486     SECHighConfidence = 1
  15487 } SpeechEngineConfidence;
  15488 typedef enum DISPID_SpeechPhraseElements {
  15489     DISPID_SPEsCount = 1,
  15490     DISPID_SPEsItem = DISPID_VALUE,
  15491     DISPID_SPEs_NewEnum = DISPID_NEWENUM
  15492 } DISPID_SpeechPhraseElements;
  15493 typedef enum DISPID_SpeechPhraseReplacement {
  15494     DISPID_SPRDisplayAttributes = 1,
  15495     DISPID_SPRText = 2,
  15496     DISPID_SPRFirstElement = 3,
  15497     DISPID_SPRNumberOfElements = 4
  15498 } DISPID_SpeechPhraseReplacement;
  15499 typedef enum DISPID_SpeechPhraseReplacements {
  15500     DISPID_SPRsCount = 1,
  15501     DISPID_SPRsItem = DISPID_VALUE,
  15502     DISPID_SPRs_NewEnum = DISPID_NEWENUM
  15503 } DISPID_SpeechPhraseReplacements;
  15504 typedef enum DISPID_SpeechPhraseProperty {
  15505     DISPID_SPPName = 1,
  15506     DISPID_SPPId = 2,
  15507     DISPID_SPPValue = 3,
  15508     DISPID_SPPFirstElement = 4,
  15509     DISPID_SPPNumberOfElements = 5,
  15510     DISPID_SPPEngineConfidence = 6,
  15511     DISPID_SPPConfidence = 7,
  15512     DISPID_SPPParent = 8,
  15513     DISPID_SPPChildren = 9
  15514 } DISPID_SpeechPhraseProperty;
  15515 typedef enum DISPID_SpeechPhraseProperties {
  15516     DISPID_SPPsCount = 1,
  15517     DISPID_SPPsItem = DISPID_VALUE,
  15518     DISPID_SPPs_NewEnum = DISPID_NEWENUM
  15519 } DISPID_SpeechPhraseProperties;
  15520 typedef enum DISPID_SpeechPhraseRule {
  15521     DISPID_SPRuleName = 1,
  15522     DISPID_SPRuleId = 2,
  15523     DISPID_SPRuleFirstElement = 3,
  15524     DISPID_SPRuleNumberOfElements = 4,
  15525     DISPID_SPRuleParent = 5,
  15526     DISPID_SPRuleChildren = 6,
  15527     DISPID_SPRuleConfidence = 7,
  15528     DISPID_SPRuleEngineConfidence = 8
  15529 } DISPID_SpeechPhraseRule;
  15530 typedef enum DISPID_SpeechPhraseRules {
  15531     DISPID_SPRulesCount = 1,
  15532     DISPID_SPRulesItem = DISPID_VALUE,
  15533     DISPID_SPRules_NewEnum = DISPID_NEWENUM
  15534 } DISPID_SpeechPhraseRules;
  15535 typedef enum DISPID_SpeechLexicon {
  15536     DISPID_SLGenerationId = 1,
  15537     DISPID_SLGetWords = 2,
  15538     DISPID_SLAddPronunciation = 3,
  15539     DISPID_SLAddPronunciationByPhoneIds = 4,
  15540     DISPID_SLRemovePronunciation = 5,
  15541     DISPID_SLRemovePronunciationByPhoneIds = 6,
  15542     DISPID_SLGetPronunciations = 7,
  15543     DISPID_SLGetGenerationChange = 8
  15544 } DISPID_SpeechLexicon;
  15545 typedef enum SpeechLexiconType {
  15546     SLTUser = eLEXTYPE_USER,
  15547     SLTApp = eLEXTYPE_APP
  15548 } SpeechLexiconType;
  15549 typedef enum SpeechPartOfSpeech {
  15550     SPSNotOverriden = SPPS_NotOverriden,
  15551     SPSUnknown = SPPS_Unknown,
  15552     SPSNoun = SPPS_Noun,
  15553     SPSVerb = SPPS_Verb,
  15554     SPSModifier = SPPS_Modifier,
  15555     SPSFunction = SPPS_Function,
  15556     SPSInterjection = SPPS_Interjection,
  15557     SPSLMA = SPPS_LMA,
  15558     SPSSuppressWord = SPPS_SuppressWord
  15559 } SpeechPartOfSpeech;
  15560 typedef enum DISPID_SpeechLexiconWords {
  15561     DISPID_SLWsCount = 1,
  15562     DISPID_SLWsItem = DISPID_VALUE,
  15563     DISPID_SLWs_NewEnum = DISPID_NEWENUM
  15564 } DISPID_SpeechLexiconWords;
  15565 typedef enum SpeechWordType {
  15566     SWTAdded = eWORDTYPE_ADDED,
  15567     SWTDeleted = eWORDTYPE_DELETED
  15568 } SpeechWordType;
  15569 typedef enum DISPID_SpeechLexiconWord {
  15570     DISPID_SLWLangId = 1,
  15571     DISPID_SLWType = 2,
  15572     DISPID_SLWWord = 3,
  15573     DISPID_SLWPronunciations = 4
  15574 } DISPID_SpeechLexiconWord;
  15575 typedef enum DISPID_SpeechLexiconProns {
  15576     DISPID_SLPsCount = 1,
  15577     DISPID_SLPsItem = DISPID_VALUE,
  15578     DISPID_SLPs_NewEnum = DISPID_NEWENUM
  15579 } DISPID_SpeechLexiconProns;
  15580 typedef enum DISPID_SpeechLexiconPronunciation {
  15581     DISPID_SLPType = 1,
  15582     DISPID_SLPLangId = 2,
  15583     DISPID_SLPPartOfSpeech = 3,
  15584     DISPID_SLPPhoneIds = 4,
  15585     DISPID_SLPSymbolic = 5
  15586 } DISPID_SpeechLexiconPronunciation;
  15587 typedef enum DISPID_SpeechPhoneConverter {
  15588     DISPID_SPCLangId = 1,
  15589     DISPID_SPCPhoneToId = 2,
  15590     DISPID_SPCIdToPhone = 3
  15591 } DISPID_SpeechPhoneConverter;
  15592 /*****************************************************************************
  15593  * _ISpeechVoiceEvents dispinterface
  15594  */
  15595 #ifndef ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__
  15596 #define ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__
  15597 
  15598 DEFINE_GUID(DIID__ISpeechVoiceEvents, 0xa372acd1, 0x3bef, 0x4bbd, 0x8f,0xfb, 0xcb,0x3e,0x2b,0x41,0x6a,0xf8);
  15599 #if defined(__cplusplus) && !defined(CINTERFACE)
  15600 MIDL_INTERFACE("a372acd1-3bef-4bbd-8ffb-cb3e2b416af8")
  15601 _ISpeechVoiceEvents : public IDispatch
  15602 {
  15603 };
  15604 #ifdef __CRT_UUID_DECL
  15605 __CRT_UUID_DECL(_ISpeechVoiceEvents, 0xa372acd1, 0x3bef, 0x4bbd, 0x8f,0xfb, 0xcb,0x3e,0x2b,0x41,0x6a,0xf8)
  15606 #endif
  15607 #else
  15608 typedef struct _ISpeechVoiceEventsVtbl {
  15609     BEGIN_INTERFACE
  15610 
  15611     /*** IUnknown methods ***/
  15612     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  15613         _ISpeechVoiceEvents *This,
  15614         REFIID riid,
  15615         void **ppvObject);
  15616 
  15617     ULONG (STDMETHODCALLTYPE *AddRef)(
  15618         _ISpeechVoiceEvents *This);
  15619 
  15620     ULONG (STDMETHODCALLTYPE *Release)(
  15621         _ISpeechVoiceEvents *This);
  15622 
  15623     /*** IDispatch methods ***/
  15624     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  15625         _ISpeechVoiceEvents *This,
  15626         UINT *pctinfo);
  15627 
  15628     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  15629         _ISpeechVoiceEvents *This,
  15630         UINT iTInfo,
  15631         LCID lcid,
  15632         ITypeInfo **ppTInfo);
  15633 
  15634     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  15635         _ISpeechVoiceEvents *This,
  15636         REFIID riid,
  15637         LPOLESTR *rgszNames,
  15638         UINT cNames,
  15639         LCID lcid,
  15640         DISPID *rgDispId);
  15641 
  15642     HRESULT (STDMETHODCALLTYPE *Invoke)(
  15643         _ISpeechVoiceEvents *This,
  15644         DISPID dispIdMember,
  15645         REFIID riid,
  15646         LCID lcid,
  15647         WORD wFlags,
  15648         DISPPARAMS *pDispParams,
  15649         VARIANT *pVarResult,
  15650         EXCEPINFO *pExcepInfo,
  15651         UINT *puArgErr);
  15652 
  15653     END_INTERFACE
  15654 } _ISpeechVoiceEventsVtbl;
  15655 
  15656 interface _ISpeechVoiceEvents {
  15657     CONST_VTBL _ISpeechVoiceEventsVtbl* lpVtbl;
  15658 };
  15659 
  15660 #ifdef COBJMACROS
  15661 #ifndef WIDL_C_INLINE_WRAPPERS
  15662 /*** IUnknown methods ***/
  15663 #define _ISpeechVoiceEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  15664 #define _ISpeechVoiceEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
  15665 #define _ISpeechVoiceEvents_Release(This) (This)->lpVtbl->Release(This)
  15666 /*** IDispatch methods ***/
  15667 #define _ISpeechVoiceEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  15668 #define _ISpeechVoiceEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  15669 #define _ISpeechVoiceEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  15670 #define _ISpeechVoiceEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  15671 #else
  15672 /*** IUnknown methods ***/
  15673 static inline HRESULT _ISpeechVoiceEvents_QueryInterface(_ISpeechVoiceEvents* This,REFIID riid,void **ppvObject) {
  15674     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  15675 }
  15676 static inline ULONG _ISpeechVoiceEvents_AddRef(_ISpeechVoiceEvents* This) {
  15677     return This->lpVtbl->AddRef(This);
  15678 }
  15679 static inline ULONG _ISpeechVoiceEvents_Release(_ISpeechVoiceEvents* This) {
  15680     return This->lpVtbl->Release(This);
  15681 }
  15682 /*** IDispatch methods ***/
  15683 static inline HRESULT _ISpeechVoiceEvents_GetTypeInfoCount(_ISpeechVoiceEvents* This,UINT *pctinfo) {
  15684     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  15685 }
  15686 static inline HRESULT _ISpeechVoiceEvents_GetTypeInfo(_ISpeechVoiceEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  15687     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  15688 }
  15689 static inline HRESULT _ISpeechVoiceEvents_GetIDsOfNames(_ISpeechVoiceEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  15690     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  15691 }
  15692 static inline HRESULT _ISpeechVoiceEvents_Invoke(_ISpeechVoiceEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  15693     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  15694 }
  15695 #endif
  15696 #endif
  15697 
  15698 #endif
  15699 
  15700 #endif  /* ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__ */
  15701 
  15702 /*****************************************************************************
  15703  * ISpeechRecognizer interface
  15704  */
  15705 #ifndef __ISpeechRecognizer_INTERFACE_DEFINED__
  15706 #define __ISpeechRecognizer_INTERFACE_DEFINED__
  15707 
  15708 DEFINE_GUID(IID_ISpeechRecognizer, 0x2d5f1c0c, 0xbd75, 0x4b08, 0x94,0x78, 0x3b,0x11,0xfe,0xa2,0x58,0x6c);
  15709 #if defined(__cplusplus) && !defined(CINTERFACE)
  15710 MIDL_INTERFACE("2d5f1c0c-bd75-4b08-9478-3b11fea2586c")
  15711 ISpeechRecognizer : public IDispatch
  15712 {
  15713     virtual HRESULT STDMETHODCALLTYPE putref_Recognizer(
  15714         ISpeechObjectToken *Recognizer) = 0;
  15715 
  15716     virtual HRESULT STDMETHODCALLTYPE get_Recognizer(
  15717         ISpeechObjectToken **Recognizer) = 0;
  15718 
  15719     virtual HRESULT STDMETHODCALLTYPE put_AllowAudioInputFormatChangesOnNextSet(
  15720         VARIANT_BOOL Allow) = 0;
  15721 
  15722     virtual HRESULT STDMETHODCALLTYPE get_AllowAudioInputFormatChangesOnNextSet(
  15723         VARIANT_BOOL *Allow) = 0;
  15724 
  15725     virtual HRESULT STDMETHODCALLTYPE putref_AudioInput(
  15726         ISpeechObjectToken *AudioInput = 0) = 0;
  15727 
  15728     virtual HRESULT STDMETHODCALLTYPE get_AudioInput(
  15729         ISpeechObjectToken **AudioInput) = 0;
  15730 
  15731     virtual HRESULT STDMETHODCALLTYPE putref_AudioInputStream(
  15732         ISpeechBaseStream *AudioInputStream = 0) = 0;
  15733 
  15734     virtual HRESULT STDMETHODCALLTYPE get_AudioInputStream(
  15735         ISpeechBaseStream **AudioInputStream) = 0;
  15736 
  15737     virtual HRESULT STDMETHODCALLTYPE get_IsShared(
  15738         VARIANT_BOOL *Shared) = 0;
  15739 
  15740     virtual HRESULT STDMETHODCALLTYPE put_State(
  15741         SpeechRecognizerState State) = 0;
  15742 
  15743     virtual HRESULT STDMETHODCALLTYPE get_State(
  15744         SpeechRecognizerState *State) = 0;
  15745 
  15746     virtual HRESULT STDMETHODCALLTYPE get_Status(
  15747         ISpeechRecognizerStatus **Status) = 0;
  15748 
  15749     virtual HRESULT STDMETHODCALLTYPE putref_Profile(
  15750         ISpeechObjectToken *Profile = 0) = 0;
  15751 
  15752     virtual HRESULT STDMETHODCALLTYPE get_Profile(
  15753         ISpeechObjectToken **Profile) = 0;
  15754 
  15755     virtual HRESULT STDMETHODCALLTYPE EmulateRecognition(
  15756         VARIANT TextElements,
  15757         VARIANT *ElementDisplayAttributes = 0,
  15758         LONG LanguageId = 0) = 0;
  15759 
  15760     virtual HRESULT STDMETHODCALLTYPE CreateRecoContext(
  15761         ISpeechRecoContext **NewContext) = 0;
  15762 
  15763     virtual HRESULT STDMETHODCALLTYPE GetFormat(
  15764         SpeechFormatType Type,
  15765         ISpeechAudioFormat **Format) = 0;
  15766 
  15767     virtual HRESULT STDMETHODCALLTYPE SetPropertyNumber(
  15768         const BSTR Name,
  15769         LONG Value,
  15770         VARIANT_BOOL *Supported) = 0;
  15771 
  15772     virtual HRESULT STDMETHODCALLTYPE GetPropertyNumber(
  15773         const BSTR Name,
  15774         LONG *Value,
  15775         VARIANT_BOOL *Supported) = 0;
  15776 
  15777     virtual HRESULT STDMETHODCALLTYPE SetPropertyString(
  15778         const BSTR Name,
  15779         const BSTR Value,
  15780         VARIANT_BOOL *Supported) = 0;
  15781 
  15782     virtual HRESULT STDMETHODCALLTYPE GetPropertyString(
  15783         const BSTR Name,
  15784         BSTR *Value,
  15785         VARIANT_BOOL *Supported) = 0;
  15786 
  15787     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
  15788         const BSTR TypeOfUI,
  15789         const VARIANT *ExtraData,
  15790         VARIANT_BOOL *Supported) = 0;
  15791 
  15792     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
  15793         LONG hWndParent,
  15794         BSTR Title,
  15795         const BSTR TypeOfUI,
  15796         const VARIANT *ExtraData = 0) = 0;
  15797 
  15798     virtual HRESULT STDMETHODCALLTYPE GetRecognizers(
  15799         BSTR RequiredAttributes,
  15800         BSTR OptionalAttributes,
  15801         ISpeechObjectTokens **ObjectTokens) = 0;
  15802 
  15803     virtual HRESULT STDMETHODCALLTYPE GetAudioInputs(
  15804         BSTR RequiredAttributes,
  15805         BSTR OptionalAttributes,
  15806         ISpeechObjectTokens **ObjectTokens) = 0;
  15807 
  15808     virtual HRESULT STDMETHODCALLTYPE GetProfiles(
  15809         BSTR RequiredAttributes,
  15810         BSTR OptionalAttributes,
  15811         ISpeechObjectTokens **ObjectTokens) = 0;
  15812 
  15813 };
  15814 #ifdef __CRT_UUID_DECL
  15815 __CRT_UUID_DECL(ISpeechRecognizer, 0x2d5f1c0c, 0xbd75, 0x4b08, 0x94,0x78, 0x3b,0x11,0xfe,0xa2,0x58,0x6c)
  15816 #endif
  15817 #else
  15818 typedef struct ISpeechRecognizerVtbl {
  15819     BEGIN_INTERFACE
  15820 
  15821     /*** IUnknown methods ***/
  15822     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  15823         ISpeechRecognizer *This,
  15824         REFIID riid,
  15825         void **ppvObject);
  15826 
  15827     ULONG (STDMETHODCALLTYPE *AddRef)(
  15828         ISpeechRecognizer *This);
  15829 
  15830     ULONG (STDMETHODCALLTYPE *Release)(
  15831         ISpeechRecognizer *This);
  15832 
  15833     /*** IDispatch methods ***/
  15834     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  15835         ISpeechRecognizer *This,
  15836         UINT *pctinfo);
  15837 
  15838     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  15839         ISpeechRecognizer *This,
  15840         UINT iTInfo,
  15841         LCID lcid,
  15842         ITypeInfo **ppTInfo);
  15843 
  15844     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  15845         ISpeechRecognizer *This,
  15846         REFIID riid,
  15847         LPOLESTR *rgszNames,
  15848         UINT cNames,
  15849         LCID lcid,
  15850         DISPID *rgDispId);
  15851 
  15852     HRESULT (STDMETHODCALLTYPE *Invoke)(
  15853         ISpeechRecognizer *This,
  15854         DISPID dispIdMember,
  15855         REFIID riid,
  15856         LCID lcid,
  15857         WORD wFlags,
  15858         DISPPARAMS *pDispParams,
  15859         VARIANT *pVarResult,
  15860         EXCEPINFO *pExcepInfo,
  15861         UINT *puArgErr);
  15862 
  15863     /*** ISpeechRecognizer methods ***/
  15864     HRESULT (STDMETHODCALLTYPE *putref_Recognizer)(
  15865         ISpeechRecognizer *This,
  15866         ISpeechObjectToken *Recognizer);
  15867 
  15868     HRESULT (STDMETHODCALLTYPE *get_Recognizer)(
  15869         ISpeechRecognizer *This,
  15870         ISpeechObjectToken **Recognizer);
  15871 
  15872     HRESULT (STDMETHODCALLTYPE *put_AllowAudioInputFormatChangesOnNextSet)(
  15873         ISpeechRecognizer *This,
  15874         VARIANT_BOOL Allow);
  15875 
  15876     HRESULT (STDMETHODCALLTYPE *get_AllowAudioInputFormatChangesOnNextSet)(
  15877         ISpeechRecognizer *This,
  15878         VARIANT_BOOL *Allow);
  15879 
  15880     HRESULT (STDMETHODCALLTYPE *putref_AudioInput)(
  15881         ISpeechRecognizer *This,
  15882         ISpeechObjectToken *AudioInput);
  15883 
  15884     HRESULT (STDMETHODCALLTYPE *get_AudioInput)(
  15885         ISpeechRecognizer *This,
  15886         ISpeechObjectToken **AudioInput);
  15887 
  15888     HRESULT (STDMETHODCALLTYPE *putref_AudioInputStream)(
  15889         ISpeechRecognizer *This,
  15890         ISpeechBaseStream *AudioInputStream);
  15891 
  15892     HRESULT (STDMETHODCALLTYPE *get_AudioInputStream)(
  15893         ISpeechRecognizer *This,
  15894         ISpeechBaseStream **AudioInputStream);
  15895 
  15896     HRESULT (STDMETHODCALLTYPE *get_IsShared)(
  15897         ISpeechRecognizer *This,
  15898         VARIANT_BOOL *Shared);
  15899 
  15900     HRESULT (STDMETHODCALLTYPE *put_State)(
  15901         ISpeechRecognizer *This,
  15902         SpeechRecognizerState State);
  15903 
  15904     HRESULT (STDMETHODCALLTYPE *get_State)(
  15905         ISpeechRecognizer *This,
  15906         SpeechRecognizerState *State);
  15907 
  15908     HRESULT (STDMETHODCALLTYPE *get_Status)(
  15909         ISpeechRecognizer *This,
  15910         ISpeechRecognizerStatus **Status);
  15911 
  15912     HRESULT (STDMETHODCALLTYPE *putref_Profile)(
  15913         ISpeechRecognizer *This,
  15914         ISpeechObjectToken *Profile);
  15915 
  15916     HRESULT (STDMETHODCALLTYPE *get_Profile)(
  15917         ISpeechRecognizer *This,
  15918         ISpeechObjectToken **Profile);
  15919 
  15920     HRESULT (STDMETHODCALLTYPE *EmulateRecognition)(
  15921         ISpeechRecognizer *This,
  15922         VARIANT TextElements,
  15923         VARIANT *ElementDisplayAttributes,
  15924         LONG LanguageId);
  15925 
  15926     HRESULT (STDMETHODCALLTYPE *CreateRecoContext)(
  15927         ISpeechRecognizer *This,
  15928         ISpeechRecoContext **NewContext);
  15929 
  15930     HRESULT (STDMETHODCALLTYPE *GetFormat)(
  15931         ISpeechRecognizer *This,
  15932         SpeechFormatType Type,
  15933         ISpeechAudioFormat **Format);
  15934 
  15935     HRESULT (STDMETHODCALLTYPE *SetPropertyNumber)(
  15936         ISpeechRecognizer *This,
  15937         const BSTR Name,
  15938         LONG Value,
  15939         VARIANT_BOOL *Supported);
  15940 
  15941     HRESULT (STDMETHODCALLTYPE *GetPropertyNumber)(
  15942         ISpeechRecognizer *This,
  15943         const BSTR Name,
  15944         LONG *Value,
  15945         VARIANT_BOOL *Supported);
  15946 
  15947     HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
  15948         ISpeechRecognizer *This,
  15949         const BSTR Name,
  15950         const BSTR Value,
  15951         VARIANT_BOOL *Supported);
  15952 
  15953     HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
  15954         ISpeechRecognizer *This,
  15955         const BSTR Name,
  15956         BSTR *Value,
  15957         VARIANT_BOOL *Supported);
  15958 
  15959     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
  15960         ISpeechRecognizer *This,
  15961         const BSTR TypeOfUI,
  15962         const VARIANT *ExtraData,
  15963         VARIANT_BOOL *Supported);
  15964 
  15965     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
  15966         ISpeechRecognizer *This,
  15967         LONG hWndParent,
  15968         BSTR Title,
  15969         const BSTR TypeOfUI,
  15970         const VARIANT *ExtraData);
  15971 
  15972     HRESULT (STDMETHODCALLTYPE *GetRecognizers)(
  15973         ISpeechRecognizer *This,
  15974         BSTR RequiredAttributes,
  15975         BSTR OptionalAttributes,
  15976         ISpeechObjectTokens **ObjectTokens);
  15977 
  15978     HRESULT (STDMETHODCALLTYPE *GetAudioInputs)(
  15979         ISpeechRecognizer *This,
  15980         BSTR RequiredAttributes,
  15981         BSTR OptionalAttributes,
  15982         ISpeechObjectTokens **ObjectTokens);
  15983 
  15984     HRESULT (STDMETHODCALLTYPE *GetProfiles)(
  15985         ISpeechRecognizer *This,
  15986         BSTR RequiredAttributes,
  15987         BSTR OptionalAttributes,
  15988         ISpeechObjectTokens **ObjectTokens);
  15989 
  15990     END_INTERFACE
  15991 } ISpeechRecognizerVtbl;
  15992 
  15993 interface ISpeechRecognizer {
  15994     CONST_VTBL ISpeechRecognizerVtbl* lpVtbl;
  15995 };
  15996 
  15997 #ifdef COBJMACROS
  15998 #ifndef WIDL_C_INLINE_WRAPPERS
  15999 /*** IUnknown methods ***/
  16000 #define ISpeechRecognizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  16001 #define ISpeechRecognizer_AddRef(This) (This)->lpVtbl->AddRef(This)
  16002 #define ISpeechRecognizer_Release(This) (This)->lpVtbl->Release(This)
  16003 /*** IDispatch methods ***/
  16004 #define ISpeechRecognizer_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  16005 #define ISpeechRecognizer_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  16006 #define ISpeechRecognizer_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  16007 #define ISpeechRecognizer_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  16008 /*** ISpeechRecognizer methods ***/
  16009 #define ISpeechRecognizer_putref_Recognizer(This,Recognizer) (This)->lpVtbl->putref_Recognizer(This,Recognizer)
  16010 #define ISpeechRecognizer_get_Recognizer(This,Recognizer) (This)->lpVtbl->get_Recognizer(This,Recognizer)
  16011 #define ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->put_AllowAudioInputFormatChangesOnNextSet(This,Allow)
  16012 #define ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->get_AllowAudioInputFormatChangesOnNextSet(This,Allow)
  16013 #define ISpeechRecognizer_putref_AudioInput(This,AudioInput) (This)->lpVtbl->putref_AudioInput(This,AudioInput)
  16014 #define ISpeechRecognizer_get_AudioInput(This,AudioInput) (This)->lpVtbl->get_AudioInput(This,AudioInput)
  16015 #define ISpeechRecognizer_putref_AudioInputStream(This,AudioInputStream) (This)->lpVtbl->putref_AudioInputStream(This,AudioInputStream)
  16016 #define ISpeechRecognizer_get_AudioInputStream(This,AudioInputStream) (This)->lpVtbl->get_AudioInputStream(This,AudioInputStream)
  16017 #define ISpeechRecognizer_get_IsShared(This,Shared) (This)->lpVtbl->get_IsShared(This,Shared)
  16018 #define ISpeechRecognizer_put_State(This,State) (This)->lpVtbl->put_State(This,State)
  16019 #define ISpeechRecognizer_get_State(This,State) (This)->lpVtbl->get_State(This,State)
  16020 #define ISpeechRecognizer_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
  16021 #define ISpeechRecognizer_putref_Profile(This,Profile) (This)->lpVtbl->putref_Profile(This,Profile)
  16022 #define ISpeechRecognizer_get_Profile(This,Profile) (This)->lpVtbl->get_Profile(This,Profile)
  16023 #define ISpeechRecognizer_EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId) (This)->lpVtbl->EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId)
  16024 #define ISpeechRecognizer_CreateRecoContext(This,NewContext) (This)->lpVtbl->CreateRecoContext(This,NewContext)
  16025 #define ISpeechRecognizer_GetFormat(This,Type,Format) (This)->lpVtbl->GetFormat(This,Type,Format)
  16026 #define ISpeechRecognizer_SetPropertyNumber(This,Name,Value,Supported) (This)->lpVtbl->SetPropertyNumber(This,Name,Value,Supported)
  16027 #define ISpeechRecognizer_GetPropertyNumber(This,Name,Value,Supported) (This)->lpVtbl->GetPropertyNumber(This,Name,Value,Supported)
  16028 #define ISpeechRecognizer_SetPropertyString(This,Name,Value,Supported) (This)->lpVtbl->SetPropertyString(This,Name,Value,Supported)
  16029 #define ISpeechRecognizer_GetPropertyString(This,Name,Value,Supported) (This)->lpVtbl->GetPropertyString(This,Name,Value,Supported)
  16030 #define ISpeechRecognizer_IsUISupported(This,TypeOfUI,ExtraData,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported)
  16031 #define ISpeechRecognizer_DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData) (This)->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData)
  16032 #define ISpeechRecognizer_GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
  16033 #define ISpeechRecognizer_GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
  16034 #define ISpeechRecognizer_GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
  16035 #else
  16036 /*** IUnknown methods ***/
  16037 static inline HRESULT ISpeechRecognizer_QueryInterface(ISpeechRecognizer* This,REFIID riid,void **ppvObject) {
  16038     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  16039 }
  16040 static inline ULONG ISpeechRecognizer_AddRef(ISpeechRecognizer* This) {
  16041     return This->lpVtbl->AddRef(This);
  16042 }
  16043 static inline ULONG ISpeechRecognizer_Release(ISpeechRecognizer* This) {
  16044     return This->lpVtbl->Release(This);
  16045 }
  16046 /*** IDispatch methods ***/
  16047 static inline HRESULT ISpeechRecognizer_GetTypeInfoCount(ISpeechRecognizer* This,UINT *pctinfo) {
  16048     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  16049 }
  16050 static inline HRESULT ISpeechRecognizer_GetTypeInfo(ISpeechRecognizer* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  16051     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  16052 }
  16053 static inline HRESULT ISpeechRecognizer_GetIDsOfNames(ISpeechRecognizer* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  16054     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  16055 }
  16056 static inline HRESULT ISpeechRecognizer_Invoke(ISpeechRecognizer* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  16057     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  16058 }
  16059 /*** ISpeechRecognizer methods ***/
  16060 static inline HRESULT ISpeechRecognizer_putref_Recognizer(ISpeechRecognizer* This,ISpeechObjectToken *Recognizer) {
  16061     return This->lpVtbl->putref_Recognizer(This,Recognizer);
  16062 }
  16063 static inline HRESULT ISpeechRecognizer_get_Recognizer(ISpeechRecognizer* This,ISpeechObjectToken **Recognizer) {
  16064     return This->lpVtbl->get_Recognizer(This,Recognizer);
  16065 }
  16066 static inline HRESULT ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet(ISpeechRecognizer* This,VARIANT_BOOL Allow) {
  16067     return This->lpVtbl->put_AllowAudioInputFormatChangesOnNextSet(This,Allow);
  16068 }
  16069 static inline HRESULT ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet(ISpeechRecognizer* This,VARIANT_BOOL *Allow) {
  16070     return This->lpVtbl->get_AllowAudioInputFormatChangesOnNextSet(This,Allow);
  16071 }
  16072 static inline HRESULT ISpeechRecognizer_putref_AudioInput(ISpeechRecognizer* This,ISpeechObjectToken *AudioInput) {
  16073     return This->lpVtbl->putref_AudioInput(This,AudioInput);
  16074 }
  16075 static inline HRESULT ISpeechRecognizer_get_AudioInput(ISpeechRecognizer* This,ISpeechObjectToken **AudioInput) {
  16076     return This->lpVtbl->get_AudioInput(This,AudioInput);
  16077 }
  16078 static inline HRESULT ISpeechRecognizer_putref_AudioInputStream(ISpeechRecognizer* This,ISpeechBaseStream *AudioInputStream) {
  16079     return This->lpVtbl->putref_AudioInputStream(This,AudioInputStream);
  16080 }
  16081 static inline HRESULT ISpeechRecognizer_get_AudioInputStream(ISpeechRecognizer* This,ISpeechBaseStream **AudioInputStream) {
  16082     return This->lpVtbl->get_AudioInputStream(This,AudioInputStream);
  16083 }
  16084 static inline HRESULT ISpeechRecognizer_get_IsShared(ISpeechRecognizer* This,VARIANT_BOOL *Shared) {
  16085     return This->lpVtbl->get_IsShared(This,Shared);
  16086 }
  16087 static inline HRESULT ISpeechRecognizer_put_State(ISpeechRecognizer* This,SpeechRecognizerState State) {
  16088     return This->lpVtbl->put_State(This,State);
  16089 }
  16090 static inline HRESULT ISpeechRecognizer_get_State(ISpeechRecognizer* This,SpeechRecognizerState *State) {
  16091     return This->lpVtbl->get_State(This,State);
  16092 }
  16093 static inline HRESULT ISpeechRecognizer_get_Status(ISpeechRecognizer* This,ISpeechRecognizerStatus **Status) {
  16094     return This->lpVtbl->get_Status(This,Status);
  16095 }
  16096 static inline HRESULT ISpeechRecognizer_putref_Profile(ISpeechRecognizer* This,ISpeechObjectToken *Profile) {
  16097     return This->lpVtbl->putref_Profile(This,Profile);
  16098 }
  16099 static inline HRESULT ISpeechRecognizer_get_Profile(ISpeechRecognizer* This,ISpeechObjectToken **Profile) {
  16100     return This->lpVtbl->get_Profile(This,Profile);
  16101 }
  16102 static inline HRESULT ISpeechRecognizer_EmulateRecognition(ISpeechRecognizer* This,VARIANT TextElements,VARIANT *ElementDisplayAttributes,LONG LanguageId) {
  16103     return This->lpVtbl->EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId);
  16104 }
  16105 static inline HRESULT ISpeechRecognizer_CreateRecoContext(ISpeechRecognizer* This,ISpeechRecoContext **NewContext) {
  16106     return This->lpVtbl->CreateRecoContext(This,NewContext);
  16107 }
  16108 static inline HRESULT ISpeechRecognizer_GetFormat(ISpeechRecognizer* This,SpeechFormatType Type,ISpeechAudioFormat **Format) {
  16109     return This->lpVtbl->GetFormat(This,Type,Format);
  16110 }
  16111 static inline HRESULT ISpeechRecognizer_SetPropertyNumber(ISpeechRecognizer* This,const BSTR Name,LONG Value,VARIANT_BOOL *Supported) {
  16112     return This->lpVtbl->SetPropertyNumber(This,Name,Value,Supported);
  16113 }
  16114 static inline HRESULT ISpeechRecognizer_GetPropertyNumber(ISpeechRecognizer* This,const BSTR Name,LONG *Value,VARIANT_BOOL *Supported) {
  16115     return This->lpVtbl->GetPropertyNumber(This,Name,Value,Supported);
  16116 }
  16117 static inline HRESULT ISpeechRecognizer_SetPropertyString(ISpeechRecognizer* This,const BSTR Name,const BSTR Value,VARIANT_BOOL *Supported) {
  16118     return This->lpVtbl->SetPropertyString(This,Name,Value,Supported);
  16119 }
  16120 static inline HRESULT ISpeechRecognizer_GetPropertyString(ISpeechRecognizer* This,const BSTR Name,BSTR *Value,VARIANT_BOOL *Supported) {
  16121     return This->lpVtbl->GetPropertyString(This,Name,Value,Supported);
  16122 }
  16123 static inline HRESULT ISpeechRecognizer_IsUISupported(ISpeechRecognizer* This,const BSTR TypeOfUI,const VARIANT *ExtraData,VARIANT_BOOL *Supported) {
  16124     return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported);
  16125 }
  16126 static inline HRESULT ISpeechRecognizer_DisplayUI(ISpeechRecognizer* This,LONG hWndParent,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData) {
  16127     return This->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData);
  16128 }
  16129 static inline HRESULT ISpeechRecognizer_GetRecognizers(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
  16130     return This->lpVtbl->GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
  16131 }
  16132 static inline HRESULT ISpeechRecognizer_GetAudioInputs(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
  16133     return This->lpVtbl->GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
  16134 }
  16135 static inline HRESULT ISpeechRecognizer_GetProfiles(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
  16136     return This->lpVtbl->GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
  16137 }
  16138 #endif
  16139 #endif
  16140 
  16141 #endif
  16142 
  16143 
  16144 #endif  /* __ISpeechRecognizer_INTERFACE_DEFINED__ */
  16145 
  16146 /*****************************************************************************
  16147  * ISpeechRecognizerStatus interface
  16148  */
  16149 #ifndef __ISpeechRecognizerStatus_INTERFACE_DEFINED__
  16150 #define __ISpeechRecognizerStatus_INTERFACE_DEFINED__
  16151 
  16152 DEFINE_GUID(IID_ISpeechRecognizerStatus, 0xbff9e781, 0x53ec, 0x484e, 0xbb,0x8a, 0x0e,0x1b,0x55,0x51,0xe3,0x5c);
  16153 #if defined(__cplusplus) && !defined(CINTERFACE)
  16154 MIDL_INTERFACE("bff9e781-53ec-484e-bb8a-0e1b5551e35c")
  16155 ISpeechRecognizerStatus : public IDispatch
  16156 {
  16157     virtual HRESULT STDMETHODCALLTYPE get_AudioStatus(
  16158         ISpeechAudioStatus **AudioStatus) = 0;
  16159 
  16160     virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamPosition(
  16161         VARIANT *pCurrentStreamPos) = 0;
  16162 
  16163     virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamNumber(
  16164         LONG *StreamNumber) = 0;
  16165 
  16166     virtual HRESULT STDMETHODCALLTYPE get_NumberOfActiveRules(
  16167         LONG *NumberOfActiveRules) = 0;
  16168 
  16169     virtual HRESULT STDMETHODCALLTYPE get_ClsidEngine(
  16170         BSTR *ClsidEngine) = 0;
  16171 
  16172     virtual HRESULT STDMETHODCALLTYPE get_SupportedLanguages(
  16173         VARIANT *SupportedLanguages) = 0;
  16174 
  16175 };
  16176 #ifdef __CRT_UUID_DECL
  16177 __CRT_UUID_DECL(ISpeechRecognizerStatus, 0xbff9e781, 0x53ec, 0x484e, 0xbb,0x8a, 0x0e,0x1b,0x55,0x51,0xe3,0x5c)
  16178 #endif
  16179 #else
  16180 typedef struct ISpeechRecognizerStatusVtbl {
  16181     BEGIN_INTERFACE
  16182 
  16183     /*** IUnknown methods ***/
  16184     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  16185         ISpeechRecognizerStatus *This,
  16186         REFIID riid,
  16187         void **ppvObject);
  16188 
  16189     ULONG (STDMETHODCALLTYPE *AddRef)(
  16190         ISpeechRecognizerStatus *This);
  16191 
  16192     ULONG (STDMETHODCALLTYPE *Release)(
  16193         ISpeechRecognizerStatus *This);
  16194 
  16195     /*** IDispatch methods ***/
  16196     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  16197         ISpeechRecognizerStatus *This,
  16198         UINT *pctinfo);
  16199 
  16200     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  16201         ISpeechRecognizerStatus *This,
  16202         UINT iTInfo,
  16203         LCID lcid,
  16204         ITypeInfo **ppTInfo);
  16205 
  16206     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  16207         ISpeechRecognizerStatus *This,
  16208         REFIID riid,
  16209         LPOLESTR *rgszNames,
  16210         UINT cNames,
  16211         LCID lcid,
  16212         DISPID *rgDispId);
  16213 
  16214     HRESULT (STDMETHODCALLTYPE *Invoke)(
  16215         ISpeechRecognizerStatus *This,
  16216         DISPID dispIdMember,
  16217         REFIID riid,
  16218         LCID lcid,
  16219         WORD wFlags,
  16220         DISPPARAMS *pDispParams,
  16221         VARIANT *pVarResult,
  16222         EXCEPINFO *pExcepInfo,
  16223         UINT *puArgErr);
  16224 
  16225     /*** ISpeechRecognizerStatus methods ***/
  16226     HRESULT (STDMETHODCALLTYPE *get_AudioStatus)(
  16227         ISpeechRecognizerStatus *This,
  16228         ISpeechAudioStatus **AudioStatus);
  16229 
  16230     HRESULT (STDMETHODCALLTYPE *get_CurrentStreamPosition)(
  16231         ISpeechRecognizerStatus *This,
  16232         VARIANT *pCurrentStreamPos);
  16233 
  16234     HRESULT (STDMETHODCALLTYPE *get_CurrentStreamNumber)(
  16235         ISpeechRecognizerStatus *This,
  16236         LONG *StreamNumber);
  16237 
  16238     HRESULT (STDMETHODCALLTYPE *get_NumberOfActiveRules)(
  16239         ISpeechRecognizerStatus *This,
  16240         LONG *NumberOfActiveRules);
  16241 
  16242     HRESULT (STDMETHODCALLTYPE *get_ClsidEngine)(
  16243         ISpeechRecognizerStatus *This,
  16244         BSTR *ClsidEngine);
  16245 
  16246     HRESULT (STDMETHODCALLTYPE *get_SupportedLanguages)(
  16247         ISpeechRecognizerStatus *This,
  16248         VARIANT *SupportedLanguages);
  16249 
  16250     END_INTERFACE
  16251 } ISpeechRecognizerStatusVtbl;
  16252 
  16253 interface ISpeechRecognizerStatus {
  16254     CONST_VTBL ISpeechRecognizerStatusVtbl* lpVtbl;
  16255 };
  16256 
  16257 #ifdef COBJMACROS
  16258 #ifndef WIDL_C_INLINE_WRAPPERS
  16259 /*** IUnknown methods ***/
  16260 #define ISpeechRecognizerStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  16261 #define ISpeechRecognizerStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
  16262 #define ISpeechRecognizerStatus_Release(This) (This)->lpVtbl->Release(This)
  16263 /*** IDispatch methods ***/
  16264 #define ISpeechRecognizerStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  16265 #define ISpeechRecognizerStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  16266 #define ISpeechRecognizerStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  16267 #define ISpeechRecognizerStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  16268 /*** ISpeechRecognizerStatus methods ***/
  16269 #define ISpeechRecognizerStatus_get_AudioStatus(This,AudioStatus) (This)->lpVtbl->get_AudioStatus(This,AudioStatus)
  16270 #define ISpeechRecognizerStatus_get_CurrentStreamPosition(This,pCurrentStreamPos) (This)->lpVtbl->get_CurrentStreamPosition(This,pCurrentStreamPos)
  16271 #define ISpeechRecognizerStatus_get_CurrentStreamNumber(This,StreamNumber) (This)->lpVtbl->get_CurrentStreamNumber(This,StreamNumber)
  16272 #define ISpeechRecognizerStatus_get_NumberOfActiveRules(This,NumberOfActiveRules) (This)->lpVtbl->get_NumberOfActiveRules(This,NumberOfActiveRules)
  16273 #define ISpeechRecognizerStatus_get_ClsidEngine(This,ClsidEngine) (This)->lpVtbl->get_ClsidEngine(This,ClsidEngine)
  16274 #define ISpeechRecognizerStatus_get_SupportedLanguages(This,SupportedLanguages) (This)->lpVtbl->get_SupportedLanguages(This,SupportedLanguages)
  16275 #else
  16276 /*** IUnknown methods ***/
  16277 static inline HRESULT ISpeechRecognizerStatus_QueryInterface(ISpeechRecognizerStatus* This,REFIID riid,void **ppvObject) {
  16278     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  16279 }
  16280 static inline ULONG ISpeechRecognizerStatus_AddRef(ISpeechRecognizerStatus* This) {
  16281     return This->lpVtbl->AddRef(This);
  16282 }
  16283 static inline ULONG ISpeechRecognizerStatus_Release(ISpeechRecognizerStatus* This) {
  16284     return This->lpVtbl->Release(This);
  16285 }
  16286 /*** IDispatch methods ***/
  16287 static inline HRESULT ISpeechRecognizerStatus_GetTypeInfoCount(ISpeechRecognizerStatus* This,UINT *pctinfo) {
  16288     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  16289 }
  16290 static inline HRESULT ISpeechRecognizerStatus_GetTypeInfo(ISpeechRecognizerStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  16291     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  16292 }
  16293 static inline HRESULT ISpeechRecognizerStatus_GetIDsOfNames(ISpeechRecognizerStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  16294     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  16295 }
  16296 static inline HRESULT ISpeechRecognizerStatus_Invoke(ISpeechRecognizerStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  16297     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  16298 }
  16299 /*** ISpeechRecognizerStatus methods ***/
  16300 static inline HRESULT ISpeechRecognizerStatus_get_AudioStatus(ISpeechRecognizerStatus* This,ISpeechAudioStatus **AudioStatus) {
  16301     return This->lpVtbl->get_AudioStatus(This,AudioStatus);
  16302 }
  16303 static inline HRESULT ISpeechRecognizerStatus_get_CurrentStreamPosition(ISpeechRecognizerStatus* This,VARIANT *pCurrentStreamPos) {
  16304     return This->lpVtbl->get_CurrentStreamPosition(This,pCurrentStreamPos);
  16305 }
  16306 static inline HRESULT ISpeechRecognizerStatus_get_CurrentStreamNumber(ISpeechRecognizerStatus* This,LONG *StreamNumber) {
  16307     return This->lpVtbl->get_CurrentStreamNumber(This,StreamNumber);
  16308 }
  16309 static inline HRESULT ISpeechRecognizerStatus_get_NumberOfActiveRules(ISpeechRecognizerStatus* This,LONG *NumberOfActiveRules) {
  16310     return This->lpVtbl->get_NumberOfActiveRules(This,NumberOfActiveRules);
  16311 }
  16312 static inline HRESULT ISpeechRecognizerStatus_get_ClsidEngine(ISpeechRecognizerStatus* This,BSTR *ClsidEngine) {
  16313     return This->lpVtbl->get_ClsidEngine(This,ClsidEngine);
  16314 }
  16315 static inline HRESULT ISpeechRecognizerStatus_get_SupportedLanguages(ISpeechRecognizerStatus* This,VARIANT *SupportedLanguages) {
  16316     return This->lpVtbl->get_SupportedLanguages(This,SupportedLanguages);
  16317 }
  16318 #endif
  16319 #endif
  16320 
  16321 #endif
  16322 
  16323 
  16324 #endif  /* __ISpeechRecognizerStatus_INTERFACE_DEFINED__ */
  16325 
  16326 /*****************************************************************************
  16327  * ISpeechRecoContext interface
  16328  */
  16329 #ifndef __ISpeechRecoContext_INTERFACE_DEFINED__
  16330 #define __ISpeechRecoContext_INTERFACE_DEFINED__
  16331 
  16332 DEFINE_GUID(IID_ISpeechRecoContext, 0x580aa49d, 0x7e1e, 0x4809, 0xb8,0xe2, 0x57,0xda,0x80,0x61,0x04,0xb8);
  16333 #if defined(__cplusplus) && !defined(CINTERFACE)
  16334 MIDL_INTERFACE("580aa49d-7e1e-4809-b8e2-57da806104b8")
  16335 ISpeechRecoContext : public IDispatch
  16336 {
  16337     virtual HRESULT STDMETHODCALLTYPE get_Recognizer(
  16338         ISpeechRecognizer **Recognizer) = 0;
  16339 
  16340     virtual HRESULT STDMETHODCALLTYPE get_AudioInputInterferenceStatus(
  16341         SpeechInterference *Interference) = 0;
  16342 
  16343     virtual HRESULT STDMETHODCALLTYPE get_RequestedUIType(
  16344         BSTR *UIType) = 0;
  16345 
  16346     virtual HRESULT STDMETHODCALLTYPE putref_Voice(
  16347         ISpeechVoice *Voice) = 0;
  16348 
  16349     virtual HRESULT STDMETHODCALLTYPE get_Voice(
  16350         ISpeechVoice **Voice) = 0;
  16351 
  16352     virtual HRESULT STDMETHODCALLTYPE put_AllowVoiceFormatMatchingOnNextSet(
  16353         VARIANT_BOOL Allow) = 0;
  16354 
  16355     virtual HRESULT STDMETHODCALLTYPE get_AllowVoiceFormatMatchingOnNextSet(
  16356         VARIANT_BOOL *pAllow) = 0;
  16357 
  16358     virtual HRESULT STDMETHODCALLTYPE put_VoicePurgeEvent(
  16359         SpeechRecoEvents EventInterest) = 0;
  16360 
  16361     virtual HRESULT STDMETHODCALLTYPE get_VoicePurgeEvent(
  16362         SpeechRecoEvents *EventInterest) = 0;
  16363 
  16364     virtual HRESULT STDMETHODCALLTYPE put_EventInterests(
  16365         SpeechRecoEvents EventInterest) = 0;
  16366 
  16367     virtual HRESULT STDMETHODCALLTYPE get_EventInterests(
  16368         SpeechRecoEvents *EventInterest) = 0;
  16369 
  16370     virtual HRESULT STDMETHODCALLTYPE put_CmdMaxAlternates(
  16371         LONG MaxAlternates) = 0;
  16372 
  16373     virtual HRESULT STDMETHODCALLTYPE get_CmdMaxAlternates(
  16374         LONG *MaxAlternates) = 0;
  16375 
  16376     virtual HRESULT STDMETHODCALLTYPE put_State(
  16377         SpeechRecoContextState State) = 0;
  16378 
  16379     virtual HRESULT STDMETHODCALLTYPE get_State(
  16380         SpeechRecoContextState *State) = 0;
  16381 
  16382     virtual HRESULT STDMETHODCALLTYPE put_RetainedAudio(
  16383         SpeechRetainedAudioOptions Option) = 0;
  16384 
  16385     virtual HRESULT STDMETHODCALLTYPE get_RetainedAudio(
  16386         SpeechRetainedAudioOptions *Option) = 0;
  16387 
  16388     virtual HRESULT STDMETHODCALLTYPE putref_RetainedAudioFormat(
  16389         ISpeechAudioFormat *Format) = 0;
  16390 
  16391     virtual HRESULT STDMETHODCALLTYPE get_RetainedAudioFormat(
  16392         ISpeechAudioFormat **Format) = 0;
  16393 
  16394     virtual HRESULT STDMETHODCALLTYPE Pause(
  16395         ) = 0;
  16396 
  16397     virtual HRESULT STDMETHODCALLTYPE Resume(
  16398         ) = 0;
  16399 
  16400     virtual HRESULT STDMETHODCALLTYPE CreateGrammar(
  16401         VARIANT GrammarId,
  16402         ISpeechRecoGrammar **Grammar) = 0;
  16403 
  16404     virtual HRESULT STDMETHODCALLTYPE CreateResultFromMemory(
  16405         VARIANT *ResultBlock,
  16406         ISpeechRecoResult **Result) = 0;
  16407 
  16408     virtual HRESULT STDMETHODCALLTYPE Bookmark(
  16409         SpeechBookmarkOptions Options,
  16410         VARIANT StreamPos,
  16411         VARIANT BookmarkId) = 0;
  16412 
  16413     virtual HRESULT STDMETHODCALLTYPE SetAdaptationData(
  16414         BSTR AdaptationString) = 0;
  16415 
  16416 };
  16417 #ifdef __CRT_UUID_DECL
  16418 __CRT_UUID_DECL(ISpeechRecoContext, 0x580aa49d, 0x7e1e, 0x4809, 0xb8,0xe2, 0x57,0xda,0x80,0x61,0x04,0xb8)
  16419 #endif
  16420 #else
  16421 typedef struct ISpeechRecoContextVtbl {
  16422     BEGIN_INTERFACE
  16423 
  16424     /*** IUnknown methods ***/
  16425     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  16426         ISpeechRecoContext *This,
  16427         REFIID riid,
  16428         void **ppvObject);
  16429 
  16430     ULONG (STDMETHODCALLTYPE *AddRef)(
  16431         ISpeechRecoContext *This);
  16432 
  16433     ULONG (STDMETHODCALLTYPE *Release)(
  16434         ISpeechRecoContext *This);
  16435 
  16436     /*** IDispatch methods ***/
  16437     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  16438         ISpeechRecoContext *This,
  16439         UINT *pctinfo);
  16440 
  16441     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  16442         ISpeechRecoContext *This,
  16443         UINT iTInfo,
  16444         LCID lcid,
  16445         ITypeInfo **ppTInfo);
  16446 
  16447     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  16448         ISpeechRecoContext *This,
  16449         REFIID riid,
  16450         LPOLESTR *rgszNames,
  16451         UINT cNames,
  16452         LCID lcid,
  16453         DISPID *rgDispId);
  16454 
  16455     HRESULT (STDMETHODCALLTYPE *Invoke)(
  16456         ISpeechRecoContext *This,
  16457         DISPID dispIdMember,
  16458         REFIID riid,
  16459         LCID lcid,
  16460         WORD wFlags,
  16461         DISPPARAMS *pDispParams,
  16462         VARIANT *pVarResult,
  16463         EXCEPINFO *pExcepInfo,
  16464         UINT *puArgErr);
  16465 
  16466     /*** ISpeechRecoContext methods ***/
  16467     HRESULT (STDMETHODCALLTYPE *get_Recognizer)(
  16468         ISpeechRecoContext *This,
  16469         ISpeechRecognizer **Recognizer);
  16470 
  16471     HRESULT (STDMETHODCALLTYPE *get_AudioInputInterferenceStatus)(
  16472         ISpeechRecoContext *This,
  16473         SpeechInterference *Interference);
  16474 
  16475     HRESULT (STDMETHODCALLTYPE *get_RequestedUIType)(
  16476         ISpeechRecoContext *This,
  16477         BSTR *UIType);
  16478 
  16479     HRESULT (STDMETHODCALLTYPE *putref_Voice)(
  16480         ISpeechRecoContext *This,
  16481         ISpeechVoice *Voice);
  16482 
  16483     HRESULT (STDMETHODCALLTYPE *get_Voice)(
  16484         ISpeechRecoContext *This,
  16485         ISpeechVoice **Voice);
  16486 
  16487     HRESULT (STDMETHODCALLTYPE *put_AllowVoiceFormatMatchingOnNextSet)(
  16488         ISpeechRecoContext *This,
  16489         VARIANT_BOOL Allow);
  16490 
  16491     HRESULT (STDMETHODCALLTYPE *get_AllowVoiceFormatMatchingOnNextSet)(
  16492         ISpeechRecoContext *This,
  16493         VARIANT_BOOL *pAllow);
  16494 
  16495     HRESULT (STDMETHODCALLTYPE *put_VoicePurgeEvent)(
  16496         ISpeechRecoContext *This,
  16497         SpeechRecoEvents EventInterest);
  16498 
  16499     HRESULT (STDMETHODCALLTYPE *get_VoicePurgeEvent)(
  16500         ISpeechRecoContext *This,
  16501         SpeechRecoEvents *EventInterest);
  16502 
  16503     HRESULT (STDMETHODCALLTYPE *put_EventInterests)(
  16504         ISpeechRecoContext *This,
  16505         SpeechRecoEvents EventInterest);
  16506 
  16507     HRESULT (STDMETHODCALLTYPE *get_EventInterests)(
  16508         ISpeechRecoContext *This,
  16509         SpeechRecoEvents *EventInterest);
  16510 
  16511     HRESULT (STDMETHODCALLTYPE *put_CmdMaxAlternates)(
  16512         ISpeechRecoContext *This,
  16513         LONG MaxAlternates);
  16514 
  16515     HRESULT (STDMETHODCALLTYPE *get_CmdMaxAlternates)(
  16516         ISpeechRecoContext *This,
  16517         LONG *MaxAlternates);
  16518 
  16519     HRESULT (STDMETHODCALLTYPE *put_State)(
  16520         ISpeechRecoContext *This,
  16521         SpeechRecoContextState State);
  16522 
  16523     HRESULT (STDMETHODCALLTYPE *get_State)(
  16524         ISpeechRecoContext *This,
  16525         SpeechRecoContextState *State);
  16526 
  16527     HRESULT (STDMETHODCALLTYPE *put_RetainedAudio)(
  16528         ISpeechRecoContext *This,
  16529         SpeechRetainedAudioOptions Option);
  16530 
  16531     HRESULT (STDMETHODCALLTYPE *get_RetainedAudio)(
  16532         ISpeechRecoContext *This,
  16533         SpeechRetainedAudioOptions *Option);
  16534 
  16535     HRESULT (STDMETHODCALLTYPE *putref_RetainedAudioFormat)(
  16536         ISpeechRecoContext *This,
  16537         ISpeechAudioFormat *Format);
  16538 
  16539     HRESULT (STDMETHODCALLTYPE *get_RetainedAudioFormat)(
  16540         ISpeechRecoContext *This,
  16541         ISpeechAudioFormat **Format);
  16542 
  16543     HRESULT (STDMETHODCALLTYPE *Pause)(
  16544         ISpeechRecoContext *This);
  16545 
  16546     HRESULT (STDMETHODCALLTYPE *Resume)(
  16547         ISpeechRecoContext *This);
  16548 
  16549     HRESULT (STDMETHODCALLTYPE *CreateGrammar)(
  16550         ISpeechRecoContext *This,
  16551         VARIANT GrammarId,
  16552         ISpeechRecoGrammar **Grammar);
  16553 
  16554     HRESULT (STDMETHODCALLTYPE *CreateResultFromMemory)(
  16555         ISpeechRecoContext *This,
  16556         VARIANT *ResultBlock,
  16557         ISpeechRecoResult **Result);
  16558 
  16559     HRESULT (STDMETHODCALLTYPE *Bookmark)(
  16560         ISpeechRecoContext *This,
  16561         SpeechBookmarkOptions Options,
  16562         VARIANT StreamPos,
  16563         VARIANT BookmarkId);
  16564 
  16565     HRESULT (STDMETHODCALLTYPE *SetAdaptationData)(
  16566         ISpeechRecoContext *This,
  16567         BSTR AdaptationString);
  16568 
  16569     END_INTERFACE
  16570 } ISpeechRecoContextVtbl;
  16571 
  16572 interface ISpeechRecoContext {
  16573     CONST_VTBL ISpeechRecoContextVtbl* lpVtbl;
  16574 };
  16575 
  16576 #ifdef COBJMACROS
  16577 #ifndef WIDL_C_INLINE_WRAPPERS
  16578 /*** IUnknown methods ***/
  16579 #define ISpeechRecoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  16580 #define ISpeechRecoContext_AddRef(This) (This)->lpVtbl->AddRef(This)
  16581 #define ISpeechRecoContext_Release(This) (This)->lpVtbl->Release(This)
  16582 /*** IDispatch methods ***/
  16583 #define ISpeechRecoContext_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  16584 #define ISpeechRecoContext_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  16585 #define ISpeechRecoContext_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  16586 #define ISpeechRecoContext_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  16587 /*** ISpeechRecoContext methods ***/
  16588 #define ISpeechRecoContext_get_Recognizer(This,Recognizer) (This)->lpVtbl->get_Recognizer(This,Recognizer)
  16589 #define ISpeechRecoContext_get_AudioInputInterferenceStatus(This,Interference) (This)->lpVtbl->get_AudioInputInterferenceStatus(This,Interference)
  16590 #define ISpeechRecoContext_get_RequestedUIType(This,UIType) (This)->lpVtbl->get_RequestedUIType(This,UIType)
  16591 #define ISpeechRecoContext_putref_Voice(This,Voice) (This)->lpVtbl->putref_Voice(This,Voice)
  16592 #define ISpeechRecoContext_get_Voice(This,Voice) (This)->lpVtbl->get_Voice(This,Voice)
  16593 #define ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet(This,Allow) (This)->lpVtbl->put_AllowVoiceFormatMatchingOnNextSet(This,Allow)
  16594 #define ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet(This,pAllow) (This)->lpVtbl->get_AllowVoiceFormatMatchingOnNextSet(This,pAllow)
  16595 #define ISpeechRecoContext_put_VoicePurgeEvent(This,EventInterest) (This)->lpVtbl->put_VoicePurgeEvent(This,EventInterest)
  16596 #define ISpeechRecoContext_get_VoicePurgeEvent(This,EventInterest) (This)->lpVtbl->get_VoicePurgeEvent(This,EventInterest)
  16597 #define ISpeechRecoContext_put_EventInterests(This,EventInterest) (This)->lpVtbl->put_EventInterests(This,EventInterest)
  16598 #define ISpeechRecoContext_get_EventInterests(This,EventInterest) (This)->lpVtbl->get_EventInterests(This,EventInterest)
  16599 #define ISpeechRecoContext_put_CmdMaxAlternates(This,MaxAlternates) (This)->lpVtbl->put_CmdMaxAlternates(This,MaxAlternates)
  16600 #define ISpeechRecoContext_get_CmdMaxAlternates(This,MaxAlternates) (This)->lpVtbl->get_CmdMaxAlternates(This,MaxAlternates)
  16601 #define ISpeechRecoContext_put_State(This,State) (This)->lpVtbl->put_State(This,State)
  16602 #define ISpeechRecoContext_get_State(This,State) (This)->lpVtbl->get_State(This,State)
  16603 #define ISpeechRecoContext_put_RetainedAudio(This,Option) (This)->lpVtbl->put_RetainedAudio(This,Option)
  16604 #define ISpeechRecoContext_get_RetainedAudio(This,Option) (This)->lpVtbl->get_RetainedAudio(This,Option)
  16605 #define ISpeechRecoContext_putref_RetainedAudioFormat(This,Format) (This)->lpVtbl->putref_RetainedAudioFormat(This,Format)
  16606 #define ISpeechRecoContext_get_RetainedAudioFormat(This,Format) (This)->lpVtbl->get_RetainedAudioFormat(This,Format)
  16607 #define ISpeechRecoContext_Pause(This) (This)->lpVtbl->Pause(This)
  16608 #define ISpeechRecoContext_Resume(This) (This)->lpVtbl->Resume(This)
  16609 #define ISpeechRecoContext_CreateGrammar(This,GrammarId,Grammar) (This)->lpVtbl->CreateGrammar(This,GrammarId,Grammar)
  16610 #define ISpeechRecoContext_CreateResultFromMemory(This,ResultBlock,Result) (This)->lpVtbl->CreateResultFromMemory(This,ResultBlock,Result)
  16611 #define ISpeechRecoContext_Bookmark(This,Options,StreamPos,BookmarkId) (This)->lpVtbl->Bookmark(This,Options,StreamPos,BookmarkId)
  16612 #define ISpeechRecoContext_SetAdaptationData(This,AdaptationString) (This)->lpVtbl->SetAdaptationData(This,AdaptationString)
  16613 #else
  16614 /*** IUnknown methods ***/
  16615 static inline HRESULT ISpeechRecoContext_QueryInterface(ISpeechRecoContext* This,REFIID riid,void **ppvObject) {
  16616     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  16617 }
  16618 static inline ULONG ISpeechRecoContext_AddRef(ISpeechRecoContext* This) {
  16619     return This->lpVtbl->AddRef(This);
  16620 }
  16621 static inline ULONG ISpeechRecoContext_Release(ISpeechRecoContext* This) {
  16622     return This->lpVtbl->Release(This);
  16623 }
  16624 /*** IDispatch methods ***/
  16625 static inline HRESULT ISpeechRecoContext_GetTypeInfoCount(ISpeechRecoContext* This,UINT *pctinfo) {
  16626     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  16627 }
  16628 static inline HRESULT ISpeechRecoContext_GetTypeInfo(ISpeechRecoContext* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  16629     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  16630 }
  16631 static inline HRESULT ISpeechRecoContext_GetIDsOfNames(ISpeechRecoContext* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  16632     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  16633 }
  16634 static inline HRESULT ISpeechRecoContext_Invoke(ISpeechRecoContext* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  16635     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  16636 }
  16637 /*** ISpeechRecoContext methods ***/
  16638 static inline HRESULT ISpeechRecoContext_get_Recognizer(ISpeechRecoContext* This,ISpeechRecognizer **Recognizer) {
  16639     return This->lpVtbl->get_Recognizer(This,Recognizer);
  16640 }
  16641 static inline HRESULT ISpeechRecoContext_get_AudioInputInterferenceStatus(ISpeechRecoContext* This,SpeechInterference *Interference) {
  16642     return This->lpVtbl->get_AudioInputInterferenceStatus(This,Interference);
  16643 }
  16644 static inline HRESULT ISpeechRecoContext_get_RequestedUIType(ISpeechRecoContext* This,BSTR *UIType) {
  16645     return This->lpVtbl->get_RequestedUIType(This,UIType);
  16646 }
  16647 static inline HRESULT ISpeechRecoContext_putref_Voice(ISpeechRecoContext* This,ISpeechVoice *Voice) {
  16648     return This->lpVtbl->putref_Voice(This,Voice);
  16649 }
  16650 static inline HRESULT ISpeechRecoContext_get_Voice(ISpeechRecoContext* This,ISpeechVoice **Voice) {
  16651     return This->lpVtbl->get_Voice(This,Voice);
  16652 }
  16653 static inline HRESULT ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet(ISpeechRecoContext* This,VARIANT_BOOL Allow) {
  16654     return This->lpVtbl->put_AllowVoiceFormatMatchingOnNextSet(This,Allow);
  16655 }
  16656 static inline HRESULT ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet(ISpeechRecoContext* This,VARIANT_BOOL *pAllow) {
  16657     return This->lpVtbl->get_AllowVoiceFormatMatchingOnNextSet(This,pAllow);
  16658 }
  16659 static inline HRESULT ISpeechRecoContext_put_VoicePurgeEvent(ISpeechRecoContext* This,SpeechRecoEvents EventInterest) {
  16660     return This->lpVtbl->put_VoicePurgeEvent(This,EventInterest);
  16661 }
  16662 static inline HRESULT ISpeechRecoContext_get_VoicePurgeEvent(ISpeechRecoContext* This,SpeechRecoEvents *EventInterest) {
  16663     return This->lpVtbl->get_VoicePurgeEvent(This,EventInterest);
  16664 }
  16665 static inline HRESULT ISpeechRecoContext_put_EventInterests(ISpeechRecoContext* This,SpeechRecoEvents EventInterest) {
  16666     return This->lpVtbl->put_EventInterests(This,EventInterest);
  16667 }
  16668 static inline HRESULT ISpeechRecoContext_get_EventInterests(ISpeechRecoContext* This,SpeechRecoEvents *EventInterest) {
  16669     return This->lpVtbl->get_EventInterests(This,EventInterest);
  16670 }
  16671 static inline HRESULT ISpeechRecoContext_put_CmdMaxAlternates(ISpeechRecoContext* This,LONG MaxAlternates) {
  16672     return This->lpVtbl->put_CmdMaxAlternates(This,MaxAlternates);
  16673 }
  16674 static inline HRESULT ISpeechRecoContext_get_CmdMaxAlternates(ISpeechRecoContext* This,LONG *MaxAlternates) {
  16675     return This->lpVtbl->get_CmdMaxAlternates(This,MaxAlternates);
  16676 }
  16677 static inline HRESULT ISpeechRecoContext_put_State(ISpeechRecoContext* This,SpeechRecoContextState State) {
  16678     return This->lpVtbl->put_State(This,State);
  16679 }
  16680 static inline HRESULT ISpeechRecoContext_get_State(ISpeechRecoContext* This,SpeechRecoContextState *State) {
  16681     return This->lpVtbl->get_State(This,State);
  16682 }
  16683 static inline HRESULT ISpeechRecoContext_put_RetainedAudio(ISpeechRecoContext* This,SpeechRetainedAudioOptions Option) {
  16684     return This->lpVtbl->put_RetainedAudio(This,Option);
  16685 }
  16686 static inline HRESULT ISpeechRecoContext_get_RetainedAudio(ISpeechRecoContext* This,SpeechRetainedAudioOptions *Option) {
  16687     return This->lpVtbl->get_RetainedAudio(This,Option);
  16688 }
  16689 static inline HRESULT ISpeechRecoContext_putref_RetainedAudioFormat(ISpeechRecoContext* This,ISpeechAudioFormat *Format) {
  16690     return This->lpVtbl->putref_RetainedAudioFormat(This,Format);
  16691 }
  16692 static inline HRESULT ISpeechRecoContext_get_RetainedAudioFormat(ISpeechRecoContext* This,ISpeechAudioFormat **Format) {
  16693     return This->lpVtbl->get_RetainedAudioFormat(This,Format);
  16694 }
  16695 static inline HRESULT ISpeechRecoContext_Pause(ISpeechRecoContext* This) {
  16696     return This->lpVtbl->Pause(This);
  16697 }
  16698 static inline HRESULT ISpeechRecoContext_Resume(ISpeechRecoContext* This) {
  16699     return This->lpVtbl->Resume(This);
  16700 }
  16701 static inline HRESULT ISpeechRecoContext_CreateGrammar(ISpeechRecoContext* This,VARIANT GrammarId,ISpeechRecoGrammar **Grammar) {
  16702     return This->lpVtbl->CreateGrammar(This,GrammarId,Grammar);
  16703 }
  16704 static inline HRESULT ISpeechRecoContext_CreateResultFromMemory(ISpeechRecoContext* This,VARIANT *ResultBlock,ISpeechRecoResult **Result) {
  16705     return This->lpVtbl->CreateResultFromMemory(This,ResultBlock,Result);
  16706 }
  16707 static inline HRESULT ISpeechRecoContext_Bookmark(ISpeechRecoContext* This,SpeechBookmarkOptions Options,VARIANT StreamPos,VARIANT BookmarkId) {
  16708     return This->lpVtbl->Bookmark(This,Options,StreamPos,BookmarkId);
  16709 }
  16710 static inline HRESULT ISpeechRecoContext_SetAdaptationData(ISpeechRecoContext* This,BSTR AdaptationString) {
  16711     return This->lpVtbl->SetAdaptationData(This,AdaptationString);
  16712 }
  16713 #endif
  16714 #endif
  16715 
  16716 #endif
  16717 
  16718 
  16719 #endif  /* __ISpeechRecoContext_INTERFACE_DEFINED__ */
  16720 
  16721 /*****************************************************************************
  16722  * ISpeechRecoGrammar interface
  16723  */
  16724 #ifndef __ISpeechRecoGrammar_INTERFACE_DEFINED__
  16725 #define __ISpeechRecoGrammar_INTERFACE_DEFINED__
  16726 
  16727 DEFINE_GUID(IID_ISpeechRecoGrammar, 0xb6d6f79f, 0x2158, 0x4e50, 0xb5,0xbc, 0x9a,0x9c,0xcd,0x85,0x2a,0x09);
  16728 #if defined(__cplusplus) && !defined(CINTERFACE)
  16729 MIDL_INTERFACE("b6d6f79f-2158-4e50-b5bc-9a9ccd852a09")
  16730 ISpeechRecoGrammar : public IDispatch
  16731 {
  16732     virtual HRESULT STDMETHODCALLTYPE get_Id(
  16733         VARIANT *Id) = 0;
  16734 
  16735     virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
  16736         ISpeechRecoContext **RecoContext) = 0;
  16737 
  16738     virtual HRESULT STDMETHODCALLTYPE put_State(
  16739         SpeechGrammarState State) = 0;
  16740 
  16741     virtual HRESULT STDMETHODCALLTYPE get_State(
  16742         SpeechGrammarState *State) = 0;
  16743 
  16744     virtual HRESULT STDMETHODCALLTYPE get_Rules(
  16745         ISpeechGrammarRules **Rules) = 0;
  16746 
  16747     virtual HRESULT STDMETHODCALLTYPE Reset(
  16748         SpeechLanguageId NewLanguage = 0) = 0;
  16749 
  16750     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromFile(
  16751         const BSTR FileName,
  16752         SpeechLoadOption LoadOption = SLOStatic) = 0;
  16753 
  16754     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromObject(
  16755         const BSTR ClassId,
  16756         const BSTR GrammarName,
  16757         SpeechLoadOption LoadOption = SLOStatic) = 0;
  16758 
  16759     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromResource(
  16760         LONG hModule,
  16761         VARIANT ResourceName,
  16762         VARIANT ResourceType,
  16763         SpeechLanguageId LanguageId,
  16764         SpeechLoadOption LoadOption = SLOStatic) = 0;
  16765 
  16766     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromMemory(
  16767         VARIANT GrammarData,
  16768         SpeechLoadOption LoadOption = SLOStatic) = 0;
  16769 
  16770     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromProprietaryGrammar(
  16771         const BSTR ProprietaryGuid,
  16772         const BSTR ProprietaryString,
  16773         VARIANT ProprietaryData,
  16774         SpeechLoadOption LoadOption = SLOStatic) = 0;
  16775 
  16776     virtual HRESULT STDMETHODCALLTYPE CmdSetRuleState(
  16777         const BSTR Name,
  16778         SpeechRuleState State) = 0;
  16779 
  16780     virtual HRESULT STDMETHODCALLTYPE CmdSetRuleIdState(
  16781         LONG RuleId,
  16782         SpeechRuleState State) = 0;
  16783 
  16784     virtual HRESULT STDMETHODCALLTYPE DictationLoad(
  16785         const BSTR TopicName = L"",
  16786         SpeechLoadOption LoadOption = SLOStatic) = 0;
  16787 
  16788     virtual HRESULT STDMETHODCALLTYPE DictationUnload(
  16789         ) = 0;
  16790 
  16791     virtual HRESULT STDMETHODCALLTYPE DictationSetState(
  16792         SpeechRuleState State) = 0;
  16793 
  16794     virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData(
  16795         const BSTR Text,
  16796         LONG TextLength,
  16797         ISpeechTextSelectionInformation *Info) = 0;
  16798 
  16799     virtual HRESULT STDMETHODCALLTYPE SetTextSelection(
  16800         ISpeechTextSelectionInformation *Info) = 0;
  16801 
  16802     virtual HRESULT STDMETHODCALLTYPE IsPronounceable(
  16803         const BSTR Word,
  16804         SpeechWordPronounceable *WordPronounceable) = 0;
  16805 
  16806 };
  16807 #ifdef __CRT_UUID_DECL
  16808 __CRT_UUID_DECL(ISpeechRecoGrammar, 0xb6d6f79f, 0x2158, 0x4e50, 0xb5,0xbc, 0x9a,0x9c,0xcd,0x85,0x2a,0x09)
  16809 #endif
  16810 #else
  16811 typedef struct ISpeechRecoGrammarVtbl {
  16812     BEGIN_INTERFACE
  16813 
  16814     /*** IUnknown methods ***/
  16815     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  16816         ISpeechRecoGrammar *This,
  16817         REFIID riid,
  16818         void **ppvObject);
  16819 
  16820     ULONG (STDMETHODCALLTYPE *AddRef)(
  16821         ISpeechRecoGrammar *This);
  16822 
  16823     ULONG (STDMETHODCALLTYPE *Release)(
  16824         ISpeechRecoGrammar *This);
  16825 
  16826     /*** IDispatch methods ***/
  16827     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  16828         ISpeechRecoGrammar *This,
  16829         UINT *pctinfo);
  16830 
  16831     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  16832         ISpeechRecoGrammar *This,
  16833         UINT iTInfo,
  16834         LCID lcid,
  16835         ITypeInfo **ppTInfo);
  16836 
  16837     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  16838         ISpeechRecoGrammar *This,
  16839         REFIID riid,
  16840         LPOLESTR *rgszNames,
  16841         UINT cNames,
  16842         LCID lcid,
  16843         DISPID *rgDispId);
  16844 
  16845     HRESULT (STDMETHODCALLTYPE *Invoke)(
  16846         ISpeechRecoGrammar *This,
  16847         DISPID dispIdMember,
  16848         REFIID riid,
  16849         LCID lcid,
  16850         WORD wFlags,
  16851         DISPPARAMS *pDispParams,
  16852         VARIANT *pVarResult,
  16853         EXCEPINFO *pExcepInfo,
  16854         UINT *puArgErr);
  16855 
  16856     /*** ISpeechRecoGrammar methods ***/
  16857     HRESULT (STDMETHODCALLTYPE *get_Id)(
  16858         ISpeechRecoGrammar *This,
  16859         VARIANT *Id);
  16860 
  16861     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
  16862         ISpeechRecoGrammar *This,
  16863         ISpeechRecoContext **RecoContext);
  16864 
  16865     HRESULT (STDMETHODCALLTYPE *put_State)(
  16866         ISpeechRecoGrammar *This,
  16867         SpeechGrammarState State);
  16868 
  16869     HRESULT (STDMETHODCALLTYPE *get_State)(
  16870         ISpeechRecoGrammar *This,
  16871         SpeechGrammarState *State);
  16872 
  16873     HRESULT (STDMETHODCALLTYPE *get_Rules)(
  16874         ISpeechRecoGrammar *This,
  16875         ISpeechGrammarRules **Rules);
  16876 
  16877     HRESULT (STDMETHODCALLTYPE *Reset)(
  16878         ISpeechRecoGrammar *This,
  16879         SpeechLanguageId NewLanguage);
  16880 
  16881     HRESULT (STDMETHODCALLTYPE *CmdLoadFromFile)(
  16882         ISpeechRecoGrammar *This,
  16883         const BSTR FileName,
  16884         SpeechLoadOption LoadOption);
  16885 
  16886     HRESULT (STDMETHODCALLTYPE *CmdLoadFromObject)(
  16887         ISpeechRecoGrammar *This,
  16888         const BSTR ClassId,
  16889         const BSTR GrammarName,
  16890         SpeechLoadOption LoadOption);
  16891 
  16892     HRESULT (STDMETHODCALLTYPE *CmdLoadFromResource)(
  16893         ISpeechRecoGrammar *This,
  16894         LONG hModule,
  16895         VARIANT ResourceName,
  16896         VARIANT ResourceType,
  16897         SpeechLanguageId LanguageId,
  16898         SpeechLoadOption LoadOption);
  16899 
  16900     HRESULT (STDMETHODCALLTYPE *CmdLoadFromMemory)(
  16901         ISpeechRecoGrammar *This,
  16902         VARIANT GrammarData,
  16903         SpeechLoadOption LoadOption);
  16904 
  16905     HRESULT (STDMETHODCALLTYPE *CmdLoadFromProprietaryGrammar)(
  16906         ISpeechRecoGrammar *This,
  16907         const BSTR ProprietaryGuid,
  16908         const BSTR ProprietaryString,
  16909         VARIANT ProprietaryData,
  16910         SpeechLoadOption LoadOption);
  16911 
  16912     HRESULT (STDMETHODCALLTYPE *CmdSetRuleState)(
  16913         ISpeechRecoGrammar *This,
  16914         const BSTR Name,
  16915         SpeechRuleState State);
  16916 
  16917     HRESULT (STDMETHODCALLTYPE *CmdSetRuleIdState)(
  16918         ISpeechRecoGrammar *This,
  16919         LONG RuleId,
  16920         SpeechRuleState State);
  16921 
  16922     HRESULT (STDMETHODCALLTYPE *DictationLoad)(
  16923         ISpeechRecoGrammar *This,
  16924         const BSTR TopicName,
  16925         SpeechLoadOption LoadOption);
  16926 
  16927     HRESULT (STDMETHODCALLTYPE *DictationUnload)(
  16928         ISpeechRecoGrammar *This);
  16929 
  16930     HRESULT (STDMETHODCALLTYPE *DictationSetState)(
  16931         ISpeechRecoGrammar *This,
  16932         SpeechRuleState State);
  16933 
  16934     HRESULT (STDMETHODCALLTYPE *SetWordSequenceData)(
  16935         ISpeechRecoGrammar *This,
  16936         const BSTR Text,
  16937         LONG TextLength,
  16938         ISpeechTextSelectionInformation *Info);
  16939 
  16940     HRESULT (STDMETHODCALLTYPE *SetTextSelection)(
  16941         ISpeechRecoGrammar *This,
  16942         ISpeechTextSelectionInformation *Info);
  16943 
  16944     HRESULT (STDMETHODCALLTYPE *IsPronounceable)(
  16945         ISpeechRecoGrammar *This,
  16946         const BSTR Word,
  16947         SpeechWordPronounceable *WordPronounceable);
  16948 
  16949     END_INTERFACE
  16950 } ISpeechRecoGrammarVtbl;
  16951 
  16952 interface ISpeechRecoGrammar {
  16953     CONST_VTBL ISpeechRecoGrammarVtbl* lpVtbl;
  16954 };
  16955 
  16956 #ifdef COBJMACROS
  16957 #ifndef WIDL_C_INLINE_WRAPPERS
  16958 /*** IUnknown methods ***/
  16959 #define ISpeechRecoGrammar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  16960 #define ISpeechRecoGrammar_AddRef(This) (This)->lpVtbl->AddRef(This)
  16961 #define ISpeechRecoGrammar_Release(This) (This)->lpVtbl->Release(This)
  16962 /*** IDispatch methods ***/
  16963 #define ISpeechRecoGrammar_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  16964 #define ISpeechRecoGrammar_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  16965 #define ISpeechRecoGrammar_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  16966 #define ISpeechRecoGrammar_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  16967 /*** ISpeechRecoGrammar methods ***/
  16968 #define ISpeechRecoGrammar_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
  16969 #define ISpeechRecoGrammar_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
  16970 #define ISpeechRecoGrammar_put_State(This,State) (This)->lpVtbl->put_State(This,State)
  16971 #define ISpeechRecoGrammar_get_State(This,State) (This)->lpVtbl->get_State(This,State)
  16972 #define ISpeechRecoGrammar_get_Rules(This,Rules) (This)->lpVtbl->get_Rules(This,Rules)
  16973 #define ISpeechRecoGrammar_Reset(This,NewLanguage) (This)->lpVtbl->Reset(This,NewLanguage)
  16974 #define ISpeechRecoGrammar_CmdLoadFromFile(This,FileName,LoadOption) (This)->lpVtbl->CmdLoadFromFile(This,FileName,LoadOption)
  16975 #define ISpeechRecoGrammar_CmdLoadFromObject(This,ClassId,GrammarName,LoadOption) (This)->lpVtbl->CmdLoadFromObject(This,ClassId,GrammarName,LoadOption)
  16976 #define ISpeechRecoGrammar_CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption) (This)->lpVtbl->CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption)
  16977 #define ISpeechRecoGrammar_CmdLoadFromMemory(This,GrammarData,LoadOption) (This)->lpVtbl->CmdLoadFromMemory(This,GrammarData,LoadOption)
  16978 #define ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption) (This)->lpVtbl->CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption)
  16979 #define ISpeechRecoGrammar_CmdSetRuleState(This,Name,State) (This)->lpVtbl->CmdSetRuleState(This,Name,State)
  16980 #define ISpeechRecoGrammar_CmdSetRuleIdState(This,RuleId,State) (This)->lpVtbl->CmdSetRuleIdState(This,RuleId,State)
  16981 #define ISpeechRecoGrammar_DictationLoad(This,TopicName,LoadOption) (This)->lpVtbl->DictationLoad(This,TopicName,LoadOption)
  16982 #define ISpeechRecoGrammar_DictationUnload(This) (This)->lpVtbl->DictationUnload(This)
  16983 #define ISpeechRecoGrammar_DictationSetState(This,State) (This)->lpVtbl->DictationSetState(This,State)
  16984 #define ISpeechRecoGrammar_SetWordSequenceData(This,Text,TextLength,Info) (This)->lpVtbl->SetWordSequenceData(This,Text,TextLength,Info)
  16985 #define ISpeechRecoGrammar_SetTextSelection(This,Info) (This)->lpVtbl->SetTextSelection(This,Info)
  16986 #define ISpeechRecoGrammar_IsPronounceable(This,Word,WordPronounceable) (This)->lpVtbl->IsPronounceable(This,Word,WordPronounceable)
  16987 #else
  16988 /*** IUnknown methods ***/
  16989 static inline HRESULT ISpeechRecoGrammar_QueryInterface(ISpeechRecoGrammar* This,REFIID riid,void **ppvObject) {
  16990     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  16991 }
  16992 static inline ULONG ISpeechRecoGrammar_AddRef(ISpeechRecoGrammar* This) {
  16993     return This->lpVtbl->AddRef(This);
  16994 }
  16995 static inline ULONG ISpeechRecoGrammar_Release(ISpeechRecoGrammar* This) {
  16996     return This->lpVtbl->Release(This);
  16997 }
  16998 /*** IDispatch methods ***/
  16999 static inline HRESULT ISpeechRecoGrammar_GetTypeInfoCount(ISpeechRecoGrammar* This,UINT *pctinfo) {
  17000     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  17001 }
  17002 static inline HRESULT ISpeechRecoGrammar_GetTypeInfo(ISpeechRecoGrammar* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  17003     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  17004 }
  17005 static inline HRESULT ISpeechRecoGrammar_GetIDsOfNames(ISpeechRecoGrammar* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  17006     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  17007 }
  17008 static inline HRESULT ISpeechRecoGrammar_Invoke(ISpeechRecoGrammar* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  17009     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  17010 }
  17011 /*** ISpeechRecoGrammar methods ***/
  17012 static inline HRESULT ISpeechRecoGrammar_get_Id(ISpeechRecoGrammar* This,VARIANT *Id) {
  17013     return This->lpVtbl->get_Id(This,Id);
  17014 }
  17015 static inline HRESULT ISpeechRecoGrammar_get_RecoContext(ISpeechRecoGrammar* This,ISpeechRecoContext **RecoContext) {
  17016     return This->lpVtbl->get_RecoContext(This,RecoContext);
  17017 }
  17018 static inline HRESULT ISpeechRecoGrammar_put_State(ISpeechRecoGrammar* This,SpeechGrammarState State) {
  17019     return This->lpVtbl->put_State(This,State);
  17020 }
  17021 static inline HRESULT ISpeechRecoGrammar_get_State(ISpeechRecoGrammar* This,SpeechGrammarState *State) {
  17022     return This->lpVtbl->get_State(This,State);
  17023 }
  17024 static inline HRESULT ISpeechRecoGrammar_get_Rules(ISpeechRecoGrammar* This,ISpeechGrammarRules **Rules) {
  17025     return This->lpVtbl->get_Rules(This,Rules);
  17026 }
  17027 static inline HRESULT ISpeechRecoGrammar_Reset(ISpeechRecoGrammar* This,SpeechLanguageId NewLanguage) {
  17028     return This->lpVtbl->Reset(This,NewLanguage);
  17029 }
  17030 static inline HRESULT ISpeechRecoGrammar_CmdLoadFromFile(ISpeechRecoGrammar* This,const BSTR FileName,SpeechLoadOption LoadOption) {
  17031     return This->lpVtbl->CmdLoadFromFile(This,FileName,LoadOption);
  17032 }
  17033 static inline HRESULT ISpeechRecoGrammar_CmdLoadFromObject(ISpeechRecoGrammar* This,const BSTR ClassId,const BSTR GrammarName,SpeechLoadOption LoadOption) {
  17034     return This->lpVtbl->CmdLoadFromObject(This,ClassId,GrammarName,LoadOption);
  17035 }
  17036 static inline HRESULT ISpeechRecoGrammar_CmdLoadFromResource(ISpeechRecoGrammar* This,LONG hModule,VARIANT ResourceName,VARIANT ResourceType,SpeechLanguageId LanguageId,SpeechLoadOption LoadOption) {
  17037     return This->lpVtbl->CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption);
  17038 }
  17039 static inline HRESULT ISpeechRecoGrammar_CmdLoadFromMemory(ISpeechRecoGrammar* This,VARIANT GrammarData,SpeechLoadOption LoadOption) {
  17040     return This->lpVtbl->CmdLoadFromMemory(This,GrammarData,LoadOption);
  17041 }
  17042 static inline HRESULT ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar(ISpeechRecoGrammar* This,const BSTR ProprietaryGuid,const BSTR ProprietaryString,VARIANT ProprietaryData,SpeechLoadOption LoadOption) {
  17043     return This->lpVtbl->CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption);
  17044 }
  17045 static inline HRESULT ISpeechRecoGrammar_CmdSetRuleState(ISpeechRecoGrammar* This,const BSTR Name,SpeechRuleState State) {
  17046     return This->lpVtbl->CmdSetRuleState(This,Name,State);
  17047 }
  17048 static inline HRESULT ISpeechRecoGrammar_CmdSetRuleIdState(ISpeechRecoGrammar* This,LONG RuleId,SpeechRuleState State) {
  17049     return This->lpVtbl->CmdSetRuleIdState(This,RuleId,State);
  17050 }
  17051 static inline HRESULT ISpeechRecoGrammar_DictationLoad(ISpeechRecoGrammar* This,const BSTR TopicName,SpeechLoadOption LoadOption) {
  17052     return This->lpVtbl->DictationLoad(This,TopicName,LoadOption);
  17053 }
  17054 static inline HRESULT ISpeechRecoGrammar_DictationUnload(ISpeechRecoGrammar* This) {
  17055     return This->lpVtbl->DictationUnload(This);
  17056 }
  17057 static inline HRESULT ISpeechRecoGrammar_DictationSetState(ISpeechRecoGrammar* This,SpeechRuleState State) {
  17058     return This->lpVtbl->DictationSetState(This,State);
  17059 }
  17060 static inline HRESULT ISpeechRecoGrammar_SetWordSequenceData(ISpeechRecoGrammar* This,const BSTR Text,LONG TextLength,ISpeechTextSelectionInformation *Info) {
  17061     return This->lpVtbl->SetWordSequenceData(This,Text,TextLength,Info);
  17062 }
  17063 static inline HRESULT ISpeechRecoGrammar_SetTextSelection(ISpeechRecoGrammar* This,ISpeechTextSelectionInformation *Info) {
  17064     return This->lpVtbl->SetTextSelection(This,Info);
  17065 }
  17066 static inline HRESULT ISpeechRecoGrammar_IsPronounceable(ISpeechRecoGrammar* This,const BSTR Word,SpeechWordPronounceable *WordPronounceable) {
  17067     return This->lpVtbl->IsPronounceable(This,Word,WordPronounceable);
  17068 }
  17069 #endif
  17070 #endif
  17071 
  17072 #endif
  17073 
  17074 
  17075 #endif  /* __ISpeechRecoGrammar_INTERFACE_DEFINED__ */
  17076 
  17077 /*****************************************************************************
  17078  * _ISpeechRecoContextEvents dispinterface
  17079  */
  17080 #ifndef ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__
  17081 #define ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__
  17082 
  17083 DEFINE_GUID(DIID__ISpeechRecoContextEvents, 0x7b8fcb42, 0x0e9d, 0x4f00, 0xa0,0x48, 0x7b,0x04,0xd6,0x17,0x9d,0x3d);
  17084 #if defined(__cplusplus) && !defined(CINTERFACE)
  17085 MIDL_INTERFACE("7b8fcb42-0e9d-4f00-a048-7b04d6179d3d")
  17086 _ISpeechRecoContextEvents : public IDispatch
  17087 {
  17088 };
  17089 #ifdef __CRT_UUID_DECL
  17090 __CRT_UUID_DECL(_ISpeechRecoContextEvents, 0x7b8fcb42, 0x0e9d, 0x4f00, 0xa0,0x48, 0x7b,0x04,0xd6,0x17,0x9d,0x3d)
  17091 #endif
  17092 #else
  17093 typedef struct _ISpeechRecoContextEventsVtbl {
  17094     BEGIN_INTERFACE
  17095 
  17096     /*** IUnknown methods ***/
  17097     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  17098         _ISpeechRecoContextEvents *This,
  17099         REFIID riid,
  17100         void **ppvObject);
  17101 
  17102     ULONG (STDMETHODCALLTYPE *AddRef)(
  17103         _ISpeechRecoContextEvents *This);
  17104 
  17105     ULONG (STDMETHODCALLTYPE *Release)(
  17106         _ISpeechRecoContextEvents *This);
  17107 
  17108     /*** IDispatch methods ***/
  17109     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  17110         _ISpeechRecoContextEvents *This,
  17111         UINT *pctinfo);
  17112 
  17113     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  17114         _ISpeechRecoContextEvents *This,
  17115         UINT iTInfo,
  17116         LCID lcid,
  17117         ITypeInfo **ppTInfo);
  17118 
  17119     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  17120         _ISpeechRecoContextEvents *This,
  17121         REFIID riid,
  17122         LPOLESTR *rgszNames,
  17123         UINT cNames,
  17124         LCID lcid,
  17125         DISPID *rgDispId);
  17126 
  17127     HRESULT (STDMETHODCALLTYPE *Invoke)(
  17128         _ISpeechRecoContextEvents *This,
  17129         DISPID dispIdMember,
  17130         REFIID riid,
  17131         LCID lcid,
  17132         WORD wFlags,
  17133         DISPPARAMS *pDispParams,
  17134         VARIANT *pVarResult,
  17135         EXCEPINFO *pExcepInfo,
  17136         UINT *puArgErr);
  17137 
  17138     END_INTERFACE
  17139 } _ISpeechRecoContextEventsVtbl;
  17140 
  17141 interface _ISpeechRecoContextEvents {
  17142     CONST_VTBL _ISpeechRecoContextEventsVtbl* lpVtbl;
  17143 };
  17144 
  17145 #ifdef COBJMACROS
  17146 #ifndef WIDL_C_INLINE_WRAPPERS
  17147 /*** IUnknown methods ***/
  17148 #define _ISpeechRecoContextEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  17149 #define _ISpeechRecoContextEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
  17150 #define _ISpeechRecoContextEvents_Release(This) (This)->lpVtbl->Release(This)
  17151 /*** IDispatch methods ***/
  17152 #define _ISpeechRecoContextEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  17153 #define _ISpeechRecoContextEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  17154 #define _ISpeechRecoContextEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  17155 #define _ISpeechRecoContextEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  17156 #else
  17157 /*** IUnknown methods ***/
  17158 static inline HRESULT _ISpeechRecoContextEvents_QueryInterface(_ISpeechRecoContextEvents* This,REFIID riid,void **ppvObject) {
  17159     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  17160 }
  17161 static inline ULONG _ISpeechRecoContextEvents_AddRef(_ISpeechRecoContextEvents* This) {
  17162     return This->lpVtbl->AddRef(This);
  17163 }
  17164 static inline ULONG _ISpeechRecoContextEvents_Release(_ISpeechRecoContextEvents* This) {
  17165     return This->lpVtbl->Release(This);
  17166 }
  17167 /*** IDispatch methods ***/
  17168 static inline HRESULT _ISpeechRecoContextEvents_GetTypeInfoCount(_ISpeechRecoContextEvents* This,UINT *pctinfo) {
  17169     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  17170 }
  17171 static inline HRESULT _ISpeechRecoContextEvents_GetTypeInfo(_ISpeechRecoContextEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  17172     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  17173 }
  17174 static inline HRESULT _ISpeechRecoContextEvents_GetIDsOfNames(_ISpeechRecoContextEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  17175     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  17176 }
  17177 static inline HRESULT _ISpeechRecoContextEvents_Invoke(_ISpeechRecoContextEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  17178     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  17179 }
  17180 #endif
  17181 #endif
  17182 
  17183 #endif
  17184 
  17185 #endif  /* ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__ */
  17186 
  17187 /*****************************************************************************
  17188  * ISpeechGrammarRule interface
  17189  */
  17190 #ifndef __ISpeechGrammarRule_INTERFACE_DEFINED__
  17191 #define __ISpeechGrammarRule_INTERFACE_DEFINED__
  17192 
  17193 DEFINE_GUID(IID_ISpeechGrammarRule, 0xafe719cf, 0x5dd1, 0x44f2, 0x99,0x9c, 0x7a,0x39,0x9f,0x1c,0xfc,0xcc);
  17194 #if defined(__cplusplus) && !defined(CINTERFACE)
  17195 MIDL_INTERFACE("afe719cf-5dd1-44f2-999c-7a399f1cfccc")
  17196 ISpeechGrammarRule : public IDispatch
  17197 {
  17198     virtual HRESULT STDMETHODCALLTYPE get_Attributes(
  17199         SpeechRuleAttributes *Attributes) = 0;
  17200 
  17201     virtual HRESULT STDMETHODCALLTYPE get_InitialState(
  17202         ISpeechGrammarRuleState **State) = 0;
  17203 
  17204     virtual HRESULT STDMETHODCALLTYPE get_Name(
  17205         BSTR *Name) = 0;
  17206 
  17207     virtual HRESULT STDMETHODCALLTYPE get_Id(
  17208         LONG *Id) = 0;
  17209 
  17210     virtual HRESULT STDMETHODCALLTYPE Clear(
  17211         ) = 0;
  17212 
  17213     virtual HRESULT STDMETHODCALLTYPE AddResource(
  17214         const BSTR ResourceName,
  17215         const BSTR ResourceValue) = 0;
  17216 
  17217     virtual HRESULT STDMETHODCALLTYPE AddState(
  17218         ISpeechGrammarRuleState **State) = 0;
  17219 
  17220 };
  17221 #ifdef __CRT_UUID_DECL
  17222 __CRT_UUID_DECL(ISpeechGrammarRule, 0xafe719cf, 0x5dd1, 0x44f2, 0x99,0x9c, 0x7a,0x39,0x9f,0x1c,0xfc,0xcc)
  17223 #endif
  17224 #else
  17225 typedef struct ISpeechGrammarRuleVtbl {
  17226     BEGIN_INTERFACE
  17227 
  17228     /*** IUnknown methods ***/
  17229     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  17230         ISpeechGrammarRule *This,
  17231         REFIID riid,
  17232         void **ppvObject);
  17233 
  17234     ULONG (STDMETHODCALLTYPE *AddRef)(
  17235         ISpeechGrammarRule *This);
  17236 
  17237     ULONG (STDMETHODCALLTYPE *Release)(
  17238         ISpeechGrammarRule *This);
  17239 
  17240     /*** IDispatch methods ***/
  17241     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  17242         ISpeechGrammarRule *This,
  17243         UINT *pctinfo);
  17244 
  17245     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  17246         ISpeechGrammarRule *This,
  17247         UINT iTInfo,
  17248         LCID lcid,
  17249         ITypeInfo **ppTInfo);
  17250 
  17251     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  17252         ISpeechGrammarRule *This,
  17253         REFIID riid,
  17254         LPOLESTR *rgszNames,
  17255         UINT cNames,
  17256         LCID lcid,
  17257         DISPID *rgDispId);
  17258 
  17259     HRESULT (STDMETHODCALLTYPE *Invoke)(
  17260         ISpeechGrammarRule *This,
  17261         DISPID dispIdMember,
  17262         REFIID riid,
  17263         LCID lcid,
  17264         WORD wFlags,
  17265         DISPPARAMS *pDispParams,
  17266         VARIANT *pVarResult,
  17267         EXCEPINFO *pExcepInfo,
  17268         UINT *puArgErr);
  17269 
  17270     /*** ISpeechGrammarRule methods ***/
  17271     HRESULT (STDMETHODCALLTYPE *get_Attributes)(
  17272         ISpeechGrammarRule *This,
  17273         SpeechRuleAttributes *Attributes);
  17274 
  17275     HRESULT (STDMETHODCALLTYPE *get_InitialState)(
  17276         ISpeechGrammarRule *This,
  17277         ISpeechGrammarRuleState **State);
  17278 
  17279     HRESULT (STDMETHODCALLTYPE *get_Name)(
  17280         ISpeechGrammarRule *This,
  17281         BSTR *Name);
  17282 
  17283     HRESULT (STDMETHODCALLTYPE *get_Id)(
  17284         ISpeechGrammarRule *This,
  17285         LONG *Id);
  17286 
  17287     HRESULT (STDMETHODCALLTYPE *Clear)(
  17288         ISpeechGrammarRule *This);
  17289 
  17290     HRESULT (STDMETHODCALLTYPE *AddResource)(
  17291         ISpeechGrammarRule *This,
  17292         const BSTR ResourceName,
  17293         const BSTR ResourceValue);
  17294 
  17295     HRESULT (STDMETHODCALLTYPE *AddState)(
  17296         ISpeechGrammarRule *This,
  17297         ISpeechGrammarRuleState **State);
  17298 
  17299     END_INTERFACE
  17300 } ISpeechGrammarRuleVtbl;
  17301 
  17302 interface ISpeechGrammarRule {
  17303     CONST_VTBL ISpeechGrammarRuleVtbl* lpVtbl;
  17304 };
  17305 
  17306 #ifdef COBJMACROS
  17307 #ifndef WIDL_C_INLINE_WRAPPERS
  17308 /*** IUnknown methods ***/
  17309 #define ISpeechGrammarRule_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  17310 #define ISpeechGrammarRule_AddRef(This) (This)->lpVtbl->AddRef(This)
  17311 #define ISpeechGrammarRule_Release(This) (This)->lpVtbl->Release(This)
  17312 /*** IDispatch methods ***/
  17313 #define ISpeechGrammarRule_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  17314 #define ISpeechGrammarRule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  17315 #define ISpeechGrammarRule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  17316 #define ISpeechGrammarRule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  17317 /*** ISpeechGrammarRule methods ***/
  17318 #define ISpeechGrammarRule_get_Attributes(This,Attributes) (This)->lpVtbl->get_Attributes(This,Attributes)
  17319 #define ISpeechGrammarRule_get_InitialState(This,State) (This)->lpVtbl->get_InitialState(This,State)
  17320 #define ISpeechGrammarRule_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
  17321 #define ISpeechGrammarRule_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
  17322 #define ISpeechGrammarRule_Clear(This) (This)->lpVtbl->Clear(This)
  17323 #define ISpeechGrammarRule_AddResource(This,ResourceName,ResourceValue) (This)->lpVtbl->AddResource(This,ResourceName,ResourceValue)
  17324 #define ISpeechGrammarRule_AddState(This,State) (This)->lpVtbl->AddState(This,State)
  17325 #else
  17326 /*** IUnknown methods ***/
  17327 static inline HRESULT ISpeechGrammarRule_QueryInterface(ISpeechGrammarRule* This,REFIID riid,void **ppvObject) {
  17328     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  17329 }
  17330 static inline ULONG ISpeechGrammarRule_AddRef(ISpeechGrammarRule* This) {
  17331     return This->lpVtbl->AddRef(This);
  17332 }
  17333 static inline ULONG ISpeechGrammarRule_Release(ISpeechGrammarRule* This) {
  17334     return This->lpVtbl->Release(This);
  17335 }
  17336 /*** IDispatch methods ***/
  17337 static inline HRESULT ISpeechGrammarRule_GetTypeInfoCount(ISpeechGrammarRule* This,UINT *pctinfo) {
  17338     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  17339 }
  17340 static inline HRESULT ISpeechGrammarRule_GetTypeInfo(ISpeechGrammarRule* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  17341     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  17342 }
  17343 static inline HRESULT ISpeechGrammarRule_GetIDsOfNames(ISpeechGrammarRule* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  17344     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  17345 }
  17346 static inline HRESULT ISpeechGrammarRule_Invoke(ISpeechGrammarRule* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  17347     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  17348 }
  17349 /*** ISpeechGrammarRule methods ***/
  17350 static inline HRESULT ISpeechGrammarRule_get_Attributes(ISpeechGrammarRule* This,SpeechRuleAttributes *Attributes) {
  17351     return This->lpVtbl->get_Attributes(This,Attributes);
  17352 }
  17353 static inline HRESULT ISpeechGrammarRule_get_InitialState(ISpeechGrammarRule* This,ISpeechGrammarRuleState **State) {
  17354     return This->lpVtbl->get_InitialState(This,State);
  17355 }
  17356 static inline HRESULT ISpeechGrammarRule_get_Name(ISpeechGrammarRule* This,BSTR *Name) {
  17357     return This->lpVtbl->get_Name(This,Name);
  17358 }
  17359 static inline HRESULT ISpeechGrammarRule_get_Id(ISpeechGrammarRule* This,LONG *Id) {
  17360     return This->lpVtbl->get_Id(This,Id);
  17361 }
  17362 static inline HRESULT ISpeechGrammarRule_Clear(ISpeechGrammarRule* This) {
  17363     return This->lpVtbl->Clear(This);
  17364 }
  17365 static inline HRESULT ISpeechGrammarRule_AddResource(ISpeechGrammarRule* This,const BSTR ResourceName,const BSTR ResourceValue) {
  17366     return This->lpVtbl->AddResource(This,ResourceName,ResourceValue);
  17367 }
  17368 static inline HRESULT ISpeechGrammarRule_AddState(ISpeechGrammarRule* This,ISpeechGrammarRuleState **State) {
  17369     return This->lpVtbl->AddState(This,State);
  17370 }
  17371 #endif
  17372 #endif
  17373 
  17374 #endif
  17375 
  17376 
  17377 #endif  /* __ISpeechGrammarRule_INTERFACE_DEFINED__ */
  17378 
  17379 /*****************************************************************************
  17380  * ISpeechGrammarRules interface
  17381  */
  17382 #ifndef __ISpeechGrammarRules_INTERFACE_DEFINED__
  17383 #define __ISpeechGrammarRules_INTERFACE_DEFINED__
  17384 
  17385 DEFINE_GUID(IID_ISpeechGrammarRules, 0x6ffa3b44, 0xfc2d, 0x40d1, 0x8a,0xfc, 0x32,0x91,0x1c,0x7f,0x1a,0xd1);
  17386 #if defined(__cplusplus) && !defined(CINTERFACE)
  17387 MIDL_INTERFACE("6ffa3b44-fc2d-40d1-8afc-32911c7f1ad1")
  17388 ISpeechGrammarRules : public IDispatch
  17389 {
  17390     virtual HRESULT STDMETHODCALLTYPE get_Count(
  17391         LONG *Count) = 0;
  17392 
  17393     virtual HRESULT STDMETHODCALLTYPE FindRule(
  17394         VARIANT RuleNameOrId,
  17395         ISpeechGrammarRule **Rule) = 0;
  17396 
  17397     virtual HRESULT STDMETHODCALLTYPE Item(
  17398         LONG Index,
  17399         ISpeechGrammarRule **Rule) = 0;
  17400 
  17401     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
  17402         IUnknown **EnumVARIANT) = 0;
  17403 
  17404     virtual HRESULT STDMETHODCALLTYPE get_Dynamic(
  17405         VARIANT_BOOL *Dynamic) = 0;
  17406 
  17407     virtual HRESULT STDMETHODCALLTYPE Add(
  17408         BSTR RuleName,
  17409         SpeechRuleAttributes Attributes,
  17410         LONG RuleId,
  17411         ISpeechGrammarRule **Rule) = 0;
  17412 
  17413     virtual HRESULT STDMETHODCALLTYPE Commit(
  17414         ) = 0;
  17415 
  17416     virtual HRESULT STDMETHODCALLTYPE CommitAndSave(
  17417         BSTR *ErrorText,
  17418         VARIANT *SaveStream) = 0;
  17419 
  17420 };
  17421 #ifdef __CRT_UUID_DECL
  17422 __CRT_UUID_DECL(ISpeechGrammarRules, 0x6ffa3b44, 0xfc2d, 0x40d1, 0x8a,0xfc, 0x32,0x91,0x1c,0x7f,0x1a,0xd1)
  17423 #endif
  17424 #else
  17425 typedef struct ISpeechGrammarRulesVtbl {
  17426     BEGIN_INTERFACE
  17427 
  17428     /*** IUnknown methods ***/
  17429     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  17430         ISpeechGrammarRules *This,
  17431         REFIID riid,
  17432         void **ppvObject);
  17433 
  17434     ULONG (STDMETHODCALLTYPE *AddRef)(
  17435         ISpeechGrammarRules *This);
  17436 
  17437     ULONG (STDMETHODCALLTYPE *Release)(
  17438         ISpeechGrammarRules *This);
  17439 
  17440     /*** IDispatch methods ***/
  17441     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  17442         ISpeechGrammarRules *This,
  17443         UINT *pctinfo);
  17444 
  17445     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  17446         ISpeechGrammarRules *This,
  17447         UINT iTInfo,
  17448         LCID lcid,
  17449         ITypeInfo **ppTInfo);
  17450 
  17451     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  17452         ISpeechGrammarRules *This,
  17453         REFIID riid,
  17454         LPOLESTR *rgszNames,
  17455         UINT cNames,
  17456         LCID lcid,
  17457         DISPID *rgDispId);
  17458 
  17459     HRESULT (STDMETHODCALLTYPE *Invoke)(
  17460         ISpeechGrammarRules *This,
  17461         DISPID dispIdMember,
  17462         REFIID riid,
  17463         LCID lcid,
  17464         WORD wFlags,
  17465         DISPPARAMS *pDispParams,
  17466         VARIANT *pVarResult,
  17467         EXCEPINFO *pExcepInfo,
  17468         UINT *puArgErr);
  17469 
  17470     /*** ISpeechGrammarRules methods ***/
  17471     HRESULT (STDMETHODCALLTYPE *get_Count)(
  17472         ISpeechGrammarRules *This,
  17473         LONG *Count);
  17474 
  17475     HRESULT (STDMETHODCALLTYPE *FindRule)(
  17476         ISpeechGrammarRules *This,
  17477         VARIANT RuleNameOrId,
  17478         ISpeechGrammarRule **Rule);
  17479 
  17480     HRESULT (STDMETHODCALLTYPE *Item)(
  17481         ISpeechGrammarRules *This,
  17482         LONG Index,
  17483         ISpeechGrammarRule **Rule);
  17484 
  17485     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
  17486         ISpeechGrammarRules *This,
  17487         IUnknown **EnumVARIANT);
  17488 
  17489     HRESULT (STDMETHODCALLTYPE *get_Dynamic)(
  17490         ISpeechGrammarRules *This,
  17491         VARIANT_BOOL *Dynamic);
  17492 
  17493     HRESULT (STDMETHODCALLTYPE *Add)(
  17494         ISpeechGrammarRules *This,
  17495         BSTR RuleName,
  17496         SpeechRuleAttributes Attributes,
  17497         LONG RuleId,
  17498         ISpeechGrammarRule **Rule);
  17499 
  17500     HRESULT (STDMETHODCALLTYPE *Commit)(
  17501         ISpeechGrammarRules *This);
  17502 
  17503     HRESULT (STDMETHODCALLTYPE *CommitAndSave)(
  17504         ISpeechGrammarRules *This,
  17505         BSTR *ErrorText,
  17506         VARIANT *SaveStream);
  17507 
  17508     END_INTERFACE
  17509 } ISpeechGrammarRulesVtbl;
  17510 
  17511 interface ISpeechGrammarRules {
  17512     CONST_VTBL ISpeechGrammarRulesVtbl* lpVtbl;
  17513 };
  17514 
  17515 #ifdef COBJMACROS
  17516 #ifndef WIDL_C_INLINE_WRAPPERS
  17517 /*** IUnknown methods ***/
  17518 #define ISpeechGrammarRules_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  17519 #define ISpeechGrammarRules_AddRef(This) (This)->lpVtbl->AddRef(This)
  17520 #define ISpeechGrammarRules_Release(This) (This)->lpVtbl->Release(This)
  17521 /*** IDispatch methods ***/
  17522 #define ISpeechGrammarRules_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  17523 #define ISpeechGrammarRules_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  17524 #define ISpeechGrammarRules_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  17525 #define ISpeechGrammarRules_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  17526 /*** ISpeechGrammarRules methods ***/
  17527 #define ISpeechGrammarRules_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
  17528 #define ISpeechGrammarRules_FindRule(This,RuleNameOrId,Rule) (This)->lpVtbl->FindRule(This,RuleNameOrId,Rule)
  17529 #define ISpeechGrammarRules_Item(This,Index,Rule) (This)->lpVtbl->Item(This,Index,Rule)
  17530 #define ISpeechGrammarRules_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
  17531 #define ISpeechGrammarRules_get_Dynamic(This,Dynamic) (This)->lpVtbl->get_Dynamic(This,Dynamic)
  17532 #define ISpeechGrammarRules_Add(This,RuleName,Attributes,RuleId,Rule) (This)->lpVtbl->Add(This,RuleName,Attributes,RuleId,Rule)
  17533 #define ISpeechGrammarRules_Commit(This) (This)->lpVtbl->Commit(This)
  17534 #define ISpeechGrammarRules_CommitAndSave(This,ErrorText,SaveStream) (This)->lpVtbl->CommitAndSave(This,ErrorText,SaveStream)
  17535 #else
  17536 /*** IUnknown methods ***/
  17537 static inline HRESULT ISpeechGrammarRules_QueryInterface(ISpeechGrammarRules* This,REFIID riid,void **ppvObject) {
  17538     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  17539 }
  17540 static inline ULONG ISpeechGrammarRules_AddRef(ISpeechGrammarRules* This) {
  17541     return This->lpVtbl->AddRef(This);
  17542 }
  17543 static inline ULONG ISpeechGrammarRules_Release(ISpeechGrammarRules* This) {
  17544     return This->lpVtbl->Release(This);
  17545 }
  17546 /*** IDispatch methods ***/
  17547 static inline HRESULT ISpeechGrammarRules_GetTypeInfoCount(ISpeechGrammarRules* This,UINT *pctinfo) {
  17548     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  17549 }
  17550 static inline HRESULT ISpeechGrammarRules_GetTypeInfo(ISpeechGrammarRules* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  17551     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  17552 }
  17553 static inline HRESULT ISpeechGrammarRules_GetIDsOfNames(ISpeechGrammarRules* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  17554     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  17555 }
  17556 static inline HRESULT ISpeechGrammarRules_Invoke(ISpeechGrammarRules* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  17557     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  17558 }
  17559 /*** ISpeechGrammarRules methods ***/
  17560 static inline HRESULT ISpeechGrammarRules_get_Count(ISpeechGrammarRules* This,LONG *Count) {
  17561     return This->lpVtbl->get_Count(This,Count);
  17562 }
  17563 static inline HRESULT ISpeechGrammarRules_FindRule(ISpeechGrammarRules* This,VARIANT RuleNameOrId,ISpeechGrammarRule **Rule) {
  17564     return This->lpVtbl->FindRule(This,RuleNameOrId,Rule);
  17565 }
  17566 static inline HRESULT ISpeechGrammarRules_Item(ISpeechGrammarRules* This,LONG Index,ISpeechGrammarRule **Rule) {
  17567     return This->lpVtbl->Item(This,Index,Rule);
  17568 }
  17569 static inline HRESULT ISpeechGrammarRules_get__NewEnum(ISpeechGrammarRules* This,IUnknown **EnumVARIANT) {
  17570     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
  17571 }
  17572 static inline HRESULT ISpeechGrammarRules_get_Dynamic(ISpeechGrammarRules* This,VARIANT_BOOL *Dynamic) {
  17573     return This->lpVtbl->get_Dynamic(This,Dynamic);
  17574 }
  17575 static inline HRESULT ISpeechGrammarRules_Add(ISpeechGrammarRules* This,BSTR RuleName,SpeechRuleAttributes Attributes,LONG RuleId,ISpeechGrammarRule **Rule) {
  17576     return This->lpVtbl->Add(This,RuleName,Attributes,RuleId,Rule);
  17577 }
  17578 static inline HRESULT ISpeechGrammarRules_Commit(ISpeechGrammarRules* This) {
  17579     return This->lpVtbl->Commit(This);
  17580 }
  17581 static inline HRESULT ISpeechGrammarRules_CommitAndSave(ISpeechGrammarRules* This,BSTR *ErrorText,VARIANT *SaveStream) {
  17582     return This->lpVtbl->CommitAndSave(This,ErrorText,SaveStream);
  17583 }
  17584 #endif
  17585 #endif
  17586 
  17587 #endif
  17588 
  17589 
  17590 #endif  /* __ISpeechGrammarRules_INTERFACE_DEFINED__ */
  17591 
  17592 /*****************************************************************************
  17593  * ISpeechGrammarRuleState interface
  17594  */
  17595 #ifndef __ISpeechGrammarRuleState_INTERFACE_DEFINED__
  17596 #define __ISpeechGrammarRuleState_INTERFACE_DEFINED__
  17597 
  17598 DEFINE_GUID(IID_ISpeechGrammarRuleState, 0xd4286f2c, 0xee67, 0x45ae, 0xb9,0x28, 0x28,0xd6,0x95,0x36,0x2e,0xda);
  17599 #if defined(__cplusplus) && !defined(CINTERFACE)
  17600 MIDL_INTERFACE("d4286f2c-ee67-45ae-b928-28d695362eda")
  17601 ISpeechGrammarRuleState : public IDispatch
  17602 {
  17603     virtual HRESULT STDMETHODCALLTYPE get_Rule(
  17604         ISpeechGrammarRule **Rule) = 0;
  17605 
  17606     virtual HRESULT STDMETHODCALLTYPE get_Transitions(
  17607         ISpeechGrammarRuleStateTransitions **Transitions) = 0;
  17608 
  17609     virtual HRESULT STDMETHODCALLTYPE AddWordTransition(
  17610         ISpeechGrammarRuleState *DestState,
  17611         const BSTR Words,
  17612         const BSTR Separators = L" ",
  17613         SpeechGrammarWordType Type = SGLexical,
  17614         const BSTR PropertyName = L"",
  17615         LONG PropertyId = 0,
  17616         VARIANT *PropertyValue = 0,
  17617         float Weight = 1) = 0;
  17618 
  17619     virtual HRESULT STDMETHODCALLTYPE AddRuleTransition(
  17620         ISpeechGrammarRuleState *DestinationState,
  17621         ISpeechGrammarRule *Rule,
  17622         const BSTR PropertyName = L"",
  17623         LONG PropertyId = 0,
  17624         VARIANT *PropertyValue = 0,
  17625         float Weight = 1) = 0;
  17626 
  17627     virtual HRESULT STDMETHODCALLTYPE AddSpecialTransition(
  17628         ISpeechGrammarRuleState *DestinationState,
  17629         SpeechSpecialTransitionType Type,
  17630         const BSTR PropertyName = L"",
  17631         LONG PropertyId = 0,
  17632         VARIANT *PropertyValue = 0,
  17633         float Weight = 1) = 0;
  17634 
  17635 };
  17636 #ifdef __CRT_UUID_DECL
  17637 __CRT_UUID_DECL(ISpeechGrammarRuleState, 0xd4286f2c, 0xee67, 0x45ae, 0xb9,0x28, 0x28,0xd6,0x95,0x36,0x2e,0xda)
  17638 #endif
  17639 #else
  17640 typedef struct ISpeechGrammarRuleStateVtbl {
  17641     BEGIN_INTERFACE
  17642 
  17643     /*** IUnknown methods ***/
  17644     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  17645         ISpeechGrammarRuleState *This,
  17646         REFIID riid,
  17647         void **ppvObject);
  17648 
  17649     ULONG (STDMETHODCALLTYPE *AddRef)(
  17650         ISpeechGrammarRuleState *This);
  17651 
  17652     ULONG (STDMETHODCALLTYPE *Release)(
  17653         ISpeechGrammarRuleState *This);
  17654 
  17655     /*** IDispatch methods ***/
  17656     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  17657         ISpeechGrammarRuleState *This,
  17658         UINT *pctinfo);
  17659 
  17660     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  17661         ISpeechGrammarRuleState *This,
  17662         UINT iTInfo,
  17663         LCID lcid,
  17664         ITypeInfo **ppTInfo);
  17665 
  17666     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  17667         ISpeechGrammarRuleState *This,
  17668         REFIID riid,
  17669         LPOLESTR *rgszNames,
  17670         UINT cNames,
  17671         LCID lcid,
  17672         DISPID *rgDispId);
  17673 
  17674     HRESULT (STDMETHODCALLTYPE *Invoke)(
  17675         ISpeechGrammarRuleState *This,
  17676         DISPID dispIdMember,
  17677         REFIID riid,
  17678         LCID lcid,
  17679         WORD wFlags,
  17680         DISPPARAMS *pDispParams,
  17681         VARIANT *pVarResult,
  17682         EXCEPINFO *pExcepInfo,
  17683         UINT *puArgErr);
  17684 
  17685     /*** ISpeechGrammarRuleState methods ***/
  17686     HRESULT (STDMETHODCALLTYPE *get_Rule)(
  17687         ISpeechGrammarRuleState *This,
  17688         ISpeechGrammarRule **Rule);
  17689 
  17690     HRESULT (STDMETHODCALLTYPE *get_Transitions)(
  17691         ISpeechGrammarRuleState *This,
  17692         ISpeechGrammarRuleStateTransitions **Transitions);
  17693 
  17694     HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
  17695         ISpeechGrammarRuleState *This,
  17696         ISpeechGrammarRuleState *DestState,
  17697         const BSTR Words,
  17698         const BSTR Separators,
  17699         SpeechGrammarWordType Type,
  17700         const BSTR PropertyName,
  17701         LONG PropertyId,
  17702         VARIANT *PropertyValue,
  17703         float Weight);
  17704 
  17705     HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
  17706         ISpeechGrammarRuleState *This,
  17707         ISpeechGrammarRuleState *DestinationState,
  17708         ISpeechGrammarRule *Rule,
  17709         const BSTR PropertyName,
  17710         LONG PropertyId,
  17711         VARIANT *PropertyValue,
  17712         float Weight);
  17713 
  17714     HRESULT (STDMETHODCALLTYPE *AddSpecialTransition)(
  17715         ISpeechGrammarRuleState *This,
  17716         ISpeechGrammarRuleState *DestinationState,
  17717         SpeechSpecialTransitionType Type,
  17718         const BSTR PropertyName,
  17719         LONG PropertyId,
  17720         VARIANT *PropertyValue,
  17721         float Weight);
  17722 
  17723     END_INTERFACE
  17724 } ISpeechGrammarRuleStateVtbl;
  17725 
  17726 interface ISpeechGrammarRuleState {
  17727     CONST_VTBL ISpeechGrammarRuleStateVtbl* lpVtbl;
  17728 };
  17729 
  17730 #ifdef COBJMACROS
  17731 #ifndef WIDL_C_INLINE_WRAPPERS
  17732 /*** IUnknown methods ***/
  17733 #define ISpeechGrammarRuleState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  17734 #define ISpeechGrammarRuleState_AddRef(This) (This)->lpVtbl->AddRef(This)
  17735 #define ISpeechGrammarRuleState_Release(This) (This)->lpVtbl->Release(This)
  17736 /*** IDispatch methods ***/
  17737 #define ISpeechGrammarRuleState_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  17738 #define ISpeechGrammarRuleState_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  17739 #define ISpeechGrammarRuleState_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  17740 #define ISpeechGrammarRuleState_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  17741 /*** ISpeechGrammarRuleState methods ***/
  17742 #define ISpeechGrammarRuleState_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
  17743 #define ISpeechGrammarRuleState_get_Transitions(This,Transitions) (This)->lpVtbl->get_Transitions(This,Transitions)
  17744 #define ISpeechGrammarRuleState_AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight)
  17745 #define ISpeechGrammarRuleState_AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight)
  17746 #define ISpeechGrammarRuleState_AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight)
  17747 #else
  17748 /*** IUnknown methods ***/
  17749 static inline HRESULT ISpeechGrammarRuleState_QueryInterface(ISpeechGrammarRuleState* This,REFIID riid,void **ppvObject) {
  17750     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  17751 }
  17752 static inline ULONG ISpeechGrammarRuleState_AddRef(ISpeechGrammarRuleState* This) {
  17753     return This->lpVtbl->AddRef(This);
  17754 }
  17755 static inline ULONG ISpeechGrammarRuleState_Release(ISpeechGrammarRuleState* This) {
  17756     return This->lpVtbl->Release(This);
  17757 }
  17758 /*** IDispatch methods ***/
  17759 static inline HRESULT ISpeechGrammarRuleState_GetTypeInfoCount(ISpeechGrammarRuleState* This,UINT *pctinfo) {
  17760     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  17761 }
  17762 static inline HRESULT ISpeechGrammarRuleState_GetTypeInfo(ISpeechGrammarRuleState* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  17763     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  17764 }
  17765 static inline HRESULT ISpeechGrammarRuleState_GetIDsOfNames(ISpeechGrammarRuleState* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  17766     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  17767 }
  17768 static inline HRESULT ISpeechGrammarRuleState_Invoke(ISpeechGrammarRuleState* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  17769     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  17770 }
  17771 /*** ISpeechGrammarRuleState methods ***/
  17772 static inline HRESULT ISpeechGrammarRuleState_get_Rule(ISpeechGrammarRuleState* This,ISpeechGrammarRule **Rule) {
  17773     return This->lpVtbl->get_Rule(This,Rule);
  17774 }
  17775 static inline HRESULT ISpeechGrammarRuleState_get_Transitions(ISpeechGrammarRuleState* This,ISpeechGrammarRuleStateTransitions **Transitions) {
  17776     return This->lpVtbl->get_Transitions(This,Transitions);
  17777 }
  17778 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) {
  17779     return This->lpVtbl->AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight);
  17780 }
  17781 static inline HRESULT ISpeechGrammarRuleState_AddRuleTransition(ISpeechGrammarRuleState* This,ISpeechGrammarRuleState *DestinationState,ISpeechGrammarRule *Rule,const BSTR PropertyName,LONG PropertyId,VARIANT *PropertyValue,float Weight) {
  17782     return This->lpVtbl->AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight);
  17783 }
  17784 static inline HRESULT ISpeechGrammarRuleState_AddSpecialTransition(ISpeechGrammarRuleState* This,ISpeechGrammarRuleState *DestinationState,SpeechSpecialTransitionType Type,const BSTR PropertyName,LONG PropertyId,VARIANT *PropertyValue,float Weight) {
  17785     return This->lpVtbl->AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight);
  17786 }
  17787 #endif
  17788 #endif
  17789 
  17790 #endif
  17791 
  17792 
  17793 #endif  /* __ISpeechGrammarRuleState_INTERFACE_DEFINED__ */
  17794 
  17795 /*****************************************************************************
  17796  * ISpeechGrammarRuleStateTransitions interface
  17797  */
  17798 #ifndef __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__
  17799 #define __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__
  17800 
  17801 DEFINE_GUID(IID_ISpeechGrammarRuleStateTransitions, 0xeabce657, 0x75bc, 0x44a2, 0xaa,0x7f, 0xc5,0x64,0x76,0x74,0x29,0x63);
  17802 #if defined(__cplusplus) && !defined(CINTERFACE)
  17803 MIDL_INTERFACE("eabce657-75bc-44a2-aa7f-c56476742963")
  17804 ISpeechGrammarRuleStateTransitions : public IDispatch
  17805 {
  17806     virtual HRESULT STDMETHODCALLTYPE get_Count(
  17807         LONG *Count) = 0;
  17808 
  17809     virtual HRESULT STDMETHODCALLTYPE Item(
  17810         LONG Index,
  17811         ISpeechGrammarRuleStateTransition **Transition) = 0;
  17812 
  17813     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
  17814         IUnknown **EnumVARIANT) = 0;
  17815 
  17816 };
  17817 #ifdef __CRT_UUID_DECL
  17818 __CRT_UUID_DECL(ISpeechGrammarRuleStateTransitions, 0xeabce657, 0x75bc, 0x44a2, 0xaa,0x7f, 0xc5,0x64,0x76,0x74,0x29,0x63)
  17819 #endif
  17820 #else
  17821 typedef struct ISpeechGrammarRuleStateTransitionsVtbl {
  17822     BEGIN_INTERFACE
  17823 
  17824     /*** IUnknown methods ***/
  17825     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  17826         ISpeechGrammarRuleStateTransitions *This,
  17827         REFIID riid,
  17828         void **ppvObject);
  17829 
  17830     ULONG (STDMETHODCALLTYPE *AddRef)(
  17831         ISpeechGrammarRuleStateTransitions *This);
  17832 
  17833     ULONG (STDMETHODCALLTYPE *Release)(
  17834         ISpeechGrammarRuleStateTransitions *This);
  17835 
  17836     /*** IDispatch methods ***/
  17837     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  17838         ISpeechGrammarRuleStateTransitions *This,
  17839         UINT *pctinfo);
  17840 
  17841     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  17842         ISpeechGrammarRuleStateTransitions *This,
  17843         UINT iTInfo,
  17844         LCID lcid,
  17845         ITypeInfo **ppTInfo);
  17846 
  17847     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  17848         ISpeechGrammarRuleStateTransitions *This,
  17849         REFIID riid,
  17850         LPOLESTR *rgszNames,
  17851         UINT cNames,
  17852         LCID lcid,
  17853         DISPID *rgDispId);
  17854 
  17855     HRESULT (STDMETHODCALLTYPE *Invoke)(
  17856         ISpeechGrammarRuleStateTransitions *This,
  17857         DISPID dispIdMember,
  17858         REFIID riid,
  17859         LCID lcid,
  17860         WORD wFlags,
  17861         DISPPARAMS *pDispParams,
  17862         VARIANT *pVarResult,
  17863         EXCEPINFO *pExcepInfo,
  17864         UINT *puArgErr);
  17865 
  17866     /*** ISpeechGrammarRuleStateTransitions methods ***/
  17867     HRESULT (STDMETHODCALLTYPE *get_Count)(
  17868         ISpeechGrammarRuleStateTransitions *This,
  17869         LONG *Count);
  17870 
  17871     HRESULT (STDMETHODCALLTYPE *Item)(
  17872         ISpeechGrammarRuleStateTransitions *This,
  17873         LONG Index,
  17874         ISpeechGrammarRuleStateTransition **Transition);
  17875 
  17876     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
  17877         ISpeechGrammarRuleStateTransitions *This,
  17878         IUnknown **EnumVARIANT);
  17879 
  17880     END_INTERFACE
  17881 } ISpeechGrammarRuleStateTransitionsVtbl;
  17882 
  17883 interface ISpeechGrammarRuleStateTransitions {
  17884     CONST_VTBL ISpeechGrammarRuleStateTransitionsVtbl* lpVtbl;
  17885 };
  17886 
  17887 #ifdef COBJMACROS
  17888 #ifndef WIDL_C_INLINE_WRAPPERS
  17889 /*** IUnknown methods ***/
  17890 #define ISpeechGrammarRuleStateTransitions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  17891 #define ISpeechGrammarRuleStateTransitions_AddRef(This) (This)->lpVtbl->AddRef(This)
  17892 #define ISpeechGrammarRuleStateTransitions_Release(This) (This)->lpVtbl->Release(This)
  17893 /*** IDispatch methods ***/
  17894 #define ISpeechGrammarRuleStateTransitions_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  17895 #define ISpeechGrammarRuleStateTransitions_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  17896 #define ISpeechGrammarRuleStateTransitions_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  17897 #define ISpeechGrammarRuleStateTransitions_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  17898 /*** ISpeechGrammarRuleStateTransitions methods ***/
  17899 #define ISpeechGrammarRuleStateTransitions_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
  17900 #define ISpeechGrammarRuleStateTransitions_Item(This,Index,Transition) (This)->lpVtbl->Item(This,Index,Transition)
  17901 #define ISpeechGrammarRuleStateTransitions_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
  17902 #else
  17903 /*** IUnknown methods ***/
  17904 static inline HRESULT ISpeechGrammarRuleStateTransitions_QueryInterface(ISpeechGrammarRuleStateTransitions* This,REFIID riid,void **ppvObject) {
  17905     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  17906 }
  17907 static inline ULONG ISpeechGrammarRuleStateTransitions_AddRef(ISpeechGrammarRuleStateTransitions* This) {
  17908     return This->lpVtbl->AddRef(This);
  17909 }
  17910 static inline ULONG ISpeechGrammarRuleStateTransitions_Release(ISpeechGrammarRuleStateTransitions* This) {
  17911     return This->lpVtbl->Release(This);
  17912 }
  17913 /*** IDispatch methods ***/
  17914 static inline HRESULT ISpeechGrammarRuleStateTransitions_GetTypeInfoCount(ISpeechGrammarRuleStateTransitions* This,UINT *pctinfo) {
  17915     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  17916 }
  17917 static inline HRESULT ISpeechGrammarRuleStateTransitions_GetTypeInfo(ISpeechGrammarRuleStateTransitions* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  17918     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  17919 }
  17920 static inline HRESULT ISpeechGrammarRuleStateTransitions_GetIDsOfNames(ISpeechGrammarRuleStateTransitions* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  17921     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  17922 }
  17923 static inline HRESULT ISpeechGrammarRuleStateTransitions_Invoke(ISpeechGrammarRuleStateTransitions* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  17924     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  17925 }
  17926 /*** ISpeechGrammarRuleStateTransitions methods ***/
  17927 static inline HRESULT ISpeechGrammarRuleStateTransitions_get_Count(ISpeechGrammarRuleStateTransitions* This,LONG *Count) {
  17928     return This->lpVtbl->get_Count(This,Count);
  17929 }
  17930 static inline HRESULT ISpeechGrammarRuleStateTransitions_Item(ISpeechGrammarRuleStateTransitions* This,LONG Index,ISpeechGrammarRuleStateTransition **Transition) {
  17931     return This->lpVtbl->Item(This,Index,Transition);
  17932 }
  17933 static inline HRESULT ISpeechGrammarRuleStateTransitions_get__NewEnum(ISpeechGrammarRuleStateTransitions* This,IUnknown **EnumVARIANT) {
  17934     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
  17935 }
  17936 #endif
  17937 #endif
  17938 
  17939 #endif
  17940 
  17941 
  17942 #endif  /* __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__ */
  17943 
  17944 /*****************************************************************************
  17945  * ISpeechGrammarRuleStateTransition interface
  17946  */
  17947 #ifndef __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__
  17948 #define __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__
  17949 
  17950 DEFINE_GUID(IID_ISpeechGrammarRuleStateTransition, 0xcafd1db1, 0x41d1, 0x4a06, 0x98,0x63, 0xe2,0xe8,0x1d,0xa1,0x7a,0x9a);
  17951 #if defined(__cplusplus) && !defined(CINTERFACE)
  17952 MIDL_INTERFACE("cafd1db1-41d1-4a06-9863-e2e81da17a9a")
  17953 ISpeechGrammarRuleStateTransition : public IDispatch
  17954 {
  17955     virtual HRESULT STDMETHODCALLTYPE get_Type(
  17956         SpeechGrammarRuleStateTransitionType *Type) = 0;
  17957 
  17958     virtual HRESULT STDMETHODCALLTYPE get_Text(
  17959         BSTR *Text) = 0;
  17960 
  17961     virtual HRESULT STDMETHODCALLTYPE get_Rule(
  17962         ISpeechGrammarRule **Rule) = 0;
  17963 
  17964     virtual HRESULT STDMETHODCALLTYPE get_Weight(
  17965         VARIANT *Weight) = 0;
  17966 
  17967     virtual HRESULT STDMETHODCALLTYPE get_PropertyName(
  17968         BSTR *PropertyName) = 0;
  17969 
  17970     virtual HRESULT STDMETHODCALLTYPE get_PropertyId(
  17971         LONG *PropertyId) = 0;
  17972 
  17973     virtual HRESULT STDMETHODCALLTYPE get_PropertyValue(
  17974         VARIANT *PropertyValue) = 0;
  17975 
  17976     virtual HRESULT STDMETHODCALLTYPE get_NextState(
  17977         ISpeechGrammarRuleState **NextState) = 0;
  17978 
  17979 };
  17980 #ifdef __CRT_UUID_DECL
  17981 __CRT_UUID_DECL(ISpeechGrammarRuleStateTransition, 0xcafd1db1, 0x41d1, 0x4a06, 0x98,0x63, 0xe2,0xe8,0x1d,0xa1,0x7a,0x9a)
  17982 #endif
  17983 #else
  17984 typedef struct ISpeechGrammarRuleStateTransitionVtbl {
  17985     BEGIN_INTERFACE
  17986 
  17987     /*** IUnknown methods ***/
  17988     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  17989         ISpeechGrammarRuleStateTransition *This,
  17990         REFIID riid,
  17991         void **ppvObject);
  17992 
  17993     ULONG (STDMETHODCALLTYPE *AddRef)(
  17994         ISpeechGrammarRuleStateTransition *This);
  17995 
  17996     ULONG (STDMETHODCALLTYPE *Release)(
  17997         ISpeechGrammarRuleStateTransition *This);
  17998 
  17999     /*** IDispatch methods ***/
  18000     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  18001         ISpeechGrammarRuleStateTransition *This,
  18002         UINT *pctinfo);
  18003 
  18004     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  18005         ISpeechGrammarRuleStateTransition *This,
  18006         UINT iTInfo,
  18007         LCID lcid,
  18008         ITypeInfo **ppTInfo);
  18009 
  18010     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  18011         ISpeechGrammarRuleStateTransition *This,
  18012         REFIID riid,
  18013         LPOLESTR *rgszNames,
  18014         UINT cNames,
  18015         LCID lcid,
  18016         DISPID *rgDispId);
  18017 
  18018     HRESULT (STDMETHODCALLTYPE *Invoke)(
  18019         ISpeechGrammarRuleStateTransition *This,
  18020         DISPID dispIdMember,
  18021         REFIID riid,
  18022         LCID lcid,
  18023         WORD wFlags,
  18024         DISPPARAMS *pDispParams,
  18025         VARIANT *pVarResult,
  18026         EXCEPINFO *pExcepInfo,
  18027         UINT *puArgErr);
  18028 
  18029     /*** ISpeechGrammarRuleStateTransition methods ***/
  18030     HRESULT (STDMETHODCALLTYPE *get_Type)(
  18031         ISpeechGrammarRuleStateTransition *This,
  18032         SpeechGrammarRuleStateTransitionType *Type);
  18033 
  18034     HRESULT (STDMETHODCALLTYPE *get_Text)(
  18035         ISpeechGrammarRuleStateTransition *This,
  18036         BSTR *Text);
  18037 
  18038     HRESULT (STDMETHODCALLTYPE *get_Rule)(
  18039         ISpeechGrammarRuleStateTransition *This,
  18040         ISpeechGrammarRule **Rule);
  18041 
  18042     HRESULT (STDMETHODCALLTYPE *get_Weight)(
  18043         ISpeechGrammarRuleStateTransition *This,
  18044         VARIANT *Weight);
  18045 
  18046     HRESULT (STDMETHODCALLTYPE *get_PropertyName)(
  18047         ISpeechGrammarRuleStateTransition *This,
  18048         BSTR *PropertyName);
  18049 
  18050     HRESULT (STDMETHODCALLTYPE *get_PropertyId)(
  18051         ISpeechGrammarRuleStateTransition *This,
  18052         LONG *PropertyId);
  18053 
  18054     HRESULT (STDMETHODCALLTYPE *get_PropertyValue)(
  18055         ISpeechGrammarRuleStateTransition *This,
  18056         VARIANT *PropertyValue);
  18057 
  18058     HRESULT (STDMETHODCALLTYPE *get_NextState)(
  18059         ISpeechGrammarRuleStateTransition *This,
  18060         ISpeechGrammarRuleState **NextState);
  18061 
  18062     END_INTERFACE
  18063 } ISpeechGrammarRuleStateTransitionVtbl;
  18064 
  18065 interface ISpeechGrammarRuleStateTransition {
  18066     CONST_VTBL ISpeechGrammarRuleStateTransitionVtbl* lpVtbl;
  18067 };
  18068 
  18069 #ifdef COBJMACROS
  18070 #ifndef WIDL_C_INLINE_WRAPPERS
  18071 /*** IUnknown methods ***/
  18072 #define ISpeechGrammarRuleStateTransition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  18073 #define ISpeechGrammarRuleStateTransition_AddRef(This) (This)->lpVtbl->AddRef(This)
  18074 #define ISpeechGrammarRuleStateTransition_Release(This) (This)->lpVtbl->Release(This)
  18075 /*** IDispatch methods ***/
  18076 #define ISpeechGrammarRuleStateTransition_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  18077 #define ISpeechGrammarRuleStateTransition_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  18078 #define ISpeechGrammarRuleStateTransition_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  18079 #define ISpeechGrammarRuleStateTransition_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  18080 /*** ISpeechGrammarRuleStateTransition methods ***/
  18081 #define ISpeechGrammarRuleStateTransition_get_Type(This,Type) (This)->lpVtbl->get_Type(This,Type)
  18082 #define ISpeechGrammarRuleStateTransition_get_Text(This,Text) (This)->lpVtbl->get_Text(This,Text)
  18083 #define ISpeechGrammarRuleStateTransition_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
  18084 #define ISpeechGrammarRuleStateTransition_get_Weight(This,Weight) (This)->lpVtbl->get_Weight(This,Weight)
  18085 #define ISpeechGrammarRuleStateTransition_get_PropertyName(This,PropertyName) (This)->lpVtbl->get_PropertyName(This,PropertyName)
  18086 #define ISpeechGrammarRuleStateTransition_get_PropertyId(This,PropertyId) (This)->lpVtbl->get_PropertyId(This,PropertyId)
  18087 #define ISpeechGrammarRuleStateTransition_get_PropertyValue(This,PropertyValue) (This)->lpVtbl->get_PropertyValue(This,PropertyValue)
  18088 #define ISpeechGrammarRuleStateTransition_get_NextState(This,NextState) (This)->lpVtbl->get_NextState(This,NextState)
  18089 #else
  18090 /*** IUnknown methods ***/
  18091 static inline HRESULT ISpeechGrammarRuleStateTransition_QueryInterface(ISpeechGrammarRuleStateTransition* This,REFIID riid,void **ppvObject) {
  18092     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  18093 }
  18094 static inline ULONG ISpeechGrammarRuleStateTransition_AddRef(ISpeechGrammarRuleStateTransition* This) {
  18095     return This->lpVtbl->AddRef(This);
  18096 }
  18097 static inline ULONG ISpeechGrammarRuleStateTransition_Release(ISpeechGrammarRuleStateTransition* This) {
  18098     return This->lpVtbl->Release(This);
  18099 }
  18100 /*** IDispatch methods ***/
  18101 static inline HRESULT ISpeechGrammarRuleStateTransition_GetTypeInfoCount(ISpeechGrammarRuleStateTransition* This,UINT *pctinfo) {
  18102     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  18103 }
  18104 static inline HRESULT ISpeechGrammarRuleStateTransition_GetTypeInfo(ISpeechGrammarRuleStateTransition* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  18105     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  18106 }
  18107 static inline HRESULT ISpeechGrammarRuleStateTransition_GetIDsOfNames(ISpeechGrammarRuleStateTransition* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  18108     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  18109 }
  18110 static inline HRESULT ISpeechGrammarRuleStateTransition_Invoke(ISpeechGrammarRuleStateTransition* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  18111     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  18112 }
  18113 /*** ISpeechGrammarRuleStateTransition methods ***/
  18114 static inline HRESULT ISpeechGrammarRuleStateTransition_get_Type(ISpeechGrammarRuleStateTransition* This,SpeechGrammarRuleStateTransitionType *Type) {
  18115     return This->lpVtbl->get_Type(This,Type);
  18116 }
  18117 static inline HRESULT ISpeechGrammarRuleStateTransition_get_Text(ISpeechGrammarRuleStateTransition* This,BSTR *Text) {
  18118     return This->lpVtbl->get_Text(This,Text);
  18119 }
  18120 static inline HRESULT ISpeechGrammarRuleStateTransition_get_Rule(ISpeechGrammarRuleStateTransition* This,ISpeechGrammarRule **Rule) {
  18121     return This->lpVtbl->get_Rule(This,Rule);
  18122 }
  18123 static inline HRESULT ISpeechGrammarRuleStateTransition_get_Weight(ISpeechGrammarRuleStateTransition* This,VARIANT *Weight) {
  18124     return This->lpVtbl->get_Weight(This,Weight);
  18125 }
  18126 static inline HRESULT ISpeechGrammarRuleStateTransition_get_PropertyName(ISpeechGrammarRuleStateTransition* This,BSTR *PropertyName) {
  18127     return This->lpVtbl->get_PropertyName(This,PropertyName);
  18128 }
  18129 static inline HRESULT ISpeechGrammarRuleStateTransition_get_PropertyId(ISpeechGrammarRuleStateTransition* This,LONG *PropertyId) {
  18130     return This->lpVtbl->get_PropertyId(This,PropertyId);
  18131 }
  18132 static inline HRESULT ISpeechGrammarRuleStateTransition_get_PropertyValue(ISpeechGrammarRuleStateTransition* This,VARIANT *PropertyValue) {
  18133     return This->lpVtbl->get_PropertyValue(This,PropertyValue);
  18134 }
  18135 static inline HRESULT ISpeechGrammarRuleStateTransition_get_NextState(ISpeechGrammarRuleStateTransition* This,ISpeechGrammarRuleState **NextState) {
  18136     return This->lpVtbl->get_NextState(This,NextState);
  18137 }
  18138 #endif
  18139 #endif
  18140 
  18141 #endif
  18142 
  18143 
  18144 #endif  /* __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__ */
  18145 
  18146 /*****************************************************************************
  18147  * ISpeechTextSelectionInformation interface
  18148  */
  18149 #ifndef __ISpeechTextSelectionInformation_INTERFACE_DEFINED__
  18150 #define __ISpeechTextSelectionInformation_INTERFACE_DEFINED__
  18151 
  18152 DEFINE_GUID(IID_ISpeechTextSelectionInformation, 0x3b9c7e7a, 0x6eee, 0x4ded, 0x90,0x92, 0x11,0x65,0x72,0x79,0xad,0xbe);
  18153 #if defined(__cplusplus) && !defined(CINTERFACE)
  18154 MIDL_INTERFACE("3b9c7e7a-6eee-4ded-9092-11657279adbe")
  18155 ISpeechTextSelectionInformation : public IDispatch
  18156 {
  18157     virtual HRESULT STDMETHODCALLTYPE put_ActiveOffset(
  18158         LONG ActiveOffset) = 0;
  18159 
  18160     virtual HRESULT STDMETHODCALLTYPE get_ActiveOffset(
  18161         LONG *ActiveOffset) = 0;
  18162 
  18163     virtual HRESULT STDMETHODCALLTYPE put_ActiveLength(
  18164         LONG ActiveLength) = 0;
  18165 
  18166     virtual HRESULT STDMETHODCALLTYPE get_ActiveLength(
  18167         LONG *ActiveLength) = 0;
  18168 
  18169     virtual HRESULT STDMETHODCALLTYPE put_SelectionOffset(
  18170         LONG SelectionOffset) = 0;
  18171 
  18172     virtual HRESULT STDMETHODCALLTYPE get_SelectionOffset(
  18173         LONG *SelectionOffset) = 0;
  18174 
  18175     virtual HRESULT STDMETHODCALLTYPE put_SelectionLength(
  18176         LONG SelectionLength) = 0;
  18177 
  18178     virtual HRESULT STDMETHODCALLTYPE get_SelectionLength(
  18179         LONG *SelectionLength) = 0;
  18180 
  18181 };
  18182 #ifdef __CRT_UUID_DECL
  18183 __CRT_UUID_DECL(ISpeechTextSelectionInformation, 0x3b9c7e7a, 0x6eee, 0x4ded, 0x90,0x92, 0x11,0x65,0x72,0x79,0xad,0xbe)
  18184 #endif
  18185 #else
  18186 typedef struct ISpeechTextSelectionInformationVtbl {
  18187     BEGIN_INTERFACE
  18188 
  18189     /*** IUnknown methods ***/
  18190     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  18191         ISpeechTextSelectionInformation *This,
  18192         REFIID riid,
  18193         void **ppvObject);
  18194 
  18195     ULONG (STDMETHODCALLTYPE *AddRef)(
  18196         ISpeechTextSelectionInformation *This);
  18197 
  18198     ULONG (STDMETHODCALLTYPE *Release)(
  18199         ISpeechTextSelectionInformation *This);
  18200 
  18201     /*** IDispatch methods ***/
  18202     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  18203         ISpeechTextSelectionInformation *This,
  18204         UINT *pctinfo);
  18205 
  18206     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  18207         ISpeechTextSelectionInformation *This,
  18208         UINT iTInfo,
  18209         LCID lcid,
  18210         ITypeInfo **ppTInfo);
  18211 
  18212     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  18213         ISpeechTextSelectionInformation *This,
  18214         REFIID riid,
  18215         LPOLESTR *rgszNames,
  18216         UINT cNames,
  18217         LCID lcid,
  18218         DISPID *rgDispId);
  18219 
  18220     HRESULT (STDMETHODCALLTYPE *Invoke)(
  18221         ISpeechTextSelectionInformation *This,
  18222         DISPID dispIdMember,
  18223         REFIID riid,
  18224         LCID lcid,
  18225         WORD wFlags,
  18226         DISPPARAMS *pDispParams,
  18227         VARIANT *pVarResult,
  18228         EXCEPINFO *pExcepInfo,
  18229         UINT *puArgErr);
  18230 
  18231     /*** ISpeechTextSelectionInformation methods ***/
  18232     HRESULT (STDMETHODCALLTYPE *put_ActiveOffset)(
  18233         ISpeechTextSelectionInformation *This,
  18234         LONG ActiveOffset);
  18235 
  18236     HRESULT (STDMETHODCALLTYPE *get_ActiveOffset)(
  18237         ISpeechTextSelectionInformation *This,
  18238         LONG *ActiveOffset);
  18239 
  18240     HRESULT (STDMETHODCALLTYPE *put_ActiveLength)(
  18241         ISpeechTextSelectionInformation *This,
  18242         LONG ActiveLength);
  18243 
  18244     HRESULT (STDMETHODCALLTYPE *get_ActiveLength)(
  18245         ISpeechTextSelectionInformation *This,
  18246         LONG *ActiveLength);
  18247 
  18248     HRESULT (STDMETHODCALLTYPE *put_SelectionOffset)(
  18249         ISpeechTextSelectionInformation *This,
  18250         LONG SelectionOffset);
  18251 
  18252     HRESULT (STDMETHODCALLTYPE *get_SelectionOffset)(
  18253         ISpeechTextSelectionInformation *This,
  18254         LONG *SelectionOffset);
  18255 
  18256     HRESULT (STDMETHODCALLTYPE *put_SelectionLength)(
  18257         ISpeechTextSelectionInformation *This,
  18258         LONG SelectionLength);
  18259 
  18260     HRESULT (STDMETHODCALLTYPE *get_SelectionLength)(
  18261         ISpeechTextSelectionInformation *This,
  18262         LONG *SelectionLength);
  18263 
  18264     END_INTERFACE
  18265 } ISpeechTextSelectionInformationVtbl;
  18266 
  18267 interface ISpeechTextSelectionInformation {
  18268     CONST_VTBL ISpeechTextSelectionInformationVtbl* lpVtbl;
  18269 };
  18270 
  18271 #ifdef COBJMACROS
  18272 #ifndef WIDL_C_INLINE_WRAPPERS
  18273 /*** IUnknown methods ***/
  18274 #define ISpeechTextSelectionInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  18275 #define ISpeechTextSelectionInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
  18276 #define ISpeechTextSelectionInformation_Release(This) (This)->lpVtbl->Release(This)
  18277 /*** IDispatch methods ***/
  18278 #define ISpeechTextSelectionInformation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  18279 #define ISpeechTextSelectionInformation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  18280 #define ISpeechTextSelectionInformation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  18281 #define ISpeechTextSelectionInformation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  18282 /*** ISpeechTextSelectionInformation methods ***/
  18283 #define ISpeechTextSelectionInformation_put_ActiveOffset(This,ActiveOffset) (This)->lpVtbl->put_ActiveOffset(This,ActiveOffset)
  18284 #define ISpeechTextSelectionInformation_get_ActiveOffset(This,ActiveOffset) (This)->lpVtbl->get_ActiveOffset(This,ActiveOffset)
  18285 #define ISpeechTextSelectionInformation_put_ActiveLength(This,ActiveLength) (This)->lpVtbl->put_ActiveLength(This,ActiveLength)
  18286 #define ISpeechTextSelectionInformation_get_ActiveLength(This,ActiveLength) (This)->lpVtbl->get_ActiveLength(This,ActiveLength)
  18287 #define ISpeechTextSelectionInformation_put_SelectionOffset(This,SelectionOffset) (This)->lpVtbl->put_SelectionOffset(This,SelectionOffset)
  18288 #define ISpeechTextSelectionInformation_get_SelectionOffset(This,SelectionOffset) (This)->lpVtbl->get_SelectionOffset(This,SelectionOffset)
  18289 #define ISpeechTextSelectionInformation_put_SelectionLength(This,SelectionLength) (This)->lpVtbl->put_SelectionLength(This,SelectionLength)
  18290 #define ISpeechTextSelectionInformation_get_SelectionLength(This,SelectionLength) (This)->lpVtbl->get_SelectionLength(This,SelectionLength)
  18291 #else
  18292 /*** IUnknown methods ***/
  18293 static inline HRESULT ISpeechTextSelectionInformation_QueryInterface(ISpeechTextSelectionInformation* This,REFIID riid,void **ppvObject) {
  18294     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  18295 }
  18296 static inline ULONG ISpeechTextSelectionInformation_AddRef(ISpeechTextSelectionInformation* This) {
  18297     return This->lpVtbl->AddRef(This);
  18298 }
  18299 static inline ULONG ISpeechTextSelectionInformation_Release(ISpeechTextSelectionInformation* This) {
  18300     return This->lpVtbl->Release(This);
  18301 }
  18302 /*** IDispatch methods ***/
  18303 static inline HRESULT ISpeechTextSelectionInformation_GetTypeInfoCount(ISpeechTextSelectionInformation* This,UINT *pctinfo) {
  18304     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  18305 }
  18306 static inline HRESULT ISpeechTextSelectionInformation_GetTypeInfo(ISpeechTextSelectionInformation* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  18307     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  18308 }
  18309 static inline HRESULT ISpeechTextSelectionInformation_GetIDsOfNames(ISpeechTextSelectionInformation* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  18310     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  18311 }
  18312 static inline HRESULT ISpeechTextSelectionInformation_Invoke(ISpeechTextSelectionInformation* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  18313     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  18314 }
  18315 /*** ISpeechTextSelectionInformation methods ***/
  18316 static inline HRESULT ISpeechTextSelectionInformation_put_ActiveOffset(ISpeechTextSelectionInformation* This,LONG ActiveOffset) {
  18317     return This->lpVtbl->put_ActiveOffset(This,ActiveOffset);
  18318 }
  18319 static inline HRESULT ISpeechTextSelectionInformation_get_ActiveOffset(ISpeechTextSelectionInformation* This,LONG *ActiveOffset) {
  18320     return This->lpVtbl->get_ActiveOffset(This,ActiveOffset);
  18321 }
  18322 static inline HRESULT ISpeechTextSelectionInformation_put_ActiveLength(ISpeechTextSelectionInformation* This,LONG ActiveLength) {
  18323     return This->lpVtbl->put_ActiveLength(This,ActiveLength);
  18324 }
  18325 static inline HRESULT ISpeechTextSelectionInformation_get_ActiveLength(ISpeechTextSelectionInformation* This,LONG *ActiveLength) {
  18326     return This->lpVtbl->get_ActiveLength(This,ActiveLength);
  18327 }
  18328 static inline HRESULT ISpeechTextSelectionInformation_put_SelectionOffset(ISpeechTextSelectionInformation* This,LONG SelectionOffset) {
  18329     return This->lpVtbl->put_SelectionOffset(This,SelectionOffset);
  18330 }
  18331 static inline HRESULT ISpeechTextSelectionInformation_get_SelectionOffset(ISpeechTextSelectionInformation* This,LONG *SelectionOffset) {
  18332     return This->lpVtbl->get_SelectionOffset(This,SelectionOffset);
  18333 }
  18334 static inline HRESULT ISpeechTextSelectionInformation_put_SelectionLength(ISpeechTextSelectionInformation* This,LONG SelectionLength) {
  18335     return This->lpVtbl->put_SelectionLength(This,SelectionLength);
  18336 }
  18337 static inline HRESULT ISpeechTextSelectionInformation_get_SelectionLength(ISpeechTextSelectionInformation* This,LONG *SelectionLength) {
  18338     return This->lpVtbl->get_SelectionLength(This,SelectionLength);
  18339 }
  18340 #endif
  18341 #endif
  18342 
  18343 #endif
  18344 
  18345 
  18346 #endif  /* __ISpeechTextSelectionInformation_INTERFACE_DEFINED__ */
  18347 
  18348 /*****************************************************************************
  18349  * ISpeechRecoResult interface
  18350  */
  18351 #ifndef __ISpeechRecoResult_INTERFACE_DEFINED__
  18352 #define __ISpeechRecoResult_INTERFACE_DEFINED__
  18353 
  18354 DEFINE_GUID(IID_ISpeechRecoResult, 0xed2879cf, 0xced9, 0x4ee6, 0xa5,0x34, 0xde,0x01,0x91,0xd5,0x46,0x8d);
  18355 #if defined(__cplusplus) && !defined(CINTERFACE)
  18356 MIDL_INTERFACE("ed2879cf-ced9-4ee6-a534-de0191d5468d")
  18357 ISpeechRecoResult : public IDispatch
  18358 {
  18359     virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
  18360         ISpeechRecoContext **RecoContext) = 0;
  18361 
  18362     virtual HRESULT STDMETHODCALLTYPE get_Times(
  18363         ISpeechRecoResultTimes **Times) = 0;
  18364 
  18365     virtual HRESULT STDMETHODCALLTYPE putref_AudioFormat(
  18366         ISpeechAudioFormat *Format) = 0;
  18367 
  18368     virtual HRESULT STDMETHODCALLTYPE get_AudioFormat(
  18369         ISpeechAudioFormat **Format) = 0;
  18370 
  18371     virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
  18372         ISpeechPhraseInfo **PhraseInfo) = 0;
  18373 
  18374     virtual HRESULT STDMETHODCALLTYPE Alternates(
  18375         LONG RequestCount,
  18376         LONG StartElement,
  18377         LONG Elements,
  18378         ISpeechPhraseAlternates **Alternates) = 0;
  18379 
  18380     virtual HRESULT STDMETHODCALLTYPE Audio(
  18381         LONG StartElement,
  18382         LONG Elements,
  18383         ISpeechMemoryStream **Stream) = 0;
  18384 
  18385     virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
  18386         LONG StartElement,
  18387         LONG Elements,
  18388         SpeechVoiceSpeakFlags Flags,
  18389         LONG *StreamNumber) = 0;
  18390 
  18391     virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
  18392         VARIANT *ResultBlock) = 0;
  18393 
  18394     virtual HRESULT STDMETHODCALLTYPE DiscardResultInfo(
  18395         SpeechDiscardType ValueTypes) = 0;
  18396 
  18397 };
  18398 #ifdef __CRT_UUID_DECL
  18399 __CRT_UUID_DECL(ISpeechRecoResult, 0xed2879cf, 0xced9, 0x4ee6, 0xa5,0x34, 0xde,0x01,0x91,0xd5,0x46,0x8d)
  18400 #endif
  18401 #else
  18402 typedef struct ISpeechRecoResultVtbl {
  18403     BEGIN_INTERFACE
  18404 
  18405     /*** IUnknown methods ***/
  18406     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  18407         ISpeechRecoResult *This,
  18408         REFIID riid,
  18409         void **ppvObject);
  18410 
  18411     ULONG (STDMETHODCALLTYPE *AddRef)(
  18412         ISpeechRecoResult *This);
  18413 
  18414     ULONG (STDMETHODCALLTYPE *Release)(
  18415         ISpeechRecoResult *This);
  18416 
  18417     /*** IDispatch methods ***/
  18418     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  18419         ISpeechRecoResult *This,
  18420         UINT *pctinfo);
  18421 
  18422     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  18423         ISpeechRecoResult *This,
  18424         UINT iTInfo,
  18425         LCID lcid,
  18426         ITypeInfo **ppTInfo);
  18427 
  18428     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  18429         ISpeechRecoResult *This,
  18430         REFIID riid,
  18431         LPOLESTR *rgszNames,
  18432         UINT cNames,
  18433         LCID lcid,
  18434         DISPID *rgDispId);
  18435 
  18436     HRESULT (STDMETHODCALLTYPE *Invoke)(
  18437         ISpeechRecoResult *This,
  18438         DISPID dispIdMember,
  18439         REFIID riid,
  18440         LCID lcid,
  18441         WORD wFlags,
  18442         DISPPARAMS *pDispParams,
  18443         VARIANT *pVarResult,
  18444         EXCEPINFO *pExcepInfo,
  18445         UINT *puArgErr);
  18446 
  18447     /*** ISpeechRecoResult methods ***/
  18448     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
  18449         ISpeechRecoResult *This,
  18450         ISpeechRecoContext **RecoContext);
  18451 
  18452     HRESULT (STDMETHODCALLTYPE *get_Times)(
  18453         ISpeechRecoResult *This,
  18454         ISpeechRecoResultTimes **Times);
  18455 
  18456     HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
  18457         ISpeechRecoResult *This,
  18458         ISpeechAudioFormat *Format);
  18459 
  18460     HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
  18461         ISpeechRecoResult *This,
  18462         ISpeechAudioFormat **Format);
  18463 
  18464     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
  18465         ISpeechRecoResult *This,
  18466         ISpeechPhraseInfo **PhraseInfo);
  18467 
  18468     HRESULT (STDMETHODCALLTYPE *Alternates)(
  18469         ISpeechRecoResult *This,
  18470         LONG RequestCount,
  18471         LONG StartElement,
  18472         LONG Elements,
  18473         ISpeechPhraseAlternates **Alternates);
  18474 
  18475     HRESULT (STDMETHODCALLTYPE *Audio)(
  18476         ISpeechRecoResult *This,
  18477         LONG StartElement,
  18478         LONG Elements,
  18479         ISpeechMemoryStream **Stream);
  18480 
  18481     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
  18482         ISpeechRecoResult *This,
  18483         LONG StartElement,
  18484         LONG Elements,
  18485         SpeechVoiceSpeakFlags Flags,
  18486         LONG *StreamNumber);
  18487 
  18488     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
  18489         ISpeechRecoResult *This,
  18490         VARIANT *ResultBlock);
  18491 
  18492     HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
  18493         ISpeechRecoResult *This,
  18494         SpeechDiscardType ValueTypes);
  18495 
  18496     END_INTERFACE
  18497 } ISpeechRecoResultVtbl;
  18498 
  18499 interface ISpeechRecoResult {
  18500     CONST_VTBL ISpeechRecoResultVtbl* lpVtbl;
  18501 };
  18502 
  18503 #ifdef COBJMACROS
  18504 #ifndef WIDL_C_INLINE_WRAPPERS
  18505 /*** IUnknown methods ***/
  18506 #define ISpeechRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  18507 #define ISpeechRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
  18508 #define ISpeechRecoResult_Release(This) (This)->lpVtbl->Release(This)
  18509 /*** IDispatch methods ***/
  18510 #define ISpeechRecoResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  18511 #define ISpeechRecoResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  18512 #define ISpeechRecoResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  18513 #define ISpeechRecoResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  18514 /*** ISpeechRecoResult methods ***/
  18515 #define ISpeechRecoResult_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
  18516 #define ISpeechRecoResult_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
  18517 #define ISpeechRecoResult_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
  18518 #define ISpeechRecoResult_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
  18519 #define ISpeechRecoResult_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
  18520 #define ISpeechRecoResult_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
  18521 #define ISpeechRecoResult_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
  18522 #define ISpeechRecoResult_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
  18523 #define ISpeechRecoResult_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
  18524 #define ISpeechRecoResult_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
  18525 #else
  18526 /*** IUnknown methods ***/
  18527 static inline HRESULT ISpeechRecoResult_QueryInterface(ISpeechRecoResult* This,REFIID riid,void **ppvObject) {
  18528     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  18529 }
  18530 static inline ULONG ISpeechRecoResult_AddRef(ISpeechRecoResult* This) {
  18531     return This->lpVtbl->AddRef(This);
  18532 }
  18533 static inline ULONG ISpeechRecoResult_Release(ISpeechRecoResult* This) {
  18534     return This->lpVtbl->Release(This);
  18535 }
  18536 /*** IDispatch methods ***/
  18537 static inline HRESULT ISpeechRecoResult_GetTypeInfoCount(ISpeechRecoResult* This,UINT *pctinfo) {
  18538     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  18539 }
  18540 static inline HRESULT ISpeechRecoResult_GetTypeInfo(ISpeechRecoResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  18541     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  18542 }
  18543 static inline HRESULT ISpeechRecoResult_GetIDsOfNames(ISpeechRecoResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  18544     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  18545 }
  18546 static inline HRESULT ISpeechRecoResult_Invoke(ISpeechRecoResult* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  18547     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  18548 }
  18549 /*** ISpeechRecoResult methods ***/
  18550 static inline HRESULT ISpeechRecoResult_get_RecoContext(ISpeechRecoResult* This,ISpeechRecoContext **RecoContext) {
  18551     return This->lpVtbl->get_RecoContext(This,RecoContext);
  18552 }
  18553 static inline HRESULT ISpeechRecoResult_get_Times(ISpeechRecoResult* This,ISpeechRecoResultTimes **Times) {
  18554     return This->lpVtbl->get_Times(This,Times);
  18555 }
  18556 static inline HRESULT ISpeechRecoResult_putref_AudioFormat(ISpeechRecoResult* This,ISpeechAudioFormat *Format) {
  18557     return This->lpVtbl->putref_AudioFormat(This,Format);
  18558 }
  18559 static inline HRESULT ISpeechRecoResult_get_AudioFormat(ISpeechRecoResult* This,ISpeechAudioFormat **Format) {
  18560     return This->lpVtbl->get_AudioFormat(This,Format);
  18561 }
  18562 static inline HRESULT ISpeechRecoResult_get_PhraseInfo(ISpeechRecoResult* This,ISpeechPhraseInfo **PhraseInfo) {
  18563     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
  18564 }
  18565 static inline HRESULT ISpeechRecoResult_Alternates(ISpeechRecoResult* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
  18566     return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
  18567 }
  18568 static inline HRESULT ISpeechRecoResult_Audio(ISpeechRecoResult* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
  18569     return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
  18570 }
  18571 static inline HRESULT ISpeechRecoResult_SpeakAudio(ISpeechRecoResult* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
  18572     return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
  18573 }
  18574 static inline HRESULT ISpeechRecoResult_SaveToMemory(ISpeechRecoResult* This,VARIANT *ResultBlock) {
  18575     return This->lpVtbl->SaveToMemory(This,ResultBlock);
  18576 }
  18577 static inline HRESULT ISpeechRecoResult_DiscardResultInfo(ISpeechRecoResult* This,SpeechDiscardType ValueTypes) {
  18578     return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
  18579 }
  18580 #endif
  18581 #endif
  18582 
  18583 #endif
  18584 
  18585 
  18586 #endif  /* __ISpeechRecoResult_INTERFACE_DEFINED__ */
  18587 
  18588 /*****************************************************************************
  18589  * ISpeechXMLRecoResult interface
  18590  */
  18591 #ifndef __ISpeechXMLRecoResult_INTERFACE_DEFINED__
  18592 #define __ISpeechXMLRecoResult_INTERFACE_DEFINED__
  18593 
  18594 DEFINE_GUID(IID_ISpeechXMLRecoResult, 0xaaec54af, 0x8f85, 0x4924, 0x94,0x4d, 0xb7,0x9d,0x39,0xd7,0x2e,0x19);
  18595 #if defined(__cplusplus) && !defined(CINTERFACE)
  18596 MIDL_INTERFACE("aaec54af-8f85-4924-944d-b79d39d72e19")
  18597 ISpeechXMLRecoResult : public ISpeechRecoResult
  18598 {
  18599     virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
  18600         SPXMLRESULTOPTIONS Options,
  18601         BSTR *pResult) = 0;
  18602 
  18603     virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
  18604         LONG *LineNumber,
  18605         BSTR *ScriptLine,
  18606         BSTR *Source,
  18607         BSTR *Description,
  18608         LONG *ResultCode,
  18609         VARIANT_BOOL *IsError) = 0;
  18610 
  18611 };
  18612 #ifdef __CRT_UUID_DECL
  18613 __CRT_UUID_DECL(ISpeechXMLRecoResult, 0xaaec54af, 0x8f85, 0x4924, 0x94,0x4d, 0xb7,0x9d,0x39,0xd7,0x2e,0x19)
  18614 #endif
  18615 #else
  18616 typedef struct ISpeechXMLRecoResultVtbl {
  18617     BEGIN_INTERFACE
  18618 
  18619     /*** IUnknown methods ***/
  18620     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  18621         ISpeechXMLRecoResult *This,
  18622         REFIID riid,
  18623         void **ppvObject);
  18624 
  18625     ULONG (STDMETHODCALLTYPE *AddRef)(
  18626         ISpeechXMLRecoResult *This);
  18627 
  18628     ULONG (STDMETHODCALLTYPE *Release)(
  18629         ISpeechXMLRecoResult *This);
  18630 
  18631     /*** IDispatch methods ***/
  18632     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  18633         ISpeechXMLRecoResult *This,
  18634         UINT *pctinfo);
  18635 
  18636     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  18637         ISpeechXMLRecoResult *This,
  18638         UINT iTInfo,
  18639         LCID lcid,
  18640         ITypeInfo **ppTInfo);
  18641 
  18642     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  18643         ISpeechXMLRecoResult *This,
  18644         REFIID riid,
  18645         LPOLESTR *rgszNames,
  18646         UINT cNames,
  18647         LCID lcid,
  18648         DISPID *rgDispId);
  18649 
  18650     HRESULT (STDMETHODCALLTYPE *Invoke)(
  18651         ISpeechXMLRecoResult *This,
  18652         DISPID dispIdMember,
  18653         REFIID riid,
  18654         LCID lcid,
  18655         WORD wFlags,
  18656         DISPPARAMS *pDispParams,
  18657         VARIANT *pVarResult,
  18658         EXCEPINFO *pExcepInfo,
  18659         UINT *puArgErr);
  18660 
  18661     /*** ISpeechRecoResult methods ***/
  18662     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
  18663         ISpeechXMLRecoResult *This,
  18664         ISpeechRecoContext **RecoContext);
  18665 
  18666     HRESULT (STDMETHODCALLTYPE *get_Times)(
  18667         ISpeechXMLRecoResult *This,
  18668         ISpeechRecoResultTimes **Times);
  18669 
  18670     HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
  18671         ISpeechXMLRecoResult *This,
  18672         ISpeechAudioFormat *Format);
  18673 
  18674     HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
  18675         ISpeechXMLRecoResult *This,
  18676         ISpeechAudioFormat **Format);
  18677 
  18678     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
  18679         ISpeechXMLRecoResult *This,
  18680         ISpeechPhraseInfo **PhraseInfo);
  18681 
  18682     HRESULT (STDMETHODCALLTYPE *Alternates)(
  18683         ISpeechXMLRecoResult *This,
  18684         LONG RequestCount,
  18685         LONG StartElement,
  18686         LONG Elements,
  18687         ISpeechPhraseAlternates **Alternates);
  18688 
  18689     HRESULT (STDMETHODCALLTYPE *Audio)(
  18690         ISpeechXMLRecoResult *This,
  18691         LONG StartElement,
  18692         LONG Elements,
  18693         ISpeechMemoryStream **Stream);
  18694 
  18695     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
  18696         ISpeechXMLRecoResult *This,
  18697         LONG StartElement,
  18698         LONG Elements,
  18699         SpeechVoiceSpeakFlags Flags,
  18700         LONG *StreamNumber);
  18701 
  18702     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
  18703         ISpeechXMLRecoResult *This,
  18704         VARIANT *ResultBlock);
  18705 
  18706     HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
  18707         ISpeechXMLRecoResult *This,
  18708         SpeechDiscardType ValueTypes);
  18709 
  18710     /*** ISpeechXMLRecoResult methods ***/
  18711     HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
  18712         ISpeechXMLRecoResult *This,
  18713         SPXMLRESULTOPTIONS Options,
  18714         BSTR *pResult);
  18715 
  18716     HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
  18717         ISpeechXMLRecoResult *This,
  18718         LONG *LineNumber,
  18719         BSTR *ScriptLine,
  18720         BSTR *Source,
  18721         BSTR *Description,
  18722         LONG *ResultCode,
  18723         VARIANT_BOOL *IsError);
  18724 
  18725     END_INTERFACE
  18726 } ISpeechXMLRecoResultVtbl;
  18727 
  18728 interface ISpeechXMLRecoResult {
  18729     CONST_VTBL ISpeechXMLRecoResultVtbl* lpVtbl;
  18730 };
  18731 
  18732 #ifdef COBJMACROS
  18733 #ifndef WIDL_C_INLINE_WRAPPERS
  18734 /*** IUnknown methods ***/
  18735 #define ISpeechXMLRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  18736 #define ISpeechXMLRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
  18737 #define ISpeechXMLRecoResult_Release(This) (This)->lpVtbl->Release(This)
  18738 /*** IDispatch methods ***/
  18739 #define ISpeechXMLRecoResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  18740 #define ISpeechXMLRecoResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  18741 #define ISpeechXMLRecoResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  18742 #define ISpeechXMLRecoResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  18743 /*** ISpeechRecoResult methods ***/
  18744 #define ISpeechXMLRecoResult_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
  18745 #define ISpeechXMLRecoResult_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
  18746 #define ISpeechXMLRecoResult_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
  18747 #define ISpeechXMLRecoResult_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
  18748 #define ISpeechXMLRecoResult_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
  18749 #define ISpeechXMLRecoResult_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
  18750 #define ISpeechXMLRecoResult_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
  18751 #define ISpeechXMLRecoResult_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
  18752 #define ISpeechXMLRecoResult_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
  18753 #define ISpeechXMLRecoResult_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
  18754 /*** ISpeechXMLRecoResult methods ***/
  18755 #define ISpeechXMLRecoResult_GetXMLResult(This,Options,pResult) (This)->lpVtbl->GetXMLResult(This,Options,pResult)
  18756 #define ISpeechXMLRecoResult_GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError) (This)->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError)
  18757 #else
  18758 /*** IUnknown methods ***/
  18759 static inline HRESULT ISpeechXMLRecoResult_QueryInterface(ISpeechXMLRecoResult* This,REFIID riid,void **ppvObject) {
  18760     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  18761 }
  18762 static inline ULONG ISpeechXMLRecoResult_AddRef(ISpeechXMLRecoResult* This) {
  18763     return This->lpVtbl->AddRef(This);
  18764 }
  18765 static inline ULONG ISpeechXMLRecoResult_Release(ISpeechXMLRecoResult* This) {
  18766     return This->lpVtbl->Release(This);
  18767 }
  18768 /*** IDispatch methods ***/
  18769 static inline HRESULT ISpeechXMLRecoResult_GetTypeInfoCount(ISpeechXMLRecoResult* This,UINT *pctinfo) {
  18770     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  18771 }
  18772 static inline HRESULT ISpeechXMLRecoResult_GetTypeInfo(ISpeechXMLRecoResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  18773     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  18774 }
  18775 static inline HRESULT ISpeechXMLRecoResult_GetIDsOfNames(ISpeechXMLRecoResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  18776     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  18777 }
  18778 static inline HRESULT ISpeechXMLRecoResult_Invoke(ISpeechXMLRecoResult* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  18779     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  18780 }
  18781 /*** ISpeechRecoResult methods ***/
  18782 static inline HRESULT ISpeechXMLRecoResult_get_RecoContext(ISpeechXMLRecoResult* This,ISpeechRecoContext **RecoContext) {
  18783     return This->lpVtbl->get_RecoContext(This,RecoContext);
  18784 }
  18785 static inline HRESULT ISpeechXMLRecoResult_get_Times(ISpeechXMLRecoResult* This,ISpeechRecoResultTimes **Times) {
  18786     return This->lpVtbl->get_Times(This,Times);
  18787 }
  18788 static inline HRESULT ISpeechXMLRecoResult_putref_AudioFormat(ISpeechXMLRecoResult* This,ISpeechAudioFormat *Format) {
  18789     return This->lpVtbl->putref_AudioFormat(This,Format);
  18790 }
  18791 static inline HRESULT ISpeechXMLRecoResult_get_AudioFormat(ISpeechXMLRecoResult* This,ISpeechAudioFormat **Format) {
  18792     return This->lpVtbl->get_AudioFormat(This,Format);
  18793 }
  18794 static inline HRESULT ISpeechXMLRecoResult_get_PhraseInfo(ISpeechXMLRecoResult* This,ISpeechPhraseInfo **PhraseInfo) {
  18795     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
  18796 }
  18797 static inline HRESULT ISpeechXMLRecoResult_Alternates(ISpeechXMLRecoResult* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
  18798     return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
  18799 }
  18800 static inline HRESULT ISpeechXMLRecoResult_Audio(ISpeechXMLRecoResult* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
  18801     return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
  18802 }
  18803 static inline HRESULT ISpeechXMLRecoResult_SpeakAudio(ISpeechXMLRecoResult* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
  18804     return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
  18805 }
  18806 static inline HRESULT ISpeechXMLRecoResult_SaveToMemory(ISpeechXMLRecoResult* This,VARIANT *ResultBlock) {
  18807     return This->lpVtbl->SaveToMemory(This,ResultBlock);
  18808 }
  18809 static inline HRESULT ISpeechXMLRecoResult_DiscardResultInfo(ISpeechXMLRecoResult* This,SpeechDiscardType ValueTypes) {
  18810     return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
  18811 }
  18812 /*** ISpeechXMLRecoResult methods ***/
  18813 static inline HRESULT ISpeechXMLRecoResult_GetXMLResult(ISpeechXMLRecoResult* This,SPXMLRESULTOPTIONS Options,BSTR *pResult) {
  18814     return This->lpVtbl->GetXMLResult(This,Options,pResult);
  18815 }
  18816 static inline HRESULT ISpeechXMLRecoResult_GetXMLErrorInfo(ISpeechXMLRecoResult* This,LONG *LineNumber,BSTR *ScriptLine,BSTR *Source,BSTR *Description,LONG *ResultCode,VARIANT_BOOL *IsError) {
  18817     return This->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError);
  18818 }
  18819 #endif
  18820 #endif
  18821 
  18822 #endif
  18823 
  18824 
  18825 #endif  /* __ISpeechXMLRecoResult_INTERFACE_DEFINED__ */
  18826 
  18827 /*****************************************************************************
  18828  * ISpeechRecoResult2 interface
  18829  */
  18830 #ifndef __ISpeechRecoResult2_INTERFACE_DEFINED__
  18831 #define __ISpeechRecoResult2_INTERFACE_DEFINED__
  18832 
  18833 DEFINE_GUID(IID_ISpeechRecoResult2, 0x8e0a246d, 0xd3c8, 0x45de, 0x86,0x57, 0x04,0x29,0x0c,0x45,0x8c,0x3c);
  18834 #if defined(__cplusplus) && !defined(CINTERFACE)
  18835 MIDL_INTERFACE("8e0a246d-d3c8-45de-8657-04290c458c3c")
  18836 ISpeechRecoResult2 : public ISpeechRecoResult
  18837 {
  18838     virtual HRESULT STDMETHODCALLTYPE SetTextFeedback(
  18839         BSTR Feedback,
  18840         VARIANT_BOOL WasSuccessful) = 0;
  18841 
  18842 };
  18843 #ifdef __CRT_UUID_DECL
  18844 __CRT_UUID_DECL(ISpeechRecoResult2, 0x8e0a246d, 0xd3c8, 0x45de, 0x86,0x57, 0x04,0x29,0x0c,0x45,0x8c,0x3c)
  18845 #endif
  18846 #else
  18847 typedef struct ISpeechRecoResult2Vtbl {
  18848     BEGIN_INTERFACE
  18849 
  18850     /*** IUnknown methods ***/
  18851     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  18852         ISpeechRecoResult2 *This,
  18853         REFIID riid,
  18854         void **ppvObject);
  18855 
  18856     ULONG (STDMETHODCALLTYPE *AddRef)(
  18857         ISpeechRecoResult2 *This);
  18858 
  18859     ULONG (STDMETHODCALLTYPE *Release)(
  18860         ISpeechRecoResult2 *This);
  18861 
  18862     /*** IDispatch methods ***/
  18863     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  18864         ISpeechRecoResult2 *This,
  18865         UINT *pctinfo);
  18866 
  18867     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  18868         ISpeechRecoResult2 *This,
  18869         UINT iTInfo,
  18870         LCID lcid,
  18871         ITypeInfo **ppTInfo);
  18872 
  18873     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  18874         ISpeechRecoResult2 *This,
  18875         REFIID riid,
  18876         LPOLESTR *rgszNames,
  18877         UINT cNames,
  18878         LCID lcid,
  18879         DISPID *rgDispId);
  18880 
  18881     HRESULT (STDMETHODCALLTYPE *Invoke)(
  18882         ISpeechRecoResult2 *This,
  18883         DISPID dispIdMember,
  18884         REFIID riid,
  18885         LCID lcid,
  18886         WORD wFlags,
  18887         DISPPARAMS *pDispParams,
  18888         VARIANT *pVarResult,
  18889         EXCEPINFO *pExcepInfo,
  18890         UINT *puArgErr);
  18891 
  18892     /*** ISpeechRecoResult methods ***/
  18893     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
  18894         ISpeechRecoResult2 *This,
  18895         ISpeechRecoContext **RecoContext);
  18896 
  18897     HRESULT (STDMETHODCALLTYPE *get_Times)(
  18898         ISpeechRecoResult2 *This,
  18899         ISpeechRecoResultTimes **Times);
  18900 
  18901     HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
  18902         ISpeechRecoResult2 *This,
  18903         ISpeechAudioFormat *Format);
  18904 
  18905     HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
  18906         ISpeechRecoResult2 *This,
  18907         ISpeechAudioFormat **Format);
  18908 
  18909     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
  18910         ISpeechRecoResult2 *This,
  18911         ISpeechPhraseInfo **PhraseInfo);
  18912 
  18913     HRESULT (STDMETHODCALLTYPE *Alternates)(
  18914         ISpeechRecoResult2 *This,
  18915         LONG RequestCount,
  18916         LONG StartElement,
  18917         LONG Elements,
  18918         ISpeechPhraseAlternates **Alternates);
  18919 
  18920     HRESULT (STDMETHODCALLTYPE *Audio)(
  18921         ISpeechRecoResult2 *This,
  18922         LONG StartElement,
  18923         LONG Elements,
  18924         ISpeechMemoryStream **Stream);
  18925 
  18926     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
  18927         ISpeechRecoResult2 *This,
  18928         LONG StartElement,
  18929         LONG Elements,
  18930         SpeechVoiceSpeakFlags Flags,
  18931         LONG *StreamNumber);
  18932 
  18933     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
  18934         ISpeechRecoResult2 *This,
  18935         VARIANT *ResultBlock);
  18936 
  18937     HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
  18938         ISpeechRecoResult2 *This,
  18939         SpeechDiscardType ValueTypes);
  18940 
  18941     /*** ISpeechRecoResult2 methods ***/
  18942     HRESULT (STDMETHODCALLTYPE *SetTextFeedback)(
  18943         ISpeechRecoResult2 *This,
  18944         BSTR Feedback,
  18945         VARIANT_BOOL WasSuccessful);
  18946 
  18947     END_INTERFACE
  18948 } ISpeechRecoResult2Vtbl;
  18949 
  18950 interface ISpeechRecoResult2 {
  18951     CONST_VTBL ISpeechRecoResult2Vtbl* lpVtbl;
  18952 };
  18953 
  18954 #ifdef COBJMACROS
  18955 #ifndef WIDL_C_INLINE_WRAPPERS
  18956 /*** IUnknown methods ***/
  18957 #define ISpeechRecoResult2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  18958 #define ISpeechRecoResult2_AddRef(This) (This)->lpVtbl->AddRef(This)
  18959 #define ISpeechRecoResult2_Release(This) (This)->lpVtbl->Release(This)
  18960 /*** IDispatch methods ***/
  18961 #define ISpeechRecoResult2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  18962 #define ISpeechRecoResult2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  18963 #define ISpeechRecoResult2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  18964 #define ISpeechRecoResult2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  18965 /*** ISpeechRecoResult methods ***/
  18966 #define ISpeechRecoResult2_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
  18967 #define ISpeechRecoResult2_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
  18968 #define ISpeechRecoResult2_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
  18969 #define ISpeechRecoResult2_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
  18970 #define ISpeechRecoResult2_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
  18971 #define ISpeechRecoResult2_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
  18972 #define ISpeechRecoResult2_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
  18973 #define ISpeechRecoResult2_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
  18974 #define ISpeechRecoResult2_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
  18975 #define ISpeechRecoResult2_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
  18976 /*** ISpeechRecoResult2 methods ***/
  18977 #define ISpeechRecoResult2_SetTextFeedback(This,Feedback,WasSuccessful) (This)->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful)
  18978 #else
  18979 /*** IUnknown methods ***/
  18980 static inline HRESULT ISpeechRecoResult2_QueryInterface(ISpeechRecoResult2* This,REFIID riid,void **ppvObject) {
  18981     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  18982 }
  18983 static inline ULONG ISpeechRecoResult2_AddRef(ISpeechRecoResult2* This) {
  18984     return This->lpVtbl->AddRef(This);
  18985 }
  18986 static inline ULONG ISpeechRecoResult2_Release(ISpeechRecoResult2* This) {
  18987     return This->lpVtbl->Release(This);
  18988 }
  18989 /*** IDispatch methods ***/
  18990 static inline HRESULT ISpeechRecoResult2_GetTypeInfoCount(ISpeechRecoResult2* This,UINT *pctinfo) {
  18991     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  18992 }
  18993 static inline HRESULT ISpeechRecoResult2_GetTypeInfo(ISpeechRecoResult2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  18994     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  18995 }
  18996 static inline HRESULT ISpeechRecoResult2_GetIDsOfNames(ISpeechRecoResult2* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  18997     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  18998 }
  18999 static inline HRESULT ISpeechRecoResult2_Invoke(ISpeechRecoResult2* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  19000     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  19001 }
  19002 /*** ISpeechRecoResult methods ***/
  19003 static inline HRESULT ISpeechRecoResult2_get_RecoContext(ISpeechRecoResult2* This,ISpeechRecoContext **RecoContext) {
  19004     return This->lpVtbl->get_RecoContext(This,RecoContext);
  19005 }
  19006 static inline HRESULT ISpeechRecoResult2_get_Times(ISpeechRecoResult2* This,ISpeechRecoResultTimes **Times) {
  19007     return This->lpVtbl->get_Times(This,Times);
  19008 }
  19009 static inline HRESULT ISpeechRecoResult2_putref_AudioFormat(ISpeechRecoResult2* This,ISpeechAudioFormat *Format) {
  19010     return This->lpVtbl->putref_AudioFormat(This,Format);
  19011 }
  19012 static inline HRESULT ISpeechRecoResult2_get_AudioFormat(ISpeechRecoResult2* This,ISpeechAudioFormat **Format) {
  19013     return This->lpVtbl->get_AudioFormat(This,Format);
  19014 }
  19015 static inline HRESULT ISpeechRecoResult2_get_PhraseInfo(ISpeechRecoResult2* This,ISpeechPhraseInfo **PhraseInfo) {
  19016     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
  19017 }
  19018 static inline HRESULT ISpeechRecoResult2_Alternates(ISpeechRecoResult2* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
  19019     return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
  19020 }
  19021 static inline HRESULT ISpeechRecoResult2_Audio(ISpeechRecoResult2* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
  19022     return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
  19023 }
  19024 static inline HRESULT ISpeechRecoResult2_SpeakAudio(ISpeechRecoResult2* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
  19025     return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
  19026 }
  19027 static inline HRESULT ISpeechRecoResult2_SaveToMemory(ISpeechRecoResult2* This,VARIANT *ResultBlock) {
  19028     return This->lpVtbl->SaveToMemory(This,ResultBlock);
  19029 }
  19030 static inline HRESULT ISpeechRecoResult2_DiscardResultInfo(ISpeechRecoResult2* This,SpeechDiscardType ValueTypes) {
  19031     return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
  19032 }
  19033 /*** ISpeechRecoResult2 methods ***/
  19034 static inline HRESULT ISpeechRecoResult2_SetTextFeedback(ISpeechRecoResult2* This,BSTR Feedback,VARIANT_BOOL WasSuccessful) {
  19035     return This->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful);
  19036 }
  19037 #endif
  19038 #endif
  19039 
  19040 #endif
  19041 
  19042 
  19043 #endif  /* __ISpeechRecoResult2_INTERFACE_DEFINED__ */
  19044 
  19045 /*****************************************************************************
  19046  * ISpeechRecoResultDispatch interface
  19047  */
  19048 #ifndef __ISpeechRecoResultDispatch_INTERFACE_DEFINED__
  19049 #define __ISpeechRecoResultDispatch_INTERFACE_DEFINED__
  19050 
  19051 DEFINE_GUID(IID_ISpeechRecoResultDispatch, 0x6d60eb64, 0xaced, 0x40a6, 0xbb,0xf3, 0x4e,0x55,0x7f,0x71,0xde,0xe2);
  19052 #if defined(__cplusplus) && !defined(CINTERFACE)
  19053 MIDL_INTERFACE("6d60eb64-aced-40a6-bbf3-4e557f71dee2")
  19054 ISpeechRecoResultDispatch : public IDispatch
  19055 {
  19056     virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
  19057         ISpeechRecoContext **RecoContext) = 0;
  19058 
  19059     virtual HRESULT STDMETHODCALLTYPE get_Times(
  19060         ISpeechRecoResultTimes **Times) = 0;
  19061 
  19062     virtual HRESULT STDMETHODCALLTYPE putref_AudioFormat(
  19063         ISpeechAudioFormat *Format) = 0;
  19064 
  19065     virtual HRESULT STDMETHODCALLTYPE get_AudioFormat(
  19066         ISpeechAudioFormat **Format) = 0;
  19067 
  19068     virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
  19069         ISpeechPhraseInfo **PhraseInfo) = 0;
  19070 
  19071     virtual HRESULT STDMETHODCALLTYPE Alternates(
  19072         LONG RequestCount,
  19073         LONG StartElement,
  19074         LONG Elements,
  19075         ISpeechPhraseAlternates **Alternates) = 0;
  19076 
  19077     virtual HRESULT STDMETHODCALLTYPE Audio(
  19078         LONG StartElement,
  19079         LONG Elements,
  19080         ISpeechMemoryStream **Stream) = 0;
  19081 
  19082     virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
  19083         LONG StartElement,
  19084         LONG Elements,
  19085         SpeechVoiceSpeakFlags Flags,
  19086         LONG *StreamNumber) = 0;
  19087 
  19088     virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
  19089         VARIANT *ResultBlock) = 0;
  19090 
  19091     virtual HRESULT STDMETHODCALLTYPE DiscardResultInfo(
  19092         SpeechDiscardType ValueTypes) = 0;
  19093 
  19094     virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
  19095         SPXMLRESULTOPTIONS Options,
  19096         BSTR *pResult) = 0;
  19097 
  19098     virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
  19099         LONG *LineNumber,
  19100         BSTR *ScriptLine,
  19101         BSTR *Source,
  19102         BSTR *Description,
  19103         HRESULT *ResultCode,
  19104         VARIANT_BOOL *IsError) = 0;
  19105 
  19106     virtual HRESULT STDMETHODCALLTYPE SetTextFeedback(
  19107         BSTR Feedback,
  19108         VARIANT_BOOL WasSuccessful) = 0;
  19109 
  19110 };
  19111 #ifdef __CRT_UUID_DECL
  19112 __CRT_UUID_DECL(ISpeechRecoResultDispatch, 0x6d60eb64, 0xaced, 0x40a6, 0xbb,0xf3, 0x4e,0x55,0x7f,0x71,0xde,0xe2)
  19113 #endif
  19114 #else
  19115 typedef struct ISpeechRecoResultDispatchVtbl {
  19116     BEGIN_INTERFACE
  19117 
  19118     /*** IUnknown methods ***/
  19119     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  19120         ISpeechRecoResultDispatch *This,
  19121         REFIID riid,
  19122         void **ppvObject);
  19123 
  19124     ULONG (STDMETHODCALLTYPE *AddRef)(
  19125         ISpeechRecoResultDispatch *This);
  19126 
  19127     ULONG (STDMETHODCALLTYPE *Release)(
  19128         ISpeechRecoResultDispatch *This);
  19129 
  19130     /*** IDispatch methods ***/
  19131     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  19132         ISpeechRecoResultDispatch *This,
  19133         UINT *pctinfo);
  19134 
  19135     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  19136         ISpeechRecoResultDispatch *This,
  19137         UINT iTInfo,
  19138         LCID lcid,
  19139         ITypeInfo **ppTInfo);
  19140 
  19141     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  19142         ISpeechRecoResultDispatch *This,
  19143         REFIID riid,
  19144         LPOLESTR *rgszNames,
  19145         UINT cNames,
  19146         LCID lcid,
  19147         DISPID *rgDispId);
  19148 
  19149     HRESULT (STDMETHODCALLTYPE *Invoke)(
  19150         ISpeechRecoResultDispatch *This,
  19151         DISPID dispIdMember,
  19152         REFIID riid,
  19153         LCID lcid,
  19154         WORD wFlags,
  19155         DISPPARAMS *pDispParams,
  19156         VARIANT *pVarResult,
  19157         EXCEPINFO *pExcepInfo,
  19158         UINT *puArgErr);
  19159 
  19160     /*** ISpeechRecoResultDispatch methods ***/
  19161     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
  19162         ISpeechRecoResultDispatch *This,
  19163         ISpeechRecoContext **RecoContext);
  19164 
  19165     HRESULT (STDMETHODCALLTYPE *get_Times)(
  19166         ISpeechRecoResultDispatch *This,
  19167         ISpeechRecoResultTimes **Times);
  19168 
  19169     HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
  19170         ISpeechRecoResultDispatch *This,
  19171         ISpeechAudioFormat *Format);
  19172 
  19173     HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
  19174         ISpeechRecoResultDispatch *This,
  19175         ISpeechAudioFormat **Format);
  19176 
  19177     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
  19178         ISpeechRecoResultDispatch *This,
  19179         ISpeechPhraseInfo **PhraseInfo);
  19180 
  19181     HRESULT (STDMETHODCALLTYPE *Alternates)(
  19182         ISpeechRecoResultDispatch *This,
  19183         LONG RequestCount,
  19184         LONG StartElement,
  19185         LONG Elements,
  19186         ISpeechPhraseAlternates **Alternates);
  19187 
  19188     HRESULT (STDMETHODCALLTYPE *Audio)(
  19189         ISpeechRecoResultDispatch *This,
  19190         LONG StartElement,
  19191         LONG Elements,
  19192         ISpeechMemoryStream **Stream);
  19193 
  19194     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
  19195         ISpeechRecoResultDispatch *This,
  19196         LONG StartElement,
  19197         LONG Elements,
  19198         SpeechVoiceSpeakFlags Flags,
  19199         LONG *StreamNumber);
  19200 
  19201     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
  19202         ISpeechRecoResultDispatch *This,
  19203         VARIANT *ResultBlock);
  19204 
  19205     HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
  19206         ISpeechRecoResultDispatch *This,
  19207         SpeechDiscardType ValueTypes);
  19208 
  19209     HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
  19210         ISpeechRecoResultDispatch *This,
  19211         SPXMLRESULTOPTIONS Options,
  19212         BSTR *pResult);
  19213 
  19214     HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
  19215         ISpeechRecoResultDispatch *This,
  19216         LONG *LineNumber,
  19217         BSTR *ScriptLine,
  19218         BSTR *Source,
  19219         BSTR *Description,
  19220         HRESULT *ResultCode,
  19221         VARIANT_BOOL *IsError);
  19222 
  19223     HRESULT (STDMETHODCALLTYPE *SetTextFeedback)(
  19224         ISpeechRecoResultDispatch *This,
  19225         BSTR Feedback,
  19226         VARIANT_BOOL WasSuccessful);
  19227 
  19228     END_INTERFACE
  19229 } ISpeechRecoResultDispatchVtbl;
  19230 
  19231 interface ISpeechRecoResultDispatch {
  19232     CONST_VTBL ISpeechRecoResultDispatchVtbl* lpVtbl;
  19233 };
  19234 
  19235 #ifdef COBJMACROS
  19236 #ifndef WIDL_C_INLINE_WRAPPERS
  19237 /*** IUnknown methods ***/
  19238 #define ISpeechRecoResultDispatch_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  19239 #define ISpeechRecoResultDispatch_AddRef(This) (This)->lpVtbl->AddRef(This)
  19240 #define ISpeechRecoResultDispatch_Release(This) (This)->lpVtbl->Release(This)
  19241 /*** IDispatch methods ***/
  19242 #define ISpeechRecoResultDispatch_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  19243 #define ISpeechRecoResultDispatch_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  19244 #define ISpeechRecoResultDispatch_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  19245 #define ISpeechRecoResultDispatch_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  19246 /*** ISpeechRecoResultDispatch methods ***/
  19247 #define ISpeechRecoResultDispatch_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
  19248 #define ISpeechRecoResultDispatch_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
  19249 #define ISpeechRecoResultDispatch_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
  19250 #define ISpeechRecoResultDispatch_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
  19251 #define ISpeechRecoResultDispatch_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
  19252 #define ISpeechRecoResultDispatch_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
  19253 #define ISpeechRecoResultDispatch_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
  19254 #define ISpeechRecoResultDispatch_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
  19255 #define ISpeechRecoResultDispatch_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
  19256 #define ISpeechRecoResultDispatch_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
  19257 #define ISpeechRecoResultDispatch_GetXMLResult(This,Options,pResult) (This)->lpVtbl->GetXMLResult(This,Options,pResult)
  19258 #define ISpeechRecoResultDispatch_GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError) (This)->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError)
  19259 #define ISpeechRecoResultDispatch_SetTextFeedback(This,Feedback,WasSuccessful) (This)->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful)
  19260 #else
  19261 /*** IUnknown methods ***/
  19262 static inline HRESULT ISpeechRecoResultDispatch_QueryInterface(ISpeechRecoResultDispatch* This,REFIID riid,void **ppvObject) {
  19263     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  19264 }
  19265 static inline ULONG ISpeechRecoResultDispatch_AddRef(ISpeechRecoResultDispatch* This) {
  19266     return This->lpVtbl->AddRef(This);
  19267 }
  19268 static inline ULONG ISpeechRecoResultDispatch_Release(ISpeechRecoResultDispatch* This) {
  19269     return This->lpVtbl->Release(This);
  19270 }
  19271 /*** IDispatch methods ***/
  19272 static inline HRESULT ISpeechRecoResultDispatch_GetTypeInfoCount(ISpeechRecoResultDispatch* This,UINT *pctinfo) {
  19273     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  19274 }
  19275 static inline HRESULT ISpeechRecoResultDispatch_GetTypeInfo(ISpeechRecoResultDispatch* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  19276     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  19277 }
  19278 static inline HRESULT ISpeechRecoResultDispatch_GetIDsOfNames(ISpeechRecoResultDispatch* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  19279     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  19280 }
  19281 static inline HRESULT ISpeechRecoResultDispatch_Invoke(ISpeechRecoResultDispatch* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  19282     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  19283 }
  19284 /*** ISpeechRecoResultDispatch methods ***/
  19285 static inline HRESULT ISpeechRecoResultDispatch_get_RecoContext(ISpeechRecoResultDispatch* This,ISpeechRecoContext **RecoContext) {
  19286     return This->lpVtbl->get_RecoContext(This,RecoContext);
  19287 }
  19288 static inline HRESULT ISpeechRecoResultDispatch_get_Times(ISpeechRecoResultDispatch* This,ISpeechRecoResultTimes **Times) {
  19289     return This->lpVtbl->get_Times(This,Times);
  19290 }
  19291 static inline HRESULT ISpeechRecoResultDispatch_putref_AudioFormat(ISpeechRecoResultDispatch* This,ISpeechAudioFormat *Format) {
  19292     return This->lpVtbl->putref_AudioFormat(This,Format);
  19293 }
  19294 static inline HRESULT ISpeechRecoResultDispatch_get_AudioFormat(ISpeechRecoResultDispatch* This,ISpeechAudioFormat **Format) {
  19295     return This->lpVtbl->get_AudioFormat(This,Format);
  19296 }
  19297 static inline HRESULT ISpeechRecoResultDispatch_get_PhraseInfo(ISpeechRecoResultDispatch* This,ISpeechPhraseInfo **PhraseInfo) {
  19298     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
  19299 }
  19300 static inline HRESULT ISpeechRecoResultDispatch_Alternates(ISpeechRecoResultDispatch* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
  19301     return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
  19302 }
  19303 static inline HRESULT ISpeechRecoResultDispatch_Audio(ISpeechRecoResultDispatch* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
  19304     return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
  19305 }
  19306 static inline HRESULT ISpeechRecoResultDispatch_SpeakAudio(ISpeechRecoResultDispatch* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
  19307     return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
  19308 }
  19309 static inline HRESULT ISpeechRecoResultDispatch_SaveToMemory(ISpeechRecoResultDispatch* This,VARIANT *ResultBlock) {
  19310     return This->lpVtbl->SaveToMemory(This,ResultBlock);
  19311 }
  19312 static inline HRESULT ISpeechRecoResultDispatch_DiscardResultInfo(ISpeechRecoResultDispatch* This,SpeechDiscardType ValueTypes) {
  19313     return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
  19314 }
  19315 static inline HRESULT ISpeechRecoResultDispatch_GetXMLResult(ISpeechRecoResultDispatch* This,SPXMLRESULTOPTIONS Options,BSTR *pResult) {
  19316     return This->lpVtbl->GetXMLResult(This,Options,pResult);
  19317 }
  19318 static inline HRESULT ISpeechRecoResultDispatch_GetXMLErrorInfo(ISpeechRecoResultDispatch* This,LONG *LineNumber,BSTR *ScriptLine,BSTR *Source,BSTR *Description,HRESULT *ResultCode,VARIANT_BOOL *IsError) {
  19319     return This->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError);
  19320 }
  19321 static inline HRESULT ISpeechRecoResultDispatch_SetTextFeedback(ISpeechRecoResultDispatch* This,BSTR Feedback,VARIANT_BOOL WasSuccessful) {
  19322     return This->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful);
  19323 }
  19324 #endif
  19325 #endif
  19326 
  19327 #endif
  19328 
  19329 
  19330 #endif  /* __ISpeechRecoResultDispatch_INTERFACE_DEFINED__ */
  19331 
  19332 /*****************************************************************************
  19333  * ISpeechPhraseInfoBuilder interface
  19334  */
  19335 #ifndef __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__
  19336 #define __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__
  19337 
  19338 DEFINE_GUID(IID_ISpeechPhraseInfoBuilder, 0x3b151836, 0xdf3a, 0x4e0a, 0x84,0x6c, 0xd2,0xad,0xc9,0x33,0x43,0x33);
  19339 #if defined(__cplusplus) && !defined(CINTERFACE)
  19340 MIDL_INTERFACE("3b151836-df3a-4e0a-846c-d2adc9334333")
  19341 ISpeechPhraseInfoBuilder : public IDispatch
  19342 {
  19343     virtual HRESULT STDMETHODCALLTYPE RestorePhraseFromMemory(
  19344         VARIANT *PhraseInMemory,
  19345         ISpeechPhraseInfo **PhraseInfo) = 0;
  19346 
  19347 };
  19348 #ifdef __CRT_UUID_DECL
  19349 __CRT_UUID_DECL(ISpeechPhraseInfoBuilder, 0x3b151836, 0xdf3a, 0x4e0a, 0x84,0x6c, 0xd2,0xad,0xc9,0x33,0x43,0x33)
  19350 #endif
  19351 #else
  19352 typedef struct ISpeechPhraseInfoBuilderVtbl {
  19353     BEGIN_INTERFACE
  19354 
  19355     /*** IUnknown methods ***/
  19356     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  19357         ISpeechPhraseInfoBuilder *This,
  19358         REFIID riid,
  19359         void **ppvObject);
  19360 
  19361     ULONG (STDMETHODCALLTYPE *AddRef)(
  19362         ISpeechPhraseInfoBuilder *This);
  19363 
  19364     ULONG (STDMETHODCALLTYPE *Release)(
  19365         ISpeechPhraseInfoBuilder *This);
  19366 
  19367     /*** IDispatch methods ***/
  19368     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  19369         ISpeechPhraseInfoBuilder *This,
  19370         UINT *pctinfo);
  19371 
  19372     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  19373         ISpeechPhraseInfoBuilder *This,
  19374         UINT iTInfo,
  19375         LCID lcid,
  19376         ITypeInfo **ppTInfo);
  19377 
  19378     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  19379         ISpeechPhraseInfoBuilder *This,
  19380         REFIID riid,
  19381         LPOLESTR *rgszNames,
  19382         UINT cNames,
  19383         LCID lcid,
  19384         DISPID *rgDispId);
  19385 
  19386     HRESULT (STDMETHODCALLTYPE *Invoke)(
  19387         ISpeechPhraseInfoBuilder *This,
  19388         DISPID dispIdMember,
  19389         REFIID riid,
  19390         LCID lcid,
  19391         WORD wFlags,
  19392         DISPPARAMS *pDispParams,
  19393         VARIANT *pVarResult,
  19394         EXCEPINFO *pExcepInfo,
  19395         UINT *puArgErr);
  19396 
  19397     /*** ISpeechPhraseInfoBuilder methods ***/
  19398     HRESULT (STDMETHODCALLTYPE *RestorePhraseFromMemory)(
  19399         ISpeechPhraseInfoBuilder *This,
  19400         VARIANT *PhraseInMemory,
  19401         ISpeechPhraseInfo **PhraseInfo);
  19402 
  19403     END_INTERFACE
  19404 } ISpeechPhraseInfoBuilderVtbl;
  19405 
  19406 interface ISpeechPhraseInfoBuilder {
  19407     CONST_VTBL ISpeechPhraseInfoBuilderVtbl* lpVtbl;
  19408 };
  19409 
  19410 #ifdef COBJMACROS
  19411 #ifndef WIDL_C_INLINE_WRAPPERS
  19412 /*** IUnknown methods ***/
  19413 #define ISpeechPhraseInfoBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  19414 #define ISpeechPhraseInfoBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
  19415 #define ISpeechPhraseInfoBuilder_Release(This) (This)->lpVtbl->Release(This)
  19416 /*** IDispatch methods ***/
  19417 #define ISpeechPhraseInfoBuilder_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  19418 #define ISpeechPhraseInfoBuilder_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  19419 #define ISpeechPhraseInfoBuilder_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  19420 #define ISpeechPhraseInfoBuilder_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  19421 /*** ISpeechPhraseInfoBuilder methods ***/
  19422 #define ISpeechPhraseInfoBuilder_RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo) (This)->lpVtbl->RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo)
  19423 #else
  19424 /*** IUnknown methods ***/
  19425 static inline HRESULT ISpeechPhraseInfoBuilder_QueryInterface(ISpeechPhraseInfoBuilder* This,REFIID riid,void **ppvObject) {
  19426     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  19427 }
  19428 static inline ULONG ISpeechPhraseInfoBuilder_AddRef(ISpeechPhraseInfoBuilder* This) {
  19429     return This->lpVtbl->AddRef(This);
  19430 }
  19431 static inline ULONG ISpeechPhraseInfoBuilder_Release(ISpeechPhraseInfoBuilder* This) {
  19432     return This->lpVtbl->Release(This);
  19433 }
  19434 /*** IDispatch methods ***/
  19435 static inline HRESULT ISpeechPhraseInfoBuilder_GetTypeInfoCount(ISpeechPhraseInfoBuilder* This,UINT *pctinfo) {
  19436     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  19437 }
  19438 static inline HRESULT ISpeechPhraseInfoBuilder_GetTypeInfo(ISpeechPhraseInfoBuilder* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  19439     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  19440 }
  19441 static inline HRESULT ISpeechPhraseInfoBuilder_GetIDsOfNames(ISpeechPhraseInfoBuilder* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  19442     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  19443 }
  19444 static inline HRESULT ISpeechPhraseInfoBuilder_Invoke(ISpeechPhraseInfoBuilder* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  19445     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  19446 }
  19447 /*** ISpeechPhraseInfoBuilder methods ***/
  19448 static inline HRESULT ISpeechPhraseInfoBuilder_RestorePhraseFromMemory(ISpeechPhraseInfoBuilder* This,VARIANT *PhraseInMemory,ISpeechPhraseInfo **PhraseInfo) {
  19449     return This->lpVtbl->RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo);
  19450 }
  19451 #endif
  19452 #endif
  19453 
  19454 #endif
  19455 
  19456 
  19457 #endif  /* __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__ */
  19458 
  19459 /*****************************************************************************
  19460  * ISpeechRecoResultTimes interface
  19461  */
  19462 #ifndef __ISpeechRecoResultTimes_INTERFACE_DEFINED__
  19463 #define __ISpeechRecoResultTimes_INTERFACE_DEFINED__
  19464 
  19465 DEFINE_GUID(IID_ISpeechRecoResultTimes, 0x62b3b8fb, 0xf6e7, 0x41be, 0xbd,0xcb, 0x05,0x6b,0x1c,0x29,0xef,0xc0);
  19466 #if defined(__cplusplus) && !defined(CINTERFACE)
  19467 MIDL_INTERFACE("62b3b8fb-f6e7-41be-bdcb-056b1c29efc0")
  19468 ISpeechRecoResultTimes : public IDispatch
  19469 {
  19470     virtual HRESULT STDMETHODCALLTYPE get_StreamTime(
  19471         VARIANT *Time) = 0;
  19472 
  19473     virtual HRESULT STDMETHODCALLTYPE get_Length(
  19474         VARIANT *Length) = 0;
  19475 
  19476     virtual HRESULT STDMETHODCALLTYPE get_TickCount(
  19477         LONG *TickCount) = 0;
  19478 
  19479     virtual HRESULT STDMETHODCALLTYPE get_OffsetFromStart(
  19480         VARIANT *OffsetFromStart) = 0;
  19481 
  19482 };
  19483 #ifdef __CRT_UUID_DECL
  19484 __CRT_UUID_DECL(ISpeechRecoResultTimes, 0x62b3b8fb, 0xf6e7, 0x41be, 0xbd,0xcb, 0x05,0x6b,0x1c,0x29,0xef,0xc0)
  19485 #endif
  19486 #else
  19487 typedef struct ISpeechRecoResultTimesVtbl {
  19488     BEGIN_INTERFACE
  19489 
  19490     /*** IUnknown methods ***/
  19491     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  19492         ISpeechRecoResultTimes *This,
  19493         REFIID riid,
  19494         void **ppvObject);
  19495 
  19496     ULONG (STDMETHODCALLTYPE *AddRef)(
  19497         ISpeechRecoResultTimes *This);
  19498 
  19499     ULONG (STDMETHODCALLTYPE *Release)(
  19500         ISpeechRecoResultTimes *This);
  19501 
  19502     /*** IDispatch methods ***/
  19503     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  19504         ISpeechRecoResultTimes *This,
  19505         UINT *pctinfo);
  19506 
  19507     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  19508         ISpeechRecoResultTimes *This,
  19509         UINT iTInfo,
  19510         LCID lcid,
  19511         ITypeInfo **ppTInfo);
  19512 
  19513     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  19514         ISpeechRecoResultTimes *This,
  19515         REFIID riid,
  19516         LPOLESTR *rgszNames,
  19517         UINT cNames,
  19518         LCID lcid,
  19519         DISPID *rgDispId);
  19520 
  19521     HRESULT (STDMETHODCALLTYPE *Invoke)(
  19522         ISpeechRecoResultTimes *This,
  19523         DISPID dispIdMember,
  19524         REFIID riid,
  19525         LCID lcid,
  19526         WORD wFlags,
  19527         DISPPARAMS *pDispParams,
  19528         VARIANT *pVarResult,
  19529         EXCEPINFO *pExcepInfo,
  19530         UINT *puArgErr);
  19531 
  19532     /*** ISpeechRecoResultTimes methods ***/
  19533     HRESULT (STDMETHODCALLTYPE *get_StreamTime)(
  19534         ISpeechRecoResultTimes *This,
  19535         VARIANT *Time);
  19536 
  19537     HRESULT (STDMETHODCALLTYPE *get_Length)(
  19538         ISpeechRecoResultTimes *This,
  19539         VARIANT *Length);
  19540 
  19541     HRESULT (STDMETHODCALLTYPE *get_TickCount)(
  19542         ISpeechRecoResultTimes *This,
  19543         LONG *TickCount);
  19544 
  19545     HRESULT (STDMETHODCALLTYPE *get_OffsetFromStart)(
  19546         ISpeechRecoResultTimes *This,
  19547         VARIANT *OffsetFromStart);
  19548 
  19549     END_INTERFACE
  19550 } ISpeechRecoResultTimesVtbl;
  19551 
  19552 interface ISpeechRecoResultTimes {
  19553     CONST_VTBL ISpeechRecoResultTimesVtbl* lpVtbl;
  19554 };
  19555 
  19556 #ifdef COBJMACROS
  19557 #ifndef WIDL_C_INLINE_WRAPPERS
  19558 /*** IUnknown methods ***/
  19559 #define ISpeechRecoResultTimes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  19560 #define ISpeechRecoResultTimes_AddRef(This) (This)->lpVtbl->AddRef(This)
  19561 #define ISpeechRecoResultTimes_Release(This) (This)->lpVtbl->Release(This)
  19562 /*** IDispatch methods ***/
  19563 #define ISpeechRecoResultTimes_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  19564 #define ISpeechRecoResultTimes_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  19565 #define ISpeechRecoResultTimes_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  19566 #define ISpeechRecoResultTimes_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  19567 /*** ISpeechRecoResultTimes methods ***/
  19568 #define ISpeechRecoResultTimes_get_StreamTime(This,Time) (This)->lpVtbl->get_StreamTime(This,Time)
  19569 #define ISpeechRecoResultTimes_get_Length(This,Length) (This)->lpVtbl->get_Length(This,Length)
  19570 #define ISpeechRecoResultTimes_get_TickCount(This,TickCount) (This)->lpVtbl->get_TickCount(This,TickCount)
  19571 #define ISpeechRecoResultTimes_get_OffsetFromStart(This,OffsetFromStart) (This)->lpVtbl->get_OffsetFromStart(This,OffsetFromStart)
  19572 #else
  19573 /*** IUnknown methods ***/
  19574 static inline HRESULT ISpeechRecoResultTimes_QueryInterface(ISpeechRecoResultTimes* This,REFIID riid,void **ppvObject) {
  19575     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  19576 }
  19577 static inline ULONG ISpeechRecoResultTimes_AddRef(ISpeechRecoResultTimes* This) {
  19578     return This->lpVtbl->AddRef(This);
  19579 }
  19580 static inline ULONG ISpeechRecoResultTimes_Release(ISpeechRecoResultTimes* This) {
  19581     return This->lpVtbl->Release(This);
  19582 }
  19583 /*** IDispatch methods ***/
  19584 static inline HRESULT ISpeechRecoResultTimes_GetTypeInfoCount(ISpeechRecoResultTimes* This,UINT *pctinfo) {
  19585     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  19586 }
  19587 static inline HRESULT ISpeechRecoResultTimes_GetTypeInfo(ISpeechRecoResultTimes* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  19588     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  19589 }
  19590 static inline HRESULT ISpeechRecoResultTimes_GetIDsOfNames(ISpeechRecoResultTimes* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  19591     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  19592 }
  19593 static inline HRESULT ISpeechRecoResultTimes_Invoke(ISpeechRecoResultTimes* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  19594     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  19595 }
  19596 /*** ISpeechRecoResultTimes methods ***/
  19597 static inline HRESULT ISpeechRecoResultTimes_get_StreamTime(ISpeechRecoResultTimes* This,VARIANT *Time) {
  19598     return This->lpVtbl->get_StreamTime(This,Time);
  19599 }
  19600 static inline HRESULT ISpeechRecoResultTimes_get_Length(ISpeechRecoResultTimes* This,VARIANT *Length) {
  19601     return This->lpVtbl->get_Length(This,Length);
  19602 }
  19603 static inline HRESULT ISpeechRecoResultTimes_get_TickCount(ISpeechRecoResultTimes* This,LONG *TickCount) {
  19604     return This->lpVtbl->get_TickCount(This,TickCount);
  19605 }
  19606 static inline HRESULT ISpeechRecoResultTimes_get_OffsetFromStart(ISpeechRecoResultTimes* This,VARIANT *OffsetFromStart) {
  19607     return This->lpVtbl->get_OffsetFromStart(This,OffsetFromStart);
  19608 }
  19609 #endif
  19610 #endif
  19611 
  19612 #endif
  19613 
  19614 
  19615 #endif  /* __ISpeechRecoResultTimes_INTERFACE_DEFINED__ */
  19616 
  19617 /*****************************************************************************
  19618  * ISpeechPhraseAlternate interface
  19619  */
  19620 #ifndef __ISpeechPhraseAlternate_INTERFACE_DEFINED__
  19621 #define __ISpeechPhraseAlternate_INTERFACE_DEFINED__
  19622 
  19623 DEFINE_GUID(IID_ISpeechPhraseAlternate, 0x27864a2a, 0x2b9f, 0x4cb8, 0x92,0xd3, 0x0d,0x27,0x22,0xfd,0x1e,0x73);
  19624 #if defined(__cplusplus) && !defined(CINTERFACE)
  19625 MIDL_INTERFACE("27864a2a-2b9f-4cb8-92d3-0d2722fd1e73")
  19626 ISpeechPhraseAlternate : public IDispatch
  19627 {
  19628     virtual HRESULT STDMETHODCALLTYPE get_RecoResult(
  19629         ISpeechRecoResult **RecoResult) = 0;
  19630 
  19631     virtual HRESULT STDMETHODCALLTYPE get_StartElementInResult(
  19632         LONG *StartElement) = 0;
  19633 
  19634     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElementsInResult(
  19635         LONG *NumberOfElements) = 0;
  19636 
  19637     virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
  19638         ISpeechPhraseInfo **PhraseInfo) = 0;
  19639 
  19640     virtual HRESULT STDMETHODCALLTYPE Commit(
  19641         ) = 0;
  19642 
  19643 };
  19644 #ifdef __CRT_UUID_DECL
  19645 __CRT_UUID_DECL(ISpeechPhraseAlternate, 0x27864a2a, 0x2b9f, 0x4cb8, 0x92,0xd3, 0x0d,0x27,0x22,0xfd,0x1e,0x73)
  19646 #endif
  19647 #else
  19648 typedef struct ISpeechPhraseAlternateVtbl {
  19649     BEGIN_INTERFACE
  19650 
  19651     /*** IUnknown methods ***/
  19652     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  19653         ISpeechPhraseAlternate *This,
  19654         REFIID riid,
  19655         void **ppvObject);
  19656 
  19657     ULONG (STDMETHODCALLTYPE *AddRef)(
  19658         ISpeechPhraseAlternate *This);
  19659 
  19660     ULONG (STDMETHODCALLTYPE *Release)(
  19661         ISpeechPhraseAlternate *This);
  19662 
  19663     /*** IDispatch methods ***/
  19664     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  19665         ISpeechPhraseAlternate *This,
  19666         UINT *pctinfo);
  19667 
  19668     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  19669         ISpeechPhraseAlternate *This,
  19670         UINT iTInfo,
  19671         LCID lcid,
  19672         ITypeInfo **ppTInfo);
  19673 
  19674     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  19675         ISpeechPhraseAlternate *This,
  19676         REFIID riid,
  19677         LPOLESTR *rgszNames,
  19678         UINT cNames,
  19679         LCID lcid,
  19680         DISPID *rgDispId);
  19681 
  19682     HRESULT (STDMETHODCALLTYPE *Invoke)(
  19683         ISpeechPhraseAlternate *This,
  19684         DISPID dispIdMember,
  19685         REFIID riid,
  19686         LCID lcid,
  19687         WORD wFlags,
  19688         DISPPARAMS *pDispParams,
  19689         VARIANT *pVarResult,
  19690         EXCEPINFO *pExcepInfo,
  19691         UINT *puArgErr);
  19692 
  19693     /*** ISpeechPhraseAlternate methods ***/
  19694     HRESULT (STDMETHODCALLTYPE *get_RecoResult)(
  19695         ISpeechPhraseAlternate *This,
  19696         ISpeechRecoResult **RecoResult);
  19697 
  19698     HRESULT (STDMETHODCALLTYPE *get_StartElementInResult)(
  19699         ISpeechPhraseAlternate *This,
  19700         LONG *StartElement);
  19701 
  19702     HRESULT (STDMETHODCALLTYPE *get_NumberOfElementsInResult)(
  19703         ISpeechPhraseAlternate *This,
  19704         LONG *NumberOfElements);
  19705 
  19706     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
  19707         ISpeechPhraseAlternate *This,
  19708         ISpeechPhraseInfo **PhraseInfo);
  19709 
  19710     HRESULT (STDMETHODCALLTYPE *Commit)(
  19711         ISpeechPhraseAlternate *This);
  19712 
  19713     END_INTERFACE
  19714 } ISpeechPhraseAlternateVtbl;
  19715 
  19716 interface ISpeechPhraseAlternate {
  19717     CONST_VTBL ISpeechPhraseAlternateVtbl* lpVtbl;
  19718 };
  19719 
  19720 #ifdef COBJMACROS
  19721 #ifndef WIDL_C_INLINE_WRAPPERS
  19722 /*** IUnknown methods ***/
  19723 #define ISpeechPhraseAlternate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  19724 #define ISpeechPhraseAlternate_AddRef(This) (This)->lpVtbl->AddRef(This)
  19725 #define ISpeechPhraseAlternate_Release(This) (This)->lpVtbl->Release(This)
  19726 /*** IDispatch methods ***/
  19727 #define ISpeechPhraseAlternate_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  19728 #define ISpeechPhraseAlternate_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  19729 #define ISpeechPhraseAlternate_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  19730 #define ISpeechPhraseAlternate_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  19731 /*** ISpeechPhraseAlternate methods ***/
  19732 #define ISpeechPhraseAlternate_get_RecoResult(This,RecoResult) (This)->lpVtbl->get_RecoResult(This,RecoResult)
  19733 #define ISpeechPhraseAlternate_get_StartElementInResult(This,StartElement) (This)->lpVtbl->get_StartElementInResult(This,StartElement)
  19734 #define ISpeechPhraseAlternate_get_NumberOfElementsInResult(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElementsInResult(This,NumberOfElements)
  19735 #define ISpeechPhraseAlternate_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
  19736 #define ISpeechPhraseAlternate_Commit(This) (This)->lpVtbl->Commit(This)
  19737 #else
  19738 /*** IUnknown methods ***/
  19739 static inline HRESULT ISpeechPhraseAlternate_QueryInterface(ISpeechPhraseAlternate* This,REFIID riid,void **ppvObject) {
  19740     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  19741 }
  19742 static inline ULONG ISpeechPhraseAlternate_AddRef(ISpeechPhraseAlternate* This) {
  19743     return This->lpVtbl->AddRef(This);
  19744 }
  19745 static inline ULONG ISpeechPhraseAlternate_Release(ISpeechPhraseAlternate* This) {
  19746     return This->lpVtbl->Release(This);
  19747 }
  19748 /*** IDispatch methods ***/
  19749 static inline HRESULT ISpeechPhraseAlternate_GetTypeInfoCount(ISpeechPhraseAlternate* This,UINT *pctinfo) {
  19750     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  19751 }
  19752 static inline HRESULT ISpeechPhraseAlternate_GetTypeInfo(ISpeechPhraseAlternate* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  19753     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  19754 }
  19755 static inline HRESULT ISpeechPhraseAlternate_GetIDsOfNames(ISpeechPhraseAlternate* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  19756     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  19757 }
  19758 static inline HRESULT ISpeechPhraseAlternate_Invoke(ISpeechPhraseAlternate* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  19759     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  19760 }
  19761 /*** ISpeechPhraseAlternate methods ***/
  19762 static inline HRESULT ISpeechPhraseAlternate_get_RecoResult(ISpeechPhraseAlternate* This,ISpeechRecoResult **RecoResult) {
  19763     return This->lpVtbl->get_RecoResult(This,RecoResult);
  19764 }
  19765 static inline HRESULT ISpeechPhraseAlternate_get_StartElementInResult(ISpeechPhraseAlternate* This,LONG *StartElement) {
  19766     return This->lpVtbl->get_StartElementInResult(This,StartElement);
  19767 }
  19768 static inline HRESULT ISpeechPhraseAlternate_get_NumberOfElementsInResult(ISpeechPhraseAlternate* This,LONG *NumberOfElements) {
  19769     return This->lpVtbl->get_NumberOfElementsInResult(This,NumberOfElements);
  19770 }
  19771 static inline HRESULT ISpeechPhraseAlternate_get_PhraseInfo(ISpeechPhraseAlternate* This,ISpeechPhraseInfo **PhraseInfo) {
  19772     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
  19773 }
  19774 static inline HRESULT ISpeechPhraseAlternate_Commit(ISpeechPhraseAlternate* This) {
  19775     return This->lpVtbl->Commit(This);
  19776 }
  19777 #endif
  19778 #endif
  19779 
  19780 #endif
  19781 
  19782 
  19783 #endif  /* __ISpeechPhraseAlternate_INTERFACE_DEFINED__ */
  19784 
  19785 /*****************************************************************************
  19786  * ISpeechPhraseAlternates interface
  19787  */
  19788 #ifndef __ISpeechPhraseAlternates_INTERFACE_DEFINED__
  19789 #define __ISpeechPhraseAlternates_INTERFACE_DEFINED__
  19790 
  19791 DEFINE_GUID(IID_ISpeechPhraseAlternates, 0xb238b6d5, 0xf276, 0x4c3d, 0xa6,0xc1, 0x29,0x74,0x80,0x1c,0x3c,0xc2);
  19792 #if defined(__cplusplus) && !defined(CINTERFACE)
  19793 MIDL_INTERFACE("b238b6d5-f276-4c3d-a6c1-2974801c3cc2")
  19794 ISpeechPhraseAlternates : public IDispatch
  19795 {
  19796     virtual HRESULT STDMETHODCALLTYPE get_Count(
  19797         LONG *Count) = 0;
  19798 
  19799     virtual HRESULT STDMETHODCALLTYPE Item(
  19800         LONG Index,
  19801         ISpeechPhraseAlternate **PhraseAlternate) = 0;
  19802 
  19803     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
  19804         IUnknown **EnumVARIANT) = 0;
  19805 
  19806 };
  19807 #ifdef __CRT_UUID_DECL
  19808 __CRT_UUID_DECL(ISpeechPhraseAlternates, 0xb238b6d5, 0xf276, 0x4c3d, 0xa6,0xc1, 0x29,0x74,0x80,0x1c,0x3c,0xc2)
  19809 #endif
  19810 #else
  19811 typedef struct ISpeechPhraseAlternatesVtbl {
  19812     BEGIN_INTERFACE
  19813 
  19814     /*** IUnknown methods ***/
  19815     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  19816         ISpeechPhraseAlternates *This,
  19817         REFIID riid,
  19818         void **ppvObject);
  19819 
  19820     ULONG (STDMETHODCALLTYPE *AddRef)(
  19821         ISpeechPhraseAlternates *This);
  19822 
  19823     ULONG (STDMETHODCALLTYPE *Release)(
  19824         ISpeechPhraseAlternates *This);
  19825 
  19826     /*** IDispatch methods ***/
  19827     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  19828         ISpeechPhraseAlternates *This,
  19829         UINT *pctinfo);
  19830 
  19831     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  19832         ISpeechPhraseAlternates *This,
  19833         UINT iTInfo,
  19834         LCID lcid,
  19835         ITypeInfo **ppTInfo);
  19836 
  19837     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  19838         ISpeechPhraseAlternates *This,
  19839         REFIID riid,
  19840         LPOLESTR *rgszNames,
  19841         UINT cNames,
  19842         LCID lcid,
  19843         DISPID *rgDispId);
  19844 
  19845     HRESULT (STDMETHODCALLTYPE *Invoke)(
  19846         ISpeechPhraseAlternates *This,
  19847         DISPID dispIdMember,
  19848         REFIID riid,
  19849         LCID lcid,
  19850         WORD wFlags,
  19851         DISPPARAMS *pDispParams,
  19852         VARIANT *pVarResult,
  19853         EXCEPINFO *pExcepInfo,
  19854         UINT *puArgErr);
  19855 
  19856     /*** ISpeechPhraseAlternates methods ***/
  19857     HRESULT (STDMETHODCALLTYPE *get_Count)(
  19858         ISpeechPhraseAlternates *This,
  19859         LONG *Count);
  19860 
  19861     HRESULT (STDMETHODCALLTYPE *Item)(
  19862         ISpeechPhraseAlternates *This,
  19863         LONG Index,
  19864         ISpeechPhraseAlternate **PhraseAlternate);
  19865 
  19866     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
  19867         ISpeechPhraseAlternates *This,
  19868         IUnknown **EnumVARIANT);
  19869 
  19870     END_INTERFACE
  19871 } ISpeechPhraseAlternatesVtbl;
  19872 
  19873 interface ISpeechPhraseAlternates {
  19874     CONST_VTBL ISpeechPhraseAlternatesVtbl* lpVtbl;
  19875 };
  19876 
  19877 #ifdef COBJMACROS
  19878 #ifndef WIDL_C_INLINE_WRAPPERS
  19879 /*** IUnknown methods ***/
  19880 #define ISpeechPhraseAlternates_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  19881 #define ISpeechPhraseAlternates_AddRef(This) (This)->lpVtbl->AddRef(This)
  19882 #define ISpeechPhraseAlternates_Release(This) (This)->lpVtbl->Release(This)
  19883 /*** IDispatch methods ***/
  19884 #define ISpeechPhraseAlternates_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  19885 #define ISpeechPhraseAlternates_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  19886 #define ISpeechPhraseAlternates_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  19887 #define ISpeechPhraseAlternates_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  19888 /*** ISpeechPhraseAlternates methods ***/
  19889 #define ISpeechPhraseAlternates_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
  19890 #define ISpeechPhraseAlternates_Item(This,Index,PhraseAlternate) (This)->lpVtbl->Item(This,Index,PhraseAlternate)
  19891 #define ISpeechPhraseAlternates_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
  19892 #else
  19893 /*** IUnknown methods ***/
  19894 static inline HRESULT ISpeechPhraseAlternates_QueryInterface(ISpeechPhraseAlternates* This,REFIID riid,void **ppvObject) {
  19895     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  19896 }
  19897 static inline ULONG ISpeechPhraseAlternates_AddRef(ISpeechPhraseAlternates* This) {
  19898     return This->lpVtbl->AddRef(This);
  19899 }
  19900 static inline ULONG ISpeechPhraseAlternates_Release(ISpeechPhraseAlternates* This) {
  19901     return This->lpVtbl->Release(This);
  19902 }
  19903 /*** IDispatch methods ***/
  19904 static inline HRESULT ISpeechPhraseAlternates_GetTypeInfoCount(ISpeechPhraseAlternates* This,UINT *pctinfo) {
  19905     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  19906 }
  19907 static inline HRESULT ISpeechPhraseAlternates_GetTypeInfo(ISpeechPhraseAlternates* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  19908     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  19909 }
  19910 static inline HRESULT ISpeechPhraseAlternates_GetIDsOfNames(ISpeechPhraseAlternates* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  19911     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  19912 }
  19913 static inline HRESULT ISpeechPhraseAlternates_Invoke(ISpeechPhraseAlternates* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  19914     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  19915 }
  19916 /*** ISpeechPhraseAlternates methods ***/
  19917 static inline HRESULT ISpeechPhraseAlternates_get_Count(ISpeechPhraseAlternates* This,LONG *Count) {
  19918     return This->lpVtbl->get_Count(This,Count);
  19919 }
  19920 static inline HRESULT ISpeechPhraseAlternates_Item(ISpeechPhraseAlternates* This,LONG Index,ISpeechPhraseAlternate **PhraseAlternate) {
  19921     return This->lpVtbl->Item(This,Index,PhraseAlternate);
  19922 }
  19923 static inline HRESULT ISpeechPhraseAlternates_get__NewEnum(ISpeechPhraseAlternates* This,IUnknown **EnumVARIANT) {
  19924     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
  19925 }
  19926 #endif
  19927 #endif
  19928 
  19929 #endif
  19930 
  19931 
  19932 #endif  /* __ISpeechPhraseAlternates_INTERFACE_DEFINED__ */
  19933 
  19934 /*****************************************************************************
  19935  * ISpeechPhraseInfo interface
  19936  */
  19937 #ifndef __ISpeechPhraseInfo_INTERFACE_DEFINED__
  19938 #define __ISpeechPhraseInfo_INTERFACE_DEFINED__
  19939 
  19940 DEFINE_GUID(IID_ISpeechPhraseInfo, 0x961559cf, 0x4e67, 0x4662, 0x8b,0xf0, 0xd9,0x3f,0x1f,0xcd,0x61,0xb3);
  19941 #if defined(__cplusplus) && !defined(CINTERFACE)
  19942 MIDL_INTERFACE("961559cf-4e67-4662-8bf0-d93f1fcd61b3")
  19943 ISpeechPhraseInfo : public IDispatch
  19944 {
  19945     virtual HRESULT STDMETHODCALLTYPE get_LanguageId(
  19946         LONG *LanguageId) = 0;
  19947 
  19948     virtual HRESULT STDMETHODCALLTYPE get_GrammarId(
  19949         VARIANT *GrammarId) = 0;
  19950 
  19951     virtual HRESULT STDMETHODCALLTYPE get_StartTime(
  19952         VARIANT *StartTime) = 0;
  19953 
  19954     virtual HRESULT STDMETHODCALLTYPE get_AudioStreamPosition(
  19955         VARIANT *AudioStreamPosition) = 0;
  19956 
  19957     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeBytes(
  19958         LONG *pAudioSizeBytes) = 0;
  19959 
  19960     virtual HRESULT STDMETHODCALLTYPE get_RetainedSizeBytes(
  19961         LONG *RetainedSizeBytes) = 0;
  19962 
  19963     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeTime(
  19964         LONG *AudioSizeTime) = 0;
  19965 
  19966     virtual HRESULT STDMETHODCALLTYPE get_Rule(
  19967         ISpeechPhraseRule **Rule) = 0;
  19968 
  19969     virtual HRESULT STDMETHODCALLTYPE get_Properties(
  19970         ISpeechPhraseProperties **Properties) = 0;
  19971 
  19972     virtual HRESULT STDMETHODCALLTYPE get_Elements(
  19973         ISpeechPhraseElements **Elements) = 0;
  19974 
  19975     virtual HRESULT STDMETHODCALLTYPE get_Replacements(
  19976         ISpeechPhraseReplacements **Replacements) = 0;
  19977 
  19978     virtual HRESULT STDMETHODCALLTYPE get_EngineId(
  19979         BSTR *EngineIdGuid) = 0;
  19980 
  19981     virtual HRESULT STDMETHODCALLTYPE get_EnginePrivateData(
  19982         VARIANT *PrivateData) = 0;
  19983 
  19984     virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
  19985         VARIANT *PhraseBlock) = 0;
  19986 
  19987     virtual HRESULT STDMETHODCALLTYPE GetText(
  19988         LONG StartElement,
  19989         LONG Elements,
  19990         VARIANT_BOOL UseReplacements,
  19991         BSTR *Text) = 0;
  19992 
  19993     virtual HRESULT STDMETHODCALLTYPE GetDisplayAttributes(
  19994         LONG StartElement,
  19995         LONG Elements,
  19996         VARIANT_BOOL UseReplacements,
  19997         SpeechDisplayAttributes *DisplayAttributes) = 0;
  19998 
  19999 };
  20000 #ifdef __CRT_UUID_DECL
  20001 __CRT_UUID_DECL(ISpeechPhraseInfo, 0x961559cf, 0x4e67, 0x4662, 0x8b,0xf0, 0xd9,0x3f,0x1f,0xcd,0x61,0xb3)
  20002 #endif
  20003 #else
  20004 typedef struct ISpeechPhraseInfoVtbl {
  20005     BEGIN_INTERFACE
  20006 
  20007     /*** IUnknown methods ***/
  20008     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  20009         ISpeechPhraseInfo *This,
  20010         REFIID riid,
  20011         void **ppvObject);
  20012 
  20013     ULONG (STDMETHODCALLTYPE *AddRef)(
  20014         ISpeechPhraseInfo *This);
  20015 
  20016     ULONG (STDMETHODCALLTYPE *Release)(
  20017         ISpeechPhraseInfo *This);
  20018 
  20019     /*** IDispatch methods ***/
  20020     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  20021         ISpeechPhraseInfo *This,
  20022         UINT *pctinfo);
  20023 
  20024     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  20025         ISpeechPhraseInfo *This,
  20026         UINT iTInfo,
  20027         LCID lcid,
  20028         ITypeInfo **ppTInfo);
  20029 
  20030     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  20031         ISpeechPhraseInfo *This,
  20032         REFIID riid,
  20033         LPOLESTR *rgszNames,
  20034         UINT cNames,
  20035         LCID lcid,
  20036         DISPID *rgDispId);
  20037 
  20038     HRESULT (STDMETHODCALLTYPE *Invoke)(
  20039         ISpeechPhraseInfo *This,
  20040         DISPID dispIdMember,
  20041         REFIID riid,
  20042         LCID lcid,
  20043         WORD wFlags,
  20044         DISPPARAMS *pDispParams,
  20045         VARIANT *pVarResult,
  20046         EXCEPINFO *pExcepInfo,
  20047         UINT *puArgErr);
  20048 
  20049     /*** ISpeechPhraseInfo methods ***/
  20050     HRESULT (STDMETHODCALLTYPE *get_LanguageId)(
  20051         ISpeechPhraseInfo *This,
  20052         LONG *LanguageId);
  20053 
  20054     HRESULT (STDMETHODCALLTYPE *get_GrammarId)(
  20055         ISpeechPhraseInfo *This,
  20056         VARIANT *GrammarId);
  20057 
  20058     HRESULT (STDMETHODCALLTYPE *get_StartTime)(
  20059         ISpeechPhraseInfo *This,
  20060         VARIANT *StartTime);
  20061 
  20062     HRESULT (STDMETHODCALLTYPE *get_AudioStreamPosition)(
  20063         ISpeechPhraseInfo *This,
  20064         VARIANT *AudioStreamPosition);
  20065 
  20066     HRESULT (STDMETHODCALLTYPE *get_AudioSizeBytes)(
  20067         ISpeechPhraseInfo *This,
  20068         LONG *pAudioSizeBytes);
  20069 
  20070     HRESULT (STDMETHODCALLTYPE *get_RetainedSizeBytes)(
  20071         ISpeechPhraseInfo *This,
  20072         LONG *RetainedSizeBytes);
  20073 
  20074     HRESULT (STDMETHODCALLTYPE *get_AudioSizeTime)(
  20075         ISpeechPhraseInfo *This,
  20076         LONG *AudioSizeTime);
  20077 
  20078     HRESULT (STDMETHODCALLTYPE *get_Rule)(
  20079         ISpeechPhraseInfo *This,
  20080         ISpeechPhraseRule **Rule);
  20081 
  20082     HRESULT (STDMETHODCALLTYPE *get_Properties)(
  20083         ISpeechPhraseInfo *This,
  20084         ISpeechPhraseProperties **Properties);
  20085 
  20086     HRESULT (STDMETHODCALLTYPE *get_Elements)(
  20087         ISpeechPhraseInfo *This,
  20088         ISpeechPhraseElements **Elements);
  20089 
  20090     HRESULT (STDMETHODCALLTYPE *get_Replacements)(
  20091         ISpeechPhraseInfo *This,
  20092         ISpeechPhraseReplacements **Replacements);
  20093 
  20094     HRESULT (STDMETHODCALLTYPE *get_EngineId)(
  20095         ISpeechPhraseInfo *This,
  20096         BSTR *EngineIdGuid);
  20097 
  20098     HRESULT (STDMETHODCALLTYPE *get_EnginePrivateData)(
  20099         ISpeechPhraseInfo *This,
  20100         VARIANT *PrivateData);
  20101 
  20102     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
  20103         ISpeechPhraseInfo *This,
  20104         VARIANT *PhraseBlock);
  20105 
  20106     HRESULT (STDMETHODCALLTYPE *GetText)(
  20107         ISpeechPhraseInfo *This,
  20108         LONG StartElement,
  20109         LONG Elements,
  20110         VARIANT_BOOL UseReplacements,
  20111         BSTR *Text);
  20112 
  20113     HRESULT (STDMETHODCALLTYPE *GetDisplayAttributes)(
  20114         ISpeechPhraseInfo *This,
  20115         LONG StartElement,
  20116         LONG Elements,
  20117         VARIANT_BOOL UseReplacements,
  20118         SpeechDisplayAttributes *DisplayAttributes);
  20119 
  20120     END_INTERFACE
  20121 } ISpeechPhraseInfoVtbl;
  20122 
  20123 interface ISpeechPhraseInfo {
  20124     CONST_VTBL ISpeechPhraseInfoVtbl* lpVtbl;
  20125 };
  20126 
  20127 #ifdef COBJMACROS
  20128 #ifndef WIDL_C_INLINE_WRAPPERS
  20129 /*** IUnknown methods ***/
  20130 #define ISpeechPhraseInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  20131 #define ISpeechPhraseInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
  20132 #define ISpeechPhraseInfo_Release(This) (This)->lpVtbl->Release(This)
  20133 /*** IDispatch methods ***/
  20134 #define ISpeechPhraseInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  20135 #define ISpeechPhraseInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  20136 #define ISpeechPhraseInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  20137 #define ISpeechPhraseInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  20138 /*** ISpeechPhraseInfo methods ***/
  20139 #define ISpeechPhraseInfo_get_LanguageId(This,LanguageId) (This)->lpVtbl->get_LanguageId(This,LanguageId)
  20140 #define ISpeechPhraseInfo_get_GrammarId(This,GrammarId) (This)->lpVtbl->get_GrammarId(This,GrammarId)
  20141 #define ISpeechPhraseInfo_get_StartTime(This,StartTime) (This)->lpVtbl->get_StartTime(This,StartTime)
  20142 #define ISpeechPhraseInfo_get_AudioStreamPosition(This,AudioStreamPosition) (This)->lpVtbl->get_AudioStreamPosition(This,AudioStreamPosition)
  20143 #define ISpeechPhraseInfo_get_AudioSizeBytes(This,pAudioSizeBytes) (This)->lpVtbl->get_AudioSizeBytes(This,pAudioSizeBytes)
  20144 #define ISpeechPhraseInfo_get_RetainedSizeBytes(This,RetainedSizeBytes) (This)->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes)
  20145 #define ISpeechPhraseInfo_get_AudioSizeTime(This,AudioSizeTime) (This)->lpVtbl->get_AudioSizeTime(This,AudioSizeTime)
  20146 #define ISpeechPhraseInfo_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
  20147 #define ISpeechPhraseInfo_get_Properties(This,Properties) (This)->lpVtbl->get_Properties(This,Properties)
  20148 #define ISpeechPhraseInfo_get_Elements(This,Elements) (This)->lpVtbl->get_Elements(This,Elements)
  20149 #define ISpeechPhraseInfo_get_Replacements(This,Replacements) (This)->lpVtbl->get_Replacements(This,Replacements)
  20150 #define ISpeechPhraseInfo_get_EngineId(This,EngineIdGuid) (This)->lpVtbl->get_EngineId(This,EngineIdGuid)
  20151 #define ISpeechPhraseInfo_get_EnginePrivateData(This,PrivateData) (This)->lpVtbl->get_EnginePrivateData(This,PrivateData)
  20152 #define ISpeechPhraseInfo_SaveToMemory(This,PhraseBlock) (This)->lpVtbl->SaveToMemory(This,PhraseBlock)
  20153 #define ISpeechPhraseInfo_GetText(This,StartElement,Elements,UseReplacements,Text) (This)->lpVtbl->GetText(This,StartElement,Elements,UseReplacements,Text)
  20154 #define ISpeechPhraseInfo_GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes) (This)->lpVtbl->GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes)
  20155 #else
  20156 /*** IUnknown methods ***/
  20157 static inline HRESULT ISpeechPhraseInfo_QueryInterface(ISpeechPhraseInfo* This,REFIID riid,void **ppvObject) {
  20158     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  20159 }
  20160 static inline ULONG ISpeechPhraseInfo_AddRef(ISpeechPhraseInfo* This) {
  20161     return This->lpVtbl->AddRef(This);
  20162 }
  20163 static inline ULONG ISpeechPhraseInfo_Release(ISpeechPhraseInfo* This) {
  20164     return This->lpVtbl->Release(This);
  20165 }
  20166 /*** IDispatch methods ***/
  20167 static inline HRESULT ISpeechPhraseInfo_GetTypeInfoCount(ISpeechPhraseInfo* This,UINT *pctinfo) {
  20168     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  20169 }
  20170 static inline HRESULT ISpeechPhraseInfo_GetTypeInfo(ISpeechPhraseInfo* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  20171     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  20172 }
  20173 static inline HRESULT ISpeechPhraseInfo_GetIDsOfNames(ISpeechPhraseInfo* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  20174     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  20175 }
  20176 static inline HRESULT ISpeechPhraseInfo_Invoke(ISpeechPhraseInfo* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  20177     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  20178 }
  20179 /*** ISpeechPhraseInfo methods ***/
  20180 static inline HRESULT ISpeechPhraseInfo_get_LanguageId(ISpeechPhraseInfo* This,LONG *LanguageId) {
  20181     return This->lpVtbl->get_LanguageId(This,LanguageId);
  20182 }
  20183 static inline HRESULT ISpeechPhraseInfo_get_GrammarId(ISpeechPhraseInfo* This,VARIANT *GrammarId) {
  20184     return This->lpVtbl->get_GrammarId(This,GrammarId);
  20185 }
  20186 static inline HRESULT ISpeechPhraseInfo_get_StartTime(ISpeechPhraseInfo* This,VARIANT *StartTime) {
  20187     return This->lpVtbl->get_StartTime(This,StartTime);
  20188 }
  20189 static inline HRESULT ISpeechPhraseInfo_get_AudioStreamPosition(ISpeechPhraseInfo* This,VARIANT *AudioStreamPosition) {
  20190     return This->lpVtbl->get_AudioStreamPosition(This,AudioStreamPosition);
  20191 }
  20192 static inline HRESULT ISpeechPhraseInfo_get_AudioSizeBytes(ISpeechPhraseInfo* This,LONG *pAudioSizeBytes) {
  20193     return This->lpVtbl->get_AudioSizeBytes(This,pAudioSizeBytes);
  20194 }
  20195 static inline HRESULT ISpeechPhraseInfo_get_RetainedSizeBytes(ISpeechPhraseInfo* This,LONG *RetainedSizeBytes) {
  20196     return This->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes);
  20197 }
  20198 static inline HRESULT ISpeechPhraseInfo_get_AudioSizeTime(ISpeechPhraseInfo* This,LONG *AudioSizeTime) {
  20199     return This->lpVtbl->get_AudioSizeTime(This,AudioSizeTime);
  20200 }
  20201 static inline HRESULT ISpeechPhraseInfo_get_Rule(ISpeechPhraseInfo* This,ISpeechPhraseRule **Rule) {
  20202     return This->lpVtbl->get_Rule(This,Rule);
  20203 }
  20204 static inline HRESULT ISpeechPhraseInfo_get_Properties(ISpeechPhraseInfo* This,ISpeechPhraseProperties **Properties) {
  20205     return This->lpVtbl->get_Properties(This,Properties);
  20206 }
  20207 static inline HRESULT ISpeechPhraseInfo_get_Elements(ISpeechPhraseInfo* This,ISpeechPhraseElements **Elements) {
  20208     return This->lpVtbl->get_Elements(This,Elements);
  20209 }
  20210 static inline HRESULT ISpeechPhraseInfo_get_Replacements(ISpeechPhraseInfo* This,ISpeechPhraseReplacements **Replacements) {
  20211     return This->lpVtbl->get_Replacements(This,Replacements);
  20212 }
  20213 static inline HRESULT ISpeechPhraseInfo_get_EngineId(ISpeechPhraseInfo* This,BSTR *EngineIdGuid) {
  20214     return This->lpVtbl->get_EngineId(This,EngineIdGuid);
  20215 }
  20216 static inline HRESULT ISpeechPhraseInfo_get_EnginePrivateData(ISpeechPhraseInfo* This,VARIANT *PrivateData) {
  20217     return This->lpVtbl->get_EnginePrivateData(This,PrivateData);
  20218 }
  20219 static inline HRESULT ISpeechPhraseInfo_SaveToMemory(ISpeechPhraseInfo* This,VARIANT *PhraseBlock) {
  20220     return This->lpVtbl->SaveToMemory(This,PhraseBlock);
  20221 }
  20222 static inline HRESULT ISpeechPhraseInfo_GetText(ISpeechPhraseInfo* This,LONG StartElement,LONG Elements,VARIANT_BOOL UseReplacements,BSTR *Text) {
  20223     return This->lpVtbl->GetText(This,StartElement,Elements,UseReplacements,Text);
  20224 }
  20225 static inline HRESULT ISpeechPhraseInfo_GetDisplayAttributes(ISpeechPhraseInfo* This,LONG StartElement,LONG Elements,VARIANT_BOOL UseReplacements,SpeechDisplayAttributes *DisplayAttributes) {
  20226     return This->lpVtbl->GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes);
  20227 }
  20228 #endif
  20229 #endif
  20230 
  20231 #endif
  20232 
  20233 
  20234 #endif  /* __ISpeechPhraseInfo_INTERFACE_DEFINED__ */
  20235 
  20236 /*****************************************************************************
  20237  * ISpeechPhraseElement interface
  20238  */
  20239 #ifndef __ISpeechPhraseElement_INTERFACE_DEFINED__
  20240 #define __ISpeechPhraseElement_INTERFACE_DEFINED__
  20241 
  20242 DEFINE_GUID(IID_ISpeechPhraseElement, 0xe6176f96, 0xe373, 0x4801, 0xb2,0x23, 0x3b,0x62,0xc0,0x68,0xc0,0xb4);
  20243 #if defined(__cplusplus) && !defined(CINTERFACE)
  20244 MIDL_INTERFACE("e6176f96-e373-4801-b223-3b62c068c0b4")
  20245 ISpeechPhraseElement : public IDispatch
  20246 {
  20247     virtual HRESULT STDMETHODCALLTYPE get_AudioTimeOffset(
  20248         LONG *AudioTimeOffset) = 0;
  20249 
  20250     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeTime(
  20251         LONG *AudioSizeTime) = 0;
  20252 
  20253     virtual HRESULT STDMETHODCALLTYPE get_AudioStreamOffset(
  20254         LONG *AudioStreamOffset) = 0;
  20255 
  20256     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeBytes(
  20257         LONG *AudioSizeBytes) = 0;
  20258 
  20259     virtual HRESULT STDMETHODCALLTYPE get_RetainedStreamOffset(
  20260         LONG *RetainedStreamOffset) = 0;
  20261 
  20262     virtual HRESULT STDMETHODCALLTYPE get_RetainedSizeBytes(
  20263         LONG *RetainedSizeBytes) = 0;
  20264 
  20265     virtual HRESULT STDMETHODCALLTYPE get_DisplayText(
  20266         BSTR *DisplayText) = 0;
  20267 
  20268     virtual HRESULT STDMETHODCALLTYPE get_LexicalForm(
  20269         BSTR *LexicalForm) = 0;
  20270 
  20271     virtual HRESULT STDMETHODCALLTYPE get_Pronunciation(
  20272         VARIANT *Pronunciation) = 0;
  20273 
  20274     virtual HRESULT STDMETHODCALLTYPE get_DisplayAttributes(
  20275         SpeechDisplayAttributes *DisplayAttributes) = 0;
  20276 
  20277     virtual HRESULT STDMETHODCALLTYPE get_RequiredConfidence(
  20278         SpeechEngineConfidence *RequiredConfidence) = 0;
  20279 
  20280     virtual HRESULT STDMETHODCALLTYPE get_ActualConfidence(
  20281         SpeechEngineConfidence *ActualConfidence) = 0;
  20282 
  20283     virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
  20284         float *EngineConfidence) = 0;
  20285 
  20286 };
  20287 #ifdef __CRT_UUID_DECL
  20288 __CRT_UUID_DECL(ISpeechPhraseElement, 0xe6176f96, 0xe373, 0x4801, 0xb2,0x23, 0x3b,0x62,0xc0,0x68,0xc0,0xb4)
  20289 #endif
  20290 #else
  20291 typedef struct ISpeechPhraseElementVtbl {
  20292     BEGIN_INTERFACE
  20293 
  20294     /*** IUnknown methods ***/
  20295     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  20296         ISpeechPhraseElement *This,
  20297         REFIID riid,
  20298         void **ppvObject);
  20299 
  20300     ULONG (STDMETHODCALLTYPE *AddRef)(
  20301         ISpeechPhraseElement *This);
  20302 
  20303     ULONG (STDMETHODCALLTYPE *Release)(
  20304         ISpeechPhraseElement *This);
  20305 
  20306     /*** IDispatch methods ***/
  20307     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  20308         ISpeechPhraseElement *This,
  20309         UINT *pctinfo);
  20310 
  20311     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  20312         ISpeechPhraseElement *This,
  20313         UINT iTInfo,
  20314         LCID lcid,
  20315         ITypeInfo **ppTInfo);
  20316 
  20317     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  20318         ISpeechPhraseElement *This,
  20319         REFIID riid,
  20320         LPOLESTR *rgszNames,
  20321         UINT cNames,
  20322         LCID lcid,
  20323         DISPID *rgDispId);
  20324 
  20325     HRESULT (STDMETHODCALLTYPE *Invoke)(
  20326         ISpeechPhraseElement *This,
  20327         DISPID dispIdMember,
  20328         REFIID riid,
  20329         LCID lcid,
  20330         WORD wFlags,
  20331         DISPPARAMS *pDispParams,
  20332         VARIANT *pVarResult,
  20333         EXCEPINFO *pExcepInfo,
  20334         UINT *puArgErr);
  20335 
  20336     /*** ISpeechPhraseElement methods ***/
  20337     HRESULT (STDMETHODCALLTYPE *get_AudioTimeOffset)(
  20338         ISpeechPhraseElement *This,
  20339         LONG *AudioTimeOffset);
  20340 
  20341     HRESULT (STDMETHODCALLTYPE *get_AudioSizeTime)(
  20342         ISpeechPhraseElement *This,
  20343         LONG *AudioSizeTime);
  20344 
  20345     HRESULT (STDMETHODCALLTYPE *get_AudioStreamOffset)(
  20346         ISpeechPhraseElement *This,
  20347         LONG *AudioStreamOffset);
  20348 
  20349     HRESULT (STDMETHODCALLTYPE *get_AudioSizeBytes)(
  20350         ISpeechPhraseElement *This,
  20351         LONG *AudioSizeBytes);
  20352 
  20353     HRESULT (STDMETHODCALLTYPE *get_RetainedStreamOffset)(
  20354         ISpeechPhraseElement *This,
  20355         LONG *RetainedStreamOffset);
  20356 
  20357     HRESULT (STDMETHODCALLTYPE *get_RetainedSizeBytes)(
  20358         ISpeechPhraseElement *This,
  20359         LONG *RetainedSizeBytes);
  20360 
  20361     HRESULT (STDMETHODCALLTYPE *get_DisplayText)(
  20362         ISpeechPhraseElement *This,
  20363         BSTR *DisplayText);
  20364 
  20365     HRESULT (STDMETHODCALLTYPE *get_LexicalForm)(
  20366         ISpeechPhraseElement *This,
  20367         BSTR *LexicalForm);
  20368 
  20369     HRESULT (STDMETHODCALLTYPE *get_Pronunciation)(
  20370         ISpeechPhraseElement *This,
  20371         VARIANT *Pronunciation);
  20372 
  20373     HRESULT (STDMETHODCALLTYPE *get_DisplayAttributes)(
  20374         ISpeechPhraseElement *This,
  20375         SpeechDisplayAttributes *DisplayAttributes);
  20376 
  20377     HRESULT (STDMETHODCALLTYPE *get_RequiredConfidence)(
  20378         ISpeechPhraseElement *This,
  20379         SpeechEngineConfidence *RequiredConfidence);
  20380 
  20381     HRESULT (STDMETHODCALLTYPE *get_ActualConfidence)(
  20382         ISpeechPhraseElement *This,
  20383         SpeechEngineConfidence *ActualConfidence);
  20384 
  20385     HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
  20386         ISpeechPhraseElement *This,
  20387         float *EngineConfidence);
  20388 
  20389     END_INTERFACE
  20390 } ISpeechPhraseElementVtbl;
  20391 
  20392 interface ISpeechPhraseElement {
  20393     CONST_VTBL ISpeechPhraseElementVtbl* lpVtbl;
  20394 };
  20395 
  20396 #ifdef COBJMACROS
  20397 #ifndef WIDL_C_INLINE_WRAPPERS
  20398 /*** IUnknown methods ***/
  20399 #define ISpeechPhraseElement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  20400 #define ISpeechPhraseElement_AddRef(This) (This)->lpVtbl->AddRef(This)
  20401 #define ISpeechPhraseElement_Release(This) (This)->lpVtbl->Release(This)
  20402 /*** IDispatch methods ***/
  20403 #define ISpeechPhraseElement_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  20404 #define ISpeechPhraseElement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  20405 #define ISpeechPhraseElement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  20406 #define ISpeechPhraseElement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  20407 /*** ISpeechPhraseElement methods ***/
  20408 #define ISpeechPhraseElement_get_AudioTimeOffset(This,AudioTimeOffset) (This)->lpVtbl->get_AudioTimeOffset(This,AudioTimeOffset)
  20409 #define ISpeechPhraseElement_get_AudioSizeTime(This,AudioSizeTime) (This)->lpVtbl->get_AudioSizeTime(This,AudioSizeTime)
  20410 #define ISpeechPhraseElement_get_AudioStreamOffset(This,AudioStreamOffset) (This)->lpVtbl->get_AudioStreamOffset(This,AudioStreamOffset)
  20411 #define ISpeechPhraseElement_get_AudioSizeBytes(This,AudioSizeBytes) (This)->lpVtbl->get_AudioSizeBytes(This,AudioSizeBytes)
  20412 #define ISpeechPhraseElement_get_RetainedStreamOffset(This,RetainedStreamOffset) (This)->lpVtbl->get_RetainedStreamOffset(This,RetainedStreamOffset)
  20413 #define ISpeechPhraseElement_get_RetainedSizeBytes(This,RetainedSizeBytes) (This)->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes)
  20414 #define ISpeechPhraseElement_get_DisplayText(This,DisplayText) (This)->lpVtbl->get_DisplayText(This,DisplayText)
  20415 #define ISpeechPhraseElement_get_LexicalForm(This,LexicalForm) (This)->lpVtbl->get_LexicalForm(This,LexicalForm)
  20416 #define ISpeechPhraseElement_get_Pronunciation(This,Pronunciation) (This)->lpVtbl->get_Pronunciation(This,Pronunciation)
  20417 #define ISpeechPhraseElement_get_DisplayAttributes(This,DisplayAttributes) (This)->lpVtbl->get_DisplayAttributes(This,DisplayAttributes)
  20418 #define ISpeechPhraseElement_get_RequiredConfidence(This,RequiredConfidence) (This)->lpVtbl->get_RequiredConfidence(This,RequiredConfidence)
  20419 #define ISpeechPhraseElement_get_ActualConfidence(This,ActualConfidence) (This)->lpVtbl->get_ActualConfidence(This,ActualConfidence)
  20420 #define ISpeechPhraseElement_get_EngineConfidence(This,EngineConfidence) (This)->lpVtbl->get_EngineConfidence(This,EngineConfidence)
  20421 #else
  20422 /*** IUnknown methods ***/
  20423 static inline HRESULT ISpeechPhraseElement_QueryInterface(ISpeechPhraseElement* This,REFIID riid,void **ppvObject) {
  20424     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  20425 }
  20426 static inline ULONG ISpeechPhraseElement_AddRef(ISpeechPhraseElement* This) {
  20427     return This->lpVtbl->AddRef(This);
  20428 }
  20429 static inline ULONG ISpeechPhraseElement_Release(ISpeechPhraseElement* This) {
  20430     return This->lpVtbl->Release(This);
  20431 }
  20432 /*** IDispatch methods ***/
  20433 static inline HRESULT ISpeechPhraseElement_GetTypeInfoCount(ISpeechPhraseElement* This,UINT *pctinfo) {
  20434     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  20435 }
  20436 static inline HRESULT ISpeechPhraseElement_GetTypeInfo(ISpeechPhraseElement* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  20437     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  20438 }
  20439 static inline HRESULT ISpeechPhraseElement_GetIDsOfNames(ISpeechPhraseElement* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  20440     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  20441 }
  20442 static inline HRESULT ISpeechPhraseElement_Invoke(ISpeechPhraseElement* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  20443     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  20444 }
  20445 /*** ISpeechPhraseElement methods ***/
  20446 static inline HRESULT ISpeechPhraseElement_get_AudioTimeOffset(ISpeechPhraseElement* This,LONG *AudioTimeOffset) {
  20447     return This->lpVtbl->get_AudioTimeOffset(This,AudioTimeOffset);
  20448 }
  20449 static inline HRESULT ISpeechPhraseElement_get_AudioSizeTime(ISpeechPhraseElement* This,LONG *AudioSizeTime) {
  20450     return This->lpVtbl->get_AudioSizeTime(This,AudioSizeTime);
  20451 }
  20452 static inline HRESULT ISpeechPhraseElement_get_AudioStreamOffset(ISpeechPhraseElement* This,LONG *AudioStreamOffset) {
  20453     return This->lpVtbl->get_AudioStreamOffset(This,AudioStreamOffset);
  20454 }
  20455 static inline HRESULT ISpeechPhraseElement_get_AudioSizeBytes(ISpeechPhraseElement* This,LONG *AudioSizeBytes) {
  20456     return This->lpVtbl->get_AudioSizeBytes(This,AudioSizeBytes);
  20457 }
  20458 static inline HRESULT ISpeechPhraseElement_get_RetainedStreamOffset(ISpeechPhraseElement* This,LONG *RetainedStreamOffset) {
  20459     return This->lpVtbl->get_RetainedStreamOffset(This,RetainedStreamOffset);
  20460 }
  20461 static inline HRESULT ISpeechPhraseElement_get_RetainedSizeBytes(ISpeechPhraseElement* This,LONG *RetainedSizeBytes) {
  20462     return This->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes);
  20463 }
  20464 static inline HRESULT ISpeechPhraseElement_get_DisplayText(ISpeechPhraseElement* This,BSTR *DisplayText) {
  20465     return This->lpVtbl->get_DisplayText(This,DisplayText);
  20466 }
  20467 static inline HRESULT ISpeechPhraseElement_get_LexicalForm(ISpeechPhraseElement* This,BSTR *LexicalForm) {
  20468     return This->lpVtbl->get_LexicalForm(This,LexicalForm);
  20469 }
  20470 static inline HRESULT ISpeechPhraseElement_get_Pronunciation(ISpeechPhraseElement* This,VARIANT *Pronunciation) {
  20471     return This->lpVtbl->get_Pronunciation(This,Pronunciation);
  20472 }
  20473 static inline HRESULT ISpeechPhraseElement_get_DisplayAttributes(ISpeechPhraseElement* This,SpeechDisplayAttributes *DisplayAttributes) {
  20474     return This->lpVtbl->get_DisplayAttributes(This,DisplayAttributes);
  20475 }
  20476 static inline HRESULT ISpeechPhraseElement_get_RequiredConfidence(ISpeechPhraseElement* This,SpeechEngineConfidence *RequiredConfidence) {
  20477     return This->lpVtbl->get_RequiredConfidence(This,RequiredConfidence);
  20478 }
  20479 static inline HRESULT ISpeechPhraseElement_get_ActualConfidence(ISpeechPhraseElement* This,SpeechEngineConfidence *ActualConfidence) {
  20480     return This->lpVtbl->get_ActualConfidence(This,ActualConfidence);
  20481 }
  20482 static inline HRESULT ISpeechPhraseElement_get_EngineConfidence(ISpeechPhraseElement* This,float *EngineConfidence) {
  20483     return This->lpVtbl->get_EngineConfidence(This,EngineConfidence);
  20484 }
  20485 #endif
  20486 #endif
  20487 
  20488 #endif
  20489 
  20490 
  20491 #endif  /* __ISpeechPhraseElement_INTERFACE_DEFINED__ */
  20492 
  20493 /*****************************************************************************
  20494  * ISpeechPhraseElements interface
  20495  */
  20496 #ifndef __ISpeechPhraseElements_INTERFACE_DEFINED__
  20497 #define __ISpeechPhraseElements_INTERFACE_DEFINED__
  20498 
  20499 DEFINE_GUID(IID_ISpeechPhraseElements, 0x0626b328, 0x3478, 0x467d, 0xa0,0xb3, 0xd0,0x85,0x3b,0x93,0xdd,0xa3);
  20500 #if defined(__cplusplus) && !defined(CINTERFACE)
  20501 MIDL_INTERFACE("0626b328-3478-467d-a0b3-d0853b93dda3")
  20502 ISpeechPhraseElements : public IDispatch
  20503 {
  20504     virtual HRESULT STDMETHODCALLTYPE get_Count(
  20505         LONG *Count) = 0;
  20506 
  20507     virtual HRESULT STDMETHODCALLTYPE Item(
  20508         LONG Index,
  20509         ISpeechPhraseElement **Element) = 0;
  20510 
  20511     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
  20512         IUnknown **EnumVARIANT) = 0;
  20513 
  20514 };
  20515 #ifdef __CRT_UUID_DECL
  20516 __CRT_UUID_DECL(ISpeechPhraseElements, 0x0626b328, 0x3478, 0x467d, 0xa0,0xb3, 0xd0,0x85,0x3b,0x93,0xdd,0xa3)
  20517 #endif
  20518 #else
  20519 typedef struct ISpeechPhraseElementsVtbl {
  20520     BEGIN_INTERFACE
  20521 
  20522     /*** IUnknown methods ***/
  20523     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  20524         ISpeechPhraseElements *This,
  20525         REFIID riid,
  20526         void **ppvObject);
  20527 
  20528     ULONG (STDMETHODCALLTYPE *AddRef)(
  20529         ISpeechPhraseElements *This);
  20530 
  20531     ULONG (STDMETHODCALLTYPE *Release)(
  20532         ISpeechPhraseElements *This);
  20533 
  20534     /*** IDispatch methods ***/
  20535     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  20536         ISpeechPhraseElements *This,
  20537         UINT *pctinfo);
  20538 
  20539     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  20540         ISpeechPhraseElements *This,
  20541         UINT iTInfo,
  20542         LCID lcid,
  20543         ITypeInfo **ppTInfo);
  20544 
  20545     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  20546         ISpeechPhraseElements *This,
  20547         REFIID riid,
  20548         LPOLESTR *rgszNames,
  20549         UINT cNames,
  20550         LCID lcid,
  20551         DISPID *rgDispId);
  20552 
  20553     HRESULT (STDMETHODCALLTYPE *Invoke)(
  20554         ISpeechPhraseElements *This,
  20555         DISPID dispIdMember,
  20556         REFIID riid,
  20557         LCID lcid,
  20558         WORD wFlags,
  20559         DISPPARAMS *pDispParams,
  20560         VARIANT *pVarResult,
  20561         EXCEPINFO *pExcepInfo,
  20562         UINT *puArgErr);
  20563 
  20564     /*** ISpeechPhraseElements methods ***/
  20565     HRESULT (STDMETHODCALLTYPE *get_Count)(
  20566         ISpeechPhraseElements *This,
  20567         LONG *Count);
  20568 
  20569     HRESULT (STDMETHODCALLTYPE *Item)(
  20570         ISpeechPhraseElements *This,
  20571         LONG Index,
  20572         ISpeechPhraseElement **Element);
  20573 
  20574     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
  20575         ISpeechPhraseElements *This,
  20576         IUnknown **EnumVARIANT);
  20577 
  20578     END_INTERFACE
  20579 } ISpeechPhraseElementsVtbl;
  20580 
  20581 interface ISpeechPhraseElements {
  20582     CONST_VTBL ISpeechPhraseElementsVtbl* lpVtbl;
  20583 };
  20584 
  20585 #ifdef COBJMACROS
  20586 #ifndef WIDL_C_INLINE_WRAPPERS
  20587 /*** IUnknown methods ***/
  20588 #define ISpeechPhraseElements_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  20589 #define ISpeechPhraseElements_AddRef(This) (This)->lpVtbl->AddRef(This)
  20590 #define ISpeechPhraseElements_Release(This) (This)->lpVtbl->Release(This)
  20591 /*** IDispatch methods ***/
  20592 #define ISpeechPhraseElements_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  20593 #define ISpeechPhraseElements_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  20594 #define ISpeechPhraseElements_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  20595 #define ISpeechPhraseElements_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  20596 /*** ISpeechPhraseElements methods ***/
  20597 #define ISpeechPhraseElements_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
  20598 #define ISpeechPhraseElements_Item(This,Index,Element) (This)->lpVtbl->Item(This,Index,Element)
  20599 #define ISpeechPhraseElements_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
  20600 #else
  20601 /*** IUnknown methods ***/
  20602 static inline HRESULT ISpeechPhraseElements_QueryInterface(ISpeechPhraseElements* This,REFIID riid,void **ppvObject) {
  20603     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  20604 }
  20605 static inline ULONG ISpeechPhraseElements_AddRef(ISpeechPhraseElements* This) {
  20606     return This->lpVtbl->AddRef(This);
  20607 }
  20608 static inline ULONG ISpeechPhraseElements_Release(ISpeechPhraseElements* This) {
  20609     return This->lpVtbl->Release(This);
  20610 }
  20611 /*** IDispatch methods ***/
  20612 static inline HRESULT ISpeechPhraseElements_GetTypeInfoCount(ISpeechPhraseElements* This,UINT *pctinfo) {
  20613     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  20614 }
  20615 static inline HRESULT ISpeechPhraseElements_GetTypeInfo(ISpeechPhraseElements* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  20616     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  20617 }
  20618 static inline HRESULT ISpeechPhraseElements_GetIDsOfNames(ISpeechPhraseElements* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  20619     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  20620 }
  20621 static inline HRESULT ISpeechPhraseElements_Invoke(ISpeechPhraseElements* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  20622     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  20623 }
  20624 /*** ISpeechPhraseElements methods ***/
  20625 static inline HRESULT ISpeechPhraseElements_get_Count(ISpeechPhraseElements* This,LONG *Count) {
  20626     return This->lpVtbl->get_Count(This,Count);
  20627 }
  20628 static inline HRESULT ISpeechPhraseElements_Item(ISpeechPhraseElements* This,LONG Index,ISpeechPhraseElement **Element) {
  20629     return This->lpVtbl->Item(This,Index,Element);
  20630 }
  20631 static inline HRESULT ISpeechPhraseElements_get__NewEnum(ISpeechPhraseElements* This,IUnknown **EnumVARIANT) {
  20632     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
  20633 }
  20634 #endif
  20635 #endif
  20636 
  20637 #endif
  20638 
  20639 
  20640 #endif  /* __ISpeechPhraseElements_INTERFACE_DEFINED__ */
  20641 
  20642 /*****************************************************************************
  20643  * ISpeechPhraseReplacement interface
  20644  */
  20645 #ifndef __ISpeechPhraseReplacement_INTERFACE_DEFINED__
  20646 #define __ISpeechPhraseReplacement_INTERFACE_DEFINED__
  20647 
  20648 DEFINE_GUID(IID_ISpeechPhraseReplacement, 0x2890a410, 0x53a7, 0x4fb5, 0x94,0xec, 0x06,0xd4,0x99,0x8e,0x3d,0x02);
  20649 #if defined(__cplusplus) && !defined(CINTERFACE)
  20650 MIDL_INTERFACE("2890a410-53a7-4fb5-94ec-06d4998e3d02")
  20651 ISpeechPhraseReplacement : public IDispatch
  20652 {
  20653     virtual HRESULT STDMETHODCALLTYPE get_DisplayAttributes(
  20654         SpeechDisplayAttributes *DisplayAttributes) = 0;
  20655 
  20656     virtual HRESULT STDMETHODCALLTYPE get_Text(
  20657         BSTR *Text) = 0;
  20658 
  20659     virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
  20660         LONG *FirstElement) = 0;
  20661 
  20662     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
  20663         LONG *NumberOfElements) = 0;
  20664 
  20665 };
  20666 #ifdef __CRT_UUID_DECL
  20667 __CRT_UUID_DECL(ISpeechPhraseReplacement, 0x2890a410, 0x53a7, 0x4fb5, 0x94,0xec, 0x06,0xd4,0x99,0x8e,0x3d,0x02)
  20668 #endif
  20669 #else
  20670 typedef struct ISpeechPhraseReplacementVtbl {
  20671     BEGIN_INTERFACE
  20672 
  20673     /*** IUnknown methods ***/
  20674     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  20675         ISpeechPhraseReplacement *This,
  20676         REFIID riid,
  20677         void **ppvObject);
  20678 
  20679     ULONG (STDMETHODCALLTYPE *AddRef)(
  20680         ISpeechPhraseReplacement *This);
  20681 
  20682     ULONG (STDMETHODCALLTYPE *Release)(
  20683         ISpeechPhraseReplacement *This);
  20684 
  20685     /*** IDispatch methods ***/
  20686     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  20687         ISpeechPhraseReplacement *This,
  20688         UINT *pctinfo);
  20689 
  20690     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  20691         ISpeechPhraseReplacement *This,
  20692         UINT iTInfo,
  20693         LCID lcid,
  20694         ITypeInfo **ppTInfo);
  20695 
  20696     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  20697         ISpeechPhraseReplacement *This,
  20698         REFIID riid,
  20699         LPOLESTR *rgszNames,
  20700         UINT cNames,
  20701         LCID lcid,
  20702         DISPID *rgDispId);
  20703 
  20704     HRESULT (STDMETHODCALLTYPE *Invoke)(
  20705         ISpeechPhraseReplacement *This,
  20706         DISPID dispIdMember,
  20707         REFIID riid,
  20708         LCID lcid,
  20709         WORD wFlags,
  20710         DISPPARAMS *pDispParams,
  20711         VARIANT *pVarResult,
  20712         EXCEPINFO *pExcepInfo,
  20713         UINT *puArgErr);
  20714 
  20715     /*** ISpeechPhraseReplacement methods ***/
  20716     HRESULT (STDMETHODCALLTYPE *get_DisplayAttributes)(
  20717         ISpeechPhraseReplacement *This,
  20718         SpeechDisplayAttributes *DisplayAttributes);
  20719 
  20720     HRESULT (STDMETHODCALLTYPE *get_Text)(
  20721         ISpeechPhraseReplacement *This,
  20722         BSTR *Text);
  20723 
  20724     HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
  20725         ISpeechPhraseReplacement *This,
  20726         LONG *FirstElement);
  20727 
  20728     HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
  20729         ISpeechPhraseReplacement *This,
  20730         LONG *NumberOfElements);
  20731 
  20732     END_INTERFACE
  20733 } ISpeechPhraseReplacementVtbl;
  20734 
  20735 interface ISpeechPhraseReplacement {
  20736     CONST_VTBL ISpeechPhraseReplacementVtbl* lpVtbl;
  20737 };
  20738 
  20739 #ifdef COBJMACROS
  20740 #ifndef WIDL_C_INLINE_WRAPPERS
  20741 /*** IUnknown methods ***/
  20742 #define ISpeechPhraseReplacement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  20743 #define ISpeechPhraseReplacement_AddRef(This) (This)->lpVtbl->AddRef(This)
  20744 #define ISpeechPhraseReplacement_Release(This) (This)->lpVtbl->Release(This)
  20745 /*** IDispatch methods ***/
  20746 #define ISpeechPhraseReplacement_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  20747 #define ISpeechPhraseReplacement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  20748 #define ISpeechPhraseReplacement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  20749 #define ISpeechPhraseReplacement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  20750 /*** ISpeechPhraseReplacement methods ***/
  20751 #define ISpeechPhraseReplacement_get_DisplayAttributes(This,DisplayAttributes) (This)->lpVtbl->get_DisplayAttributes(This,DisplayAttributes)
  20752 #define ISpeechPhraseReplacement_get_Text(This,Text) (This)->lpVtbl->get_Text(This,Text)
  20753 #define ISpeechPhraseReplacement_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
  20754 #define ISpeechPhraseReplacement_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
  20755 #else
  20756 /*** IUnknown methods ***/
  20757 static inline HRESULT ISpeechPhraseReplacement_QueryInterface(ISpeechPhraseReplacement* This,REFIID riid,void **ppvObject) {
  20758     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  20759 }
  20760 static inline ULONG ISpeechPhraseReplacement_AddRef(ISpeechPhraseReplacement* This) {
  20761     return This->lpVtbl->AddRef(This);
  20762 }
  20763 static inline ULONG ISpeechPhraseReplacement_Release(ISpeechPhraseReplacement* This) {
  20764     return This->lpVtbl->Release(This);
  20765 }
  20766 /*** IDispatch methods ***/
  20767 static inline HRESULT ISpeechPhraseReplacement_GetTypeInfoCount(ISpeechPhraseReplacement* This,UINT *pctinfo) {
  20768     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  20769 }
  20770 static inline HRESULT ISpeechPhraseReplacement_GetTypeInfo(ISpeechPhraseReplacement* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  20771     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  20772 }
  20773 static inline HRESULT ISpeechPhraseReplacement_GetIDsOfNames(ISpeechPhraseReplacement* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  20774     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  20775 }
  20776 static inline HRESULT ISpeechPhraseReplacement_Invoke(ISpeechPhraseReplacement* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  20777     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  20778 }
  20779 /*** ISpeechPhraseReplacement methods ***/
  20780 static inline HRESULT ISpeechPhraseReplacement_get_DisplayAttributes(ISpeechPhraseReplacement* This,SpeechDisplayAttributes *DisplayAttributes) {
  20781     return This->lpVtbl->get_DisplayAttributes(This,DisplayAttributes);
  20782 }
  20783 static inline HRESULT ISpeechPhraseReplacement_get_Text(ISpeechPhraseReplacement* This,BSTR *Text) {
  20784     return This->lpVtbl->get_Text(This,Text);
  20785 }
  20786 static inline HRESULT ISpeechPhraseReplacement_get_FirstElement(ISpeechPhraseReplacement* This,LONG *FirstElement) {
  20787     return This->lpVtbl->get_FirstElement(This,FirstElement);
  20788 }
  20789 static inline HRESULT ISpeechPhraseReplacement_get_NumberOfElements(ISpeechPhraseReplacement* This,LONG *NumberOfElements) {
  20790     return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
  20791 }
  20792 #endif
  20793 #endif
  20794 
  20795 #endif
  20796 
  20797 
  20798 #endif  /* __ISpeechPhraseReplacement_INTERFACE_DEFINED__ */
  20799 
  20800 /*****************************************************************************
  20801  * ISpeechPhraseReplacements interface
  20802  */
  20803 #ifndef __ISpeechPhraseReplacements_INTERFACE_DEFINED__
  20804 #define __ISpeechPhraseReplacements_INTERFACE_DEFINED__
  20805 
  20806 DEFINE_GUID(IID_ISpeechPhraseReplacements, 0x38bc662f, 0x2257, 0x4525, 0x95,0x9e, 0x20,0x69,0xd2,0x59,0x6c,0x05);
  20807 #if defined(__cplusplus) && !defined(CINTERFACE)
  20808 MIDL_INTERFACE("38bc662f-2257-4525-959e-2069d2596c05")
  20809 ISpeechPhraseReplacements : public IDispatch
  20810 {
  20811     virtual HRESULT STDMETHODCALLTYPE get_Count(
  20812         LONG *Count) = 0;
  20813 
  20814     virtual HRESULT STDMETHODCALLTYPE Item(
  20815         LONG Index,
  20816         ISpeechPhraseReplacement **Reps) = 0;
  20817 
  20818     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
  20819         IUnknown **EnumVARIANT) = 0;
  20820 
  20821 };
  20822 #ifdef __CRT_UUID_DECL
  20823 __CRT_UUID_DECL(ISpeechPhraseReplacements, 0x38bc662f, 0x2257, 0x4525, 0x95,0x9e, 0x20,0x69,0xd2,0x59,0x6c,0x05)
  20824 #endif
  20825 #else
  20826 typedef struct ISpeechPhraseReplacementsVtbl {
  20827     BEGIN_INTERFACE
  20828 
  20829     /*** IUnknown methods ***/
  20830     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  20831         ISpeechPhraseReplacements *This,
  20832         REFIID riid,
  20833         void **ppvObject);
  20834 
  20835     ULONG (STDMETHODCALLTYPE *AddRef)(
  20836         ISpeechPhraseReplacements *This);
  20837 
  20838     ULONG (STDMETHODCALLTYPE *Release)(
  20839         ISpeechPhraseReplacements *This);
  20840 
  20841     /*** IDispatch methods ***/
  20842     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  20843         ISpeechPhraseReplacements *This,
  20844         UINT *pctinfo);
  20845 
  20846     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  20847         ISpeechPhraseReplacements *This,
  20848         UINT iTInfo,
  20849         LCID lcid,
  20850         ITypeInfo **ppTInfo);
  20851 
  20852     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  20853         ISpeechPhraseReplacements *This,
  20854         REFIID riid,
  20855         LPOLESTR *rgszNames,
  20856         UINT cNames,
  20857         LCID lcid,
  20858         DISPID *rgDispId);
  20859 
  20860     HRESULT (STDMETHODCALLTYPE *Invoke)(
  20861         ISpeechPhraseReplacements *This,
  20862         DISPID dispIdMember,
  20863         REFIID riid,
  20864         LCID lcid,
  20865         WORD wFlags,
  20866         DISPPARAMS *pDispParams,
  20867         VARIANT *pVarResult,
  20868         EXCEPINFO *pExcepInfo,
  20869         UINT *puArgErr);
  20870 
  20871     /*** ISpeechPhraseReplacements methods ***/
  20872     HRESULT (STDMETHODCALLTYPE *get_Count)(
  20873         ISpeechPhraseReplacements *This,
  20874         LONG *Count);
  20875 
  20876     HRESULT (STDMETHODCALLTYPE *Item)(
  20877         ISpeechPhraseReplacements *This,
  20878         LONG Index,
  20879         ISpeechPhraseReplacement **Reps);
  20880 
  20881     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
  20882         ISpeechPhraseReplacements *This,
  20883         IUnknown **EnumVARIANT);
  20884 
  20885     END_INTERFACE
  20886 } ISpeechPhraseReplacementsVtbl;
  20887 
  20888 interface ISpeechPhraseReplacements {
  20889     CONST_VTBL ISpeechPhraseReplacementsVtbl* lpVtbl;
  20890 };
  20891 
  20892 #ifdef COBJMACROS
  20893 #ifndef WIDL_C_INLINE_WRAPPERS
  20894 /*** IUnknown methods ***/
  20895 #define ISpeechPhraseReplacements_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  20896 #define ISpeechPhraseReplacements_AddRef(This) (This)->lpVtbl->AddRef(This)
  20897 #define ISpeechPhraseReplacements_Release(This) (This)->lpVtbl->Release(This)
  20898 /*** IDispatch methods ***/
  20899 #define ISpeechPhraseReplacements_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  20900 #define ISpeechPhraseReplacements_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  20901 #define ISpeechPhraseReplacements_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  20902 #define ISpeechPhraseReplacements_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  20903 /*** ISpeechPhraseReplacements methods ***/
  20904 #define ISpeechPhraseReplacements_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
  20905 #define ISpeechPhraseReplacements_Item(This,Index,Reps) (This)->lpVtbl->Item(This,Index,Reps)
  20906 #define ISpeechPhraseReplacements_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
  20907 #else
  20908 /*** IUnknown methods ***/
  20909 static inline HRESULT ISpeechPhraseReplacements_QueryInterface(ISpeechPhraseReplacements* This,REFIID riid,void **ppvObject) {
  20910     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  20911 }
  20912 static inline ULONG ISpeechPhraseReplacements_AddRef(ISpeechPhraseReplacements* This) {
  20913     return This->lpVtbl->AddRef(This);
  20914 }
  20915 static inline ULONG ISpeechPhraseReplacements_Release(ISpeechPhraseReplacements* This) {
  20916     return This->lpVtbl->Release(This);
  20917 }
  20918 /*** IDispatch methods ***/
  20919 static inline HRESULT ISpeechPhraseReplacements_GetTypeInfoCount(ISpeechPhraseReplacements* This,UINT *pctinfo) {
  20920     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  20921 }
  20922 static inline HRESULT ISpeechPhraseReplacements_GetTypeInfo(ISpeechPhraseReplacements* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  20923     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  20924 }
  20925 static inline HRESULT ISpeechPhraseReplacements_GetIDsOfNames(ISpeechPhraseReplacements* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  20926     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  20927 }
  20928 static inline HRESULT ISpeechPhraseReplacements_Invoke(ISpeechPhraseReplacements* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  20929     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  20930 }
  20931 /*** ISpeechPhraseReplacements methods ***/
  20932 static inline HRESULT ISpeechPhraseReplacements_get_Count(ISpeechPhraseReplacements* This,LONG *Count) {
  20933     return This->lpVtbl->get_Count(This,Count);
  20934 }
  20935 static inline HRESULT ISpeechPhraseReplacements_Item(ISpeechPhraseReplacements* This,LONG Index,ISpeechPhraseReplacement **Reps) {
  20936     return This->lpVtbl->Item(This,Index,Reps);
  20937 }
  20938 static inline HRESULT ISpeechPhraseReplacements_get__NewEnum(ISpeechPhraseReplacements* This,IUnknown **EnumVARIANT) {
  20939     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
  20940 }
  20941 #endif
  20942 #endif
  20943 
  20944 #endif
  20945 
  20946 
  20947 #endif  /* __ISpeechPhraseReplacements_INTERFACE_DEFINED__ */
  20948 
  20949 /*****************************************************************************
  20950  * ISpeechPhraseProperty interface
  20951  */
  20952 #ifndef __ISpeechPhraseProperty_INTERFACE_DEFINED__
  20953 #define __ISpeechPhraseProperty_INTERFACE_DEFINED__
  20954 
  20955 DEFINE_GUID(IID_ISpeechPhraseProperty, 0xce563d48, 0x961e, 0x4732, 0xa2,0xe1, 0x37,0x8a,0x42,0xb4,0x30,0xbe);
  20956 #if defined(__cplusplus) && !defined(CINTERFACE)
  20957 MIDL_INTERFACE("ce563d48-961e-4732-a2e1-378a42b430be")
  20958 ISpeechPhraseProperty : public IDispatch
  20959 {
  20960     virtual HRESULT STDMETHODCALLTYPE get_Name(
  20961         BSTR *Name) = 0;
  20962 
  20963     virtual HRESULT STDMETHODCALLTYPE get_Id(
  20964         LONG *Id) = 0;
  20965 
  20966     virtual HRESULT STDMETHODCALLTYPE get_Value(
  20967         VARIANT *Value) = 0;
  20968 
  20969     virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
  20970         LONG *FirstElement) = 0;
  20971 
  20972     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
  20973         LONG *NumberOfElements) = 0;
  20974 
  20975     virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
  20976         float *Confidence) = 0;
  20977 
  20978     virtual HRESULT STDMETHODCALLTYPE get_Confidence(
  20979         SpeechEngineConfidence *Confidence) = 0;
  20980 
  20981     virtual HRESULT STDMETHODCALLTYPE get_Parent(
  20982         ISpeechPhraseProperty **ParentProperty) = 0;
  20983 
  20984     virtual HRESULT STDMETHODCALLTYPE get_Children(
  20985         ISpeechPhraseProperties **Children) = 0;
  20986 
  20987 };
  20988 #ifdef __CRT_UUID_DECL
  20989 __CRT_UUID_DECL(ISpeechPhraseProperty, 0xce563d48, 0x961e, 0x4732, 0xa2,0xe1, 0x37,0x8a,0x42,0xb4,0x30,0xbe)
  20990 #endif
  20991 #else
  20992 typedef struct ISpeechPhrasePropertyVtbl {
  20993     BEGIN_INTERFACE
  20994 
  20995     /*** IUnknown methods ***/
  20996     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  20997         ISpeechPhraseProperty *This,
  20998         REFIID riid,
  20999         void **ppvObject);
  21000 
  21001     ULONG (STDMETHODCALLTYPE *AddRef)(
  21002         ISpeechPhraseProperty *This);
  21003 
  21004     ULONG (STDMETHODCALLTYPE *Release)(
  21005         ISpeechPhraseProperty *This);
  21006 
  21007     /*** IDispatch methods ***/
  21008     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  21009         ISpeechPhraseProperty *This,
  21010         UINT *pctinfo);
  21011 
  21012     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  21013         ISpeechPhraseProperty *This,
  21014         UINT iTInfo,
  21015         LCID lcid,
  21016         ITypeInfo **ppTInfo);
  21017 
  21018     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  21019         ISpeechPhraseProperty *This,
  21020         REFIID riid,
  21021         LPOLESTR *rgszNames,
  21022         UINT cNames,
  21023         LCID lcid,
  21024         DISPID *rgDispId);
  21025 
  21026     HRESULT (STDMETHODCALLTYPE *Invoke)(
  21027         ISpeechPhraseProperty *This,
  21028         DISPID dispIdMember,
  21029         REFIID riid,
  21030         LCID lcid,
  21031         WORD wFlags,
  21032         DISPPARAMS *pDispParams,
  21033         VARIANT *pVarResult,
  21034         EXCEPINFO *pExcepInfo,
  21035         UINT *puArgErr);
  21036 
  21037     /*** ISpeechPhraseProperty methods ***/
  21038     HRESULT (STDMETHODCALLTYPE *get_Name)(
  21039         ISpeechPhraseProperty *This,
  21040         BSTR *Name);
  21041 
  21042     HRESULT (STDMETHODCALLTYPE *get_Id)(
  21043         ISpeechPhraseProperty *This,
  21044         LONG *Id);
  21045 
  21046     HRESULT (STDMETHODCALLTYPE *get_Value)(
  21047         ISpeechPhraseProperty *This,
  21048         VARIANT *Value);
  21049 
  21050     HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
  21051         ISpeechPhraseProperty *This,
  21052         LONG *FirstElement);
  21053 
  21054     HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
  21055         ISpeechPhraseProperty *This,
  21056         LONG *NumberOfElements);
  21057 
  21058     HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
  21059         ISpeechPhraseProperty *This,
  21060         float *Confidence);
  21061 
  21062     HRESULT (STDMETHODCALLTYPE *get_Confidence)(
  21063         ISpeechPhraseProperty *This,
  21064         SpeechEngineConfidence *Confidence);
  21065 
  21066     HRESULT (STDMETHODCALLTYPE *get_Parent)(
  21067         ISpeechPhraseProperty *This,
  21068         ISpeechPhraseProperty **ParentProperty);
  21069 
  21070     HRESULT (STDMETHODCALLTYPE *get_Children)(
  21071         ISpeechPhraseProperty *This,
  21072         ISpeechPhraseProperties **Children);
  21073 
  21074     END_INTERFACE
  21075 } ISpeechPhrasePropertyVtbl;
  21076 
  21077 interface ISpeechPhraseProperty {
  21078     CONST_VTBL ISpeechPhrasePropertyVtbl* lpVtbl;
  21079 };
  21080 
  21081 #ifdef COBJMACROS
  21082 #ifndef WIDL_C_INLINE_WRAPPERS
  21083 /*** IUnknown methods ***/
  21084 #define ISpeechPhraseProperty_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  21085 #define ISpeechPhraseProperty_AddRef(This) (This)->lpVtbl->AddRef(This)
  21086 #define ISpeechPhraseProperty_Release(This) (This)->lpVtbl->Release(This)
  21087 /*** IDispatch methods ***/
  21088 #define ISpeechPhraseProperty_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  21089 #define ISpeechPhraseProperty_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  21090 #define ISpeechPhraseProperty_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  21091 #define ISpeechPhraseProperty_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  21092 /*** ISpeechPhraseProperty methods ***/
  21093 #define ISpeechPhraseProperty_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
  21094 #define ISpeechPhraseProperty_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
  21095 #define ISpeechPhraseProperty_get_Value(This,Value) (This)->lpVtbl->get_Value(This,Value)
  21096 #define ISpeechPhraseProperty_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
  21097 #define ISpeechPhraseProperty_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
  21098 #define ISpeechPhraseProperty_get_EngineConfidence(This,Confidence) (This)->lpVtbl->get_EngineConfidence(This,Confidence)
  21099 #define ISpeechPhraseProperty_get_Confidence(This,Confidence) (This)->lpVtbl->get_Confidence(This,Confidence)
  21100 #define ISpeechPhraseProperty_get_Parent(This,ParentProperty) (This)->lpVtbl->get_Parent(This,ParentProperty)
  21101 #define ISpeechPhraseProperty_get_Children(This,Children) (This)->lpVtbl->get_Children(This,Children)
  21102 #else
  21103 /*** IUnknown methods ***/
  21104 static inline HRESULT ISpeechPhraseProperty_QueryInterface(ISpeechPhraseProperty* This,REFIID riid,void **ppvObject) {
  21105     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  21106 }
  21107 static inline ULONG ISpeechPhraseProperty_AddRef(ISpeechPhraseProperty* This) {
  21108     return This->lpVtbl->AddRef(This);
  21109 }
  21110 static inline ULONG ISpeechPhraseProperty_Release(ISpeechPhraseProperty* This) {
  21111     return This->lpVtbl->Release(This);
  21112 }
  21113 /*** IDispatch methods ***/
  21114 static inline HRESULT ISpeechPhraseProperty_GetTypeInfoCount(ISpeechPhraseProperty* This,UINT *pctinfo) {
  21115     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  21116 }
  21117 static inline HRESULT ISpeechPhraseProperty_GetTypeInfo(ISpeechPhraseProperty* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  21118     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  21119 }
  21120 static inline HRESULT ISpeechPhraseProperty_GetIDsOfNames(ISpeechPhraseProperty* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  21121     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  21122 }
  21123 static inline HRESULT ISpeechPhraseProperty_Invoke(ISpeechPhraseProperty* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  21124     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  21125 }
  21126 /*** ISpeechPhraseProperty methods ***/
  21127 static inline HRESULT ISpeechPhraseProperty_get_Name(ISpeechPhraseProperty* This,BSTR *Name) {
  21128     return This->lpVtbl->get_Name(This,Name);
  21129 }
  21130 static inline HRESULT ISpeechPhraseProperty_get_Id(ISpeechPhraseProperty* This,LONG *Id) {
  21131     return This->lpVtbl->get_Id(This,Id);
  21132 }
  21133 static inline HRESULT ISpeechPhraseProperty_get_Value(ISpeechPhraseProperty* This,VARIANT *Value) {
  21134     return This->lpVtbl->get_Value(This,Value);
  21135 }
  21136 static inline HRESULT ISpeechPhraseProperty_get_FirstElement(ISpeechPhraseProperty* This,LONG *FirstElement) {
  21137     return This->lpVtbl->get_FirstElement(This,FirstElement);
  21138 }
  21139 static inline HRESULT ISpeechPhraseProperty_get_NumberOfElements(ISpeechPhraseProperty* This,LONG *NumberOfElements) {
  21140     return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
  21141 }
  21142 static inline HRESULT ISpeechPhraseProperty_get_EngineConfidence(ISpeechPhraseProperty* This,float *Confidence) {
  21143     return This->lpVtbl->get_EngineConfidence(This,Confidence);
  21144 }
  21145 static inline HRESULT ISpeechPhraseProperty_get_Confidence(ISpeechPhraseProperty* This,SpeechEngineConfidence *Confidence) {
  21146     return This->lpVtbl->get_Confidence(This,Confidence);
  21147 }
  21148 static inline HRESULT ISpeechPhraseProperty_get_Parent(ISpeechPhraseProperty* This,ISpeechPhraseProperty **ParentProperty) {
  21149     return This->lpVtbl->get_Parent(This,ParentProperty);
  21150 }
  21151 static inline HRESULT ISpeechPhraseProperty_get_Children(ISpeechPhraseProperty* This,ISpeechPhraseProperties **Children) {
  21152     return This->lpVtbl->get_Children(This,Children);
  21153 }
  21154 #endif
  21155 #endif
  21156 
  21157 #endif
  21158 
  21159 
  21160 #endif  /* __ISpeechPhraseProperty_INTERFACE_DEFINED__ */
  21161 
  21162 /*****************************************************************************
  21163  * ISpeechPhraseProperties interface
  21164  */
  21165 #ifndef __ISpeechPhraseProperties_INTERFACE_DEFINED__
  21166 #define __ISpeechPhraseProperties_INTERFACE_DEFINED__
  21167 
  21168 DEFINE_GUID(IID_ISpeechPhraseProperties, 0x08166b47, 0x102e, 0x4b23, 0xa5,0x99, 0xbd,0xb9,0x8d,0xbf,0xd1,0xf4);
  21169 #if defined(__cplusplus) && !defined(CINTERFACE)
  21170 MIDL_INTERFACE("08166b47-102e-4b23-a599-bdb98dbfd1f4")
  21171 ISpeechPhraseProperties : public IDispatch
  21172 {
  21173     virtual HRESULT STDMETHODCALLTYPE get_Count(
  21174         LONG *Count) = 0;
  21175 
  21176     virtual HRESULT STDMETHODCALLTYPE Item(
  21177         LONG Index,
  21178         ISpeechPhraseProperty **Property) = 0;
  21179 
  21180     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
  21181         IUnknown **EnumVARIANT) = 0;
  21182 
  21183 };
  21184 #ifdef __CRT_UUID_DECL
  21185 __CRT_UUID_DECL(ISpeechPhraseProperties, 0x08166b47, 0x102e, 0x4b23, 0xa5,0x99, 0xbd,0xb9,0x8d,0xbf,0xd1,0xf4)
  21186 #endif
  21187 #else
  21188 typedef struct ISpeechPhrasePropertiesVtbl {
  21189     BEGIN_INTERFACE
  21190 
  21191     /*** IUnknown methods ***/
  21192     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  21193         ISpeechPhraseProperties *This,
  21194         REFIID riid,
  21195         void **ppvObject);
  21196 
  21197     ULONG (STDMETHODCALLTYPE *AddRef)(
  21198         ISpeechPhraseProperties *This);
  21199 
  21200     ULONG (STDMETHODCALLTYPE *Release)(
  21201         ISpeechPhraseProperties *This);
  21202 
  21203     /*** IDispatch methods ***/
  21204     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  21205         ISpeechPhraseProperties *This,
  21206         UINT *pctinfo);
  21207 
  21208     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  21209         ISpeechPhraseProperties *This,
  21210         UINT iTInfo,
  21211         LCID lcid,
  21212         ITypeInfo **ppTInfo);
  21213 
  21214     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  21215         ISpeechPhraseProperties *This,
  21216         REFIID riid,
  21217         LPOLESTR *rgszNames,
  21218         UINT cNames,
  21219         LCID lcid,
  21220         DISPID *rgDispId);
  21221 
  21222     HRESULT (STDMETHODCALLTYPE *Invoke)(
  21223         ISpeechPhraseProperties *This,
  21224         DISPID dispIdMember,
  21225         REFIID riid,
  21226         LCID lcid,
  21227         WORD wFlags,
  21228         DISPPARAMS *pDispParams,
  21229         VARIANT *pVarResult,
  21230         EXCEPINFO *pExcepInfo,
  21231         UINT *puArgErr);
  21232 
  21233     /*** ISpeechPhraseProperties methods ***/
  21234     HRESULT (STDMETHODCALLTYPE *get_Count)(
  21235         ISpeechPhraseProperties *This,
  21236         LONG *Count);
  21237 
  21238     HRESULT (STDMETHODCALLTYPE *Item)(
  21239         ISpeechPhraseProperties *This,
  21240         LONG Index,
  21241         ISpeechPhraseProperty **Property);
  21242 
  21243     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
  21244         ISpeechPhraseProperties *This,
  21245         IUnknown **EnumVARIANT);
  21246 
  21247     END_INTERFACE
  21248 } ISpeechPhrasePropertiesVtbl;
  21249 
  21250 interface ISpeechPhraseProperties {
  21251     CONST_VTBL ISpeechPhrasePropertiesVtbl* lpVtbl;
  21252 };
  21253 
  21254 #ifdef COBJMACROS
  21255 #ifndef WIDL_C_INLINE_WRAPPERS
  21256 /*** IUnknown methods ***/
  21257 #define ISpeechPhraseProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  21258 #define ISpeechPhraseProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
  21259 #define ISpeechPhraseProperties_Release(This) (This)->lpVtbl->Release(This)
  21260 /*** IDispatch methods ***/
  21261 #define ISpeechPhraseProperties_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  21262 #define ISpeechPhraseProperties_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  21263 #define ISpeechPhraseProperties_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  21264 #define ISpeechPhraseProperties_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  21265 /*** ISpeechPhraseProperties methods ***/
  21266 #define ISpeechPhraseProperties_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
  21267 #define ISpeechPhraseProperties_Item(This,Index,Property) (This)->lpVtbl->Item(This,Index,Property)
  21268 #define ISpeechPhraseProperties_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
  21269 #else
  21270 /*** IUnknown methods ***/
  21271 static inline HRESULT ISpeechPhraseProperties_QueryInterface(ISpeechPhraseProperties* This,REFIID riid,void **ppvObject) {
  21272     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  21273 }
  21274 static inline ULONG ISpeechPhraseProperties_AddRef(ISpeechPhraseProperties* This) {
  21275     return This->lpVtbl->AddRef(This);
  21276 }
  21277 static inline ULONG ISpeechPhraseProperties_Release(ISpeechPhraseProperties* This) {
  21278     return This->lpVtbl->Release(This);
  21279 }
  21280 /*** IDispatch methods ***/
  21281 static inline HRESULT ISpeechPhraseProperties_GetTypeInfoCount(ISpeechPhraseProperties* This,UINT *pctinfo) {
  21282     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  21283 }
  21284 static inline HRESULT ISpeechPhraseProperties_GetTypeInfo(ISpeechPhraseProperties* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  21285     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  21286 }
  21287 static inline HRESULT ISpeechPhraseProperties_GetIDsOfNames(ISpeechPhraseProperties* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  21288     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  21289 }
  21290 static inline HRESULT ISpeechPhraseProperties_Invoke(ISpeechPhraseProperties* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  21291     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  21292 }
  21293 /*** ISpeechPhraseProperties methods ***/
  21294 static inline HRESULT ISpeechPhraseProperties_get_Count(ISpeechPhraseProperties* This,LONG *Count) {
  21295     return This->lpVtbl->get_Count(This,Count);
  21296 }
  21297 static inline HRESULT ISpeechPhraseProperties_Item(ISpeechPhraseProperties* This,LONG Index,ISpeechPhraseProperty **Property) {
  21298     return This->lpVtbl->Item(This,Index,Property);
  21299 }
  21300 static inline HRESULT ISpeechPhraseProperties_get__NewEnum(ISpeechPhraseProperties* This,IUnknown **EnumVARIANT) {
  21301     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
  21302 }
  21303 #endif
  21304 #endif
  21305 
  21306 #endif
  21307 
  21308 
  21309 #endif  /* __ISpeechPhraseProperties_INTERFACE_DEFINED__ */
  21310 
  21311 /*****************************************************************************
  21312  * ISpeechPhraseRule interface
  21313  */
  21314 #ifndef __ISpeechPhraseRule_INTERFACE_DEFINED__
  21315 #define __ISpeechPhraseRule_INTERFACE_DEFINED__
  21316 
  21317 DEFINE_GUID(IID_ISpeechPhraseRule, 0xa7bfe112, 0xa4a0, 0x48d9, 0xb6,0x02, 0xc3,0x13,0x84,0x3f,0x69,0x64);
  21318 #if defined(__cplusplus) && !defined(CINTERFACE)
  21319 MIDL_INTERFACE("a7bfe112-a4a0-48d9-b602-c313843f6964")
  21320 ISpeechPhraseRule : public IDispatch
  21321 {
  21322     virtual HRESULT STDMETHODCALLTYPE get_Name(
  21323         BSTR *Name) = 0;
  21324 
  21325     virtual HRESULT STDMETHODCALLTYPE get_Id(
  21326         LONG *Id) = 0;
  21327 
  21328     virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
  21329         LONG *FirstElement) = 0;
  21330 
  21331     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
  21332         LONG *NumberOfElements) = 0;
  21333 
  21334     virtual HRESULT STDMETHODCALLTYPE get_Parent(
  21335         ISpeechPhraseRule **Parent) = 0;
  21336 
  21337     virtual HRESULT STDMETHODCALLTYPE get_Children(
  21338         ISpeechPhraseRules **Children) = 0;
  21339 
  21340     virtual HRESULT STDMETHODCALLTYPE get_Confidence(
  21341         SpeechEngineConfidence *ActualConfidence) = 0;
  21342 
  21343     virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
  21344         float *EngineConfidence) = 0;
  21345 
  21346 };
  21347 #ifdef __CRT_UUID_DECL
  21348 __CRT_UUID_DECL(ISpeechPhraseRule, 0xa7bfe112, 0xa4a0, 0x48d9, 0xb6,0x02, 0xc3,0x13,0x84,0x3f,0x69,0x64)
  21349 #endif
  21350 #else
  21351 typedef struct ISpeechPhraseRuleVtbl {
  21352     BEGIN_INTERFACE
  21353 
  21354     /*** IUnknown methods ***/
  21355     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  21356         ISpeechPhraseRule *This,
  21357         REFIID riid,
  21358         void **ppvObject);
  21359 
  21360     ULONG (STDMETHODCALLTYPE *AddRef)(
  21361         ISpeechPhraseRule *This);
  21362 
  21363     ULONG (STDMETHODCALLTYPE *Release)(
  21364         ISpeechPhraseRule *This);
  21365 
  21366     /*** IDispatch methods ***/
  21367     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  21368         ISpeechPhraseRule *This,
  21369         UINT *pctinfo);
  21370 
  21371     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  21372         ISpeechPhraseRule *This,
  21373         UINT iTInfo,
  21374         LCID lcid,
  21375         ITypeInfo **ppTInfo);
  21376 
  21377     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  21378         ISpeechPhraseRule *This,
  21379         REFIID riid,
  21380         LPOLESTR *rgszNames,
  21381         UINT cNames,
  21382         LCID lcid,
  21383         DISPID *rgDispId);
  21384 
  21385     HRESULT (STDMETHODCALLTYPE *Invoke)(
  21386         ISpeechPhraseRule *This,
  21387         DISPID dispIdMember,
  21388         REFIID riid,
  21389         LCID lcid,
  21390         WORD wFlags,
  21391         DISPPARAMS *pDispParams,
  21392         VARIANT *pVarResult,
  21393         EXCEPINFO *pExcepInfo,
  21394         UINT *puArgErr);
  21395 
  21396     /*** ISpeechPhraseRule methods ***/
  21397     HRESULT (STDMETHODCALLTYPE *get_Name)(
  21398         ISpeechPhraseRule *This,
  21399         BSTR *Name);
  21400 
  21401     HRESULT (STDMETHODCALLTYPE *get_Id)(
  21402         ISpeechPhraseRule *This,
  21403         LONG *Id);
  21404 
  21405     HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
  21406         ISpeechPhraseRule *This,
  21407         LONG *FirstElement);
  21408 
  21409     HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
  21410         ISpeechPhraseRule *This,
  21411         LONG *NumberOfElements);
  21412 
  21413     HRESULT (STDMETHODCALLTYPE *get_Parent)(
  21414         ISpeechPhraseRule *This,
  21415         ISpeechPhraseRule **Parent);
  21416 
  21417     HRESULT (STDMETHODCALLTYPE *get_Children)(
  21418         ISpeechPhraseRule *This,
  21419         ISpeechPhraseRules **Children);
  21420 
  21421     HRESULT (STDMETHODCALLTYPE *get_Confidence)(
  21422         ISpeechPhraseRule *This,
  21423         SpeechEngineConfidence *ActualConfidence);
  21424 
  21425     HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
  21426         ISpeechPhraseRule *This,
  21427         float *EngineConfidence);
  21428 
  21429     END_INTERFACE
  21430 } ISpeechPhraseRuleVtbl;
  21431 
  21432 interface ISpeechPhraseRule {
  21433     CONST_VTBL ISpeechPhraseRuleVtbl* lpVtbl;
  21434 };
  21435 
  21436 #ifdef COBJMACROS
  21437 #ifndef WIDL_C_INLINE_WRAPPERS
  21438 /*** IUnknown methods ***/
  21439 #define ISpeechPhraseRule_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  21440 #define ISpeechPhraseRule_AddRef(This) (This)->lpVtbl->AddRef(This)
  21441 #define ISpeechPhraseRule_Release(This) (This)->lpVtbl->Release(This)
  21442 /*** IDispatch methods ***/
  21443 #define ISpeechPhraseRule_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  21444 #define ISpeechPhraseRule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  21445 #define ISpeechPhraseRule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  21446 #define ISpeechPhraseRule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  21447 /*** ISpeechPhraseRule methods ***/
  21448 #define ISpeechPhraseRule_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
  21449 #define ISpeechPhraseRule_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
  21450 #define ISpeechPhraseRule_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
  21451 #define ISpeechPhraseRule_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
  21452 #define ISpeechPhraseRule_get_Parent(This,Parent) (This)->lpVtbl->get_Parent(This,Parent)
  21453 #define ISpeechPhraseRule_get_Children(This,Children) (This)->lpVtbl->get_Children(This,Children)
  21454 #define ISpeechPhraseRule_get_Confidence(This,ActualConfidence) (This)->lpVtbl->get_Confidence(This,ActualConfidence)
  21455 #define ISpeechPhraseRule_get_EngineConfidence(This,EngineConfidence) (This)->lpVtbl->get_EngineConfidence(This,EngineConfidence)
  21456 #else
  21457 /*** IUnknown methods ***/
  21458 static inline HRESULT ISpeechPhraseRule_QueryInterface(ISpeechPhraseRule* This,REFIID riid,void **ppvObject) {
  21459     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  21460 }
  21461 static inline ULONG ISpeechPhraseRule_AddRef(ISpeechPhraseRule* This) {
  21462     return This->lpVtbl->AddRef(This);
  21463 }
  21464 static inline ULONG ISpeechPhraseRule_Release(ISpeechPhraseRule* This) {
  21465     return This->lpVtbl->Release(This);
  21466 }
  21467 /*** IDispatch methods ***/
  21468 static inline HRESULT ISpeechPhraseRule_GetTypeInfoCount(ISpeechPhraseRule* This,UINT *pctinfo) {
  21469     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  21470 }
  21471 static inline HRESULT ISpeechPhraseRule_GetTypeInfo(ISpeechPhraseRule* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  21472     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  21473 }
  21474 static inline HRESULT ISpeechPhraseRule_GetIDsOfNames(ISpeechPhraseRule* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  21475     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  21476 }
  21477 static inline HRESULT ISpeechPhraseRule_Invoke(ISpeechPhraseRule* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  21478     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  21479 }
  21480 /*** ISpeechPhraseRule methods ***/
  21481 static inline HRESULT ISpeechPhraseRule_get_Name(ISpeechPhraseRule* This,BSTR *Name) {
  21482     return This->lpVtbl->get_Name(This,Name);
  21483 }
  21484 static inline HRESULT ISpeechPhraseRule_get_Id(ISpeechPhraseRule* This,LONG *Id) {
  21485     return This->lpVtbl->get_Id(This,Id);
  21486 }
  21487 static inline HRESULT ISpeechPhraseRule_get_FirstElement(ISpeechPhraseRule* This,LONG *FirstElement) {
  21488     return This->lpVtbl->get_FirstElement(This,FirstElement);
  21489 }
  21490 static inline HRESULT ISpeechPhraseRule_get_NumberOfElements(ISpeechPhraseRule* This,LONG *NumberOfElements) {
  21491     return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
  21492 }
  21493 static inline HRESULT ISpeechPhraseRule_get_Parent(ISpeechPhraseRule* This,ISpeechPhraseRule **Parent) {
  21494     return This->lpVtbl->get_Parent(This,Parent);
  21495 }
  21496 static inline HRESULT ISpeechPhraseRule_get_Children(ISpeechPhraseRule* This,ISpeechPhraseRules **Children) {
  21497     return This->lpVtbl->get_Children(This,Children);
  21498 }
  21499 static inline HRESULT ISpeechPhraseRule_get_Confidence(ISpeechPhraseRule* This,SpeechEngineConfidence *ActualConfidence) {
  21500     return This->lpVtbl->get_Confidence(This,ActualConfidence);
  21501 }
  21502 static inline HRESULT ISpeechPhraseRule_get_EngineConfidence(ISpeechPhraseRule* This,float *EngineConfidence) {
  21503     return This->lpVtbl->get_EngineConfidence(This,EngineConfidence);
  21504 }
  21505 #endif
  21506 #endif
  21507 
  21508 #endif
  21509 
  21510 
  21511 #endif  /* __ISpeechPhraseRule_INTERFACE_DEFINED__ */
  21512 
  21513 /*****************************************************************************
  21514  * ISpeechPhraseRules interface
  21515  */
  21516 #ifndef __ISpeechPhraseRules_INTERFACE_DEFINED__
  21517 #define __ISpeechPhraseRules_INTERFACE_DEFINED__
  21518 
  21519 DEFINE_GUID(IID_ISpeechPhraseRules, 0x9047d593, 0x01dd, 0x4b72, 0x81,0xa3, 0xe4,0xa0,0xca,0x69,0xf4,0x07);
  21520 #if defined(__cplusplus) && !defined(CINTERFACE)
  21521 MIDL_INTERFACE("9047d593-01dd-4b72-81a3-e4a0ca69f407")
  21522 ISpeechPhraseRules : public IDispatch
  21523 {
  21524     virtual HRESULT STDMETHODCALLTYPE get_Count(
  21525         LONG *Count) = 0;
  21526 
  21527     virtual HRESULT STDMETHODCALLTYPE Item(
  21528         LONG Index,
  21529         ISpeechPhraseRule **Rule) = 0;
  21530 
  21531     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
  21532         IUnknown **EnumVARIANT) = 0;
  21533 
  21534 };
  21535 #ifdef __CRT_UUID_DECL
  21536 __CRT_UUID_DECL(ISpeechPhraseRules, 0x9047d593, 0x01dd, 0x4b72, 0x81,0xa3, 0xe4,0xa0,0xca,0x69,0xf4,0x07)
  21537 #endif
  21538 #else
  21539 typedef struct ISpeechPhraseRulesVtbl {
  21540     BEGIN_INTERFACE
  21541 
  21542     /*** IUnknown methods ***/
  21543     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  21544         ISpeechPhraseRules *This,
  21545         REFIID riid,
  21546         void **ppvObject);
  21547 
  21548     ULONG (STDMETHODCALLTYPE *AddRef)(
  21549         ISpeechPhraseRules *This);
  21550 
  21551     ULONG (STDMETHODCALLTYPE *Release)(
  21552         ISpeechPhraseRules *This);
  21553 
  21554     /*** IDispatch methods ***/
  21555     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  21556         ISpeechPhraseRules *This,
  21557         UINT *pctinfo);
  21558 
  21559     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  21560         ISpeechPhraseRules *This,
  21561         UINT iTInfo,
  21562         LCID lcid,
  21563         ITypeInfo **ppTInfo);
  21564 
  21565     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  21566         ISpeechPhraseRules *This,
  21567         REFIID riid,
  21568         LPOLESTR *rgszNames,
  21569         UINT cNames,
  21570         LCID lcid,
  21571         DISPID *rgDispId);
  21572 
  21573     HRESULT (STDMETHODCALLTYPE *Invoke)(
  21574         ISpeechPhraseRules *This,
  21575         DISPID dispIdMember,
  21576         REFIID riid,
  21577         LCID lcid,
  21578         WORD wFlags,
  21579         DISPPARAMS *pDispParams,
  21580         VARIANT *pVarResult,
  21581         EXCEPINFO *pExcepInfo,
  21582         UINT *puArgErr);
  21583 
  21584     /*** ISpeechPhraseRules methods ***/
  21585     HRESULT (STDMETHODCALLTYPE *get_Count)(
  21586         ISpeechPhraseRules *This,
  21587         LONG *Count);
  21588 
  21589     HRESULT (STDMETHODCALLTYPE *Item)(
  21590         ISpeechPhraseRules *This,
  21591         LONG Index,
  21592         ISpeechPhraseRule **Rule);
  21593 
  21594     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
  21595         ISpeechPhraseRules *This,
  21596         IUnknown **EnumVARIANT);
  21597 
  21598     END_INTERFACE
  21599 } ISpeechPhraseRulesVtbl;
  21600 
  21601 interface ISpeechPhraseRules {
  21602     CONST_VTBL ISpeechPhraseRulesVtbl* lpVtbl;
  21603 };
  21604 
  21605 #ifdef COBJMACROS
  21606 #ifndef WIDL_C_INLINE_WRAPPERS
  21607 /*** IUnknown methods ***/
  21608 #define ISpeechPhraseRules_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  21609 #define ISpeechPhraseRules_AddRef(This) (This)->lpVtbl->AddRef(This)
  21610 #define ISpeechPhraseRules_Release(This) (This)->lpVtbl->Release(This)
  21611 /*** IDispatch methods ***/
  21612 #define ISpeechPhraseRules_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  21613 #define ISpeechPhraseRules_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  21614 #define ISpeechPhraseRules_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  21615 #define ISpeechPhraseRules_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  21616 /*** ISpeechPhraseRules methods ***/
  21617 #define ISpeechPhraseRules_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
  21618 #define ISpeechPhraseRules_Item(This,Index,Rule) (This)->lpVtbl->Item(This,Index,Rule)
  21619 #define ISpeechPhraseRules_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
  21620 #else
  21621 /*** IUnknown methods ***/
  21622 static inline HRESULT ISpeechPhraseRules_QueryInterface(ISpeechPhraseRules* This,REFIID riid,void **ppvObject) {
  21623     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  21624 }
  21625 static inline ULONG ISpeechPhraseRules_AddRef(ISpeechPhraseRules* This) {
  21626     return This->lpVtbl->AddRef(This);
  21627 }
  21628 static inline ULONG ISpeechPhraseRules_Release(ISpeechPhraseRules* This) {
  21629     return This->lpVtbl->Release(This);
  21630 }
  21631 /*** IDispatch methods ***/
  21632 static inline HRESULT ISpeechPhraseRules_GetTypeInfoCount(ISpeechPhraseRules* This,UINT *pctinfo) {
  21633     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  21634 }
  21635 static inline HRESULT ISpeechPhraseRules_GetTypeInfo(ISpeechPhraseRules* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  21636     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  21637 }
  21638 static inline HRESULT ISpeechPhraseRules_GetIDsOfNames(ISpeechPhraseRules* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  21639     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  21640 }
  21641 static inline HRESULT ISpeechPhraseRules_Invoke(ISpeechPhraseRules* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  21642     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  21643 }
  21644 /*** ISpeechPhraseRules methods ***/
  21645 static inline HRESULT ISpeechPhraseRules_get_Count(ISpeechPhraseRules* This,LONG *Count) {
  21646     return This->lpVtbl->get_Count(This,Count);
  21647 }
  21648 static inline HRESULT ISpeechPhraseRules_Item(ISpeechPhraseRules* This,LONG Index,ISpeechPhraseRule **Rule) {
  21649     return This->lpVtbl->Item(This,Index,Rule);
  21650 }
  21651 static inline HRESULT ISpeechPhraseRules_get__NewEnum(ISpeechPhraseRules* This,IUnknown **EnumVARIANT) {
  21652     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
  21653 }
  21654 #endif
  21655 #endif
  21656 
  21657 #endif
  21658 
  21659 
  21660 #endif  /* __ISpeechPhraseRules_INTERFACE_DEFINED__ */
  21661 
  21662 /*****************************************************************************
  21663  * ISpeechLexiconWords interface
  21664  */
  21665 #ifndef __ISpeechLexiconWords_INTERFACE_DEFINED__
  21666 #define __ISpeechLexiconWords_INTERFACE_DEFINED__
  21667 
  21668 DEFINE_GUID(IID_ISpeechLexiconWords, 0x8d199862, 0x415e, 0x47d5, 0xac,0x4f, 0xfa,0xa6,0x08,0xb4,0x24,0xe6);
  21669 #if defined(__cplusplus) && !defined(CINTERFACE)
  21670 MIDL_INTERFACE("8d199862-415e-47d5-ac4f-faa608b424e6")
  21671 ISpeechLexiconWords : public IDispatch
  21672 {
  21673     virtual HRESULT STDMETHODCALLTYPE get_Count(
  21674         LONG *Count) = 0;
  21675 
  21676     virtual HRESULT STDMETHODCALLTYPE Item(
  21677         LONG Index,
  21678         ISpeechLexiconWord **Word) = 0;
  21679 
  21680     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
  21681         IUnknown **EnumVARIANT) = 0;
  21682 
  21683 };
  21684 #ifdef __CRT_UUID_DECL
  21685 __CRT_UUID_DECL(ISpeechLexiconWords, 0x8d199862, 0x415e, 0x47d5, 0xac,0x4f, 0xfa,0xa6,0x08,0xb4,0x24,0xe6)
  21686 #endif
  21687 #else
  21688 typedef struct ISpeechLexiconWordsVtbl {
  21689     BEGIN_INTERFACE
  21690 
  21691     /*** IUnknown methods ***/
  21692     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  21693         ISpeechLexiconWords *This,
  21694         REFIID riid,
  21695         void **ppvObject);
  21696 
  21697     ULONG (STDMETHODCALLTYPE *AddRef)(
  21698         ISpeechLexiconWords *This);
  21699 
  21700     ULONG (STDMETHODCALLTYPE *Release)(
  21701         ISpeechLexiconWords *This);
  21702 
  21703     /*** IDispatch methods ***/
  21704     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  21705         ISpeechLexiconWords *This,
  21706         UINT *pctinfo);
  21707 
  21708     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  21709         ISpeechLexiconWords *This,
  21710         UINT iTInfo,
  21711         LCID lcid,
  21712         ITypeInfo **ppTInfo);
  21713 
  21714     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  21715         ISpeechLexiconWords *This,
  21716         REFIID riid,
  21717         LPOLESTR *rgszNames,
  21718         UINT cNames,
  21719         LCID lcid,
  21720         DISPID *rgDispId);
  21721 
  21722     HRESULT (STDMETHODCALLTYPE *Invoke)(
  21723         ISpeechLexiconWords *This,
  21724         DISPID dispIdMember,
  21725         REFIID riid,
  21726         LCID lcid,
  21727         WORD wFlags,
  21728         DISPPARAMS *pDispParams,
  21729         VARIANT *pVarResult,
  21730         EXCEPINFO *pExcepInfo,
  21731         UINT *puArgErr);
  21732 
  21733     /*** ISpeechLexiconWords methods ***/
  21734     HRESULT (STDMETHODCALLTYPE *get_Count)(
  21735         ISpeechLexiconWords *This,
  21736         LONG *Count);
  21737 
  21738     HRESULT (STDMETHODCALLTYPE *Item)(
  21739         ISpeechLexiconWords *This,
  21740         LONG Index,
  21741         ISpeechLexiconWord **Word);
  21742 
  21743     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
  21744         ISpeechLexiconWords *This,
  21745         IUnknown **EnumVARIANT);
  21746 
  21747     END_INTERFACE
  21748 } ISpeechLexiconWordsVtbl;
  21749 
  21750 interface ISpeechLexiconWords {
  21751     CONST_VTBL ISpeechLexiconWordsVtbl* lpVtbl;
  21752 };
  21753 
  21754 #ifdef COBJMACROS
  21755 #ifndef WIDL_C_INLINE_WRAPPERS
  21756 /*** IUnknown methods ***/
  21757 #define ISpeechLexiconWords_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  21758 #define ISpeechLexiconWords_AddRef(This) (This)->lpVtbl->AddRef(This)
  21759 #define ISpeechLexiconWords_Release(This) (This)->lpVtbl->Release(This)
  21760 /*** IDispatch methods ***/
  21761 #define ISpeechLexiconWords_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  21762 #define ISpeechLexiconWords_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  21763 #define ISpeechLexiconWords_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  21764 #define ISpeechLexiconWords_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  21765 /*** ISpeechLexiconWords methods ***/
  21766 #define ISpeechLexiconWords_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
  21767 #define ISpeechLexiconWords_Item(This,Index,Word) (This)->lpVtbl->Item(This,Index,Word)
  21768 #define ISpeechLexiconWords_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
  21769 #else
  21770 /*** IUnknown methods ***/
  21771 static inline HRESULT ISpeechLexiconWords_QueryInterface(ISpeechLexiconWords* This,REFIID riid,void **ppvObject) {
  21772     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  21773 }
  21774 static inline ULONG ISpeechLexiconWords_AddRef(ISpeechLexiconWords* This) {
  21775     return This->lpVtbl->AddRef(This);
  21776 }
  21777 static inline ULONG ISpeechLexiconWords_Release(ISpeechLexiconWords* This) {
  21778     return This->lpVtbl->Release(This);
  21779 }
  21780 /*** IDispatch methods ***/
  21781 static inline HRESULT ISpeechLexiconWords_GetTypeInfoCount(ISpeechLexiconWords* This,UINT *pctinfo) {
  21782     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  21783 }
  21784 static inline HRESULT ISpeechLexiconWords_GetTypeInfo(ISpeechLexiconWords* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  21785     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  21786 }
  21787 static inline HRESULT ISpeechLexiconWords_GetIDsOfNames(ISpeechLexiconWords* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  21788     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  21789 }
  21790 static inline HRESULT ISpeechLexiconWords_Invoke(ISpeechLexiconWords* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  21791     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  21792 }
  21793 /*** ISpeechLexiconWords methods ***/
  21794 static inline HRESULT ISpeechLexiconWords_get_Count(ISpeechLexiconWords* This,LONG *Count) {
  21795     return This->lpVtbl->get_Count(This,Count);
  21796 }
  21797 static inline HRESULT ISpeechLexiconWords_Item(ISpeechLexiconWords* This,LONG Index,ISpeechLexiconWord **Word) {
  21798     return This->lpVtbl->Item(This,Index,Word);
  21799 }
  21800 static inline HRESULT ISpeechLexiconWords_get__NewEnum(ISpeechLexiconWords* This,IUnknown **EnumVARIANT) {
  21801     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
  21802 }
  21803 #endif
  21804 #endif
  21805 
  21806 #endif
  21807 
  21808 
  21809 #endif  /* __ISpeechLexiconWords_INTERFACE_DEFINED__ */
  21810 
  21811 /*****************************************************************************
  21812  * ISpeechLexicon interface
  21813  */
  21814 #ifndef __ISpeechLexicon_INTERFACE_DEFINED__
  21815 #define __ISpeechLexicon_INTERFACE_DEFINED__
  21816 
  21817 DEFINE_GUID(IID_ISpeechLexicon, 0x3da7627a, 0xc7ae, 0x4b23, 0x87,0x08, 0x63,0x8c,0x50,0x36,0x2c,0x25);
  21818 #if defined(__cplusplus) && !defined(CINTERFACE)
  21819 MIDL_INTERFACE("3da7627a-c7ae-4b23-8708-638c50362c25")
  21820 ISpeechLexicon : public IDispatch
  21821 {
  21822     virtual HRESULT STDMETHODCALLTYPE get_GenerationId(
  21823         LONG *GenerationId) = 0;
  21824 
  21825     virtual HRESULT STDMETHODCALLTYPE GetWords(
  21826         SpeechLexiconType Flags,
  21827         LONG *GenerationID,
  21828         ISpeechLexiconWords **Words) = 0;
  21829 
  21830     virtual HRESULT STDMETHODCALLTYPE AddPronunciation(
  21831         BSTR bstrWord,
  21832         SpeechLanguageId LangId,
  21833         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
  21834         BSTR bstrPronunciation = L"") = 0;
  21835 
  21836     virtual HRESULT STDMETHODCALLTYPE AddPronunciationByPhoneIds(
  21837         BSTR bstrWord,
  21838         SpeechLanguageId LangId,
  21839         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
  21840         VARIANT *PhoneIds = 0) = 0;
  21841 
  21842     virtual HRESULT STDMETHODCALLTYPE RemovePronunciation(
  21843         BSTR bstrWord,
  21844         SpeechLanguageId LangId,
  21845         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
  21846         BSTR bstrPronunciation = L"") = 0;
  21847 
  21848     virtual HRESULT STDMETHODCALLTYPE RemovePronunciationByPhoneIds(
  21849         BSTR bstrWord,
  21850         SpeechLanguageId LangId,
  21851         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
  21852         VARIANT *PhoneIds = 0) = 0;
  21853 
  21854     virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
  21855         BSTR bstrWord,
  21856         SpeechLanguageId LangId,
  21857         SpeechLexiconType TypeFlags,
  21858         ISpeechLexiconPronunciations **ppPronunciations) = 0;
  21859 
  21860     virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
  21861         LONG *GenerationID,
  21862         ISpeechLexiconWords **ppWords) = 0;
  21863 
  21864 };
  21865 #ifdef __CRT_UUID_DECL
  21866 __CRT_UUID_DECL(ISpeechLexicon, 0x3da7627a, 0xc7ae, 0x4b23, 0x87,0x08, 0x63,0x8c,0x50,0x36,0x2c,0x25)
  21867 #endif
  21868 #else
  21869 typedef struct ISpeechLexiconVtbl {
  21870     BEGIN_INTERFACE
  21871 
  21872     /*** IUnknown methods ***/
  21873     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  21874         ISpeechLexicon *This,
  21875         REFIID riid,
  21876         void **ppvObject);
  21877 
  21878     ULONG (STDMETHODCALLTYPE *AddRef)(
  21879         ISpeechLexicon *This);
  21880 
  21881     ULONG (STDMETHODCALLTYPE *Release)(
  21882         ISpeechLexicon *This);
  21883 
  21884     /*** IDispatch methods ***/
  21885     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  21886         ISpeechLexicon *This,
  21887         UINT *pctinfo);
  21888 
  21889     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  21890         ISpeechLexicon *This,
  21891         UINT iTInfo,
  21892         LCID lcid,
  21893         ITypeInfo **ppTInfo);
  21894 
  21895     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  21896         ISpeechLexicon *This,
  21897         REFIID riid,
  21898         LPOLESTR *rgszNames,
  21899         UINT cNames,
  21900         LCID lcid,
  21901         DISPID *rgDispId);
  21902 
  21903     HRESULT (STDMETHODCALLTYPE *Invoke)(
  21904         ISpeechLexicon *This,
  21905         DISPID dispIdMember,
  21906         REFIID riid,
  21907         LCID lcid,
  21908         WORD wFlags,
  21909         DISPPARAMS *pDispParams,
  21910         VARIANT *pVarResult,
  21911         EXCEPINFO *pExcepInfo,
  21912         UINT *puArgErr);
  21913 
  21914     /*** ISpeechLexicon methods ***/
  21915     HRESULT (STDMETHODCALLTYPE *get_GenerationId)(
  21916         ISpeechLexicon *This,
  21917         LONG *GenerationId);
  21918 
  21919     HRESULT (STDMETHODCALLTYPE *GetWords)(
  21920         ISpeechLexicon *This,
  21921         SpeechLexiconType Flags,
  21922         LONG *GenerationID,
  21923         ISpeechLexiconWords **Words);
  21924 
  21925     HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
  21926         ISpeechLexicon *This,
  21927         BSTR bstrWord,
  21928         SpeechLanguageId LangId,
  21929         SpeechPartOfSpeech PartOfSpeech,
  21930         BSTR bstrPronunciation);
  21931 
  21932     HRESULT (STDMETHODCALLTYPE *AddPronunciationByPhoneIds)(
  21933         ISpeechLexicon *This,
  21934         BSTR bstrWord,
  21935         SpeechLanguageId LangId,
  21936         SpeechPartOfSpeech PartOfSpeech,
  21937         VARIANT *PhoneIds);
  21938 
  21939     HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
  21940         ISpeechLexicon *This,
  21941         BSTR bstrWord,
  21942         SpeechLanguageId LangId,
  21943         SpeechPartOfSpeech PartOfSpeech,
  21944         BSTR bstrPronunciation);
  21945 
  21946     HRESULT (STDMETHODCALLTYPE *RemovePronunciationByPhoneIds)(
  21947         ISpeechLexicon *This,
  21948         BSTR bstrWord,
  21949         SpeechLanguageId LangId,
  21950         SpeechPartOfSpeech PartOfSpeech,
  21951         VARIANT *PhoneIds);
  21952 
  21953     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
  21954         ISpeechLexicon *This,
  21955         BSTR bstrWord,
  21956         SpeechLanguageId LangId,
  21957         SpeechLexiconType TypeFlags,
  21958         ISpeechLexiconPronunciations **ppPronunciations);
  21959 
  21960     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
  21961         ISpeechLexicon *This,
  21962         LONG *GenerationID,
  21963         ISpeechLexiconWords **ppWords);
  21964 
  21965     END_INTERFACE
  21966 } ISpeechLexiconVtbl;
  21967 
  21968 interface ISpeechLexicon {
  21969     CONST_VTBL ISpeechLexiconVtbl* lpVtbl;
  21970 };
  21971 
  21972 #ifdef COBJMACROS
  21973 #ifndef WIDL_C_INLINE_WRAPPERS
  21974 /*** IUnknown methods ***/
  21975 #define ISpeechLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  21976 #define ISpeechLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
  21977 #define ISpeechLexicon_Release(This) (This)->lpVtbl->Release(This)
  21978 /*** IDispatch methods ***/
  21979 #define ISpeechLexicon_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  21980 #define ISpeechLexicon_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  21981 #define ISpeechLexicon_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  21982 #define ISpeechLexicon_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  21983 /*** ISpeechLexicon methods ***/
  21984 #define ISpeechLexicon_get_GenerationId(This,GenerationId) (This)->lpVtbl->get_GenerationId(This,GenerationId)
  21985 #define ISpeechLexicon_GetWords(This,Flags,GenerationID,Words) (This)->lpVtbl->GetWords(This,Flags,GenerationID,Words)
  21986 #define ISpeechLexicon_AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation) (This)->lpVtbl->AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation)
  21987 #define ISpeechLexicon_AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds) (This)->lpVtbl->AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds)
  21988 #define ISpeechLexicon_RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation) (This)->lpVtbl->RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation)
  21989 #define ISpeechLexicon_RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds) (This)->lpVtbl->RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds)
  21990 #define ISpeechLexicon_GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations) (This)->lpVtbl->GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations)
  21991 #define ISpeechLexicon_GetGenerationChange(This,GenerationID,ppWords) (This)->lpVtbl->GetGenerationChange(This,GenerationID,ppWords)
  21992 #else
  21993 /*** IUnknown methods ***/
  21994 static inline HRESULT ISpeechLexicon_QueryInterface(ISpeechLexicon* This,REFIID riid,void **ppvObject) {
  21995     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  21996 }
  21997 static inline ULONG ISpeechLexicon_AddRef(ISpeechLexicon* This) {
  21998     return This->lpVtbl->AddRef(This);
  21999 }
  22000 static inline ULONG ISpeechLexicon_Release(ISpeechLexicon* This) {
  22001     return This->lpVtbl->Release(This);
  22002 }
  22003 /*** IDispatch methods ***/
  22004 static inline HRESULT ISpeechLexicon_GetTypeInfoCount(ISpeechLexicon* This,UINT *pctinfo) {
  22005     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  22006 }
  22007 static inline HRESULT ISpeechLexicon_GetTypeInfo(ISpeechLexicon* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  22008     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  22009 }
  22010 static inline HRESULT ISpeechLexicon_GetIDsOfNames(ISpeechLexicon* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  22011     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  22012 }
  22013 static inline HRESULT ISpeechLexicon_Invoke(ISpeechLexicon* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  22014     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  22015 }
  22016 /*** ISpeechLexicon methods ***/
  22017 static inline HRESULT ISpeechLexicon_get_GenerationId(ISpeechLexicon* This,LONG *GenerationId) {
  22018     return This->lpVtbl->get_GenerationId(This,GenerationId);
  22019 }
  22020 static inline HRESULT ISpeechLexicon_GetWords(ISpeechLexicon* This,SpeechLexiconType Flags,LONG *GenerationID,ISpeechLexiconWords **Words) {
  22021     return This->lpVtbl->GetWords(This,Flags,GenerationID,Words);
  22022 }
  22023 static inline HRESULT ISpeechLexicon_AddPronunciation(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,BSTR bstrPronunciation) {
  22024     return This->lpVtbl->AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation);
  22025 }
  22026 static inline HRESULT ISpeechLexicon_AddPronunciationByPhoneIds(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,VARIANT *PhoneIds) {
  22027     return This->lpVtbl->AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds);
  22028 }
  22029 static inline HRESULT ISpeechLexicon_RemovePronunciation(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,BSTR bstrPronunciation) {
  22030     return This->lpVtbl->RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation);
  22031 }
  22032 static inline HRESULT ISpeechLexicon_RemovePronunciationByPhoneIds(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,VARIANT *PhoneIds) {
  22033     return This->lpVtbl->RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds);
  22034 }
  22035 static inline HRESULT ISpeechLexicon_GetPronunciations(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechLexiconType TypeFlags,ISpeechLexiconPronunciations **ppPronunciations) {
  22036     return This->lpVtbl->GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations);
  22037 }
  22038 static inline HRESULT ISpeechLexicon_GetGenerationChange(ISpeechLexicon* This,LONG *GenerationID,ISpeechLexiconWords **ppWords) {
  22039     return This->lpVtbl->GetGenerationChange(This,GenerationID,ppWords);
  22040 }
  22041 #endif
  22042 #endif
  22043 
  22044 #endif
  22045 
  22046 
  22047 #endif  /* __ISpeechLexicon_INTERFACE_DEFINED__ */
  22048 
  22049 /*****************************************************************************
  22050  * ISpeechLexiconWord interface
  22051  */
  22052 #ifndef __ISpeechLexiconWord_INTERFACE_DEFINED__
  22053 #define __ISpeechLexiconWord_INTERFACE_DEFINED__
  22054 
  22055 DEFINE_GUID(IID_ISpeechLexiconWord, 0x4e5b933c, 0xc9be, 0x48ed, 0x88,0x42, 0x1e,0xe5,0x1b,0xb1,0xd4,0xff);
  22056 #if defined(__cplusplus) && !defined(CINTERFACE)
  22057 MIDL_INTERFACE("4e5b933c-c9be-48ed-8842-1ee51bb1d4ff")
  22058 ISpeechLexiconWord : public IDispatch
  22059 {
  22060     virtual HRESULT STDMETHODCALLTYPE get_LangId(
  22061         SpeechLanguageId *LangId) = 0;
  22062 
  22063     virtual HRESULT STDMETHODCALLTYPE get_Type(
  22064         SpeechWordType *WordType) = 0;
  22065 
  22066     virtual HRESULT STDMETHODCALLTYPE get_Word(
  22067         BSTR *Word) = 0;
  22068 
  22069     virtual HRESULT STDMETHODCALLTYPE get_Pronunciations(
  22070         ISpeechLexiconPronunciations **Pronunciations) = 0;
  22071 
  22072 };
  22073 #ifdef __CRT_UUID_DECL
  22074 __CRT_UUID_DECL(ISpeechLexiconWord, 0x4e5b933c, 0xc9be, 0x48ed, 0x88,0x42, 0x1e,0xe5,0x1b,0xb1,0xd4,0xff)
  22075 #endif
  22076 #else
  22077 typedef struct ISpeechLexiconWordVtbl {
  22078     BEGIN_INTERFACE
  22079 
  22080     /*** IUnknown methods ***/
  22081     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  22082         ISpeechLexiconWord *This,
  22083         REFIID riid,
  22084         void **ppvObject);
  22085 
  22086     ULONG (STDMETHODCALLTYPE *AddRef)(
  22087         ISpeechLexiconWord *This);
  22088 
  22089     ULONG (STDMETHODCALLTYPE *Release)(
  22090         ISpeechLexiconWord *This);
  22091 
  22092     /*** IDispatch methods ***/
  22093     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  22094         ISpeechLexiconWord *This,
  22095         UINT *pctinfo);
  22096 
  22097     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  22098         ISpeechLexiconWord *This,
  22099         UINT iTInfo,
  22100         LCID lcid,
  22101         ITypeInfo **ppTInfo);
  22102 
  22103     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  22104         ISpeechLexiconWord *This,
  22105         REFIID riid,
  22106         LPOLESTR *rgszNames,
  22107         UINT cNames,
  22108         LCID lcid,
  22109         DISPID *rgDispId);
  22110 
  22111     HRESULT (STDMETHODCALLTYPE *Invoke)(
  22112         ISpeechLexiconWord *This,
  22113         DISPID dispIdMember,
  22114         REFIID riid,
  22115         LCID lcid,
  22116         WORD wFlags,
  22117         DISPPARAMS *pDispParams,
  22118         VARIANT *pVarResult,
  22119         EXCEPINFO *pExcepInfo,
  22120         UINT *puArgErr);
  22121 
  22122     /*** ISpeechLexiconWord methods ***/
  22123     HRESULT (STDMETHODCALLTYPE *get_LangId)(
  22124         ISpeechLexiconWord *This,
  22125         SpeechLanguageId *LangId);
  22126 
  22127     HRESULT (STDMETHODCALLTYPE *get_Type)(
  22128         ISpeechLexiconWord *This,
  22129         SpeechWordType *WordType);
  22130 
  22131     HRESULT (STDMETHODCALLTYPE *get_Word)(
  22132         ISpeechLexiconWord *This,
  22133         BSTR *Word);
  22134 
  22135     HRESULT (STDMETHODCALLTYPE *get_Pronunciations)(
  22136         ISpeechLexiconWord *This,
  22137         ISpeechLexiconPronunciations **Pronunciations);
  22138 
  22139     END_INTERFACE
  22140 } ISpeechLexiconWordVtbl;
  22141 
  22142 interface ISpeechLexiconWord {
  22143     CONST_VTBL ISpeechLexiconWordVtbl* lpVtbl;
  22144 };
  22145 
  22146 #ifdef COBJMACROS
  22147 #ifndef WIDL_C_INLINE_WRAPPERS
  22148 /*** IUnknown methods ***/
  22149 #define ISpeechLexiconWord_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  22150 #define ISpeechLexiconWord_AddRef(This) (This)->lpVtbl->AddRef(This)
  22151 #define ISpeechLexiconWord_Release(This) (This)->lpVtbl->Release(This)
  22152 /*** IDispatch methods ***/
  22153 #define ISpeechLexiconWord_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  22154 #define ISpeechLexiconWord_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  22155 #define ISpeechLexiconWord_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  22156 #define ISpeechLexiconWord_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  22157 /*** ISpeechLexiconWord methods ***/
  22158 #define ISpeechLexiconWord_get_LangId(This,LangId) (This)->lpVtbl->get_LangId(This,LangId)
  22159 #define ISpeechLexiconWord_get_Type(This,WordType) (This)->lpVtbl->get_Type(This,WordType)
  22160 #define ISpeechLexiconWord_get_Word(This,Word) (This)->lpVtbl->get_Word(This,Word)
  22161 #define ISpeechLexiconWord_get_Pronunciations(This,Pronunciations) (This)->lpVtbl->get_Pronunciations(This,Pronunciations)
  22162 #else
  22163 /*** IUnknown methods ***/
  22164 static inline HRESULT ISpeechLexiconWord_QueryInterface(ISpeechLexiconWord* This,REFIID riid,void **ppvObject) {
  22165     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  22166 }
  22167 static inline ULONG ISpeechLexiconWord_AddRef(ISpeechLexiconWord* This) {
  22168     return This->lpVtbl->AddRef(This);
  22169 }
  22170 static inline ULONG ISpeechLexiconWord_Release(ISpeechLexiconWord* This) {
  22171     return This->lpVtbl->Release(This);
  22172 }
  22173 /*** IDispatch methods ***/
  22174 static inline HRESULT ISpeechLexiconWord_GetTypeInfoCount(ISpeechLexiconWord* This,UINT *pctinfo) {
  22175     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  22176 }
  22177 static inline HRESULT ISpeechLexiconWord_GetTypeInfo(ISpeechLexiconWord* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  22178     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  22179 }
  22180 static inline HRESULT ISpeechLexiconWord_GetIDsOfNames(ISpeechLexiconWord* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  22181     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  22182 }
  22183 static inline HRESULT ISpeechLexiconWord_Invoke(ISpeechLexiconWord* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  22184     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  22185 }
  22186 /*** ISpeechLexiconWord methods ***/
  22187 static inline HRESULT ISpeechLexiconWord_get_LangId(ISpeechLexiconWord* This,SpeechLanguageId *LangId) {
  22188     return This->lpVtbl->get_LangId(This,LangId);
  22189 }
  22190 static inline HRESULT ISpeechLexiconWord_get_Type(ISpeechLexiconWord* This,SpeechWordType *WordType) {
  22191     return This->lpVtbl->get_Type(This,WordType);
  22192 }
  22193 static inline HRESULT ISpeechLexiconWord_get_Word(ISpeechLexiconWord* This,BSTR *Word) {
  22194     return This->lpVtbl->get_Word(This,Word);
  22195 }
  22196 static inline HRESULT ISpeechLexiconWord_get_Pronunciations(ISpeechLexiconWord* This,ISpeechLexiconPronunciations **Pronunciations) {
  22197     return This->lpVtbl->get_Pronunciations(This,Pronunciations);
  22198 }
  22199 #endif
  22200 #endif
  22201 
  22202 #endif
  22203 
  22204 
  22205 #endif  /* __ISpeechLexiconWord_INTERFACE_DEFINED__ */
  22206 
  22207 /*****************************************************************************
  22208  * ISpeechLexiconPronunciations interface
  22209  */
  22210 #ifndef __ISpeechLexiconPronunciations_INTERFACE_DEFINED__
  22211 #define __ISpeechLexiconPronunciations_INTERFACE_DEFINED__
  22212 
  22213 DEFINE_GUID(IID_ISpeechLexiconPronunciations, 0x72829128, 0x5682, 0x4704, 0xa0,0xd4, 0x3e,0x2b,0xb6,0xf2,0xea,0xd3);
  22214 #if defined(__cplusplus) && !defined(CINTERFACE)
  22215 MIDL_INTERFACE("72829128-5682-4704-a0d4-3e2bb6f2ead3")
  22216 ISpeechLexiconPronunciations : public IDispatch
  22217 {
  22218     virtual HRESULT STDMETHODCALLTYPE get_Count(
  22219         LONG *Count) = 0;
  22220 
  22221     virtual HRESULT STDMETHODCALLTYPE Item(
  22222         LONG Index,
  22223         ISpeechLexiconPronunciation **Pronunciation) = 0;
  22224 
  22225     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
  22226         IUnknown **EnumVARIANT) = 0;
  22227 
  22228 };
  22229 #ifdef __CRT_UUID_DECL
  22230 __CRT_UUID_DECL(ISpeechLexiconPronunciations, 0x72829128, 0x5682, 0x4704, 0xa0,0xd4, 0x3e,0x2b,0xb6,0xf2,0xea,0xd3)
  22231 #endif
  22232 #else
  22233 typedef struct ISpeechLexiconPronunciationsVtbl {
  22234     BEGIN_INTERFACE
  22235 
  22236     /*** IUnknown methods ***/
  22237     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  22238         ISpeechLexiconPronunciations *This,
  22239         REFIID riid,
  22240         void **ppvObject);
  22241 
  22242     ULONG (STDMETHODCALLTYPE *AddRef)(
  22243         ISpeechLexiconPronunciations *This);
  22244 
  22245     ULONG (STDMETHODCALLTYPE *Release)(
  22246         ISpeechLexiconPronunciations *This);
  22247 
  22248     /*** IDispatch methods ***/
  22249     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  22250         ISpeechLexiconPronunciations *This,
  22251         UINT *pctinfo);
  22252 
  22253     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  22254         ISpeechLexiconPronunciations *This,
  22255         UINT iTInfo,
  22256         LCID lcid,
  22257         ITypeInfo **ppTInfo);
  22258 
  22259     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  22260         ISpeechLexiconPronunciations *This,
  22261         REFIID riid,
  22262         LPOLESTR *rgszNames,
  22263         UINT cNames,
  22264         LCID lcid,
  22265         DISPID *rgDispId);
  22266 
  22267     HRESULT (STDMETHODCALLTYPE *Invoke)(
  22268         ISpeechLexiconPronunciations *This,
  22269         DISPID dispIdMember,
  22270         REFIID riid,
  22271         LCID lcid,
  22272         WORD wFlags,
  22273         DISPPARAMS *pDispParams,
  22274         VARIANT *pVarResult,
  22275         EXCEPINFO *pExcepInfo,
  22276         UINT *puArgErr);
  22277 
  22278     /*** ISpeechLexiconPronunciations methods ***/
  22279     HRESULT (STDMETHODCALLTYPE *get_Count)(
  22280         ISpeechLexiconPronunciations *This,
  22281         LONG *Count);
  22282 
  22283     HRESULT (STDMETHODCALLTYPE *Item)(
  22284         ISpeechLexiconPronunciations *This,
  22285         LONG Index,
  22286         ISpeechLexiconPronunciation **Pronunciation);
  22287 
  22288     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
  22289         ISpeechLexiconPronunciations *This,
  22290         IUnknown **EnumVARIANT);
  22291 
  22292     END_INTERFACE
  22293 } ISpeechLexiconPronunciationsVtbl;
  22294 
  22295 interface ISpeechLexiconPronunciations {
  22296     CONST_VTBL ISpeechLexiconPronunciationsVtbl* lpVtbl;
  22297 };
  22298 
  22299 #ifdef COBJMACROS
  22300 #ifndef WIDL_C_INLINE_WRAPPERS
  22301 /*** IUnknown methods ***/
  22302 #define ISpeechLexiconPronunciations_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  22303 #define ISpeechLexiconPronunciations_AddRef(This) (This)->lpVtbl->AddRef(This)
  22304 #define ISpeechLexiconPronunciations_Release(This) (This)->lpVtbl->Release(This)
  22305 /*** IDispatch methods ***/
  22306 #define ISpeechLexiconPronunciations_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  22307 #define ISpeechLexiconPronunciations_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  22308 #define ISpeechLexiconPronunciations_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  22309 #define ISpeechLexiconPronunciations_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  22310 /*** ISpeechLexiconPronunciations methods ***/
  22311 #define ISpeechLexiconPronunciations_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
  22312 #define ISpeechLexiconPronunciations_Item(This,Index,Pronunciation) (This)->lpVtbl->Item(This,Index,Pronunciation)
  22313 #define ISpeechLexiconPronunciations_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
  22314 #else
  22315 /*** IUnknown methods ***/
  22316 static inline HRESULT ISpeechLexiconPronunciations_QueryInterface(ISpeechLexiconPronunciations* This,REFIID riid,void **ppvObject) {
  22317     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  22318 }
  22319 static inline ULONG ISpeechLexiconPronunciations_AddRef(ISpeechLexiconPronunciations* This) {
  22320     return This->lpVtbl->AddRef(This);
  22321 }
  22322 static inline ULONG ISpeechLexiconPronunciations_Release(ISpeechLexiconPronunciations* This) {
  22323     return This->lpVtbl->Release(This);
  22324 }
  22325 /*** IDispatch methods ***/
  22326 static inline HRESULT ISpeechLexiconPronunciations_GetTypeInfoCount(ISpeechLexiconPronunciations* This,UINT *pctinfo) {
  22327     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  22328 }
  22329 static inline HRESULT ISpeechLexiconPronunciations_GetTypeInfo(ISpeechLexiconPronunciations* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  22330     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  22331 }
  22332 static inline HRESULT ISpeechLexiconPronunciations_GetIDsOfNames(ISpeechLexiconPronunciations* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  22333     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  22334 }
  22335 static inline HRESULT ISpeechLexiconPronunciations_Invoke(ISpeechLexiconPronunciations* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  22336     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  22337 }
  22338 /*** ISpeechLexiconPronunciations methods ***/
  22339 static inline HRESULT ISpeechLexiconPronunciations_get_Count(ISpeechLexiconPronunciations* This,LONG *Count) {
  22340     return This->lpVtbl->get_Count(This,Count);
  22341 }
  22342 static inline HRESULT ISpeechLexiconPronunciations_Item(ISpeechLexiconPronunciations* This,LONG Index,ISpeechLexiconPronunciation **Pronunciation) {
  22343     return This->lpVtbl->Item(This,Index,Pronunciation);
  22344 }
  22345 static inline HRESULT ISpeechLexiconPronunciations_get__NewEnum(ISpeechLexiconPronunciations* This,IUnknown **EnumVARIANT) {
  22346     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
  22347 }
  22348 #endif
  22349 #endif
  22350 
  22351 #endif
  22352 
  22353 
  22354 #endif  /* __ISpeechLexiconPronunciations_INTERFACE_DEFINED__ */
  22355 
  22356 /*****************************************************************************
  22357  * ISpeechLexiconPronunciation interface
  22358  */
  22359 #ifndef __ISpeechLexiconPronunciation_INTERFACE_DEFINED__
  22360 #define __ISpeechLexiconPronunciation_INTERFACE_DEFINED__
  22361 
  22362 DEFINE_GUID(IID_ISpeechLexiconPronunciation, 0x95252c5d, 0x9e43, 0x4f4a, 0x98,0x99, 0x48,0xee,0x73,0x35,0x2f,0x9f);
  22363 #if defined(__cplusplus) && !defined(CINTERFACE)
  22364 MIDL_INTERFACE("95252c5d-9e43-4f4a-9899-48ee73352f9f")
  22365 ISpeechLexiconPronunciation : public IDispatch
  22366 {
  22367     virtual HRESULT STDMETHODCALLTYPE get_Type(
  22368         SpeechLexiconType *LexiconType) = 0;
  22369 
  22370     virtual HRESULT STDMETHODCALLTYPE get_LangId(
  22371         SpeechLanguageId *LangId) = 0;
  22372 
  22373     virtual HRESULT STDMETHODCALLTYPE get_PartOfSpeech(
  22374         SpeechPartOfSpeech *PartOfSpeech) = 0;
  22375 
  22376     virtual HRESULT STDMETHODCALLTYPE get_PhoneIds(
  22377         VARIANT *PhoneIds) = 0;
  22378 
  22379     virtual HRESULT STDMETHODCALLTYPE get_Symbolic(
  22380         BSTR *Symbolic) = 0;
  22381 
  22382 };
  22383 #ifdef __CRT_UUID_DECL
  22384 __CRT_UUID_DECL(ISpeechLexiconPronunciation, 0x95252c5d, 0x9e43, 0x4f4a, 0x98,0x99, 0x48,0xee,0x73,0x35,0x2f,0x9f)
  22385 #endif
  22386 #else
  22387 typedef struct ISpeechLexiconPronunciationVtbl {
  22388     BEGIN_INTERFACE
  22389 
  22390     /*** IUnknown methods ***/
  22391     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  22392         ISpeechLexiconPronunciation *This,
  22393         REFIID riid,
  22394         void **ppvObject);
  22395 
  22396     ULONG (STDMETHODCALLTYPE *AddRef)(
  22397         ISpeechLexiconPronunciation *This);
  22398 
  22399     ULONG (STDMETHODCALLTYPE *Release)(
  22400         ISpeechLexiconPronunciation *This);
  22401 
  22402     /*** IDispatch methods ***/
  22403     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  22404         ISpeechLexiconPronunciation *This,
  22405         UINT *pctinfo);
  22406 
  22407     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  22408         ISpeechLexiconPronunciation *This,
  22409         UINT iTInfo,
  22410         LCID lcid,
  22411         ITypeInfo **ppTInfo);
  22412 
  22413     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  22414         ISpeechLexiconPronunciation *This,
  22415         REFIID riid,
  22416         LPOLESTR *rgszNames,
  22417         UINT cNames,
  22418         LCID lcid,
  22419         DISPID *rgDispId);
  22420 
  22421     HRESULT (STDMETHODCALLTYPE *Invoke)(
  22422         ISpeechLexiconPronunciation *This,
  22423         DISPID dispIdMember,
  22424         REFIID riid,
  22425         LCID lcid,
  22426         WORD wFlags,
  22427         DISPPARAMS *pDispParams,
  22428         VARIANT *pVarResult,
  22429         EXCEPINFO *pExcepInfo,
  22430         UINT *puArgErr);
  22431 
  22432     /*** ISpeechLexiconPronunciation methods ***/
  22433     HRESULT (STDMETHODCALLTYPE *get_Type)(
  22434         ISpeechLexiconPronunciation *This,
  22435         SpeechLexiconType *LexiconType);
  22436 
  22437     HRESULT (STDMETHODCALLTYPE *get_LangId)(
  22438         ISpeechLexiconPronunciation *This,
  22439         SpeechLanguageId *LangId);
  22440 
  22441     HRESULT (STDMETHODCALLTYPE *get_PartOfSpeech)(
  22442         ISpeechLexiconPronunciation *This,
  22443         SpeechPartOfSpeech *PartOfSpeech);
  22444 
  22445     HRESULT (STDMETHODCALLTYPE *get_PhoneIds)(
  22446         ISpeechLexiconPronunciation *This,
  22447         VARIANT *PhoneIds);
  22448 
  22449     HRESULT (STDMETHODCALLTYPE *get_Symbolic)(
  22450         ISpeechLexiconPronunciation *This,
  22451         BSTR *Symbolic);
  22452 
  22453     END_INTERFACE
  22454 } ISpeechLexiconPronunciationVtbl;
  22455 
  22456 interface ISpeechLexiconPronunciation {
  22457     CONST_VTBL ISpeechLexiconPronunciationVtbl* lpVtbl;
  22458 };
  22459 
  22460 #ifdef COBJMACROS
  22461 #ifndef WIDL_C_INLINE_WRAPPERS
  22462 /*** IUnknown methods ***/
  22463 #define ISpeechLexiconPronunciation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  22464 #define ISpeechLexiconPronunciation_AddRef(This) (This)->lpVtbl->AddRef(This)
  22465 #define ISpeechLexiconPronunciation_Release(This) (This)->lpVtbl->Release(This)
  22466 /*** IDispatch methods ***/
  22467 #define ISpeechLexiconPronunciation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  22468 #define ISpeechLexiconPronunciation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  22469 #define ISpeechLexiconPronunciation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  22470 #define ISpeechLexiconPronunciation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  22471 /*** ISpeechLexiconPronunciation methods ***/
  22472 #define ISpeechLexiconPronunciation_get_Type(This,LexiconType) (This)->lpVtbl->get_Type(This,LexiconType)
  22473 #define ISpeechLexiconPronunciation_get_LangId(This,LangId) (This)->lpVtbl->get_LangId(This,LangId)
  22474 #define ISpeechLexiconPronunciation_get_PartOfSpeech(This,PartOfSpeech) (This)->lpVtbl->get_PartOfSpeech(This,PartOfSpeech)
  22475 #define ISpeechLexiconPronunciation_get_PhoneIds(This,PhoneIds) (This)->lpVtbl->get_PhoneIds(This,PhoneIds)
  22476 #define ISpeechLexiconPronunciation_get_Symbolic(This,Symbolic) (This)->lpVtbl->get_Symbolic(This,Symbolic)
  22477 #else
  22478 /*** IUnknown methods ***/
  22479 static inline HRESULT ISpeechLexiconPronunciation_QueryInterface(ISpeechLexiconPronunciation* This,REFIID riid,void **ppvObject) {
  22480     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  22481 }
  22482 static inline ULONG ISpeechLexiconPronunciation_AddRef(ISpeechLexiconPronunciation* This) {
  22483     return This->lpVtbl->AddRef(This);
  22484 }
  22485 static inline ULONG ISpeechLexiconPronunciation_Release(ISpeechLexiconPronunciation* This) {
  22486     return This->lpVtbl->Release(This);
  22487 }
  22488 /*** IDispatch methods ***/
  22489 static inline HRESULT ISpeechLexiconPronunciation_GetTypeInfoCount(ISpeechLexiconPronunciation* This,UINT *pctinfo) {
  22490     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  22491 }
  22492 static inline HRESULT ISpeechLexiconPronunciation_GetTypeInfo(ISpeechLexiconPronunciation* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  22493     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  22494 }
  22495 static inline HRESULT ISpeechLexiconPronunciation_GetIDsOfNames(ISpeechLexiconPronunciation* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  22496     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  22497 }
  22498 static inline HRESULT ISpeechLexiconPronunciation_Invoke(ISpeechLexiconPronunciation* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  22499     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  22500 }
  22501 /*** ISpeechLexiconPronunciation methods ***/
  22502 static inline HRESULT ISpeechLexiconPronunciation_get_Type(ISpeechLexiconPronunciation* This,SpeechLexiconType *LexiconType) {
  22503     return This->lpVtbl->get_Type(This,LexiconType);
  22504 }
  22505 static inline HRESULT ISpeechLexiconPronunciation_get_LangId(ISpeechLexiconPronunciation* This,SpeechLanguageId *LangId) {
  22506     return This->lpVtbl->get_LangId(This,LangId);
  22507 }
  22508 static inline HRESULT ISpeechLexiconPronunciation_get_PartOfSpeech(ISpeechLexiconPronunciation* This,SpeechPartOfSpeech *PartOfSpeech) {
  22509     return This->lpVtbl->get_PartOfSpeech(This,PartOfSpeech);
  22510 }
  22511 static inline HRESULT ISpeechLexiconPronunciation_get_PhoneIds(ISpeechLexiconPronunciation* This,VARIANT *PhoneIds) {
  22512     return This->lpVtbl->get_PhoneIds(This,PhoneIds);
  22513 }
  22514 static inline HRESULT ISpeechLexiconPronunciation_get_Symbolic(ISpeechLexiconPronunciation* This,BSTR *Symbolic) {
  22515     return This->lpVtbl->get_Symbolic(This,Symbolic);
  22516 }
  22517 #endif
  22518 #endif
  22519 
  22520 #endif
  22521 
  22522 
  22523 #endif  /* __ISpeechLexiconPronunciation_INTERFACE_DEFINED__ */
  22524 
  22525 /*****************************************************************************
  22526  * ISpeechPhoneConverter interface
  22527  */
  22528 #ifndef __ISpeechPhoneConverter_INTERFACE_DEFINED__
  22529 #define __ISpeechPhoneConverter_INTERFACE_DEFINED__
  22530 
  22531 DEFINE_GUID(IID_ISpeechPhoneConverter, 0xc3e4f353, 0x433f, 0x43d6, 0x89,0xa1, 0x6a,0x62,0xa7,0x05,0x4c,0x3d);
  22532 #if defined(__cplusplus) && !defined(CINTERFACE)
  22533 MIDL_INTERFACE("c3e4f353-433f-43d6-89a1-6a62a7054c3d")
  22534 ISpeechPhoneConverter : public IDispatch
  22535 {
  22536     virtual HRESULT STDMETHODCALLTYPE get_LanguageId(
  22537         SpeechLanguageId *LanguageId) = 0;
  22538 
  22539     virtual HRESULT STDMETHODCALLTYPE put_LanguageId(
  22540         SpeechLanguageId LanguageId) = 0;
  22541 
  22542     virtual HRESULT STDMETHODCALLTYPE PhoneToId(
  22543         const BSTR Phonemes,
  22544         VARIANT *IdArray) = 0;
  22545 
  22546     virtual HRESULT STDMETHODCALLTYPE IdToPhone(
  22547         const VARIANT IdArray,
  22548         BSTR *Phonemes) = 0;
  22549 
  22550 };
  22551 #ifdef __CRT_UUID_DECL
  22552 __CRT_UUID_DECL(ISpeechPhoneConverter, 0xc3e4f353, 0x433f, 0x43d6, 0x89,0xa1, 0x6a,0x62,0xa7,0x05,0x4c,0x3d)
  22553 #endif
  22554 #else
  22555 typedef struct ISpeechPhoneConverterVtbl {
  22556     BEGIN_INTERFACE
  22557 
  22558     /*** IUnknown methods ***/
  22559     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  22560         ISpeechPhoneConverter *This,
  22561         REFIID riid,
  22562         void **ppvObject);
  22563 
  22564     ULONG (STDMETHODCALLTYPE *AddRef)(
  22565         ISpeechPhoneConverter *This);
  22566 
  22567     ULONG (STDMETHODCALLTYPE *Release)(
  22568         ISpeechPhoneConverter *This);
  22569 
  22570     /*** IDispatch methods ***/
  22571     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  22572         ISpeechPhoneConverter *This,
  22573         UINT *pctinfo);
  22574 
  22575     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  22576         ISpeechPhoneConverter *This,
  22577         UINT iTInfo,
  22578         LCID lcid,
  22579         ITypeInfo **ppTInfo);
  22580 
  22581     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  22582         ISpeechPhoneConverter *This,
  22583         REFIID riid,
  22584         LPOLESTR *rgszNames,
  22585         UINT cNames,
  22586         LCID lcid,
  22587         DISPID *rgDispId);
  22588 
  22589     HRESULT (STDMETHODCALLTYPE *Invoke)(
  22590         ISpeechPhoneConverter *This,
  22591         DISPID dispIdMember,
  22592         REFIID riid,
  22593         LCID lcid,
  22594         WORD wFlags,
  22595         DISPPARAMS *pDispParams,
  22596         VARIANT *pVarResult,
  22597         EXCEPINFO *pExcepInfo,
  22598         UINT *puArgErr);
  22599 
  22600     /*** ISpeechPhoneConverter methods ***/
  22601     HRESULT (STDMETHODCALLTYPE *get_LanguageId)(
  22602         ISpeechPhoneConverter *This,
  22603         SpeechLanguageId *LanguageId);
  22604 
  22605     HRESULT (STDMETHODCALLTYPE *put_LanguageId)(
  22606         ISpeechPhoneConverter *This,
  22607         SpeechLanguageId LanguageId);
  22608 
  22609     HRESULT (STDMETHODCALLTYPE *PhoneToId)(
  22610         ISpeechPhoneConverter *This,
  22611         const BSTR Phonemes,
  22612         VARIANT *IdArray);
  22613 
  22614     HRESULT (STDMETHODCALLTYPE *IdToPhone)(
  22615         ISpeechPhoneConverter *This,
  22616         const VARIANT IdArray,
  22617         BSTR *Phonemes);
  22618 
  22619     END_INTERFACE
  22620 } ISpeechPhoneConverterVtbl;
  22621 
  22622 interface ISpeechPhoneConverter {
  22623     CONST_VTBL ISpeechPhoneConverterVtbl* lpVtbl;
  22624 };
  22625 
  22626 #ifdef COBJMACROS
  22627 #ifndef WIDL_C_INLINE_WRAPPERS
  22628 /*** IUnknown methods ***/
  22629 #define ISpeechPhoneConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  22630 #define ISpeechPhoneConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
  22631 #define ISpeechPhoneConverter_Release(This) (This)->lpVtbl->Release(This)
  22632 /*** IDispatch methods ***/
  22633 #define ISpeechPhoneConverter_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  22634 #define ISpeechPhoneConverter_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  22635 #define ISpeechPhoneConverter_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  22636 #define ISpeechPhoneConverter_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  22637 /*** ISpeechPhoneConverter methods ***/
  22638 #define ISpeechPhoneConverter_get_LanguageId(This,LanguageId) (This)->lpVtbl->get_LanguageId(This,LanguageId)
  22639 #define ISpeechPhoneConverter_put_LanguageId(This,LanguageId) (This)->lpVtbl->put_LanguageId(This,LanguageId)
  22640 #define ISpeechPhoneConverter_PhoneToId(This,Phonemes,IdArray) (This)->lpVtbl->PhoneToId(This,Phonemes,IdArray)
  22641 #define ISpeechPhoneConverter_IdToPhone(This,IdArray,Phonemes) (This)->lpVtbl->IdToPhone(This,IdArray,Phonemes)
  22642 #else
  22643 /*** IUnknown methods ***/
  22644 static inline HRESULT ISpeechPhoneConverter_QueryInterface(ISpeechPhoneConverter* This,REFIID riid,void **ppvObject) {
  22645     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  22646 }
  22647 static inline ULONG ISpeechPhoneConverter_AddRef(ISpeechPhoneConverter* This) {
  22648     return This->lpVtbl->AddRef(This);
  22649 }
  22650 static inline ULONG ISpeechPhoneConverter_Release(ISpeechPhoneConverter* This) {
  22651     return This->lpVtbl->Release(This);
  22652 }
  22653 /*** IDispatch methods ***/
  22654 static inline HRESULT ISpeechPhoneConverter_GetTypeInfoCount(ISpeechPhoneConverter* This,UINT *pctinfo) {
  22655     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  22656 }
  22657 static inline HRESULT ISpeechPhoneConverter_GetTypeInfo(ISpeechPhoneConverter* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  22658     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  22659 }
  22660 static inline HRESULT ISpeechPhoneConverter_GetIDsOfNames(ISpeechPhoneConverter* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  22661     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  22662 }
  22663 static inline HRESULT ISpeechPhoneConverter_Invoke(ISpeechPhoneConverter* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  22664     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  22665 }
  22666 /*** ISpeechPhoneConverter methods ***/
  22667 static inline HRESULT ISpeechPhoneConverter_get_LanguageId(ISpeechPhoneConverter* This,SpeechLanguageId *LanguageId) {
  22668     return This->lpVtbl->get_LanguageId(This,LanguageId);
  22669 }
  22670 static inline HRESULT ISpeechPhoneConverter_put_LanguageId(ISpeechPhoneConverter* This,SpeechLanguageId LanguageId) {
  22671     return This->lpVtbl->put_LanguageId(This,LanguageId);
  22672 }
  22673 static inline HRESULT ISpeechPhoneConverter_PhoneToId(ISpeechPhoneConverter* This,const BSTR Phonemes,VARIANT *IdArray) {
  22674     return This->lpVtbl->PhoneToId(This,Phonemes,IdArray);
  22675 }
  22676 static inline HRESULT ISpeechPhoneConverter_IdToPhone(ISpeechPhoneConverter* This,const VARIANT IdArray,BSTR *Phonemes) {
  22677     return This->lpVtbl->IdToPhone(This,IdArray,Phonemes);
  22678 }
  22679 #endif
  22680 #endif
  22681 
  22682 #endif
  22683 
  22684 
  22685 #endif  /* __ISpeechPhoneConverter_INTERFACE_DEFINED__ */
  22686 
  22687 /*****************************************************************************
  22688  * SpNotifyTranslator coclass
  22689  */
  22690 
  22691 DEFINE_GUID(CLSID_SpNotifyTranslator, 0xe2ae5372, 0x5d40, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
  22692 
  22693 #ifdef __cplusplus
  22694 class DECLSPEC_UUID("e2ae5372-5d40-11d2-960e-00c04f8ee628") SpNotifyTranslator;
  22695 #ifdef __CRT_UUID_DECL
  22696 __CRT_UUID_DECL(SpNotifyTranslator, 0xe2ae5372, 0x5d40, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
  22697 #endif
  22698 #endif
  22699 
  22700 /*****************************************************************************
  22701  * SpObjectTokenCategory coclass
  22702  */
  22703 
  22704 DEFINE_GUID(CLSID_SpObjectTokenCategory, 0xa910187f, 0x0c7a, 0x45ac, 0x92,0xcc, 0x59,0xed,0xaf,0xb7,0x7b,0x53);
  22705 
  22706 #ifdef __cplusplus
  22707 class DECLSPEC_UUID("a910187f-0c7a-45ac-92cc-59edafb77b53") SpObjectTokenCategory;
  22708 #ifdef __CRT_UUID_DECL
  22709 __CRT_UUID_DECL(SpObjectTokenCategory, 0xa910187f, 0x0c7a, 0x45ac, 0x92,0xcc, 0x59,0xed,0xaf,0xb7,0x7b,0x53)
  22710 #endif
  22711 #endif
  22712 
  22713 /*****************************************************************************
  22714  * SpObjectToken coclass
  22715  */
  22716 
  22717 DEFINE_GUID(CLSID_SpObjectToken, 0xef411752, 0x3736, 0x4cb4, 0x9c,0x8c, 0x8e,0xf4,0xcc,0xb5,0x8e,0xfe);
  22718 
  22719 #ifdef __cplusplus
  22720 class DECLSPEC_UUID("ef411752-3736-4cb4-9c8c-8ef4ccb58efe") SpObjectToken;
  22721 #ifdef __CRT_UUID_DECL
  22722 __CRT_UUID_DECL(SpObjectToken, 0xef411752, 0x3736, 0x4cb4, 0x9c,0x8c, 0x8e,0xf4,0xcc,0xb5,0x8e,0xfe)
  22723 #endif
  22724 #endif
  22725 
  22726 /*****************************************************************************
  22727  * SpResourceManager coclass
  22728  */
  22729 
  22730 DEFINE_GUID(CLSID_SpResourceManager, 0x96749373, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96);
  22731 
  22732 #ifdef __cplusplus
  22733 class DECLSPEC_UUID("96749373-3391-11d2-9ee3-00c04f797396") SpResourceManager;
  22734 #ifdef __CRT_UUID_DECL
  22735 __CRT_UUID_DECL(SpResourceManager, 0x96749373, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96)
  22736 #endif
  22737 #endif
  22738 
  22739 /*****************************************************************************
  22740  * SpStreamFormatConverter coclass
  22741  */
  22742 
  22743 DEFINE_GUID(CLSID_SpStreamFormatConverter, 0x7013943a, 0xe2ec, 0x11d2, 0xa0,0x86, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5);
  22744 
  22745 #ifdef __cplusplus
  22746 class DECLSPEC_UUID("7013943a-e2ec-11d2-a086-00c04f8ef9b5") SpStreamFormatConverter;
  22747 #ifdef __CRT_UUID_DECL
  22748 __CRT_UUID_DECL(SpStreamFormatConverter, 0x7013943a, 0xe2ec, 0x11d2, 0xa0,0x86, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5)
  22749 #endif
  22750 #endif
  22751 
  22752 /*****************************************************************************
  22753  * SpMMAudioEnum coclass
  22754  */
  22755 
  22756 DEFINE_GUID(CLSID_SpMMAudioEnum, 0xab1890a0, 0xe91f, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
  22757 
  22758 #ifdef __cplusplus
  22759 class DECLSPEC_UUID("ab1890a0-e91f-11d2-bb91-00c04f8ee6c0") SpMMAudioEnum;
  22760 #ifdef __CRT_UUID_DECL
  22761 __CRT_UUID_DECL(SpMMAudioEnum, 0xab1890a0, 0xe91f, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
  22762 #endif
  22763 #endif
  22764 
  22765 /*****************************************************************************
  22766  * SpMMAudioIn coclass
  22767  */
  22768 
  22769 DEFINE_GUID(CLSID_SpMMAudioIn, 0xcf3d2e50, 0x53f2, 0x11d2, 0x96,0x0c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
  22770 
  22771 #ifdef __cplusplus
  22772 class DECLSPEC_UUID("cf3d2e50-53f2-11d2-960c-00c04f8ee628") SpMMAudioIn;
  22773 #ifdef __CRT_UUID_DECL
  22774 __CRT_UUID_DECL(SpMMAudioIn, 0xcf3d2e50, 0x53f2, 0x11d2, 0x96,0x0c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
  22775 #endif
  22776 #endif
  22777 
  22778 /*****************************************************************************
  22779  * SpMMAudioOut coclass
  22780  */
  22781 
  22782 DEFINE_GUID(CLSID_SpMMAudioOut, 0xa8c680eb, 0x3d32, 0x11d2, 0x9e,0xe7, 0x00,0xc0,0x4f,0x79,0x73,0x96);
  22783 
  22784 #ifdef __cplusplus
  22785 class DECLSPEC_UUID("a8c680eb-3d32-11d2-9ee7-00c04f797396") SpMMAudioOut;
  22786 #ifdef __CRT_UUID_DECL
  22787 __CRT_UUID_DECL(SpMMAudioOut, 0xa8c680eb, 0x3d32, 0x11d2, 0x9e,0xe7, 0x00,0xc0,0x4f,0x79,0x73,0x96)
  22788 #endif
  22789 #endif
  22790 
  22791 /*****************************************************************************
  22792  * SpStream coclass
  22793  */
  22794 
  22795 DEFINE_GUID(CLSID_SpStream, 0x715d9c59, 0x4442, 0x11d2, 0x96,0x05, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
  22796 
  22797 #ifdef __cplusplus
  22798 class DECLSPEC_UUID("715d9c59-4442-11d2-9605-00c04f8ee628") SpStream;
  22799 #ifdef __CRT_UUID_DECL
  22800 __CRT_UUID_DECL(SpStream, 0x715d9c59, 0x4442, 0x11d2, 0x96,0x05, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
  22801 #endif
  22802 #endif
  22803 
  22804 /*****************************************************************************
  22805  * SpVoice coclass
  22806  */
  22807 
  22808 DEFINE_GUID(CLSID_SpVoice, 0x96749377, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96);
  22809 
  22810 #ifdef __cplusplus
  22811 class DECLSPEC_UUID("96749377-3391-11d2-9ee3-00c04f797396") SpVoice;
  22812 #ifdef __CRT_UUID_DECL
  22813 __CRT_UUID_DECL(SpVoice, 0x96749377, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96)
  22814 #endif
  22815 #endif
  22816 
  22817 /*****************************************************************************
  22818  * SpSharedRecoContext coclass
  22819  */
  22820 
  22821 DEFINE_GUID(CLSID_SpSharedRecoContext, 0x47206204, 0x5eca, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
  22822 
  22823 #ifdef __cplusplus
  22824 class DECLSPEC_UUID("47206204-5eca-11d2-960f-00c04f8ee628") SpSharedRecoContext;
  22825 #ifdef __CRT_UUID_DECL
  22826 __CRT_UUID_DECL(SpSharedRecoContext, 0x47206204, 0x5eca, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
  22827 #endif
  22828 #endif
  22829 
  22830 /*****************************************************************************
  22831  * SpInprocRecognizer coclass
  22832  */
  22833 
  22834 DEFINE_GUID(CLSID_SpInprocRecognizer, 0x41b89b6b, 0x9399, 0x11d2, 0x96,0x23, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
  22835 
  22836 #ifdef __cplusplus
  22837 class DECLSPEC_UUID("41b89b6b-9399-11d2-9623-00c04f8ee628") SpInprocRecognizer;
  22838 #ifdef __CRT_UUID_DECL
  22839 __CRT_UUID_DECL(SpInprocRecognizer, 0x41b89b6b, 0x9399, 0x11d2, 0x96,0x23, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
  22840 #endif
  22841 #endif
  22842 
  22843 /*****************************************************************************
  22844  * SpSharedRecognizer coclass
  22845  */
  22846 
  22847 DEFINE_GUID(CLSID_SpSharedRecognizer, 0x3bee4890, 0x4fe9, 0x4a37, 0x8c,0x1e, 0x5e,0x7e,0x12,0x79,0x1c,0x1f);
  22848 
  22849 #ifdef __cplusplus
  22850 class DECLSPEC_UUID("3bee4890-4fe9-4a37-8c1e-5e7e12791c1f") SpSharedRecognizer;
  22851 #ifdef __CRT_UUID_DECL
  22852 __CRT_UUID_DECL(SpSharedRecognizer, 0x3bee4890, 0x4fe9, 0x4a37, 0x8c,0x1e, 0x5e,0x7e,0x12,0x79,0x1c,0x1f)
  22853 #endif
  22854 #endif
  22855 
  22856 /*****************************************************************************
  22857  * SpLexicon coclass
  22858  */
  22859 
  22860 DEFINE_GUID(CLSID_SpLexicon, 0x0655e396, 0x25d0, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c);
  22861 
  22862 #ifdef __cplusplus
  22863 class DECLSPEC_UUID("0655e396-25d0-11d3-9c26-00c04f8ef87c") SpLexicon;
  22864 #ifdef __CRT_UUID_DECL
  22865 __CRT_UUID_DECL(SpLexicon, 0x0655e396, 0x25d0, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c)
  22866 #endif
  22867 #endif
  22868 
  22869 /*****************************************************************************
  22870  * SpUnCompressedLexicon coclass
  22871  */
  22872 
  22873 DEFINE_GUID(CLSID_SpUnCompressedLexicon, 0xc9e37c15, 0xdf92, 0x4727, 0x85,0xd6, 0x72,0xe5,0xee,0xb6,0x99,0x5a);
  22874 
  22875 #ifdef __cplusplus
  22876 class DECLSPEC_UUID("c9e37c15-df92-4727-85d6-72e5eeb6995a") SpUnCompressedLexicon;
  22877 #ifdef __CRT_UUID_DECL
  22878 __CRT_UUID_DECL(SpUnCompressedLexicon, 0xc9e37c15, 0xdf92, 0x4727, 0x85,0xd6, 0x72,0xe5,0xee,0xb6,0x99,0x5a)
  22879 #endif
  22880 #endif
  22881 
  22882 /*****************************************************************************
  22883  * SpCompressedLexicon coclass
  22884  */
  22885 
  22886 DEFINE_GUID(CLSID_SpCompressedLexicon, 0x90903716, 0x2f42, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c);
  22887 
  22888 #ifdef __cplusplus
  22889 class DECLSPEC_UUID("90903716-2f42-11d3-9c26-00c04f8ef87c") SpCompressedLexicon;
  22890 #ifdef __CRT_UUID_DECL
  22891 __CRT_UUID_DECL(SpCompressedLexicon, 0x90903716, 0x2f42, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c)
  22892 #endif
  22893 #endif
  22894 
  22895 /*****************************************************************************
  22896  * SpShortcut coclass
  22897  */
  22898 
  22899 DEFINE_GUID(CLSID_SpShortcut, 0x0d722f1a, 0x9fcf, 0x4e62, 0x96,0xd8, 0x6d,0xf8,0xf0,0x1a,0x26,0xaa);
  22900 
  22901 #ifdef __cplusplus
  22902 class DECLSPEC_UUID("0d722f1a-9fcf-4e62-96d8-6df8f01a26aa") SpShortcut;
  22903 #ifdef __CRT_UUID_DECL
  22904 __CRT_UUID_DECL(SpShortcut, 0x0d722f1a, 0x9fcf, 0x4e62, 0x96,0xd8, 0x6d,0xf8,0xf0,0x1a,0x26,0xaa)
  22905 #endif
  22906 #endif
  22907 
  22908 /*****************************************************************************
  22909  * SpPhoneConverter coclass
  22910  */
  22911 
  22912 DEFINE_GUID(CLSID_SpPhoneConverter, 0x9185f743, 0x1143, 0x4c28, 0x86,0xb5, 0xbf,0xf1,0x4f,0x20,0xe5,0xc8);
  22913 
  22914 #ifdef __cplusplus
  22915 class DECLSPEC_UUID("9185f743-1143-4c28-86b5-bff14f20e5c8") SpPhoneConverter;
  22916 #ifdef __CRT_UUID_DECL
  22917 __CRT_UUID_DECL(SpPhoneConverter, 0x9185f743, 0x1143, 0x4c28, 0x86,0xb5, 0xbf,0xf1,0x4f,0x20,0xe5,0xc8)
  22918 #endif
  22919 #endif
  22920 
  22921 /*****************************************************************************
  22922  * SpPhoneticAlphabetConverter coclass
  22923  */
  22924 
  22925 DEFINE_GUID(CLSID_SpPhoneticAlphabetConverter, 0x4f414126, 0xdfe3, 0x4629, 0x99,0xee, 0x79,0x79,0x78,0x31,0x7e,0xad);
  22926 
  22927 #ifdef __cplusplus
  22928 class DECLSPEC_UUID("4f414126-dfe3-4629-99ee-797978317ead") SpPhoneticAlphabetConverter;
  22929 #ifdef __CRT_UUID_DECL
  22930 __CRT_UUID_DECL(SpPhoneticAlphabetConverter, 0x4f414126, 0xdfe3, 0x4629, 0x99,0xee, 0x79,0x79,0x78,0x31,0x7e,0xad)
  22931 #endif
  22932 #endif
  22933 
  22934 /*****************************************************************************
  22935  * SpNullPhoneConverter coclass
  22936  */
  22937 
  22938 DEFINE_GUID(CLSID_SpNullPhoneConverter, 0x455f24e9, 0x7396, 0x4a16, 0x97,0x15, 0x7c,0x0f,0xdb,0xe3,0xef,0xe3);
  22939 
  22940 #ifdef __cplusplus
  22941 class DECLSPEC_UUID("455f24e9-7396-4a16-9715-7c0fdbe3efe3") SpNullPhoneConverter;
  22942 #ifdef __CRT_UUID_DECL
  22943 __CRT_UUID_DECL(SpNullPhoneConverter, 0x455f24e9, 0x7396, 0x4a16, 0x97,0x15, 0x7c,0x0f,0xdb,0xe3,0xef,0xe3)
  22944 #endif
  22945 #endif
  22946 
  22947 /*****************************************************************************
  22948  * SpTextSelectionInformation coclass
  22949  */
  22950 
  22951 DEFINE_GUID(CLSID_SpTextSelectionInformation, 0x0f92030a, 0xcbfd, 0x4ab8, 0xa1,0x64, 0xff,0x59,0x85,0x54,0x7f,0xf6);
  22952 
  22953 #ifdef __cplusplus
  22954 class DECLSPEC_UUID("0f92030a-cbfd-4ab8-a164-ff5985547ff6") SpTextSelectionInformation;
  22955 #ifdef __CRT_UUID_DECL
  22956 __CRT_UUID_DECL(SpTextSelectionInformation, 0x0f92030a, 0xcbfd, 0x4ab8, 0xa1,0x64, 0xff,0x59,0x85,0x54,0x7f,0xf6)
  22957 #endif
  22958 #endif
  22959 
  22960 /*****************************************************************************
  22961  * SpPhraseInfoBuilder coclass
  22962  */
  22963 
  22964 DEFINE_GUID(CLSID_SpPhraseInfoBuilder, 0xc23fc28d, 0xc55f, 0x4720, 0x8b,0x32, 0x91,0xf7,0x3c,0x2b,0xd5,0xd1);
  22965 
  22966 #ifdef __cplusplus
  22967 class DECLSPEC_UUID("c23fc28d-c55f-4720-8b32-91f73c2bd5d1") SpPhraseInfoBuilder;
  22968 #ifdef __CRT_UUID_DECL
  22969 __CRT_UUID_DECL(SpPhraseInfoBuilder, 0xc23fc28d, 0xc55f, 0x4720, 0x8b,0x32, 0x91,0xf7,0x3c,0x2b,0xd5,0xd1)
  22970 #endif
  22971 #endif
  22972 
  22973 /*****************************************************************************
  22974  * SpAudioFormat coclass
  22975  */
  22976 
  22977 DEFINE_GUID(CLSID_SpAudioFormat, 0x9ef96870, 0xe160, 0x4792, 0x82,0x0d, 0x48,0xcf,0x06,0x49,0xe4,0xec);
  22978 
  22979 #ifdef __cplusplus
  22980 class DECLSPEC_UUID("9ef96870-e160-4792-820d-48cf0649e4ec") SpAudioFormat;
  22981 #ifdef __CRT_UUID_DECL
  22982 __CRT_UUID_DECL(SpAudioFormat, 0x9ef96870, 0xe160, 0x4792, 0x82,0x0d, 0x48,0xcf,0x06,0x49,0xe4,0xec)
  22983 #endif
  22984 #endif
  22985 
  22986 /*****************************************************************************
  22987  * SpWaveFormatEx coclass
  22988  */
  22989 
  22990 DEFINE_GUID(CLSID_SpWaveFormatEx, 0xc79a574c, 0x63be, 0x44b9, 0x80,0x1f, 0x28,0x3f,0x87,0xf8,0x98,0xbe);
  22991 
  22992 #ifdef __cplusplus
  22993 class DECLSPEC_UUID("c79a574c-63be-44b9-801f-283f87f898be") SpWaveFormatEx;
  22994 #ifdef __CRT_UUID_DECL
  22995 __CRT_UUID_DECL(SpWaveFormatEx, 0xc79a574c, 0x63be, 0x44b9, 0x80,0x1f, 0x28,0x3f,0x87,0xf8,0x98,0xbe)
  22996 #endif
  22997 #endif
  22998 
  22999 /*****************************************************************************
  23000  * SpInProcRecoContext coclass
  23001  */
  23002 
  23003 DEFINE_GUID(CLSID_SpInProcRecoContext, 0x73ad6842, 0xace0, 0x45e8, 0xa4,0xdd, 0x87,0x95,0x88,0x1a,0x2c,0x2a);
  23004 
  23005 #ifdef __cplusplus
  23006 class DECLSPEC_UUID("73ad6842-ace0-45e8-a4dd-8795881a2c2a") SpInProcRecoContext;
  23007 #ifdef __CRT_UUID_DECL
  23008 __CRT_UUID_DECL(SpInProcRecoContext, 0x73ad6842, 0xace0, 0x45e8, 0xa4,0xdd, 0x87,0x95,0x88,0x1a,0x2c,0x2a)
  23009 #endif
  23010 #endif
  23011 
  23012 /*****************************************************************************
  23013  * SpCustomStream coclass
  23014  */
  23015 
  23016 DEFINE_GUID(CLSID_SpCustomStream, 0x8dbef13f, 0x1948, 0x4aa8, 0x8c,0xf0, 0x04,0x8e,0xeb,0xed,0x95,0xd8);
  23017 
  23018 #ifdef __cplusplus
  23019 class DECLSPEC_UUID("8dbef13f-1948-4aa8-8cf0-048eebed95d8") SpCustomStream;
  23020 #ifdef __CRT_UUID_DECL
  23021 __CRT_UUID_DECL(SpCustomStream, 0x8dbef13f, 0x1948, 0x4aa8, 0x8c,0xf0, 0x04,0x8e,0xeb,0xed,0x95,0xd8)
  23022 #endif
  23023 #endif
  23024 
  23025 /*****************************************************************************
  23026  * SpFileStream coclass
  23027  */
  23028 
  23029 DEFINE_GUID(CLSID_SpFileStream, 0x947812b3, 0x2ae1, 0x4644, 0xba,0x86, 0x9e,0x90,0xde,0xd7,0xec,0x91);
  23030 
  23031 #ifdef __cplusplus
  23032 class DECLSPEC_UUID("947812b3-2ae1-4644-ba86-9e90ded7ec91") SpFileStream;
  23033 #ifdef __CRT_UUID_DECL
  23034 __CRT_UUID_DECL(SpFileStream, 0x947812b3, 0x2ae1, 0x4644, 0xba,0x86, 0x9e,0x90,0xde,0xd7,0xec,0x91)
  23035 #endif
  23036 #endif
  23037 
  23038 /*****************************************************************************
  23039  * SpMemoryStream coclass
  23040  */
  23041 
  23042 DEFINE_GUID(CLSID_SpMemoryStream, 0x5fb7ef7d, 0xdff4, 0x468a, 0xb6,0xb7, 0x2f,0xcb,0xd1,0x88,0xf9,0x94);
  23043 
  23044 #ifdef __cplusplus
  23045 class DECLSPEC_UUID("5fb7ef7d-dff4-468a-b6b7-2fcbd188f994") SpMemoryStream;
  23046 #ifdef __CRT_UUID_DECL
  23047 __CRT_UUID_DECL(SpMemoryStream, 0x5fb7ef7d, 0xdff4, 0x468a, 0xb6,0xb7, 0x2f,0xcb,0xd1,0x88,0xf9,0x94)
  23048 #endif
  23049 #endif
  23050 
  23051 #ifndef __ISpXMLRecoResult_FWD_DEFINED__
  23052 #define __ISpXMLRecoResult_FWD_DEFINED__
  23053 typedef interface ISpXMLRecoResult ISpXMLRecoResult;
  23054 #ifdef __cplusplus
  23055 interface ISpXMLRecoResult;
  23056 #endif /* __cplusplus */
  23057 #endif
  23058 
  23059 #ifndef __ISpRecoGrammar2_FWD_DEFINED__
  23060 #define __ISpRecoGrammar2_FWD_DEFINED__
  23061 typedef interface ISpRecoGrammar2 ISpRecoGrammar2;
  23062 #ifdef __cplusplus
  23063 interface ISpRecoGrammar2;
  23064 #endif /* __cplusplus */
  23065 #endif
  23066 
  23067 #ifndef __ISpeechResourceLoader_FWD_DEFINED__
  23068 #define __ISpeechResourceLoader_FWD_DEFINED__
  23069 typedef interface ISpeechResourceLoader ISpeechResourceLoader;
  23070 #ifdef __cplusplus
  23071 interface ISpeechResourceLoader;
  23072 #endif /* __cplusplus */
  23073 #endif
  23074 
  23075 #endif /* __SpeechLib_LIBRARY_DEFINED__ */
  23076 /* Begin additional prototypes for all interfaces */
  23077 
  23078 ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
  23079 unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
  23080 unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
  23081 void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
  23082 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
  23083 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
  23084 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
  23085 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
  23086 ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
  23087 unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
  23088 unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
  23089 void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
  23090 
  23091 /* End additional prototypes */
  23092 
  23093 #ifdef __cplusplus
  23094 }
  23095 #endif
  23096 
  23097 #endif /* __sapi53_h__ */