zig

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

sapi51.h (781742B) - Raw


      1 /*** Autogenerated by WIDL 10.4 from include/sapi51.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 __sapi51_h__
     17 #define __sapi51_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 __ISpEventSink_FWD_DEFINED__
    118 #define __ISpEventSink_FWD_DEFINED__
    119 typedef interface ISpEventSink ISpEventSink;
    120 #ifdef __cplusplus
    121 interface ISpEventSink;
    122 #endif /* __cplusplus */
    123 #endif
    124 
    125 #ifndef __ISpStreamFormat_FWD_DEFINED__
    126 #define __ISpStreamFormat_FWD_DEFINED__
    127 typedef interface ISpStreamFormat ISpStreamFormat;
    128 #ifdef __cplusplus
    129 interface ISpStreamFormat;
    130 #endif /* __cplusplus */
    131 #endif
    132 
    133 #ifndef __ISpStream_FWD_DEFINED__
    134 #define __ISpStream_FWD_DEFINED__
    135 typedef interface ISpStream ISpStream;
    136 #ifdef __cplusplus
    137 interface ISpStream;
    138 #endif /* __cplusplus */
    139 #endif
    140 
    141 #ifndef __ISpStreamFormatConverter_FWD_DEFINED__
    142 #define __ISpStreamFormatConverter_FWD_DEFINED__
    143 typedef interface ISpStreamFormatConverter ISpStreamFormatConverter;
    144 #ifdef __cplusplus
    145 interface ISpStreamFormatConverter;
    146 #endif /* __cplusplus */
    147 #endif
    148 
    149 #ifndef __ISpAudio_FWD_DEFINED__
    150 #define __ISpAudio_FWD_DEFINED__
    151 typedef interface ISpAudio ISpAudio;
    152 #ifdef __cplusplus
    153 interface ISpAudio;
    154 #endif /* __cplusplus */
    155 #endif
    156 
    157 #ifndef __ISpMMSysAudio_FWD_DEFINED__
    158 #define __ISpMMSysAudio_FWD_DEFINED__
    159 typedef interface ISpMMSysAudio ISpMMSysAudio;
    160 #ifdef __cplusplus
    161 interface ISpMMSysAudio;
    162 #endif /* __cplusplus */
    163 #endif
    164 
    165 #ifndef __ISpTranscript_FWD_DEFINED__
    166 #define __ISpTranscript_FWD_DEFINED__
    167 typedef interface ISpTranscript ISpTranscript;
    168 #ifdef __cplusplus
    169 interface ISpTranscript;
    170 #endif /* __cplusplus */
    171 #endif
    172 
    173 #ifndef __ISpLexicon_FWD_DEFINED__
    174 #define __ISpLexicon_FWD_DEFINED__
    175 typedef interface ISpLexicon ISpLexicon;
    176 #ifdef __cplusplus
    177 interface ISpLexicon;
    178 #endif /* __cplusplus */
    179 #endif
    180 
    181 #ifndef __ISpContainerLexicon_FWD_DEFINED__
    182 #define __ISpContainerLexicon_FWD_DEFINED__
    183 typedef interface ISpContainerLexicon ISpContainerLexicon;
    184 #ifdef __cplusplus
    185 interface ISpContainerLexicon;
    186 #endif /* __cplusplus */
    187 #endif
    188 
    189 #ifndef __ISpPhoneConverter_FWD_DEFINED__
    190 #define __ISpPhoneConverter_FWD_DEFINED__
    191 typedef interface ISpPhoneConverter ISpPhoneConverter;
    192 #ifdef __cplusplus
    193 interface ISpPhoneConverter;
    194 #endif /* __cplusplus */
    195 #endif
    196 
    197 #ifndef __ISpVoice_FWD_DEFINED__
    198 #define __ISpVoice_FWD_DEFINED__
    199 typedef interface ISpVoice ISpVoice;
    200 #ifdef __cplusplus
    201 interface ISpVoice;
    202 #endif /* __cplusplus */
    203 #endif
    204 
    205 #ifndef __ISpPhrase_FWD_DEFINED__
    206 #define __ISpPhrase_FWD_DEFINED__
    207 typedef interface ISpPhrase ISpPhrase;
    208 #ifdef __cplusplus
    209 interface ISpPhrase;
    210 #endif /* __cplusplus */
    211 #endif
    212 
    213 #ifndef __ISpPhraseAlt_FWD_DEFINED__
    214 #define __ISpPhraseAlt_FWD_DEFINED__
    215 typedef interface ISpPhraseAlt ISpPhraseAlt;
    216 #ifdef __cplusplus
    217 interface ISpPhraseAlt;
    218 #endif /* __cplusplus */
    219 #endif
    220 
    221 #ifndef __ISpRecoResult_FWD_DEFINED__
    222 #define __ISpRecoResult_FWD_DEFINED__
    223 typedef interface ISpRecoResult ISpRecoResult;
    224 #ifdef __cplusplus
    225 interface ISpRecoResult;
    226 #endif /* __cplusplus */
    227 #endif
    228 
    229 #ifndef __ISpGrammarBuilder_FWD_DEFINED__
    230 #define __ISpGrammarBuilder_FWD_DEFINED__
    231 typedef interface ISpGrammarBuilder ISpGrammarBuilder;
    232 #ifdef __cplusplus
    233 interface ISpGrammarBuilder;
    234 #endif /* __cplusplus */
    235 #endif
    236 
    237 #ifndef __ISpRecoGrammar_FWD_DEFINED__
    238 #define __ISpRecoGrammar_FWD_DEFINED__
    239 typedef interface ISpRecoGrammar ISpRecoGrammar;
    240 #ifdef __cplusplus
    241 interface ISpRecoGrammar;
    242 #endif /* __cplusplus */
    243 #endif
    244 
    245 #ifndef __ISpRecoContext_FWD_DEFINED__
    246 #define __ISpRecoContext_FWD_DEFINED__
    247 typedef interface ISpRecoContext ISpRecoContext;
    248 #ifdef __cplusplus
    249 interface ISpRecoContext;
    250 #endif /* __cplusplus */
    251 #endif
    252 
    253 #ifndef __ISpProperties_FWD_DEFINED__
    254 #define __ISpProperties_FWD_DEFINED__
    255 typedef interface ISpProperties ISpProperties;
    256 #ifdef __cplusplus
    257 interface ISpProperties;
    258 #endif /* __cplusplus */
    259 #endif
    260 
    261 #ifndef __ISpRecognizer_FWD_DEFINED__
    262 #define __ISpRecognizer_FWD_DEFINED__
    263 typedef interface ISpRecognizer ISpRecognizer;
    264 #ifdef __cplusplus
    265 interface ISpRecognizer;
    266 #endif /* __cplusplus */
    267 #endif
    268 
    269 #ifndef __ISpeechDataKey_FWD_DEFINED__
    270 #define __ISpeechDataKey_FWD_DEFINED__
    271 typedef interface ISpeechDataKey ISpeechDataKey;
    272 #ifdef __cplusplus
    273 interface ISpeechDataKey;
    274 #endif /* __cplusplus */
    275 #endif
    276 
    277 #ifndef __ISpeechObjectToken_FWD_DEFINED__
    278 #define __ISpeechObjectToken_FWD_DEFINED__
    279 typedef interface ISpeechObjectToken ISpeechObjectToken;
    280 #ifdef __cplusplus
    281 interface ISpeechObjectToken;
    282 #endif /* __cplusplus */
    283 #endif
    284 
    285 #ifndef __ISpeechObjectTokens_FWD_DEFINED__
    286 #define __ISpeechObjectTokens_FWD_DEFINED__
    287 typedef interface ISpeechObjectTokens ISpeechObjectTokens;
    288 #ifdef __cplusplus
    289 interface ISpeechObjectTokens;
    290 #endif /* __cplusplus */
    291 #endif
    292 
    293 #ifndef __ISpeechObjectTokenCategory_FWD_DEFINED__
    294 #define __ISpeechObjectTokenCategory_FWD_DEFINED__
    295 typedef interface ISpeechObjectTokenCategory ISpeechObjectTokenCategory;
    296 #ifdef __cplusplus
    297 interface ISpeechObjectTokenCategory;
    298 #endif /* __cplusplus */
    299 #endif
    300 
    301 #ifndef __ISpeechAudioFormat_FWD_DEFINED__
    302 #define __ISpeechAudioFormat_FWD_DEFINED__
    303 typedef interface ISpeechAudioFormat ISpeechAudioFormat;
    304 #ifdef __cplusplus
    305 interface ISpeechAudioFormat;
    306 #endif /* __cplusplus */
    307 #endif
    308 
    309 #ifndef __ISpeechBaseStream_FWD_DEFINED__
    310 #define __ISpeechBaseStream_FWD_DEFINED__
    311 typedef interface ISpeechBaseStream ISpeechBaseStream;
    312 #ifdef __cplusplus
    313 interface ISpeechBaseStream;
    314 #endif /* __cplusplus */
    315 #endif
    316 
    317 #ifndef __ISpeechAudio_FWD_DEFINED__
    318 #define __ISpeechAudio_FWD_DEFINED__
    319 typedef interface ISpeechAudio ISpeechAudio;
    320 #ifdef __cplusplus
    321 interface ISpeechAudio;
    322 #endif /* __cplusplus */
    323 #endif
    324 
    325 #ifndef __ISpeechMMSysAudio_FWD_DEFINED__
    326 #define __ISpeechMMSysAudio_FWD_DEFINED__
    327 typedef interface ISpeechMMSysAudio ISpeechMMSysAudio;
    328 #ifdef __cplusplus
    329 interface ISpeechMMSysAudio;
    330 #endif /* __cplusplus */
    331 #endif
    332 
    333 #ifndef __ISpeechFileStream_FWD_DEFINED__
    334 #define __ISpeechFileStream_FWD_DEFINED__
    335 typedef interface ISpeechFileStream ISpeechFileStream;
    336 #ifdef __cplusplus
    337 interface ISpeechFileStream;
    338 #endif /* __cplusplus */
    339 #endif
    340 
    341 #ifndef __ISpeechCustomStream_FWD_DEFINED__
    342 #define __ISpeechCustomStream_FWD_DEFINED__
    343 typedef interface ISpeechCustomStream ISpeechCustomStream;
    344 #ifdef __cplusplus
    345 interface ISpeechCustomStream;
    346 #endif /* __cplusplus */
    347 #endif
    348 
    349 #ifndef __ISpeechMemoryStream_FWD_DEFINED__
    350 #define __ISpeechMemoryStream_FWD_DEFINED__
    351 typedef interface ISpeechMemoryStream ISpeechMemoryStream;
    352 #ifdef __cplusplus
    353 interface ISpeechMemoryStream;
    354 #endif /* __cplusplus */
    355 #endif
    356 
    357 #ifndef __ISpeechAudioStatus_FWD_DEFINED__
    358 #define __ISpeechAudioStatus_FWD_DEFINED__
    359 typedef interface ISpeechAudioStatus ISpeechAudioStatus;
    360 #ifdef __cplusplus
    361 interface ISpeechAudioStatus;
    362 #endif /* __cplusplus */
    363 #endif
    364 
    365 #ifndef __ISpeechAudioBufferInfo_FWD_DEFINED__
    366 #define __ISpeechAudioBufferInfo_FWD_DEFINED__
    367 typedef interface ISpeechAudioBufferInfo ISpeechAudioBufferInfo;
    368 #ifdef __cplusplus
    369 interface ISpeechAudioBufferInfo;
    370 #endif /* __cplusplus */
    371 #endif
    372 
    373 #ifndef __ISpeechWaveFormatEx_FWD_DEFINED__
    374 #define __ISpeechWaveFormatEx_FWD_DEFINED__
    375 typedef interface ISpeechWaveFormatEx ISpeechWaveFormatEx;
    376 #ifdef __cplusplus
    377 interface ISpeechWaveFormatEx;
    378 #endif /* __cplusplus */
    379 #endif
    380 
    381 #ifndef __ISpeechVoice_FWD_DEFINED__
    382 #define __ISpeechVoice_FWD_DEFINED__
    383 typedef interface ISpeechVoice ISpeechVoice;
    384 #ifdef __cplusplus
    385 interface ISpeechVoice;
    386 #endif /* __cplusplus */
    387 #endif
    388 
    389 #ifndef __ISpeechVoiceStatus_FWD_DEFINED__
    390 #define __ISpeechVoiceStatus_FWD_DEFINED__
    391 typedef interface ISpeechVoiceStatus ISpeechVoiceStatus;
    392 #ifdef __cplusplus
    393 interface ISpeechVoiceStatus;
    394 #endif /* __cplusplus */
    395 #endif
    396 
    397 #ifndef ___ISpeechVoiceEvents_FWD_DEFINED__
    398 #define ___ISpeechVoiceEvents_FWD_DEFINED__
    399 typedef interface _ISpeechVoiceEvents _ISpeechVoiceEvents;
    400 #ifdef __cplusplus
    401 interface _ISpeechVoiceEvents;
    402 #endif /* __cplusplus */
    403 #endif
    404 
    405 #ifndef __ISpeechRecognizer_FWD_DEFINED__
    406 #define __ISpeechRecognizer_FWD_DEFINED__
    407 typedef interface ISpeechRecognizer ISpeechRecognizer;
    408 #ifdef __cplusplus
    409 interface ISpeechRecognizer;
    410 #endif /* __cplusplus */
    411 #endif
    412 
    413 #ifndef __ISpeechRecognizerStatus_FWD_DEFINED__
    414 #define __ISpeechRecognizerStatus_FWD_DEFINED__
    415 typedef interface ISpeechRecognizerStatus ISpeechRecognizerStatus;
    416 #ifdef __cplusplus
    417 interface ISpeechRecognizerStatus;
    418 #endif /* __cplusplus */
    419 #endif
    420 
    421 #ifndef __ISpeechRecoContext_FWD_DEFINED__
    422 #define __ISpeechRecoContext_FWD_DEFINED__
    423 typedef interface ISpeechRecoContext ISpeechRecoContext;
    424 #ifdef __cplusplus
    425 interface ISpeechRecoContext;
    426 #endif /* __cplusplus */
    427 #endif
    428 
    429 #ifndef __ISpeechRecoGrammar_FWD_DEFINED__
    430 #define __ISpeechRecoGrammar_FWD_DEFINED__
    431 typedef interface ISpeechRecoGrammar ISpeechRecoGrammar;
    432 #ifdef __cplusplus
    433 interface ISpeechRecoGrammar;
    434 #endif /* __cplusplus */
    435 #endif
    436 
    437 #ifndef ___ISpeechRecoContextEvents_FWD_DEFINED__
    438 #define ___ISpeechRecoContextEvents_FWD_DEFINED__
    439 typedef interface _ISpeechRecoContextEvents _ISpeechRecoContextEvents;
    440 #ifdef __cplusplus
    441 interface _ISpeechRecoContextEvents;
    442 #endif /* __cplusplus */
    443 #endif
    444 
    445 #ifndef __ISpeechGrammarRule_FWD_DEFINED__
    446 #define __ISpeechGrammarRule_FWD_DEFINED__
    447 typedef interface ISpeechGrammarRule ISpeechGrammarRule;
    448 #ifdef __cplusplus
    449 interface ISpeechGrammarRule;
    450 #endif /* __cplusplus */
    451 #endif
    452 
    453 #ifndef __ISpeechGrammarRules_FWD_DEFINED__
    454 #define __ISpeechGrammarRules_FWD_DEFINED__
    455 typedef interface ISpeechGrammarRules ISpeechGrammarRules;
    456 #ifdef __cplusplus
    457 interface ISpeechGrammarRules;
    458 #endif /* __cplusplus */
    459 #endif
    460 
    461 #ifndef __ISpeechGrammarRuleState_FWD_DEFINED__
    462 #define __ISpeechGrammarRuleState_FWD_DEFINED__
    463 typedef interface ISpeechGrammarRuleState ISpeechGrammarRuleState;
    464 #ifdef __cplusplus
    465 interface ISpeechGrammarRuleState;
    466 #endif /* __cplusplus */
    467 #endif
    468 
    469 #ifndef __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
    470 #define __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
    471 typedef interface ISpeechGrammarRuleStateTransitions ISpeechGrammarRuleStateTransitions;
    472 #ifdef __cplusplus
    473 interface ISpeechGrammarRuleStateTransitions;
    474 #endif /* __cplusplus */
    475 #endif
    476 
    477 #ifndef __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
    478 #define __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
    479 typedef interface ISpeechGrammarRuleStateTransition ISpeechGrammarRuleStateTransition;
    480 #ifdef __cplusplus
    481 interface ISpeechGrammarRuleStateTransition;
    482 #endif /* __cplusplus */
    483 #endif
    484 
    485 #ifndef __ISpeechTextSelectionInformation_FWD_DEFINED__
    486 #define __ISpeechTextSelectionInformation_FWD_DEFINED__
    487 typedef interface ISpeechTextSelectionInformation ISpeechTextSelectionInformation;
    488 #ifdef __cplusplus
    489 interface ISpeechTextSelectionInformation;
    490 #endif /* __cplusplus */
    491 #endif
    492 
    493 #ifndef __ISpeechRecoResult_FWD_DEFINED__
    494 #define __ISpeechRecoResult_FWD_DEFINED__
    495 typedef interface ISpeechRecoResult ISpeechRecoResult;
    496 #ifdef __cplusplus
    497 interface ISpeechRecoResult;
    498 #endif /* __cplusplus */
    499 #endif
    500 
    501 #ifndef __ISpeechPhraseInfoBuilder_FWD_DEFINED__
    502 #define __ISpeechPhraseInfoBuilder_FWD_DEFINED__
    503 typedef interface ISpeechPhraseInfoBuilder ISpeechPhraseInfoBuilder;
    504 #ifdef __cplusplus
    505 interface ISpeechPhraseInfoBuilder;
    506 #endif /* __cplusplus */
    507 #endif
    508 
    509 #ifndef __ISpeechRecoResultTimes_FWD_DEFINED__
    510 #define __ISpeechRecoResultTimes_FWD_DEFINED__
    511 typedef interface ISpeechRecoResultTimes ISpeechRecoResultTimes;
    512 #ifdef __cplusplus
    513 interface ISpeechRecoResultTimes;
    514 #endif /* __cplusplus */
    515 #endif
    516 
    517 #ifndef __ISpeechPhraseAlternate_FWD_DEFINED__
    518 #define __ISpeechPhraseAlternate_FWD_DEFINED__
    519 typedef interface ISpeechPhraseAlternate ISpeechPhraseAlternate;
    520 #ifdef __cplusplus
    521 interface ISpeechPhraseAlternate;
    522 #endif /* __cplusplus */
    523 #endif
    524 
    525 #ifndef __ISpeechPhraseAlternates_FWD_DEFINED__
    526 #define __ISpeechPhraseAlternates_FWD_DEFINED__
    527 typedef interface ISpeechPhraseAlternates ISpeechPhraseAlternates;
    528 #ifdef __cplusplus
    529 interface ISpeechPhraseAlternates;
    530 #endif /* __cplusplus */
    531 #endif
    532 
    533 #ifndef __ISpeechPhraseInfo_FWD_DEFINED__
    534 #define __ISpeechPhraseInfo_FWD_DEFINED__
    535 typedef interface ISpeechPhraseInfo ISpeechPhraseInfo;
    536 #ifdef __cplusplus
    537 interface ISpeechPhraseInfo;
    538 #endif /* __cplusplus */
    539 #endif
    540 
    541 #ifndef __ISpeechPhraseElement_FWD_DEFINED__
    542 #define __ISpeechPhraseElement_FWD_DEFINED__
    543 typedef interface ISpeechPhraseElement ISpeechPhraseElement;
    544 #ifdef __cplusplus
    545 interface ISpeechPhraseElement;
    546 #endif /* __cplusplus */
    547 #endif
    548 
    549 #ifndef __ISpeechPhraseElements_FWD_DEFINED__
    550 #define __ISpeechPhraseElements_FWD_DEFINED__
    551 typedef interface ISpeechPhraseElements ISpeechPhraseElements;
    552 #ifdef __cplusplus
    553 interface ISpeechPhraseElements;
    554 #endif /* __cplusplus */
    555 #endif
    556 
    557 #ifndef __ISpeechPhraseReplacement_FWD_DEFINED__
    558 #define __ISpeechPhraseReplacement_FWD_DEFINED__
    559 typedef interface ISpeechPhraseReplacement ISpeechPhraseReplacement;
    560 #ifdef __cplusplus
    561 interface ISpeechPhraseReplacement;
    562 #endif /* __cplusplus */
    563 #endif
    564 
    565 #ifndef __ISpeechPhraseReplacements_FWD_DEFINED__
    566 #define __ISpeechPhraseReplacements_FWD_DEFINED__
    567 typedef interface ISpeechPhraseReplacements ISpeechPhraseReplacements;
    568 #ifdef __cplusplus
    569 interface ISpeechPhraseReplacements;
    570 #endif /* __cplusplus */
    571 #endif
    572 
    573 #ifndef __ISpeechPhraseProperty_FWD_DEFINED__
    574 #define __ISpeechPhraseProperty_FWD_DEFINED__
    575 typedef interface ISpeechPhraseProperty ISpeechPhraseProperty;
    576 #ifdef __cplusplus
    577 interface ISpeechPhraseProperty;
    578 #endif /* __cplusplus */
    579 #endif
    580 
    581 #ifndef __ISpeechPhraseProperties_FWD_DEFINED__
    582 #define __ISpeechPhraseProperties_FWD_DEFINED__
    583 typedef interface ISpeechPhraseProperties ISpeechPhraseProperties;
    584 #ifdef __cplusplus
    585 interface ISpeechPhraseProperties;
    586 #endif /* __cplusplus */
    587 #endif
    588 
    589 #ifndef __ISpeechPhraseRule_FWD_DEFINED__
    590 #define __ISpeechPhraseRule_FWD_DEFINED__
    591 typedef interface ISpeechPhraseRule ISpeechPhraseRule;
    592 #ifdef __cplusplus
    593 interface ISpeechPhraseRule;
    594 #endif /* __cplusplus */
    595 #endif
    596 
    597 #ifndef __ISpeechPhraseRules_FWD_DEFINED__
    598 #define __ISpeechPhraseRules_FWD_DEFINED__
    599 typedef interface ISpeechPhraseRules ISpeechPhraseRules;
    600 #ifdef __cplusplus
    601 interface ISpeechPhraseRules;
    602 #endif /* __cplusplus */
    603 #endif
    604 
    605 #ifndef __ISpeechLexiconWords_FWD_DEFINED__
    606 #define __ISpeechLexiconWords_FWD_DEFINED__
    607 typedef interface ISpeechLexiconWords ISpeechLexiconWords;
    608 #ifdef __cplusplus
    609 interface ISpeechLexiconWords;
    610 #endif /* __cplusplus */
    611 #endif
    612 
    613 #ifndef __ISpeechLexicon_FWD_DEFINED__
    614 #define __ISpeechLexicon_FWD_DEFINED__
    615 typedef interface ISpeechLexicon ISpeechLexicon;
    616 #ifdef __cplusplus
    617 interface ISpeechLexicon;
    618 #endif /* __cplusplus */
    619 #endif
    620 
    621 #ifndef __ISpeechLexiconWord_FWD_DEFINED__
    622 #define __ISpeechLexiconWord_FWD_DEFINED__
    623 typedef interface ISpeechLexiconWord ISpeechLexiconWord;
    624 #ifdef __cplusplus
    625 interface ISpeechLexiconWord;
    626 #endif /* __cplusplus */
    627 #endif
    628 
    629 #ifndef __ISpeechLexiconPronunciations_FWD_DEFINED__
    630 #define __ISpeechLexiconPronunciations_FWD_DEFINED__
    631 typedef interface ISpeechLexiconPronunciations ISpeechLexiconPronunciations;
    632 #ifdef __cplusplus
    633 interface ISpeechLexiconPronunciations;
    634 #endif /* __cplusplus */
    635 #endif
    636 
    637 #ifndef __ISpeechLexiconPronunciation_FWD_DEFINED__
    638 #define __ISpeechLexiconPronunciation_FWD_DEFINED__
    639 typedef interface ISpeechLexiconPronunciation ISpeechLexiconPronunciation;
    640 #ifdef __cplusplus
    641 interface ISpeechLexiconPronunciation;
    642 #endif /* __cplusplus */
    643 #endif
    644 
    645 #ifndef __ISpeechPhoneConverter_FWD_DEFINED__
    646 #define __ISpeechPhoneConverter_FWD_DEFINED__
    647 typedef interface ISpeechPhoneConverter ISpeechPhoneConverter;
    648 #ifdef __cplusplus
    649 interface ISpeechPhoneConverter;
    650 #endif /* __cplusplus */
    651 #endif
    652 
    653 #ifndef __SpNotifyTranslator_FWD_DEFINED__
    654 #define __SpNotifyTranslator_FWD_DEFINED__
    655 #ifdef __cplusplus
    656 typedef class SpNotifyTranslator SpNotifyTranslator;
    657 #else
    658 typedef struct SpNotifyTranslator SpNotifyTranslator;
    659 #endif /* defined __cplusplus */
    660 #endif /* defined __SpNotifyTranslator_FWD_DEFINED__ */
    661 
    662 #ifndef __SpObjectTokenCategory_FWD_DEFINED__
    663 #define __SpObjectTokenCategory_FWD_DEFINED__
    664 #ifdef __cplusplus
    665 typedef class SpObjectTokenCategory SpObjectTokenCategory;
    666 #else
    667 typedef struct SpObjectTokenCategory SpObjectTokenCategory;
    668 #endif /* defined __cplusplus */
    669 #endif /* defined __SpObjectTokenCategory_FWD_DEFINED__ */
    670 
    671 #ifndef __SpObjectToken_FWD_DEFINED__
    672 #define __SpObjectToken_FWD_DEFINED__
    673 #ifdef __cplusplus
    674 typedef class SpObjectToken SpObjectToken;
    675 #else
    676 typedef struct SpObjectToken SpObjectToken;
    677 #endif /* defined __cplusplus */
    678 #endif /* defined __SpObjectToken_FWD_DEFINED__ */
    679 
    680 #ifndef __SpResourceManager_FWD_DEFINED__
    681 #define __SpResourceManager_FWD_DEFINED__
    682 #ifdef __cplusplus
    683 typedef class SpResourceManager SpResourceManager;
    684 #else
    685 typedef struct SpResourceManager SpResourceManager;
    686 #endif /* defined __cplusplus */
    687 #endif /* defined __SpResourceManager_FWD_DEFINED__ */
    688 
    689 #ifndef __SpStreamFormatConverter_FWD_DEFINED__
    690 #define __SpStreamFormatConverter_FWD_DEFINED__
    691 #ifdef __cplusplus
    692 typedef class SpStreamFormatConverter SpStreamFormatConverter;
    693 #else
    694 typedef struct SpStreamFormatConverter SpStreamFormatConverter;
    695 #endif /* defined __cplusplus */
    696 #endif /* defined __SpStreamFormatConverter_FWD_DEFINED__ */
    697 
    698 #ifndef __SpMMAudioEnum_FWD_DEFINED__
    699 #define __SpMMAudioEnum_FWD_DEFINED__
    700 #ifdef __cplusplus
    701 typedef class SpMMAudioEnum SpMMAudioEnum;
    702 #else
    703 typedef struct SpMMAudioEnum SpMMAudioEnum;
    704 #endif /* defined __cplusplus */
    705 #endif /* defined __SpMMAudioEnum_FWD_DEFINED__ */
    706 
    707 #ifndef __SpMMAudioIn_FWD_DEFINED__
    708 #define __SpMMAudioIn_FWD_DEFINED__
    709 #ifdef __cplusplus
    710 typedef class SpMMAudioIn SpMMAudioIn;
    711 #else
    712 typedef struct SpMMAudioIn SpMMAudioIn;
    713 #endif /* defined __cplusplus */
    714 #endif /* defined __SpMMAudioIn_FWD_DEFINED__ */
    715 
    716 #ifndef __SpMMAudioOut_FWD_DEFINED__
    717 #define __SpMMAudioOut_FWD_DEFINED__
    718 #ifdef __cplusplus
    719 typedef class SpMMAudioOut SpMMAudioOut;
    720 #else
    721 typedef struct SpMMAudioOut SpMMAudioOut;
    722 #endif /* defined __cplusplus */
    723 #endif /* defined __SpMMAudioOut_FWD_DEFINED__ */
    724 
    725 #ifndef __SpStream_FWD_DEFINED__
    726 #define __SpStream_FWD_DEFINED__
    727 #ifdef __cplusplus
    728 typedef class SpStream SpStream;
    729 #else
    730 typedef struct SpStream SpStream;
    731 #endif /* defined __cplusplus */
    732 #endif /* defined __SpStream_FWD_DEFINED__ */
    733 
    734 #ifndef __SpVoice_FWD_DEFINED__
    735 #define __SpVoice_FWD_DEFINED__
    736 #ifdef __cplusplus
    737 typedef class SpVoice SpVoice;
    738 #else
    739 typedef struct SpVoice SpVoice;
    740 #endif /* defined __cplusplus */
    741 #endif /* defined __SpVoice_FWD_DEFINED__ */
    742 
    743 #ifndef __SpSharedRecoContext_FWD_DEFINED__
    744 #define __SpSharedRecoContext_FWD_DEFINED__
    745 #ifdef __cplusplus
    746 typedef class SpSharedRecoContext SpSharedRecoContext;
    747 #else
    748 typedef struct SpSharedRecoContext SpSharedRecoContext;
    749 #endif /* defined __cplusplus */
    750 #endif /* defined __SpSharedRecoContext_FWD_DEFINED__ */
    751 
    752 #ifndef __SpInprocRecognizer_FWD_DEFINED__
    753 #define __SpInprocRecognizer_FWD_DEFINED__
    754 #ifdef __cplusplus
    755 typedef class SpInprocRecognizer SpInprocRecognizer;
    756 #else
    757 typedef struct SpInprocRecognizer SpInprocRecognizer;
    758 #endif /* defined __cplusplus */
    759 #endif /* defined __SpInprocRecognizer_FWD_DEFINED__ */
    760 
    761 #ifndef __SpSharedRecognizer_FWD_DEFINED__
    762 #define __SpSharedRecognizer_FWD_DEFINED__
    763 #ifdef __cplusplus
    764 typedef class SpSharedRecognizer SpSharedRecognizer;
    765 #else
    766 typedef struct SpSharedRecognizer SpSharedRecognizer;
    767 #endif /* defined __cplusplus */
    768 #endif /* defined __SpSharedRecognizer_FWD_DEFINED__ */
    769 
    770 #ifndef __SpLexicon_FWD_DEFINED__
    771 #define __SpLexicon_FWD_DEFINED__
    772 #ifdef __cplusplus
    773 typedef class SpLexicon SpLexicon;
    774 #else
    775 typedef struct SpLexicon SpLexicon;
    776 #endif /* defined __cplusplus */
    777 #endif /* defined __SpLexicon_FWD_DEFINED__ */
    778 
    779 #ifndef __SpUnCompressedLexicon_FWD_DEFINED__
    780 #define __SpUnCompressedLexicon_FWD_DEFINED__
    781 #ifdef __cplusplus
    782 typedef class SpUnCompressedLexicon SpUnCompressedLexicon;
    783 #else
    784 typedef struct SpUnCompressedLexicon SpUnCompressedLexicon;
    785 #endif /* defined __cplusplus */
    786 #endif /* defined __SpUnCompressedLexicon_FWD_DEFINED__ */
    787 
    788 #ifndef __SpCompressedLexicon_FWD_DEFINED__
    789 #define __SpCompressedLexicon_FWD_DEFINED__
    790 #ifdef __cplusplus
    791 typedef class SpCompressedLexicon SpCompressedLexicon;
    792 #else
    793 typedef struct SpCompressedLexicon SpCompressedLexicon;
    794 #endif /* defined __cplusplus */
    795 #endif /* defined __SpCompressedLexicon_FWD_DEFINED__ */
    796 
    797 #ifndef __SpPhoneConverter_FWD_DEFINED__
    798 #define __SpPhoneConverter_FWD_DEFINED__
    799 #ifdef __cplusplus
    800 typedef class SpPhoneConverter SpPhoneConverter;
    801 #else
    802 typedef struct SpPhoneConverter SpPhoneConverter;
    803 #endif /* defined __cplusplus */
    804 #endif /* defined __SpPhoneConverter_FWD_DEFINED__ */
    805 
    806 #ifndef __SpNullPhoneConverter_FWD_DEFINED__
    807 #define __SpNullPhoneConverter_FWD_DEFINED__
    808 #ifdef __cplusplus
    809 typedef class SpNullPhoneConverter SpNullPhoneConverter;
    810 #else
    811 typedef struct SpNullPhoneConverter SpNullPhoneConverter;
    812 #endif /* defined __cplusplus */
    813 #endif /* defined __SpNullPhoneConverter_FWD_DEFINED__ */
    814 
    815 #ifndef __SpTextSelectionInformation_FWD_DEFINED__
    816 #define __SpTextSelectionInformation_FWD_DEFINED__
    817 #ifdef __cplusplus
    818 typedef class SpTextSelectionInformation SpTextSelectionInformation;
    819 #else
    820 typedef struct SpTextSelectionInformation SpTextSelectionInformation;
    821 #endif /* defined __cplusplus */
    822 #endif /* defined __SpTextSelectionInformation_FWD_DEFINED__ */
    823 
    824 #ifndef __SpPhraseInfoBuilder_FWD_DEFINED__
    825 #define __SpPhraseInfoBuilder_FWD_DEFINED__
    826 #ifdef __cplusplus
    827 typedef class SpPhraseInfoBuilder SpPhraseInfoBuilder;
    828 #else
    829 typedef struct SpPhraseInfoBuilder SpPhraseInfoBuilder;
    830 #endif /* defined __cplusplus */
    831 #endif /* defined __SpPhraseInfoBuilder_FWD_DEFINED__ */
    832 
    833 #ifndef __SpAudioFormat_FWD_DEFINED__
    834 #define __SpAudioFormat_FWD_DEFINED__
    835 #ifdef __cplusplus
    836 typedef class SpAudioFormat SpAudioFormat;
    837 #else
    838 typedef struct SpAudioFormat SpAudioFormat;
    839 #endif /* defined __cplusplus */
    840 #endif /* defined __SpAudioFormat_FWD_DEFINED__ */
    841 
    842 #ifndef __SpWaveFormatEx_FWD_DEFINED__
    843 #define __SpWaveFormatEx_FWD_DEFINED__
    844 #ifdef __cplusplus
    845 typedef class SpWaveFormatEx SpWaveFormatEx;
    846 #else
    847 typedef struct SpWaveFormatEx SpWaveFormatEx;
    848 #endif /* defined __cplusplus */
    849 #endif /* defined __SpWaveFormatEx_FWD_DEFINED__ */
    850 
    851 #ifndef __SpInProcRecoContext_FWD_DEFINED__
    852 #define __SpInProcRecoContext_FWD_DEFINED__
    853 #ifdef __cplusplus
    854 typedef class SpInProcRecoContext SpInProcRecoContext;
    855 #else
    856 typedef struct SpInProcRecoContext SpInProcRecoContext;
    857 #endif /* defined __cplusplus */
    858 #endif /* defined __SpInProcRecoContext_FWD_DEFINED__ */
    859 
    860 #ifndef __SpCustomStream_FWD_DEFINED__
    861 #define __SpCustomStream_FWD_DEFINED__
    862 #ifdef __cplusplus
    863 typedef class SpCustomStream SpCustomStream;
    864 #else
    865 typedef struct SpCustomStream SpCustomStream;
    866 #endif /* defined __cplusplus */
    867 #endif /* defined __SpCustomStream_FWD_DEFINED__ */
    868 
    869 #ifndef __SpFileStream_FWD_DEFINED__
    870 #define __SpFileStream_FWD_DEFINED__
    871 #ifdef __cplusplus
    872 typedef class SpFileStream SpFileStream;
    873 #else
    874 typedef struct SpFileStream SpFileStream;
    875 #endif /* defined __cplusplus */
    876 #endif /* defined __SpFileStream_FWD_DEFINED__ */
    877 
    878 #ifndef __SpMemoryStream_FWD_DEFINED__
    879 #define __SpMemoryStream_FWD_DEFINED__
    880 #ifdef __cplusplus
    881 typedef class SpMemoryStream SpMemoryStream;
    882 #else
    883 typedef struct SpMemoryStream SpMemoryStream;
    884 #endif /* defined __cplusplus */
    885 #endif /* defined __SpMemoryStream_FWD_DEFINED__ */
    886 
    887 /* Headers for imported files */
    888 
    889 #include <oaidl.h>
    890 #include <ocidl.h>
    891 
    892 #ifdef __cplusplus
    893 extern "C" {
    894 #endif
    895 
    896 #ifndef _SAPI_VER
    897 #error "you have to include <sapi.h> header before this."
    898 #endif
    899 #if 0
    900 typedef struct WAVEFORMATEX {
    901     WORD wFormatTag;
    902     WORD nChannels;
    903     DWORD nSamplesPerSec;
    904     DWORD nAvgBytesPerSec;
    905     WORD nBlockAlign;
    906     WORD wBitsPerSample;
    907     WORD cbSize;
    908 } WAVEFORMATEX;
    909 #endif
    910 #ifndef __ISpNotifySource_FWD_DEFINED__
    911 #define __ISpNotifySource_FWD_DEFINED__
    912 typedef interface ISpNotifySource ISpNotifySource;
    913 #ifdef __cplusplus
    914 interface ISpNotifySource;
    915 #endif /* __cplusplus */
    916 #endif
    917 
    918 #ifndef __ISpNotifySink_FWD_DEFINED__
    919 #define __ISpNotifySink_FWD_DEFINED__
    920 typedef interface ISpNotifySink ISpNotifySink;
    921 #ifdef __cplusplus
    922 interface ISpNotifySink;
    923 #endif /* __cplusplus */
    924 #endif
    925 
    926 #ifndef __ISpNotifyTranslator_FWD_DEFINED__
    927 #define __ISpNotifyTranslator_FWD_DEFINED__
    928 typedef interface ISpNotifyTranslator ISpNotifyTranslator;
    929 #ifdef __cplusplus
    930 interface ISpNotifyTranslator;
    931 #endif /* __cplusplus */
    932 #endif
    933 
    934 #ifndef __ISpDataKey_FWD_DEFINED__
    935 #define __ISpDataKey_FWD_DEFINED__
    936 typedef interface ISpDataKey ISpDataKey;
    937 #ifdef __cplusplus
    938 interface ISpDataKey;
    939 #endif /* __cplusplus */
    940 #endif
    941 
    942 #ifndef __ISpObjectTokenCategory_FWD_DEFINED__
    943 #define __ISpObjectTokenCategory_FWD_DEFINED__
    944 typedef interface ISpObjectTokenCategory ISpObjectTokenCategory;
    945 #ifdef __cplusplus
    946 interface ISpObjectTokenCategory;
    947 #endif /* __cplusplus */
    948 #endif
    949 
    950 #ifndef __ISpObjectToken_FWD_DEFINED__
    951 #define __ISpObjectToken_FWD_DEFINED__
    952 typedef interface ISpObjectToken ISpObjectToken;
    953 #ifdef __cplusplus
    954 interface ISpObjectToken;
    955 #endif /* __cplusplus */
    956 #endif
    957 
    958 #ifndef __IEnumSpObjectTokens_FWD_DEFINED__
    959 #define __IEnumSpObjectTokens_FWD_DEFINED__
    960 typedef interface IEnumSpObjectTokens IEnumSpObjectTokens;
    961 #ifdef __cplusplus
    962 interface IEnumSpObjectTokens;
    963 #endif /* __cplusplus */
    964 #endif
    965 
    966 #ifndef __ISpObjectWithToken_FWD_DEFINED__
    967 #define __ISpObjectWithToken_FWD_DEFINED__
    968 typedef interface ISpObjectWithToken ISpObjectWithToken;
    969 #ifdef __cplusplus
    970 interface ISpObjectWithToken;
    971 #endif /* __cplusplus */
    972 #endif
    973 
    974 #ifndef __ISpResourceManager_FWD_DEFINED__
    975 #define __ISpResourceManager_FWD_DEFINED__
    976 typedef interface ISpResourceManager ISpResourceManager;
    977 #ifdef __cplusplus
    978 interface ISpResourceManager;
    979 #endif /* __cplusplus */
    980 #endif
    981 
    982 #ifndef __ISpEventSource_FWD_DEFINED__
    983 #define __ISpEventSource_FWD_DEFINED__
    984 typedef interface ISpEventSource ISpEventSource;
    985 #ifdef __cplusplus
    986 interface ISpEventSource;
    987 #endif /* __cplusplus */
    988 #endif
    989 
    990 #ifndef __ISpEventSink_FWD_DEFINED__
    991 #define __ISpEventSink_FWD_DEFINED__
    992 typedef interface ISpEventSink ISpEventSink;
    993 #ifdef __cplusplus
    994 interface ISpEventSink;
    995 #endif /* __cplusplus */
    996 #endif
    997 
    998 #ifndef __ISpStreamFormat_FWD_DEFINED__
    999 #define __ISpStreamFormat_FWD_DEFINED__
   1000 typedef interface ISpStreamFormat ISpStreamFormat;
   1001 #ifdef __cplusplus
   1002 interface ISpStreamFormat;
   1003 #endif /* __cplusplus */
   1004 #endif
   1005 
   1006 #ifndef __ISpStream_FWD_DEFINED__
   1007 #define __ISpStream_FWD_DEFINED__
   1008 typedef interface ISpStream ISpStream;
   1009 #ifdef __cplusplus
   1010 interface ISpStream;
   1011 #endif /* __cplusplus */
   1012 #endif
   1013 
   1014 #ifndef __ISpStreamFormatConverter_FWD_DEFINED__
   1015 #define __ISpStreamFormatConverter_FWD_DEFINED__
   1016 typedef interface ISpStreamFormatConverter ISpStreamFormatConverter;
   1017 #ifdef __cplusplus
   1018 interface ISpStreamFormatConverter;
   1019 #endif /* __cplusplus */
   1020 #endif
   1021 
   1022 #ifndef __ISpAudio_FWD_DEFINED__
   1023 #define __ISpAudio_FWD_DEFINED__
   1024 typedef interface ISpAudio ISpAudio;
   1025 #ifdef __cplusplus
   1026 interface ISpAudio;
   1027 #endif /* __cplusplus */
   1028 #endif
   1029 
   1030 #ifndef __ISpMMSysAudio_FWD_DEFINED__
   1031 #define __ISpMMSysAudio_FWD_DEFINED__
   1032 typedef interface ISpMMSysAudio ISpMMSysAudio;
   1033 #ifdef __cplusplus
   1034 interface ISpMMSysAudio;
   1035 #endif /* __cplusplus */
   1036 #endif
   1037 
   1038 #ifndef __ISpTranscript_FWD_DEFINED__
   1039 #define __ISpTranscript_FWD_DEFINED__
   1040 typedef interface ISpTranscript ISpTranscript;
   1041 #ifdef __cplusplus
   1042 interface ISpTranscript;
   1043 #endif /* __cplusplus */
   1044 #endif
   1045 
   1046 #ifndef __ISpVoice_FWD_DEFINED__
   1047 #define __ISpVoice_FWD_DEFINED__
   1048 typedef interface ISpVoice ISpVoice;
   1049 #ifdef __cplusplus
   1050 interface ISpVoice;
   1051 #endif /* __cplusplus */
   1052 #endif
   1053 
   1054 #ifndef __ISpRecoResult_FWD_DEFINED__
   1055 #define __ISpRecoResult_FWD_DEFINED__
   1056 typedef interface ISpRecoResult ISpRecoResult;
   1057 #ifdef __cplusplus
   1058 interface ISpRecoResult;
   1059 #endif /* __cplusplus */
   1060 #endif
   1061 
   1062 #ifndef __ISpRecoContext_FWD_DEFINED__
   1063 #define __ISpRecoContext_FWD_DEFINED__
   1064 typedef interface ISpRecoContext ISpRecoContext;
   1065 #ifdef __cplusplus
   1066 interface ISpRecoContext;
   1067 #endif /* __cplusplus */
   1068 #endif
   1069 
   1070 #ifndef __ISpRecognizer_FWD_DEFINED__
   1071 #define __ISpRecognizer_FWD_DEFINED__
   1072 typedef interface ISpRecognizer ISpRecognizer;
   1073 #ifdef __cplusplus
   1074 interface ISpRecognizer;
   1075 #endif /* __cplusplus */
   1076 #endif
   1077 
   1078 #ifndef __ISpProperties_FWD_DEFINED__
   1079 #define __ISpProperties_FWD_DEFINED__
   1080 typedef interface ISpProperties ISpProperties;
   1081 #ifdef __cplusplus
   1082 interface ISpProperties;
   1083 #endif /* __cplusplus */
   1084 #endif
   1085 
   1086 #ifndef __ISpLexicon_FWD_DEFINED__
   1087 #define __ISpLexicon_FWD_DEFINED__
   1088 typedef interface ISpLexicon ISpLexicon;
   1089 #ifdef __cplusplus
   1090 interface ISpLexicon;
   1091 #endif /* __cplusplus */
   1092 #endif
   1093 
   1094 #ifndef __ISpPhoneConverter_FWD_DEFINED__
   1095 #define __ISpPhoneConverter_FWD_DEFINED__
   1096 typedef interface ISpPhoneConverter ISpPhoneConverter;
   1097 #ifdef __cplusplus
   1098 interface ISpPhoneConverter;
   1099 #endif /* __cplusplus */
   1100 #endif
   1101 
   1102 #ifndef __ISpPhrase_FWD_DEFINED__
   1103 #define __ISpPhrase_FWD_DEFINED__
   1104 typedef interface ISpPhrase ISpPhrase;
   1105 #ifdef __cplusplus
   1106 interface ISpPhrase;
   1107 #endif /* __cplusplus */
   1108 #endif
   1109 
   1110 typedef enum SPDATAKEYLOCATION {
   1111     SPDKL_DefaultLocation = 0,
   1112     SPDKL_CurrentUser = 1,
   1113     SPDKL_LocalMachine = 2,
   1114     SPDKL_CurrentConfig = 5
   1115 } SPDATAKEYLOCATION;
   1116 typedef enum SPSTREAMFORMAT {
   1117     SPSF_Default = -1,
   1118     SPSF_NoAssignedFormat = 0,
   1119     SPSF_Text = 1,
   1120     SPSF_NonStandardFormat = 2,
   1121     SPSF_ExtendedAudioFormat = 3,
   1122     SPSF_8kHz8BitMono = 4,
   1123     SPSF_8kHz8BitStereo = 5,
   1124     SPSF_8kHz16BitMono = 6,
   1125     SPSF_8kHz16BitStereo = 7,
   1126     SPSF_11kHz8BitMono = 8,
   1127     SPSF_11kHz8BitStereo = 9,
   1128     SPSF_11kHz16BitMono = 10,
   1129     SPSF_11kHz16BitStereo = 11,
   1130     SPSF_12kHz8BitMono = 12,
   1131     SPSF_12kHz8BitStereo = 13,
   1132     SPSF_12kHz16BitMono = 14,
   1133     SPSF_12kHz16BitStereo = 15,
   1134     SPSF_16kHz8BitMono = 16,
   1135     SPSF_16kHz8BitStereo = 17,
   1136     SPSF_16kHz16BitMono = 18,
   1137     SPSF_16kHz16BitStereo = 19,
   1138     SPSF_22kHz8BitMono = 20,
   1139     SPSF_22kHz8BitStereo = 21,
   1140     SPSF_22kHz16BitMono = 22,
   1141     SPSF_22kHz16BitStereo = 23,
   1142     SPSF_24kHz8BitMono = 24,
   1143     SPSF_24kHz8BitStereo = 25,
   1144     SPSF_24kHz16BitMono = 26,
   1145     SPSF_24kHz16BitStereo = 27,
   1146     SPSF_32kHz8BitMono = 28,
   1147     SPSF_32kHz8BitStereo = 29,
   1148     SPSF_32kHz16BitMono = 30,
   1149     SPSF_32kHz16BitStereo = 31,
   1150     SPSF_44kHz8BitMono = 32,
   1151     SPSF_44kHz8BitStereo = 33,
   1152     SPSF_44kHz16BitMono = 34,
   1153     SPSF_44kHz16BitStereo = 35,
   1154     SPSF_48kHz8BitMono = 36,
   1155     SPSF_48kHz8BitStereo = 37,
   1156     SPSF_48kHz16BitMono = 38,
   1157     SPSF_48kHz16BitStereo = 39,
   1158     SPSF_TrueSpeech_8kHz1BitMono = 40,
   1159     SPSF_CCITT_ALaw_8kHzMono = 41,
   1160     SPSF_CCITT_ALaw_8kHzStereo = 42,
   1161     SPSF_CCITT_ALaw_11kHzMono = 43,
   1162     SPSF_CCITT_ALaw_11kHzStereo = 44,
   1163     SPSF_CCITT_ALaw_22kHzMono = 45,
   1164     SPSF_CCITT_ALaw_22kHzStereo = 46,
   1165     SPSF_CCITT_ALaw_44kHzMono = 47,
   1166     SPSF_CCITT_ALaw_44kHzStereo = 48,
   1167     SPSF_CCITT_uLaw_8kHzMono = 49,
   1168     SPSF_CCITT_uLaw_8kHzStereo = 50,
   1169     SPSF_CCITT_uLaw_11kHzMono = 51,
   1170     SPSF_CCITT_uLaw_11kHzStereo = 52,
   1171     SPSF_CCITT_uLaw_22kHzMono = 53,
   1172     SPSF_CCITT_uLaw_22kHzStereo = 54,
   1173     SPSF_CCITT_uLaw_44kHzMono = 55,
   1174     SPSF_CCITT_uLaw_44kHzStereo = 56,
   1175     SPSF_ADPCM_8kHzMono = 57,
   1176     SPSF_ADPCM_8kHzStereo = 58,
   1177     SPSF_ADPCM_11kHzMono = 59,
   1178     SPSF_ADPCM_11kHzStereo = 60,
   1179     SPSF_ADPCM_22kHzMono = 61,
   1180     SPSF_ADPCM_22kHzStereo = 62,
   1181     SPSF_ADPCM_44kHzMono = 63,
   1182     SPSF_ADPCM_44kHzStereo = 64,
   1183     SPSF_GSM610_8kHzMono = 65,
   1184     SPSF_GSM610_11kHzMono = 66,
   1185     SPSF_GSM610_22kHzMono = 67,
   1186     SPSF_GSM610_44kHzMono = 68,
   1187     SPSF_NUM_FORMATS = 69
   1188 } SPSTREAMFORMAT;
   1189 typedef enum SPEVENTLPARAMTYPE {
   1190     SPET_LPARAM_IS_UNDEFINED = 0,
   1191     SPET_LPARAM_IS_TOKEN = 1,
   1192     SPET_LPARAM_IS_OBJECT = 2,
   1193     SPET_LPARAM_IS_POINTER = 3,
   1194     SPET_LPARAM_IS_STRING = 4
   1195 } SPEVENTLPARAMTYPE;
   1196 typedef enum SPEVENTENUM {
   1197     SPEI_UNDEFINED = 0,
   1198     SPEI_START_INPUT_STREAM = 1,
   1199     SPEI_END_INPUT_STREAM = 2,
   1200     SPEI_VOICE_CHANGE = 3,
   1201     SPEI_TTS_BOOKMARK = 4,
   1202     SPEI_WORD_BOUNDARY = 5,
   1203     SPEI_PHONEME = 6,
   1204     SPEI_SENTENCE_BOUNDARY = 7,
   1205     SPEI_VISEME = 8,
   1206     SPEI_TTS_AUDIO_LEVEL = 9,
   1207     SPEI_TTS_PRIVATE = 15,
   1208     SPEI_MIN_TTS = 1,
   1209     SPEI_MAX_TTS = 15,
   1210     SPEI_END_SR_STREAM = 34,
   1211     SPEI_SOUND_START = 35,
   1212     SPEI_SOUND_END = 36,
   1213     SPEI_PHRASE_START = 37,
   1214     SPEI_RECOGNITION = 38,
   1215     SPEI_HYPOTHESIS = 39,
   1216     SPEI_SR_BOOKMARK = 40,
   1217     SPEI_PROPERTY_NUM_CHANGE = 41,
   1218     SPEI_PROPERTY_STRING_CHANGE = 42,
   1219     SPEI_FALSE_RECOGNITION = 43,
   1220     SPEI_INTERFERENCE = 44,
   1221     SPEI_REQUEST_UI = 45,
   1222     SPEI_RECO_STATE_CHANGE = 46,
   1223     SPEI_ADAPTATION = 47,
   1224     SPEI_START_SR_STREAM = 48,
   1225     SPEI_RECO_OTHER_CONTEXT = 49,
   1226     SPEI_SR_AUDIO_LEVEL = 50,
   1227     SPEI_SR_PRIVATE = 52,
   1228     SPEI_MIN_SR = 34,
   1229     SPEI_MAX_SR = 52,
   1230     SPEI_RESERVED1 = 30,
   1231     SPEI_RESERVED2 = 33,
   1232     SPEI_RESERVED3 = 63
   1233 } SPEVENTENUM;
   1234 typedef enum SPINTERFERENCE {
   1235     SPINTERFERENCE_NONE = 0,
   1236     SPINTERFERENCE_NOISE = 1,
   1237     SPINTERFERENCE_NOSIGNAL = 2,
   1238     SPINTERFERENCE_TOOLOUD = 3,
   1239     SPINTERFERENCE_TOOQUIET = 4,
   1240     SPINTERFERENCE_TOOFAST = 5,
   1241     SPINTERFERENCE_TOOSLOW = 6,
   1242     SPINTERFERENCE_LATENCY_WARNING = 7,
   1243     SPINTERFERENCE_LATENCY_TRUNCATE_BEGIN = 8,
   1244     SPINTERFERENCE_LATENCY_TRUNCATE_END = 9
   1245 } SPINTERFERENCE;
   1246 typedef enum SPENDSRSTREAMFLAGS {
   1247     SPESF_NONE = 0,
   1248     SPESF_STREAM_RELEASED = 1
   1249 } SPENDSRSTREAMFLAGS;
   1250 typedef enum SPVFEATURE {
   1251     SPVFEATURE_STRESSED = 1,
   1252     SPVFEATURE_EMPHASIS = 2
   1253 } SPVFEATURE;
   1254 typedef enum SPVISEMES {
   1255     SP_VISEME_0 = 0,
   1256     SP_VISEME_1 = 1,
   1257     SP_VISEME_2 = 2,
   1258     SP_VISEME_3 = 3,
   1259     SP_VISEME_4 = 4,
   1260     SP_VISEME_5 = 5,
   1261     SP_VISEME_6 = 6,
   1262     SP_VISEME_7 = 7,
   1263     SP_VISEME_8 = 8,
   1264     SP_VISEME_9 = 9,
   1265     SP_VISEME_10 = 10,
   1266     SP_VISEME_11 = 11,
   1267     SP_VISEME_12 = 12,
   1268     SP_VISEME_13 = 13,
   1269     SP_VISEME_14 = 14,
   1270     SP_VISEME_15 = 15,
   1271     SP_VISEME_16 = 16,
   1272     SP_VISEME_17 = 17,
   1273     SP_VISEME_18 = 18,
   1274     SP_VISEME_19 = 19,
   1275     SP_VISEME_20 = 20,
   1276     SP_VISEME_21 = 21
   1277 } SPVISEMES;
   1278 typedef enum SPFILEMODE {
   1279     SPFM_OPEN_READONLY = 0,
   1280     SPFM_OPEN_READWRITE = 1,
   1281     SPFM_CREATE = 2,
   1282     SPFM_CREATE_ALWAYS = 3,
   1283     SPFM_NUM_MODES = 4
   1284 } SPFILEMODE;
   1285 typedef enum _SPAUDIOSTATE {
   1286     SPAS_CLOSED = 0,
   1287     SPAS_STOP = 1,
   1288     SPAS_PAUSE = 2,
   1289     SPAS_RUN = 3
   1290 } SPAUDIOSTATE;
   1291 typedef enum SPDISPLYATTRIBUTES {
   1292     SPAF_ONE_TRAILING_SPACE = 0x2,
   1293     SPAF_TWO_TRAILING_SPACES = 0x4,
   1294     SPAF_CONSUME_LEADING_SPACES = 0x8,
   1295     SPAF_ALL = 0xf
   1296 } SPDISPLAYATTRIBUTES;
   1297 typedef enum SPPHRASEPROPERTYUNIONTYPE {
   1298     SPPPUT_UNUSED = 0,
   1299     SPPPUT_ARRAY_INDEX = 1
   1300 } SPPHRASEPROPERTYUNIONTYPE;
   1301 typedef enum SPRECOEVENTFLAGS {
   1302     SPREF_AutoPause = 0x1,
   1303     SPREF_Emulated = 0x2
   1304 } SPRECOEVENTFLAGS;
   1305 typedef enum SPPARTOFSPEECH {
   1306     SPPS_NotOverriden = -1,
   1307     SPPS_Unknown = 0,
   1308     SPPS_Noun = 0x1000,
   1309     SPPS_Verb = 0x2000,
   1310     SPPS_Modifier = 0x3000,
   1311     SPPS_Function = 0x4000,
   1312     SPPS_Interjection = 0x5000
   1313 } SPPARTOFSPEECH;
   1314 typedef enum SPLEXICONTYPE {
   1315     eLEXTYPE_USER = 0x1,
   1316     eLEXTYPE_APP = 0x2,
   1317     eLEXTYPE_VENDORLEXICON = 0x4,
   1318     eLEXTYPE_LETTERTOSOUND = 0x8,
   1319     eLEXTYPE_MORPHOLOGY = 0x10,
   1320     eLEXTYPE_RESERVED4 = 0x20,
   1321     eLEXTYPE_USER_SHORTCUT = 0x40,
   1322     eLEXTYPE_RESERVED6 = 0x80,
   1323     eLEXTYPE_RESERVED7 = 0x100,
   1324     eLEXTYPE_RESERVED8 = 0x200,
   1325     eLEXTYPE_RESERVED9 = 0x400,
   1326     eLEXTYPE_RESERVED10 = 0x800,
   1327     eLEXTYPE_PRIVATE1 = 0x1000,
   1328     eLEXTYPE_PRIVATE2 = 0x2000,
   1329     eLEXTYPE_PRIVATE3 = 0x4000,
   1330     eLEXTYPE_PRIVATE4 = 0x8000,
   1331     eLEXTYPE_PRIVATE5 = 0x10000,
   1332     eLEXTYPE_PRIVATE6 = 0x20000,
   1333     eLEXTYPE_PRIVATE7 = 0x40000,
   1334     eLEXTYPE_PRIVATE8 = 0x80000,
   1335     eLEXTYPE_PRIVATE9 = 0x100000,
   1336     eLEXTYPE_PRIVATE10 = 0x200000,
   1337     eLEXTYPE_PRIVATE11 = 0x400000,
   1338     eLEXTYPE_PRIVATE12 = 0x800000,
   1339     eLEXTYPE_PRIVATE13 = 0x1000000,
   1340     eLEXTYPE_PRIVATE14 = 0x2000000,
   1341     eLEXTYPE_PRIVATE15 = 0x4000000,
   1342     eLEXTYPE_PRIVATE16 = 0x8000000,
   1343     eLEXTYPE_PRIVATE17 = 0x10000000,
   1344     eLEXTYPE_PRIVATE18 = 0x20000000,
   1345     eLEXTYPE_PRIVATE19 = 0x40000000,
   1346     eLEXTYPE_PRIVATE20 = 0x80000000u
   1347 } SPLEXICONTYPE;
   1348 typedef enum SPWORDTYPE {
   1349     eWORDTYPE_ADDED = 1,
   1350     eWORDTYPE_DELETED = 2
   1351 } SPWORDTYPE;
   1352 typedef enum SPVALUETYPE {
   1353     SPDF_PROPERTY = 0x1,
   1354     SPDF_REPLACEMENT = 0x2,
   1355     SPDF_RULE = 0x4,
   1356     SPDF_DISPLAYTEXT = 0x8,
   1357     SPDF_LEXICALFORM = 0x10,
   1358     SPDF_PRONUNCIATION = 0x20,
   1359     SPDF_AUDIO = 0x40,
   1360     SPDF_ALTERNATES = 0x80,
   1361     SPDF_ALL = 0xff
   1362 } SPVALUETYPE;
   1363 typedef enum SPPHRASERNG {
   1364     SPPR_ALL_ELEMENTS = -1
   1365 } SPPHRASERNG;
   1366 typedef enum SPVACTIONS {
   1367     SPVA_Speak = 0,
   1368     SPVA_Silence = 1,
   1369     SPVA_Pronounce = 2,
   1370     SPVA_Bookmark = 3,
   1371     SPVA_SpellOut = 4,
   1372     SPVA_Section = 5,
   1373     SPVA_ParseUnknownTag = 6
   1374 } SPVACTIONS;
   1375 typedef enum SPRUNSTATE {
   1376     SPRS_DONE = 1,
   1377     SPRS_IS_SPEAKING = 2
   1378 } SPRUNSTATE;
   1379 typedef enum SPVLIMITS {
   1380     SPMIN_VOLUME = 0,
   1381     SPMAX_VOLUME = 100,
   1382     SPMIN_RATE = -10,
   1383     SPMAX_RATE = 10
   1384 } SPVLIMITS;
   1385 typedef enum SPVPRIORITY {
   1386     SPVPRI_NORMAL = 0,
   1387     SPVPRI_ALERT = 1,
   1388     SPVPRI_OVER = 2
   1389 } SPVPRIORITY;
   1390 EXTERN_C const GUID SPDFID_Text;
   1391 EXTERN_C const GUID SPDFID_WaveFormatEx;
   1392 
   1393 #define SP_LOW_CONFIDENCE (-1)
   1394 
   1395 #define SP_NORMAL_CONFIDENCE (0)
   1396 
   1397 #define SP_HIGH_CONFIDENCE (+1)
   1398 
   1399 #define DEFAULT_WEIGHT (1)
   1400 
   1401 #define SP_MAX_WORD_LENGTH (128)
   1402 
   1403 #define SP_MAX_PRON_LENGTH (384)
   1404 
   1405 
   1406 #ifdef __cplusplus
   1407 interface ISpNotifyCallback {
   1408   virtual HRESULT STDMETHODCALLTYPE NotifyCallback(WPARAM wParam, LPARAM lParam) = 0;
   1409 };
   1410 #else
   1411 typedef void *ISpNotifyCallback;
   1412 #endif
   1413 #if 0
   1414 typedef void *SPNOTIFYCALLBACK;
   1415 #else
   1416 typedef void __stdcall SPNOTIFYCALLBACK(WPARAM wParam, LPARAM lParam);
   1417 #endif
   1418 /*****************************************************************************
   1419  * ISpNotifySource interface
   1420  */
   1421 #ifndef __ISpNotifySource_INTERFACE_DEFINED__
   1422 #define __ISpNotifySource_INTERFACE_DEFINED__
   1423 
   1424 DEFINE_GUID(IID_ISpNotifySource, 0x5eff4aef, 0x8487, 0x11d2, 0x96,0x1c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
   1425 #if defined(__cplusplus) && !defined(CINTERFACE)
   1426 MIDL_INTERFACE("5eff4aef-8487-11d2-961c-00c04f8ee628")
   1427 ISpNotifySource : public IUnknown
   1428 {
   1429     virtual HRESULT STDMETHODCALLTYPE SetNotifySink(
   1430         ISpNotifySink *pNotifySink) = 0;
   1431 
   1432     virtual HRESULT STDMETHODCALLTYPE SetNotifyWindowMessage(
   1433         HWND hWnd,
   1434         UINT Msg,
   1435         WPARAM wParam,
   1436         LPARAM lParam) = 0;
   1437 
   1438     virtual HRESULT STDMETHODCALLTYPE SetNotifyCallbackFunction(
   1439         SPNOTIFYCALLBACK *pfnCallback,
   1440         WPARAM wParam,
   1441         LPARAM lParam) = 0;
   1442 
   1443     virtual HRESULT STDMETHODCALLTYPE SetNotifyCallbackInterface(
   1444         ISpNotifyCallback *pSpCallback,
   1445         WPARAM wParam,
   1446         LPARAM lParam) = 0;
   1447 
   1448     virtual HRESULT STDMETHODCALLTYPE SetNotifyWin32Event(
   1449         ) = 0;
   1450 
   1451     virtual HRESULT STDMETHODCALLTYPE WaitForNotifyEvent(
   1452         DWORD dwMilliseconds) = 0;
   1453 
   1454     virtual HANDLE STDMETHODCALLTYPE GetNotifyEventHandle(
   1455         ) = 0;
   1456 
   1457 };
   1458 #ifdef __CRT_UUID_DECL
   1459 __CRT_UUID_DECL(ISpNotifySource, 0x5eff4aef, 0x8487, 0x11d2, 0x96,0x1c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
   1460 #endif
   1461 #else
   1462 typedef struct ISpNotifySourceVtbl {
   1463     BEGIN_INTERFACE
   1464 
   1465     /*** IUnknown methods ***/
   1466     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1467         ISpNotifySource *This,
   1468         REFIID riid,
   1469         void **ppvObject);
   1470 
   1471     ULONG (STDMETHODCALLTYPE *AddRef)(
   1472         ISpNotifySource *This);
   1473 
   1474     ULONG (STDMETHODCALLTYPE *Release)(
   1475         ISpNotifySource *This);
   1476 
   1477     /*** ISpNotifySource methods ***/
   1478     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
   1479         ISpNotifySource *This,
   1480         ISpNotifySink *pNotifySink);
   1481 
   1482     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
   1483         ISpNotifySource *This,
   1484         HWND hWnd,
   1485         UINT Msg,
   1486         WPARAM wParam,
   1487         LPARAM lParam);
   1488 
   1489     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
   1490         ISpNotifySource *This,
   1491         SPNOTIFYCALLBACK *pfnCallback,
   1492         WPARAM wParam,
   1493         LPARAM lParam);
   1494 
   1495     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
   1496         ISpNotifySource *This,
   1497         ISpNotifyCallback *pSpCallback,
   1498         WPARAM wParam,
   1499         LPARAM lParam);
   1500 
   1501     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
   1502         ISpNotifySource *This);
   1503 
   1504     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
   1505         ISpNotifySource *This,
   1506         DWORD dwMilliseconds);
   1507 
   1508     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
   1509         ISpNotifySource *This);
   1510 
   1511     END_INTERFACE
   1512 } ISpNotifySourceVtbl;
   1513 
   1514 interface ISpNotifySource {
   1515     CONST_VTBL ISpNotifySourceVtbl* lpVtbl;
   1516 };
   1517 
   1518 #ifdef COBJMACROS
   1519 #ifndef WIDL_C_INLINE_WRAPPERS
   1520 /*** IUnknown methods ***/
   1521 #define ISpNotifySource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1522 #define ISpNotifySource_AddRef(This) (This)->lpVtbl->AddRef(This)
   1523 #define ISpNotifySource_Release(This) (This)->lpVtbl->Release(This)
   1524 /*** ISpNotifySource methods ***/
   1525 #define ISpNotifySource_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
   1526 #define ISpNotifySource_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
   1527 #define ISpNotifySource_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
   1528 #define ISpNotifySource_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
   1529 #define ISpNotifySource_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
   1530 #define ISpNotifySource_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
   1531 #define ISpNotifySource_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
   1532 #else
   1533 /*** IUnknown methods ***/
   1534 static inline HRESULT ISpNotifySource_QueryInterface(ISpNotifySource* This,REFIID riid,void **ppvObject) {
   1535     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1536 }
   1537 static inline ULONG ISpNotifySource_AddRef(ISpNotifySource* This) {
   1538     return This->lpVtbl->AddRef(This);
   1539 }
   1540 static inline ULONG ISpNotifySource_Release(ISpNotifySource* This) {
   1541     return This->lpVtbl->Release(This);
   1542 }
   1543 /*** ISpNotifySource methods ***/
   1544 static inline HRESULT ISpNotifySource_SetNotifySink(ISpNotifySource* This,ISpNotifySink *pNotifySink) {
   1545     return This->lpVtbl->SetNotifySink(This,pNotifySink);
   1546 }
   1547 static inline HRESULT ISpNotifySource_SetNotifyWindowMessage(ISpNotifySource* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
   1548     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
   1549 }
   1550 static inline HRESULT ISpNotifySource_SetNotifyCallbackFunction(ISpNotifySource* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
   1551     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
   1552 }
   1553 static inline HRESULT ISpNotifySource_SetNotifyCallbackInterface(ISpNotifySource* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
   1554     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
   1555 }
   1556 static inline HRESULT ISpNotifySource_SetNotifyWin32Event(ISpNotifySource* This) {
   1557     return This->lpVtbl->SetNotifyWin32Event(This);
   1558 }
   1559 static inline HRESULT ISpNotifySource_WaitForNotifyEvent(ISpNotifySource* This,DWORD dwMilliseconds) {
   1560     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
   1561 }
   1562 static inline HANDLE ISpNotifySource_GetNotifyEventHandle(ISpNotifySource* This) {
   1563     return This->lpVtbl->GetNotifyEventHandle(This);
   1564 }
   1565 #endif
   1566 #endif
   1567 
   1568 #endif
   1569 
   1570 
   1571 #endif  /* __ISpNotifySource_INTERFACE_DEFINED__ */
   1572 
   1573 /*****************************************************************************
   1574  * ISpNotifySink interface
   1575  */
   1576 #ifndef __ISpNotifySink_INTERFACE_DEFINED__
   1577 #define __ISpNotifySink_INTERFACE_DEFINED__
   1578 
   1579 DEFINE_GUID(IID_ISpNotifySink, 0x259684dc, 0x37c3, 0x11d2, 0x96,0x03, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
   1580 #if defined(__cplusplus) && !defined(CINTERFACE)
   1581 MIDL_INTERFACE("259684dc-37c3-11d2-9603-00c04f8ee628")
   1582 ISpNotifySink : public IUnknown
   1583 {
   1584     virtual HRESULT STDMETHODCALLTYPE Notify(
   1585         ) = 0;
   1586 
   1587 };
   1588 #ifdef __CRT_UUID_DECL
   1589 __CRT_UUID_DECL(ISpNotifySink, 0x259684dc, 0x37c3, 0x11d2, 0x96,0x03, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
   1590 #endif
   1591 #else
   1592 typedef struct ISpNotifySinkVtbl {
   1593     BEGIN_INTERFACE
   1594 
   1595     /*** IUnknown methods ***/
   1596     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1597         ISpNotifySink *This,
   1598         REFIID riid,
   1599         void **ppvObject);
   1600 
   1601     ULONG (STDMETHODCALLTYPE *AddRef)(
   1602         ISpNotifySink *This);
   1603 
   1604     ULONG (STDMETHODCALLTYPE *Release)(
   1605         ISpNotifySink *This);
   1606 
   1607     /*** ISpNotifySink methods ***/
   1608     HRESULT (STDMETHODCALLTYPE *Notify)(
   1609         ISpNotifySink *This);
   1610 
   1611     END_INTERFACE
   1612 } ISpNotifySinkVtbl;
   1613 
   1614 interface ISpNotifySink {
   1615     CONST_VTBL ISpNotifySinkVtbl* lpVtbl;
   1616 };
   1617 
   1618 #ifdef COBJMACROS
   1619 #ifndef WIDL_C_INLINE_WRAPPERS
   1620 /*** IUnknown methods ***/
   1621 #define ISpNotifySink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1622 #define ISpNotifySink_AddRef(This) (This)->lpVtbl->AddRef(This)
   1623 #define ISpNotifySink_Release(This) (This)->lpVtbl->Release(This)
   1624 /*** ISpNotifySink methods ***/
   1625 #define ISpNotifySink_Notify(This) (This)->lpVtbl->Notify(This)
   1626 #else
   1627 /*** IUnknown methods ***/
   1628 static inline HRESULT ISpNotifySink_QueryInterface(ISpNotifySink* This,REFIID riid,void **ppvObject) {
   1629     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1630 }
   1631 static inline ULONG ISpNotifySink_AddRef(ISpNotifySink* This) {
   1632     return This->lpVtbl->AddRef(This);
   1633 }
   1634 static inline ULONG ISpNotifySink_Release(ISpNotifySink* This) {
   1635     return This->lpVtbl->Release(This);
   1636 }
   1637 /*** ISpNotifySink methods ***/
   1638 static inline HRESULT ISpNotifySink_Notify(ISpNotifySink* This) {
   1639     return This->lpVtbl->Notify(This);
   1640 }
   1641 #endif
   1642 #endif
   1643 
   1644 #endif
   1645 
   1646 
   1647 #endif  /* __ISpNotifySink_INTERFACE_DEFINED__ */
   1648 
   1649 /*****************************************************************************
   1650  * ISpNotifyTranslator interface
   1651  */
   1652 #ifndef __ISpNotifyTranslator_INTERFACE_DEFINED__
   1653 #define __ISpNotifyTranslator_INTERFACE_DEFINED__
   1654 
   1655 DEFINE_GUID(IID_ISpNotifyTranslator, 0xaca16614, 0x5d3d, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
   1656 #if defined(__cplusplus) && !defined(CINTERFACE)
   1657 MIDL_INTERFACE("aca16614-5d3d-11d2-960e-00c04f8ee628")
   1658 ISpNotifyTranslator : public ISpNotifySink
   1659 {
   1660     virtual HRESULT STDMETHODCALLTYPE InitWindowMessage(
   1661         HWND hWnd,
   1662         UINT Msg,
   1663         WPARAM wParam,
   1664         LPARAM lParam) = 0;
   1665 
   1666     virtual HRESULT STDMETHODCALLTYPE InitCallback(
   1667         SPNOTIFYCALLBACK *pfnCallback,
   1668         WPARAM wParam,
   1669         LPARAM lParam) = 0;
   1670 
   1671     virtual HRESULT STDMETHODCALLTYPE InitSpNotifyCallback(
   1672         ISpNotifyCallback *pSpCallback,
   1673         WPARAM wParam,
   1674         LPARAM lParam) = 0;
   1675 
   1676     virtual HRESULT STDMETHODCALLTYPE InitWin32Event(
   1677         HANDLE hEvent,
   1678         WINBOOL fCloseHandleOnRelease) = 0;
   1679 
   1680     virtual HRESULT STDMETHODCALLTYPE Wait(
   1681         DWORD dwMilliseconds) = 0;
   1682 
   1683     virtual HANDLE STDMETHODCALLTYPE GetEventHandle(
   1684         ) = 0;
   1685 
   1686 };
   1687 #ifdef __CRT_UUID_DECL
   1688 __CRT_UUID_DECL(ISpNotifyTranslator, 0xaca16614, 0x5d3d, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
   1689 #endif
   1690 #else
   1691 typedef struct ISpNotifyTranslatorVtbl {
   1692     BEGIN_INTERFACE
   1693 
   1694     /*** IUnknown methods ***/
   1695     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1696         ISpNotifyTranslator *This,
   1697         REFIID riid,
   1698         void **ppvObject);
   1699 
   1700     ULONG (STDMETHODCALLTYPE *AddRef)(
   1701         ISpNotifyTranslator *This);
   1702 
   1703     ULONG (STDMETHODCALLTYPE *Release)(
   1704         ISpNotifyTranslator *This);
   1705 
   1706     /*** ISpNotifySink methods ***/
   1707     HRESULT (STDMETHODCALLTYPE *Notify)(
   1708         ISpNotifyTranslator *This);
   1709 
   1710     /*** ISpNotifyTranslator methods ***/
   1711     HRESULT (STDMETHODCALLTYPE *InitWindowMessage)(
   1712         ISpNotifyTranslator *This,
   1713         HWND hWnd,
   1714         UINT Msg,
   1715         WPARAM wParam,
   1716         LPARAM lParam);
   1717 
   1718     HRESULT (STDMETHODCALLTYPE *InitCallback)(
   1719         ISpNotifyTranslator *This,
   1720         SPNOTIFYCALLBACK *pfnCallback,
   1721         WPARAM wParam,
   1722         LPARAM lParam);
   1723 
   1724     HRESULT (STDMETHODCALLTYPE *InitSpNotifyCallback)(
   1725         ISpNotifyTranslator *This,
   1726         ISpNotifyCallback *pSpCallback,
   1727         WPARAM wParam,
   1728         LPARAM lParam);
   1729 
   1730     HRESULT (STDMETHODCALLTYPE *InitWin32Event)(
   1731         ISpNotifyTranslator *This,
   1732         HANDLE hEvent,
   1733         WINBOOL fCloseHandleOnRelease);
   1734 
   1735     HRESULT (STDMETHODCALLTYPE *Wait)(
   1736         ISpNotifyTranslator *This,
   1737         DWORD dwMilliseconds);
   1738 
   1739     HANDLE (STDMETHODCALLTYPE *GetEventHandle)(
   1740         ISpNotifyTranslator *This);
   1741 
   1742     END_INTERFACE
   1743 } ISpNotifyTranslatorVtbl;
   1744 
   1745 interface ISpNotifyTranslator {
   1746     CONST_VTBL ISpNotifyTranslatorVtbl* lpVtbl;
   1747 };
   1748 
   1749 #ifdef COBJMACROS
   1750 #ifndef WIDL_C_INLINE_WRAPPERS
   1751 /*** IUnknown methods ***/
   1752 #define ISpNotifyTranslator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1753 #define ISpNotifyTranslator_AddRef(This) (This)->lpVtbl->AddRef(This)
   1754 #define ISpNotifyTranslator_Release(This) (This)->lpVtbl->Release(This)
   1755 /*** ISpNotifySink methods ***/
   1756 #define ISpNotifyTranslator_Notify(This) (This)->lpVtbl->Notify(This)
   1757 /*** ISpNotifyTranslator methods ***/
   1758 #define ISpNotifyTranslator_InitWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->InitWindowMessage(This,hWnd,Msg,wParam,lParam)
   1759 #define ISpNotifyTranslator_InitCallback(This,pfnCallback,wParam,lParam) (This)->lpVtbl->InitCallback(This,pfnCallback,wParam,lParam)
   1760 #define ISpNotifyTranslator_InitSpNotifyCallback(This,pSpCallback,wParam,lParam) (This)->lpVtbl->InitSpNotifyCallback(This,pSpCallback,wParam,lParam)
   1761 #define ISpNotifyTranslator_InitWin32Event(This,hEvent,fCloseHandleOnRelease) (This)->lpVtbl->InitWin32Event(This,hEvent,fCloseHandleOnRelease)
   1762 #define ISpNotifyTranslator_Wait(This,dwMilliseconds) (This)->lpVtbl->Wait(This,dwMilliseconds)
   1763 #define ISpNotifyTranslator_GetEventHandle(This) (This)->lpVtbl->GetEventHandle(This)
   1764 #else
   1765 /*** IUnknown methods ***/
   1766 static inline HRESULT ISpNotifyTranslator_QueryInterface(ISpNotifyTranslator* This,REFIID riid,void **ppvObject) {
   1767     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1768 }
   1769 static inline ULONG ISpNotifyTranslator_AddRef(ISpNotifyTranslator* This) {
   1770     return This->lpVtbl->AddRef(This);
   1771 }
   1772 static inline ULONG ISpNotifyTranslator_Release(ISpNotifyTranslator* This) {
   1773     return This->lpVtbl->Release(This);
   1774 }
   1775 /*** ISpNotifySink methods ***/
   1776 static inline HRESULT ISpNotifyTranslator_Notify(ISpNotifyTranslator* This) {
   1777     return This->lpVtbl->Notify(This);
   1778 }
   1779 /*** ISpNotifyTranslator methods ***/
   1780 static inline HRESULT ISpNotifyTranslator_InitWindowMessage(ISpNotifyTranslator* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
   1781     return This->lpVtbl->InitWindowMessage(This,hWnd,Msg,wParam,lParam);
   1782 }
   1783 static inline HRESULT ISpNotifyTranslator_InitCallback(ISpNotifyTranslator* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
   1784     return This->lpVtbl->InitCallback(This,pfnCallback,wParam,lParam);
   1785 }
   1786 static inline HRESULT ISpNotifyTranslator_InitSpNotifyCallback(ISpNotifyTranslator* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
   1787     return This->lpVtbl->InitSpNotifyCallback(This,pSpCallback,wParam,lParam);
   1788 }
   1789 static inline HRESULT ISpNotifyTranslator_InitWin32Event(ISpNotifyTranslator* This,HANDLE hEvent,WINBOOL fCloseHandleOnRelease) {
   1790     return This->lpVtbl->InitWin32Event(This,hEvent,fCloseHandleOnRelease);
   1791 }
   1792 static inline HRESULT ISpNotifyTranslator_Wait(ISpNotifyTranslator* This,DWORD dwMilliseconds) {
   1793     return This->lpVtbl->Wait(This,dwMilliseconds);
   1794 }
   1795 static inline HANDLE ISpNotifyTranslator_GetEventHandle(ISpNotifyTranslator* This) {
   1796     return This->lpVtbl->GetEventHandle(This);
   1797 }
   1798 #endif
   1799 #endif
   1800 
   1801 #endif
   1802 
   1803 
   1804 #endif  /* __ISpNotifyTranslator_INTERFACE_DEFINED__ */
   1805 
   1806 /*****************************************************************************
   1807  * ISpDataKey interface
   1808  */
   1809 #ifndef __ISpDataKey_INTERFACE_DEFINED__
   1810 #define __ISpDataKey_INTERFACE_DEFINED__
   1811 
   1812 DEFINE_GUID(IID_ISpDataKey, 0x14056581, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
   1813 #if defined(__cplusplus) && !defined(CINTERFACE)
   1814 MIDL_INTERFACE("14056581-e16c-11d2-bb90-00c04f8ee6c0")
   1815 ISpDataKey : public IUnknown
   1816 {
   1817     virtual HRESULT STDMETHODCALLTYPE SetData(
   1818         LPCWSTR pszValueName,
   1819         ULONG cbData,
   1820         const BYTE *pData) = 0;
   1821 
   1822     virtual HRESULT STDMETHODCALLTYPE GetData(
   1823         LPCWSTR pszValueName,
   1824         ULONG *pcbData,
   1825         BYTE *pData) = 0;
   1826 
   1827     virtual HRESULT STDMETHODCALLTYPE SetStringValue(
   1828         LPCWSTR pszValueName,
   1829         LPCWSTR pszValue) = 0;
   1830 
   1831     virtual HRESULT STDMETHODCALLTYPE GetStringValue(
   1832         LPCWSTR pszValueName,
   1833         LPWSTR *ppszValue) = 0;
   1834 
   1835     virtual HRESULT STDMETHODCALLTYPE SetDWORD(
   1836         LPCWSTR pszValueName,
   1837         DWORD dwValue) = 0;
   1838 
   1839     virtual HRESULT STDMETHODCALLTYPE GetDWORD(
   1840         LPCWSTR pszValueName,
   1841         DWORD *pdwValue) = 0;
   1842 
   1843     virtual HRESULT STDMETHODCALLTYPE OpenKey(
   1844         LPCWSTR pszSubKeyName,
   1845         ISpDataKey **ppSubKey) = 0;
   1846 
   1847     virtual HRESULT STDMETHODCALLTYPE CreateKey(
   1848         LPCWSTR pszSubKey,
   1849         ISpDataKey **ppSubKey) = 0;
   1850 
   1851     virtual HRESULT STDMETHODCALLTYPE DeleteKey(
   1852         LPCWSTR pszSubKey) = 0;
   1853 
   1854     virtual HRESULT STDMETHODCALLTYPE DeleteValue(
   1855         LPCWSTR pszValueName) = 0;
   1856 
   1857     virtual HRESULT STDMETHODCALLTYPE EnumKeys(
   1858         ULONG Index,
   1859         LPWSTR *ppszSubKeyName) = 0;
   1860 
   1861     virtual HRESULT STDMETHODCALLTYPE EnumValues(
   1862         ULONG Index,
   1863         LPWSTR *ppszValueName) = 0;
   1864 
   1865 };
   1866 #ifdef __CRT_UUID_DECL
   1867 __CRT_UUID_DECL(ISpDataKey, 0x14056581, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
   1868 #endif
   1869 #else
   1870 typedef struct ISpDataKeyVtbl {
   1871     BEGIN_INTERFACE
   1872 
   1873     /*** IUnknown methods ***/
   1874     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1875         ISpDataKey *This,
   1876         REFIID riid,
   1877         void **ppvObject);
   1878 
   1879     ULONG (STDMETHODCALLTYPE *AddRef)(
   1880         ISpDataKey *This);
   1881 
   1882     ULONG (STDMETHODCALLTYPE *Release)(
   1883         ISpDataKey *This);
   1884 
   1885     /*** ISpDataKey methods ***/
   1886     HRESULT (STDMETHODCALLTYPE *SetData)(
   1887         ISpDataKey *This,
   1888         LPCWSTR pszValueName,
   1889         ULONG cbData,
   1890         const BYTE *pData);
   1891 
   1892     HRESULT (STDMETHODCALLTYPE *GetData)(
   1893         ISpDataKey *This,
   1894         LPCWSTR pszValueName,
   1895         ULONG *pcbData,
   1896         BYTE *pData);
   1897 
   1898     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
   1899         ISpDataKey *This,
   1900         LPCWSTR pszValueName,
   1901         LPCWSTR pszValue);
   1902 
   1903     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
   1904         ISpDataKey *This,
   1905         LPCWSTR pszValueName,
   1906         LPWSTR *ppszValue);
   1907 
   1908     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
   1909         ISpDataKey *This,
   1910         LPCWSTR pszValueName,
   1911         DWORD dwValue);
   1912 
   1913     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
   1914         ISpDataKey *This,
   1915         LPCWSTR pszValueName,
   1916         DWORD *pdwValue);
   1917 
   1918     HRESULT (STDMETHODCALLTYPE *OpenKey)(
   1919         ISpDataKey *This,
   1920         LPCWSTR pszSubKeyName,
   1921         ISpDataKey **ppSubKey);
   1922 
   1923     HRESULT (STDMETHODCALLTYPE *CreateKey)(
   1924         ISpDataKey *This,
   1925         LPCWSTR pszSubKey,
   1926         ISpDataKey **ppSubKey);
   1927 
   1928     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
   1929         ISpDataKey *This,
   1930         LPCWSTR pszSubKey);
   1931 
   1932     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
   1933         ISpDataKey *This,
   1934         LPCWSTR pszValueName);
   1935 
   1936     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
   1937         ISpDataKey *This,
   1938         ULONG Index,
   1939         LPWSTR *ppszSubKeyName);
   1940 
   1941     HRESULT (STDMETHODCALLTYPE *EnumValues)(
   1942         ISpDataKey *This,
   1943         ULONG Index,
   1944         LPWSTR *ppszValueName);
   1945 
   1946     END_INTERFACE
   1947 } ISpDataKeyVtbl;
   1948 
   1949 interface ISpDataKey {
   1950     CONST_VTBL ISpDataKeyVtbl* lpVtbl;
   1951 };
   1952 
   1953 #ifdef COBJMACROS
   1954 #ifndef WIDL_C_INLINE_WRAPPERS
   1955 /*** IUnknown methods ***/
   1956 #define ISpDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1957 #define ISpDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
   1958 #define ISpDataKey_Release(This) (This)->lpVtbl->Release(This)
   1959 /*** ISpDataKey methods ***/
   1960 #define ISpDataKey_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
   1961 #define ISpDataKey_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
   1962 #define ISpDataKey_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
   1963 #define ISpDataKey_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
   1964 #define ISpDataKey_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
   1965 #define ISpDataKey_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
   1966 #define ISpDataKey_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
   1967 #define ISpDataKey_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
   1968 #define ISpDataKey_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
   1969 #define ISpDataKey_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
   1970 #define ISpDataKey_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
   1971 #define ISpDataKey_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
   1972 #else
   1973 /*** IUnknown methods ***/
   1974 static inline HRESULT ISpDataKey_QueryInterface(ISpDataKey* This,REFIID riid,void **ppvObject) {
   1975     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1976 }
   1977 static inline ULONG ISpDataKey_AddRef(ISpDataKey* This) {
   1978     return This->lpVtbl->AddRef(This);
   1979 }
   1980 static inline ULONG ISpDataKey_Release(ISpDataKey* This) {
   1981     return This->lpVtbl->Release(This);
   1982 }
   1983 /*** ISpDataKey methods ***/
   1984 static inline HRESULT ISpDataKey_SetData(ISpDataKey* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
   1985     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
   1986 }
   1987 static inline HRESULT ISpDataKey_GetData(ISpDataKey* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
   1988     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
   1989 }
   1990 static inline HRESULT ISpDataKey_SetStringValue(ISpDataKey* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
   1991     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
   1992 }
   1993 static inline HRESULT ISpDataKey_GetStringValue(ISpDataKey* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
   1994     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
   1995 }
   1996 static inline HRESULT ISpDataKey_SetDWORD(ISpDataKey* This,LPCWSTR pszValueName,DWORD dwValue) {
   1997     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
   1998 }
   1999 static inline HRESULT ISpDataKey_GetDWORD(ISpDataKey* This,LPCWSTR pszValueName,DWORD *pdwValue) {
   2000     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
   2001 }
   2002 static inline HRESULT ISpDataKey_OpenKey(ISpDataKey* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
   2003     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
   2004 }
   2005 static inline HRESULT ISpDataKey_CreateKey(ISpDataKey* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
   2006     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
   2007 }
   2008 static inline HRESULT ISpDataKey_DeleteKey(ISpDataKey* This,LPCWSTR pszSubKey) {
   2009     return This->lpVtbl->DeleteKey(This,pszSubKey);
   2010 }
   2011 static inline HRESULT ISpDataKey_DeleteValue(ISpDataKey* This,LPCWSTR pszValueName) {
   2012     return This->lpVtbl->DeleteValue(This,pszValueName);
   2013 }
   2014 static inline HRESULT ISpDataKey_EnumKeys(ISpDataKey* This,ULONG Index,LPWSTR *ppszSubKeyName) {
   2015     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
   2016 }
   2017 static inline HRESULT ISpDataKey_EnumValues(ISpDataKey* This,ULONG Index,LPWSTR *ppszValueName) {
   2018     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
   2019 }
   2020 #endif
   2021 #endif
   2022 
   2023 #endif
   2024 
   2025 
   2026 #endif  /* __ISpDataKey_INTERFACE_DEFINED__ */
   2027 
   2028 /*****************************************************************************
   2029  * ISpObjectWithToken interface
   2030  */
   2031 #ifndef __ISpObjectWithToken_INTERFACE_DEFINED__
   2032 #define __ISpObjectWithToken_INTERFACE_DEFINED__
   2033 
   2034 DEFINE_GUID(IID_ISpObjectWithToken, 0x5b559f40, 0xe952, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
   2035 #if defined(__cplusplus) && !defined(CINTERFACE)
   2036 MIDL_INTERFACE("5b559f40-e952-11d2-bb91-00c04f8ee6c0")
   2037 ISpObjectWithToken : public IUnknown
   2038 {
   2039     virtual HRESULT STDMETHODCALLTYPE SetObjectToken(
   2040         ISpObjectToken *pToken) = 0;
   2041 
   2042     virtual HRESULT STDMETHODCALLTYPE GetObjectToken(
   2043         ISpObjectToken **ppToken) = 0;
   2044 
   2045 };
   2046 #ifdef __CRT_UUID_DECL
   2047 __CRT_UUID_DECL(ISpObjectWithToken, 0x5b559f40, 0xe952, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
   2048 #endif
   2049 #else
   2050 typedef struct ISpObjectWithTokenVtbl {
   2051     BEGIN_INTERFACE
   2052 
   2053     /*** IUnknown methods ***/
   2054     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2055         ISpObjectWithToken *This,
   2056         REFIID riid,
   2057         void **ppvObject);
   2058 
   2059     ULONG (STDMETHODCALLTYPE *AddRef)(
   2060         ISpObjectWithToken *This);
   2061 
   2062     ULONG (STDMETHODCALLTYPE *Release)(
   2063         ISpObjectWithToken *This);
   2064 
   2065     /*** ISpObjectWithToken methods ***/
   2066     HRESULT (STDMETHODCALLTYPE *SetObjectToken)(
   2067         ISpObjectWithToken *This,
   2068         ISpObjectToken *pToken);
   2069 
   2070     HRESULT (STDMETHODCALLTYPE *GetObjectToken)(
   2071         ISpObjectWithToken *This,
   2072         ISpObjectToken **ppToken);
   2073 
   2074     END_INTERFACE
   2075 } ISpObjectWithTokenVtbl;
   2076 
   2077 interface ISpObjectWithToken {
   2078     CONST_VTBL ISpObjectWithTokenVtbl* lpVtbl;
   2079 };
   2080 
   2081 #ifdef COBJMACROS
   2082 #ifndef WIDL_C_INLINE_WRAPPERS
   2083 /*** IUnknown methods ***/
   2084 #define ISpObjectWithToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2085 #define ISpObjectWithToken_AddRef(This) (This)->lpVtbl->AddRef(This)
   2086 #define ISpObjectWithToken_Release(This) (This)->lpVtbl->Release(This)
   2087 /*** ISpObjectWithToken methods ***/
   2088 #define ISpObjectWithToken_SetObjectToken(This,pToken) (This)->lpVtbl->SetObjectToken(This,pToken)
   2089 #define ISpObjectWithToken_GetObjectToken(This,ppToken) (This)->lpVtbl->GetObjectToken(This,ppToken)
   2090 #else
   2091 /*** IUnknown methods ***/
   2092 static inline HRESULT ISpObjectWithToken_QueryInterface(ISpObjectWithToken* This,REFIID riid,void **ppvObject) {
   2093     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2094 }
   2095 static inline ULONG ISpObjectWithToken_AddRef(ISpObjectWithToken* This) {
   2096     return This->lpVtbl->AddRef(This);
   2097 }
   2098 static inline ULONG ISpObjectWithToken_Release(ISpObjectWithToken* This) {
   2099     return This->lpVtbl->Release(This);
   2100 }
   2101 /*** ISpObjectWithToken methods ***/
   2102 static inline HRESULT ISpObjectWithToken_SetObjectToken(ISpObjectWithToken* This,ISpObjectToken *pToken) {
   2103     return This->lpVtbl->SetObjectToken(This,pToken);
   2104 }
   2105 static inline HRESULT ISpObjectWithToken_GetObjectToken(ISpObjectWithToken* This,ISpObjectToken **ppToken) {
   2106     return This->lpVtbl->GetObjectToken(This,ppToken);
   2107 }
   2108 #endif
   2109 #endif
   2110 
   2111 #endif
   2112 
   2113 
   2114 #endif  /* __ISpObjectWithToken_INTERFACE_DEFINED__ */
   2115 
   2116 /*****************************************************************************
   2117  * IEnumSpObjectTokens interface
   2118  */
   2119 #ifndef __IEnumSpObjectTokens_INTERFACE_DEFINED__
   2120 #define __IEnumSpObjectTokens_INTERFACE_DEFINED__
   2121 
   2122 DEFINE_GUID(IID_IEnumSpObjectTokens, 0x06b64f9e, 0x7fda, 0x11d2, 0xb4,0xf2, 0x00,0xc0,0x4f,0x79,0x73,0x96);
   2123 #if defined(__cplusplus) && !defined(CINTERFACE)
   2124 MIDL_INTERFACE("06b64f9e-7fda-11d2-b4f2-00c04f797396")
   2125 IEnumSpObjectTokens : public IUnknown
   2126 {
   2127     virtual HRESULT STDMETHODCALLTYPE Next(
   2128         ULONG celt,
   2129         ISpObjectToken **pelt,
   2130         ULONG *pceltFetched) = 0;
   2131 
   2132     virtual HRESULT STDMETHODCALLTYPE Skip(
   2133         ULONG celt) = 0;
   2134 
   2135     virtual HRESULT STDMETHODCALLTYPE Reset(
   2136         ) = 0;
   2137 
   2138     virtual HRESULT STDMETHODCALLTYPE Clone(
   2139         IEnumSpObjectTokens **ppEnum) = 0;
   2140 
   2141     virtual HRESULT STDMETHODCALLTYPE Item(
   2142         ULONG Index,
   2143         ISpObjectToken **ppToken) = 0;
   2144 
   2145     virtual HRESULT STDMETHODCALLTYPE GetCount(
   2146         ULONG *pCount) = 0;
   2147 
   2148 };
   2149 #ifdef __CRT_UUID_DECL
   2150 __CRT_UUID_DECL(IEnumSpObjectTokens, 0x06b64f9e, 0x7fda, 0x11d2, 0xb4,0xf2, 0x00,0xc0,0x4f,0x79,0x73,0x96)
   2151 #endif
   2152 #else
   2153 typedef struct IEnumSpObjectTokensVtbl {
   2154     BEGIN_INTERFACE
   2155 
   2156     /*** IUnknown methods ***/
   2157     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2158         IEnumSpObjectTokens *This,
   2159         REFIID riid,
   2160         void **ppvObject);
   2161 
   2162     ULONG (STDMETHODCALLTYPE *AddRef)(
   2163         IEnumSpObjectTokens *This);
   2164 
   2165     ULONG (STDMETHODCALLTYPE *Release)(
   2166         IEnumSpObjectTokens *This);
   2167 
   2168     /*** IEnumSpObjectTokens methods ***/
   2169     HRESULT (STDMETHODCALLTYPE *Next)(
   2170         IEnumSpObjectTokens *This,
   2171         ULONG celt,
   2172         ISpObjectToken **pelt,
   2173         ULONG *pceltFetched);
   2174 
   2175     HRESULT (STDMETHODCALLTYPE *Skip)(
   2176         IEnumSpObjectTokens *This,
   2177         ULONG celt);
   2178 
   2179     HRESULT (STDMETHODCALLTYPE *Reset)(
   2180         IEnumSpObjectTokens *This);
   2181 
   2182     HRESULT (STDMETHODCALLTYPE *Clone)(
   2183         IEnumSpObjectTokens *This,
   2184         IEnumSpObjectTokens **ppEnum);
   2185 
   2186     HRESULT (STDMETHODCALLTYPE *Item)(
   2187         IEnumSpObjectTokens *This,
   2188         ULONG Index,
   2189         ISpObjectToken **ppToken);
   2190 
   2191     HRESULT (STDMETHODCALLTYPE *GetCount)(
   2192         IEnumSpObjectTokens *This,
   2193         ULONG *pCount);
   2194 
   2195     END_INTERFACE
   2196 } IEnumSpObjectTokensVtbl;
   2197 
   2198 interface IEnumSpObjectTokens {
   2199     CONST_VTBL IEnumSpObjectTokensVtbl* lpVtbl;
   2200 };
   2201 
   2202 #ifdef COBJMACROS
   2203 #ifndef WIDL_C_INLINE_WRAPPERS
   2204 /*** IUnknown methods ***/
   2205 #define IEnumSpObjectTokens_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2206 #define IEnumSpObjectTokens_AddRef(This) (This)->lpVtbl->AddRef(This)
   2207 #define IEnumSpObjectTokens_Release(This) (This)->lpVtbl->Release(This)
   2208 /*** IEnumSpObjectTokens methods ***/
   2209 #define IEnumSpObjectTokens_Next(This,celt,pelt,pceltFetched) (This)->lpVtbl->Next(This,celt,pelt,pceltFetched)
   2210 #define IEnumSpObjectTokens_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   2211 #define IEnumSpObjectTokens_Reset(This) (This)->lpVtbl->Reset(This)
   2212 #define IEnumSpObjectTokens_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
   2213 #define IEnumSpObjectTokens_Item(This,Index,ppToken) (This)->lpVtbl->Item(This,Index,ppToken)
   2214 #define IEnumSpObjectTokens_GetCount(This,pCount) (This)->lpVtbl->GetCount(This,pCount)
   2215 #else
   2216 /*** IUnknown methods ***/
   2217 static inline HRESULT IEnumSpObjectTokens_QueryInterface(IEnumSpObjectTokens* This,REFIID riid,void **ppvObject) {
   2218     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2219 }
   2220 static inline ULONG IEnumSpObjectTokens_AddRef(IEnumSpObjectTokens* This) {
   2221     return This->lpVtbl->AddRef(This);
   2222 }
   2223 static inline ULONG IEnumSpObjectTokens_Release(IEnumSpObjectTokens* This) {
   2224     return This->lpVtbl->Release(This);
   2225 }
   2226 /*** IEnumSpObjectTokens methods ***/
   2227 static inline HRESULT IEnumSpObjectTokens_Next(IEnumSpObjectTokens* This,ULONG celt,ISpObjectToken **pelt,ULONG *pceltFetched) {
   2228     return This->lpVtbl->Next(This,celt,pelt,pceltFetched);
   2229 }
   2230 static inline HRESULT IEnumSpObjectTokens_Skip(IEnumSpObjectTokens* This,ULONG celt) {
   2231     return This->lpVtbl->Skip(This,celt);
   2232 }
   2233 static inline HRESULT IEnumSpObjectTokens_Reset(IEnumSpObjectTokens* This) {
   2234     return This->lpVtbl->Reset(This);
   2235 }
   2236 static inline HRESULT IEnumSpObjectTokens_Clone(IEnumSpObjectTokens* This,IEnumSpObjectTokens **ppEnum) {
   2237     return This->lpVtbl->Clone(This,ppEnum);
   2238 }
   2239 static inline HRESULT IEnumSpObjectTokens_Item(IEnumSpObjectTokens* This,ULONG Index,ISpObjectToken **ppToken) {
   2240     return This->lpVtbl->Item(This,Index,ppToken);
   2241 }
   2242 static inline HRESULT IEnumSpObjectTokens_GetCount(IEnumSpObjectTokens* This,ULONG *pCount) {
   2243     return This->lpVtbl->GetCount(This,pCount);
   2244 }
   2245 #endif
   2246 #endif
   2247 
   2248 #endif
   2249 
   2250 
   2251 #endif  /* __IEnumSpObjectTokens_INTERFACE_DEFINED__ */
   2252 
   2253 /*****************************************************************************
   2254  * ISpRegDataKey interface
   2255  */
   2256 #ifndef __ISpRegDataKey_INTERFACE_DEFINED__
   2257 #define __ISpRegDataKey_INTERFACE_DEFINED__
   2258 
   2259 DEFINE_GUID(IID_ISpRegDataKey, 0x92a66e2b, 0xc830, 0x4149, 0x83,0xdf, 0x6f,0xc2,0xba,0x1e,0x7a,0x5b);
   2260 #if defined(__cplusplus) && !defined(CINTERFACE)
   2261 MIDL_INTERFACE("92a66e2b-c830-4149-83df-6fc2ba1e7a5b")
   2262 ISpRegDataKey : public ISpDataKey
   2263 {
   2264     virtual HRESULT STDMETHODCALLTYPE SetKey(
   2265         HKEY hkey,
   2266         WINBOOL fReadOnly) = 0;
   2267 
   2268 };
   2269 #ifdef __CRT_UUID_DECL
   2270 __CRT_UUID_DECL(ISpRegDataKey, 0x92a66e2b, 0xc830, 0x4149, 0x83,0xdf, 0x6f,0xc2,0xba,0x1e,0x7a,0x5b)
   2271 #endif
   2272 #else
   2273 typedef struct ISpRegDataKeyVtbl {
   2274     BEGIN_INTERFACE
   2275 
   2276     /*** IUnknown methods ***/
   2277     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2278         ISpRegDataKey *This,
   2279         REFIID riid,
   2280         void **ppvObject);
   2281 
   2282     ULONG (STDMETHODCALLTYPE *AddRef)(
   2283         ISpRegDataKey *This);
   2284 
   2285     ULONG (STDMETHODCALLTYPE *Release)(
   2286         ISpRegDataKey *This);
   2287 
   2288     /*** ISpDataKey methods ***/
   2289     HRESULT (STDMETHODCALLTYPE *SetData)(
   2290         ISpRegDataKey *This,
   2291         LPCWSTR pszValueName,
   2292         ULONG cbData,
   2293         const BYTE *pData);
   2294 
   2295     HRESULT (STDMETHODCALLTYPE *GetData)(
   2296         ISpRegDataKey *This,
   2297         LPCWSTR pszValueName,
   2298         ULONG *pcbData,
   2299         BYTE *pData);
   2300 
   2301     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
   2302         ISpRegDataKey *This,
   2303         LPCWSTR pszValueName,
   2304         LPCWSTR pszValue);
   2305 
   2306     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
   2307         ISpRegDataKey *This,
   2308         LPCWSTR pszValueName,
   2309         LPWSTR *ppszValue);
   2310 
   2311     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
   2312         ISpRegDataKey *This,
   2313         LPCWSTR pszValueName,
   2314         DWORD dwValue);
   2315 
   2316     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
   2317         ISpRegDataKey *This,
   2318         LPCWSTR pszValueName,
   2319         DWORD *pdwValue);
   2320 
   2321     HRESULT (STDMETHODCALLTYPE *OpenKey)(
   2322         ISpRegDataKey *This,
   2323         LPCWSTR pszSubKeyName,
   2324         ISpDataKey **ppSubKey);
   2325 
   2326     HRESULT (STDMETHODCALLTYPE *CreateKey)(
   2327         ISpRegDataKey *This,
   2328         LPCWSTR pszSubKey,
   2329         ISpDataKey **ppSubKey);
   2330 
   2331     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
   2332         ISpRegDataKey *This,
   2333         LPCWSTR pszSubKey);
   2334 
   2335     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
   2336         ISpRegDataKey *This,
   2337         LPCWSTR pszValueName);
   2338 
   2339     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
   2340         ISpRegDataKey *This,
   2341         ULONG Index,
   2342         LPWSTR *ppszSubKeyName);
   2343 
   2344     HRESULT (STDMETHODCALLTYPE *EnumValues)(
   2345         ISpRegDataKey *This,
   2346         ULONG Index,
   2347         LPWSTR *ppszValueName);
   2348 
   2349     /*** ISpRegDataKey methods ***/
   2350     HRESULT (STDMETHODCALLTYPE *SetKey)(
   2351         ISpRegDataKey *This,
   2352         HKEY hkey,
   2353         WINBOOL fReadOnly);
   2354 
   2355     END_INTERFACE
   2356 } ISpRegDataKeyVtbl;
   2357 
   2358 interface ISpRegDataKey {
   2359     CONST_VTBL ISpRegDataKeyVtbl* lpVtbl;
   2360 };
   2361 
   2362 #ifdef COBJMACROS
   2363 #ifndef WIDL_C_INLINE_WRAPPERS
   2364 /*** IUnknown methods ***/
   2365 #define ISpRegDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2366 #define ISpRegDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
   2367 #define ISpRegDataKey_Release(This) (This)->lpVtbl->Release(This)
   2368 /*** ISpDataKey methods ***/
   2369 #define ISpRegDataKey_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
   2370 #define ISpRegDataKey_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
   2371 #define ISpRegDataKey_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
   2372 #define ISpRegDataKey_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
   2373 #define ISpRegDataKey_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
   2374 #define ISpRegDataKey_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
   2375 #define ISpRegDataKey_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
   2376 #define ISpRegDataKey_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
   2377 #define ISpRegDataKey_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
   2378 #define ISpRegDataKey_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
   2379 #define ISpRegDataKey_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
   2380 #define ISpRegDataKey_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
   2381 /*** ISpRegDataKey methods ***/
   2382 #define ISpRegDataKey_SetKey(This,hkey,fReadOnly) (This)->lpVtbl->SetKey(This,hkey,fReadOnly)
   2383 #else
   2384 /*** IUnknown methods ***/
   2385 static inline HRESULT ISpRegDataKey_QueryInterface(ISpRegDataKey* This,REFIID riid,void **ppvObject) {
   2386     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2387 }
   2388 static inline ULONG ISpRegDataKey_AddRef(ISpRegDataKey* This) {
   2389     return This->lpVtbl->AddRef(This);
   2390 }
   2391 static inline ULONG ISpRegDataKey_Release(ISpRegDataKey* This) {
   2392     return This->lpVtbl->Release(This);
   2393 }
   2394 /*** ISpDataKey methods ***/
   2395 static inline HRESULT ISpRegDataKey_SetData(ISpRegDataKey* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
   2396     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
   2397 }
   2398 static inline HRESULT ISpRegDataKey_GetData(ISpRegDataKey* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
   2399     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
   2400 }
   2401 static inline HRESULT ISpRegDataKey_SetStringValue(ISpRegDataKey* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
   2402     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
   2403 }
   2404 static inline HRESULT ISpRegDataKey_GetStringValue(ISpRegDataKey* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
   2405     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
   2406 }
   2407 static inline HRESULT ISpRegDataKey_SetDWORD(ISpRegDataKey* This,LPCWSTR pszValueName,DWORD dwValue) {
   2408     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
   2409 }
   2410 static inline HRESULT ISpRegDataKey_GetDWORD(ISpRegDataKey* This,LPCWSTR pszValueName,DWORD *pdwValue) {
   2411     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
   2412 }
   2413 static inline HRESULT ISpRegDataKey_OpenKey(ISpRegDataKey* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
   2414     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
   2415 }
   2416 static inline HRESULT ISpRegDataKey_CreateKey(ISpRegDataKey* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
   2417     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
   2418 }
   2419 static inline HRESULT ISpRegDataKey_DeleteKey(ISpRegDataKey* This,LPCWSTR pszSubKey) {
   2420     return This->lpVtbl->DeleteKey(This,pszSubKey);
   2421 }
   2422 static inline HRESULT ISpRegDataKey_DeleteValue(ISpRegDataKey* This,LPCWSTR pszValueName) {
   2423     return This->lpVtbl->DeleteValue(This,pszValueName);
   2424 }
   2425 static inline HRESULT ISpRegDataKey_EnumKeys(ISpRegDataKey* This,ULONG Index,LPWSTR *ppszSubKeyName) {
   2426     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
   2427 }
   2428 static inline HRESULT ISpRegDataKey_EnumValues(ISpRegDataKey* This,ULONG Index,LPWSTR *ppszValueName) {
   2429     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
   2430 }
   2431 /*** ISpRegDataKey methods ***/
   2432 static inline HRESULT ISpRegDataKey_SetKey(ISpRegDataKey* This,HKEY hkey,WINBOOL fReadOnly) {
   2433     return This->lpVtbl->SetKey(This,hkey,fReadOnly);
   2434 }
   2435 #endif
   2436 #endif
   2437 
   2438 #endif
   2439 
   2440 
   2441 #endif  /* __ISpRegDataKey_INTERFACE_DEFINED__ */
   2442 
   2443 /*****************************************************************************
   2444  * ISpObjectTokenCategory interface
   2445  */
   2446 #ifndef __ISpObjectTokenCategory_INTERFACE_DEFINED__
   2447 #define __ISpObjectTokenCategory_INTERFACE_DEFINED__
   2448 
   2449 DEFINE_GUID(IID_ISpObjectTokenCategory, 0x2d3d3845, 0x39af, 0x4850, 0xbb,0xf9, 0x40,0xb4,0x97,0x80,0x01,0x1d);
   2450 #if defined(__cplusplus) && !defined(CINTERFACE)
   2451 MIDL_INTERFACE("2d3d3845-39af-4850-bbf9-40b49780011d")
   2452 ISpObjectTokenCategory : public ISpDataKey
   2453 {
   2454     virtual HRESULT STDMETHODCALLTYPE SetId(
   2455         LPCWSTR pszCategoryId,
   2456         WINBOOL fCreateIfNotExist) = 0;
   2457 
   2458     virtual HRESULT STDMETHODCALLTYPE GetId(
   2459         LPWSTR *ppszCoMemCategoryId) = 0;
   2460 
   2461     virtual HRESULT STDMETHODCALLTYPE GetDataKey(
   2462         SPDATAKEYLOCATION spdkl,
   2463         ISpDataKey **ppDataKey) = 0;
   2464 
   2465     virtual HRESULT STDMETHODCALLTYPE EnumTokens(
   2466         LPCWSTR pzsReqAttribs,
   2467         LPCWSTR pszOptAttribs,
   2468         IEnumSpObjectTokens **ppEnum) = 0;
   2469 
   2470     virtual HRESULT STDMETHODCALLTYPE SetDefaultTokenId(
   2471         LPCWSTR pszTokenId) = 0;
   2472 
   2473     virtual HRESULT STDMETHODCALLTYPE GetDefaultTokenId(
   2474         LPWSTR *ppszCoMemTokenId) = 0;
   2475 
   2476 };
   2477 #ifdef __CRT_UUID_DECL
   2478 __CRT_UUID_DECL(ISpObjectTokenCategory, 0x2d3d3845, 0x39af, 0x4850, 0xbb,0xf9, 0x40,0xb4,0x97,0x80,0x01,0x1d)
   2479 #endif
   2480 #else
   2481 typedef struct ISpObjectTokenCategoryVtbl {
   2482     BEGIN_INTERFACE
   2483 
   2484     /*** IUnknown methods ***/
   2485     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2486         ISpObjectTokenCategory *This,
   2487         REFIID riid,
   2488         void **ppvObject);
   2489 
   2490     ULONG (STDMETHODCALLTYPE *AddRef)(
   2491         ISpObjectTokenCategory *This);
   2492 
   2493     ULONG (STDMETHODCALLTYPE *Release)(
   2494         ISpObjectTokenCategory *This);
   2495 
   2496     /*** ISpDataKey methods ***/
   2497     HRESULT (STDMETHODCALLTYPE *SetData)(
   2498         ISpObjectTokenCategory *This,
   2499         LPCWSTR pszValueName,
   2500         ULONG cbData,
   2501         const BYTE *pData);
   2502 
   2503     HRESULT (STDMETHODCALLTYPE *GetData)(
   2504         ISpObjectTokenCategory *This,
   2505         LPCWSTR pszValueName,
   2506         ULONG *pcbData,
   2507         BYTE *pData);
   2508 
   2509     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
   2510         ISpObjectTokenCategory *This,
   2511         LPCWSTR pszValueName,
   2512         LPCWSTR pszValue);
   2513 
   2514     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
   2515         ISpObjectTokenCategory *This,
   2516         LPCWSTR pszValueName,
   2517         LPWSTR *ppszValue);
   2518 
   2519     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
   2520         ISpObjectTokenCategory *This,
   2521         LPCWSTR pszValueName,
   2522         DWORD dwValue);
   2523 
   2524     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
   2525         ISpObjectTokenCategory *This,
   2526         LPCWSTR pszValueName,
   2527         DWORD *pdwValue);
   2528 
   2529     HRESULT (STDMETHODCALLTYPE *OpenKey)(
   2530         ISpObjectTokenCategory *This,
   2531         LPCWSTR pszSubKeyName,
   2532         ISpDataKey **ppSubKey);
   2533 
   2534     HRESULT (STDMETHODCALLTYPE *CreateKey)(
   2535         ISpObjectTokenCategory *This,
   2536         LPCWSTR pszSubKey,
   2537         ISpDataKey **ppSubKey);
   2538 
   2539     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
   2540         ISpObjectTokenCategory *This,
   2541         LPCWSTR pszSubKey);
   2542 
   2543     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
   2544         ISpObjectTokenCategory *This,
   2545         LPCWSTR pszValueName);
   2546 
   2547     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
   2548         ISpObjectTokenCategory *This,
   2549         ULONG Index,
   2550         LPWSTR *ppszSubKeyName);
   2551 
   2552     HRESULT (STDMETHODCALLTYPE *EnumValues)(
   2553         ISpObjectTokenCategory *This,
   2554         ULONG Index,
   2555         LPWSTR *ppszValueName);
   2556 
   2557     /*** ISpObjectTokenCategory methods ***/
   2558     HRESULT (STDMETHODCALLTYPE *SetId)(
   2559         ISpObjectTokenCategory *This,
   2560         LPCWSTR pszCategoryId,
   2561         WINBOOL fCreateIfNotExist);
   2562 
   2563     HRESULT (STDMETHODCALLTYPE *GetId)(
   2564         ISpObjectTokenCategory *This,
   2565         LPWSTR *ppszCoMemCategoryId);
   2566 
   2567     HRESULT (STDMETHODCALLTYPE *GetDataKey)(
   2568         ISpObjectTokenCategory *This,
   2569         SPDATAKEYLOCATION spdkl,
   2570         ISpDataKey **ppDataKey);
   2571 
   2572     HRESULT (STDMETHODCALLTYPE *EnumTokens)(
   2573         ISpObjectTokenCategory *This,
   2574         LPCWSTR pzsReqAttribs,
   2575         LPCWSTR pszOptAttribs,
   2576         IEnumSpObjectTokens **ppEnum);
   2577 
   2578     HRESULT (STDMETHODCALLTYPE *SetDefaultTokenId)(
   2579         ISpObjectTokenCategory *This,
   2580         LPCWSTR pszTokenId);
   2581 
   2582     HRESULT (STDMETHODCALLTYPE *GetDefaultTokenId)(
   2583         ISpObjectTokenCategory *This,
   2584         LPWSTR *ppszCoMemTokenId);
   2585 
   2586     END_INTERFACE
   2587 } ISpObjectTokenCategoryVtbl;
   2588 
   2589 interface ISpObjectTokenCategory {
   2590     CONST_VTBL ISpObjectTokenCategoryVtbl* lpVtbl;
   2591 };
   2592 
   2593 #ifdef COBJMACROS
   2594 #ifndef WIDL_C_INLINE_WRAPPERS
   2595 /*** IUnknown methods ***/
   2596 #define ISpObjectTokenCategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2597 #define ISpObjectTokenCategory_AddRef(This) (This)->lpVtbl->AddRef(This)
   2598 #define ISpObjectTokenCategory_Release(This) (This)->lpVtbl->Release(This)
   2599 /*** ISpDataKey methods ***/
   2600 #define ISpObjectTokenCategory_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
   2601 #define ISpObjectTokenCategory_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
   2602 #define ISpObjectTokenCategory_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
   2603 #define ISpObjectTokenCategory_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
   2604 #define ISpObjectTokenCategory_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
   2605 #define ISpObjectTokenCategory_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
   2606 #define ISpObjectTokenCategory_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
   2607 #define ISpObjectTokenCategory_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
   2608 #define ISpObjectTokenCategory_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
   2609 #define ISpObjectTokenCategory_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
   2610 #define ISpObjectTokenCategory_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
   2611 #define ISpObjectTokenCategory_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
   2612 /*** ISpObjectTokenCategory methods ***/
   2613 #define ISpObjectTokenCategory_SetId(This,pszCategoryId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,fCreateIfNotExist)
   2614 #define ISpObjectTokenCategory_GetId(This,ppszCoMemCategoryId) (This)->lpVtbl->GetId(This,ppszCoMemCategoryId)
   2615 #define ISpObjectTokenCategory_GetDataKey(This,spdkl,ppDataKey) (This)->lpVtbl->GetDataKey(This,spdkl,ppDataKey)
   2616 #define ISpObjectTokenCategory_EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum) (This)->lpVtbl->EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum)
   2617 #define ISpObjectTokenCategory_SetDefaultTokenId(This,pszTokenId) (This)->lpVtbl->SetDefaultTokenId(This,pszTokenId)
   2618 #define ISpObjectTokenCategory_GetDefaultTokenId(This,ppszCoMemTokenId) (This)->lpVtbl->GetDefaultTokenId(This,ppszCoMemTokenId)
   2619 #else
   2620 /*** IUnknown methods ***/
   2621 static inline HRESULT ISpObjectTokenCategory_QueryInterface(ISpObjectTokenCategory* This,REFIID riid,void **ppvObject) {
   2622     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2623 }
   2624 static inline ULONG ISpObjectTokenCategory_AddRef(ISpObjectTokenCategory* This) {
   2625     return This->lpVtbl->AddRef(This);
   2626 }
   2627 static inline ULONG ISpObjectTokenCategory_Release(ISpObjectTokenCategory* This) {
   2628     return This->lpVtbl->Release(This);
   2629 }
   2630 /*** ISpDataKey methods ***/
   2631 static inline HRESULT ISpObjectTokenCategory_SetData(ISpObjectTokenCategory* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
   2632     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
   2633 }
   2634 static inline HRESULT ISpObjectTokenCategory_GetData(ISpObjectTokenCategory* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
   2635     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
   2636 }
   2637 static inline HRESULT ISpObjectTokenCategory_SetStringValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
   2638     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
   2639 }
   2640 static inline HRESULT ISpObjectTokenCategory_GetStringValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
   2641     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
   2642 }
   2643 static inline HRESULT ISpObjectTokenCategory_SetDWORD(ISpObjectTokenCategory* This,LPCWSTR pszValueName,DWORD dwValue) {
   2644     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
   2645 }
   2646 static inline HRESULT ISpObjectTokenCategory_GetDWORD(ISpObjectTokenCategory* This,LPCWSTR pszValueName,DWORD *pdwValue) {
   2647     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
   2648 }
   2649 static inline HRESULT ISpObjectTokenCategory_OpenKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
   2650     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
   2651 }
   2652 static inline HRESULT ISpObjectTokenCategory_CreateKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
   2653     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
   2654 }
   2655 static inline HRESULT ISpObjectTokenCategory_DeleteKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKey) {
   2656     return This->lpVtbl->DeleteKey(This,pszSubKey);
   2657 }
   2658 static inline HRESULT ISpObjectTokenCategory_DeleteValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName) {
   2659     return This->lpVtbl->DeleteValue(This,pszValueName);
   2660 }
   2661 static inline HRESULT ISpObjectTokenCategory_EnumKeys(ISpObjectTokenCategory* This,ULONG Index,LPWSTR *ppszSubKeyName) {
   2662     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
   2663 }
   2664 static inline HRESULT ISpObjectTokenCategory_EnumValues(ISpObjectTokenCategory* This,ULONG Index,LPWSTR *ppszValueName) {
   2665     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
   2666 }
   2667 /*** ISpObjectTokenCategory methods ***/
   2668 static inline HRESULT ISpObjectTokenCategory_SetId(ISpObjectTokenCategory* This,LPCWSTR pszCategoryId,WINBOOL fCreateIfNotExist) {
   2669     return This->lpVtbl->SetId(This,pszCategoryId,fCreateIfNotExist);
   2670 }
   2671 static inline HRESULT ISpObjectTokenCategory_GetId(ISpObjectTokenCategory* This,LPWSTR *ppszCoMemCategoryId) {
   2672     return This->lpVtbl->GetId(This,ppszCoMemCategoryId);
   2673 }
   2674 static inline HRESULT ISpObjectTokenCategory_GetDataKey(ISpObjectTokenCategory* This,SPDATAKEYLOCATION spdkl,ISpDataKey **ppDataKey) {
   2675     return This->lpVtbl->GetDataKey(This,spdkl,ppDataKey);
   2676 }
   2677 static inline HRESULT ISpObjectTokenCategory_EnumTokens(ISpObjectTokenCategory* This,LPCWSTR pzsReqAttribs,LPCWSTR pszOptAttribs,IEnumSpObjectTokens **ppEnum) {
   2678     return This->lpVtbl->EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum);
   2679 }
   2680 static inline HRESULT ISpObjectTokenCategory_SetDefaultTokenId(ISpObjectTokenCategory* This,LPCWSTR pszTokenId) {
   2681     return This->lpVtbl->SetDefaultTokenId(This,pszTokenId);
   2682 }
   2683 static inline HRESULT ISpObjectTokenCategory_GetDefaultTokenId(ISpObjectTokenCategory* This,LPWSTR *ppszCoMemTokenId) {
   2684     return This->lpVtbl->GetDefaultTokenId(This,ppszCoMemTokenId);
   2685 }
   2686 #endif
   2687 #endif
   2688 
   2689 #endif
   2690 
   2691 
   2692 #endif  /* __ISpObjectTokenCategory_INTERFACE_DEFINED__ */
   2693 
   2694 /*****************************************************************************
   2695  * ISpObjectToken interface
   2696  */
   2697 #ifndef __ISpObjectToken_INTERFACE_DEFINED__
   2698 #define __ISpObjectToken_INTERFACE_DEFINED__
   2699 
   2700 DEFINE_GUID(IID_ISpObjectToken, 0x14056589, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
   2701 #if defined(__cplusplus) && !defined(CINTERFACE)
   2702 MIDL_INTERFACE("14056589-e16c-11d2-bb90-00c04f8ee6c0")
   2703 ISpObjectToken : public ISpDataKey
   2704 {
   2705     virtual HRESULT STDMETHODCALLTYPE SetId(
   2706         LPCWSTR pszCategoryId,
   2707         LPCWSTR pszTokenId,
   2708         WINBOOL fCreateIfNotExist) = 0;
   2709 
   2710     virtual HRESULT STDMETHODCALLTYPE GetId(
   2711         LPWSTR *ppszCoMemTokenId) = 0;
   2712 
   2713     virtual HRESULT STDMETHODCALLTYPE GetCategory(
   2714         ISpObjectTokenCategory **ppTokenCategory) = 0;
   2715 
   2716     virtual HRESULT STDMETHODCALLTYPE CreateInstance(
   2717         IUnknown *pUnkOuter,
   2718         DWORD dwClsContext,
   2719         REFIID riid,
   2720         void **ppvObject) = 0;
   2721 
   2722     virtual HRESULT STDMETHODCALLTYPE GetStorageFileName(
   2723         REFCLSID clsidCaller,
   2724         LPCWSTR pszValueName,
   2725         LPCWSTR pszFileNameSpecifier,
   2726         ULONG nFolder,
   2727         LPWSTR *ppszFilePath) = 0;
   2728 
   2729     virtual HRESULT STDMETHODCALLTYPE RemoveStorageFileName(
   2730         REFCLSID clsidCaller,
   2731         LPCWSTR pszKeyName,
   2732         WINBOOL fDeleteFile) = 0;
   2733 
   2734     virtual HRESULT STDMETHODCALLTYPE Remove(
   2735         const CLSID *pclsidCaller) = 0;
   2736 
   2737     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
   2738         LPCWSTR pszTypeOfUI,
   2739         void *pvExtraData,
   2740         ULONG cbExtraData,
   2741         IUnknown *punkObject,
   2742         WINBOOL *pfSupported) = 0;
   2743 
   2744     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
   2745         HWND hwndParent,
   2746         LPCWSTR pszTitle,
   2747         LPCWSTR pszTypeOfUI,
   2748         void *pvExtraData,
   2749         ULONG cbExtraData,
   2750         IUnknown *punkObject) = 0;
   2751 
   2752     virtual HRESULT STDMETHODCALLTYPE MatchesAttributes(
   2753         LPCWSTR pszAttributes,
   2754         WINBOOL *pfMatches) = 0;
   2755 
   2756 };
   2757 #ifdef __CRT_UUID_DECL
   2758 __CRT_UUID_DECL(ISpObjectToken, 0x14056589, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
   2759 #endif
   2760 #else
   2761 typedef struct ISpObjectTokenVtbl {
   2762     BEGIN_INTERFACE
   2763 
   2764     /*** IUnknown methods ***/
   2765     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2766         ISpObjectToken *This,
   2767         REFIID riid,
   2768         void **ppvObject);
   2769 
   2770     ULONG (STDMETHODCALLTYPE *AddRef)(
   2771         ISpObjectToken *This);
   2772 
   2773     ULONG (STDMETHODCALLTYPE *Release)(
   2774         ISpObjectToken *This);
   2775 
   2776     /*** ISpDataKey methods ***/
   2777     HRESULT (STDMETHODCALLTYPE *SetData)(
   2778         ISpObjectToken *This,
   2779         LPCWSTR pszValueName,
   2780         ULONG cbData,
   2781         const BYTE *pData);
   2782 
   2783     HRESULT (STDMETHODCALLTYPE *GetData)(
   2784         ISpObjectToken *This,
   2785         LPCWSTR pszValueName,
   2786         ULONG *pcbData,
   2787         BYTE *pData);
   2788 
   2789     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
   2790         ISpObjectToken *This,
   2791         LPCWSTR pszValueName,
   2792         LPCWSTR pszValue);
   2793 
   2794     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
   2795         ISpObjectToken *This,
   2796         LPCWSTR pszValueName,
   2797         LPWSTR *ppszValue);
   2798 
   2799     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
   2800         ISpObjectToken *This,
   2801         LPCWSTR pszValueName,
   2802         DWORD dwValue);
   2803 
   2804     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
   2805         ISpObjectToken *This,
   2806         LPCWSTR pszValueName,
   2807         DWORD *pdwValue);
   2808 
   2809     HRESULT (STDMETHODCALLTYPE *OpenKey)(
   2810         ISpObjectToken *This,
   2811         LPCWSTR pszSubKeyName,
   2812         ISpDataKey **ppSubKey);
   2813 
   2814     HRESULT (STDMETHODCALLTYPE *CreateKey)(
   2815         ISpObjectToken *This,
   2816         LPCWSTR pszSubKey,
   2817         ISpDataKey **ppSubKey);
   2818 
   2819     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
   2820         ISpObjectToken *This,
   2821         LPCWSTR pszSubKey);
   2822 
   2823     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
   2824         ISpObjectToken *This,
   2825         LPCWSTR pszValueName);
   2826 
   2827     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
   2828         ISpObjectToken *This,
   2829         ULONG Index,
   2830         LPWSTR *ppszSubKeyName);
   2831 
   2832     HRESULT (STDMETHODCALLTYPE *EnumValues)(
   2833         ISpObjectToken *This,
   2834         ULONG Index,
   2835         LPWSTR *ppszValueName);
   2836 
   2837     /*** ISpObjectToken methods ***/
   2838     HRESULT (STDMETHODCALLTYPE *SetId)(
   2839         ISpObjectToken *This,
   2840         LPCWSTR pszCategoryId,
   2841         LPCWSTR pszTokenId,
   2842         WINBOOL fCreateIfNotExist);
   2843 
   2844     HRESULT (STDMETHODCALLTYPE *GetId)(
   2845         ISpObjectToken *This,
   2846         LPWSTR *ppszCoMemTokenId);
   2847 
   2848     HRESULT (STDMETHODCALLTYPE *GetCategory)(
   2849         ISpObjectToken *This,
   2850         ISpObjectTokenCategory **ppTokenCategory);
   2851 
   2852     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
   2853         ISpObjectToken *This,
   2854         IUnknown *pUnkOuter,
   2855         DWORD dwClsContext,
   2856         REFIID riid,
   2857         void **ppvObject);
   2858 
   2859     HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
   2860         ISpObjectToken *This,
   2861         REFCLSID clsidCaller,
   2862         LPCWSTR pszValueName,
   2863         LPCWSTR pszFileNameSpecifier,
   2864         ULONG nFolder,
   2865         LPWSTR *ppszFilePath);
   2866 
   2867     HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
   2868         ISpObjectToken *This,
   2869         REFCLSID clsidCaller,
   2870         LPCWSTR pszKeyName,
   2871         WINBOOL fDeleteFile);
   2872 
   2873     HRESULT (STDMETHODCALLTYPE *Remove)(
   2874         ISpObjectToken *This,
   2875         const CLSID *pclsidCaller);
   2876 
   2877     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
   2878         ISpObjectToken *This,
   2879         LPCWSTR pszTypeOfUI,
   2880         void *pvExtraData,
   2881         ULONG cbExtraData,
   2882         IUnknown *punkObject,
   2883         WINBOOL *pfSupported);
   2884 
   2885     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
   2886         ISpObjectToken *This,
   2887         HWND hwndParent,
   2888         LPCWSTR pszTitle,
   2889         LPCWSTR pszTypeOfUI,
   2890         void *pvExtraData,
   2891         ULONG cbExtraData,
   2892         IUnknown *punkObject);
   2893 
   2894     HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
   2895         ISpObjectToken *This,
   2896         LPCWSTR pszAttributes,
   2897         WINBOOL *pfMatches);
   2898 
   2899     END_INTERFACE
   2900 } ISpObjectTokenVtbl;
   2901 
   2902 interface ISpObjectToken {
   2903     CONST_VTBL ISpObjectTokenVtbl* lpVtbl;
   2904 };
   2905 
   2906 #ifdef COBJMACROS
   2907 #ifndef WIDL_C_INLINE_WRAPPERS
   2908 /*** IUnknown methods ***/
   2909 #define ISpObjectToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2910 #define ISpObjectToken_AddRef(This) (This)->lpVtbl->AddRef(This)
   2911 #define ISpObjectToken_Release(This) (This)->lpVtbl->Release(This)
   2912 /*** ISpDataKey methods ***/
   2913 #define ISpObjectToken_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
   2914 #define ISpObjectToken_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
   2915 #define ISpObjectToken_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
   2916 #define ISpObjectToken_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
   2917 #define ISpObjectToken_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
   2918 #define ISpObjectToken_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
   2919 #define ISpObjectToken_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
   2920 #define ISpObjectToken_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
   2921 #define ISpObjectToken_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
   2922 #define ISpObjectToken_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
   2923 #define ISpObjectToken_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
   2924 #define ISpObjectToken_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
   2925 /*** ISpObjectToken methods ***/
   2926 #define ISpObjectToken_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
   2927 #define ISpObjectToken_GetId(This,ppszCoMemTokenId) (This)->lpVtbl->GetId(This,ppszCoMemTokenId)
   2928 #define ISpObjectToken_GetCategory(This,ppTokenCategory) (This)->lpVtbl->GetCategory(This,ppTokenCategory)
   2929 #define ISpObjectToken_CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
   2930 #define ISpObjectToken_GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath) (This)->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
   2931 #define ISpObjectToken_RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
   2932 #define ISpObjectToken_Remove(This,pclsidCaller) (This)->lpVtbl->Remove(This,pclsidCaller)
   2933 #define ISpObjectToken_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
   2934 #define ISpObjectToken_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
   2935 #define ISpObjectToken_MatchesAttributes(This,pszAttributes,pfMatches) (This)->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches)
   2936 #else
   2937 /*** IUnknown methods ***/
   2938 static inline HRESULT ISpObjectToken_QueryInterface(ISpObjectToken* This,REFIID riid,void **ppvObject) {
   2939     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2940 }
   2941 static inline ULONG ISpObjectToken_AddRef(ISpObjectToken* This) {
   2942     return This->lpVtbl->AddRef(This);
   2943 }
   2944 static inline ULONG ISpObjectToken_Release(ISpObjectToken* This) {
   2945     return This->lpVtbl->Release(This);
   2946 }
   2947 /*** ISpDataKey methods ***/
   2948 static inline HRESULT ISpObjectToken_SetData(ISpObjectToken* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
   2949     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
   2950 }
   2951 static inline HRESULT ISpObjectToken_GetData(ISpObjectToken* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
   2952     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
   2953 }
   2954 static inline HRESULT ISpObjectToken_SetStringValue(ISpObjectToken* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
   2955     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
   2956 }
   2957 static inline HRESULT ISpObjectToken_GetStringValue(ISpObjectToken* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
   2958     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
   2959 }
   2960 static inline HRESULT ISpObjectToken_SetDWORD(ISpObjectToken* This,LPCWSTR pszValueName,DWORD dwValue) {
   2961     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
   2962 }
   2963 static inline HRESULT ISpObjectToken_GetDWORD(ISpObjectToken* This,LPCWSTR pszValueName,DWORD *pdwValue) {
   2964     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
   2965 }
   2966 static inline HRESULT ISpObjectToken_OpenKey(ISpObjectToken* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
   2967     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
   2968 }
   2969 static inline HRESULT ISpObjectToken_CreateKey(ISpObjectToken* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
   2970     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
   2971 }
   2972 static inline HRESULT ISpObjectToken_DeleteKey(ISpObjectToken* This,LPCWSTR pszSubKey) {
   2973     return This->lpVtbl->DeleteKey(This,pszSubKey);
   2974 }
   2975 static inline HRESULT ISpObjectToken_DeleteValue(ISpObjectToken* This,LPCWSTR pszValueName) {
   2976     return This->lpVtbl->DeleteValue(This,pszValueName);
   2977 }
   2978 static inline HRESULT ISpObjectToken_EnumKeys(ISpObjectToken* This,ULONG Index,LPWSTR *ppszSubKeyName) {
   2979     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
   2980 }
   2981 static inline HRESULT ISpObjectToken_EnumValues(ISpObjectToken* This,ULONG Index,LPWSTR *ppszValueName) {
   2982     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
   2983 }
   2984 /*** ISpObjectToken methods ***/
   2985 static inline HRESULT ISpObjectToken_SetId(ISpObjectToken* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,WINBOOL fCreateIfNotExist) {
   2986     return This->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist);
   2987 }
   2988 static inline HRESULT ISpObjectToken_GetId(ISpObjectToken* This,LPWSTR *ppszCoMemTokenId) {
   2989     return This->lpVtbl->GetId(This,ppszCoMemTokenId);
   2990 }
   2991 static inline HRESULT ISpObjectToken_GetCategory(ISpObjectToken* This,ISpObjectTokenCategory **ppTokenCategory) {
   2992     return This->lpVtbl->GetCategory(This,ppTokenCategory);
   2993 }
   2994 static inline HRESULT ISpObjectToken_CreateInstance(ISpObjectToken* This,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,void **ppvObject) {
   2995     return This->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject);
   2996 }
   2997 static inline HRESULT ISpObjectToken_GetStorageFileName(ISpObjectToken* This,REFCLSID clsidCaller,LPCWSTR pszValueName,LPCWSTR pszFileNameSpecifier,ULONG nFolder,LPWSTR *ppszFilePath) {
   2998     return This->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath);
   2999 }
   3000 static inline HRESULT ISpObjectToken_RemoveStorageFileName(ISpObjectToken* This,REFCLSID clsidCaller,LPCWSTR pszKeyName,WINBOOL fDeleteFile) {
   3001     return This->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile);
   3002 }
   3003 static inline HRESULT ISpObjectToken_Remove(ISpObjectToken* This,const CLSID *pclsidCaller) {
   3004     return This->lpVtbl->Remove(This,pclsidCaller);
   3005 }
   3006 static inline HRESULT ISpObjectToken_IsUISupported(ISpObjectToken* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject,WINBOOL *pfSupported) {
   3007     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported);
   3008 }
   3009 static inline HRESULT ISpObjectToken_DisplayUI(ISpObjectToken* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject) {
   3010     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject);
   3011 }
   3012 static inline HRESULT ISpObjectToken_MatchesAttributes(ISpObjectToken* This,LPCWSTR pszAttributes,WINBOOL *pfMatches) {
   3013     return This->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches);
   3014 }
   3015 #endif
   3016 #endif
   3017 
   3018 #endif
   3019 
   3020 
   3021 #endif  /* __ISpObjectToken_INTERFACE_DEFINED__ */
   3022 
   3023 /*****************************************************************************
   3024  * ISpObjectTokenInit interface
   3025  */
   3026 #ifndef __ISpObjectTokenInit_INTERFACE_DEFINED__
   3027 #define __ISpObjectTokenInit_INTERFACE_DEFINED__
   3028 
   3029 DEFINE_GUID(IID_ISpObjectTokenInit, 0xb8aab0cf, 0x346f, 0x49d8, 0x94,0x99, 0xc8,0xb0,0x3f,0x16,0x1d,0x51);
   3030 #if defined(__cplusplus) && !defined(CINTERFACE)
   3031 MIDL_INTERFACE("b8aab0cf-346f-49d8-9499-c8b03f161d51")
   3032 ISpObjectTokenInit : public ISpObjectToken
   3033 {
   3034     virtual HRESULT STDMETHODCALLTYPE InitFromDataKey(
   3035         LPCWSTR pszCategoryId,
   3036         LPCWSTR pszTokenId,
   3037         ISpDataKey *pDataKey) = 0;
   3038 
   3039 };
   3040 #ifdef __CRT_UUID_DECL
   3041 __CRT_UUID_DECL(ISpObjectTokenInit, 0xb8aab0cf, 0x346f, 0x49d8, 0x94,0x99, 0xc8,0xb0,0x3f,0x16,0x1d,0x51)
   3042 #endif
   3043 #else
   3044 typedef struct ISpObjectTokenInitVtbl {
   3045     BEGIN_INTERFACE
   3046 
   3047     /*** IUnknown methods ***/
   3048     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3049         ISpObjectTokenInit *This,
   3050         REFIID riid,
   3051         void **ppvObject);
   3052 
   3053     ULONG (STDMETHODCALLTYPE *AddRef)(
   3054         ISpObjectTokenInit *This);
   3055 
   3056     ULONG (STDMETHODCALLTYPE *Release)(
   3057         ISpObjectTokenInit *This);
   3058 
   3059     /*** ISpDataKey methods ***/
   3060     HRESULT (STDMETHODCALLTYPE *SetData)(
   3061         ISpObjectTokenInit *This,
   3062         LPCWSTR pszValueName,
   3063         ULONG cbData,
   3064         const BYTE *pData);
   3065 
   3066     HRESULT (STDMETHODCALLTYPE *GetData)(
   3067         ISpObjectTokenInit *This,
   3068         LPCWSTR pszValueName,
   3069         ULONG *pcbData,
   3070         BYTE *pData);
   3071 
   3072     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
   3073         ISpObjectTokenInit *This,
   3074         LPCWSTR pszValueName,
   3075         LPCWSTR pszValue);
   3076 
   3077     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
   3078         ISpObjectTokenInit *This,
   3079         LPCWSTR pszValueName,
   3080         LPWSTR *ppszValue);
   3081 
   3082     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
   3083         ISpObjectTokenInit *This,
   3084         LPCWSTR pszValueName,
   3085         DWORD dwValue);
   3086 
   3087     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
   3088         ISpObjectTokenInit *This,
   3089         LPCWSTR pszValueName,
   3090         DWORD *pdwValue);
   3091 
   3092     HRESULT (STDMETHODCALLTYPE *OpenKey)(
   3093         ISpObjectTokenInit *This,
   3094         LPCWSTR pszSubKeyName,
   3095         ISpDataKey **ppSubKey);
   3096 
   3097     HRESULT (STDMETHODCALLTYPE *CreateKey)(
   3098         ISpObjectTokenInit *This,
   3099         LPCWSTR pszSubKey,
   3100         ISpDataKey **ppSubKey);
   3101 
   3102     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
   3103         ISpObjectTokenInit *This,
   3104         LPCWSTR pszSubKey);
   3105 
   3106     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
   3107         ISpObjectTokenInit *This,
   3108         LPCWSTR pszValueName);
   3109 
   3110     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
   3111         ISpObjectTokenInit *This,
   3112         ULONG Index,
   3113         LPWSTR *ppszSubKeyName);
   3114 
   3115     HRESULT (STDMETHODCALLTYPE *EnumValues)(
   3116         ISpObjectTokenInit *This,
   3117         ULONG Index,
   3118         LPWSTR *ppszValueName);
   3119 
   3120     /*** ISpObjectToken methods ***/
   3121     HRESULT (STDMETHODCALLTYPE *SetId)(
   3122         ISpObjectTokenInit *This,
   3123         LPCWSTR pszCategoryId,
   3124         LPCWSTR pszTokenId,
   3125         WINBOOL fCreateIfNotExist);
   3126 
   3127     HRESULT (STDMETHODCALLTYPE *GetId)(
   3128         ISpObjectTokenInit *This,
   3129         LPWSTR *ppszCoMemTokenId);
   3130 
   3131     HRESULT (STDMETHODCALLTYPE *GetCategory)(
   3132         ISpObjectTokenInit *This,
   3133         ISpObjectTokenCategory **ppTokenCategory);
   3134 
   3135     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
   3136         ISpObjectTokenInit *This,
   3137         IUnknown *pUnkOuter,
   3138         DWORD dwClsContext,
   3139         REFIID riid,
   3140         void **ppvObject);
   3141 
   3142     HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
   3143         ISpObjectTokenInit *This,
   3144         REFCLSID clsidCaller,
   3145         LPCWSTR pszValueName,
   3146         LPCWSTR pszFileNameSpecifier,
   3147         ULONG nFolder,
   3148         LPWSTR *ppszFilePath);
   3149 
   3150     HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
   3151         ISpObjectTokenInit *This,
   3152         REFCLSID clsidCaller,
   3153         LPCWSTR pszKeyName,
   3154         WINBOOL fDeleteFile);
   3155 
   3156     HRESULT (STDMETHODCALLTYPE *Remove)(
   3157         ISpObjectTokenInit *This,
   3158         const CLSID *pclsidCaller);
   3159 
   3160     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
   3161         ISpObjectTokenInit *This,
   3162         LPCWSTR pszTypeOfUI,
   3163         void *pvExtraData,
   3164         ULONG cbExtraData,
   3165         IUnknown *punkObject,
   3166         WINBOOL *pfSupported);
   3167 
   3168     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
   3169         ISpObjectTokenInit *This,
   3170         HWND hwndParent,
   3171         LPCWSTR pszTitle,
   3172         LPCWSTR pszTypeOfUI,
   3173         void *pvExtraData,
   3174         ULONG cbExtraData,
   3175         IUnknown *punkObject);
   3176 
   3177     HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
   3178         ISpObjectTokenInit *This,
   3179         LPCWSTR pszAttributes,
   3180         WINBOOL *pfMatches);
   3181 
   3182     /*** ISpObjectTokenInit methods ***/
   3183     HRESULT (STDMETHODCALLTYPE *InitFromDataKey)(
   3184         ISpObjectTokenInit *This,
   3185         LPCWSTR pszCategoryId,
   3186         LPCWSTR pszTokenId,
   3187         ISpDataKey *pDataKey);
   3188 
   3189     END_INTERFACE
   3190 } ISpObjectTokenInitVtbl;
   3191 
   3192 interface ISpObjectTokenInit {
   3193     CONST_VTBL ISpObjectTokenInitVtbl* lpVtbl;
   3194 };
   3195 
   3196 #ifdef COBJMACROS
   3197 #ifndef WIDL_C_INLINE_WRAPPERS
   3198 /*** IUnknown methods ***/
   3199 #define ISpObjectTokenInit_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3200 #define ISpObjectTokenInit_AddRef(This) (This)->lpVtbl->AddRef(This)
   3201 #define ISpObjectTokenInit_Release(This) (This)->lpVtbl->Release(This)
   3202 /*** ISpDataKey methods ***/
   3203 #define ISpObjectTokenInit_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
   3204 #define ISpObjectTokenInit_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
   3205 #define ISpObjectTokenInit_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
   3206 #define ISpObjectTokenInit_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
   3207 #define ISpObjectTokenInit_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
   3208 #define ISpObjectTokenInit_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
   3209 #define ISpObjectTokenInit_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
   3210 #define ISpObjectTokenInit_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
   3211 #define ISpObjectTokenInit_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
   3212 #define ISpObjectTokenInit_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
   3213 #define ISpObjectTokenInit_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
   3214 #define ISpObjectTokenInit_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
   3215 /*** ISpObjectToken methods ***/
   3216 #define ISpObjectTokenInit_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
   3217 #define ISpObjectTokenInit_GetId(This,ppszCoMemTokenId) (This)->lpVtbl->GetId(This,ppszCoMemTokenId)
   3218 #define ISpObjectTokenInit_GetCategory(This,ppTokenCategory) (This)->lpVtbl->GetCategory(This,ppTokenCategory)
   3219 #define ISpObjectTokenInit_CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
   3220 #define ISpObjectTokenInit_GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath) (This)->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
   3221 #define ISpObjectTokenInit_RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
   3222 #define ISpObjectTokenInit_Remove(This,pclsidCaller) (This)->lpVtbl->Remove(This,pclsidCaller)
   3223 #define ISpObjectTokenInit_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
   3224 #define ISpObjectTokenInit_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
   3225 #define ISpObjectTokenInit_MatchesAttributes(This,pszAttributes,pfMatches) (This)->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches)
   3226 /*** ISpObjectTokenInit methods ***/
   3227 #define ISpObjectTokenInit_InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey) (This)->lpVtbl->InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey)
   3228 #else
   3229 /*** IUnknown methods ***/
   3230 static inline HRESULT ISpObjectTokenInit_QueryInterface(ISpObjectTokenInit* This,REFIID riid,void **ppvObject) {
   3231     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3232 }
   3233 static inline ULONG ISpObjectTokenInit_AddRef(ISpObjectTokenInit* This) {
   3234     return This->lpVtbl->AddRef(This);
   3235 }
   3236 static inline ULONG ISpObjectTokenInit_Release(ISpObjectTokenInit* This) {
   3237     return This->lpVtbl->Release(This);
   3238 }
   3239 /*** ISpDataKey methods ***/
   3240 static inline HRESULT ISpObjectTokenInit_SetData(ISpObjectTokenInit* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
   3241     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
   3242 }
   3243 static inline HRESULT ISpObjectTokenInit_GetData(ISpObjectTokenInit* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
   3244     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
   3245 }
   3246 static inline HRESULT ISpObjectTokenInit_SetStringValue(ISpObjectTokenInit* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
   3247     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
   3248 }
   3249 static inline HRESULT ISpObjectTokenInit_GetStringValue(ISpObjectTokenInit* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
   3250     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
   3251 }
   3252 static inline HRESULT ISpObjectTokenInit_SetDWORD(ISpObjectTokenInit* This,LPCWSTR pszValueName,DWORD dwValue) {
   3253     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
   3254 }
   3255 static inline HRESULT ISpObjectTokenInit_GetDWORD(ISpObjectTokenInit* This,LPCWSTR pszValueName,DWORD *pdwValue) {
   3256     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
   3257 }
   3258 static inline HRESULT ISpObjectTokenInit_OpenKey(ISpObjectTokenInit* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
   3259     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
   3260 }
   3261 static inline HRESULT ISpObjectTokenInit_CreateKey(ISpObjectTokenInit* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
   3262     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
   3263 }
   3264 static inline HRESULT ISpObjectTokenInit_DeleteKey(ISpObjectTokenInit* This,LPCWSTR pszSubKey) {
   3265     return This->lpVtbl->DeleteKey(This,pszSubKey);
   3266 }
   3267 static inline HRESULT ISpObjectTokenInit_DeleteValue(ISpObjectTokenInit* This,LPCWSTR pszValueName) {
   3268     return This->lpVtbl->DeleteValue(This,pszValueName);
   3269 }
   3270 static inline HRESULT ISpObjectTokenInit_EnumKeys(ISpObjectTokenInit* This,ULONG Index,LPWSTR *ppszSubKeyName) {
   3271     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
   3272 }
   3273 static inline HRESULT ISpObjectTokenInit_EnumValues(ISpObjectTokenInit* This,ULONG Index,LPWSTR *ppszValueName) {
   3274     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
   3275 }
   3276 /*** ISpObjectToken methods ***/
   3277 static inline HRESULT ISpObjectTokenInit_SetId(ISpObjectTokenInit* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,WINBOOL fCreateIfNotExist) {
   3278     return This->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist);
   3279 }
   3280 static inline HRESULT ISpObjectTokenInit_GetId(ISpObjectTokenInit* This,LPWSTR *ppszCoMemTokenId) {
   3281     return This->lpVtbl->GetId(This,ppszCoMemTokenId);
   3282 }
   3283 static inline HRESULT ISpObjectTokenInit_GetCategory(ISpObjectTokenInit* This,ISpObjectTokenCategory **ppTokenCategory) {
   3284     return This->lpVtbl->GetCategory(This,ppTokenCategory);
   3285 }
   3286 static inline HRESULT ISpObjectTokenInit_CreateInstance(ISpObjectTokenInit* This,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,void **ppvObject) {
   3287     return This->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject);
   3288 }
   3289 static inline HRESULT ISpObjectTokenInit_GetStorageFileName(ISpObjectTokenInit* This,REFCLSID clsidCaller,LPCWSTR pszValueName,LPCWSTR pszFileNameSpecifier,ULONG nFolder,LPWSTR *ppszFilePath) {
   3290     return This->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath);
   3291 }
   3292 static inline HRESULT ISpObjectTokenInit_RemoveStorageFileName(ISpObjectTokenInit* This,REFCLSID clsidCaller,LPCWSTR pszKeyName,WINBOOL fDeleteFile) {
   3293     return This->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile);
   3294 }
   3295 static inline HRESULT ISpObjectTokenInit_Remove(ISpObjectTokenInit* This,const CLSID *pclsidCaller) {
   3296     return This->lpVtbl->Remove(This,pclsidCaller);
   3297 }
   3298 static inline HRESULT ISpObjectTokenInit_IsUISupported(ISpObjectTokenInit* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject,WINBOOL *pfSupported) {
   3299     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported);
   3300 }
   3301 static inline HRESULT ISpObjectTokenInit_DisplayUI(ISpObjectTokenInit* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject) {
   3302     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject);
   3303 }
   3304 static inline HRESULT ISpObjectTokenInit_MatchesAttributes(ISpObjectTokenInit* This,LPCWSTR pszAttributes,WINBOOL *pfMatches) {
   3305     return This->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches);
   3306 }
   3307 /*** ISpObjectTokenInit methods ***/
   3308 static inline HRESULT ISpObjectTokenInit_InitFromDataKey(ISpObjectTokenInit* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,ISpDataKey *pDataKey) {
   3309     return This->lpVtbl->InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey);
   3310 }
   3311 #endif
   3312 #endif
   3313 
   3314 #endif
   3315 
   3316 
   3317 #endif  /* __ISpObjectTokenInit_INTERFACE_DEFINED__ */
   3318 
   3319 /*****************************************************************************
   3320  * ISpResourceManager interface
   3321  */
   3322 #ifndef __ISpResourceManager_INTERFACE_DEFINED__
   3323 #define __ISpResourceManager_INTERFACE_DEFINED__
   3324 
   3325 DEFINE_GUID(IID_ISpResourceManager, 0x93384e18, 0x5014, 0x43d5, 0xad,0xbb, 0xa7,0x8e,0x05,0x59,0x26,0xbd);
   3326 #if defined(__cplusplus) && !defined(CINTERFACE)
   3327 MIDL_INTERFACE("93384e18-5014-43d5-adbb-a78e055926bd")
   3328 ISpResourceManager : public IServiceProvider
   3329 {
   3330     virtual HRESULT STDMETHODCALLTYPE SetObject(
   3331         REFGUID guidServiceId,
   3332         IUnknown *pUnkObject) = 0;
   3333 
   3334     virtual HRESULT STDMETHODCALLTYPE GetObject(
   3335         REFGUID guidServiceId,
   3336         REFCLSID ObjectCLSID,
   3337         REFIID ObjectIID,
   3338         WINBOOL fReleaseWhenLastExternalRefReleased,
   3339         void **ppObject) = 0;
   3340 
   3341 };
   3342 #ifdef __CRT_UUID_DECL
   3343 __CRT_UUID_DECL(ISpResourceManager, 0x93384e18, 0x5014, 0x43d5, 0xad,0xbb, 0xa7,0x8e,0x05,0x59,0x26,0xbd)
   3344 #endif
   3345 #else
   3346 typedef struct ISpResourceManagerVtbl {
   3347     BEGIN_INTERFACE
   3348 
   3349     /*** IUnknown methods ***/
   3350     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3351         ISpResourceManager *This,
   3352         REFIID riid,
   3353         void **ppvObject);
   3354 
   3355     ULONG (STDMETHODCALLTYPE *AddRef)(
   3356         ISpResourceManager *This);
   3357 
   3358     ULONG (STDMETHODCALLTYPE *Release)(
   3359         ISpResourceManager *This);
   3360 
   3361     /*** IServiceProvider methods ***/
   3362     HRESULT (STDMETHODCALLTYPE *QueryService)(
   3363         ISpResourceManager *This,
   3364         REFGUID guidService,
   3365         REFIID riid,
   3366         void **ppvObject);
   3367 
   3368     /*** ISpResourceManager methods ***/
   3369     HRESULT (STDMETHODCALLTYPE *SetObject)(
   3370         ISpResourceManager *This,
   3371         REFGUID guidServiceId,
   3372         IUnknown *pUnkObject);
   3373 
   3374     HRESULT (STDMETHODCALLTYPE *GetObject)(
   3375         ISpResourceManager *This,
   3376         REFGUID guidServiceId,
   3377         REFCLSID ObjectCLSID,
   3378         REFIID ObjectIID,
   3379         WINBOOL fReleaseWhenLastExternalRefReleased,
   3380         void **ppObject);
   3381 
   3382     END_INTERFACE
   3383 } ISpResourceManagerVtbl;
   3384 
   3385 interface ISpResourceManager {
   3386     CONST_VTBL ISpResourceManagerVtbl* lpVtbl;
   3387 };
   3388 
   3389 #ifdef COBJMACROS
   3390 #ifndef WIDL_C_INLINE_WRAPPERS
   3391 /*** IUnknown methods ***/
   3392 #define ISpResourceManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3393 #define ISpResourceManager_AddRef(This) (This)->lpVtbl->AddRef(This)
   3394 #define ISpResourceManager_Release(This) (This)->lpVtbl->Release(This)
   3395 /*** IServiceProvider methods ***/
   3396 #define ISpResourceManager_QueryService(This,guidService,riid,ppvObject) (This)->lpVtbl->QueryService(This,guidService,riid,ppvObject)
   3397 /*** ISpResourceManager methods ***/
   3398 #define ISpResourceManager_SetObject(This,guidServiceId,pUnkObject) (This)->lpVtbl->SetObject(This,guidServiceId,pUnkObject)
   3399 #define ISpResourceManager_GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject) (This)->lpVtbl->GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject)
   3400 #else
   3401 /*** IUnknown methods ***/
   3402 static inline HRESULT ISpResourceManager_QueryInterface(ISpResourceManager* This,REFIID riid,void **ppvObject) {
   3403     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3404 }
   3405 static inline ULONG ISpResourceManager_AddRef(ISpResourceManager* This) {
   3406     return This->lpVtbl->AddRef(This);
   3407 }
   3408 static inline ULONG ISpResourceManager_Release(ISpResourceManager* This) {
   3409     return This->lpVtbl->Release(This);
   3410 }
   3411 /*** IServiceProvider methods ***/
   3412 static inline HRESULT ISpResourceManager_QueryService(ISpResourceManager* This,REFGUID guidService,REFIID riid,void **ppvObject) {
   3413     return This->lpVtbl->QueryService(This,guidService,riid,ppvObject);
   3414 }
   3415 /*** ISpResourceManager methods ***/
   3416 static inline HRESULT ISpResourceManager_SetObject(ISpResourceManager* This,REFGUID guidServiceId,IUnknown *pUnkObject) {
   3417     return This->lpVtbl->SetObject(This,guidServiceId,pUnkObject);
   3418 }
   3419 static inline HRESULT ISpResourceManager_GetObject(ISpResourceManager* This,REFGUID guidServiceId,REFCLSID ObjectCLSID,REFIID ObjectIID,WINBOOL fReleaseWhenLastExternalRefReleased,void **ppObject) {
   3420     return This->lpVtbl->GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject);
   3421 }
   3422 #endif
   3423 #endif
   3424 
   3425 #endif
   3426 
   3427 
   3428 #endif  /* __ISpResourceManager_INTERFACE_DEFINED__ */
   3429 
   3430 #if 0
   3431 typedef struct SPEVENT {
   3432     WORD eEventId;
   3433     WORD elParamType;
   3434     ULONG ulStreamNum;
   3435     ULONGLONG ullAudioStreamOffset;
   3436     WPARAM wParam;
   3437     LPARAM lParam;
   3438 } SPEVENT;
   3439 typedef struct SPSERIALIZEDEVENT {
   3440     WORD eEventId;
   3441     WORD elParamType;
   3442     ULONG ulStreamNum;
   3443     ULONGLONG ullAudioStreamOffset;
   3444     ULONG SerializedwParam;
   3445     LONG SerializedlParam;
   3446 } SPSERIALIZEDEVENT;
   3447 typedef struct SPSERIALIZEDEVENT64 {
   3448     WORD eEventId;
   3449     WORD elParamType;
   3450     ULONG ulStreamNum;
   3451     ULONGLONG ullAudioStreamOffset;
   3452     ULONGLONG SerializedwParam;
   3453     LONGLONG SerializedlParam;
   3454 } SPSERIALIZEDEVENT64;
   3455 #else
   3456 typedef struct SPEVENT {
   3457   SPEVENTENUM eEventId : 16;
   3458   SPEVENTLPARAMTYPE elParamType : 16;
   3459   ULONG ulStreamNum;
   3460   ULONGLONG ullAudioStreamOffset;
   3461   WPARAM      wParam;
   3462   LPARAM      lParam;
   3463 } SPEVENT;
   3464 
   3465 typedef struct SPSERIALIZEDEVENT {
   3466   SPEVENTENUM eEventId : 16;
   3467   SPEVENTLPARAMTYPE elParamType : 16;
   3468   ULONG ulStreamNum;
   3469   ULONGLONG ullAudioStreamOffset;
   3470   ULONG SerializedwParam;
   3471   LONG SerializedlParam;
   3472 } SPSERIALIZEDEVENT;
   3473 
   3474 typedef struct SPSERIALIZEDEVENT64 {
   3475   SPEVENTENUM eEventId : 16;
   3476   SPEVENTLPARAMTYPE elParamType : 16;
   3477   ULONG ulStreamNum;
   3478   ULONGLONG ullAudioStreamOffset;
   3479   ULONGLONG SerializedwParam;
   3480   LONGLONG SerializedlParam;
   3481 } SPSERIALIZEDEVENT64;
   3482 #endif
   3483 typedef struct SPEVENTSOURCEINFO {
   3484     ULONGLONG ullEventInterest;
   3485     ULONGLONG ullQueuedInterest;
   3486     ULONG ulCount;
   3487 } SPEVENTSOURCEINFO;
   3488 /*****************************************************************************
   3489  * ISpEventSource interface
   3490  */
   3491 #ifndef __ISpEventSource_INTERFACE_DEFINED__
   3492 #define __ISpEventSource_INTERFACE_DEFINED__
   3493 
   3494 DEFINE_GUID(IID_ISpEventSource, 0xbe7a9cce, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
   3495 #if defined(__cplusplus) && !defined(CINTERFACE)
   3496 MIDL_INTERFACE("be7a9cce-5f9e-11d2-960f-00c04f8ee628")
   3497 ISpEventSource : public ISpNotifySource
   3498 {
   3499     virtual HRESULT STDMETHODCALLTYPE SetInterest(
   3500         ULONGLONG ullEventInterest,
   3501         ULONGLONG ullQueuedInterest) = 0;
   3502 
   3503     virtual HRESULT STDMETHODCALLTYPE GetEvents(
   3504         ULONG ulCount,
   3505         SPEVENT *pEventArray,
   3506         ULONG *pulFetched) = 0;
   3507 
   3508     virtual HRESULT STDMETHODCALLTYPE GetInfo(
   3509         SPEVENTSOURCEINFO *pInfo) = 0;
   3510 
   3511 };
   3512 #ifdef __CRT_UUID_DECL
   3513 __CRT_UUID_DECL(ISpEventSource, 0xbe7a9cce, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
   3514 #endif
   3515 #else
   3516 typedef struct ISpEventSourceVtbl {
   3517     BEGIN_INTERFACE
   3518 
   3519     /*** IUnknown methods ***/
   3520     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3521         ISpEventSource *This,
   3522         REFIID riid,
   3523         void **ppvObject);
   3524 
   3525     ULONG (STDMETHODCALLTYPE *AddRef)(
   3526         ISpEventSource *This);
   3527 
   3528     ULONG (STDMETHODCALLTYPE *Release)(
   3529         ISpEventSource *This);
   3530 
   3531     /*** ISpNotifySource methods ***/
   3532     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
   3533         ISpEventSource *This,
   3534         ISpNotifySink *pNotifySink);
   3535 
   3536     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
   3537         ISpEventSource *This,
   3538         HWND hWnd,
   3539         UINT Msg,
   3540         WPARAM wParam,
   3541         LPARAM lParam);
   3542 
   3543     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
   3544         ISpEventSource *This,
   3545         SPNOTIFYCALLBACK *pfnCallback,
   3546         WPARAM wParam,
   3547         LPARAM lParam);
   3548 
   3549     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
   3550         ISpEventSource *This,
   3551         ISpNotifyCallback *pSpCallback,
   3552         WPARAM wParam,
   3553         LPARAM lParam);
   3554 
   3555     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
   3556         ISpEventSource *This);
   3557 
   3558     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
   3559         ISpEventSource *This,
   3560         DWORD dwMilliseconds);
   3561 
   3562     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
   3563         ISpEventSource *This);
   3564 
   3565     /*** ISpEventSource methods ***/
   3566     HRESULT (STDMETHODCALLTYPE *SetInterest)(
   3567         ISpEventSource *This,
   3568         ULONGLONG ullEventInterest,
   3569         ULONGLONG ullQueuedInterest);
   3570 
   3571     HRESULT (STDMETHODCALLTYPE *GetEvents)(
   3572         ISpEventSource *This,
   3573         ULONG ulCount,
   3574         SPEVENT *pEventArray,
   3575         ULONG *pulFetched);
   3576 
   3577     HRESULT (STDMETHODCALLTYPE *GetInfo)(
   3578         ISpEventSource *This,
   3579         SPEVENTSOURCEINFO *pInfo);
   3580 
   3581     END_INTERFACE
   3582 } ISpEventSourceVtbl;
   3583 
   3584 interface ISpEventSource {
   3585     CONST_VTBL ISpEventSourceVtbl* lpVtbl;
   3586 };
   3587 
   3588 #ifdef COBJMACROS
   3589 #ifndef WIDL_C_INLINE_WRAPPERS
   3590 /*** IUnknown methods ***/
   3591 #define ISpEventSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3592 #define ISpEventSource_AddRef(This) (This)->lpVtbl->AddRef(This)
   3593 #define ISpEventSource_Release(This) (This)->lpVtbl->Release(This)
   3594 /*** ISpNotifySource methods ***/
   3595 #define ISpEventSource_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
   3596 #define ISpEventSource_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
   3597 #define ISpEventSource_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
   3598 #define ISpEventSource_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
   3599 #define ISpEventSource_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
   3600 #define ISpEventSource_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
   3601 #define ISpEventSource_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
   3602 /*** ISpEventSource methods ***/
   3603 #define ISpEventSource_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
   3604 #define ISpEventSource_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
   3605 #define ISpEventSource_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
   3606 #else
   3607 /*** IUnknown methods ***/
   3608 static inline HRESULT ISpEventSource_QueryInterface(ISpEventSource* This,REFIID riid,void **ppvObject) {
   3609     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3610 }
   3611 static inline ULONG ISpEventSource_AddRef(ISpEventSource* This) {
   3612     return This->lpVtbl->AddRef(This);
   3613 }
   3614 static inline ULONG ISpEventSource_Release(ISpEventSource* This) {
   3615     return This->lpVtbl->Release(This);
   3616 }
   3617 /*** ISpNotifySource methods ***/
   3618 static inline HRESULT ISpEventSource_SetNotifySink(ISpEventSource* This,ISpNotifySink *pNotifySink) {
   3619     return This->lpVtbl->SetNotifySink(This,pNotifySink);
   3620 }
   3621 static inline HRESULT ISpEventSource_SetNotifyWindowMessage(ISpEventSource* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
   3622     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
   3623 }
   3624 static inline HRESULT ISpEventSource_SetNotifyCallbackFunction(ISpEventSource* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
   3625     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
   3626 }
   3627 static inline HRESULT ISpEventSource_SetNotifyCallbackInterface(ISpEventSource* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
   3628     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
   3629 }
   3630 static inline HRESULT ISpEventSource_SetNotifyWin32Event(ISpEventSource* This) {
   3631     return This->lpVtbl->SetNotifyWin32Event(This);
   3632 }
   3633 static inline HRESULT ISpEventSource_WaitForNotifyEvent(ISpEventSource* This,DWORD dwMilliseconds) {
   3634     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
   3635 }
   3636 static inline HANDLE ISpEventSource_GetNotifyEventHandle(ISpEventSource* This) {
   3637     return This->lpVtbl->GetNotifyEventHandle(This);
   3638 }
   3639 /*** ISpEventSource methods ***/
   3640 static inline HRESULT ISpEventSource_SetInterest(ISpEventSource* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
   3641     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
   3642 }
   3643 static inline HRESULT ISpEventSource_GetEvents(ISpEventSource* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
   3644     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
   3645 }
   3646 static inline HRESULT ISpEventSource_GetInfo(ISpEventSource* This,SPEVENTSOURCEINFO *pInfo) {
   3647     return This->lpVtbl->GetInfo(This,pInfo);
   3648 }
   3649 #endif
   3650 #endif
   3651 
   3652 #endif
   3653 
   3654 
   3655 #endif  /* __ISpEventSource_INTERFACE_DEFINED__ */
   3656 
   3657 /*****************************************************************************
   3658  * ISpEventSink interface
   3659  */
   3660 #ifndef __ISpEventSink_INTERFACE_DEFINED__
   3661 #define __ISpEventSink_INTERFACE_DEFINED__
   3662 
   3663 DEFINE_GUID(IID_ISpEventSink, 0xbe7a9cc9, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
   3664 #if defined(__cplusplus) && !defined(CINTERFACE)
   3665 MIDL_INTERFACE("be7a9cc9-5f9e-11d2-960f-00c04f8ee628")
   3666 ISpEventSink : public IUnknown
   3667 {
   3668     virtual HRESULT STDMETHODCALLTYPE AddEvents(
   3669         const SPEVENT *pEventArray,
   3670         ULONG ulCount) = 0;
   3671 
   3672     virtual HRESULT STDMETHODCALLTYPE GetEventInterest(
   3673         ULONGLONG *pullEventInterest) = 0;
   3674 
   3675 };
   3676 #ifdef __CRT_UUID_DECL
   3677 __CRT_UUID_DECL(ISpEventSink, 0xbe7a9cc9, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
   3678 #endif
   3679 #else
   3680 typedef struct ISpEventSinkVtbl {
   3681     BEGIN_INTERFACE
   3682 
   3683     /*** IUnknown methods ***/
   3684     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3685         ISpEventSink *This,
   3686         REFIID riid,
   3687         void **ppvObject);
   3688 
   3689     ULONG (STDMETHODCALLTYPE *AddRef)(
   3690         ISpEventSink *This);
   3691 
   3692     ULONG (STDMETHODCALLTYPE *Release)(
   3693         ISpEventSink *This);
   3694 
   3695     /*** ISpEventSink methods ***/
   3696     HRESULT (STDMETHODCALLTYPE *AddEvents)(
   3697         ISpEventSink *This,
   3698         const SPEVENT *pEventArray,
   3699         ULONG ulCount);
   3700 
   3701     HRESULT (STDMETHODCALLTYPE *GetEventInterest)(
   3702         ISpEventSink *This,
   3703         ULONGLONG *pullEventInterest);
   3704 
   3705     END_INTERFACE
   3706 } ISpEventSinkVtbl;
   3707 
   3708 interface ISpEventSink {
   3709     CONST_VTBL ISpEventSinkVtbl* lpVtbl;
   3710 };
   3711 
   3712 #ifdef COBJMACROS
   3713 #ifndef WIDL_C_INLINE_WRAPPERS
   3714 /*** IUnknown methods ***/
   3715 #define ISpEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3716 #define ISpEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
   3717 #define ISpEventSink_Release(This) (This)->lpVtbl->Release(This)
   3718 /*** ISpEventSink methods ***/
   3719 #define ISpEventSink_AddEvents(This,pEventArray,ulCount) (This)->lpVtbl->AddEvents(This,pEventArray,ulCount)
   3720 #define ISpEventSink_GetEventInterest(This,pullEventInterest) (This)->lpVtbl->GetEventInterest(This,pullEventInterest)
   3721 #else
   3722 /*** IUnknown methods ***/
   3723 static inline HRESULT ISpEventSink_QueryInterface(ISpEventSink* This,REFIID riid,void **ppvObject) {
   3724     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3725 }
   3726 static inline ULONG ISpEventSink_AddRef(ISpEventSink* This) {
   3727     return This->lpVtbl->AddRef(This);
   3728 }
   3729 static inline ULONG ISpEventSink_Release(ISpEventSink* This) {
   3730     return This->lpVtbl->Release(This);
   3731 }
   3732 /*** ISpEventSink methods ***/
   3733 static inline HRESULT ISpEventSink_AddEvents(ISpEventSink* This,const SPEVENT *pEventArray,ULONG ulCount) {
   3734     return This->lpVtbl->AddEvents(This,pEventArray,ulCount);
   3735 }
   3736 static inline HRESULT ISpEventSink_GetEventInterest(ISpEventSink* This,ULONGLONG *pullEventInterest) {
   3737     return This->lpVtbl->GetEventInterest(This,pullEventInterest);
   3738 }
   3739 #endif
   3740 #endif
   3741 
   3742 #endif
   3743 
   3744 
   3745 #endif  /* __ISpEventSink_INTERFACE_DEFINED__ */
   3746 
   3747 /*****************************************************************************
   3748  * ISpStreamFormat interface
   3749  */
   3750 #ifndef __ISpStreamFormat_INTERFACE_DEFINED__
   3751 #define __ISpStreamFormat_INTERFACE_DEFINED__
   3752 
   3753 DEFINE_GUID(IID_ISpStreamFormat, 0xbed530be, 0x2606, 0x4f4d, 0xa1,0xc0, 0x54,0xc5,0xcd,0xa5,0x56,0x6f);
   3754 #if defined(__cplusplus) && !defined(CINTERFACE)
   3755 MIDL_INTERFACE("bed530be-2606-4f4d-a1c0-54c5cda5566f")
   3756 ISpStreamFormat : public IStream
   3757 {
   3758     virtual HRESULT STDMETHODCALLTYPE GetFormat(
   3759         GUID *pguidFormatId,
   3760         WAVEFORMATEX **ppCoMemWaveFormatEx) = 0;
   3761 
   3762 };
   3763 #ifdef __CRT_UUID_DECL
   3764 __CRT_UUID_DECL(ISpStreamFormat, 0xbed530be, 0x2606, 0x4f4d, 0xa1,0xc0, 0x54,0xc5,0xcd,0xa5,0x56,0x6f)
   3765 #endif
   3766 #else
   3767 typedef struct ISpStreamFormatVtbl {
   3768     BEGIN_INTERFACE
   3769 
   3770     /*** IUnknown methods ***/
   3771     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3772         ISpStreamFormat *This,
   3773         REFIID riid,
   3774         void **ppvObject);
   3775 
   3776     ULONG (STDMETHODCALLTYPE *AddRef)(
   3777         ISpStreamFormat *This);
   3778 
   3779     ULONG (STDMETHODCALLTYPE *Release)(
   3780         ISpStreamFormat *This);
   3781 
   3782     /*** ISequentialStream methods ***/
   3783     HRESULT (STDMETHODCALLTYPE *Read)(
   3784         ISpStreamFormat *This,
   3785         void *pv,
   3786         ULONG cb,
   3787         ULONG *pcbRead);
   3788 
   3789     HRESULT (STDMETHODCALLTYPE *Write)(
   3790         ISpStreamFormat *This,
   3791         const void *pv,
   3792         ULONG cb,
   3793         ULONG *pcbWritten);
   3794 
   3795     /*** IStream methods ***/
   3796     HRESULT (STDMETHODCALLTYPE *Seek)(
   3797         ISpStreamFormat *This,
   3798         LARGE_INTEGER dlibMove,
   3799         DWORD dwOrigin,
   3800         ULARGE_INTEGER *plibNewPosition);
   3801 
   3802     HRESULT (STDMETHODCALLTYPE *SetSize)(
   3803         ISpStreamFormat *This,
   3804         ULARGE_INTEGER libNewSize);
   3805 
   3806     HRESULT (STDMETHODCALLTYPE *CopyTo)(
   3807         ISpStreamFormat *This,
   3808         IStream *pstm,
   3809         ULARGE_INTEGER cb,
   3810         ULARGE_INTEGER *pcbRead,
   3811         ULARGE_INTEGER *pcbWritten);
   3812 
   3813     HRESULT (STDMETHODCALLTYPE *Commit)(
   3814         ISpStreamFormat *This,
   3815         DWORD grfCommitFlags);
   3816 
   3817     HRESULT (STDMETHODCALLTYPE *Revert)(
   3818         ISpStreamFormat *This);
   3819 
   3820     HRESULT (STDMETHODCALLTYPE *LockRegion)(
   3821         ISpStreamFormat *This,
   3822         ULARGE_INTEGER libOffset,
   3823         ULARGE_INTEGER cb,
   3824         DWORD dwLockType);
   3825 
   3826     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
   3827         ISpStreamFormat *This,
   3828         ULARGE_INTEGER libOffset,
   3829         ULARGE_INTEGER cb,
   3830         DWORD dwLockType);
   3831 
   3832     HRESULT (STDMETHODCALLTYPE *Stat)(
   3833         ISpStreamFormat *This,
   3834         STATSTG *pstatstg,
   3835         DWORD grfStatFlag);
   3836 
   3837     HRESULT (STDMETHODCALLTYPE *Clone)(
   3838         ISpStreamFormat *This,
   3839         IStream **ppstm);
   3840 
   3841     /*** ISpStreamFormat methods ***/
   3842     HRESULT (STDMETHODCALLTYPE *GetFormat)(
   3843         ISpStreamFormat *This,
   3844         GUID *pguidFormatId,
   3845         WAVEFORMATEX **ppCoMemWaveFormatEx);
   3846 
   3847     END_INTERFACE
   3848 } ISpStreamFormatVtbl;
   3849 
   3850 interface ISpStreamFormat {
   3851     CONST_VTBL ISpStreamFormatVtbl* lpVtbl;
   3852 };
   3853 
   3854 #ifdef COBJMACROS
   3855 #ifndef WIDL_C_INLINE_WRAPPERS
   3856 /*** IUnknown methods ***/
   3857 #define ISpStreamFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3858 #define ISpStreamFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
   3859 #define ISpStreamFormat_Release(This) (This)->lpVtbl->Release(This)
   3860 /*** ISequentialStream methods ***/
   3861 #define ISpStreamFormat_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
   3862 #define ISpStreamFormat_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
   3863 /*** IStream methods ***/
   3864 #define ISpStreamFormat_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
   3865 #define ISpStreamFormat_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
   3866 #define ISpStreamFormat_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
   3867 #define ISpStreamFormat_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
   3868 #define ISpStreamFormat_Revert(This) (This)->lpVtbl->Revert(This)
   3869 #define ISpStreamFormat_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
   3870 #define ISpStreamFormat_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
   3871 #define ISpStreamFormat_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
   3872 #define ISpStreamFormat_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
   3873 /*** ISpStreamFormat methods ***/
   3874 #define ISpStreamFormat_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
   3875 #else
   3876 /*** IUnknown methods ***/
   3877 static inline HRESULT ISpStreamFormat_QueryInterface(ISpStreamFormat* This,REFIID riid,void **ppvObject) {
   3878     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3879 }
   3880 static inline ULONG ISpStreamFormat_AddRef(ISpStreamFormat* This) {
   3881     return This->lpVtbl->AddRef(This);
   3882 }
   3883 static inline ULONG ISpStreamFormat_Release(ISpStreamFormat* This) {
   3884     return This->lpVtbl->Release(This);
   3885 }
   3886 /*** ISequentialStream methods ***/
   3887 static inline HRESULT ISpStreamFormat_Read(ISpStreamFormat* This,void *pv,ULONG cb,ULONG *pcbRead) {
   3888     return This->lpVtbl->Read(This,pv,cb,pcbRead);
   3889 }
   3890 static inline HRESULT ISpStreamFormat_Write(ISpStreamFormat* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
   3891     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
   3892 }
   3893 /*** IStream methods ***/
   3894 static inline HRESULT ISpStreamFormat_Seek(ISpStreamFormat* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
   3895     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
   3896 }
   3897 static inline HRESULT ISpStreamFormat_SetSize(ISpStreamFormat* This,ULARGE_INTEGER libNewSize) {
   3898     return This->lpVtbl->SetSize(This,libNewSize);
   3899 }
   3900 static inline HRESULT ISpStreamFormat_CopyTo(ISpStreamFormat* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
   3901     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
   3902 }
   3903 static inline HRESULT ISpStreamFormat_Commit(ISpStreamFormat* This,DWORD grfCommitFlags) {
   3904     return This->lpVtbl->Commit(This,grfCommitFlags);
   3905 }
   3906 static inline HRESULT ISpStreamFormat_Revert(ISpStreamFormat* This) {
   3907     return This->lpVtbl->Revert(This);
   3908 }
   3909 static inline HRESULT ISpStreamFormat_LockRegion(ISpStreamFormat* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   3910     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
   3911 }
   3912 static inline HRESULT ISpStreamFormat_UnlockRegion(ISpStreamFormat* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   3913     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
   3914 }
   3915 static inline HRESULT ISpStreamFormat_Stat(ISpStreamFormat* This,STATSTG *pstatstg,DWORD grfStatFlag) {
   3916     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
   3917 }
   3918 static inline HRESULT ISpStreamFormat_Clone(ISpStreamFormat* This,IStream **ppstm) {
   3919     return This->lpVtbl->Clone(This,ppstm);
   3920 }
   3921 /*** ISpStreamFormat methods ***/
   3922 static inline HRESULT ISpStreamFormat_GetFormat(ISpStreamFormat* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
   3923     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
   3924 }
   3925 #endif
   3926 #endif
   3927 
   3928 #endif
   3929 
   3930 
   3931 #endif  /* __ISpStreamFormat_INTERFACE_DEFINED__ */
   3932 
   3933 /*****************************************************************************
   3934  * ISpStream interface
   3935  */
   3936 #ifndef __ISpStream_INTERFACE_DEFINED__
   3937 #define __ISpStream_INTERFACE_DEFINED__
   3938 
   3939 DEFINE_GUID(IID_ISpStream, 0x12e3cca9, 0x7518, 0x44c5, 0xa5,0xe7, 0xba,0x5a,0x79,0xcb,0x92,0x9e);
   3940 #if defined(__cplusplus) && !defined(CINTERFACE)
   3941 MIDL_INTERFACE("12e3cca9-7518-44c5-a5e7-ba5a79cb929e")
   3942 ISpStream : public ISpStreamFormat
   3943 {
   3944     virtual HRESULT STDMETHODCALLTYPE SetBaseStream(
   3945         IStream *pStream,
   3946         REFGUID rguidFormat,
   3947         const WAVEFORMATEX *pWaveFormatEx) = 0;
   3948 
   3949     virtual HRESULT STDMETHODCALLTYPE GetBaseStream(
   3950         IStream **ppStream) = 0;
   3951 
   3952     virtual HRESULT STDMETHODCALLTYPE BindToFile(
   3953         LPCWSTR pszFileName,
   3954         SPFILEMODE eMode,
   3955         const GUID *pFormatId,
   3956         const WAVEFORMATEX *pWaveFormatEx,
   3957         ULONGLONG ullEventInterest) = 0;
   3958 
   3959     virtual HRESULT STDMETHODCALLTYPE Close(
   3960         ) = 0;
   3961 
   3962 };
   3963 #ifdef __CRT_UUID_DECL
   3964 __CRT_UUID_DECL(ISpStream, 0x12e3cca9, 0x7518, 0x44c5, 0xa5,0xe7, 0xba,0x5a,0x79,0xcb,0x92,0x9e)
   3965 #endif
   3966 #else
   3967 typedef struct ISpStreamVtbl {
   3968     BEGIN_INTERFACE
   3969 
   3970     /*** IUnknown methods ***/
   3971     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3972         ISpStream *This,
   3973         REFIID riid,
   3974         void **ppvObject);
   3975 
   3976     ULONG (STDMETHODCALLTYPE *AddRef)(
   3977         ISpStream *This);
   3978 
   3979     ULONG (STDMETHODCALLTYPE *Release)(
   3980         ISpStream *This);
   3981 
   3982     /*** ISequentialStream methods ***/
   3983     HRESULT (STDMETHODCALLTYPE *Read)(
   3984         ISpStream *This,
   3985         void *pv,
   3986         ULONG cb,
   3987         ULONG *pcbRead);
   3988 
   3989     HRESULT (STDMETHODCALLTYPE *Write)(
   3990         ISpStream *This,
   3991         const void *pv,
   3992         ULONG cb,
   3993         ULONG *pcbWritten);
   3994 
   3995     /*** IStream methods ***/
   3996     HRESULT (STDMETHODCALLTYPE *Seek)(
   3997         ISpStream *This,
   3998         LARGE_INTEGER dlibMove,
   3999         DWORD dwOrigin,
   4000         ULARGE_INTEGER *plibNewPosition);
   4001 
   4002     HRESULT (STDMETHODCALLTYPE *SetSize)(
   4003         ISpStream *This,
   4004         ULARGE_INTEGER libNewSize);
   4005 
   4006     HRESULT (STDMETHODCALLTYPE *CopyTo)(
   4007         ISpStream *This,
   4008         IStream *pstm,
   4009         ULARGE_INTEGER cb,
   4010         ULARGE_INTEGER *pcbRead,
   4011         ULARGE_INTEGER *pcbWritten);
   4012 
   4013     HRESULT (STDMETHODCALLTYPE *Commit)(
   4014         ISpStream *This,
   4015         DWORD grfCommitFlags);
   4016 
   4017     HRESULT (STDMETHODCALLTYPE *Revert)(
   4018         ISpStream *This);
   4019 
   4020     HRESULT (STDMETHODCALLTYPE *LockRegion)(
   4021         ISpStream *This,
   4022         ULARGE_INTEGER libOffset,
   4023         ULARGE_INTEGER cb,
   4024         DWORD dwLockType);
   4025 
   4026     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
   4027         ISpStream *This,
   4028         ULARGE_INTEGER libOffset,
   4029         ULARGE_INTEGER cb,
   4030         DWORD dwLockType);
   4031 
   4032     HRESULT (STDMETHODCALLTYPE *Stat)(
   4033         ISpStream *This,
   4034         STATSTG *pstatstg,
   4035         DWORD grfStatFlag);
   4036 
   4037     HRESULT (STDMETHODCALLTYPE *Clone)(
   4038         ISpStream *This,
   4039         IStream **ppstm);
   4040 
   4041     /*** ISpStreamFormat methods ***/
   4042     HRESULT (STDMETHODCALLTYPE *GetFormat)(
   4043         ISpStream *This,
   4044         GUID *pguidFormatId,
   4045         WAVEFORMATEX **ppCoMemWaveFormatEx);
   4046 
   4047     /*** ISpStream methods ***/
   4048     HRESULT (STDMETHODCALLTYPE *SetBaseStream)(
   4049         ISpStream *This,
   4050         IStream *pStream,
   4051         REFGUID rguidFormat,
   4052         const WAVEFORMATEX *pWaveFormatEx);
   4053 
   4054     HRESULT (STDMETHODCALLTYPE *GetBaseStream)(
   4055         ISpStream *This,
   4056         IStream **ppStream);
   4057 
   4058     HRESULT (STDMETHODCALLTYPE *BindToFile)(
   4059         ISpStream *This,
   4060         LPCWSTR pszFileName,
   4061         SPFILEMODE eMode,
   4062         const GUID *pFormatId,
   4063         const WAVEFORMATEX *pWaveFormatEx,
   4064         ULONGLONG ullEventInterest);
   4065 
   4066     HRESULT (STDMETHODCALLTYPE *Close)(
   4067         ISpStream *This);
   4068 
   4069     END_INTERFACE
   4070 } ISpStreamVtbl;
   4071 
   4072 interface ISpStream {
   4073     CONST_VTBL ISpStreamVtbl* lpVtbl;
   4074 };
   4075 
   4076 #ifdef COBJMACROS
   4077 #ifndef WIDL_C_INLINE_WRAPPERS
   4078 /*** IUnknown methods ***/
   4079 #define ISpStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4080 #define ISpStream_AddRef(This) (This)->lpVtbl->AddRef(This)
   4081 #define ISpStream_Release(This) (This)->lpVtbl->Release(This)
   4082 /*** ISequentialStream methods ***/
   4083 #define ISpStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
   4084 #define ISpStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
   4085 /*** IStream methods ***/
   4086 #define ISpStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
   4087 #define ISpStream_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
   4088 #define ISpStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
   4089 #define ISpStream_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
   4090 #define ISpStream_Revert(This) (This)->lpVtbl->Revert(This)
   4091 #define ISpStream_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
   4092 #define ISpStream_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
   4093 #define ISpStream_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
   4094 #define ISpStream_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
   4095 /*** ISpStreamFormat methods ***/
   4096 #define ISpStream_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
   4097 /*** ISpStream methods ***/
   4098 #define ISpStream_SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx) (This)->lpVtbl->SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx)
   4099 #define ISpStream_GetBaseStream(This,ppStream) (This)->lpVtbl->GetBaseStream(This,ppStream)
   4100 #define ISpStream_BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest) (This)->lpVtbl->BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest)
   4101 #define ISpStream_Close(This) (This)->lpVtbl->Close(This)
   4102 #else
   4103 /*** IUnknown methods ***/
   4104 static inline HRESULT ISpStream_QueryInterface(ISpStream* This,REFIID riid,void **ppvObject) {
   4105     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4106 }
   4107 static inline ULONG ISpStream_AddRef(ISpStream* This) {
   4108     return This->lpVtbl->AddRef(This);
   4109 }
   4110 static inline ULONG ISpStream_Release(ISpStream* This) {
   4111     return This->lpVtbl->Release(This);
   4112 }
   4113 /*** ISequentialStream methods ***/
   4114 static inline HRESULT ISpStream_Read(ISpStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
   4115     return This->lpVtbl->Read(This,pv,cb,pcbRead);
   4116 }
   4117 static inline HRESULT ISpStream_Write(ISpStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
   4118     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
   4119 }
   4120 /*** IStream methods ***/
   4121 static inline HRESULT ISpStream_Seek(ISpStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
   4122     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
   4123 }
   4124 static inline HRESULT ISpStream_SetSize(ISpStream* This,ULARGE_INTEGER libNewSize) {
   4125     return This->lpVtbl->SetSize(This,libNewSize);
   4126 }
   4127 static inline HRESULT ISpStream_CopyTo(ISpStream* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
   4128     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
   4129 }
   4130 static inline HRESULT ISpStream_Commit(ISpStream* This,DWORD grfCommitFlags) {
   4131     return This->lpVtbl->Commit(This,grfCommitFlags);
   4132 }
   4133 static inline HRESULT ISpStream_Revert(ISpStream* This) {
   4134     return This->lpVtbl->Revert(This);
   4135 }
   4136 static inline HRESULT ISpStream_LockRegion(ISpStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   4137     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
   4138 }
   4139 static inline HRESULT ISpStream_UnlockRegion(ISpStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   4140     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
   4141 }
   4142 static inline HRESULT ISpStream_Stat(ISpStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
   4143     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
   4144 }
   4145 static inline HRESULT ISpStream_Clone(ISpStream* This,IStream **ppstm) {
   4146     return This->lpVtbl->Clone(This,ppstm);
   4147 }
   4148 /*** ISpStreamFormat methods ***/
   4149 static inline HRESULT ISpStream_GetFormat(ISpStream* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
   4150     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
   4151 }
   4152 /*** ISpStream methods ***/
   4153 static inline HRESULT ISpStream_SetBaseStream(ISpStream* This,IStream *pStream,REFGUID rguidFormat,const WAVEFORMATEX *pWaveFormatEx) {
   4154     return This->lpVtbl->SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx);
   4155 }
   4156 static inline HRESULT ISpStream_GetBaseStream(ISpStream* This,IStream **ppStream) {
   4157     return This->lpVtbl->GetBaseStream(This,ppStream);
   4158 }
   4159 static inline HRESULT ISpStream_BindToFile(ISpStream* This,LPCWSTR pszFileName,SPFILEMODE eMode,const GUID *pFormatId,const WAVEFORMATEX *pWaveFormatEx,ULONGLONG ullEventInterest) {
   4160     return This->lpVtbl->BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest);
   4161 }
   4162 static inline HRESULT ISpStream_Close(ISpStream* This) {
   4163     return This->lpVtbl->Close(This);
   4164 }
   4165 #endif
   4166 #endif
   4167 
   4168 #endif
   4169 
   4170 
   4171 #endif  /* __ISpStream_INTERFACE_DEFINED__ */
   4172 
   4173 /*****************************************************************************
   4174  * ISpStreamFormatConverter interface
   4175  */
   4176 #ifndef __ISpStreamFormatConverter_INTERFACE_DEFINED__
   4177 #define __ISpStreamFormatConverter_INTERFACE_DEFINED__
   4178 
   4179 DEFINE_GUID(IID_ISpStreamFormatConverter, 0x678a932c, 0xea71, 0x4446, 0x9b,0x41, 0x78,0xfd,0xa6,0x28,0x0a,0x29);
   4180 #if defined(__cplusplus) && !defined(CINTERFACE)
   4181 MIDL_INTERFACE("678a932c-ea71-4446-9b41-78fda6280a29")
   4182 ISpStreamFormatConverter : public ISpStreamFormat
   4183 {
   4184     virtual HRESULT STDMETHODCALLTYPE SetBaseStream(
   4185         ISpStreamFormat *pStream,
   4186         WINBOOL fSetFormatToBaseStreamFormat,
   4187         WINBOOL fWriteToBaseStream) = 0;
   4188 
   4189     virtual HRESULT STDMETHODCALLTYPE GetBaseStream(
   4190         ISpStreamFormat **ppStream) = 0;
   4191 
   4192     virtual HRESULT STDMETHODCALLTYPE SetFormat(
   4193         REFGUID rguidFormatIdOfConvertedStream,
   4194         const WAVEFORMATEX *pWaveFormatExOfConvertedStream) = 0;
   4195 
   4196     virtual HRESULT STDMETHODCALLTYPE ResetSeekPosition(
   4197         ) = 0;
   4198 
   4199     virtual HRESULT STDMETHODCALLTYPE ScaleConvertedToBaseOffset(
   4200         ULONGLONG ullOffsetConvertedStream,
   4201         ULONGLONG *pullOffsetBaseStream) = 0;
   4202 
   4203     virtual HRESULT STDMETHODCALLTYPE ScaleBaseToConvertedOffset(
   4204         ULONGLONG ullOffsetBaseStream,
   4205         ULONGLONG *pullOffsetConvertedStream) = 0;
   4206 
   4207 };
   4208 #ifdef __CRT_UUID_DECL
   4209 __CRT_UUID_DECL(ISpStreamFormatConverter, 0x678a932c, 0xea71, 0x4446, 0x9b,0x41, 0x78,0xfd,0xa6,0x28,0x0a,0x29)
   4210 #endif
   4211 #else
   4212 typedef struct ISpStreamFormatConverterVtbl {
   4213     BEGIN_INTERFACE
   4214 
   4215     /*** IUnknown methods ***/
   4216     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4217         ISpStreamFormatConverter *This,
   4218         REFIID riid,
   4219         void **ppvObject);
   4220 
   4221     ULONG (STDMETHODCALLTYPE *AddRef)(
   4222         ISpStreamFormatConverter *This);
   4223 
   4224     ULONG (STDMETHODCALLTYPE *Release)(
   4225         ISpStreamFormatConverter *This);
   4226 
   4227     /*** ISequentialStream methods ***/
   4228     HRESULT (STDMETHODCALLTYPE *Read)(
   4229         ISpStreamFormatConverter *This,
   4230         void *pv,
   4231         ULONG cb,
   4232         ULONG *pcbRead);
   4233 
   4234     HRESULT (STDMETHODCALLTYPE *Write)(
   4235         ISpStreamFormatConverter *This,
   4236         const void *pv,
   4237         ULONG cb,
   4238         ULONG *pcbWritten);
   4239 
   4240     /*** IStream methods ***/
   4241     HRESULT (STDMETHODCALLTYPE *Seek)(
   4242         ISpStreamFormatConverter *This,
   4243         LARGE_INTEGER dlibMove,
   4244         DWORD dwOrigin,
   4245         ULARGE_INTEGER *plibNewPosition);
   4246 
   4247     HRESULT (STDMETHODCALLTYPE *SetSize)(
   4248         ISpStreamFormatConverter *This,
   4249         ULARGE_INTEGER libNewSize);
   4250 
   4251     HRESULT (STDMETHODCALLTYPE *CopyTo)(
   4252         ISpStreamFormatConverter *This,
   4253         IStream *pstm,
   4254         ULARGE_INTEGER cb,
   4255         ULARGE_INTEGER *pcbRead,
   4256         ULARGE_INTEGER *pcbWritten);
   4257 
   4258     HRESULT (STDMETHODCALLTYPE *Commit)(
   4259         ISpStreamFormatConverter *This,
   4260         DWORD grfCommitFlags);
   4261 
   4262     HRESULT (STDMETHODCALLTYPE *Revert)(
   4263         ISpStreamFormatConverter *This);
   4264 
   4265     HRESULT (STDMETHODCALLTYPE *LockRegion)(
   4266         ISpStreamFormatConverter *This,
   4267         ULARGE_INTEGER libOffset,
   4268         ULARGE_INTEGER cb,
   4269         DWORD dwLockType);
   4270 
   4271     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
   4272         ISpStreamFormatConverter *This,
   4273         ULARGE_INTEGER libOffset,
   4274         ULARGE_INTEGER cb,
   4275         DWORD dwLockType);
   4276 
   4277     HRESULT (STDMETHODCALLTYPE *Stat)(
   4278         ISpStreamFormatConverter *This,
   4279         STATSTG *pstatstg,
   4280         DWORD grfStatFlag);
   4281 
   4282     HRESULT (STDMETHODCALLTYPE *Clone)(
   4283         ISpStreamFormatConverter *This,
   4284         IStream **ppstm);
   4285 
   4286     /*** ISpStreamFormat methods ***/
   4287     HRESULT (STDMETHODCALLTYPE *GetFormat)(
   4288         ISpStreamFormatConverter *This,
   4289         GUID *pguidFormatId,
   4290         WAVEFORMATEX **ppCoMemWaveFormatEx);
   4291 
   4292     /*** ISpStreamFormatConverter methods ***/
   4293     HRESULT (STDMETHODCALLTYPE *SetBaseStream)(
   4294         ISpStreamFormatConverter *This,
   4295         ISpStreamFormat *pStream,
   4296         WINBOOL fSetFormatToBaseStreamFormat,
   4297         WINBOOL fWriteToBaseStream);
   4298 
   4299     HRESULT (STDMETHODCALLTYPE *GetBaseStream)(
   4300         ISpStreamFormatConverter *This,
   4301         ISpStreamFormat **ppStream);
   4302 
   4303     HRESULT (STDMETHODCALLTYPE *SetFormat)(
   4304         ISpStreamFormatConverter *This,
   4305         REFGUID rguidFormatIdOfConvertedStream,
   4306         const WAVEFORMATEX *pWaveFormatExOfConvertedStream);
   4307 
   4308     HRESULT (STDMETHODCALLTYPE *ResetSeekPosition)(
   4309         ISpStreamFormatConverter *This);
   4310 
   4311     HRESULT (STDMETHODCALLTYPE *ScaleConvertedToBaseOffset)(
   4312         ISpStreamFormatConverter *This,
   4313         ULONGLONG ullOffsetConvertedStream,
   4314         ULONGLONG *pullOffsetBaseStream);
   4315 
   4316     HRESULT (STDMETHODCALLTYPE *ScaleBaseToConvertedOffset)(
   4317         ISpStreamFormatConverter *This,
   4318         ULONGLONG ullOffsetBaseStream,
   4319         ULONGLONG *pullOffsetConvertedStream);
   4320 
   4321     END_INTERFACE
   4322 } ISpStreamFormatConverterVtbl;
   4323 
   4324 interface ISpStreamFormatConverter {
   4325     CONST_VTBL ISpStreamFormatConverterVtbl* lpVtbl;
   4326 };
   4327 
   4328 #ifdef COBJMACROS
   4329 #ifndef WIDL_C_INLINE_WRAPPERS
   4330 /*** IUnknown methods ***/
   4331 #define ISpStreamFormatConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4332 #define ISpStreamFormatConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
   4333 #define ISpStreamFormatConverter_Release(This) (This)->lpVtbl->Release(This)
   4334 /*** ISequentialStream methods ***/
   4335 #define ISpStreamFormatConverter_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
   4336 #define ISpStreamFormatConverter_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
   4337 /*** IStream methods ***/
   4338 #define ISpStreamFormatConverter_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
   4339 #define ISpStreamFormatConverter_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
   4340 #define ISpStreamFormatConverter_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
   4341 #define ISpStreamFormatConverter_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
   4342 #define ISpStreamFormatConverter_Revert(This) (This)->lpVtbl->Revert(This)
   4343 #define ISpStreamFormatConverter_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
   4344 #define ISpStreamFormatConverter_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
   4345 #define ISpStreamFormatConverter_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
   4346 #define ISpStreamFormatConverter_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
   4347 /*** ISpStreamFormat methods ***/
   4348 #define ISpStreamFormatConverter_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
   4349 /*** ISpStreamFormatConverter methods ***/
   4350 #define ISpStreamFormatConverter_SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream) (This)->lpVtbl->SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream)
   4351 #define ISpStreamFormatConverter_GetBaseStream(This,ppStream) (This)->lpVtbl->GetBaseStream(This,ppStream)
   4352 #define ISpStreamFormatConverter_SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream) (This)->lpVtbl->SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream)
   4353 #define ISpStreamFormatConverter_ResetSeekPosition(This) (This)->lpVtbl->ResetSeekPosition(This)
   4354 #define ISpStreamFormatConverter_ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream) (This)->lpVtbl->ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream)
   4355 #define ISpStreamFormatConverter_ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream) (This)->lpVtbl->ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream)
   4356 #else
   4357 /*** IUnknown methods ***/
   4358 static inline HRESULT ISpStreamFormatConverter_QueryInterface(ISpStreamFormatConverter* This,REFIID riid,void **ppvObject) {
   4359     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4360 }
   4361 static inline ULONG ISpStreamFormatConverter_AddRef(ISpStreamFormatConverter* This) {
   4362     return This->lpVtbl->AddRef(This);
   4363 }
   4364 static inline ULONG ISpStreamFormatConverter_Release(ISpStreamFormatConverter* This) {
   4365     return This->lpVtbl->Release(This);
   4366 }
   4367 /*** ISequentialStream methods ***/
   4368 static inline HRESULT ISpStreamFormatConverter_Read(ISpStreamFormatConverter* This,void *pv,ULONG cb,ULONG *pcbRead) {
   4369     return This->lpVtbl->Read(This,pv,cb,pcbRead);
   4370 }
   4371 static inline HRESULT ISpStreamFormatConverter_Write(ISpStreamFormatConverter* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
   4372     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
   4373 }
   4374 /*** IStream methods ***/
   4375 static inline HRESULT ISpStreamFormatConverter_Seek(ISpStreamFormatConverter* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
   4376     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
   4377 }
   4378 static inline HRESULT ISpStreamFormatConverter_SetSize(ISpStreamFormatConverter* This,ULARGE_INTEGER libNewSize) {
   4379     return This->lpVtbl->SetSize(This,libNewSize);
   4380 }
   4381 static inline HRESULT ISpStreamFormatConverter_CopyTo(ISpStreamFormatConverter* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
   4382     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
   4383 }
   4384 static inline HRESULT ISpStreamFormatConverter_Commit(ISpStreamFormatConverter* This,DWORD grfCommitFlags) {
   4385     return This->lpVtbl->Commit(This,grfCommitFlags);
   4386 }
   4387 static inline HRESULT ISpStreamFormatConverter_Revert(ISpStreamFormatConverter* This) {
   4388     return This->lpVtbl->Revert(This);
   4389 }
   4390 static inline HRESULT ISpStreamFormatConverter_LockRegion(ISpStreamFormatConverter* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   4391     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
   4392 }
   4393 static inline HRESULT ISpStreamFormatConverter_UnlockRegion(ISpStreamFormatConverter* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   4394     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
   4395 }
   4396 static inline HRESULT ISpStreamFormatConverter_Stat(ISpStreamFormatConverter* This,STATSTG *pstatstg,DWORD grfStatFlag) {
   4397     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
   4398 }
   4399 static inline HRESULT ISpStreamFormatConverter_Clone(ISpStreamFormatConverter* This,IStream **ppstm) {
   4400     return This->lpVtbl->Clone(This,ppstm);
   4401 }
   4402 /*** ISpStreamFormat methods ***/
   4403 static inline HRESULT ISpStreamFormatConverter_GetFormat(ISpStreamFormatConverter* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
   4404     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
   4405 }
   4406 /*** ISpStreamFormatConverter methods ***/
   4407 static inline HRESULT ISpStreamFormatConverter_SetBaseStream(ISpStreamFormatConverter* This,ISpStreamFormat *pStream,WINBOOL fSetFormatToBaseStreamFormat,WINBOOL fWriteToBaseStream) {
   4408     return This->lpVtbl->SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream);
   4409 }
   4410 static inline HRESULT ISpStreamFormatConverter_GetBaseStream(ISpStreamFormatConverter* This,ISpStreamFormat **ppStream) {
   4411     return This->lpVtbl->GetBaseStream(This,ppStream);
   4412 }
   4413 static inline HRESULT ISpStreamFormatConverter_SetFormat(ISpStreamFormatConverter* This,REFGUID rguidFormatIdOfConvertedStream,const WAVEFORMATEX *pWaveFormatExOfConvertedStream) {
   4414     return This->lpVtbl->SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream);
   4415 }
   4416 static inline HRESULT ISpStreamFormatConverter_ResetSeekPosition(ISpStreamFormatConverter* This) {
   4417     return This->lpVtbl->ResetSeekPosition(This);
   4418 }
   4419 static inline HRESULT ISpStreamFormatConverter_ScaleConvertedToBaseOffset(ISpStreamFormatConverter* This,ULONGLONG ullOffsetConvertedStream,ULONGLONG *pullOffsetBaseStream) {
   4420     return This->lpVtbl->ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream);
   4421 }
   4422 static inline HRESULT ISpStreamFormatConverter_ScaleBaseToConvertedOffset(ISpStreamFormatConverter* This,ULONGLONG ullOffsetBaseStream,ULONGLONG *pullOffsetConvertedStream) {
   4423     return This->lpVtbl->ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream);
   4424 }
   4425 #endif
   4426 #endif
   4427 
   4428 #endif
   4429 
   4430 
   4431 #endif  /* __ISpStreamFormatConverter_INTERFACE_DEFINED__ */
   4432 
   4433 typedef struct SPAUDIOSTATUS {
   4434     LONG cbFreeBuffSpace;
   4435     ULONG cbNonBlockingIO;
   4436     SPAUDIOSTATE State;
   4437     ULONGLONG CurSeekPos;
   4438     ULONGLONG CurDevicePos;
   4439     DWORD dwAudioLevel;
   4440     DWORD dwReserved2;
   4441 } SPAUDIOSTATUS;
   4442 typedef struct SPAUDIOBUFFERINFO {
   4443     ULONG ulMsMinNotification;
   4444     ULONG ulMsBufferSize;
   4445     ULONG ulMsEventBias;
   4446 } SPAUDIOBUFFERINFO;
   4447 /*****************************************************************************
   4448  * ISpAudio interface
   4449  */
   4450 #ifndef __ISpAudio_INTERFACE_DEFINED__
   4451 #define __ISpAudio_INTERFACE_DEFINED__
   4452 
   4453 DEFINE_GUID(IID_ISpAudio, 0xc05c768f, 0xfae8, 0x4ec2, 0x8e,0x07, 0x33,0x83,0x21,0xc1,0x24,0x52);
   4454 #if defined(__cplusplus) && !defined(CINTERFACE)
   4455 MIDL_INTERFACE("c05c768f-fae8-4ec2-8e07-338321c12452")
   4456 ISpAudio : public ISpStreamFormat
   4457 {
   4458     virtual HRESULT STDMETHODCALLTYPE SetState(
   4459         SPAUDIOSTATE NewState,
   4460         ULONGLONG ullReserved) = 0;
   4461 
   4462     virtual HRESULT STDMETHODCALLTYPE SetFormat(
   4463         REFGUID rguidFmtId,
   4464         const WAVEFORMATEX *pWaveFormatEx) = 0;
   4465 
   4466     virtual HRESULT STDMETHODCALLTYPE GetStatus(
   4467         SPAUDIOSTATUS *pStatus) = 0;
   4468 
   4469     virtual HRESULT STDMETHODCALLTYPE SetBufferInfo(
   4470         const SPAUDIOBUFFERINFO *pBuffInfo) = 0;
   4471 
   4472     virtual HRESULT STDMETHODCALLTYPE GetBufferInfo(
   4473         SPAUDIOBUFFERINFO *pBuffInfo) = 0;
   4474 
   4475     virtual HRESULT STDMETHODCALLTYPE GetDefaultFormat(
   4476         GUID *pFormatId,
   4477         WAVEFORMATEX **ppCoMemWaveFormatEx) = 0;
   4478 
   4479     virtual HANDLE STDMETHODCALLTYPE EventHandle(
   4480         ) = 0;
   4481 
   4482     virtual HRESULT STDMETHODCALLTYPE GetVolumeLevel(
   4483         ULONG *pLevel) = 0;
   4484 
   4485     virtual HRESULT STDMETHODCALLTYPE SetVolumeLevel(
   4486         ULONG Level) = 0;
   4487 
   4488     virtual HRESULT STDMETHODCALLTYPE GetBufferNotifySize(
   4489         ULONG *pcbSize) = 0;
   4490 
   4491     virtual HRESULT STDMETHODCALLTYPE SetBufferNotifySize(
   4492         ULONG cbSize) = 0;
   4493 
   4494 };
   4495 #ifdef __CRT_UUID_DECL
   4496 __CRT_UUID_DECL(ISpAudio, 0xc05c768f, 0xfae8, 0x4ec2, 0x8e,0x07, 0x33,0x83,0x21,0xc1,0x24,0x52)
   4497 #endif
   4498 #else
   4499 typedef struct ISpAudioVtbl {
   4500     BEGIN_INTERFACE
   4501 
   4502     /*** IUnknown methods ***/
   4503     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4504         ISpAudio *This,
   4505         REFIID riid,
   4506         void **ppvObject);
   4507 
   4508     ULONG (STDMETHODCALLTYPE *AddRef)(
   4509         ISpAudio *This);
   4510 
   4511     ULONG (STDMETHODCALLTYPE *Release)(
   4512         ISpAudio *This);
   4513 
   4514     /*** ISequentialStream methods ***/
   4515     HRESULT (STDMETHODCALLTYPE *Read)(
   4516         ISpAudio *This,
   4517         void *pv,
   4518         ULONG cb,
   4519         ULONG *pcbRead);
   4520 
   4521     HRESULT (STDMETHODCALLTYPE *Write)(
   4522         ISpAudio *This,
   4523         const void *pv,
   4524         ULONG cb,
   4525         ULONG *pcbWritten);
   4526 
   4527     /*** IStream methods ***/
   4528     HRESULT (STDMETHODCALLTYPE *Seek)(
   4529         ISpAudio *This,
   4530         LARGE_INTEGER dlibMove,
   4531         DWORD dwOrigin,
   4532         ULARGE_INTEGER *plibNewPosition);
   4533 
   4534     HRESULT (STDMETHODCALLTYPE *SetSize)(
   4535         ISpAudio *This,
   4536         ULARGE_INTEGER libNewSize);
   4537 
   4538     HRESULT (STDMETHODCALLTYPE *CopyTo)(
   4539         ISpAudio *This,
   4540         IStream *pstm,
   4541         ULARGE_INTEGER cb,
   4542         ULARGE_INTEGER *pcbRead,
   4543         ULARGE_INTEGER *pcbWritten);
   4544 
   4545     HRESULT (STDMETHODCALLTYPE *Commit)(
   4546         ISpAudio *This,
   4547         DWORD grfCommitFlags);
   4548 
   4549     HRESULT (STDMETHODCALLTYPE *Revert)(
   4550         ISpAudio *This);
   4551 
   4552     HRESULT (STDMETHODCALLTYPE *LockRegion)(
   4553         ISpAudio *This,
   4554         ULARGE_INTEGER libOffset,
   4555         ULARGE_INTEGER cb,
   4556         DWORD dwLockType);
   4557 
   4558     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
   4559         ISpAudio *This,
   4560         ULARGE_INTEGER libOffset,
   4561         ULARGE_INTEGER cb,
   4562         DWORD dwLockType);
   4563 
   4564     HRESULT (STDMETHODCALLTYPE *Stat)(
   4565         ISpAudio *This,
   4566         STATSTG *pstatstg,
   4567         DWORD grfStatFlag);
   4568 
   4569     HRESULT (STDMETHODCALLTYPE *Clone)(
   4570         ISpAudio *This,
   4571         IStream **ppstm);
   4572 
   4573     /*** ISpStreamFormat methods ***/
   4574     HRESULT (STDMETHODCALLTYPE *GetFormat)(
   4575         ISpAudio *This,
   4576         GUID *pguidFormatId,
   4577         WAVEFORMATEX **ppCoMemWaveFormatEx);
   4578 
   4579     /*** ISpAudio methods ***/
   4580     HRESULT (STDMETHODCALLTYPE *SetState)(
   4581         ISpAudio *This,
   4582         SPAUDIOSTATE NewState,
   4583         ULONGLONG ullReserved);
   4584 
   4585     HRESULT (STDMETHODCALLTYPE *SetFormat)(
   4586         ISpAudio *This,
   4587         REFGUID rguidFmtId,
   4588         const WAVEFORMATEX *pWaveFormatEx);
   4589 
   4590     HRESULT (STDMETHODCALLTYPE *GetStatus)(
   4591         ISpAudio *This,
   4592         SPAUDIOSTATUS *pStatus);
   4593 
   4594     HRESULT (STDMETHODCALLTYPE *SetBufferInfo)(
   4595         ISpAudio *This,
   4596         const SPAUDIOBUFFERINFO *pBuffInfo);
   4597 
   4598     HRESULT (STDMETHODCALLTYPE *GetBufferInfo)(
   4599         ISpAudio *This,
   4600         SPAUDIOBUFFERINFO *pBuffInfo);
   4601 
   4602     HRESULT (STDMETHODCALLTYPE *GetDefaultFormat)(
   4603         ISpAudio *This,
   4604         GUID *pFormatId,
   4605         WAVEFORMATEX **ppCoMemWaveFormatEx);
   4606 
   4607     HANDLE (STDMETHODCALLTYPE *EventHandle)(
   4608         ISpAudio *This);
   4609 
   4610     HRESULT (STDMETHODCALLTYPE *GetVolumeLevel)(
   4611         ISpAudio *This,
   4612         ULONG *pLevel);
   4613 
   4614     HRESULT (STDMETHODCALLTYPE *SetVolumeLevel)(
   4615         ISpAudio *This,
   4616         ULONG Level);
   4617 
   4618     HRESULT (STDMETHODCALLTYPE *GetBufferNotifySize)(
   4619         ISpAudio *This,
   4620         ULONG *pcbSize);
   4621 
   4622     HRESULT (STDMETHODCALLTYPE *SetBufferNotifySize)(
   4623         ISpAudio *This,
   4624         ULONG cbSize);
   4625 
   4626     END_INTERFACE
   4627 } ISpAudioVtbl;
   4628 
   4629 interface ISpAudio {
   4630     CONST_VTBL ISpAudioVtbl* lpVtbl;
   4631 };
   4632 
   4633 #ifdef COBJMACROS
   4634 #ifndef WIDL_C_INLINE_WRAPPERS
   4635 /*** IUnknown methods ***/
   4636 #define ISpAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4637 #define ISpAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
   4638 #define ISpAudio_Release(This) (This)->lpVtbl->Release(This)
   4639 /*** ISequentialStream methods ***/
   4640 #define ISpAudio_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
   4641 #define ISpAudio_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
   4642 /*** IStream methods ***/
   4643 #define ISpAudio_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
   4644 #define ISpAudio_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
   4645 #define ISpAudio_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
   4646 #define ISpAudio_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
   4647 #define ISpAudio_Revert(This) (This)->lpVtbl->Revert(This)
   4648 #define ISpAudio_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
   4649 #define ISpAudio_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
   4650 #define ISpAudio_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
   4651 #define ISpAudio_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
   4652 /*** ISpStreamFormat methods ***/
   4653 #define ISpAudio_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
   4654 /*** ISpAudio methods ***/
   4655 #define ISpAudio_SetState(This,NewState,ullReserved) (This)->lpVtbl->SetState(This,NewState,ullReserved)
   4656 #define ISpAudio_SetFormat(This,rguidFmtId,pWaveFormatEx) (This)->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx)
   4657 #define ISpAudio_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
   4658 #define ISpAudio_SetBufferInfo(This,pBuffInfo) (This)->lpVtbl->SetBufferInfo(This,pBuffInfo)
   4659 #define ISpAudio_GetBufferInfo(This,pBuffInfo) (This)->lpVtbl->GetBufferInfo(This,pBuffInfo)
   4660 #define ISpAudio_GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx)
   4661 #define ISpAudio_EventHandle(This) (This)->lpVtbl->EventHandle(This)
   4662 #define ISpAudio_GetVolumeLevel(This,pLevel) (This)->lpVtbl->GetVolumeLevel(This,pLevel)
   4663 #define ISpAudio_SetVolumeLevel(This,Level) (This)->lpVtbl->SetVolumeLevel(This,Level)
   4664 #define ISpAudio_GetBufferNotifySize(This,pcbSize) (This)->lpVtbl->GetBufferNotifySize(This,pcbSize)
   4665 #define ISpAudio_SetBufferNotifySize(This,cbSize) (This)->lpVtbl->SetBufferNotifySize(This,cbSize)
   4666 #else
   4667 /*** IUnknown methods ***/
   4668 static inline HRESULT ISpAudio_QueryInterface(ISpAudio* This,REFIID riid,void **ppvObject) {
   4669     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4670 }
   4671 static inline ULONG ISpAudio_AddRef(ISpAudio* This) {
   4672     return This->lpVtbl->AddRef(This);
   4673 }
   4674 static inline ULONG ISpAudio_Release(ISpAudio* This) {
   4675     return This->lpVtbl->Release(This);
   4676 }
   4677 /*** ISequentialStream methods ***/
   4678 static inline HRESULT ISpAudio_Read(ISpAudio* This,void *pv,ULONG cb,ULONG *pcbRead) {
   4679     return This->lpVtbl->Read(This,pv,cb,pcbRead);
   4680 }
   4681 static inline HRESULT ISpAudio_Write(ISpAudio* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
   4682     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
   4683 }
   4684 /*** IStream methods ***/
   4685 static inline HRESULT ISpAudio_Seek(ISpAudio* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
   4686     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
   4687 }
   4688 static inline HRESULT ISpAudio_SetSize(ISpAudio* This,ULARGE_INTEGER libNewSize) {
   4689     return This->lpVtbl->SetSize(This,libNewSize);
   4690 }
   4691 static inline HRESULT ISpAudio_CopyTo(ISpAudio* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
   4692     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
   4693 }
   4694 static inline HRESULT ISpAudio_Commit(ISpAudio* This,DWORD grfCommitFlags) {
   4695     return This->lpVtbl->Commit(This,grfCommitFlags);
   4696 }
   4697 static inline HRESULT ISpAudio_Revert(ISpAudio* This) {
   4698     return This->lpVtbl->Revert(This);
   4699 }
   4700 static inline HRESULT ISpAudio_LockRegion(ISpAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   4701     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
   4702 }
   4703 static inline HRESULT ISpAudio_UnlockRegion(ISpAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   4704     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
   4705 }
   4706 static inline HRESULT ISpAudio_Stat(ISpAudio* This,STATSTG *pstatstg,DWORD grfStatFlag) {
   4707     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
   4708 }
   4709 static inline HRESULT ISpAudio_Clone(ISpAudio* This,IStream **ppstm) {
   4710     return This->lpVtbl->Clone(This,ppstm);
   4711 }
   4712 /*** ISpStreamFormat methods ***/
   4713 static inline HRESULT ISpAudio_GetFormat(ISpAudio* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
   4714     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
   4715 }
   4716 /*** ISpAudio methods ***/
   4717 static inline HRESULT ISpAudio_SetState(ISpAudio* This,SPAUDIOSTATE NewState,ULONGLONG ullReserved) {
   4718     return This->lpVtbl->SetState(This,NewState,ullReserved);
   4719 }
   4720 static inline HRESULT ISpAudio_SetFormat(ISpAudio* This,REFGUID rguidFmtId,const WAVEFORMATEX *pWaveFormatEx) {
   4721     return This->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx);
   4722 }
   4723 static inline HRESULT ISpAudio_GetStatus(ISpAudio* This,SPAUDIOSTATUS *pStatus) {
   4724     return This->lpVtbl->GetStatus(This,pStatus);
   4725 }
   4726 static inline HRESULT ISpAudio_SetBufferInfo(ISpAudio* This,const SPAUDIOBUFFERINFO *pBuffInfo) {
   4727     return This->lpVtbl->SetBufferInfo(This,pBuffInfo);
   4728 }
   4729 static inline HRESULT ISpAudio_GetBufferInfo(ISpAudio* This,SPAUDIOBUFFERINFO *pBuffInfo) {
   4730     return This->lpVtbl->GetBufferInfo(This,pBuffInfo);
   4731 }
   4732 static inline HRESULT ISpAudio_GetDefaultFormat(ISpAudio* This,GUID *pFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
   4733     return This->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx);
   4734 }
   4735 static inline HANDLE ISpAudio_EventHandle(ISpAudio* This) {
   4736     return This->lpVtbl->EventHandle(This);
   4737 }
   4738 static inline HRESULT ISpAudio_GetVolumeLevel(ISpAudio* This,ULONG *pLevel) {
   4739     return This->lpVtbl->GetVolumeLevel(This,pLevel);
   4740 }
   4741 static inline HRESULT ISpAudio_SetVolumeLevel(ISpAudio* This,ULONG Level) {
   4742     return This->lpVtbl->SetVolumeLevel(This,Level);
   4743 }
   4744 static inline HRESULT ISpAudio_GetBufferNotifySize(ISpAudio* This,ULONG *pcbSize) {
   4745     return This->lpVtbl->GetBufferNotifySize(This,pcbSize);
   4746 }
   4747 static inline HRESULT ISpAudio_SetBufferNotifySize(ISpAudio* This,ULONG cbSize) {
   4748     return This->lpVtbl->SetBufferNotifySize(This,cbSize);
   4749 }
   4750 #endif
   4751 #endif
   4752 
   4753 #endif
   4754 
   4755 
   4756 #endif  /* __ISpAudio_INTERFACE_DEFINED__ */
   4757 
   4758 /*****************************************************************************
   4759  * ISpMMSysAudio interface
   4760  */
   4761 #ifndef __ISpMMSysAudio_INTERFACE_DEFINED__
   4762 #define __ISpMMSysAudio_INTERFACE_DEFINED__
   4763 
   4764 DEFINE_GUID(IID_ISpMMSysAudio, 0x15806f6e, 0x1d70, 0x4b48, 0x98,0xe6, 0x3b,0x1a,0x00,0x75,0x09,0xab);
   4765 #if defined(__cplusplus) && !defined(CINTERFACE)
   4766 MIDL_INTERFACE("15806f6e-1d70-4b48-98e6-3b1a007509ab")
   4767 ISpMMSysAudio : public ISpAudio
   4768 {
   4769     virtual HRESULT STDMETHODCALLTYPE GetDeviceId(
   4770         UINT *puDeviceId) = 0;
   4771 
   4772     virtual HRESULT STDMETHODCALLTYPE SetDeviceId(
   4773         UINT uDeviceId) = 0;
   4774 
   4775     virtual HRESULT STDMETHODCALLTYPE GetMMHandle(
   4776         void **pHandle) = 0;
   4777 
   4778     virtual HRESULT STDMETHODCALLTYPE GetLineId(
   4779         UINT *puLineId) = 0;
   4780 
   4781     virtual HRESULT STDMETHODCALLTYPE SetLineId(
   4782         UINT uLineId) = 0;
   4783 
   4784 };
   4785 #ifdef __CRT_UUID_DECL
   4786 __CRT_UUID_DECL(ISpMMSysAudio, 0x15806f6e, 0x1d70, 0x4b48, 0x98,0xe6, 0x3b,0x1a,0x00,0x75,0x09,0xab)
   4787 #endif
   4788 #else
   4789 typedef struct ISpMMSysAudioVtbl {
   4790     BEGIN_INTERFACE
   4791 
   4792     /*** IUnknown methods ***/
   4793     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4794         ISpMMSysAudio *This,
   4795         REFIID riid,
   4796         void **ppvObject);
   4797 
   4798     ULONG (STDMETHODCALLTYPE *AddRef)(
   4799         ISpMMSysAudio *This);
   4800 
   4801     ULONG (STDMETHODCALLTYPE *Release)(
   4802         ISpMMSysAudio *This);
   4803 
   4804     /*** ISequentialStream methods ***/
   4805     HRESULT (STDMETHODCALLTYPE *Read)(
   4806         ISpMMSysAudio *This,
   4807         void *pv,
   4808         ULONG cb,
   4809         ULONG *pcbRead);
   4810 
   4811     HRESULT (STDMETHODCALLTYPE *Write)(
   4812         ISpMMSysAudio *This,
   4813         const void *pv,
   4814         ULONG cb,
   4815         ULONG *pcbWritten);
   4816 
   4817     /*** IStream methods ***/
   4818     HRESULT (STDMETHODCALLTYPE *Seek)(
   4819         ISpMMSysAudio *This,
   4820         LARGE_INTEGER dlibMove,
   4821         DWORD dwOrigin,
   4822         ULARGE_INTEGER *plibNewPosition);
   4823 
   4824     HRESULT (STDMETHODCALLTYPE *SetSize)(
   4825         ISpMMSysAudio *This,
   4826         ULARGE_INTEGER libNewSize);
   4827 
   4828     HRESULT (STDMETHODCALLTYPE *CopyTo)(
   4829         ISpMMSysAudio *This,
   4830         IStream *pstm,
   4831         ULARGE_INTEGER cb,
   4832         ULARGE_INTEGER *pcbRead,
   4833         ULARGE_INTEGER *pcbWritten);
   4834 
   4835     HRESULT (STDMETHODCALLTYPE *Commit)(
   4836         ISpMMSysAudio *This,
   4837         DWORD grfCommitFlags);
   4838 
   4839     HRESULT (STDMETHODCALLTYPE *Revert)(
   4840         ISpMMSysAudio *This);
   4841 
   4842     HRESULT (STDMETHODCALLTYPE *LockRegion)(
   4843         ISpMMSysAudio *This,
   4844         ULARGE_INTEGER libOffset,
   4845         ULARGE_INTEGER cb,
   4846         DWORD dwLockType);
   4847 
   4848     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
   4849         ISpMMSysAudio *This,
   4850         ULARGE_INTEGER libOffset,
   4851         ULARGE_INTEGER cb,
   4852         DWORD dwLockType);
   4853 
   4854     HRESULT (STDMETHODCALLTYPE *Stat)(
   4855         ISpMMSysAudio *This,
   4856         STATSTG *pstatstg,
   4857         DWORD grfStatFlag);
   4858 
   4859     HRESULT (STDMETHODCALLTYPE *Clone)(
   4860         ISpMMSysAudio *This,
   4861         IStream **ppstm);
   4862 
   4863     /*** ISpStreamFormat methods ***/
   4864     HRESULT (STDMETHODCALLTYPE *GetFormat)(
   4865         ISpMMSysAudio *This,
   4866         GUID *pguidFormatId,
   4867         WAVEFORMATEX **ppCoMemWaveFormatEx);
   4868 
   4869     /*** ISpAudio methods ***/
   4870     HRESULT (STDMETHODCALLTYPE *SetState)(
   4871         ISpMMSysAudio *This,
   4872         SPAUDIOSTATE NewState,
   4873         ULONGLONG ullReserved);
   4874 
   4875     HRESULT (STDMETHODCALLTYPE *SetFormat)(
   4876         ISpMMSysAudio *This,
   4877         REFGUID rguidFmtId,
   4878         const WAVEFORMATEX *pWaveFormatEx);
   4879 
   4880     HRESULT (STDMETHODCALLTYPE *GetStatus)(
   4881         ISpMMSysAudio *This,
   4882         SPAUDIOSTATUS *pStatus);
   4883 
   4884     HRESULT (STDMETHODCALLTYPE *SetBufferInfo)(
   4885         ISpMMSysAudio *This,
   4886         const SPAUDIOBUFFERINFO *pBuffInfo);
   4887 
   4888     HRESULT (STDMETHODCALLTYPE *GetBufferInfo)(
   4889         ISpMMSysAudio *This,
   4890         SPAUDIOBUFFERINFO *pBuffInfo);
   4891 
   4892     HRESULT (STDMETHODCALLTYPE *GetDefaultFormat)(
   4893         ISpMMSysAudio *This,
   4894         GUID *pFormatId,
   4895         WAVEFORMATEX **ppCoMemWaveFormatEx);
   4896 
   4897     HANDLE (STDMETHODCALLTYPE *EventHandle)(
   4898         ISpMMSysAudio *This);
   4899 
   4900     HRESULT (STDMETHODCALLTYPE *GetVolumeLevel)(
   4901         ISpMMSysAudio *This,
   4902         ULONG *pLevel);
   4903 
   4904     HRESULT (STDMETHODCALLTYPE *SetVolumeLevel)(
   4905         ISpMMSysAudio *This,
   4906         ULONG Level);
   4907 
   4908     HRESULT (STDMETHODCALLTYPE *GetBufferNotifySize)(
   4909         ISpMMSysAudio *This,
   4910         ULONG *pcbSize);
   4911 
   4912     HRESULT (STDMETHODCALLTYPE *SetBufferNotifySize)(
   4913         ISpMMSysAudio *This,
   4914         ULONG cbSize);
   4915 
   4916     /*** ISpMMSysAudio methods ***/
   4917     HRESULT (STDMETHODCALLTYPE *GetDeviceId)(
   4918         ISpMMSysAudio *This,
   4919         UINT *puDeviceId);
   4920 
   4921     HRESULT (STDMETHODCALLTYPE *SetDeviceId)(
   4922         ISpMMSysAudio *This,
   4923         UINT uDeviceId);
   4924 
   4925     HRESULT (STDMETHODCALLTYPE *GetMMHandle)(
   4926         ISpMMSysAudio *This,
   4927         void **pHandle);
   4928 
   4929     HRESULT (STDMETHODCALLTYPE *GetLineId)(
   4930         ISpMMSysAudio *This,
   4931         UINT *puLineId);
   4932 
   4933     HRESULT (STDMETHODCALLTYPE *SetLineId)(
   4934         ISpMMSysAudio *This,
   4935         UINT uLineId);
   4936 
   4937     END_INTERFACE
   4938 } ISpMMSysAudioVtbl;
   4939 
   4940 interface ISpMMSysAudio {
   4941     CONST_VTBL ISpMMSysAudioVtbl* lpVtbl;
   4942 };
   4943 
   4944 #ifdef COBJMACROS
   4945 #ifndef WIDL_C_INLINE_WRAPPERS
   4946 /*** IUnknown methods ***/
   4947 #define ISpMMSysAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4948 #define ISpMMSysAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
   4949 #define ISpMMSysAudio_Release(This) (This)->lpVtbl->Release(This)
   4950 /*** ISequentialStream methods ***/
   4951 #define ISpMMSysAudio_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
   4952 #define ISpMMSysAudio_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
   4953 /*** IStream methods ***/
   4954 #define ISpMMSysAudio_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
   4955 #define ISpMMSysAudio_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
   4956 #define ISpMMSysAudio_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
   4957 #define ISpMMSysAudio_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
   4958 #define ISpMMSysAudio_Revert(This) (This)->lpVtbl->Revert(This)
   4959 #define ISpMMSysAudio_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
   4960 #define ISpMMSysAudio_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
   4961 #define ISpMMSysAudio_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
   4962 #define ISpMMSysAudio_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
   4963 /*** ISpStreamFormat methods ***/
   4964 #define ISpMMSysAudio_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
   4965 /*** ISpAudio methods ***/
   4966 #define ISpMMSysAudio_SetState(This,NewState,ullReserved) (This)->lpVtbl->SetState(This,NewState,ullReserved)
   4967 #define ISpMMSysAudio_SetFormat(This,rguidFmtId,pWaveFormatEx) (This)->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx)
   4968 #define ISpMMSysAudio_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
   4969 #define ISpMMSysAudio_SetBufferInfo(This,pBuffInfo) (This)->lpVtbl->SetBufferInfo(This,pBuffInfo)
   4970 #define ISpMMSysAudio_GetBufferInfo(This,pBuffInfo) (This)->lpVtbl->GetBufferInfo(This,pBuffInfo)
   4971 #define ISpMMSysAudio_GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx)
   4972 #define ISpMMSysAudio_EventHandle(This) (This)->lpVtbl->EventHandle(This)
   4973 #define ISpMMSysAudio_GetVolumeLevel(This,pLevel) (This)->lpVtbl->GetVolumeLevel(This,pLevel)
   4974 #define ISpMMSysAudio_SetVolumeLevel(This,Level) (This)->lpVtbl->SetVolumeLevel(This,Level)
   4975 #define ISpMMSysAudio_GetBufferNotifySize(This,pcbSize) (This)->lpVtbl->GetBufferNotifySize(This,pcbSize)
   4976 #define ISpMMSysAudio_SetBufferNotifySize(This,cbSize) (This)->lpVtbl->SetBufferNotifySize(This,cbSize)
   4977 /*** ISpMMSysAudio methods ***/
   4978 #define ISpMMSysAudio_GetDeviceId(This,puDeviceId) (This)->lpVtbl->GetDeviceId(This,puDeviceId)
   4979 #define ISpMMSysAudio_SetDeviceId(This,uDeviceId) (This)->lpVtbl->SetDeviceId(This,uDeviceId)
   4980 #define ISpMMSysAudio_GetMMHandle(This,pHandle) (This)->lpVtbl->GetMMHandle(This,pHandle)
   4981 #define ISpMMSysAudio_GetLineId(This,puLineId) (This)->lpVtbl->GetLineId(This,puLineId)
   4982 #define ISpMMSysAudio_SetLineId(This,uLineId) (This)->lpVtbl->SetLineId(This,uLineId)
   4983 #else
   4984 /*** IUnknown methods ***/
   4985 static inline HRESULT ISpMMSysAudio_QueryInterface(ISpMMSysAudio* This,REFIID riid,void **ppvObject) {
   4986     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4987 }
   4988 static inline ULONG ISpMMSysAudio_AddRef(ISpMMSysAudio* This) {
   4989     return This->lpVtbl->AddRef(This);
   4990 }
   4991 static inline ULONG ISpMMSysAudio_Release(ISpMMSysAudio* This) {
   4992     return This->lpVtbl->Release(This);
   4993 }
   4994 /*** ISequentialStream methods ***/
   4995 static inline HRESULT ISpMMSysAudio_Read(ISpMMSysAudio* This,void *pv,ULONG cb,ULONG *pcbRead) {
   4996     return This->lpVtbl->Read(This,pv,cb,pcbRead);
   4997 }
   4998 static inline HRESULT ISpMMSysAudio_Write(ISpMMSysAudio* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
   4999     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
   5000 }
   5001 /*** IStream methods ***/
   5002 static inline HRESULT ISpMMSysAudio_Seek(ISpMMSysAudio* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
   5003     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
   5004 }
   5005 static inline HRESULT ISpMMSysAudio_SetSize(ISpMMSysAudio* This,ULARGE_INTEGER libNewSize) {
   5006     return This->lpVtbl->SetSize(This,libNewSize);
   5007 }
   5008 static inline HRESULT ISpMMSysAudio_CopyTo(ISpMMSysAudio* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
   5009     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
   5010 }
   5011 static inline HRESULT ISpMMSysAudio_Commit(ISpMMSysAudio* This,DWORD grfCommitFlags) {
   5012     return This->lpVtbl->Commit(This,grfCommitFlags);
   5013 }
   5014 static inline HRESULT ISpMMSysAudio_Revert(ISpMMSysAudio* This) {
   5015     return This->lpVtbl->Revert(This);
   5016 }
   5017 static inline HRESULT ISpMMSysAudio_LockRegion(ISpMMSysAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   5018     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
   5019 }
   5020 static inline HRESULT ISpMMSysAudio_UnlockRegion(ISpMMSysAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   5021     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
   5022 }
   5023 static inline HRESULT ISpMMSysAudio_Stat(ISpMMSysAudio* This,STATSTG *pstatstg,DWORD grfStatFlag) {
   5024     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
   5025 }
   5026 static inline HRESULT ISpMMSysAudio_Clone(ISpMMSysAudio* This,IStream **ppstm) {
   5027     return This->lpVtbl->Clone(This,ppstm);
   5028 }
   5029 /*** ISpStreamFormat methods ***/
   5030 static inline HRESULT ISpMMSysAudio_GetFormat(ISpMMSysAudio* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
   5031     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
   5032 }
   5033 /*** ISpAudio methods ***/
   5034 static inline HRESULT ISpMMSysAudio_SetState(ISpMMSysAudio* This,SPAUDIOSTATE NewState,ULONGLONG ullReserved) {
   5035     return This->lpVtbl->SetState(This,NewState,ullReserved);
   5036 }
   5037 static inline HRESULT ISpMMSysAudio_SetFormat(ISpMMSysAudio* This,REFGUID rguidFmtId,const WAVEFORMATEX *pWaveFormatEx) {
   5038     return This->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx);
   5039 }
   5040 static inline HRESULT ISpMMSysAudio_GetStatus(ISpMMSysAudio* This,SPAUDIOSTATUS *pStatus) {
   5041     return This->lpVtbl->GetStatus(This,pStatus);
   5042 }
   5043 static inline HRESULT ISpMMSysAudio_SetBufferInfo(ISpMMSysAudio* This,const SPAUDIOBUFFERINFO *pBuffInfo) {
   5044     return This->lpVtbl->SetBufferInfo(This,pBuffInfo);
   5045 }
   5046 static inline HRESULT ISpMMSysAudio_GetBufferInfo(ISpMMSysAudio* This,SPAUDIOBUFFERINFO *pBuffInfo) {
   5047     return This->lpVtbl->GetBufferInfo(This,pBuffInfo);
   5048 }
   5049 static inline HRESULT ISpMMSysAudio_GetDefaultFormat(ISpMMSysAudio* This,GUID *pFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
   5050     return This->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx);
   5051 }
   5052 static inline HANDLE ISpMMSysAudio_EventHandle(ISpMMSysAudio* This) {
   5053     return This->lpVtbl->EventHandle(This);
   5054 }
   5055 static inline HRESULT ISpMMSysAudio_GetVolumeLevel(ISpMMSysAudio* This,ULONG *pLevel) {
   5056     return This->lpVtbl->GetVolumeLevel(This,pLevel);
   5057 }
   5058 static inline HRESULT ISpMMSysAudio_SetVolumeLevel(ISpMMSysAudio* This,ULONG Level) {
   5059     return This->lpVtbl->SetVolumeLevel(This,Level);
   5060 }
   5061 static inline HRESULT ISpMMSysAudio_GetBufferNotifySize(ISpMMSysAudio* This,ULONG *pcbSize) {
   5062     return This->lpVtbl->GetBufferNotifySize(This,pcbSize);
   5063 }
   5064 static inline HRESULT ISpMMSysAudio_SetBufferNotifySize(ISpMMSysAudio* This,ULONG cbSize) {
   5065     return This->lpVtbl->SetBufferNotifySize(This,cbSize);
   5066 }
   5067 /*** ISpMMSysAudio methods ***/
   5068 static inline HRESULT ISpMMSysAudio_GetDeviceId(ISpMMSysAudio* This,UINT *puDeviceId) {
   5069     return This->lpVtbl->GetDeviceId(This,puDeviceId);
   5070 }
   5071 static inline HRESULT ISpMMSysAudio_SetDeviceId(ISpMMSysAudio* This,UINT uDeviceId) {
   5072     return This->lpVtbl->SetDeviceId(This,uDeviceId);
   5073 }
   5074 static inline HRESULT ISpMMSysAudio_GetMMHandle(ISpMMSysAudio* This,void **pHandle) {
   5075     return This->lpVtbl->GetMMHandle(This,pHandle);
   5076 }
   5077 static inline HRESULT ISpMMSysAudio_GetLineId(ISpMMSysAudio* This,UINT *puLineId) {
   5078     return This->lpVtbl->GetLineId(This,puLineId);
   5079 }
   5080 static inline HRESULT ISpMMSysAudio_SetLineId(ISpMMSysAudio* This,UINT uLineId) {
   5081     return This->lpVtbl->SetLineId(This,uLineId);
   5082 }
   5083 #endif
   5084 #endif
   5085 
   5086 #endif
   5087 
   5088 
   5089 #endif  /* __ISpMMSysAudio_INTERFACE_DEFINED__ */
   5090 
   5091 /*****************************************************************************
   5092  * ISpTranscript interface
   5093  */
   5094 #ifndef __ISpTranscript_INTERFACE_DEFINED__
   5095 #define __ISpTranscript_INTERFACE_DEFINED__
   5096 
   5097 DEFINE_GUID(IID_ISpTranscript, 0x10f63bce, 0x201a, 0x11d3, 0xac,0x70, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
   5098 #if defined(__cplusplus) && !defined(CINTERFACE)
   5099 MIDL_INTERFACE("10f63bce-201a-11d3-ac70-00c04f8ee6c0")
   5100 ISpTranscript : public IUnknown
   5101 {
   5102     virtual HRESULT STDMETHODCALLTYPE GetTranscript(
   5103         LPWSTR *ppszTranscript) = 0;
   5104 
   5105     virtual HRESULT STDMETHODCALLTYPE AppendTranscript(
   5106         LPCWSTR pszTranscript) = 0;
   5107 
   5108 };
   5109 #ifdef __CRT_UUID_DECL
   5110 __CRT_UUID_DECL(ISpTranscript, 0x10f63bce, 0x201a, 0x11d3, 0xac,0x70, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
   5111 #endif
   5112 #else
   5113 typedef struct ISpTranscriptVtbl {
   5114     BEGIN_INTERFACE
   5115 
   5116     /*** IUnknown methods ***/
   5117     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5118         ISpTranscript *This,
   5119         REFIID riid,
   5120         void **ppvObject);
   5121 
   5122     ULONG (STDMETHODCALLTYPE *AddRef)(
   5123         ISpTranscript *This);
   5124 
   5125     ULONG (STDMETHODCALLTYPE *Release)(
   5126         ISpTranscript *This);
   5127 
   5128     /*** ISpTranscript methods ***/
   5129     HRESULT (STDMETHODCALLTYPE *GetTranscript)(
   5130         ISpTranscript *This,
   5131         LPWSTR *ppszTranscript);
   5132 
   5133     HRESULT (STDMETHODCALLTYPE *AppendTranscript)(
   5134         ISpTranscript *This,
   5135         LPCWSTR pszTranscript);
   5136 
   5137     END_INTERFACE
   5138 } ISpTranscriptVtbl;
   5139 
   5140 interface ISpTranscript {
   5141     CONST_VTBL ISpTranscriptVtbl* lpVtbl;
   5142 };
   5143 
   5144 #ifdef COBJMACROS
   5145 #ifndef WIDL_C_INLINE_WRAPPERS
   5146 /*** IUnknown methods ***/
   5147 #define ISpTranscript_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5148 #define ISpTranscript_AddRef(This) (This)->lpVtbl->AddRef(This)
   5149 #define ISpTranscript_Release(This) (This)->lpVtbl->Release(This)
   5150 /*** ISpTranscript methods ***/
   5151 #define ISpTranscript_GetTranscript(This,ppszTranscript) (This)->lpVtbl->GetTranscript(This,ppszTranscript)
   5152 #define ISpTranscript_AppendTranscript(This,pszTranscript) (This)->lpVtbl->AppendTranscript(This,pszTranscript)
   5153 #else
   5154 /*** IUnknown methods ***/
   5155 static inline HRESULT ISpTranscript_QueryInterface(ISpTranscript* This,REFIID riid,void **ppvObject) {
   5156     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5157 }
   5158 static inline ULONG ISpTranscript_AddRef(ISpTranscript* This) {
   5159     return This->lpVtbl->AddRef(This);
   5160 }
   5161 static inline ULONG ISpTranscript_Release(ISpTranscript* This) {
   5162     return This->lpVtbl->Release(This);
   5163 }
   5164 /*** ISpTranscript methods ***/
   5165 static inline HRESULT ISpTranscript_GetTranscript(ISpTranscript* This,LPWSTR *ppszTranscript) {
   5166     return This->lpVtbl->GetTranscript(This,ppszTranscript);
   5167 }
   5168 static inline HRESULT ISpTranscript_AppendTranscript(ISpTranscript* This,LPCWSTR pszTranscript) {
   5169     return This->lpVtbl->AppendTranscript(This,pszTranscript);
   5170 }
   5171 #endif
   5172 #endif
   5173 
   5174 #endif
   5175 
   5176 
   5177 #endif  /* __ISpTranscript_INTERFACE_DEFINED__ */
   5178 
   5179 typedef WCHAR SPPHONEID;
   5180 typedef LPWSTR PSPPHONEID;
   5181 typedef LPCWSTR PCSPPHONEID;
   5182 typedef struct SPPHRASEELEMENT {
   5183     ULONG ulAudioTimeOffset;
   5184     ULONG ulAudioSizeTime;
   5185     ULONG ulAudioStreamOffset;
   5186     ULONG ulAudioSizeBytes;
   5187     ULONG ulRetainedStreamOffset;
   5188     ULONG ulRetainedSizeBytes;
   5189     LPCWSTR pszDisplayText;
   5190     LPCWSTR pszLexicalForm;
   5191     const SPPHONEID *pszPronunciation;
   5192     BYTE bDisplayAttributes;
   5193     signed char RequiredConfidence;
   5194     signed char ActualConfidence;
   5195     BYTE Reserved;
   5196     float SREngineConfidence;
   5197 } SPPHRASEELEMENT;
   5198 typedef struct SPPHRASERULE SPPHRASERULE;
   5199 typedef struct SPPHRASEPROPERTY SPPHRASEPROPERTY;
   5200 struct SPPHRASERULE {
   5201     LPCWSTR pszName;
   5202     ULONG ulId;
   5203     ULONG ulFirstElement;
   5204     ULONG ulCountOfElements;
   5205     const SPPHRASERULE *pNextSibling;
   5206     const SPPHRASERULE *pFirstChild;
   5207     float SREngineConfidence;
   5208     signed char Confidence;
   5209 };
   5210 struct SPPHRASEPROPERTY {
   5211     LPCWSTR pszName;
   5212     __C89_NAMELESS union {
   5213         ULONG ulId;
   5214         __C89_NAMELESS struct {
   5215             byte bType;
   5216             byte bReserved;
   5217             unsigned short usArrayIndex;
   5218         } __C89_NAMELESSSTRUCTNAME;
   5219     } __C89_NAMELESSUNIONNAME;
   5220     LPCWSTR pszValue;
   5221     VARIANT vValue;
   5222     ULONG ulFirstElement;
   5223     ULONG ulCountOfElements;
   5224     const SPPHRASEPROPERTY *pNextSibling;
   5225     const SPPHRASEPROPERTY *pFirstChild;
   5226     float SREngineConfidence;
   5227     signed char Confidence;
   5228 };
   5229 typedef struct SPPHRASEREPLACEMENT {
   5230     BYTE bDisplayAttributes;
   5231     LPCWSTR pszReplacementText;
   5232     ULONG ulFirstElement;
   5233     ULONG ulCountOfElements;
   5234 } SPPHRASEREPLACEMENT;
   5235 typedef struct SPPHRASE {
   5236     ULONG cbSize;
   5237     WORD LangID;
   5238     WORD wHomophoneGroupId;
   5239     ULONGLONG ullGrammarID;
   5240     ULONGLONG ftStartTime;
   5241     ULONGLONG ullAudioStreamPosition;
   5242     ULONG ulAudioSizeBytes;
   5243     ULONG ulRetainedSizeBytes;
   5244     ULONG ulAudioSizeTime;
   5245     SPPHRASERULE Rule;
   5246     const SPPHRASEPROPERTY *pProperties;
   5247     const SPPHRASEELEMENT *pElements;
   5248     ULONG cReplacements;
   5249     const SPPHRASEREPLACEMENT *pReplacements;
   5250     GUID SREngineID;
   5251     ULONG ulSREnginePrivateDataSize;
   5252     const BYTE *pSREnginePrivateData;
   5253 } SPPHRASE;
   5254 typedef struct SPSERIALIZEDPHRASE {
   5255     ULONG ulSerializedSize;
   5256 } SPSERIALIZEDPHRASE;
   5257 typedef struct SPBINARYGRAMMAR {
   5258     ULONG ulTotalSerializedSize;
   5259 } SPBINARYGRAMMAR;
   5260 #if 0
   5261 typedef void *SPSTATEHANDLE;
   5262 #else
   5263 DECLARE_HANDLE(SPSTATEHANDLE);
   5264 #endif
   5265 typedef struct SPWORDPRONUNCIATION {
   5266     struct SPWORDPRONUNCIATION *pNextWordPronunciation;
   5267     SPLEXICONTYPE eLexiconType;
   5268     WORD LangID;
   5269     WORD wPronunciationFlags;
   5270     SPPARTOFSPEECH ePartOfSpeech;
   5271     SPPHONEID szPronunciation[1];
   5272 } SPWORDPRONUNCIATION;
   5273 typedef struct SPWORDPRONUNCIATIONLIST {
   5274     ULONG ulSize;
   5275     BYTE *pvBuffer;
   5276     SPWORDPRONUNCIATION *pFirstWordPronunciation;
   5277 } SPWORDPRONUNCIATIONLIST;
   5278 typedef struct SPWORD {
   5279     struct SPWORD *pNextWord;
   5280     WORD LangID;
   5281     WORD wReserved;
   5282     SPWORDTYPE eWordType;
   5283     LPWSTR pszWord;
   5284     SPWORDPRONUNCIATION *pFirstWordPronunciation;
   5285 } SPWORD;
   5286 typedef struct SPWORDLIST {
   5287     ULONG ulSize;
   5288     BYTE *pvBuffer;
   5289     SPWORD *pFirstWord;
   5290 } SPWORDLIST;
   5291 /*****************************************************************************
   5292  * ISpLexicon interface
   5293  */
   5294 #ifndef __ISpLexicon_INTERFACE_DEFINED__
   5295 #define __ISpLexicon_INTERFACE_DEFINED__
   5296 
   5297 DEFINE_GUID(IID_ISpLexicon, 0xda41a7c2, 0x5383, 0x4db2, 0x91,0x6b, 0x6c,0x17,0x19,0xe3,0xdb,0x58);
   5298 #if defined(__cplusplus) && !defined(CINTERFACE)
   5299 MIDL_INTERFACE("da41a7c2-5383-4db2-916b-6c1719e3db58")
   5300 ISpLexicon : public IUnknown
   5301 {
   5302     virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
   5303         LPCWSTR pszWord,
   5304         WORD LangID,
   5305         DWORD dwFlags,
   5306         SPWORDPRONUNCIATIONLIST *pWordPronunciationList) = 0;
   5307 
   5308     virtual HRESULT STDMETHODCALLTYPE AddPronunciation(
   5309         LPCWSTR pszWord,
   5310         WORD LangID,
   5311         SPPARTOFSPEECH ePartOfSpeech,
   5312         PCSPPHONEID pszPronunciation) = 0;
   5313 
   5314     virtual HRESULT STDMETHODCALLTYPE RemovePronunciation(
   5315         LPCWSTR pszWord,
   5316         WORD LangID,
   5317         SPPARTOFSPEECH ePartOfSpeech,
   5318         PCSPPHONEID pszPronunciation) = 0;
   5319 
   5320     virtual HRESULT STDMETHODCALLTYPE GetGeneration(
   5321         DWORD *pdwGeneration) = 0;
   5322 
   5323     virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
   5324         DWORD dwFlags,
   5325         DWORD *pdwGeneration,
   5326         SPWORDLIST *pWordList) = 0;
   5327 
   5328     virtual HRESULT STDMETHODCALLTYPE GetWords(
   5329         DWORD dwFlags,
   5330         DWORD *pdwGeneration,
   5331         DWORD *pdwCookie,
   5332         SPWORDLIST *pWordList) = 0;
   5333 
   5334 };
   5335 #ifdef __CRT_UUID_DECL
   5336 __CRT_UUID_DECL(ISpLexicon, 0xda41a7c2, 0x5383, 0x4db2, 0x91,0x6b, 0x6c,0x17,0x19,0xe3,0xdb,0x58)
   5337 #endif
   5338 #else
   5339 typedef struct ISpLexiconVtbl {
   5340     BEGIN_INTERFACE
   5341 
   5342     /*** IUnknown methods ***/
   5343     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5344         ISpLexicon *This,
   5345         REFIID riid,
   5346         void **ppvObject);
   5347 
   5348     ULONG (STDMETHODCALLTYPE *AddRef)(
   5349         ISpLexicon *This);
   5350 
   5351     ULONG (STDMETHODCALLTYPE *Release)(
   5352         ISpLexicon *This);
   5353 
   5354     /*** ISpLexicon methods ***/
   5355     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
   5356         ISpLexicon *This,
   5357         LPCWSTR pszWord,
   5358         WORD LangID,
   5359         DWORD dwFlags,
   5360         SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
   5361 
   5362     HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
   5363         ISpLexicon *This,
   5364         LPCWSTR pszWord,
   5365         WORD LangID,
   5366         SPPARTOFSPEECH ePartOfSpeech,
   5367         PCSPPHONEID pszPronunciation);
   5368 
   5369     HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
   5370         ISpLexicon *This,
   5371         LPCWSTR pszWord,
   5372         WORD LangID,
   5373         SPPARTOFSPEECH ePartOfSpeech,
   5374         PCSPPHONEID pszPronunciation);
   5375 
   5376     HRESULT (STDMETHODCALLTYPE *GetGeneration)(
   5377         ISpLexicon *This,
   5378         DWORD *pdwGeneration);
   5379 
   5380     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
   5381         ISpLexicon *This,
   5382         DWORD dwFlags,
   5383         DWORD *pdwGeneration,
   5384         SPWORDLIST *pWordList);
   5385 
   5386     HRESULT (STDMETHODCALLTYPE *GetWords)(
   5387         ISpLexicon *This,
   5388         DWORD dwFlags,
   5389         DWORD *pdwGeneration,
   5390         DWORD *pdwCookie,
   5391         SPWORDLIST *pWordList);
   5392 
   5393     END_INTERFACE
   5394 } ISpLexiconVtbl;
   5395 
   5396 interface ISpLexicon {
   5397     CONST_VTBL ISpLexiconVtbl* lpVtbl;
   5398 };
   5399 
   5400 #ifdef COBJMACROS
   5401 #ifndef WIDL_C_INLINE_WRAPPERS
   5402 /*** IUnknown methods ***/
   5403 #define ISpLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5404 #define ISpLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
   5405 #define ISpLexicon_Release(This) (This)->lpVtbl->Release(This)
   5406 /*** ISpLexicon methods ***/
   5407 #define ISpLexicon_GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList)
   5408 #define ISpLexicon_AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
   5409 #define ISpLexicon_RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
   5410 #define ISpLexicon_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
   5411 #define ISpLexicon_GetGenerationChange(This,dwFlags,pdwGeneration,pWordList) (This)->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList)
   5412 #define ISpLexicon_GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList)
   5413 #else
   5414 /*** IUnknown methods ***/
   5415 static inline HRESULT ISpLexicon_QueryInterface(ISpLexicon* This,REFIID riid,void **ppvObject) {
   5416     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5417 }
   5418 static inline ULONG ISpLexicon_AddRef(ISpLexicon* This) {
   5419     return This->lpVtbl->AddRef(This);
   5420 }
   5421 static inline ULONG ISpLexicon_Release(ISpLexicon* This) {
   5422     return This->lpVtbl->Release(This);
   5423 }
   5424 /*** ISpLexicon methods ***/
   5425 static inline HRESULT ISpLexicon_GetPronunciations(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,DWORD dwFlags,SPWORDPRONUNCIATIONLIST *pWordPronunciationList) {
   5426     return This->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList);
   5427 }
   5428 static inline HRESULT ISpLexicon_AddPronunciation(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
   5429     return This->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
   5430 }
   5431 static inline HRESULT ISpLexicon_RemovePronunciation(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
   5432     return This->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
   5433 }
   5434 static inline HRESULT ISpLexicon_GetGeneration(ISpLexicon* This,DWORD *pdwGeneration) {
   5435     return This->lpVtbl->GetGeneration(This,pdwGeneration);
   5436 }
   5437 static inline HRESULT ISpLexicon_GetGenerationChange(ISpLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
   5438     return This->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList);
   5439 }
   5440 static inline HRESULT ISpLexicon_GetWords(ISpLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
   5441     return This->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList);
   5442 }
   5443 #endif
   5444 #endif
   5445 
   5446 #endif
   5447 
   5448 
   5449 #endif  /* __ISpLexicon_INTERFACE_DEFINED__ */
   5450 
   5451 /*****************************************************************************
   5452  * ISpContainerLexicon interface
   5453  */
   5454 #ifndef __ISpContainerLexicon_INTERFACE_DEFINED__
   5455 #define __ISpContainerLexicon_INTERFACE_DEFINED__
   5456 
   5457 DEFINE_GUID(IID_ISpContainerLexicon, 0x8565572f, 0xc094, 0x41cc, 0xb5,0x6e, 0x10,0xbd,0x9c,0x3f,0xf0,0x44);
   5458 #if defined(__cplusplus) && !defined(CINTERFACE)
   5459 MIDL_INTERFACE("8565572f-c094-41cc-b56e-10bd9c3ff044")
   5460 ISpContainerLexicon : public ISpLexicon
   5461 {
   5462     virtual HRESULT STDMETHODCALLTYPE AddLexicon(
   5463         ISpLexicon *pAddLexicon,
   5464         DWORD dwFlags) = 0;
   5465 
   5466 };
   5467 #ifdef __CRT_UUID_DECL
   5468 __CRT_UUID_DECL(ISpContainerLexicon, 0x8565572f, 0xc094, 0x41cc, 0xb5,0x6e, 0x10,0xbd,0x9c,0x3f,0xf0,0x44)
   5469 #endif
   5470 #else
   5471 typedef struct ISpContainerLexiconVtbl {
   5472     BEGIN_INTERFACE
   5473 
   5474     /*** IUnknown methods ***/
   5475     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5476         ISpContainerLexicon *This,
   5477         REFIID riid,
   5478         void **ppvObject);
   5479 
   5480     ULONG (STDMETHODCALLTYPE *AddRef)(
   5481         ISpContainerLexicon *This);
   5482 
   5483     ULONG (STDMETHODCALLTYPE *Release)(
   5484         ISpContainerLexicon *This);
   5485 
   5486     /*** ISpLexicon methods ***/
   5487     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
   5488         ISpContainerLexicon *This,
   5489         LPCWSTR pszWord,
   5490         WORD LangID,
   5491         DWORD dwFlags,
   5492         SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
   5493 
   5494     HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
   5495         ISpContainerLexicon *This,
   5496         LPCWSTR pszWord,
   5497         WORD LangID,
   5498         SPPARTOFSPEECH ePartOfSpeech,
   5499         PCSPPHONEID pszPronunciation);
   5500 
   5501     HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
   5502         ISpContainerLexicon *This,
   5503         LPCWSTR pszWord,
   5504         WORD LangID,
   5505         SPPARTOFSPEECH ePartOfSpeech,
   5506         PCSPPHONEID pszPronunciation);
   5507 
   5508     HRESULT (STDMETHODCALLTYPE *GetGeneration)(
   5509         ISpContainerLexicon *This,
   5510         DWORD *pdwGeneration);
   5511 
   5512     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
   5513         ISpContainerLexicon *This,
   5514         DWORD dwFlags,
   5515         DWORD *pdwGeneration,
   5516         SPWORDLIST *pWordList);
   5517 
   5518     HRESULT (STDMETHODCALLTYPE *GetWords)(
   5519         ISpContainerLexicon *This,
   5520         DWORD dwFlags,
   5521         DWORD *pdwGeneration,
   5522         DWORD *pdwCookie,
   5523         SPWORDLIST *pWordList);
   5524 
   5525     /*** ISpContainerLexicon methods ***/
   5526     HRESULT (STDMETHODCALLTYPE *AddLexicon)(
   5527         ISpContainerLexicon *This,
   5528         ISpLexicon *pAddLexicon,
   5529         DWORD dwFlags);
   5530 
   5531     END_INTERFACE
   5532 } ISpContainerLexiconVtbl;
   5533 
   5534 interface ISpContainerLexicon {
   5535     CONST_VTBL ISpContainerLexiconVtbl* lpVtbl;
   5536 };
   5537 
   5538 #ifdef COBJMACROS
   5539 #ifndef WIDL_C_INLINE_WRAPPERS
   5540 /*** IUnknown methods ***/
   5541 #define ISpContainerLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5542 #define ISpContainerLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
   5543 #define ISpContainerLexicon_Release(This) (This)->lpVtbl->Release(This)
   5544 /*** ISpLexicon methods ***/
   5545 #define ISpContainerLexicon_GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList)
   5546 #define ISpContainerLexicon_AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
   5547 #define ISpContainerLexicon_RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
   5548 #define ISpContainerLexicon_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
   5549 #define ISpContainerLexicon_GetGenerationChange(This,dwFlags,pdwGeneration,pWordList) (This)->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList)
   5550 #define ISpContainerLexicon_GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList)
   5551 /*** ISpContainerLexicon methods ***/
   5552 #define ISpContainerLexicon_AddLexicon(This,pAddLexicon,dwFlags) (This)->lpVtbl->AddLexicon(This,pAddLexicon,dwFlags)
   5553 #else
   5554 /*** IUnknown methods ***/
   5555 static inline HRESULT ISpContainerLexicon_QueryInterface(ISpContainerLexicon* This,REFIID riid,void **ppvObject) {
   5556     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5557 }
   5558 static inline ULONG ISpContainerLexicon_AddRef(ISpContainerLexicon* This) {
   5559     return This->lpVtbl->AddRef(This);
   5560 }
   5561 static inline ULONG ISpContainerLexicon_Release(ISpContainerLexicon* This) {
   5562     return This->lpVtbl->Release(This);
   5563 }
   5564 /*** ISpLexicon methods ***/
   5565 static inline HRESULT ISpContainerLexicon_GetPronunciations(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,DWORD dwFlags,SPWORDPRONUNCIATIONLIST *pWordPronunciationList) {
   5566     return This->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList);
   5567 }
   5568 static inline HRESULT ISpContainerLexicon_AddPronunciation(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
   5569     return This->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
   5570 }
   5571 static inline HRESULT ISpContainerLexicon_RemovePronunciation(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
   5572     return This->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
   5573 }
   5574 static inline HRESULT ISpContainerLexicon_GetGeneration(ISpContainerLexicon* This,DWORD *pdwGeneration) {
   5575     return This->lpVtbl->GetGeneration(This,pdwGeneration);
   5576 }
   5577 static inline HRESULT ISpContainerLexicon_GetGenerationChange(ISpContainerLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
   5578     return This->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList);
   5579 }
   5580 static inline HRESULT ISpContainerLexicon_GetWords(ISpContainerLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
   5581     return This->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList);
   5582 }
   5583 /*** ISpContainerLexicon methods ***/
   5584 static inline HRESULT ISpContainerLexicon_AddLexicon(ISpContainerLexicon* This,ISpLexicon *pAddLexicon,DWORD dwFlags) {
   5585     return This->lpVtbl->AddLexicon(This,pAddLexicon,dwFlags);
   5586 }
   5587 #endif
   5588 #endif
   5589 
   5590 #endif
   5591 
   5592 
   5593 #endif  /* __ISpContainerLexicon_INTERFACE_DEFINED__ */
   5594 
   5595 /*****************************************************************************
   5596  * ISpPhoneConverter interface
   5597  */
   5598 #ifndef __ISpPhoneConverter_INTERFACE_DEFINED__
   5599 #define __ISpPhoneConverter_INTERFACE_DEFINED__
   5600 
   5601 DEFINE_GUID(IID_ISpPhoneConverter, 0x8445c581, 0x0cac, 0x4a38, 0xab,0xfe, 0x9b,0x2c,0xe2,0x82,0x64,0x55);
   5602 #if defined(__cplusplus) && !defined(CINTERFACE)
   5603 MIDL_INTERFACE("8445c581-0cac-4a38-abfe-9b2ce2826455")
   5604 ISpPhoneConverter : public ISpObjectWithToken
   5605 {
   5606     virtual HRESULT STDMETHODCALLTYPE PhoneToId(
   5607         LPCWSTR pszPhone,
   5608         SPPHONEID *pId) = 0;
   5609 
   5610     virtual HRESULT STDMETHODCALLTYPE IdToPhone(
   5611         PCSPPHONEID pId,
   5612         WCHAR *pszPhone) = 0;
   5613 
   5614 };
   5615 #ifdef __CRT_UUID_DECL
   5616 __CRT_UUID_DECL(ISpPhoneConverter, 0x8445c581, 0x0cac, 0x4a38, 0xab,0xfe, 0x9b,0x2c,0xe2,0x82,0x64,0x55)
   5617 #endif
   5618 #else
   5619 typedef struct ISpPhoneConverterVtbl {
   5620     BEGIN_INTERFACE
   5621 
   5622     /*** IUnknown methods ***/
   5623     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5624         ISpPhoneConverter *This,
   5625         REFIID riid,
   5626         void **ppvObject);
   5627 
   5628     ULONG (STDMETHODCALLTYPE *AddRef)(
   5629         ISpPhoneConverter *This);
   5630 
   5631     ULONG (STDMETHODCALLTYPE *Release)(
   5632         ISpPhoneConverter *This);
   5633 
   5634     /*** ISpObjectWithToken methods ***/
   5635     HRESULT (STDMETHODCALLTYPE *SetObjectToken)(
   5636         ISpPhoneConverter *This,
   5637         ISpObjectToken *pToken);
   5638 
   5639     HRESULT (STDMETHODCALLTYPE *GetObjectToken)(
   5640         ISpPhoneConverter *This,
   5641         ISpObjectToken **ppToken);
   5642 
   5643     /*** ISpPhoneConverter methods ***/
   5644     HRESULT (STDMETHODCALLTYPE *PhoneToId)(
   5645         ISpPhoneConverter *This,
   5646         LPCWSTR pszPhone,
   5647         SPPHONEID *pId);
   5648 
   5649     HRESULT (STDMETHODCALLTYPE *IdToPhone)(
   5650         ISpPhoneConverter *This,
   5651         PCSPPHONEID pId,
   5652         WCHAR *pszPhone);
   5653 
   5654     END_INTERFACE
   5655 } ISpPhoneConverterVtbl;
   5656 
   5657 interface ISpPhoneConverter {
   5658     CONST_VTBL ISpPhoneConverterVtbl* lpVtbl;
   5659 };
   5660 
   5661 #ifdef COBJMACROS
   5662 #ifndef WIDL_C_INLINE_WRAPPERS
   5663 /*** IUnknown methods ***/
   5664 #define ISpPhoneConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5665 #define ISpPhoneConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
   5666 #define ISpPhoneConverter_Release(This) (This)->lpVtbl->Release(This)
   5667 /*** ISpObjectWithToken methods ***/
   5668 #define ISpPhoneConverter_SetObjectToken(This,pToken) (This)->lpVtbl->SetObjectToken(This,pToken)
   5669 #define ISpPhoneConverter_GetObjectToken(This,ppToken) (This)->lpVtbl->GetObjectToken(This,ppToken)
   5670 /*** ISpPhoneConverter methods ***/
   5671 #define ISpPhoneConverter_PhoneToId(This,pszPhone,pId) (This)->lpVtbl->PhoneToId(This,pszPhone,pId)
   5672 #define ISpPhoneConverter_IdToPhone(This,pId,pszPhone) (This)->lpVtbl->IdToPhone(This,pId,pszPhone)
   5673 #else
   5674 /*** IUnknown methods ***/
   5675 static inline HRESULT ISpPhoneConverter_QueryInterface(ISpPhoneConverter* This,REFIID riid,void **ppvObject) {
   5676     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5677 }
   5678 static inline ULONG ISpPhoneConverter_AddRef(ISpPhoneConverter* This) {
   5679     return This->lpVtbl->AddRef(This);
   5680 }
   5681 static inline ULONG ISpPhoneConverter_Release(ISpPhoneConverter* This) {
   5682     return This->lpVtbl->Release(This);
   5683 }
   5684 /*** ISpObjectWithToken methods ***/
   5685 static inline HRESULT ISpPhoneConverter_SetObjectToken(ISpPhoneConverter* This,ISpObjectToken *pToken) {
   5686     return This->lpVtbl->SetObjectToken(This,pToken);
   5687 }
   5688 static inline HRESULT ISpPhoneConverter_GetObjectToken(ISpPhoneConverter* This,ISpObjectToken **ppToken) {
   5689     return This->lpVtbl->GetObjectToken(This,ppToken);
   5690 }
   5691 /*** ISpPhoneConverter methods ***/
   5692 static inline HRESULT ISpPhoneConverter_PhoneToId(ISpPhoneConverter* This,LPCWSTR pszPhone,SPPHONEID *pId) {
   5693     return This->lpVtbl->PhoneToId(This,pszPhone,pId);
   5694 }
   5695 static inline HRESULT ISpPhoneConverter_IdToPhone(ISpPhoneConverter* This,PCSPPHONEID pId,WCHAR *pszPhone) {
   5696     return This->lpVtbl->IdToPhone(This,pId,pszPhone);
   5697 }
   5698 #endif
   5699 #endif
   5700 
   5701 #endif
   5702 
   5703 
   5704 #endif  /* __ISpPhoneConverter_INTERFACE_DEFINED__ */
   5705 
   5706 typedef struct SPVPITCH {
   5707     LONG MiddleAdj;
   5708     LONG RangeAdj;
   5709 } SPVPITCH;
   5710 typedef struct SPVCONTEXT {
   5711     LPCWSTR pCategory;
   5712     LPCWSTR pBefore;
   5713     LPCWSTR pAfter;
   5714 } SPVCONTEXT;
   5715 typedef struct SPVSTATE {
   5716     SPVACTIONS eAction;
   5717     WORD LangID;
   5718     WORD wReserved;
   5719     LONG EmphAdj;
   5720     LONG RateAdj;
   5721     ULONG Volume;
   5722     SPVPITCH PitchAdj;
   5723     ULONG SilenceMSecs;
   5724     SPPHONEID *pPhoneIds;
   5725     SPPARTOFSPEECH ePartOfSpeech;
   5726     SPVCONTEXT Context;
   5727 } SPVSTATE;
   5728 typedef struct SPVOICESTATUS {
   5729     ULONG ulCurrentStream;
   5730     ULONG ulLastStreamQueued;
   5731     HRESULT hrLastResult;
   5732     DWORD dwRunningState;
   5733     ULONG ulInputWordPos;
   5734     ULONG ulInputWordLen;
   5735     ULONG ulInputSentPos;
   5736     ULONG ulInputSentLen;
   5737     LONG lBookmarkId;
   5738     SPPHONEID PhonemeId;
   5739     SPVISEMES VisemeId;
   5740     DWORD dwReserved1;
   5741     DWORD dwReserved2;
   5742 } SPVOICESTATUS;
   5743 typedef enum SPEAKFLAGS {
   5744     SPF_DEFAULT = 0,
   5745     SPF_ASYNC = 1,
   5746     SPF_PURGEBEFORESPEAK = 2,
   5747     SPF_IS_FILENAME = 4,
   5748     SPF_IS_XML = 8,
   5749     SPF_IS_NOT_XML = 0x10,
   5750     SPF_PERSIST_XML = 0x20,
   5751     SPF_NLP_SPEAK_PUNC = 0x40,
   5752     SPF_NLP_MASK = SPF_NLP_SPEAK_PUNC,
   5753     SPF_VOICE_MASK = (((((SPF_ASYNC | SPF_PURGEBEFORESPEAK) | SPF_IS_FILENAME) | SPF_IS_XML) | SPF_IS_NOT_XML) | SPF_NLP_MASK) | SPF_PERSIST_XML,
   5754     SPF_UNUSED_FLAGS = ~SPF_VOICE_MASK
   5755 } SPEAKFLAGS;
   5756 /*****************************************************************************
   5757  * ISpVoice interface
   5758  */
   5759 #ifndef __ISpVoice_INTERFACE_DEFINED__
   5760 #define __ISpVoice_INTERFACE_DEFINED__
   5761 
   5762 DEFINE_GUID(IID_ISpVoice, 0x6c44df74, 0x72b9, 0x4992, 0xa1,0xec, 0xef,0x99,0x6e,0x04,0x22,0xd4);
   5763 #if defined(__cplusplus) && !defined(CINTERFACE)
   5764 MIDL_INTERFACE("6c44df74-72b9-4992-a1ec-ef996e0422d4")
   5765 ISpVoice : public ISpEventSource
   5766 {
   5767     virtual HRESULT STDMETHODCALLTYPE SetOutput(
   5768         IUnknown *pUnkOutput,
   5769         WINBOOL fAllowFormatChanges) = 0;
   5770 
   5771     virtual HRESULT STDMETHODCALLTYPE GetOutputObjectToken(
   5772         ISpObjectToken **ppObjectToken) = 0;
   5773 
   5774     virtual HRESULT STDMETHODCALLTYPE GetOutputStream(
   5775         ISpStreamFormat **ppStream) = 0;
   5776 
   5777     virtual HRESULT STDMETHODCALLTYPE Pause(
   5778         ) = 0;
   5779 
   5780     virtual HRESULT STDMETHODCALLTYPE Resume(
   5781         ) = 0;
   5782 
   5783     virtual HRESULT STDMETHODCALLTYPE SetVoice(
   5784         ISpObjectToken *pToken) = 0;
   5785 
   5786     virtual HRESULT STDMETHODCALLTYPE GetVoice(
   5787         ISpObjectToken **ppToken) = 0;
   5788 
   5789     virtual HRESULT STDMETHODCALLTYPE Speak(
   5790         LPCWSTR pwcs,
   5791         DWORD dwFlags,
   5792         ULONG *pulStreamNumber) = 0;
   5793 
   5794     virtual HRESULT STDMETHODCALLTYPE SpeakStream(
   5795         IStream *pStream,
   5796         DWORD dwFlags,
   5797         ULONG *pulStreamNumber) = 0;
   5798 
   5799     virtual HRESULT STDMETHODCALLTYPE GetStatus(
   5800         SPVOICESTATUS *pStatus,
   5801         LPWSTR *ppszLastBookmark) = 0;
   5802 
   5803     virtual HRESULT STDMETHODCALLTYPE Skip(
   5804         LPCWSTR pItemType,
   5805         LONG lNumItems,
   5806         ULONG *pulNumSkipped) = 0;
   5807 
   5808     virtual HRESULT STDMETHODCALLTYPE SetPriority(
   5809         SPVPRIORITY ePriority) = 0;
   5810 
   5811     virtual HRESULT STDMETHODCALLTYPE GetPriority(
   5812         SPVPRIORITY *pePriority) = 0;
   5813 
   5814     virtual HRESULT STDMETHODCALLTYPE SetAlertBoundary(
   5815         SPEVENTENUM eBoundary) = 0;
   5816 
   5817     virtual HRESULT STDMETHODCALLTYPE GetAlertBoundary(
   5818         SPEVENTENUM *peBoundary) = 0;
   5819 
   5820     virtual HRESULT STDMETHODCALLTYPE SetRate(
   5821         LONG RateAdjust) = 0;
   5822 
   5823     virtual HRESULT STDMETHODCALLTYPE GetRate(
   5824         LONG *pRateAdjust) = 0;
   5825 
   5826     virtual HRESULT STDMETHODCALLTYPE SetVolume(
   5827         USHORT usVolume) = 0;
   5828 
   5829     virtual HRESULT STDMETHODCALLTYPE GetVolume(
   5830         USHORT *pusVolume) = 0;
   5831 
   5832     virtual HRESULT STDMETHODCALLTYPE WaitUntilDone(
   5833         ULONG msTimeout) = 0;
   5834 
   5835     virtual HRESULT STDMETHODCALLTYPE SetSyncSpeakTimeout(
   5836         ULONG msTimeout) = 0;
   5837 
   5838     virtual HRESULT STDMETHODCALLTYPE GetSyncSpeakTimeout(
   5839         ULONG *pmsTimeout) = 0;
   5840 
   5841     virtual HANDLE STDMETHODCALLTYPE SpeakCompleteEvent(
   5842         ) = 0;
   5843 
   5844     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
   5845         LPCWSTR pszTypeOfUI,
   5846         void *pvExtraData,
   5847         ULONG cbExtraData,
   5848         WINBOOL *pfSupported) = 0;
   5849 
   5850     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
   5851         HWND hwndParent,
   5852         LPCWSTR pszTitle,
   5853         LPCWSTR pszTypeOfUI,
   5854         void *pvExtraData,
   5855         ULONG cbExtraData) = 0;
   5856 
   5857 };
   5858 #ifdef __CRT_UUID_DECL
   5859 __CRT_UUID_DECL(ISpVoice, 0x6c44df74, 0x72b9, 0x4992, 0xa1,0xec, 0xef,0x99,0x6e,0x04,0x22,0xd4)
   5860 #endif
   5861 #else
   5862 typedef struct ISpVoiceVtbl {
   5863     BEGIN_INTERFACE
   5864 
   5865     /*** IUnknown methods ***/
   5866     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5867         ISpVoice *This,
   5868         REFIID riid,
   5869         void **ppvObject);
   5870 
   5871     ULONG (STDMETHODCALLTYPE *AddRef)(
   5872         ISpVoice *This);
   5873 
   5874     ULONG (STDMETHODCALLTYPE *Release)(
   5875         ISpVoice *This);
   5876 
   5877     /*** ISpNotifySource methods ***/
   5878     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
   5879         ISpVoice *This,
   5880         ISpNotifySink *pNotifySink);
   5881 
   5882     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
   5883         ISpVoice *This,
   5884         HWND hWnd,
   5885         UINT Msg,
   5886         WPARAM wParam,
   5887         LPARAM lParam);
   5888 
   5889     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
   5890         ISpVoice *This,
   5891         SPNOTIFYCALLBACK *pfnCallback,
   5892         WPARAM wParam,
   5893         LPARAM lParam);
   5894 
   5895     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
   5896         ISpVoice *This,
   5897         ISpNotifyCallback *pSpCallback,
   5898         WPARAM wParam,
   5899         LPARAM lParam);
   5900 
   5901     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
   5902         ISpVoice *This);
   5903 
   5904     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
   5905         ISpVoice *This,
   5906         DWORD dwMilliseconds);
   5907 
   5908     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
   5909         ISpVoice *This);
   5910 
   5911     /*** ISpEventSource methods ***/
   5912     HRESULT (STDMETHODCALLTYPE *SetInterest)(
   5913         ISpVoice *This,
   5914         ULONGLONG ullEventInterest,
   5915         ULONGLONG ullQueuedInterest);
   5916 
   5917     HRESULT (STDMETHODCALLTYPE *GetEvents)(
   5918         ISpVoice *This,
   5919         ULONG ulCount,
   5920         SPEVENT *pEventArray,
   5921         ULONG *pulFetched);
   5922 
   5923     HRESULT (STDMETHODCALLTYPE *GetInfo)(
   5924         ISpVoice *This,
   5925         SPEVENTSOURCEINFO *pInfo);
   5926 
   5927     /*** ISpVoice methods ***/
   5928     HRESULT (STDMETHODCALLTYPE *SetOutput)(
   5929         ISpVoice *This,
   5930         IUnknown *pUnkOutput,
   5931         WINBOOL fAllowFormatChanges);
   5932 
   5933     HRESULT (STDMETHODCALLTYPE *GetOutputObjectToken)(
   5934         ISpVoice *This,
   5935         ISpObjectToken **ppObjectToken);
   5936 
   5937     HRESULT (STDMETHODCALLTYPE *GetOutputStream)(
   5938         ISpVoice *This,
   5939         ISpStreamFormat **ppStream);
   5940 
   5941     HRESULT (STDMETHODCALLTYPE *Pause)(
   5942         ISpVoice *This);
   5943 
   5944     HRESULT (STDMETHODCALLTYPE *Resume)(
   5945         ISpVoice *This);
   5946 
   5947     HRESULT (STDMETHODCALLTYPE *SetVoice)(
   5948         ISpVoice *This,
   5949         ISpObjectToken *pToken);
   5950 
   5951     HRESULT (STDMETHODCALLTYPE *GetVoice)(
   5952         ISpVoice *This,
   5953         ISpObjectToken **ppToken);
   5954 
   5955     HRESULT (STDMETHODCALLTYPE *Speak)(
   5956         ISpVoice *This,
   5957         LPCWSTR pwcs,
   5958         DWORD dwFlags,
   5959         ULONG *pulStreamNumber);
   5960 
   5961     HRESULT (STDMETHODCALLTYPE *SpeakStream)(
   5962         ISpVoice *This,
   5963         IStream *pStream,
   5964         DWORD dwFlags,
   5965         ULONG *pulStreamNumber);
   5966 
   5967     HRESULT (STDMETHODCALLTYPE *GetStatus)(
   5968         ISpVoice *This,
   5969         SPVOICESTATUS *pStatus,
   5970         LPWSTR *ppszLastBookmark);
   5971 
   5972     HRESULT (STDMETHODCALLTYPE *Skip)(
   5973         ISpVoice *This,
   5974         LPCWSTR pItemType,
   5975         LONG lNumItems,
   5976         ULONG *pulNumSkipped);
   5977 
   5978     HRESULT (STDMETHODCALLTYPE *SetPriority)(
   5979         ISpVoice *This,
   5980         SPVPRIORITY ePriority);
   5981 
   5982     HRESULT (STDMETHODCALLTYPE *GetPriority)(
   5983         ISpVoice *This,
   5984         SPVPRIORITY *pePriority);
   5985 
   5986     HRESULT (STDMETHODCALLTYPE *SetAlertBoundary)(
   5987         ISpVoice *This,
   5988         SPEVENTENUM eBoundary);
   5989 
   5990     HRESULT (STDMETHODCALLTYPE *GetAlertBoundary)(
   5991         ISpVoice *This,
   5992         SPEVENTENUM *peBoundary);
   5993 
   5994     HRESULT (STDMETHODCALLTYPE *SetRate)(
   5995         ISpVoice *This,
   5996         LONG RateAdjust);
   5997 
   5998     HRESULT (STDMETHODCALLTYPE *GetRate)(
   5999         ISpVoice *This,
   6000         LONG *pRateAdjust);
   6001 
   6002     HRESULT (STDMETHODCALLTYPE *SetVolume)(
   6003         ISpVoice *This,
   6004         USHORT usVolume);
   6005 
   6006     HRESULT (STDMETHODCALLTYPE *GetVolume)(
   6007         ISpVoice *This,
   6008         USHORT *pusVolume);
   6009 
   6010     HRESULT (STDMETHODCALLTYPE *WaitUntilDone)(
   6011         ISpVoice *This,
   6012         ULONG msTimeout);
   6013 
   6014     HRESULT (STDMETHODCALLTYPE *SetSyncSpeakTimeout)(
   6015         ISpVoice *This,
   6016         ULONG msTimeout);
   6017 
   6018     HRESULT (STDMETHODCALLTYPE *GetSyncSpeakTimeout)(
   6019         ISpVoice *This,
   6020         ULONG *pmsTimeout);
   6021 
   6022     HANDLE (STDMETHODCALLTYPE *SpeakCompleteEvent)(
   6023         ISpVoice *This);
   6024 
   6025     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
   6026         ISpVoice *This,
   6027         LPCWSTR pszTypeOfUI,
   6028         void *pvExtraData,
   6029         ULONG cbExtraData,
   6030         WINBOOL *pfSupported);
   6031 
   6032     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
   6033         ISpVoice *This,
   6034         HWND hwndParent,
   6035         LPCWSTR pszTitle,
   6036         LPCWSTR pszTypeOfUI,
   6037         void *pvExtraData,
   6038         ULONG cbExtraData);
   6039 
   6040     END_INTERFACE
   6041 } ISpVoiceVtbl;
   6042 
   6043 interface ISpVoice {
   6044     CONST_VTBL ISpVoiceVtbl* lpVtbl;
   6045 };
   6046 
   6047 #ifdef COBJMACROS
   6048 #ifndef WIDL_C_INLINE_WRAPPERS
   6049 /*** IUnknown methods ***/
   6050 #define ISpVoice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6051 #define ISpVoice_AddRef(This) (This)->lpVtbl->AddRef(This)
   6052 #define ISpVoice_Release(This) (This)->lpVtbl->Release(This)
   6053 /*** ISpNotifySource methods ***/
   6054 #define ISpVoice_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
   6055 #define ISpVoice_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
   6056 #define ISpVoice_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
   6057 #define ISpVoice_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
   6058 #define ISpVoice_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
   6059 #define ISpVoice_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
   6060 #define ISpVoice_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
   6061 /*** ISpEventSource methods ***/
   6062 #define ISpVoice_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
   6063 #define ISpVoice_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
   6064 #define ISpVoice_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
   6065 /*** ISpVoice methods ***/
   6066 #define ISpVoice_SetOutput(This,pUnkOutput,fAllowFormatChanges) (This)->lpVtbl->SetOutput(This,pUnkOutput,fAllowFormatChanges)
   6067 #define ISpVoice_GetOutputObjectToken(This,ppObjectToken) (This)->lpVtbl->GetOutputObjectToken(This,ppObjectToken)
   6068 #define ISpVoice_GetOutputStream(This,ppStream) (This)->lpVtbl->GetOutputStream(This,ppStream)
   6069 #define ISpVoice_Pause(This) (This)->lpVtbl->Pause(This)
   6070 #define ISpVoice_Resume(This) (This)->lpVtbl->Resume(This)
   6071 #define ISpVoice_SetVoice(This,pToken) (This)->lpVtbl->SetVoice(This,pToken)
   6072 #define ISpVoice_GetVoice(This,ppToken) (This)->lpVtbl->GetVoice(This,ppToken)
   6073 #define ISpVoice_Speak(This,pwcs,dwFlags,pulStreamNumber) (This)->lpVtbl->Speak(This,pwcs,dwFlags,pulStreamNumber)
   6074 #define ISpVoice_SpeakStream(This,pStream,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakStream(This,pStream,dwFlags,pulStreamNumber)
   6075 #define ISpVoice_GetStatus(This,pStatus,ppszLastBookmark) (This)->lpVtbl->GetStatus(This,pStatus,ppszLastBookmark)
   6076 #define ISpVoice_Skip(This,pItemType,lNumItems,pulNumSkipped) (This)->lpVtbl->Skip(This,pItemType,lNumItems,pulNumSkipped)
   6077 #define ISpVoice_SetPriority(This,ePriority) (This)->lpVtbl->SetPriority(This,ePriority)
   6078 #define ISpVoice_GetPriority(This,pePriority) (This)->lpVtbl->GetPriority(This,pePriority)
   6079 #define ISpVoice_SetAlertBoundary(This,eBoundary) (This)->lpVtbl->SetAlertBoundary(This,eBoundary)
   6080 #define ISpVoice_GetAlertBoundary(This,peBoundary) (This)->lpVtbl->GetAlertBoundary(This,peBoundary)
   6081 #define ISpVoice_SetRate(This,RateAdjust) (This)->lpVtbl->SetRate(This,RateAdjust)
   6082 #define ISpVoice_GetRate(This,pRateAdjust) (This)->lpVtbl->GetRate(This,pRateAdjust)
   6083 #define ISpVoice_SetVolume(This,usVolume) (This)->lpVtbl->SetVolume(This,usVolume)
   6084 #define ISpVoice_GetVolume(This,pusVolume) (This)->lpVtbl->GetVolume(This,pusVolume)
   6085 #define ISpVoice_WaitUntilDone(This,msTimeout) (This)->lpVtbl->WaitUntilDone(This,msTimeout)
   6086 #define ISpVoice_SetSyncSpeakTimeout(This,msTimeout) (This)->lpVtbl->SetSyncSpeakTimeout(This,msTimeout)
   6087 #define ISpVoice_GetSyncSpeakTimeout(This,pmsTimeout) (This)->lpVtbl->GetSyncSpeakTimeout(This,pmsTimeout)
   6088 #define ISpVoice_SpeakCompleteEvent(This) (This)->lpVtbl->SpeakCompleteEvent(This)
   6089 #define ISpVoice_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported)
   6090 #define ISpVoice_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData)
   6091 #else
   6092 /*** IUnknown methods ***/
   6093 static inline HRESULT ISpVoice_QueryInterface(ISpVoice* This,REFIID riid,void **ppvObject) {
   6094     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6095 }
   6096 static inline ULONG ISpVoice_AddRef(ISpVoice* This) {
   6097     return This->lpVtbl->AddRef(This);
   6098 }
   6099 static inline ULONG ISpVoice_Release(ISpVoice* This) {
   6100     return This->lpVtbl->Release(This);
   6101 }
   6102 /*** ISpNotifySource methods ***/
   6103 static inline HRESULT ISpVoice_SetNotifySink(ISpVoice* This,ISpNotifySink *pNotifySink) {
   6104     return This->lpVtbl->SetNotifySink(This,pNotifySink);
   6105 }
   6106 static inline HRESULT ISpVoice_SetNotifyWindowMessage(ISpVoice* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
   6107     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
   6108 }
   6109 static inline HRESULT ISpVoice_SetNotifyCallbackFunction(ISpVoice* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
   6110     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
   6111 }
   6112 static inline HRESULT ISpVoice_SetNotifyCallbackInterface(ISpVoice* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
   6113     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
   6114 }
   6115 static inline HRESULT ISpVoice_SetNotifyWin32Event(ISpVoice* This) {
   6116     return This->lpVtbl->SetNotifyWin32Event(This);
   6117 }
   6118 static inline HRESULT ISpVoice_WaitForNotifyEvent(ISpVoice* This,DWORD dwMilliseconds) {
   6119     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
   6120 }
   6121 static inline HANDLE ISpVoice_GetNotifyEventHandle(ISpVoice* This) {
   6122     return This->lpVtbl->GetNotifyEventHandle(This);
   6123 }
   6124 /*** ISpEventSource methods ***/
   6125 static inline HRESULT ISpVoice_SetInterest(ISpVoice* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
   6126     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
   6127 }
   6128 static inline HRESULT ISpVoice_GetEvents(ISpVoice* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
   6129     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
   6130 }
   6131 static inline HRESULT ISpVoice_GetInfo(ISpVoice* This,SPEVENTSOURCEINFO *pInfo) {
   6132     return This->lpVtbl->GetInfo(This,pInfo);
   6133 }
   6134 /*** ISpVoice methods ***/
   6135 static inline HRESULT ISpVoice_SetOutput(ISpVoice* This,IUnknown *pUnkOutput,WINBOOL fAllowFormatChanges) {
   6136     return This->lpVtbl->SetOutput(This,pUnkOutput,fAllowFormatChanges);
   6137 }
   6138 static inline HRESULT ISpVoice_GetOutputObjectToken(ISpVoice* This,ISpObjectToken **ppObjectToken) {
   6139     return This->lpVtbl->GetOutputObjectToken(This,ppObjectToken);
   6140 }
   6141 static inline HRESULT ISpVoice_GetOutputStream(ISpVoice* This,ISpStreamFormat **ppStream) {
   6142     return This->lpVtbl->GetOutputStream(This,ppStream);
   6143 }
   6144 static inline HRESULT ISpVoice_Pause(ISpVoice* This) {
   6145     return This->lpVtbl->Pause(This);
   6146 }
   6147 static inline HRESULT ISpVoice_Resume(ISpVoice* This) {
   6148     return This->lpVtbl->Resume(This);
   6149 }
   6150 static inline HRESULT ISpVoice_SetVoice(ISpVoice* This,ISpObjectToken *pToken) {
   6151     return This->lpVtbl->SetVoice(This,pToken);
   6152 }
   6153 static inline HRESULT ISpVoice_GetVoice(ISpVoice* This,ISpObjectToken **ppToken) {
   6154     return This->lpVtbl->GetVoice(This,ppToken);
   6155 }
   6156 static inline HRESULT ISpVoice_Speak(ISpVoice* This,LPCWSTR pwcs,DWORD dwFlags,ULONG *pulStreamNumber) {
   6157     return This->lpVtbl->Speak(This,pwcs,dwFlags,pulStreamNumber);
   6158 }
   6159 static inline HRESULT ISpVoice_SpeakStream(ISpVoice* This,IStream *pStream,DWORD dwFlags,ULONG *pulStreamNumber) {
   6160     return This->lpVtbl->SpeakStream(This,pStream,dwFlags,pulStreamNumber);
   6161 }
   6162 static inline HRESULT ISpVoice_GetStatus(ISpVoice* This,SPVOICESTATUS *pStatus,LPWSTR *ppszLastBookmark) {
   6163     return This->lpVtbl->GetStatus(This,pStatus,ppszLastBookmark);
   6164 }
   6165 static inline HRESULT ISpVoice_Skip(ISpVoice* This,LPCWSTR pItemType,LONG lNumItems,ULONG *pulNumSkipped) {
   6166     return This->lpVtbl->Skip(This,pItemType,lNumItems,pulNumSkipped);
   6167 }
   6168 static inline HRESULT ISpVoice_SetPriority(ISpVoice* This,SPVPRIORITY ePriority) {
   6169     return This->lpVtbl->SetPriority(This,ePriority);
   6170 }
   6171 static inline HRESULT ISpVoice_GetPriority(ISpVoice* This,SPVPRIORITY *pePriority) {
   6172     return This->lpVtbl->GetPriority(This,pePriority);
   6173 }
   6174 static inline HRESULT ISpVoice_SetAlertBoundary(ISpVoice* This,SPEVENTENUM eBoundary) {
   6175     return This->lpVtbl->SetAlertBoundary(This,eBoundary);
   6176 }
   6177 static inline HRESULT ISpVoice_GetAlertBoundary(ISpVoice* This,SPEVENTENUM *peBoundary) {
   6178     return This->lpVtbl->GetAlertBoundary(This,peBoundary);
   6179 }
   6180 static inline HRESULT ISpVoice_SetRate(ISpVoice* This,LONG RateAdjust) {
   6181     return This->lpVtbl->SetRate(This,RateAdjust);
   6182 }
   6183 static inline HRESULT ISpVoice_GetRate(ISpVoice* This,LONG *pRateAdjust) {
   6184     return This->lpVtbl->GetRate(This,pRateAdjust);
   6185 }
   6186 static inline HRESULT ISpVoice_SetVolume(ISpVoice* This,USHORT usVolume) {
   6187     return This->lpVtbl->SetVolume(This,usVolume);
   6188 }
   6189 static inline HRESULT ISpVoice_GetVolume(ISpVoice* This,USHORT *pusVolume) {
   6190     return This->lpVtbl->GetVolume(This,pusVolume);
   6191 }
   6192 static inline HRESULT ISpVoice_WaitUntilDone(ISpVoice* This,ULONG msTimeout) {
   6193     return This->lpVtbl->WaitUntilDone(This,msTimeout);
   6194 }
   6195 static inline HRESULT ISpVoice_SetSyncSpeakTimeout(ISpVoice* This,ULONG msTimeout) {
   6196     return This->lpVtbl->SetSyncSpeakTimeout(This,msTimeout);
   6197 }
   6198 static inline HRESULT ISpVoice_GetSyncSpeakTimeout(ISpVoice* This,ULONG *pmsTimeout) {
   6199     return This->lpVtbl->GetSyncSpeakTimeout(This,pmsTimeout);
   6200 }
   6201 static inline HANDLE ISpVoice_SpeakCompleteEvent(ISpVoice* This) {
   6202     return This->lpVtbl->SpeakCompleteEvent(This);
   6203 }
   6204 static inline HRESULT ISpVoice_IsUISupported(ISpVoice* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,WINBOOL *pfSupported) {
   6205     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported);
   6206 }
   6207 static inline HRESULT ISpVoice_DisplayUI(ISpVoice* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData) {
   6208     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData);
   6209 }
   6210 #endif
   6211 #endif
   6212 
   6213 #endif
   6214 
   6215 
   6216 #endif  /* __ISpVoice_INTERFACE_DEFINED__ */
   6217 
   6218 /*****************************************************************************
   6219  * ISpPhrase interface
   6220  */
   6221 #ifndef __ISpPhrase_INTERFACE_DEFINED__
   6222 #define __ISpPhrase_INTERFACE_DEFINED__
   6223 
   6224 DEFINE_GUID(IID_ISpPhrase, 0x1a5c0354, 0xb621, 0x4b5a, 0x87,0x91, 0xd3,0x06,0xed,0x37,0x9e,0x53);
   6225 #if defined(__cplusplus) && !defined(CINTERFACE)
   6226 MIDL_INTERFACE("1a5c0354-b621-4b5a-8791-d306ed379e53")
   6227 ISpPhrase : public IUnknown
   6228 {
   6229     virtual HRESULT STDMETHODCALLTYPE GetPhrase(
   6230         SPPHRASE **ppCoMemPhrase) = 0;
   6231 
   6232     virtual HRESULT STDMETHODCALLTYPE GetSerializedPhrase(
   6233         SPSERIALIZEDPHRASE **ppCoMemPhrase) = 0;
   6234 
   6235     virtual HRESULT STDMETHODCALLTYPE GetText(
   6236         ULONG ulStart,
   6237         ULONG ulCount,
   6238         WINBOOL fUseTextReplacements,
   6239         LPWSTR *ppszCoMemText,
   6240         BYTE *pbDisplayAttributes) = 0;
   6241 
   6242     virtual HRESULT STDMETHODCALLTYPE Discard(
   6243         DWORD dwValueTypes) = 0;
   6244 
   6245 };
   6246 #ifdef __CRT_UUID_DECL
   6247 __CRT_UUID_DECL(ISpPhrase, 0x1a5c0354, 0xb621, 0x4b5a, 0x87,0x91, 0xd3,0x06,0xed,0x37,0x9e,0x53)
   6248 #endif
   6249 #else
   6250 typedef struct ISpPhraseVtbl {
   6251     BEGIN_INTERFACE
   6252 
   6253     /*** IUnknown methods ***/
   6254     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6255         ISpPhrase *This,
   6256         REFIID riid,
   6257         void **ppvObject);
   6258 
   6259     ULONG (STDMETHODCALLTYPE *AddRef)(
   6260         ISpPhrase *This);
   6261 
   6262     ULONG (STDMETHODCALLTYPE *Release)(
   6263         ISpPhrase *This);
   6264 
   6265     /*** ISpPhrase methods ***/
   6266     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
   6267         ISpPhrase *This,
   6268         SPPHRASE **ppCoMemPhrase);
   6269 
   6270     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
   6271         ISpPhrase *This,
   6272         SPSERIALIZEDPHRASE **ppCoMemPhrase);
   6273 
   6274     HRESULT (STDMETHODCALLTYPE *GetText)(
   6275         ISpPhrase *This,
   6276         ULONG ulStart,
   6277         ULONG ulCount,
   6278         WINBOOL fUseTextReplacements,
   6279         LPWSTR *ppszCoMemText,
   6280         BYTE *pbDisplayAttributes);
   6281 
   6282     HRESULT (STDMETHODCALLTYPE *Discard)(
   6283         ISpPhrase *This,
   6284         DWORD dwValueTypes);
   6285 
   6286     END_INTERFACE
   6287 } ISpPhraseVtbl;
   6288 
   6289 interface ISpPhrase {
   6290     CONST_VTBL ISpPhraseVtbl* lpVtbl;
   6291 };
   6292 
   6293 #ifdef COBJMACROS
   6294 #ifndef WIDL_C_INLINE_WRAPPERS
   6295 /*** IUnknown methods ***/
   6296 #define ISpPhrase_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6297 #define ISpPhrase_AddRef(This) (This)->lpVtbl->AddRef(This)
   6298 #define ISpPhrase_Release(This) (This)->lpVtbl->Release(This)
   6299 /*** ISpPhrase methods ***/
   6300 #define ISpPhrase_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
   6301 #define ISpPhrase_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
   6302 #define ISpPhrase_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
   6303 #define ISpPhrase_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
   6304 #else
   6305 /*** IUnknown methods ***/
   6306 static inline HRESULT ISpPhrase_QueryInterface(ISpPhrase* This,REFIID riid,void **ppvObject) {
   6307     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6308 }
   6309 static inline ULONG ISpPhrase_AddRef(ISpPhrase* This) {
   6310     return This->lpVtbl->AddRef(This);
   6311 }
   6312 static inline ULONG ISpPhrase_Release(ISpPhrase* This) {
   6313     return This->lpVtbl->Release(This);
   6314 }
   6315 /*** ISpPhrase methods ***/
   6316 static inline HRESULT ISpPhrase_GetPhrase(ISpPhrase* This,SPPHRASE **ppCoMemPhrase) {
   6317     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
   6318 }
   6319 static inline HRESULT ISpPhrase_GetSerializedPhrase(ISpPhrase* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
   6320     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
   6321 }
   6322 static inline HRESULT ISpPhrase_GetText(ISpPhrase* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
   6323     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
   6324 }
   6325 static inline HRESULT ISpPhrase_Discard(ISpPhrase* This,DWORD dwValueTypes) {
   6326     return This->lpVtbl->Discard(This,dwValueTypes);
   6327 }
   6328 #endif
   6329 #endif
   6330 
   6331 #endif
   6332 
   6333 
   6334 #endif  /* __ISpPhrase_INTERFACE_DEFINED__ */
   6335 
   6336 /*****************************************************************************
   6337  * ISpPhraseAlt interface
   6338  */
   6339 #ifndef __ISpPhraseAlt_INTERFACE_DEFINED__
   6340 #define __ISpPhraseAlt_INTERFACE_DEFINED__
   6341 
   6342 DEFINE_GUID(IID_ISpPhraseAlt, 0x8fcebc98, 0x4e49, 0x4067, 0x9c,0x6c, 0xd8,0x6a,0x0e,0x09,0x2e,0x3d);
   6343 #if defined(__cplusplus) && !defined(CINTERFACE)
   6344 MIDL_INTERFACE("8fcebc98-4e49-4067-9c6c-d86a0e092e3d")
   6345 ISpPhraseAlt : public ISpPhrase
   6346 {
   6347     virtual HRESULT STDMETHODCALLTYPE GetAltInfo(
   6348         ISpPhrase **ppParent,
   6349         ULONG *pulStartElementInParent,
   6350         ULONG *pcElementsInParent,
   6351         ULONG *pcElementsInAlt) = 0;
   6352 
   6353     virtual HRESULT STDMETHODCALLTYPE Commit(
   6354         ) = 0;
   6355 
   6356 };
   6357 #ifdef __CRT_UUID_DECL
   6358 __CRT_UUID_DECL(ISpPhraseAlt, 0x8fcebc98, 0x4e49, 0x4067, 0x9c,0x6c, 0xd8,0x6a,0x0e,0x09,0x2e,0x3d)
   6359 #endif
   6360 #else
   6361 typedef struct ISpPhraseAltVtbl {
   6362     BEGIN_INTERFACE
   6363 
   6364     /*** IUnknown methods ***/
   6365     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6366         ISpPhraseAlt *This,
   6367         REFIID riid,
   6368         void **ppvObject);
   6369 
   6370     ULONG (STDMETHODCALLTYPE *AddRef)(
   6371         ISpPhraseAlt *This);
   6372 
   6373     ULONG (STDMETHODCALLTYPE *Release)(
   6374         ISpPhraseAlt *This);
   6375 
   6376     /*** ISpPhrase methods ***/
   6377     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
   6378         ISpPhraseAlt *This,
   6379         SPPHRASE **ppCoMemPhrase);
   6380 
   6381     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
   6382         ISpPhraseAlt *This,
   6383         SPSERIALIZEDPHRASE **ppCoMemPhrase);
   6384 
   6385     HRESULT (STDMETHODCALLTYPE *GetText)(
   6386         ISpPhraseAlt *This,
   6387         ULONG ulStart,
   6388         ULONG ulCount,
   6389         WINBOOL fUseTextReplacements,
   6390         LPWSTR *ppszCoMemText,
   6391         BYTE *pbDisplayAttributes);
   6392 
   6393     HRESULT (STDMETHODCALLTYPE *Discard)(
   6394         ISpPhraseAlt *This,
   6395         DWORD dwValueTypes);
   6396 
   6397     /*** ISpPhraseAlt methods ***/
   6398     HRESULT (STDMETHODCALLTYPE *GetAltInfo)(
   6399         ISpPhraseAlt *This,
   6400         ISpPhrase **ppParent,
   6401         ULONG *pulStartElementInParent,
   6402         ULONG *pcElementsInParent,
   6403         ULONG *pcElementsInAlt);
   6404 
   6405     HRESULT (STDMETHODCALLTYPE *Commit)(
   6406         ISpPhraseAlt *This);
   6407 
   6408     END_INTERFACE
   6409 } ISpPhraseAltVtbl;
   6410 
   6411 interface ISpPhraseAlt {
   6412     CONST_VTBL ISpPhraseAltVtbl* lpVtbl;
   6413 };
   6414 
   6415 #ifdef COBJMACROS
   6416 #ifndef WIDL_C_INLINE_WRAPPERS
   6417 /*** IUnknown methods ***/
   6418 #define ISpPhraseAlt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6419 #define ISpPhraseAlt_AddRef(This) (This)->lpVtbl->AddRef(This)
   6420 #define ISpPhraseAlt_Release(This) (This)->lpVtbl->Release(This)
   6421 /*** ISpPhrase methods ***/
   6422 #define ISpPhraseAlt_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
   6423 #define ISpPhraseAlt_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
   6424 #define ISpPhraseAlt_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
   6425 #define ISpPhraseAlt_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
   6426 /*** ISpPhraseAlt methods ***/
   6427 #define ISpPhraseAlt_GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt) (This)->lpVtbl->GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt)
   6428 #define ISpPhraseAlt_Commit(This) (This)->lpVtbl->Commit(This)
   6429 #else
   6430 /*** IUnknown methods ***/
   6431 static inline HRESULT ISpPhraseAlt_QueryInterface(ISpPhraseAlt* This,REFIID riid,void **ppvObject) {
   6432     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6433 }
   6434 static inline ULONG ISpPhraseAlt_AddRef(ISpPhraseAlt* This) {
   6435     return This->lpVtbl->AddRef(This);
   6436 }
   6437 static inline ULONG ISpPhraseAlt_Release(ISpPhraseAlt* This) {
   6438     return This->lpVtbl->Release(This);
   6439 }
   6440 /*** ISpPhrase methods ***/
   6441 static inline HRESULT ISpPhraseAlt_GetPhrase(ISpPhraseAlt* This,SPPHRASE **ppCoMemPhrase) {
   6442     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
   6443 }
   6444 static inline HRESULT ISpPhraseAlt_GetSerializedPhrase(ISpPhraseAlt* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
   6445     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
   6446 }
   6447 static inline HRESULT ISpPhraseAlt_GetText(ISpPhraseAlt* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
   6448     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
   6449 }
   6450 static inline HRESULT ISpPhraseAlt_Discard(ISpPhraseAlt* This,DWORD dwValueTypes) {
   6451     return This->lpVtbl->Discard(This,dwValueTypes);
   6452 }
   6453 /*** ISpPhraseAlt methods ***/
   6454 static inline HRESULT ISpPhraseAlt_GetAltInfo(ISpPhraseAlt* This,ISpPhrase **ppParent,ULONG *pulStartElementInParent,ULONG *pcElementsInParent,ULONG *pcElementsInAlt) {
   6455     return This->lpVtbl->GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt);
   6456 }
   6457 static inline HRESULT ISpPhraseAlt_Commit(ISpPhraseAlt* This) {
   6458     return This->lpVtbl->Commit(This);
   6459 }
   6460 #endif
   6461 #endif
   6462 
   6463 #endif
   6464 
   6465 
   6466 #endif  /* __ISpPhraseAlt_INTERFACE_DEFINED__ */
   6467 
   6468 typedef struct SPRECORESULTTIMES {
   6469     FILETIME ftStreamTime;
   6470     ULONGLONG ullLength;
   6471     DWORD dwTickCount;
   6472     ULONGLONG ullStart;
   6473 } SPRECORESULTTIMES;
   6474 typedef struct SPSERIALIZEDRESULT {
   6475     ULONG ulSerializedSize;
   6476 } SPSERIALIZEDRESULT;
   6477 /*****************************************************************************
   6478  * ISpRecoResult interface
   6479  */
   6480 #ifndef __ISpRecoResult_INTERFACE_DEFINED__
   6481 #define __ISpRecoResult_INTERFACE_DEFINED__
   6482 
   6483 DEFINE_GUID(IID_ISpRecoResult, 0x20b053be, 0xe235, 0x43cd, 0x9a,0x2a, 0x8d,0x17,0xa4,0x8b,0x78,0x42);
   6484 #if defined(__cplusplus) && !defined(CINTERFACE)
   6485 MIDL_INTERFACE("20b053be-e235-43cd-9a2a-8d17a48b7842")
   6486 ISpRecoResult : public ISpPhrase
   6487 {
   6488     virtual HRESULT STDMETHODCALLTYPE GetResultTimes(
   6489         SPRECORESULTTIMES *pTimes) = 0;
   6490 
   6491     virtual HRESULT STDMETHODCALLTYPE GetAlternates(
   6492         ULONG ulStartElement,
   6493         ULONG cElements,
   6494         ULONG ulRequestCount,
   6495         ISpPhraseAlt **ppPhrases,
   6496         ULONG *pcPhrasesReturned) = 0;
   6497 
   6498     virtual HRESULT STDMETHODCALLTYPE GetAudio(
   6499         ULONG ulStartElement,
   6500         ULONG cElements,
   6501         ISpStreamFormat **ppStream) = 0;
   6502 
   6503     virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
   6504         ULONG ulStartElement,
   6505         ULONG cElements,
   6506         DWORD dwFlags,
   6507         ULONG *pulStreamNumber) = 0;
   6508 
   6509     virtual HRESULT STDMETHODCALLTYPE Serialize(
   6510         SPSERIALIZEDRESULT **ppCoMemSerializedResult) = 0;
   6511 
   6512     virtual HRESULT STDMETHODCALLTYPE ScaleAudio(
   6513         const GUID *pAudioFormatId,
   6514         const WAVEFORMATEX *pWaveFormatEx) = 0;
   6515 
   6516     virtual HRESULT STDMETHODCALLTYPE GetRecoContext(
   6517         ISpRecoContext **ppRecoContext) = 0;
   6518 
   6519 };
   6520 #ifdef __CRT_UUID_DECL
   6521 __CRT_UUID_DECL(ISpRecoResult, 0x20b053be, 0xe235, 0x43cd, 0x9a,0x2a, 0x8d,0x17,0xa4,0x8b,0x78,0x42)
   6522 #endif
   6523 #else
   6524 typedef struct ISpRecoResultVtbl {
   6525     BEGIN_INTERFACE
   6526 
   6527     /*** IUnknown methods ***/
   6528     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6529         ISpRecoResult *This,
   6530         REFIID riid,
   6531         void **ppvObject);
   6532 
   6533     ULONG (STDMETHODCALLTYPE *AddRef)(
   6534         ISpRecoResult *This);
   6535 
   6536     ULONG (STDMETHODCALLTYPE *Release)(
   6537         ISpRecoResult *This);
   6538 
   6539     /*** ISpPhrase methods ***/
   6540     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
   6541         ISpRecoResult *This,
   6542         SPPHRASE **ppCoMemPhrase);
   6543 
   6544     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
   6545         ISpRecoResult *This,
   6546         SPSERIALIZEDPHRASE **ppCoMemPhrase);
   6547 
   6548     HRESULT (STDMETHODCALLTYPE *GetText)(
   6549         ISpRecoResult *This,
   6550         ULONG ulStart,
   6551         ULONG ulCount,
   6552         WINBOOL fUseTextReplacements,
   6553         LPWSTR *ppszCoMemText,
   6554         BYTE *pbDisplayAttributes);
   6555 
   6556     HRESULT (STDMETHODCALLTYPE *Discard)(
   6557         ISpRecoResult *This,
   6558         DWORD dwValueTypes);
   6559 
   6560     /*** ISpRecoResult methods ***/
   6561     HRESULT (STDMETHODCALLTYPE *GetResultTimes)(
   6562         ISpRecoResult *This,
   6563         SPRECORESULTTIMES *pTimes);
   6564 
   6565     HRESULT (STDMETHODCALLTYPE *GetAlternates)(
   6566         ISpRecoResult *This,
   6567         ULONG ulStartElement,
   6568         ULONG cElements,
   6569         ULONG ulRequestCount,
   6570         ISpPhraseAlt **ppPhrases,
   6571         ULONG *pcPhrasesReturned);
   6572 
   6573     HRESULT (STDMETHODCALLTYPE *GetAudio)(
   6574         ISpRecoResult *This,
   6575         ULONG ulStartElement,
   6576         ULONG cElements,
   6577         ISpStreamFormat **ppStream);
   6578 
   6579     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
   6580         ISpRecoResult *This,
   6581         ULONG ulStartElement,
   6582         ULONG cElements,
   6583         DWORD dwFlags,
   6584         ULONG *pulStreamNumber);
   6585 
   6586     HRESULT (STDMETHODCALLTYPE *Serialize)(
   6587         ISpRecoResult *This,
   6588         SPSERIALIZEDRESULT **ppCoMemSerializedResult);
   6589 
   6590     HRESULT (STDMETHODCALLTYPE *ScaleAudio)(
   6591         ISpRecoResult *This,
   6592         const GUID *pAudioFormatId,
   6593         const WAVEFORMATEX *pWaveFormatEx);
   6594 
   6595     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
   6596         ISpRecoResult *This,
   6597         ISpRecoContext **ppRecoContext);
   6598 
   6599     END_INTERFACE
   6600 } ISpRecoResultVtbl;
   6601 
   6602 interface ISpRecoResult {
   6603     CONST_VTBL ISpRecoResultVtbl* lpVtbl;
   6604 };
   6605 
   6606 #ifdef COBJMACROS
   6607 #ifndef WIDL_C_INLINE_WRAPPERS
   6608 /*** IUnknown methods ***/
   6609 #define ISpRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6610 #define ISpRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
   6611 #define ISpRecoResult_Release(This) (This)->lpVtbl->Release(This)
   6612 /*** ISpPhrase methods ***/
   6613 #define ISpRecoResult_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
   6614 #define ISpRecoResult_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
   6615 #define ISpRecoResult_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
   6616 #define ISpRecoResult_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
   6617 /*** ISpRecoResult methods ***/
   6618 #define ISpRecoResult_GetResultTimes(This,pTimes) (This)->lpVtbl->GetResultTimes(This,pTimes)
   6619 #define ISpRecoResult_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned) (This)->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
   6620 #define ISpRecoResult_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
   6621 #define ISpRecoResult_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
   6622 #define ISpRecoResult_Serialize(This,ppCoMemSerializedResult) (This)->lpVtbl->Serialize(This,ppCoMemSerializedResult)
   6623 #define ISpRecoResult_ScaleAudio(This,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
   6624 #define ISpRecoResult_GetRecoContext(This,ppRecoContext) (This)->lpVtbl->GetRecoContext(This,ppRecoContext)
   6625 #else
   6626 /*** IUnknown methods ***/
   6627 static inline HRESULT ISpRecoResult_QueryInterface(ISpRecoResult* This,REFIID riid,void **ppvObject) {
   6628     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6629 }
   6630 static inline ULONG ISpRecoResult_AddRef(ISpRecoResult* This) {
   6631     return This->lpVtbl->AddRef(This);
   6632 }
   6633 static inline ULONG ISpRecoResult_Release(ISpRecoResult* This) {
   6634     return This->lpVtbl->Release(This);
   6635 }
   6636 /*** ISpPhrase methods ***/
   6637 static inline HRESULT ISpRecoResult_GetPhrase(ISpRecoResult* This,SPPHRASE **ppCoMemPhrase) {
   6638     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
   6639 }
   6640 static inline HRESULT ISpRecoResult_GetSerializedPhrase(ISpRecoResult* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
   6641     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
   6642 }
   6643 static inline HRESULT ISpRecoResult_GetText(ISpRecoResult* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
   6644     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
   6645 }
   6646 static inline HRESULT ISpRecoResult_Discard(ISpRecoResult* This,DWORD dwValueTypes) {
   6647     return This->lpVtbl->Discard(This,dwValueTypes);
   6648 }
   6649 /*** ISpRecoResult methods ***/
   6650 static inline HRESULT ISpRecoResult_GetResultTimes(ISpRecoResult* This,SPRECORESULTTIMES *pTimes) {
   6651     return This->lpVtbl->GetResultTimes(This,pTimes);
   6652 }
   6653 static inline HRESULT ISpRecoResult_GetAlternates(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,ULONG ulRequestCount,ISpPhraseAlt **ppPhrases,ULONG *pcPhrasesReturned) {
   6654     return This->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned);
   6655 }
   6656 static inline HRESULT ISpRecoResult_GetAudio(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
   6657     return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
   6658 }
   6659 static inline HRESULT ISpRecoResult_SpeakAudio(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,DWORD dwFlags,ULONG *pulStreamNumber) {
   6660     return This->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber);
   6661 }
   6662 static inline HRESULT ISpRecoResult_Serialize(ISpRecoResult* This,SPSERIALIZEDRESULT **ppCoMemSerializedResult) {
   6663     return This->lpVtbl->Serialize(This,ppCoMemSerializedResult);
   6664 }
   6665 static inline HRESULT ISpRecoResult_ScaleAudio(ISpRecoResult* This,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
   6666     return This->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx);
   6667 }
   6668 static inline HRESULT ISpRecoResult_GetRecoContext(ISpRecoResult* This,ISpRecoContext **ppRecoContext) {
   6669     return This->lpVtbl->GetRecoContext(This,ppRecoContext);
   6670 }
   6671 #endif
   6672 #endif
   6673 
   6674 #endif
   6675 
   6676 
   6677 #endif  /* __ISpRecoResult_INTERFACE_DEFINED__ */
   6678 
   6679 typedef struct tagSPTEXTSELECTIONINFO {
   6680     ULONG ulStartActiveOffset;
   6681     ULONG cchActiveChars;
   6682     ULONG ulStartSelection;
   6683     ULONG cchSelection;
   6684 } SPTEXTSELECTIONINFO;
   6685 typedef enum SPWORDPRONOUNCEABLE {
   6686     SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE = 0,
   6687     SPWP_UNKNOWN_WORD_PRONOUNCEABLE = 1,
   6688     SPWP_KNOWN_WORD_PRONOUNCEABLE = 2
   6689 } SPWORDPRONOUNCEABLE;
   6690 typedef enum SPGRAMMARSTATE {
   6691     SPGS_DISABLED = 0,
   6692     SPGS_ENABLED = 1,
   6693     SPGS_EXCLUSIVE = 3
   6694 } SPGRAMMARSTATE;
   6695 typedef enum SPCONTEXTSTATE {
   6696     SPCS_DISABLED = 0,
   6697     SPCS_ENABLED = 1
   6698 } SPCONTEXTSTATE;
   6699 typedef enum SPRULESTATE {
   6700     SPRS_INACTIVE = 0,
   6701     SPRS_ACTIVE = 1,
   6702     SPRS_ACTIVE_WITH_AUTO_PAUSE = 3
   6703 } SPRULESTATE;
   6704 #define SP_STREAMPOS_ASAP (0)
   6705 
   6706 #define SP_STREAMPOS_REALTIME (-1)
   6707 
   6708 #define SPRULETRANS_TEXTBUFFER (SPSTATEHANDLE) (-1)
   6709 #define SPRULETRANS_WILDCARD (SPSTATEHANDLE) (-2)
   6710 #define SPRULETRANS_DICTATION (SPSTATEHANDLE) (-3)
   6711 typedef enum SPGRAMMARWORDTYPE {
   6712     SPWT_DISPLAY = 0,
   6713     SPWT_LEXICAL = 1,
   6714     SPWT_PRONUNCIATION = 2
   6715 } SPGRAMMARWORDTYPE;
   6716 typedef struct tagSPPROPERTYINFO {
   6717     LPCWSTR pszName;
   6718     ULONG ulId;
   6719     LPCWSTR pszValue;
   6720     VARIANT vValue;
   6721 } SPPROPERTYINFO;
   6722 typedef enum SPCFGRULEATTRIBUTES {
   6723     SPRAF_TopLevel = 0x1,
   6724     SPRAF_Active = 0x2,
   6725     SPRAF_Export = 0x4,
   6726     SPRAF_Import = 0x8,
   6727     SPRAF_Interpreter = 0x10,
   6728     SPRAF_Dynamic = 0x20,
   6729     SPRAF_AutoPause = 0x10000
   6730 } SPCFGRULEATTRIBUTES;
   6731 /*****************************************************************************
   6732  * ISpGrammarBuilder interface
   6733  */
   6734 #ifndef __ISpGrammarBuilder_INTERFACE_DEFINED__
   6735 #define __ISpGrammarBuilder_INTERFACE_DEFINED__
   6736 
   6737 DEFINE_GUID(IID_ISpGrammarBuilder, 0x8137828f, 0x591a, 0x4a42, 0xbe,0x58, 0x49,0xea,0x7e,0xba,0xac,0x68);
   6738 #if defined(__cplusplus) && !defined(CINTERFACE)
   6739 MIDL_INTERFACE("8137828f-591a-4a42-be58-49ea7ebaac68")
   6740 ISpGrammarBuilder : public IUnknown
   6741 {
   6742     virtual HRESULT STDMETHODCALLTYPE ResetGrammar(
   6743         WORD NewLanguage) = 0;
   6744 
   6745     virtual HRESULT STDMETHODCALLTYPE GetRule(
   6746         LPCWSTR pszRuleName,
   6747         DWORD dwRuleId,
   6748         DWORD dwAttributes,
   6749         WINBOOL fCreateIfNotExist,
   6750         SPSTATEHANDLE *phInitialState) = 0;
   6751 
   6752     virtual HRESULT STDMETHODCALLTYPE ClearRule(
   6753         SPSTATEHANDLE hState) = 0;
   6754 
   6755     virtual HRESULT STDMETHODCALLTYPE CreateNewState(
   6756         SPSTATEHANDLE hState,
   6757         SPSTATEHANDLE *phState) = 0;
   6758 
   6759     virtual HRESULT STDMETHODCALLTYPE AddWordTransition(
   6760         SPSTATEHANDLE hFromState,
   6761         SPSTATEHANDLE hToState,
   6762         LPCWSTR psz,
   6763         LPCWSTR pszSeparators,
   6764         SPGRAMMARWORDTYPE eWordType,
   6765         float Weight,
   6766         const SPPROPERTYINFO *pPropInfo) = 0;
   6767 
   6768     virtual HRESULT STDMETHODCALLTYPE AddRuleTransition(
   6769         SPSTATEHANDLE hFromState,
   6770         SPSTATEHANDLE hToState,
   6771         SPSTATEHANDLE hRule,
   6772         float Weight,
   6773         const SPPROPERTYINFO *pPropInfo) = 0;
   6774 
   6775     virtual HRESULT STDMETHODCALLTYPE AddResource(
   6776         SPSTATEHANDLE hRuleState,
   6777         LPCWSTR pszResourceName,
   6778         LPCWSTR pszResourceValue) = 0;
   6779 
   6780     virtual HRESULT STDMETHODCALLTYPE Commit(
   6781         DWORD dwReserved) = 0;
   6782 
   6783 };
   6784 #ifdef __CRT_UUID_DECL
   6785 __CRT_UUID_DECL(ISpGrammarBuilder, 0x8137828f, 0x591a, 0x4a42, 0xbe,0x58, 0x49,0xea,0x7e,0xba,0xac,0x68)
   6786 #endif
   6787 #else
   6788 typedef struct ISpGrammarBuilderVtbl {
   6789     BEGIN_INTERFACE
   6790 
   6791     /*** IUnknown methods ***/
   6792     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6793         ISpGrammarBuilder *This,
   6794         REFIID riid,
   6795         void **ppvObject);
   6796 
   6797     ULONG (STDMETHODCALLTYPE *AddRef)(
   6798         ISpGrammarBuilder *This);
   6799 
   6800     ULONG (STDMETHODCALLTYPE *Release)(
   6801         ISpGrammarBuilder *This);
   6802 
   6803     /*** ISpGrammarBuilder methods ***/
   6804     HRESULT (STDMETHODCALLTYPE *ResetGrammar)(
   6805         ISpGrammarBuilder *This,
   6806         WORD NewLanguage);
   6807 
   6808     HRESULT (STDMETHODCALLTYPE *GetRule)(
   6809         ISpGrammarBuilder *This,
   6810         LPCWSTR pszRuleName,
   6811         DWORD dwRuleId,
   6812         DWORD dwAttributes,
   6813         WINBOOL fCreateIfNotExist,
   6814         SPSTATEHANDLE *phInitialState);
   6815 
   6816     HRESULT (STDMETHODCALLTYPE *ClearRule)(
   6817         ISpGrammarBuilder *This,
   6818         SPSTATEHANDLE hState);
   6819 
   6820     HRESULT (STDMETHODCALLTYPE *CreateNewState)(
   6821         ISpGrammarBuilder *This,
   6822         SPSTATEHANDLE hState,
   6823         SPSTATEHANDLE *phState);
   6824 
   6825     HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
   6826         ISpGrammarBuilder *This,
   6827         SPSTATEHANDLE hFromState,
   6828         SPSTATEHANDLE hToState,
   6829         LPCWSTR psz,
   6830         LPCWSTR pszSeparators,
   6831         SPGRAMMARWORDTYPE eWordType,
   6832         float Weight,
   6833         const SPPROPERTYINFO *pPropInfo);
   6834 
   6835     HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
   6836         ISpGrammarBuilder *This,
   6837         SPSTATEHANDLE hFromState,
   6838         SPSTATEHANDLE hToState,
   6839         SPSTATEHANDLE hRule,
   6840         float Weight,
   6841         const SPPROPERTYINFO *pPropInfo);
   6842 
   6843     HRESULT (STDMETHODCALLTYPE *AddResource)(
   6844         ISpGrammarBuilder *This,
   6845         SPSTATEHANDLE hRuleState,
   6846         LPCWSTR pszResourceName,
   6847         LPCWSTR pszResourceValue);
   6848 
   6849     HRESULT (STDMETHODCALLTYPE *Commit)(
   6850         ISpGrammarBuilder *This,
   6851         DWORD dwReserved);
   6852 
   6853     END_INTERFACE
   6854 } ISpGrammarBuilderVtbl;
   6855 
   6856 interface ISpGrammarBuilder {
   6857     CONST_VTBL ISpGrammarBuilderVtbl* lpVtbl;
   6858 };
   6859 
   6860 #ifdef COBJMACROS
   6861 #ifndef WIDL_C_INLINE_WRAPPERS
   6862 /*** IUnknown methods ***/
   6863 #define ISpGrammarBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6864 #define ISpGrammarBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
   6865 #define ISpGrammarBuilder_Release(This) (This)->lpVtbl->Release(This)
   6866 /*** ISpGrammarBuilder methods ***/
   6867 #define ISpGrammarBuilder_ResetGrammar(This,NewLanguage) (This)->lpVtbl->ResetGrammar(This,NewLanguage)
   6868 #define ISpGrammarBuilder_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState) (This)->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
   6869 #define ISpGrammarBuilder_ClearRule(This,hState) (This)->lpVtbl->ClearRule(This,hState)
   6870 #define ISpGrammarBuilder_CreateNewState(This,hState,phState) (This)->lpVtbl->CreateNewState(This,hState,phState)
   6871 #define ISpGrammarBuilder_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo) (This)->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
   6872 #define ISpGrammarBuilder_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo) (This)->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
   6873 #define ISpGrammarBuilder_AddResource(This,hRuleState,pszResourceName,pszResourceValue) (This)->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue)
   6874 #define ISpGrammarBuilder_Commit(This,dwReserved) (This)->lpVtbl->Commit(This,dwReserved)
   6875 #else
   6876 /*** IUnknown methods ***/
   6877 static inline HRESULT ISpGrammarBuilder_QueryInterface(ISpGrammarBuilder* This,REFIID riid,void **ppvObject) {
   6878     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6879 }
   6880 static inline ULONG ISpGrammarBuilder_AddRef(ISpGrammarBuilder* This) {
   6881     return This->lpVtbl->AddRef(This);
   6882 }
   6883 static inline ULONG ISpGrammarBuilder_Release(ISpGrammarBuilder* This) {
   6884     return This->lpVtbl->Release(This);
   6885 }
   6886 /*** ISpGrammarBuilder methods ***/
   6887 static inline HRESULT ISpGrammarBuilder_ResetGrammar(ISpGrammarBuilder* This,WORD NewLanguage) {
   6888     return This->lpVtbl->ResetGrammar(This,NewLanguage);
   6889 }
   6890 static inline HRESULT ISpGrammarBuilder_GetRule(ISpGrammarBuilder* This,LPCWSTR pszRuleName,DWORD dwRuleId,DWORD dwAttributes,WINBOOL fCreateIfNotExist,SPSTATEHANDLE *phInitialState) {
   6891     return This->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState);
   6892 }
   6893 static inline HRESULT ISpGrammarBuilder_ClearRule(ISpGrammarBuilder* This,SPSTATEHANDLE hState) {
   6894     return This->lpVtbl->ClearRule(This,hState);
   6895 }
   6896 static inline HRESULT ISpGrammarBuilder_CreateNewState(ISpGrammarBuilder* This,SPSTATEHANDLE hState,SPSTATEHANDLE *phState) {
   6897     return This->lpVtbl->CreateNewState(This,hState,phState);
   6898 }
   6899 static inline HRESULT ISpGrammarBuilder_AddWordTransition(ISpGrammarBuilder* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,LPCWSTR pszSeparators,SPGRAMMARWORDTYPE eWordType,float Weight,const SPPROPERTYINFO *pPropInfo) {
   6900     return This->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo);
   6901 }
   6902 static inline HRESULT ISpGrammarBuilder_AddRuleTransition(ISpGrammarBuilder* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,SPSTATEHANDLE hRule,float Weight,const SPPROPERTYINFO *pPropInfo) {
   6903     return This->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo);
   6904 }
   6905 static inline HRESULT ISpGrammarBuilder_AddResource(ISpGrammarBuilder* This,SPSTATEHANDLE hRuleState,LPCWSTR pszResourceName,LPCWSTR pszResourceValue) {
   6906     return This->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue);
   6907 }
   6908 static inline HRESULT ISpGrammarBuilder_Commit(ISpGrammarBuilder* This,DWORD dwReserved) {
   6909     return This->lpVtbl->Commit(This,dwReserved);
   6910 }
   6911 #endif
   6912 #endif
   6913 
   6914 #endif
   6915 
   6916 
   6917 #endif  /* __ISpGrammarBuilder_INTERFACE_DEFINED__ */
   6918 
   6919 typedef enum SPLOADOPTIONS {
   6920     SPLO_STATIC = 0,
   6921     SPLO_DYNAMIC = 1
   6922 } SPLOADOPTIONS;
   6923 /*****************************************************************************
   6924  * ISpRecoGrammar interface
   6925  */
   6926 #ifndef __ISpRecoGrammar_INTERFACE_DEFINED__
   6927 #define __ISpRecoGrammar_INTERFACE_DEFINED__
   6928 
   6929 DEFINE_GUID(IID_ISpRecoGrammar, 0x2177db29, 0x7f45, 0x47d0, 0x85,0x54, 0x06,0x7e,0x91,0xc8,0x05,0x02);
   6930 #if defined(__cplusplus) && !defined(CINTERFACE)
   6931 MIDL_INTERFACE("2177db29-7f45-47d0-8554-067e91c80502")
   6932 ISpRecoGrammar : public ISpGrammarBuilder
   6933 {
   6934     virtual HRESULT STDMETHODCALLTYPE GetGrammarId(
   6935         ULONGLONG *pullGrammarId) = 0;
   6936 
   6937     virtual HRESULT STDMETHODCALLTYPE GetRecoContext(
   6938         ISpRecoContext **ppRecoCtxt) = 0;
   6939 
   6940     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromFile(
   6941         LPCWSTR pszFileName,
   6942         SPLOADOPTIONS Options) = 0;
   6943 
   6944     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromObject(
   6945         REFCLSID rcid,
   6946         LPCWSTR pszGrammarName,
   6947         SPLOADOPTIONS Options) = 0;
   6948 
   6949     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromResource(
   6950         HMODULE hModule,
   6951         LPCWSTR pszResourceName,
   6952         LPCWSTR pszResourceType,
   6953         WORD wLanguage,
   6954         SPLOADOPTIONS Options) = 0;
   6955 
   6956     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromMemory(
   6957         const SPBINARYGRAMMAR *pGrammar,
   6958         SPLOADOPTIONS Options) = 0;
   6959 
   6960     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromProprietaryGrammar(
   6961         REFGUID rguidParam,
   6962         LPCWSTR pszStringParam,
   6963         const void *pvDataPrarm,
   6964         ULONG cbDataSize,
   6965         SPLOADOPTIONS Options) = 0;
   6966 
   6967     virtual HRESULT STDMETHODCALLTYPE SetRuleState(
   6968         LPCWSTR pszName,
   6969         void *pReserved,
   6970         SPRULESTATE NewState) = 0;
   6971 
   6972     virtual HRESULT STDMETHODCALLTYPE SetRuleIdState(
   6973         ULONG ulRuleId,
   6974         SPRULESTATE NewState) = 0;
   6975 
   6976     virtual HRESULT STDMETHODCALLTYPE LoadDictation(
   6977         LPCWSTR pszTopicName,
   6978         SPLOADOPTIONS Options) = 0;
   6979 
   6980     virtual HRESULT STDMETHODCALLTYPE UnloadDictation(
   6981         ) = 0;
   6982 
   6983     virtual HRESULT STDMETHODCALLTYPE SetDictationState(
   6984         SPRULESTATE NewState) = 0;
   6985 
   6986     virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData(
   6987         const WCHAR *pText,
   6988         ULONG cchText,
   6989         const SPTEXTSELECTIONINFO *pInfo) = 0;
   6990 
   6991     virtual HRESULT STDMETHODCALLTYPE SetTextSelection(
   6992         const SPTEXTSELECTIONINFO *pInfo) = 0;
   6993 
   6994     virtual HRESULT STDMETHODCALLTYPE IsPronounceable(
   6995         LPCWSTR pszWord,
   6996         SPWORDPRONOUNCEABLE *pWordPronounceable) = 0;
   6997 
   6998     virtual HRESULT STDMETHODCALLTYPE SetGrammarState(
   6999         SPGRAMMARSTATE eGrammarState) = 0;
   7000 
   7001     virtual HRESULT STDMETHODCALLTYPE SaveCmd(
   7002         IStream *pStream,
   7003         LPWSTR *ppszCoMemErrorText) = 0;
   7004 
   7005     virtual HRESULT STDMETHODCALLTYPE GetGrammarState(
   7006         SPGRAMMARSTATE *peGrammarState) = 0;
   7007 
   7008 };
   7009 #ifdef __CRT_UUID_DECL
   7010 __CRT_UUID_DECL(ISpRecoGrammar, 0x2177db29, 0x7f45, 0x47d0, 0x85,0x54, 0x06,0x7e,0x91,0xc8,0x05,0x02)
   7011 #endif
   7012 #else
   7013 typedef struct ISpRecoGrammarVtbl {
   7014     BEGIN_INTERFACE
   7015 
   7016     /*** IUnknown methods ***/
   7017     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7018         ISpRecoGrammar *This,
   7019         REFIID riid,
   7020         void **ppvObject);
   7021 
   7022     ULONG (STDMETHODCALLTYPE *AddRef)(
   7023         ISpRecoGrammar *This);
   7024 
   7025     ULONG (STDMETHODCALLTYPE *Release)(
   7026         ISpRecoGrammar *This);
   7027 
   7028     /*** ISpGrammarBuilder methods ***/
   7029     HRESULT (STDMETHODCALLTYPE *ResetGrammar)(
   7030         ISpRecoGrammar *This,
   7031         WORD NewLanguage);
   7032 
   7033     HRESULT (STDMETHODCALLTYPE *GetRule)(
   7034         ISpRecoGrammar *This,
   7035         LPCWSTR pszRuleName,
   7036         DWORD dwRuleId,
   7037         DWORD dwAttributes,
   7038         WINBOOL fCreateIfNotExist,
   7039         SPSTATEHANDLE *phInitialState);
   7040 
   7041     HRESULT (STDMETHODCALLTYPE *ClearRule)(
   7042         ISpRecoGrammar *This,
   7043         SPSTATEHANDLE hState);
   7044 
   7045     HRESULT (STDMETHODCALLTYPE *CreateNewState)(
   7046         ISpRecoGrammar *This,
   7047         SPSTATEHANDLE hState,
   7048         SPSTATEHANDLE *phState);
   7049 
   7050     HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
   7051         ISpRecoGrammar *This,
   7052         SPSTATEHANDLE hFromState,
   7053         SPSTATEHANDLE hToState,
   7054         LPCWSTR psz,
   7055         LPCWSTR pszSeparators,
   7056         SPGRAMMARWORDTYPE eWordType,
   7057         float Weight,
   7058         const SPPROPERTYINFO *pPropInfo);
   7059 
   7060     HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
   7061         ISpRecoGrammar *This,
   7062         SPSTATEHANDLE hFromState,
   7063         SPSTATEHANDLE hToState,
   7064         SPSTATEHANDLE hRule,
   7065         float Weight,
   7066         const SPPROPERTYINFO *pPropInfo);
   7067 
   7068     HRESULT (STDMETHODCALLTYPE *AddResource)(
   7069         ISpRecoGrammar *This,
   7070         SPSTATEHANDLE hRuleState,
   7071         LPCWSTR pszResourceName,
   7072         LPCWSTR pszResourceValue);
   7073 
   7074     HRESULT (STDMETHODCALLTYPE *Commit)(
   7075         ISpRecoGrammar *This,
   7076         DWORD dwReserved);
   7077 
   7078     /*** ISpRecoGrammar methods ***/
   7079     HRESULT (STDMETHODCALLTYPE *GetGrammarId)(
   7080         ISpRecoGrammar *This,
   7081         ULONGLONG *pullGrammarId);
   7082 
   7083     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
   7084         ISpRecoGrammar *This,
   7085         ISpRecoContext **ppRecoCtxt);
   7086 
   7087     HRESULT (STDMETHODCALLTYPE *LoadCmdFromFile)(
   7088         ISpRecoGrammar *This,
   7089         LPCWSTR pszFileName,
   7090         SPLOADOPTIONS Options);
   7091 
   7092     HRESULT (STDMETHODCALLTYPE *LoadCmdFromObject)(
   7093         ISpRecoGrammar *This,
   7094         REFCLSID rcid,
   7095         LPCWSTR pszGrammarName,
   7096         SPLOADOPTIONS Options);
   7097 
   7098     HRESULT (STDMETHODCALLTYPE *LoadCmdFromResource)(
   7099         ISpRecoGrammar *This,
   7100         HMODULE hModule,
   7101         LPCWSTR pszResourceName,
   7102         LPCWSTR pszResourceType,
   7103         WORD wLanguage,
   7104         SPLOADOPTIONS Options);
   7105 
   7106     HRESULT (STDMETHODCALLTYPE *LoadCmdFromMemory)(
   7107         ISpRecoGrammar *This,
   7108         const SPBINARYGRAMMAR *pGrammar,
   7109         SPLOADOPTIONS Options);
   7110 
   7111     HRESULT (STDMETHODCALLTYPE *LoadCmdFromProprietaryGrammar)(
   7112         ISpRecoGrammar *This,
   7113         REFGUID rguidParam,
   7114         LPCWSTR pszStringParam,
   7115         const void *pvDataPrarm,
   7116         ULONG cbDataSize,
   7117         SPLOADOPTIONS Options);
   7118 
   7119     HRESULT (STDMETHODCALLTYPE *SetRuleState)(
   7120         ISpRecoGrammar *This,
   7121         LPCWSTR pszName,
   7122         void *pReserved,
   7123         SPRULESTATE NewState);
   7124 
   7125     HRESULT (STDMETHODCALLTYPE *SetRuleIdState)(
   7126         ISpRecoGrammar *This,
   7127         ULONG ulRuleId,
   7128         SPRULESTATE NewState);
   7129 
   7130     HRESULT (STDMETHODCALLTYPE *LoadDictation)(
   7131         ISpRecoGrammar *This,
   7132         LPCWSTR pszTopicName,
   7133         SPLOADOPTIONS Options);
   7134 
   7135     HRESULT (STDMETHODCALLTYPE *UnloadDictation)(
   7136         ISpRecoGrammar *This);
   7137 
   7138     HRESULT (STDMETHODCALLTYPE *SetDictationState)(
   7139         ISpRecoGrammar *This,
   7140         SPRULESTATE NewState);
   7141 
   7142     HRESULT (STDMETHODCALLTYPE *SetWordSequenceData)(
   7143         ISpRecoGrammar *This,
   7144         const WCHAR *pText,
   7145         ULONG cchText,
   7146         const SPTEXTSELECTIONINFO *pInfo);
   7147 
   7148     HRESULT (STDMETHODCALLTYPE *SetTextSelection)(
   7149         ISpRecoGrammar *This,
   7150         const SPTEXTSELECTIONINFO *pInfo);
   7151 
   7152     HRESULT (STDMETHODCALLTYPE *IsPronounceable)(
   7153         ISpRecoGrammar *This,
   7154         LPCWSTR pszWord,
   7155         SPWORDPRONOUNCEABLE *pWordPronounceable);
   7156 
   7157     HRESULT (STDMETHODCALLTYPE *SetGrammarState)(
   7158         ISpRecoGrammar *This,
   7159         SPGRAMMARSTATE eGrammarState);
   7160 
   7161     HRESULT (STDMETHODCALLTYPE *SaveCmd)(
   7162         ISpRecoGrammar *This,
   7163         IStream *pStream,
   7164         LPWSTR *ppszCoMemErrorText);
   7165 
   7166     HRESULT (STDMETHODCALLTYPE *GetGrammarState)(
   7167         ISpRecoGrammar *This,
   7168         SPGRAMMARSTATE *peGrammarState);
   7169 
   7170     END_INTERFACE
   7171 } ISpRecoGrammarVtbl;
   7172 
   7173 interface ISpRecoGrammar {
   7174     CONST_VTBL ISpRecoGrammarVtbl* lpVtbl;
   7175 };
   7176 
   7177 #ifdef COBJMACROS
   7178 #ifndef WIDL_C_INLINE_WRAPPERS
   7179 /*** IUnknown methods ***/
   7180 #define ISpRecoGrammar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7181 #define ISpRecoGrammar_AddRef(This) (This)->lpVtbl->AddRef(This)
   7182 #define ISpRecoGrammar_Release(This) (This)->lpVtbl->Release(This)
   7183 /*** ISpGrammarBuilder methods ***/
   7184 #define ISpRecoGrammar_ResetGrammar(This,NewLanguage) (This)->lpVtbl->ResetGrammar(This,NewLanguage)
   7185 #define ISpRecoGrammar_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState) (This)->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
   7186 #define ISpRecoGrammar_ClearRule(This,hState) (This)->lpVtbl->ClearRule(This,hState)
   7187 #define ISpRecoGrammar_CreateNewState(This,hState,phState) (This)->lpVtbl->CreateNewState(This,hState,phState)
   7188 #define ISpRecoGrammar_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo) (This)->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
   7189 #define ISpRecoGrammar_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo) (This)->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
   7190 #define ISpRecoGrammar_AddResource(This,hRuleState,pszResourceName,pszResourceValue) (This)->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue)
   7191 #define ISpRecoGrammar_Commit(This,dwReserved) (This)->lpVtbl->Commit(This,dwReserved)
   7192 /*** ISpRecoGrammar methods ***/
   7193 #define ISpRecoGrammar_GetGrammarId(This,pullGrammarId) (This)->lpVtbl->GetGrammarId(This,pullGrammarId)
   7194 #define ISpRecoGrammar_GetRecoContext(This,ppRecoCtxt) (This)->lpVtbl->GetRecoContext(This,ppRecoCtxt)
   7195 #define ISpRecoGrammar_LoadCmdFromFile(This,pszFileName,Options) (This)->lpVtbl->LoadCmdFromFile(This,pszFileName,Options)
   7196 #define ISpRecoGrammar_LoadCmdFromObject(This,rcid,pszGrammarName,Options) (This)->lpVtbl->LoadCmdFromObject(This,rcid,pszGrammarName,Options)
   7197 #define ISpRecoGrammar_LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options) (This)->lpVtbl->LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options)
   7198 #define ISpRecoGrammar_LoadCmdFromMemory(This,pGrammar,Options) (This)->lpVtbl->LoadCmdFromMemory(This,pGrammar,Options)
   7199 #define ISpRecoGrammar_LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options) (This)->lpVtbl->LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options)
   7200 #define ISpRecoGrammar_SetRuleState(This,pszName,pReserved,NewState) (This)->lpVtbl->SetRuleState(This,pszName,pReserved,NewState)
   7201 #define ISpRecoGrammar_SetRuleIdState(This,ulRuleId,NewState) (This)->lpVtbl->SetRuleIdState(This,ulRuleId,NewState)
   7202 #define ISpRecoGrammar_LoadDictation(This,pszTopicName,Options) (This)->lpVtbl->LoadDictation(This,pszTopicName,Options)
   7203 #define ISpRecoGrammar_UnloadDictation(This) (This)->lpVtbl->UnloadDictation(This)
   7204 #define ISpRecoGrammar_SetDictationState(This,NewState) (This)->lpVtbl->SetDictationState(This,NewState)
   7205 #define ISpRecoGrammar_SetWordSequenceData(This,pText,cchText,pInfo) (This)->lpVtbl->SetWordSequenceData(This,pText,cchText,pInfo)
   7206 #define ISpRecoGrammar_SetTextSelection(This,pInfo) (This)->lpVtbl->SetTextSelection(This,pInfo)
   7207 #define ISpRecoGrammar_IsPronounceable(This,pszWord,pWordPronounceable) (This)->lpVtbl->IsPronounceable(This,pszWord,pWordPronounceable)
   7208 #define ISpRecoGrammar_SetGrammarState(This,eGrammarState) (This)->lpVtbl->SetGrammarState(This,eGrammarState)
   7209 #define ISpRecoGrammar_SaveCmd(This,pStream,ppszCoMemErrorText) (This)->lpVtbl->SaveCmd(This,pStream,ppszCoMemErrorText)
   7210 #define ISpRecoGrammar_GetGrammarState(This,peGrammarState) (This)->lpVtbl->GetGrammarState(This,peGrammarState)
   7211 #else
   7212 /*** IUnknown methods ***/
   7213 static inline HRESULT ISpRecoGrammar_QueryInterface(ISpRecoGrammar* This,REFIID riid,void **ppvObject) {
   7214     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7215 }
   7216 static inline ULONG ISpRecoGrammar_AddRef(ISpRecoGrammar* This) {
   7217     return This->lpVtbl->AddRef(This);
   7218 }
   7219 static inline ULONG ISpRecoGrammar_Release(ISpRecoGrammar* This) {
   7220     return This->lpVtbl->Release(This);
   7221 }
   7222 /*** ISpGrammarBuilder methods ***/
   7223 static inline HRESULT ISpRecoGrammar_ResetGrammar(ISpRecoGrammar* This,WORD NewLanguage) {
   7224     return This->lpVtbl->ResetGrammar(This,NewLanguage);
   7225 }
   7226 static inline HRESULT ISpRecoGrammar_GetRule(ISpRecoGrammar* This,LPCWSTR pszRuleName,DWORD dwRuleId,DWORD dwAttributes,WINBOOL fCreateIfNotExist,SPSTATEHANDLE *phInitialState) {
   7227     return This->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState);
   7228 }
   7229 static inline HRESULT ISpRecoGrammar_ClearRule(ISpRecoGrammar* This,SPSTATEHANDLE hState) {
   7230     return This->lpVtbl->ClearRule(This,hState);
   7231 }
   7232 static inline HRESULT ISpRecoGrammar_CreateNewState(ISpRecoGrammar* This,SPSTATEHANDLE hState,SPSTATEHANDLE *phState) {
   7233     return This->lpVtbl->CreateNewState(This,hState,phState);
   7234 }
   7235 static inline HRESULT ISpRecoGrammar_AddWordTransition(ISpRecoGrammar* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,LPCWSTR pszSeparators,SPGRAMMARWORDTYPE eWordType,float Weight,const SPPROPERTYINFO *pPropInfo) {
   7236     return This->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo);
   7237 }
   7238 static inline HRESULT ISpRecoGrammar_AddRuleTransition(ISpRecoGrammar* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,SPSTATEHANDLE hRule,float Weight,const SPPROPERTYINFO *pPropInfo) {
   7239     return This->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo);
   7240 }
   7241 static inline HRESULT ISpRecoGrammar_AddResource(ISpRecoGrammar* This,SPSTATEHANDLE hRuleState,LPCWSTR pszResourceName,LPCWSTR pszResourceValue) {
   7242     return This->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue);
   7243 }
   7244 static inline HRESULT ISpRecoGrammar_Commit(ISpRecoGrammar* This,DWORD dwReserved) {
   7245     return This->lpVtbl->Commit(This,dwReserved);
   7246 }
   7247 /*** ISpRecoGrammar methods ***/
   7248 static inline HRESULT ISpRecoGrammar_GetGrammarId(ISpRecoGrammar* This,ULONGLONG *pullGrammarId) {
   7249     return This->lpVtbl->GetGrammarId(This,pullGrammarId);
   7250 }
   7251 static inline HRESULT ISpRecoGrammar_GetRecoContext(ISpRecoGrammar* This,ISpRecoContext **ppRecoCtxt) {
   7252     return This->lpVtbl->GetRecoContext(This,ppRecoCtxt);
   7253 }
   7254 static inline HRESULT ISpRecoGrammar_LoadCmdFromFile(ISpRecoGrammar* This,LPCWSTR pszFileName,SPLOADOPTIONS Options) {
   7255     return This->lpVtbl->LoadCmdFromFile(This,pszFileName,Options);
   7256 }
   7257 static inline HRESULT ISpRecoGrammar_LoadCmdFromObject(ISpRecoGrammar* This,REFCLSID rcid,LPCWSTR pszGrammarName,SPLOADOPTIONS Options) {
   7258     return This->lpVtbl->LoadCmdFromObject(This,rcid,pszGrammarName,Options);
   7259 }
   7260 static inline HRESULT ISpRecoGrammar_LoadCmdFromResource(ISpRecoGrammar* This,HMODULE hModule,LPCWSTR pszResourceName,LPCWSTR pszResourceType,WORD wLanguage,SPLOADOPTIONS Options) {
   7261     return This->lpVtbl->LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options);
   7262 }
   7263 static inline HRESULT ISpRecoGrammar_LoadCmdFromMemory(ISpRecoGrammar* This,const SPBINARYGRAMMAR *pGrammar,SPLOADOPTIONS Options) {
   7264     return This->lpVtbl->LoadCmdFromMemory(This,pGrammar,Options);
   7265 }
   7266 static inline HRESULT ISpRecoGrammar_LoadCmdFromProprietaryGrammar(ISpRecoGrammar* This,REFGUID rguidParam,LPCWSTR pszStringParam,const void *pvDataPrarm,ULONG cbDataSize,SPLOADOPTIONS Options) {
   7267     return This->lpVtbl->LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options);
   7268 }
   7269 static inline HRESULT ISpRecoGrammar_SetRuleState(ISpRecoGrammar* This,LPCWSTR pszName,void *pReserved,SPRULESTATE NewState) {
   7270     return This->lpVtbl->SetRuleState(This,pszName,pReserved,NewState);
   7271 }
   7272 static inline HRESULT ISpRecoGrammar_SetRuleIdState(ISpRecoGrammar* This,ULONG ulRuleId,SPRULESTATE NewState) {
   7273     return This->lpVtbl->SetRuleIdState(This,ulRuleId,NewState);
   7274 }
   7275 static inline HRESULT ISpRecoGrammar_LoadDictation(ISpRecoGrammar* This,LPCWSTR pszTopicName,SPLOADOPTIONS Options) {
   7276     return This->lpVtbl->LoadDictation(This,pszTopicName,Options);
   7277 }
   7278 static inline HRESULT ISpRecoGrammar_UnloadDictation(ISpRecoGrammar* This) {
   7279     return This->lpVtbl->UnloadDictation(This);
   7280 }
   7281 static inline HRESULT ISpRecoGrammar_SetDictationState(ISpRecoGrammar* This,SPRULESTATE NewState) {
   7282     return This->lpVtbl->SetDictationState(This,NewState);
   7283 }
   7284 static inline HRESULT ISpRecoGrammar_SetWordSequenceData(ISpRecoGrammar* This,const WCHAR *pText,ULONG cchText,const SPTEXTSELECTIONINFO *pInfo) {
   7285     return This->lpVtbl->SetWordSequenceData(This,pText,cchText,pInfo);
   7286 }
   7287 static inline HRESULT ISpRecoGrammar_SetTextSelection(ISpRecoGrammar* This,const SPTEXTSELECTIONINFO *pInfo) {
   7288     return This->lpVtbl->SetTextSelection(This,pInfo);
   7289 }
   7290 static inline HRESULT ISpRecoGrammar_IsPronounceable(ISpRecoGrammar* This,LPCWSTR pszWord,SPWORDPRONOUNCEABLE *pWordPronounceable) {
   7291     return This->lpVtbl->IsPronounceable(This,pszWord,pWordPronounceable);
   7292 }
   7293 static inline HRESULT ISpRecoGrammar_SetGrammarState(ISpRecoGrammar* This,SPGRAMMARSTATE eGrammarState) {
   7294     return This->lpVtbl->SetGrammarState(This,eGrammarState);
   7295 }
   7296 static inline HRESULT ISpRecoGrammar_SaveCmd(ISpRecoGrammar* This,IStream *pStream,LPWSTR *ppszCoMemErrorText) {
   7297     return This->lpVtbl->SaveCmd(This,pStream,ppszCoMemErrorText);
   7298 }
   7299 static inline HRESULT ISpRecoGrammar_GetGrammarState(ISpRecoGrammar* This,SPGRAMMARSTATE *peGrammarState) {
   7300     return This->lpVtbl->GetGrammarState(This,peGrammarState);
   7301 }
   7302 #endif
   7303 #endif
   7304 
   7305 #endif
   7306 
   7307 
   7308 #endif  /* __ISpRecoGrammar_INTERFACE_DEFINED__ */
   7309 
   7310 typedef struct SPRECOCONTEXTSTATUS {
   7311     SPINTERFERENCE eInterference;
   7312     WCHAR szRequestTypeOfUI[255];
   7313     DWORD dwReserved1;
   7314     DWORD dwReserved2;
   7315 } SPRECOCONTEXTSTATUS;
   7316 typedef enum SPBOOKMARKOPTIONS {
   7317     SPBO_NONE = 0,
   7318     SPBO_PAUSE = 0x1
   7319 } SPBOOKMARKOPTIONS;
   7320 typedef enum SPAUDIOOPTIONS {
   7321     SPAO_NONE = 0,
   7322     SPAO_RETAIN_AUDIO = 0x1
   7323 } SPAUDIOOPTIONS;
   7324 /*****************************************************************************
   7325  * ISpRecoContext interface
   7326  */
   7327 #ifndef __ISpRecoContext_INTERFACE_DEFINED__
   7328 #define __ISpRecoContext_INTERFACE_DEFINED__
   7329 
   7330 DEFINE_GUID(IID_ISpRecoContext, 0xf740a62f, 0x7c15, 0x489e, 0x82,0x34, 0x94,0x0a,0x33,0xd9,0x27,0x2d);
   7331 #if defined(__cplusplus) && !defined(CINTERFACE)
   7332 MIDL_INTERFACE("f740a62f-7c15-489e-8234-940a33d9272d")
   7333 ISpRecoContext : public ISpEventSource
   7334 {
   7335     virtual HRESULT STDMETHODCALLTYPE GetRecognizer(
   7336         ISpRecognizer **ppRecognizer) = 0;
   7337 
   7338     virtual HRESULT STDMETHODCALLTYPE CreateGrammar(
   7339         ULONGLONG ullGrammarId,
   7340         ISpRecoGrammar **ppGrammar) = 0;
   7341 
   7342     virtual HRESULT STDMETHODCALLTYPE GetStatus(
   7343         SPRECOCONTEXTSTATUS *pStatus) = 0;
   7344 
   7345     virtual HRESULT STDMETHODCALLTYPE GetMaxAlternates(
   7346         ULONG *pcAlternates) = 0;
   7347 
   7348     virtual HRESULT STDMETHODCALLTYPE SetMaxAlternates(
   7349         ULONG cAlternates) = 0;
   7350 
   7351     virtual HRESULT STDMETHODCALLTYPE SetAudioOptions(
   7352         SPAUDIOOPTIONS Options,
   7353         const GUID *pAudioFormatId,
   7354         const WAVEFORMATEX *pWaveFormatEx) = 0;
   7355 
   7356     virtual HRESULT STDMETHODCALLTYPE GetAudioOptions(
   7357         SPAUDIOOPTIONS *pOptions,
   7358         GUID *pAudioFormatId,
   7359         WAVEFORMATEX **ppCoMemWFEX) = 0;
   7360 
   7361     virtual HRESULT STDMETHODCALLTYPE DeserializeResult(
   7362         const SPSERIALIZEDRESULT *pSerializedResult,
   7363         ISpRecoResult **ppResult) = 0;
   7364 
   7365     virtual HRESULT STDMETHODCALLTYPE Bookmark(
   7366         SPBOOKMARKOPTIONS Options,
   7367         ULONGLONG ullStreamPosition,
   7368         LPARAM lparamEvent) = 0;
   7369 
   7370     virtual HRESULT STDMETHODCALLTYPE SetAdaptationData(
   7371         LPCWSTR pAdaptationData,
   7372         const ULONG cch) = 0;
   7373 
   7374     virtual HRESULT STDMETHODCALLTYPE Pause(
   7375         DWORD dwReserved) = 0;
   7376 
   7377     virtual HRESULT STDMETHODCALLTYPE Resume(
   7378         DWORD dwReserved) = 0;
   7379 
   7380     virtual HRESULT STDMETHODCALLTYPE SetVoice(
   7381         ISpVoice *pVoice,
   7382         WINBOOL fAllowFormatChanges) = 0;
   7383 
   7384     virtual HRESULT STDMETHODCALLTYPE GetVoice(
   7385         ISpVoice **ppVoice) = 0;
   7386 
   7387     virtual HRESULT STDMETHODCALLTYPE SetVoicePurgeEvent(
   7388         ULONGLONG ullEventInterest) = 0;
   7389 
   7390     virtual HRESULT STDMETHODCALLTYPE GetVoicePurgeEvent(
   7391         ULONGLONG *pullEventInterest) = 0;
   7392 
   7393     virtual HRESULT STDMETHODCALLTYPE SetContextState(
   7394         SPCONTEXTSTATE eContextState) = 0;
   7395 
   7396     virtual HRESULT STDMETHODCALLTYPE GetContextState(
   7397         SPCONTEXTSTATE *peContextState) = 0;
   7398 
   7399 };
   7400 #ifdef __CRT_UUID_DECL
   7401 __CRT_UUID_DECL(ISpRecoContext, 0xf740a62f, 0x7c15, 0x489e, 0x82,0x34, 0x94,0x0a,0x33,0xd9,0x27,0x2d)
   7402 #endif
   7403 #else
   7404 typedef struct ISpRecoContextVtbl {
   7405     BEGIN_INTERFACE
   7406 
   7407     /*** IUnknown methods ***/
   7408     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7409         ISpRecoContext *This,
   7410         REFIID riid,
   7411         void **ppvObject);
   7412 
   7413     ULONG (STDMETHODCALLTYPE *AddRef)(
   7414         ISpRecoContext *This);
   7415 
   7416     ULONG (STDMETHODCALLTYPE *Release)(
   7417         ISpRecoContext *This);
   7418 
   7419     /*** ISpNotifySource methods ***/
   7420     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
   7421         ISpRecoContext *This,
   7422         ISpNotifySink *pNotifySink);
   7423 
   7424     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
   7425         ISpRecoContext *This,
   7426         HWND hWnd,
   7427         UINT Msg,
   7428         WPARAM wParam,
   7429         LPARAM lParam);
   7430 
   7431     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
   7432         ISpRecoContext *This,
   7433         SPNOTIFYCALLBACK *pfnCallback,
   7434         WPARAM wParam,
   7435         LPARAM lParam);
   7436 
   7437     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
   7438         ISpRecoContext *This,
   7439         ISpNotifyCallback *pSpCallback,
   7440         WPARAM wParam,
   7441         LPARAM lParam);
   7442 
   7443     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
   7444         ISpRecoContext *This);
   7445 
   7446     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
   7447         ISpRecoContext *This,
   7448         DWORD dwMilliseconds);
   7449 
   7450     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
   7451         ISpRecoContext *This);
   7452 
   7453     /*** ISpEventSource methods ***/
   7454     HRESULT (STDMETHODCALLTYPE *SetInterest)(
   7455         ISpRecoContext *This,
   7456         ULONGLONG ullEventInterest,
   7457         ULONGLONG ullQueuedInterest);
   7458 
   7459     HRESULT (STDMETHODCALLTYPE *GetEvents)(
   7460         ISpRecoContext *This,
   7461         ULONG ulCount,
   7462         SPEVENT *pEventArray,
   7463         ULONG *pulFetched);
   7464 
   7465     HRESULT (STDMETHODCALLTYPE *GetInfo)(
   7466         ISpRecoContext *This,
   7467         SPEVENTSOURCEINFO *pInfo);
   7468 
   7469     /*** ISpRecoContext methods ***/
   7470     HRESULT (STDMETHODCALLTYPE *GetRecognizer)(
   7471         ISpRecoContext *This,
   7472         ISpRecognizer **ppRecognizer);
   7473 
   7474     HRESULT (STDMETHODCALLTYPE *CreateGrammar)(
   7475         ISpRecoContext *This,
   7476         ULONGLONG ullGrammarId,
   7477         ISpRecoGrammar **ppGrammar);
   7478 
   7479     HRESULT (STDMETHODCALLTYPE *GetStatus)(
   7480         ISpRecoContext *This,
   7481         SPRECOCONTEXTSTATUS *pStatus);
   7482 
   7483     HRESULT (STDMETHODCALLTYPE *GetMaxAlternates)(
   7484         ISpRecoContext *This,
   7485         ULONG *pcAlternates);
   7486 
   7487     HRESULT (STDMETHODCALLTYPE *SetMaxAlternates)(
   7488         ISpRecoContext *This,
   7489         ULONG cAlternates);
   7490 
   7491     HRESULT (STDMETHODCALLTYPE *SetAudioOptions)(
   7492         ISpRecoContext *This,
   7493         SPAUDIOOPTIONS Options,
   7494         const GUID *pAudioFormatId,
   7495         const WAVEFORMATEX *pWaveFormatEx);
   7496 
   7497     HRESULT (STDMETHODCALLTYPE *GetAudioOptions)(
   7498         ISpRecoContext *This,
   7499         SPAUDIOOPTIONS *pOptions,
   7500         GUID *pAudioFormatId,
   7501         WAVEFORMATEX **ppCoMemWFEX);
   7502 
   7503     HRESULT (STDMETHODCALLTYPE *DeserializeResult)(
   7504         ISpRecoContext *This,
   7505         const SPSERIALIZEDRESULT *pSerializedResult,
   7506         ISpRecoResult **ppResult);
   7507 
   7508     HRESULT (STDMETHODCALLTYPE *Bookmark)(
   7509         ISpRecoContext *This,
   7510         SPBOOKMARKOPTIONS Options,
   7511         ULONGLONG ullStreamPosition,
   7512         LPARAM lparamEvent);
   7513 
   7514     HRESULT (STDMETHODCALLTYPE *SetAdaptationData)(
   7515         ISpRecoContext *This,
   7516         LPCWSTR pAdaptationData,
   7517         const ULONG cch);
   7518 
   7519     HRESULT (STDMETHODCALLTYPE *Pause)(
   7520         ISpRecoContext *This,
   7521         DWORD dwReserved);
   7522 
   7523     HRESULT (STDMETHODCALLTYPE *Resume)(
   7524         ISpRecoContext *This,
   7525         DWORD dwReserved);
   7526 
   7527     HRESULT (STDMETHODCALLTYPE *SetVoice)(
   7528         ISpRecoContext *This,
   7529         ISpVoice *pVoice,
   7530         WINBOOL fAllowFormatChanges);
   7531 
   7532     HRESULT (STDMETHODCALLTYPE *GetVoice)(
   7533         ISpRecoContext *This,
   7534         ISpVoice **ppVoice);
   7535 
   7536     HRESULT (STDMETHODCALLTYPE *SetVoicePurgeEvent)(
   7537         ISpRecoContext *This,
   7538         ULONGLONG ullEventInterest);
   7539 
   7540     HRESULT (STDMETHODCALLTYPE *GetVoicePurgeEvent)(
   7541         ISpRecoContext *This,
   7542         ULONGLONG *pullEventInterest);
   7543 
   7544     HRESULT (STDMETHODCALLTYPE *SetContextState)(
   7545         ISpRecoContext *This,
   7546         SPCONTEXTSTATE eContextState);
   7547 
   7548     HRESULT (STDMETHODCALLTYPE *GetContextState)(
   7549         ISpRecoContext *This,
   7550         SPCONTEXTSTATE *peContextState);
   7551 
   7552     END_INTERFACE
   7553 } ISpRecoContextVtbl;
   7554 
   7555 interface ISpRecoContext {
   7556     CONST_VTBL ISpRecoContextVtbl* lpVtbl;
   7557 };
   7558 
   7559 #ifdef COBJMACROS
   7560 #ifndef WIDL_C_INLINE_WRAPPERS
   7561 /*** IUnknown methods ***/
   7562 #define ISpRecoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7563 #define ISpRecoContext_AddRef(This) (This)->lpVtbl->AddRef(This)
   7564 #define ISpRecoContext_Release(This) (This)->lpVtbl->Release(This)
   7565 /*** ISpNotifySource methods ***/
   7566 #define ISpRecoContext_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
   7567 #define ISpRecoContext_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
   7568 #define ISpRecoContext_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
   7569 #define ISpRecoContext_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
   7570 #define ISpRecoContext_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
   7571 #define ISpRecoContext_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
   7572 #define ISpRecoContext_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
   7573 /*** ISpEventSource methods ***/
   7574 #define ISpRecoContext_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
   7575 #define ISpRecoContext_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
   7576 #define ISpRecoContext_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
   7577 /*** ISpRecoContext methods ***/
   7578 #define ISpRecoContext_GetRecognizer(This,ppRecognizer) (This)->lpVtbl->GetRecognizer(This,ppRecognizer)
   7579 #define ISpRecoContext_CreateGrammar(This,ullGrammarId,ppGrammar) (This)->lpVtbl->CreateGrammar(This,ullGrammarId,ppGrammar)
   7580 #define ISpRecoContext_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
   7581 #define ISpRecoContext_GetMaxAlternates(This,pcAlternates) (This)->lpVtbl->GetMaxAlternates(This,pcAlternates)
   7582 #define ISpRecoContext_SetMaxAlternates(This,cAlternates) (This)->lpVtbl->SetMaxAlternates(This,cAlternates)
   7583 #define ISpRecoContext_SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx)
   7584 #define ISpRecoContext_GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX) (This)->lpVtbl->GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX)
   7585 #define ISpRecoContext_DeserializeResult(This,pSerializedResult,ppResult) (This)->lpVtbl->DeserializeResult(This,pSerializedResult,ppResult)
   7586 #define ISpRecoContext_Bookmark(This,Options,ullStreamPosition,lparamEvent) (This)->lpVtbl->Bookmark(This,Options,ullStreamPosition,lparamEvent)
   7587 #define ISpRecoContext_SetAdaptationData(This,pAdaptationData,cch) (This)->lpVtbl->SetAdaptationData(This,pAdaptationData,cch)
   7588 #define ISpRecoContext_Pause(This,dwReserved) (This)->lpVtbl->Pause(This,dwReserved)
   7589 #define ISpRecoContext_Resume(This,dwReserved) (This)->lpVtbl->Resume(This,dwReserved)
   7590 #define ISpRecoContext_SetVoice(This,pVoice,fAllowFormatChanges) (This)->lpVtbl->SetVoice(This,pVoice,fAllowFormatChanges)
   7591 #define ISpRecoContext_GetVoice(This,ppVoice) (This)->lpVtbl->GetVoice(This,ppVoice)
   7592 #define ISpRecoContext_SetVoicePurgeEvent(This,ullEventInterest) (This)->lpVtbl->SetVoicePurgeEvent(This,ullEventInterest)
   7593 #define ISpRecoContext_GetVoicePurgeEvent(This,pullEventInterest) (This)->lpVtbl->GetVoicePurgeEvent(This,pullEventInterest)
   7594 #define ISpRecoContext_SetContextState(This,eContextState) (This)->lpVtbl->SetContextState(This,eContextState)
   7595 #define ISpRecoContext_GetContextState(This,peContextState) (This)->lpVtbl->GetContextState(This,peContextState)
   7596 #else
   7597 /*** IUnknown methods ***/
   7598 static inline HRESULT ISpRecoContext_QueryInterface(ISpRecoContext* This,REFIID riid,void **ppvObject) {
   7599     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7600 }
   7601 static inline ULONG ISpRecoContext_AddRef(ISpRecoContext* This) {
   7602     return This->lpVtbl->AddRef(This);
   7603 }
   7604 static inline ULONG ISpRecoContext_Release(ISpRecoContext* This) {
   7605     return This->lpVtbl->Release(This);
   7606 }
   7607 /*** ISpNotifySource methods ***/
   7608 static inline HRESULT ISpRecoContext_SetNotifySink(ISpRecoContext* This,ISpNotifySink *pNotifySink) {
   7609     return This->lpVtbl->SetNotifySink(This,pNotifySink);
   7610 }
   7611 static inline HRESULT ISpRecoContext_SetNotifyWindowMessage(ISpRecoContext* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
   7612     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
   7613 }
   7614 static inline HRESULT ISpRecoContext_SetNotifyCallbackFunction(ISpRecoContext* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
   7615     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
   7616 }
   7617 static inline HRESULT ISpRecoContext_SetNotifyCallbackInterface(ISpRecoContext* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
   7618     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
   7619 }
   7620 static inline HRESULT ISpRecoContext_SetNotifyWin32Event(ISpRecoContext* This) {
   7621     return This->lpVtbl->SetNotifyWin32Event(This);
   7622 }
   7623 static inline HRESULT ISpRecoContext_WaitForNotifyEvent(ISpRecoContext* This,DWORD dwMilliseconds) {
   7624     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
   7625 }
   7626 static inline HANDLE ISpRecoContext_GetNotifyEventHandle(ISpRecoContext* This) {
   7627     return This->lpVtbl->GetNotifyEventHandle(This);
   7628 }
   7629 /*** ISpEventSource methods ***/
   7630 static inline HRESULT ISpRecoContext_SetInterest(ISpRecoContext* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
   7631     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
   7632 }
   7633 static inline HRESULT ISpRecoContext_GetEvents(ISpRecoContext* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
   7634     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
   7635 }
   7636 static inline HRESULT ISpRecoContext_GetInfo(ISpRecoContext* This,SPEVENTSOURCEINFO *pInfo) {
   7637     return This->lpVtbl->GetInfo(This,pInfo);
   7638 }
   7639 /*** ISpRecoContext methods ***/
   7640 static inline HRESULT ISpRecoContext_GetRecognizer(ISpRecoContext* This,ISpRecognizer **ppRecognizer) {
   7641     return This->lpVtbl->GetRecognizer(This,ppRecognizer);
   7642 }
   7643 static inline HRESULT ISpRecoContext_CreateGrammar(ISpRecoContext* This,ULONGLONG ullGrammarId,ISpRecoGrammar **ppGrammar) {
   7644     return This->lpVtbl->CreateGrammar(This,ullGrammarId,ppGrammar);
   7645 }
   7646 static inline HRESULT ISpRecoContext_GetStatus(ISpRecoContext* This,SPRECOCONTEXTSTATUS *pStatus) {
   7647     return This->lpVtbl->GetStatus(This,pStatus);
   7648 }
   7649 static inline HRESULT ISpRecoContext_GetMaxAlternates(ISpRecoContext* This,ULONG *pcAlternates) {
   7650     return This->lpVtbl->GetMaxAlternates(This,pcAlternates);
   7651 }
   7652 static inline HRESULT ISpRecoContext_SetMaxAlternates(ISpRecoContext* This,ULONG cAlternates) {
   7653     return This->lpVtbl->SetMaxAlternates(This,cAlternates);
   7654 }
   7655 static inline HRESULT ISpRecoContext_SetAudioOptions(ISpRecoContext* This,SPAUDIOOPTIONS Options,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
   7656     return This->lpVtbl->SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx);
   7657 }
   7658 static inline HRESULT ISpRecoContext_GetAudioOptions(ISpRecoContext* This,SPAUDIOOPTIONS *pOptions,GUID *pAudioFormatId,WAVEFORMATEX **ppCoMemWFEX) {
   7659     return This->lpVtbl->GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX);
   7660 }
   7661 static inline HRESULT ISpRecoContext_DeserializeResult(ISpRecoContext* This,const SPSERIALIZEDRESULT *pSerializedResult,ISpRecoResult **ppResult) {
   7662     return This->lpVtbl->DeserializeResult(This,pSerializedResult,ppResult);
   7663 }
   7664 static inline HRESULT ISpRecoContext_Bookmark(ISpRecoContext* This,SPBOOKMARKOPTIONS Options,ULONGLONG ullStreamPosition,LPARAM lparamEvent) {
   7665     return This->lpVtbl->Bookmark(This,Options,ullStreamPosition,lparamEvent);
   7666 }
   7667 static inline HRESULT ISpRecoContext_SetAdaptationData(ISpRecoContext* This,LPCWSTR pAdaptationData,const ULONG cch) {
   7668     return This->lpVtbl->SetAdaptationData(This,pAdaptationData,cch);
   7669 }
   7670 static inline HRESULT ISpRecoContext_Pause(ISpRecoContext* This,DWORD dwReserved) {
   7671     return This->lpVtbl->Pause(This,dwReserved);
   7672 }
   7673 static inline HRESULT ISpRecoContext_Resume(ISpRecoContext* This,DWORD dwReserved) {
   7674     return This->lpVtbl->Resume(This,dwReserved);
   7675 }
   7676 static inline HRESULT ISpRecoContext_SetVoice(ISpRecoContext* This,ISpVoice *pVoice,WINBOOL fAllowFormatChanges) {
   7677     return This->lpVtbl->SetVoice(This,pVoice,fAllowFormatChanges);
   7678 }
   7679 static inline HRESULT ISpRecoContext_GetVoice(ISpRecoContext* This,ISpVoice **ppVoice) {
   7680     return This->lpVtbl->GetVoice(This,ppVoice);
   7681 }
   7682 static inline HRESULT ISpRecoContext_SetVoicePurgeEvent(ISpRecoContext* This,ULONGLONG ullEventInterest) {
   7683     return This->lpVtbl->SetVoicePurgeEvent(This,ullEventInterest);
   7684 }
   7685 static inline HRESULT ISpRecoContext_GetVoicePurgeEvent(ISpRecoContext* This,ULONGLONG *pullEventInterest) {
   7686     return This->lpVtbl->GetVoicePurgeEvent(This,pullEventInterest);
   7687 }
   7688 static inline HRESULT ISpRecoContext_SetContextState(ISpRecoContext* This,SPCONTEXTSTATE eContextState) {
   7689     return This->lpVtbl->SetContextState(This,eContextState);
   7690 }
   7691 static inline HRESULT ISpRecoContext_GetContextState(ISpRecoContext* This,SPCONTEXTSTATE *peContextState) {
   7692     return This->lpVtbl->GetContextState(This,peContextState);
   7693 }
   7694 #endif
   7695 #endif
   7696 
   7697 #endif
   7698 
   7699 
   7700 #endif  /* __ISpRecoContext_INTERFACE_DEFINED__ */
   7701 
   7702 /*****************************************************************************
   7703  * ISpProperties interface
   7704  */
   7705 #ifndef __ISpProperties_INTERFACE_DEFINED__
   7706 #define __ISpProperties_INTERFACE_DEFINED__
   7707 
   7708 DEFINE_GUID(IID_ISpProperties, 0x5b4fb971, 0xb115, 0x4de1, 0xad,0x97, 0xe4,0x82,0xe3,0xbf,0x6e,0xe4);
   7709 #if defined(__cplusplus) && !defined(CINTERFACE)
   7710 MIDL_INTERFACE("5b4fb971-b115-4de1-ad97-e482e3bf6ee4")
   7711 ISpProperties : public IUnknown
   7712 {
   7713     virtual HRESULT STDMETHODCALLTYPE SetPropertyNum(
   7714         LPCWSTR pName,
   7715         LONG lValue) = 0;
   7716 
   7717     virtual HRESULT STDMETHODCALLTYPE GetPropertyNum(
   7718         LPCWSTR pName,
   7719         LONG *plValue) = 0;
   7720 
   7721     virtual HRESULT STDMETHODCALLTYPE SetPropertyString(
   7722         LPCWSTR pName,
   7723         LPCWSTR pValue) = 0;
   7724 
   7725     virtual HRESULT STDMETHODCALLTYPE GetPropertyString(
   7726         LPCWSTR pName,
   7727         LPWSTR *ppCoMemValue) = 0;
   7728 
   7729 };
   7730 #ifdef __CRT_UUID_DECL
   7731 __CRT_UUID_DECL(ISpProperties, 0x5b4fb971, 0xb115, 0x4de1, 0xad,0x97, 0xe4,0x82,0xe3,0xbf,0x6e,0xe4)
   7732 #endif
   7733 #else
   7734 typedef struct ISpPropertiesVtbl {
   7735     BEGIN_INTERFACE
   7736 
   7737     /*** IUnknown methods ***/
   7738     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7739         ISpProperties *This,
   7740         REFIID riid,
   7741         void **ppvObject);
   7742 
   7743     ULONG (STDMETHODCALLTYPE *AddRef)(
   7744         ISpProperties *This);
   7745 
   7746     ULONG (STDMETHODCALLTYPE *Release)(
   7747         ISpProperties *This);
   7748 
   7749     /*** ISpProperties methods ***/
   7750     HRESULT (STDMETHODCALLTYPE *SetPropertyNum)(
   7751         ISpProperties *This,
   7752         LPCWSTR pName,
   7753         LONG lValue);
   7754 
   7755     HRESULT (STDMETHODCALLTYPE *GetPropertyNum)(
   7756         ISpProperties *This,
   7757         LPCWSTR pName,
   7758         LONG *plValue);
   7759 
   7760     HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
   7761         ISpProperties *This,
   7762         LPCWSTR pName,
   7763         LPCWSTR pValue);
   7764 
   7765     HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
   7766         ISpProperties *This,
   7767         LPCWSTR pName,
   7768         LPWSTR *ppCoMemValue);
   7769 
   7770     END_INTERFACE
   7771 } ISpPropertiesVtbl;
   7772 
   7773 interface ISpProperties {
   7774     CONST_VTBL ISpPropertiesVtbl* lpVtbl;
   7775 };
   7776 
   7777 #ifdef COBJMACROS
   7778 #ifndef WIDL_C_INLINE_WRAPPERS
   7779 /*** IUnknown methods ***/
   7780 #define ISpProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7781 #define ISpProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
   7782 #define ISpProperties_Release(This) (This)->lpVtbl->Release(This)
   7783 /*** ISpProperties methods ***/
   7784 #define ISpProperties_SetPropertyNum(This,pName,lValue) (This)->lpVtbl->SetPropertyNum(This,pName,lValue)
   7785 #define ISpProperties_GetPropertyNum(This,pName,plValue) (This)->lpVtbl->GetPropertyNum(This,pName,plValue)
   7786 #define ISpProperties_SetPropertyString(This,pName,pValue) (This)->lpVtbl->SetPropertyString(This,pName,pValue)
   7787 #define ISpProperties_GetPropertyString(This,pName,ppCoMemValue) (This)->lpVtbl->GetPropertyString(This,pName,ppCoMemValue)
   7788 #else
   7789 /*** IUnknown methods ***/
   7790 static inline HRESULT ISpProperties_QueryInterface(ISpProperties* This,REFIID riid,void **ppvObject) {
   7791     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7792 }
   7793 static inline ULONG ISpProperties_AddRef(ISpProperties* This) {
   7794     return This->lpVtbl->AddRef(This);
   7795 }
   7796 static inline ULONG ISpProperties_Release(ISpProperties* This) {
   7797     return This->lpVtbl->Release(This);
   7798 }
   7799 /*** ISpProperties methods ***/
   7800 static inline HRESULT ISpProperties_SetPropertyNum(ISpProperties* This,LPCWSTR pName,LONG lValue) {
   7801     return This->lpVtbl->SetPropertyNum(This,pName,lValue);
   7802 }
   7803 static inline HRESULT ISpProperties_GetPropertyNum(ISpProperties* This,LPCWSTR pName,LONG *plValue) {
   7804     return This->lpVtbl->GetPropertyNum(This,pName,plValue);
   7805 }
   7806 static inline HRESULT ISpProperties_SetPropertyString(ISpProperties* This,LPCWSTR pName,LPCWSTR pValue) {
   7807     return This->lpVtbl->SetPropertyString(This,pName,pValue);
   7808 }
   7809 static inline HRESULT ISpProperties_GetPropertyString(ISpProperties* This,LPCWSTR pName,LPWSTR *ppCoMemValue) {
   7810     return This->lpVtbl->GetPropertyString(This,pName,ppCoMemValue);
   7811 }
   7812 #endif
   7813 #endif
   7814 
   7815 #endif
   7816 
   7817 
   7818 #endif  /* __ISpProperties_INTERFACE_DEFINED__ */
   7819 
   7820 #define SP_MAX_LANGIDS (20)
   7821 
   7822 typedef struct SPRECOGNIZERSTATUS {
   7823     SPAUDIOSTATUS AudioStatus;
   7824     ULONGLONG ullRecognitionStreamPos;
   7825     ULONG ulStreamNumber;
   7826     ULONG ulNumActive;
   7827     CLSID clsidEngine;
   7828     ULONG cLangIDs;
   7829     WORD aLangID[20];
   7830     ULONGLONG ullRecognitionStreamTime;
   7831 } SPRECOGNIZERSTATUS;
   7832 typedef enum SPWAVEFORMATTYPE {
   7833     SPWF_INPUT = 0,
   7834     SPWF_SRENGINE = 1
   7835 } SPSTREAMFORMATTYPE;
   7836 typedef enum SPRECOSTATE {
   7837     SPRST_INACTIVE = 0,
   7838     SPRST_ACTIVE = 1,
   7839     SPRST_ACTIVE_ALWAYS = 2,
   7840     SPRST_INACTIVE_WITH_PURGE = 3,
   7841     SPRST_NUM_STATES = 4
   7842 } SPRECOSTATE;
   7843 /*****************************************************************************
   7844  * ISpRecognizer interface
   7845  */
   7846 #ifndef __ISpRecognizer_INTERFACE_DEFINED__
   7847 #define __ISpRecognizer_INTERFACE_DEFINED__
   7848 
   7849 DEFINE_GUID(IID_ISpRecognizer, 0xc2b5f241, 0xdaa0, 0x4507, 0x9e,0x16, 0x5a,0x1e,0xaa,0x2b,0x7a,0x5c);
   7850 #if defined(__cplusplus) && !defined(CINTERFACE)
   7851 MIDL_INTERFACE("c2b5f241-daa0-4507-9e16-5a1eaa2b7a5c")
   7852 ISpRecognizer : public ISpProperties
   7853 {
   7854     virtual HRESULT STDMETHODCALLTYPE SetRecognizer(
   7855         ISpObjectToken *pRecognizer) = 0;
   7856 
   7857     virtual HRESULT STDMETHODCALLTYPE GetRecognizer(
   7858         ISpObjectToken **ppRecognizer) = 0;
   7859 
   7860     virtual HRESULT STDMETHODCALLTYPE SetInput(
   7861         IUnknown *pUnkInput,
   7862         WINBOOL fAllowFormatChanges) = 0;
   7863 
   7864     virtual HRESULT STDMETHODCALLTYPE GetInputObjectToken(
   7865         ISpObjectToken **ppToken) = 0;
   7866 
   7867     virtual HRESULT STDMETHODCALLTYPE GetInputStream(
   7868         ISpStreamFormat **ppStream) = 0;
   7869 
   7870     virtual HRESULT STDMETHODCALLTYPE CreateRecoContext(
   7871         ISpRecoContext **ppNewCtxt) = 0;
   7872 
   7873     virtual HRESULT STDMETHODCALLTYPE GetRecoProfile(
   7874         ISpObjectToken **ppToken) = 0;
   7875 
   7876     virtual HRESULT STDMETHODCALLTYPE SetRecoProfile(
   7877         ISpObjectToken *pToken) = 0;
   7878 
   7879     virtual HRESULT STDMETHODCALLTYPE IsSharedInstance(
   7880         ) = 0;
   7881 
   7882     virtual HRESULT STDMETHODCALLTYPE GetRecoState(
   7883         SPRECOSTATE *pState) = 0;
   7884 
   7885     virtual HRESULT STDMETHODCALLTYPE SetRecoState(
   7886         SPRECOSTATE NewState) = 0;
   7887 
   7888     virtual HRESULT STDMETHODCALLTYPE GetStatus(
   7889         SPRECOGNIZERSTATUS *pStatus) = 0;
   7890 
   7891     virtual HRESULT STDMETHODCALLTYPE GetFormat(
   7892         SPSTREAMFORMATTYPE WaveFormatType,
   7893         GUID *pFormatId,
   7894         WAVEFORMATEX **ppCoMemWFEX) = 0;
   7895 
   7896     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
   7897         LPCWSTR pszTypeOfUI,
   7898         void *pvExtraData,
   7899         ULONG cbExtraData,
   7900         WINBOOL *pfSupported) = 0;
   7901 
   7902     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
   7903         HWND hwndParent,
   7904         LPCWSTR pszTitle,
   7905         LPCWSTR pszTypeOfUI,
   7906         void *pvExtraData,
   7907         ULONG cbExtraData) = 0;
   7908 
   7909     virtual HRESULT STDMETHODCALLTYPE EmulateRecognition(
   7910         ISpPhrase *pPhrase) = 0;
   7911 
   7912 };
   7913 #ifdef __CRT_UUID_DECL
   7914 __CRT_UUID_DECL(ISpRecognizer, 0xc2b5f241, 0xdaa0, 0x4507, 0x9e,0x16, 0x5a,0x1e,0xaa,0x2b,0x7a,0x5c)
   7915 #endif
   7916 #else
   7917 typedef struct ISpRecognizerVtbl {
   7918     BEGIN_INTERFACE
   7919 
   7920     /*** IUnknown methods ***/
   7921     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7922         ISpRecognizer *This,
   7923         REFIID riid,
   7924         void **ppvObject);
   7925 
   7926     ULONG (STDMETHODCALLTYPE *AddRef)(
   7927         ISpRecognizer *This);
   7928 
   7929     ULONG (STDMETHODCALLTYPE *Release)(
   7930         ISpRecognizer *This);
   7931 
   7932     /*** ISpProperties methods ***/
   7933     HRESULT (STDMETHODCALLTYPE *SetPropertyNum)(
   7934         ISpRecognizer *This,
   7935         LPCWSTR pName,
   7936         LONG lValue);
   7937 
   7938     HRESULT (STDMETHODCALLTYPE *GetPropertyNum)(
   7939         ISpRecognizer *This,
   7940         LPCWSTR pName,
   7941         LONG *plValue);
   7942 
   7943     HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
   7944         ISpRecognizer *This,
   7945         LPCWSTR pName,
   7946         LPCWSTR pValue);
   7947 
   7948     HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
   7949         ISpRecognizer *This,
   7950         LPCWSTR pName,
   7951         LPWSTR *ppCoMemValue);
   7952 
   7953     /*** ISpRecognizer methods ***/
   7954     HRESULT (STDMETHODCALLTYPE *SetRecognizer)(
   7955         ISpRecognizer *This,
   7956         ISpObjectToken *pRecognizer);
   7957 
   7958     HRESULT (STDMETHODCALLTYPE *GetRecognizer)(
   7959         ISpRecognizer *This,
   7960         ISpObjectToken **ppRecognizer);
   7961 
   7962     HRESULT (STDMETHODCALLTYPE *SetInput)(
   7963         ISpRecognizer *This,
   7964         IUnknown *pUnkInput,
   7965         WINBOOL fAllowFormatChanges);
   7966 
   7967     HRESULT (STDMETHODCALLTYPE *GetInputObjectToken)(
   7968         ISpRecognizer *This,
   7969         ISpObjectToken **ppToken);
   7970 
   7971     HRESULT (STDMETHODCALLTYPE *GetInputStream)(
   7972         ISpRecognizer *This,
   7973         ISpStreamFormat **ppStream);
   7974 
   7975     HRESULT (STDMETHODCALLTYPE *CreateRecoContext)(
   7976         ISpRecognizer *This,
   7977         ISpRecoContext **ppNewCtxt);
   7978 
   7979     HRESULT (STDMETHODCALLTYPE *GetRecoProfile)(
   7980         ISpRecognizer *This,
   7981         ISpObjectToken **ppToken);
   7982 
   7983     HRESULT (STDMETHODCALLTYPE *SetRecoProfile)(
   7984         ISpRecognizer *This,
   7985         ISpObjectToken *pToken);
   7986 
   7987     HRESULT (STDMETHODCALLTYPE *IsSharedInstance)(
   7988         ISpRecognizer *This);
   7989 
   7990     HRESULT (STDMETHODCALLTYPE *GetRecoState)(
   7991         ISpRecognizer *This,
   7992         SPRECOSTATE *pState);
   7993 
   7994     HRESULT (STDMETHODCALLTYPE *SetRecoState)(
   7995         ISpRecognizer *This,
   7996         SPRECOSTATE NewState);
   7997 
   7998     HRESULT (STDMETHODCALLTYPE *GetStatus)(
   7999         ISpRecognizer *This,
   8000         SPRECOGNIZERSTATUS *pStatus);
   8001 
   8002     HRESULT (STDMETHODCALLTYPE *GetFormat)(
   8003         ISpRecognizer *This,
   8004         SPSTREAMFORMATTYPE WaveFormatType,
   8005         GUID *pFormatId,
   8006         WAVEFORMATEX **ppCoMemWFEX);
   8007 
   8008     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
   8009         ISpRecognizer *This,
   8010         LPCWSTR pszTypeOfUI,
   8011         void *pvExtraData,
   8012         ULONG cbExtraData,
   8013         WINBOOL *pfSupported);
   8014 
   8015     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
   8016         ISpRecognizer *This,
   8017         HWND hwndParent,
   8018         LPCWSTR pszTitle,
   8019         LPCWSTR pszTypeOfUI,
   8020         void *pvExtraData,
   8021         ULONG cbExtraData);
   8022 
   8023     HRESULT (STDMETHODCALLTYPE *EmulateRecognition)(
   8024         ISpRecognizer *This,
   8025         ISpPhrase *pPhrase);
   8026 
   8027     END_INTERFACE
   8028 } ISpRecognizerVtbl;
   8029 
   8030 interface ISpRecognizer {
   8031     CONST_VTBL ISpRecognizerVtbl* lpVtbl;
   8032 };
   8033 
   8034 #ifdef COBJMACROS
   8035 #ifndef WIDL_C_INLINE_WRAPPERS
   8036 /*** IUnknown methods ***/
   8037 #define ISpRecognizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8038 #define ISpRecognizer_AddRef(This) (This)->lpVtbl->AddRef(This)
   8039 #define ISpRecognizer_Release(This) (This)->lpVtbl->Release(This)
   8040 /*** ISpProperties methods ***/
   8041 #define ISpRecognizer_SetPropertyNum(This,pName,lValue) (This)->lpVtbl->SetPropertyNum(This,pName,lValue)
   8042 #define ISpRecognizer_GetPropertyNum(This,pName,plValue) (This)->lpVtbl->GetPropertyNum(This,pName,plValue)
   8043 #define ISpRecognizer_SetPropertyString(This,pName,pValue) (This)->lpVtbl->SetPropertyString(This,pName,pValue)
   8044 #define ISpRecognizer_GetPropertyString(This,pName,ppCoMemValue) (This)->lpVtbl->GetPropertyString(This,pName,ppCoMemValue)
   8045 /*** ISpRecognizer methods ***/
   8046 #define ISpRecognizer_SetRecognizer(This,pRecognizer) (This)->lpVtbl->SetRecognizer(This,pRecognizer)
   8047 #define ISpRecognizer_GetRecognizer(This,ppRecognizer) (This)->lpVtbl->GetRecognizer(This,ppRecognizer)
   8048 #define ISpRecognizer_SetInput(This,pUnkInput,fAllowFormatChanges) (This)->lpVtbl->SetInput(This,pUnkInput,fAllowFormatChanges)
   8049 #define ISpRecognizer_GetInputObjectToken(This,ppToken) (This)->lpVtbl->GetInputObjectToken(This,ppToken)
   8050 #define ISpRecognizer_GetInputStream(This,ppStream) (This)->lpVtbl->GetInputStream(This,ppStream)
   8051 #define ISpRecognizer_CreateRecoContext(This,ppNewCtxt) (This)->lpVtbl->CreateRecoContext(This,ppNewCtxt)
   8052 #define ISpRecognizer_GetRecoProfile(This,ppToken) (This)->lpVtbl->GetRecoProfile(This,ppToken)
   8053 #define ISpRecognizer_SetRecoProfile(This,pToken) (This)->lpVtbl->SetRecoProfile(This,pToken)
   8054 #define ISpRecognizer_IsSharedInstance(This) (This)->lpVtbl->IsSharedInstance(This)
   8055 #define ISpRecognizer_GetRecoState(This,pState) (This)->lpVtbl->GetRecoState(This,pState)
   8056 #define ISpRecognizer_SetRecoState(This,NewState) (This)->lpVtbl->SetRecoState(This,NewState)
   8057 #define ISpRecognizer_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
   8058 #define ISpRecognizer_GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX) (This)->lpVtbl->GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX)
   8059 #define ISpRecognizer_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported)
   8060 #define ISpRecognizer_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData)
   8061 #define ISpRecognizer_EmulateRecognition(This,pPhrase) (This)->lpVtbl->EmulateRecognition(This,pPhrase)
   8062 #else
   8063 /*** IUnknown methods ***/
   8064 static inline HRESULT ISpRecognizer_QueryInterface(ISpRecognizer* This,REFIID riid,void **ppvObject) {
   8065     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8066 }
   8067 static inline ULONG ISpRecognizer_AddRef(ISpRecognizer* This) {
   8068     return This->lpVtbl->AddRef(This);
   8069 }
   8070 static inline ULONG ISpRecognizer_Release(ISpRecognizer* This) {
   8071     return This->lpVtbl->Release(This);
   8072 }
   8073 /*** ISpProperties methods ***/
   8074 static inline HRESULT ISpRecognizer_SetPropertyNum(ISpRecognizer* This,LPCWSTR pName,LONG lValue) {
   8075     return This->lpVtbl->SetPropertyNum(This,pName,lValue);
   8076 }
   8077 static inline HRESULT ISpRecognizer_GetPropertyNum(ISpRecognizer* This,LPCWSTR pName,LONG *plValue) {
   8078     return This->lpVtbl->GetPropertyNum(This,pName,plValue);
   8079 }
   8080 static inline HRESULT ISpRecognizer_SetPropertyString(ISpRecognizer* This,LPCWSTR pName,LPCWSTR pValue) {
   8081     return This->lpVtbl->SetPropertyString(This,pName,pValue);
   8082 }
   8083 static inline HRESULT ISpRecognizer_GetPropertyString(ISpRecognizer* This,LPCWSTR pName,LPWSTR *ppCoMemValue) {
   8084     return This->lpVtbl->GetPropertyString(This,pName,ppCoMemValue);
   8085 }
   8086 /*** ISpRecognizer methods ***/
   8087 static inline HRESULT ISpRecognizer_SetRecognizer(ISpRecognizer* This,ISpObjectToken *pRecognizer) {
   8088     return This->lpVtbl->SetRecognizer(This,pRecognizer);
   8089 }
   8090 static inline HRESULT ISpRecognizer_GetRecognizer(ISpRecognizer* This,ISpObjectToken **ppRecognizer) {
   8091     return This->lpVtbl->GetRecognizer(This,ppRecognizer);
   8092 }
   8093 static inline HRESULT ISpRecognizer_SetInput(ISpRecognizer* This,IUnknown *pUnkInput,WINBOOL fAllowFormatChanges) {
   8094     return This->lpVtbl->SetInput(This,pUnkInput,fAllowFormatChanges);
   8095 }
   8096 static inline HRESULT ISpRecognizer_GetInputObjectToken(ISpRecognizer* This,ISpObjectToken **ppToken) {
   8097     return This->lpVtbl->GetInputObjectToken(This,ppToken);
   8098 }
   8099 static inline HRESULT ISpRecognizer_GetInputStream(ISpRecognizer* This,ISpStreamFormat **ppStream) {
   8100     return This->lpVtbl->GetInputStream(This,ppStream);
   8101 }
   8102 static inline HRESULT ISpRecognizer_CreateRecoContext(ISpRecognizer* This,ISpRecoContext **ppNewCtxt) {
   8103     return This->lpVtbl->CreateRecoContext(This,ppNewCtxt);
   8104 }
   8105 static inline HRESULT ISpRecognizer_GetRecoProfile(ISpRecognizer* This,ISpObjectToken **ppToken) {
   8106     return This->lpVtbl->GetRecoProfile(This,ppToken);
   8107 }
   8108 static inline HRESULT ISpRecognizer_SetRecoProfile(ISpRecognizer* This,ISpObjectToken *pToken) {
   8109     return This->lpVtbl->SetRecoProfile(This,pToken);
   8110 }
   8111 static inline HRESULT ISpRecognizer_IsSharedInstance(ISpRecognizer* This) {
   8112     return This->lpVtbl->IsSharedInstance(This);
   8113 }
   8114 static inline HRESULT ISpRecognizer_GetRecoState(ISpRecognizer* This,SPRECOSTATE *pState) {
   8115     return This->lpVtbl->GetRecoState(This,pState);
   8116 }
   8117 static inline HRESULT ISpRecognizer_SetRecoState(ISpRecognizer* This,SPRECOSTATE NewState) {
   8118     return This->lpVtbl->SetRecoState(This,NewState);
   8119 }
   8120 static inline HRESULT ISpRecognizer_GetStatus(ISpRecognizer* This,SPRECOGNIZERSTATUS *pStatus) {
   8121     return This->lpVtbl->GetStatus(This,pStatus);
   8122 }
   8123 static inline HRESULT ISpRecognizer_GetFormat(ISpRecognizer* This,SPSTREAMFORMATTYPE WaveFormatType,GUID *pFormatId,WAVEFORMATEX **ppCoMemWFEX) {
   8124     return This->lpVtbl->GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX);
   8125 }
   8126 static inline HRESULT ISpRecognizer_IsUISupported(ISpRecognizer* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,WINBOOL *pfSupported) {
   8127     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported);
   8128 }
   8129 static inline HRESULT ISpRecognizer_DisplayUI(ISpRecognizer* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData) {
   8130     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData);
   8131 }
   8132 static inline HRESULT ISpRecognizer_EmulateRecognition(ISpRecognizer* This,ISpPhrase *pPhrase) {
   8133     return This->lpVtbl->EmulateRecognition(This,pPhrase);
   8134 }
   8135 #endif
   8136 #endif
   8137 
   8138 #endif
   8139 
   8140 
   8141 #endif  /* __ISpRecognizer_INTERFACE_DEFINED__ */
   8142 
   8143 #ifndef __SpeechLib_LIBRARY_DEFINED__
   8144 #define __SpeechLib_LIBRARY_DEFINED__
   8145 
   8146 DEFINE_GUID(LIBID_SpeechLib, 0xc866ca3a, 0x32f7, 0x11d2, 0x96,0x02, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
   8147 
   8148 #ifndef __ISpeechDataKey_FWD_DEFINED__
   8149 #define __ISpeechDataKey_FWD_DEFINED__
   8150 typedef interface ISpeechDataKey ISpeechDataKey;
   8151 #ifdef __cplusplus
   8152 interface ISpeechDataKey;
   8153 #endif /* __cplusplus */
   8154 #endif
   8155 
   8156 #ifndef __ISpeechObjectToken_FWD_DEFINED__
   8157 #define __ISpeechObjectToken_FWD_DEFINED__
   8158 typedef interface ISpeechObjectToken ISpeechObjectToken;
   8159 #ifdef __cplusplus
   8160 interface ISpeechObjectToken;
   8161 #endif /* __cplusplus */
   8162 #endif
   8163 
   8164 #ifndef __ISpeechObjectTokens_FWD_DEFINED__
   8165 #define __ISpeechObjectTokens_FWD_DEFINED__
   8166 typedef interface ISpeechObjectTokens ISpeechObjectTokens;
   8167 #ifdef __cplusplus
   8168 interface ISpeechObjectTokens;
   8169 #endif /* __cplusplus */
   8170 #endif
   8171 
   8172 #ifndef __ISpeechObjectTokenCategory_FWD_DEFINED__
   8173 #define __ISpeechObjectTokenCategory_FWD_DEFINED__
   8174 typedef interface ISpeechObjectTokenCategory ISpeechObjectTokenCategory;
   8175 #ifdef __cplusplus
   8176 interface ISpeechObjectTokenCategory;
   8177 #endif /* __cplusplus */
   8178 #endif
   8179 
   8180 #ifndef __ISpeechAudioBufferInfo_FWD_DEFINED__
   8181 #define __ISpeechAudioBufferInfo_FWD_DEFINED__
   8182 typedef interface ISpeechAudioBufferInfo ISpeechAudioBufferInfo;
   8183 #ifdef __cplusplus
   8184 interface ISpeechAudioBufferInfo;
   8185 #endif /* __cplusplus */
   8186 #endif
   8187 
   8188 #ifndef __ISpeechAudioStatus_FWD_DEFINED__
   8189 #define __ISpeechAudioStatus_FWD_DEFINED__
   8190 typedef interface ISpeechAudioStatus ISpeechAudioStatus;
   8191 #ifdef __cplusplus
   8192 interface ISpeechAudioStatus;
   8193 #endif /* __cplusplus */
   8194 #endif
   8195 
   8196 #ifndef __ISpeechAudioFormat_FWD_DEFINED__
   8197 #define __ISpeechAudioFormat_FWD_DEFINED__
   8198 typedef interface ISpeechAudioFormat ISpeechAudioFormat;
   8199 #ifdef __cplusplus
   8200 interface ISpeechAudioFormat;
   8201 #endif /* __cplusplus */
   8202 #endif
   8203 
   8204 #ifndef __ISpeechWaveFormatEx_FWD_DEFINED__
   8205 #define __ISpeechWaveFormatEx_FWD_DEFINED__
   8206 typedef interface ISpeechWaveFormatEx ISpeechWaveFormatEx;
   8207 #ifdef __cplusplus
   8208 interface ISpeechWaveFormatEx;
   8209 #endif /* __cplusplus */
   8210 #endif
   8211 
   8212 #ifndef __ISpeechBaseStream_FWD_DEFINED__
   8213 #define __ISpeechBaseStream_FWD_DEFINED__
   8214 typedef interface ISpeechBaseStream ISpeechBaseStream;
   8215 #ifdef __cplusplus
   8216 interface ISpeechBaseStream;
   8217 #endif /* __cplusplus */
   8218 #endif
   8219 
   8220 #ifndef __ISpeechFileStream_FWD_DEFINED__
   8221 #define __ISpeechFileStream_FWD_DEFINED__
   8222 typedef interface ISpeechFileStream ISpeechFileStream;
   8223 #ifdef __cplusplus
   8224 interface ISpeechFileStream;
   8225 #endif /* __cplusplus */
   8226 #endif
   8227 
   8228 #ifndef __ISpeechMemoryStream_FWD_DEFINED__
   8229 #define __ISpeechMemoryStream_FWD_DEFINED__
   8230 typedef interface ISpeechMemoryStream ISpeechMemoryStream;
   8231 #ifdef __cplusplus
   8232 interface ISpeechMemoryStream;
   8233 #endif /* __cplusplus */
   8234 #endif
   8235 
   8236 #ifndef __ISpeechCustomStream_FWD_DEFINED__
   8237 #define __ISpeechCustomStream_FWD_DEFINED__
   8238 typedef interface ISpeechCustomStream ISpeechCustomStream;
   8239 #ifdef __cplusplus
   8240 interface ISpeechCustomStream;
   8241 #endif /* __cplusplus */
   8242 #endif
   8243 
   8244 #ifndef __ISpeechAudio_FWD_DEFINED__
   8245 #define __ISpeechAudio_FWD_DEFINED__
   8246 typedef interface ISpeechAudio ISpeechAudio;
   8247 #ifdef __cplusplus
   8248 interface ISpeechAudio;
   8249 #endif /* __cplusplus */
   8250 #endif
   8251 
   8252 #ifndef __ISpeechMMSysAudio_FWD_DEFINED__
   8253 #define __ISpeechMMSysAudio_FWD_DEFINED__
   8254 typedef interface ISpeechMMSysAudio ISpeechMMSysAudio;
   8255 #ifdef __cplusplus
   8256 interface ISpeechMMSysAudio;
   8257 #endif /* __cplusplus */
   8258 #endif
   8259 
   8260 #ifndef __ISpeechVoice_FWD_DEFINED__
   8261 #define __ISpeechVoice_FWD_DEFINED__
   8262 typedef interface ISpeechVoice ISpeechVoice;
   8263 #ifdef __cplusplus
   8264 interface ISpeechVoice;
   8265 #endif /* __cplusplus */
   8266 #endif
   8267 
   8268 #ifndef __ISpeechVoiceStatus_FWD_DEFINED__
   8269 #define __ISpeechVoiceStatus_FWD_DEFINED__
   8270 typedef interface ISpeechVoiceStatus ISpeechVoiceStatus;
   8271 #ifdef __cplusplus
   8272 interface ISpeechVoiceStatus;
   8273 #endif /* __cplusplus */
   8274 #endif
   8275 
   8276 #ifndef ___ISpeechVoiceEvents_FWD_DEFINED__
   8277 #define ___ISpeechVoiceEvents_FWD_DEFINED__
   8278 typedef interface _ISpeechVoiceEvents _ISpeechVoiceEvents;
   8279 #ifdef __cplusplus
   8280 interface _ISpeechVoiceEvents;
   8281 #endif /* __cplusplus */
   8282 #endif
   8283 
   8284 #ifndef __ISpeechRecognizer_FWD_DEFINED__
   8285 #define __ISpeechRecognizer_FWD_DEFINED__
   8286 typedef interface ISpeechRecognizer ISpeechRecognizer;
   8287 #ifdef __cplusplus
   8288 interface ISpeechRecognizer;
   8289 #endif /* __cplusplus */
   8290 #endif
   8291 
   8292 #ifndef __ISpeechRecognizerStatus_FWD_DEFINED__
   8293 #define __ISpeechRecognizerStatus_FWD_DEFINED__
   8294 typedef interface ISpeechRecognizerStatus ISpeechRecognizerStatus;
   8295 #ifdef __cplusplus
   8296 interface ISpeechRecognizerStatus;
   8297 #endif /* __cplusplus */
   8298 #endif
   8299 
   8300 #ifndef __ISpeechRecoContext_FWD_DEFINED__
   8301 #define __ISpeechRecoContext_FWD_DEFINED__
   8302 typedef interface ISpeechRecoContext ISpeechRecoContext;
   8303 #ifdef __cplusplus
   8304 interface ISpeechRecoContext;
   8305 #endif /* __cplusplus */
   8306 #endif
   8307 
   8308 #ifndef __ISpeechRecoGrammar_FWD_DEFINED__
   8309 #define __ISpeechRecoGrammar_FWD_DEFINED__
   8310 typedef interface ISpeechRecoGrammar ISpeechRecoGrammar;
   8311 #ifdef __cplusplus
   8312 interface ISpeechRecoGrammar;
   8313 #endif /* __cplusplus */
   8314 #endif
   8315 
   8316 #ifndef ___ISpeechRecoContextEvents_FWD_DEFINED__
   8317 #define ___ISpeechRecoContextEvents_FWD_DEFINED__
   8318 typedef interface _ISpeechRecoContextEvents _ISpeechRecoContextEvents;
   8319 #ifdef __cplusplus
   8320 interface _ISpeechRecoContextEvents;
   8321 #endif /* __cplusplus */
   8322 #endif
   8323 
   8324 #ifndef __ISpeechGrammarRule_FWD_DEFINED__
   8325 #define __ISpeechGrammarRule_FWD_DEFINED__
   8326 typedef interface ISpeechGrammarRule ISpeechGrammarRule;
   8327 #ifdef __cplusplus
   8328 interface ISpeechGrammarRule;
   8329 #endif /* __cplusplus */
   8330 #endif
   8331 
   8332 #ifndef __ISpeechGrammarRules_FWD_DEFINED__
   8333 #define __ISpeechGrammarRules_FWD_DEFINED__
   8334 typedef interface ISpeechGrammarRules ISpeechGrammarRules;
   8335 #ifdef __cplusplus
   8336 interface ISpeechGrammarRules;
   8337 #endif /* __cplusplus */
   8338 #endif
   8339 
   8340 #ifndef __ISpeechGrammarRuleState_FWD_DEFINED__
   8341 #define __ISpeechGrammarRuleState_FWD_DEFINED__
   8342 typedef interface ISpeechGrammarRuleState ISpeechGrammarRuleState;
   8343 #ifdef __cplusplus
   8344 interface ISpeechGrammarRuleState;
   8345 #endif /* __cplusplus */
   8346 #endif
   8347 
   8348 #ifndef __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
   8349 #define __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
   8350 typedef interface ISpeechGrammarRuleStateTransition ISpeechGrammarRuleStateTransition;
   8351 #ifdef __cplusplus
   8352 interface ISpeechGrammarRuleStateTransition;
   8353 #endif /* __cplusplus */
   8354 #endif
   8355 
   8356 #ifndef __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
   8357 #define __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
   8358 typedef interface ISpeechGrammarRuleStateTransitions ISpeechGrammarRuleStateTransitions;
   8359 #ifdef __cplusplus
   8360 interface ISpeechGrammarRuleStateTransitions;
   8361 #endif /* __cplusplus */
   8362 #endif
   8363 
   8364 #ifndef __ISpeechTextSelectionInformation_FWD_DEFINED__
   8365 #define __ISpeechTextSelectionInformation_FWD_DEFINED__
   8366 typedef interface ISpeechTextSelectionInformation ISpeechTextSelectionInformation;
   8367 #ifdef __cplusplus
   8368 interface ISpeechTextSelectionInformation;
   8369 #endif /* __cplusplus */
   8370 #endif
   8371 
   8372 #ifndef __ISpeechRecoResult_FWD_DEFINED__
   8373 #define __ISpeechRecoResult_FWD_DEFINED__
   8374 typedef interface ISpeechRecoResult ISpeechRecoResult;
   8375 #ifdef __cplusplus
   8376 interface ISpeechRecoResult;
   8377 #endif /* __cplusplus */
   8378 #endif
   8379 
   8380 #ifndef __ISpeechRecoResultTimes_FWD_DEFINED__
   8381 #define __ISpeechRecoResultTimes_FWD_DEFINED__
   8382 typedef interface ISpeechRecoResultTimes ISpeechRecoResultTimes;
   8383 #ifdef __cplusplus
   8384 interface ISpeechRecoResultTimes;
   8385 #endif /* __cplusplus */
   8386 #endif
   8387 
   8388 #ifndef __ISpeechPhraseAlternate_FWD_DEFINED__
   8389 #define __ISpeechPhraseAlternate_FWD_DEFINED__
   8390 typedef interface ISpeechPhraseAlternate ISpeechPhraseAlternate;
   8391 #ifdef __cplusplus
   8392 interface ISpeechPhraseAlternate;
   8393 #endif /* __cplusplus */
   8394 #endif
   8395 
   8396 #ifndef __ISpeechPhraseAlternates_FWD_DEFINED__
   8397 #define __ISpeechPhraseAlternates_FWD_DEFINED__
   8398 typedef interface ISpeechPhraseAlternates ISpeechPhraseAlternates;
   8399 #ifdef __cplusplus
   8400 interface ISpeechPhraseAlternates;
   8401 #endif /* __cplusplus */
   8402 #endif
   8403 
   8404 #ifndef __ISpeechPhraseInfo_FWD_DEFINED__
   8405 #define __ISpeechPhraseInfo_FWD_DEFINED__
   8406 typedef interface ISpeechPhraseInfo ISpeechPhraseInfo;
   8407 #ifdef __cplusplus
   8408 interface ISpeechPhraseInfo;
   8409 #endif /* __cplusplus */
   8410 #endif
   8411 
   8412 #ifndef __ISpeechPhraseElement_FWD_DEFINED__
   8413 #define __ISpeechPhraseElement_FWD_DEFINED__
   8414 typedef interface ISpeechPhraseElement ISpeechPhraseElement;
   8415 #ifdef __cplusplus
   8416 interface ISpeechPhraseElement;
   8417 #endif /* __cplusplus */
   8418 #endif
   8419 
   8420 #ifndef __ISpeechPhraseElements_FWD_DEFINED__
   8421 #define __ISpeechPhraseElements_FWD_DEFINED__
   8422 typedef interface ISpeechPhraseElements ISpeechPhraseElements;
   8423 #ifdef __cplusplus
   8424 interface ISpeechPhraseElements;
   8425 #endif /* __cplusplus */
   8426 #endif
   8427 
   8428 #ifndef __ISpeechPhraseReplacement_FWD_DEFINED__
   8429 #define __ISpeechPhraseReplacement_FWD_DEFINED__
   8430 typedef interface ISpeechPhraseReplacement ISpeechPhraseReplacement;
   8431 #ifdef __cplusplus
   8432 interface ISpeechPhraseReplacement;
   8433 #endif /* __cplusplus */
   8434 #endif
   8435 
   8436 #ifndef __ISpeechPhraseReplacements_FWD_DEFINED__
   8437 #define __ISpeechPhraseReplacements_FWD_DEFINED__
   8438 typedef interface ISpeechPhraseReplacements ISpeechPhraseReplacements;
   8439 #ifdef __cplusplus
   8440 interface ISpeechPhraseReplacements;
   8441 #endif /* __cplusplus */
   8442 #endif
   8443 
   8444 #ifndef __ISpeechPhraseProperty_FWD_DEFINED__
   8445 #define __ISpeechPhraseProperty_FWD_DEFINED__
   8446 typedef interface ISpeechPhraseProperty ISpeechPhraseProperty;
   8447 #ifdef __cplusplus
   8448 interface ISpeechPhraseProperty;
   8449 #endif /* __cplusplus */
   8450 #endif
   8451 
   8452 #ifndef __ISpeechPhraseProperties_FWD_DEFINED__
   8453 #define __ISpeechPhraseProperties_FWD_DEFINED__
   8454 typedef interface ISpeechPhraseProperties ISpeechPhraseProperties;
   8455 #ifdef __cplusplus
   8456 interface ISpeechPhraseProperties;
   8457 #endif /* __cplusplus */
   8458 #endif
   8459 
   8460 #ifndef __ISpeechPhraseRule_FWD_DEFINED__
   8461 #define __ISpeechPhraseRule_FWD_DEFINED__
   8462 typedef interface ISpeechPhraseRule ISpeechPhraseRule;
   8463 #ifdef __cplusplus
   8464 interface ISpeechPhraseRule;
   8465 #endif /* __cplusplus */
   8466 #endif
   8467 
   8468 #ifndef __ISpeechPhraseRules_FWD_DEFINED__
   8469 #define __ISpeechPhraseRules_FWD_DEFINED__
   8470 typedef interface ISpeechPhraseRules ISpeechPhraseRules;
   8471 #ifdef __cplusplus
   8472 interface ISpeechPhraseRules;
   8473 #endif /* __cplusplus */
   8474 #endif
   8475 
   8476 #ifndef __ISpeechLexicon_FWD_DEFINED__
   8477 #define __ISpeechLexicon_FWD_DEFINED__
   8478 typedef interface ISpeechLexicon ISpeechLexicon;
   8479 #ifdef __cplusplus
   8480 interface ISpeechLexicon;
   8481 #endif /* __cplusplus */
   8482 #endif
   8483 
   8484 #ifndef __ISpeechLexiconWords_FWD_DEFINED__
   8485 #define __ISpeechLexiconWords_FWD_DEFINED__
   8486 typedef interface ISpeechLexiconWords ISpeechLexiconWords;
   8487 #ifdef __cplusplus
   8488 interface ISpeechLexiconWords;
   8489 #endif /* __cplusplus */
   8490 #endif
   8491 
   8492 #ifndef __ISpeechLexiconWord_FWD_DEFINED__
   8493 #define __ISpeechLexiconWord_FWD_DEFINED__
   8494 typedef interface ISpeechLexiconWord ISpeechLexiconWord;
   8495 #ifdef __cplusplus
   8496 interface ISpeechLexiconWord;
   8497 #endif /* __cplusplus */
   8498 #endif
   8499 
   8500 #ifndef __ISpeechLexiconPronunciations_FWD_DEFINED__
   8501 #define __ISpeechLexiconPronunciations_FWD_DEFINED__
   8502 typedef interface ISpeechLexiconPronunciations ISpeechLexiconPronunciations;
   8503 #ifdef __cplusplus
   8504 interface ISpeechLexiconPronunciations;
   8505 #endif /* __cplusplus */
   8506 #endif
   8507 
   8508 #ifndef __ISpeechLexiconPronunciation_FWD_DEFINED__
   8509 #define __ISpeechLexiconPronunciation_FWD_DEFINED__
   8510 typedef interface ISpeechLexiconPronunciation ISpeechLexiconPronunciation;
   8511 #ifdef __cplusplus
   8512 interface ISpeechLexiconPronunciation;
   8513 #endif /* __cplusplus */
   8514 #endif
   8515 
   8516 typedef LONG SpeechLanguageId;
   8517 #define __SpeechStringConstants_MODULE_DEFINED__
   8518 #ifndef __SpeechStringConstants_MODULE_DEFINED__
   8519 #define __SpeechStringConstants_MODULE_DEFINED__
   8520 #define SpeechRegistryUserRoot (L"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech")
   8521 
   8522 #define SpeechRegistryLocalMachineRoot (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech")
   8523 
   8524 #define SpeechCategoryAudioOut (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\AudioOutput")
   8525 
   8526 #define SpeechCategoryAudioIn (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\AudioInput")
   8527 
   8528 #define SpeechCategoryVoices (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices")
   8529 
   8530 #define SpeechCategoryRecognizers (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Recognizers")
   8531 
   8532 #define SpeechCategoryAppLexicons (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\AppLexicons")
   8533 
   8534 #define SpeechCategoryPhoneConverters (L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\PhoneConverters")
   8535 
   8536 #define SpeechCategoryRecoProfiles (L"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech\RecoProfiles")
   8537 
   8538 #define SpeechTokenIdUserLexicon (L"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech\CurrentUserLexicon")
   8539 
   8540 #define SpeechTokenValueCLSID (L"CLSID")
   8541 
   8542 #define SpeechTokenKeyFiles (L"Files")
   8543 
   8544 #define SpeechTokenKeyUI (L"UI")
   8545 
   8546 #define SpeechTokenKeyAttributes (L"Attributes")
   8547 
   8548 #define SpeechVoiceCategoryTTSRate (L"DefaultTTSRate")
   8549 
   8550 #define SpeechPropertyResourceUsage (L"ResourceUsage")
   8551 
   8552 #define SpeechPropertyHighConfidenceThreshold (L"HighConfidenceThreshold")
   8553 
   8554 #define SpeechPropertyNormalConfidenceThreshold (L"NormalConfidenceThreshold")
   8555 
   8556 #define SpeechPropertyLowConfidenceThreshold (L"LowConfidenceThreshold")
   8557 
   8558 #define SpeechPropertyResponseSpeed (L"ResponseSpeed")
   8559 
   8560 #define SpeechPropertyComplexResponseSpeed (L"ComplexResponseSpeed")
   8561 
   8562 #define SpeechPropertyAdaptationOn (L"AdaptationOn")
   8563 
   8564 #define SpeechDictationTopicSpelling (L"Spelling")
   8565 
   8566 #define SpeechGrammarTagWildcard (L"...")
   8567 
   8568 #define SpeechGrammarTagDictation (L"*")
   8569 
   8570 #define SpeechGrammarTagUnlimitedDictation (L"*+")
   8571 
   8572 #define SpeechEngineProperties (L"EngineProperties")
   8573 
   8574 #define SpeechAddRemoveWord (L"AddRemoveWord")
   8575 
   8576 #define SpeechUserTraining (L"UserTraining")
   8577 
   8578 #define SpeechMicTraining (L"MicTraining")
   8579 
   8580 #define SpeechRecoProfileProperties (L"RecoProfileProperties")
   8581 
   8582 #define SpeechAudioProperties (L"AudioProperties")
   8583 
   8584 #define SpeechAudioVolume (L"AudioVolume")
   8585 
   8586 #define SpeechVoiceSkipTypeSentence (L"Sentence")
   8587 
   8588 #define SpeechAudioFormatGUIDWave (L"{C31ADBAE-527F-4ff5-A230-F62BB61FF70C}")
   8589 
   8590 #define SpeechAudioFormatGUIDText (L"{7CEEF9F9-3D13-11d2-9EE7-00C04F797396}")
   8591 
   8592 #endif /* __SpeechStringConstants_MODULE_DEFINED__ */
   8593 #ifndef __SpeechConstants_MODULE_DEFINED__
   8594 #define __SpeechConstants_MODULE_DEFINED__
   8595 #define Speech_Default_Weight (DEFAULT_WEIGHT)
   8596 
   8597 #define Speech_Max_Word_Length (SP_MAX_WORD_LENGTH)
   8598 
   8599 #define Speech_Max_Pron_Length (SP_MAX_PRON_LENGTH)
   8600 
   8601 #define Speech_StreamPos_Asap (SP_STREAMPOS_ASAP)
   8602 
   8603 #define Speech_StreamPos_RealTime (SP_STREAMPOS_REALTIME)
   8604 
   8605 #define SpeechAllElements (SPPR_ALL_ELEMENTS)
   8606 
   8607 #endif /* __SpeechConstants_MODULE_DEFINED__ */
   8608 typedef enum DISPID_SpeechDataKey {
   8609     DISPID_SDKSetBinaryValue = 1,
   8610     DISPID_SDKGetBinaryValue = 2,
   8611     DISPID_SDKSetStringValue = 3,
   8612     DISPID_SDKGetStringValue = 4,
   8613     DISPID_SDKSetLongValue = 5,
   8614     DISPID_SDKGetlongValue = 6,
   8615     DISPID_SDKOpenKey = 7,
   8616     DISPID_SDKCreateKey = 8,
   8617     DISPID_SDKDeleteKey = 9,
   8618     DISPID_SDKDeleteValue = 10,
   8619     DISPID_SDKEnumKeys = 11,
   8620     DISPID_SDKEnumValues = 12
   8621 } DISPID_SpeechDataKey;
   8622 typedef enum DISPID_SpeechObjectToken {
   8623     DISPID_SOTId = 1,
   8624     DISPID_SOTDataKey = 2,
   8625     DISPID_SOTCategory = 3,
   8626     DISPID_SOTGetDescription = 4,
   8627     DISPID_SOTSetId = 5,
   8628     DISPID_SOTGetAttribute = 6,
   8629     DISPID_SOTCreateInstance = 7,
   8630     DISPID_SOTRemove = 8,
   8631     DISPID_SOTGetStorageFileName = 9,
   8632     DISPID_SOTRemoveStorageFileName = 10,
   8633     DISPID_SOTIsUISupported = 11,
   8634     DISPID_SOTDisplayUI = 12,
   8635     DISPID_SOTMatchesAttributes = 13
   8636 } DISPID_SpeechObjectToken;
   8637 typedef enum SpeechDataKeyLocation {
   8638     SDKLDefaultLocation = SPDKL_DefaultLocation,
   8639     SDKLCurrentUser = SPDKL_CurrentUser,
   8640     SDKLLocalMachine = SPDKL_LocalMachine,
   8641     SDKLCurrentConfig = SPDKL_CurrentConfig
   8642 } SpeechDataKeyLocation;
   8643 typedef enum SpeechTokenContext {
   8644     STCInprocServer = CLSCTX_INPROC_SERVER,
   8645     STCInprocHandler = CLSCTX_INPROC_HANDLER,
   8646     STCLocalServer = CLSCTX_LOCAL_SERVER,
   8647     STCRemoteServer = CLSCTX_REMOTE_SERVER,
   8648     STCAll = ((CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER) | CLSCTX_LOCAL_SERVER) | CLSCTX_REMOTE_SERVER
   8649 } SpeechTokenContext;
   8650 typedef enum SpeechTokenShellFolder {
   8651     STSF_AppData = 0x1a,
   8652     STSF_LocalAppData = 0x1c,
   8653     STSF_CommonAppData = 0x23,
   8654     STSF_FlagCreate = 0x8000
   8655 } SpeechTokenShellFolder;
   8656 typedef enum DISPID_SpeechObjectTokens {
   8657     DISPID_SOTsCount = 1,
   8658     DISPID_SOTsItem = DISPID_VALUE,
   8659     DISPID_SOTs_NewEnum = DISPID_NEWENUM
   8660 } DISPID_SpeechObjectTokens;
   8661 typedef enum DISPID_SpeechObjectTokenCategory {
   8662     DISPID_SOTCId = 1,
   8663     DISPID_SOTCDefault = 2,
   8664     DISPID_SOTCSetId = 3,
   8665     DISPID_SOTCGetDataKey = 4,
   8666     DISPID_SOTCEnumerateTokens = 5
   8667 } DISPID_SpeechObjectTokenCategory;
   8668 /*****************************************************************************
   8669  * ISpeechDataKey interface
   8670  */
   8671 #ifndef __ISpeechDataKey_INTERFACE_DEFINED__
   8672 #define __ISpeechDataKey_INTERFACE_DEFINED__
   8673 
   8674 DEFINE_GUID(IID_ISpeechDataKey, 0xce17c09b, 0x4efa, 0x44d5, 0xa4,0xc9, 0x59,0xd9,0x58,0x5a,0xb0,0xcd);
   8675 #if defined(__cplusplus) && !defined(CINTERFACE)
   8676 MIDL_INTERFACE("ce17c09b-4efa-44d5-a4c9-59d9585ab0cd")
   8677 ISpeechDataKey : public IDispatch
   8678 {
   8679     virtual HRESULT STDMETHODCALLTYPE SetBinaryValue(
   8680         const BSTR ValueName,
   8681         VARIANT Value) = 0;
   8682 
   8683     virtual HRESULT STDMETHODCALLTYPE GetBinaryValue(
   8684         const BSTR ValueName,
   8685         VARIANT *Value) = 0;
   8686 
   8687     virtual HRESULT STDMETHODCALLTYPE SetStringValue(
   8688         const BSTR ValueName,
   8689         const BSTR Value) = 0;
   8690 
   8691     virtual HRESULT STDMETHODCALLTYPE GetStringValue(
   8692         const BSTR ValueName,
   8693         BSTR *Value) = 0;
   8694 
   8695     virtual HRESULT STDMETHODCALLTYPE SetLongValue(
   8696         const BSTR ValueName,
   8697         LONG Value) = 0;
   8698 
   8699     virtual HRESULT STDMETHODCALLTYPE GetLongValue(
   8700         const BSTR ValueName,
   8701         LONG *Value) = 0;
   8702 
   8703     virtual HRESULT STDMETHODCALLTYPE OpenKey(
   8704         const BSTR SubKeyName,
   8705         ISpeechDataKey **SubKey) = 0;
   8706 
   8707     virtual HRESULT STDMETHODCALLTYPE CreateKey(
   8708         const BSTR SubKeyName,
   8709         ISpeechDataKey **SubKey) = 0;
   8710 
   8711     virtual HRESULT STDMETHODCALLTYPE DeleteKey(
   8712         const BSTR SubKeyName) = 0;
   8713 
   8714     virtual HRESULT STDMETHODCALLTYPE DeleteValue(
   8715         const BSTR ValueName) = 0;
   8716 
   8717     virtual HRESULT STDMETHODCALLTYPE EnumKeys(
   8718         LONG Index,
   8719         BSTR *SubKeyName) = 0;
   8720 
   8721     virtual HRESULT STDMETHODCALLTYPE EnumValues(
   8722         LONG Index,
   8723         BSTR *ValueName) = 0;
   8724 
   8725 };
   8726 #ifdef __CRT_UUID_DECL
   8727 __CRT_UUID_DECL(ISpeechDataKey, 0xce17c09b, 0x4efa, 0x44d5, 0xa4,0xc9, 0x59,0xd9,0x58,0x5a,0xb0,0xcd)
   8728 #endif
   8729 #else
   8730 typedef struct ISpeechDataKeyVtbl {
   8731     BEGIN_INTERFACE
   8732 
   8733     /*** IUnknown methods ***/
   8734     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8735         ISpeechDataKey *This,
   8736         REFIID riid,
   8737         void **ppvObject);
   8738 
   8739     ULONG (STDMETHODCALLTYPE *AddRef)(
   8740         ISpeechDataKey *This);
   8741 
   8742     ULONG (STDMETHODCALLTYPE *Release)(
   8743         ISpeechDataKey *This);
   8744 
   8745     /*** IDispatch methods ***/
   8746     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   8747         ISpeechDataKey *This,
   8748         UINT *pctinfo);
   8749 
   8750     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   8751         ISpeechDataKey *This,
   8752         UINT iTInfo,
   8753         LCID lcid,
   8754         ITypeInfo **ppTInfo);
   8755 
   8756     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   8757         ISpeechDataKey *This,
   8758         REFIID riid,
   8759         LPOLESTR *rgszNames,
   8760         UINT cNames,
   8761         LCID lcid,
   8762         DISPID *rgDispId);
   8763 
   8764     HRESULT (STDMETHODCALLTYPE *Invoke)(
   8765         ISpeechDataKey *This,
   8766         DISPID dispIdMember,
   8767         REFIID riid,
   8768         LCID lcid,
   8769         WORD wFlags,
   8770         DISPPARAMS *pDispParams,
   8771         VARIANT *pVarResult,
   8772         EXCEPINFO *pExcepInfo,
   8773         UINT *puArgErr);
   8774 
   8775     /*** ISpeechDataKey methods ***/
   8776     HRESULT (STDMETHODCALLTYPE *SetBinaryValue)(
   8777         ISpeechDataKey *This,
   8778         const BSTR ValueName,
   8779         VARIANT Value);
   8780 
   8781     HRESULT (STDMETHODCALLTYPE *GetBinaryValue)(
   8782         ISpeechDataKey *This,
   8783         const BSTR ValueName,
   8784         VARIANT *Value);
   8785 
   8786     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
   8787         ISpeechDataKey *This,
   8788         const BSTR ValueName,
   8789         const BSTR Value);
   8790 
   8791     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
   8792         ISpeechDataKey *This,
   8793         const BSTR ValueName,
   8794         BSTR *Value);
   8795 
   8796     HRESULT (STDMETHODCALLTYPE *SetLongValue)(
   8797         ISpeechDataKey *This,
   8798         const BSTR ValueName,
   8799         LONG Value);
   8800 
   8801     HRESULT (STDMETHODCALLTYPE *GetLongValue)(
   8802         ISpeechDataKey *This,
   8803         const BSTR ValueName,
   8804         LONG *Value);
   8805 
   8806     HRESULT (STDMETHODCALLTYPE *OpenKey)(
   8807         ISpeechDataKey *This,
   8808         const BSTR SubKeyName,
   8809         ISpeechDataKey **SubKey);
   8810 
   8811     HRESULT (STDMETHODCALLTYPE *CreateKey)(
   8812         ISpeechDataKey *This,
   8813         const BSTR SubKeyName,
   8814         ISpeechDataKey **SubKey);
   8815 
   8816     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
   8817         ISpeechDataKey *This,
   8818         const BSTR SubKeyName);
   8819 
   8820     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
   8821         ISpeechDataKey *This,
   8822         const BSTR ValueName);
   8823 
   8824     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
   8825         ISpeechDataKey *This,
   8826         LONG Index,
   8827         BSTR *SubKeyName);
   8828 
   8829     HRESULT (STDMETHODCALLTYPE *EnumValues)(
   8830         ISpeechDataKey *This,
   8831         LONG Index,
   8832         BSTR *ValueName);
   8833 
   8834     END_INTERFACE
   8835 } ISpeechDataKeyVtbl;
   8836 
   8837 interface ISpeechDataKey {
   8838     CONST_VTBL ISpeechDataKeyVtbl* lpVtbl;
   8839 };
   8840 
   8841 #ifdef COBJMACROS
   8842 #ifndef WIDL_C_INLINE_WRAPPERS
   8843 /*** IUnknown methods ***/
   8844 #define ISpeechDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8845 #define ISpeechDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
   8846 #define ISpeechDataKey_Release(This) (This)->lpVtbl->Release(This)
   8847 /*** IDispatch methods ***/
   8848 #define ISpeechDataKey_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   8849 #define ISpeechDataKey_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   8850 #define ISpeechDataKey_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   8851 #define ISpeechDataKey_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   8852 /*** ISpeechDataKey methods ***/
   8853 #define ISpeechDataKey_SetBinaryValue(This,ValueName,Value) (This)->lpVtbl->SetBinaryValue(This,ValueName,Value)
   8854 #define ISpeechDataKey_GetBinaryValue(This,ValueName,Value) (This)->lpVtbl->GetBinaryValue(This,ValueName,Value)
   8855 #define ISpeechDataKey_SetStringValue(This,ValueName,Value) (This)->lpVtbl->SetStringValue(This,ValueName,Value)
   8856 #define ISpeechDataKey_GetStringValue(This,ValueName,Value) (This)->lpVtbl->GetStringValue(This,ValueName,Value)
   8857 #define ISpeechDataKey_SetLongValue(This,ValueName,Value) (This)->lpVtbl->SetLongValue(This,ValueName,Value)
   8858 #define ISpeechDataKey_GetLongValue(This,ValueName,Value) (This)->lpVtbl->GetLongValue(This,ValueName,Value)
   8859 #define ISpeechDataKey_OpenKey(This,SubKeyName,SubKey) (This)->lpVtbl->OpenKey(This,SubKeyName,SubKey)
   8860 #define ISpeechDataKey_CreateKey(This,SubKeyName,SubKey) (This)->lpVtbl->CreateKey(This,SubKeyName,SubKey)
   8861 #define ISpeechDataKey_DeleteKey(This,SubKeyName) (This)->lpVtbl->DeleteKey(This,SubKeyName)
   8862 #define ISpeechDataKey_DeleteValue(This,ValueName) (This)->lpVtbl->DeleteValue(This,ValueName)
   8863 #define ISpeechDataKey_EnumKeys(This,Index,SubKeyName) (This)->lpVtbl->EnumKeys(This,Index,SubKeyName)
   8864 #define ISpeechDataKey_EnumValues(This,Index,ValueName) (This)->lpVtbl->EnumValues(This,Index,ValueName)
   8865 #else
   8866 /*** IUnknown methods ***/
   8867 static inline HRESULT ISpeechDataKey_QueryInterface(ISpeechDataKey* This,REFIID riid,void **ppvObject) {
   8868     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8869 }
   8870 static inline ULONG ISpeechDataKey_AddRef(ISpeechDataKey* This) {
   8871     return This->lpVtbl->AddRef(This);
   8872 }
   8873 static inline ULONG ISpeechDataKey_Release(ISpeechDataKey* This) {
   8874     return This->lpVtbl->Release(This);
   8875 }
   8876 /*** IDispatch methods ***/
   8877 static inline HRESULT ISpeechDataKey_GetTypeInfoCount(ISpeechDataKey* This,UINT *pctinfo) {
   8878     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   8879 }
   8880 static inline HRESULT ISpeechDataKey_GetTypeInfo(ISpeechDataKey* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   8881     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   8882 }
   8883 static inline HRESULT ISpeechDataKey_GetIDsOfNames(ISpeechDataKey* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   8884     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   8885 }
   8886 static inline HRESULT ISpeechDataKey_Invoke(ISpeechDataKey* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   8887     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   8888 }
   8889 /*** ISpeechDataKey methods ***/
   8890 static inline HRESULT ISpeechDataKey_SetBinaryValue(ISpeechDataKey* This,const BSTR ValueName,VARIANT Value) {
   8891     return This->lpVtbl->SetBinaryValue(This,ValueName,Value);
   8892 }
   8893 static inline HRESULT ISpeechDataKey_GetBinaryValue(ISpeechDataKey* This,const BSTR ValueName,VARIANT *Value) {
   8894     return This->lpVtbl->GetBinaryValue(This,ValueName,Value);
   8895 }
   8896 static inline HRESULT ISpeechDataKey_SetStringValue(ISpeechDataKey* This,const BSTR ValueName,const BSTR Value) {
   8897     return This->lpVtbl->SetStringValue(This,ValueName,Value);
   8898 }
   8899 static inline HRESULT ISpeechDataKey_GetStringValue(ISpeechDataKey* This,const BSTR ValueName,BSTR *Value) {
   8900     return This->lpVtbl->GetStringValue(This,ValueName,Value);
   8901 }
   8902 static inline HRESULT ISpeechDataKey_SetLongValue(ISpeechDataKey* This,const BSTR ValueName,LONG Value) {
   8903     return This->lpVtbl->SetLongValue(This,ValueName,Value);
   8904 }
   8905 static inline HRESULT ISpeechDataKey_GetLongValue(ISpeechDataKey* This,const BSTR ValueName,LONG *Value) {
   8906     return This->lpVtbl->GetLongValue(This,ValueName,Value);
   8907 }
   8908 static inline HRESULT ISpeechDataKey_OpenKey(ISpeechDataKey* This,const BSTR SubKeyName,ISpeechDataKey **SubKey) {
   8909     return This->lpVtbl->OpenKey(This,SubKeyName,SubKey);
   8910 }
   8911 static inline HRESULT ISpeechDataKey_CreateKey(ISpeechDataKey* This,const BSTR SubKeyName,ISpeechDataKey **SubKey) {
   8912     return This->lpVtbl->CreateKey(This,SubKeyName,SubKey);
   8913 }
   8914 static inline HRESULT ISpeechDataKey_DeleteKey(ISpeechDataKey* This,const BSTR SubKeyName) {
   8915     return This->lpVtbl->DeleteKey(This,SubKeyName);
   8916 }
   8917 static inline HRESULT ISpeechDataKey_DeleteValue(ISpeechDataKey* This,const BSTR ValueName) {
   8918     return This->lpVtbl->DeleteValue(This,ValueName);
   8919 }
   8920 static inline HRESULT ISpeechDataKey_EnumKeys(ISpeechDataKey* This,LONG Index,BSTR *SubKeyName) {
   8921     return This->lpVtbl->EnumKeys(This,Index,SubKeyName);
   8922 }
   8923 static inline HRESULT ISpeechDataKey_EnumValues(ISpeechDataKey* This,LONG Index,BSTR *ValueName) {
   8924     return This->lpVtbl->EnumValues(This,Index,ValueName);
   8925 }
   8926 #endif
   8927 #endif
   8928 
   8929 #endif
   8930 
   8931 
   8932 #endif  /* __ISpeechDataKey_INTERFACE_DEFINED__ */
   8933 
   8934 /*****************************************************************************
   8935  * ISpeechObjectToken interface
   8936  */
   8937 #ifndef __ISpeechObjectToken_INTERFACE_DEFINED__
   8938 #define __ISpeechObjectToken_INTERFACE_DEFINED__
   8939 
   8940 DEFINE_GUID(IID_ISpeechObjectToken, 0xc74a3adc, 0xb727, 0x4500, 0xa8,0x4a, 0xb5,0x26,0x72,0x1c,0x8b,0x8c);
   8941 #if defined(__cplusplus) && !defined(CINTERFACE)
   8942 MIDL_INTERFACE("c74a3adc-b727-4500-a84a-b526721c8b8c")
   8943 ISpeechObjectToken : public IDispatch
   8944 {
   8945     virtual HRESULT STDMETHODCALLTYPE get_Id(
   8946         BSTR *ObjectId) = 0;
   8947 
   8948     virtual HRESULT STDMETHODCALLTYPE get_DataKey(
   8949         ISpeechDataKey **DataKey) = 0;
   8950 
   8951     virtual HRESULT STDMETHODCALLTYPE get_Category(
   8952         ISpeechObjectTokenCategory **Category) = 0;
   8953 
   8954     virtual HRESULT STDMETHODCALLTYPE GetDescription(
   8955         LONG Locale,
   8956         BSTR *Description) = 0;
   8957 
   8958     virtual HRESULT STDMETHODCALLTYPE SetId(
   8959         BSTR Id,
   8960         BSTR CategoryID = L"",
   8961         VARIANT_BOOL CreateIfNotExist = 0) = 0;
   8962 
   8963     virtual HRESULT STDMETHODCALLTYPE GetAttribute(
   8964         BSTR AttributeName,
   8965         BSTR *AttributeValue) = 0;
   8966 
   8967     virtual HRESULT STDMETHODCALLTYPE CreateInstance(
   8968         IUnknown *pUnkOuter,
   8969         SpeechTokenContext ClsContext,
   8970         IUnknown **Object) = 0;
   8971 
   8972     virtual HRESULT STDMETHODCALLTYPE Remove(
   8973         BSTR ObjectStorageCLSID) = 0;
   8974 
   8975     virtual HRESULT STDMETHODCALLTYPE GetStorageFileName(
   8976         BSTR ObjectStorageCLSID,
   8977         BSTR KeyName,
   8978         BSTR FileName,
   8979         SpeechTokenShellFolder Folder,
   8980         BSTR *FilePath) = 0;
   8981 
   8982     virtual HRESULT STDMETHODCALLTYPE RemoveStorageFileName(
   8983         BSTR ObjectStorageCLSID,
   8984         BSTR KeyName,
   8985         VARIANT_BOOL DeleteFile) = 0;
   8986 
   8987     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
   8988         const BSTR TypeOfUI,
   8989         const VARIANT *ExtraData,
   8990         IUnknown *Object,
   8991         VARIANT_BOOL *Supported) = 0;
   8992 
   8993     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
   8994         LONG hWnd,
   8995         BSTR Title,
   8996         const BSTR TypeOfUI,
   8997         const VARIANT *ExtraData = 0,
   8998         IUnknown *Object = 0) = 0;
   8999 
   9000     virtual HRESULT STDMETHODCALLTYPE MatchesAttributes(
   9001         BSTR Attributes,
   9002         VARIANT_BOOL *Matches) = 0;
   9003 
   9004 };
   9005 #ifdef __CRT_UUID_DECL
   9006 __CRT_UUID_DECL(ISpeechObjectToken, 0xc74a3adc, 0xb727, 0x4500, 0xa8,0x4a, 0xb5,0x26,0x72,0x1c,0x8b,0x8c)
   9007 #endif
   9008 #else
   9009 typedef struct ISpeechObjectTokenVtbl {
   9010     BEGIN_INTERFACE
   9011 
   9012     /*** IUnknown methods ***/
   9013     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9014         ISpeechObjectToken *This,
   9015         REFIID riid,
   9016         void **ppvObject);
   9017 
   9018     ULONG (STDMETHODCALLTYPE *AddRef)(
   9019         ISpeechObjectToken *This);
   9020 
   9021     ULONG (STDMETHODCALLTYPE *Release)(
   9022         ISpeechObjectToken *This);
   9023 
   9024     /*** IDispatch methods ***/
   9025     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   9026         ISpeechObjectToken *This,
   9027         UINT *pctinfo);
   9028 
   9029     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   9030         ISpeechObjectToken *This,
   9031         UINT iTInfo,
   9032         LCID lcid,
   9033         ITypeInfo **ppTInfo);
   9034 
   9035     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   9036         ISpeechObjectToken *This,
   9037         REFIID riid,
   9038         LPOLESTR *rgszNames,
   9039         UINT cNames,
   9040         LCID lcid,
   9041         DISPID *rgDispId);
   9042 
   9043     HRESULT (STDMETHODCALLTYPE *Invoke)(
   9044         ISpeechObjectToken *This,
   9045         DISPID dispIdMember,
   9046         REFIID riid,
   9047         LCID lcid,
   9048         WORD wFlags,
   9049         DISPPARAMS *pDispParams,
   9050         VARIANT *pVarResult,
   9051         EXCEPINFO *pExcepInfo,
   9052         UINT *puArgErr);
   9053 
   9054     /*** ISpeechObjectToken methods ***/
   9055     HRESULT (STDMETHODCALLTYPE *get_Id)(
   9056         ISpeechObjectToken *This,
   9057         BSTR *ObjectId);
   9058 
   9059     HRESULT (STDMETHODCALLTYPE *get_DataKey)(
   9060         ISpeechObjectToken *This,
   9061         ISpeechDataKey **DataKey);
   9062 
   9063     HRESULT (STDMETHODCALLTYPE *get_Category)(
   9064         ISpeechObjectToken *This,
   9065         ISpeechObjectTokenCategory **Category);
   9066 
   9067     HRESULT (STDMETHODCALLTYPE *GetDescription)(
   9068         ISpeechObjectToken *This,
   9069         LONG Locale,
   9070         BSTR *Description);
   9071 
   9072     HRESULT (STDMETHODCALLTYPE *SetId)(
   9073         ISpeechObjectToken *This,
   9074         BSTR Id,
   9075         BSTR CategoryID,
   9076         VARIANT_BOOL CreateIfNotExist);
   9077 
   9078     HRESULT (STDMETHODCALLTYPE *GetAttribute)(
   9079         ISpeechObjectToken *This,
   9080         BSTR AttributeName,
   9081         BSTR *AttributeValue);
   9082 
   9083     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
   9084         ISpeechObjectToken *This,
   9085         IUnknown *pUnkOuter,
   9086         SpeechTokenContext ClsContext,
   9087         IUnknown **Object);
   9088 
   9089     HRESULT (STDMETHODCALLTYPE *Remove)(
   9090         ISpeechObjectToken *This,
   9091         BSTR ObjectStorageCLSID);
   9092 
   9093     HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
   9094         ISpeechObjectToken *This,
   9095         BSTR ObjectStorageCLSID,
   9096         BSTR KeyName,
   9097         BSTR FileName,
   9098         SpeechTokenShellFolder Folder,
   9099         BSTR *FilePath);
   9100 
   9101     HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
   9102         ISpeechObjectToken *This,
   9103         BSTR ObjectStorageCLSID,
   9104         BSTR KeyName,
   9105         VARIANT_BOOL DeleteFile);
   9106 
   9107     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
   9108         ISpeechObjectToken *This,
   9109         const BSTR TypeOfUI,
   9110         const VARIANT *ExtraData,
   9111         IUnknown *Object,
   9112         VARIANT_BOOL *Supported);
   9113 
   9114     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
   9115         ISpeechObjectToken *This,
   9116         LONG hWnd,
   9117         BSTR Title,
   9118         const BSTR TypeOfUI,
   9119         const VARIANT *ExtraData,
   9120         IUnknown *Object);
   9121 
   9122     HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
   9123         ISpeechObjectToken *This,
   9124         BSTR Attributes,
   9125         VARIANT_BOOL *Matches);
   9126 
   9127     END_INTERFACE
   9128 } ISpeechObjectTokenVtbl;
   9129 
   9130 interface ISpeechObjectToken {
   9131     CONST_VTBL ISpeechObjectTokenVtbl* lpVtbl;
   9132 };
   9133 
   9134 #ifdef COBJMACROS
   9135 #ifndef WIDL_C_INLINE_WRAPPERS
   9136 /*** IUnknown methods ***/
   9137 #define ISpeechObjectToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9138 #define ISpeechObjectToken_AddRef(This) (This)->lpVtbl->AddRef(This)
   9139 #define ISpeechObjectToken_Release(This) (This)->lpVtbl->Release(This)
   9140 /*** IDispatch methods ***/
   9141 #define ISpeechObjectToken_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   9142 #define ISpeechObjectToken_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   9143 #define ISpeechObjectToken_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   9144 #define ISpeechObjectToken_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   9145 /*** ISpeechObjectToken methods ***/
   9146 #define ISpeechObjectToken_get_Id(This,ObjectId) (This)->lpVtbl->get_Id(This,ObjectId)
   9147 #define ISpeechObjectToken_get_DataKey(This,DataKey) (This)->lpVtbl->get_DataKey(This,DataKey)
   9148 #define ISpeechObjectToken_get_Category(This,Category) (This)->lpVtbl->get_Category(This,Category)
   9149 #define ISpeechObjectToken_GetDescription(This,Locale,Description) (This)->lpVtbl->GetDescription(This,Locale,Description)
   9150 #define ISpeechObjectToken_SetId(This,Id,CategoryID,CreateIfNotExist) (This)->lpVtbl->SetId(This,Id,CategoryID,CreateIfNotExist)
   9151 #define ISpeechObjectToken_GetAttribute(This,AttributeName,AttributeValue) (This)->lpVtbl->GetAttribute(This,AttributeName,AttributeValue)
   9152 #define ISpeechObjectToken_CreateInstance(This,pUnkOuter,ClsContext,Object) (This)->lpVtbl->CreateInstance(This,pUnkOuter,ClsContext,Object)
   9153 #define ISpeechObjectToken_Remove(This,ObjectStorageCLSID) (This)->lpVtbl->Remove(This,ObjectStorageCLSID)
   9154 #define ISpeechObjectToken_GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath) (This)->lpVtbl->GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath)
   9155 #define ISpeechObjectToken_RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile)
   9156 #define ISpeechObjectToken_IsUISupported(This,TypeOfUI,ExtraData,Object,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Object,Supported)
   9157 #define ISpeechObjectToken_DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object) (This)->lpVtbl->DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object)
   9158 #define ISpeechObjectToken_MatchesAttributes(This,Attributes,Matches) (This)->lpVtbl->MatchesAttributes(This,Attributes,Matches)
   9159 #else
   9160 /*** IUnknown methods ***/
   9161 static inline HRESULT ISpeechObjectToken_QueryInterface(ISpeechObjectToken* This,REFIID riid,void **ppvObject) {
   9162     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9163 }
   9164 static inline ULONG ISpeechObjectToken_AddRef(ISpeechObjectToken* This) {
   9165     return This->lpVtbl->AddRef(This);
   9166 }
   9167 static inline ULONG ISpeechObjectToken_Release(ISpeechObjectToken* This) {
   9168     return This->lpVtbl->Release(This);
   9169 }
   9170 /*** IDispatch methods ***/
   9171 static inline HRESULT ISpeechObjectToken_GetTypeInfoCount(ISpeechObjectToken* This,UINT *pctinfo) {
   9172     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   9173 }
   9174 static inline HRESULT ISpeechObjectToken_GetTypeInfo(ISpeechObjectToken* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   9175     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   9176 }
   9177 static inline HRESULT ISpeechObjectToken_GetIDsOfNames(ISpeechObjectToken* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   9178     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   9179 }
   9180 static inline HRESULT ISpeechObjectToken_Invoke(ISpeechObjectToken* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   9181     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   9182 }
   9183 /*** ISpeechObjectToken methods ***/
   9184 static inline HRESULT ISpeechObjectToken_get_Id(ISpeechObjectToken* This,BSTR *ObjectId) {
   9185     return This->lpVtbl->get_Id(This,ObjectId);
   9186 }
   9187 static inline HRESULT ISpeechObjectToken_get_DataKey(ISpeechObjectToken* This,ISpeechDataKey **DataKey) {
   9188     return This->lpVtbl->get_DataKey(This,DataKey);
   9189 }
   9190 static inline HRESULT ISpeechObjectToken_get_Category(ISpeechObjectToken* This,ISpeechObjectTokenCategory **Category) {
   9191     return This->lpVtbl->get_Category(This,Category);
   9192 }
   9193 static inline HRESULT ISpeechObjectToken_GetDescription(ISpeechObjectToken* This,LONG Locale,BSTR *Description) {
   9194     return This->lpVtbl->GetDescription(This,Locale,Description);
   9195 }
   9196 static inline HRESULT ISpeechObjectToken_SetId(ISpeechObjectToken* This,BSTR Id,BSTR CategoryID,VARIANT_BOOL CreateIfNotExist) {
   9197     return This->lpVtbl->SetId(This,Id,CategoryID,CreateIfNotExist);
   9198 }
   9199 static inline HRESULT ISpeechObjectToken_GetAttribute(ISpeechObjectToken* This,BSTR AttributeName,BSTR *AttributeValue) {
   9200     return This->lpVtbl->GetAttribute(This,AttributeName,AttributeValue);
   9201 }
   9202 static inline HRESULT ISpeechObjectToken_CreateInstance(ISpeechObjectToken* This,IUnknown *pUnkOuter,SpeechTokenContext ClsContext,IUnknown **Object) {
   9203     return This->lpVtbl->CreateInstance(This,pUnkOuter,ClsContext,Object);
   9204 }
   9205 static inline HRESULT ISpeechObjectToken_Remove(ISpeechObjectToken* This,BSTR ObjectStorageCLSID) {
   9206     return This->lpVtbl->Remove(This,ObjectStorageCLSID);
   9207 }
   9208 static inline HRESULT ISpeechObjectToken_GetStorageFileName(ISpeechObjectToken* This,BSTR ObjectStorageCLSID,BSTR KeyName,BSTR FileName,SpeechTokenShellFolder Folder,BSTR *FilePath) {
   9209     return This->lpVtbl->GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath);
   9210 }
   9211 static inline HRESULT ISpeechObjectToken_RemoveStorageFileName(ISpeechObjectToken* This,BSTR ObjectStorageCLSID,BSTR KeyName,VARIANT_BOOL DeleteFile) {
   9212     return This->lpVtbl->RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile);
   9213 }
   9214 static inline HRESULT ISpeechObjectToken_IsUISupported(ISpeechObjectToken* This,const BSTR TypeOfUI,const VARIANT *ExtraData,IUnknown *Object,VARIANT_BOOL *Supported) {
   9215     return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Object,Supported);
   9216 }
   9217 static inline HRESULT ISpeechObjectToken_DisplayUI(ISpeechObjectToken* This,LONG hWnd,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData,IUnknown *Object) {
   9218     return This->lpVtbl->DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object);
   9219 }
   9220 static inline HRESULT ISpeechObjectToken_MatchesAttributes(ISpeechObjectToken* This,BSTR Attributes,VARIANT_BOOL *Matches) {
   9221     return This->lpVtbl->MatchesAttributes(This,Attributes,Matches);
   9222 }
   9223 #endif
   9224 #endif
   9225 
   9226 #endif
   9227 
   9228 
   9229 #endif  /* __ISpeechObjectToken_INTERFACE_DEFINED__ */
   9230 
   9231 /*****************************************************************************
   9232  * ISpeechObjectTokens interface
   9233  */
   9234 #ifndef __ISpeechObjectTokens_INTERFACE_DEFINED__
   9235 #define __ISpeechObjectTokens_INTERFACE_DEFINED__
   9236 
   9237 DEFINE_GUID(IID_ISpeechObjectTokens, 0x9285b776, 0x2e7b, 0x4bc0, 0xb5,0x3e, 0x58,0x0e,0xb6,0xfa,0x96,0x7f);
   9238 #if defined(__cplusplus) && !defined(CINTERFACE)
   9239 MIDL_INTERFACE("9285b776-2e7b-4bc0-b53e-580eb6fa967f")
   9240 ISpeechObjectTokens : public IDispatch
   9241 {
   9242     virtual HRESULT STDMETHODCALLTYPE get_Count(
   9243         LONG *Count) = 0;
   9244 
   9245     virtual HRESULT STDMETHODCALLTYPE Item(
   9246         LONG Index,
   9247         ISpeechObjectToken **Token) = 0;
   9248 
   9249     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
   9250         IUnknown **ppEnumVARIANT) = 0;
   9251 
   9252 };
   9253 #ifdef __CRT_UUID_DECL
   9254 __CRT_UUID_DECL(ISpeechObjectTokens, 0x9285b776, 0x2e7b, 0x4bc0, 0xb5,0x3e, 0x58,0x0e,0xb6,0xfa,0x96,0x7f)
   9255 #endif
   9256 #else
   9257 typedef struct ISpeechObjectTokensVtbl {
   9258     BEGIN_INTERFACE
   9259 
   9260     /*** IUnknown methods ***/
   9261     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9262         ISpeechObjectTokens *This,
   9263         REFIID riid,
   9264         void **ppvObject);
   9265 
   9266     ULONG (STDMETHODCALLTYPE *AddRef)(
   9267         ISpeechObjectTokens *This);
   9268 
   9269     ULONG (STDMETHODCALLTYPE *Release)(
   9270         ISpeechObjectTokens *This);
   9271 
   9272     /*** IDispatch methods ***/
   9273     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   9274         ISpeechObjectTokens *This,
   9275         UINT *pctinfo);
   9276 
   9277     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   9278         ISpeechObjectTokens *This,
   9279         UINT iTInfo,
   9280         LCID lcid,
   9281         ITypeInfo **ppTInfo);
   9282 
   9283     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   9284         ISpeechObjectTokens *This,
   9285         REFIID riid,
   9286         LPOLESTR *rgszNames,
   9287         UINT cNames,
   9288         LCID lcid,
   9289         DISPID *rgDispId);
   9290 
   9291     HRESULT (STDMETHODCALLTYPE *Invoke)(
   9292         ISpeechObjectTokens *This,
   9293         DISPID dispIdMember,
   9294         REFIID riid,
   9295         LCID lcid,
   9296         WORD wFlags,
   9297         DISPPARAMS *pDispParams,
   9298         VARIANT *pVarResult,
   9299         EXCEPINFO *pExcepInfo,
   9300         UINT *puArgErr);
   9301 
   9302     /*** ISpeechObjectTokens methods ***/
   9303     HRESULT (STDMETHODCALLTYPE *get_Count)(
   9304         ISpeechObjectTokens *This,
   9305         LONG *Count);
   9306 
   9307     HRESULT (STDMETHODCALLTYPE *Item)(
   9308         ISpeechObjectTokens *This,
   9309         LONG Index,
   9310         ISpeechObjectToken **Token);
   9311 
   9312     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
   9313         ISpeechObjectTokens *This,
   9314         IUnknown **ppEnumVARIANT);
   9315 
   9316     END_INTERFACE
   9317 } ISpeechObjectTokensVtbl;
   9318 
   9319 interface ISpeechObjectTokens {
   9320     CONST_VTBL ISpeechObjectTokensVtbl* lpVtbl;
   9321 };
   9322 
   9323 #ifdef COBJMACROS
   9324 #ifndef WIDL_C_INLINE_WRAPPERS
   9325 /*** IUnknown methods ***/
   9326 #define ISpeechObjectTokens_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9327 #define ISpeechObjectTokens_AddRef(This) (This)->lpVtbl->AddRef(This)
   9328 #define ISpeechObjectTokens_Release(This) (This)->lpVtbl->Release(This)
   9329 /*** IDispatch methods ***/
   9330 #define ISpeechObjectTokens_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   9331 #define ISpeechObjectTokens_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   9332 #define ISpeechObjectTokens_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   9333 #define ISpeechObjectTokens_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   9334 /*** ISpeechObjectTokens methods ***/
   9335 #define ISpeechObjectTokens_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
   9336 #define ISpeechObjectTokens_Item(This,Index,Token) (This)->lpVtbl->Item(This,Index,Token)
   9337 #define ISpeechObjectTokens_get__NewEnum(This,ppEnumVARIANT) (This)->lpVtbl->get__NewEnum(This,ppEnumVARIANT)
   9338 #else
   9339 /*** IUnknown methods ***/
   9340 static inline HRESULT ISpeechObjectTokens_QueryInterface(ISpeechObjectTokens* This,REFIID riid,void **ppvObject) {
   9341     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9342 }
   9343 static inline ULONG ISpeechObjectTokens_AddRef(ISpeechObjectTokens* This) {
   9344     return This->lpVtbl->AddRef(This);
   9345 }
   9346 static inline ULONG ISpeechObjectTokens_Release(ISpeechObjectTokens* This) {
   9347     return This->lpVtbl->Release(This);
   9348 }
   9349 /*** IDispatch methods ***/
   9350 static inline HRESULT ISpeechObjectTokens_GetTypeInfoCount(ISpeechObjectTokens* This,UINT *pctinfo) {
   9351     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   9352 }
   9353 static inline HRESULT ISpeechObjectTokens_GetTypeInfo(ISpeechObjectTokens* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   9354     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   9355 }
   9356 static inline HRESULT ISpeechObjectTokens_GetIDsOfNames(ISpeechObjectTokens* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   9357     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   9358 }
   9359 static inline HRESULT ISpeechObjectTokens_Invoke(ISpeechObjectTokens* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   9360     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   9361 }
   9362 /*** ISpeechObjectTokens methods ***/
   9363 static inline HRESULT ISpeechObjectTokens_get_Count(ISpeechObjectTokens* This,LONG *Count) {
   9364     return This->lpVtbl->get_Count(This,Count);
   9365 }
   9366 static inline HRESULT ISpeechObjectTokens_Item(ISpeechObjectTokens* This,LONG Index,ISpeechObjectToken **Token) {
   9367     return This->lpVtbl->Item(This,Index,Token);
   9368 }
   9369 static inline HRESULT ISpeechObjectTokens_get__NewEnum(ISpeechObjectTokens* This,IUnknown **ppEnumVARIANT) {
   9370     return This->lpVtbl->get__NewEnum(This,ppEnumVARIANT);
   9371 }
   9372 #endif
   9373 #endif
   9374 
   9375 #endif
   9376 
   9377 
   9378 #endif  /* __ISpeechObjectTokens_INTERFACE_DEFINED__ */
   9379 
   9380 /*****************************************************************************
   9381  * ISpeechObjectTokenCategory interface
   9382  */
   9383 #ifndef __ISpeechObjectTokenCategory_INTERFACE_DEFINED__
   9384 #define __ISpeechObjectTokenCategory_INTERFACE_DEFINED__
   9385 
   9386 DEFINE_GUID(IID_ISpeechObjectTokenCategory, 0xca7eac50, 0x2d01, 0x4145, 0x86,0xd4, 0x5a,0xe7,0xd7,0x0f,0x44,0x69);
   9387 #if defined(__cplusplus) && !defined(CINTERFACE)
   9388 MIDL_INTERFACE("ca7eac50-2d01-4145-86d4-5ae7d70f4469")
   9389 ISpeechObjectTokenCategory : public IDispatch
   9390 {
   9391     virtual HRESULT STDMETHODCALLTYPE get_Id(
   9392         BSTR *Id) = 0;
   9393 
   9394     virtual HRESULT STDMETHODCALLTYPE put_Default(
   9395         const BSTR TokenId) = 0;
   9396 
   9397     virtual HRESULT STDMETHODCALLTYPE get_Default(
   9398         BSTR *TokenId) = 0;
   9399 
   9400     virtual HRESULT STDMETHODCALLTYPE SetId(
   9401         const BSTR Id,
   9402         VARIANT_BOOL CreateIfNotExist = 0) = 0;
   9403 
   9404     virtual HRESULT STDMETHODCALLTYPE GetDataKey(
   9405         SpeechDataKeyLocation Location,
   9406         ISpeechDataKey **DataKey) = 0;
   9407 
   9408     virtual HRESULT STDMETHODCALLTYPE EnumerateTokens(
   9409         BSTR RequiredAttributes,
   9410         BSTR OptionalAttributes,
   9411         ISpeechObjectTokens **Tokens) = 0;
   9412 
   9413 };
   9414 #ifdef __CRT_UUID_DECL
   9415 __CRT_UUID_DECL(ISpeechObjectTokenCategory, 0xca7eac50, 0x2d01, 0x4145, 0x86,0xd4, 0x5a,0xe7,0xd7,0x0f,0x44,0x69)
   9416 #endif
   9417 #else
   9418 typedef struct ISpeechObjectTokenCategoryVtbl {
   9419     BEGIN_INTERFACE
   9420 
   9421     /*** IUnknown methods ***/
   9422     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9423         ISpeechObjectTokenCategory *This,
   9424         REFIID riid,
   9425         void **ppvObject);
   9426 
   9427     ULONG (STDMETHODCALLTYPE *AddRef)(
   9428         ISpeechObjectTokenCategory *This);
   9429 
   9430     ULONG (STDMETHODCALLTYPE *Release)(
   9431         ISpeechObjectTokenCategory *This);
   9432 
   9433     /*** IDispatch methods ***/
   9434     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   9435         ISpeechObjectTokenCategory *This,
   9436         UINT *pctinfo);
   9437 
   9438     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   9439         ISpeechObjectTokenCategory *This,
   9440         UINT iTInfo,
   9441         LCID lcid,
   9442         ITypeInfo **ppTInfo);
   9443 
   9444     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   9445         ISpeechObjectTokenCategory *This,
   9446         REFIID riid,
   9447         LPOLESTR *rgszNames,
   9448         UINT cNames,
   9449         LCID lcid,
   9450         DISPID *rgDispId);
   9451 
   9452     HRESULT (STDMETHODCALLTYPE *Invoke)(
   9453         ISpeechObjectTokenCategory *This,
   9454         DISPID dispIdMember,
   9455         REFIID riid,
   9456         LCID lcid,
   9457         WORD wFlags,
   9458         DISPPARAMS *pDispParams,
   9459         VARIANT *pVarResult,
   9460         EXCEPINFO *pExcepInfo,
   9461         UINT *puArgErr);
   9462 
   9463     /*** ISpeechObjectTokenCategory methods ***/
   9464     HRESULT (STDMETHODCALLTYPE *get_Id)(
   9465         ISpeechObjectTokenCategory *This,
   9466         BSTR *Id);
   9467 
   9468     HRESULT (STDMETHODCALLTYPE *put_Default)(
   9469         ISpeechObjectTokenCategory *This,
   9470         const BSTR TokenId);
   9471 
   9472     HRESULT (STDMETHODCALLTYPE *get_Default)(
   9473         ISpeechObjectTokenCategory *This,
   9474         BSTR *TokenId);
   9475 
   9476     HRESULT (STDMETHODCALLTYPE *SetId)(
   9477         ISpeechObjectTokenCategory *This,
   9478         const BSTR Id,
   9479         VARIANT_BOOL CreateIfNotExist);
   9480 
   9481     HRESULT (STDMETHODCALLTYPE *GetDataKey)(
   9482         ISpeechObjectTokenCategory *This,
   9483         SpeechDataKeyLocation Location,
   9484         ISpeechDataKey **DataKey);
   9485 
   9486     HRESULT (STDMETHODCALLTYPE *EnumerateTokens)(
   9487         ISpeechObjectTokenCategory *This,
   9488         BSTR RequiredAttributes,
   9489         BSTR OptionalAttributes,
   9490         ISpeechObjectTokens **Tokens);
   9491 
   9492     END_INTERFACE
   9493 } ISpeechObjectTokenCategoryVtbl;
   9494 
   9495 interface ISpeechObjectTokenCategory {
   9496     CONST_VTBL ISpeechObjectTokenCategoryVtbl* lpVtbl;
   9497 };
   9498 
   9499 #ifdef COBJMACROS
   9500 #ifndef WIDL_C_INLINE_WRAPPERS
   9501 /*** IUnknown methods ***/
   9502 #define ISpeechObjectTokenCategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9503 #define ISpeechObjectTokenCategory_AddRef(This) (This)->lpVtbl->AddRef(This)
   9504 #define ISpeechObjectTokenCategory_Release(This) (This)->lpVtbl->Release(This)
   9505 /*** IDispatch methods ***/
   9506 #define ISpeechObjectTokenCategory_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   9507 #define ISpeechObjectTokenCategory_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   9508 #define ISpeechObjectTokenCategory_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   9509 #define ISpeechObjectTokenCategory_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   9510 /*** ISpeechObjectTokenCategory methods ***/
   9511 #define ISpeechObjectTokenCategory_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
   9512 #define ISpeechObjectTokenCategory_put_Default(This,TokenId) (This)->lpVtbl->put_Default(This,TokenId)
   9513 #define ISpeechObjectTokenCategory_get_Default(This,TokenId) (This)->lpVtbl->get_Default(This,TokenId)
   9514 #define ISpeechObjectTokenCategory_SetId(This,Id,CreateIfNotExist) (This)->lpVtbl->SetId(This,Id,CreateIfNotExist)
   9515 #define ISpeechObjectTokenCategory_GetDataKey(This,Location,DataKey) (This)->lpVtbl->GetDataKey(This,Location,DataKey)
   9516 #define ISpeechObjectTokenCategory_EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens) (This)->lpVtbl->EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens)
   9517 #else
   9518 /*** IUnknown methods ***/
   9519 static inline HRESULT ISpeechObjectTokenCategory_QueryInterface(ISpeechObjectTokenCategory* This,REFIID riid,void **ppvObject) {
   9520     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9521 }
   9522 static inline ULONG ISpeechObjectTokenCategory_AddRef(ISpeechObjectTokenCategory* This) {
   9523     return This->lpVtbl->AddRef(This);
   9524 }
   9525 static inline ULONG ISpeechObjectTokenCategory_Release(ISpeechObjectTokenCategory* This) {
   9526     return This->lpVtbl->Release(This);
   9527 }
   9528 /*** IDispatch methods ***/
   9529 static inline HRESULT ISpeechObjectTokenCategory_GetTypeInfoCount(ISpeechObjectTokenCategory* This,UINT *pctinfo) {
   9530     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   9531 }
   9532 static inline HRESULT ISpeechObjectTokenCategory_GetTypeInfo(ISpeechObjectTokenCategory* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   9533     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   9534 }
   9535 static inline HRESULT ISpeechObjectTokenCategory_GetIDsOfNames(ISpeechObjectTokenCategory* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   9536     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   9537 }
   9538 static inline HRESULT ISpeechObjectTokenCategory_Invoke(ISpeechObjectTokenCategory* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   9539     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   9540 }
   9541 /*** ISpeechObjectTokenCategory methods ***/
   9542 static inline HRESULT ISpeechObjectTokenCategory_get_Id(ISpeechObjectTokenCategory* This,BSTR *Id) {
   9543     return This->lpVtbl->get_Id(This,Id);
   9544 }
   9545 static inline HRESULT ISpeechObjectTokenCategory_put_Default(ISpeechObjectTokenCategory* This,const BSTR TokenId) {
   9546     return This->lpVtbl->put_Default(This,TokenId);
   9547 }
   9548 static inline HRESULT ISpeechObjectTokenCategory_get_Default(ISpeechObjectTokenCategory* This,BSTR *TokenId) {
   9549     return This->lpVtbl->get_Default(This,TokenId);
   9550 }
   9551 static inline HRESULT ISpeechObjectTokenCategory_SetId(ISpeechObjectTokenCategory* This,const BSTR Id,VARIANT_BOOL CreateIfNotExist) {
   9552     return This->lpVtbl->SetId(This,Id,CreateIfNotExist);
   9553 }
   9554 static inline HRESULT ISpeechObjectTokenCategory_GetDataKey(ISpeechObjectTokenCategory* This,SpeechDataKeyLocation Location,ISpeechDataKey **DataKey) {
   9555     return This->lpVtbl->GetDataKey(This,Location,DataKey);
   9556 }
   9557 static inline HRESULT ISpeechObjectTokenCategory_EnumerateTokens(ISpeechObjectTokenCategory* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **Tokens) {
   9558     return This->lpVtbl->EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens);
   9559 }
   9560 #endif
   9561 #endif
   9562 
   9563 #endif
   9564 
   9565 
   9566 #endif  /* __ISpeechObjectTokenCategory_INTERFACE_DEFINED__ */
   9567 
   9568 typedef enum SpeechAudioFormatType {
   9569     SAFTDefault = -1,
   9570     SAFTNoAssignedFormat = 0,
   9571     SAFTText = 1,
   9572     SAFTNonStandardFormat = 2,
   9573     SAFTExtendedAudioFormat = 3,
   9574     SAFT8kHz8BitMono = 4,
   9575     SAFT8kHz8BitStereo = 5,
   9576     SAFT8kHz16BitMono = 6,
   9577     SAFT8kHz16BitStereo = 7,
   9578     SAFT11kHz8BitMono = 8,
   9579     SAFT11kHz8BitStereo = 9,
   9580     SAFT11kHz16BitMono = 10,
   9581     SAFT11kHz16BitStereo = 11,
   9582     SAFT12kHz8BitMono = 12,
   9583     SAFT12kHz8BitStereo = 13,
   9584     SAFT12kHz16BitMono = 14,
   9585     SAFT12kHz16BitStereo = 15,
   9586     SAFT16kHz8BitMono = 16,
   9587     SAFT16kHz8BitStereo = 17,
   9588     SAFT16kHz16BitMono = 18,
   9589     SAFT16kHz16BitStereo = 19,
   9590     SAFT22kHz8BitMono = 20,
   9591     SAFT22kHz8BitStereo = 21,
   9592     SAFT22kHz16BitMono = 22,
   9593     SAFT22kHz16BitStereo = 23,
   9594     SAFT24kHz8BitMono = 24,
   9595     SAFT24kHz8BitStereo = 25,
   9596     SAFT24kHz16BitMono = 26,
   9597     SAFT24kHz16BitStereo = 27,
   9598     SAFT32kHz8BitMono = 28,
   9599     SAFT32kHz8BitStereo = 29,
   9600     SAFT32kHz16BitMono = 30,
   9601     SAFT32kHz16BitStereo = 31,
   9602     SAFT44kHz8BitMono = 32,
   9603     SAFT44kHz8BitStereo = 33,
   9604     SAFT44kHz16BitMono = 34,
   9605     SAFT44kHz16BitStereo = 35,
   9606     SAFT48kHz8BitMono = 36,
   9607     SAFT48kHz8BitStereo = 37,
   9608     SAFT48kHz16BitMono = 38,
   9609     SAFT48kHz16BitStereo = 39,
   9610     SAFTTrueSpeech_8kHz1BitMono = 40,
   9611     SAFTCCITT_ALaw_8kHzMono = 41,
   9612     SAFTCCITT_ALaw_8kHzStereo = 42,
   9613     SAFTCCITT_ALaw_11kHzMono = 43,
   9614     SAFTCCITT_ALaw_11kHzStereo = 44,
   9615     SAFTCCITT_ALaw_22kHzMono = 45,
   9616     SAFTCCITT_ALaw_22kHzStereo = 46,
   9617     SAFTCCITT_ALaw_44kHzMono = 47,
   9618     SAFTCCITT_ALaw_44kHzStereo = 48,
   9619     SAFTCCITT_uLaw_8kHzMono = 49,
   9620     SAFTCCITT_uLaw_8kHzStereo = 50,
   9621     SAFTCCITT_uLaw_11kHzMono = 51,
   9622     SAFTCCITT_uLaw_11kHzStereo = 52,
   9623     SAFTCCITT_uLaw_22kHzMono = 53,
   9624     SAFTCCITT_uLaw_22kHzStereo = 54,
   9625     SAFTCCITT_uLaw_44kHzMono = 55,
   9626     SAFTCCITT_uLaw_44kHzStereo = 56,
   9627     SAFTADPCM_8kHzMono = 57,
   9628     SAFTADPCM_8kHzStereo = 58,
   9629     SAFTADPCM_11kHzMono = 59,
   9630     SAFTADPCM_11kHzStereo = 60,
   9631     SAFTADPCM_22kHzMono = 61,
   9632     SAFTADPCM_22kHzStereo = 62,
   9633     SAFTADPCM_44kHzMono = 63,
   9634     SAFTADPCM_44kHzStereo = 64,
   9635     SAFTGSM610_8kHzMono = 65,
   9636     SAFTGSM610_11kHzMono = 66,
   9637     SAFTGSM610_22kHzMono = 67,
   9638     SAFTGSM610_44kHzMono = 68
   9639 } SpeechAudioFormatType;
   9640 typedef enum DISPID_SpeechAudioFormat {
   9641     DISPID_SAFType = 1,
   9642     DISPID_SAFGuid = 2,
   9643     DISPID_SAFGetWaveFormatEx = 3,
   9644     DISPID_SAFSetWaveFormatEx = 4
   9645 } DISPID_SpeechAudioFormat;
   9646 typedef enum DISPID_SpeechBaseStream {
   9647     DISPID_SBSFormat = 1,
   9648     DISPID_SBSRead = 2,
   9649     DISPID_SBSWrite = 3,
   9650     DISPID_SBSSeek = 4
   9651 } DISPID_SpeechBaseStream;
   9652 typedef enum SpeechStreamSeekPositionType {
   9653     SSSPTRelativeToStart = STREAM_SEEK_SET,
   9654     SSSPTRelativeToCurrentPosition = STREAM_SEEK_CUR,
   9655     SSSPTRelativeToEnd = STREAM_SEEK_END
   9656 } SpeechStreamSeekPositionType;
   9657 typedef enum DISPID_SpeechAudio {
   9658     DISPID_SAStatus = 200,
   9659     DISPID_SABufferInfo = 201,
   9660     DISPID_SADefaultFormat = 202,
   9661     DISPID_SAVolume = 203,
   9662     DISPID_SABufferNotifySize = 204,
   9663     DISPID_SAEventHandle = 205,
   9664     DISPID_SASetState = 206
   9665 } DISPID_SpeechAudio;
   9666 typedef enum SpeechAudioState {
   9667     SASClosed = SPAS_CLOSED,
   9668     SASStop = SPAS_STOP,
   9669     SASPause = SPAS_PAUSE,
   9670     SASRun = SPAS_RUN
   9671 } SpeechAudioState;
   9672 typedef enum DISPID_SpeechMMSysAudio {
   9673     DISPID_SMSADeviceId = 300,
   9674     DISPID_SMSALineId = 301,
   9675     DISPID_SMSAMMHandle = 302
   9676 } DISPID_SpeechMMSysAudio;
   9677 typedef enum DISPID_SpeechFileStream {
   9678     DISPID_SFSOpen = 100,
   9679     DISPID_SFSClose = 101
   9680 } DISPID_SpeechFileStream;
   9681 typedef enum SpeechStreamFileMode {
   9682     SSFMOpenForRead = SPFM_OPEN_READONLY,
   9683     SSFMOpenReadWrite = SPFM_OPEN_READWRITE,
   9684     SSFMCreate = SPFM_CREATE,
   9685     SSFMCreateForWrite = SPFM_CREATE_ALWAYS
   9686 } SpeechStreamFileMode;
   9687 typedef enum DISPID_SpeechCustomStream {
   9688     DISPID_SCSBaseStream = 100
   9689 } DISPID_SpeechCustomStream;
   9690 typedef enum DISPID_SpeechMemoryStream {
   9691     DISPID_SMSSetData = 100,
   9692     DISPID_SMSGetData = 101
   9693 } DISPID_SpeechMemoryStream;
   9694 typedef enum DISPID_SpeechAudioStatus {
   9695     DISPID_SASFreeBufferSpace = 1,
   9696     DISPID_SASNonBlockingIO = 2,
   9697     DISPID_SASState = 3,
   9698     DISPID_SASCurrentSeekPosition = 4,
   9699     DISPID_SASCurrentDevicePosition = 5
   9700 } DISPID_SpeechAudioStatus;
   9701 typedef enum DISPID_SpeechAudioBufferInfo {
   9702     DISPID_SABIMinNotification = 1,
   9703     DISPID_SABIBufferSize = 2,
   9704     DISPID_SABIEventBias = 3
   9705 } DISPID_SpeechAudioBufferInfo;
   9706 typedef enum DISPID_SpeechWaveFormatEx {
   9707     DISPID_SWFEFormatTag = 1,
   9708     DISPID_SWFEChannels = 2,
   9709     DISPID_SWFESamplesPerSec = 3,
   9710     DISPID_SWFEAvgBytesPerSec = 4,
   9711     DISPID_SWFEBlockAlign = 5,
   9712     DISPID_SWFEBitsPerSample = 6,
   9713     DISPID_SWFEExtraData = 7
   9714 } DISPID_SpeechWaveFormatEx;
   9715 typedef enum DISPID_SpeechVoice {
   9716     DISPID_SVStatus = 1,
   9717     DISPID_SVVoice = 2,
   9718     DISPID_SVAudioOutput = 3,
   9719     DISPID_SVAudioOutputStream = 4,
   9720     DISPID_SVRate = 5,
   9721     DISPID_SVVolume = 6,
   9722     DISPID_SVAllowAudioOuputFormatChangesOnNextSet = 7,
   9723     DISPID_SVEventInterests = 8,
   9724     DISPID_SVPriority = 9,
   9725     DISPID_SVAlertBoundary = 10,
   9726     DISPID_SVSyncronousSpeakTimeout = 11,
   9727     DISPID_SVSpeak = 12,
   9728     DISPID_SVSpeakStream = 13,
   9729     DISPID_SVPause = 14,
   9730     DISPID_SVResume = 15,
   9731     DISPID_SVSkip = 16,
   9732     DISPID_SVGetVoices = 17,
   9733     DISPID_SVGetAudioOutputs = 18,
   9734     DISPID_SVWaitUntilDone = 19,
   9735     DISPID_SVSpeakCompleteEvent = 20,
   9736     DISPID_SVIsUISupported = 21,
   9737     DISPID_SVDisplayUI = 22
   9738 } DISPID_SpeechVoice;
   9739 typedef enum SpeechVoicePriority {
   9740     SVPNormal = SPVPRI_NORMAL,
   9741     SVPAlert = SPVPRI_ALERT,
   9742     SVPOver = SPVPRI_OVER
   9743 } SpeechVoicePriority;
   9744 typedef enum SpeechVoiceSpeakFlags {
   9745     SVSFDefault = SPF_DEFAULT,
   9746     SVSFlagsAsync = SPF_ASYNC,
   9747     SVSFPurgeBeforeSpeak = SPF_PURGEBEFORESPEAK,
   9748     SVSFIsFilename = SPF_IS_FILENAME,
   9749     SVSFIsXML = SPF_IS_XML,
   9750     SVSFIsNotXML = SPF_IS_NOT_XML,
   9751     SVSFPersistXML = SPF_PERSIST_XML,
   9752     SVSFNLPSpeakPunc = SPF_NLP_SPEAK_PUNC,
   9753     SVSFNLPMask = SPF_NLP_MASK,
   9754     SVSFVoiceMask = SPF_VOICE_MASK,
   9755     SVSFUnusedFlags = SPF_UNUSED_FLAGS
   9756 } SpeechVoiceSpeakFlags;
   9757 typedef enum SpeechVoiceEvents {
   9758     SVEStartInputStream = 0x2,
   9759     SVEEndInputStream = 0x4,
   9760     SVEVoiceChange = 0x8,
   9761     SVEBookmark = 0x10,
   9762     SVEWordBoundary = 0x20,
   9763     SVEPhoneme = 0x40,
   9764     SVESentenceBoundary = 0x80,
   9765     SVEViseme = 0x100,
   9766     SVEAudioLevel = 0x200,
   9767     SVEPrivate = 0x8000,
   9768     SVEAllEvents = 0x83fe
   9769 } SpeechVoiceEvents;
   9770 typedef enum DISPID_SpeechVoiceStatus {
   9771     DISPID_SVSCurrentStreamNumber = 1,
   9772     DISPID_SVSLastStreamNumberQueued = 2,
   9773     DISPID_SVSLastResult = 3,
   9774     DISPID_SVSRunningState = 4,
   9775     DISPID_SVSInputWordPosition = 5,
   9776     DISPID_SVSInputWordLength = 6,
   9777     DISPID_SVSInputSentencePosition = 7,
   9778     DISPID_SVSInputSentenceLength = 8,
   9779     DISPID_SVSLastBookmark = 9,
   9780     DISPID_SVSLastBookmarkId = 10,
   9781     DISPID_SVSPhonemeId = 11,
   9782     DISPID_SVSVisemeId = 12
   9783 } DISPID_SpeechVoiceStatus;
   9784 typedef enum SpeechRunState {
   9785     SRSEDone = SPRS_DONE,
   9786     SRSEIsSpeaking = SPRS_IS_SPEAKING
   9787 } SpeechRunState;
   9788 /*****************************************************************************
   9789  * ISpeechAudioFormat interface
   9790  */
   9791 #ifndef __ISpeechAudioFormat_INTERFACE_DEFINED__
   9792 #define __ISpeechAudioFormat_INTERFACE_DEFINED__
   9793 
   9794 DEFINE_GUID(IID_ISpeechAudioFormat, 0xe6e9c590, 0x3e18, 0x40e3, 0x82,0x99, 0x06,0x1f,0x98,0xbd,0xe7,0xc7);
   9795 #if defined(__cplusplus) && !defined(CINTERFACE)
   9796 MIDL_INTERFACE("e6e9c590-3e18-40e3-8299-061f98bde7c7")
   9797 ISpeechAudioFormat : public IDispatch
   9798 {
   9799     virtual HRESULT STDMETHODCALLTYPE get_Type(
   9800         SpeechAudioFormatType *AudioFormat) = 0;
   9801 
   9802     virtual HRESULT STDMETHODCALLTYPE put_Type(
   9803         SpeechAudioFormatType AudioFormat) = 0;
   9804 
   9805     virtual HRESULT STDMETHODCALLTYPE get_Guid(
   9806         BSTR *Guid) = 0;
   9807 
   9808     virtual HRESULT STDMETHODCALLTYPE put_Guid(
   9809         BSTR Guid) = 0;
   9810 
   9811     virtual HRESULT STDMETHODCALLTYPE GetWaveFormatEx(
   9812         ISpeechWaveFormatEx **SpeechWaveFormatEx) = 0;
   9813 
   9814     virtual HRESULT STDMETHODCALLTYPE SetWaveFormatEx(
   9815         ISpeechWaveFormatEx *SpeechWaveFormatEx) = 0;
   9816 
   9817 };
   9818 #ifdef __CRT_UUID_DECL
   9819 __CRT_UUID_DECL(ISpeechAudioFormat, 0xe6e9c590, 0x3e18, 0x40e3, 0x82,0x99, 0x06,0x1f,0x98,0xbd,0xe7,0xc7)
   9820 #endif
   9821 #else
   9822 typedef struct ISpeechAudioFormatVtbl {
   9823     BEGIN_INTERFACE
   9824 
   9825     /*** IUnknown methods ***/
   9826     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9827         ISpeechAudioFormat *This,
   9828         REFIID riid,
   9829         void **ppvObject);
   9830 
   9831     ULONG (STDMETHODCALLTYPE *AddRef)(
   9832         ISpeechAudioFormat *This);
   9833 
   9834     ULONG (STDMETHODCALLTYPE *Release)(
   9835         ISpeechAudioFormat *This);
   9836 
   9837     /*** IDispatch methods ***/
   9838     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   9839         ISpeechAudioFormat *This,
   9840         UINT *pctinfo);
   9841 
   9842     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   9843         ISpeechAudioFormat *This,
   9844         UINT iTInfo,
   9845         LCID lcid,
   9846         ITypeInfo **ppTInfo);
   9847 
   9848     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   9849         ISpeechAudioFormat *This,
   9850         REFIID riid,
   9851         LPOLESTR *rgszNames,
   9852         UINT cNames,
   9853         LCID lcid,
   9854         DISPID *rgDispId);
   9855 
   9856     HRESULT (STDMETHODCALLTYPE *Invoke)(
   9857         ISpeechAudioFormat *This,
   9858         DISPID dispIdMember,
   9859         REFIID riid,
   9860         LCID lcid,
   9861         WORD wFlags,
   9862         DISPPARAMS *pDispParams,
   9863         VARIANT *pVarResult,
   9864         EXCEPINFO *pExcepInfo,
   9865         UINT *puArgErr);
   9866 
   9867     /*** ISpeechAudioFormat methods ***/
   9868     HRESULT (STDMETHODCALLTYPE *get_Type)(
   9869         ISpeechAudioFormat *This,
   9870         SpeechAudioFormatType *AudioFormat);
   9871 
   9872     HRESULT (STDMETHODCALLTYPE *put_Type)(
   9873         ISpeechAudioFormat *This,
   9874         SpeechAudioFormatType AudioFormat);
   9875 
   9876     HRESULT (STDMETHODCALLTYPE *get_Guid)(
   9877         ISpeechAudioFormat *This,
   9878         BSTR *Guid);
   9879 
   9880     HRESULT (STDMETHODCALLTYPE *put_Guid)(
   9881         ISpeechAudioFormat *This,
   9882         BSTR Guid);
   9883 
   9884     HRESULT (STDMETHODCALLTYPE *GetWaveFormatEx)(
   9885         ISpeechAudioFormat *This,
   9886         ISpeechWaveFormatEx **SpeechWaveFormatEx);
   9887 
   9888     HRESULT (STDMETHODCALLTYPE *SetWaveFormatEx)(
   9889         ISpeechAudioFormat *This,
   9890         ISpeechWaveFormatEx *SpeechWaveFormatEx);
   9891 
   9892     END_INTERFACE
   9893 } ISpeechAudioFormatVtbl;
   9894 
   9895 interface ISpeechAudioFormat {
   9896     CONST_VTBL ISpeechAudioFormatVtbl* lpVtbl;
   9897 };
   9898 
   9899 #ifdef COBJMACROS
   9900 #ifndef WIDL_C_INLINE_WRAPPERS
   9901 /*** IUnknown methods ***/
   9902 #define ISpeechAudioFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9903 #define ISpeechAudioFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
   9904 #define ISpeechAudioFormat_Release(This) (This)->lpVtbl->Release(This)
   9905 /*** IDispatch methods ***/
   9906 #define ISpeechAudioFormat_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   9907 #define ISpeechAudioFormat_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   9908 #define ISpeechAudioFormat_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   9909 #define ISpeechAudioFormat_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   9910 /*** ISpeechAudioFormat methods ***/
   9911 #define ISpeechAudioFormat_get_Type(This,AudioFormat) (This)->lpVtbl->get_Type(This,AudioFormat)
   9912 #define ISpeechAudioFormat_put_Type(This,AudioFormat) (This)->lpVtbl->put_Type(This,AudioFormat)
   9913 #define ISpeechAudioFormat_get_Guid(This,Guid) (This)->lpVtbl->get_Guid(This,Guid)
   9914 #define ISpeechAudioFormat_put_Guid(This,Guid) (This)->lpVtbl->put_Guid(This,Guid)
   9915 #define ISpeechAudioFormat_GetWaveFormatEx(This,SpeechWaveFormatEx) (This)->lpVtbl->GetWaveFormatEx(This,SpeechWaveFormatEx)
   9916 #define ISpeechAudioFormat_SetWaveFormatEx(This,SpeechWaveFormatEx) (This)->lpVtbl->SetWaveFormatEx(This,SpeechWaveFormatEx)
   9917 #else
   9918 /*** IUnknown methods ***/
   9919 static inline HRESULT ISpeechAudioFormat_QueryInterface(ISpeechAudioFormat* This,REFIID riid,void **ppvObject) {
   9920     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9921 }
   9922 static inline ULONG ISpeechAudioFormat_AddRef(ISpeechAudioFormat* This) {
   9923     return This->lpVtbl->AddRef(This);
   9924 }
   9925 static inline ULONG ISpeechAudioFormat_Release(ISpeechAudioFormat* This) {
   9926     return This->lpVtbl->Release(This);
   9927 }
   9928 /*** IDispatch methods ***/
   9929 static inline HRESULT ISpeechAudioFormat_GetTypeInfoCount(ISpeechAudioFormat* This,UINT *pctinfo) {
   9930     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   9931 }
   9932 static inline HRESULT ISpeechAudioFormat_GetTypeInfo(ISpeechAudioFormat* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   9933     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   9934 }
   9935 static inline HRESULT ISpeechAudioFormat_GetIDsOfNames(ISpeechAudioFormat* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   9936     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   9937 }
   9938 static inline HRESULT ISpeechAudioFormat_Invoke(ISpeechAudioFormat* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   9939     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   9940 }
   9941 /*** ISpeechAudioFormat methods ***/
   9942 static inline HRESULT ISpeechAudioFormat_get_Type(ISpeechAudioFormat* This,SpeechAudioFormatType *AudioFormat) {
   9943     return This->lpVtbl->get_Type(This,AudioFormat);
   9944 }
   9945 static inline HRESULT ISpeechAudioFormat_put_Type(ISpeechAudioFormat* This,SpeechAudioFormatType AudioFormat) {
   9946     return This->lpVtbl->put_Type(This,AudioFormat);
   9947 }
   9948 static inline HRESULT ISpeechAudioFormat_get_Guid(ISpeechAudioFormat* This,BSTR *Guid) {
   9949     return This->lpVtbl->get_Guid(This,Guid);
   9950 }
   9951 static inline HRESULT ISpeechAudioFormat_put_Guid(ISpeechAudioFormat* This,BSTR Guid) {
   9952     return This->lpVtbl->put_Guid(This,Guid);
   9953 }
   9954 static inline HRESULT ISpeechAudioFormat_GetWaveFormatEx(ISpeechAudioFormat* This,ISpeechWaveFormatEx **SpeechWaveFormatEx) {
   9955     return This->lpVtbl->GetWaveFormatEx(This,SpeechWaveFormatEx);
   9956 }
   9957 static inline HRESULT ISpeechAudioFormat_SetWaveFormatEx(ISpeechAudioFormat* This,ISpeechWaveFormatEx *SpeechWaveFormatEx) {
   9958     return This->lpVtbl->SetWaveFormatEx(This,SpeechWaveFormatEx);
   9959 }
   9960 #endif
   9961 #endif
   9962 
   9963 #endif
   9964 
   9965 
   9966 #endif  /* __ISpeechAudioFormat_INTERFACE_DEFINED__ */
   9967 
   9968 /*****************************************************************************
   9969  * ISpeechBaseStream interface
   9970  */
   9971 #ifndef __ISpeechBaseStream_INTERFACE_DEFINED__
   9972 #define __ISpeechBaseStream_INTERFACE_DEFINED__
   9973 
   9974 DEFINE_GUID(IID_ISpeechBaseStream, 0x6450336f, 0x7d49, 0x4ced, 0x80,0x97, 0x49,0xd6,0xde,0xe3,0x72,0x94);
   9975 #if defined(__cplusplus) && !defined(CINTERFACE)
   9976 MIDL_INTERFACE("6450336f-7d49-4ced-8097-49d6dee37294")
   9977 ISpeechBaseStream : public IDispatch
   9978 {
   9979     virtual HRESULT STDMETHODCALLTYPE get_Format(
   9980         ISpeechAudioFormat **AudioFormat) = 0;
   9981 
   9982     virtual HRESULT STDMETHODCALLTYPE putref_Format(
   9983         ISpeechAudioFormat *AudioFormat) = 0;
   9984 
   9985     virtual HRESULT STDMETHODCALLTYPE Read(
   9986         VARIANT *Buffer,
   9987         LONG NumberOfBytes,
   9988         LONG *BytesRead) = 0;
   9989 
   9990     virtual HRESULT STDMETHODCALLTYPE Write(
   9991         VARIANT Buffer,
   9992         LONG *BytesWritten) = 0;
   9993 
   9994     virtual HRESULT STDMETHODCALLTYPE Seek(
   9995         VARIANT Position,
   9996         SpeechStreamSeekPositionType Origin,
   9997         VARIANT *NewPosition) = 0;
   9998 
   9999 };
  10000 #ifdef __CRT_UUID_DECL
  10001 __CRT_UUID_DECL(ISpeechBaseStream, 0x6450336f, 0x7d49, 0x4ced, 0x80,0x97, 0x49,0xd6,0xde,0xe3,0x72,0x94)
  10002 #endif
  10003 #else
  10004 typedef struct ISpeechBaseStreamVtbl {
  10005     BEGIN_INTERFACE
  10006 
  10007     /*** IUnknown methods ***/
  10008     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10009         ISpeechBaseStream *This,
  10010         REFIID riid,
  10011         void **ppvObject);
  10012 
  10013     ULONG (STDMETHODCALLTYPE *AddRef)(
  10014         ISpeechBaseStream *This);
  10015 
  10016     ULONG (STDMETHODCALLTYPE *Release)(
  10017         ISpeechBaseStream *This);
  10018 
  10019     /*** IDispatch methods ***/
  10020     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  10021         ISpeechBaseStream *This,
  10022         UINT *pctinfo);
  10023 
  10024     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  10025         ISpeechBaseStream *This,
  10026         UINT iTInfo,
  10027         LCID lcid,
  10028         ITypeInfo **ppTInfo);
  10029 
  10030     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  10031         ISpeechBaseStream *This,
  10032         REFIID riid,
  10033         LPOLESTR *rgszNames,
  10034         UINT cNames,
  10035         LCID lcid,
  10036         DISPID *rgDispId);
  10037 
  10038     HRESULT (STDMETHODCALLTYPE *Invoke)(
  10039         ISpeechBaseStream *This,
  10040         DISPID dispIdMember,
  10041         REFIID riid,
  10042         LCID lcid,
  10043         WORD wFlags,
  10044         DISPPARAMS *pDispParams,
  10045         VARIANT *pVarResult,
  10046         EXCEPINFO *pExcepInfo,
  10047         UINT *puArgErr);
  10048 
  10049     /*** ISpeechBaseStream methods ***/
  10050     HRESULT (STDMETHODCALLTYPE *get_Format)(
  10051         ISpeechBaseStream *This,
  10052         ISpeechAudioFormat **AudioFormat);
  10053 
  10054     HRESULT (STDMETHODCALLTYPE *putref_Format)(
  10055         ISpeechBaseStream *This,
  10056         ISpeechAudioFormat *AudioFormat);
  10057 
  10058     HRESULT (STDMETHODCALLTYPE *Read)(
  10059         ISpeechBaseStream *This,
  10060         VARIANT *Buffer,
  10061         LONG NumberOfBytes,
  10062         LONG *BytesRead);
  10063 
  10064     HRESULT (STDMETHODCALLTYPE *Write)(
  10065         ISpeechBaseStream *This,
  10066         VARIANT Buffer,
  10067         LONG *BytesWritten);
  10068 
  10069     HRESULT (STDMETHODCALLTYPE *Seek)(
  10070         ISpeechBaseStream *This,
  10071         VARIANT Position,
  10072         SpeechStreamSeekPositionType Origin,
  10073         VARIANT *NewPosition);
  10074 
  10075     END_INTERFACE
  10076 } ISpeechBaseStreamVtbl;
  10077 
  10078 interface ISpeechBaseStream {
  10079     CONST_VTBL ISpeechBaseStreamVtbl* lpVtbl;
  10080 };
  10081 
  10082 #ifdef COBJMACROS
  10083 #ifndef WIDL_C_INLINE_WRAPPERS
  10084 /*** IUnknown methods ***/
  10085 #define ISpeechBaseStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10086 #define ISpeechBaseStream_AddRef(This) (This)->lpVtbl->AddRef(This)
  10087 #define ISpeechBaseStream_Release(This) (This)->lpVtbl->Release(This)
  10088 /*** IDispatch methods ***/
  10089 #define ISpeechBaseStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  10090 #define ISpeechBaseStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  10091 #define ISpeechBaseStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  10092 #define ISpeechBaseStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  10093 /*** ISpeechBaseStream methods ***/
  10094 #define ISpeechBaseStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
  10095 #define ISpeechBaseStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
  10096 #define ISpeechBaseStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
  10097 #define ISpeechBaseStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
  10098 #define ISpeechBaseStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
  10099 #else
  10100 /*** IUnknown methods ***/
  10101 static inline HRESULT ISpeechBaseStream_QueryInterface(ISpeechBaseStream* This,REFIID riid,void **ppvObject) {
  10102     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10103 }
  10104 static inline ULONG ISpeechBaseStream_AddRef(ISpeechBaseStream* This) {
  10105     return This->lpVtbl->AddRef(This);
  10106 }
  10107 static inline ULONG ISpeechBaseStream_Release(ISpeechBaseStream* This) {
  10108     return This->lpVtbl->Release(This);
  10109 }
  10110 /*** IDispatch methods ***/
  10111 static inline HRESULT ISpeechBaseStream_GetTypeInfoCount(ISpeechBaseStream* This,UINT *pctinfo) {
  10112     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  10113 }
  10114 static inline HRESULT ISpeechBaseStream_GetTypeInfo(ISpeechBaseStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  10115     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  10116 }
  10117 static inline HRESULT ISpeechBaseStream_GetIDsOfNames(ISpeechBaseStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  10118     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  10119 }
  10120 static inline HRESULT ISpeechBaseStream_Invoke(ISpeechBaseStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  10121     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  10122 }
  10123 /*** ISpeechBaseStream methods ***/
  10124 static inline HRESULT ISpeechBaseStream_get_Format(ISpeechBaseStream* This,ISpeechAudioFormat **AudioFormat) {
  10125     return This->lpVtbl->get_Format(This,AudioFormat);
  10126 }
  10127 static inline HRESULT ISpeechBaseStream_putref_Format(ISpeechBaseStream* This,ISpeechAudioFormat *AudioFormat) {
  10128     return This->lpVtbl->putref_Format(This,AudioFormat);
  10129 }
  10130 static inline HRESULT ISpeechBaseStream_Read(ISpeechBaseStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
  10131     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
  10132 }
  10133 static inline HRESULT ISpeechBaseStream_Write(ISpeechBaseStream* This,VARIANT Buffer,LONG *BytesWritten) {
  10134     return This->lpVtbl->Write(This,Buffer,BytesWritten);
  10135 }
  10136 static inline HRESULT ISpeechBaseStream_Seek(ISpeechBaseStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
  10137     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
  10138 }
  10139 #endif
  10140 #endif
  10141 
  10142 #endif
  10143 
  10144 
  10145 #endif  /* __ISpeechBaseStream_INTERFACE_DEFINED__ */
  10146 
  10147 /*****************************************************************************
  10148  * ISpeechAudio interface
  10149  */
  10150 #ifndef __ISpeechAudio_INTERFACE_DEFINED__
  10151 #define __ISpeechAudio_INTERFACE_DEFINED__
  10152 
  10153 DEFINE_GUID(IID_ISpeechAudio, 0xcff8e175, 0x019e, 0x11d3, 0xa0,0x8e, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5);
  10154 #if defined(__cplusplus) && !defined(CINTERFACE)
  10155 MIDL_INTERFACE("cff8e175-019e-11d3-a08e-00c04f8ef9b5")
  10156 ISpeechAudio : public ISpeechBaseStream
  10157 {
  10158     virtual HRESULT STDMETHODCALLTYPE get_Status(
  10159         ISpeechAudioStatus **Status) = 0;
  10160 
  10161     virtual HRESULT STDMETHODCALLTYPE get_BufferInfo(
  10162         ISpeechAudioBufferInfo **BufferInfo) = 0;
  10163 
  10164     virtual HRESULT STDMETHODCALLTYPE get_DefaultFormat(
  10165         ISpeechAudioFormat **StreamFormat) = 0;
  10166 
  10167     virtual HRESULT STDMETHODCALLTYPE get_Volume(
  10168         LONG *Volume) = 0;
  10169 
  10170     virtual HRESULT STDMETHODCALLTYPE put_Volume(
  10171         LONG Volume) = 0;
  10172 
  10173     virtual HRESULT STDMETHODCALLTYPE get_BufferNotifySize(
  10174         LONG *BufferNotifySize) = 0;
  10175 
  10176     virtual HRESULT STDMETHODCALLTYPE put_BufferNotifySize(
  10177         LONG BufferNotifySize) = 0;
  10178 
  10179     virtual HRESULT STDMETHODCALLTYPE get_EventHandle(
  10180         LONG *EventHandle) = 0;
  10181 
  10182     virtual HRESULT STDMETHODCALLTYPE SetState(
  10183         SpeechAudioState State) = 0;
  10184 
  10185 };
  10186 #ifdef __CRT_UUID_DECL
  10187 __CRT_UUID_DECL(ISpeechAudio, 0xcff8e175, 0x019e, 0x11d3, 0xa0,0x8e, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5)
  10188 #endif
  10189 #else
  10190 typedef struct ISpeechAudioVtbl {
  10191     BEGIN_INTERFACE
  10192 
  10193     /*** IUnknown methods ***/
  10194     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10195         ISpeechAudio *This,
  10196         REFIID riid,
  10197         void **ppvObject);
  10198 
  10199     ULONG (STDMETHODCALLTYPE *AddRef)(
  10200         ISpeechAudio *This);
  10201 
  10202     ULONG (STDMETHODCALLTYPE *Release)(
  10203         ISpeechAudio *This);
  10204 
  10205     /*** IDispatch methods ***/
  10206     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  10207         ISpeechAudio *This,
  10208         UINT *pctinfo);
  10209 
  10210     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  10211         ISpeechAudio *This,
  10212         UINT iTInfo,
  10213         LCID lcid,
  10214         ITypeInfo **ppTInfo);
  10215 
  10216     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  10217         ISpeechAudio *This,
  10218         REFIID riid,
  10219         LPOLESTR *rgszNames,
  10220         UINT cNames,
  10221         LCID lcid,
  10222         DISPID *rgDispId);
  10223 
  10224     HRESULT (STDMETHODCALLTYPE *Invoke)(
  10225         ISpeechAudio *This,
  10226         DISPID dispIdMember,
  10227         REFIID riid,
  10228         LCID lcid,
  10229         WORD wFlags,
  10230         DISPPARAMS *pDispParams,
  10231         VARIANT *pVarResult,
  10232         EXCEPINFO *pExcepInfo,
  10233         UINT *puArgErr);
  10234 
  10235     /*** ISpeechBaseStream methods ***/
  10236     HRESULT (STDMETHODCALLTYPE *get_Format)(
  10237         ISpeechAudio *This,
  10238         ISpeechAudioFormat **AudioFormat);
  10239 
  10240     HRESULT (STDMETHODCALLTYPE *putref_Format)(
  10241         ISpeechAudio *This,
  10242         ISpeechAudioFormat *AudioFormat);
  10243 
  10244     HRESULT (STDMETHODCALLTYPE *Read)(
  10245         ISpeechAudio *This,
  10246         VARIANT *Buffer,
  10247         LONG NumberOfBytes,
  10248         LONG *BytesRead);
  10249 
  10250     HRESULT (STDMETHODCALLTYPE *Write)(
  10251         ISpeechAudio *This,
  10252         VARIANT Buffer,
  10253         LONG *BytesWritten);
  10254 
  10255     HRESULT (STDMETHODCALLTYPE *Seek)(
  10256         ISpeechAudio *This,
  10257         VARIANT Position,
  10258         SpeechStreamSeekPositionType Origin,
  10259         VARIANT *NewPosition);
  10260 
  10261     /*** ISpeechAudio methods ***/
  10262     HRESULT (STDMETHODCALLTYPE *get_Status)(
  10263         ISpeechAudio *This,
  10264         ISpeechAudioStatus **Status);
  10265 
  10266     HRESULT (STDMETHODCALLTYPE *get_BufferInfo)(
  10267         ISpeechAudio *This,
  10268         ISpeechAudioBufferInfo **BufferInfo);
  10269 
  10270     HRESULT (STDMETHODCALLTYPE *get_DefaultFormat)(
  10271         ISpeechAudio *This,
  10272         ISpeechAudioFormat **StreamFormat);
  10273 
  10274     HRESULT (STDMETHODCALLTYPE *get_Volume)(
  10275         ISpeechAudio *This,
  10276         LONG *Volume);
  10277 
  10278     HRESULT (STDMETHODCALLTYPE *put_Volume)(
  10279         ISpeechAudio *This,
  10280         LONG Volume);
  10281 
  10282     HRESULT (STDMETHODCALLTYPE *get_BufferNotifySize)(
  10283         ISpeechAudio *This,
  10284         LONG *BufferNotifySize);
  10285 
  10286     HRESULT (STDMETHODCALLTYPE *put_BufferNotifySize)(
  10287         ISpeechAudio *This,
  10288         LONG BufferNotifySize);
  10289 
  10290     HRESULT (STDMETHODCALLTYPE *get_EventHandle)(
  10291         ISpeechAudio *This,
  10292         LONG *EventHandle);
  10293 
  10294     HRESULT (STDMETHODCALLTYPE *SetState)(
  10295         ISpeechAudio *This,
  10296         SpeechAudioState State);
  10297 
  10298     END_INTERFACE
  10299 } ISpeechAudioVtbl;
  10300 
  10301 interface ISpeechAudio {
  10302     CONST_VTBL ISpeechAudioVtbl* lpVtbl;
  10303 };
  10304 
  10305 #ifdef COBJMACROS
  10306 #ifndef WIDL_C_INLINE_WRAPPERS
  10307 /*** IUnknown methods ***/
  10308 #define ISpeechAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10309 #define ISpeechAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
  10310 #define ISpeechAudio_Release(This) (This)->lpVtbl->Release(This)
  10311 /*** IDispatch methods ***/
  10312 #define ISpeechAudio_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  10313 #define ISpeechAudio_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  10314 #define ISpeechAudio_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  10315 #define ISpeechAudio_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  10316 /*** ISpeechBaseStream methods ***/
  10317 #define ISpeechAudio_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
  10318 #define ISpeechAudio_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
  10319 #define ISpeechAudio_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
  10320 #define ISpeechAudio_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
  10321 #define ISpeechAudio_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
  10322 /*** ISpeechAudio methods ***/
  10323 #define ISpeechAudio_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
  10324 #define ISpeechAudio_get_BufferInfo(This,BufferInfo) (This)->lpVtbl->get_BufferInfo(This,BufferInfo)
  10325 #define ISpeechAudio_get_DefaultFormat(This,StreamFormat) (This)->lpVtbl->get_DefaultFormat(This,StreamFormat)
  10326 #define ISpeechAudio_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
  10327 #define ISpeechAudio_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
  10328 #define ISpeechAudio_get_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->get_BufferNotifySize(This,BufferNotifySize)
  10329 #define ISpeechAudio_put_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->put_BufferNotifySize(This,BufferNotifySize)
  10330 #define ISpeechAudio_get_EventHandle(This,EventHandle) (This)->lpVtbl->get_EventHandle(This,EventHandle)
  10331 #define ISpeechAudio_SetState(This,State) (This)->lpVtbl->SetState(This,State)
  10332 #else
  10333 /*** IUnknown methods ***/
  10334 static inline HRESULT ISpeechAudio_QueryInterface(ISpeechAudio* This,REFIID riid,void **ppvObject) {
  10335     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10336 }
  10337 static inline ULONG ISpeechAudio_AddRef(ISpeechAudio* This) {
  10338     return This->lpVtbl->AddRef(This);
  10339 }
  10340 static inline ULONG ISpeechAudio_Release(ISpeechAudio* This) {
  10341     return This->lpVtbl->Release(This);
  10342 }
  10343 /*** IDispatch methods ***/
  10344 static inline HRESULT ISpeechAudio_GetTypeInfoCount(ISpeechAudio* This,UINT *pctinfo) {
  10345     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  10346 }
  10347 static inline HRESULT ISpeechAudio_GetTypeInfo(ISpeechAudio* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  10348     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  10349 }
  10350 static inline HRESULT ISpeechAudio_GetIDsOfNames(ISpeechAudio* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  10351     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  10352 }
  10353 static inline HRESULT ISpeechAudio_Invoke(ISpeechAudio* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  10354     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  10355 }
  10356 /*** ISpeechBaseStream methods ***/
  10357 static inline HRESULT ISpeechAudio_get_Format(ISpeechAudio* This,ISpeechAudioFormat **AudioFormat) {
  10358     return This->lpVtbl->get_Format(This,AudioFormat);
  10359 }
  10360 static inline HRESULT ISpeechAudio_putref_Format(ISpeechAudio* This,ISpeechAudioFormat *AudioFormat) {
  10361     return This->lpVtbl->putref_Format(This,AudioFormat);
  10362 }
  10363 static inline HRESULT ISpeechAudio_Read(ISpeechAudio* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
  10364     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
  10365 }
  10366 static inline HRESULT ISpeechAudio_Write(ISpeechAudio* This,VARIANT Buffer,LONG *BytesWritten) {
  10367     return This->lpVtbl->Write(This,Buffer,BytesWritten);
  10368 }
  10369 static inline HRESULT ISpeechAudio_Seek(ISpeechAudio* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
  10370     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
  10371 }
  10372 /*** ISpeechAudio methods ***/
  10373 static inline HRESULT ISpeechAudio_get_Status(ISpeechAudio* This,ISpeechAudioStatus **Status) {
  10374     return This->lpVtbl->get_Status(This,Status);
  10375 }
  10376 static inline HRESULT ISpeechAudio_get_BufferInfo(ISpeechAudio* This,ISpeechAudioBufferInfo **BufferInfo) {
  10377     return This->lpVtbl->get_BufferInfo(This,BufferInfo);
  10378 }
  10379 static inline HRESULT ISpeechAudio_get_DefaultFormat(ISpeechAudio* This,ISpeechAudioFormat **StreamFormat) {
  10380     return This->lpVtbl->get_DefaultFormat(This,StreamFormat);
  10381 }
  10382 static inline HRESULT ISpeechAudio_get_Volume(ISpeechAudio* This,LONG *Volume) {
  10383     return This->lpVtbl->get_Volume(This,Volume);
  10384 }
  10385 static inline HRESULT ISpeechAudio_put_Volume(ISpeechAudio* This,LONG Volume) {
  10386     return This->lpVtbl->put_Volume(This,Volume);
  10387 }
  10388 static inline HRESULT ISpeechAudio_get_BufferNotifySize(ISpeechAudio* This,LONG *BufferNotifySize) {
  10389     return This->lpVtbl->get_BufferNotifySize(This,BufferNotifySize);
  10390 }
  10391 static inline HRESULT ISpeechAudio_put_BufferNotifySize(ISpeechAudio* This,LONG BufferNotifySize) {
  10392     return This->lpVtbl->put_BufferNotifySize(This,BufferNotifySize);
  10393 }
  10394 static inline HRESULT ISpeechAudio_get_EventHandle(ISpeechAudio* This,LONG *EventHandle) {
  10395     return This->lpVtbl->get_EventHandle(This,EventHandle);
  10396 }
  10397 static inline HRESULT ISpeechAudio_SetState(ISpeechAudio* This,SpeechAudioState State) {
  10398     return This->lpVtbl->SetState(This,State);
  10399 }
  10400 #endif
  10401 #endif
  10402 
  10403 #endif
  10404 
  10405 
  10406 #endif  /* __ISpeechAudio_INTERFACE_DEFINED__ */
  10407 
  10408 /*****************************************************************************
  10409  * ISpeechMMSysAudio interface
  10410  */
  10411 #ifndef __ISpeechMMSysAudio_INTERFACE_DEFINED__
  10412 #define __ISpeechMMSysAudio_INTERFACE_DEFINED__
  10413 
  10414 DEFINE_GUID(IID_ISpeechMMSysAudio, 0x3c76af6d, 0x1fd7, 0x4831, 0x81,0xd1, 0x3b,0x71,0xd5,0xa1,0x3c,0x44);
  10415 #if defined(__cplusplus) && !defined(CINTERFACE)
  10416 MIDL_INTERFACE("3c76af6d-1fd7-4831-81d1-3b71d5a13c44")
  10417 ISpeechMMSysAudio : public ISpeechAudio
  10418 {
  10419     virtual HRESULT STDMETHODCALLTYPE get_DeviceId(
  10420         LONG *DeviceId) = 0;
  10421 
  10422     virtual HRESULT STDMETHODCALLTYPE put_DeviceId(
  10423         LONG DeviceId) = 0;
  10424 
  10425     virtual HRESULT STDMETHODCALLTYPE get_LineId(
  10426         LONG *LineId) = 0;
  10427 
  10428     virtual HRESULT STDMETHODCALLTYPE put_LineId(
  10429         LONG LineId) = 0;
  10430 
  10431     virtual HRESULT STDMETHODCALLTYPE get_MMHandle(
  10432         LONG *Handle) = 0;
  10433 
  10434 };
  10435 #ifdef __CRT_UUID_DECL
  10436 __CRT_UUID_DECL(ISpeechMMSysAudio, 0x3c76af6d, 0x1fd7, 0x4831, 0x81,0xd1, 0x3b,0x71,0xd5,0xa1,0x3c,0x44)
  10437 #endif
  10438 #else
  10439 typedef struct ISpeechMMSysAudioVtbl {
  10440     BEGIN_INTERFACE
  10441 
  10442     /*** IUnknown methods ***/
  10443     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10444         ISpeechMMSysAudio *This,
  10445         REFIID riid,
  10446         void **ppvObject);
  10447 
  10448     ULONG (STDMETHODCALLTYPE *AddRef)(
  10449         ISpeechMMSysAudio *This);
  10450 
  10451     ULONG (STDMETHODCALLTYPE *Release)(
  10452         ISpeechMMSysAudio *This);
  10453 
  10454     /*** IDispatch methods ***/
  10455     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  10456         ISpeechMMSysAudio *This,
  10457         UINT *pctinfo);
  10458 
  10459     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  10460         ISpeechMMSysAudio *This,
  10461         UINT iTInfo,
  10462         LCID lcid,
  10463         ITypeInfo **ppTInfo);
  10464 
  10465     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  10466         ISpeechMMSysAudio *This,
  10467         REFIID riid,
  10468         LPOLESTR *rgszNames,
  10469         UINT cNames,
  10470         LCID lcid,
  10471         DISPID *rgDispId);
  10472 
  10473     HRESULT (STDMETHODCALLTYPE *Invoke)(
  10474         ISpeechMMSysAudio *This,
  10475         DISPID dispIdMember,
  10476         REFIID riid,
  10477         LCID lcid,
  10478         WORD wFlags,
  10479         DISPPARAMS *pDispParams,
  10480         VARIANT *pVarResult,
  10481         EXCEPINFO *pExcepInfo,
  10482         UINT *puArgErr);
  10483 
  10484     /*** ISpeechBaseStream methods ***/
  10485     HRESULT (STDMETHODCALLTYPE *get_Format)(
  10486         ISpeechMMSysAudio *This,
  10487         ISpeechAudioFormat **AudioFormat);
  10488 
  10489     HRESULT (STDMETHODCALLTYPE *putref_Format)(
  10490         ISpeechMMSysAudio *This,
  10491         ISpeechAudioFormat *AudioFormat);
  10492 
  10493     HRESULT (STDMETHODCALLTYPE *Read)(
  10494         ISpeechMMSysAudio *This,
  10495         VARIANT *Buffer,
  10496         LONG NumberOfBytes,
  10497         LONG *BytesRead);
  10498 
  10499     HRESULT (STDMETHODCALLTYPE *Write)(
  10500         ISpeechMMSysAudio *This,
  10501         VARIANT Buffer,
  10502         LONG *BytesWritten);
  10503 
  10504     HRESULT (STDMETHODCALLTYPE *Seek)(
  10505         ISpeechMMSysAudio *This,
  10506         VARIANT Position,
  10507         SpeechStreamSeekPositionType Origin,
  10508         VARIANT *NewPosition);
  10509 
  10510     /*** ISpeechAudio methods ***/
  10511     HRESULT (STDMETHODCALLTYPE *get_Status)(
  10512         ISpeechMMSysAudio *This,
  10513         ISpeechAudioStatus **Status);
  10514 
  10515     HRESULT (STDMETHODCALLTYPE *get_BufferInfo)(
  10516         ISpeechMMSysAudio *This,
  10517         ISpeechAudioBufferInfo **BufferInfo);
  10518 
  10519     HRESULT (STDMETHODCALLTYPE *get_DefaultFormat)(
  10520         ISpeechMMSysAudio *This,
  10521         ISpeechAudioFormat **StreamFormat);
  10522 
  10523     HRESULT (STDMETHODCALLTYPE *get_Volume)(
  10524         ISpeechMMSysAudio *This,
  10525         LONG *Volume);
  10526 
  10527     HRESULT (STDMETHODCALLTYPE *put_Volume)(
  10528         ISpeechMMSysAudio *This,
  10529         LONG Volume);
  10530 
  10531     HRESULT (STDMETHODCALLTYPE *get_BufferNotifySize)(
  10532         ISpeechMMSysAudio *This,
  10533         LONG *BufferNotifySize);
  10534 
  10535     HRESULT (STDMETHODCALLTYPE *put_BufferNotifySize)(
  10536         ISpeechMMSysAudio *This,
  10537         LONG BufferNotifySize);
  10538 
  10539     HRESULT (STDMETHODCALLTYPE *get_EventHandle)(
  10540         ISpeechMMSysAudio *This,
  10541         LONG *EventHandle);
  10542 
  10543     HRESULT (STDMETHODCALLTYPE *SetState)(
  10544         ISpeechMMSysAudio *This,
  10545         SpeechAudioState State);
  10546 
  10547     /*** ISpeechMMSysAudio methods ***/
  10548     HRESULT (STDMETHODCALLTYPE *get_DeviceId)(
  10549         ISpeechMMSysAudio *This,
  10550         LONG *DeviceId);
  10551 
  10552     HRESULT (STDMETHODCALLTYPE *put_DeviceId)(
  10553         ISpeechMMSysAudio *This,
  10554         LONG DeviceId);
  10555 
  10556     HRESULT (STDMETHODCALLTYPE *get_LineId)(
  10557         ISpeechMMSysAudio *This,
  10558         LONG *LineId);
  10559 
  10560     HRESULT (STDMETHODCALLTYPE *put_LineId)(
  10561         ISpeechMMSysAudio *This,
  10562         LONG LineId);
  10563 
  10564     HRESULT (STDMETHODCALLTYPE *get_MMHandle)(
  10565         ISpeechMMSysAudio *This,
  10566         LONG *Handle);
  10567 
  10568     END_INTERFACE
  10569 } ISpeechMMSysAudioVtbl;
  10570 
  10571 interface ISpeechMMSysAudio {
  10572     CONST_VTBL ISpeechMMSysAudioVtbl* lpVtbl;
  10573 };
  10574 
  10575 #ifdef COBJMACROS
  10576 #ifndef WIDL_C_INLINE_WRAPPERS
  10577 /*** IUnknown methods ***/
  10578 #define ISpeechMMSysAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10579 #define ISpeechMMSysAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
  10580 #define ISpeechMMSysAudio_Release(This) (This)->lpVtbl->Release(This)
  10581 /*** IDispatch methods ***/
  10582 #define ISpeechMMSysAudio_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  10583 #define ISpeechMMSysAudio_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  10584 #define ISpeechMMSysAudio_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  10585 #define ISpeechMMSysAudio_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  10586 /*** ISpeechBaseStream methods ***/
  10587 #define ISpeechMMSysAudio_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
  10588 #define ISpeechMMSysAudio_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
  10589 #define ISpeechMMSysAudio_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
  10590 #define ISpeechMMSysAudio_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
  10591 #define ISpeechMMSysAudio_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
  10592 /*** ISpeechAudio methods ***/
  10593 #define ISpeechMMSysAudio_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
  10594 #define ISpeechMMSysAudio_get_BufferInfo(This,BufferInfo) (This)->lpVtbl->get_BufferInfo(This,BufferInfo)
  10595 #define ISpeechMMSysAudio_get_DefaultFormat(This,StreamFormat) (This)->lpVtbl->get_DefaultFormat(This,StreamFormat)
  10596 #define ISpeechMMSysAudio_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
  10597 #define ISpeechMMSysAudio_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
  10598 #define ISpeechMMSysAudio_get_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->get_BufferNotifySize(This,BufferNotifySize)
  10599 #define ISpeechMMSysAudio_put_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->put_BufferNotifySize(This,BufferNotifySize)
  10600 #define ISpeechMMSysAudio_get_EventHandle(This,EventHandle) (This)->lpVtbl->get_EventHandle(This,EventHandle)
  10601 #define ISpeechMMSysAudio_SetState(This,State) (This)->lpVtbl->SetState(This,State)
  10602 /*** ISpeechMMSysAudio methods ***/
  10603 #define ISpeechMMSysAudio_get_DeviceId(This,DeviceId) (This)->lpVtbl->get_DeviceId(This,DeviceId)
  10604 #define ISpeechMMSysAudio_put_DeviceId(This,DeviceId) (This)->lpVtbl->put_DeviceId(This,DeviceId)
  10605 #define ISpeechMMSysAudio_get_LineId(This,LineId) (This)->lpVtbl->get_LineId(This,LineId)
  10606 #define ISpeechMMSysAudio_put_LineId(This,LineId) (This)->lpVtbl->put_LineId(This,LineId)
  10607 #define ISpeechMMSysAudio_get_MMHandle(This,Handle) (This)->lpVtbl->get_MMHandle(This,Handle)
  10608 #else
  10609 /*** IUnknown methods ***/
  10610 static inline HRESULT ISpeechMMSysAudio_QueryInterface(ISpeechMMSysAudio* This,REFIID riid,void **ppvObject) {
  10611     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10612 }
  10613 static inline ULONG ISpeechMMSysAudio_AddRef(ISpeechMMSysAudio* This) {
  10614     return This->lpVtbl->AddRef(This);
  10615 }
  10616 static inline ULONG ISpeechMMSysAudio_Release(ISpeechMMSysAudio* This) {
  10617     return This->lpVtbl->Release(This);
  10618 }
  10619 /*** IDispatch methods ***/
  10620 static inline HRESULT ISpeechMMSysAudio_GetTypeInfoCount(ISpeechMMSysAudio* This,UINT *pctinfo) {
  10621     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  10622 }
  10623 static inline HRESULT ISpeechMMSysAudio_GetTypeInfo(ISpeechMMSysAudio* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  10624     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  10625 }
  10626 static inline HRESULT ISpeechMMSysAudio_GetIDsOfNames(ISpeechMMSysAudio* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  10627     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  10628 }
  10629 static inline HRESULT ISpeechMMSysAudio_Invoke(ISpeechMMSysAudio* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  10630     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  10631 }
  10632 /*** ISpeechBaseStream methods ***/
  10633 static inline HRESULT ISpeechMMSysAudio_get_Format(ISpeechMMSysAudio* This,ISpeechAudioFormat **AudioFormat) {
  10634     return This->lpVtbl->get_Format(This,AudioFormat);
  10635 }
  10636 static inline HRESULT ISpeechMMSysAudio_putref_Format(ISpeechMMSysAudio* This,ISpeechAudioFormat *AudioFormat) {
  10637     return This->lpVtbl->putref_Format(This,AudioFormat);
  10638 }
  10639 static inline HRESULT ISpeechMMSysAudio_Read(ISpeechMMSysAudio* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
  10640     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
  10641 }
  10642 static inline HRESULT ISpeechMMSysAudio_Write(ISpeechMMSysAudio* This,VARIANT Buffer,LONG *BytesWritten) {
  10643     return This->lpVtbl->Write(This,Buffer,BytesWritten);
  10644 }
  10645 static inline HRESULT ISpeechMMSysAudio_Seek(ISpeechMMSysAudio* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
  10646     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
  10647 }
  10648 /*** ISpeechAudio methods ***/
  10649 static inline HRESULT ISpeechMMSysAudio_get_Status(ISpeechMMSysAudio* This,ISpeechAudioStatus **Status) {
  10650     return This->lpVtbl->get_Status(This,Status);
  10651 }
  10652 static inline HRESULT ISpeechMMSysAudio_get_BufferInfo(ISpeechMMSysAudio* This,ISpeechAudioBufferInfo **BufferInfo) {
  10653     return This->lpVtbl->get_BufferInfo(This,BufferInfo);
  10654 }
  10655 static inline HRESULT ISpeechMMSysAudio_get_DefaultFormat(ISpeechMMSysAudio* This,ISpeechAudioFormat **StreamFormat) {
  10656     return This->lpVtbl->get_DefaultFormat(This,StreamFormat);
  10657 }
  10658 static inline HRESULT ISpeechMMSysAudio_get_Volume(ISpeechMMSysAudio* This,LONG *Volume) {
  10659     return This->lpVtbl->get_Volume(This,Volume);
  10660 }
  10661 static inline HRESULT ISpeechMMSysAudio_put_Volume(ISpeechMMSysAudio* This,LONG Volume) {
  10662     return This->lpVtbl->put_Volume(This,Volume);
  10663 }
  10664 static inline HRESULT ISpeechMMSysAudio_get_BufferNotifySize(ISpeechMMSysAudio* This,LONG *BufferNotifySize) {
  10665     return This->lpVtbl->get_BufferNotifySize(This,BufferNotifySize);
  10666 }
  10667 static inline HRESULT ISpeechMMSysAudio_put_BufferNotifySize(ISpeechMMSysAudio* This,LONG BufferNotifySize) {
  10668     return This->lpVtbl->put_BufferNotifySize(This,BufferNotifySize);
  10669 }
  10670 static inline HRESULT ISpeechMMSysAudio_get_EventHandle(ISpeechMMSysAudio* This,LONG *EventHandle) {
  10671     return This->lpVtbl->get_EventHandle(This,EventHandle);
  10672 }
  10673 static inline HRESULT ISpeechMMSysAudio_SetState(ISpeechMMSysAudio* This,SpeechAudioState State) {
  10674     return This->lpVtbl->SetState(This,State);
  10675 }
  10676 /*** ISpeechMMSysAudio methods ***/
  10677 static inline HRESULT ISpeechMMSysAudio_get_DeviceId(ISpeechMMSysAudio* This,LONG *DeviceId) {
  10678     return This->lpVtbl->get_DeviceId(This,DeviceId);
  10679 }
  10680 static inline HRESULT ISpeechMMSysAudio_put_DeviceId(ISpeechMMSysAudio* This,LONG DeviceId) {
  10681     return This->lpVtbl->put_DeviceId(This,DeviceId);
  10682 }
  10683 static inline HRESULT ISpeechMMSysAudio_get_LineId(ISpeechMMSysAudio* This,LONG *LineId) {
  10684     return This->lpVtbl->get_LineId(This,LineId);
  10685 }
  10686 static inline HRESULT ISpeechMMSysAudio_put_LineId(ISpeechMMSysAudio* This,LONG LineId) {
  10687     return This->lpVtbl->put_LineId(This,LineId);
  10688 }
  10689 static inline HRESULT ISpeechMMSysAudio_get_MMHandle(ISpeechMMSysAudio* This,LONG *Handle) {
  10690     return This->lpVtbl->get_MMHandle(This,Handle);
  10691 }
  10692 #endif
  10693 #endif
  10694 
  10695 #endif
  10696 
  10697 
  10698 #endif  /* __ISpeechMMSysAudio_INTERFACE_DEFINED__ */
  10699 
  10700 /*****************************************************************************
  10701  * ISpeechFileStream interface
  10702  */
  10703 #ifndef __ISpeechFileStream_INTERFACE_DEFINED__
  10704 #define __ISpeechFileStream_INTERFACE_DEFINED__
  10705 
  10706 DEFINE_GUID(IID_ISpeechFileStream, 0xaf67f125, 0xab39, 0x4e93, 0xb4,0xa2, 0xcc,0x2e,0x66,0xe1,0x82,0xa7);
  10707 #if defined(__cplusplus) && !defined(CINTERFACE)
  10708 MIDL_INTERFACE("af67f125-ab39-4e93-b4a2-cc2e66e182a7")
  10709 ISpeechFileStream : public ISpeechBaseStream
  10710 {
  10711     virtual HRESULT STDMETHODCALLTYPE Open(
  10712         BSTR FileName,
  10713         SpeechStreamFileMode FileMode = SSFMOpenForRead,
  10714         VARIANT_BOOL DoEvents = 0) = 0;
  10715 
  10716     virtual HRESULT STDMETHODCALLTYPE Close(
  10717         ) = 0;
  10718 
  10719 };
  10720 #ifdef __CRT_UUID_DECL
  10721 __CRT_UUID_DECL(ISpeechFileStream, 0xaf67f125, 0xab39, 0x4e93, 0xb4,0xa2, 0xcc,0x2e,0x66,0xe1,0x82,0xa7)
  10722 #endif
  10723 #else
  10724 typedef struct ISpeechFileStreamVtbl {
  10725     BEGIN_INTERFACE
  10726 
  10727     /*** IUnknown methods ***/
  10728     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10729         ISpeechFileStream *This,
  10730         REFIID riid,
  10731         void **ppvObject);
  10732 
  10733     ULONG (STDMETHODCALLTYPE *AddRef)(
  10734         ISpeechFileStream *This);
  10735 
  10736     ULONG (STDMETHODCALLTYPE *Release)(
  10737         ISpeechFileStream *This);
  10738 
  10739     /*** IDispatch methods ***/
  10740     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  10741         ISpeechFileStream *This,
  10742         UINT *pctinfo);
  10743 
  10744     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  10745         ISpeechFileStream *This,
  10746         UINT iTInfo,
  10747         LCID lcid,
  10748         ITypeInfo **ppTInfo);
  10749 
  10750     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  10751         ISpeechFileStream *This,
  10752         REFIID riid,
  10753         LPOLESTR *rgszNames,
  10754         UINT cNames,
  10755         LCID lcid,
  10756         DISPID *rgDispId);
  10757 
  10758     HRESULT (STDMETHODCALLTYPE *Invoke)(
  10759         ISpeechFileStream *This,
  10760         DISPID dispIdMember,
  10761         REFIID riid,
  10762         LCID lcid,
  10763         WORD wFlags,
  10764         DISPPARAMS *pDispParams,
  10765         VARIANT *pVarResult,
  10766         EXCEPINFO *pExcepInfo,
  10767         UINT *puArgErr);
  10768 
  10769     /*** ISpeechBaseStream methods ***/
  10770     HRESULT (STDMETHODCALLTYPE *get_Format)(
  10771         ISpeechFileStream *This,
  10772         ISpeechAudioFormat **AudioFormat);
  10773 
  10774     HRESULT (STDMETHODCALLTYPE *putref_Format)(
  10775         ISpeechFileStream *This,
  10776         ISpeechAudioFormat *AudioFormat);
  10777 
  10778     HRESULT (STDMETHODCALLTYPE *Read)(
  10779         ISpeechFileStream *This,
  10780         VARIANT *Buffer,
  10781         LONG NumberOfBytes,
  10782         LONG *BytesRead);
  10783 
  10784     HRESULT (STDMETHODCALLTYPE *Write)(
  10785         ISpeechFileStream *This,
  10786         VARIANT Buffer,
  10787         LONG *BytesWritten);
  10788 
  10789     HRESULT (STDMETHODCALLTYPE *Seek)(
  10790         ISpeechFileStream *This,
  10791         VARIANT Position,
  10792         SpeechStreamSeekPositionType Origin,
  10793         VARIANT *NewPosition);
  10794 
  10795     /*** ISpeechFileStream methods ***/
  10796     HRESULT (STDMETHODCALLTYPE *Open)(
  10797         ISpeechFileStream *This,
  10798         BSTR FileName,
  10799         SpeechStreamFileMode FileMode,
  10800         VARIANT_BOOL DoEvents);
  10801 
  10802     HRESULT (STDMETHODCALLTYPE *Close)(
  10803         ISpeechFileStream *This);
  10804 
  10805     END_INTERFACE
  10806 } ISpeechFileStreamVtbl;
  10807 
  10808 interface ISpeechFileStream {
  10809     CONST_VTBL ISpeechFileStreamVtbl* lpVtbl;
  10810 };
  10811 
  10812 #ifdef COBJMACROS
  10813 #ifndef WIDL_C_INLINE_WRAPPERS
  10814 /*** IUnknown methods ***/
  10815 #define ISpeechFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10816 #define ISpeechFileStream_AddRef(This) (This)->lpVtbl->AddRef(This)
  10817 #define ISpeechFileStream_Release(This) (This)->lpVtbl->Release(This)
  10818 /*** IDispatch methods ***/
  10819 #define ISpeechFileStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  10820 #define ISpeechFileStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  10821 #define ISpeechFileStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  10822 #define ISpeechFileStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  10823 /*** ISpeechBaseStream methods ***/
  10824 #define ISpeechFileStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
  10825 #define ISpeechFileStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
  10826 #define ISpeechFileStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
  10827 #define ISpeechFileStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
  10828 #define ISpeechFileStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
  10829 /*** ISpeechFileStream methods ***/
  10830 #define ISpeechFileStream_Open(This,FileName,FileMode,DoEvents) (This)->lpVtbl->Open(This,FileName,FileMode,DoEvents)
  10831 #define ISpeechFileStream_Close(This) (This)->lpVtbl->Close(This)
  10832 #else
  10833 /*** IUnknown methods ***/
  10834 static inline HRESULT ISpeechFileStream_QueryInterface(ISpeechFileStream* This,REFIID riid,void **ppvObject) {
  10835     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10836 }
  10837 static inline ULONG ISpeechFileStream_AddRef(ISpeechFileStream* This) {
  10838     return This->lpVtbl->AddRef(This);
  10839 }
  10840 static inline ULONG ISpeechFileStream_Release(ISpeechFileStream* This) {
  10841     return This->lpVtbl->Release(This);
  10842 }
  10843 /*** IDispatch methods ***/
  10844 static inline HRESULT ISpeechFileStream_GetTypeInfoCount(ISpeechFileStream* This,UINT *pctinfo) {
  10845     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  10846 }
  10847 static inline HRESULT ISpeechFileStream_GetTypeInfo(ISpeechFileStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  10848     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  10849 }
  10850 static inline HRESULT ISpeechFileStream_GetIDsOfNames(ISpeechFileStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  10851     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  10852 }
  10853 static inline HRESULT ISpeechFileStream_Invoke(ISpeechFileStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  10854     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  10855 }
  10856 /*** ISpeechBaseStream methods ***/
  10857 static inline HRESULT ISpeechFileStream_get_Format(ISpeechFileStream* This,ISpeechAudioFormat **AudioFormat) {
  10858     return This->lpVtbl->get_Format(This,AudioFormat);
  10859 }
  10860 static inline HRESULT ISpeechFileStream_putref_Format(ISpeechFileStream* This,ISpeechAudioFormat *AudioFormat) {
  10861     return This->lpVtbl->putref_Format(This,AudioFormat);
  10862 }
  10863 static inline HRESULT ISpeechFileStream_Read(ISpeechFileStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
  10864     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
  10865 }
  10866 static inline HRESULT ISpeechFileStream_Write(ISpeechFileStream* This,VARIANT Buffer,LONG *BytesWritten) {
  10867     return This->lpVtbl->Write(This,Buffer,BytesWritten);
  10868 }
  10869 static inline HRESULT ISpeechFileStream_Seek(ISpeechFileStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
  10870     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
  10871 }
  10872 /*** ISpeechFileStream methods ***/
  10873 static inline HRESULT ISpeechFileStream_Open(ISpeechFileStream* This,BSTR FileName,SpeechStreamFileMode FileMode,VARIANT_BOOL DoEvents) {
  10874     return This->lpVtbl->Open(This,FileName,FileMode,DoEvents);
  10875 }
  10876 static inline HRESULT ISpeechFileStream_Close(ISpeechFileStream* This) {
  10877     return This->lpVtbl->Close(This);
  10878 }
  10879 #endif
  10880 #endif
  10881 
  10882 #endif
  10883 
  10884 
  10885 #endif  /* __ISpeechFileStream_INTERFACE_DEFINED__ */
  10886 
  10887 /*****************************************************************************
  10888  * ISpeechCustomStream interface
  10889  */
  10890 #ifndef __ISpeechCustomStream_INTERFACE_DEFINED__
  10891 #define __ISpeechCustomStream_INTERFACE_DEFINED__
  10892 
  10893 DEFINE_GUID(IID_ISpeechCustomStream, 0x1a9e9f4f, 0x104f, 0x4db8, 0xa1,0x15, 0xef,0xd7,0xfd,0x0c,0x97,0xae);
  10894 #if defined(__cplusplus) && !defined(CINTERFACE)
  10895 MIDL_INTERFACE("1a9e9f4f-104f-4db8-a115-efd7fd0c97ae")
  10896 ISpeechCustomStream : public ISpeechBaseStream
  10897 {
  10898     virtual HRESULT STDMETHODCALLTYPE get_BaseStream(
  10899         IUnknown **ppUnkStream) = 0;
  10900 
  10901     virtual HRESULT STDMETHODCALLTYPE putref_BaseStream(
  10902         IUnknown *pUnkStream) = 0;
  10903 
  10904 };
  10905 #ifdef __CRT_UUID_DECL
  10906 __CRT_UUID_DECL(ISpeechCustomStream, 0x1a9e9f4f, 0x104f, 0x4db8, 0xa1,0x15, 0xef,0xd7,0xfd,0x0c,0x97,0xae)
  10907 #endif
  10908 #else
  10909 typedef struct ISpeechCustomStreamVtbl {
  10910     BEGIN_INTERFACE
  10911 
  10912     /*** IUnknown methods ***/
  10913     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10914         ISpeechCustomStream *This,
  10915         REFIID riid,
  10916         void **ppvObject);
  10917 
  10918     ULONG (STDMETHODCALLTYPE *AddRef)(
  10919         ISpeechCustomStream *This);
  10920 
  10921     ULONG (STDMETHODCALLTYPE *Release)(
  10922         ISpeechCustomStream *This);
  10923 
  10924     /*** IDispatch methods ***/
  10925     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  10926         ISpeechCustomStream *This,
  10927         UINT *pctinfo);
  10928 
  10929     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  10930         ISpeechCustomStream *This,
  10931         UINT iTInfo,
  10932         LCID lcid,
  10933         ITypeInfo **ppTInfo);
  10934 
  10935     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  10936         ISpeechCustomStream *This,
  10937         REFIID riid,
  10938         LPOLESTR *rgszNames,
  10939         UINT cNames,
  10940         LCID lcid,
  10941         DISPID *rgDispId);
  10942 
  10943     HRESULT (STDMETHODCALLTYPE *Invoke)(
  10944         ISpeechCustomStream *This,
  10945         DISPID dispIdMember,
  10946         REFIID riid,
  10947         LCID lcid,
  10948         WORD wFlags,
  10949         DISPPARAMS *pDispParams,
  10950         VARIANT *pVarResult,
  10951         EXCEPINFO *pExcepInfo,
  10952         UINT *puArgErr);
  10953 
  10954     /*** ISpeechBaseStream methods ***/
  10955     HRESULT (STDMETHODCALLTYPE *get_Format)(
  10956         ISpeechCustomStream *This,
  10957         ISpeechAudioFormat **AudioFormat);
  10958 
  10959     HRESULT (STDMETHODCALLTYPE *putref_Format)(
  10960         ISpeechCustomStream *This,
  10961         ISpeechAudioFormat *AudioFormat);
  10962 
  10963     HRESULT (STDMETHODCALLTYPE *Read)(
  10964         ISpeechCustomStream *This,
  10965         VARIANT *Buffer,
  10966         LONG NumberOfBytes,
  10967         LONG *BytesRead);
  10968 
  10969     HRESULT (STDMETHODCALLTYPE *Write)(
  10970         ISpeechCustomStream *This,
  10971         VARIANT Buffer,
  10972         LONG *BytesWritten);
  10973 
  10974     HRESULT (STDMETHODCALLTYPE *Seek)(
  10975         ISpeechCustomStream *This,
  10976         VARIANT Position,
  10977         SpeechStreamSeekPositionType Origin,
  10978         VARIANT *NewPosition);
  10979 
  10980     /*** ISpeechCustomStream methods ***/
  10981     HRESULT (STDMETHODCALLTYPE *get_BaseStream)(
  10982         ISpeechCustomStream *This,
  10983         IUnknown **ppUnkStream);
  10984 
  10985     HRESULT (STDMETHODCALLTYPE *putref_BaseStream)(
  10986         ISpeechCustomStream *This,
  10987         IUnknown *pUnkStream);
  10988 
  10989     END_INTERFACE
  10990 } ISpeechCustomStreamVtbl;
  10991 
  10992 interface ISpeechCustomStream {
  10993     CONST_VTBL ISpeechCustomStreamVtbl* lpVtbl;
  10994 };
  10995 
  10996 #ifdef COBJMACROS
  10997 #ifndef WIDL_C_INLINE_WRAPPERS
  10998 /*** IUnknown methods ***/
  10999 #define ISpeechCustomStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11000 #define ISpeechCustomStream_AddRef(This) (This)->lpVtbl->AddRef(This)
  11001 #define ISpeechCustomStream_Release(This) (This)->lpVtbl->Release(This)
  11002 /*** IDispatch methods ***/
  11003 #define ISpeechCustomStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  11004 #define ISpeechCustomStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  11005 #define ISpeechCustomStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  11006 #define ISpeechCustomStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  11007 /*** ISpeechBaseStream methods ***/
  11008 #define ISpeechCustomStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
  11009 #define ISpeechCustomStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
  11010 #define ISpeechCustomStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
  11011 #define ISpeechCustomStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
  11012 #define ISpeechCustomStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
  11013 /*** ISpeechCustomStream methods ***/
  11014 #define ISpeechCustomStream_get_BaseStream(This,ppUnkStream) (This)->lpVtbl->get_BaseStream(This,ppUnkStream)
  11015 #define ISpeechCustomStream_putref_BaseStream(This,pUnkStream) (This)->lpVtbl->putref_BaseStream(This,pUnkStream)
  11016 #else
  11017 /*** IUnknown methods ***/
  11018 static inline HRESULT ISpeechCustomStream_QueryInterface(ISpeechCustomStream* This,REFIID riid,void **ppvObject) {
  11019     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11020 }
  11021 static inline ULONG ISpeechCustomStream_AddRef(ISpeechCustomStream* This) {
  11022     return This->lpVtbl->AddRef(This);
  11023 }
  11024 static inline ULONG ISpeechCustomStream_Release(ISpeechCustomStream* This) {
  11025     return This->lpVtbl->Release(This);
  11026 }
  11027 /*** IDispatch methods ***/
  11028 static inline HRESULT ISpeechCustomStream_GetTypeInfoCount(ISpeechCustomStream* This,UINT *pctinfo) {
  11029     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  11030 }
  11031 static inline HRESULT ISpeechCustomStream_GetTypeInfo(ISpeechCustomStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  11032     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  11033 }
  11034 static inline HRESULT ISpeechCustomStream_GetIDsOfNames(ISpeechCustomStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  11035     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  11036 }
  11037 static inline HRESULT ISpeechCustomStream_Invoke(ISpeechCustomStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  11038     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  11039 }
  11040 /*** ISpeechBaseStream methods ***/
  11041 static inline HRESULT ISpeechCustomStream_get_Format(ISpeechCustomStream* This,ISpeechAudioFormat **AudioFormat) {
  11042     return This->lpVtbl->get_Format(This,AudioFormat);
  11043 }
  11044 static inline HRESULT ISpeechCustomStream_putref_Format(ISpeechCustomStream* This,ISpeechAudioFormat *AudioFormat) {
  11045     return This->lpVtbl->putref_Format(This,AudioFormat);
  11046 }
  11047 static inline HRESULT ISpeechCustomStream_Read(ISpeechCustomStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
  11048     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
  11049 }
  11050 static inline HRESULT ISpeechCustomStream_Write(ISpeechCustomStream* This,VARIANT Buffer,LONG *BytesWritten) {
  11051     return This->lpVtbl->Write(This,Buffer,BytesWritten);
  11052 }
  11053 static inline HRESULT ISpeechCustomStream_Seek(ISpeechCustomStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
  11054     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
  11055 }
  11056 /*** ISpeechCustomStream methods ***/
  11057 static inline HRESULT ISpeechCustomStream_get_BaseStream(ISpeechCustomStream* This,IUnknown **ppUnkStream) {
  11058     return This->lpVtbl->get_BaseStream(This,ppUnkStream);
  11059 }
  11060 static inline HRESULT ISpeechCustomStream_putref_BaseStream(ISpeechCustomStream* This,IUnknown *pUnkStream) {
  11061     return This->lpVtbl->putref_BaseStream(This,pUnkStream);
  11062 }
  11063 #endif
  11064 #endif
  11065 
  11066 #endif
  11067 
  11068 
  11069 #endif  /* __ISpeechCustomStream_INTERFACE_DEFINED__ */
  11070 
  11071 /*****************************************************************************
  11072  * ISpeechMemoryStream interface
  11073  */
  11074 #ifndef __ISpeechMemoryStream_INTERFACE_DEFINED__
  11075 #define __ISpeechMemoryStream_INTERFACE_DEFINED__
  11076 
  11077 DEFINE_GUID(IID_ISpeechMemoryStream, 0xeeb14b68, 0x808b, 0x4abe, 0xa5,0xea, 0xb5,0x1d,0xa7,0x58,0x80,0x08);
  11078 #if defined(__cplusplus) && !defined(CINTERFACE)
  11079 MIDL_INTERFACE("eeb14b68-808b-4abe-a5ea-b51da7588008")
  11080 ISpeechMemoryStream : public ISpeechBaseStream
  11081 {
  11082     virtual HRESULT STDMETHODCALLTYPE SetData(
  11083         VARIANT Data) = 0;
  11084 
  11085     virtual HRESULT STDMETHODCALLTYPE GetData(
  11086         VARIANT *pData) = 0;
  11087 
  11088 };
  11089 #ifdef __CRT_UUID_DECL
  11090 __CRT_UUID_DECL(ISpeechMemoryStream, 0xeeb14b68, 0x808b, 0x4abe, 0xa5,0xea, 0xb5,0x1d,0xa7,0x58,0x80,0x08)
  11091 #endif
  11092 #else
  11093 typedef struct ISpeechMemoryStreamVtbl {
  11094     BEGIN_INTERFACE
  11095 
  11096     /*** IUnknown methods ***/
  11097     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11098         ISpeechMemoryStream *This,
  11099         REFIID riid,
  11100         void **ppvObject);
  11101 
  11102     ULONG (STDMETHODCALLTYPE *AddRef)(
  11103         ISpeechMemoryStream *This);
  11104 
  11105     ULONG (STDMETHODCALLTYPE *Release)(
  11106         ISpeechMemoryStream *This);
  11107 
  11108     /*** IDispatch methods ***/
  11109     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  11110         ISpeechMemoryStream *This,
  11111         UINT *pctinfo);
  11112 
  11113     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  11114         ISpeechMemoryStream *This,
  11115         UINT iTInfo,
  11116         LCID lcid,
  11117         ITypeInfo **ppTInfo);
  11118 
  11119     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  11120         ISpeechMemoryStream *This,
  11121         REFIID riid,
  11122         LPOLESTR *rgszNames,
  11123         UINT cNames,
  11124         LCID lcid,
  11125         DISPID *rgDispId);
  11126 
  11127     HRESULT (STDMETHODCALLTYPE *Invoke)(
  11128         ISpeechMemoryStream *This,
  11129         DISPID dispIdMember,
  11130         REFIID riid,
  11131         LCID lcid,
  11132         WORD wFlags,
  11133         DISPPARAMS *pDispParams,
  11134         VARIANT *pVarResult,
  11135         EXCEPINFO *pExcepInfo,
  11136         UINT *puArgErr);
  11137 
  11138     /*** ISpeechBaseStream methods ***/
  11139     HRESULT (STDMETHODCALLTYPE *get_Format)(
  11140         ISpeechMemoryStream *This,
  11141         ISpeechAudioFormat **AudioFormat);
  11142 
  11143     HRESULT (STDMETHODCALLTYPE *putref_Format)(
  11144         ISpeechMemoryStream *This,
  11145         ISpeechAudioFormat *AudioFormat);
  11146 
  11147     HRESULT (STDMETHODCALLTYPE *Read)(
  11148         ISpeechMemoryStream *This,
  11149         VARIANT *Buffer,
  11150         LONG NumberOfBytes,
  11151         LONG *BytesRead);
  11152 
  11153     HRESULT (STDMETHODCALLTYPE *Write)(
  11154         ISpeechMemoryStream *This,
  11155         VARIANT Buffer,
  11156         LONG *BytesWritten);
  11157 
  11158     HRESULT (STDMETHODCALLTYPE *Seek)(
  11159         ISpeechMemoryStream *This,
  11160         VARIANT Position,
  11161         SpeechStreamSeekPositionType Origin,
  11162         VARIANT *NewPosition);
  11163 
  11164     /*** ISpeechMemoryStream methods ***/
  11165     HRESULT (STDMETHODCALLTYPE *SetData)(
  11166         ISpeechMemoryStream *This,
  11167         VARIANT Data);
  11168 
  11169     HRESULT (STDMETHODCALLTYPE *GetData)(
  11170         ISpeechMemoryStream *This,
  11171         VARIANT *pData);
  11172 
  11173     END_INTERFACE
  11174 } ISpeechMemoryStreamVtbl;
  11175 
  11176 interface ISpeechMemoryStream {
  11177     CONST_VTBL ISpeechMemoryStreamVtbl* lpVtbl;
  11178 };
  11179 
  11180 #ifdef COBJMACROS
  11181 #ifndef WIDL_C_INLINE_WRAPPERS
  11182 /*** IUnknown methods ***/
  11183 #define ISpeechMemoryStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11184 #define ISpeechMemoryStream_AddRef(This) (This)->lpVtbl->AddRef(This)
  11185 #define ISpeechMemoryStream_Release(This) (This)->lpVtbl->Release(This)
  11186 /*** IDispatch methods ***/
  11187 #define ISpeechMemoryStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  11188 #define ISpeechMemoryStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  11189 #define ISpeechMemoryStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  11190 #define ISpeechMemoryStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  11191 /*** ISpeechBaseStream methods ***/
  11192 #define ISpeechMemoryStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
  11193 #define ISpeechMemoryStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
  11194 #define ISpeechMemoryStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
  11195 #define ISpeechMemoryStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
  11196 #define ISpeechMemoryStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
  11197 /*** ISpeechMemoryStream methods ***/
  11198 #define ISpeechMemoryStream_SetData(This,Data) (This)->lpVtbl->SetData(This,Data)
  11199 #define ISpeechMemoryStream_GetData(This,pData) (This)->lpVtbl->GetData(This,pData)
  11200 #else
  11201 /*** IUnknown methods ***/
  11202 static inline HRESULT ISpeechMemoryStream_QueryInterface(ISpeechMemoryStream* This,REFIID riid,void **ppvObject) {
  11203     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11204 }
  11205 static inline ULONG ISpeechMemoryStream_AddRef(ISpeechMemoryStream* This) {
  11206     return This->lpVtbl->AddRef(This);
  11207 }
  11208 static inline ULONG ISpeechMemoryStream_Release(ISpeechMemoryStream* This) {
  11209     return This->lpVtbl->Release(This);
  11210 }
  11211 /*** IDispatch methods ***/
  11212 static inline HRESULT ISpeechMemoryStream_GetTypeInfoCount(ISpeechMemoryStream* This,UINT *pctinfo) {
  11213     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  11214 }
  11215 static inline HRESULT ISpeechMemoryStream_GetTypeInfo(ISpeechMemoryStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  11216     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  11217 }
  11218 static inline HRESULT ISpeechMemoryStream_GetIDsOfNames(ISpeechMemoryStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  11219     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  11220 }
  11221 static inline HRESULT ISpeechMemoryStream_Invoke(ISpeechMemoryStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  11222     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  11223 }
  11224 /*** ISpeechBaseStream methods ***/
  11225 static inline HRESULT ISpeechMemoryStream_get_Format(ISpeechMemoryStream* This,ISpeechAudioFormat **AudioFormat) {
  11226     return This->lpVtbl->get_Format(This,AudioFormat);
  11227 }
  11228 static inline HRESULT ISpeechMemoryStream_putref_Format(ISpeechMemoryStream* This,ISpeechAudioFormat *AudioFormat) {
  11229     return This->lpVtbl->putref_Format(This,AudioFormat);
  11230 }
  11231 static inline HRESULT ISpeechMemoryStream_Read(ISpeechMemoryStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
  11232     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
  11233 }
  11234 static inline HRESULT ISpeechMemoryStream_Write(ISpeechMemoryStream* This,VARIANT Buffer,LONG *BytesWritten) {
  11235     return This->lpVtbl->Write(This,Buffer,BytesWritten);
  11236 }
  11237 static inline HRESULT ISpeechMemoryStream_Seek(ISpeechMemoryStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
  11238     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
  11239 }
  11240 /*** ISpeechMemoryStream methods ***/
  11241 static inline HRESULT ISpeechMemoryStream_SetData(ISpeechMemoryStream* This,VARIANT Data) {
  11242     return This->lpVtbl->SetData(This,Data);
  11243 }
  11244 static inline HRESULT ISpeechMemoryStream_GetData(ISpeechMemoryStream* This,VARIANT *pData) {
  11245     return This->lpVtbl->GetData(This,pData);
  11246 }
  11247 #endif
  11248 #endif
  11249 
  11250 #endif
  11251 
  11252 
  11253 #endif  /* __ISpeechMemoryStream_INTERFACE_DEFINED__ */
  11254 
  11255 /*****************************************************************************
  11256  * ISpeechAudioStatus interface
  11257  */
  11258 #ifndef __ISpeechAudioStatus_INTERFACE_DEFINED__
  11259 #define __ISpeechAudioStatus_INTERFACE_DEFINED__
  11260 
  11261 DEFINE_GUID(IID_ISpeechAudioStatus, 0xc62d9c91, 0x7458, 0x47f6, 0x86,0x2d, 0x1e,0xf8,0x6f,0xb0,0xb2,0x78);
  11262 #if defined(__cplusplus) && !defined(CINTERFACE)
  11263 MIDL_INTERFACE("c62d9c91-7458-47f6-862d-1ef86fb0b278")
  11264 ISpeechAudioStatus : public IDispatch
  11265 {
  11266     virtual HRESULT STDMETHODCALLTYPE get_FreeBufferSpace(
  11267         LONG *FreeBufferSpace) = 0;
  11268 
  11269     virtual HRESULT STDMETHODCALLTYPE get_NonBlockingIO(
  11270         LONG *NonBlockingIO) = 0;
  11271 
  11272     virtual HRESULT STDMETHODCALLTYPE get_State(
  11273         SpeechAudioState *State) = 0;
  11274 
  11275     virtual HRESULT STDMETHODCALLTYPE get_CurrentSeekPosition(
  11276         VARIANT *CurrentSeekPosition) = 0;
  11277 
  11278     virtual HRESULT STDMETHODCALLTYPE get_CurrentDevicePosition(
  11279         VARIANT *CurrentDevicePosition) = 0;
  11280 
  11281 };
  11282 #ifdef __CRT_UUID_DECL
  11283 __CRT_UUID_DECL(ISpeechAudioStatus, 0xc62d9c91, 0x7458, 0x47f6, 0x86,0x2d, 0x1e,0xf8,0x6f,0xb0,0xb2,0x78)
  11284 #endif
  11285 #else
  11286 typedef struct ISpeechAudioStatusVtbl {
  11287     BEGIN_INTERFACE
  11288 
  11289     /*** IUnknown methods ***/
  11290     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11291         ISpeechAudioStatus *This,
  11292         REFIID riid,
  11293         void **ppvObject);
  11294 
  11295     ULONG (STDMETHODCALLTYPE *AddRef)(
  11296         ISpeechAudioStatus *This);
  11297 
  11298     ULONG (STDMETHODCALLTYPE *Release)(
  11299         ISpeechAudioStatus *This);
  11300 
  11301     /*** IDispatch methods ***/
  11302     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  11303         ISpeechAudioStatus *This,
  11304         UINT *pctinfo);
  11305 
  11306     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  11307         ISpeechAudioStatus *This,
  11308         UINT iTInfo,
  11309         LCID lcid,
  11310         ITypeInfo **ppTInfo);
  11311 
  11312     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  11313         ISpeechAudioStatus *This,
  11314         REFIID riid,
  11315         LPOLESTR *rgszNames,
  11316         UINT cNames,
  11317         LCID lcid,
  11318         DISPID *rgDispId);
  11319 
  11320     HRESULT (STDMETHODCALLTYPE *Invoke)(
  11321         ISpeechAudioStatus *This,
  11322         DISPID dispIdMember,
  11323         REFIID riid,
  11324         LCID lcid,
  11325         WORD wFlags,
  11326         DISPPARAMS *pDispParams,
  11327         VARIANT *pVarResult,
  11328         EXCEPINFO *pExcepInfo,
  11329         UINT *puArgErr);
  11330 
  11331     /*** ISpeechAudioStatus methods ***/
  11332     HRESULT (STDMETHODCALLTYPE *get_FreeBufferSpace)(
  11333         ISpeechAudioStatus *This,
  11334         LONG *FreeBufferSpace);
  11335 
  11336     HRESULT (STDMETHODCALLTYPE *get_NonBlockingIO)(
  11337         ISpeechAudioStatus *This,
  11338         LONG *NonBlockingIO);
  11339 
  11340     HRESULT (STDMETHODCALLTYPE *get_State)(
  11341         ISpeechAudioStatus *This,
  11342         SpeechAudioState *State);
  11343 
  11344     HRESULT (STDMETHODCALLTYPE *get_CurrentSeekPosition)(
  11345         ISpeechAudioStatus *This,
  11346         VARIANT *CurrentSeekPosition);
  11347 
  11348     HRESULT (STDMETHODCALLTYPE *get_CurrentDevicePosition)(
  11349         ISpeechAudioStatus *This,
  11350         VARIANT *CurrentDevicePosition);
  11351 
  11352     END_INTERFACE
  11353 } ISpeechAudioStatusVtbl;
  11354 
  11355 interface ISpeechAudioStatus {
  11356     CONST_VTBL ISpeechAudioStatusVtbl* lpVtbl;
  11357 };
  11358 
  11359 #ifdef COBJMACROS
  11360 #ifndef WIDL_C_INLINE_WRAPPERS
  11361 /*** IUnknown methods ***/
  11362 #define ISpeechAudioStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11363 #define ISpeechAudioStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
  11364 #define ISpeechAudioStatus_Release(This) (This)->lpVtbl->Release(This)
  11365 /*** IDispatch methods ***/
  11366 #define ISpeechAudioStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  11367 #define ISpeechAudioStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  11368 #define ISpeechAudioStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  11369 #define ISpeechAudioStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  11370 /*** ISpeechAudioStatus methods ***/
  11371 #define ISpeechAudioStatus_get_FreeBufferSpace(This,FreeBufferSpace) (This)->lpVtbl->get_FreeBufferSpace(This,FreeBufferSpace)
  11372 #define ISpeechAudioStatus_get_NonBlockingIO(This,NonBlockingIO) (This)->lpVtbl->get_NonBlockingIO(This,NonBlockingIO)
  11373 #define ISpeechAudioStatus_get_State(This,State) (This)->lpVtbl->get_State(This,State)
  11374 #define ISpeechAudioStatus_get_CurrentSeekPosition(This,CurrentSeekPosition) (This)->lpVtbl->get_CurrentSeekPosition(This,CurrentSeekPosition)
  11375 #define ISpeechAudioStatus_get_CurrentDevicePosition(This,CurrentDevicePosition) (This)->lpVtbl->get_CurrentDevicePosition(This,CurrentDevicePosition)
  11376 #else
  11377 /*** IUnknown methods ***/
  11378 static inline HRESULT ISpeechAudioStatus_QueryInterface(ISpeechAudioStatus* This,REFIID riid,void **ppvObject) {
  11379     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11380 }
  11381 static inline ULONG ISpeechAudioStatus_AddRef(ISpeechAudioStatus* This) {
  11382     return This->lpVtbl->AddRef(This);
  11383 }
  11384 static inline ULONG ISpeechAudioStatus_Release(ISpeechAudioStatus* This) {
  11385     return This->lpVtbl->Release(This);
  11386 }
  11387 /*** IDispatch methods ***/
  11388 static inline HRESULT ISpeechAudioStatus_GetTypeInfoCount(ISpeechAudioStatus* This,UINT *pctinfo) {
  11389     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  11390 }
  11391 static inline HRESULT ISpeechAudioStatus_GetTypeInfo(ISpeechAudioStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  11392     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  11393 }
  11394 static inline HRESULT ISpeechAudioStatus_GetIDsOfNames(ISpeechAudioStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  11395     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  11396 }
  11397 static inline HRESULT ISpeechAudioStatus_Invoke(ISpeechAudioStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  11398     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  11399 }
  11400 /*** ISpeechAudioStatus methods ***/
  11401 static inline HRESULT ISpeechAudioStatus_get_FreeBufferSpace(ISpeechAudioStatus* This,LONG *FreeBufferSpace) {
  11402     return This->lpVtbl->get_FreeBufferSpace(This,FreeBufferSpace);
  11403 }
  11404 static inline HRESULT ISpeechAudioStatus_get_NonBlockingIO(ISpeechAudioStatus* This,LONG *NonBlockingIO) {
  11405     return This->lpVtbl->get_NonBlockingIO(This,NonBlockingIO);
  11406 }
  11407 static inline HRESULT ISpeechAudioStatus_get_State(ISpeechAudioStatus* This,SpeechAudioState *State) {
  11408     return This->lpVtbl->get_State(This,State);
  11409 }
  11410 static inline HRESULT ISpeechAudioStatus_get_CurrentSeekPosition(ISpeechAudioStatus* This,VARIANT *CurrentSeekPosition) {
  11411     return This->lpVtbl->get_CurrentSeekPosition(This,CurrentSeekPosition);
  11412 }
  11413 static inline HRESULT ISpeechAudioStatus_get_CurrentDevicePosition(ISpeechAudioStatus* This,VARIANT *CurrentDevicePosition) {
  11414     return This->lpVtbl->get_CurrentDevicePosition(This,CurrentDevicePosition);
  11415 }
  11416 #endif
  11417 #endif
  11418 
  11419 #endif
  11420 
  11421 
  11422 #endif  /* __ISpeechAudioStatus_INTERFACE_DEFINED__ */
  11423 
  11424 /*****************************************************************************
  11425  * ISpeechAudioBufferInfo interface
  11426  */
  11427 #ifndef __ISpeechAudioBufferInfo_INTERFACE_DEFINED__
  11428 #define __ISpeechAudioBufferInfo_INTERFACE_DEFINED__
  11429 
  11430 DEFINE_GUID(IID_ISpeechAudioBufferInfo, 0x11b103d8, 0x1142, 0x4edf, 0xa0,0x93, 0x82,0xfb,0x39,0x15,0xf8,0xcc);
  11431 #if defined(__cplusplus) && !defined(CINTERFACE)
  11432 MIDL_INTERFACE("11b103d8-1142-4edf-a093-82fb3915f8cc")
  11433 ISpeechAudioBufferInfo : public IDispatch
  11434 {
  11435     virtual HRESULT STDMETHODCALLTYPE get_MinNotification(
  11436         LONG *MinNotification) = 0;
  11437 
  11438     virtual HRESULT STDMETHODCALLTYPE put_MinNotification(
  11439         LONG MinNotification) = 0;
  11440 
  11441     virtual HRESULT STDMETHODCALLTYPE get_BufferSize(
  11442         LONG *BufferSize) = 0;
  11443 
  11444     virtual HRESULT STDMETHODCALLTYPE put_BufferSize(
  11445         LONG BufferSize) = 0;
  11446 
  11447     virtual HRESULT STDMETHODCALLTYPE get_EventBias(
  11448         LONG *EventBias) = 0;
  11449 
  11450     virtual HRESULT STDMETHODCALLTYPE put_EventBias(
  11451         LONG EventBias) = 0;
  11452 
  11453 };
  11454 #ifdef __CRT_UUID_DECL
  11455 __CRT_UUID_DECL(ISpeechAudioBufferInfo, 0x11b103d8, 0x1142, 0x4edf, 0xa0,0x93, 0x82,0xfb,0x39,0x15,0xf8,0xcc)
  11456 #endif
  11457 #else
  11458 typedef struct ISpeechAudioBufferInfoVtbl {
  11459     BEGIN_INTERFACE
  11460 
  11461     /*** IUnknown methods ***/
  11462     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11463         ISpeechAudioBufferInfo *This,
  11464         REFIID riid,
  11465         void **ppvObject);
  11466 
  11467     ULONG (STDMETHODCALLTYPE *AddRef)(
  11468         ISpeechAudioBufferInfo *This);
  11469 
  11470     ULONG (STDMETHODCALLTYPE *Release)(
  11471         ISpeechAudioBufferInfo *This);
  11472 
  11473     /*** IDispatch methods ***/
  11474     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  11475         ISpeechAudioBufferInfo *This,
  11476         UINT *pctinfo);
  11477 
  11478     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  11479         ISpeechAudioBufferInfo *This,
  11480         UINT iTInfo,
  11481         LCID lcid,
  11482         ITypeInfo **ppTInfo);
  11483 
  11484     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  11485         ISpeechAudioBufferInfo *This,
  11486         REFIID riid,
  11487         LPOLESTR *rgszNames,
  11488         UINT cNames,
  11489         LCID lcid,
  11490         DISPID *rgDispId);
  11491 
  11492     HRESULT (STDMETHODCALLTYPE *Invoke)(
  11493         ISpeechAudioBufferInfo *This,
  11494         DISPID dispIdMember,
  11495         REFIID riid,
  11496         LCID lcid,
  11497         WORD wFlags,
  11498         DISPPARAMS *pDispParams,
  11499         VARIANT *pVarResult,
  11500         EXCEPINFO *pExcepInfo,
  11501         UINT *puArgErr);
  11502 
  11503     /*** ISpeechAudioBufferInfo methods ***/
  11504     HRESULT (STDMETHODCALLTYPE *get_MinNotification)(
  11505         ISpeechAudioBufferInfo *This,
  11506         LONG *MinNotification);
  11507 
  11508     HRESULT (STDMETHODCALLTYPE *put_MinNotification)(
  11509         ISpeechAudioBufferInfo *This,
  11510         LONG MinNotification);
  11511 
  11512     HRESULT (STDMETHODCALLTYPE *get_BufferSize)(
  11513         ISpeechAudioBufferInfo *This,
  11514         LONG *BufferSize);
  11515 
  11516     HRESULT (STDMETHODCALLTYPE *put_BufferSize)(
  11517         ISpeechAudioBufferInfo *This,
  11518         LONG BufferSize);
  11519 
  11520     HRESULT (STDMETHODCALLTYPE *get_EventBias)(
  11521         ISpeechAudioBufferInfo *This,
  11522         LONG *EventBias);
  11523 
  11524     HRESULT (STDMETHODCALLTYPE *put_EventBias)(
  11525         ISpeechAudioBufferInfo *This,
  11526         LONG EventBias);
  11527 
  11528     END_INTERFACE
  11529 } ISpeechAudioBufferInfoVtbl;
  11530 
  11531 interface ISpeechAudioBufferInfo {
  11532     CONST_VTBL ISpeechAudioBufferInfoVtbl* lpVtbl;
  11533 };
  11534 
  11535 #ifdef COBJMACROS
  11536 #ifndef WIDL_C_INLINE_WRAPPERS
  11537 /*** IUnknown methods ***/
  11538 #define ISpeechAudioBufferInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11539 #define ISpeechAudioBufferInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
  11540 #define ISpeechAudioBufferInfo_Release(This) (This)->lpVtbl->Release(This)
  11541 /*** IDispatch methods ***/
  11542 #define ISpeechAudioBufferInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  11543 #define ISpeechAudioBufferInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  11544 #define ISpeechAudioBufferInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  11545 #define ISpeechAudioBufferInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  11546 /*** ISpeechAudioBufferInfo methods ***/
  11547 #define ISpeechAudioBufferInfo_get_MinNotification(This,MinNotification) (This)->lpVtbl->get_MinNotification(This,MinNotification)
  11548 #define ISpeechAudioBufferInfo_put_MinNotification(This,MinNotification) (This)->lpVtbl->put_MinNotification(This,MinNotification)
  11549 #define ISpeechAudioBufferInfo_get_BufferSize(This,BufferSize) (This)->lpVtbl->get_BufferSize(This,BufferSize)
  11550 #define ISpeechAudioBufferInfo_put_BufferSize(This,BufferSize) (This)->lpVtbl->put_BufferSize(This,BufferSize)
  11551 #define ISpeechAudioBufferInfo_get_EventBias(This,EventBias) (This)->lpVtbl->get_EventBias(This,EventBias)
  11552 #define ISpeechAudioBufferInfo_put_EventBias(This,EventBias) (This)->lpVtbl->put_EventBias(This,EventBias)
  11553 #else
  11554 /*** IUnknown methods ***/
  11555 static inline HRESULT ISpeechAudioBufferInfo_QueryInterface(ISpeechAudioBufferInfo* This,REFIID riid,void **ppvObject) {
  11556     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11557 }
  11558 static inline ULONG ISpeechAudioBufferInfo_AddRef(ISpeechAudioBufferInfo* This) {
  11559     return This->lpVtbl->AddRef(This);
  11560 }
  11561 static inline ULONG ISpeechAudioBufferInfo_Release(ISpeechAudioBufferInfo* This) {
  11562     return This->lpVtbl->Release(This);
  11563 }
  11564 /*** IDispatch methods ***/
  11565 static inline HRESULT ISpeechAudioBufferInfo_GetTypeInfoCount(ISpeechAudioBufferInfo* This,UINT *pctinfo) {
  11566     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  11567 }
  11568 static inline HRESULT ISpeechAudioBufferInfo_GetTypeInfo(ISpeechAudioBufferInfo* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  11569     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  11570 }
  11571 static inline HRESULT ISpeechAudioBufferInfo_GetIDsOfNames(ISpeechAudioBufferInfo* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  11572     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  11573 }
  11574 static inline HRESULT ISpeechAudioBufferInfo_Invoke(ISpeechAudioBufferInfo* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  11575     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  11576 }
  11577 /*** ISpeechAudioBufferInfo methods ***/
  11578 static inline HRESULT ISpeechAudioBufferInfo_get_MinNotification(ISpeechAudioBufferInfo* This,LONG *MinNotification) {
  11579     return This->lpVtbl->get_MinNotification(This,MinNotification);
  11580 }
  11581 static inline HRESULT ISpeechAudioBufferInfo_put_MinNotification(ISpeechAudioBufferInfo* This,LONG MinNotification) {
  11582     return This->lpVtbl->put_MinNotification(This,MinNotification);
  11583 }
  11584 static inline HRESULT ISpeechAudioBufferInfo_get_BufferSize(ISpeechAudioBufferInfo* This,LONG *BufferSize) {
  11585     return This->lpVtbl->get_BufferSize(This,BufferSize);
  11586 }
  11587 static inline HRESULT ISpeechAudioBufferInfo_put_BufferSize(ISpeechAudioBufferInfo* This,LONG BufferSize) {
  11588     return This->lpVtbl->put_BufferSize(This,BufferSize);
  11589 }
  11590 static inline HRESULT ISpeechAudioBufferInfo_get_EventBias(ISpeechAudioBufferInfo* This,LONG *EventBias) {
  11591     return This->lpVtbl->get_EventBias(This,EventBias);
  11592 }
  11593 static inline HRESULT ISpeechAudioBufferInfo_put_EventBias(ISpeechAudioBufferInfo* This,LONG EventBias) {
  11594     return This->lpVtbl->put_EventBias(This,EventBias);
  11595 }
  11596 #endif
  11597 #endif
  11598 
  11599 #endif
  11600 
  11601 
  11602 #endif  /* __ISpeechAudioBufferInfo_INTERFACE_DEFINED__ */
  11603 
  11604 /*****************************************************************************
  11605  * ISpeechWaveFormatEx interface
  11606  */
  11607 #ifndef __ISpeechWaveFormatEx_INTERFACE_DEFINED__
  11608 #define __ISpeechWaveFormatEx_INTERFACE_DEFINED__
  11609 
  11610 DEFINE_GUID(IID_ISpeechWaveFormatEx, 0x7a1ef0d5, 0x1581, 0x4741, 0x88,0xe4, 0x20,0x9a,0x49,0xf1,0x1a,0x10);
  11611 #if defined(__cplusplus) && !defined(CINTERFACE)
  11612 MIDL_INTERFACE("7a1ef0d5-1581-4741-88e4-209a49f11a10")
  11613 ISpeechWaveFormatEx : public IDispatch
  11614 {
  11615     virtual HRESULT STDMETHODCALLTYPE get_FormatTag(
  11616         short *FormatTag) = 0;
  11617 
  11618     virtual HRESULT STDMETHODCALLTYPE put_FormatTag(
  11619         short FormatTag) = 0;
  11620 
  11621     virtual HRESULT STDMETHODCALLTYPE get_Channels(
  11622         short *Channels) = 0;
  11623 
  11624     virtual HRESULT STDMETHODCALLTYPE put_Channels(
  11625         short Channels) = 0;
  11626 
  11627     virtual HRESULT STDMETHODCALLTYPE get_SamplesPerSec(
  11628         LONG *SamplesPerSec) = 0;
  11629 
  11630     virtual HRESULT STDMETHODCALLTYPE put_SamplesPerSec(
  11631         LONG SamplesPerSec) = 0;
  11632 
  11633     virtual HRESULT STDMETHODCALLTYPE get_AvgBytesPerSec(
  11634         LONG *AvgBytesPerSec) = 0;
  11635 
  11636     virtual HRESULT STDMETHODCALLTYPE put_AvgBytesPerSec(
  11637         LONG AvgBytesPerSec) = 0;
  11638 
  11639     virtual HRESULT STDMETHODCALLTYPE get_BlockAlign(
  11640         short *BlockAlign) = 0;
  11641 
  11642     virtual HRESULT STDMETHODCALLTYPE put_BlockAlign(
  11643         short BlockAlign) = 0;
  11644 
  11645     virtual HRESULT STDMETHODCALLTYPE get_BitsPerSample(
  11646         short *BitsPerSample) = 0;
  11647 
  11648     virtual HRESULT STDMETHODCALLTYPE put_BitsPerSample(
  11649         short BitsPerSample) = 0;
  11650 
  11651     virtual HRESULT STDMETHODCALLTYPE get_ExtraData(
  11652         VARIANT *ExtraData) = 0;
  11653 
  11654     virtual HRESULT STDMETHODCALLTYPE put_ExtraData(
  11655         VARIANT ExtraData) = 0;
  11656 
  11657 };
  11658 #ifdef __CRT_UUID_DECL
  11659 __CRT_UUID_DECL(ISpeechWaveFormatEx, 0x7a1ef0d5, 0x1581, 0x4741, 0x88,0xe4, 0x20,0x9a,0x49,0xf1,0x1a,0x10)
  11660 #endif
  11661 #else
  11662 typedef struct ISpeechWaveFormatExVtbl {
  11663     BEGIN_INTERFACE
  11664 
  11665     /*** IUnknown methods ***/
  11666     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11667         ISpeechWaveFormatEx *This,
  11668         REFIID riid,
  11669         void **ppvObject);
  11670 
  11671     ULONG (STDMETHODCALLTYPE *AddRef)(
  11672         ISpeechWaveFormatEx *This);
  11673 
  11674     ULONG (STDMETHODCALLTYPE *Release)(
  11675         ISpeechWaveFormatEx *This);
  11676 
  11677     /*** IDispatch methods ***/
  11678     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  11679         ISpeechWaveFormatEx *This,
  11680         UINT *pctinfo);
  11681 
  11682     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  11683         ISpeechWaveFormatEx *This,
  11684         UINT iTInfo,
  11685         LCID lcid,
  11686         ITypeInfo **ppTInfo);
  11687 
  11688     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  11689         ISpeechWaveFormatEx *This,
  11690         REFIID riid,
  11691         LPOLESTR *rgszNames,
  11692         UINT cNames,
  11693         LCID lcid,
  11694         DISPID *rgDispId);
  11695 
  11696     HRESULT (STDMETHODCALLTYPE *Invoke)(
  11697         ISpeechWaveFormatEx *This,
  11698         DISPID dispIdMember,
  11699         REFIID riid,
  11700         LCID lcid,
  11701         WORD wFlags,
  11702         DISPPARAMS *pDispParams,
  11703         VARIANT *pVarResult,
  11704         EXCEPINFO *pExcepInfo,
  11705         UINT *puArgErr);
  11706 
  11707     /*** ISpeechWaveFormatEx methods ***/
  11708     HRESULT (STDMETHODCALLTYPE *get_FormatTag)(
  11709         ISpeechWaveFormatEx *This,
  11710         short *FormatTag);
  11711 
  11712     HRESULT (STDMETHODCALLTYPE *put_FormatTag)(
  11713         ISpeechWaveFormatEx *This,
  11714         short FormatTag);
  11715 
  11716     HRESULT (STDMETHODCALLTYPE *get_Channels)(
  11717         ISpeechWaveFormatEx *This,
  11718         short *Channels);
  11719 
  11720     HRESULT (STDMETHODCALLTYPE *put_Channels)(
  11721         ISpeechWaveFormatEx *This,
  11722         short Channels);
  11723 
  11724     HRESULT (STDMETHODCALLTYPE *get_SamplesPerSec)(
  11725         ISpeechWaveFormatEx *This,
  11726         LONG *SamplesPerSec);
  11727 
  11728     HRESULT (STDMETHODCALLTYPE *put_SamplesPerSec)(
  11729         ISpeechWaveFormatEx *This,
  11730         LONG SamplesPerSec);
  11731 
  11732     HRESULT (STDMETHODCALLTYPE *get_AvgBytesPerSec)(
  11733         ISpeechWaveFormatEx *This,
  11734         LONG *AvgBytesPerSec);
  11735 
  11736     HRESULT (STDMETHODCALLTYPE *put_AvgBytesPerSec)(
  11737         ISpeechWaveFormatEx *This,
  11738         LONG AvgBytesPerSec);
  11739 
  11740     HRESULT (STDMETHODCALLTYPE *get_BlockAlign)(
  11741         ISpeechWaveFormatEx *This,
  11742         short *BlockAlign);
  11743 
  11744     HRESULT (STDMETHODCALLTYPE *put_BlockAlign)(
  11745         ISpeechWaveFormatEx *This,
  11746         short BlockAlign);
  11747 
  11748     HRESULT (STDMETHODCALLTYPE *get_BitsPerSample)(
  11749         ISpeechWaveFormatEx *This,
  11750         short *BitsPerSample);
  11751 
  11752     HRESULT (STDMETHODCALLTYPE *put_BitsPerSample)(
  11753         ISpeechWaveFormatEx *This,
  11754         short BitsPerSample);
  11755 
  11756     HRESULT (STDMETHODCALLTYPE *get_ExtraData)(
  11757         ISpeechWaveFormatEx *This,
  11758         VARIANT *ExtraData);
  11759 
  11760     HRESULT (STDMETHODCALLTYPE *put_ExtraData)(
  11761         ISpeechWaveFormatEx *This,
  11762         VARIANT ExtraData);
  11763 
  11764     END_INTERFACE
  11765 } ISpeechWaveFormatExVtbl;
  11766 
  11767 interface ISpeechWaveFormatEx {
  11768     CONST_VTBL ISpeechWaveFormatExVtbl* lpVtbl;
  11769 };
  11770 
  11771 #ifdef COBJMACROS
  11772 #ifndef WIDL_C_INLINE_WRAPPERS
  11773 /*** IUnknown methods ***/
  11774 #define ISpeechWaveFormatEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11775 #define ISpeechWaveFormatEx_AddRef(This) (This)->lpVtbl->AddRef(This)
  11776 #define ISpeechWaveFormatEx_Release(This) (This)->lpVtbl->Release(This)
  11777 /*** IDispatch methods ***/
  11778 #define ISpeechWaveFormatEx_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  11779 #define ISpeechWaveFormatEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  11780 #define ISpeechWaveFormatEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  11781 #define ISpeechWaveFormatEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  11782 /*** ISpeechWaveFormatEx methods ***/
  11783 #define ISpeechWaveFormatEx_get_FormatTag(This,FormatTag) (This)->lpVtbl->get_FormatTag(This,FormatTag)
  11784 #define ISpeechWaveFormatEx_put_FormatTag(This,FormatTag) (This)->lpVtbl->put_FormatTag(This,FormatTag)
  11785 #define ISpeechWaveFormatEx_get_Channels(This,Channels) (This)->lpVtbl->get_Channels(This,Channels)
  11786 #define ISpeechWaveFormatEx_put_Channels(This,Channels) (This)->lpVtbl->put_Channels(This,Channels)
  11787 #define ISpeechWaveFormatEx_get_SamplesPerSec(This,SamplesPerSec) (This)->lpVtbl->get_SamplesPerSec(This,SamplesPerSec)
  11788 #define ISpeechWaveFormatEx_put_SamplesPerSec(This,SamplesPerSec) (This)->lpVtbl->put_SamplesPerSec(This,SamplesPerSec)
  11789 #define ISpeechWaveFormatEx_get_AvgBytesPerSec(This,AvgBytesPerSec) (This)->lpVtbl->get_AvgBytesPerSec(This,AvgBytesPerSec)
  11790 #define ISpeechWaveFormatEx_put_AvgBytesPerSec(This,AvgBytesPerSec) (This)->lpVtbl->put_AvgBytesPerSec(This,AvgBytesPerSec)
  11791 #define ISpeechWaveFormatEx_get_BlockAlign(This,BlockAlign) (This)->lpVtbl->get_BlockAlign(This,BlockAlign)
  11792 #define ISpeechWaveFormatEx_put_BlockAlign(This,BlockAlign) (This)->lpVtbl->put_BlockAlign(This,BlockAlign)
  11793 #define ISpeechWaveFormatEx_get_BitsPerSample(This,BitsPerSample) (This)->lpVtbl->get_BitsPerSample(This,BitsPerSample)
  11794 #define ISpeechWaveFormatEx_put_BitsPerSample(This,BitsPerSample) (This)->lpVtbl->put_BitsPerSample(This,BitsPerSample)
  11795 #define ISpeechWaveFormatEx_get_ExtraData(This,ExtraData) (This)->lpVtbl->get_ExtraData(This,ExtraData)
  11796 #define ISpeechWaveFormatEx_put_ExtraData(This,ExtraData) (This)->lpVtbl->put_ExtraData(This,ExtraData)
  11797 #else
  11798 /*** IUnknown methods ***/
  11799 static inline HRESULT ISpeechWaveFormatEx_QueryInterface(ISpeechWaveFormatEx* This,REFIID riid,void **ppvObject) {
  11800     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11801 }
  11802 static inline ULONG ISpeechWaveFormatEx_AddRef(ISpeechWaveFormatEx* This) {
  11803     return This->lpVtbl->AddRef(This);
  11804 }
  11805 static inline ULONG ISpeechWaveFormatEx_Release(ISpeechWaveFormatEx* This) {
  11806     return This->lpVtbl->Release(This);
  11807 }
  11808 /*** IDispatch methods ***/
  11809 static inline HRESULT ISpeechWaveFormatEx_GetTypeInfoCount(ISpeechWaveFormatEx* This,UINT *pctinfo) {
  11810     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  11811 }
  11812 static inline HRESULT ISpeechWaveFormatEx_GetTypeInfo(ISpeechWaveFormatEx* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  11813     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  11814 }
  11815 static inline HRESULT ISpeechWaveFormatEx_GetIDsOfNames(ISpeechWaveFormatEx* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  11816     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  11817 }
  11818 static inline HRESULT ISpeechWaveFormatEx_Invoke(ISpeechWaveFormatEx* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  11819     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  11820 }
  11821 /*** ISpeechWaveFormatEx methods ***/
  11822 static inline HRESULT ISpeechWaveFormatEx_get_FormatTag(ISpeechWaveFormatEx* This,short *FormatTag) {
  11823     return This->lpVtbl->get_FormatTag(This,FormatTag);
  11824 }
  11825 static inline HRESULT ISpeechWaveFormatEx_put_FormatTag(ISpeechWaveFormatEx* This,short FormatTag) {
  11826     return This->lpVtbl->put_FormatTag(This,FormatTag);
  11827 }
  11828 static inline HRESULT ISpeechWaveFormatEx_get_Channels(ISpeechWaveFormatEx* This,short *Channels) {
  11829     return This->lpVtbl->get_Channels(This,Channels);
  11830 }
  11831 static inline HRESULT ISpeechWaveFormatEx_put_Channels(ISpeechWaveFormatEx* This,short Channels) {
  11832     return This->lpVtbl->put_Channels(This,Channels);
  11833 }
  11834 static inline HRESULT ISpeechWaveFormatEx_get_SamplesPerSec(ISpeechWaveFormatEx* This,LONG *SamplesPerSec) {
  11835     return This->lpVtbl->get_SamplesPerSec(This,SamplesPerSec);
  11836 }
  11837 static inline HRESULT ISpeechWaveFormatEx_put_SamplesPerSec(ISpeechWaveFormatEx* This,LONG SamplesPerSec) {
  11838     return This->lpVtbl->put_SamplesPerSec(This,SamplesPerSec);
  11839 }
  11840 static inline HRESULT ISpeechWaveFormatEx_get_AvgBytesPerSec(ISpeechWaveFormatEx* This,LONG *AvgBytesPerSec) {
  11841     return This->lpVtbl->get_AvgBytesPerSec(This,AvgBytesPerSec);
  11842 }
  11843 static inline HRESULT ISpeechWaveFormatEx_put_AvgBytesPerSec(ISpeechWaveFormatEx* This,LONG AvgBytesPerSec) {
  11844     return This->lpVtbl->put_AvgBytesPerSec(This,AvgBytesPerSec);
  11845 }
  11846 static inline HRESULT ISpeechWaveFormatEx_get_BlockAlign(ISpeechWaveFormatEx* This,short *BlockAlign) {
  11847     return This->lpVtbl->get_BlockAlign(This,BlockAlign);
  11848 }
  11849 static inline HRESULT ISpeechWaveFormatEx_put_BlockAlign(ISpeechWaveFormatEx* This,short BlockAlign) {
  11850     return This->lpVtbl->put_BlockAlign(This,BlockAlign);
  11851 }
  11852 static inline HRESULT ISpeechWaveFormatEx_get_BitsPerSample(ISpeechWaveFormatEx* This,short *BitsPerSample) {
  11853     return This->lpVtbl->get_BitsPerSample(This,BitsPerSample);
  11854 }
  11855 static inline HRESULT ISpeechWaveFormatEx_put_BitsPerSample(ISpeechWaveFormatEx* This,short BitsPerSample) {
  11856     return This->lpVtbl->put_BitsPerSample(This,BitsPerSample);
  11857 }
  11858 static inline HRESULT ISpeechWaveFormatEx_get_ExtraData(ISpeechWaveFormatEx* This,VARIANT *ExtraData) {
  11859     return This->lpVtbl->get_ExtraData(This,ExtraData);
  11860 }
  11861 static inline HRESULT ISpeechWaveFormatEx_put_ExtraData(ISpeechWaveFormatEx* This,VARIANT ExtraData) {
  11862     return This->lpVtbl->put_ExtraData(This,ExtraData);
  11863 }
  11864 #endif
  11865 #endif
  11866 
  11867 #endif
  11868 
  11869 
  11870 #endif  /* __ISpeechWaveFormatEx_INTERFACE_DEFINED__ */
  11871 
  11872 /*****************************************************************************
  11873  * ISpeechVoice interface
  11874  */
  11875 #ifndef __ISpeechVoice_INTERFACE_DEFINED__
  11876 #define __ISpeechVoice_INTERFACE_DEFINED__
  11877 
  11878 DEFINE_GUID(IID_ISpeechVoice, 0x269316d8, 0x57bd, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96);
  11879 #if defined(__cplusplus) && !defined(CINTERFACE)
  11880 MIDL_INTERFACE("269316d8-57bd-11d2-9eee-00c04f797396")
  11881 ISpeechVoice : public IDispatch
  11882 {
  11883     virtual HRESULT STDMETHODCALLTYPE get_Status(
  11884         ISpeechVoiceStatus **Status) = 0;
  11885 
  11886     virtual HRESULT STDMETHODCALLTYPE get_Voice(
  11887         ISpeechObjectToken **Voice) = 0;
  11888 
  11889     virtual HRESULT STDMETHODCALLTYPE putref_Voice(
  11890         ISpeechObjectToken *Voice) = 0;
  11891 
  11892     virtual HRESULT STDMETHODCALLTYPE get_AudioOutput(
  11893         ISpeechObjectToken **AudioOutput) = 0;
  11894 
  11895     virtual HRESULT STDMETHODCALLTYPE putref_AudioOutput(
  11896         ISpeechObjectToken *AudioOutput) = 0;
  11897 
  11898     virtual HRESULT STDMETHODCALLTYPE get_AudioOutputStream(
  11899         ISpeechBaseStream **AudioOutputStream) = 0;
  11900 
  11901     virtual HRESULT STDMETHODCALLTYPE putref_AudioOutputStream(
  11902         ISpeechBaseStream *AudioOutputStream) = 0;
  11903 
  11904     virtual HRESULT STDMETHODCALLTYPE get_Rate(
  11905         LONG *Rate) = 0;
  11906 
  11907     virtual HRESULT STDMETHODCALLTYPE put_Rate(
  11908         LONG Rate) = 0;
  11909 
  11910     virtual HRESULT STDMETHODCALLTYPE get_Volume(
  11911         LONG *Volume) = 0;
  11912 
  11913     virtual HRESULT STDMETHODCALLTYPE put_Volume(
  11914         LONG Volume) = 0;
  11915 
  11916     virtual HRESULT STDMETHODCALLTYPE put_AllowAudioOutputFormatChangesOnNextSet(
  11917         VARIANT_BOOL Allow) = 0;
  11918 
  11919     virtual HRESULT STDMETHODCALLTYPE get_AllowAudioOutputFormatChangesOnNextSet(
  11920         VARIANT_BOOL *Allow) = 0;
  11921 
  11922     virtual HRESULT STDMETHODCALLTYPE get_EventInterests(
  11923         SpeechVoiceEvents *EventInterestFlags) = 0;
  11924 
  11925     virtual HRESULT STDMETHODCALLTYPE put_EventInterests(
  11926         SpeechVoiceEvents EventInterestFlags) = 0;
  11927 
  11928     virtual HRESULT STDMETHODCALLTYPE put_Priority(
  11929         SpeechVoicePriority Priority) = 0;
  11930 
  11931     virtual HRESULT STDMETHODCALLTYPE get_Priority(
  11932         SpeechVoicePriority *Priority) = 0;
  11933 
  11934     virtual HRESULT STDMETHODCALLTYPE put_AlertBoundary(
  11935         SpeechVoiceEvents Boundary) = 0;
  11936 
  11937     virtual HRESULT STDMETHODCALLTYPE get_AlertBoundary(
  11938         SpeechVoiceEvents *Boundary) = 0;
  11939 
  11940     virtual HRESULT STDMETHODCALLTYPE put_SynchronousSpeakTimeout(
  11941         LONG msTimeout) = 0;
  11942 
  11943     virtual HRESULT STDMETHODCALLTYPE get_SynchronousSpeakTimeout(
  11944         LONG *msTimeout) = 0;
  11945 
  11946     virtual HRESULT STDMETHODCALLTYPE Speak(
  11947         BSTR Text,
  11948         SpeechVoiceSpeakFlags Flags,
  11949         LONG *StreamNumber) = 0;
  11950 
  11951     virtual HRESULT STDMETHODCALLTYPE SpeakStream(
  11952         ISpeechBaseStream *Stream,
  11953         SpeechVoiceSpeakFlags Flags,
  11954         LONG *StreamNumber) = 0;
  11955 
  11956     virtual HRESULT STDMETHODCALLTYPE Pause(
  11957         ) = 0;
  11958 
  11959     virtual HRESULT STDMETHODCALLTYPE Resume(
  11960         ) = 0;
  11961 
  11962     virtual HRESULT STDMETHODCALLTYPE Skip(
  11963         const BSTR Type,
  11964         LONG NumItems,
  11965         LONG *NumSkipped) = 0;
  11966 
  11967     virtual HRESULT STDMETHODCALLTYPE GetVoices(
  11968         BSTR RequiredAttributes,
  11969         BSTR OptionalAttributes,
  11970         ISpeechObjectTokens **ObjectTokens) = 0;
  11971 
  11972     virtual HRESULT STDMETHODCALLTYPE GetAudioOutputs(
  11973         BSTR RequiredAttributes,
  11974         BSTR OptionalAttributes,
  11975         ISpeechObjectTokens **ObjectTokens) = 0;
  11976 
  11977     virtual HRESULT STDMETHODCALLTYPE WaitUntilDone(
  11978         LONG msTimeout,
  11979         VARIANT_BOOL *Done) = 0;
  11980 
  11981     virtual HRESULT STDMETHODCALLTYPE SpeakCompleteEvent(
  11982         LONG *Handle) = 0;
  11983 
  11984     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
  11985         const BSTR TypeOfUI,
  11986         const VARIANT *ExtraData,
  11987         VARIANT_BOOL *Supported) = 0;
  11988 
  11989     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
  11990         LONG hWndParent,
  11991         BSTR Title,
  11992         const BSTR TypeOfUI,
  11993         const VARIANT *ExtraData = 0) = 0;
  11994 
  11995 };
  11996 #ifdef __CRT_UUID_DECL
  11997 __CRT_UUID_DECL(ISpeechVoice, 0x269316d8, 0x57bd, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96)
  11998 #endif
  11999 #else
  12000 typedef struct ISpeechVoiceVtbl {
  12001     BEGIN_INTERFACE
  12002 
  12003     /*** IUnknown methods ***/
  12004     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  12005         ISpeechVoice *This,
  12006         REFIID riid,
  12007         void **ppvObject);
  12008 
  12009     ULONG (STDMETHODCALLTYPE *AddRef)(
  12010         ISpeechVoice *This);
  12011 
  12012     ULONG (STDMETHODCALLTYPE *Release)(
  12013         ISpeechVoice *This);
  12014 
  12015     /*** IDispatch methods ***/
  12016     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  12017         ISpeechVoice *This,
  12018         UINT *pctinfo);
  12019 
  12020     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  12021         ISpeechVoice *This,
  12022         UINT iTInfo,
  12023         LCID lcid,
  12024         ITypeInfo **ppTInfo);
  12025 
  12026     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  12027         ISpeechVoice *This,
  12028         REFIID riid,
  12029         LPOLESTR *rgszNames,
  12030         UINT cNames,
  12031         LCID lcid,
  12032         DISPID *rgDispId);
  12033 
  12034     HRESULT (STDMETHODCALLTYPE *Invoke)(
  12035         ISpeechVoice *This,
  12036         DISPID dispIdMember,
  12037         REFIID riid,
  12038         LCID lcid,
  12039         WORD wFlags,
  12040         DISPPARAMS *pDispParams,
  12041         VARIANT *pVarResult,
  12042         EXCEPINFO *pExcepInfo,
  12043         UINT *puArgErr);
  12044 
  12045     /*** ISpeechVoice methods ***/
  12046     HRESULT (STDMETHODCALLTYPE *get_Status)(
  12047         ISpeechVoice *This,
  12048         ISpeechVoiceStatus **Status);
  12049 
  12050     HRESULT (STDMETHODCALLTYPE *get_Voice)(
  12051         ISpeechVoice *This,
  12052         ISpeechObjectToken **Voice);
  12053 
  12054     HRESULT (STDMETHODCALLTYPE *putref_Voice)(
  12055         ISpeechVoice *This,
  12056         ISpeechObjectToken *Voice);
  12057 
  12058     HRESULT (STDMETHODCALLTYPE *get_AudioOutput)(
  12059         ISpeechVoice *This,
  12060         ISpeechObjectToken **AudioOutput);
  12061 
  12062     HRESULT (STDMETHODCALLTYPE *putref_AudioOutput)(
  12063         ISpeechVoice *This,
  12064         ISpeechObjectToken *AudioOutput);
  12065 
  12066     HRESULT (STDMETHODCALLTYPE *get_AudioOutputStream)(
  12067         ISpeechVoice *This,
  12068         ISpeechBaseStream **AudioOutputStream);
  12069 
  12070     HRESULT (STDMETHODCALLTYPE *putref_AudioOutputStream)(
  12071         ISpeechVoice *This,
  12072         ISpeechBaseStream *AudioOutputStream);
  12073 
  12074     HRESULT (STDMETHODCALLTYPE *get_Rate)(
  12075         ISpeechVoice *This,
  12076         LONG *Rate);
  12077 
  12078     HRESULT (STDMETHODCALLTYPE *put_Rate)(
  12079         ISpeechVoice *This,
  12080         LONG Rate);
  12081 
  12082     HRESULT (STDMETHODCALLTYPE *get_Volume)(
  12083         ISpeechVoice *This,
  12084         LONG *Volume);
  12085 
  12086     HRESULT (STDMETHODCALLTYPE *put_Volume)(
  12087         ISpeechVoice *This,
  12088         LONG Volume);
  12089 
  12090     HRESULT (STDMETHODCALLTYPE *put_AllowAudioOutputFormatChangesOnNextSet)(
  12091         ISpeechVoice *This,
  12092         VARIANT_BOOL Allow);
  12093 
  12094     HRESULT (STDMETHODCALLTYPE *get_AllowAudioOutputFormatChangesOnNextSet)(
  12095         ISpeechVoice *This,
  12096         VARIANT_BOOL *Allow);
  12097 
  12098     HRESULT (STDMETHODCALLTYPE *get_EventInterests)(
  12099         ISpeechVoice *This,
  12100         SpeechVoiceEvents *EventInterestFlags);
  12101 
  12102     HRESULT (STDMETHODCALLTYPE *put_EventInterests)(
  12103         ISpeechVoice *This,
  12104         SpeechVoiceEvents EventInterestFlags);
  12105 
  12106     HRESULT (STDMETHODCALLTYPE *put_Priority)(
  12107         ISpeechVoice *This,
  12108         SpeechVoicePriority Priority);
  12109 
  12110     HRESULT (STDMETHODCALLTYPE *get_Priority)(
  12111         ISpeechVoice *This,
  12112         SpeechVoicePriority *Priority);
  12113 
  12114     HRESULT (STDMETHODCALLTYPE *put_AlertBoundary)(
  12115         ISpeechVoice *This,
  12116         SpeechVoiceEvents Boundary);
  12117 
  12118     HRESULT (STDMETHODCALLTYPE *get_AlertBoundary)(
  12119         ISpeechVoice *This,
  12120         SpeechVoiceEvents *Boundary);
  12121 
  12122     HRESULT (STDMETHODCALLTYPE *put_SynchronousSpeakTimeout)(
  12123         ISpeechVoice *This,
  12124         LONG msTimeout);
  12125 
  12126     HRESULT (STDMETHODCALLTYPE *get_SynchronousSpeakTimeout)(
  12127         ISpeechVoice *This,
  12128         LONG *msTimeout);
  12129 
  12130     HRESULT (STDMETHODCALLTYPE *Speak)(
  12131         ISpeechVoice *This,
  12132         BSTR Text,
  12133         SpeechVoiceSpeakFlags Flags,
  12134         LONG *StreamNumber);
  12135 
  12136     HRESULT (STDMETHODCALLTYPE *SpeakStream)(
  12137         ISpeechVoice *This,
  12138         ISpeechBaseStream *Stream,
  12139         SpeechVoiceSpeakFlags Flags,
  12140         LONG *StreamNumber);
  12141 
  12142     HRESULT (STDMETHODCALLTYPE *Pause)(
  12143         ISpeechVoice *This);
  12144 
  12145     HRESULT (STDMETHODCALLTYPE *Resume)(
  12146         ISpeechVoice *This);
  12147 
  12148     HRESULT (STDMETHODCALLTYPE *Skip)(
  12149         ISpeechVoice *This,
  12150         const BSTR Type,
  12151         LONG NumItems,
  12152         LONG *NumSkipped);
  12153 
  12154     HRESULT (STDMETHODCALLTYPE *GetVoices)(
  12155         ISpeechVoice *This,
  12156         BSTR RequiredAttributes,
  12157         BSTR OptionalAttributes,
  12158         ISpeechObjectTokens **ObjectTokens);
  12159 
  12160     HRESULT (STDMETHODCALLTYPE *GetAudioOutputs)(
  12161         ISpeechVoice *This,
  12162         BSTR RequiredAttributes,
  12163         BSTR OptionalAttributes,
  12164         ISpeechObjectTokens **ObjectTokens);
  12165 
  12166     HRESULT (STDMETHODCALLTYPE *WaitUntilDone)(
  12167         ISpeechVoice *This,
  12168         LONG msTimeout,
  12169         VARIANT_BOOL *Done);
  12170 
  12171     HRESULT (STDMETHODCALLTYPE *SpeakCompleteEvent)(
  12172         ISpeechVoice *This,
  12173         LONG *Handle);
  12174 
  12175     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
  12176         ISpeechVoice *This,
  12177         const BSTR TypeOfUI,
  12178         const VARIANT *ExtraData,
  12179         VARIANT_BOOL *Supported);
  12180 
  12181     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
  12182         ISpeechVoice *This,
  12183         LONG hWndParent,
  12184         BSTR Title,
  12185         const BSTR TypeOfUI,
  12186         const VARIANT *ExtraData);
  12187 
  12188     END_INTERFACE
  12189 } ISpeechVoiceVtbl;
  12190 
  12191 interface ISpeechVoice {
  12192     CONST_VTBL ISpeechVoiceVtbl* lpVtbl;
  12193 };
  12194 
  12195 #ifdef COBJMACROS
  12196 #ifndef WIDL_C_INLINE_WRAPPERS
  12197 /*** IUnknown methods ***/
  12198 #define ISpeechVoice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12199 #define ISpeechVoice_AddRef(This) (This)->lpVtbl->AddRef(This)
  12200 #define ISpeechVoice_Release(This) (This)->lpVtbl->Release(This)
  12201 /*** IDispatch methods ***/
  12202 #define ISpeechVoice_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  12203 #define ISpeechVoice_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  12204 #define ISpeechVoice_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  12205 #define ISpeechVoice_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  12206 /*** ISpeechVoice methods ***/
  12207 #define ISpeechVoice_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
  12208 #define ISpeechVoice_get_Voice(This,Voice) (This)->lpVtbl->get_Voice(This,Voice)
  12209 #define ISpeechVoice_putref_Voice(This,Voice) (This)->lpVtbl->putref_Voice(This,Voice)
  12210 #define ISpeechVoice_get_AudioOutput(This,AudioOutput) (This)->lpVtbl->get_AudioOutput(This,AudioOutput)
  12211 #define ISpeechVoice_putref_AudioOutput(This,AudioOutput) (This)->lpVtbl->putref_AudioOutput(This,AudioOutput)
  12212 #define ISpeechVoice_get_AudioOutputStream(This,AudioOutputStream) (This)->lpVtbl->get_AudioOutputStream(This,AudioOutputStream)
  12213 #define ISpeechVoice_putref_AudioOutputStream(This,AudioOutputStream) (This)->lpVtbl->putref_AudioOutputStream(This,AudioOutputStream)
  12214 #define ISpeechVoice_get_Rate(This,Rate) (This)->lpVtbl->get_Rate(This,Rate)
  12215 #define ISpeechVoice_put_Rate(This,Rate) (This)->lpVtbl->put_Rate(This,Rate)
  12216 #define ISpeechVoice_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
  12217 #define ISpeechVoice_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
  12218 #define ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->put_AllowAudioOutputFormatChangesOnNextSet(This,Allow)
  12219 #define ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->get_AllowAudioOutputFormatChangesOnNextSet(This,Allow)
  12220 #define ISpeechVoice_get_EventInterests(This,EventInterestFlags) (This)->lpVtbl->get_EventInterests(This,EventInterestFlags)
  12221 #define ISpeechVoice_put_EventInterests(This,EventInterestFlags) (This)->lpVtbl->put_EventInterests(This,EventInterestFlags)
  12222 #define ISpeechVoice_put_Priority(This,Priority) (This)->lpVtbl->put_Priority(This,Priority)
  12223 #define ISpeechVoice_get_Priority(This,Priority) (This)->lpVtbl->get_Priority(This,Priority)
  12224 #define ISpeechVoice_put_AlertBoundary(This,Boundary) (This)->lpVtbl->put_AlertBoundary(This,Boundary)
  12225 #define ISpeechVoice_get_AlertBoundary(This,Boundary) (This)->lpVtbl->get_AlertBoundary(This,Boundary)
  12226 #define ISpeechVoice_put_SynchronousSpeakTimeout(This,msTimeout) (This)->lpVtbl->put_SynchronousSpeakTimeout(This,msTimeout)
  12227 #define ISpeechVoice_get_SynchronousSpeakTimeout(This,msTimeout) (This)->lpVtbl->get_SynchronousSpeakTimeout(This,msTimeout)
  12228 #define ISpeechVoice_Speak(This,Text,Flags,StreamNumber) (This)->lpVtbl->Speak(This,Text,Flags,StreamNumber)
  12229 #define ISpeechVoice_SpeakStream(This,Stream,Flags,StreamNumber) (This)->lpVtbl->SpeakStream(This,Stream,Flags,StreamNumber)
  12230 #define ISpeechVoice_Pause(This) (This)->lpVtbl->Pause(This)
  12231 #define ISpeechVoice_Resume(This) (This)->lpVtbl->Resume(This)
  12232 #define ISpeechVoice_Skip(This,Type,NumItems,NumSkipped) (This)->lpVtbl->Skip(This,Type,NumItems,NumSkipped)
  12233 #define ISpeechVoice_GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
  12234 #define ISpeechVoice_GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
  12235 #define ISpeechVoice_WaitUntilDone(This,msTimeout,Done) (This)->lpVtbl->WaitUntilDone(This,msTimeout,Done)
  12236 #define ISpeechVoice_SpeakCompleteEvent(This,Handle) (This)->lpVtbl->SpeakCompleteEvent(This,Handle)
  12237 #define ISpeechVoice_IsUISupported(This,TypeOfUI,ExtraData,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported)
  12238 #define ISpeechVoice_DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData) (This)->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData)
  12239 #else
  12240 /*** IUnknown methods ***/
  12241 static inline HRESULT ISpeechVoice_QueryInterface(ISpeechVoice* This,REFIID riid,void **ppvObject) {
  12242     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  12243 }
  12244 static inline ULONG ISpeechVoice_AddRef(ISpeechVoice* This) {
  12245     return This->lpVtbl->AddRef(This);
  12246 }
  12247 static inline ULONG ISpeechVoice_Release(ISpeechVoice* This) {
  12248     return This->lpVtbl->Release(This);
  12249 }
  12250 /*** IDispatch methods ***/
  12251 static inline HRESULT ISpeechVoice_GetTypeInfoCount(ISpeechVoice* This,UINT *pctinfo) {
  12252     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  12253 }
  12254 static inline HRESULT ISpeechVoice_GetTypeInfo(ISpeechVoice* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  12255     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  12256 }
  12257 static inline HRESULT ISpeechVoice_GetIDsOfNames(ISpeechVoice* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  12258     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  12259 }
  12260 static inline HRESULT ISpeechVoice_Invoke(ISpeechVoice* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  12261     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  12262 }
  12263 /*** ISpeechVoice methods ***/
  12264 static inline HRESULT ISpeechVoice_get_Status(ISpeechVoice* This,ISpeechVoiceStatus **Status) {
  12265     return This->lpVtbl->get_Status(This,Status);
  12266 }
  12267 static inline HRESULT ISpeechVoice_get_Voice(ISpeechVoice* This,ISpeechObjectToken **Voice) {
  12268     return This->lpVtbl->get_Voice(This,Voice);
  12269 }
  12270 static inline HRESULT ISpeechVoice_putref_Voice(ISpeechVoice* This,ISpeechObjectToken *Voice) {
  12271     return This->lpVtbl->putref_Voice(This,Voice);
  12272 }
  12273 static inline HRESULT ISpeechVoice_get_AudioOutput(ISpeechVoice* This,ISpeechObjectToken **AudioOutput) {
  12274     return This->lpVtbl->get_AudioOutput(This,AudioOutput);
  12275 }
  12276 static inline HRESULT ISpeechVoice_putref_AudioOutput(ISpeechVoice* This,ISpeechObjectToken *AudioOutput) {
  12277     return This->lpVtbl->putref_AudioOutput(This,AudioOutput);
  12278 }
  12279 static inline HRESULT ISpeechVoice_get_AudioOutputStream(ISpeechVoice* This,ISpeechBaseStream **AudioOutputStream) {
  12280     return This->lpVtbl->get_AudioOutputStream(This,AudioOutputStream);
  12281 }
  12282 static inline HRESULT ISpeechVoice_putref_AudioOutputStream(ISpeechVoice* This,ISpeechBaseStream *AudioOutputStream) {
  12283     return This->lpVtbl->putref_AudioOutputStream(This,AudioOutputStream);
  12284 }
  12285 static inline HRESULT ISpeechVoice_get_Rate(ISpeechVoice* This,LONG *Rate) {
  12286     return This->lpVtbl->get_Rate(This,Rate);
  12287 }
  12288 static inline HRESULT ISpeechVoice_put_Rate(ISpeechVoice* This,LONG Rate) {
  12289     return This->lpVtbl->put_Rate(This,Rate);
  12290 }
  12291 static inline HRESULT ISpeechVoice_get_Volume(ISpeechVoice* This,LONG *Volume) {
  12292     return This->lpVtbl->get_Volume(This,Volume);
  12293 }
  12294 static inline HRESULT ISpeechVoice_put_Volume(ISpeechVoice* This,LONG Volume) {
  12295     return This->lpVtbl->put_Volume(This,Volume);
  12296 }
  12297 static inline HRESULT ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet(ISpeechVoice* This,VARIANT_BOOL Allow) {
  12298     return This->lpVtbl->put_AllowAudioOutputFormatChangesOnNextSet(This,Allow);
  12299 }
  12300 static inline HRESULT ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet(ISpeechVoice* This,VARIANT_BOOL *Allow) {
  12301     return This->lpVtbl->get_AllowAudioOutputFormatChangesOnNextSet(This,Allow);
  12302 }
  12303 static inline HRESULT ISpeechVoice_get_EventInterests(ISpeechVoice* This,SpeechVoiceEvents *EventInterestFlags) {
  12304     return This->lpVtbl->get_EventInterests(This,EventInterestFlags);
  12305 }
  12306 static inline HRESULT ISpeechVoice_put_EventInterests(ISpeechVoice* This,SpeechVoiceEvents EventInterestFlags) {
  12307     return This->lpVtbl->put_EventInterests(This,EventInterestFlags);
  12308 }
  12309 static inline HRESULT ISpeechVoice_put_Priority(ISpeechVoice* This,SpeechVoicePriority Priority) {
  12310     return This->lpVtbl->put_Priority(This,Priority);
  12311 }
  12312 static inline HRESULT ISpeechVoice_get_Priority(ISpeechVoice* This,SpeechVoicePriority *Priority) {
  12313     return This->lpVtbl->get_Priority(This,Priority);
  12314 }
  12315 static inline HRESULT ISpeechVoice_put_AlertBoundary(ISpeechVoice* This,SpeechVoiceEvents Boundary) {
  12316     return This->lpVtbl->put_AlertBoundary(This,Boundary);
  12317 }
  12318 static inline HRESULT ISpeechVoice_get_AlertBoundary(ISpeechVoice* This,SpeechVoiceEvents *Boundary) {
  12319     return This->lpVtbl->get_AlertBoundary(This,Boundary);
  12320 }
  12321 static inline HRESULT ISpeechVoice_put_SynchronousSpeakTimeout(ISpeechVoice* This,LONG msTimeout) {
  12322     return This->lpVtbl->put_SynchronousSpeakTimeout(This,msTimeout);
  12323 }
  12324 static inline HRESULT ISpeechVoice_get_SynchronousSpeakTimeout(ISpeechVoice* This,LONG *msTimeout) {
  12325     return This->lpVtbl->get_SynchronousSpeakTimeout(This,msTimeout);
  12326 }
  12327 static inline HRESULT ISpeechVoice_Speak(ISpeechVoice* This,BSTR Text,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
  12328     return This->lpVtbl->Speak(This,Text,Flags,StreamNumber);
  12329 }
  12330 static inline HRESULT ISpeechVoice_SpeakStream(ISpeechVoice* This,ISpeechBaseStream *Stream,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
  12331     return This->lpVtbl->SpeakStream(This,Stream,Flags,StreamNumber);
  12332 }
  12333 static inline HRESULT ISpeechVoice_Pause(ISpeechVoice* This) {
  12334     return This->lpVtbl->Pause(This);
  12335 }
  12336 static inline HRESULT ISpeechVoice_Resume(ISpeechVoice* This) {
  12337     return This->lpVtbl->Resume(This);
  12338 }
  12339 static inline HRESULT ISpeechVoice_Skip(ISpeechVoice* This,const BSTR Type,LONG NumItems,LONG *NumSkipped) {
  12340     return This->lpVtbl->Skip(This,Type,NumItems,NumSkipped);
  12341 }
  12342 static inline HRESULT ISpeechVoice_GetVoices(ISpeechVoice* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
  12343     return This->lpVtbl->GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
  12344 }
  12345 static inline HRESULT ISpeechVoice_GetAudioOutputs(ISpeechVoice* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
  12346     return This->lpVtbl->GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
  12347 }
  12348 static inline HRESULT ISpeechVoice_WaitUntilDone(ISpeechVoice* This,LONG msTimeout,VARIANT_BOOL *Done) {
  12349     return This->lpVtbl->WaitUntilDone(This,msTimeout,Done);
  12350 }
  12351 static inline HRESULT ISpeechVoice_SpeakCompleteEvent(ISpeechVoice* This,LONG *Handle) {
  12352     return This->lpVtbl->SpeakCompleteEvent(This,Handle);
  12353 }
  12354 static inline HRESULT ISpeechVoice_IsUISupported(ISpeechVoice* This,const BSTR TypeOfUI,const VARIANT *ExtraData,VARIANT_BOOL *Supported) {
  12355     return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported);
  12356 }
  12357 static inline HRESULT ISpeechVoice_DisplayUI(ISpeechVoice* This,LONG hWndParent,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData) {
  12358     return This->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData);
  12359 }
  12360 #endif
  12361 #endif
  12362 
  12363 #endif
  12364 
  12365 
  12366 #endif  /* __ISpeechVoice_INTERFACE_DEFINED__ */
  12367 
  12368 /*****************************************************************************
  12369  * ISpeechVoiceStatus interface
  12370  */
  12371 #ifndef __ISpeechVoiceStatus_INTERFACE_DEFINED__
  12372 #define __ISpeechVoiceStatus_INTERFACE_DEFINED__
  12373 
  12374 DEFINE_GUID(IID_ISpeechVoiceStatus, 0x8be47b07, 0x57f6, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96);
  12375 #if defined(__cplusplus) && !defined(CINTERFACE)
  12376 MIDL_INTERFACE("8be47b07-57f6-11d2-9eee-00c04f797396")
  12377 ISpeechVoiceStatus : public IDispatch
  12378 {
  12379     virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamNumber(
  12380         LONG *StreamNumber) = 0;
  12381 
  12382     virtual HRESULT STDMETHODCALLTYPE get_LastStreamNumberQueued(
  12383         LONG *StreamNumber) = 0;
  12384 
  12385     virtual HRESULT STDMETHODCALLTYPE get_LastHResult(
  12386         LONG *HResult) = 0;
  12387 
  12388     virtual HRESULT STDMETHODCALLTYPE get_RunningState(
  12389         SpeechRunState *State) = 0;
  12390 
  12391     virtual HRESULT STDMETHODCALLTYPE get_InputWordPosition(
  12392         LONG *Position) = 0;
  12393 
  12394     virtual HRESULT STDMETHODCALLTYPE get_InputWordLength(
  12395         LONG *Length) = 0;
  12396 
  12397     virtual HRESULT STDMETHODCALLTYPE get_InputSentencePosition(
  12398         LONG *Position) = 0;
  12399 
  12400     virtual HRESULT STDMETHODCALLTYPE get_InputSentenceLength(
  12401         LONG *Length) = 0;
  12402 
  12403     virtual HRESULT STDMETHODCALLTYPE get_LastBookmark(
  12404         BSTR *Bookmark) = 0;
  12405 
  12406     virtual HRESULT STDMETHODCALLTYPE get_LastBookmarkId(
  12407         LONG *BookmarkId) = 0;
  12408 
  12409     virtual HRESULT STDMETHODCALLTYPE get_PhonemeId(
  12410         short *PhoneId) = 0;
  12411 
  12412     virtual HRESULT STDMETHODCALLTYPE get_VisemeId(
  12413         short *VisemeId) = 0;
  12414 
  12415 };
  12416 #ifdef __CRT_UUID_DECL
  12417 __CRT_UUID_DECL(ISpeechVoiceStatus, 0x8be47b07, 0x57f6, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96)
  12418 #endif
  12419 #else
  12420 typedef struct ISpeechVoiceStatusVtbl {
  12421     BEGIN_INTERFACE
  12422 
  12423     /*** IUnknown methods ***/
  12424     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  12425         ISpeechVoiceStatus *This,
  12426         REFIID riid,
  12427         void **ppvObject);
  12428 
  12429     ULONG (STDMETHODCALLTYPE *AddRef)(
  12430         ISpeechVoiceStatus *This);
  12431 
  12432     ULONG (STDMETHODCALLTYPE *Release)(
  12433         ISpeechVoiceStatus *This);
  12434 
  12435     /*** IDispatch methods ***/
  12436     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  12437         ISpeechVoiceStatus *This,
  12438         UINT *pctinfo);
  12439 
  12440     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  12441         ISpeechVoiceStatus *This,
  12442         UINT iTInfo,
  12443         LCID lcid,
  12444         ITypeInfo **ppTInfo);
  12445 
  12446     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  12447         ISpeechVoiceStatus *This,
  12448         REFIID riid,
  12449         LPOLESTR *rgszNames,
  12450         UINT cNames,
  12451         LCID lcid,
  12452         DISPID *rgDispId);
  12453 
  12454     HRESULT (STDMETHODCALLTYPE *Invoke)(
  12455         ISpeechVoiceStatus *This,
  12456         DISPID dispIdMember,
  12457         REFIID riid,
  12458         LCID lcid,
  12459         WORD wFlags,
  12460         DISPPARAMS *pDispParams,
  12461         VARIANT *pVarResult,
  12462         EXCEPINFO *pExcepInfo,
  12463         UINT *puArgErr);
  12464 
  12465     /*** ISpeechVoiceStatus methods ***/
  12466     HRESULT (STDMETHODCALLTYPE *get_CurrentStreamNumber)(
  12467         ISpeechVoiceStatus *This,
  12468         LONG *StreamNumber);
  12469 
  12470     HRESULT (STDMETHODCALLTYPE *get_LastStreamNumberQueued)(
  12471         ISpeechVoiceStatus *This,
  12472         LONG *StreamNumber);
  12473 
  12474     HRESULT (STDMETHODCALLTYPE *get_LastHResult)(
  12475         ISpeechVoiceStatus *This,
  12476         LONG *HResult);
  12477 
  12478     HRESULT (STDMETHODCALLTYPE *get_RunningState)(
  12479         ISpeechVoiceStatus *This,
  12480         SpeechRunState *State);
  12481 
  12482     HRESULT (STDMETHODCALLTYPE *get_InputWordPosition)(
  12483         ISpeechVoiceStatus *This,
  12484         LONG *Position);
  12485 
  12486     HRESULT (STDMETHODCALLTYPE *get_InputWordLength)(
  12487         ISpeechVoiceStatus *This,
  12488         LONG *Length);
  12489 
  12490     HRESULT (STDMETHODCALLTYPE *get_InputSentencePosition)(
  12491         ISpeechVoiceStatus *This,
  12492         LONG *Position);
  12493 
  12494     HRESULT (STDMETHODCALLTYPE *get_InputSentenceLength)(
  12495         ISpeechVoiceStatus *This,
  12496         LONG *Length);
  12497 
  12498     HRESULT (STDMETHODCALLTYPE *get_LastBookmark)(
  12499         ISpeechVoiceStatus *This,
  12500         BSTR *Bookmark);
  12501 
  12502     HRESULT (STDMETHODCALLTYPE *get_LastBookmarkId)(
  12503         ISpeechVoiceStatus *This,
  12504         LONG *BookmarkId);
  12505 
  12506     HRESULT (STDMETHODCALLTYPE *get_PhonemeId)(
  12507         ISpeechVoiceStatus *This,
  12508         short *PhoneId);
  12509 
  12510     HRESULT (STDMETHODCALLTYPE *get_VisemeId)(
  12511         ISpeechVoiceStatus *This,
  12512         short *VisemeId);
  12513 
  12514     END_INTERFACE
  12515 } ISpeechVoiceStatusVtbl;
  12516 
  12517 interface ISpeechVoiceStatus {
  12518     CONST_VTBL ISpeechVoiceStatusVtbl* lpVtbl;
  12519 };
  12520 
  12521 #ifdef COBJMACROS
  12522 #ifndef WIDL_C_INLINE_WRAPPERS
  12523 /*** IUnknown methods ***/
  12524 #define ISpeechVoiceStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12525 #define ISpeechVoiceStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
  12526 #define ISpeechVoiceStatus_Release(This) (This)->lpVtbl->Release(This)
  12527 /*** IDispatch methods ***/
  12528 #define ISpeechVoiceStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  12529 #define ISpeechVoiceStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  12530 #define ISpeechVoiceStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  12531 #define ISpeechVoiceStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  12532 /*** ISpeechVoiceStatus methods ***/
  12533 #define ISpeechVoiceStatus_get_CurrentStreamNumber(This,StreamNumber) (This)->lpVtbl->get_CurrentStreamNumber(This,StreamNumber)
  12534 #define ISpeechVoiceStatus_get_LastStreamNumberQueued(This,StreamNumber) (This)->lpVtbl->get_LastStreamNumberQueued(This,StreamNumber)
  12535 #define ISpeechVoiceStatus_get_LastHResult(This,HResult) (This)->lpVtbl->get_LastHResult(This,HResult)
  12536 #define ISpeechVoiceStatus_get_RunningState(This,State) (This)->lpVtbl->get_RunningState(This,State)
  12537 #define ISpeechVoiceStatus_get_InputWordPosition(This,Position) (This)->lpVtbl->get_InputWordPosition(This,Position)
  12538 #define ISpeechVoiceStatus_get_InputWordLength(This,Length) (This)->lpVtbl->get_InputWordLength(This,Length)
  12539 #define ISpeechVoiceStatus_get_InputSentencePosition(This,Position) (This)->lpVtbl->get_InputSentencePosition(This,Position)
  12540 #define ISpeechVoiceStatus_get_InputSentenceLength(This,Length) (This)->lpVtbl->get_InputSentenceLength(This,Length)
  12541 #define ISpeechVoiceStatus_get_LastBookmark(This,Bookmark) (This)->lpVtbl->get_LastBookmark(This,Bookmark)
  12542 #define ISpeechVoiceStatus_get_LastBookmarkId(This,BookmarkId) (This)->lpVtbl->get_LastBookmarkId(This,BookmarkId)
  12543 #define ISpeechVoiceStatus_get_PhonemeId(This,PhoneId) (This)->lpVtbl->get_PhonemeId(This,PhoneId)
  12544 #define ISpeechVoiceStatus_get_VisemeId(This,VisemeId) (This)->lpVtbl->get_VisemeId(This,VisemeId)
  12545 #else
  12546 /*** IUnknown methods ***/
  12547 static inline HRESULT ISpeechVoiceStatus_QueryInterface(ISpeechVoiceStatus* This,REFIID riid,void **ppvObject) {
  12548     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  12549 }
  12550 static inline ULONG ISpeechVoiceStatus_AddRef(ISpeechVoiceStatus* This) {
  12551     return This->lpVtbl->AddRef(This);
  12552 }
  12553 static inline ULONG ISpeechVoiceStatus_Release(ISpeechVoiceStatus* This) {
  12554     return This->lpVtbl->Release(This);
  12555 }
  12556 /*** IDispatch methods ***/
  12557 static inline HRESULT ISpeechVoiceStatus_GetTypeInfoCount(ISpeechVoiceStatus* This,UINT *pctinfo) {
  12558     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  12559 }
  12560 static inline HRESULT ISpeechVoiceStatus_GetTypeInfo(ISpeechVoiceStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  12561     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  12562 }
  12563 static inline HRESULT ISpeechVoiceStatus_GetIDsOfNames(ISpeechVoiceStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  12564     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  12565 }
  12566 static inline HRESULT ISpeechVoiceStatus_Invoke(ISpeechVoiceStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  12567     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  12568 }
  12569 /*** ISpeechVoiceStatus methods ***/
  12570 static inline HRESULT ISpeechVoiceStatus_get_CurrentStreamNumber(ISpeechVoiceStatus* This,LONG *StreamNumber) {
  12571     return This->lpVtbl->get_CurrentStreamNumber(This,StreamNumber);
  12572 }
  12573 static inline HRESULT ISpeechVoiceStatus_get_LastStreamNumberQueued(ISpeechVoiceStatus* This,LONG *StreamNumber) {
  12574     return This->lpVtbl->get_LastStreamNumberQueued(This,StreamNumber);
  12575 }
  12576 static inline HRESULT ISpeechVoiceStatus_get_LastHResult(ISpeechVoiceStatus* This,LONG *HResult) {
  12577     return This->lpVtbl->get_LastHResult(This,HResult);
  12578 }
  12579 static inline HRESULT ISpeechVoiceStatus_get_RunningState(ISpeechVoiceStatus* This,SpeechRunState *State) {
  12580     return This->lpVtbl->get_RunningState(This,State);
  12581 }
  12582 static inline HRESULT ISpeechVoiceStatus_get_InputWordPosition(ISpeechVoiceStatus* This,LONG *Position) {
  12583     return This->lpVtbl->get_InputWordPosition(This,Position);
  12584 }
  12585 static inline HRESULT ISpeechVoiceStatus_get_InputWordLength(ISpeechVoiceStatus* This,LONG *Length) {
  12586     return This->lpVtbl->get_InputWordLength(This,Length);
  12587 }
  12588 static inline HRESULT ISpeechVoiceStatus_get_InputSentencePosition(ISpeechVoiceStatus* This,LONG *Position) {
  12589     return This->lpVtbl->get_InputSentencePosition(This,Position);
  12590 }
  12591 static inline HRESULT ISpeechVoiceStatus_get_InputSentenceLength(ISpeechVoiceStatus* This,LONG *Length) {
  12592     return This->lpVtbl->get_InputSentenceLength(This,Length);
  12593 }
  12594 static inline HRESULT ISpeechVoiceStatus_get_LastBookmark(ISpeechVoiceStatus* This,BSTR *Bookmark) {
  12595     return This->lpVtbl->get_LastBookmark(This,Bookmark);
  12596 }
  12597 static inline HRESULT ISpeechVoiceStatus_get_LastBookmarkId(ISpeechVoiceStatus* This,LONG *BookmarkId) {
  12598     return This->lpVtbl->get_LastBookmarkId(This,BookmarkId);
  12599 }
  12600 static inline HRESULT ISpeechVoiceStatus_get_PhonemeId(ISpeechVoiceStatus* This,short *PhoneId) {
  12601     return This->lpVtbl->get_PhonemeId(This,PhoneId);
  12602 }
  12603 static inline HRESULT ISpeechVoiceStatus_get_VisemeId(ISpeechVoiceStatus* This,short *VisemeId) {
  12604     return This->lpVtbl->get_VisemeId(This,VisemeId);
  12605 }
  12606 #endif
  12607 #endif
  12608 
  12609 #endif
  12610 
  12611 
  12612 #endif  /* __ISpeechVoiceStatus_INTERFACE_DEFINED__ */
  12613 
  12614 typedef enum SpeechVisemeType {
  12615     SVP_0 = 0,
  12616     SVP_1 = 1,
  12617     SVP_2 = 2,
  12618     SVP_3 = 3,
  12619     SVP_4 = 4,
  12620     SVP_5 = 5,
  12621     SVP_6 = 6,
  12622     SVP_7 = 7,
  12623     SVP_8 = 8,
  12624     SVP_9 = 9,
  12625     SVP_10 = 10,
  12626     SVP_11 = 11,
  12627     SVP_12 = 12,
  12628     SVP_13 = 13,
  12629     SVP_14 = 14,
  12630     SVP_15 = 15,
  12631     SVP_16 = 16,
  12632     SVP_17 = 17,
  12633     SVP_18 = 18,
  12634     SVP_19 = 19,
  12635     SVP_20 = 20,
  12636     SVP_21 = 21
  12637 } SpeechVisemeType;
  12638 typedef enum SpeechVisemeFeature {
  12639     SVF_None = 0,
  12640     SVF_Stressed = SPVFEATURE_STRESSED,
  12641     SVF_Emphasis = SPVFEATURE_EMPHASIS
  12642 } SpeechVisemeFeature;
  12643 typedef enum DISPID_SpeechVoiceEvent {
  12644     DISPID_SVEStreamStart = 1,
  12645     DISPID_SVEStreamEnd = 2,
  12646     DISPID_SVEVoiceChange = 3,
  12647     DISPID_SVEBookmark = 4,
  12648     DISPID_SVEWord = 5,
  12649     DISPID_SVEPhoneme = 6,
  12650     DISPID_SVESentenceBoundary = 7,
  12651     DISPID_SVEViseme = 8,
  12652     DISPID_SVEAudioLevel = 9,
  12653     DISPID_SVEEnginePrivate = 10
  12654 } DISPID_SpeechVoiceEvent;
  12655 typedef enum DISPID_SpeechRecognizer {
  12656     DISPID_SRRecognizer = 1,
  12657     DISPID_SRAllowAudioInputFormatChangesOnNextSet = 2,
  12658     DISPID_SRAudioInput = 3,
  12659     DISPID_SRAudioInputStream = 4,
  12660     DISPID_SRIsShared = 5,
  12661     DISPID_SRState = 6,
  12662     DISPID_SRStatus = 7,
  12663     DISPID_SRProfile = 8,
  12664     DISPID_SREmulateRecognition = 9,
  12665     DISPID_SRCreateRecoContext = 10,
  12666     DISPID_SRGetFormat = 11,
  12667     DISPID_SRSetPropertyNumber = 12,
  12668     DISPID_SRGetPropertyNumber = 13,
  12669     DISPID_SRSetPropertyString = 14,
  12670     DISPID_SRGetPropertyString = 15,
  12671     DISPID_SRIsUISupported = 16,
  12672     DISPID_SRDisplayUI = 17,
  12673     DISPID_SRGetRecognizers = 18,
  12674     DISPID_SVGetAudioInputs = 19,
  12675     DISPID_SVGetProfiles = 20
  12676 } DISPID_SpeechRecognizer;
  12677 typedef enum SpeechRecognizerState {
  12678     SRSInactive = SPRST_INACTIVE,
  12679     SRSActive = SPRST_ACTIVE,
  12680     SRSActiveAlways = SPRST_ACTIVE_ALWAYS,
  12681     SRSInactiveWithPurge = SPRST_INACTIVE_WITH_PURGE
  12682 } SpeechRecognizerState;
  12683 typedef enum SpeechDisplayAttributes {
  12684     SDA_No_Trailing_Space = 0,
  12685     SDA_One_Trailing_Space = SPAF_ONE_TRAILING_SPACE,
  12686     SDA_Two_Trailing_Spaces = SPAF_TWO_TRAILING_SPACES,
  12687     SDA_Consume_Leading_Spaces = SPAF_CONSUME_LEADING_SPACES
  12688 } SpeechDisplayAttributes;
  12689 typedef enum SpeechFormatType {
  12690     SFTInput = SPWF_INPUT,
  12691     SFTSREngine = SPWF_SRENGINE
  12692 } SpeechFormatType;
  12693 typedef enum DISPID_SpeechRecognizerStatus {
  12694     DISPID_SRSAudioStatus = 1,
  12695     DISPID_SRSCurrentStreamPosition = 2,
  12696     DISPID_SRSCurrentStreamNumber = 3,
  12697     DISPID_SRSNumberOfActiveRules = 4,
  12698     DISPID_SRSClsidEngine = 5,
  12699     DISPID_SRSSupportedLanguages = 6
  12700 } DISPID_SpeechRecognizerStatus;
  12701 typedef enum DISPID_SpeechRecoContext {
  12702     DISPID_SRCRecognizer = 1,
  12703     DISPID_SRCAudioInInterferenceStatus = 2,
  12704     DISPID_SRCRequestedUIType = 3,
  12705     DISPID_SRCVoice = 4,
  12706     DISPID_SRAllowVoiceFormatMatchingOnNextSet = 5,
  12707     DISPID_SRCVoicePurgeEvent = 6,
  12708     DISPID_SRCEventInterests = 7,
  12709     DISPID_SRCCmdMaxAlternates = 8,
  12710     DISPID_SRCState = 9,
  12711     DISPID_SRCRetainedAudio = 10,
  12712     DISPID_SRCRetainedAudioFormat = 11,
  12713     DISPID_SRCPause = 12,
  12714     DISPID_SRCResume = 13,
  12715     DISPID_SRCCreateGrammar = 14,
  12716     DISPID_SRCCreateResultFromMemory = 15,
  12717     DISPID_SRCBookmark = 16,
  12718     DISPID_SRCSetAdaptationData = 17
  12719 } DISPID_SpeechRecoContext;
  12720 typedef enum SpeechRetainedAudioOptions {
  12721     SRAONone = SPAO_NONE,
  12722     SRAORetainAudio = SPAO_RETAIN_AUDIO
  12723 } SpeechRetainedAudioOptions;
  12724 typedef enum SpeechBookmarkOptions {
  12725     SBONone = SPBO_NONE,
  12726     SBOPause = SPBO_PAUSE
  12727 } SpeechBookmarkOptions;
  12728 typedef enum SpeechInterference {
  12729     SINone = SPINTERFERENCE_NONE,
  12730     SINoise = SPINTERFERENCE_NOISE,
  12731     SINoSignal = SPINTERFERENCE_NOSIGNAL,
  12732     SITooLoud = SPINTERFERENCE_TOOLOUD,
  12733     SITooQuiet = SPINTERFERENCE_TOOQUIET,
  12734     SITooFast = SPINTERFERENCE_TOOFAST,
  12735     SITooSlow = SPINTERFERENCE_TOOSLOW
  12736 } SpeechInterference;
  12737 typedef enum SpeechRecoEvents {
  12738     SREStreamEnd = 0x1,
  12739     SRESoundStart = 0x2,
  12740     SRESoundEnd = 0x4,
  12741     SREPhraseStart = 0x8,
  12742     SRERecognition = 0x10,
  12743     SREHypothesis = 0x20,
  12744     SREBookmark = 0x40,
  12745     SREPropertyNumChange = 0x80,
  12746     SREPropertyStringChange = 0x100,
  12747     SREFalseRecognition = 0x200,
  12748     SREInterference = 0x400,
  12749     SRERequestUI = 0x800,
  12750     SREStateChange = 0x1000,
  12751     SREAdaptation = 0x2000,
  12752     SREStreamStart = 0x4000,
  12753     SRERecoOtherContext = 0x8000,
  12754     SREAudioLevel = 0x10000,
  12755     SREPrivate = 0x40000,
  12756     SREAllEvents = 0x5ffff
  12757 } SpeechRecoEvents;
  12758 typedef enum SpeechRecoContextState {
  12759     SRCS_Disabled = SPCS_DISABLED,
  12760     SRCS_Enabled = SPCS_ENABLED
  12761 } SpeechRecoContextState;
  12762 typedef enum DISPIDSPRG {
  12763     DISPID_SRGId = 1,
  12764     DISPID_SRGRecoContext = 2,
  12765     DISPID_SRGState = 3,
  12766     DISPID_SRGRules = 4,
  12767     DISPID_SRGReset = 5,
  12768     DISPID_SRGCommit = 6,
  12769     DISPID_SRGCmdLoadFromFile = 7,
  12770     DISPID_SRGCmdLoadFromObject = 8,
  12771     DISPID_SRGCmdLoadFromResource = 9,
  12772     DISPID_SRGCmdLoadFromMemory = 10,
  12773     DISPID_SRGCmdLoadFromProprietaryGrammar = 11,
  12774     DISPID_SRGCmdSetRuleState = 12,
  12775     DISPID_SRGCmdSetRuleIdState = 13,
  12776     DISPID_SRGDictationLoad = 14,
  12777     DISPID_SRGDictationUnload = 15,
  12778     DISPID_SRGDictationSetState = 16,
  12779     DISPID_SRGSetWordSequenceData = 17,
  12780     DISPID_SRGSetTextSelection = 18,
  12781     DISPID_SRGIsPronounceable = 19
  12782 } DISPIDSPRG;
  12783 typedef enum SpeechLoadOption {
  12784     SLOStatic = SPLO_STATIC,
  12785     SLODynamic = SPLO_DYNAMIC
  12786 } SpeechLoadOption;
  12787 typedef enum SpeechWordPronounceable {
  12788     SWPUnknownWordUnpronounceable = SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE,
  12789     SWPUnknownWordPronounceable = SPWP_UNKNOWN_WORD_PRONOUNCEABLE,
  12790     SWPKnownWordPronounceable = SPWP_KNOWN_WORD_PRONOUNCEABLE
  12791 } SpeechWordPronounceable;
  12792 typedef enum SpeechGrammarState {
  12793     SGSEnabled = SPGS_ENABLED,
  12794     SGSDisabled = SPGS_DISABLED,
  12795     SGSExclusive = SPGS_EXCLUSIVE
  12796 } SpeechGrammarState;
  12797 typedef enum SpeechRuleState {
  12798     SGDSInactive = SPRS_INACTIVE,
  12799     SGDSActive = SPRS_ACTIVE,
  12800     SGDSActiveWithAutoPause = SPRS_ACTIVE_WITH_AUTO_PAUSE
  12801 } SpeechRuleState;
  12802 typedef enum SpeechRuleAttributes {
  12803     SRATopLevel = SPRAF_TopLevel,
  12804     SRADefaultToActive = SPRAF_Active,
  12805     SRAExport = SPRAF_Export,
  12806     SRAImport = SPRAF_Import,
  12807     SRAInterpreter = SPRAF_Interpreter,
  12808     SRADynamic = SPRAF_Dynamic
  12809 } SpeechRuleAttributes;
  12810 typedef enum SpeechGrammarWordType {
  12811     SGDisplay = SPWT_DISPLAY,
  12812     SGLexical = SPWT_LEXICAL,
  12813     SGPronounciation = SPWT_PRONUNCIATION
  12814 } SpeechGrammarWordType;
  12815 typedef enum DISPID_SpeechRecoContextEvents {
  12816     DISPID_SRCEStartStream = 1,
  12817     DISPID_SRCEEndStream = 2,
  12818     DISPID_SRCEBookmark = 3,
  12819     DISPID_SRCESoundStart = 4,
  12820     DISPID_SRCESoundEnd = 5,
  12821     DISPID_SRCEPhraseStart = 6,
  12822     DISPID_SRCERecognition = 7,
  12823     DISPID_SRCEHypothesis = 8,
  12824     DISPID_SRCEPropertyNumberChange = 9,
  12825     DISPID_SRCEPropertyStringChange = 10,
  12826     DISPID_SRCEFalseRecognition = 11,
  12827     DISPID_SRCEInterference = 12,
  12828     DISPID_SRCERequestUI = 13,
  12829     DISPID_SRCERecognizerStateChange = 14,
  12830     DISPID_SRCEAdaptation = 15,
  12831     DISPID_SRCERecognitionForOtherContext = 16,
  12832     DISPID_SRCEAudioLevel = 17,
  12833     DISPID_SRCEEnginePrivate = 18
  12834 } DISPID_SpeechRecoContextEvents;
  12835 typedef enum SpeechRecognitionType {
  12836     SRTStandard = 0,
  12837     SRTAutopause = SPREF_AutoPause,
  12838     SRTEmulated = SPREF_Emulated
  12839 } SpeechRecognitionType;
  12840 typedef enum DISPID_SpeechGrammarRule {
  12841     DISPID_SGRAttributes = 1,
  12842     DISPID_SGRInitialState = 2,
  12843     DISPID_SGRName = 3,
  12844     DISPID_SGRId = 4,
  12845     DISPID_SGRClear = 5,
  12846     DISPID_SGRAddResource = 6,
  12847     DISPID_SGRAddState = 7
  12848 } DISPID_SpeechGrammarRule;
  12849 typedef enum DISPID_SpeechGrammarRules {
  12850     DISPID_SGRsCount = 1,
  12851     DISPID_SGRsDynamic = 2,
  12852     DISPID_SGRsAdd = 3,
  12853     DISPID_SGRsCommit = 4,
  12854     DISPID_SGRsCommitAndSave = 5,
  12855     DISPID_SGRsFindRule = 6,
  12856     DISPID_SGRsItem = DISPID_VALUE,
  12857     DISPID_SGRs_NewEnum = DISPID_NEWENUM
  12858 } DISPID_SpeechGrammarRules;
  12859 typedef enum DISPID_SpeechGrammarRuleState {
  12860     DISPID_SGRSRule = 1,
  12861     DISPID_SGRSTransitions = 2,
  12862     DISPID_SGRSAddWordTransition = 3,
  12863     DISPID_SGRSAddRuleTransition = 4,
  12864     DISPID_SGRSAddSpecialTransition = 5
  12865 } DISPID_SpeechGrammarRuleState;
  12866 typedef enum SpeechSpecialTransitionType {
  12867     SSTTWildcard = 1,
  12868     SSTTDictation = 2,
  12869     SSTTTextBuffer = 3
  12870 } SpeechSpecialTransitionType;
  12871 typedef enum DISPID_SpeechGrammarRuleStateTransitions {
  12872     DISPID_SGRSTsCount = 1,
  12873     DISPID_SGRSTsItem = DISPID_VALUE,
  12874     DISPID_SGRSTs_NewEnum = DISPID_NEWENUM
  12875 } DISPID_SpeechGrammarRuleStateTransitions;
  12876 typedef enum DISPID_SpeechGrammarRuleStateTransition {
  12877     DISPID_SGRSTType = 1,
  12878     DISPID_SGRSTText = 2,
  12879     DISPID_SGRSTRule = 3,
  12880     DISPID_SGRSTWeight = 4,
  12881     DISPID_SGRSTPropertyName = 5,
  12882     DISPID_SGRSTPropertyId = 6,
  12883     DISPID_SGRSTPropertyValue = 7,
  12884     DISPID_SGRSTNextState = 8
  12885 } DISPID_SpeechGrammarRuleStateTransition;
  12886 typedef enum SpeechGrammarRuleStateTransitionType {
  12887     SGRSTTEpsilon = 0,
  12888     SGRSTTWord = 1,
  12889     SGRSTTRule = 2,
  12890     SGRSTTDictation = 3,
  12891     SGRSTTWildcard = 4,
  12892     SGRSTTTextBuffer = 5
  12893 } SpeechGrammarRuleStateTransitionType;
  12894 typedef enum DISPIDSPTSI {
  12895     DISPIDSPTSI_ActiveOffset = 1,
  12896     DISPIDSPTSI_ActiveLength = 2,
  12897     DISPIDSPTSI_SelectionOffset = 3,
  12898     DISPIDSPTSI_SelectionLength = 4
  12899 } DISPIDSPTSI;
  12900 typedef enum DISPID_SpeechRecoResult {
  12901     DISPID_SRRRecoContext = 1,
  12902     DISPID_SRRTimes = 2,
  12903     DISPID_SRRAudioFormat = 3,
  12904     DISPID_SRRPhraseInfo = 4,
  12905     DISPID_SRRAlternates = 5,
  12906     DISPID_SRRAudio = 6,
  12907     DISPID_SRRSpeakAudio = 7,
  12908     DISPID_SRRSaveToMemory = 8,
  12909     DISPID_SRRDiscardResultInfo = 9
  12910 } DISPID_SpeechRecoResult;
  12911 typedef enum SpeechDiscardType {
  12912     SDTProperty = SPDF_PROPERTY,
  12913     SDTReplacement = SPDF_REPLACEMENT,
  12914     SDTRule = SPDF_RULE,
  12915     SDTDisplayText = SPDF_DISPLAYTEXT,
  12916     SDTLexicalForm = SPDF_LEXICALFORM,
  12917     SDTPronunciation = SPDF_PRONUNCIATION,
  12918     SDTAudio = SPDF_AUDIO,
  12919     SDTAlternates = SPDF_ALTERNATES,
  12920     SDTAll = SPDF_ALL
  12921 } SpeechDiscardType;
  12922 typedef enum DISPID_SpeechPhraseBuilder {
  12923     DISPID_SPPBRestorePhraseFromMemory = 1
  12924 } DISPID_SpeechPhraseBuilder;
  12925 typedef enum DISPID_SpeechRecoResultTimes {
  12926     DISPID_SRRTStreamTime = 1,
  12927     DISPID_SRRTLength = 2,
  12928     DISPID_SRRTTickCount = 3,
  12929     DISPID_SRRTOffsetFromStart = 4
  12930 } DISPID_SpeechRecoResultTimes;
  12931 typedef enum DISPID_SpeechPhraseAlternate {
  12932     DISPID_SPARecoResult = 1,
  12933     DISPID_SPAStartElementInResult = 2,
  12934     DISPID_SPANumberOfElementsInResult = 3,
  12935     DISPID_SPAPhraseInfo = 4,
  12936     DISPID_SPACommit = 5
  12937 } DISPID_SpeechPhraseAlternate;
  12938 typedef enum DISPID_SpeechPhraseAlternates {
  12939     DISPID_SPAsCount = 1,
  12940     DISPID_SPAsItem = DISPID_VALUE,
  12941     DISPID_SPAs_NewEnum = DISPID_NEWENUM
  12942 } DISPID_SpeechPhraseAlternates;
  12943 typedef enum DISPID_SpeechPhraseInfo {
  12944     DISPID_SPILanguageId = 1,
  12945     DISPID_SPIGrammarId = 2,
  12946     DISPID_SPIStartTime = 3,
  12947     DISPID_SPIAudioStreamPosition = 4,
  12948     DISPID_SPIAudioSizeBytes = 5,
  12949     DISPID_SPIRetainedSizeBytes = 6,
  12950     DISPID_SPIAudioSizeTime = 7,
  12951     DISPID_SPIRule = 8,
  12952     DISPID_SPIProperties = 9,
  12953     DISPID_SPIElements = 10,
  12954     DISPID_SPIReplacements = 11,
  12955     DISPID_SPIEngineId = 12,
  12956     DISPID_SPIEnginePrivateData = 13,
  12957     DISPID_SPISaveToMemory = 14,
  12958     DISPID_SPIGetText = 15,
  12959     DISPID_SPIGetDisplayAttributes = 16
  12960 } DISPID_SpeechPhraseInfo;
  12961 typedef enum DISPID_SpeechPhraseElement {
  12962     DISPID_SPEAudioTimeOffset = 1,
  12963     DISPID_SPEAudioSizeTime = 2,
  12964     DISPID_SPEAudioStreamOffset = 3,
  12965     DISPID_SPEAudioSizeBytes = 4,
  12966     DISPID_SPERetainedStreamOffset = 5,
  12967     DISPID_SPERetainedSizeBytes = 6,
  12968     DISPID_SPEDisplayText = 7,
  12969     DISPID_SPELexicalForm = 8,
  12970     DISPID_SPEPronunciation = 9,
  12971     DISPID_SPEDisplayAttributes = 10,
  12972     DISPID_SPERequiredConfidence = 11,
  12973     DISPID_SPEActualConfidence = 12,
  12974     DISPID_SPEEngineConfidence = 13
  12975 } DISPID_SpeechPhraseElement;
  12976 typedef enum SpeechEngineConfidence {
  12977     SECLowConfidence = -1,
  12978     SECNormalConfidence = 0,
  12979     SECHighConfidence = 1
  12980 } SpeechEngineConfidence;
  12981 typedef enum DISPID_SpeechPhraseElements {
  12982     DISPID_SPEsCount = 1,
  12983     DISPID_SPEsItem = DISPID_VALUE,
  12984     DISPID_SPEs_NewEnum = DISPID_NEWENUM
  12985 } DISPID_SpeechPhraseElements;
  12986 typedef enum DISPID_SpeechPhraseReplacement {
  12987     DISPID_SPRDisplayAttributes = 1,
  12988     DISPID_SPRText = 2,
  12989     DISPID_SPRFirstElement = 3,
  12990     DISPID_SPRNumberOfElements = 4
  12991 } DISPID_SpeechPhraseReplacement;
  12992 typedef enum DISPID_SpeechPhraseReplacements {
  12993     DISPID_SPRsCount = 1,
  12994     DISPID_SPRsItem = DISPID_VALUE,
  12995     DISPID_SPRs_NewEnum = DISPID_NEWENUM
  12996 } DISPID_SpeechPhraseReplacements;
  12997 typedef enum DISPID_SpeechPhraseProperty {
  12998     DISPID_SPPName = 1,
  12999     DISPID_SPPId = 2,
  13000     DISPID_SPPValue = 3,
  13001     DISPID_SPPFirstElement = 4,
  13002     DISPID_SPPNumberOfElements = 5,
  13003     DISPID_SPPEngineConfidence = 6,
  13004     DISPID_SPPConfidence = 7,
  13005     DISPID_SPPParent = 8,
  13006     DISPID_SPPChildren = 9
  13007 } DISPID_SpeechPhraseProperty;
  13008 typedef enum DISPID_SpeechPhraseProperties {
  13009     DISPID_SPPsCount = 1,
  13010     DISPID_SPPsItem = DISPID_VALUE,
  13011     DISPID_SPPs_NewEnum = DISPID_NEWENUM
  13012 } DISPID_SpeechPhraseProperties;
  13013 typedef enum DISPID_SpeechPhraseRule {
  13014     DISPID_SPRuleName = 1,
  13015     DISPID_SPRuleId = 2,
  13016     DISPID_SPRuleFirstElement = 3,
  13017     DISPID_SPRuleNumberOfElements = 4,
  13018     DISPID_SPRuleParent = 5,
  13019     DISPID_SPRuleChildren = 6,
  13020     DISPID_SPRuleConfidence = 7,
  13021     DISPID_SPRuleEngineConfidence = 8
  13022 } DISPID_SpeechPhraseRule;
  13023 typedef enum DISPID_SpeechPhraseRules {
  13024     DISPID_SPRulesCount = 1,
  13025     DISPID_SPRulesItem = DISPID_VALUE,
  13026     DISPID_SPRules_NewEnum = DISPID_NEWENUM
  13027 } DISPID_SpeechPhraseRules;
  13028 typedef enum DISPID_SpeechLexicon {
  13029     DISPID_SLGenerationId = 1,
  13030     DISPID_SLGetWords = 2,
  13031     DISPID_SLAddPronunciation = 3,
  13032     DISPID_SLAddPronunciationByPhoneIds = 4,
  13033     DISPID_SLRemovePronunciation = 5,
  13034     DISPID_SLRemovePronunciationByPhoneIds = 6,
  13035     DISPID_SLGetPronunciations = 7,
  13036     DISPID_SLGetGenerationChange = 8
  13037 } DISPID_SpeechLexicon;
  13038 typedef enum SpeechLexiconType {
  13039     SLTUser = eLEXTYPE_USER,
  13040     SLTApp = eLEXTYPE_APP
  13041 } SpeechLexiconType;
  13042 typedef enum SpeechPartOfSpeech {
  13043     SPSNotOverriden = SPPS_NotOverriden,
  13044     SPSUnknown = SPPS_Unknown,
  13045     SPSNoun = SPPS_Noun,
  13046     SPSVerb = SPPS_Verb,
  13047     SPSModifier = SPPS_Modifier,
  13048     SPSFunction = SPPS_Function,
  13049     SPSInterjection = SPPS_Interjection
  13050 } SpeechPartOfSpeech;
  13051 typedef enum DISPID_SpeechLexiconWords {
  13052     DISPID_SLWsCount = 1,
  13053     DISPID_SLWsItem = DISPID_VALUE,
  13054     DISPID_SLWs_NewEnum = DISPID_NEWENUM
  13055 } DISPID_SpeechLexiconWords;
  13056 typedef enum SpeechWordType {
  13057     SWTAdded = eWORDTYPE_ADDED,
  13058     SWTDeleted = eWORDTYPE_DELETED
  13059 } SpeechWordType;
  13060 typedef enum DISPID_SpeechLexiconWord {
  13061     DISPID_SLWLangId = 1,
  13062     DISPID_SLWType = 2,
  13063     DISPID_SLWWord = 3,
  13064     DISPID_SLWPronunciations = 4
  13065 } DISPID_SpeechLexiconWord;
  13066 typedef enum DISPID_SpeechLexiconProns {
  13067     DISPID_SLPsCount = 1,
  13068     DISPID_SLPsItem = DISPID_VALUE,
  13069     DISPID_SLPs_NewEnum = DISPID_NEWENUM
  13070 } DISPID_SpeechLexiconProns;
  13071 typedef enum DISPID_SpeechLexiconPronunciation {
  13072     DISPID_SLPType = 1,
  13073     DISPID_SLPLangId = 2,
  13074     DISPID_SLPPartOfSpeech = 3,
  13075     DISPID_SLPPhoneIds = 4,
  13076     DISPID_SLPSymbolic = 5
  13077 } DISPID_SpeechLexiconPronunciation;
  13078 typedef enum DISPID_SpeechPhoneConverter {
  13079     DISPID_SPCLangId = 1,
  13080     DISPID_SPCPhoneToId = 2,
  13081     DISPID_SPCIdToPhone = 3
  13082 } DISPID_SpeechPhoneConverter;
  13083 /*****************************************************************************
  13084  * _ISpeechVoiceEvents dispinterface
  13085  */
  13086 #ifndef ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__
  13087 #define ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__
  13088 
  13089 DEFINE_GUID(DIID__ISpeechVoiceEvents, 0xa372acd1, 0x3bef, 0x4bbd, 0x8f,0xfb, 0xcb,0x3e,0x2b,0x41,0x6a,0xf8);
  13090 #if defined(__cplusplus) && !defined(CINTERFACE)
  13091 MIDL_INTERFACE("a372acd1-3bef-4bbd-8ffb-cb3e2b416af8")
  13092 _ISpeechVoiceEvents : public IDispatch
  13093 {
  13094 };
  13095 #ifdef __CRT_UUID_DECL
  13096 __CRT_UUID_DECL(_ISpeechVoiceEvents, 0xa372acd1, 0x3bef, 0x4bbd, 0x8f,0xfb, 0xcb,0x3e,0x2b,0x41,0x6a,0xf8)
  13097 #endif
  13098 #else
  13099 typedef struct _ISpeechVoiceEventsVtbl {
  13100     BEGIN_INTERFACE
  13101 
  13102     /*** IUnknown methods ***/
  13103     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  13104         _ISpeechVoiceEvents *This,
  13105         REFIID riid,
  13106         void **ppvObject);
  13107 
  13108     ULONG (STDMETHODCALLTYPE *AddRef)(
  13109         _ISpeechVoiceEvents *This);
  13110 
  13111     ULONG (STDMETHODCALLTYPE *Release)(
  13112         _ISpeechVoiceEvents *This);
  13113 
  13114     /*** IDispatch methods ***/
  13115     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  13116         _ISpeechVoiceEvents *This,
  13117         UINT *pctinfo);
  13118 
  13119     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  13120         _ISpeechVoiceEvents *This,
  13121         UINT iTInfo,
  13122         LCID lcid,
  13123         ITypeInfo **ppTInfo);
  13124 
  13125     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  13126         _ISpeechVoiceEvents *This,
  13127         REFIID riid,
  13128         LPOLESTR *rgszNames,
  13129         UINT cNames,
  13130         LCID lcid,
  13131         DISPID *rgDispId);
  13132 
  13133     HRESULT (STDMETHODCALLTYPE *Invoke)(
  13134         _ISpeechVoiceEvents *This,
  13135         DISPID dispIdMember,
  13136         REFIID riid,
  13137         LCID lcid,
  13138         WORD wFlags,
  13139         DISPPARAMS *pDispParams,
  13140         VARIANT *pVarResult,
  13141         EXCEPINFO *pExcepInfo,
  13142         UINT *puArgErr);
  13143 
  13144     END_INTERFACE
  13145 } _ISpeechVoiceEventsVtbl;
  13146 
  13147 interface _ISpeechVoiceEvents {
  13148     CONST_VTBL _ISpeechVoiceEventsVtbl* lpVtbl;
  13149 };
  13150 
  13151 #ifdef COBJMACROS
  13152 #ifndef WIDL_C_INLINE_WRAPPERS
  13153 /*** IUnknown methods ***/
  13154 #define _ISpeechVoiceEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13155 #define _ISpeechVoiceEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
  13156 #define _ISpeechVoiceEvents_Release(This) (This)->lpVtbl->Release(This)
  13157 /*** IDispatch methods ***/
  13158 #define _ISpeechVoiceEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  13159 #define _ISpeechVoiceEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  13160 #define _ISpeechVoiceEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  13161 #define _ISpeechVoiceEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  13162 #else
  13163 /*** IUnknown methods ***/
  13164 static inline HRESULT _ISpeechVoiceEvents_QueryInterface(_ISpeechVoiceEvents* This,REFIID riid,void **ppvObject) {
  13165     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  13166 }
  13167 static inline ULONG _ISpeechVoiceEvents_AddRef(_ISpeechVoiceEvents* This) {
  13168     return This->lpVtbl->AddRef(This);
  13169 }
  13170 static inline ULONG _ISpeechVoiceEvents_Release(_ISpeechVoiceEvents* This) {
  13171     return This->lpVtbl->Release(This);
  13172 }
  13173 /*** IDispatch methods ***/
  13174 static inline HRESULT _ISpeechVoiceEvents_GetTypeInfoCount(_ISpeechVoiceEvents* This,UINT *pctinfo) {
  13175     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  13176 }
  13177 static inline HRESULT _ISpeechVoiceEvents_GetTypeInfo(_ISpeechVoiceEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  13178     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  13179 }
  13180 static inline HRESULT _ISpeechVoiceEvents_GetIDsOfNames(_ISpeechVoiceEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  13181     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  13182 }
  13183 static inline HRESULT _ISpeechVoiceEvents_Invoke(_ISpeechVoiceEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  13184     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  13185 }
  13186 #endif
  13187 #endif
  13188 
  13189 #endif
  13190 
  13191 #endif  /* ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__ */
  13192 
  13193 /*****************************************************************************
  13194  * ISpeechRecognizer interface
  13195  */
  13196 #ifndef __ISpeechRecognizer_INTERFACE_DEFINED__
  13197 #define __ISpeechRecognizer_INTERFACE_DEFINED__
  13198 
  13199 DEFINE_GUID(IID_ISpeechRecognizer, 0x2d5f1c0c, 0xbd75, 0x4b08, 0x94,0x78, 0x3b,0x11,0xfe,0xa2,0x58,0x6c);
  13200 #if defined(__cplusplus) && !defined(CINTERFACE)
  13201 MIDL_INTERFACE("2d5f1c0c-bd75-4b08-9478-3b11fea2586c")
  13202 ISpeechRecognizer : public IDispatch
  13203 {
  13204     virtual HRESULT STDMETHODCALLTYPE putref_Recognizer(
  13205         ISpeechObjectToken *Recognizer) = 0;
  13206 
  13207     virtual HRESULT STDMETHODCALLTYPE get_Recognizer(
  13208         ISpeechObjectToken **Recognizer) = 0;
  13209 
  13210     virtual HRESULT STDMETHODCALLTYPE put_AllowAudioInputFormatChangesOnNextSet(
  13211         VARIANT_BOOL Allow) = 0;
  13212 
  13213     virtual HRESULT STDMETHODCALLTYPE get_AllowAudioInputFormatChangesOnNextSet(
  13214         VARIANT_BOOL *Allow) = 0;
  13215 
  13216     virtual HRESULT STDMETHODCALLTYPE putref_AudioInput(
  13217         ISpeechObjectToken *AudioInput = 0) = 0;
  13218 
  13219     virtual HRESULT STDMETHODCALLTYPE get_AudioInput(
  13220         ISpeechObjectToken **AudioInput) = 0;
  13221 
  13222     virtual HRESULT STDMETHODCALLTYPE putref_AudioInputStream(
  13223         ISpeechBaseStream *AudioInputStream = 0) = 0;
  13224 
  13225     virtual HRESULT STDMETHODCALLTYPE get_AudioInputStream(
  13226         ISpeechBaseStream **AudioInputStream) = 0;
  13227 
  13228     virtual HRESULT STDMETHODCALLTYPE get_IsShared(
  13229         VARIANT_BOOL *Shared) = 0;
  13230 
  13231     virtual HRESULT STDMETHODCALLTYPE put_State(
  13232         SpeechRecognizerState State) = 0;
  13233 
  13234     virtual HRESULT STDMETHODCALLTYPE get_State(
  13235         SpeechRecognizerState *State) = 0;
  13236 
  13237     virtual HRESULT STDMETHODCALLTYPE get_Status(
  13238         ISpeechRecognizerStatus **Status) = 0;
  13239 
  13240     virtual HRESULT STDMETHODCALLTYPE putref_Profile(
  13241         ISpeechObjectToken *Profile = 0) = 0;
  13242 
  13243     virtual HRESULT STDMETHODCALLTYPE get_Profile(
  13244         ISpeechObjectToken **Profile) = 0;
  13245 
  13246     virtual HRESULT STDMETHODCALLTYPE EmulateRecognition(
  13247         VARIANT TextElements,
  13248         VARIANT *ElementDisplayAttributes = 0,
  13249         LONG LanguageId = 0) = 0;
  13250 
  13251     virtual HRESULT STDMETHODCALLTYPE CreateRecoContext(
  13252         ISpeechRecoContext **NewContext) = 0;
  13253 
  13254     virtual HRESULT STDMETHODCALLTYPE GetFormat(
  13255         SpeechFormatType Type,
  13256         ISpeechAudioFormat **Format) = 0;
  13257 
  13258     virtual HRESULT STDMETHODCALLTYPE SetPropertyNumber(
  13259         const BSTR Name,
  13260         LONG Value,
  13261         VARIANT_BOOL *Supported) = 0;
  13262 
  13263     virtual HRESULT STDMETHODCALLTYPE GetPropertyNumber(
  13264         const BSTR Name,
  13265         LONG *Value,
  13266         VARIANT_BOOL *Supported) = 0;
  13267 
  13268     virtual HRESULT STDMETHODCALLTYPE SetPropertyString(
  13269         const BSTR Name,
  13270         const BSTR Value,
  13271         VARIANT_BOOL *Supported) = 0;
  13272 
  13273     virtual HRESULT STDMETHODCALLTYPE GetPropertyString(
  13274         const BSTR Name,
  13275         BSTR *Value,
  13276         VARIANT_BOOL *Supported) = 0;
  13277 
  13278     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
  13279         const BSTR TypeOfUI,
  13280         const VARIANT *ExtraData,
  13281         VARIANT_BOOL *Supported) = 0;
  13282 
  13283     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
  13284         LONG hWndParent,
  13285         BSTR Title,
  13286         const BSTR TypeOfUI,
  13287         const VARIANT *ExtraData = 0) = 0;
  13288 
  13289     virtual HRESULT STDMETHODCALLTYPE GetRecognizers(
  13290         BSTR RequiredAttributes,
  13291         BSTR OptionalAttributes,
  13292         ISpeechObjectTokens **ObjectTokens) = 0;
  13293 
  13294     virtual HRESULT STDMETHODCALLTYPE GetAudioInputs(
  13295         BSTR RequiredAttributes,
  13296         BSTR OptionalAttributes,
  13297         ISpeechObjectTokens **ObjectTokens) = 0;
  13298 
  13299     virtual HRESULT STDMETHODCALLTYPE GetProfiles(
  13300         BSTR RequiredAttributes,
  13301         BSTR OptionalAttributes,
  13302         ISpeechObjectTokens **ObjectTokens) = 0;
  13303 
  13304 };
  13305 #ifdef __CRT_UUID_DECL
  13306 __CRT_UUID_DECL(ISpeechRecognizer, 0x2d5f1c0c, 0xbd75, 0x4b08, 0x94,0x78, 0x3b,0x11,0xfe,0xa2,0x58,0x6c)
  13307 #endif
  13308 #else
  13309 typedef struct ISpeechRecognizerVtbl {
  13310     BEGIN_INTERFACE
  13311 
  13312     /*** IUnknown methods ***/
  13313     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  13314         ISpeechRecognizer *This,
  13315         REFIID riid,
  13316         void **ppvObject);
  13317 
  13318     ULONG (STDMETHODCALLTYPE *AddRef)(
  13319         ISpeechRecognizer *This);
  13320 
  13321     ULONG (STDMETHODCALLTYPE *Release)(
  13322         ISpeechRecognizer *This);
  13323 
  13324     /*** IDispatch methods ***/
  13325     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  13326         ISpeechRecognizer *This,
  13327         UINT *pctinfo);
  13328 
  13329     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  13330         ISpeechRecognizer *This,
  13331         UINT iTInfo,
  13332         LCID lcid,
  13333         ITypeInfo **ppTInfo);
  13334 
  13335     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  13336         ISpeechRecognizer *This,
  13337         REFIID riid,
  13338         LPOLESTR *rgszNames,
  13339         UINT cNames,
  13340         LCID lcid,
  13341         DISPID *rgDispId);
  13342 
  13343     HRESULT (STDMETHODCALLTYPE *Invoke)(
  13344         ISpeechRecognizer *This,
  13345         DISPID dispIdMember,
  13346         REFIID riid,
  13347         LCID lcid,
  13348         WORD wFlags,
  13349         DISPPARAMS *pDispParams,
  13350         VARIANT *pVarResult,
  13351         EXCEPINFO *pExcepInfo,
  13352         UINT *puArgErr);
  13353 
  13354     /*** ISpeechRecognizer methods ***/
  13355     HRESULT (STDMETHODCALLTYPE *putref_Recognizer)(
  13356         ISpeechRecognizer *This,
  13357         ISpeechObjectToken *Recognizer);
  13358 
  13359     HRESULT (STDMETHODCALLTYPE *get_Recognizer)(
  13360         ISpeechRecognizer *This,
  13361         ISpeechObjectToken **Recognizer);
  13362 
  13363     HRESULT (STDMETHODCALLTYPE *put_AllowAudioInputFormatChangesOnNextSet)(
  13364         ISpeechRecognizer *This,
  13365         VARIANT_BOOL Allow);
  13366 
  13367     HRESULT (STDMETHODCALLTYPE *get_AllowAudioInputFormatChangesOnNextSet)(
  13368         ISpeechRecognizer *This,
  13369         VARIANT_BOOL *Allow);
  13370 
  13371     HRESULT (STDMETHODCALLTYPE *putref_AudioInput)(
  13372         ISpeechRecognizer *This,
  13373         ISpeechObjectToken *AudioInput);
  13374 
  13375     HRESULT (STDMETHODCALLTYPE *get_AudioInput)(
  13376         ISpeechRecognizer *This,
  13377         ISpeechObjectToken **AudioInput);
  13378 
  13379     HRESULT (STDMETHODCALLTYPE *putref_AudioInputStream)(
  13380         ISpeechRecognizer *This,
  13381         ISpeechBaseStream *AudioInputStream);
  13382 
  13383     HRESULT (STDMETHODCALLTYPE *get_AudioInputStream)(
  13384         ISpeechRecognizer *This,
  13385         ISpeechBaseStream **AudioInputStream);
  13386 
  13387     HRESULT (STDMETHODCALLTYPE *get_IsShared)(
  13388         ISpeechRecognizer *This,
  13389         VARIANT_BOOL *Shared);
  13390 
  13391     HRESULT (STDMETHODCALLTYPE *put_State)(
  13392         ISpeechRecognizer *This,
  13393         SpeechRecognizerState State);
  13394 
  13395     HRESULT (STDMETHODCALLTYPE *get_State)(
  13396         ISpeechRecognizer *This,
  13397         SpeechRecognizerState *State);
  13398 
  13399     HRESULT (STDMETHODCALLTYPE *get_Status)(
  13400         ISpeechRecognizer *This,
  13401         ISpeechRecognizerStatus **Status);
  13402 
  13403     HRESULT (STDMETHODCALLTYPE *putref_Profile)(
  13404         ISpeechRecognizer *This,
  13405         ISpeechObjectToken *Profile);
  13406 
  13407     HRESULT (STDMETHODCALLTYPE *get_Profile)(
  13408         ISpeechRecognizer *This,
  13409         ISpeechObjectToken **Profile);
  13410 
  13411     HRESULT (STDMETHODCALLTYPE *EmulateRecognition)(
  13412         ISpeechRecognizer *This,
  13413         VARIANT TextElements,
  13414         VARIANT *ElementDisplayAttributes,
  13415         LONG LanguageId);
  13416 
  13417     HRESULT (STDMETHODCALLTYPE *CreateRecoContext)(
  13418         ISpeechRecognizer *This,
  13419         ISpeechRecoContext **NewContext);
  13420 
  13421     HRESULT (STDMETHODCALLTYPE *GetFormat)(
  13422         ISpeechRecognizer *This,
  13423         SpeechFormatType Type,
  13424         ISpeechAudioFormat **Format);
  13425 
  13426     HRESULT (STDMETHODCALLTYPE *SetPropertyNumber)(
  13427         ISpeechRecognizer *This,
  13428         const BSTR Name,
  13429         LONG Value,
  13430         VARIANT_BOOL *Supported);
  13431 
  13432     HRESULT (STDMETHODCALLTYPE *GetPropertyNumber)(
  13433         ISpeechRecognizer *This,
  13434         const BSTR Name,
  13435         LONG *Value,
  13436         VARIANT_BOOL *Supported);
  13437 
  13438     HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
  13439         ISpeechRecognizer *This,
  13440         const BSTR Name,
  13441         const BSTR Value,
  13442         VARIANT_BOOL *Supported);
  13443 
  13444     HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
  13445         ISpeechRecognizer *This,
  13446         const BSTR Name,
  13447         BSTR *Value,
  13448         VARIANT_BOOL *Supported);
  13449 
  13450     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
  13451         ISpeechRecognizer *This,
  13452         const BSTR TypeOfUI,
  13453         const VARIANT *ExtraData,
  13454         VARIANT_BOOL *Supported);
  13455 
  13456     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
  13457         ISpeechRecognizer *This,
  13458         LONG hWndParent,
  13459         BSTR Title,
  13460         const BSTR TypeOfUI,
  13461         const VARIANT *ExtraData);
  13462 
  13463     HRESULT (STDMETHODCALLTYPE *GetRecognizers)(
  13464         ISpeechRecognizer *This,
  13465         BSTR RequiredAttributes,
  13466         BSTR OptionalAttributes,
  13467         ISpeechObjectTokens **ObjectTokens);
  13468 
  13469     HRESULT (STDMETHODCALLTYPE *GetAudioInputs)(
  13470         ISpeechRecognizer *This,
  13471         BSTR RequiredAttributes,
  13472         BSTR OptionalAttributes,
  13473         ISpeechObjectTokens **ObjectTokens);
  13474 
  13475     HRESULT (STDMETHODCALLTYPE *GetProfiles)(
  13476         ISpeechRecognizer *This,
  13477         BSTR RequiredAttributes,
  13478         BSTR OptionalAttributes,
  13479         ISpeechObjectTokens **ObjectTokens);
  13480 
  13481     END_INTERFACE
  13482 } ISpeechRecognizerVtbl;
  13483 
  13484 interface ISpeechRecognizer {
  13485     CONST_VTBL ISpeechRecognizerVtbl* lpVtbl;
  13486 };
  13487 
  13488 #ifdef COBJMACROS
  13489 #ifndef WIDL_C_INLINE_WRAPPERS
  13490 /*** IUnknown methods ***/
  13491 #define ISpeechRecognizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13492 #define ISpeechRecognizer_AddRef(This) (This)->lpVtbl->AddRef(This)
  13493 #define ISpeechRecognizer_Release(This) (This)->lpVtbl->Release(This)
  13494 /*** IDispatch methods ***/
  13495 #define ISpeechRecognizer_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  13496 #define ISpeechRecognizer_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  13497 #define ISpeechRecognizer_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  13498 #define ISpeechRecognizer_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  13499 /*** ISpeechRecognizer methods ***/
  13500 #define ISpeechRecognizer_putref_Recognizer(This,Recognizer) (This)->lpVtbl->putref_Recognizer(This,Recognizer)
  13501 #define ISpeechRecognizer_get_Recognizer(This,Recognizer) (This)->lpVtbl->get_Recognizer(This,Recognizer)
  13502 #define ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->put_AllowAudioInputFormatChangesOnNextSet(This,Allow)
  13503 #define ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->get_AllowAudioInputFormatChangesOnNextSet(This,Allow)
  13504 #define ISpeechRecognizer_putref_AudioInput(This,AudioInput) (This)->lpVtbl->putref_AudioInput(This,AudioInput)
  13505 #define ISpeechRecognizer_get_AudioInput(This,AudioInput) (This)->lpVtbl->get_AudioInput(This,AudioInput)
  13506 #define ISpeechRecognizer_putref_AudioInputStream(This,AudioInputStream) (This)->lpVtbl->putref_AudioInputStream(This,AudioInputStream)
  13507 #define ISpeechRecognizer_get_AudioInputStream(This,AudioInputStream) (This)->lpVtbl->get_AudioInputStream(This,AudioInputStream)
  13508 #define ISpeechRecognizer_get_IsShared(This,Shared) (This)->lpVtbl->get_IsShared(This,Shared)
  13509 #define ISpeechRecognizer_put_State(This,State) (This)->lpVtbl->put_State(This,State)
  13510 #define ISpeechRecognizer_get_State(This,State) (This)->lpVtbl->get_State(This,State)
  13511 #define ISpeechRecognizer_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
  13512 #define ISpeechRecognizer_putref_Profile(This,Profile) (This)->lpVtbl->putref_Profile(This,Profile)
  13513 #define ISpeechRecognizer_get_Profile(This,Profile) (This)->lpVtbl->get_Profile(This,Profile)
  13514 #define ISpeechRecognizer_EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId) (This)->lpVtbl->EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId)
  13515 #define ISpeechRecognizer_CreateRecoContext(This,NewContext) (This)->lpVtbl->CreateRecoContext(This,NewContext)
  13516 #define ISpeechRecognizer_GetFormat(This,Type,Format) (This)->lpVtbl->GetFormat(This,Type,Format)
  13517 #define ISpeechRecognizer_SetPropertyNumber(This,Name,Value,Supported) (This)->lpVtbl->SetPropertyNumber(This,Name,Value,Supported)
  13518 #define ISpeechRecognizer_GetPropertyNumber(This,Name,Value,Supported) (This)->lpVtbl->GetPropertyNumber(This,Name,Value,Supported)
  13519 #define ISpeechRecognizer_SetPropertyString(This,Name,Value,Supported) (This)->lpVtbl->SetPropertyString(This,Name,Value,Supported)
  13520 #define ISpeechRecognizer_GetPropertyString(This,Name,Value,Supported) (This)->lpVtbl->GetPropertyString(This,Name,Value,Supported)
  13521 #define ISpeechRecognizer_IsUISupported(This,TypeOfUI,ExtraData,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported)
  13522 #define ISpeechRecognizer_DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData) (This)->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData)
  13523 #define ISpeechRecognizer_GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
  13524 #define ISpeechRecognizer_GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
  13525 #define ISpeechRecognizer_GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
  13526 #else
  13527 /*** IUnknown methods ***/
  13528 static inline HRESULT ISpeechRecognizer_QueryInterface(ISpeechRecognizer* This,REFIID riid,void **ppvObject) {
  13529     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  13530 }
  13531 static inline ULONG ISpeechRecognizer_AddRef(ISpeechRecognizer* This) {
  13532     return This->lpVtbl->AddRef(This);
  13533 }
  13534 static inline ULONG ISpeechRecognizer_Release(ISpeechRecognizer* This) {
  13535     return This->lpVtbl->Release(This);
  13536 }
  13537 /*** IDispatch methods ***/
  13538 static inline HRESULT ISpeechRecognizer_GetTypeInfoCount(ISpeechRecognizer* This,UINT *pctinfo) {
  13539     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  13540 }
  13541 static inline HRESULT ISpeechRecognizer_GetTypeInfo(ISpeechRecognizer* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  13542     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  13543 }
  13544 static inline HRESULT ISpeechRecognizer_GetIDsOfNames(ISpeechRecognizer* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  13545     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  13546 }
  13547 static inline HRESULT ISpeechRecognizer_Invoke(ISpeechRecognizer* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  13548     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  13549 }
  13550 /*** ISpeechRecognizer methods ***/
  13551 static inline HRESULT ISpeechRecognizer_putref_Recognizer(ISpeechRecognizer* This,ISpeechObjectToken *Recognizer) {
  13552     return This->lpVtbl->putref_Recognizer(This,Recognizer);
  13553 }
  13554 static inline HRESULT ISpeechRecognizer_get_Recognizer(ISpeechRecognizer* This,ISpeechObjectToken **Recognizer) {
  13555     return This->lpVtbl->get_Recognizer(This,Recognizer);
  13556 }
  13557 static inline HRESULT ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet(ISpeechRecognizer* This,VARIANT_BOOL Allow) {
  13558     return This->lpVtbl->put_AllowAudioInputFormatChangesOnNextSet(This,Allow);
  13559 }
  13560 static inline HRESULT ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet(ISpeechRecognizer* This,VARIANT_BOOL *Allow) {
  13561     return This->lpVtbl->get_AllowAudioInputFormatChangesOnNextSet(This,Allow);
  13562 }
  13563 static inline HRESULT ISpeechRecognizer_putref_AudioInput(ISpeechRecognizer* This,ISpeechObjectToken *AudioInput) {
  13564     return This->lpVtbl->putref_AudioInput(This,AudioInput);
  13565 }
  13566 static inline HRESULT ISpeechRecognizer_get_AudioInput(ISpeechRecognizer* This,ISpeechObjectToken **AudioInput) {
  13567     return This->lpVtbl->get_AudioInput(This,AudioInput);
  13568 }
  13569 static inline HRESULT ISpeechRecognizer_putref_AudioInputStream(ISpeechRecognizer* This,ISpeechBaseStream *AudioInputStream) {
  13570     return This->lpVtbl->putref_AudioInputStream(This,AudioInputStream);
  13571 }
  13572 static inline HRESULT ISpeechRecognizer_get_AudioInputStream(ISpeechRecognizer* This,ISpeechBaseStream **AudioInputStream) {
  13573     return This->lpVtbl->get_AudioInputStream(This,AudioInputStream);
  13574 }
  13575 static inline HRESULT ISpeechRecognizer_get_IsShared(ISpeechRecognizer* This,VARIANT_BOOL *Shared) {
  13576     return This->lpVtbl->get_IsShared(This,Shared);
  13577 }
  13578 static inline HRESULT ISpeechRecognizer_put_State(ISpeechRecognizer* This,SpeechRecognizerState State) {
  13579     return This->lpVtbl->put_State(This,State);
  13580 }
  13581 static inline HRESULT ISpeechRecognizer_get_State(ISpeechRecognizer* This,SpeechRecognizerState *State) {
  13582     return This->lpVtbl->get_State(This,State);
  13583 }
  13584 static inline HRESULT ISpeechRecognizer_get_Status(ISpeechRecognizer* This,ISpeechRecognizerStatus **Status) {
  13585     return This->lpVtbl->get_Status(This,Status);
  13586 }
  13587 static inline HRESULT ISpeechRecognizer_putref_Profile(ISpeechRecognizer* This,ISpeechObjectToken *Profile) {
  13588     return This->lpVtbl->putref_Profile(This,Profile);
  13589 }
  13590 static inline HRESULT ISpeechRecognizer_get_Profile(ISpeechRecognizer* This,ISpeechObjectToken **Profile) {
  13591     return This->lpVtbl->get_Profile(This,Profile);
  13592 }
  13593 static inline HRESULT ISpeechRecognizer_EmulateRecognition(ISpeechRecognizer* This,VARIANT TextElements,VARIANT *ElementDisplayAttributes,LONG LanguageId) {
  13594     return This->lpVtbl->EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId);
  13595 }
  13596 static inline HRESULT ISpeechRecognizer_CreateRecoContext(ISpeechRecognizer* This,ISpeechRecoContext **NewContext) {
  13597     return This->lpVtbl->CreateRecoContext(This,NewContext);
  13598 }
  13599 static inline HRESULT ISpeechRecognizer_GetFormat(ISpeechRecognizer* This,SpeechFormatType Type,ISpeechAudioFormat **Format) {
  13600     return This->lpVtbl->GetFormat(This,Type,Format);
  13601 }
  13602 static inline HRESULT ISpeechRecognizer_SetPropertyNumber(ISpeechRecognizer* This,const BSTR Name,LONG Value,VARIANT_BOOL *Supported) {
  13603     return This->lpVtbl->SetPropertyNumber(This,Name,Value,Supported);
  13604 }
  13605 static inline HRESULT ISpeechRecognizer_GetPropertyNumber(ISpeechRecognizer* This,const BSTR Name,LONG *Value,VARIANT_BOOL *Supported) {
  13606     return This->lpVtbl->GetPropertyNumber(This,Name,Value,Supported);
  13607 }
  13608 static inline HRESULT ISpeechRecognizer_SetPropertyString(ISpeechRecognizer* This,const BSTR Name,const BSTR Value,VARIANT_BOOL *Supported) {
  13609     return This->lpVtbl->SetPropertyString(This,Name,Value,Supported);
  13610 }
  13611 static inline HRESULT ISpeechRecognizer_GetPropertyString(ISpeechRecognizer* This,const BSTR Name,BSTR *Value,VARIANT_BOOL *Supported) {
  13612     return This->lpVtbl->GetPropertyString(This,Name,Value,Supported);
  13613 }
  13614 static inline HRESULT ISpeechRecognizer_IsUISupported(ISpeechRecognizer* This,const BSTR TypeOfUI,const VARIANT *ExtraData,VARIANT_BOOL *Supported) {
  13615     return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported);
  13616 }
  13617 static inline HRESULT ISpeechRecognizer_DisplayUI(ISpeechRecognizer* This,LONG hWndParent,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData) {
  13618     return This->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData);
  13619 }
  13620 static inline HRESULT ISpeechRecognizer_GetRecognizers(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
  13621     return This->lpVtbl->GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
  13622 }
  13623 static inline HRESULT ISpeechRecognizer_GetAudioInputs(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
  13624     return This->lpVtbl->GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
  13625 }
  13626 static inline HRESULT ISpeechRecognizer_GetProfiles(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
  13627     return This->lpVtbl->GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
  13628 }
  13629 #endif
  13630 #endif
  13631 
  13632 #endif
  13633 
  13634 
  13635 #endif  /* __ISpeechRecognizer_INTERFACE_DEFINED__ */
  13636 
  13637 /*****************************************************************************
  13638  * ISpeechRecognizerStatus interface
  13639  */
  13640 #ifndef __ISpeechRecognizerStatus_INTERFACE_DEFINED__
  13641 #define __ISpeechRecognizerStatus_INTERFACE_DEFINED__
  13642 
  13643 DEFINE_GUID(IID_ISpeechRecognizerStatus, 0xbff9e781, 0x53ec, 0x484e, 0xbb,0x8a, 0x0e,0x1b,0x55,0x51,0xe3,0x5c);
  13644 #if defined(__cplusplus) && !defined(CINTERFACE)
  13645 MIDL_INTERFACE("bff9e781-53ec-484e-bb8a-0e1b5551e35c")
  13646 ISpeechRecognizerStatus : public IDispatch
  13647 {
  13648     virtual HRESULT STDMETHODCALLTYPE get_AudioStatus(
  13649         ISpeechAudioStatus **AudioStatus) = 0;
  13650 
  13651     virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamPosition(
  13652         VARIANT *pCurrentStreamPos) = 0;
  13653 
  13654     virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamNumber(
  13655         LONG *StreamNumber) = 0;
  13656 
  13657     virtual HRESULT STDMETHODCALLTYPE get_NumberOfActiveRules(
  13658         LONG *NumberOfActiveRules) = 0;
  13659 
  13660     virtual HRESULT STDMETHODCALLTYPE get_ClsidEngine(
  13661         BSTR *ClsidEngine) = 0;
  13662 
  13663     virtual HRESULT STDMETHODCALLTYPE get_SupportedLanguages(
  13664         VARIANT *SupportedLanguages) = 0;
  13665 
  13666 };
  13667 #ifdef __CRT_UUID_DECL
  13668 __CRT_UUID_DECL(ISpeechRecognizerStatus, 0xbff9e781, 0x53ec, 0x484e, 0xbb,0x8a, 0x0e,0x1b,0x55,0x51,0xe3,0x5c)
  13669 #endif
  13670 #else
  13671 typedef struct ISpeechRecognizerStatusVtbl {
  13672     BEGIN_INTERFACE
  13673 
  13674     /*** IUnknown methods ***/
  13675     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  13676         ISpeechRecognizerStatus *This,
  13677         REFIID riid,
  13678         void **ppvObject);
  13679 
  13680     ULONG (STDMETHODCALLTYPE *AddRef)(
  13681         ISpeechRecognizerStatus *This);
  13682 
  13683     ULONG (STDMETHODCALLTYPE *Release)(
  13684         ISpeechRecognizerStatus *This);
  13685 
  13686     /*** IDispatch methods ***/
  13687     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  13688         ISpeechRecognizerStatus *This,
  13689         UINT *pctinfo);
  13690 
  13691     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  13692         ISpeechRecognizerStatus *This,
  13693         UINT iTInfo,
  13694         LCID lcid,
  13695         ITypeInfo **ppTInfo);
  13696 
  13697     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  13698         ISpeechRecognizerStatus *This,
  13699         REFIID riid,
  13700         LPOLESTR *rgszNames,
  13701         UINT cNames,
  13702         LCID lcid,
  13703         DISPID *rgDispId);
  13704 
  13705     HRESULT (STDMETHODCALLTYPE *Invoke)(
  13706         ISpeechRecognizerStatus *This,
  13707         DISPID dispIdMember,
  13708         REFIID riid,
  13709         LCID lcid,
  13710         WORD wFlags,
  13711         DISPPARAMS *pDispParams,
  13712         VARIANT *pVarResult,
  13713         EXCEPINFO *pExcepInfo,
  13714         UINT *puArgErr);
  13715 
  13716     /*** ISpeechRecognizerStatus methods ***/
  13717     HRESULT (STDMETHODCALLTYPE *get_AudioStatus)(
  13718         ISpeechRecognizerStatus *This,
  13719         ISpeechAudioStatus **AudioStatus);
  13720 
  13721     HRESULT (STDMETHODCALLTYPE *get_CurrentStreamPosition)(
  13722         ISpeechRecognizerStatus *This,
  13723         VARIANT *pCurrentStreamPos);
  13724 
  13725     HRESULT (STDMETHODCALLTYPE *get_CurrentStreamNumber)(
  13726         ISpeechRecognizerStatus *This,
  13727         LONG *StreamNumber);
  13728 
  13729     HRESULT (STDMETHODCALLTYPE *get_NumberOfActiveRules)(
  13730         ISpeechRecognizerStatus *This,
  13731         LONG *NumberOfActiveRules);
  13732 
  13733     HRESULT (STDMETHODCALLTYPE *get_ClsidEngine)(
  13734         ISpeechRecognizerStatus *This,
  13735         BSTR *ClsidEngine);
  13736 
  13737     HRESULT (STDMETHODCALLTYPE *get_SupportedLanguages)(
  13738         ISpeechRecognizerStatus *This,
  13739         VARIANT *SupportedLanguages);
  13740 
  13741     END_INTERFACE
  13742 } ISpeechRecognizerStatusVtbl;
  13743 
  13744 interface ISpeechRecognizerStatus {
  13745     CONST_VTBL ISpeechRecognizerStatusVtbl* lpVtbl;
  13746 };
  13747 
  13748 #ifdef COBJMACROS
  13749 #ifndef WIDL_C_INLINE_WRAPPERS
  13750 /*** IUnknown methods ***/
  13751 #define ISpeechRecognizerStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13752 #define ISpeechRecognizerStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
  13753 #define ISpeechRecognizerStatus_Release(This) (This)->lpVtbl->Release(This)
  13754 /*** IDispatch methods ***/
  13755 #define ISpeechRecognizerStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  13756 #define ISpeechRecognizerStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  13757 #define ISpeechRecognizerStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  13758 #define ISpeechRecognizerStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  13759 /*** ISpeechRecognizerStatus methods ***/
  13760 #define ISpeechRecognizerStatus_get_AudioStatus(This,AudioStatus) (This)->lpVtbl->get_AudioStatus(This,AudioStatus)
  13761 #define ISpeechRecognizerStatus_get_CurrentStreamPosition(This,pCurrentStreamPos) (This)->lpVtbl->get_CurrentStreamPosition(This,pCurrentStreamPos)
  13762 #define ISpeechRecognizerStatus_get_CurrentStreamNumber(This,StreamNumber) (This)->lpVtbl->get_CurrentStreamNumber(This,StreamNumber)
  13763 #define ISpeechRecognizerStatus_get_NumberOfActiveRules(This,NumberOfActiveRules) (This)->lpVtbl->get_NumberOfActiveRules(This,NumberOfActiveRules)
  13764 #define ISpeechRecognizerStatus_get_ClsidEngine(This,ClsidEngine) (This)->lpVtbl->get_ClsidEngine(This,ClsidEngine)
  13765 #define ISpeechRecognizerStatus_get_SupportedLanguages(This,SupportedLanguages) (This)->lpVtbl->get_SupportedLanguages(This,SupportedLanguages)
  13766 #else
  13767 /*** IUnknown methods ***/
  13768 static inline HRESULT ISpeechRecognizerStatus_QueryInterface(ISpeechRecognizerStatus* This,REFIID riid,void **ppvObject) {
  13769     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  13770 }
  13771 static inline ULONG ISpeechRecognizerStatus_AddRef(ISpeechRecognizerStatus* This) {
  13772     return This->lpVtbl->AddRef(This);
  13773 }
  13774 static inline ULONG ISpeechRecognizerStatus_Release(ISpeechRecognizerStatus* This) {
  13775     return This->lpVtbl->Release(This);
  13776 }
  13777 /*** IDispatch methods ***/
  13778 static inline HRESULT ISpeechRecognizerStatus_GetTypeInfoCount(ISpeechRecognizerStatus* This,UINT *pctinfo) {
  13779     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  13780 }
  13781 static inline HRESULT ISpeechRecognizerStatus_GetTypeInfo(ISpeechRecognizerStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  13782     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  13783 }
  13784 static inline HRESULT ISpeechRecognizerStatus_GetIDsOfNames(ISpeechRecognizerStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  13785     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  13786 }
  13787 static inline HRESULT ISpeechRecognizerStatus_Invoke(ISpeechRecognizerStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  13788     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  13789 }
  13790 /*** ISpeechRecognizerStatus methods ***/
  13791 static inline HRESULT ISpeechRecognizerStatus_get_AudioStatus(ISpeechRecognizerStatus* This,ISpeechAudioStatus **AudioStatus) {
  13792     return This->lpVtbl->get_AudioStatus(This,AudioStatus);
  13793 }
  13794 static inline HRESULT ISpeechRecognizerStatus_get_CurrentStreamPosition(ISpeechRecognizerStatus* This,VARIANT *pCurrentStreamPos) {
  13795     return This->lpVtbl->get_CurrentStreamPosition(This,pCurrentStreamPos);
  13796 }
  13797 static inline HRESULT ISpeechRecognizerStatus_get_CurrentStreamNumber(ISpeechRecognizerStatus* This,LONG *StreamNumber) {
  13798     return This->lpVtbl->get_CurrentStreamNumber(This,StreamNumber);
  13799 }
  13800 static inline HRESULT ISpeechRecognizerStatus_get_NumberOfActiveRules(ISpeechRecognizerStatus* This,LONG *NumberOfActiveRules) {
  13801     return This->lpVtbl->get_NumberOfActiveRules(This,NumberOfActiveRules);
  13802 }
  13803 static inline HRESULT ISpeechRecognizerStatus_get_ClsidEngine(ISpeechRecognizerStatus* This,BSTR *ClsidEngine) {
  13804     return This->lpVtbl->get_ClsidEngine(This,ClsidEngine);
  13805 }
  13806 static inline HRESULT ISpeechRecognizerStatus_get_SupportedLanguages(ISpeechRecognizerStatus* This,VARIANT *SupportedLanguages) {
  13807     return This->lpVtbl->get_SupportedLanguages(This,SupportedLanguages);
  13808 }
  13809 #endif
  13810 #endif
  13811 
  13812 #endif
  13813 
  13814 
  13815 #endif  /* __ISpeechRecognizerStatus_INTERFACE_DEFINED__ */
  13816 
  13817 /*****************************************************************************
  13818  * ISpeechRecoContext interface
  13819  */
  13820 #ifndef __ISpeechRecoContext_INTERFACE_DEFINED__
  13821 #define __ISpeechRecoContext_INTERFACE_DEFINED__
  13822 
  13823 DEFINE_GUID(IID_ISpeechRecoContext, 0x580aa49d, 0x7e1e, 0x4809, 0xb8,0xe2, 0x57,0xda,0x80,0x61,0x04,0xb8);
  13824 #if defined(__cplusplus) && !defined(CINTERFACE)
  13825 MIDL_INTERFACE("580aa49d-7e1e-4809-b8e2-57da806104b8")
  13826 ISpeechRecoContext : public IDispatch
  13827 {
  13828     virtual HRESULT STDMETHODCALLTYPE get_Recognizer(
  13829         ISpeechRecognizer **Recognizer) = 0;
  13830 
  13831     virtual HRESULT STDMETHODCALLTYPE get_AudioInputInterferenceStatus(
  13832         SpeechInterference *Interference) = 0;
  13833 
  13834     virtual HRESULT STDMETHODCALLTYPE get_RequestedUIType(
  13835         BSTR *UIType) = 0;
  13836 
  13837     virtual HRESULT STDMETHODCALLTYPE putref_Voice(
  13838         ISpeechVoice *Voice) = 0;
  13839 
  13840     virtual HRESULT STDMETHODCALLTYPE get_Voice(
  13841         ISpeechVoice **Voice) = 0;
  13842 
  13843     virtual HRESULT STDMETHODCALLTYPE put_AllowVoiceFormatMatchingOnNextSet(
  13844         VARIANT_BOOL Allow) = 0;
  13845 
  13846     virtual HRESULT STDMETHODCALLTYPE get_AllowVoiceFormatMatchingOnNextSet(
  13847         VARIANT_BOOL *pAllow) = 0;
  13848 
  13849     virtual HRESULT STDMETHODCALLTYPE put_VoicePurgeEvent(
  13850         SpeechRecoEvents EventInterest) = 0;
  13851 
  13852     virtual HRESULT STDMETHODCALLTYPE get_VoicePurgeEvent(
  13853         SpeechRecoEvents *EventInterest) = 0;
  13854 
  13855     virtual HRESULT STDMETHODCALLTYPE put_EventInterests(
  13856         SpeechRecoEvents EventInterest) = 0;
  13857 
  13858     virtual HRESULT STDMETHODCALLTYPE get_EventInterests(
  13859         SpeechRecoEvents *EventInterest) = 0;
  13860 
  13861     virtual HRESULT STDMETHODCALLTYPE put_CmdMaxAlternates(
  13862         LONG MaxAlternates) = 0;
  13863 
  13864     virtual HRESULT STDMETHODCALLTYPE get_CmdMaxAlternates(
  13865         LONG *MaxAlternates) = 0;
  13866 
  13867     virtual HRESULT STDMETHODCALLTYPE put_State(
  13868         SpeechRecoContextState State) = 0;
  13869 
  13870     virtual HRESULT STDMETHODCALLTYPE get_State(
  13871         SpeechRecoContextState *State) = 0;
  13872 
  13873     virtual HRESULT STDMETHODCALLTYPE put_RetainedAudio(
  13874         SpeechRetainedAudioOptions Option) = 0;
  13875 
  13876     virtual HRESULT STDMETHODCALLTYPE get_RetainedAudio(
  13877         SpeechRetainedAudioOptions *Option) = 0;
  13878 
  13879     virtual HRESULT STDMETHODCALLTYPE putref_RetainedAudioFormat(
  13880         ISpeechAudioFormat *Format) = 0;
  13881 
  13882     virtual HRESULT STDMETHODCALLTYPE get_RetainedAudioFormat(
  13883         ISpeechAudioFormat **Format) = 0;
  13884 
  13885     virtual HRESULT STDMETHODCALLTYPE Pause(
  13886         ) = 0;
  13887 
  13888     virtual HRESULT STDMETHODCALLTYPE Resume(
  13889         ) = 0;
  13890 
  13891     virtual HRESULT STDMETHODCALLTYPE CreateGrammar(
  13892         VARIANT GrammarId,
  13893         ISpeechRecoGrammar **Grammar) = 0;
  13894 
  13895     virtual HRESULT STDMETHODCALLTYPE CreateResultFromMemory(
  13896         VARIANT *ResultBlock,
  13897         ISpeechRecoResult **Result) = 0;
  13898 
  13899     virtual HRESULT STDMETHODCALLTYPE Bookmark(
  13900         SpeechBookmarkOptions Options,
  13901         VARIANT StreamPos,
  13902         VARIANT BookmarkId) = 0;
  13903 
  13904     virtual HRESULT STDMETHODCALLTYPE SetAdaptationData(
  13905         BSTR AdaptationString) = 0;
  13906 
  13907 };
  13908 #ifdef __CRT_UUID_DECL
  13909 __CRT_UUID_DECL(ISpeechRecoContext, 0x580aa49d, 0x7e1e, 0x4809, 0xb8,0xe2, 0x57,0xda,0x80,0x61,0x04,0xb8)
  13910 #endif
  13911 #else
  13912 typedef struct ISpeechRecoContextVtbl {
  13913     BEGIN_INTERFACE
  13914 
  13915     /*** IUnknown methods ***/
  13916     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  13917         ISpeechRecoContext *This,
  13918         REFIID riid,
  13919         void **ppvObject);
  13920 
  13921     ULONG (STDMETHODCALLTYPE *AddRef)(
  13922         ISpeechRecoContext *This);
  13923 
  13924     ULONG (STDMETHODCALLTYPE *Release)(
  13925         ISpeechRecoContext *This);
  13926 
  13927     /*** IDispatch methods ***/
  13928     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  13929         ISpeechRecoContext *This,
  13930         UINT *pctinfo);
  13931 
  13932     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  13933         ISpeechRecoContext *This,
  13934         UINT iTInfo,
  13935         LCID lcid,
  13936         ITypeInfo **ppTInfo);
  13937 
  13938     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  13939         ISpeechRecoContext *This,
  13940         REFIID riid,
  13941         LPOLESTR *rgszNames,
  13942         UINT cNames,
  13943         LCID lcid,
  13944         DISPID *rgDispId);
  13945 
  13946     HRESULT (STDMETHODCALLTYPE *Invoke)(
  13947         ISpeechRecoContext *This,
  13948         DISPID dispIdMember,
  13949         REFIID riid,
  13950         LCID lcid,
  13951         WORD wFlags,
  13952         DISPPARAMS *pDispParams,
  13953         VARIANT *pVarResult,
  13954         EXCEPINFO *pExcepInfo,
  13955         UINT *puArgErr);
  13956 
  13957     /*** ISpeechRecoContext methods ***/
  13958     HRESULT (STDMETHODCALLTYPE *get_Recognizer)(
  13959         ISpeechRecoContext *This,
  13960         ISpeechRecognizer **Recognizer);
  13961 
  13962     HRESULT (STDMETHODCALLTYPE *get_AudioInputInterferenceStatus)(
  13963         ISpeechRecoContext *This,
  13964         SpeechInterference *Interference);
  13965 
  13966     HRESULT (STDMETHODCALLTYPE *get_RequestedUIType)(
  13967         ISpeechRecoContext *This,
  13968         BSTR *UIType);
  13969 
  13970     HRESULT (STDMETHODCALLTYPE *putref_Voice)(
  13971         ISpeechRecoContext *This,
  13972         ISpeechVoice *Voice);
  13973 
  13974     HRESULT (STDMETHODCALLTYPE *get_Voice)(
  13975         ISpeechRecoContext *This,
  13976         ISpeechVoice **Voice);
  13977 
  13978     HRESULT (STDMETHODCALLTYPE *put_AllowVoiceFormatMatchingOnNextSet)(
  13979         ISpeechRecoContext *This,
  13980         VARIANT_BOOL Allow);
  13981 
  13982     HRESULT (STDMETHODCALLTYPE *get_AllowVoiceFormatMatchingOnNextSet)(
  13983         ISpeechRecoContext *This,
  13984         VARIANT_BOOL *pAllow);
  13985 
  13986     HRESULT (STDMETHODCALLTYPE *put_VoicePurgeEvent)(
  13987         ISpeechRecoContext *This,
  13988         SpeechRecoEvents EventInterest);
  13989 
  13990     HRESULT (STDMETHODCALLTYPE *get_VoicePurgeEvent)(
  13991         ISpeechRecoContext *This,
  13992         SpeechRecoEvents *EventInterest);
  13993 
  13994     HRESULT (STDMETHODCALLTYPE *put_EventInterests)(
  13995         ISpeechRecoContext *This,
  13996         SpeechRecoEvents EventInterest);
  13997 
  13998     HRESULT (STDMETHODCALLTYPE *get_EventInterests)(
  13999         ISpeechRecoContext *This,
  14000         SpeechRecoEvents *EventInterest);
  14001 
  14002     HRESULT (STDMETHODCALLTYPE *put_CmdMaxAlternates)(
  14003         ISpeechRecoContext *This,
  14004         LONG MaxAlternates);
  14005 
  14006     HRESULT (STDMETHODCALLTYPE *get_CmdMaxAlternates)(
  14007         ISpeechRecoContext *This,
  14008         LONG *MaxAlternates);
  14009 
  14010     HRESULT (STDMETHODCALLTYPE *put_State)(
  14011         ISpeechRecoContext *This,
  14012         SpeechRecoContextState State);
  14013 
  14014     HRESULT (STDMETHODCALLTYPE *get_State)(
  14015         ISpeechRecoContext *This,
  14016         SpeechRecoContextState *State);
  14017 
  14018     HRESULT (STDMETHODCALLTYPE *put_RetainedAudio)(
  14019         ISpeechRecoContext *This,
  14020         SpeechRetainedAudioOptions Option);
  14021 
  14022     HRESULT (STDMETHODCALLTYPE *get_RetainedAudio)(
  14023         ISpeechRecoContext *This,
  14024         SpeechRetainedAudioOptions *Option);
  14025 
  14026     HRESULT (STDMETHODCALLTYPE *putref_RetainedAudioFormat)(
  14027         ISpeechRecoContext *This,
  14028         ISpeechAudioFormat *Format);
  14029 
  14030     HRESULT (STDMETHODCALLTYPE *get_RetainedAudioFormat)(
  14031         ISpeechRecoContext *This,
  14032         ISpeechAudioFormat **Format);
  14033 
  14034     HRESULT (STDMETHODCALLTYPE *Pause)(
  14035         ISpeechRecoContext *This);
  14036 
  14037     HRESULT (STDMETHODCALLTYPE *Resume)(
  14038         ISpeechRecoContext *This);
  14039 
  14040     HRESULT (STDMETHODCALLTYPE *CreateGrammar)(
  14041         ISpeechRecoContext *This,
  14042         VARIANT GrammarId,
  14043         ISpeechRecoGrammar **Grammar);
  14044 
  14045     HRESULT (STDMETHODCALLTYPE *CreateResultFromMemory)(
  14046         ISpeechRecoContext *This,
  14047         VARIANT *ResultBlock,
  14048         ISpeechRecoResult **Result);
  14049 
  14050     HRESULT (STDMETHODCALLTYPE *Bookmark)(
  14051         ISpeechRecoContext *This,
  14052         SpeechBookmarkOptions Options,
  14053         VARIANT StreamPos,
  14054         VARIANT BookmarkId);
  14055 
  14056     HRESULT (STDMETHODCALLTYPE *SetAdaptationData)(
  14057         ISpeechRecoContext *This,
  14058         BSTR AdaptationString);
  14059 
  14060     END_INTERFACE
  14061 } ISpeechRecoContextVtbl;
  14062 
  14063 interface ISpeechRecoContext {
  14064     CONST_VTBL ISpeechRecoContextVtbl* lpVtbl;
  14065 };
  14066 
  14067 #ifdef COBJMACROS
  14068 #ifndef WIDL_C_INLINE_WRAPPERS
  14069 /*** IUnknown methods ***/
  14070 #define ISpeechRecoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14071 #define ISpeechRecoContext_AddRef(This) (This)->lpVtbl->AddRef(This)
  14072 #define ISpeechRecoContext_Release(This) (This)->lpVtbl->Release(This)
  14073 /*** IDispatch methods ***/
  14074 #define ISpeechRecoContext_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  14075 #define ISpeechRecoContext_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  14076 #define ISpeechRecoContext_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  14077 #define ISpeechRecoContext_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  14078 /*** ISpeechRecoContext methods ***/
  14079 #define ISpeechRecoContext_get_Recognizer(This,Recognizer) (This)->lpVtbl->get_Recognizer(This,Recognizer)
  14080 #define ISpeechRecoContext_get_AudioInputInterferenceStatus(This,Interference) (This)->lpVtbl->get_AudioInputInterferenceStatus(This,Interference)
  14081 #define ISpeechRecoContext_get_RequestedUIType(This,UIType) (This)->lpVtbl->get_RequestedUIType(This,UIType)
  14082 #define ISpeechRecoContext_putref_Voice(This,Voice) (This)->lpVtbl->putref_Voice(This,Voice)
  14083 #define ISpeechRecoContext_get_Voice(This,Voice) (This)->lpVtbl->get_Voice(This,Voice)
  14084 #define ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet(This,Allow) (This)->lpVtbl->put_AllowVoiceFormatMatchingOnNextSet(This,Allow)
  14085 #define ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet(This,pAllow) (This)->lpVtbl->get_AllowVoiceFormatMatchingOnNextSet(This,pAllow)
  14086 #define ISpeechRecoContext_put_VoicePurgeEvent(This,EventInterest) (This)->lpVtbl->put_VoicePurgeEvent(This,EventInterest)
  14087 #define ISpeechRecoContext_get_VoicePurgeEvent(This,EventInterest) (This)->lpVtbl->get_VoicePurgeEvent(This,EventInterest)
  14088 #define ISpeechRecoContext_put_EventInterests(This,EventInterest) (This)->lpVtbl->put_EventInterests(This,EventInterest)
  14089 #define ISpeechRecoContext_get_EventInterests(This,EventInterest) (This)->lpVtbl->get_EventInterests(This,EventInterest)
  14090 #define ISpeechRecoContext_put_CmdMaxAlternates(This,MaxAlternates) (This)->lpVtbl->put_CmdMaxAlternates(This,MaxAlternates)
  14091 #define ISpeechRecoContext_get_CmdMaxAlternates(This,MaxAlternates) (This)->lpVtbl->get_CmdMaxAlternates(This,MaxAlternates)
  14092 #define ISpeechRecoContext_put_State(This,State) (This)->lpVtbl->put_State(This,State)
  14093 #define ISpeechRecoContext_get_State(This,State) (This)->lpVtbl->get_State(This,State)
  14094 #define ISpeechRecoContext_put_RetainedAudio(This,Option) (This)->lpVtbl->put_RetainedAudio(This,Option)
  14095 #define ISpeechRecoContext_get_RetainedAudio(This,Option) (This)->lpVtbl->get_RetainedAudio(This,Option)
  14096 #define ISpeechRecoContext_putref_RetainedAudioFormat(This,Format) (This)->lpVtbl->putref_RetainedAudioFormat(This,Format)
  14097 #define ISpeechRecoContext_get_RetainedAudioFormat(This,Format) (This)->lpVtbl->get_RetainedAudioFormat(This,Format)
  14098 #define ISpeechRecoContext_Pause(This) (This)->lpVtbl->Pause(This)
  14099 #define ISpeechRecoContext_Resume(This) (This)->lpVtbl->Resume(This)
  14100 #define ISpeechRecoContext_CreateGrammar(This,GrammarId,Grammar) (This)->lpVtbl->CreateGrammar(This,GrammarId,Grammar)
  14101 #define ISpeechRecoContext_CreateResultFromMemory(This,ResultBlock,Result) (This)->lpVtbl->CreateResultFromMemory(This,ResultBlock,Result)
  14102 #define ISpeechRecoContext_Bookmark(This,Options,StreamPos,BookmarkId) (This)->lpVtbl->Bookmark(This,Options,StreamPos,BookmarkId)
  14103 #define ISpeechRecoContext_SetAdaptationData(This,AdaptationString) (This)->lpVtbl->SetAdaptationData(This,AdaptationString)
  14104 #else
  14105 /*** IUnknown methods ***/
  14106 static inline HRESULT ISpeechRecoContext_QueryInterface(ISpeechRecoContext* This,REFIID riid,void **ppvObject) {
  14107     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  14108 }
  14109 static inline ULONG ISpeechRecoContext_AddRef(ISpeechRecoContext* This) {
  14110     return This->lpVtbl->AddRef(This);
  14111 }
  14112 static inline ULONG ISpeechRecoContext_Release(ISpeechRecoContext* This) {
  14113     return This->lpVtbl->Release(This);
  14114 }
  14115 /*** IDispatch methods ***/
  14116 static inline HRESULT ISpeechRecoContext_GetTypeInfoCount(ISpeechRecoContext* This,UINT *pctinfo) {
  14117     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  14118 }
  14119 static inline HRESULT ISpeechRecoContext_GetTypeInfo(ISpeechRecoContext* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  14120     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  14121 }
  14122 static inline HRESULT ISpeechRecoContext_GetIDsOfNames(ISpeechRecoContext* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  14123     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  14124 }
  14125 static inline HRESULT ISpeechRecoContext_Invoke(ISpeechRecoContext* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  14126     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  14127 }
  14128 /*** ISpeechRecoContext methods ***/
  14129 static inline HRESULT ISpeechRecoContext_get_Recognizer(ISpeechRecoContext* This,ISpeechRecognizer **Recognizer) {
  14130     return This->lpVtbl->get_Recognizer(This,Recognizer);
  14131 }
  14132 static inline HRESULT ISpeechRecoContext_get_AudioInputInterferenceStatus(ISpeechRecoContext* This,SpeechInterference *Interference) {
  14133     return This->lpVtbl->get_AudioInputInterferenceStatus(This,Interference);
  14134 }
  14135 static inline HRESULT ISpeechRecoContext_get_RequestedUIType(ISpeechRecoContext* This,BSTR *UIType) {
  14136     return This->lpVtbl->get_RequestedUIType(This,UIType);
  14137 }
  14138 static inline HRESULT ISpeechRecoContext_putref_Voice(ISpeechRecoContext* This,ISpeechVoice *Voice) {
  14139     return This->lpVtbl->putref_Voice(This,Voice);
  14140 }
  14141 static inline HRESULT ISpeechRecoContext_get_Voice(ISpeechRecoContext* This,ISpeechVoice **Voice) {
  14142     return This->lpVtbl->get_Voice(This,Voice);
  14143 }
  14144 static inline HRESULT ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet(ISpeechRecoContext* This,VARIANT_BOOL Allow) {
  14145     return This->lpVtbl->put_AllowVoiceFormatMatchingOnNextSet(This,Allow);
  14146 }
  14147 static inline HRESULT ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet(ISpeechRecoContext* This,VARIANT_BOOL *pAllow) {
  14148     return This->lpVtbl->get_AllowVoiceFormatMatchingOnNextSet(This,pAllow);
  14149 }
  14150 static inline HRESULT ISpeechRecoContext_put_VoicePurgeEvent(ISpeechRecoContext* This,SpeechRecoEvents EventInterest) {
  14151     return This->lpVtbl->put_VoicePurgeEvent(This,EventInterest);
  14152 }
  14153 static inline HRESULT ISpeechRecoContext_get_VoicePurgeEvent(ISpeechRecoContext* This,SpeechRecoEvents *EventInterest) {
  14154     return This->lpVtbl->get_VoicePurgeEvent(This,EventInterest);
  14155 }
  14156 static inline HRESULT ISpeechRecoContext_put_EventInterests(ISpeechRecoContext* This,SpeechRecoEvents EventInterest) {
  14157     return This->lpVtbl->put_EventInterests(This,EventInterest);
  14158 }
  14159 static inline HRESULT ISpeechRecoContext_get_EventInterests(ISpeechRecoContext* This,SpeechRecoEvents *EventInterest) {
  14160     return This->lpVtbl->get_EventInterests(This,EventInterest);
  14161 }
  14162 static inline HRESULT ISpeechRecoContext_put_CmdMaxAlternates(ISpeechRecoContext* This,LONG MaxAlternates) {
  14163     return This->lpVtbl->put_CmdMaxAlternates(This,MaxAlternates);
  14164 }
  14165 static inline HRESULT ISpeechRecoContext_get_CmdMaxAlternates(ISpeechRecoContext* This,LONG *MaxAlternates) {
  14166     return This->lpVtbl->get_CmdMaxAlternates(This,MaxAlternates);
  14167 }
  14168 static inline HRESULT ISpeechRecoContext_put_State(ISpeechRecoContext* This,SpeechRecoContextState State) {
  14169     return This->lpVtbl->put_State(This,State);
  14170 }
  14171 static inline HRESULT ISpeechRecoContext_get_State(ISpeechRecoContext* This,SpeechRecoContextState *State) {
  14172     return This->lpVtbl->get_State(This,State);
  14173 }
  14174 static inline HRESULT ISpeechRecoContext_put_RetainedAudio(ISpeechRecoContext* This,SpeechRetainedAudioOptions Option) {
  14175     return This->lpVtbl->put_RetainedAudio(This,Option);
  14176 }
  14177 static inline HRESULT ISpeechRecoContext_get_RetainedAudio(ISpeechRecoContext* This,SpeechRetainedAudioOptions *Option) {
  14178     return This->lpVtbl->get_RetainedAudio(This,Option);
  14179 }
  14180 static inline HRESULT ISpeechRecoContext_putref_RetainedAudioFormat(ISpeechRecoContext* This,ISpeechAudioFormat *Format) {
  14181     return This->lpVtbl->putref_RetainedAudioFormat(This,Format);
  14182 }
  14183 static inline HRESULT ISpeechRecoContext_get_RetainedAudioFormat(ISpeechRecoContext* This,ISpeechAudioFormat **Format) {
  14184     return This->lpVtbl->get_RetainedAudioFormat(This,Format);
  14185 }
  14186 static inline HRESULT ISpeechRecoContext_Pause(ISpeechRecoContext* This) {
  14187     return This->lpVtbl->Pause(This);
  14188 }
  14189 static inline HRESULT ISpeechRecoContext_Resume(ISpeechRecoContext* This) {
  14190     return This->lpVtbl->Resume(This);
  14191 }
  14192 static inline HRESULT ISpeechRecoContext_CreateGrammar(ISpeechRecoContext* This,VARIANT GrammarId,ISpeechRecoGrammar **Grammar) {
  14193     return This->lpVtbl->CreateGrammar(This,GrammarId,Grammar);
  14194 }
  14195 static inline HRESULT ISpeechRecoContext_CreateResultFromMemory(ISpeechRecoContext* This,VARIANT *ResultBlock,ISpeechRecoResult **Result) {
  14196     return This->lpVtbl->CreateResultFromMemory(This,ResultBlock,Result);
  14197 }
  14198 static inline HRESULT ISpeechRecoContext_Bookmark(ISpeechRecoContext* This,SpeechBookmarkOptions Options,VARIANT StreamPos,VARIANT BookmarkId) {
  14199     return This->lpVtbl->Bookmark(This,Options,StreamPos,BookmarkId);
  14200 }
  14201 static inline HRESULT ISpeechRecoContext_SetAdaptationData(ISpeechRecoContext* This,BSTR AdaptationString) {
  14202     return This->lpVtbl->SetAdaptationData(This,AdaptationString);
  14203 }
  14204 #endif
  14205 #endif
  14206 
  14207 #endif
  14208 
  14209 
  14210 #endif  /* __ISpeechRecoContext_INTERFACE_DEFINED__ */
  14211 
  14212 /*****************************************************************************
  14213  * ISpeechRecoGrammar interface
  14214  */
  14215 #ifndef __ISpeechRecoGrammar_INTERFACE_DEFINED__
  14216 #define __ISpeechRecoGrammar_INTERFACE_DEFINED__
  14217 
  14218 DEFINE_GUID(IID_ISpeechRecoGrammar, 0xb6d6f79f, 0x2158, 0x4e50, 0xb5,0xbc, 0x9a,0x9c,0xcd,0x85,0x2a,0x09);
  14219 #if defined(__cplusplus) && !defined(CINTERFACE)
  14220 MIDL_INTERFACE("b6d6f79f-2158-4e50-b5bc-9a9ccd852a09")
  14221 ISpeechRecoGrammar : public IDispatch
  14222 {
  14223     virtual HRESULT STDMETHODCALLTYPE get_Id(
  14224         VARIANT *Id) = 0;
  14225 
  14226     virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
  14227         ISpeechRecoContext **RecoContext) = 0;
  14228 
  14229     virtual HRESULT STDMETHODCALLTYPE put_State(
  14230         SpeechGrammarState State) = 0;
  14231 
  14232     virtual HRESULT STDMETHODCALLTYPE get_State(
  14233         SpeechGrammarState *State) = 0;
  14234 
  14235     virtual HRESULT STDMETHODCALLTYPE get_Rules(
  14236         ISpeechGrammarRules **Rules) = 0;
  14237 
  14238     virtual HRESULT STDMETHODCALLTYPE Reset(
  14239         SpeechLanguageId NewLanguage = 0) = 0;
  14240 
  14241     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromFile(
  14242         const BSTR FileName,
  14243         SpeechLoadOption LoadOption = SLOStatic) = 0;
  14244 
  14245     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromObject(
  14246         const BSTR ClassId,
  14247         const BSTR GrammarName,
  14248         SpeechLoadOption LoadOption = SLOStatic) = 0;
  14249 
  14250     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromResource(
  14251         LONG hModule,
  14252         VARIANT ResourceName,
  14253         VARIANT ResourceType,
  14254         SpeechLanguageId LanguageId,
  14255         SpeechLoadOption LoadOption = SLOStatic) = 0;
  14256 
  14257     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromMemory(
  14258         VARIANT GrammarData,
  14259         SpeechLoadOption LoadOption = SLOStatic) = 0;
  14260 
  14261     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromProprietaryGrammar(
  14262         const BSTR ProprietaryGuid,
  14263         const BSTR ProprietaryString,
  14264         VARIANT ProprietaryData,
  14265         SpeechLoadOption LoadOption = SLOStatic) = 0;
  14266 
  14267     virtual HRESULT STDMETHODCALLTYPE CmdSetRuleState(
  14268         const BSTR Name,
  14269         SpeechRuleState State) = 0;
  14270 
  14271     virtual HRESULT STDMETHODCALLTYPE CmdSetRuleIdState(
  14272         LONG RuleId,
  14273         SpeechRuleState State) = 0;
  14274 
  14275     virtual HRESULT STDMETHODCALLTYPE DictationLoad(
  14276         const BSTR TopicName = L"",
  14277         SpeechLoadOption LoadOption = SLOStatic) = 0;
  14278 
  14279     virtual HRESULT STDMETHODCALLTYPE DictationUnload(
  14280         ) = 0;
  14281 
  14282     virtual HRESULT STDMETHODCALLTYPE DictationSetState(
  14283         SpeechRuleState State) = 0;
  14284 
  14285     virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData(
  14286         const BSTR Text,
  14287         LONG TextLength,
  14288         ISpeechTextSelectionInformation *Info) = 0;
  14289 
  14290     virtual HRESULT STDMETHODCALLTYPE SetTextSelection(
  14291         ISpeechTextSelectionInformation *Info) = 0;
  14292 
  14293     virtual HRESULT STDMETHODCALLTYPE IsPronounceable(
  14294         const BSTR Word,
  14295         SpeechWordPronounceable *WordPronounceable) = 0;
  14296 
  14297 };
  14298 #ifdef __CRT_UUID_DECL
  14299 __CRT_UUID_DECL(ISpeechRecoGrammar, 0xb6d6f79f, 0x2158, 0x4e50, 0xb5,0xbc, 0x9a,0x9c,0xcd,0x85,0x2a,0x09)
  14300 #endif
  14301 #else
  14302 typedef struct ISpeechRecoGrammarVtbl {
  14303     BEGIN_INTERFACE
  14304 
  14305     /*** IUnknown methods ***/
  14306     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  14307         ISpeechRecoGrammar *This,
  14308         REFIID riid,
  14309         void **ppvObject);
  14310 
  14311     ULONG (STDMETHODCALLTYPE *AddRef)(
  14312         ISpeechRecoGrammar *This);
  14313 
  14314     ULONG (STDMETHODCALLTYPE *Release)(
  14315         ISpeechRecoGrammar *This);
  14316 
  14317     /*** IDispatch methods ***/
  14318     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  14319         ISpeechRecoGrammar *This,
  14320         UINT *pctinfo);
  14321 
  14322     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  14323         ISpeechRecoGrammar *This,
  14324         UINT iTInfo,
  14325         LCID lcid,
  14326         ITypeInfo **ppTInfo);
  14327 
  14328     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  14329         ISpeechRecoGrammar *This,
  14330         REFIID riid,
  14331         LPOLESTR *rgszNames,
  14332         UINT cNames,
  14333         LCID lcid,
  14334         DISPID *rgDispId);
  14335 
  14336     HRESULT (STDMETHODCALLTYPE *Invoke)(
  14337         ISpeechRecoGrammar *This,
  14338         DISPID dispIdMember,
  14339         REFIID riid,
  14340         LCID lcid,
  14341         WORD wFlags,
  14342         DISPPARAMS *pDispParams,
  14343         VARIANT *pVarResult,
  14344         EXCEPINFO *pExcepInfo,
  14345         UINT *puArgErr);
  14346 
  14347     /*** ISpeechRecoGrammar methods ***/
  14348     HRESULT (STDMETHODCALLTYPE *get_Id)(
  14349         ISpeechRecoGrammar *This,
  14350         VARIANT *Id);
  14351 
  14352     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
  14353         ISpeechRecoGrammar *This,
  14354         ISpeechRecoContext **RecoContext);
  14355 
  14356     HRESULT (STDMETHODCALLTYPE *put_State)(
  14357         ISpeechRecoGrammar *This,
  14358         SpeechGrammarState State);
  14359 
  14360     HRESULT (STDMETHODCALLTYPE *get_State)(
  14361         ISpeechRecoGrammar *This,
  14362         SpeechGrammarState *State);
  14363 
  14364     HRESULT (STDMETHODCALLTYPE *get_Rules)(
  14365         ISpeechRecoGrammar *This,
  14366         ISpeechGrammarRules **Rules);
  14367 
  14368     HRESULT (STDMETHODCALLTYPE *Reset)(
  14369         ISpeechRecoGrammar *This,
  14370         SpeechLanguageId NewLanguage);
  14371 
  14372     HRESULT (STDMETHODCALLTYPE *CmdLoadFromFile)(
  14373         ISpeechRecoGrammar *This,
  14374         const BSTR FileName,
  14375         SpeechLoadOption LoadOption);
  14376 
  14377     HRESULT (STDMETHODCALLTYPE *CmdLoadFromObject)(
  14378         ISpeechRecoGrammar *This,
  14379         const BSTR ClassId,
  14380         const BSTR GrammarName,
  14381         SpeechLoadOption LoadOption);
  14382 
  14383     HRESULT (STDMETHODCALLTYPE *CmdLoadFromResource)(
  14384         ISpeechRecoGrammar *This,
  14385         LONG hModule,
  14386         VARIANT ResourceName,
  14387         VARIANT ResourceType,
  14388         SpeechLanguageId LanguageId,
  14389         SpeechLoadOption LoadOption);
  14390 
  14391     HRESULT (STDMETHODCALLTYPE *CmdLoadFromMemory)(
  14392         ISpeechRecoGrammar *This,
  14393         VARIANT GrammarData,
  14394         SpeechLoadOption LoadOption);
  14395 
  14396     HRESULT (STDMETHODCALLTYPE *CmdLoadFromProprietaryGrammar)(
  14397         ISpeechRecoGrammar *This,
  14398         const BSTR ProprietaryGuid,
  14399         const BSTR ProprietaryString,
  14400         VARIANT ProprietaryData,
  14401         SpeechLoadOption LoadOption);
  14402 
  14403     HRESULT (STDMETHODCALLTYPE *CmdSetRuleState)(
  14404         ISpeechRecoGrammar *This,
  14405         const BSTR Name,
  14406         SpeechRuleState State);
  14407 
  14408     HRESULT (STDMETHODCALLTYPE *CmdSetRuleIdState)(
  14409         ISpeechRecoGrammar *This,
  14410         LONG RuleId,
  14411         SpeechRuleState State);
  14412 
  14413     HRESULT (STDMETHODCALLTYPE *DictationLoad)(
  14414         ISpeechRecoGrammar *This,
  14415         const BSTR TopicName,
  14416         SpeechLoadOption LoadOption);
  14417 
  14418     HRESULT (STDMETHODCALLTYPE *DictationUnload)(
  14419         ISpeechRecoGrammar *This);
  14420 
  14421     HRESULT (STDMETHODCALLTYPE *DictationSetState)(
  14422         ISpeechRecoGrammar *This,
  14423         SpeechRuleState State);
  14424 
  14425     HRESULT (STDMETHODCALLTYPE *SetWordSequenceData)(
  14426         ISpeechRecoGrammar *This,
  14427         const BSTR Text,
  14428         LONG TextLength,
  14429         ISpeechTextSelectionInformation *Info);
  14430 
  14431     HRESULT (STDMETHODCALLTYPE *SetTextSelection)(
  14432         ISpeechRecoGrammar *This,
  14433         ISpeechTextSelectionInformation *Info);
  14434 
  14435     HRESULT (STDMETHODCALLTYPE *IsPronounceable)(
  14436         ISpeechRecoGrammar *This,
  14437         const BSTR Word,
  14438         SpeechWordPronounceable *WordPronounceable);
  14439 
  14440     END_INTERFACE
  14441 } ISpeechRecoGrammarVtbl;
  14442 
  14443 interface ISpeechRecoGrammar {
  14444     CONST_VTBL ISpeechRecoGrammarVtbl* lpVtbl;
  14445 };
  14446 
  14447 #ifdef COBJMACROS
  14448 #ifndef WIDL_C_INLINE_WRAPPERS
  14449 /*** IUnknown methods ***/
  14450 #define ISpeechRecoGrammar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14451 #define ISpeechRecoGrammar_AddRef(This) (This)->lpVtbl->AddRef(This)
  14452 #define ISpeechRecoGrammar_Release(This) (This)->lpVtbl->Release(This)
  14453 /*** IDispatch methods ***/
  14454 #define ISpeechRecoGrammar_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  14455 #define ISpeechRecoGrammar_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  14456 #define ISpeechRecoGrammar_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  14457 #define ISpeechRecoGrammar_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  14458 /*** ISpeechRecoGrammar methods ***/
  14459 #define ISpeechRecoGrammar_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
  14460 #define ISpeechRecoGrammar_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
  14461 #define ISpeechRecoGrammar_put_State(This,State) (This)->lpVtbl->put_State(This,State)
  14462 #define ISpeechRecoGrammar_get_State(This,State) (This)->lpVtbl->get_State(This,State)
  14463 #define ISpeechRecoGrammar_get_Rules(This,Rules) (This)->lpVtbl->get_Rules(This,Rules)
  14464 #define ISpeechRecoGrammar_Reset(This,NewLanguage) (This)->lpVtbl->Reset(This,NewLanguage)
  14465 #define ISpeechRecoGrammar_CmdLoadFromFile(This,FileName,LoadOption) (This)->lpVtbl->CmdLoadFromFile(This,FileName,LoadOption)
  14466 #define ISpeechRecoGrammar_CmdLoadFromObject(This,ClassId,GrammarName,LoadOption) (This)->lpVtbl->CmdLoadFromObject(This,ClassId,GrammarName,LoadOption)
  14467 #define ISpeechRecoGrammar_CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption) (This)->lpVtbl->CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption)
  14468 #define ISpeechRecoGrammar_CmdLoadFromMemory(This,GrammarData,LoadOption) (This)->lpVtbl->CmdLoadFromMemory(This,GrammarData,LoadOption)
  14469 #define ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption) (This)->lpVtbl->CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption)
  14470 #define ISpeechRecoGrammar_CmdSetRuleState(This,Name,State) (This)->lpVtbl->CmdSetRuleState(This,Name,State)
  14471 #define ISpeechRecoGrammar_CmdSetRuleIdState(This,RuleId,State) (This)->lpVtbl->CmdSetRuleIdState(This,RuleId,State)
  14472 #define ISpeechRecoGrammar_DictationLoad(This,TopicName,LoadOption) (This)->lpVtbl->DictationLoad(This,TopicName,LoadOption)
  14473 #define ISpeechRecoGrammar_DictationUnload(This) (This)->lpVtbl->DictationUnload(This)
  14474 #define ISpeechRecoGrammar_DictationSetState(This,State) (This)->lpVtbl->DictationSetState(This,State)
  14475 #define ISpeechRecoGrammar_SetWordSequenceData(This,Text,TextLength,Info) (This)->lpVtbl->SetWordSequenceData(This,Text,TextLength,Info)
  14476 #define ISpeechRecoGrammar_SetTextSelection(This,Info) (This)->lpVtbl->SetTextSelection(This,Info)
  14477 #define ISpeechRecoGrammar_IsPronounceable(This,Word,WordPronounceable) (This)->lpVtbl->IsPronounceable(This,Word,WordPronounceable)
  14478 #else
  14479 /*** IUnknown methods ***/
  14480 static inline HRESULT ISpeechRecoGrammar_QueryInterface(ISpeechRecoGrammar* This,REFIID riid,void **ppvObject) {
  14481     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  14482 }
  14483 static inline ULONG ISpeechRecoGrammar_AddRef(ISpeechRecoGrammar* This) {
  14484     return This->lpVtbl->AddRef(This);
  14485 }
  14486 static inline ULONG ISpeechRecoGrammar_Release(ISpeechRecoGrammar* This) {
  14487     return This->lpVtbl->Release(This);
  14488 }
  14489 /*** IDispatch methods ***/
  14490 static inline HRESULT ISpeechRecoGrammar_GetTypeInfoCount(ISpeechRecoGrammar* This,UINT *pctinfo) {
  14491     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  14492 }
  14493 static inline HRESULT ISpeechRecoGrammar_GetTypeInfo(ISpeechRecoGrammar* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  14494     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  14495 }
  14496 static inline HRESULT ISpeechRecoGrammar_GetIDsOfNames(ISpeechRecoGrammar* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  14497     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  14498 }
  14499 static inline HRESULT ISpeechRecoGrammar_Invoke(ISpeechRecoGrammar* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  14500     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  14501 }
  14502 /*** ISpeechRecoGrammar methods ***/
  14503 static inline HRESULT ISpeechRecoGrammar_get_Id(ISpeechRecoGrammar* This,VARIANT *Id) {
  14504     return This->lpVtbl->get_Id(This,Id);
  14505 }
  14506 static inline HRESULT ISpeechRecoGrammar_get_RecoContext(ISpeechRecoGrammar* This,ISpeechRecoContext **RecoContext) {
  14507     return This->lpVtbl->get_RecoContext(This,RecoContext);
  14508 }
  14509 static inline HRESULT ISpeechRecoGrammar_put_State(ISpeechRecoGrammar* This,SpeechGrammarState State) {
  14510     return This->lpVtbl->put_State(This,State);
  14511 }
  14512 static inline HRESULT ISpeechRecoGrammar_get_State(ISpeechRecoGrammar* This,SpeechGrammarState *State) {
  14513     return This->lpVtbl->get_State(This,State);
  14514 }
  14515 static inline HRESULT ISpeechRecoGrammar_get_Rules(ISpeechRecoGrammar* This,ISpeechGrammarRules **Rules) {
  14516     return This->lpVtbl->get_Rules(This,Rules);
  14517 }
  14518 static inline HRESULT ISpeechRecoGrammar_Reset(ISpeechRecoGrammar* This,SpeechLanguageId NewLanguage) {
  14519     return This->lpVtbl->Reset(This,NewLanguage);
  14520 }
  14521 static inline HRESULT ISpeechRecoGrammar_CmdLoadFromFile(ISpeechRecoGrammar* This,const BSTR FileName,SpeechLoadOption LoadOption) {
  14522     return This->lpVtbl->CmdLoadFromFile(This,FileName,LoadOption);
  14523 }
  14524 static inline HRESULT ISpeechRecoGrammar_CmdLoadFromObject(ISpeechRecoGrammar* This,const BSTR ClassId,const BSTR GrammarName,SpeechLoadOption LoadOption) {
  14525     return This->lpVtbl->CmdLoadFromObject(This,ClassId,GrammarName,LoadOption);
  14526 }
  14527 static inline HRESULT ISpeechRecoGrammar_CmdLoadFromResource(ISpeechRecoGrammar* This,LONG hModule,VARIANT ResourceName,VARIANT ResourceType,SpeechLanguageId LanguageId,SpeechLoadOption LoadOption) {
  14528     return This->lpVtbl->CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption);
  14529 }
  14530 static inline HRESULT ISpeechRecoGrammar_CmdLoadFromMemory(ISpeechRecoGrammar* This,VARIANT GrammarData,SpeechLoadOption LoadOption) {
  14531     return This->lpVtbl->CmdLoadFromMemory(This,GrammarData,LoadOption);
  14532 }
  14533 static inline HRESULT ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar(ISpeechRecoGrammar* This,const BSTR ProprietaryGuid,const BSTR ProprietaryString,VARIANT ProprietaryData,SpeechLoadOption LoadOption) {
  14534     return This->lpVtbl->CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption);
  14535 }
  14536 static inline HRESULT ISpeechRecoGrammar_CmdSetRuleState(ISpeechRecoGrammar* This,const BSTR Name,SpeechRuleState State) {
  14537     return This->lpVtbl->CmdSetRuleState(This,Name,State);
  14538 }
  14539 static inline HRESULT ISpeechRecoGrammar_CmdSetRuleIdState(ISpeechRecoGrammar* This,LONG RuleId,SpeechRuleState State) {
  14540     return This->lpVtbl->CmdSetRuleIdState(This,RuleId,State);
  14541 }
  14542 static inline HRESULT ISpeechRecoGrammar_DictationLoad(ISpeechRecoGrammar* This,const BSTR TopicName,SpeechLoadOption LoadOption) {
  14543     return This->lpVtbl->DictationLoad(This,TopicName,LoadOption);
  14544 }
  14545 static inline HRESULT ISpeechRecoGrammar_DictationUnload(ISpeechRecoGrammar* This) {
  14546     return This->lpVtbl->DictationUnload(This);
  14547 }
  14548 static inline HRESULT ISpeechRecoGrammar_DictationSetState(ISpeechRecoGrammar* This,SpeechRuleState State) {
  14549     return This->lpVtbl->DictationSetState(This,State);
  14550 }
  14551 static inline HRESULT ISpeechRecoGrammar_SetWordSequenceData(ISpeechRecoGrammar* This,const BSTR Text,LONG TextLength,ISpeechTextSelectionInformation *Info) {
  14552     return This->lpVtbl->SetWordSequenceData(This,Text,TextLength,Info);
  14553 }
  14554 static inline HRESULT ISpeechRecoGrammar_SetTextSelection(ISpeechRecoGrammar* This,ISpeechTextSelectionInformation *Info) {
  14555     return This->lpVtbl->SetTextSelection(This,Info);
  14556 }
  14557 static inline HRESULT ISpeechRecoGrammar_IsPronounceable(ISpeechRecoGrammar* This,const BSTR Word,SpeechWordPronounceable *WordPronounceable) {
  14558     return This->lpVtbl->IsPronounceable(This,Word,WordPronounceable);
  14559 }
  14560 #endif
  14561 #endif
  14562 
  14563 #endif
  14564 
  14565 
  14566 #endif  /* __ISpeechRecoGrammar_INTERFACE_DEFINED__ */
  14567 
  14568 /*****************************************************************************
  14569  * _ISpeechRecoContextEvents dispinterface
  14570  */
  14571 #ifndef ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__
  14572 #define ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__
  14573 
  14574 DEFINE_GUID(DIID__ISpeechRecoContextEvents, 0x7b8fcb42, 0x0e9d, 0x4f00, 0xa0,0x48, 0x7b,0x04,0xd6,0x17,0x9d,0x3d);
  14575 #if defined(__cplusplus) && !defined(CINTERFACE)
  14576 MIDL_INTERFACE("7b8fcb42-0e9d-4f00-a048-7b04d6179d3d")
  14577 _ISpeechRecoContextEvents : public IDispatch
  14578 {
  14579 };
  14580 #ifdef __CRT_UUID_DECL
  14581 __CRT_UUID_DECL(_ISpeechRecoContextEvents, 0x7b8fcb42, 0x0e9d, 0x4f00, 0xa0,0x48, 0x7b,0x04,0xd6,0x17,0x9d,0x3d)
  14582 #endif
  14583 #else
  14584 typedef struct _ISpeechRecoContextEventsVtbl {
  14585     BEGIN_INTERFACE
  14586 
  14587     /*** IUnknown methods ***/
  14588     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  14589         _ISpeechRecoContextEvents *This,
  14590         REFIID riid,
  14591         void **ppvObject);
  14592 
  14593     ULONG (STDMETHODCALLTYPE *AddRef)(
  14594         _ISpeechRecoContextEvents *This);
  14595 
  14596     ULONG (STDMETHODCALLTYPE *Release)(
  14597         _ISpeechRecoContextEvents *This);
  14598 
  14599     /*** IDispatch methods ***/
  14600     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  14601         _ISpeechRecoContextEvents *This,
  14602         UINT *pctinfo);
  14603 
  14604     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  14605         _ISpeechRecoContextEvents *This,
  14606         UINT iTInfo,
  14607         LCID lcid,
  14608         ITypeInfo **ppTInfo);
  14609 
  14610     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  14611         _ISpeechRecoContextEvents *This,
  14612         REFIID riid,
  14613         LPOLESTR *rgszNames,
  14614         UINT cNames,
  14615         LCID lcid,
  14616         DISPID *rgDispId);
  14617 
  14618     HRESULT (STDMETHODCALLTYPE *Invoke)(
  14619         _ISpeechRecoContextEvents *This,
  14620         DISPID dispIdMember,
  14621         REFIID riid,
  14622         LCID lcid,
  14623         WORD wFlags,
  14624         DISPPARAMS *pDispParams,
  14625         VARIANT *pVarResult,
  14626         EXCEPINFO *pExcepInfo,
  14627         UINT *puArgErr);
  14628 
  14629     END_INTERFACE
  14630 } _ISpeechRecoContextEventsVtbl;
  14631 
  14632 interface _ISpeechRecoContextEvents {
  14633     CONST_VTBL _ISpeechRecoContextEventsVtbl* lpVtbl;
  14634 };
  14635 
  14636 #ifdef COBJMACROS
  14637 #ifndef WIDL_C_INLINE_WRAPPERS
  14638 /*** IUnknown methods ***/
  14639 #define _ISpeechRecoContextEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14640 #define _ISpeechRecoContextEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
  14641 #define _ISpeechRecoContextEvents_Release(This) (This)->lpVtbl->Release(This)
  14642 /*** IDispatch methods ***/
  14643 #define _ISpeechRecoContextEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  14644 #define _ISpeechRecoContextEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  14645 #define _ISpeechRecoContextEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  14646 #define _ISpeechRecoContextEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  14647 #else
  14648 /*** IUnknown methods ***/
  14649 static inline HRESULT _ISpeechRecoContextEvents_QueryInterface(_ISpeechRecoContextEvents* This,REFIID riid,void **ppvObject) {
  14650     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  14651 }
  14652 static inline ULONG _ISpeechRecoContextEvents_AddRef(_ISpeechRecoContextEvents* This) {
  14653     return This->lpVtbl->AddRef(This);
  14654 }
  14655 static inline ULONG _ISpeechRecoContextEvents_Release(_ISpeechRecoContextEvents* This) {
  14656     return This->lpVtbl->Release(This);
  14657 }
  14658 /*** IDispatch methods ***/
  14659 static inline HRESULT _ISpeechRecoContextEvents_GetTypeInfoCount(_ISpeechRecoContextEvents* This,UINT *pctinfo) {
  14660     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  14661 }
  14662 static inline HRESULT _ISpeechRecoContextEvents_GetTypeInfo(_ISpeechRecoContextEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  14663     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  14664 }
  14665 static inline HRESULT _ISpeechRecoContextEvents_GetIDsOfNames(_ISpeechRecoContextEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  14666     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  14667 }
  14668 static inline HRESULT _ISpeechRecoContextEvents_Invoke(_ISpeechRecoContextEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  14669     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  14670 }
  14671 #endif
  14672 #endif
  14673 
  14674 #endif
  14675 
  14676 #endif  /* ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__ */
  14677 
  14678 /*****************************************************************************
  14679  * ISpeechGrammarRule interface
  14680  */
  14681 #ifndef __ISpeechGrammarRule_INTERFACE_DEFINED__
  14682 #define __ISpeechGrammarRule_INTERFACE_DEFINED__
  14683 
  14684 DEFINE_GUID(IID_ISpeechGrammarRule, 0xafe719cf, 0x5dd1, 0x44f2, 0x99,0x9c, 0x7a,0x39,0x9f,0x1c,0xfc,0xcc);
  14685 #if defined(__cplusplus) && !defined(CINTERFACE)
  14686 MIDL_INTERFACE("afe719cf-5dd1-44f2-999c-7a399f1cfccc")
  14687 ISpeechGrammarRule : public IDispatch
  14688 {
  14689     virtual HRESULT STDMETHODCALLTYPE get_Attributes(
  14690         SpeechRuleAttributes *Attributes) = 0;
  14691 
  14692     virtual HRESULT STDMETHODCALLTYPE get_InitialState(
  14693         ISpeechGrammarRuleState **State) = 0;
  14694 
  14695     virtual HRESULT STDMETHODCALLTYPE get_Name(
  14696         BSTR *Name) = 0;
  14697 
  14698     virtual HRESULT STDMETHODCALLTYPE get_Id(
  14699         LONG *Id) = 0;
  14700 
  14701     virtual HRESULT STDMETHODCALLTYPE Clear(
  14702         ) = 0;
  14703 
  14704     virtual HRESULT STDMETHODCALLTYPE AddResource(
  14705         const BSTR ResourceName,
  14706         const BSTR ResourceValue) = 0;
  14707 
  14708     virtual HRESULT STDMETHODCALLTYPE AddState(
  14709         ISpeechGrammarRuleState **State) = 0;
  14710 
  14711 };
  14712 #ifdef __CRT_UUID_DECL
  14713 __CRT_UUID_DECL(ISpeechGrammarRule, 0xafe719cf, 0x5dd1, 0x44f2, 0x99,0x9c, 0x7a,0x39,0x9f,0x1c,0xfc,0xcc)
  14714 #endif
  14715 #else
  14716 typedef struct ISpeechGrammarRuleVtbl {
  14717     BEGIN_INTERFACE
  14718 
  14719     /*** IUnknown methods ***/
  14720     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  14721         ISpeechGrammarRule *This,
  14722         REFIID riid,
  14723         void **ppvObject);
  14724 
  14725     ULONG (STDMETHODCALLTYPE *AddRef)(
  14726         ISpeechGrammarRule *This);
  14727 
  14728     ULONG (STDMETHODCALLTYPE *Release)(
  14729         ISpeechGrammarRule *This);
  14730 
  14731     /*** IDispatch methods ***/
  14732     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  14733         ISpeechGrammarRule *This,
  14734         UINT *pctinfo);
  14735 
  14736     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  14737         ISpeechGrammarRule *This,
  14738         UINT iTInfo,
  14739         LCID lcid,
  14740         ITypeInfo **ppTInfo);
  14741 
  14742     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  14743         ISpeechGrammarRule *This,
  14744         REFIID riid,
  14745         LPOLESTR *rgszNames,
  14746         UINT cNames,
  14747         LCID lcid,
  14748         DISPID *rgDispId);
  14749 
  14750     HRESULT (STDMETHODCALLTYPE *Invoke)(
  14751         ISpeechGrammarRule *This,
  14752         DISPID dispIdMember,
  14753         REFIID riid,
  14754         LCID lcid,
  14755         WORD wFlags,
  14756         DISPPARAMS *pDispParams,
  14757         VARIANT *pVarResult,
  14758         EXCEPINFO *pExcepInfo,
  14759         UINT *puArgErr);
  14760 
  14761     /*** ISpeechGrammarRule methods ***/
  14762     HRESULT (STDMETHODCALLTYPE *get_Attributes)(
  14763         ISpeechGrammarRule *This,
  14764         SpeechRuleAttributes *Attributes);
  14765 
  14766     HRESULT (STDMETHODCALLTYPE *get_InitialState)(
  14767         ISpeechGrammarRule *This,
  14768         ISpeechGrammarRuleState **State);
  14769 
  14770     HRESULT (STDMETHODCALLTYPE *get_Name)(
  14771         ISpeechGrammarRule *This,
  14772         BSTR *Name);
  14773 
  14774     HRESULT (STDMETHODCALLTYPE *get_Id)(
  14775         ISpeechGrammarRule *This,
  14776         LONG *Id);
  14777 
  14778     HRESULT (STDMETHODCALLTYPE *Clear)(
  14779         ISpeechGrammarRule *This);
  14780 
  14781     HRESULT (STDMETHODCALLTYPE *AddResource)(
  14782         ISpeechGrammarRule *This,
  14783         const BSTR ResourceName,
  14784         const BSTR ResourceValue);
  14785 
  14786     HRESULT (STDMETHODCALLTYPE *AddState)(
  14787         ISpeechGrammarRule *This,
  14788         ISpeechGrammarRuleState **State);
  14789 
  14790     END_INTERFACE
  14791 } ISpeechGrammarRuleVtbl;
  14792 
  14793 interface ISpeechGrammarRule {
  14794     CONST_VTBL ISpeechGrammarRuleVtbl* lpVtbl;
  14795 };
  14796 
  14797 #ifdef COBJMACROS
  14798 #ifndef WIDL_C_INLINE_WRAPPERS
  14799 /*** IUnknown methods ***/
  14800 #define ISpeechGrammarRule_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14801 #define ISpeechGrammarRule_AddRef(This) (This)->lpVtbl->AddRef(This)
  14802 #define ISpeechGrammarRule_Release(This) (This)->lpVtbl->Release(This)
  14803 /*** IDispatch methods ***/
  14804 #define ISpeechGrammarRule_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  14805 #define ISpeechGrammarRule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  14806 #define ISpeechGrammarRule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  14807 #define ISpeechGrammarRule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  14808 /*** ISpeechGrammarRule methods ***/
  14809 #define ISpeechGrammarRule_get_Attributes(This,Attributes) (This)->lpVtbl->get_Attributes(This,Attributes)
  14810 #define ISpeechGrammarRule_get_InitialState(This,State) (This)->lpVtbl->get_InitialState(This,State)
  14811 #define ISpeechGrammarRule_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
  14812 #define ISpeechGrammarRule_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
  14813 #define ISpeechGrammarRule_Clear(This) (This)->lpVtbl->Clear(This)
  14814 #define ISpeechGrammarRule_AddResource(This,ResourceName,ResourceValue) (This)->lpVtbl->AddResource(This,ResourceName,ResourceValue)
  14815 #define ISpeechGrammarRule_AddState(This,State) (This)->lpVtbl->AddState(This,State)
  14816 #else
  14817 /*** IUnknown methods ***/
  14818 static inline HRESULT ISpeechGrammarRule_QueryInterface(ISpeechGrammarRule* This,REFIID riid,void **ppvObject) {
  14819     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  14820 }
  14821 static inline ULONG ISpeechGrammarRule_AddRef(ISpeechGrammarRule* This) {
  14822     return This->lpVtbl->AddRef(This);
  14823 }
  14824 static inline ULONG ISpeechGrammarRule_Release(ISpeechGrammarRule* This) {
  14825     return This->lpVtbl->Release(This);
  14826 }
  14827 /*** IDispatch methods ***/
  14828 static inline HRESULT ISpeechGrammarRule_GetTypeInfoCount(ISpeechGrammarRule* This,UINT *pctinfo) {
  14829     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  14830 }
  14831 static inline HRESULT ISpeechGrammarRule_GetTypeInfo(ISpeechGrammarRule* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  14832     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  14833 }
  14834 static inline HRESULT ISpeechGrammarRule_GetIDsOfNames(ISpeechGrammarRule* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  14835     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  14836 }
  14837 static inline HRESULT ISpeechGrammarRule_Invoke(ISpeechGrammarRule* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  14838     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  14839 }
  14840 /*** ISpeechGrammarRule methods ***/
  14841 static inline HRESULT ISpeechGrammarRule_get_Attributes(ISpeechGrammarRule* This,SpeechRuleAttributes *Attributes) {
  14842     return This->lpVtbl->get_Attributes(This,Attributes);
  14843 }
  14844 static inline HRESULT ISpeechGrammarRule_get_InitialState(ISpeechGrammarRule* This,ISpeechGrammarRuleState **State) {
  14845     return This->lpVtbl->get_InitialState(This,State);
  14846 }
  14847 static inline HRESULT ISpeechGrammarRule_get_Name(ISpeechGrammarRule* This,BSTR *Name) {
  14848     return This->lpVtbl->get_Name(This,Name);
  14849 }
  14850 static inline HRESULT ISpeechGrammarRule_get_Id(ISpeechGrammarRule* This,LONG *Id) {
  14851     return This->lpVtbl->get_Id(This,Id);
  14852 }
  14853 static inline HRESULT ISpeechGrammarRule_Clear(ISpeechGrammarRule* This) {
  14854     return This->lpVtbl->Clear(This);
  14855 }
  14856 static inline HRESULT ISpeechGrammarRule_AddResource(ISpeechGrammarRule* This,const BSTR ResourceName,const BSTR ResourceValue) {
  14857     return This->lpVtbl->AddResource(This,ResourceName,ResourceValue);
  14858 }
  14859 static inline HRESULT ISpeechGrammarRule_AddState(ISpeechGrammarRule* This,ISpeechGrammarRuleState **State) {
  14860     return This->lpVtbl->AddState(This,State);
  14861 }
  14862 #endif
  14863 #endif
  14864 
  14865 #endif
  14866 
  14867 
  14868 #endif  /* __ISpeechGrammarRule_INTERFACE_DEFINED__ */
  14869 
  14870 /*****************************************************************************
  14871  * ISpeechGrammarRules interface
  14872  */
  14873 #ifndef __ISpeechGrammarRules_INTERFACE_DEFINED__
  14874 #define __ISpeechGrammarRules_INTERFACE_DEFINED__
  14875 
  14876 DEFINE_GUID(IID_ISpeechGrammarRules, 0x6ffa3b44, 0xfc2d, 0x40d1, 0x8a,0xfc, 0x32,0x91,0x1c,0x7f,0x1a,0xd1);
  14877 #if defined(__cplusplus) && !defined(CINTERFACE)
  14878 MIDL_INTERFACE("6ffa3b44-fc2d-40d1-8afc-32911c7f1ad1")
  14879 ISpeechGrammarRules : public IDispatch
  14880 {
  14881     virtual HRESULT STDMETHODCALLTYPE get_Count(
  14882         LONG *Count) = 0;
  14883 
  14884     virtual HRESULT STDMETHODCALLTYPE FindRule(
  14885         VARIANT RuleNameOrId,
  14886         ISpeechGrammarRule **Rule) = 0;
  14887 
  14888     virtual HRESULT STDMETHODCALLTYPE Item(
  14889         LONG Index,
  14890         ISpeechGrammarRule **Rule) = 0;
  14891 
  14892     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
  14893         IUnknown **EnumVARIANT) = 0;
  14894 
  14895     virtual HRESULT STDMETHODCALLTYPE get_Dynamic(
  14896         VARIANT_BOOL *Dynamic) = 0;
  14897 
  14898     virtual HRESULT STDMETHODCALLTYPE Add(
  14899         BSTR RuleName,
  14900         SpeechRuleAttributes Attributes,
  14901         LONG RuleId,
  14902         ISpeechGrammarRule **Rule) = 0;
  14903 
  14904     virtual HRESULT STDMETHODCALLTYPE Commit(
  14905         ) = 0;
  14906 
  14907     virtual HRESULT STDMETHODCALLTYPE CommitAndSave(
  14908         BSTR *ErrorText,
  14909         VARIANT *SaveStream) = 0;
  14910 
  14911 };
  14912 #ifdef __CRT_UUID_DECL
  14913 __CRT_UUID_DECL(ISpeechGrammarRules, 0x6ffa3b44, 0xfc2d, 0x40d1, 0x8a,0xfc, 0x32,0x91,0x1c,0x7f,0x1a,0xd1)
  14914 #endif
  14915 #else
  14916 typedef struct ISpeechGrammarRulesVtbl {
  14917     BEGIN_INTERFACE
  14918 
  14919     /*** IUnknown methods ***/
  14920     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  14921         ISpeechGrammarRules *This,
  14922         REFIID riid,
  14923         void **ppvObject);
  14924 
  14925     ULONG (STDMETHODCALLTYPE *AddRef)(
  14926         ISpeechGrammarRules *This);
  14927 
  14928     ULONG (STDMETHODCALLTYPE *Release)(
  14929         ISpeechGrammarRules *This);
  14930 
  14931     /*** IDispatch methods ***/
  14932     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  14933         ISpeechGrammarRules *This,
  14934         UINT *pctinfo);
  14935 
  14936     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  14937         ISpeechGrammarRules *This,
  14938         UINT iTInfo,
  14939         LCID lcid,
  14940         ITypeInfo **ppTInfo);
  14941 
  14942     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  14943         ISpeechGrammarRules *This,
  14944         REFIID riid,
  14945         LPOLESTR *rgszNames,
  14946         UINT cNames,
  14947         LCID lcid,
  14948         DISPID *rgDispId);
  14949 
  14950     HRESULT (STDMETHODCALLTYPE *Invoke)(
  14951         ISpeechGrammarRules *This,
  14952         DISPID dispIdMember,
  14953         REFIID riid,
  14954         LCID lcid,
  14955         WORD wFlags,
  14956         DISPPARAMS *pDispParams,
  14957         VARIANT *pVarResult,
  14958         EXCEPINFO *pExcepInfo,
  14959         UINT *puArgErr);
  14960 
  14961     /*** ISpeechGrammarRules methods ***/
  14962     HRESULT (STDMETHODCALLTYPE *get_Count)(
  14963         ISpeechGrammarRules *This,
  14964         LONG *Count);
  14965 
  14966     HRESULT (STDMETHODCALLTYPE *FindRule)(
  14967         ISpeechGrammarRules *This,
  14968         VARIANT RuleNameOrId,
  14969         ISpeechGrammarRule **Rule);
  14970 
  14971     HRESULT (STDMETHODCALLTYPE *Item)(
  14972         ISpeechGrammarRules *This,
  14973         LONG Index,
  14974         ISpeechGrammarRule **Rule);
  14975 
  14976     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
  14977         ISpeechGrammarRules *This,
  14978         IUnknown **EnumVARIANT);
  14979 
  14980     HRESULT (STDMETHODCALLTYPE *get_Dynamic)(
  14981         ISpeechGrammarRules *This,
  14982         VARIANT_BOOL *Dynamic);
  14983 
  14984     HRESULT (STDMETHODCALLTYPE *Add)(
  14985         ISpeechGrammarRules *This,
  14986         BSTR RuleName,
  14987         SpeechRuleAttributes Attributes,
  14988         LONG RuleId,
  14989         ISpeechGrammarRule **Rule);
  14990 
  14991     HRESULT (STDMETHODCALLTYPE *Commit)(
  14992         ISpeechGrammarRules *This);
  14993 
  14994     HRESULT (STDMETHODCALLTYPE *CommitAndSave)(
  14995         ISpeechGrammarRules *This,
  14996         BSTR *ErrorText,
  14997         VARIANT *SaveStream);
  14998 
  14999     END_INTERFACE
  15000 } ISpeechGrammarRulesVtbl;
  15001 
  15002 interface ISpeechGrammarRules {
  15003     CONST_VTBL ISpeechGrammarRulesVtbl* lpVtbl;
  15004 };
  15005 
  15006 #ifdef COBJMACROS
  15007 #ifndef WIDL_C_INLINE_WRAPPERS
  15008 /*** IUnknown methods ***/
  15009 #define ISpeechGrammarRules_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  15010 #define ISpeechGrammarRules_AddRef(This) (This)->lpVtbl->AddRef(This)
  15011 #define ISpeechGrammarRules_Release(This) (This)->lpVtbl->Release(This)
  15012 /*** IDispatch methods ***/
  15013 #define ISpeechGrammarRules_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  15014 #define ISpeechGrammarRules_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  15015 #define ISpeechGrammarRules_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  15016 #define ISpeechGrammarRules_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  15017 /*** ISpeechGrammarRules methods ***/
  15018 #define ISpeechGrammarRules_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
  15019 #define ISpeechGrammarRules_FindRule(This,RuleNameOrId,Rule) (This)->lpVtbl->FindRule(This,RuleNameOrId,Rule)
  15020 #define ISpeechGrammarRules_Item(This,Index,Rule) (This)->lpVtbl->Item(This,Index,Rule)
  15021 #define ISpeechGrammarRules_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
  15022 #define ISpeechGrammarRules_get_Dynamic(This,Dynamic) (This)->lpVtbl->get_Dynamic(This,Dynamic)
  15023 #define ISpeechGrammarRules_Add(This,RuleName,Attributes,RuleId,Rule) (This)->lpVtbl->Add(This,RuleName,Attributes,RuleId,Rule)
  15024 #define ISpeechGrammarRules_Commit(This) (This)->lpVtbl->Commit(This)
  15025 #define ISpeechGrammarRules_CommitAndSave(This,ErrorText,SaveStream) (This)->lpVtbl->CommitAndSave(This,ErrorText,SaveStream)
  15026 #else
  15027 /*** IUnknown methods ***/
  15028 static inline HRESULT ISpeechGrammarRules_QueryInterface(ISpeechGrammarRules* This,REFIID riid,void **ppvObject) {
  15029     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  15030 }
  15031 static inline ULONG ISpeechGrammarRules_AddRef(ISpeechGrammarRules* This) {
  15032     return This->lpVtbl->AddRef(This);
  15033 }
  15034 static inline ULONG ISpeechGrammarRules_Release(ISpeechGrammarRules* This) {
  15035     return This->lpVtbl->Release(This);
  15036 }
  15037 /*** IDispatch methods ***/
  15038 static inline HRESULT ISpeechGrammarRules_GetTypeInfoCount(ISpeechGrammarRules* This,UINT *pctinfo) {
  15039     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  15040 }
  15041 static inline HRESULT ISpeechGrammarRules_GetTypeInfo(ISpeechGrammarRules* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  15042     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  15043 }
  15044 static inline HRESULT ISpeechGrammarRules_GetIDsOfNames(ISpeechGrammarRules* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  15045     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  15046 }
  15047 static inline HRESULT ISpeechGrammarRules_Invoke(ISpeechGrammarRules* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  15048     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  15049 }
  15050 /*** ISpeechGrammarRules methods ***/
  15051 static inline HRESULT ISpeechGrammarRules_get_Count(ISpeechGrammarRules* This,LONG *Count) {
  15052     return This->lpVtbl->get_Count(This,Count);
  15053 }
  15054 static inline HRESULT ISpeechGrammarRules_FindRule(ISpeechGrammarRules* This,VARIANT RuleNameOrId,ISpeechGrammarRule **Rule) {
  15055     return This->lpVtbl->FindRule(This,RuleNameOrId,Rule);
  15056 }
  15057 static inline HRESULT ISpeechGrammarRules_Item(ISpeechGrammarRules* This,LONG Index,ISpeechGrammarRule **Rule) {
  15058     return This->lpVtbl->Item(This,Index,Rule);
  15059 }
  15060 static inline HRESULT ISpeechGrammarRules_get__NewEnum(ISpeechGrammarRules* This,IUnknown **EnumVARIANT) {
  15061     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
  15062 }
  15063 static inline HRESULT ISpeechGrammarRules_get_Dynamic(ISpeechGrammarRules* This,VARIANT_BOOL *Dynamic) {
  15064     return This->lpVtbl->get_Dynamic(This,Dynamic);
  15065 }
  15066 static inline HRESULT ISpeechGrammarRules_Add(ISpeechGrammarRules* This,BSTR RuleName,SpeechRuleAttributes Attributes,LONG RuleId,ISpeechGrammarRule **Rule) {
  15067     return This->lpVtbl->Add(This,RuleName,Attributes,RuleId,Rule);
  15068 }
  15069 static inline HRESULT ISpeechGrammarRules_Commit(ISpeechGrammarRules* This) {
  15070     return This->lpVtbl->Commit(This);
  15071 }
  15072 static inline HRESULT ISpeechGrammarRules_CommitAndSave(ISpeechGrammarRules* This,BSTR *ErrorText,VARIANT *SaveStream) {
  15073     return This->lpVtbl->CommitAndSave(This,ErrorText,SaveStream);
  15074 }
  15075 #endif
  15076 #endif
  15077 
  15078 #endif
  15079 
  15080 
  15081 #endif  /* __ISpeechGrammarRules_INTERFACE_DEFINED__ */
  15082 
  15083 /*****************************************************************************
  15084  * ISpeechGrammarRuleState interface
  15085  */
  15086 #ifndef __ISpeechGrammarRuleState_INTERFACE_DEFINED__
  15087 #define __ISpeechGrammarRuleState_INTERFACE_DEFINED__
  15088 
  15089 DEFINE_GUID(IID_ISpeechGrammarRuleState, 0xd4286f2c, 0xee67, 0x45ae, 0xb9,0x28, 0x28,0xd6,0x95,0x36,0x2e,0xda);
  15090 #if defined(__cplusplus) && !defined(CINTERFACE)
  15091 MIDL_INTERFACE("d4286f2c-ee67-45ae-b928-28d695362eda")
  15092 ISpeechGrammarRuleState : public IDispatch
  15093 {
  15094     virtual HRESULT STDMETHODCALLTYPE get_Rule(
  15095         ISpeechGrammarRule **Rule) = 0;
  15096 
  15097     virtual HRESULT STDMETHODCALLTYPE get_Transitions(
  15098         ISpeechGrammarRuleStateTransitions **Transitions) = 0;
  15099 
  15100     virtual HRESULT STDMETHODCALLTYPE AddWordTransition(
  15101         ISpeechGrammarRuleState *DestState,
  15102         const BSTR Words,
  15103         const BSTR Separators = L" ",
  15104         SpeechGrammarWordType Type = SGLexical,
  15105         const BSTR PropertyName = L"",
  15106         LONG PropertyId = 0,
  15107         VARIANT *PropertyValue = 0,
  15108         float Weight = 1) = 0;
  15109 
  15110     virtual HRESULT STDMETHODCALLTYPE AddRuleTransition(
  15111         ISpeechGrammarRuleState *DestinationState,
  15112         ISpeechGrammarRule *Rule,
  15113         const BSTR PropertyName = L"",
  15114         LONG PropertyId = 0,
  15115         VARIANT *PropertyValue = 0,
  15116         float Weight = 1) = 0;
  15117 
  15118     virtual HRESULT STDMETHODCALLTYPE AddSpecialTransition(
  15119         ISpeechGrammarRuleState *DestinationState,
  15120         SpeechSpecialTransitionType Type,
  15121         const BSTR PropertyName = L"",
  15122         LONG PropertyId = 0,
  15123         VARIANT *PropertyValue = 0,
  15124         float Weight = 1) = 0;
  15125 
  15126 };
  15127 #ifdef __CRT_UUID_DECL
  15128 __CRT_UUID_DECL(ISpeechGrammarRuleState, 0xd4286f2c, 0xee67, 0x45ae, 0xb9,0x28, 0x28,0xd6,0x95,0x36,0x2e,0xda)
  15129 #endif
  15130 #else
  15131 typedef struct ISpeechGrammarRuleStateVtbl {
  15132     BEGIN_INTERFACE
  15133 
  15134     /*** IUnknown methods ***/
  15135     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  15136         ISpeechGrammarRuleState *This,
  15137         REFIID riid,
  15138         void **ppvObject);
  15139 
  15140     ULONG (STDMETHODCALLTYPE *AddRef)(
  15141         ISpeechGrammarRuleState *This);
  15142 
  15143     ULONG (STDMETHODCALLTYPE *Release)(
  15144         ISpeechGrammarRuleState *This);
  15145 
  15146     /*** IDispatch methods ***/
  15147     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  15148         ISpeechGrammarRuleState *This,
  15149         UINT *pctinfo);
  15150 
  15151     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  15152         ISpeechGrammarRuleState *This,
  15153         UINT iTInfo,
  15154         LCID lcid,
  15155         ITypeInfo **ppTInfo);
  15156 
  15157     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  15158         ISpeechGrammarRuleState *This,
  15159         REFIID riid,
  15160         LPOLESTR *rgszNames,
  15161         UINT cNames,
  15162         LCID lcid,
  15163         DISPID *rgDispId);
  15164 
  15165     HRESULT (STDMETHODCALLTYPE *Invoke)(
  15166         ISpeechGrammarRuleState *This,
  15167         DISPID dispIdMember,
  15168         REFIID riid,
  15169         LCID lcid,
  15170         WORD wFlags,
  15171         DISPPARAMS *pDispParams,
  15172         VARIANT *pVarResult,
  15173         EXCEPINFO *pExcepInfo,
  15174         UINT *puArgErr);
  15175 
  15176     /*** ISpeechGrammarRuleState methods ***/
  15177     HRESULT (STDMETHODCALLTYPE *get_Rule)(
  15178         ISpeechGrammarRuleState *This,
  15179         ISpeechGrammarRule **Rule);
  15180 
  15181     HRESULT (STDMETHODCALLTYPE *get_Transitions)(
  15182         ISpeechGrammarRuleState *This,
  15183         ISpeechGrammarRuleStateTransitions **Transitions);
  15184 
  15185     HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
  15186         ISpeechGrammarRuleState *This,
  15187         ISpeechGrammarRuleState *DestState,
  15188         const BSTR Words,
  15189         const BSTR Separators,
  15190         SpeechGrammarWordType Type,
  15191         const BSTR PropertyName,
  15192         LONG PropertyId,
  15193         VARIANT *PropertyValue,
  15194         float Weight);
  15195 
  15196     HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
  15197         ISpeechGrammarRuleState *This,
  15198         ISpeechGrammarRuleState *DestinationState,
  15199         ISpeechGrammarRule *Rule,
  15200         const BSTR PropertyName,
  15201         LONG PropertyId,
  15202         VARIANT *PropertyValue,
  15203         float Weight);
  15204 
  15205     HRESULT (STDMETHODCALLTYPE *AddSpecialTransition)(
  15206         ISpeechGrammarRuleState *This,
  15207         ISpeechGrammarRuleState *DestinationState,
  15208         SpeechSpecialTransitionType Type,
  15209         const BSTR PropertyName,
  15210         LONG PropertyId,
  15211         VARIANT *PropertyValue,
  15212         float Weight);
  15213 
  15214     END_INTERFACE
  15215 } ISpeechGrammarRuleStateVtbl;
  15216 
  15217 interface ISpeechGrammarRuleState {
  15218     CONST_VTBL ISpeechGrammarRuleStateVtbl* lpVtbl;
  15219 };
  15220 
  15221 #ifdef COBJMACROS
  15222 #ifndef WIDL_C_INLINE_WRAPPERS
  15223 /*** IUnknown methods ***/
  15224 #define ISpeechGrammarRuleState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  15225 #define ISpeechGrammarRuleState_AddRef(This) (This)->lpVtbl->AddRef(This)
  15226 #define ISpeechGrammarRuleState_Release(This) (This)->lpVtbl->Release(This)
  15227 /*** IDispatch methods ***/
  15228 #define ISpeechGrammarRuleState_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  15229 #define ISpeechGrammarRuleState_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  15230 #define ISpeechGrammarRuleState_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  15231 #define ISpeechGrammarRuleState_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  15232 /*** ISpeechGrammarRuleState methods ***/
  15233 #define ISpeechGrammarRuleState_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
  15234 #define ISpeechGrammarRuleState_get_Transitions(This,Transitions) (This)->lpVtbl->get_Transitions(This,Transitions)
  15235 #define ISpeechGrammarRuleState_AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight)
  15236 #define ISpeechGrammarRuleState_AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight)
  15237 #define ISpeechGrammarRuleState_AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight)
  15238 #else
  15239 /*** IUnknown methods ***/
  15240 static inline HRESULT ISpeechGrammarRuleState_QueryInterface(ISpeechGrammarRuleState* This,REFIID riid,void **ppvObject) {
  15241     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  15242 }
  15243 static inline ULONG ISpeechGrammarRuleState_AddRef(ISpeechGrammarRuleState* This) {
  15244     return This->lpVtbl->AddRef(This);
  15245 }
  15246 static inline ULONG ISpeechGrammarRuleState_Release(ISpeechGrammarRuleState* This) {
  15247     return This->lpVtbl->Release(This);
  15248 }
  15249 /*** IDispatch methods ***/
  15250 static inline HRESULT ISpeechGrammarRuleState_GetTypeInfoCount(ISpeechGrammarRuleState* This,UINT *pctinfo) {
  15251     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  15252 }
  15253 static inline HRESULT ISpeechGrammarRuleState_GetTypeInfo(ISpeechGrammarRuleState* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  15254     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  15255 }
  15256 static inline HRESULT ISpeechGrammarRuleState_GetIDsOfNames(ISpeechGrammarRuleState* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  15257     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  15258 }
  15259 static inline HRESULT ISpeechGrammarRuleState_Invoke(ISpeechGrammarRuleState* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  15260     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  15261 }
  15262 /*** ISpeechGrammarRuleState methods ***/
  15263 static inline HRESULT ISpeechGrammarRuleState_get_Rule(ISpeechGrammarRuleState* This,ISpeechGrammarRule **Rule) {
  15264     return This->lpVtbl->get_Rule(This,Rule);
  15265 }
  15266 static inline HRESULT ISpeechGrammarRuleState_get_Transitions(ISpeechGrammarRuleState* This,ISpeechGrammarRuleStateTransitions **Transitions) {
  15267     return This->lpVtbl->get_Transitions(This,Transitions);
  15268 }
  15269 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) {
  15270     return This->lpVtbl->AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight);
  15271 }
  15272 static inline HRESULT ISpeechGrammarRuleState_AddRuleTransition(ISpeechGrammarRuleState* This,ISpeechGrammarRuleState *DestinationState,ISpeechGrammarRule *Rule,const BSTR PropertyName,LONG PropertyId,VARIANT *PropertyValue,float Weight) {
  15273     return This->lpVtbl->AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight);
  15274 }
  15275 static inline HRESULT ISpeechGrammarRuleState_AddSpecialTransition(ISpeechGrammarRuleState* This,ISpeechGrammarRuleState *DestinationState,SpeechSpecialTransitionType Type,const BSTR PropertyName,LONG PropertyId,VARIANT *PropertyValue,float Weight) {
  15276     return This->lpVtbl->AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight);
  15277 }
  15278 #endif
  15279 #endif
  15280 
  15281 #endif
  15282 
  15283 
  15284 #endif  /* __ISpeechGrammarRuleState_INTERFACE_DEFINED__ */
  15285 
  15286 /*****************************************************************************
  15287  * ISpeechGrammarRuleStateTransitions interface
  15288  */
  15289 #ifndef __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__
  15290 #define __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__
  15291 
  15292 DEFINE_GUID(IID_ISpeechGrammarRuleStateTransitions, 0xeabce657, 0x75bc, 0x44a2, 0xaa,0x7f, 0xc5,0x64,0x76,0x74,0x29,0x63);
  15293 #if defined(__cplusplus) && !defined(CINTERFACE)
  15294 MIDL_INTERFACE("eabce657-75bc-44a2-aa7f-c56476742963")
  15295 ISpeechGrammarRuleStateTransitions : public IDispatch
  15296 {
  15297     virtual HRESULT STDMETHODCALLTYPE get_Count(
  15298         LONG *Count) = 0;
  15299 
  15300     virtual HRESULT STDMETHODCALLTYPE Item(
  15301         LONG Index,
  15302         ISpeechGrammarRuleStateTransition **Transition) = 0;
  15303 
  15304     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
  15305         IUnknown **EnumVARIANT) = 0;
  15306 
  15307 };
  15308 #ifdef __CRT_UUID_DECL
  15309 __CRT_UUID_DECL(ISpeechGrammarRuleStateTransitions, 0xeabce657, 0x75bc, 0x44a2, 0xaa,0x7f, 0xc5,0x64,0x76,0x74,0x29,0x63)
  15310 #endif
  15311 #else
  15312 typedef struct ISpeechGrammarRuleStateTransitionsVtbl {
  15313     BEGIN_INTERFACE
  15314 
  15315     /*** IUnknown methods ***/
  15316     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  15317         ISpeechGrammarRuleStateTransitions *This,
  15318         REFIID riid,
  15319         void **ppvObject);
  15320 
  15321     ULONG (STDMETHODCALLTYPE *AddRef)(
  15322         ISpeechGrammarRuleStateTransitions *This);
  15323 
  15324     ULONG (STDMETHODCALLTYPE *Release)(
  15325         ISpeechGrammarRuleStateTransitions *This);
  15326 
  15327     /*** IDispatch methods ***/
  15328     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  15329         ISpeechGrammarRuleStateTransitions *This,
  15330         UINT *pctinfo);
  15331 
  15332     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  15333         ISpeechGrammarRuleStateTransitions *This,
  15334         UINT iTInfo,
  15335         LCID lcid,
  15336         ITypeInfo **ppTInfo);
  15337 
  15338     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  15339         ISpeechGrammarRuleStateTransitions *This,
  15340         REFIID riid,
  15341         LPOLESTR *rgszNames,
  15342         UINT cNames,
  15343         LCID lcid,
  15344         DISPID *rgDispId);
  15345 
  15346     HRESULT (STDMETHODCALLTYPE *Invoke)(
  15347         ISpeechGrammarRuleStateTransitions *This,
  15348         DISPID dispIdMember,
  15349         REFIID riid,
  15350         LCID lcid,
  15351         WORD wFlags,
  15352         DISPPARAMS *pDispParams,
  15353         VARIANT *pVarResult,
  15354         EXCEPINFO *pExcepInfo,
  15355         UINT *puArgErr);
  15356 
  15357     /*** ISpeechGrammarRuleStateTransitions methods ***/
  15358     HRESULT (STDMETHODCALLTYPE *get_Count)(
  15359         ISpeechGrammarRuleStateTransitions *This,
  15360         LONG *Count);
  15361 
  15362     HRESULT (STDMETHODCALLTYPE *Item)(
  15363         ISpeechGrammarRuleStateTransitions *This,
  15364         LONG Index,
  15365         ISpeechGrammarRuleStateTransition **Transition);
  15366 
  15367     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
  15368         ISpeechGrammarRuleStateTransitions *This,
  15369         IUnknown **EnumVARIANT);
  15370 
  15371     END_INTERFACE
  15372 } ISpeechGrammarRuleStateTransitionsVtbl;
  15373 
  15374 interface ISpeechGrammarRuleStateTransitions {
  15375     CONST_VTBL ISpeechGrammarRuleStateTransitionsVtbl* lpVtbl;
  15376 };
  15377 
  15378 #ifdef COBJMACROS
  15379 #ifndef WIDL_C_INLINE_WRAPPERS
  15380 /*** IUnknown methods ***/
  15381 #define ISpeechGrammarRuleStateTransitions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  15382 #define ISpeechGrammarRuleStateTransitions_AddRef(This) (This)->lpVtbl->AddRef(This)
  15383 #define ISpeechGrammarRuleStateTransitions_Release(This) (This)->lpVtbl->Release(This)
  15384 /*** IDispatch methods ***/
  15385 #define ISpeechGrammarRuleStateTransitions_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  15386 #define ISpeechGrammarRuleStateTransitions_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  15387 #define ISpeechGrammarRuleStateTransitions_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  15388 #define ISpeechGrammarRuleStateTransitions_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  15389 /*** ISpeechGrammarRuleStateTransitions methods ***/
  15390 #define ISpeechGrammarRuleStateTransitions_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
  15391 #define ISpeechGrammarRuleStateTransitions_Item(This,Index,Transition) (This)->lpVtbl->Item(This,Index,Transition)
  15392 #define ISpeechGrammarRuleStateTransitions_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
  15393 #else
  15394 /*** IUnknown methods ***/
  15395 static inline HRESULT ISpeechGrammarRuleStateTransitions_QueryInterface(ISpeechGrammarRuleStateTransitions* This,REFIID riid,void **ppvObject) {
  15396     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  15397 }
  15398 static inline ULONG ISpeechGrammarRuleStateTransitions_AddRef(ISpeechGrammarRuleStateTransitions* This) {
  15399     return This->lpVtbl->AddRef(This);
  15400 }
  15401 static inline ULONG ISpeechGrammarRuleStateTransitions_Release(ISpeechGrammarRuleStateTransitions* This) {
  15402     return This->lpVtbl->Release(This);
  15403 }
  15404 /*** IDispatch methods ***/
  15405 static inline HRESULT ISpeechGrammarRuleStateTransitions_GetTypeInfoCount(ISpeechGrammarRuleStateTransitions* This,UINT *pctinfo) {
  15406     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  15407 }
  15408 static inline HRESULT ISpeechGrammarRuleStateTransitions_GetTypeInfo(ISpeechGrammarRuleStateTransitions* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  15409     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  15410 }
  15411 static inline HRESULT ISpeechGrammarRuleStateTransitions_GetIDsOfNames(ISpeechGrammarRuleStateTransitions* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  15412     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  15413 }
  15414 static inline HRESULT ISpeechGrammarRuleStateTransitions_Invoke(ISpeechGrammarRuleStateTransitions* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  15415     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  15416 }
  15417 /*** ISpeechGrammarRuleStateTransitions methods ***/
  15418 static inline HRESULT ISpeechGrammarRuleStateTransitions_get_Count(ISpeechGrammarRuleStateTransitions* This,LONG *Count) {
  15419     return This->lpVtbl->get_Count(This,Count);
  15420 }
  15421 static inline HRESULT ISpeechGrammarRuleStateTransitions_Item(ISpeechGrammarRuleStateTransitions* This,LONG Index,ISpeechGrammarRuleStateTransition **Transition) {
  15422     return This->lpVtbl->Item(This,Index,Transition);
  15423 }
  15424 static inline HRESULT ISpeechGrammarRuleStateTransitions_get__NewEnum(ISpeechGrammarRuleStateTransitions* This,IUnknown **EnumVARIANT) {
  15425     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
  15426 }
  15427 #endif
  15428 #endif
  15429 
  15430 #endif
  15431 
  15432 
  15433 #endif  /* __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__ */
  15434 
  15435 /*****************************************************************************
  15436  * ISpeechGrammarRuleStateTransition interface
  15437  */
  15438 #ifndef __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__
  15439 #define __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__
  15440 
  15441 DEFINE_GUID(IID_ISpeechGrammarRuleStateTransition, 0xcafd1db1, 0x41d1, 0x4a06, 0x98,0x63, 0xe2,0xe8,0x1d,0xa1,0x7a,0x9a);
  15442 #if defined(__cplusplus) && !defined(CINTERFACE)
  15443 MIDL_INTERFACE("cafd1db1-41d1-4a06-9863-e2e81da17a9a")
  15444 ISpeechGrammarRuleStateTransition : public IDispatch
  15445 {
  15446     virtual HRESULT STDMETHODCALLTYPE get_Type(
  15447         SpeechGrammarRuleStateTransitionType *Type) = 0;
  15448 
  15449     virtual HRESULT STDMETHODCALLTYPE get_Text(
  15450         BSTR *Text) = 0;
  15451 
  15452     virtual HRESULT STDMETHODCALLTYPE get_Rule(
  15453         ISpeechGrammarRule **Rule) = 0;
  15454 
  15455     virtual HRESULT STDMETHODCALLTYPE get_Weight(
  15456         VARIANT *Weight) = 0;
  15457 
  15458     virtual HRESULT STDMETHODCALLTYPE get_PropertyName(
  15459         BSTR *PropertyName) = 0;
  15460 
  15461     virtual HRESULT STDMETHODCALLTYPE get_PropertyId(
  15462         LONG *PropertyId) = 0;
  15463 
  15464     virtual HRESULT STDMETHODCALLTYPE get_PropertyValue(
  15465         VARIANT *PropertyValue) = 0;
  15466 
  15467     virtual HRESULT STDMETHODCALLTYPE get_NextState(
  15468         ISpeechGrammarRuleState **NextState) = 0;
  15469 
  15470 };
  15471 #ifdef __CRT_UUID_DECL
  15472 __CRT_UUID_DECL(ISpeechGrammarRuleStateTransition, 0xcafd1db1, 0x41d1, 0x4a06, 0x98,0x63, 0xe2,0xe8,0x1d,0xa1,0x7a,0x9a)
  15473 #endif
  15474 #else
  15475 typedef struct ISpeechGrammarRuleStateTransitionVtbl {
  15476     BEGIN_INTERFACE
  15477 
  15478     /*** IUnknown methods ***/
  15479     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  15480         ISpeechGrammarRuleStateTransition *This,
  15481         REFIID riid,
  15482         void **ppvObject);
  15483 
  15484     ULONG (STDMETHODCALLTYPE *AddRef)(
  15485         ISpeechGrammarRuleStateTransition *This);
  15486 
  15487     ULONG (STDMETHODCALLTYPE *Release)(
  15488         ISpeechGrammarRuleStateTransition *This);
  15489 
  15490     /*** IDispatch methods ***/
  15491     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  15492         ISpeechGrammarRuleStateTransition *This,
  15493         UINT *pctinfo);
  15494 
  15495     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  15496         ISpeechGrammarRuleStateTransition *This,
  15497         UINT iTInfo,
  15498         LCID lcid,
  15499         ITypeInfo **ppTInfo);
  15500 
  15501     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  15502         ISpeechGrammarRuleStateTransition *This,
  15503         REFIID riid,
  15504         LPOLESTR *rgszNames,
  15505         UINT cNames,
  15506         LCID lcid,
  15507         DISPID *rgDispId);
  15508 
  15509     HRESULT (STDMETHODCALLTYPE *Invoke)(
  15510         ISpeechGrammarRuleStateTransition *This,
  15511         DISPID dispIdMember,
  15512         REFIID riid,
  15513         LCID lcid,
  15514         WORD wFlags,
  15515         DISPPARAMS *pDispParams,
  15516         VARIANT *pVarResult,
  15517         EXCEPINFO *pExcepInfo,
  15518         UINT *puArgErr);
  15519 
  15520     /*** ISpeechGrammarRuleStateTransition methods ***/
  15521     HRESULT (STDMETHODCALLTYPE *get_Type)(
  15522         ISpeechGrammarRuleStateTransition *This,
  15523         SpeechGrammarRuleStateTransitionType *Type);
  15524 
  15525     HRESULT (STDMETHODCALLTYPE *get_Text)(
  15526         ISpeechGrammarRuleStateTransition *This,
  15527         BSTR *Text);
  15528 
  15529     HRESULT (STDMETHODCALLTYPE *get_Rule)(
  15530         ISpeechGrammarRuleStateTransition *This,
  15531         ISpeechGrammarRule **Rule);
  15532 
  15533     HRESULT (STDMETHODCALLTYPE *get_Weight)(
  15534         ISpeechGrammarRuleStateTransition *This,
  15535         VARIANT *Weight);
  15536 
  15537     HRESULT (STDMETHODCALLTYPE *get_PropertyName)(
  15538         ISpeechGrammarRuleStateTransition *This,
  15539         BSTR *PropertyName);
  15540 
  15541     HRESULT (STDMETHODCALLTYPE *get_PropertyId)(
  15542         ISpeechGrammarRuleStateTransition *This,
  15543         LONG *PropertyId);
  15544 
  15545     HRESULT (STDMETHODCALLTYPE *get_PropertyValue)(
  15546         ISpeechGrammarRuleStateTransition *This,
  15547         VARIANT *PropertyValue);
  15548 
  15549     HRESULT (STDMETHODCALLTYPE *get_NextState)(
  15550         ISpeechGrammarRuleStateTransition *This,
  15551         ISpeechGrammarRuleState **NextState);
  15552 
  15553     END_INTERFACE
  15554 } ISpeechGrammarRuleStateTransitionVtbl;
  15555 
  15556 interface ISpeechGrammarRuleStateTransition {
  15557     CONST_VTBL ISpeechGrammarRuleStateTransitionVtbl* lpVtbl;
  15558 };
  15559 
  15560 #ifdef COBJMACROS
  15561 #ifndef WIDL_C_INLINE_WRAPPERS
  15562 /*** IUnknown methods ***/
  15563 #define ISpeechGrammarRuleStateTransition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  15564 #define ISpeechGrammarRuleStateTransition_AddRef(This) (This)->lpVtbl->AddRef(This)
  15565 #define ISpeechGrammarRuleStateTransition_Release(This) (This)->lpVtbl->Release(This)
  15566 /*** IDispatch methods ***/
  15567 #define ISpeechGrammarRuleStateTransition_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  15568 #define ISpeechGrammarRuleStateTransition_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  15569 #define ISpeechGrammarRuleStateTransition_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  15570 #define ISpeechGrammarRuleStateTransition_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  15571 /*** ISpeechGrammarRuleStateTransition methods ***/
  15572 #define ISpeechGrammarRuleStateTransition_get_Type(This,Type) (This)->lpVtbl->get_Type(This,Type)
  15573 #define ISpeechGrammarRuleStateTransition_get_Text(This,Text) (This)->lpVtbl->get_Text(This,Text)
  15574 #define ISpeechGrammarRuleStateTransition_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
  15575 #define ISpeechGrammarRuleStateTransition_get_Weight(This,Weight) (This)->lpVtbl->get_Weight(This,Weight)
  15576 #define ISpeechGrammarRuleStateTransition_get_PropertyName(This,PropertyName) (This)->lpVtbl->get_PropertyName(This,PropertyName)
  15577 #define ISpeechGrammarRuleStateTransition_get_PropertyId(This,PropertyId) (This)->lpVtbl->get_PropertyId(This,PropertyId)
  15578 #define ISpeechGrammarRuleStateTransition_get_PropertyValue(This,PropertyValue) (This)->lpVtbl->get_PropertyValue(This,PropertyValue)
  15579 #define ISpeechGrammarRuleStateTransition_get_NextState(This,NextState) (This)->lpVtbl->get_NextState(This,NextState)
  15580 #else
  15581 /*** IUnknown methods ***/
  15582 static inline HRESULT ISpeechGrammarRuleStateTransition_QueryInterface(ISpeechGrammarRuleStateTransition* This,REFIID riid,void **ppvObject) {
  15583     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  15584 }
  15585 static inline ULONG ISpeechGrammarRuleStateTransition_AddRef(ISpeechGrammarRuleStateTransition* This) {
  15586     return This->lpVtbl->AddRef(This);
  15587 }
  15588 static inline ULONG ISpeechGrammarRuleStateTransition_Release(ISpeechGrammarRuleStateTransition* This) {
  15589     return This->lpVtbl->Release(This);
  15590 }
  15591 /*** IDispatch methods ***/
  15592 static inline HRESULT ISpeechGrammarRuleStateTransition_GetTypeInfoCount(ISpeechGrammarRuleStateTransition* This,UINT *pctinfo) {
  15593     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  15594 }
  15595 static inline HRESULT ISpeechGrammarRuleStateTransition_GetTypeInfo(ISpeechGrammarRuleStateTransition* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  15596     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  15597 }
  15598 static inline HRESULT ISpeechGrammarRuleStateTransition_GetIDsOfNames(ISpeechGrammarRuleStateTransition* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  15599     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  15600 }
  15601 static inline HRESULT ISpeechGrammarRuleStateTransition_Invoke(ISpeechGrammarRuleStateTransition* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  15602     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  15603 }
  15604 /*** ISpeechGrammarRuleStateTransition methods ***/
  15605 static inline HRESULT ISpeechGrammarRuleStateTransition_get_Type(ISpeechGrammarRuleStateTransition* This,SpeechGrammarRuleStateTransitionType *Type) {
  15606     return This->lpVtbl->get_Type(This,Type);
  15607 }
  15608 static inline HRESULT ISpeechGrammarRuleStateTransition_get_Text(ISpeechGrammarRuleStateTransition* This,BSTR *Text) {
  15609     return This->lpVtbl->get_Text(This,Text);
  15610 }
  15611 static inline HRESULT ISpeechGrammarRuleStateTransition_get_Rule(ISpeechGrammarRuleStateTransition* This,ISpeechGrammarRule **Rule) {
  15612     return This->lpVtbl->get_Rule(This,Rule);
  15613 }
  15614 static inline HRESULT ISpeechGrammarRuleStateTransition_get_Weight(ISpeechGrammarRuleStateTransition* This,VARIANT *Weight) {
  15615     return This->lpVtbl->get_Weight(This,Weight);
  15616 }
  15617 static inline HRESULT ISpeechGrammarRuleStateTransition_get_PropertyName(ISpeechGrammarRuleStateTransition* This,BSTR *PropertyName) {
  15618     return This->lpVtbl->get_PropertyName(This,PropertyName);
  15619 }
  15620 static inline HRESULT ISpeechGrammarRuleStateTransition_get_PropertyId(ISpeechGrammarRuleStateTransition* This,LONG *PropertyId) {
  15621     return This->lpVtbl->get_PropertyId(This,PropertyId);
  15622 }
  15623 static inline HRESULT ISpeechGrammarRuleStateTransition_get_PropertyValue(ISpeechGrammarRuleStateTransition* This,VARIANT *PropertyValue) {
  15624     return This->lpVtbl->get_PropertyValue(This,PropertyValue);
  15625 }
  15626 static inline HRESULT ISpeechGrammarRuleStateTransition_get_NextState(ISpeechGrammarRuleStateTransition* This,ISpeechGrammarRuleState **NextState) {
  15627     return This->lpVtbl->get_NextState(This,NextState);
  15628 }
  15629 #endif
  15630 #endif
  15631 
  15632 #endif
  15633 
  15634 
  15635 #endif  /* __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__ */
  15636 
  15637 /*****************************************************************************
  15638  * ISpeechTextSelectionInformation interface
  15639  */
  15640 #ifndef __ISpeechTextSelectionInformation_INTERFACE_DEFINED__
  15641 #define __ISpeechTextSelectionInformation_INTERFACE_DEFINED__
  15642 
  15643 DEFINE_GUID(IID_ISpeechTextSelectionInformation, 0x3b9c7e7a, 0x6eee, 0x4ded, 0x90,0x92, 0x11,0x65,0x72,0x79,0xad,0xbe);
  15644 #if defined(__cplusplus) && !defined(CINTERFACE)
  15645 MIDL_INTERFACE("3b9c7e7a-6eee-4ded-9092-11657279adbe")
  15646 ISpeechTextSelectionInformation : public IDispatch
  15647 {
  15648     virtual HRESULT STDMETHODCALLTYPE put_ActiveOffset(
  15649         LONG ActiveOffset) = 0;
  15650 
  15651     virtual HRESULT STDMETHODCALLTYPE get_ActiveOffset(
  15652         LONG *ActiveOffset) = 0;
  15653 
  15654     virtual HRESULT STDMETHODCALLTYPE put_ActiveLength(
  15655         LONG ActiveLength) = 0;
  15656 
  15657     virtual HRESULT STDMETHODCALLTYPE get_ActiveLength(
  15658         LONG *ActiveLength) = 0;
  15659 
  15660     virtual HRESULT STDMETHODCALLTYPE put_SelectionOffset(
  15661         LONG SelectionOffset) = 0;
  15662 
  15663     virtual HRESULT STDMETHODCALLTYPE get_SelectionOffset(
  15664         LONG *SelectionOffset) = 0;
  15665 
  15666     virtual HRESULT STDMETHODCALLTYPE put_SelectionLength(
  15667         LONG SelectionLength) = 0;
  15668 
  15669     virtual HRESULT STDMETHODCALLTYPE get_SelectionLength(
  15670         LONG *SelectionLength) = 0;
  15671 
  15672 };
  15673 #ifdef __CRT_UUID_DECL
  15674 __CRT_UUID_DECL(ISpeechTextSelectionInformation, 0x3b9c7e7a, 0x6eee, 0x4ded, 0x90,0x92, 0x11,0x65,0x72,0x79,0xad,0xbe)
  15675 #endif
  15676 #else
  15677 typedef struct ISpeechTextSelectionInformationVtbl {
  15678     BEGIN_INTERFACE
  15679 
  15680     /*** IUnknown methods ***/
  15681     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  15682         ISpeechTextSelectionInformation *This,
  15683         REFIID riid,
  15684         void **ppvObject);
  15685 
  15686     ULONG (STDMETHODCALLTYPE *AddRef)(
  15687         ISpeechTextSelectionInformation *This);
  15688 
  15689     ULONG (STDMETHODCALLTYPE *Release)(
  15690         ISpeechTextSelectionInformation *This);
  15691 
  15692     /*** IDispatch methods ***/
  15693     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  15694         ISpeechTextSelectionInformation *This,
  15695         UINT *pctinfo);
  15696 
  15697     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  15698         ISpeechTextSelectionInformation *This,
  15699         UINT iTInfo,
  15700         LCID lcid,
  15701         ITypeInfo **ppTInfo);
  15702 
  15703     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  15704         ISpeechTextSelectionInformation *This,
  15705         REFIID riid,
  15706         LPOLESTR *rgszNames,
  15707         UINT cNames,
  15708         LCID lcid,
  15709         DISPID *rgDispId);
  15710 
  15711     HRESULT (STDMETHODCALLTYPE *Invoke)(
  15712         ISpeechTextSelectionInformation *This,
  15713         DISPID dispIdMember,
  15714         REFIID riid,
  15715         LCID lcid,
  15716         WORD wFlags,
  15717         DISPPARAMS *pDispParams,
  15718         VARIANT *pVarResult,
  15719         EXCEPINFO *pExcepInfo,
  15720         UINT *puArgErr);
  15721 
  15722     /*** ISpeechTextSelectionInformation methods ***/
  15723     HRESULT (STDMETHODCALLTYPE *put_ActiveOffset)(
  15724         ISpeechTextSelectionInformation *This,
  15725         LONG ActiveOffset);
  15726 
  15727     HRESULT (STDMETHODCALLTYPE *get_ActiveOffset)(
  15728         ISpeechTextSelectionInformation *This,
  15729         LONG *ActiveOffset);
  15730 
  15731     HRESULT (STDMETHODCALLTYPE *put_ActiveLength)(
  15732         ISpeechTextSelectionInformation *This,
  15733         LONG ActiveLength);
  15734 
  15735     HRESULT (STDMETHODCALLTYPE *get_ActiveLength)(
  15736         ISpeechTextSelectionInformation *This,
  15737         LONG *ActiveLength);
  15738 
  15739     HRESULT (STDMETHODCALLTYPE *put_SelectionOffset)(
  15740         ISpeechTextSelectionInformation *This,
  15741         LONG SelectionOffset);
  15742 
  15743     HRESULT (STDMETHODCALLTYPE *get_SelectionOffset)(
  15744         ISpeechTextSelectionInformation *This,
  15745         LONG *SelectionOffset);
  15746 
  15747     HRESULT (STDMETHODCALLTYPE *put_SelectionLength)(
  15748         ISpeechTextSelectionInformation *This,
  15749         LONG SelectionLength);
  15750 
  15751     HRESULT (STDMETHODCALLTYPE *get_SelectionLength)(
  15752         ISpeechTextSelectionInformation *This,
  15753         LONG *SelectionLength);
  15754 
  15755     END_INTERFACE
  15756 } ISpeechTextSelectionInformationVtbl;
  15757 
  15758 interface ISpeechTextSelectionInformation {
  15759     CONST_VTBL ISpeechTextSelectionInformationVtbl* lpVtbl;
  15760 };
  15761 
  15762 #ifdef COBJMACROS
  15763 #ifndef WIDL_C_INLINE_WRAPPERS
  15764 /*** IUnknown methods ***/
  15765 #define ISpeechTextSelectionInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  15766 #define ISpeechTextSelectionInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
  15767 #define ISpeechTextSelectionInformation_Release(This) (This)->lpVtbl->Release(This)
  15768 /*** IDispatch methods ***/
  15769 #define ISpeechTextSelectionInformation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  15770 #define ISpeechTextSelectionInformation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  15771 #define ISpeechTextSelectionInformation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  15772 #define ISpeechTextSelectionInformation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  15773 /*** ISpeechTextSelectionInformation methods ***/
  15774 #define ISpeechTextSelectionInformation_put_ActiveOffset(This,ActiveOffset) (This)->lpVtbl->put_ActiveOffset(This,ActiveOffset)
  15775 #define ISpeechTextSelectionInformation_get_ActiveOffset(This,ActiveOffset) (This)->lpVtbl->get_ActiveOffset(This,ActiveOffset)
  15776 #define ISpeechTextSelectionInformation_put_ActiveLength(This,ActiveLength) (This)->lpVtbl->put_ActiveLength(This,ActiveLength)
  15777 #define ISpeechTextSelectionInformation_get_ActiveLength(This,ActiveLength) (This)->lpVtbl->get_ActiveLength(This,ActiveLength)
  15778 #define ISpeechTextSelectionInformation_put_SelectionOffset(This,SelectionOffset) (This)->lpVtbl->put_SelectionOffset(This,SelectionOffset)
  15779 #define ISpeechTextSelectionInformation_get_SelectionOffset(This,SelectionOffset) (This)->lpVtbl->get_SelectionOffset(This,SelectionOffset)
  15780 #define ISpeechTextSelectionInformation_put_SelectionLength(This,SelectionLength) (This)->lpVtbl->put_SelectionLength(This,SelectionLength)
  15781 #define ISpeechTextSelectionInformation_get_SelectionLength(This,SelectionLength) (This)->lpVtbl->get_SelectionLength(This,SelectionLength)
  15782 #else
  15783 /*** IUnknown methods ***/
  15784 static inline HRESULT ISpeechTextSelectionInformation_QueryInterface(ISpeechTextSelectionInformation* This,REFIID riid,void **ppvObject) {
  15785     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  15786 }
  15787 static inline ULONG ISpeechTextSelectionInformation_AddRef(ISpeechTextSelectionInformation* This) {
  15788     return This->lpVtbl->AddRef(This);
  15789 }
  15790 static inline ULONG ISpeechTextSelectionInformation_Release(ISpeechTextSelectionInformation* This) {
  15791     return This->lpVtbl->Release(This);
  15792 }
  15793 /*** IDispatch methods ***/
  15794 static inline HRESULT ISpeechTextSelectionInformation_GetTypeInfoCount(ISpeechTextSelectionInformation* This,UINT *pctinfo) {
  15795     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  15796 }
  15797 static inline HRESULT ISpeechTextSelectionInformation_GetTypeInfo(ISpeechTextSelectionInformation* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  15798     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  15799 }
  15800 static inline HRESULT ISpeechTextSelectionInformation_GetIDsOfNames(ISpeechTextSelectionInformation* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  15801     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  15802 }
  15803 static inline HRESULT ISpeechTextSelectionInformation_Invoke(ISpeechTextSelectionInformation* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  15804     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  15805 }
  15806 /*** ISpeechTextSelectionInformation methods ***/
  15807 static inline HRESULT ISpeechTextSelectionInformation_put_ActiveOffset(ISpeechTextSelectionInformation* This,LONG ActiveOffset) {
  15808     return This->lpVtbl->put_ActiveOffset(This,ActiveOffset);
  15809 }
  15810 static inline HRESULT ISpeechTextSelectionInformation_get_ActiveOffset(ISpeechTextSelectionInformation* This,LONG *ActiveOffset) {
  15811     return This->lpVtbl->get_ActiveOffset(This,ActiveOffset);
  15812 }
  15813 static inline HRESULT ISpeechTextSelectionInformation_put_ActiveLength(ISpeechTextSelectionInformation* This,LONG ActiveLength) {
  15814     return This->lpVtbl->put_ActiveLength(This,ActiveLength);
  15815 }
  15816 static inline HRESULT ISpeechTextSelectionInformation_get_ActiveLength(ISpeechTextSelectionInformation* This,LONG *ActiveLength) {
  15817     return This->lpVtbl->get_ActiveLength(This,ActiveLength);
  15818 }
  15819 static inline HRESULT ISpeechTextSelectionInformation_put_SelectionOffset(ISpeechTextSelectionInformation* This,LONG SelectionOffset) {
  15820     return This->lpVtbl->put_SelectionOffset(This,SelectionOffset);
  15821 }
  15822 static inline HRESULT ISpeechTextSelectionInformation_get_SelectionOffset(ISpeechTextSelectionInformation* This,LONG *SelectionOffset) {
  15823     return This->lpVtbl->get_SelectionOffset(This,SelectionOffset);
  15824 }
  15825 static inline HRESULT ISpeechTextSelectionInformation_put_SelectionLength(ISpeechTextSelectionInformation* This,LONG SelectionLength) {
  15826     return This->lpVtbl->put_SelectionLength(This,SelectionLength);
  15827 }
  15828 static inline HRESULT ISpeechTextSelectionInformation_get_SelectionLength(ISpeechTextSelectionInformation* This,LONG *SelectionLength) {
  15829     return This->lpVtbl->get_SelectionLength(This,SelectionLength);
  15830 }
  15831 #endif
  15832 #endif
  15833 
  15834 #endif
  15835 
  15836 
  15837 #endif  /* __ISpeechTextSelectionInformation_INTERFACE_DEFINED__ */
  15838 
  15839 /*****************************************************************************
  15840  * ISpeechRecoResult interface
  15841  */
  15842 #ifndef __ISpeechRecoResult_INTERFACE_DEFINED__
  15843 #define __ISpeechRecoResult_INTERFACE_DEFINED__
  15844 
  15845 DEFINE_GUID(IID_ISpeechRecoResult, 0xed2879cf, 0xced9, 0x4ee6, 0xa5,0x34, 0xde,0x01,0x91,0xd5,0x46,0x8d);
  15846 #if defined(__cplusplus) && !defined(CINTERFACE)
  15847 MIDL_INTERFACE("ed2879cf-ced9-4ee6-a534-de0191d5468d")
  15848 ISpeechRecoResult : public IDispatch
  15849 {
  15850     virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
  15851         ISpeechRecoContext **RecoContext) = 0;
  15852 
  15853     virtual HRESULT STDMETHODCALLTYPE get_Times(
  15854         ISpeechRecoResultTimes **Times) = 0;
  15855 
  15856     virtual HRESULT STDMETHODCALLTYPE putref_AudioFormat(
  15857         ISpeechAudioFormat *Format) = 0;
  15858 
  15859     virtual HRESULT STDMETHODCALLTYPE get_AudioFormat(
  15860         ISpeechAudioFormat **Format) = 0;
  15861 
  15862     virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
  15863         ISpeechPhraseInfo **PhraseInfo) = 0;
  15864 
  15865     virtual HRESULT STDMETHODCALLTYPE Alternates(
  15866         LONG RequestCount,
  15867         LONG StartElement,
  15868         LONG Elements,
  15869         ISpeechPhraseAlternates **Alternates) = 0;
  15870 
  15871     virtual HRESULT STDMETHODCALLTYPE Audio(
  15872         LONG StartElement,
  15873         LONG Elements,
  15874         ISpeechMemoryStream **Stream) = 0;
  15875 
  15876     virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
  15877         LONG StartElement,
  15878         LONG Elements,
  15879         SpeechVoiceSpeakFlags Flags,
  15880         LONG *StreamNumber) = 0;
  15881 
  15882     virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
  15883         VARIANT *ResultBlock) = 0;
  15884 
  15885     virtual HRESULT STDMETHODCALLTYPE DiscardResultInfo(
  15886         SpeechDiscardType ValueTypes) = 0;
  15887 
  15888 };
  15889 #ifdef __CRT_UUID_DECL
  15890 __CRT_UUID_DECL(ISpeechRecoResult, 0xed2879cf, 0xced9, 0x4ee6, 0xa5,0x34, 0xde,0x01,0x91,0xd5,0x46,0x8d)
  15891 #endif
  15892 #else
  15893 typedef struct ISpeechRecoResultVtbl {
  15894     BEGIN_INTERFACE
  15895 
  15896     /*** IUnknown methods ***/
  15897     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  15898         ISpeechRecoResult *This,
  15899         REFIID riid,
  15900         void **ppvObject);
  15901 
  15902     ULONG (STDMETHODCALLTYPE *AddRef)(
  15903         ISpeechRecoResult *This);
  15904 
  15905     ULONG (STDMETHODCALLTYPE *Release)(
  15906         ISpeechRecoResult *This);
  15907 
  15908     /*** IDispatch methods ***/
  15909     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  15910         ISpeechRecoResult *This,
  15911         UINT *pctinfo);
  15912 
  15913     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  15914         ISpeechRecoResult *This,
  15915         UINT iTInfo,
  15916         LCID lcid,
  15917         ITypeInfo **ppTInfo);
  15918 
  15919     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  15920         ISpeechRecoResult *This,
  15921         REFIID riid,
  15922         LPOLESTR *rgszNames,
  15923         UINT cNames,
  15924         LCID lcid,
  15925         DISPID *rgDispId);
  15926 
  15927     HRESULT (STDMETHODCALLTYPE *Invoke)(
  15928         ISpeechRecoResult *This,
  15929         DISPID dispIdMember,
  15930         REFIID riid,
  15931         LCID lcid,
  15932         WORD wFlags,
  15933         DISPPARAMS *pDispParams,
  15934         VARIANT *pVarResult,
  15935         EXCEPINFO *pExcepInfo,
  15936         UINT *puArgErr);
  15937 
  15938     /*** ISpeechRecoResult methods ***/
  15939     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
  15940         ISpeechRecoResult *This,
  15941         ISpeechRecoContext **RecoContext);
  15942 
  15943     HRESULT (STDMETHODCALLTYPE *get_Times)(
  15944         ISpeechRecoResult *This,
  15945         ISpeechRecoResultTimes **Times);
  15946 
  15947     HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
  15948         ISpeechRecoResult *This,
  15949         ISpeechAudioFormat *Format);
  15950 
  15951     HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
  15952         ISpeechRecoResult *This,
  15953         ISpeechAudioFormat **Format);
  15954 
  15955     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
  15956         ISpeechRecoResult *This,
  15957         ISpeechPhraseInfo **PhraseInfo);
  15958 
  15959     HRESULT (STDMETHODCALLTYPE *Alternates)(
  15960         ISpeechRecoResult *This,
  15961         LONG RequestCount,
  15962         LONG StartElement,
  15963         LONG Elements,
  15964         ISpeechPhraseAlternates **Alternates);
  15965 
  15966     HRESULT (STDMETHODCALLTYPE *Audio)(
  15967         ISpeechRecoResult *This,
  15968         LONG StartElement,
  15969         LONG Elements,
  15970         ISpeechMemoryStream **Stream);
  15971 
  15972     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
  15973         ISpeechRecoResult *This,
  15974         LONG StartElement,
  15975         LONG Elements,
  15976         SpeechVoiceSpeakFlags Flags,
  15977         LONG *StreamNumber);
  15978 
  15979     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
  15980         ISpeechRecoResult *This,
  15981         VARIANT *ResultBlock);
  15982 
  15983     HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
  15984         ISpeechRecoResult *This,
  15985         SpeechDiscardType ValueTypes);
  15986 
  15987     END_INTERFACE
  15988 } ISpeechRecoResultVtbl;
  15989 
  15990 interface ISpeechRecoResult {
  15991     CONST_VTBL ISpeechRecoResultVtbl* lpVtbl;
  15992 };
  15993 
  15994 #ifdef COBJMACROS
  15995 #ifndef WIDL_C_INLINE_WRAPPERS
  15996 /*** IUnknown methods ***/
  15997 #define ISpeechRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  15998 #define ISpeechRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
  15999 #define ISpeechRecoResult_Release(This) (This)->lpVtbl->Release(This)
  16000 /*** IDispatch methods ***/
  16001 #define ISpeechRecoResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  16002 #define ISpeechRecoResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  16003 #define ISpeechRecoResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  16004 #define ISpeechRecoResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  16005 /*** ISpeechRecoResult methods ***/
  16006 #define ISpeechRecoResult_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
  16007 #define ISpeechRecoResult_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
  16008 #define ISpeechRecoResult_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
  16009 #define ISpeechRecoResult_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
  16010 #define ISpeechRecoResult_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
  16011 #define ISpeechRecoResult_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
  16012 #define ISpeechRecoResult_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
  16013 #define ISpeechRecoResult_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
  16014 #define ISpeechRecoResult_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
  16015 #define ISpeechRecoResult_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
  16016 #else
  16017 /*** IUnknown methods ***/
  16018 static inline HRESULT ISpeechRecoResult_QueryInterface(ISpeechRecoResult* This,REFIID riid,void **ppvObject) {
  16019     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  16020 }
  16021 static inline ULONG ISpeechRecoResult_AddRef(ISpeechRecoResult* This) {
  16022     return This->lpVtbl->AddRef(This);
  16023 }
  16024 static inline ULONG ISpeechRecoResult_Release(ISpeechRecoResult* This) {
  16025     return This->lpVtbl->Release(This);
  16026 }
  16027 /*** IDispatch methods ***/
  16028 static inline HRESULT ISpeechRecoResult_GetTypeInfoCount(ISpeechRecoResult* This,UINT *pctinfo) {
  16029     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  16030 }
  16031 static inline HRESULT ISpeechRecoResult_GetTypeInfo(ISpeechRecoResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  16032     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  16033 }
  16034 static inline HRESULT ISpeechRecoResult_GetIDsOfNames(ISpeechRecoResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  16035     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  16036 }
  16037 static inline HRESULT ISpeechRecoResult_Invoke(ISpeechRecoResult* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  16038     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  16039 }
  16040 /*** ISpeechRecoResult methods ***/
  16041 static inline HRESULT ISpeechRecoResult_get_RecoContext(ISpeechRecoResult* This,ISpeechRecoContext **RecoContext) {
  16042     return This->lpVtbl->get_RecoContext(This,RecoContext);
  16043 }
  16044 static inline HRESULT ISpeechRecoResult_get_Times(ISpeechRecoResult* This,ISpeechRecoResultTimes **Times) {
  16045     return This->lpVtbl->get_Times(This,Times);
  16046 }
  16047 static inline HRESULT ISpeechRecoResult_putref_AudioFormat(ISpeechRecoResult* This,ISpeechAudioFormat *Format) {
  16048     return This->lpVtbl->putref_AudioFormat(This,Format);
  16049 }
  16050 static inline HRESULT ISpeechRecoResult_get_AudioFormat(ISpeechRecoResult* This,ISpeechAudioFormat **Format) {
  16051     return This->lpVtbl->get_AudioFormat(This,Format);
  16052 }
  16053 static inline HRESULT ISpeechRecoResult_get_PhraseInfo(ISpeechRecoResult* This,ISpeechPhraseInfo **PhraseInfo) {
  16054     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
  16055 }
  16056 static inline HRESULT ISpeechRecoResult_Alternates(ISpeechRecoResult* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
  16057     return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
  16058 }
  16059 static inline HRESULT ISpeechRecoResult_Audio(ISpeechRecoResult* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
  16060     return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
  16061 }
  16062 static inline HRESULT ISpeechRecoResult_SpeakAudio(ISpeechRecoResult* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
  16063     return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
  16064 }
  16065 static inline HRESULT ISpeechRecoResult_SaveToMemory(ISpeechRecoResult* This,VARIANT *ResultBlock) {
  16066     return This->lpVtbl->SaveToMemory(This,ResultBlock);
  16067 }
  16068 static inline HRESULT ISpeechRecoResult_DiscardResultInfo(ISpeechRecoResult* This,SpeechDiscardType ValueTypes) {
  16069     return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
  16070 }
  16071 #endif
  16072 #endif
  16073 
  16074 #endif
  16075 
  16076 
  16077 #endif  /* __ISpeechRecoResult_INTERFACE_DEFINED__ */
  16078 
  16079 /*****************************************************************************
  16080  * ISpeechPhraseInfoBuilder interface
  16081  */
  16082 #ifndef __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__
  16083 #define __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__
  16084 
  16085 DEFINE_GUID(IID_ISpeechPhraseInfoBuilder, 0x3b151836, 0xdf3a, 0x4e0a, 0x84,0x6c, 0xd2,0xad,0xc9,0x33,0x43,0x33);
  16086 #if defined(__cplusplus) && !defined(CINTERFACE)
  16087 MIDL_INTERFACE("3b151836-df3a-4e0a-846c-d2adc9334333")
  16088 ISpeechPhraseInfoBuilder : public IDispatch
  16089 {
  16090     virtual HRESULT STDMETHODCALLTYPE RestorePhraseFromMemory(
  16091         VARIANT *PhraseInMemory,
  16092         ISpeechPhraseInfo **PhraseInfo) = 0;
  16093 
  16094 };
  16095 #ifdef __CRT_UUID_DECL
  16096 __CRT_UUID_DECL(ISpeechPhraseInfoBuilder, 0x3b151836, 0xdf3a, 0x4e0a, 0x84,0x6c, 0xd2,0xad,0xc9,0x33,0x43,0x33)
  16097 #endif
  16098 #else
  16099 typedef struct ISpeechPhraseInfoBuilderVtbl {
  16100     BEGIN_INTERFACE
  16101 
  16102     /*** IUnknown methods ***/
  16103     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  16104         ISpeechPhraseInfoBuilder *This,
  16105         REFIID riid,
  16106         void **ppvObject);
  16107 
  16108     ULONG (STDMETHODCALLTYPE *AddRef)(
  16109         ISpeechPhraseInfoBuilder *This);
  16110 
  16111     ULONG (STDMETHODCALLTYPE *Release)(
  16112         ISpeechPhraseInfoBuilder *This);
  16113 
  16114     /*** IDispatch methods ***/
  16115     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  16116         ISpeechPhraseInfoBuilder *This,
  16117         UINT *pctinfo);
  16118 
  16119     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  16120         ISpeechPhraseInfoBuilder *This,
  16121         UINT iTInfo,
  16122         LCID lcid,
  16123         ITypeInfo **ppTInfo);
  16124 
  16125     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  16126         ISpeechPhraseInfoBuilder *This,
  16127         REFIID riid,
  16128         LPOLESTR *rgszNames,
  16129         UINT cNames,
  16130         LCID lcid,
  16131         DISPID *rgDispId);
  16132 
  16133     HRESULT (STDMETHODCALLTYPE *Invoke)(
  16134         ISpeechPhraseInfoBuilder *This,
  16135         DISPID dispIdMember,
  16136         REFIID riid,
  16137         LCID lcid,
  16138         WORD wFlags,
  16139         DISPPARAMS *pDispParams,
  16140         VARIANT *pVarResult,
  16141         EXCEPINFO *pExcepInfo,
  16142         UINT *puArgErr);
  16143 
  16144     /*** ISpeechPhraseInfoBuilder methods ***/
  16145     HRESULT (STDMETHODCALLTYPE *RestorePhraseFromMemory)(
  16146         ISpeechPhraseInfoBuilder *This,
  16147         VARIANT *PhraseInMemory,
  16148         ISpeechPhraseInfo **PhraseInfo);
  16149 
  16150     END_INTERFACE
  16151 } ISpeechPhraseInfoBuilderVtbl;
  16152 
  16153 interface ISpeechPhraseInfoBuilder {
  16154     CONST_VTBL ISpeechPhraseInfoBuilderVtbl* lpVtbl;
  16155 };
  16156 
  16157 #ifdef COBJMACROS
  16158 #ifndef WIDL_C_INLINE_WRAPPERS
  16159 /*** IUnknown methods ***/
  16160 #define ISpeechPhraseInfoBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  16161 #define ISpeechPhraseInfoBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
  16162 #define ISpeechPhraseInfoBuilder_Release(This) (This)->lpVtbl->Release(This)
  16163 /*** IDispatch methods ***/
  16164 #define ISpeechPhraseInfoBuilder_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  16165 #define ISpeechPhraseInfoBuilder_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  16166 #define ISpeechPhraseInfoBuilder_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  16167 #define ISpeechPhraseInfoBuilder_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  16168 /*** ISpeechPhraseInfoBuilder methods ***/
  16169 #define ISpeechPhraseInfoBuilder_RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo) (This)->lpVtbl->RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo)
  16170 #else
  16171 /*** IUnknown methods ***/
  16172 static inline HRESULT ISpeechPhraseInfoBuilder_QueryInterface(ISpeechPhraseInfoBuilder* This,REFIID riid,void **ppvObject) {
  16173     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  16174 }
  16175 static inline ULONG ISpeechPhraseInfoBuilder_AddRef(ISpeechPhraseInfoBuilder* This) {
  16176     return This->lpVtbl->AddRef(This);
  16177 }
  16178 static inline ULONG ISpeechPhraseInfoBuilder_Release(ISpeechPhraseInfoBuilder* This) {
  16179     return This->lpVtbl->Release(This);
  16180 }
  16181 /*** IDispatch methods ***/
  16182 static inline HRESULT ISpeechPhraseInfoBuilder_GetTypeInfoCount(ISpeechPhraseInfoBuilder* This,UINT *pctinfo) {
  16183     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  16184 }
  16185 static inline HRESULT ISpeechPhraseInfoBuilder_GetTypeInfo(ISpeechPhraseInfoBuilder* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  16186     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  16187 }
  16188 static inline HRESULT ISpeechPhraseInfoBuilder_GetIDsOfNames(ISpeechPhraseInfoBuilder* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  16189     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  16190 }
  16191 static inline HRESULT ISpeechPhraseInfoBuilder_Invoke(ISpeechPhraseInfoBuilder* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  16192     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  16193 }
  16194 /*** ISpeechPhraseInfoBuilder methods ***/
  16195 static inline HRESULT ISpeechPhraseInfoBuilder_RestorePhraseFromMemory(ISpeechPhraseInfoBuilder* This,VARIANT *PhraseInMemory,ISpeechPhraseInfo **PhraseInfo) {
  16196     return This->lpVtbl->RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo);
  16197 }
  16198 #endif
  16199 #endif
  16200 
  16201 #endif
  16202 
  16203 
  16204 #endif  /* __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__ */
  16205 
  16206 /*****************************************************************************
  16207  * ISpeechRecoResultTimes interface
  16208  */
  16209 #ifndef __ISpeechRecoResultTimes_INTERFACE_DEFINED__
  16210 #define __ISpeechRecoResultTimes_INTERFACE_DEFINED__
  16211 
  16212 DEFINE_GUID(IID_ISpeechRecoResultTimes, 0x62b3b8fb, 0xf6e7, 0x41be, 0xbd,0xcb, 0x05,0x6b,0x1c,0x29,0xef,0xc0);
  16213 #if defined(__cplusplus) && !defined(CINTERFACE)
  16214 MIDL_INTERFACE("62b3b8fb-f6e7-41be-bdcb-056b1c29efc0")
  16215 ISpeechRecoResultTimes : public IDispatch
  16216 {
  16217     virtual HRESULT STDMETHODCALLTYPE get_StreamTime(
  16218         VARIANT *Time) = 0;
  16219 
  16220     virtual HRESULT STDMETHODCALLTYPE get_Length(
  16221         VARIANT *Length) = 0;
  16222 
  16223     virtual HRESULT STDMETHODCALLTYPE get_TickCount(
  16224         LONG *TickCount) = 0;
  16225 
  16226     virtual HRESULT STDMETHODCALLTYPE get_OffsetFromStart(
  16227         VARIANT *OffsetFromStart) = 0;
  16228 
  16229 };
  16230 #ifdef __CRT_UUID_DECL
  16231 __CRT_UUID_DECL(ISpeechRecoResultTimes, 0x62b3b8fb, 0xf6e7, 0x41be, 0xbd,0xcb, 0x05,0x6b,0x1c,0x29,0xef,0xc0)
  16232 #endif
  16233 #else
  16234 typedef struct ISpeechRecoResultTimesVtbl {
  16235     BEGIN_INTERFACE
  16236 
  16237     /*** IUnknown methods ***/
  16238     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  16239         ISpeechRecoResultTimes *This,
  16240         REFIID riid,
  16241         void **ppvObject);
  16242 
  16243     ULONG (STDMETHODCALLTYPE *AddRef)(
  16244         ISpeechRecoResultTimes *This);
  16245 
  16246     ULONG (STDMETHODCALLTYPE *Release)(
  16247         ISpeechRecoResultTimes *This);
  16248 
  16249     /*** IDispatch methods ***/
  16250     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  16251         ISpeechRecoResultTimes *This,
  16252         UINT *pctinfo);
  16253 
  16254     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  16255         ISpeechRecoResultTimes *This,
  16256         UINT iTInfo,
  16257         LCID lcid,
  16258         ITypeInfo **ppTInfo);
  16259 
  16260     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  16261         ISpeechRecoResultTimes *This,
  16262         REFIID riid,
  16263         LPOLESTR *rgszNames,
  16264         UINT cNames,
  16265         LCID lcid,
  16266         DISPID *rgDispId);
  16267 
  16268     HRESULT (STDMETHODCALLTYPE *Invoke)(
  16269         ISpeechRecoResultTimes *This,
  16270         DISPID dispIdMember,
  16271         REFIID riid,
  16272         LCID lcid,
  16273         WORD wFlags,
  16274         DISPPARAMS *pDispParams,
  16275         VARIANT *pVarResult,
  16276         EXCEPINFO *pExcepInfo,
  16277         UINT *puArgErr);
  16278 
  16279     /*** ISpeechRecoResultTimes methods ***/
  16280     HRESULT (STDMETHODCALLTYPE *get_StreamTime)(
  16281         ISpeechRecoResultTimes *This,
  16282         VARIANT *Time);
  16283 
  16284     HRESULT (STDMETHODCALLTYPE *get_Length)(
  16285         ISpeechRecoResultTimes *This,
  16286         VARIANT *Length);
  16287 
  16288     HRESULT (STDMETHODCALLTYPE *get_TickCount)(
  16289         ISpeechRecoResultTimes *This,
  16290         LONG *TickCount);
  16291 
  16292     HRESULT (STDMETHODCALLTYPE *get_OffsetFromStart)(
  16293         ISpeechRecoResultTimes *This,
  16294         VARIANT *OffsetFromStart);
  16295 
  16296     END_INTERFACE
  16297 } ISpeechRecoResultTimesVtbl;
  16298 
  16299 interface ISpeechRecoResultTimes {
  16300     CONST_VTBL ISpeechRecoResultTimesVtbl* lpVtbl;
  16301 };
  16302 
  16303 #ifdef COBJMACROS
  16304 #ifndef WIDL_C_INLINE_WRAPPERS
  16305 /*** IUnknown methods ***/
  16306 #define ISpeechRecoResultTimes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  16307 #define ISpeechRecoResultTimes_AddRef(This) (This)->lpVtbl->AddRef(This)
  16308 #define ISpeechRecoResultTimes_Release(This) (This)->lpVtbl->Release(This)
  16309 /*** IDispatch methods ***/
  16310 #define ISpeechRecoResultTimes_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  16311 #define ISpeechRecoResultTimes_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  16312 #define ISpeechRecoResultTimes_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  16313 #define ISpeechRecoResultTimes_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  16314 /*** ISpeechRecoResultTimes methods ***/
  16315 #define ISpeechRecoResultTimes_get_StreamTime(This,Time) (This)->lpVtbl->get_StreamTime(This,Time)
  16316 #define ISpeechRecoResultTimes_get_Length(This,Length) (This)->lpVtbl->get_Length(This,Length)
  16317 #define ISpeechRecoResultTimes_get_TickCount(This,TickCount) (This)->lpVtbl->get_TickCount(This,TickCount)
  16318 #define ISpeechRecoResultTimes_get_OffsetFromStart(This,OffsetFromStart) (This)->lpVtbl->get_OffsetFromStart(This,OffsetFromStart)
  16319 #else
  16320 /*** IUnknown methods ***/
  16321 static inline HRESULT ISpeechRecoResultTimes_QueryInterface(ISpeechRecoResultTimes* This,REFIID riid,void **ppvObject) {
  16322     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  16323 }
  16324 static inline ULONG ISpeechRecoResultTimes_AddRef(ISpeechRecoResultTimes* This) {
  16325     return This->lpVtbl->AddRef(This);
  16326 }
  16327 static inline ULONG ISpeechRecoResultTimes_Release(ISpeechRecoResultTimes* This) {
  16328     return This->lpVtbl->Release(This);
  16329 }
  16330 /*** IDispatch methods ***/
  16331 static inline HRESULT ISpeechRecoResultTimes_GetTypeInfoCount(ISpeechRecoResultTimes* This,UINT *pctinfo) {
  16332     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  16333 }
  16334 static inline HRESULT ISpeechRecoResultTimes_GetTypeInfo(ISpeechRecoResultTimes* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  16335     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  16336 }
  16337 static inline HRESULT ISpeechRecoResultTimes_GetIDsOfNames(ISpeechRecoResultTimes* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  16338     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  16339 }
  16340 static inline HRESULT ISpeechRecoResultTimes_Invoke(ISpeechRecoResultTimes* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  16341     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  16342 }
  16343 /*** ISpeechRecoResultTimes methods ***/
  16344 static inline HRESULT ISpeechRecoResultTimes_get_StreamTime(ISpeechRecoResultTimes* This,VARIANT *Time) {
  16345     return This->lpVtbl->get_StreamTime(This,Time);
  16346 }
  16347 static inline HRESULT ISpeechRecoResultTimes_get_Length(ISpeechRecoResultTimes* This,VARIANT *Length) {
  16348     return This->lpVtbl->get_Length(This,Length);
  16349 }
  16350 static inline HRESULT ISpeechRecoResultTimes_get_TickCount(ISpeechRecoResultTimes* This,LONG *TickCount) {
  16351     return This->lpVtbl->get_TickCount(This,TickCount);
  16352 }
  16353 static inline HRESULT ISpeechRecoResultTimes_get_OffsetFromStart(ISpeechRecoResultTimes* This,VARIANT *OffsetFromStart) {
  16354     return This->lpVtbl->get_OffsetFromStart(This,OffsetFromStart);
  16355 }
  16356 #endif
  16357 #endif
  16358 
  16359 #endif
  16360 
  16361 
  16362 #endif  /* __ISpeechRecoResultTimes_INTERFACE_DEFINED__ */
  16363 
  16364 /*****************************************************************************
  16365  * ISpeechPhraseAlternate interface
  16366  */
  16367 #ifndef __ISpeechPhraseAlternate_INTERFACE_DEFINED__
  16368 #define __ISpeechPhraseAlternate_INTERFACE_DEFINED__
  16369 
  16370 DEFINE_GUID(IID_ISpeechPhraseAlternate, 0x27864a2a, 0x2b9f, 0x4cb8, 0x92,0xd3, 0x0d,0x27,0x22,0xfd,0x1e,0x73);
  16371 #if defined(__cplusplus) && !defined(CINTERFACE)
  16372 MIDL_INTERFACE("27864a2a-2b9f-4cb8-92d3-0d2722fd1e73")
  16373 ISpeechPhraseAlternate : public IDispatch
  16374 {
  16375     virtual HRESULT STDMETHODCALLTYPE get_RecoResult(
  16376         ISpeechRecoResult **RecoResult) = 0;
  16377 
  16378     virtual HRESULT STDMETHODCALLTYPE get_StartElementInResult(
  16379         LONG *StartElement) = 0;
  16380 
  16381     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElementsInResult(
  16382         LONG *NumberOfElements) = 0;
  16383 
  16384     virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
  16385         ISpeechPhraseInfo **PhraseInfo) = 0;
  16386 
  16387     virtual HRESULT STDMETHODCALLTYPE Commit(
  16388         ) = 0;
  16389 
  16390 };
  16391 #ifdef __CRT_UUID_DECL
  16392 __CRT_UUID_DECL(ISpeechPhraseAlternate, 0x27864a2a, 0x2b9f, 0x4cb8, 0x92,0xd3, 0x0d,0x27,0x22,0xfd,0x1e,0x73)
  16393 #endif
  16394 #else
  16395 typedef struct ISpeechPhraseAlternateVtbl {
  16396     BEGIN_INTERFACE
  16397 
  16398     /*** IUnknown methods ***/
  16399     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  16400         ISpeechPhraseAlternate *This,
  16401         REFIID riid,
  16402         void **ppvObject);
  16403 
  16404     ULONG (STDMETHODCALLTYPE *AddRef)(
  16405         ISpeechPhraseAlternate *This);
  16406 
  16407     ULONG (STDMETHODCALLTYPE *Release)(
  16408         ISpeechPhraseAlternate *This);
  16409 
  16410     /*** IDispatch methods ***/
  16411     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  16412         ISpeechPhraseAlternate *This,
  16413         UINT *pctinfo);
  16414 
  16415     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  16416         ISpeechPhraseAlternate *This,
  16417         UINT iTInfo,
  16418         LCID lcid,
  16419         ITypeInfo **ppTInfo);
  16420 
  16421     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  16422         ISpeechPhraseAlternate *This,
  16423         REFIID riid,
  16424         LPOLESTR *rgszNames,
  16425         UINT cNames,
  16426         LCID lcid,
  16427         DISPID *rgDispId);
  16428 
  16429     HRESULT (STDMETHODCALLTYPE *Invoke)(
  16430         ISpeechPhraseAlternate *This,
  16431         DISPID dispIdMember,
  16432         REFIID riid,
  16433         LCID lcid,
  16434         WORD wFlags,
  16435         DISPPARAMS *pDispParams,
  16436         VARIANT *pVarResult,
  16437         EXCEPINFO *pExcepInfo,
  16438         UINT *puArgErr);
  16439 
  16440     /*** ISpeechPhraseAlternate methods ***/
  16441     HRESULT (STDMETHODCALLTYPE *get_RecoResult)(
  16442         ISpeechPhraseAlternate *This,
  16443         ISpeechRecoResult **RecoResult);
  16444 
  16445     HRESULT (STDMETHODCALLTYPE *get_StartElementInResult)(
  16446         ISpeechPhraseAlternate *This,
  16447         LONG *StartElement);
  16448 
  16449     HRESULT (STDMETHODCALLTYPE *get_NumberOfElementsInResult)(
  16450         ISpeechPhraseAlternate *This,
  16451         LONG *NumberOfElements);
  16452 
  16453     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
  16454         ISpeechPhraseAlternate *This,
  16455         ISpeechPhraseInfo **PhraseInfo);
  16456 
  16457     HRESULT (STDMETHODCALLTYPE *Commit)(
  16458         ISpeechPhraseAlternate *This);
  16459 
  16460     END_INTERFACE
  16461 } ISpeechPhraseAlternateVtbl;
  16462 
  16463 interface ISpeechPhraseAlternate {
  16464     CONST_VTBL ISpeechPhraseAlternateVtbl* lpVtbl;
  16465 };
  16466 
  16467 #ifdef COBJMACROS
  16468 #ifndef WIDL_C_INLINE_WRAPPERS
  16469 /*** IUnknown methods ***/
  16470 #define ISpeechPhraseAlternate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  16471 #define ISpeechPhraseAlternate_AddRef(This) (This)->lpVtbl->AddRef(This)
  16472 #define ISpeechPhraseAlternate_Release(This) (This)->lpVtbl->Release(This)
  16473 /*** IDispatch methods ***/
  16474 #define ISpeechPhraseAlternate_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  16475 #define ISpeechPhraseAlternate_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  16476 #define ISpeechPhraseAlternate_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  16477 #define ISpeechPhraseAlternate_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  16478 /*** ISpeechPhraseAlternate methods ***/
  16479 #define ISpeechPhraseAlternate_get_RecoResult(This,RecoResult) (This)->lpVtbl->get_RecoResult(This,RecoResult)
  16480 #define ISpeechPhraseAlternate_get_StartElementInResult(This,StartElement) (This)->lpVtbl->get_StartElementInResult(This,StartElement)
  16481 #define ISpeechPhraseAlternate_get_NumberOfElementsInResult(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElementsInResult(This,NumberOfElements)
  16482 #define ISpeechPhraseAlternate_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
  16483 #define ISpeechPhraseAlternate_Commit(This) (This)->lpVtbl->Commit(This)
  16484 #else
  16485 /*** IUnknown methods ***/
  16486 static inline HRESULT ISpeechPhraseAlternate_QueryInterface(ISpeechPhraseAlternate* This,REFIID riid,void **ppvObject) {
  16487     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  16488 }
  16489 static inline ULONG ISpeechPhraseAlternate_AddRef(ISpeechPhraseAlternate* This) {
  16490     return This->lpVtbl->AddRef(This);
  16491 }
  16492 static inline ULONG ISpeechPhraseAlternate_Release(ISpeechPhraseAlternate* This) {
  16493     return This->lpVtbl->Release(This);
  16494 }
  16495 /*** IDispatch methods ***/
  16496 static inline HRESULT ISpeechPhraseAlternate_GetTypeInfoCount(ISpeechPhraseAlternate* This,UINT *pctinfo) {
  16497     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  16498 }
  16499 static inline HRESULT ISpeechPhraseAlternate_GetTypeInfo(ISpeechPhraseAlternate* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  16500     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  16501 }
  16502 static inline HRESULT ISpeechPhraseAlternate_GetIDsOfNames(ISpeechPhraseAlternate* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  16503     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  16504 }
  16505 static inline HRESULT ISpeechPhraseAlternate_Invoke(ISpeechPhraseAlternate* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  16506     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  16507 }
  16508 /*** ISpeechPhraseAlternate methods ***/
  16509 static inline HRESULT ISpeechPhraseAlternate_get_RecoResult(ISpeechPhraseAlternate* This,ISpeechRecoResult **RecoResult) {
  16510     return This->lpVtbl->get_RecoResult(This,RecoResult);
  16511 }
  16512 static inline HRESULT ISpeechPhraseAlternate_get_StartElementInResult(ISpeechPhraseAlternate* This,LONG *StartElement) {
  16513     return This->lpVtbl->get_StartElementInResult(This,StartElement);
  16514 }
  16515 static inline HRESULT ISpeechPhraseAlternate_get_NumberOfElementsInResult(ISpeechPhraseAlternate* This,LONG *NumberOfElements) {
  16516     return This->lpVtbl->get_NumberOfElementsInResult(This,NumberOfElements);
  16517 }
  16518 static inline HRESULT ISpeechPhraseAlternate_get_PhraseInfo(ISpeechPhraseAlternate* This,ISpeechPhraseInfo **PhraseInfo) {
  16519     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
  16520 }
  16521 static inline HRESULT ISpeechPhraseAlternate_Commit(ISpeechPhraseAlternate* This) {
  16522     return This->lpVtbl->Commit(This);
  16523 }
  16524 #endif
  16525 #endif
  16526 
  16527 #endif
  16528 
  16529 
  16530 #endif  /* __ISpeechPhraseAlternate_INTERFACE_DEFINED__ */
  16531 
  16532 /*****************************************************************************
  16533  * ISpeechPhraseAlternates interface
  16534  */
  16535 #ifndef __ISpeechPhraseAlternates_INTERFACE_DEFINED__
  16536 #define __ISpeechPhraseAlternates_INTERFACE_DEFINED__
  16537 
  16538 DEFINE_GUID(IID_ISpeechPhraseAlternates, 0xb238b6d5, 0xf276, 0x4c3d, 0xa6,0xc1, 0x29,0x74,0x80,0x1c,0x3c,0xc2);
  16539 #if defined(__cplusplus) && !defined(CINTERFACE)
  16540 MIDL_INTERFACE("b238b6d5-f276-4c3d-a6c1-2974801c3cc2")
  16541 ISpeechPhraseAlternates : public IDispatch
  16542 {
  16543     virtual HRESULT STDMETHODCALLTYPE get_Count(
  16544         LONG *Count) = 0;
  16545 
  16546     virtual HRESULT STDMETHODCALLTYPE Item(
  16547         LONG Index,
  16548         ISpeechPhraseAlternate **PhraseAlternate) = 0;
  16549 
  16550     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
  16551         IUnknown **EnumVARIANT) = 0;
  16552 
  16553 };
  16554 #ifdef __CRT_UUID_DECL
  16555 __CRT_UUID_DECL(ISpeechPhraseAlternates, 0xb238b6d5, 0xf276, 0x4c3d, 0xa6,0xc1, 0x29,0x74,0x80,0x1c,0x3c,0xc2)
  16556 #endif
  16557 #else
  16558 typedef struct ISpeechPhraseAlternatesVtbl {
  16559     BEGIN_INTERFACE
  16560 
  16561     /*** IUnknown methods ***/
  16562     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  16563         ISpeechPhraseAlternates *This,
  16564         REFIID riid,
  16565         void **ppvObject);
  16566 
  16567     ULONG (STDMETHODCALLTYPE *AddRef)(
  16568         ISpeechPhraseAlternates *This);
  16569 
  16570     ULONG (STDMETHODCALLTYPE *Release)(
  16571         ISpeechPhraseAlternates *This);
  16572 
  16573     /*** IDispatch methods ***/
  16574     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  16575         ISpeechPhraseAlternates *This,
  16576         UINT *pctinfo);
  16577 
  16578     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  16579         ISpeechPhraseAlternates *This,
  16580         UINT iTInfo,
  16581         LCID lcid,
  16582         ITypeInfo **ppTInfo);
  16583 
  16584     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  16585         ISpeechPhraseAlternates *This,
  16586         REFIID riid,
  16587         LPOLESTR *rgszNames,
  16588         UINT cNames,
  16589         LCID lcid,
  16590         DISPID *rgDispId);
  16591 
  16592     HRESULT (STDMETHODCALLTYPE *Invoke)(
  16593         ISpeechPhraseAlternates *This,
  16594         DISPID dispIdMember,
  16595         REFIID riid,
  16596         LCID lcid,
  16597         WORD wFlags,
  16598         DISPPARAMS *pDispParams,
  16599         VARIANT *pVarResult,
  16600         EXCEPINFO *pExcepInfo,
  16601         UINT *puArgErr);
  16602 
  16603     /*** ISpeechPhraseAlternates methods ***/
  16604     HRESULT (STDMETHODCALLTYPE *get_Count)(
  16605         ISpeechPhraseAlternates *This,
  16606         LONG *Count);
  16607 
  16608     HRESULT (STDMETHODCALLTYPE *Item)(
  16609         ISpeechPhraseAlternates *This,
  16610         LONG Index,
  16611         ISpeechPhraseAlternate **PhraseAlternate);
  16612 
  16613     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
  16614         ISpeechPhraseAlternates *This,
  16615         IUnknown **EnumVARIANT);
  16616 
  16617     END_INTERFACE
  16618 } ISpeechPhraseAlternatesVtbl;
  16619 
  16620 interface ISpeechPhraseAlternates {
  16621     CONST_VTBL ISpeechPhraseAlternatesVtbl* lpVtbl;
  16622 };
  16623 
  16624 #ifdef COBJMACROS
  16625 #ifndef WIDL_C_INLINE_WRAPPERS
  16626 /*** IUnknown methods ***/
  16627 #define ISpeechPhraseAlternates_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  16628 #define ISpeechPhraseAlternates_AddRef(This) (This)->lpVtbl->AddRef(This)
  16629 #define ISpeechPhraseAlternates_Release(This) (This)->lpVtbl->Release(This)
  16630 /*** IDispatch methods ***/
  16631 #define ISpeechPhraseAlternates_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  16632 #define ISpeechPhraseAlternates_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  16633 #define ISpeechPhraseAlternates_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  16634 #define ISpeechPhraseAlternates_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  16635 /*** ISpeechPhraseAlternates methods ***/
  16636 #define ISpeechPhraseAlternates_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
  16637 #define ISpeechPhraseAlternates_Item(This,Index,PhraseAlternate) (This)->lpVtbl->Item(This,Index,PhraseAlternate)
  16638 #define ISpeechPhraseAlternates_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
  16639 #else
  16640 /*** IUnknown methods ***/
  16641 static inline HRESULT ISpeechPhraseAlternates_QueryInterface(ISpeechPhraseAlternates* This,REFIID riid,void **ppvObject) {
  16642     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  16643 }
  16644 static inline ULONG ISpeechPhraseAlternates_AddRef(ISpeechPhraseAlternates* This) {
  16645     return This->lpVtbl->AddRef(This);
  16646 }
  16647 static inline ULONG ISpeechPhraseAlternates_Release(ISpeechPhraseAlternates* This) {
  16648     return This->lpVtbl->Release(This);
  16649 }
  16650 /*** IDispatch methods ***/
  16651 static inline HRESULT ISpeechPhraseAlternates_GetTypeInfoCount(ISpeechPhraseAlternates* This,UINT *pctinfo) {
  16652     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  16653 }
  16654 static inline HRESULT ISpeechPhraseAlternates_GetTypeInfo(ISpeechPhraseAlternates* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  16655     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  16656 }
  16657 static inline HRESULT ISpeechPhraseAlternates_GetIDsOfNames(ISpeechPhraseAlternates* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  16658     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  16659 }
  16660 static inline HRESULT ISpeechPhraseAlternates_Invoke(ISpeechPhraseAlternates* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  16661     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  16662 }
  16663 /*** ISpeechPhraseAlternates methods ***/
  16664 static inline HRESULT ISpeechPhraseAlternates_get_Count(ISpeechPhraseAlternates* This,LONG *Count) {
  16665     return This->lpVtbl->get_Count(This,Count);
  16666 }
  16667 static inline HRESULT ISpeechPhraseAlternates_Item(ISpeechPhraseAlternates* This,LONG Index,ISpeechPhraseAlternate **PhraseAlternate) {
  16668     return This->lpVtbl->Item(This,Index,PhraseAlternate);
  16669 }
  16670 static inline HRESULT ISpeechPhraseAlternates_get__NewEnum(ISpeechPhraseAlternates* This,IUnknown **EnumVARIANT) {
  16671     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
  16672 }
  16673 #endif
  16674 #endif
  16675 
  16676 #endif
  16677 
  16678 
  16679 #endif  /* __ISpeechPhraseAlternates_INTERFACE_DEFINED__ */
  16680 
  16681 /*****************************************************************************
  16682  * ISpeechPhraseInfo interface
  16683  */
  16684 #ifndef __ISpeechPhraseInfo_INTERFACE_DEFINED__
  16685 #define __ISpeechPhraseInfo_INTERFACE_DEFINED__
  16686 
  16687 DEFINE_GUID(IID_ISpeechPhraseInfo, 0x961559cf, 0x4e67, 0x4662, 0x8b,0xf0, 0xd9,0x3f,0x1f,0xcd,0x61,0xb3);
  16688 #if defined(__cplusplus) && !defined(CINTERFACE)
  16689 MIDL_INTERFACE("961559cf-4e67-4662-8bf0-d93f1fcd61b3")
  16690 ISpeechPhraseInfo : public IDispatch
  16691 {
  16692     virtual HRESULT STDMETHODCALLTYPE get_LanguageId(
  16693         LONG *LanguageId) = 0;
  16694 
  16695     virtual HRESULT STDMETHODCALLTYPE get_GrammarId(
  16696         VARIANT *GrammarId) = 0;
  16697 
  16698     virtual HRESULT STDMETHODCALLTYPE get_StartTime(
  16699         VARIANT *StartTime) = 0;
  16700 
  16701     virtual HRESULT STDMETHODCALLTYPE get_AudioStreamPosition(
  16702         VARIANT *AudioStreamPosition) = 0;
  16703 
  16704     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeBytes(
  16705         LONG *pAudioSizeBytes) = 0;
  16706 
  16707     virtual HRESULT STDMETHODCALLTYPE get_RetainedSizeBytes(
  16708         LONG *RetainedSizeBytes) = 0;
  16709 
  16710     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeTime(
  16711         LONG *AudioSizeTime) = 0;
  16712 
  16713     virtual HRESULT STDMETHODCALLTYPE get_Rule(
  16714         ISpeechPhraseRule **Rule) = 0;
  16715 
  16716     virtual HRESULT STDMETHODCALLTYPE get_Properties(
  16717         ISpeechPhraseProperties **Properties) = 0;
  16718 
  16719     virtual HRESULT STDMETHODCALLTYPE get_Elements(
  16720         ISpeechPhraseElements **Elements) = 0;
  16721 
  16722     virtual HRESULT STDMETHODCALLTYPE get_Replacements(
  16723         ISpeechPhraseReplacements **Replacements) = 0;
  16724 
  16725     virtual HRESULT STDMETHODCALLTYPE get_EngineId(
  16726         BSTR *EngineIdGuid) = 0;
  16727 
  16728     virtual HRESULT STDMETHODCALLTYPE get_EnginePrivateData(
  16729         VARIANT *PrivateData) = 0;
  16730 
  16731     virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
  16732         VARIANT *PhraseBlock) = 0;
  16733 
  16734     virtual HRESULT STDMETHODCALLTYPE GetText(
  16735         LONG StartElement,
  16736         LONG Elements,
  16737         VARIANT_BOOL UseReplacements,
  16738         BSTR *Text) = 0;
  16739 
  16740     virtual HRESULT STDMETHODCALLTYPE GetDisplayAttributes(
  16741         LONG StartElement,
  16742         LONG Elements,
  16743         VARIANT_BOOL UseReplacements,
  16744         SpeechDisplayAttributes *DisplayAttributes) = 0;
  16745 
  16746 };
  16747 #ifdef __CRT_UUID_DECL
  16748 __CRT_UUID_DECL(ISpeechPhraseInfo, 0x961559cf, 0x4e67, 0x4662, 0x8b,0xf0, 0xd9,0x3f,0x1f,0xcd,0x61,0xb3)
  16749 #endif
  16750 #else
  16751 typedef struct ISpeechPhraseInfoVtbl {
  16752     BEGIN_INTERFACE
  16753 
  16754     /*** IUnknown methods ***/
  16755     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  16756         ISpeechPhraseInfo *This,
  16757         REFIID riid,
  16758         void **ppvObject);
  16759 
  16760     ULONG (STDMETHODCALLTYPE *AddRef)(
  16761         ISpeechPhraseInfo *This);
  16762 
  16763     ULONG (STDMETHODCALLTYPE *Release)(
  16764         ISpeechPhraseInfo *This);
  16765 
  16766     /*** IDispatch methods ***/
  16767     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  16768         ISpeechPhraseInfo *This,
  16769         UINT *pctinfo);
  16770 
  16771     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  16772         ISpeechPhraseInfo *This,
  16773         UINT iTInfo,
  16774         LCID lcid,
  16775         ITypeInfo **ppTInfo);
  16776 
  16777     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  16778         ISpeechPhraseInfo *This,
  16779         REFIID riid,
  16780         LPOLESTR *rgszNames,
  16781         UINT cNames,
  16782         LCID lcid,
  16783         DISPID *rgDispId);
  16784 
  16785     HRESULT (STDMETHODCALLTYPE *Invoke)(
  16786         ISpeechPhraseInfo *This,
  16787         DISPID dispIdMember,
  16788         REFIID riid,
  16789         LCID lcid,
  16790         WORD wFlags,
  16791         DISPPARAMS *pDispParams,
  16792         VARIANT *pVarResult,
  16793         EXCEPINFO *pExcepInfo,
  16794         UINT *puArgErr);
  16795 
  16796     /*** ISpeechPhraseInfo methods ***/
  16797     HRESULT (STDMETHODCALLTYPE *get_LanguageId)(
  16798         ISpeechPhraseInfo *This,
  16799         LONG *LanguageId);
  16800 
  16801     HRESULT (STDMETHODCALLTYPE *get_GrammarId)(
  16802         ISpeechPhraseInfo *This,
  16803         VARIANT *GrammarId);
  16804 
  16805     HRESULT (STDMETHODCALLTYPE *get_StartTime)(
  16806         ISpeechPhraseInfo *This,
  16807         VARIANT *StartTime);
  16808 
  16809     HRESULT (STDMETHODCALLTYPE *get_AudioStreamPosition)(
  16810         ISpeechPhraseInfo *This,
  16811         VARIANT *AudioStreamPosition);
  16812 
  16813     HRESULT (STDMETHODCALLTYPE *get_AudioSizeBytes)(
  16814         ISpeechPhraseInfo *This,
  16815         LONG *pAudioSizeBytes);
  16816 
  16817     HRESULT (STDMETHODCALLTYPE *get_RetainedSizeBytes)(
  16818         ISpeechPhraseInfo *This,
  16819         LONG *RetainedSizeBytes);
  16820 
  16821     HRESULT (STDMETHODCALLTYPE *get_AudioSizeTime)(
  16822         ISpeechPhraseInfo *This,
  16823         LONG *AudioSizeTime);
  16824 
  16825     HRESULT (STDMETHODCALLTYPE *get_Rule)(
  16826         ISpeechPhraseInfo *This,
  16827         ISpeechPhraseRule **Rule);
  16828 
  16829     HRESULT (STDMETHODCALLTYPE *get_Properties)(
  16830         ISpeechPhraseInfo *This,
  16831         ISpeechPhraseProperties **Properties);
  16832 
  16833     HRESULT (STDMETHODCALLTYPE *get_Elements)(
  16834         ISpeechPhraseInfo *This,
  16835         ISpeechPhraseElements **Elements);
  16836 
  16837     HRESULT (STDMETHODCALLTYPE *get_Replacements)(
  16838         ISpeechPhraseInfo *This,
  16839         ISpeechPhraseReplacements **Replacements);
  16840 
  16841     HRESULT (STDMETHODCALLTYPE *get_EngineId)(
  16842         ISpeechPhraseInfo *This,
  16843         BSTR *EngineIdGuid);
  16844 
  16845     HRESULT (STDMETHODCALLTYPE *get_EnginePrivateData)(
  16846         ISpeechPhraseInfo *This,
  16847         VARIANT *PrivateData);
  16848 
  16849     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
  16850         ISpeechPhraseInfo *This,
  16851         VARIANT *PhraseBlock);
  16852 
  16853     HRESULT (STDMETHODCALLTYPE *GetText)(
  16854         ISpeechPhraseInfo *This,
  16855         LONG StartElement,
  16856         LONG Elements,
  16857         VARIANT_BOOL UseReplacements,
  16858         BSTR *Text);
  16859 
  16860     HRESULT (STDMETHODCALLTYPE *GetDisplayAttributes)(
  16861         ISpeechPhraseInfo *This,
  16862         LONG StartElement,
  16863         LONG Elements,
  16864         VARIANT_BOOL UseReplacements,
  16865         SpeechDisplayAttributes *DisplayAttributes);
  16866 
  16867     END_INTERFACE
  16868 } ISpeechPhraseInfoVtbl;
  16869 
  16870 interface ISpeechPhraseInfo {
  16871     CONST_VTBL ISpeechPhraseInfoVtbl* lpVtbl;
  16872 };
  16873 
  16874 #ifdef COBJMACROS
  16875 #ifndef WIDL_C_INLINE_WRAPPERS
  16876 /*** IUnknown methods ***/
  16877 #define ISpeechPhraseInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  16878 #define ISpeechPhraseInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
  16879 #define ISpeechPhraseInfo_Release(This) (This)->lpVtbl->Release(This)
  16880 /*** IDispatch methods ***/
  16881 #define ISpeechPhraseInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  16882 #define ISpeechPhraseInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  16883 #define ISpeechPhraseInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  16884 #define ISpeechPhraseInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  16885 /*** ISpeechPhraseInfo methods ***/
  16886 #define ISpeechPhraseInfo_get_LanguageId(This,LanguageId) (This)->lpVtbl->get_LanguageId(This,LanguageId)
  16887 #define ISpeechPhraseInfo_get_GrammarId(This,GrammarId) (This)->lpVtbl->get_GrammarId(This,GrammarId)
  16888 #define ISpeechPhraseInfo_get_StartTime(This,StartTime) (This)->lpVtbl->get_StartTime(This,StartTime)
  16889 #define ISpeechPhraseInfo_get_AudioStreamPosition(This,AudioStreamPosition) (This)->lpVtbl->get_AudioStreamPosition(This,AudioStreamPosition)
  16890 #define ISpeechPhraseInfo_get_AudioSizeBytes(This,pAudioSizeBytes) (This)->lpVtbl->get_AudioSizeBytes(This,pAudioSizeBytes)
  16891 #define ISpeechPhraseInfo_get_RetainedSizeBytes(This,RetainedSizeBytes) (This)->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes)
  16892 #define ISpeechPhraseInfo_get_AudioSizeTime(This,AudioSizeTime) (This)->lpVtbl->get_AudioSizeTime(This,AudioSizeTime)
  16893 #define ISpeechPhraseInfo_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
  16894 #define ISpeechPhraseInfo_get_Properties(This,Properties) (This)->lpVtbl->get_Properties(This,Properties)
  16895 #define ISpeechPhraseInfo_get_Elements(This,Elements) (This)->lpVtbl->get_Elements(This,Elements)
  16896 #define ISpeechPhraseInfo_get_Replacements(This,Replacements) (This)->lpVtbl->get_Replacements(This,Replacements)
  16897 #define ISpeechPhraseInfo_get_EngineId(This,EngineIdGuid) (This)->lpVtbl->get_EngineId(This,EngineIdGuid)
  16898 #define ISpeechPhraseInfo_get_EnginePrivateData(This,PrivateData) (This)->lpVtbl->get_EnginePrivateData(This,PrivateData)
  16899 #define ISpeechPhraseInfo_SaveToMemory(This,PhraseBlock) (This)->lpVtbl->SaveToMemory(This,PhraseBlock)
  16900 #define ISpeechPhraseInfo_GetText(This,StartElement,Elements,UseReplacements,Text) (This)->lpVtbl->GetText(This,StartElement,Elements,UseReplacements,Text)
  16901 #define ISpeechPhraseInfo_GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes) (This)->lpVtbl->GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes)
  16902 #else
  16903 /*** IUnknown methods ***/
  16904 static inline HRESULT ISpeechPhraseInfo_QueryInterface(ISpeechPhraseInfo* This,REFIID riid,void **ppvObject) {
  16905     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  16906 }
  16907 static inline ULONG ISpeechPhraseInfo_AddRef(ISpeechPhraseInfo* This) {
  16908     return This->lpVtbl->AddRef(This);
  16909 }
  16910 static inline ULONG ISpeechPhraseInfo_Release(ISpeechPhraseInfo* This) {
  16911     return This->lpVtbl->Release(This);
  16912 }
  16913 /*** IDispatch methods ***/
  16914 static inline HRESULT ISpeechPhraseInfo_GetTypeInfoCount(ISpeechPhraseInfo* This,UINT *pctinfo) {
  16915     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  16916 }
  16917 static inline HRESULT ISpeechPhraseInfo_GetTypeInfo(ISpeechPhraseInfo* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  16918     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  16919 }
  16920 static inline HRESULT ISpeechPhraseInfo_GetIDsOfNames(ISpeechPhraseInfo* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  16921     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  16922 }
  16923 static inline HRESULT ISpeechPhraseInfo_Invoke(ISpeechPhraseInfo* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  16924     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  16925 }
  16926 /*** ISpeechPhraseInfo methods ***/
  16927 static inline HRESULT ISpeechPhraseInfo_get_LanguageId(ISpeechPhraseInfo* This,LONG *LanguageId) {
  16928     return This->lpVtbl->get_LanguageId(This,LanguageId);
  16929 }
  16930 static inline HRESULT ISpeechPhraseInfo_get_GrammarId(ISpeechPhraseInfo* This,VARIANT *GrammarId) {
  16931     return This->lpVtbl->get_GrammarId(This,GrammarId);
  16932 }
  16933 static inline HRESULT ISpeechPhraseInfo_get_StartTime(ISpeechPhraseInfo* This,VARIANT *StartTime) {
  16934     return This->lpVtbl->get_StartTime(This,StartTime);
  16935 }
  16936 static inline HRESULT ISpeechPhraseInfo_get_AudioStreamPosition(ISpeechPhraseInfo* This,VARIANT *AudioStreamPosition) {
  16937     return This->lpVtbl->get_AudioStreamPosition(This,AudioStreamPosition);
  16938 }
  16939 static inline HRESULT ISpeechPhraseInfo_get_AudioSizeBytes(ISpeechPhraseInfo* This,LONG *pAudioSizeBytes) {
  16940     return This->lpVtbl->get_AudioSizeBytes(This,pAudioSizeBytes);
  16941 }
  16942 static inline HRESULT ISpeechPhraseInfo_get_RetainedSizeBytes(ISpeechPhraseInfo* This,LONG *RetainedSizeBytes) {
  16943     return This->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes);
  16944 }
  16945 static inline HRESULT ISpeechPhraseInfo_get_AudioSizeTime(ISpeechPhraseInfo* This,LONG *AudioSizeTime) {
  16946     return This->lpVtbl->get_AudioSizeTime(This,AudioSizeTime);
  16947 }
  16948 static inline HRESULT ISpeechPhraseInfo_get_Rule(ISpeechPhraseInfo* This,ISpeechPhraseRule **Rule) {
  16949     return This->lpVtbl->get_Rule(This,Rule);
  16950 }
  16951 static inline HRESULT ISpeechPhraseInfo_get_Properties(ISpeechPhraseInfo* This,ISpeechPhraseProperties **Properties) {
  16952     return This->lpVtbl->get_Properties(This,Properties);
  16953 }
  16954 static inline HRESULT ISpeechPhraseInfo_get_Elements(ISpeechPhraseInfo* This,ISpeechPhraseElements **Elements) {
  16955     return This->lpVtbl->get_Elements(This,Elements);
  16956 }
  16957 static inline HRESULT ISpeechPhraseInfo_get_Replacements(ISpeechPhraseInfo* This,ISpeechPhraseReplacements **Replacements) {
  16958     return This->lpVtbl->get_Replacements(This,Replacements);
  16959 }
  16960 static inline HRESULT ISpeechPhraseInfo_get_EngineId(ISpeechPhraseInfo* This,BSTR *EngineIdGuid) {
  16961     return This->lpVtbl->get_EngineId(This,EngineIdGuid);
  16962 }
  16963 static inline HRESULT ISpeechPhraseInfo_get_EnginePrivateData(ISpeechPhraseInfo* This,VARIANT *PrivateData) {
  16964     return This->lpVtbl->get_EnginePrivateData(This,PrivateData);
  16965 }
  16966 static inline HRESULT ISpeechPhraseInfo_SaveToMemory(ISpeechPhraseInfo* This,VARIANT *PhraseBlock) {
  16967     return This->lpVtbl->SaveToMemory(This,PhraseBlock);
  16968 }
  16969 static inline HRESULT ISpeechPhraseInfo_GetText(ISpeechPhraseInfo* This,LONG StartElement,LONG Elements,VARIANT_BOOL UseReplacements,BSTR *Text) {
  16970     return This->lpVtbl->GetText(This,StartElement,Elements,UseReplacements,Text);
  16971 }
  16972 static inline HRESULT ISpeechPhraseInfo_GetDisplayAttributes(ISpeechPhraseInfo* This,LONG StartElement,LONG Elements,VARIANT_BOOL UseReplacements,SpeechDisplayAttributes *DisplayAttributes) {
  16973     return This->lpVtbl->GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes);
  16974 }
  16975 #endif
  16976 #endif
  16977 
  16978 #endif
  16979 
  16980 
  16981 #endif  /* __ISpeechPhraseInfo_INTERFACE_DEFINED__ */
  16982 
  16983 /*****************************************************************************
  16984  * ISpeechPhraseElement interface
  16985  */
  16986 #ifndef __ISpeechPhraseElement_INTERFACE_DEFINED__
  16987 #define __ISpeechPhraseElement_INTERFACE_DEFINED__
  16988 
  16989 DEFINE_GUID(IID_ISpeechPhraseElement, 0xe6176f96, 0xe373, 0x4801, 0xb2,0x23, 0x3b,0x62,0xc0,0x68,0xc0,0xb4);
  16990 #if defined(__cplusplus) && !defined(CINTERFACE)
  16991 MIDL_INTERFACE("e6176f96-e373-4801-b223-3b62c068c0b4")
  16992 ISpeechPhraseElement : public IDispatch
  16993 {
  16994     virtual HRESULT STDMETHODCALLTYPE get_AudioTimeOffset(
  16995         LONG *AudioTimeOffset) = 0;
  16996 
  16997     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeTime(
  16998         LONG *AudioSizeTime) = 0;
  16999 
  17000     virtual HRESULT STDMETHODCALLTYPE get_AudioStreamOffset(
  17001         LONG *AudioStreamOffset) = 0;
  17002 
  17003     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeBytes(
  17004         LONG *AudioSizeBytes) = 0;
  17005 
  17006     virtual HRESULT STDMETHODCALLTYPE get_RetainedStreamOffset(
  17007         LONG *RetainedStreamOffset) = 0;
  17008 
  17009     virtual HRESULT STDMETHODCALLTYPE get_RetainedSizeBytes(
  17010         LONG *RetainedSizeBytes) = 0;
  17011 
  17012     virtual HRESULT STDMETHODCALLTYPE get_DisplayText(
  17013         BSTR *DisplayText) = 0;
  17014 
  17015     virtual HRESULT STDMETHODCALLTYPE get_LexicalForm(
  17016         BSTR *LexicalForm) = 0;
  17017 
  17018     virtual HRESULT STDMETHODCALLTYPE get_Pronunciation(
  17019         VARIANT *Pronunciation) = 0;
  17020 
  17021     virtual HRESULT STDMETHODCALLTYPE get_DisplayAttributes(
  17022         SpeechDisplayAttributes *DisplayAttributes) = 0;
  17023 
  17024     virtual HRESULT STDMETHODCALLTYPE get_RequiredConfidence(
  17025         SpeechEngineConfidence *RequiredConfidence) = 0;
  17026 
  17027     virtual HRESULT STDMETHODCALLTYPE get_ActualConfidence(
  17028         SpeechEngineConfidence *ActualConfidence) = 0;
  17029 
  17030     virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
  17031         float *EngineConfidence) = 0;
  17032 
  17033 };
  17034 #ifdef __CRT_UUID_DECL
  17035 __CRT_UUID_DECL(ISpeechPhraseElement, 0xe6176f96, 0xe373, 0x4801, 0xb2,0x23, 0x3b,0x62,0xc0,0x68,0xc0,0xb4)
  17036 #endif
  17037 #else
  17038 typedef struct ISpeechPhraseElementVtbl {
  17039     BEGIN_INTERFACE
  17040 
  17041     /*** IUnknown methods ***/
  17042     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  17043         ISpeechPhraseElement *This,
  17044         REFIID riid,
  17045         void **ppvObject);
  17046 
  17047     ULONG (STDMETHODCALLTYPE *AddRef)(
  17048         ISpeechPhraseElement *This);
  17049 
  17050     ULONG (STDMETHODCALLTYPE *Release)(
  17051         ISpeechPhraseElement *This);
  17052 
  17053     /*** IDispatch methods ***/
  17054     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  17055         ISpeechPhraseElement *This,
  17056         UINT *pctinfo);
  17057 
  17058     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  17059         ISpeechPhraseElement *This,
  17060         UINT iTInfo,
  17061         LCID lcid,
  17062         ITypeInfo **ppTInfo);
  17063 
  17064     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  17065         ISpeechPhraseElement *This,
  17066         REFIID riid,
  17067         LPOLESTR *rgszNames,
  17068         UINT cNames,
  17069         LCID lcid,
  17070         DISPID *rgDispId);
  17071 
  17072     HRESULT (STDMETHODCALLTYPE *Invoke)(
  17073         ISpeechPhraseElement *This,
  17074         DISPID dispIdMember,
  17075         REFIID riid,
  17076         LCID lcid,
  17077         WORD wFlags,
  17078         DISPPARAMS *pDispParams,
  17079         VARIANT *pVarResult,
  17080         EXCEPINFO *pExcepInfo,
  17081         UINT *puArgErr);
  17082 
  17083     /*** ISpeechPhraseElement methods ***/
  17084     HRESULT (STDMETHODCALLTYPE *get_AudioTimeOffset)(
  17085         ISpeechPhraseElement *This,
  17086         LONG *AudioTimeOffset);
  17087 
  17088     HRESULT (STDMETHODCALLTYPE *get_AudioSizeTime)(
  17089         ISpeechPhraseElement *This,
  17090         LONG *AudioSizeTime);
  17091 
  17092     HRESULT (STDMETHODCALLTYPE *get_AudioStreamOffset)(
  17093         ISpeechPhraseElement *This,
  17094         LONG *AudioStreamOffset);
  17095 
  17096     HRESULT (STDMETHODCALLTYPE *get_AudioSizeBytes)(
  17097         ISpeechPhraseElement *This,
  17098         LONG *AudioSizeBytes);
  17099 
  17100     HRESULT (STDMETHODCALLTYPE *get_RetainedStreamOffset)(
  17101         ISpeechPhraseElement *This,
  17102         LONG *RetainedStreamOffset);
  17103 
  17104     HRESULT (STDMETHODCALLTYPE *get_RetainedSizeBytes)(
  17105         ISpeechPhraseElement *This,
  17106         LONG *RetainedSizeBytes);
  17107 
  17108     HRESULT (STDMETHODCALLTYPE *get_DisplayText)(
  17109         ISpeechPhraseElement *This,
  17110         BSTR *DisplayText);
  17111 
  17112     HRESULT (STDMETHODCALLTYPE *get_LexicalForm)(
  17113         ISpeechPhraseElement *This,
  17114         BSTR *LexicalForm);
  17115 
  17116     HRESULT (STDMETHODCALLTYPE *get_Pronunciation)(
  17117         ISpeechPhraseElement *This,
  17118         VARIANT *Pronunciation);
  17119 
  17120     HRESULT (STDMETHODCALLTYPE *get_DisplayAttributes)(
  17121         ISpeechPhraseElement *This,
  17122         SpeechDisplayAttributes *DisplayAttributes);
  17123 
  17124     HRESULT (STDMETHODCALLTYPE *get_RequiredConfidence)(
  17125         ISpeechPhraseElement *This,
  17126         SpeechEngineConfidence *RequiredConfidence);
  17127 
  17128     HRESULT (STDMETHODCALLTYPE *get_ActualConfidence)(
  17129         ISpeechPhraseElement *This,
  17130         SpeechEngineConfidence *ActualConfidence);
  17131 
  17132     HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
  17133         ISpeechPhraseElement *This,
  17134         float *EngineConfidence);
  17135 
  17136     END_INTERFACE
  17137 } ISpeechPhraseElementVtbl;
  17138 
  17139 interface ISpeechPhraseElement {
  17140     CONST_VTBL ISpeechPhraseElementVtbl* lpVtbl;
  17141 };
  17142 
  17143 #ifdef COBJMACROS
  17144 #ifndef WIDL_C_INLINE_WRAPPERS
  17145 /*** IUnknown methods ***/
  17146 #define ISpeechPhraseElement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  17147 #define ISpeechPhraseElement_AddRef(This) (This)->lpVtbl->AddRef(This)
  17148 #define ISpeechPhraseElement_Release(This) (This)->lpVtbl->Release(This)
  17149 /*** IDispatch methods ***/
  17150 #define ISpeechPhraseElement_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  17151 #define ISpeechPhraseElement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  17152 #define ISpeechPhraseElement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  17153 #define ISpeechPhraseElement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  17154 /*** ISpeechPhraseElement methods ***/
  17155 #define ISpeechPhraseElement_get_AudioTimeOffset(This,AudioTimeOffset) (This)->lpVtbl->get_AudioTimeOffset(This,AudioTimeOffset)
  17156 #define ISpeechPhraseElement_get_AudioSizeTime(This,AudioSizeTime) (This)->lpVtbl->get_AudioSizeTime(This,AudioSizeTime)
  17157 #define ISpeechPhraseElement_get_AudioStreamOffset(This,AudioStreamOffset) (This)->lpVtbl->get_AudioStreamOffset(This,AudioStreamOffset)
  17158 #define ISpeechPhraseElement_get_AudioSizeBytes(This,AudioSizeBytes) (This)->lpVtbl->get_AudioSizeBytes(This,AudioSizeBytes)
  17159 #define ISpeechPhraseElement_get_RetainedStreamOffset(This,RetainedStreamOffset) (This)->lpVtbl->get_RetainedStreamOffset(This,RetainedStreamOffset)
  17160 #define ISpeechPhraseElement_get_RetainedSizeBytes(This,RetainedSizeBytes) (This)->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes)
  17161 #define ISpeechPhraseElement_get_DisplayText(This,DisplayText) (This)->lpVtbl->get_DisplayText(This,DisplayText)
  17162 #define ISpeechPhraseElement_get_LexicalForm(This,LexicalForm) (This)->lpVtbl->get_LexicalForm(This,LexicalForm)
  17163 #define ISpeechPhraseElement_get_Pronunciation(This,Pronunciation) (This)->lpVtbl->get_Pronunciation(This,Pronunciation)
  17164 #define ISpeechPhraseElement_get_DisplayAttributes(This,DisplayAttributes) (This)->lpVtbl->get_DisplayAttributes(This,DisplayAttributes)
  17165 #define ISpeechPhraseElement_get_RequiredConfidence(This,RequiredConfidence) (This)->lpVtbl->get_RequiredConfidence(This,RequiredConfidence)
  17166 #define ISpeechPhraseElement_get_ActualConfidence(This,ActualConfidence) (This)->lpVtbl->get_ActualConfidence(This,ActualConfidence)
  17167 #define ISpeechPhraseElement_get_EngineConfidence(This,EngineConfidence) (This)->lpVtbl->get_EngineConfidence(This,EngineConfidence)
  17168 #else
  17169 /*** IUnknown methods ***/
  17170 static inline HRESULT ISpeechPhraseElement_QueryInterface(ISpeechPhraseElement* This,REFIID riid,void **ppvObject) {
  17171     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  17172 }
  17173 static inline ULONG ISpeechPhraseElement_AddRef(ISpeechPhraseElement* This) {
  17174     return This->lpVtbl->AddRef(This);
  17175 }
  17176 static inline ULONG ISpeechPhraseElement_Release(ISpeechPhraseElement* This) {
  17177     return This->lpVtbl->Release(This);
  17178 }
  17179 /*** IDispatch methods ***/
  17180 static inline HRESULT ISpeechPhraseElement_GetTypeInfoCount(ISpeechPhraseElement* This,UINT *pctinfo) {
  17181     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  17182 }
  17183 static inline HRESULT ISpeechPhraseElement_GetTypeInfo(ISpeechPhraseElement* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  17184     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  17185 }
  17186 static inline HRESULT ISpeechPhraseElement_GetIDsOfNames(ISpeechPhraseElement* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  17187     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  17188 }
  17189 static inline HRESULT ISpeechPhraseElement_Invoke(ISpeechPhraseElement* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  17190     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  17191 }
  17192 /*** ISpeechPhraseElement methods ***/
  17193 static inline HRESULT ISpeechPhraseElement_get_AudioTimeOffset(ISpeechPhraseElement* This,LONG *AudioTimeOffset) {
  17194     return This->lpVtbl->get_AudioTimeOffset(This,AudioTimeOffset);
  17195 }
  17196 static inline HRESULT ISpeechPhraseElement_get_AudioSizeTime(ISpeechPhraseElement* This,LONG *AudioSizeTime) {
  17197     return This->lpVtbl->get_AudioSizeTime(This,AudioSizeTime);
  17198 }
  17199 static inline HRESULT ISpeechPhraseElement_get_AudioStreamOffset(ISpeechPhraseElement* This,LONG *AudioStreamOffset) {
  17200     return This->lpVtbl->get_AudioStreamOffset(This,AudioStreamOffset);
  17201 }
  17202 static inline HRESULT ISpeechPhraseElement_get_AudioSizeBytes(ISpeechPhraseElement* This,LONG *AudioSizeBytes) {
  17203     return This->lpVtbl->get_AudioSizeBytes(This,AudioSizeBytes);
  17204 }
  17205 static inline HRESULT ISpeechPhraseElement_get_RetainedStreamOffset(ISpeechPhraseElement* This,LONG *RetainedStreamOffset) {
  17206     return This->lpVtbl->get_RetainedStreamOffset(This,RetainedStreamOffset);
  17207 }
  17208 static inline HRESULT ISpeechPhraseElement_get_RetainedSizeBytes(ISpeechPhraseElement* This,LONG *RetainedSizeBytes) {
  17209     return This->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes);
  17210 }
  17211 static inline HRESULT ISpeechPhraseElement_get_DisplayText(ISpeechPhraseElement* This,BSTR *DisplayText) {
  17212     return This->lpVtbl->get_DisplayText(This,DisplayText);
  17213 }
  17214 static inline HRESULT ISpeechPhraseElement_get_LexicalForm(ISpeechPhraseElement* This,BSTR *LexicalForm) {
  17215     return This->lpVtbl->get_LexicalForm(This,LexicalForm);
  17216 }
  17217 static inline HRESULT ISpeechPhraseElement_get_Pronunciation(ISpeechPhraseElement* This,VARIANT *Pronunciation) {
  17218     return This->lpVtbl->get_Pronunciation(This,Pronunciation);
  17219 }
  17220 static inline HRESULT ISpeechPhraseElement_get_DisplayAttributes(ISpeechPhraseElement* This,SpeechDisplayAttributes *DisplayAttributes) {
  17221     return This->lpVtbl->get_DisplayAttributes(This,DisplayAttributes);
  17222 }
  17223 static inline HRESULT ISpeechPhraseElement_get_RequiredConfidence(ISpeechPhraseElement* This,SpeechEngineConfidence *RequiredConfidence) {
  17224     return This->lpVtbl->get_RequiredConfidence(This,RequiredConfidence);
  17225 }
  17226 static inline HRESULT ISpeechPhraseElement_get_ActualConfidence(ISpeechPhraseElement* This,SpeechEngineConfidence *ActualConfidence) {
  17227     return This->lpVtbl->get_ActualConfidence(This,ActualConfidence);
  17228 }
  17229 static inline HRESULT ISpeechPhraseElement_get_EngineConfidence(ISpeechPhraseElement* This,float *EngineConfidence) {
  17230     return This->lpVtbl->get_EngineConfidence(This,EngineConfidence);
  17231 }
  17232 #endif
  17233 #endif
  17234 
  17235 #endif
  17236 
  17237 
  17238 #endif  /* __ISpeechPhraseElement_INTERFACE_DEFINED__ */
  17239 
  17240 /*****************************************************************************
  17241  * ISpeechPhraseElements interface
  17242  */
  17243 #ifndef __ISpeechPhraseElements_INTERFACE_DEFINED__
  17244 #define __ISpeechPhraseElements_INTERFACE_DEFINED__
  17245 
  17246 DEFINE_GUID(IID_ISpeechPhraseElements, 0x0626b328, 0x3478, 0x467d, 0xa0,0xb3, 0xd0,0x85,0x3b,0x93,0xdd,0xa3);
  17247 #if defined(__cplusplus) && !defined(CINTERFACE)
  17248 MIDL_INTERFACE("0626b328-3478-467d-a0b3-d0853b93dda3")
  17249 ISpeechPhraseElements : public IDispatch
  17250 {
  17251     virtual HRESULT STDMETHODCALLTYPE get_Count(
  17252         LONG *Count) = 0;
  17253 
  17254     virtual HRESULT STDMETHODCALLTYPE Item(
  17255         LONG Index,
  17256         ISpeechPhraseElement **Element) = 0;
  17257 
  17258     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
  17259         IUnknown **EnumVARIANT) = 0;
  17260 
  17261 };
  17262 #ifdef __CRT_UUID_DECL
  17263 __CRT_UUID_DECL(ISpeechPhraseElements, 0x0626b328, 0x3478, 0x467d, 0xa0,0xb3, 0xd0,0x85,0x3b,0x93,0xdd,0xa3)
  17264 #endif
  17265 #else
  17266 typedef struct ISpeechPhraseElementsVtbl {
  17267     BEGIN_INTERFACE
  17268 
  17269     /*** IUnknown methods ***/
  17270     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  17271         ISpeechPhraseElements *This,
  17272         REFIID riid,
  17273         void **ppvObject);
  17274 
  17275     ULONG (STDMETHODCALLTYPE *AddRef)(
  17276         ISpeechPhraseElements *This);
  17277 
  17278     ULONG (STDMETHODCALLTYPE *Release)(
  17279         ISpeechPhraseElements *This);
  17280 
  17281     /*** IDispatch methods ***/
  17282     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  17283         ISpeechPhraseElements *This,
  17284         UINT *pctinfo);
  17285 
  17286     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  17287         ISpeechPhraseElements *This,
  17288         UINT iTInfo,
  17289         LCID lcid,
  17290         ITypeInfo **ppTInfo);
  17291 
  17292     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  17293         ISpeechPhraseElements *This,
  17294         REFIID riid,
  17295         LPOLESTR *rgszNames,
  17296         UINT cNames,
  17297         LCID lcid,
  17298         DISPID *rgDispId);
  17299 
  17300     HRESULT (STDMETHODCALLTYPE *Invoke)(
  17301         ISpeechPhraseElements *This,
  17302         DISPID dispIdMember,
  17303         REFIID riid,
  17304         LCID lcid,
  17305         WORD wFlags,
  17306         DISPPARAMS *pDispParams,
  17307         VARIANT *pVarResult,
  17308         EXCEPINFO *pExcepInfo,
  17309         UINT *puArgErr);
  17310 
  17311     /*** ISpeechPhraseElements methods ***/
  17312     HRESULT (STDMETHODCALLTYPE *get_Count)(
  17313         ISpeechPhraseElements *This,
  17314         LONG *Count);
  17315 
  17316     HRESULT (STDMETHODCALLTYPE *Item)(
  17317         ISpeechPhraseElements *This,
  17318         LONG Index,
  17319         ISpeechPhraseElement **Element);
  17320 
  17321     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
  17322         ISpeechPhraseElements *This,
  17323         IUnknown **EnumVARIANT);
  17324 
  17325     END_INTERFACE
  17326 } ISpeechPhraseElementsVtbl;
  17327 
  17328 interface ISpeechPhraseElements {
  17329     CONST_VTBL ISpeechPhraseElementsVtbl* lpVtbl;
  17330 };
  17331 
  17332 #ifdef COBJMACROS
  17333 #ifndef WIDL_C_INLINE_WRAPPERS
  17334 /*** IUnknown methods ***/
  17335 #define ISpeechPhraseElements_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  17336 #define ISpeechPhraseElements_AddRef(This) (This)->lpVtbl->AddRef(This)
  17337 #define ISpeechPhraseElements_Release(This) (This)->lpVtbl->Release(This)
  17338 /*** IDispatch methods ***/
  17339 #define ISpeechPhraseElements_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  17340 #define ISpeechPhraseElements_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  17341 #define ISpeechPhraseElements_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  17342 #define ISpeechPhraseElements_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  17343 /*** ISpeechPhraseElements methods ***/
  17344 #define ISpeechPhraseElements_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
  17345 #define ISpeechPhraseElements_Item(This,Index,Element) (This)->lpVtbl->Item(This,Index,Element)
  17346 #define ISpeechPhraseElements_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
  17347 #else
  17348 /*** IUnknown methods ***/
  17349 static inline HRESULT ISpeechPhraseElements_QueryInterface(ISpeechPhraseElements* This,REFIID riid,void **ppvObject) {
  17350     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  17351 }
  17352 static inline ULONG ISpeechPhraseElements_AddRef(ISpeechPhraseElements* This) {
  17353     return This->lpVtbl->AddRef(This);
  17354 }
  17355 static inline ULONG ISpeechPhraseElements_Release(ISpeechPhraseElements* This) {
  17356     return This->lpVtbl->Release(This);
  17357 }
  17358 /*** IDispatch methods ***/
  17359 static inline HRESULT ISpeechPhraseElements_GetTypeInfoCount(ISpeechPhraseElements* This,UINT *pctinfo) {
  17360     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  17361 }
  17362 static inline HRESULT ISpeechPhraseElements_GetTypeInfo(ISpeechPhraseElements* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  17363     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  17364 }
  17365 static inline HRESULT ISpeechPhraseElements_GetIDsOfNames(ISpeechPhraseElements* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  17366     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  17367 }
  17368 static inline HRESULT ISpeechPhraseElements_Invoke(ISpeechPhraseElements* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  17369     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  17370 }
  17371 /*** ISpeechPhraseElements methods ***/
  17372 static inline HRESULT ISpeechPhraseElements_get_Count(ISpeechPhraseElements* This,LONG *Count) {
  17373     return This->lpVtbl->get_Count(This,Count);
  17374 }
  17375 static inline HRESULT ISpeechPhraseElements_Item(ISpeechPhraseElements* This,LONG Index,ISpeechPhraseElement **Element) {
  17376     return This->lpVtbl->Item(This,Index,Element);
  17377 }
  17378 static inline HRESULT ISpeechPhraseElements_get__NewEnum(ISpeechPhraseElements* This,IUnknown **EnumVARIANT) {
  17379     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
  17380 }
  17381 #endif
  17382 #endif
  17383 
  17384 #endif
  17385 
  17386 
  17387 #endif  /* __ISpeechPhraseElements_INTERFACE_DEFINED__ */
  17388 
  17389 /*****************************************************************************
  17390  * ISpeechPhraseReplacement interface
  17391  */
  17392 #ifndef __ISpeechPhraseReplacement_INTERFACE_DEFINED__
  17393 #define __ISpeechPhraseReplacement_INTERFACE_DEFINED__
  17394 
  17395 DEFINE_GUID(IID_ISpeechPhraseReplacement, 0x2890a410, 0x53a7, 0x4fb5, 0x94,0xec, 0x06,0xd4,0x99,0x8e,0x3d,0x02);
  17396 #if defined(__cplusplus) && !defined(CINTERFACE)
  17397 MIDL_INTERFACE("2890a410-53a7-4fb5-94ec-06d4998e3d02")
  17398 ISpeechPhraseReplacement : public IDispatch
  17399 {
  17400     virtual HRESULT STDMETHODCALLTYPE get_DisplayAttributes(
  17401         SpeechDisplayAttributes *DisplayAttributes) = 0;
  17402 
  17403     virtual HRESULT STDMETHODCALLTYPE get_Text(
  17404         BSTR *Text) = 0;
  17405 
  17406     virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
  17407         LONG *FirstElement) = 0;
  17408 
  17409     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
  17410         LONG *NumberOfElements) = 0;
  17411 
  17412 };
  17413 #ifdef __CRT_UUID_DECL
  17414 __CRT_UUID_DECL(ISpeechPhraseReplacement, 0x2890a410, 0x53a7, 0x4fb5, 0x94,0xec, 0x06,0xd4,0x99,0x8e,0x3d,0x02)
  17415 #endif
  17416 #else
  17417 typedef struct ISpeechPhraseReplacementVtbl {
  17418     BEGIN_INTERFACE
  17419 
  17420     /*** IUnknown methods ***/
  17421     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  17422         ISpeechPhraseReplacement *This,
  17423         REFIID riid,
  17424         void **ppvObject);
  17425 
  17426     ULONG (STDMETHODCALLTYPE *AddRef)(
  17427         ISpeechPhraseReplacement *This);
  17428 
  17429     ULONG (STDMETHODCALLTYPE *Release)(
  17430         ISpeechPhraseReplacement *This);
  17431 
  17432     /*** IDispatch methods ***/
  17433     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  17434         ISpeechPhraseReplacement *This,
  17435         UINT *pctinfo);
  17436 
  17437     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  17438         ISpeechPhraseReplacement *This,
  17439         UINT iTInfo,
  17440         LCID lcid,
  17441         ITypeInfo **ppTInfo);
  17442 
  17443     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  17444         ISpeechPhraseReplacement *This,
  17445         REFIID riid,
  17446         LPOLESTR *rgszNames,
  17447         UINT cNames,
  17448         LCID lcid,
  17449         DISPID *rgDispId);
  17450 
  17451     HRESULT (STDMETHODCALLTYPE *Invoke)(
  17452         ISpeechPhraseReplacement *This,
  17453         DISPID dispIdMember,
  17454         REFIID riid,
  17455         LCID lcid,
  17456         WORD wFlags,
  17457         DISPPARAMS *pDispParams,
  17458         VARIANT *pVarResult,
  17459         EXCEPINFO *pExcepInfo,
  17460         UINT *puArgErr);
  17461 
  17462     /*** ISpeechPhraseReplacement methods ***/
  17463     HRESULT (STDMETHODCALLTYPE *get_DisplayAttributes)(
  17464         ISpeechPhraseReplacement *This,
  17465         SpeechDisplayAttributes *DisplayAttributes);
  17466 
  17467     HRESULT (STDMETHODCALLTYPE *get_Text)(
  17468         ISpeechPhraseReplacement *This,
  17469         BSTR *Text);
  17470 
  17471     HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
  17472         ISpeechPhraseReplacement *This,
  17473         LONG *FirstElement);
  17474 
  17475     HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
  17476         ISpeechPhraseReplacement *This,
  17477         LONG *NumberOfElements);
  17478 
  17479     END_INTERFACE
  17480 } ISpeechPhraseReplacementVtbl;
  17481 
  17482 interface ISpeechPhraseReplacement {
  17483     CONST_VTBL ISpeechPhraseReplacementVtbl* lpVtbl;
  17484 };
  17485 
  17486 #ifdef COBJMACROS
  17487 #ifndef WIDL_C_INLINE_WRAPPERS
  17488 /*** IUnknown methods ***/
  17489 #define ISpeechPhraseReplacement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  17490 #define ISpeechPhraseReplacement_AddRef(This) (This)->lpVtbl->AddRef(This)
  17491 #define ISpeechPhraseReplacement_Release(This) (This)->lpVtbl->Release(This)
  17492 /*** IDispatch methods ***/
  17493 #define ISpeechPhraseReplacement_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  17494 #define ISpeechPhraseReplacement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  17495 #define ISpeechPhraseReplacement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  17496 #define ISpeechPhraseReplacement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  17497 /*** ISpeechPhraseReplacement methods ***/
  17498 #define ISpeechPhraseReplacement_get_DisplayAttributes(This,DisplayAttributes) (This)->lpVtbl->get_DisplayAttributes(This,DisplayAttributes)
  17499 #define ISpeechPhraseReplacement_get_Text(This,Text) (This)->lpVtbl->get_Text(This,Text)
  17500 #define ISpeechPhraseReplacement_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
  17501 #define ISpeechPhraseReplacement_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
  17502 #else
  17503 /*** IUnknown methods ***/
  17504 static inline HRESULT ISpeechPhraseReplacement_QueryInterface(ISpeechPhraseReplacement* This,REFIID riid,void **ppvObject) {
  17505     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  17506 }
  17507 static inline ULONG ISpeechPhraseReplacement_AddRef(ISpeechPhraseReplacement* This) {
  17508     return This->lpVtbl->AddRef(This);
  17509 }
  17510 static inline ULONG ISpeechPhraseReplacement_Release(ISpeechPhraseReplacement* This) {
  17511     return This->lpVtbl->Release(This);
  17512 }
  17513 /*** IDispatch methods ***/
  17514 static inline HRESULT ISpeechPhraseReplacement_GetTypeInfoCount(ISpeechPhraseReplacement* This,UINT *pctinfo) {
  17515     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  17516 }
  17517 static inline HRESULT ISpeechPhraseReplacement_GetTypeInfo(ISpeechPhraseReplacement* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  17518     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  17519 }
  17520 static inline HRESULT ISpeechPhraseReplacement_GetIDsOfNames(ISpeechPhraseReplacement* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  17521     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  17522 }
  17523 static inline HRESULT ISpeechPhraseReplacement_Invoke(ISpeechPhraseReplacement* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  17524     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  17525 }
  17526 /*** ISpeechPhraseReplacement methods ***/
  17527 static inline HRESULT ISpeechPhraseReplacement_get_DisplayAttributes(ISpeechPhraseReplacement* This,SpeechDisplayAttributes *DisplayAttributes) {
  17528     return This->lpVtbl->get_DisplayAttributes(This,DisplayAttributes);
  17529 }
  17530 static inline HRESULT ISpeechPhraseReplacement_get_Text(ISpeechPhraseReplacement* This,BSTR *Text) {
  17531     return This->lpVtbl->get_Text(This,Text);
  17532 }
  17533 static inline HRESULT ISpeechPhraseReplacement_get_FirstElement(ISpeechPhraseReplacement* This,LONG *FirstElement) {
  17534     return This->lpVtbl->get_FirstElement(This,FirstElement);
  17535 }
  17536 static inline HRESULT ISpeechPhraseReplacement_get_NumberOfElements(ISpeechPhraseReplacement* This,LONG *NumberOfElements) {
  17537     return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
  17538 }
  17539 #endif
  17540 #endif
  17541 
  17542 #endif
  17543 
  17544 
  17545 #endif  /* __ISpeechPhraseReplacement_INTERFACE_DEFINED__ */
  17546 
  17547 /*****************************************************************************
  17548  * ISpeechPhraseReplacements interface
  17549  */
  17550 #ifndef __ISpeechPhraseReplacements_INTERFACE_DEFINED__
  17551 #define __ISpeechPhraseReplacements_INTERFACE_DEFINED__
  17552 
  17553 DEFINE_GUID(IID_ISpeechPhraseReplacements, 0x38bc662f, 0x2257, 0x4525, 0x95,0x9e, 0x20,0x69,0xd2,0x59,0x6c,0x05);
  17554 #if defined(__cplusplus) && !defined(CINTERFACE)
  17555 MIDL_INTERFACE("38bc662f-2257-4525-959e-2069d2596c05")
  17556 ISpeechPhraseReplacements : public IDispatch
  17557 {
  17558     virtual HRESULT STDMETHODCALLTYPE get_Count(
  17559         LONG *Count) = 0;
  17560 
  17561     virtual HRESULT STDMETHODCALLTYPE Item(
  17562         LONG Index,
  17563         ISpeechPhraseReplacement **Reps) = 0;
  17564 
  17565     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
  17566         IUnknown **EnumVARIANT) = 0;
  17567 
  17568 };
  17569 #ifdef __CRT_UUID_DECL
  17570 __CRT_UUID_DECL(ISpeechPhraseReplacements, 0x38bc662f, 0x2257, 0x4525, 0x95,0x9e, 0x20,0x69,0xd2,0x59,0x6c,0x05)
  17571 #endif
  17572 #else
  17573 typedef struct ISpeechPhraseReplacementsVtbl {
  17574     BEGIN_INTERFACE
  17575 
  17576     /*** IUnknown methods ***/
  17577     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  17578         ISpeechPhraseReplacements *This,
  17579         REFIID riid,
  17580         void **ppvObject);
  17581 
  17582     ULONG (STDMETHODCALLTYPE *AddRef)(
  17583         ISpeechPhraseReplacements *This);
  17584 
  17585     ULONG (STDMETHODCALLTYPE *Release)(
  17586         ISpeechPhraseReplacements *This);
  17587 
  17588     /*** IDispatch methods ***/
  17589     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  17590         ISpeechPhraseReplacements *This,
  17591         UINT *pctinfo);
  17592 
  17593     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  17594         ISpeechPhraseReplacements *This,
  17595         UINT iTInfo,
  17596         LCID lcid,
  17597         ITypeInfo **ppTInfo);
  17598 
  17599     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  17600         ISpeechPhraseReplacements *This,
  17601         REFIID riid,
  17602         LPOLESTR *rgszNames,
  17603         UINT cNames,
  17604         LCID lcid,
  17605         DISPID *rgDispId);
  17606 
  17607     HRESULT (STDMETHODCALLTYPE *Invoke)(
  17608         ISpeechPhraseReplacements *This,
  17609         DISPID dispIdMember,
  17610         REFIID riid,
  17611         LCID lcid,
  17612         WORD wFlags,
  17613         DISPPARAMS *pDispParams,
  17614         VARIANT *pVarResult,
  17615         EXCEPINFO *pExcepInfo,
  17616         UINT *puArgErr);
  17617 
  17618     /*** ISpeechPhraseReplacements methods ***/
  17619     HRESULT (STDMETHODCALLTYPE *get_Count)(
  17620         ISpeechPhraseReplacements *This,
  17621         LONG *Count);
  17622 
  17623     HRESULT (STDMETHODCALLTYPE *Item)(
  17624         ISpeechPhraseReplacements *This,
  17625         LONG Index,
  17626         ISpeechPhraseReplacement **Reps);
  17627 
  17628     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
  17629         ISpeechPhraseReplacements *This,
  17630         IUnknown **EnumVARIANT);
  17631 
  17632     END_INTERFACE
  17633 } ISpeechPhraseReplacementsVtbl;
  17634 
  17635 interface ISpeechPhraseReplacements {
  17636     CONST_VTBL ISpeechPhraseReplacementsVtbl* lpVtbl;
  17637 };
  17638 
  17639 #ifdef COBJMACROS
  17640 #ifndef WIDL_C_INLINE_WRAPPERS
  17641 /*** IUnknown methods ***/
  17642 #define ISpeechPhraseReplacements_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  17643 #define ISpeechPhraseReplacements_AddRef(This) (This)->lpVtbl->AddRef(This)
  17644 #define ISpeechPhraseReplacements_Release(This) (This)->lpVtbl->Release(This)
  17645 /*** IDispatch methods ***/
  17646 #define ISpeechPhraseReplacements_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  17647 #define ISpeechPhraseReplacements_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  17648 #define ISpeechPhraseReplacements_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  17649 #define ISpeechPhraseReplacements_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  17650 /*** ISpeechPhraseReplacements methods ***/
  17651 #define ISpeechPhraseReplacements_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
  17652 #define ISpeechPhraseReplacements_Item(This,Index,Reps) (This)->lpVtbl->Item(This,Index,Reps)
  17653 #define ISpeechPhraseReplacements_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
  17654 #else
  17655 /*** IUnknown methods ***/
  17656 static inline HRESULT ISpeechPhraseReplacements_QueryInterface(ISpeechPhraseReplacements* This,REFIID riid,void **ppvObject) {
  17657     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  17658 }
  17659 static inline ULONG ISpeechPhraseReplacements_AddRef(ISpeechPhraseReplacements* This) {
  17660     return This->lpVtbl->AddRef(This);
  17661 }
  17662 static inline ULONG ISpeechPhraseReplacements_Release(ISpeechPhraseReplacements* This) {
  17663     return This->lpVtbl->Release(This);
  17664 }
  17665 /*** IDispatch methods ***/
  17666 static inline HRESULT ISpeechPhraseReplacements_GetTypeInfoCount(ISpeechPhraseReplacements* This,UINT *pctinfo) {
  17667     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  17668 }
  17669 static inline HRESULT ISpeechPhraseReplacements_GetTypeInfo(ISpeechPhraseReplacements* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  17670     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  17671 }
  17672 static inline HRESULT ISpeechPhraseReplacements_GetIDsOfNames(ISpeechPhraseReplacements* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  17673     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  17674 }
  17675 static inline HRESULT ISpeechPhraseReplacements_Invoke(ISpeechPhraseReplacements* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  17676     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  17677 }
  17678 /*** ISpeechPhraseReplacements methods ***/
  17679 static inline HRESULT ISpeechPhraseReplacements_get_Count(ISpeechPhraseReplacements* This,LONG *Count) {
  17680     return This->lpVtbl->get_Count(This,Count);
  17681 }
  17682 static inline HRESULT ISpeechPhraseReplacements_Item(ISpeechPhraseReplacements* This,LONG Index,ISpeechPhraseReplacement **Reps) {
  17683     return This->lpVtbl->Item(This,Index,Reps);
  17684 }
  17685 static inline HRESULT ISpeechPhraseReplacements_get__NewEnum(ISpeechPhraseReplacements* This,IUnknown **EnumVARIANT) {
  17686     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
  17687 }
  17688 #endif
  17689 #endif
  17690 
  17691 #endif
  17692 
  17693 
  17694 #endif  /* __ISpeechPhraseReplacements_INTERFACE_DEFINED__ */
  17695 
  17696 /*****************************************************************************
  17697  * ISpeechPhraseProperty interface
  17698  */
  17699 #ifndef __ISpeechPhraseProperty_INTERFACE_DEFINED__
  17700 #define __ISpeechPhraseProperty_INTERFACE_DEFINED__
  17701 
  17702 DEFINE_GUID(IID_ISpeechPhraseProperty, 0xce563d48, 0x961e, 0x4732, 0xa2,0xe1, 0x37,0x8a,0x42,0xb4,0x30,0xbe);
  17703 #if defined(__cplusplus) && !defined(CINTERFACE)
  17704 MIDL_INTERFACE("ce563d48-961e-4732-a2e1-378a42b430be")
  17705 ISpeechPhraseProperty : public IDispatch
  17706 {
  17707     virtual HRESULT STDMETHODCALLTYPE get_Name(
  17708         BSTR *Name) = 0;
  17709 
  17710     virtual HRESULT STDMETHODCALLTYPE get_Id(
  17711         LONG *Id) = 0;
  17712 
  17713     virtual HRESULT STDMETHODCALLTYPE get_Value(
  17714         VARIANT *Value) = 0;
  17715 
  17716     virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
  17717         LONG *FirstElement) = 0;
  17718 
  17719     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
  17720         LONG *NumberOfElements) = 0;
  17721 
  17722     virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
  17723         float *Confidence) = 0;
  17724 
  17725     virtual HRESULT STDMETHODCALLTYPE get_Confidence(
  17726         SpeechEngineConfidence *Confidence) = 0;
  17727 
  17728     virtual HRESULT STDMETHODCALLTYPE get_Parent(
  17729         ISpeechPhraseProperty **ParentProperty) = 0;
  17730 
  17731     virtual HRESULT STDMETHODCALLTYPE get_Children(
  17732         ISpeechPhraseProperties **Children) = 0;
  17733 
  17734 };
  17735 #ifdef __CRT_UUID_DECL
  17736 __CRT_UUID_DECL(ISpeechPhraseProperty, 0xce563d48, 0x961e, 0x4732, 0xa2,0xe1, 0x37,0x8a,0x42,0xb4,0x30,0xbe)
  17737 #endif
  17738 #else
  17739 typedef struct ISpeechPhrasePropertyVtbl {
  17740     BEGIN_INTERFACE
  17741 
  17742     /*** IUnknown methods ***/
  17743     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  17744         ISpeechPhraseProperty *This,
  17745         REFIID riid,
  17746         void **ppvObject);
  17747 
  17748     ULONG (STDMETHODCALLTYPE *AddRef)(
  17749         ISpeechPhraseProperty *This);
  17750 
  17751     ULONG (STDMETHODCALLTYPE *Release)(
  17752         ISpeechPhraseProperty *This);
  17753 
  17754     /*** IDispatch methods ***/
  17755     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  17756         ISpeechPhraseProperty *This,
  17757         UINT *pctinfo);
  17758 
  17759     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  17760         ISpeechPhraseProperty *This,
  17761         UINT iTInfo,
  17762         LCID lcid,
  17763         ITypeInfo **ppTInfo);
  17764 
  17765     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  17766         ISpeechPhraseProperty *This,
  17767         REFIID riid,
  17768         LPOLESTR *rgszNames,
  17769         UINT cNames,
  17770         LCID lcid,
  17771         DISPID *rgDispId);
  17772 
  17773     HRESULT (STDMETHODCALLTYPE *Invoke)(
  17774         ISpeechPhraseProperty *This,
  17775         DISPID dispIdMember,
  17776         REFIID riid,
  17777         LCID lcid,
  17778         WORD wFlags,
  17779         DISPPARAMS *pDispParams,
  17780         VARIANT *pVarResult,
  17781         EXCEPINFO *pExcepInfo,
  17782         UINT *puArgErr);
  17783 
  17784     /*** ISpeechPhraseProperty methods ***/
  17785     HRESULT (STDMETHODCALLTYPE *get_Name)(
  17786         ISpeechPhraseProperty *This,
  17787         BSTR *Name);
  17788 
  17789     HRESULT (STDMETHODCALLTYPE *get_Id)(
  17790         ISpeechPhraseProperty *This,
  17791         LONG *Id);
  17792 
  17793     HRESULT (STDMETHODCALLTYPE *get_Value)(
  17794         ISpeechPhraseProperty *This,
  17795         VARIANT *Value);
  17796 
  17797     HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
  17798         ISpeechPhraseProperty *This,
  17799         LONG *FirstElement);
  17800 
  17801     HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
  17802         ISpeechPhraseProperty *This,
  17803         LONG *NumberOfElements);
  17804 
  17805     HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
  17806         ISpeechPhraseProperty *This,
  17807         float *Confidence);
  17808 
  17809     HRESULT (STDMETHODCALLTYPE *get_Confidence)(
  17810         ISpeechPhraseProperty *This,
  17811         SpeechEngineConfidence *Confidence);
  17812 
  17813     HRESULT (STDMETHODCALLTYPE *get_Parent)(
  17814         ISpeechPhraseProperty *This,
  17815         ISpeechPhraseProperty **ParentProperty);
  17816 
  17817     HRESULT (STDMETHODCALLTYPE *get_Children)(
  17818         ISpeechPhraseProperty *This,
  17819         ISpeechPhraseProperties **Children);
  17820 
  17821     END_INTERFACE
  17822 } ISpeechPhrasePropertyVtbl;
  17823 
  17824 interface ISpeechPhraseProperty {
  17825     CONST_VTBL ISpeechPhrasePropertyVtbl* lpVtbl;
  17826 };
  17827 
  17828 #ifdef COBJMACROS
  17829 #ifndef WIDL_C_INLINE_WRAPPERS
  17830 /*** IUnknown methods ***/
  17831 #define ISpeechPhraseProperty_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  17832 #define ISpeechPhraseProperty_AddRef(This) (This)->lpVtbl->AddRef(This)
  17833 #define ISpeechPhraseProperty_Release(This) (This)->lpVtbl->Release(This)
  17834 /*** IDispatch methods ***/
  17835 #define ISpeechPhraseProperty_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  17836 #define ISpeechPhraseProperty_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  17837 #define ISpeechPhraseProperty_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  17838 #define ISpeechPhraseProperty_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  17839 /*** ISpeechPhraseProperty methods ***/
  17840 #define ISpeechPhraseProperty_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
  17841 #define ISpeechPhraseProperty_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
  17842 #define ISpeechPhraseProperty_get_Value(This,Value) (This)->lpVtbl->get_Value(This,Value)
  17843 #define ISpeechPhraseProperty_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
  17844 #define ISpeechPhraseProperty_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
  17845 #define ISpeechPhraseProperty_get_EngineConfidence(This,Confidence) (This)->lpVtbl->get_EngineConfidence(This,Confidence)
  17846 #define ISpeechPhraseProperty_get_Confidence(This,Confidence) (This)->lpVtbl->get_Confidence(This,Confidence)
  17847 #define ISpeechPhraseProperty_get_Parent(This,ParentProperty) (This)->lpVtbl->get_Parent(This,ParentProperty)
  17848 #define ISpeechPhraseProperty_get_Children(This,Children) (This)->lpVtbl->get_Children(This,Children)
  17849 #else
  17850 /*** IUnknown methods ***/
  17851 static inline HRESULT ISpeechPhraseProperty_QueryInterface(ISpeechPhraseProperty* This,REFIID riid,void **ppvObject) {
  17852     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  17853 }
  17854 static inline ULONG ISpeechPhraseProperty_AddRef(ISpeechPhraseProperty* This) {
  17855     return This->lpVtbl->AddRef(This);
  17856 }
  17857 static inline ULONG ISpeechPhraseProperty_Release(ISpeechPhraseProperty* This) {
  17858     return This->lpVtbl->Release(This);
  17859 }
  17860 /*** IDispatch methods ***/
  17861 static inline HRESULT ISpeechPhraseProperty_GetTypeInfoCount(ISpeechPhraseProperty* This,UINT *pctinfo) {
  17862     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  17863 }
  17864 static inline HRESULT ISpeechPhraseProperty_GetTypeInfo(ISpeechPhraseProperty* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  17865     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  17866 }
  17867 static inline HRESULT ISpeechPhraseProperty_GetIDsOfNames(ISpeechPhraseProperty* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  17868     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  17869 }
  17870 static inline HRESULT ISpeechPhraseProperty_Invoke(ISpeechPhraseProperty* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  17871     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  17872 }
  17873 /*** ISpeechPhraseProperty methods ***/
  17874 static inline HRESULT ISpeechPhraseProperty_get_Name(ISpeechPhraseProperty* This,BSTR *Name) {
  17875     return This->lpVtbl->get_Name(This,Name);
  17876 }
  17877 static inline HRESULT ISpeechPhraseProperty_get_Id(ISpeechPhraseProperty* This,LONG *Id) {
  17878     return This->lpVtbl->get_Id(This,Id);
  17879 }
  17880 static inline HRESULT ISpeechPhraseProperty_get_Value(ISpeechPhraseProperty* This,VARIANT *Value) {
  17881     return This->lpVtbl->get_Value(This,Value);
  17882 }
  17883 static inline HRESULT ISpeechPhraseProperty_get_FirstElement(ISpeechPhraseProperty* This,LONG *FirstElement) {
  17884     return This->lpVtbl->get_FirstElement(This,FirstElement);
  17885 }
  17886 static inline HRESULT ISpeechPhraseProperty_get_NumberOfElements(ISpeechPhraseProperty* This,LONG *NumberOfElements) {
  17887     return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
  17888 }
  17889 static inline HRESULT ISpeechPhraseProperty_get_EngineConfidence(ISpeechPhraseProperty* This,float *Confidence) {
  17890     return This->lpVtbl->get_EngineConfidence(This,Confidence);
  17891 }
  17892 static inline HRESULT ISpeechPhraseProperty_get_Confidence(ISpeechPhraseProperty* This,SpeechEngineConfidence *Confidence) {
  17893     return This->lpVtbl->get_Confidence(This,Confidence);
  17894 }
  17895 static inline HRESULT ISpeechPhraseProperty_get_Parent(ISpeechPhraseProperty* This,ISpeechPhraseProperty **ParentProperty) {
  17896     return This->lpVtbl->get_Parent(This,ParentProperty);
  17897 }
  17898 static inline HRESULT ISpeechPhraseProperty_get_Children(ISpeechPhraseProperty* This,ISpeechPhraseProperties **Children) {
  17899     return This->lpVtbl->get_Children(This,Children);
  17900 }
  17901 #endif
  17902 #endif
  17903 
  17904 #endif
  17905 
  17906 
  17907 #endif  /* __ISpeechPhraseProperty_INTERFACE_DEFINED__ */
  17908 
  17909 /*****************************************************************************
  17910  * ISpeechPhraseProperties interface
  17911  */
  17912 #ifndef __ISpeechPhraseProperties_INTERFACE_DEFINED__
  17913 #define __ISpeechPhraseProperties_INTERFACE_DEFINED__
  17914 
  17915 DEFINE_GUID(IID_ISpeechPhraseProperties, 0x08166b47, 0x102e, 0x4b23, 0xa5,0x99, 0xbd,0xb9,0x8d,0xbf,0xd1,0xf4);
  17916 #if defined(__cplusplus) && !defined(CINTERFACE)
  17917 MIDL_INTERFACE("08166b47-102e-4b23-a599-bdb98dbfd1f4")
  17918 ISpeechPhraseProperties : public IDispatch
  17919 {
  17920     virtual HRESULT STDMETHODCALLTYPE get_Count(
  17921         LONG *Count) = 0;
  17922 
  17923     virtual HRESULT STDMETHODCALLTYPE Item(
  17924         LONG Index,
  17925         ISpeechPhraseProperty **Property) = 0;
  17926 
  17927     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
  17928         IUnknown **EnumVARIANT) = 0;
  17929 
  17930 };
  17931 #ifdef __CRT_UUID_DECL
  17932 __CRT_UUID_DECL(ISpeechPhraseProperties, 0x08166b47, 0x102e, 0x4b23, 0xa5,0x99, 0xbd,0xb9,0x8d,0xbf,0xd1,0xf4)
  17933 #endif
  17934 #else
  17935 typedef struct ISpeechPhrasePropertiesVtbl {
  17936     BEGIN_INTERFACE
  17937 
  17938     /*** IUnknown methods ***/
  17939     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  17940         ISpeechPhraseProperties *This,
  17941         REFIID riid,
  17942         void **ppvObject);
  17943 
  17944     ULONG (STDMETHODCALLTYPE *AddRef)(
  17945         ISpeechPhraseProperties *This);
  17946 
  17947     ULONG (STDMETHODCALLTYPE *Release)(
  17948         ISpeechPhraseProperties *This);
  17949 
  17950     /*** IDispatch methods ***/
  17951     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  17952         ISpeechPhraseProperties *This,
  17953         UINT *pctinfo);
  17954 
  17955     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  17956         ISpeechPhraseProperties *This,
  17957         UINT iTInfo,
  17958         LCID lcid,
  17959         ITypeInfo **ppTInfo);
  17960 
  17961     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  17962         ISpeechPhraseProperties *This,
  17963         REFIID riid,
  17964         LPOLESTR *rgszNames,
  17965         UINT cNames,
  17966         LCID lcid,
  17967         DISPID *rgDispId);
  17968 
  17969     HRESULT (STDMETHODCALLTYPE *Invoke)(
  17970         ISpeechPhraseProperties *This,
  17971         DISPID dispIdMember,
  17972         REFIID riid,
  17973         LCID lcid,
  17974         WORD wFlags,
  17975         DISPPARAMS *pDispParams,
  17976         VARIANT *pVarResult,
  17977         EXCEPINFO *pExcepInfo,
  17978         UINT *puArgErr);
  17979 
  17980     /*** ISpeechPhraseProperties methods ***/
  17981     HRESULT (STDMETHODCALLTYPE *get_Count)(
  17982         ISpeechPhraseProperties *This,
  17983         LONG *Count);
  17984 
  17985     HRESULT (STDMETHODCALLTYPE *Item)(
  17986         ISpeechPhraseProperties *This,
  17987         LONG Index,
  17988         ISpeechPhraseProperty **Property);
  17989 
  17990     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
  17991         ISpeechPhraseProperties *This,
  17992         IUnknown **EnumVARIANT);
  17993 
  17994     END_INTERFACE
  17995 } ISpeechPhrasePropertiesVtbl;
  17996 
  17997 interface ISpeechPhraseProperties {
  17998     CONST_VTBL ISpeechPhrasePropertiesVtbl* lpVtbl;
  17999 };
  18000 
  18001 #ifdef COBJMACROS
  18002 #ifndef WIDL_C_INLINE_WRAPPERS
  18003 /*** IUnknown methods ***/
  18004 #define ISpeechPhraseProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  18005 #define ISpeechPhraseProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
  18006 #define ISpeechPhraseProperties_Release(This) (This)->lpVtbl->Release(This)
  18007 /*** IDispatch methods ***/
  18008 #define ISpeechPhraseProperties_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  18009 #define ISpeechPhraseProperties_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  18010 #define ISpeechPhraseProperties_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  18011 #define ISpeechPhraseProperties_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  18012 /*** ISpeechPhraseProperties methods ***/
  18013 #define ISpeechPhraseProperties_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
  18014 #define ISpeechPhraseProperties_Item(This,Index,Property) (This)->lpVtbl->Item(This,Index,Property)
  18015 #define ISpeechPhraseProperties_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
  18016 #else
  18017 /*** IUnknown methods ***/
  18018 static inline HRESULT ISpeechPhraseProperties_QueryInterface(ISpeechPhraseProperties* This,REFIID riid,void **ppvObject) {
  18019     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  18020 }
  18021 static inline ULONG ISpeechPhraseProperties_AddRef(ISpeechPhraseProperties* This) {
  18022     return This->lpVtbl->AddRef(This);
  18023 }
  18024 static inline ULONG ISpeechPhraseProperties_Release(ISpeechPhraseProperties* This) {
  18025     return This->lpVtbl->Release(This);
  18026 }
  18027 /*** IDispatch methods ***/
  18028 static inline HRESULT ISpeechPhraseProperties_GetTypeInfoCount(ISpeechPhraseProperties* This,UINT *pctinfo) {
  18029     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  18030 }
  18031 static inline HRESULT ISpeechPhraseProperties_GetTypeInfo(ISpeechPhraseProperties* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  18032     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  18033 }
  18034 static inline HRESULT ISpeechPhraseProperties_GetIDsOfNames(ISpeechPhraseProperties* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  18035     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  18036 }
  18037 static inline HRESULT ISpeechPhraseProperties_Invoke(ISpeechPhraseProperties* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  18038     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  18039 }
  18040 /*** ISpeechPhraseProperties methods ***/
  18041 static inline HRESULT ISpeechPhraseProperties_get_Count(ISpeechPhraseProperties* This,LONG *Count) {
  18042     return This->lpVtbl->get_Count(This,Count);
  18043 }
  18044 static inline HRESULT ISpeechPhraseProperties_Item(ISpeechPhraseProperties* This,LONG Index,ISpeechPhraseProperty **Property) {
  18045     return This->lpVtbl->Item(This,Index,Property);
  18046 }
  18047 static inline HRESULT ISpeechPhraseProperties_get__NewEnum(ISpeechPhraseProperties* This,IUnknown **EnumVARIANT) {
  18048     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
  18049 }
  18050 #endif
  18051 #endif
  18052 
  18053 #endif
  18054 
  18055 
  18056 #endif  /* __ISpeechPhraseProperties_INTERFACE_DEFINED__ */
  18057 
  18058 /*****************************************************************************
  18059  * ISpeechPhraseRule interface
  18060  */
  18061 #ifndef __ISpeechPhraseRule_INTERFACE_DEFINED__
  18062 #define __ISpeechPhraseRule_INTERFACE_DEFINED__
  18063 
  18064 DEFINE_GUID(IID_ISpeechPhraseRule, 0xa7bfe112, 0xa4a0, 0x48d9, 0xb6,0x02, 0xc3,0x13,0x84,0x3f,0x69,0x64);
  18065 #if defined(__cplusplus) && !defined(CINTERFACE)
  18066 MIDL_INTERFACE("a7bfe112-a4a0-48d9-b602-c313843f6964")
  18067 ISpeechPhraseRule : public IDispatch
  18068 {
  18069     virtual HRESULT STDMETHODCALLTYPE get_Name(
  18070         BSTR *Name) = 0;
  18071 
  18072     virtual HRESULT STDMETHODCALLTYPE get_Id(
  18073         LONG *Id) = 0;
  18074 
  18075     virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
  18076         LONG *FirstElement) = 0;
  18077 
  18078     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
  18079         LONG *NumberOfElements) = 0;
  18080 
  18081     virtual HRESULT STDMETHODCALLTYPE get_Parent(
  18082         ISpeechPhraseRule **Parent) = 0;
  18083 
  18084     virtual HRESULT STDMETHODCALLTYPE get_Children(
  18085         ISpeechPhraseRules **Children) = 0;
  18086 
  18087     virtual HRESULT STDMETHODCALLTYPE get_Confidence(
  18088         SpeechEngineConfidence *ActualConfidence) = 0;
  18089 
  18090     virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
  18091         float *EngineConfidence) = 0;
  18092 
  18093 };
  18094 #ifdef __CRT_UUID_DECL
  18095 __CRT_UUID_DECL(ISpeechPhraseRule, 0xa7bfe112, 0xa4a0, 0x48d9, 0xb6,0x02, 0xc3,0x13,0x84,0x3f,0x69,0x64)
  18096 #endif
  18097 #else
  18098 typedef struct ISpeechPhraseRuleVtbl {
  18099     BEGIN_INTERFACE
  18100 
  18101     /*** IUnknown methods ***/
  18102     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  18103         ISpeechPhraseRule *This,
  18104         REFIID riid,
  18105         void **ppvObject);
  18106 
  18107     ULONG (STDMETHODCALLTYPE *AddRef)(
  18108         ISpeechPhraseRule *This);
  18109 
  18110     ULONG (STDMETHODCALLTYPE *Release)(
  18111         ISpeechPhraseRule *This);
  18112 
  18113     /*** IDispatch methods ***/
  18114     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  18115         ISpeechPhraseRule *This,
  18116         UINT *pctinfo);
  18117 
  18118     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  18119         ISpeechPhraseRule *This,
  18120         UINT iTInfo,
  18121         LCID lcid,
  18122         ITypeInfo **ppTInfo);
  18123 
  18124     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  18125         ISpeechPhraseRule *This,
  18126         REFIID riid,
  18127         LPOLESTR *rgszNames,
  18128         UINT cNames,
  18129         LCID lcid,
  18130         DISPID *rgDispId);
  18131 
  18132     HRESULT (STDMETHODCALLTYPE *Invoke)(
  18133         ISpeechPhraseRule *This,
  18134         DISPID dispIdMember,
  18135         REFIID riid,
  18136         LCID lcid,
  18137         WORD wFlags,
  18138         DISPPARAMS *pDispParams,
  18139         VARIANT *pVarResult,
  18140         EXCEPINFO *pExcepInfo,
  18141         UINT *puArgErr);
  18142 
  18143     /*** ISpeechPhraseRule methods ***/
  18144     HRESULT (STDMETHODCALLTYPE *get_Name)(
  18145         ISpeechPhraseRule *This,
  18146         BSTR *Name);
  18147 
  18148     HRESULT (STDMETHODCALLTYPE *get_Id)(
  18149         ISpeechPhraseRule *This,
  18150         LONG *Id);
  18151 
  18152     HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
  18153         ISpeechPhraseRule *This,
  18154         LONG *FirstElement);
  18155 
  18156     HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
  18157         ISpeechPhraseRule *This,
  18158         LONG *NumberOfElements);
  18159 
  18160     HRESULT (STDMETHODCALLTYPE *get_Parent)(
  18161         ISpeechPhraseRule *This,
  18162         ISpeechPhraseRule **Parent);
  18163 
  18164     HRESULT (STDMETHODCALLTYPE *get_Children)(
  18165         ISpeechPhraseRule *This,
  18166         ISpeechPhraseRules **Children);
  18167 
  18168     HRESULT (STDMETHODCALLTYPE *get_Confidence)(
  18169         ISpeechPhraseRule *This,
  18170         SpeechEngineConfidence *ActualConfidence);
  18171 
  18172     HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
  18173         ISpeechPhraseRule *This,
  18174         float *EngineConfidence);
  18175 
  18176     END_INTERFACE
  18177 } ISpeechPhraseRuleVtbl;
  18178 
  18179 interface ISpeechPhraseRule {
  18180     CONST_VTBL ISpeechPhraseRuleVtbl* lpVtbl;
  18181 };
  18182 
  18183 #ifdef COBJMACROS
  18184 #ifndef WIDL_C_INLINE_WRAPPERS
  18185 /*** IUnknown methods ***/
  18186 #define ISpeechPhraseRule_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  18187 #define ISpeechPhraseRule_AddRef(This) (This)->lpVtbl->AddRef(This)
  18188 #define ISpeechPhraseRule_Release(This) (This)->lpVtbl->Release(This)
  18189 /*** IDispatch methods ***/
  18190 #define ISpeechPhraseRule_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  18191 #define ISpeechPhraseRule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  18192 #define ISpeechPhraseRule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  18193 #define ISpeechPhraseRule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  18194 /*** ISpeechPhraseRule methods ***/
  18195 #define ISpeechPhraseRule_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
  18196 #define ISpeechPhraseRule_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
  18197 #define ISpeechPhraseRule_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
  18198 #define ISpeechPhraseRule_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
  18199 #define ISpeechPhraseRule_get_Parent(This,Parent) (This)->lpVtbl->get_Parent(This,Parent)
  18200 #define ISpeechPhraseRule_get_Children(This,Children) (This)->lpVtbl->get_Children(This,Children)
  18201 #define ISpeechPhraseRule_get_Confidence(This,ActualConfidence) (This)->lpVtbl->get_Confidence(This,ActualConfidence)
  18202 #define ISpeechPhraseRule_get_EngineConfidence(This,EngineConfidence) (This)->lpVtbl->get_EngineConfidence(This,EngineConfidence)
  18203 #else
  18204 /*** IUnknown methods ***/
  18205 static inline HRESULT ISpeechPhraseRule_QueryInterface(ISpeechPhraseRule* This,REFIID riid,void **ppvObject) {
  18206     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  18207 }
  18208 static inline ULONG ISpeechPhraseRule_AddRef(ISpeechPhraseRule* This) {
  18209     return This->lpVtbl->AddRef(This);
  18210 }
  18211 static inline ULONG ISpeechPhraseRule_Release(ISpeechPhraseRule* This) {
  18212     return This->lpVtbl->Release(This);
  18213 }
  18214 /*** IDispatch methods ***/
  18215 static inline HRESULT ISpeechPhraseRule_GetTypeInfoCount(ISpeechPhraseRule* This,UINT *pctinfo) {
  18216     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  18217 }
  18218 static inline HRESULT ISpeechPhraseRule_GetTypeInfo(ISpeechPhraseRule* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  18219     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  18220 }
  18221 static inline HRESULT ISpeechPhraseRule_GetIDsOfNames(ISpeechPhraseRule* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  18222     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  18223 }
  18224 static inline HRESULT ISpeechPhraseRule_Invoke(ISpeechPhraseRule* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  18225     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  18226 }
  18227 /*** ISpeechPhraseRule methods ***/
  18228 static inline HRESULT ISpeechPhraseRule_get_Name(ISpeechPhraseRule* This,BSTR *Name) {
  18229     return This->lpVtbl->get_Name(This,Name);
  18230 }
  18231 static inline HRESULT ISpeechPhraseRule_get_Id(ISpeechPhraseRule* This,LONG *Id) {
  18232     return This->lpVtbl->get_Id(This,Id);
  18233 }
  18234 static inline HRESULT ISpeechPhraseRule_get_FirstElement(ISpeechPhraseRule* This,LONG *FirstElement) {
  18235     return This->lpVtbl->get_FirstElement(This,FirstElement);
  18236 }
  18237 static inline HRESULT ISpeechPhraseRule_get_NumberOfElements(ISpeechPhraseRule* This,LONG *NumberOfElements) {
  18238     return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
  18239 }
  18240 static inline HRESULT ISpeechPhraseRule_get_Parent(ISpeechPhraseRule* This,ISpeechPhraseRule **Parent) {
  18241     return This->lpVtbl->get_Parent(This,Parent);
  18242 }
  18243 static inline HRESULT ISpeechPhraseRule_get_Children(ISpeechPhraseRule* This,ISpeechPhraseRules **Children) {
  18244     return This->lpVtbl->get_Children(This,Children);
  18245 }
  18246 static inline HRESULT ISpeechPhraseRule_get_Confidence(ISpeechPhraseRule* This,SpeechEngineConfidence *ActualConfidence) {
  18247     return This->lpVtbl->get_Confidence(This,ActualConfidence);
  18248 }
  18249 static inline HRESULT ISpeechPhraseRule_get_EngineConfidence(ISpeechPhraseRule* This,float *EngineConfidence) {
  18250     return This->lpVtbl->get_EngineConfidence(This,EngineConfidence);
  18251 }
  18252 #endif
  18253 #endif
  18254 
  18255 #endif
  18256 
  18257 
  18258 #endif  /* __ISpeechPhraseRule_INTERFACE_DEFINED__ */
  18259 
  18260 /*****************************************************************************
  18261  * ISpeechPhraseRules interface
  18262  */
  18263 #ifndef __ISpeechPhraseRules_INTERFACE_DEFINED__
  18264 #define __ISpeechPhraseRules_INTERFACE_DEFINED__
  18265 
  18266 DEFINE_GUID(IID_ISpeechPhraseRules, 0x9047d593, 0x01dd, 0x4b72, 0x81,0xa3, 0xe4,0xa0,0xca,0x69,0xf4,0x07);
  18267 #if defined(__cplusplus) && !defined(CINTERFACE)
  18268 MIDL_INTERFACE("9047d593-01dd-4b72-81a3-e4a0ca69f407")
  18269 ISpeechPhraseRules : public IDispatch
  18270 {
  18271     virtual HRESULT STDMETHODCALLTYPE get_Count(
  18272         LONG *Count) = 0;
  18273 
  18274     virtual HRESULT STDMETHODCALLTYPE Item(
  18275         LONG Index,
  18276         ISpeechPhraseRule **Rule) = 0;
  18277 
  18278     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
  18279         IUnknown **EnumVARIANT) = 0;
  18280 
  18281 };
  18282 #ifdef __CRT_UUID_DECL
  18283 __CRT_UUID_DECL(ISpeechPhraseRules, 0x9047d593, 0x01dd, 0x4b72, 0x81,0xa3, 0xe4,0xa0,0xca,0x69,0xf4,0x07)
  18284 #endif
  18285 #else
  18286 typedef struct ISpeechPhraseRulesVtbl {
  18287     BEGIN_INTERFACE
  18288 
  18289     /*** IUnknown methods ***/
  18290     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  18291         ISpeechPhraseRules *This,
  18292         REFIID riid,
  18293         void **ppvObject);
  18294 
  18295     ULONG (STDMETHODCALLTYPE *AddRef)(
  18296         ISpeechPhraseRules *This);
  18297 
  18298     ULONG (STDMETHODCALLTYPE *Release)(
  18299         ISpeechPhraseRules *This);
  18300 
  18301     /*** IDispatch methods ***/
  18302     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  18303         ISpeechPhraseRules *This,
  18304         UINT *pctinfo);
  18305 
  18306     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  18307         ISpeechPhraseRules *This,
  18308         UINT iTInfo,
  18309         LCID lcid,
  18310         ITypeInfo **ppTInfo);
  18311 
  18312     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  18313         ISpeechPhraseRules *This,
  18314         REFIID riid,
  18315         LPOLESTR *rgszNames,
  18316         UINT cNames,
  18317         LCID lcid,
  18318         DISPID *rgDispId);
  18319 
  18320     HRESULT (STDMETHODCALLTYPE *Invoke)(
  18321         ISpeechPhraseRules *This,
  18322         DISPID dispIdMember,
  18323         REFIID riid,
  18324         LCID lcid,
  18325         WORD wFlags,
  18326         DISPPARAMS *pDispParams,
  18327         VARIANT *pVarResult,
  18328         EXCEPINFO *pExcepInfo,
  18329         UINT *puArgErr);
  18330 
  18331     /*** ISpeechPhraseRules methods ***/
  18332     HRESULT (STDMETHODCALLTYPE *get_Count)(
  18333         ISpeechPhraseRules *This,
  18334         LONG *Count);
  18335 
  18336     HRESULT (STDMETHODCALLTYPE *Item)(
  18337         ISpeechPhraseRules *This,
  18338         LONG Index,
  18339         ISpeechPhraseRule **Rule);
  18340 
  18341     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
  18342         ISpeechPhraseRules *This,
  18343         IUnknown **EnumVARIANT);
  18344 
  18345     END_INTERFACE
  18346 } ISpeechPhraseRulesVtbl;
  18347 
  18348 interface ISpeechPhraseRules {
  18349     CONST_VTBL ISpeechPhraseRulesVtbl* lpVtbl;
  18350 };
  18351 
  18352 #ifdef COBJMACROS
  18353 #ifndef WIDL_C_INLINE_WRAPPERS
  18354 /*** IUnknown methods ***/
  18355 #define ISpeechPhraseRules_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  18356 #define ISpeechPhraseRules_AddRef(This) (This)->lpVtbl->AddRef(This)
  18357 #define ISpeechPhraseRules_Release(This) (This)->lpVtbl->Release(This)
  18358 /*** IDispatch methods ***/
  18359 #define ISpeechPhraseRules_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  18360 #define ISpeechPhraseRules_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  18361 #define ISpeechPhraseRules_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  18362 #define ISpeechPhraseRules_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  18363 /*** ISpeechPhraseRules methods ***/
  18364 #define ISpeechPhraseRules_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
  18365 #define ISpeechPhraseRules_Item(This,Index,Rule) (This)->lpVtbl->Item(This,Index,Rule)
  18366 #define ISpeechPhraseRules_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
  18367 #else
  18368 /*** IUnknown methods ***/
  18369 static inline HRESULT ISpeechPhraseRules_QueryInterface(ISpeechPhraseRules* This,REFIID riid,void **ppvObject) {
  18370     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  18371 }
  18372 static inline ULONG ISpeechPhraseRules_AddRef(ISpeechPhraseRules* This) {
  18373     return This->lpVtbl->AddRef(This);
  18374 }
  18375 static inline ULONG ISpeechPhraseRules_Release(ISpeechPhraseRules* This) {
  18376     return This->lpVtbl->Release(This);
  18377 }
  18378 /*** IDispatch methods ***/
  18379 static inline HRESULT ISpeechPhraseRules_GetTypeInfoCount(ISpeechPhraseRules* This,UINT *pctinfo) {
  18380     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  18381 }
  18382 static inline HRESULT ISpeechPhraseRules_GetTypeInfo(ISpeechPhraseRules* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  18383     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  18384 }
  18385 static inline HRESULT ISpeechPhraseRules_GetIDsOfNames(ISpeechPhraseRules* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  18386     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  18387 }
  18388 static inline HRESULT ISpeechPhraseRules_Invoke(ISpeechPhraseRules* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  18389     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  18390 }
  18391 /*** ISpeechPhraseRules methods ***/
  18392 static inline HRESULT ISpeechPhraseRules_get_Count(ISpeechPhraseRules* This,LONG *Count) {
  18393     return This->lpVtbl->get_Count(This,Count);
  18394 }
  18395 static inline HRESULT ISpeechPhraseRules_Item(ISpeechPhraseRules* This,LONG Index,ISpeechPhraseRule **Rule) {
  18396     return This->lpVtbl->Item(This,Index,Rule);
  18397 }
  18398 static inline HRESULT ISpeechPhraseRules_get__NewEnum(ISpeechPhraseRules* This,IUnknown **EnumVARIANT) {
  18399     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
  18400 }
  18401 #endif
  18402 #endif
  18403 
  18404 #endif
  18405 
  18406 
  18407 #endif  /* __ISpeechPhraseRules_INTERFACE_DEFINED__ */
  18408 
  18409 /*****************************************************************************
  18410  * ISpeechLexiconWords interface
  18411  */
  18412 #ifndef __ISpeechLexiconWords_INTERFACE_DEFINED__
  18413 #define __ISpeechLexiconWords_INTERFACE_DEFINED__
  18414 
  18415 DEFINE_GUID(IID_ISpeechLexiconWords, 0x8d199862, 0x415e, 0x47d5, 0xac,0x4f, 0xfa,0xa6,0x08,0xb4,0x24,0xe6);
  18416 #if defined(__cplusplus) && !defined(CINTERFACE)
  18417 MIDL_INTERFACE("8d199862-415e-47d5-ac4f-faa608b424e6")
  18418 ISpeechLexiconWords : public IDispatch
  18419 {
  18420     virtual HRESULT STDMETHODCALLTYPE get_Count(
  18421         LONG *Count) = 0;
  18422 
  18423     virtual HRESULT STDMETHODCALLTYPE Item(
  18424         LONG Index,
  18425         ISpeechLexiconWord **Word) = 0;
  18426 
  18427     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
  18428         IUnknown **EnumVARIANT) = 0;
  18429 
  18430 };
  18431 #ifdef __CRT_UUID_DECL
  18432 __CRT_UUID_DECL(ISpeechLexiconWords, 0x8d199862, 0x415e, 0x47d5, 0xac,0x4f, 0xfa,0xa6,0x08,0xb4,0x24,0xe6)
  18433 #endif
  18434 #else
  18435 typedef struct ISpeechLexiconWordsVtbl {
  18436     BEGIN_INTERFACE
  18437 
  18438     /*** IUnknown methods ***/
  18439     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  18440         ISpeechLexiconWords *This,
  18441         REFIID riid,
  18442         void **ppvObject);
  18443 
  18444     ULONG (STDMETHODCALLTYPE *AddRef)(
  18445         ISpeechLexiconWords *This);
  18446 
  18447     ULONG (STDMETHODCALLTYPE *Release)(
  18448         ISpeechLexiconWords *This);
  18449 
  18450     /*** IDispatch methods ***/
  18451     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  18452         ISpeechLexiconWords *This,
  18453         UINT *pctinfo);
  18454 
  18455     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  18456         ISpeechLexiconWords *This,
  18457         UINT iTInfo,
  18458         LCID lcid,
  18459         ITypeInfo **ppTInfo);
  18460 
  18461     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  18462         ISpeechLexiconWords *This,
  18463         REFIID riid,
  18464         LPOLESTR *rgszNames,
  18465         UINT cNames,
  18466         LCID lcid,
  18467         DISPID *rgDispId);
  18468 
  18469     HRESULT (STDMETHODCALLTYPE *Invoke)(
  18470         ISpeechLexiconWords *This,
  18471         DISPID dispIdMember,
  18472         REFIID riid,
  18473         LCID lcid,
  18474         WORD wFlags,
  18475         DISPPARAMS *pDispParams,
  18476         VARIANT *pVarResult,
  18477         EXCEPINFO *pExcepInfo,
  18478         UINT *puArgErr);
  18479 
  18480     /*** ISpeechLexiconWords methods ***/
  18481     HRESULT (STDMETHODCALLTYPE *get_Count)(
  18482         ISpeechLexiconWords *This,
  18483         LONG *Count);
  18484 
  18485     HRESULT (STDMETHODCALLTYPE *Item)(
  18486         ISpeechLexiconWords *This,
  18487         LONG Index,
  18488         ISpeechLexiconWord **Word);
  18489 
  18490     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
  18491         ISpeechLexiconWords *This,
  18492         IUnknown **EnumVARIANT);
  18493 
  18494     END_INTERFACE
  18495 } ISpeechLexiconWordsVtbl;
  18496 
  18497 interface ISpeechLexiconWords {
  18498     CONST_VTBL ISpeechLexiconWordsVtbl* lpVtbl;
  18499 };
  18500 
  18501 #ifdef COBJMACROS
  18502 #ifndef WIDL_C_INLINE_WRAPPERS
  18503 /*** IUnknown methods ***/
  18504 #define ISpeechLexiconWords_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  18505 #define ISpeechLexiconWords_AddRef(This) (This)->lpVtbl->AddRef(This)
  18506 #define ISpeechLexiconWords_Release(This) (This)->lpVtbl->Release(This)
  18507 /*** IDispatch methods ***/
  18508 #define ISpeechLexiconWords_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  18509 #define ISpeechLexiconWords_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  18510 #define ISpeechLexiconWords_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  18511 #define ISpeechLexiconWords_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  18512 /*** ISpeechLexiconWords methods ***/
  18513 #define ISpeechLexiconWords_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
  18514 #define ISpeechLexiconWords_Item(This,Index,Word) (This)->lpVtbl->Item(This,Index,Word)
  18515 #define ISpeechLexiconWords_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
  18516 #else
  18517 /*** IUnknown methods ***/
  18518 static inline HRESULT ISpeechLexiconWords_QueryInterface(ISpeechLexiconWords* This,REFIID riid,void **ppvObject) {
  18519     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  18520 }
  18521 static inline ULONG ISpeechLexiconWords_AddRef(ISpeechLexiconWords* This) {
  18522     return This->lpVtbl->AddRef(This);
  18523 }
  18524 static inline ULONG ISpeechLexiconWords_Release(ISpeechLexiconWords* This) {
  18525     return This->lpVtbl->Release(This);
  18526 }
  18527 /*** IDispatch methods ***/
  18528 static inline HRESULT ISpeechLexiconWords_GetTypeInfoCount(ISpeechLexiconWords* This,UINT *pctinfo) {
  18529     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  18530 }
  18531 static inline HRESULT ISpeechLexiconWords_GetTypeInfo(ISpeechLexiconWords* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  18532     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  18533 }
  18534 static inline HRESULT ISpeechLexiconWords_GetIDsOfNames(ISpeechLexiconWords* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  18535     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  18536 }
  18537 static inline HRESULT ISpeechLexiconWords_Invoke(ISpeechLexiconWords* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  18538     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  18539 }
  18540 /*** ISpeechLexiconWords methods ***/
  18541 static inline HRESULT ISpeechLexiconWords_get_Count(ISpeechLexiconWords* This,LONG *Count) {
  18542     return This->lpVtbl->get_Count(This,Count);
  18543 }
  18544 static inline HRESULT ISpeechLexiconWords_Item(ISpeechLexiconWords* This,LONG Index,ISpeechLexiconWord **Word) {
  18545     return This->lpVtbl->Item(This,Index,Word);
  18546 }
  18547 static inline HRESULT ISpeechLexiconWords_get__NewEnum(ISpeechLexiconWords* This,IUnknown **EnumVARIANT) {
  18548     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
  18549 }
  18550 #endif
  18551 #endif
  18552 
  18553 #endif
  18554 
  18555 
  18556 #endif  /* __ISpeechLexiconWords_INTERFACE_DEFINED__ */
  18557 
  18558 /*****************************************************************************
  18559  * ISpeechLexicon interface
  18560  */
  18561 #ifndef __ISpeechLexicon_INTERFACE_DEFINED__
  18562 #define __ISpeechLexicon_INTERFACE_DEFINED__
  18563 
  18564 DEFINE_GUID(IID_ISpeechLexicon, 0x3da7627a, 0xc7ae, 0x4b23, 0x87,0x08, 0x63,0x8c,0x50,0x36,0x2c,0x25);
  18565 #if defined(__cplusplus) && !defined(CINTERFACE)
  18566 MIDL_INTERFACE("3da7627a-c7ae-4b23-8708-638c50362c25")
  18567 ISpeechLexicon : public IDispatch
  18568 {
  18569     virtual HRESULT STDMETHODCALLTYPE get_GenerationId(
  18570         LONG *GenerationId) = 0;
  18571 
  18572     virtual HRESULT STDMETHODCALLTYPE GetWords(
  18573         SpeechLexiconType Flags,
  18574         LONG *GenerationID,
  18575         ISpeechLexiconWords **Words) = 0;
  18576 
  18577     virtual HRESULT STDMETHODCALLTYPE AddPronunciation(
  18578         BSTR bstrWord,
  18579         SpeechLanguageId LangId,
  18580         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
  18581         BSTR bstrPronunciation = L"") = 0;
  18582 
  18583     virtual HRESULT STDMETHODCALLTYPE AddPronunciationByPhoneIds(
  18584         BSTR bstrWord,
  18585         SpeechLanguageId LangId,
  18586         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
  18587         VARIANT *PhoneIds = 0) = 0;
  18588 
  18589     virtual HRESULT STDMETHODCALLTYPE RemovePronunciation(
  18590         BSTR bstrWord,
  18591         SpeechLanguageId LangId,
  18592         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
  18593         BSTR bstrPronunciation = L"") = 0;
  18594 
  18595     virtual HRESULT STDMETHODCALLTYPE RemovePronunciationByPhoneIds(
  18596         BSTR bstrWord,
  18597         SpeechLanguageId LangId,
  18598         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
  18599         VARIANT *PhoneIds = 0) = 0;
  18600 
  18601     virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
  18602         BSTR bstrWord,
  18603         SpeechLanguageId LangId,
  18604         SpeechLexiconType TypeFlags,
  18605         ISpeechLexiconPronunciations **ppPronunciations) = 0;
  18606 
  18607     virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
  18608         LONG *GenerationID,
  18609         ISpeechLexiconWords **ppWords) = 0;
  18610 
  18611 };
  18612 #ifdef __CRT_UUID_DECL
  18613 __CRT_UUID_DECL(ISpeechLexicon, 0x3da7627a, 0xc7ae, 0x4b23, 0x87,0x08, 0x63,0x8c,0x50,0x36,0x2c,0x25)
  18614 #endif
  18615 #else
  18616 typedef struct ISpeechLexiconVtbl {
  18617     BEGIN_INTERFACE
  18618 
  18619     /*** IUnknown methods ***/
  18620     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  18621         ISpeechLexicon *This,
  18622         REFIID riid,
  18623         void **ppvObject);
  18624 
  18625     ULONG (STDMETHODCALLTYPE *AddRef)(
  18626         ISpeechLexicon *This);
  18627 
  18628     ULONG (STDMETHODCALLTYPE *Release)(
  18629         ISpeechLexicon *This);
  18630 
  18631     /*** IDispatch methods ***/
  18632     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  18633         ISpeechLexicon *This,
  18634         UINT *pctinfo);
  18635 
  18636     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  18637         ISpeechLexicon *This,
  18638         UINT iTInfo,
  18639         LCID lcid,
  18640         ITypeInfo **ppTInfo);
  18641 
  18642     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  18643         ISpeechLexicon *This,
  18644         REFIID riid,
  18645         LPOLESTR *rgszNames,
  18646         UINT cNames,
  18647         LCID lcid,
  18648         DISPID *rgDispId);
  18649 
  18650     HRESULT (STDMETHODCALLTYPE *Invoke)(
  18651         ISpeechLexicon *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     /*** ISpeechLexicon methods ***/
  18662     HRESULT (STDMETHODCALLTYPE *get_GenerationId)(
  18663         ISpeechLexicon *This,
  18664         LONG *GenerationId);
  18665 
  18666     HRESULT (STDMETHODCALLTYPE *GetWords)(
  18667         ISpeechLexicon *This,
  18668         SpeechLexiconType Flags,
  18669         LONG *GenerationID,
  18670         ISpeechLexiconWords **Words);
  18671 
  18672     HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
  18673         ISpeechLexicon *This,
  18674         BSTR bstrWord,
  18675         SpeechLanguageId LangId,
  18676         SpeechPartOfSpeech PartOfSpeech,
  18677         BSTR bstrPronunciation);
  18678 
  18679     HRESULT (STDMETHODCALLTYPE *AddPronunciationByPhoneIds)(
  18680         ISpeechLexicon *This,
  18681         BSTR bstrWord,
  18682         SpeechLanguageId LangId,
  18683         SpeechPartOfSpeech PartOfSpeech,
  18684         VARIANT *PhoneIds);
  18685 
  18686     HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
  18687         ISpeechLexicon *This,
  18688         BSTR bstrWord,
  18689         SpeechLanguageId LangId,
  18690         SpeechPartOfSpeech PartOfSpeech,
  18691         BSTR bstrPronunciation);
  18692 
  18693     HRESULT (STDMETHODCALLTYPE *RemovePronunciationByPhoneIds)(
  18694         ISpeechLexicon *This,
  18695         BSTR bstrWord,
  18696         SpeechLanguageId LangId,
  18697         SpeechPartOfSpeech PartOfSpeech,
  18698         VARIANT *PhoneIds);
  18699 
  18700     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
  18701         ISpeechLexicon *This,
  18702         BSTR bstrWord,
  18703         SpeechLanguageId LangId,
  18704         SpeechLexiconType TypeFlags,
  18705         ISpeechLexiconPronunciations **ppPronunciations);
  18706 
  18707     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
  18708         ISpeechLexicon *This,
  18709         LONG *GenerationID,
  18710         ISpeechLexiconWords **ppWords);
  18711 
  18712     END_INTERFACE
  18713 } ISpeechLexiconVtbl;
  18714 
  18715 interface ISpeechLexicon {
  18716     CONST_VTBL ISpeechLexiconVtbl* lpVtbl;
  18717 };
  18718 
  18719 #ifdef COBJMACROS
  18720 #ifndef WIDL_C_INLINE_WRAPPERS
  18721 /*** IUnknown methods ***/
  18722 #define ISpeechLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  18723 #define ISpeechLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
  18724 #define ISpeechLexicon_Release(This) (This)->lpVtbl->Release(This)
  18725 /*** IDispatch methods ***/
  18726 #define ISpeechLexicon_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  18727 #define ISpeechLexicon_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  18728 #define ISpeechLexicon_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  18729 #define ISpeechLexicon_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  18730 /*** ISpeechLexicon methods ***/
  18731 #define ISpeechLexicon_get_GenerationId(This,GenerationId) (This)->lpVtbl->get_GenerationId(This,GenerationId)
  18732 #define ISpeechLexicon_GetWords(This,Flags,GenerationID,Words) (This)->lpVtbl->GetWords(This,Flags,GenerationID,Words)
  18733 #define ISpeechLexicon_AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation) (This)->lpVtbl->AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation)
  18734 #define ISpeechLexicon_AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds) (This)->lpVtbl->AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds)
  18735 #define ISpeechLexicon_RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation) (This)->lpVtbl->RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation)
  18736 #define ISpeechLexicon_RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds) (This)->lpVtbl->RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds)
  18737 #define ISpeechLexicon_GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations) (This)->lpVtbl->GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations)
  18738 #define ISpeechLexicon_GetGenerationChange(This,GenerationID,ppWords) (This)->lpVtbl->GetGenerationChange(This,GenerationID,ppWords)
  18739 #else
  18740 /*** IUnknown methods ***/
  18741 static inline HRESULT ISpeechLexicon_QueryInterface(ISpeechLexicon* This,REFIID riid,void **ppvObject) {
  18742     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  18743 }
  18744 static inline ULONG ISpeechLexicon_AddRef(ISpeechLexicon* This) {
  18745     return This->lpVtbl->AddRef(This);
  18746 }
  18747 static inline ULONG ISpeechLexicon_Release(ISpeechLexicon* This) {
  18748     return This->lpVtbl->Release(This);
  18749 }
  18750 /*** IDispatch methods ***/
  18751 static inline HRESULT ISpeechLexicon_GetTypeInfoCount(ISpeechLexicon* This,UINT *pctinfo) {
  18752     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  18753 }
  18754 static inline HRESULT ISpeechLexicon_GetTypeInfo(ISpeechLexicon* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  18755     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  18756 }
  18757 static inline HRESULT ISpeechLexicon_GetIDsOfNames(ISpeechLexicon* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  18758     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  18759 }
  18760 static inline HRESULT ISpeechLexicon_Invoke(ISpeechLexicon* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  18761     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  18762 }
  18763 /*** ISpeechLexicon methods ***/
  18764 static inline HRESULT ISpeechLexicon_get_GenerationId(ISpeechLexicon* This,LONG *GenerationId) {
  18765     return This->lpVtbl->get_GenerationId(This,GenerationId);
  18766 }
  18767 static inline HRESULT ISpeechLexicon_GetWords(ISpeechLexicon* This,SpeechLexiconType Flags,LONG *GenerationID,ISpeechLexiconWords **Words) {
  18768     return This->lpVtbl->GetWords(This,Flags,GenerationID,Words);
  18769 }
  18770 static inline HRESULT ISpeechLexicon_AddPronunciation(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,BSTR bstrPronunciation) {
  18771     return This->lpVtbl->AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation);
  18772 }
  18773 static inline HRESULT ISpeechLexicon_AddPronunciationByPhoneIds(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,VARIANT *PhoneIds) {
  18774     return This->lpVtbl->AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds);
  18775 }
  18776 static inline HRESULT ISpeechLexicon_RemovePronunciation(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,BSTR bstrPronunciation) {
  18777     return This->lpVtbl->RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation);
  18778 }
  18779 static inline HRESULT ISpeechLexicon_RemovePronunciationByPhoneIds(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,VARIANT *PhoneIds) {
  18780     return This->lpVtbl->RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds);
  18781 }
  18782 static inline HRESULT ISpeechLexicon_GetPronunciations(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechLexiconType TypeFlags,ISpeechLexiconPronunciations **ppPronunciations) {
  18783     return This->lpVtbl->GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations);
  18784 }
  18785 static inline HRESULT ISpeechLexicon_GetGenerationChange(ISpeechLexicon* This,LONG *GenerationID,ISpeechLexiconWords **ppWords) {
  18786     return This->lpVtbl->GetGenerationChange(This,GenerationID,ppWords);
  18787 }
  18788 #endif
  18789 #endif
  18790 
  18791 #endif
  18792 
  18793 
  18794 #endif  /* __ISpeechLexicon_INTERFACE_DEFINED__ */
  18795 
  18796 /*****************************************************************************
  18797  * ISpeechLexiconWord interface
  18798  */
  18799 #ifndef __ISpeechLexiconWord_INTERFACE_DEFINED__
  18800 #define __ISpeechLexiconWord_INTERFACE_DEFINED__
  18801 
  18802 DEFINE_GUID(IID_ISpeechLexiconWord, 0x4e5b933c, 0xc9be, 0x48ed, 0x88,0x42, 0x1e,0xe5,0x1b,0xb1,0xd4,0xff);
  18803 #if defined(__cplusplus) && !defined(CINTERFACE)
  18804 MIDL_INTERFACE("4e5b933c-c9be-48ed-8842-1ee51bb1d4ff")
  18805 ISpeechLexiconWord : public IDispatch
  18806 {
  18807     virtual HRESULT STDMETHODCALLTYPE get_LangId(
  18808         SpeechLanguageId *LangId) = 0;
  18809 
  18810     virtual HRESULT STDMETHODCALLTYPE get_Type(
  18811         SpeechWordType *WordType) = 0;
  18812 
  18813     virtual HRESULT STDMETHODCALLTYPE get_Word(
  18814         BSTR *Word) = 0;
  18815 
  18816     virtual HRESULT STDMETHODCALLTYPE get_Pronunciations(
  18817         ISpeechLexiconPronunciations **Pronunciations) = 0;
  18818 
  18819 };
  18820 #ifdef __CRT_UUID_DECL
  18821 __CRT_UUID_DECL(ISpeechLexiconWord, 0x4e5b933c, 0xc9be, 0x48ed, 0x88,0x42, 0x1e,0xe5,0x1b,0xb1,0xd4,0xff)
  18822 #endif
  18823 #else
  18824 typedef struct ISpeechLexiconWordVtbl {
  18825     BEGIN_INTERFACE
  18826 
  18827     /*** IUnknown methods ***/
  18828     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  18829         ISpeechLexiconWord *This,
  18830         REFIID riid,
  18831         void **ppvObject);
  18832 
  18833     ULONG (STDMETHODCALLTYPE *AddRef)(
  18834         ISpeechLexiconWord *This);
  18835 
  18836     ULONG (STDMETHODCALLTYPE *Release)(
  18837         ISpeechLexiconWord *This);
  18838 
  18839     /*** IDispatch methods ***/
  18840     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  18841         ISpeechLexiconWord *This,
  18842         UINT *pctinfo);
  18843 
  18844     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  18845         ISpeechLexiconWord *This,
  18846         UINT iTInfo,
  18847         LCID lcid,
  18848         ITypeInfo **ppTInfo);
  18849 
  18850     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  18851         ISpeechLexiconWord *This,
  18852         REFIID riid,
  18853         LPOLESTR *rgszNames,
  18854         UINT cNames,
  18855         LCID lcid,
  18856         DISPID *rgDispId);
  18857 
  18858     HRESULT (STDMETHODCALLTYPE *Invoke)(
  18859         ISpeechLexiconWord *This,
  18860         DISPID dispIdMember,
  18861         REFIID riid,
  18862         LCID lcid,
  18863         WORD wFlags,
  18864         DISPPARAMS *pDispParams,
  18865         VARIANT *pVarResult,
  18866         EXCEPINFO *pExcepInfo,
  18867         UINT *puArgErr);
  18868 
  18869     /*** ISpeechLexiconWord methods ***/
  18870     HRESULT (STDMETHODCALLTYPE *get_LangId)(
  18871         ISpeechLexiconWord *This,
  18872         SpeechLanguageId *LangId);
  18873 
  18874     HRESULT (STDMETHODCALLTYPE *get_Type)(
  18875         ISpeechLexiconWord *This,
  18876         SpeechWordType *WordType);
  18877 
  18878     HRESULT (STDMETHODCALLTYPE *get_Word)(
  18879         ISpeechLexiconWord *This,
  18880         BSTR *Word);
  18881 
  18882     HRESULT (STDMETHODCALLTYPE *get_Pronunciations)(
  18883         ISpeechLexiconWord *This,
  18884         ISpeechLexiconPronunciations **Pronunciations);
  18885 
  18886     END_INTERFACE
  18887 } ISpeechLexiconWordVtbl;
  18888 
  18889 interface ISpeechLexiconWord {
  18890     CONST_VTBL ISpeechLexiconWordVtbl* lpVtbl;
  18891 };
  18892 
  18893 #ifdef COBJMACROS
  18894 #ifndef WIDL_C_INLINE_WRAPPERS
  18895 /*** IUnknown methods ***/
  18896 #define ISpeechLexiconWord_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  18897 #define ISpeechLexiconWord_AddRef(This) (This)->lpVtbl->AddRef(This)
  18898 #define ISpeechLexiconWord_Release(This) (This)->lpVtbl->Release(This)
  18899 /*** IDispatch methods ***/
  18900 #define ISpeechLexiconWord_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  18901 #define ISpeechLexiconWord_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  18902 #define ISpeechLexiconWord_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  18903 #define ISpeechLexiconWord_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  18904 /*** ISpeechLexiconWord methods ***/
  18905 #define ISpeechLexiconWord_get_LangId(This,LangId) (This)->lpVtbl->get_LangId(This,LangId)
  18906 #define ISpeechLexiconWord_get_Type(This,WordType) (This)->lpVtbl->get_Type(This,WordType)
  18907 #define ISpeechLexiconWord_get_Word(This,Word) (This)->lpVtbl->get_Word(This,Word)
  18908 #define ISpeechLexiconWord_get_Pronunciations(This,Pronunciations) (This)->lpVtbl->get_Pronunciations(This,Pronunciations)
  18909 #else
  18910 /*** IUnknown methods ***/
  18911 static inline HRESULT ISpeechLexiconWord_QueryInterface(ISpeechLexiconWord* This,REFIID riid,void **ppvObject) {
  18912     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  18913 }
  18914 static inline ULONG ISpeechLexiconWord_AddRef(ISpeechLexiconWord* This) {
  18915     return This->lpVtbl->AddRef(This);
  18916 }
  18917 static inline ULONG ISpeechLexiconWord_Release(ISpeechLexiconWord* This) {
  18918     return This->lpVtbl->Release(This);
  18919 }
  18920 /*** IDispatch methods ***/
  18921 static inline HRESULT ISpeechLexiconWord_GetTypeInfoCount(ISpeechLexiconWord* This,UINT *pctinfo) {
  18922     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  18923 }
  18924 static inline HRESULT ISpeechLexiconWord_GetTypeInfo(ISpeechLexiconWord* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  18925     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  18926 }
  18927 static inline HRESULT ISpeechLexiconWord_GetIDsOfNames(ISpeechLexiconWord* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  18928     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  18929 }
  18930 static inline HRESULT ISpeechLexiconWord_Invoke(ISpeechLexiconWord* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  18931     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  18932 }
  18933 /*** ISpeechLexiconWord methods ***/
  18934 static inline HRESULT ISpeechLexiconWord_get_LangId(ISpeechLexiconWord* This,SpeechLanguageId *LangId) {
  18935     return This->lpVtbl->get_LangId(This,LangId);
  18936 }
  18937 static inline HRESULT ISpeechLexiconWord_get_Type(ISpeechLexiconWord* This,SpeechWordType *WordType) {
  18938     return This->lpVtbl->get_Type(This,WordType);
  18939 }
  18940 static inline HRESULT ISpeechLexiconWord_get_Word(ISpeechLexiconWord* This,BSTR *Word) {
  18941     return This->lpVtbl->get_Word(This,Word);
  18942 }
  18943 static inline HRESULT ISpeechLexiconWord_get_Pronunciations(ISpeechLexiconWord* This,ISpeechLexiconPronunciations **Pronunciations) {
  18944     return This->lpVtbl->get_Pronunciations(This,Pronunciations);
  18945 }
  18946 #endif
  18947 #endif
  18948 
  18949 #endif
  18950 
  18951 
  18952 #endif  /* __ISpeechLexiconWord_INTERFACE_DEFINED__ */
  18953 
  18954 /*****************************************************************************
  18955  * ISpeechLexiconPronunciations interface
  18956  */
  18957 #ifndef __ISpeechLexiconPronunciations_INTERFACE_DEFINED__
  18958 #define __ISpeechLexiconPronunciations_INTERFACE_DEFINED__
  18959 
  18960 DEFINE_GUID(IID_ISpeechLexiconPronunciations, 0x72829128, 0x5682, 0x4704, 0xa0,0xd4, 0x3e,0x2b,0xb6,0xf2,0xea,0xd3);
  18961 #if defined(__cplusplus) && !defined(CINTERFACE)
  18962 MIDL_INTERFACE("72829128-5682-4704-a0d4-3e2bb6f2ead3")
  18963 ISpeechLexiconPronunciations : public IDispatch
  18964 {
  18965     virtual HRESULT STDMETHODCALLTYPE get_Count(
  18966         LONG *Count) = 0;
  18967 
  18968     virtual HRESULT STDMETHODCALLTYPE Item(
  18969         LONG Index,
  18970         ISpeechLexiconPronunciation **Pronunciation) = 0;
  18971 
  18972     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
  18973         IUnknown **EnumVARIANT) = 0;
  18974 
  18975 };
  18976 #ifdef __CRT_UUID_DECL
  18977 __CRT_UUID_DECL(ISpeechLexiconPronunciations, 0x72829128, 0x5682, 0x4704, 0xa0,0xd4, 0x3e,0x2b,0xb6,0xf2,0xea,0xd3)
  18978 #endif
  18979 #else
  18980 typedef struct ISpeechLexiconPronunciationsVtbl {
  18981     BEGIN_INTERFACE
  18982 
  18983     /*** IUnknown methods ***/
  18984     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  18985         ISpeechLexiconPronunciations *This,
  18986         REFIID riid,
  18987         void **ppvObject);
  18988 
  18989     ULONG (STDMETHODCALLTYPE *AddRef)(
  18990         ISpeechLexiconPronunciations *This);
  18991 
  18992     ULONG (STDMETHODCALLTYPE *Release)(
  18993         ISpeechLexiconPronunciations *This);
  18994 
  18995     /*** IDispatch methods ***/
  18996     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  18997         ISpeechLexiconPronunciations *This,
  18998         UINT *pctinfo);
  18999 
  19000     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  19001         ISpeechLexiconPronunciations *This,
  19002         UINT iTInfo,
  19003         LCID lcid,
  19004         ITypeInfo **ppTInfo);
  19005 
  19006     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  19007         ISpeechLexiconPronunciations *This,
  19008         REFIID riid,
  19009         LPOLESTR *rgszNames,
  19010         UINT cNames,
  19011         LCID lcid,
  19012         DISPID *rgDispId);
  19013 
  19014     HRESULT (STDMETHODCALLTYPE *Invoke)(
  19015         ISpeechLexiconPronunciations *This,
  19016         DISPID dispIdMember,
  19017         REFIID riid,
  19018         LCID lcid,
  19019         WORD wFlags,
  19020         DISPPARAMS *pDispParams,
  19021         VARIANT *pVarResult,
  19022         EXCEPINFO *pExcepInfo,
  19023         UINT *puArgErr);
  19024 
  19025     /*** ISpeechLexiconPronunciations methods ***/
  19026     HRESULT (STDMETHODCALLTYPE *get_Count)(
  19027         ISpeechLexiconPronunciations *This,
  19028         LONG *Count);
  19029 
  19030     HRESULT (STDMETHODCALLTYPE *Item)(
  19031         ISpeechLexiconPronunciations *This,
  19032         LONG Index,
  19033         ISpeechLexiconPronunciation **Pronunciation);
  19034 
  19035     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
  19036         ISpeechLexiconPronunciations *This,
  19037         IUnknown **EnumVARIANT);
  19038 
  19039     END_INTERFACE
  19040 } ISpeechLexiconPronunciationsVtbl;
  19041 
  19042 interface ISpeechLexiconPronunciations {
  19043     CONST_VTBL ISpeechLexiconPronunciationsVtbl* lpVtbl;
  19044 };
  19045 
  19046 #ifdef COBJMACROS
  19047 #ifndef WIDL_C_INLINE_WRAPPERS
  19048 /*** IUnknown methods ***/
  19049 #define ISpeechLexiconPronunciations_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  19050 #define ISpeechLexiconPronunciations_AddRef(This) (This)->lpVtbl->AddRef(This)
  19051 #define ISpeechLexiconPronunciations_Release(This) (This)->lpVtbl->Release(This)
  19052 /*** IDispatch methods ***/
  19053 #define ISpeechLexiconPronunciations_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  19054 #define ISpeechLexiconPronunciations_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  19055 #define ISpeechLexiconPronunciations_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  19056 #define ISpeechLexiconPronunciations_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  19057 /*** ISpeechLexiconPronunciations methods ***/
  19058 #define ISpeechLexiconPronunciations_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
  19059 #define ISpeechLexiconPronunciations_Item(This,Index,Pronunciation) (This)->lpVtbl->Item(This,Index,Pronunciation)
  19060 #define ISpeechLexiconPronunciations_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
  19061 #else
  19062 /*** IUnknown methods ***/
  19063 static inline HRESULT ISpeechLexiconPronunciations_QueryInterface(ISpeechLexiconPronunciations* This,REFIID riid,void **ppvObject) {
  19064     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  19065 }
  19066 static inline ULONG ISpeechLexiconPronunciations_AddRef(ISpeechLexiconPronunciations* This) {
  19067     return This->lpVtbl->AddRef(This);
  19068 }
  19069 static inline ULONG ISpeechLexiconPronunciations_Release(ISpeechLexiconPronunciations* This) {
  19070     return This->lpVtbl->Release(This);
  19071 }
  19072 /*** IDispatch methods ***/
  19073 static inline HRESULT ISpeechLexiconPronunciations_GetTypeInfoCount(ISpeechLexiconPronunciations* This,UINT *pctinfo) {
  19074     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  19075 }
  19076 static inline HRESULT ISpeechLexiconPronunciations_GetTypeInfo(ISpeechLexiconPronunciations* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  19077     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  19078 }
  19079 static inline HRESULT ISpeechLexiconPronunciations_GetIDsOfNames(ISpeechLexiconPronunciations* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  19080     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  19081 }
  19082 static inline HRESULT ISpeechLexiconPronunciations_Invoke(ISpeechLexiconPronunciations* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  19083     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  19084 }
  19085 /*** ISpeechLexiconPronunciations methods ***/
  19086 static inline HRESULT ISpeechLexiconPronunciations_get_Count(ISpeechLexiconPronunciations* This,LONG *Count) {
  19087     return This->lpVtbl->get_Count(This,Count);
  19088 }
  19089 static inline HRESULT ISpeechLexiconPronunciations_Item(ISpeechLexiconPronunciations* This,LONG Index,ISpeechLexiconPronunciation **Pronunciation) {
  19090     return This->lpVtbl->Item(This,Index,Pronunciation);
  19091 }
  19092 static inline HRESULT ISpeechLexiconPronunciations_get__NewEnum(ISpeechLexiconPronunciations* This,IUnknown **EnumVARIANT) {
  19093     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
  19094 }
  19095 #endif
  19096 #endif
  19097 
  19098 #endif
  19099 
  19100 
  19101 #endif  /* __ISpeechLexiconPronunciations_INTERFACE_DEFINED__ */
  19102 
  19103 /*****************************************************************************
  19104  * ISpeechLexiconPronunciation interface
  19105  */
  19106 #ifndef __ISpeechLexiconPronunciation_INTERFACE_DEFINED__
  19107 #define __ISpeechLexiconPronunciation_INTERFACE_DEFINED__
  19108 
  19109 DEFINE_GUID(IID_ISpeechLexiconPronunciation, 0x95252c5d, 0x9e43, 0x4f4a, 0x98,0x99, 0x48,0xee,0x73,0x35,0x2f,0x9f);
  19110 #if defined(__cplusplus) && !defined(CINTERFACE)
  19111 MIDL_INTERFACE("95252c5d-9e43-4f4a-9899-48ee73352f9f")
  19112 ISpeechLexiconPronunciation : public IDispatch
  19113 {
  19114     virtual HRESULT STDMETHODCALLTYPE get_Type(
  19115         SpeechLexiconType *LexiconType) = 0;
  19116 
  19117     virtual HRESULT STDMETHODCALLTYPE get_LangId(
  19118         SpeechLanguageId *LangId) = 0;
  19119 
  19120     virtual HRESULT STDMETHODCALLTYPE get_PartOfSpeech(
  19121         SpeechPartOfSpeech *PartOfSpeech) = 0;
  19122 
  19123     virtual HRESULT STDMETHODCALLTYPE get_PhoneIds(
  19124         VARIANT *PhoneIds) = 0;
  19125 
  19126     virtual HRESULT STDMETHODCALLTYPE get_Symbolic(
  19127         BSTR *Symbolic) = 0;
  19128 
  19129 };
  19130 #ifdef __CRT_UUID_DECL
  19131 __CRT_UUID_DECL(ISpeechLexiconPronunciation, 0x95252c5d, 0x9e43, 0x4f4a, 0x98,0x99, 0x48,0xee,0x73,0x35,0x2f,0x9f)
  19132 #endif
  19133 #else
  19134 typedef struct ISpeechLexiconPronunciationVtbl {
  19135     BEGIN_INTERFACE
  19136 
  19137     /*** IUnknown methods ***/
  19138     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  19139         ISpeechLexiconPronunciation *This,
  19140         REFIID riid,
  19141         void **ppvObject);
  19142 
  19143     ULONG (STDMETHODCALLTYPE *AddRef)(
  19144         ISpeechLexiconPronunciation *This);
  19145 
  19146     ULONG (STDMETHODCALLTYPE *Release)(
  19147         ISpeechLexiconPronunciation *This);
  19148 
  19149     /*** IDispatch methods ***/
  19150     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  19151         ISpeechLexiconPronunciation *This,
  19152         UINT *pctinfo);
  19153 
  19154     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  19155         ISpeechLexiconPronunciation *This,
  19156         UINT iTInfo,
  19157         LCID lcid,
  19158         ITypeInfo **ppTInfo);
  19159 
  19160     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  19161         ISpeechLexiconPronunciation *This,
  19162         REFIID riid,
  19163         LPOLESTR *rgszNames,
  19164         UINT cNames,
  19165         LCID lcid,
  19166         DISPID *rgDispId);
  19167 
  19168     HRESULT (STDMETHODCALLTYPE *Invoke)(
  19169         ISpeechLexiconPronunciation *This,
  19170         DISPID dispIdMember,
  19171         REFIID riid,
  19172         LCID lcid,
  19173         WORD wFlags,
  19174         DISPPARAMS *pDispParams,
  19175         VARIANT *pVarResult,
  19176         EXCEPINFO *pExcepInfo,
  19177         UINT *puArgErr);
  19178 
  19179     /*** ISpeechLexiconPronunciation methods ***/
  19180     HRESULT (STDMETHODCALLTYPE *get_Type)(
  19181         ISpeechLexiconPronunciation *This,
  19182         SpeechLexiconType *LexiconType);
  19183 
  19184     HRESULT (STDMETHODCALLTYPE *get_LangId)(
  19185         ISpeechLexiconPronunciation *This,
  19186         SpeechLanguageId *LangId);
  19187 
  19188     HRESULT (STDMETHODCALLTYPE *get_PartOfSpeech)(
  19189         ISpeechLexiconPronunciation *This,
  19190         SpeechPartOfSpeech *PartOfSpeech);
  19191 
  19192     HRESULT (STDMETHODCALLTYPE *get_PhoneIds)(
  19193         ISpeechLexiconPronunciation *This,
  19194         VARIANT *PhoneIds);
  19195 
  19196     HRESULT (STDMETHODCALLTYPE *get_Symbolic)(
  19197         ISpeechLexiconPronunciation *This,
  19198         BSTR *Symbolic);
  19199 
  19200     END_INTERFACE
  19201 } ISpeechLexiconPronunciationVtbl;
  19202 
  19203 interface ISpeechLexiconPronunciation {
  19204     CONST_VTBL ISpeechLexiconPronunciationVtbl* lpVtbl;
  19205 };
  19206 
  19207 #ifdef COBJMACROS
  19208 #ifndef WIDL_C_INLINE_WRAPPERS
  19209 /*** IUnknown methods ***/
  19210 #define ISpeechLexiconPronunciation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  19211 #define ISpeechLexiconPronunciation_AddRef(This) (This)->lpVtbl->AddRef(This)
  19212 #define ISpeechLexiconPronunciation_Release(This) (This)->lpVtbl->Release(This)
  19213 /*** IDispatch methods ***/
  19214 #define ISpeechLexiconPronunciation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  19215 #define ISpeechLexiconPronunciation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  19216 #define ISpeechLexiconPronunciation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  19217 #define ISpeechLexiconPronunciation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  19218 /*** ISpeechLexiconPronunciation methods ***/
  19219 #define ISpeechLexiconPronunciation_get_Type(This,LexiconType) (This)->lpVtbl->get_Type(This,LexiconType)
  19220 #define ISpeechLexiconPronunciation_get_LangId(This,LangId) (This)->lpVtbl->get_LangId(This,LangId)
  19221 #define ISpeechLexiconPronunciation_get_PartOfSpeech(This,PartOfSpeech) (This)->lpVtbl->get_PartOfSpeech(This,PartOfSpeech)
  19222 #define ISpeechLexiconPronunciation_get_PhoneIds(This,PhoneIds) (This)->lpVtbl->get_PhoneIds(This,PhoneIds)
  19223 #define ISpeechLexiconPronunciation_get_Symbolic(This,Symbolic) (This)->lpVtbl->get_Symbolic(This,Symbolic)
  19224 #else
  19225 /*** IUnknown methods ***/
  19226 static inline HRESULT ISpeechLexiconPronunciation_QueryInterface(ISpeechLexiconPronunciation* This,REFIID riid,void **ppvObject) {
  19227     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  19228 }
  19229 static inline ULONG ISpeechLexiconPronunciation_AddRef(ISpeechLexiconPronunciation* This) {
  19230     return This->lpVtbl->AddRef(This);
  19231 }
  19232 static inline ULONG ISpeechLexiconPronunciation_Release(ISpeechLexiconPronunciation* This) {
  19233     return This->lpVtbl->Release(This);
  19234 }
  19235 /*** IDispatch methods ***/
  19236 static inline HRESULT ISpeechLexiconPronunciation_GetTypeInfoCount(ISpeechLexiconPronunciation* This,UINT *pctinfo) {
  19237     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  19238 }
  19239 static inline HRESULT ISpeechLexiconPronunciation_GetTypeInfo(ISpeechLexiconPronunciation* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  19240     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  19241 }
  19242 static inline HRESULT ISpeechLexiconPronunciation_GetIDsOfNames(ISpeechLexiconPronunciation* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  19243     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  19244 }
  19245 static inline HRESULT ISpeechLexiconPronunciation_Invoke(ISpeechLexiconPronunciation* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  19246     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  19247 }
  19248 /*** ISpeechLexiconPronunciation methods ***/
  19249 static inline HRESULT ISpeechLexiconPronunciation_get_Type(ISpeechLexiconPronunciation* This,SpeechLexiconType *LexiconType) {
  19250     return This->lpVtbl->get_Type(This,LexiconType);
  19251 }
  19252 static inline HRESULT ISpeechLexiconPronunciation_get_LangId(ISpeechLexiconPronunciation* This,SpeechLanguageId *LangId) {
  19253     return This->lpVtbl->get_LangId(This,LangId);
  19254 }
  19255 static inline HRESULT ISpeechLexiconPronunciation_get_PartOfSpeech(ISpeechLexiconPronunciation* This,SpeechPartOfSpeech *PartOfSpeech) {
  19256     return This->lpVtbl->get_PartOfSpeech(This,PartOfSpeech);
  19257 }
  19258 static inline HRESULT ISpeechLexiconPronunciation_get_PhoneIds(ISpeechLexiconPronunciation* This,VARIANT *PhoneIds) {
  19259     return This->lpVtbl->get_PhoneIds(This,PhoneIds);
  19260 }
  19261 static inline HRESULT ISpeechLexiconPronunciation_get_Symbolic(ISpeechLexiconPronunciation* This,BSTR *Symbolic) {
  19262     return This->lpVtbl->get_Symbolic(This,Symbolic);
  19263 }
  19264 #endif
  19265 #endif
  19266 
  19267 #endif
  19268 
  19269 
  19270 #endif  /* __ISpeechLexiconPronunciation_INTERFACE_DEFINED__ */
  19271 
  19272 /*****************************************************************************
  19273  * ISpeechPhoneConverter interface
  19274  */
  19275 #ifndef __ISpeechPhoneConverter_INTERFACE_DEFINED__
  19276 #define __ISpeechPhoneConverter_INTERFACE_DEFINED__
  19277 
  19278 DEFINE_GUID(IID_ISpeechPhoneConverter, 0xc3e4f353, 0x433f, 0x43d6, 0x89,0xa1, 0x6a,0x62,0xa7,0x05,0x4c,0x3d);
  19279 #if defined(__cplusplus) && !defined(CINTERFACE)
  19280 MIDL_INTERFACE("c3e4f353-433f-43d6-89a1-6a62a7054c3d")
  19281 ISpeechPhoneConverter : public IDispatch
  19282 {
  19283     virtual HRESULT STDMETHODCALLTYPE get_LanguageId(
  19284         SpeechLanguageId *LanguageId) = 0;
  19285 
  19286     virtual HRESULT STDMETHODCALLTYPE put_LanguageId(
  19287         SpeechLanguageId LanguageId) = 0;
  19288 
  19289     virtual HRESULT STDMETHODCALLTYPE PhoneToId(
  19290         const BSTR Phonemes,
  19291         VARIANT *IdArray) = 0;
  19292 
  19293     virtual HRESULT STDMETHODCALLTYPE IdToPhone(
  19294         const VARIANT IdArray,
  19295         BSTR *Phonemes) = 0;
  19296 
  19297 };
  19298 #ifdef __CRT_UUID_DECL
  19299 __CRT_UUID_DECL(ISpeechPhoneConverter, 0xc3e4f353, 0x433f, 0x43d6, 0x89,0xa1, 0x6a,0x62,0xa7,0x05,0x4c,0x3d)
  19300 #endif
  19301 #else
  19302 typedef struct ISpeechPhoneConverterVtbl {
  19303     BEGIN_INTERFACE
  19304 
  19305     /*** IUnknown methods ***/
  19306     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  19307         ISpeechPhoneConverter *This,
  19308         REFIID riid,
  19309         void **ppvObject);
  19310 
  19311     ULONG (STDMETHODCALLTYPE *AddRef)(
  19312         ISpeechPhoneConverter *This);
  19313 
  19314     ULONG (STDMETHODCALLTYPE *Release)(
  19315         ISpeechPhoneConverter *This);
  19316 
  19317     /*** IDispatch methods ***/
  19318     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
  19319         ISpeechPhoneConverter *This,
  19320         UINT *pctinfo);
  19321 
  19322     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  19323         ISpeechPhoneConverter *This,
  19324         UINT iTInfo,
  19325         LCID lcid,
  19326         ITypeInfo **ppTInfo);
  19327 
  19328     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
  19329         ISpeechPhoneConverter *This,
  19330         REFIID riid,
  19331         LPOLESTR *rgszNames,
  19332         UINT cNames,
  19333         LCID lcid,
  19334         DISPID *rgDispId);
  19335 
  19336     HRESULT (STDMETHODCALLTYPE *Invoke)(
  19337         ISpeechPhoneConverter *This,
  19338         DISPID dispIdMember,
  19339         REFIID riid,
  19340         LCID lcid,
  19341         WORD wFlags,
  19342         DISPPARAMS *pDispParams,
  19343         VARIANT *pVarResult,
  19344         EXCEPINFO *pExcepInfo,
  19345         UINT *puArgErr);
  19346 
  19347     /*** ISpeechPhoneConverter methods ***/
  19348     HRESULT (STDMETHODCALLTYPE *get_LanguageId)(
  19349         ISpeechPhoneConverter *This,
  19350         SpeechLanguageId *LanguageId);
  19351 
  19352     HRESULT (STDMETHODCALLTYPE *put_LanguageId)(
  19353         ISpeechPhoneConverter *This,
  19354         SpeechLanguageId LanguageId);
  19355 
  19356     HRESULT (STDMETHODCALLTYPE *PhoneToId)(
  19357         ISpeechPhoneConverter *This,
  19358         const BSTR Phonemes,
  19359         VARIANT *IdArray);
  19360 
  19361     HRESULT (STDMETHODCALLTYPE *IdToPhone)(
  19362         ISpeechPhoneConverter *This,
  19363         const VARIANT IdArray,
  19364         BSTR *Phonemes);
  19365 
  19366     END_INTERFACE
  19367 } ISpeechPhoneConverterVtbl;
  19368 
  19369 interface ISpeechPhoneConverter {
  19370     CONST_VTBL ISpeechPhoneConverterVtbl* lpVtbl;
  19371 };
  19372 
  19373 #ifdef COBJMACROS
  19374 #ifndef WIDL_C_INLINE_WRAPPERS
  19375 /*** IUnknown methods ***/
  19376 #define ISpeechPhoneConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  19377 #define ISpeechPhoneConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
  19378 #define ISpeechPhoneConverter_Release(This) (This)->lpVtbl->Release(This)
  19379 /*** IDispatch methods ***/
  19380 #define ISpeechPhoneConverter_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
  19381 #define ISpeechPhoneConverter_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  19382 #define ISpeechPhoneConverter_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  19383 #define ISpeechPhoneConverter_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  19384 /*** ISpeechPhoneConverter methods ***/
  19385 #define ISpeechPhoneConverter_get_LanguageId(This,LanguageId) (This)->lpVtbl->get_LanguageId(This,LanguageId)
  19386 #define ISpeechPhoneConverter_put_LanguageId(This,LanguageId) (This)->lpVtbl->put_LanguageId(This,LanguageId)
  19387 #define ISpeechPhoneConverter_PhoneToId(This,Phonemes,IdArray) (This)->lpVtbl->PhoneToId(This,Phonemes,IdArray)
  19388 #define ISpeechPhoneConverter_IdToPhone(This,IdArray,Phonemes) (This)->lpVtbl->IdToPhone(This,IdArray,Phonemes)
  19389 #else
  19390 /*** IUnknown methods ***/
  19391 static inline HRESULT ISpeechPhoneConverter_QueryInterface(ISpeechPhoneConverter* This,REFIID riid,void **ppvObject) {
  19392     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  19393 }
  19394 static inline ULONG ISpeechPhoneConverter_AddRef(ISpeechPhoneConverter* This) {
  19395     return This->lpVtbl->AddRef(This);
  19396 }
  19397 static inline ULONG ISpeechPhoneConverter_Release(ISpeechPhoneConverter* This) {
  19398     return This->lpVtbl->Release(This);
  19399 }
  19400 /*** IDispatch methods ***/
  19401 static inline HRESULT ISpeechPhoneConverter_GetTypeInfoCount(ISpeechPhoneConverter* This,UINT *pctinfo) {
  19402     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
  19403 }
  19404 static inline HRESULT ISpeechPhoneConverter_GetTypeInfo(ISpeechPhoneConverter* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
  19405     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
  19406 }
  19407 static inline HRESULT ISpeechPhoneConverter_GetIDsOfNames(ISpeechPhoneConverter* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
  19408     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
  19409 }
  19410 static inline HRESULT ISpeechPhoneConverter_Invoke(ISpeechPhoneConverter* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
  19411     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
  19412 }
  19413 /*** ISpeechPhoneConverter methods ***/
  19414 static inline HRESULT ISpeechPhoneConverter_get_LanguageId(ISpeechPhoneConverter* This,SpeechLanguageId *LanguageId) {
  19415     return This->lpVtbl->get_LanguageId(This,LanguageId);
  19416 }
  19417 static inline HRESULT ISpeechPhoneConverter_put_LanguageId(ISpeechPhoneConverter* This,SpeechLanguageId LanguageId) {
  19418     return This->lpVtbl->put_LanguageId(This,LanguageId);
  19419 }
  19420 static inline HRESULT ISpeechPhoneConverter_PhoneToId(ISpeechPhoneConverter* This,const BSTR Phonemes,VARIANT *IdArray) {
  19421     return This->lpVtbl->PhoneToId(This,Phonemes,IdArray);
  19422 }
  19423 static inline HRESULT ISpeechPhoneConverter_IdToPhone(ISpeechPhoneConverter* This,const VARIANT IdArray,BSTR *Phonemes) {
  19424     return This->lpVtbl->IdToPhone(This,IdArray,Phonemes);
  19425 }
  19426 #endif
  19427 #endif
  19428 
  19429 #endif
  19430 
  19431 
  19432 #endif  /* __ISpeechPhoneConverter_INTERFACE_DEFINED__ */
  19433 
  19434 /*****************************************************************************
  19435  * SpNotifyTranslator coclass
  19436  */
  19437 
  19438 DEFINE_GUID(CLSID_SpNotifyTranslator, 0xe2ae5372, 0x5d40, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
  19439 
  19440 #ifdef __cplusplus
  19441 class DECLSPEC_UUID("e2ae5372-5d40-11d2-960e-00c04f8ee628") SpNotifyTranslator;
  19442 #ifdef __CRT_UUID_DECL
  19443 __CRT_UUID_DECL(SpNotifyTranslator, 0xe2ae5372, 0x5d40, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
  19444 #endif
  19445 #endif
  19446 
  19447 /*****************************************************************************
  19448  * SpObjectTokenCategory coclass
  19449  */
  19450 
  19451 DEFINE_GUID(CLSID_SpObjectTokenCategory, 0xa910187f, 0x0c7a, 0x45ac, 0x92,0xcc, 0x59,0xed,0xaf,0xb7,0x7b,0x53);
  19452 
  19453 #ifdef __cplusplus
  19454 class DECLSPEC_UUID("a910187f-0c7a-45ac-92cc-59edafb77b53") SpObjectTokenCategory;
  19455 #ifdef __CRT_UUID_DECL
  19456 __CRT_UUID_DECL(SpObjectTokenCategory, 0xa910187f, 0x0c7a, 0x45ac, 0x92,0xcc, 0x59,0xed,0xaf,0xb7,0x7b,0x53)
  19457 #endif
  19458 #endif
  19459 
  19460 /*****************************************************************************
  19461  * SpObjectToken coclass
  19462  */
  19463 
  19464 DEFINE_GUID(CLSID_SpObjectToken, 0xef411752, 0x3736, 0x4cb4, 0x9c,0x8c, 0x8e,0xf4,0xcc,0xb5,0x8e,0xfe);
  19465 
  19466 #ifdef __cplusplus
  19467 class DECLSPEC_UUID("ef411752-3736-4cb4-9c8c-8ef4ccb58efe") SpObjectToken;
  19468 #ifdef __CRT_UUID_DECL
  19469 __CRT_UUID_DECL(SpObjectToken, 0xef411752, 0x3736, 0x4cb4, 0x9c,0x8c, 0x8e,0xf4,0xcc,0xb5,0x8e,0xfe)
  19470 #endif
  19471 #endif
  19472 
  19473 /*****************************************************************************
  19474  * SpResourceManager coclass
  19475  */
  19476 
  19477 DEFINE_GUID(CLSID_SpResourceManager, 0x96749373, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96);
  19478 
  19479 #ifdef __cplusplus
  19480 class DECLSPEC_UUID("96749373-3391-11d2-9ee3-00c04f797396") SpResourceManager;
  19481 #ifdef __CRT_UUID_DECL
  19482 __CRT_UUID_DECL(SpResourceManager, 0x96749373, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96)
  19483 #endif
  19484 #endif
  19485 
  19486 /*****************************************************************************
  19487  * SpStreamFormatConverter coclass
  19488  */
  19489 
  19490 DEFINE_GUID(CLSID_SpStreamFormatConverter, 0x7013943a, 0xe2ec, 0x11d2, 0xa0,0x86, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5);
  19491 
  19492 #ifdef __cplusplus
  19493 class DECLSPEC_UUID("7013943a-e2ec-11d2-a086-00c04f8ef9b5") SpStreamFormatConverter;
  19494 #ifdef __CRT_UUID_DECL
  19495 __CRT_UUID_DECL(SpStreamFormatConverter, 0x7013943a, 0xe2ec, 0x11d2, 0xa0,0x86, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5)
  19496 #endif
  19497 #endif
  19498 
  19499 /*****************************************************************************
  19500  * SpMMAudioEnum coclass
  19501  */
  19502 
  19503 DEFINE_GUID(CLSID_SpMMAudioEnum, 0xab1890a0, 0xe91f, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
  19504 
  19505 #ifdef __cplusplus
  19506 class DECLSPEC_UUID("ab1890a0-e91f-11d2-bb91-00c04f8ee6c0") SpMMAudioEnum;
  19507 #ifdef __CRT_UUID_DECL
  19508 __CRT_UUID_DECL(SpMMAudioEnum, 0xab1890a0, 0xe91f, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
  19509 #endif
  19510 #endif
  19511 
  19512 /*****************************************************************************
  19513  * SpMMAudioIn coclass
  19514  */
  19515 
  19516 DEFINE_GUID(CLSID_SpMMAudioIn, 0xcf3d2e50, 0x53f2, 0x11d2, 0x96,0x0c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
  19517 
  19518 #ifdef __cplusplus
  19519 class DECLSPEC_UUID("cf3d2e50-53f2-11d2-960c-00c04f8ee628") SpMMAudioIn;
  19520 #ifdef __CRT_UUID_DECL
  19521 __CRT_UUID_DECL(SpMMAudioIn, 0xcf3d2e50, 0x53f2, 0x11d2, 0x96,0x0c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
  19522 #endif
  19523 #endif
  19524 
  19525 /*****************************************************************************
  19526  * SpMMAudioOut coclass
  19527  */
  19528 
  19529 DEFINE_GUID(CLSID_SpMMAudioOut, 0xa8c680eb, 0x3d32, 0x11d2, 0x9e,0xe7, 0x00,0xc0,0x4f,0x79,0x73,0x96);
  19530 
  19531 #ifdef __cplusplus
  19532 class DECLSPEC_UUID("a8c680eb-3d32-11d2-9ee7-00c04f797396") SpMMAudioOut;
  19533 #ifdef __CRT_UUID_DECL
  19534 __CRT_UUID_DECL(SpMMAudioOut, 0xa8c680eb, 0x3d32, 0x11d2, 0x9e,0xe7, 0x00,0xc0,0x4f,0x79,0x73,0x96)
  19535 #endif
  19536 #endif
  19537 
  19538 /*****************************************************************************
  19539  * SpStream coclass
  19540  */
  19541 
  19542 DEFINE_GUID(CLSID_SpStream, 0x715d9c59, 0x4442, 0x11d2, 0x96,0x05, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
  19543 
  19544 #ifdef __cplusplus
  19545 class DECLSPEC_UUID("715d9c59-4442-11d2-9605-00c04f8ee628") SpStream;
  19546 #ifdef __CRT_UUID_DECL
  19547 __CRT_UUID_DECL(SpStream, 0x715d9c59, 0x4442, 0x11d2, 0x96,0x05, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
  19548 #endif
  19549 #endif
  19550 
  19551 /*****************************************************************************
  19552  * SpVoice coclass
  19553  */
  19554 
  19555 DEFINE_GUID(CLSID_SpVoice, 0x96749377, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96);
  19556 
  19557 #ifdef __cplusplus
  19558 class DECLSPEC_UUID("96749377-3391-11d2-9ee3-00c04f797396") SpVoice;
  19559 #ifdef __CRT_UUID_DECL
  19560 __CRT_UUID_DECL(SpVoice, 0x96749377, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96)
  19561 #endif
  19562 #endif
  19563 
  19564 /*****************************************************************************
  19565  * SpSharedRecoContext coclass
  19566  */
  19567 
  19568 DEFINE_GUID(CLSID_SpSharedRecoContext, 0x47206204, 0x5eca, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
  19569 
  19570 #ifdef __cplusplus
  19571 class DECLSPEC_UUID("47206204-5eca-11d2-960f-00c04f8ee628") SpSharedRecoContext;
  19572 #ifdef __CRT_UUID_DECL
  19573 __CRT_UUID_DECL(SpSharedRecoContext, 0x47206204, 0x5eca, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
  19574 #endif
  19575 #endif
  19576 
  19577 /*****************************************************************************
  19578  * SpInprocRecognizer coclass
  19579  */
  19580 
  19581 DEFINE_GUID(CLSID_SpInprocRecognizer, 0x41b89b6b, 0x9399, 0x11d2, 0x96,0x23, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
  19582 
  19583 #ifdef __cplusplus
  19584 class DECLSPEC_UUID("41b89b6b-9399-11d2-9623-00c04f8ee628") SpInprocRecognizer;
  19585 #ifdef __CRT_UUID_DECL
  19586 __CRT_UUID_DECL(SpInprocRecognizer, 0x41b89b6b, 0x9399, 0x11d2, 0x96,0x23, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
  19587 #endif
  19588 #endif
  19589 
  19590 /*****************************************************************************
  19591  * SpSharedRecognizer coclass
  19592  */
  19593 
  19594 DEFINE_GUID(CLSID_SpSharedRecognizer, 0x3bee4890, 0x4fe9, 0x4a37, 0x8c,0x1e, 0x5e,0x7e,0x12,0x79,0x1c,0x1f);
  19595 
  19596 #ifdef __cplusplus
  19597 class DECLSPEC_UUID("3bee4890-4fe9-4a37-8c1e-5e7e12791c1f") SpSharedRecognizer;
  19598 #ifdef __CRT_UUID_DECL
  19599 __CRT_UUID_DECL(SpSharedRecognizer, 0x3bee4890, 0x4fe9, 0x4a37, 0x8c,0x1e, 0x5e,0x7e,0x12,0x79,0x1c,0x1f)
  19600 #endif
  19601 #endif
  19602 
  19603 /*****************************************************************************
  19604  * SpLexicon coclass
  19605  */
  19606 
  19607 DEFINE_GUID(CLSID_SpLexicon, 0x0655e396, 0x25d0, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c);
  19608 
  19609 #ifdef __cplusplus
  19610 class DECLSPEC_UUID("0655e396-25d0-11d3-9c26-00c04f8ef87c") SpLexicon;
  19611 #ifdef __CRT_UUID_DECL
  19612 __CRT_UUID_DECL(SpLexicon, 0x0655e396, 0x25d0, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c)
  19613 #endif
  19614 #endif
  19615 
  19616 /*****************************************************************************
  19617  * SpUnCompressedLexicon coclass
  19618  */
  19619 
  19620 DEFINE_GUID(CLSID_SpUnCompressedLexicon, 0xc9e37c15, 0xdf92, 0x4727, 0x85,0xd6, 0x72,0xe5,0xee,0xb6,0x99,0x5a);
  19621 
  19622 #ifdef __cplusplus
  19623 class DECLSPEC_UUID("c9e37c15-df92-4727-85d6-72e5eeb6995a") SpUnCompressedLexicon;
  19624 #ifdef __CRT_UUID_DECL
  19625 __CRT_UUID_DECL(SpUnCompressedLexicon, 0xc9e37c15, 0xdf92, 0x4727, 0x85,0xd6, 0x72,0xe5,0xee,0xb6,0x99,0x5a)
  19626 #endif
  19627 #endif
  19628 
  19629 /*****************************************************************************
  19630  * SpCompressedLexicon coclass
  19631  */
  19632 
  19633 DEFINE_GUID(CLSID_SpCompressedLexicon, 0x90903716, 0x2f42, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c);
  19634 
  19635 #ifdef __cplusplus
  19636 class DECLSPEC_UUID("90903716-2f42-11d3-9c26-00c04f8ef87c") SpCompressedLexicon;
  19637 #ifdef __CRT_UUID_DECL
  19638 __CRT_UUID_DECL(SpCompressedLexicon, 0x90903716, 0x2f42, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c)
  19639 #endif
  19640 #endif
  19641 
  19642 /*****************************************************************************
  19643  * SpPhoneConverter coclass
  19644  */
  19645 
  19646 DEFINE_GUID(CLSID_SpPhoneConverter, 0x9185f743, 0x1143, 0x4c28, 0x86,0xb5, 0xbf,0xf1,0x4f,0x20,0xe5,0xc8);
  19647 
  19648 #ifdef __cplusplus
  19649 class DECLSPEC_UUID("9185f743-1143-4c28-86b5-bff14f20e5c8") SpPhoneConverter;
  19650 #ifdef __CRT_UUID_DECL
  19651 __CRT_UUID_DECL(SpPhoneConverter, 0x9185f743, 0x1143, 0x4c28, 0x86,0xb5, 0xbf,0xf1,0x4f,0x20,0xe5,0xc8)
  19652 #endif
  19653 #endif
  19654 
  19655 /*****************************************************************************
  19656  * SpNullPhoneConverter coclass
  19657  */
  19658 
  19659 DEFINE_GUID(CLSID_SpNullPhoneConverter, 0x455f24e9, 0x7396, 0x4a16, 0x97,0x15, 0x7c,0x0f,0xdb,0xe3,0xef,0xe3);
  19660 
  19661 #ifdef __cplusplus
  19662 class DECLSPEC_UUID("455f24e9-7396-4a16-9715-7c0fdbe3efe3") SpNullPhoneConverter;
  19663 #ifdef __CRT_UUID_DECL
  19664 __CRT_UUID_DECL(SpNullPhoneConverter, 0x455f24e9, 0x7396, 0x4a16, 0x97,0x15, 0x7c,0x0f,0xdb,0xe3,0xef,0xe3)
  19665 #endif
  19666 #endif
  19667 
  19668 /*****************************************************************************
  19669  * SpTextSelectionInformation coclass
  19670  */
  19671 
  19672 DEFINE_GUID(CLSID_SpTextSelectionInformation, 0x0f92030a, 0xcbfd, 0x4ab8, 0xa1,0x64, 0xff,0x59,0x85,0x54,0x7f,0xf6);
  19673 
  19674 #ifdef __cplusplus
  19675 class DECLSPEC_UUID("0f92030a-cbfd-4ab8-a164-ff5985547ff6") SpTextSelectionInformation;
  19676 #ifdef __CRT_UUID_DECL
  19677 __CRT_UUID_DECL(SpTextSelectionInformation, 0x0f92030a, 0xcbfd, 0x4ab8, 0xa1,0x64, 0xff,0x59,0x85,0x54,0x7f,0xf6)
  19678 #endif
  19679 #endif
  19680 
  19681 /*****************************************************************************
  19682  * SpPhraseInfoBuilder coclass
  19683  */
  19684 
  19685 DEFINE_GUID(CLSID_SpPhraseInfoBuilder, 0xc23fc28d, 0xc55f, 0x4720, 0x8b,0x32, 0x91,0xf7,0x3c,0x2b,0xd5,0xd1);
  19686 
  19687 #ifdef __cplusplus
  19688 class DECLSPEC_UUID("c23fc28d-c55f-4720-8b32-91f73c2bd5d1") SpPhraseInfoBuilder;
  19689 #ifdef __CRT_UUID_DECL
  19690 __CRT_UUID_DECL(SpPhraseInfoBuilder, 0xc23fc28d, 0xc55f, 0x4720, 0x8b,0x32, 0x91,0xf7,0x3c,0x2b,0xd5,0xd1)
  19691 #endif
  19692 #endif
  19693 
  19694 /*****************************************************************************
  19695  * SpAudioFormat coclass
  19696  */
  19697 
  19698 DEFINE_GUID(CLSID_SpAudioFormat, 0x9ef96870, 0xe160, 0x4792, 0x82,0x0d, 0x48,0xcf,0x06,0x49,0xe4,0xec);
  19699 
  19700 #ifdef __cplusplus
  19701 class DECLSPEC_UUID("9ef96870-e160-4792-820d-48cf0649e4ec") SpAudioFormat;
  19702 #ifdef __CRT_UUID_DECL
  19703 __CRT_UUID_DECL(SpAudioFormat, 0x9ef96870, 0xe160, 0x4792, 0x82,0x0d, 0x48,0xcf,0x06,0x49,0xe4,0xec)
  19704 #endif
  19705 #endif
  19706 
  19707 /*****************************************************************************
  19708  * SpWaveFormatEx coclass
  19709  */
  19710 
  19711 DEFINE_GUID(CLSID_SpWaveFormatEx, 0xc79a574c, 0x63be, 0x44b9, 0x80,0x1f, 0x28,0x3f,0x87,0xf8,0x98,0xbe);
  19712 
  19713 #ifdef __cplusplus
  19714 class DECLSPEC_UUID("c79a574c-63be-44b9-801f-283f87f898be") SpWaveFormatEx;
  19715 #ifdef __CRT_UUID_DECL
  19716 __CRT_UUID_DECL(SpWaveFormatEx, 0xc79a574c, 0x63be, 0x44b9, 0x80,0x1f, 0x28,0x3f,0x87,0xf8,0x98,0xbe)
  19717 #endif
  19718 #endif
  19719 
  19720 /*****************************************************************************
  19721  * SpInProcRecoContext coclass
  19722  */
  19723 
  19724 DEFINE_GUID(CLSID_SpInProcRecoContext, 0x73ad6842, 0xace0, 0x45e8, 0xa4,0xdd, 0x87,0x95,0x88,0x1a,0x2c,0x2a);
  19725 
  19726 #ifdef __cplusplus
  19727 class DECLSPEC_UUID("73ad6842-ace0-45e8-a4dd-8795881a2c2a") SpInProcRecoContext;
  19728 #ifdef __CRT_UUID_DECL
  19729 __CRT_UUID_DECL(SpInProcRecoContext, 0x73ad6842, 0xace0, 0x45e8, 0xa4,0xdd, 0x87,0x95,0x88,0x1a,0x2c,0x2a)
  19730 #endif
  19731 #endif
  19732 
  19733 /*****************************************************************************
  19734  * SpCustomStream coclass
  19735  */
  19736 
  19737 DEFINE_GUID(CLSID_SpCustomStream, 0x8dbef13f, 0x1948, 0x4aa8, 0x8c,0xf0, 0x04,0x8e,0xeb,0xed,0x95,0xd8);
  19738 
  19739 #ifdef __cplusplus
  19740 class DECLSPEC_UUID("8dbef13f-1948-4aa8-8cf0-048eebed95d8") SpCustomStream;
  19741 #ifdef __CRT_UUID_DECL
  19742 __CRT_UUID_DECL(SpCustomStream, 0x8dbef13f, 0x1948, 0x4aa8, 0x8c,0xf0, 0x04,0x8e,0xeb,0xed,0x95,0xd8)
  19743 #endif
  19744 #endif
  19745 
  19746 /*****************************************************************************
  19747  * SpFileStream coclass
  19748  */
  19749 
  19750 DEFINE_GUID(CLSID_SpFileStream, 0x947812b3, 0x2ae1, 0x4644, 0xba,0x86, 0x9e,0x90,0xde,0xd7,0xec,0x91);
  19751 
  19752 #ifdef __cplusplus
  19753 class DECLSPEC_UUID("947812b3-2ae1-4644-ba86-9e90ded7ec91") SpFileStream;
  19754 #ifdef __CRT_UUID_DECL
  19755 __CRT_UUID_DECL(SpFileStream, 0x947812b3, 0x2ae1, 0x4644, 0xba,0x86, 0x9e,0x90,0xde,0xd7,0xec,0x91)
  19756 #endif
  19757 #endif
  19758 
  19759 /*****************************************************************************
  19760  * SpMemoryStream coclass
  19761  */
  19762 
  19763 DEFINE_GUID(CLSID_SpMemoryStream, 0x5fb7ef7d, 0xdff4, 0x468a, 0xb6,0xb7, 0x2f,0xcb,0xd1,0x88,0xf9,0x94);
  19764 
  19765 #ifdef __cplusplus
  19766 class DECLSPEC_UUID("5fb7ef7d-dff4-468a-b6b7-2fcbd188f994") SpMemoryStream;
  19767 #ifdef __CRT_UUID_DECL
  19768 __CRT_UUID_DECL(SpMemoryStream, 0x5fb7ef7d, 0xdff4, 0x468a, 0xb6,0xb7, 0x2f,0xcb,0xd1,0x88,0xf9,0x94)
  19769 #endif
  19770 #endif
  19771 
  19772 #endif /* __SpeechLib_LIBRARY_DEFINED__ */
  19773 /* Begin additional prototypes for all interfaces */
  19774 
  19775 ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
  19776 unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
  19777 unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
  19778 void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
  19779 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
  19780 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
  19781 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
  19782 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
  19783 ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
  19784 unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
  19785 unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
  19786 void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
  19787 
  19788 /* End additional prototypes */
  19789 
  19790 #ifdef __cplusplus
  19791 }
  19792 #endif
  19793 
  19794 #endif /* __sapi51_h__ */